Am 26.04.2021 um 01:14 schrieb Lemures Lemniscati via Cygwin:
On Sun, 25 Apr 2021 22:33:57 +0200, Thomas Wolff
Am 25.04.2021 um 15:41 schrieb Lemures Lemniscati via Cygwin:
Hi!

mintty overstrokes some fonts unexpectedly.
https://gitlab.com/test.cases/mintty-test/-/tree/54ae800e695ecd1741851cab57320a9d0e95a6fd

I got a result mintty-sample-msgothic.png.
https://gitlab.com/test.cases/mintty-test/-/blob/54ae800e695ecd1741851cab57320a9d0e95a6fd/mintty-sample-msgothic.png

In the 4th line of the output, fonts (of u+25cb) were overstruck
unexpectedly.
And there are other characters also, which are similarly overstruck.
This is a Windows bug. Mintty clearly instruct Windows to apply equidistant 
spacing to achieve fixed-width character cell behaviour. But for certain 
character ranges, Windows ignores that. Another example for such misbehaviour 
is the Tibetan block (U+0F00-U+0FFF). Mintty could work around that by 
rendering characters separately, at a significant penalty for output speed 
however. Or it could do that only for affected ranges, but criteria to identify 
them are obscure.
Thank you, Thomas.

I tried some earlier versions of mintty:

* mintty-3.1.0-1 has the same issue
* mintty-2.9.6-0 works expectedly in this case.
My previous comment was wrong, sorry. The cause of the issue is that the Windows CJK fonts are designed for CJK ambiguous-wide layout. If you run mintty with option Charwidth=ambig-wide, or better in an ambiguous-wide locale like LC_CTYPE=C.utf8@cjkwide, width handling and font rendering will match. Mintty applies auto-narrowing to some characters that would render far out of their character cell, squeezing them into the cell, in order to optimise the trade-off between readability and authentic rendering. Some character ranges were taken out of that mechanism in 2.9.7, including the Geometric Shapes which you've encountered, in this case because they are "geometric" and the assumption was that they should not be tampered for rendering.

Thomas

--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to