gdi32/path.c -- Allow PATH_ExtTextOut() handle nonprintablecharacters

Dmitry Timoshkov dmitry at codeweavers.com
Mon Mar 16 21:29:27 CDT 2009


"Massimo Del Fedele" <max at veneto.com> wrote:

>> This patch doesn't match the normal logic of ExtTextOut implemented
>> in dlls/winex11.drv/xrender.c, also this requires a test case for
>> both code paths.
>> 
> 
> Why ? As is it now PATH_ExtTextOut() simply returns FALSE on first space 
> or non-printable glyph, you can see easily printing something like
> "THIS IS A TEST" on an open path.
> BTW, this behaviour (GetGlyphOutlineW returning NULL on spaces) is quite 
> well known, and is NOT an error value, simply there's no glyph outline 
> for non-printable characters, so the requested buffer size is NULL; the 
> function just outputs the metrics.

You need to make PATH_ExtTextOut() behave like dlls/winex11.drv/xrender.c,
X11DRV_XRender_ExtTextOut() does, i.e. treat GDI_ERROR as an error case,
not 0.

> Also, I don't know how to make a testcase with no graphic output.... If 
> you have some suggestion about, I can make one.

GetGlyphOutlineW doesn't produce any graphic output.

-- 
Dmitry.



More information about the wine-devel mailing list