microsoft/Terminal

“ⓒ" U+24D2 fallback rendering in conhost / GDI

Open

#10.930 aperta il 12 ago 2021

Vedi su GitHub
 (0 commenti) (2 reazioni) (0 assegnatari)C++ (3212 fork)batch import
Area-RenderingHelp WantedIssue-BugPriority-3Product-Conhost

Metriche repository

Star
 (35.764 star)
Metriche merge PR
 (Merge medio 27g 19h) (24 PR mergiate in 30 g)

Descrizione

Windows Terminal version (or Windows build number)

OpenConsole built from the latest source or taken from the latest Terminal Preview, e.g. 1.10.2107.12003

Other Software

No response

Steps to reproduce

  1. Create the following file:
@echo off
chcp 65001

echo ⓒ
echo ⁺ⓒ
  1. Save as test.cmd in UTF-8 encoding (or download test.cmd.txt and rename).
  2. Build and run the latest OpenConsole.
  3. Set the font to Consolas.
  4. Run test.cmd.

Expected Behavior

image

Actual Behavior

image

Details

It looks like the GDI renderer is having issues with the font fallback for the ⓒ - Circled Latin Small Letter C: U+24D2 character. Usually it doesn't work at all and the replacement character is rendered instead. However, as the example above demonstrates, sometimes it magically works in the presence of other Unicode characters, e.g. ⁺ - Superscript Plus Sign: U+207A.

It works as expected in WT and OpenConsole with the DirectX renderer. It also works as expected in other GDI apps with font fallback, e.g. notepad.exe.

Also, it looks like the fallback glyph isn't clipped properly and can overlap with the next one:

image

Guida contributor