[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.
This commit is contained in:
Werner Lemberg 2014-02-04 11:36:08 +01:00
parent ee3778d3d7
commit a8772918a3
3 changed files with 31 additions and 24 deletions

View File

@ -1,3 +1,12 @@
2014-02-04 Werner Lemberg <wl@gnu.org>
[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 <wl@gnu.org>
[cff] Fix Savannah bug #41363.

View File

@ -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 ));

View File

@ -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 ));