summaryrefslogtreecommitdiff
path: root/pango
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2002-09-29 19:05:01 +0000
committerOwen Taylor <otaylor@src.gnome.org>2002-09-29 19:05:01 +0000
commit60c3018e3246171525eebbc91a40572d6755037d (patch)
tree38bc576e03b16f27ecc8a844f00dcc6bbe58e8e0 /pango
parent12d0958d835e729540cdffc4f9b7ef8f012d493b (diff)
downloadpango-60c3018e3246171525eebbc91a40572d6755037d.tar.gz
Start of merges from freetype1 of OpenType fixes.
Sun Sep 29 14:51:25 2002 Owen Taylor <otaylor@redhat.com> Start of merges from freetype1 of OpenType fixes. (2001-03-17 Werner Lemberg) * pango/opentype/ftxgdef.c pango/opentype/ftxgpos.c pango/opentype/ftxg\sub.c: More fixes for special marks.
Diffstat (limited to 'pango')
-rw-r--r--pango/opentype/ftxgdef.c13
-rw-r--r--pango/opentype/ftxgpos.c6
-rw-r--r--pango/opentype/ftxgsub.c4
3 files changed, 13 insertions, 10 deletions
diff --git a/pango/opentype/ftxgdef.c b/pango/opentype/ftxgdef.c
index e585286f..67b268e9 100644
--- a/pango/opentype/ftxgdef.c
+++ b/pango/opentype/ftxgdef.c
@@ -1152,14 +1152,17 @@
if ( error )
return error;
- /* This is OpenType 1.2 */
-
if ( flags & IGNORE_SPECIAL_MARKS )
+ {
+ /* This is OpenType 1.2 */
+
if ( (flags & 0xFF00) != *property )
return TTO_Err_Not_Covered;
-
- if ( flags & *property )
- return TTO_Err_Not_Covered;
+ }
+ else {
+ if ( flags & *property )
+ return TTO_Err_Not_Covered;
+ }
}
return TT_Err_Ok;
diff --git a/pango/opentype/ftxgpos.c b/pango/opentype/ftxgpos.c
index f9ba1679..c51a6d1f 100644
--- a/pango/opentype/ftxgpos.c
+++ b/pango/opentype/ftxgpos.c
@@ -1694,7 +1694,7 @@
TTO_GPOSHeader* gpos = gpi->gpos;
- if ( in->pos >= in->length )
+ if ( in->pos >= in->length - 1 )
return TTO_Err_Not_Covered; /* Not enough glyphs in stream */
if ( context_length != 0xFFFF && context_length < 2 )
@@ -2355,7 +2355,7 @@
if ( error )
return error;
- if ( property != TTO_MARK )
+ if ( !( property == TTO_MARK || property & IGNORE_SPECIAL_MARKS ) )
break;
i++;
@@ -2763,7 +2763,7 @@
if ( error )
return error;
- if ( property != TTO_MARK )
+ if ( !( property == TTO_MARK || property & IGNORE_SPECIAL_MARKS ) )
break;
i++;
diff --git a/pango/opentype/ftxgsub.c b/pango/opentype/ftxgsub.c
index 6b9d4faf..43a0181b 100644
--- a/pango/opentype/ftxgsub.c
+++ b/pango/opentype/ftxgsub.c
@@ -1203,7 +1203,7 @@
if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) )
return error;
- if ( property == TTO_MARK )
+ if ( property == TTO_MARK || property & IGNORE_SPECIAL_MARKS )
first_is_mark = TRUE;
error = Coverage_Index( &ls->Coverage, in->string[in->pos], &index );
@@ -1243,7 +1243,7 @@
break;
}
- if ( property != TTO_MARK )
+ if ( !( property == TTO_MARK || property & IGNORE_SPECIAL_MARKS ) )
is_mark = FALSE;
if ( s_in[j] != c[i - 1] )