Commit 0003cb916224aa7d12b4cf4c619631ea8932b878

Werner Lemberg 2016-03-26T07:34:30

[pfr] Fix handling of compound glyphs. Extra items are indicated with different bit positions. * src/pfr/pfrtypes.h (PFR_GlyphFlags): Replace `PFR_GLYPH_EXTRA_ITEMS' with `PFR_GLYPH_SIMPLE_EXTRA_ITEMS' and `PFR_GLYPH_COMPOUND_EXTRA_ITEMS'. * src/pfr/pfrgload.c (pfr_glyph_load_simple, pfr_glyph_load_compound): Use them.

diff --git a/ChangeLog b/ChangeLog
index 0769eeb..91063ce 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,18 @@
 2016-03-25  Werner Lemberg  <wl@gnu.org>
 
+	[pfr] Fix handling of compound glyphs.
+
+	Extra items are indicated with different bit positions.
+
+	* src/pfr/pfrtypes.h (PFR_GlyphFlags): Replace
+	`PFR_GLYPH_EXTRA_ITEMS' with `PFR_GLYPH_SIMPLE_EXTRA_ITEMS' and
+	`PFR_GLYPH_COMPOUND_EXTRA_ITEMS'.
+
+	* src/pfr/pfrgload.c (pfr_glyph_load_simple,
+	pfr_glyph_load_compound): Use them.
+
+2016-03-25  Werner Lemberg  <wl@gnu.org>
+
 	[pfr] Minor.
 
 	* src/pfr/pfrsbit.c, srf/pfr/pfrobjs.c: Use flag names instead of
diff --git a/src/pfr/pfrgload.c b/src/pfr/pfrgload.c
index 1dbbf95..f9cd1f6 100644
--- a/src/pfr/pfrgload.c
+++ b/src/pfr/pfrgload.c
@@ -336,7 +336,7 @@
     /* XXX: we ignore the secondary stroke and edge definitions */
     /*      since we don't support native PFR hinting           */
     /*                                                          */
-    if ( flags & PFR_GLYPH_EXTRA_ITEMS )
+    if ( flags & PFR_GLYPH_SINGLE_EXTRA_ITEMS )
     {
       error = pfr_extra_items_skip( &p, limit );
       if ( error )
@@ -579,7 +579,7 @@
 
     /* ignore extra items when present */
     /*                                 */
-    if ( flags & PFR_GLYPH_EXTRA_ITEMS )
+    if ( flags & PFR_GLYPH_COMPOUND_EXTRA_ITEMS )
     {
       error = pfr_extra_items_skip( &p, limit );
       if ( error )
diff --git a/src/pfr/pfrtypes.h b/src/pfr/pfrtypes.h
index 592acbd..09649b9 100644
--- a/src/pfr/pfrtypes.h
+++ b/src/pfr/pfrtypes.h
@@ -291,8 +291,11 @@ FT_BEGIN_HEADER
 
   typedef enum  PFR_GlyphFlags_
   {
-    PFR_GLYPH_IS_COMPOUND   = 0x80,
-    PFR_GLYPH_EXTRA_ITEMS   = 0x08,
+    PFR_GLYPH_IS_COMPOUND = 0x80,
+
+    PFR_GLYPH_SINGLE_EXTRA_ITEMS   = 0x08,
+    PFR_GLYPH_COMPOUND_EXTRA_ITEMS = 0x40,
+
     PFR_GLYPH_1BYTE_XYCOUNT = 0x04,
     PFR_GLYPH_XCOUNT        = 0x02,
     PFR_GLYPH_YCOUNT        = 0x01