Repository: microsoft/terminal (language: cpp)

Issue:
We should change the SUB control glyph to U+2426
# Description of the new feature/enhancement

On most DEC terminals, the glyph generated by a `SUB` control character is a reverse question mark. We're currently using [`U+2E2E`](https://util.unicode.org/UnicodeJsps/character.jsp?a=2E2E), which is visually OK, but semantically it would be better if we used [`U+2426`](https://util.unicode.org/UnicodeJsps/character.jsp?a=2426) (substitute form two). They look more or less the same, but the difference is that `U+2426` was specifically intended to represent a substitute control.

Also note that we're already using `U+2426` for the unmapped positions in the VT character sets, and ideally those should match the `SUB` control character. The other benefit is that Cascadia Code has a glyph for `U+2426` but not for `U+2E2E`, so only the former shows up correctly in conhost (at least when using Cascadia Code).

# Proposed technical implementation details (optional)

Replace the character below with `\u2426`.
https://github.com/microsoft/terminal/blob/a4445ed4cca72c6a0a8dfec604f6e6cc75458d9d/src/terminal/parser/OutputStateMachineEngine.cpp#L91


Discussion / hints:

Fix patch:
diff --git a/src/terminal/parser/OutputStateMachineEngine.cpp b/src/terminal/parser/OutputStateMachineEngine.cpp
index 68a45916df4..70352c4b764 100644
--- a/src/terminal/parser/OutputStateMachineEngine.cpp
+++ b/src/terminal/parser/OutputStateMachineEngine.cpp
@@ -87,8 +87,8 @@ bool OutputStateMachineEngine::ActionExecute(const wchar_t wch)
     case AsciiChars::SUB:
         // The SUB control is used to cancel a control sequence in the same
         // way as CAN, but unlike CAN it also displays an error character,
-        // typically a reverse question mark.
-        _dispatch->Print(L'\u2E2E');
+        // typically a reverse question mark (Unicode substitute form two).
+        _dispatch->Print(L'\u2426');
         break;
     case AsciiChars::DEL:
         // The DEL control can sometimes be translated into a printable glyph


Test patch: