gdi32: Fix the GdiGetCodePage() support ANSI_CHARSET font associated charset

Akihiro Sagawa sagawa.aki at gmail.com
Mon Feb 25 09:08:12 CST 2013


On Sun, 24 Feb 2013 09:55:59 +0900, Byeongsik Jeon wrote:

Could you consider adding "(try N)" at the end of subject line?
The rule is documented here:
http://wiki.winehq.org/SubmittingPatches#head-fea51bfdf6a29105a9a6fc6f5886ad0653ae95e5

> diff --git a/dlls/gdi32/font.c b/dlls/gdi32/font.c
> index b274b83..3a99d35 100644
> --- a/dlls/gdi32/font.c
> +++ b/dlls/gdi32/font.c
> @@ -590,11 +590,75 @@ HFONT WINAPI CreateFontW( INT height, INT width, INT esc,

This part looks good.

> diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
(snip)
> +static void update_font_association_info(UINT current_ansi_codepage)
> +{
> +    static const WCHAR font_assoc_reg_keyW[] = {'S','y','s','t','e','m','\\',
> +        'C','u','r','r','e','n','t','C','o','n','t','r','o','l','S','e','t','\\',
> +        'C','o','n','t','r','o','l','\\','F','o','n','t','A','s','s','o','c','\0'};

It is nice introducing separate function for this work. However using
WCHAR is a bit overwork, because ANSI APIs are still used in
update_font_info() especially set_value_key(). Please follow the style
of surrounding code.

> @@ -3615,6 +3675,10 @@ static void update_font_info(void)
>      }
>      if (!done)
>          FIXME("there is no font defaults for codepages %u,%u\n", ansi_cp, oem_cp);
> +
> +    /* update locale dependent font association info in registry */
> +    if (strcmp(buf, cpbuf))
> +        update_font_association_info(ansi_cp);
>  }
>  
>  static BOOL init_freetype(void)

This condition should be rewritten. buf is not initialized when
RegQueryValueExA is failed in line 3542. And strcmp(buf, cpbuf) has
already done in line 3544.

> diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c
> index 943f584..9d57806 100644
> --- a/dlls/gdi32/tests/font.c
> +++ b/dlls/gdi32/tests/font.c

Why are there no tests against OEM_CHARSET and SYMBOL_CHARSET?

Regards,
Akihiro Sagawa




More information about the wine-devel mailing list