[var] Add hb_font_set_var_coords_design()
diff --git a/src/hb-font.cc b/src/hb-font.cc
index e2a0a5f..e7f5752 100644
--- a/src/hb-font.cc
+++ b/src/hb-font.cc
@@ -1543,10 +1543,27 @@
   if (y_ppem) *y_ppem = font->y_ppem;
 }
 
+/*
+ * Variations
+ */
+
+void
+hb_font_set_var_coords_design (hb_font_t *font,
+			       float *coords,
+			       unsigned int coords_length)
+{
+  int normalized[coords_length]; // XXX Remove variable-length array use...
+
+  hb_face_t *face = font->face;
+  for (unsigned int i = 0; i < coords_length; i++)
+    normalized[i] = hb_ot_var_normalize_axis_value (face, i, coords[i]);
+
+  hb_font_set_var_coords_normalized (font, normalized, coords_length);
+}
 
 void
 hb_font_set_var_coords_normalized (hb_font_t *font,
-				   int *coords, /* XXX 2.14 normalized */
+				   int *coords, /* 2.14 normalized */
 				   unsigned int coords_length)
 {
   if (font->immutable)
@@ -1570,7 +1587,7 @@
 				   unsigned int *length)
 {
   if (length)
-    *length = font->coords_length;
+    *length = font->num_coords;
 
   return font->coords;
 }
diff --git a/src/hb-font.h b/src/hb-font.h
index 5f22331..31e5971 100644
--- a/src/hb-font.h
+++ b/src/hb-font.h
@@ -605,8 +605,13 @@
 
 
 HB_EXTERN void
+hb_font_set_var_coords_design (hb_font_t *font,
+			       float *coords,
+			       unsigned int coords_length);
+
+HB_EXTERN void
 hb_font_set_var_coords_normalized (hb_font_t *font,
-				   int *coords, /* XXX 2.14 normalized */
+				   int *coords, /* 2.14 normalized */
 				   unsigned int coords_length);
 
 HB_EXTERN int *