diff options
author | Owen Taylor <otaylor@redhat.com> | 2004-07-26 19:20:27 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2004-07-26 19:20:27 +0000 |
commit | 1f5c74ea1650c21bdef9afdf2ba483e53b7ee439 (patch) | |
tree | ff31f5384d9fdcdcbe2379ba626ea14f3a4599f1 | |
parent | f158dfc34f9b750cc97001dde18db2337628d97a (diff) | |
download | pango-1f5c74ea1650c21bdef9afdf2ba483e53b7ee439.tar.gz |
Match backtrack context against the output glyphs not the input glyphs
Mon Jul 26 15:16:07 2004 Owen Taylor <otaylor@redhat.com>
* pango/opentype/ftxgsub.c (Lookup_ChainContextSubst[123]):
Match backtrack context against the output glyphs not
the input glyphs (#145174, Aamir Wali)
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | ChangeLog.pre-1-10 | 6 | ||||
-rw-r--r-- | ChangeLog.pre-1-6 | 6 | ||||
-rw-r--r-- | ChangeLog.pre-1-8 | 6 | ||||
-rw-r--r-- | pango/opentype/ftxgsub.c | 24 |
5 files changed, 36 insertions, 12 deletions
@@ -1,3 +1,9 @@ +Mon Jul 26 15:16:07 2004 Owen Taylor <otaylor@redhat.com> + + * pango/opentype/ftxgsub.c (Lookup_ChainContextSubst[123]): + Match backtrack context against the output glyphs not + the input glyphs (#145174, Aamir Wali) + Mon Jul 26 14:49:22 2004 Owen Taylor <otaylor@redhat.com> * ftxgdef.[ch] otlbuffer.[ch]: Make Check_Property() take a diff --git a/ChangeLog.pre-1-10 b/ChangeLog.pre-1-10 index 293df95b..fa3fbdcf 100644 --- a/ChangeLog.pre-1-10 +++ b/ChangeLog.pre-1-10 @@ -1,3 +1,9 @@ +Mon Jul 26 15:16:07 2004 Owen Taylor <otaylor@redhat.com> + + * pango/opentype/ftxgsub.c (Lookup_ChainContextSubst[123]): + Match backtrack context against the output glyphs not + the input glyphs (#145174, Aamir Wali) + Mon Jul 26 14:49:22 2004 Owen Taylor <otaylor@redhat.com> * ftxgdef.[ch] otlbuffer.[ch]: Make Check_Property() take a diff --git a/ChangeLog.pre-1-6 b/ChangeLog.pre-1-6 index 293df95b..fa3fbdcf 100644 --- a/ChangeLog.pre-1-6 +++ b/ChangeLog.pre-1-6 @@ -1,3 +1,9 @@ +Mon Jul 26 15:16:07 2004 Owen Taylor <otaylor@redhat.com> + + * pango/opentype/ftxgsub.c (Lookup_ChainContextSubst[123]): + Match backtrack context against the output glyphs not + the input glyphs (#145174, Aamir Wali) + Mon Jul 26 14:49:22 2004 Owen Taylor <otaylor@redhat.com> * ftxgdef.[ch] otlbuffer.[ch]: Make Check_Property() take a diff --git a/ChangeLog.pre-1-8 b/ChangeLog.pre-1-8 index 293df95b..fa3fbdcf 100644 --- a/ChangeLog.pre-1-8 +++ b/ChangeLog.pre-1-8 @@ -1,3 +1,9 @@ +Mon Jul 26 15:16:07 2004 Owen Taylor <otaylor@redhat.com> + + * pango/opentype/ftxgsub.c (Lookup_ChainContextSubst[123]): + Match backtrack context against the output glyphs not + the input glyphs (#145174, Aamir Wali) + Mon Jul 26 14:49:22 2004 Owen Taylor <otaylor@redhat.com> * ftxgdef.[ch] otlbuffer.[ch]: Make Check_Property() take a diff --git a/pango/opentype/ftxgsub.c b/pango/opentype/ftxgsub.c index 8da8ff47..52b498c9 100644 --- a/pango/opentype/ftxgsub.c +++ b/pango/opentype/ftxgsub.c @@ -3207,7 +3207,7 @@ /* check whether context is too long; it is a first guess only */ - if ( bgc > buffer->in_pos || buffer->in_pos + igc + lgc > buffer->in_length ) + if ( bgc > buffer->out_pos || buffer->in_pos + igc + lgc > buffer->in_length ) goto next_chainsubrule; if ( bgc ) @@ -3215,9 +3215,9 @@ /* since we don't know in advance the number of glyphs to inspect, we search backwards for matches in the backtrack glyph array */ - for ( i = 0, j = buffer->in_pos - 1; i < bgc; i++, j-- ) + for ( i = 0, j = buffer->out_pos - 1; i < bgc; i++, j-- ) { - while ( CHECK_Property( gdef, IN_ITEM( j ), flags, &property ) ) + while ( CHECK_Property( gdef, OUT_ITEM( j ), flags, &property ) ) { if ( error && error != TTO_Err_Not_Covered ) return error; @@ -3237,7 +3237,7 @@ Backtrack offsets - 3 2 1 0 Lookahead offsets - 0 1 2 3 */ - if ( IN_GLYPH( j ) != curr_csr.Backtrack[i] ) + if ( OUT_GLYPH( j ) != curr_csr.Backtrack[i] ) goto next_chainsubrule; } } @@ -3373,7 +3373,7 @@ /* check whether context is too long; it is a first guess only */ - if ( bgc > buffer->in_pos || buffer->in_pos + igc + lgc > buffer->in_length ) + if ( bgc > buffer->out_pos || buffer->in_pos + igc + lgc > buffer->in_length ) goto next_chainsubclassrule; if ( bgc ) @@ -3384,9 +3384,9 @@ bc = ccsr.Backtrack; - for ( i = 0, j = buffer->in_pos - 1; i < bgc; i++, j-- ) + for ( i = 0, j = buffer->out_pos - 1; i < bgc; i++, j-- ) { - while ( CHECK_Property( gdef, IN_ITEM( j ), flags, &property ) ) + while ( CHECK_Property( gdef, OUT_ITEM( j ), flags, &property ) ) { if ( error && error != TTO_Err_Not_Covered ) goto End1; @@ -3400,7 +3400,7 @@ { /* Keeps us from having to do this for each rule */ - error = Get_Class( &ccsf2->BacktrackClassDef, IN_GLYPH( j ), + error = Get_Class( &ccsf2->BacktrackClassDef, OUT_GLYPH( j ), &backtrack_classes[i], NULL ); if ( error && error != TTO_Err_Not_Covered ) goto End1; @@ -3528,7 +3528,7 @@ /* check whether context is too long; it is a first guess only */ - if ( bgc > buffer->in_pos || buffer->in_pos + igc + lgc > buffer->in_length ) + if ( bgc > buffer->out_pos || buffer->in_pos + igc + lgc > buffer->in_length ) return TTO_Err_Not_Covered; if ( bgc ) @@ -3538,9 +3538,9 @@ bc = ccsf3->BacktrackCoverage; - for ( i = 0, j = buffer->in_pos - 1; i < bgc; i++, j-- ) + for ( i = 0, j = buffer->out_pos - 1; i < bgc; i++, j-- ) { - while ( CHECK_Property( gdef, IN_ITEM( j ), flags, &property ) ) + while ( CHECK_Property( gdef, OUT_ITEM( j ), flags, &property ) ) { if ( error && error != TTO_Err_Not_Covered ) return error; @@ -3550,7 +3550,7 @@ j--; } - error = Coverage_Index( &bc[i], IN_GLYPH( j ), &index ); + error = Coverage_Index( &bc[i], OUT_GLYPH( j ), &index ); if ( error ) return error; } |