On Tuesday, 8 November 2016 2:25 AM, Akihiro Sagawa wrote:
On Sun, 6 Nov 2016 22:56:17 +0000, Hugh McMaster wrote:
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?
SBCS mode: My test shows even Kanji characters use a one cell in SBCS console buffer. Thus, I guess no character occupies two cells. However, Kanji glyph has twice width of ASCII character. So, we need to consider them.
I did some testing on my Windows system with the locale set to Japanese. The keyboard IME gave me Hiragana, full-width Katakana and alphanumeric, and half-width Katakana and alphanumeric.
I couldn't type much in Japanese. Most of the keys gave me alphanumeric characters. When using the full-width character set, each character (including alphanumeric) had a lot of space surrounding it. Half-width characters appeared normally.
DBCS mode: ASCII characters and half-width Katakana characters need one cell
> buffer. Others, such as Kanji, need two cell buffers. Please note some
symbols in ISO-8859-1 (e.g. multiplication sign) use two cell buffers in DBCS mode.
Language question: can half-width and full-width characters appear together in the same sentence? I'm wondering how the console determines the width required? Does it use some kind of WINAPI call for the character set?
There is a font glyph issue, too. For instance, fixed-pitch Western font is designed multiplication sign as the same width as ASCII character (as seen in ISO-8859-1). But, it should have as the same width as Kanji for DBCS mode. It could be possible to reject Western-style font for DBCS console.
That seems fair. IIRC, @-prefixed Asian fonts are not allowed in the SBCS Windows console.