Huw Davies : gdi32: Simplify the code for charmap selection.
Module: wine Branch: master Commit: 8ef70039d366bf45900c7e7999767be2ccf9704c URL: http://source.winehq.org/git/wine.git/?a=commit;h=8ef70039d366bf45900c7e7999... Author: Huw Davies <huw(a)codeweavers.com> Date: Fri Oct 26 14:04:04 2012 +0100 gdi32: Simplify the code for charmap selection. --- dlls/gdi32/freetype.c | 26 ++++++++++++++++---------- 1 files changed, 16 insertions(+), 10 deletions(-) diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index 81ba8a3..c62070f 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -4408,6 +4408,21 @@ static BOOL freetype_DeleteDC( PHYSDEV dev ) return TRUE; } +static FT_Encoding pick_charmap( FT_Face face, int charset ) +{ + static const FT_Encoding regular_order[] = { FT_ENCODING_UNICODE, FT_ENCODING_APPLE_ROMAN, 0 }; + static const FT_Encoding symbol_order[] = { FT_ENCODING_MS_SYMBOL, FT_ENCODING_UNICODE, FT_ENCODING_APPLE_ROMAN, 0 }; + const FT_Encoding *encs = regular_order; + + if (charset == SYMBOL_CHARSET) encs = symbol_order; + + while (*encs != 0) + { + if (select_charmap( face, *encs )) break; + encs++; + } + return *encs; +} /************************************************************* * freetype_SelectFont @@ -4824,16 +4839,7 @@ found_face: ret->ntmFlags = face->ntmFlags; - if (ret->charset == SYMBOL_CHARSET && - select_charmap(ret->ft_face, FT_ENCODING_MS_SYMBOL)) { - /* No ops */ - } - else if (select_charmap(ret->ft_face, FT_ENCODING_UNICODE)) { - /* No ops */ - } - else { - select_charmap(ret->ft_face, FT_ENCODING_APPLE_ROMAN); - } + pick_charmap( ret->ft_face, ret->charset ); ret->orientation = FT_IS_SCALABLE(ret->ft_face) ? lf.lfOrientation : 0; ret->name = psub ? strdupW(psub->from.name) : strdupW(family->FamilyName);
participants (1)
-
Alexandre Julliard