diff --git a/src/cascadia/TerminalCore/Terminal.cpp b/src/cascadia/TerminalCore/Terminal.cpp index c12a02f6d1b..b053ae6a09b 100644 --- a/src/cascadia/TerminalCore/Terminal.cpp +++ b/src/cascadia/TerminalCore/Terminal.cpp @@ -61,6 +61,14 @@ Terminal::Terminal() : _stateMachine = std::make_unique(std::move(engine)); + // Until we have a true pass-through mode, the decision as to whether C1 + // controls are interpreted or not is made at the conhost level. If they + // are being filtered out, then we will simply never receive them. But if + // they are being accepted by conhost, there's a chance they may get passed + // through in some situations, so it's important that our state machine is + // always prepared to accept them. + _stateMachine->SetParserMode(StateMachine::Mode::AcceptC1, true); + auto passAlongInput = [&](std::deque>& inEventsToWrite) { if (!_pfnWriteInput) {