mirror of
https://github.com/microsoft/terminal.git
synced 2025-12-10 00:48:23 -06:00
Page:
Console: Potential Breaking Changes
Pages
Applications with Settings Fragments
CODE_OWNERS
Console: Potential Breaking Changes
Core team North Stars
Deliverable dependency graph
Experimental Shell Completion Menu
Frequently Asked Questions (FAQ)
Home
Interesting scratch projects
Johnson.md
Megathreads
October 25, 2019 Status
Testing & building notes
Troubleshooting Tips
Unable to type in the Terminal?
Vintage post: Project Cascadia Tech Stack Investigation
What is causing consoles to pop up on me?
Windows Performance Analyzer (WPA) Usage Guide
Clone
0
Console: Potential Breaking Changes
Dustin L. Howett edited this page 2024-08-07 12:43:37 -05:00
Table of Contents
Shipped (GA)
Windows 24H2
CHAR_INFOs are now strictly sanitized
Up until #13321 it was possible to treat the terminal as a strict NxM matrix of text storage. Since conhost's text renderer only used the leading half of a 2-column wide glyph (theCOMMON_LVB_LEADING_BYTE) you could put anything you wanted to into the trailing half and "smuggle" data. This change makes this impossible and will now also ignore the trailing half when being read from console APIs. This however breaks any application that tries to read wide glyphs withReadConsoleOutputWthat were previously written withWriteConsoleOutputA, as this previously returned 2CHAR_INFOs containing someUnicodeChar, followed by a0xFFFF, but now will return thatUnicodeChartwice. Concatenating theCHAR_INFOs into a string for instance, will now be broken. Furthermore there are 2 more minor breaking changes:ReadConsoleOutputAwill now zero the high byte ofUnicodeCharat all times and zeroAsciiCharas well, if the conversion to the requested code page failed.- Introduced In: #13321
- Ingested In: !9777763
- First Insider Release: 10.0.26040.0
- Servicing Candidate: No
- Wide glyphs cannot be stored into 1 column anymore
#13626 extends upon #13321 and now makes it impossible to store 2 column wide glyphs into just a single column. With this change in place, text will now always be stored and rendered consistently and such usage of conhost will simply result in the request being ignored or whitespace to be stored.- Introduced In: #13626
- Ingested In: !9777763
- First Insider Release: 10.0.26040.0
- Servicing Candidate: No
ENABLE_VIRTUAL_TERMINAL_PROCESSINGis now per screen buffer state
#14735 changes the behavior ofENABLE_VIRTUAL_TERMINAL_PROCESSINGwith regards to multiple screen buffers. Specifically, people who were enabling VT processing on the new buffer and then expecting it to stay enabled on the other buffer will observe that it is not enabled.- Introduced In: #14735
- Ingested In: !9777763
- First Insider Release: 10.0.26040.0
- Servicing Candidate: No
- The codepage attribute on .lnk files is now used
#15111 fixed a bug where Conhost (v2) was ignoring the codepage set inlnkfiles. This fix will result in saved codepages being respected once again.- Introduced In: #15111
- Ingested In: !9777763
- First Insider Release: 10.0.26040.0
- Servicing Candidate: No
Shipped (Insiders)
Unshipped, Uningested into Windows
- Zero-width characters are now 0 columns wide; Ambiguous width glyphs are always 1 column wide
#16916 adds support for grapheme clusters, which changes the width of zero-width and combining characters from 1 to 0 columns.
Additionally, ambiguous width glyphs now default to a width of 1 column instead of depending on the currently selected font. This matches the behavior of Windows Terminal since v0.6.- Introduced In: #16916
- Ingested In: TBD
- First Insider Release: TBD
- Servicing Candidate: No