[HarfBuzz] harfbuzz-ng: Branch 'master'

Behdad Esfahbod behdad at kemper.freedesktop.org
Wed Jul 20 21:29:18 PDT 2011


 TODO             |    6 ------
 src/hb-buffer.cc |    5 +++++
 2 files changed, 5 insertions(+), 6 deletions(-)

New commits:
commit dd89d958c139d85efb776fffaf314eead3952c78
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Jul 21 00:28:57 2011 -0400

    Fix cluster calculation for non-LTR text

diff --git a/TODO b/TODO
index e15e295..04852c6 100644
--- a/TODO
+++ b/TODO
@@ -1,12 +1,6 @@
 General fixes:
 =============
 
-- Instead of forming clusters immediately, only do it if we are reversing
-  the text.  We'd need a separate bit to indicate cluster start then.
-
-- Right now, BTW, for non-native direction runs, we get the cluster wrong...
-  Should do min(input-glyphs.cluster)
-
 - Fix TT 'kern' on/off and GPOS interaction (move kerning before GPOS)
 
 - Do proper rounding when scaling from font space?
diff --git a/src/hb-buffer.cc b/src/hb-buffer.cc
index 0c16303..b65ddbb 100644
--- a/src/hb-buffer.cc
+++ b/src/hb-buffer.cc
@@ -386,6 +386,11 @@ _hb_buffer_replace_glyphs_be16 (hb_buffer_t *buffer,
   }
 
   hb_glyph_info_t orig_info = buffer->info[buffer->i];
+  for (unsigned int i = 1; i < num_in; i++)
+  {
+    hb_glyph_info_t *info = &buffer->info[buffer->i + i];
+    orig_info.cluster = MIN (orig_info.cluster, info->cluster);
+  }
 
   for (unsigned int i = 0; i < num_out; i++)
   {



More information about the HarfBuzz mailing list