https://bugs.winehq.org/show_bug.cgi?id=44410
Bug ID: 44410 Summary: UltraISO setup uses wrong char widths in path edit box Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: usp10 Assignee: wine-bugs@winehq.org Reporter: thomas.faber@reactos.org Regression SHA1: fb44feb62fd8b49edd27921bc6bc3682d14c1254 Distribution: ---
Created attachment 60335 --> https://bugs.winehq.org/attachment.cgi?id=60335 Screenshot
The path edit box in UltraISO's setup shows a broken font display since fb44feb62fd (usp10: Re-use script caches for the same font). It's most clearly visible with the first backslash, which has too much white space on its left (see screenshot).
I've tracked it down to the fact that calls to ScriptPlaceOpenType are made with psa->fNoGlyphIndex values of both TRUE and FALSE, leading to the widths[] array being populated with both character and glyph indexes. Whichever is requested first will be written to the cache and then used for both. As far as I understand, this issue has existed before the guilty commit, it is just easier to hit now due to the cache re-use. It would seem a fix should either use two separate caches (one indexed by character, one by glyph), or consistently use one of the two as the index to widths[], and possibly keep a char<->glyph lookup table in addition.
Related ReactOS bug: https://jira.reactos.org/browse/CORE-14226