More kicking
authorBehdad Esfahbod <behdad@behdad.org>
Thu, 21 Jul 2011 16:16:45 +0000 (12:16 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Thu, 21 Jul 2011 16:16:45 +0000 (12:16 -0400)
src/hb-ot-shape-normalize.cc

index 0a245b0..a791e7c 100644 (file)
@@ -38,23 +38,34 @@ get_glyph (hb_ot_shape_context_t *c, unsigned int i)
 }
 
 static bool
+decompose_single_char_cluster (hb_ot_shape_context_t *c,
+                              unsigned int i)
+{
+  return FALSE;
+}
+
+static bool
 handle_single_char_cluster (hb_ot_shape_context_t *c,
                            unsigned int i)
 {
+  /* If the single char is supported by the font, we're good. */
   if (get_glyph (c, i))
     return FALSE;
 
   /* Decompose */
-
-  return FALSE;
+  return decompose_single_char_cluster (c, i);
 }
 
 static bool
 handle_multi_char_cluster (hb_ot_shape_context_t *c,
-                          unsigned int i,
+                          unsigned int start,
                           unsigned int end)
 {
   /* If there's a variation-selector, give-up, it's just too hard. */
+  for (unsigned int i = start; i < end; i++)
+    if (unlikely (is_variation_selector (c->buffer->info[i].codepoint)))
+      return FALSE;
+
   return FALSE;
 }