[Indic] Allow multiple Consonants in Vowel/NBSP syllables
authorBehdad Esfahbod <behdad@behdad.org>
Fri, 11 May 2012 16:46:35 +0000 (18:46 +0200)
committerBehdad Esfahbod <behdad@behdad.org>
Fri, 11 May 2012 16:46:35 +0000 (18:46 +0200)
Uniscribe allows multiple Halant+Consonant after a Vowel.
Tests:
↦       * U+0905,U+094D,U+092B,U+094D,930,94d,930

src/hb-ot-shape-complex-indic-machine.rl

index dedcc5c..d8b3de5 100644 (file)
@@ -62,8 +62,8 @@ syllable_tail = SM? (VD VD?)?;
 
 
 consonant_syllable =   (c.n? (H.z?|z.H))* c.n? A? (H.z? | matra_group*)? syllable_tail;
-vowel_syllable =       (Ra H)? V n? (z?.H.c | ZWJ.c)? matra_group* syllable_tail;
-standalone_cluster =   (Ra H)? NBSP n? (z? H c)? matra_group* syllable_tail;
+vowel_syllable =       (Ra H)? V n? (z?.H.c | ZWJ.c)* matra_group* syllable_tail;
+standalone_cluster =   (Ra H)? NBSP n? (z? H c)* matra_group* syllable_tail;
 other =                        any;
 
 main := |*
@@ -78,7 +78,7 @@ main := |*
 
 #define process_syllable(func) \
   HB_STMT_START { \
-    /* printf ("syllable %d..%d %s\n", last, p+1, #func); */ \
+    /* fprintf (stderr, "syllable %d..%d %s\n", last, p+1, #func); */ \
     for (unsigned int i = last; i < p+1; i++) \
       info[i].syllable() = syllable_serial; \
     PASTE (initial_reordering_, func) (map, buffer, mask_array, last, p+1); \