wineconsole: Correctly handle TrueType font widths

Hugh McMaster hugh.mcmaster at outlook.com
Sun Nov 6 16:56:17 CST 2016


On Friday, 4 November 2016 3:00 AM, Akihiro Sagawa wrote:
> I have questions. How DBCS characters is rendered with our
> implementation? Do they use double columns, or single column?
> AFAIK, on native Western console, all characters are rendered in a single
> column and Kanji is shown as a white square box. However, in Japanese
> locale, Kanji uses two columns (as described in the previous mail).

> IMHO, wineconsole should have two mode: SBCS mode and DBCS one. The mode
> depends on console codepage. As a workaround for Western font issue, I
> suggest wineconsole uses tmAvgCharWidth for cell width and ignores (or
> replaces) full-width characters by using GetCharacterType and
> C3_FULLWIDTH *only* for SBCS locales. So, this will be the first step of
> SBCS mode.

Sorry for the delayed reply.

Wineconsole currently renders a standard grid. The default configuration is 80 single columns with 25 rows.
One character is rendered per column. Kanji is shown as either a white box or a question mark, depending
on the codepage and the font used.

I agree that wineconsole should have two modes, but I'm not sure we need special handling for full width
characters in Western locales. Actually, I'm interested to find out how many full-width characters are in
SBCS locales.

How can we know whether a DBCS character needs one or two cells for rendering?

We may also want to consider dropping support for the (n)curses backend as part of a broader wineconsole
update.


More information about the wine-devel mailing list