-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Card suite Unicode characters are the wrong width #5822
Comments
I've just been checking the rest of the CP437 characters, and there are few more that I think shouldn't be wide:
|
Augh, we deserve this for our hubris. Thank you. 😁 |
(I'll have you know that I am still laughing at this.) |
I'm actually yanking this into the v1 milestone -- we broke it in the run-up to v1, we should darned well fix it for v1. |
Note that the white smiling face was supposedly added to Cascadia Code in PR 213 (microsoft/cascadia-code#213) so I'm assuming that should be rendered correctly whenever the font is next released. However, I'm curious what fallback font is producing the color versions of all of these characters. Every fixed space font I've tried seems to have them as monochrome. It's only when the glyphs aren't included that I'm getting a fallback that's in color. Where is that coming from? |
So, it looks like there's an automatic fallback (in DirectWrite) to "Segoe UI Emoji" for this codepoint range. |
A couple of codepoints, namely the card suites, male and female signs, and white and black smiling faces were changed to have a two-column width as part of #5795 since they were specified as emoji in Unicode's emoji list v13.0[1]. These particular glyphs also show up in some of the most fundamental code pages, such as CP437[2] and WGL4[3]. We should not be touching the width of the glyphs in these codepages, as suddenly changing a long-time-running narrow glyph to use two-columns all of a sudden will surely break (and has already broken) things. [1] https://www.unicode.org/Public/13.0.0/ucd/emoji/emoji-data.txt [2] https://en.wikipedia.org/wiki/Code_page_437 [3] https://en.wikipedia.org/wiki/Windows_Glyph_List_4 Closes #5822
A couple of codepoints, namely the card suites, male and female signs, and white and black smiling faces were changed to have a two-column width as part of #5795 since they were specified as emoji in Unicode's emoji list v13.0[1]. These particular glyphs also show up in some of the most fundamental code pages, such as CP437[2] and WGL4[3]. We should not be touching the width of the glyphs in these codepages, as suddenly changing a long-time-running narrow glyph to use two-columns all of a sudden will surely break (and has already broken) things. [1] https://www.unicode.org/Public/13.0.0/ucd/emoji/emoji-data.txt [2] https://en.wikipedia.org/wiki/Code_page_437 [3] https://en.wikipedia.org/wiki/Windows_Glyph_List_4 Closes #5822 (cherry picked from commit cf62922)
A couple of codepoints, namely the card suites, male and female signs, and white and black smiling faces were changed to have a two-column width as part of microsoft#5795 since they were specified as emoji in Unicode's emoji list v13.0[1]. These particular glyphs also show up in some of the most fundamental code pages, such as CP437[2] and WGL4[3]. We should not be touching the width of the glyphs in these codepages, as suddenly changing a long-time-running narrow glyph to use two-columns all of a sudden will surely break (and has already broken) things. [1] https://www.unicode.org/Public/13.0.0/ucd/emoji/emoji-data.txt [2] https://en.wikipedia.org/wiki/Code_page_437 [3] https://en.wikipedia.org/wiki/Windows_Glyph_List_4 Closes microsoft#5822
Environment
Windows build number: Version 10.0.18362.657
Windows Terminal version (if applicable): Commit 7ae3433
Steps to reproduce
printf "\u2660\u2663\u2665\u2666\n"
Expected behavior
This should print our the four card suite Unicode characters, each being one cell wide. Here's what it used to look like in conhost:
Actual behavior
Each characters occupies two cells now.
I wouldn't be too concerned if these were some recently invented emoji like crying kitten, or dancing monkey with umbrella. But these characters are from the default cmd shell code page (CP437), and they've been narrow characters for going on 40 years now. They're even included in the WGL4 character repertoire. Changing their width is almost guaranteed to break things.
I'm sorry I didn't bring this up before PR #5795 was merged, but I wasn't paying attention to the actual characters that were being changed. I only noticed now when I was testing some of my own code and found that this broke Vttest (it uses the diamond character in a couple of the tests).
The text was updated successfully, but these errors were encountered: