summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2005-11-17 06:28:11 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2005-11-17 06:28:11 +0000
commitd4a4b736fa97361a8f5f7d010c1b34cb48d34925 (patch)
tree0075821b8594ef6593a46f672a5b8718c4740a30
parente1cfe6720d1fea7aa47882a31656b24da2a7380f (diff)
downloadpango-d4a4b736fa97361a8f5f7d010c1b34cb48d34925.tar.gz
Part of #101079:
2005-11-17 Behdad Esfahbod <behdad@gnome.org> Part of #101079: * pango/opentype/ftxopen.c (Load_Lookup): In extension subtables, offset is relative to the extension subtable, not the original table. (Greg Aumann) * pango/opentype/ftxgpos.c (Load_BaseArray): When reading BaseAnchor, skip offsets that are zero. Works around bug in Doulos SIL Regular.
-rw-r--r--ChangeLog11
-rw-r--r--pango/opentype/ftxgpos.c6
-rw-r--r--pango/opentype/ftxopen.c6
3 files changed, 21 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index f6c49f56..19498f44 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2005-11-17 Behdad Esfahbod <behdad@gnome.org>
+
+ Part of #101079:
+
+ * pango/opentype/ftxopen.c (Load_Lookup): In extension subtables,
+ offset is relative to the extension subtable, not the original
+ table. (Greg Aumann)
+
+ * pango/opentype/ftxgpos.c (Load_BaseArray): When reading BaseAnchor,
+ skip offsets that are zero. Works around bug in Doulos SIL Regular.
+
2005-11-16 Behdad Esfahbod <behdad@gnome.org>
* docs/pango_markup.sgml docs/tmpl/coverage-maps.sgml
diff --git a/pango/opentype/ftxgpos.c b/pango/opentype/ftxgpos.c
index dee17299..3ebb3023 100644
--- a/pango/opentype/ftxgpos.c
+++ b/pango/opentype/ftxgpos.c
@@ -2080,6 +2080,12 @@
FORGET_Frame();
+ if (new_offset == base_offset) {
+ /* Doulos SIL Regular is buggy and has zer offsets here. Skip */
+ ban[n].PosFormat = 0;
+ continue;
+ }
+
cur_offset = FILE_Pos();
if ( FILE_Seek( new_offset ) ||
( error = Load_Anchor( &ban[n], stream ) ) != TT_Err_Ok )
diff --git a/pango/opentype/ftxopen.c b/pango/opentype/ftxopen.c
index 75f66be5..c2f04850 100644
--- a/pango/opentype/ftxopen.c
+++ b/pango/opentype/ftxopen.c
@@ -631,9 +631,11 @@
if ( FILE_Seek( new_offset ) || ACCESS_Frame( 8L ) )
goto Fail;
- (void)GET_UShort(); /* format should be 1 */
+ if (GET_UShort() != 1) /* format should be 1 */
+ goto Fail;
+
l->LookupType = GET_UShort();
- new_offset = GET_ULong() + base_offset;
+ new_offset += GET_ULong();
FORGET_Frame();
}