[HarfBuzz] harfbuzz-ng: Branch 'master' - 2 commits

Behdad Esfahbod behdad at kemper.freedesktop.org
Fri Jul 20 07:31:07 PDT 2012


 src/hb-ot-shape-complex-indic.cc |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

New commits:
commit 51e764de441072e7c9f67de23e8ed717b9b8957d
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jul 20 10:30:24 2012 -0400

    [Indic] Unbreak old scriptures
    
    Brings down failures with Lohit-Telugu from 57% to 1.40%.

diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc
index 43eaf83..42e0f70 100644
--- a/src/hb-ot-shape-complex-indic.cc
+++ b/src/hb-ot-shape-complex-indic.cc
@@ -123,8 +123,9 @@ consonant_position (hb_codepoint_t u, hb_ot_map_t *map, hb_font_t *font)
   if ((u & ~0x007F) == 0x0D80) virama = 0x0DCA; /* Sinahla */
   hb_codepoint_t glyphs[2];
 
-  hb_font_get_glyph (font, virama, 0, &glyphs[0]);
-  hb_font_get_glyph (font, u,      0, &glyphs[1]);
+  unsigned int virama_pos = IS_OLD_INDIC_TAG (map->get_chosen_script (0)) ? 1 : 0;
+  hb_font_get_glyph (font, virama, 0, &glyphs[virama_pos]);
+  hb_font_get_glyph (font, u,      0, &glyphs[1-virama_pos]);
 
   hb_face_t *face = hb_font_get_face (font);
   if (would_substitute (glyphs, ARRAY_LENGTH (glyphs), HB_TAG('p','r','e','f'), map, face)) return POS_BELOW_C;
commit 900cf3d449bf36d4f8b1474590cae925fef48fc8
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jul 20 10:18:23 2012 -0400

    Minor

diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc
index 19ced2d..43eaf83 100644
--- a/src/hb-ot-shape-complex-indic.cc
+++ b/src/hb-ot-shape-complex-indic.cc
@@ -590,7 +590,7 @@ initial_reordering_consonant_syllable (const hb_ot_map_t *map, hb_buffer_t *buff
   /* Reorder characters */
 
   for (unsigned int i = start; i < base; i++)
-    info[i].indic_position() = MIN ((unsigned int) POS_PRE_C, info[i].indic_position());
+    info[i].indic_position() = MIN (POS_PRE_C, (indic_position_t) info[i].indic_position());
 
   if (base < end)
     info[base].indic_position() = POS_BASE_C;



More information about the HarfBuzz mailing list