diff options
author | Owen Taylor <otaylor@redhat.com> | 2002-09-29 19:05:01 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2002-09-29 19:05:01 +0000 |
commit | 60c3018e3246171525eebbc91a40572d6755037d (patch) | |
tree | 38bc576e03b16f27ecc8a844f00dcc6bbe58e8e0 /pango | |
parent | 12d0958d835e729540cdffc4f9b7ef8f012d493b (diff) | |
download | pango-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.c | 13 | ||||
-rw-r--r-- | pango/opentype/ftxgpos.c | 6 | ||||
-rw-r--r-- | pango/opentype/ftxgsub.c | 4 |
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] ) |