Bug 515484 -- Uniscribe interface handles surrogate pairs incorrectly
authorTor Lillqvist <tml@novell.com>
Mon, 25 Feb 2008 01:26:22 +0000 (01:26 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Mon, 25 Feb 2008 01:26:22 +0000 (01:26 +0000)
2008-02-25  Tor Lillqvist  <tml@novell.com>

Bug 515484 -- Uniscribe interface handles surrogate
pairs incorrectly

* modules/basic/basic-win32.c (itemize_shape_and_place): Pass
correctly offset wchar string to set_up_pango_log_clusters() so
that when it passes the string on to unichar_index() it notices
the surrogate pairs correctly.

svn path=/trunk/; revision=2574

ChangeLog
modules/basic/basic-win32.c

index ee443a4..1e4c2b7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2008-02-25  Tor Lillqvist  <tml@novell.com>
+
+       Bug 515484 – Uniscribe interface handles surrogate
+       pairs incorrectly
+
+       * modules/basic/basic-win32.c (itemize_shape_and_place): Pass
+       correctly offset wchar string to set_up_pango_log_clusters() so
+       that when it passes the string on to unichar_index() it notices
+       the surrogate pairs correctly.
+
 2008-02-24  Tor Lillqvist  <tml@novell.com>
 
        Bug 515484 – Pango on Windows is missing Type 1
index c0880fb..f11b34a 100644 (file)
@@ -367,7 +367,7 @@ dump_glyphs_and_log_clusters (gboolean rtl,
 
 static int
 unichar_index (wchar_t *wtext,
-                               int      ix)
+              int      ix)
 {
   int i, index;
 
@@ -606,7 +606,7 @@ itemize_shape_and_place (PangoFont           *font,
       ng = glyphs->num_glyphs;
       pango_glyph_string_set_size (glyphs, ng + nglyphs);
 
-      set_up_pango_log_clusters (wtext,
+      set_up_pango_log_clusters (wtext + items[item].iCharPos,
                                 items[item].a.fRTL, itemlen, log_clusters,
                                 nglyphs, glyphs->log_clusters + ng,
                                 char_offset);