diff --git a/ChangeLog b/ChangeLog index 9bf1bec7d..c6967c352 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2014-02-04 Werner Lemberg + + [autofit] Minor fix. + + * src/autofit/afcjk.c (af_cjk_metrics_init_widths), + src/autofit/aflatin.c (af_latin_metrics_init_widths): Fix handling + of alternative standard characters. + This also fixes a compilation warning in non-debug mode. + 2014-02-03 Werner Lemberg [cff] Fix Savannah bug #41363. diff --git a/src/autofit/afcjk.c b/src/autofit/afcjk.c index 96a209349..3a65fc561 100644 --- a/src/autofit/afcjk.c +++ b/src/autofit/afcjk.c @@ -104,40 +104,39 @@ FT_UInt32 standard_char; + standard_char = script_class->standard_char1; af_get_char_index( &metrics->root, - script_class->standard_char1, + standard_char, &glyph_index, &y_offset ); - if ( glyph_index == 0 ) + if ( !glyph_index ) { if ( script_class->standard_char2 ) { + standard_char = script_class->standard_char2; af_get_char_index( &metrics->root, - script_class->standard_char2, + standard_char, &glyph_index, &y_offset ); - if ( glyph_index == 0 ) + if ( !glyph_index ) { if ( script_class->standard_char3 ) { + standard_char = script_class->standard_char3; af_get_char_index( &metrics->root, - script_class->standard_char3, + standard_char, &glyph_index, &y_offset ); - if ( glyph_index == 0 ) + if ( !glyph_index ) goto Exit; - else - standard_char = script_class->standard_char3; } + else + goto Exit; } - else - standard_char = script_class->standard_char2; } else goto Exit; } - else - standard_char = script_class->standard_char1; FT_TRACE5(( "standard character: U+%04lX (glyph index %d)\n", standard_char, glyph_index )); diff --git a/src/autofit/aflatin.c b/src/autofit/aflatin.c index 13351c2fe..e3a7742f4 100644 --- a/src/autofit/aflatin.c +++ b/src/autofit/aflatin.c @@ -98,40 +98,39 @@ * numerals. */ + standard_char = script_class->standard_char1; af_get_char_index( &metrics->root, - script_class->standard_char1, + standard_char, &glyph_index, &y_offset ); - if ( glyph_index == 0 ) + if ( !glyph_index ) { if ( script_class->standard_char2 ) { + standard_char = script_class->standard_char2; af_get_char_index( &metrics->root, - script_class->standard_char2, + standard_char, &glyph_index, &y_offset ); - if ( glyph_index == 0 ) + if ( !glyph_index ) { if ( script_class->standard_char3 ) { + standard_char = script_class->standard_char3; af_get_char_index( &metrics->root, - script_class->standard_char3, + standard_char, &glyph_index, &y_offset ); - if ( glyph_index == 0 ) + if ( !glyph_index ) goto Exit; - else - standard_char = script_class->standard_char3; } + else + goto Exit; } - else - standard_char = script_class->standard_char2; } else goto Exit; } - else - standard_char = script_class->standard_char1; FT_TRACE5(( "standard character: U+%04lX (glyph index %d)\n", standard_char, glyph_index ));