summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog13
-rw-r--r--src/pfr/pfrgload.c4
-rw-r--r--src/pfr/pfrtypes.h7
3 files changed, 20 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 0769eebf0..91063ce27 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 1dbbf95da..f9cd1f63b 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 592acbd7d..09649b9d8 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