microsoft / microsoft/terminal
AtlasEngine: Incorrectly broken up MapCharacters runs should be joined before text shaping
- Dominant language
- C++
- Stars
- 105k
- Forks
- 9.6k
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 29
Description
### Windows Terminal version
1.21.2911.0
### Windows build number
10.0.19045.0
### Other Software
_No response_
### Steps to reproduce
Print https://unicode.org/Public/emoji/latest/emoji-test.txt under Windows 10.
### Expected Behavior
All of the emojis work.
### Actual Behavior
All emojis with a U+200D joiner are broken. This is because DirectWrite's `MapCharacters()` is kinda bad and breaks them up. We then pass the broken runs to text shaping which are unable to see that the emoji consists of multiple parts joined together. This causes them to look incorrectly. We need to join the broken runs first and then pass the result to text shaping.
Contributor guide
Assessment
This issue has not been assessed yet.