diff options
author | Owen Taylor <otaylor@redhat.com> | 2003-07-26 03:45:44 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2003-07-26 03:45:44 +0000 |
commit | c57bd1a6feef3897ee32ca35be60cc6853e225d6 (patch) | |
tree | b2351a15b102b7404628bdfd2d7cf289d59af4b2 | |
parent | c5de22dff904737b73ec22f070aa44b662a992e5 (diff) | |
download | pango-c57bd1a6feef3897ee32ca35be60cc6853e225d6.tar.gz |
OpenType-1.4 update: backtrack information is stored with the item closest
Fri Jul 25 23:38:07 2003 Owen Taylor <otaylor@redhat.com>
* pango/opentype/ftxgpos.c pango/opentype/ftxgsub.c:
OpenType-1.4 update: backtrack information is stored with the
item closest to the input first (From FreeType,
Werner Lemberg, 2002-09-26)
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | ChangeLog.pre-1-10 | 7 | ||||
-rw-r--r-- | ChangeLog.pre-1-4 | 7 | ||||
-rw-r--r-- | ChangeLog.pre-1-6 | 7 | ||||
-rw-r--r-- | ChangeLog.pre-1-8 | 7 | ||||
-rw-r--r-- | pango/opentype/ftxgpos.c | 26 | ||||
-rw-r--r-- | pango/opentype/ftxgsub.c | 24 |
7 files changed, 70 insertions, 15 deletions
@@ -1,3 +1,10 @@ +Fri Jul 25 23:38:07 2003 Owen Taylor <otaylor@redhat.com> + + * pango/opentype/ftxgpos.c pango/opentype/ftxgsub.c: + OpenType-1.4 update: backtrack information is stored with the + item closest to the input first (From FreeType, + Werner Lemberg, 2002-09-26) + Fri Jul 25 23:07:06 2003 Owen Taylor <otaylor@redhat.com> Update of GPOS and GSUB support to OpenType 1.3 diff --git a/ChangeLog.pre-1-10 b/ChangeLog.pre-1-10 index 37251a3d..9407297b 100644 --- a/ChangeLog.pre-1-10 +++ b/ChangeLog.pre-1-10 @@ -1,3 +1,10 @@ +Fri Jul 25 23:38:07 2003 Owen Taylor <otaylor@redhat.com> + + * pango/opentype/ftxgpos.c pango/opentype/ftxgsub.c: + OpenType-1.4 update: backtrack information is stored with the + item closest to the input first (From FreeType, + Werner Lemberg, 2002-09-26) + Fri Jul 25 23:07:06 2003 Owen Taylor <otaylor@redhat.com> Update of GPOS and GSUB support to OpenType 1.3 diff --git a/ChangeLog.pre-1-4 b/ChangeLog.pre-1-4 index 37251a3d..9407297b 100644 --- a/ChangeLog.pre-1-4 +++ b/ChangeLog.pre-1-4 @@ -1,3 +1,10 @@ +Fri Jul 25 23:38:07 2003 Owen Taylor <otaylor@redhat.com> + + * pango/opentype/ftxgpos.c pango/opentype/ftxgsub.c: + OpenType-1.4 update: backtrack information is stored with the + item closest to the input first (From FreeType, + Werner Lemberg, 2002-09-26) + Fri Jul 25 23:07:06 2003 Owen Taylor <otaylor@redhat.com> Update of GPOS and GSUB support to OpenType 1.3 diff --git a/ChangeLog.pre-1-6 b/ChangeLog.pre-1-6 index 37251a3d..9407297b 100644 --- a/ChangeLog.pre-1-6 +++ b/ChangeLog.pre-1-6 @@ -1,3 +1,10 @@ +Fri Jul 25 23:38:07 2003 Owen Taylor <otaylor@redhat.com> + + * pango/opentype/ftxgpos.c pango/opentype/ftxgsub.c: + OpenType-1.4 update: backtrack information is stored with the + item closest to the input first (From FreeType, + Werner Lemberg, 2002-09-26) + Fri Jul 25 23:07:06 2003 Owen Taylor <otaylor@redhat.com> Update of GPOS and GSUB support to OpenType 1.3 diff --git a/ChangeLog.pre-1-8 b/ChangeLog.pre-1-8 index 37251a3d..9407297b 100644 --- a/ChangeLog.pre-1-8 +++ b/ChangeLog.pre-1-8 @@ -1,3 +1,10 @@ +Fri Jul 25 23:38:07 2003 Owen Taylor <otaylor@redhat.com> + + * pango/opentype/ftxgpos.c pango/opentype/ftxgsub.c: + OpenType-1.4 update: backtrack information is stored with the + item closest to the input first (From FreeType, + Werner Lemberg, 2002-09-26) + Fri Jul 25 23:07:06 2003 Owen Taylor <otaylor@redhat.com> Update of GPOS and GSUB support to OpenType 1.3 diff --git a/pango/opentype/ftxgpos.c b/pango/opentype/ftxgpos.c index a183a05c..5137719d 100644 --- a/pango/opentype/ftxgpos.c +++ b/pango/opentype/ftxgpos.c @@ -5264,7 +5264,7 @@ curr_pos = 0; s_in = &in->string[curr_pos]; - for ( i = bgc, j = in->pos - 1; i > 0; i--, j-- ) + for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- ) { while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) { @@ -5277,11 +5277,21 @@ break; } - if ( s_in[j] != curr_cpr.Backtrack[i - 1] ) + /* In OpenType 1.3, it is undefined whether the offsets of + backtrack glyphs is in logical order or not. Version 1.4 + will clarify this: + + Logical order - a b c d e f g h i j + i + Input offsets - 0 1 + Backtrack offsets - 3 2 1 0 + Lookahead offsets - 0 1 2 3 */ + + if ( s_in[j] != curr_cpr.Backtrack[i] ) break; } - if ( i != 0 ) + if ( i != bgc ) continue; } @@ -5465,7 +5475,7 @@ known_backtrack_classes = i; } - if ( bc[bgc - 1 - i] != backtrack_classes[i] ) + if ( bc[i] != backtrack_classes[i] ) break; } @@ -5613,7 +5623,7 @@ s_in = &in->string[curr_pos]; bc = ccpf3->BacktrackCoverage; - for ( i = bgc, j = in->pos - 1; i > 0; i--, j-- ) + for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- ) { while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) { @@ -5626,7 +5636,7 @@ return TTO_Err_Not_Covered; } - error = Coverage_Index( &bc[i - 1], s_in[j], &index ); + error = Coverage_Index( &bc[i], s_in[j], &index ); if ( error ) return error; } @@ -5656,8 +5666,8 @@ return error; } - /* we are starting for lookahead glyphs right after the last context - glyph */ + /* we are starting to check for lookahead glyphs right after the + last context glyph */ curr_pos = j; s_in = &in->string[curr_pos]; diff --git a/pango/opentype/ftxgsub.c b/pango/opentype/ftxgsub.c index 148b3a6c..f56ae6f1 100644 --- a/pango/opentype/ftxgsub.c +++ b/pango/opentype/ftxgsub.c @@ -3423,13 +3423,13 @@ if ( bgc ) { - /* Since we don't know in advance the number of glyphs to inspect, + /* since we don't know in advance the number of glyphs to inspect, we search backwards for matches in the backtrack glyph array */ curr_pos = 0; s_in = &in->string[curr_pos]; - for ( i = bgc, j = in->pos - 1; i > 0; i--, j-- ) + for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- ) { while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) { @@ -3442,11 +3442,21 @@ break; } - if ( s_in[j] != curr_csr.Backtrack[i - 1] ) + /* In OpenType 1.3, it is undefined whether the offsets of + backtrack glyphs is in logical order or not. Version 1.4 + will clarify this: + + Logical order - a b c d e f g h i j + i + Input offsets - 0 1 + Backtrack offsets - 3 2 1 0 + Lookahead offsets - 0 1 2 3 */ + + if ( s_in[j] != curr_csr.Backtrack[i] ) break; } - if ( i != 0 ) + if ( i != bgc ) continue; } @@ -3630,7 +3640,7 @@ known_backtrack_classes = i; } - if ( bc[bgc - 1 - i] != backtrack_classes[i] ) + if ( bc[i] != backtrack_classes[i] ) break; } @@ -3777,7 +3787,7 @@ s_in = &in->string[curr_pos]; bc = ccsf3->BacktrackCoverage; - for ( i = bgc, j = in->pos - 1; i > 0; i--, j-- ) + for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- ) { while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) { @@ -3790,7 +3800,7 @@ return TTO_Err_Not_Covered; } - error = Coverage_Index( &bc[i - 1], s_in[j], &index ); + error = Coverage_Index( &bc[i], s_in[j], &index ); if ( error ) return error; } |