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

Behdad Esfahbod behdad at kemper.freedesktop.org
Thu Jul 7 13:09:54 PDT 2011


 src/hb-buffer.cc                         |    7 +++++--
 src/hb-ot-shape-complex-indic-machine.rl |    4 +++-
 src/hb-ot-shape-complex-indic.cc         |    9 ++++++++-
 src/hb-view.cc                           |    2 +-
 test/test-shape.c                        |    1 +
 5 files changed, 18 insertions(+), 5 deletions(-)

New commits:
commit fc551edbf236d71a522ae7c2c9461aa71c5f7d66
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Jul 7 16:09:38 2011 -0400

    Add todo
    
    I'm too lazy to fix the tests now.

diff --git a/test/test-shape.c b/test/test-shape.c
index 99d2d4d..5a41f0c 100644
--- a/test/test-shape.c
+++ b/test/test-shape.c
@@ -35,6 +35,7 @@
  */
 
 /* TODO Make this test data-driven and add some real test data */
+/* TODO Test positions too. And test non-native direction.  Test commit 2e18c6dbdfb */
 
 
 static const char test_data[] = "test\0data";
commit 2e18c6dbdfbbfdec0490260bb7cb5213551b2188
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Jul 6 16:05:45 2011 -0400

    Fix reverse_range() position loop
    
    Mozilla Bug 669175 - Slow rendering of text sometimes in this case,
    using direction: rtl

diff --git a/src/hb-buffer.cc b/src/hb-buffer.cc
index 7e79eef..0c16303 100644
--- a/src/hb-buffer.cc
+++ b/src/hb-buffer.cc
@@ -535,13 +535,16 @@ hb_buffer_get_glyph_positions (hb_buffer_t  *buffer,
 }
 
 
-static void
+static inline void
 reverse_range (hb_buffer_t *buffer,
 	       unsigned int start,
 	       unsigned int end)
 {
   unsigned int i, j;
 
+  if (start == end - 1)
+    return;
+
   for (i = start, j = end - 1; i < j; i++, j--) {
     hb_glyph_info_t t;
 
@@ -551,7 +554,7 @@ reverse_range (hb_buffer_t *buffer,
   }
 
   if (buffer->pos) {
-    for (i = 0, j = end - 1; i < j; i++, j--) {
+    for (i = start, j = end - 1; i < j; i++, j--) {
       hb_glyph_position_t t;
 
       t = buffer->pos[i];
commit fa2befa46f215d8c33a54dfc57889928a628164c
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Jul 4 17:18:57 2011 -0400

    Minor

diff --git a/src/hb-view.cc b/src/hb-view.cc
index 97352cd..31b2a24 100644
--- a/src/hb-view.cc
+++ b/src/hb-view.cc
@@ -98,7 +98,7 @@ parse_opts (int argc, char **argv)
   while (1)
     {
       int option_index = 0, c;
-      static struct option long_options[] = {
+      static const struct option long_options[] = {
 	{"annotate", 0, &annotate, TRUE},
 	{"background", 1, 0, 'B'},
 	{"debug", 0, &debug, TRUE},
commit d69d5ceaa0ad30e8d4b9783507c59c6d4221de4f
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Mon Jul 4 12:56:38 2011 -0400

    [Indic] Well, at least finding syllables works now :)
    
    Still not much there.

diff --git a/src/hb-ot-shape-complex-indic-machine.rl b/src/hb-ot-shape-complex-indic-machine.rl
index f65995b..e21814d 100644
--- a/src/hb-ot-shape-complex-indic-machine.rl
+++ b/src/hb-ot-shape-complex-indic-machine.rl
@@ -60,7 +60,8 @@ matra_group = M N? H?;
 syllable_tail = SM? (VD VD?)?;
 
 action matched_syllable {
-  //fprintf (stderr, "Syll %d\n", p);
+  matched_syllable (c, last, p);
+  last = p;
 }
 
 consonant_syllable =	(c.N? (z.H|H.z?))* c.N? A? (H.z? | matra_group*)? syllable_tail %(matched_syllable);
@@ -96,6 +97,7 @@ find_syllables (hb_ot_shape_context_t *c)
   p = 0;
   pe = eof = c->buffer->len;
 
+  unsigned int last = 0;
   %%{
     write exec;
   }%%
diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc
index e5601ff..8619b56 100644
--- a/src/hb-ot-shape-complex-indic.cc
+++ b/src/hb-ot-shape-complex-indic.cc
@@ -293,12 +293,19 @@ _hb_ot_shape_complex_collect_features_indic (hb_ot_shape_planner_t *planner, con
 }
 
 
+static void
+matched_syllable (hb_ot_shape_context_t *c,
+		  unsigned int start,
+		  unsigned int end)
+{
+  //fprintf (stderr, "%d %d\n", start, end);
+}
 
 #include "hb-ot-shape-complex-indic-machine.hh"
 
 
 void
-_hb_ot_shape_complex_setup_masks_indic	(hb_ot_shape_context_t *c)
+_hb_ot_shape_complex_setup_masks_indic (hb_ot_shape_context_t *c)
 {
   unsigned int count = c->buffer->len;
 



More information about the HarfBuzz mailing list