[PATCH] gdi32: Adjust a fixed-pitch full-width character has double advance of a half-width character. (try 5)

Alexandre Julliard julliard at winehq.org
Fri Jan 25 05:07:14 CST 2013


Akihiro Sagawa <sagawa.aki at gmail.com> writes:

> Hi,
>
> This patch enhances full-width character glyph advance when we choose
> fixed-pitch font.
>
> Windows 2000 (or XP for Japanese) and later adjust fixed-pitch
> full-width character glyph advances so that two half-width characters'
> advance equals to one full-width character's advance.  Because CJK
> fixed-pitch font, such as MS Gothic, is designed as full-width character
> (e.g. Kanji) has a double advance of half-width character (e.g. ASCII)
> and many developpers expect that.
>
> Please refer Microsoft document KB 417434 [1] and white paper [2] for
> details.
>
> [1] ... http://support.microsoft.com/kb/417434/ja (written in Japanese)
> [2] ... http://msdn.microsoft.com/ja-jp/library/cc979401.aspx (written in Japanese)
>
> try 5:
>  - Add patch description above.
>  - Fix avgAdvance's rounding method. (as in get_outline_text_metrics)
>  - Refine a commit message, "Ensure" to "Adjust" and "double width" to
>    "double advance".
>
> try 4:
>  - Fix full-width character detection that causes test failure.
>
> try 3:
>  - Improve full-width character detection.
>  - Support fake italic transformation.
>  - Choose non-linked fonts in the test case.
>  - Add more trace messages.
>
> try 2:
>  - Add rotated transformation tests.
>
> Regards,
> Akihiro Sagawa
>
> ---
>  dlls/gdi32/freetype.c   |   37 ++++++++++++++++++--
>  dlls/gdi32/tests/font.c |   87 +++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 121 insertions(+), 3 deletions(-)

This is still failing here:

../../../tools/runtest -q -P wine -M gdi32.dll -T ../../.. -p gdi32_test.exe.so font.c && touch font.ok
font.c:2549: Tests skipped: Font Droid Arabic Naskh doesn't contain 'x', skipping the test
font.c:2549: Tests skipped: Font Droid Sans Armenian doesn't contain 'x', skipping the test
font.c:2549: Tests skipped: Font Droid Sans Ethiopic doesn't contain 'x', skipping the test
font.c:2549: Tests skipped: Font Droid Sans Georgian doesn't contain 'x', skipping the test
font.c:2549: Tests skipped: Font Droid Sans Hebrew doesn't contain 'x', skipping the test
font.c:2549: Tests skipped: Font Droid Sans Hebrew doesn't contain 'x', skipping the test
font.c:3008: Tests skipped: Unable to retrieve first and last glyphs from cmap
font.c:2549: Tests skipped: Font Droid Sans Japanese doesn't contain 'x', skipping the test
font.c:2549: Tests skipped: Font Droid Sans Thai doesn't contain 'x', skipping the test
font.c:2549: Tests skipped: Font OpenSymbol doesn't contain 'x', skipping the test
font.c:2549: Tests skipped: Font rsfs10 doesn't contain 'x', skipping the test
font.c:3756: Test failed: expected 19, got 0 (@IPAGothic:128)
make[1]: *** [font.ok] Error 1

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list