[PR #3934] [CLOSED] Ctrl+Backspace works, and two other small fixes #25559

Open
opened 2026-01-31 09:10:18 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/microsoft/terminal/pull/3934
Author: @mkitzan
Created: 12/12/2019
Status: Closed

Base: masterHead: three-piece-fixes


📝 Commits (1)

  • 8694156 Ctrl+Backspace works, and two other small fixes

📊 Changes

4 files changed (+16 additions, -10 deletions)

View changed files

📝 src/cascadia/TerminalCore/TerminalApi.cpp (+9 -6)
📝 src/terminal/input/terminalInput.cpp (+1 -1)
📝 src/terminal/parser/InputStateMachineEngine.cpp (+5 -2)
📝 src/winconpty/winconpty.cpp (+1 -1)

📄 Description

Summary of the Pull Request

Changes the Ctrl+Backspace input sequence and how it is processed by InputStateMachineEngine. Now Ctrl+Backspace deletes a whole word at a time (tested on WSL, CMD, and PS).

PR also fixes two other issues which just needed some someone to implement them.

References

PR Checklist

  • Closes #755, #3447, Emacs cursor displayed incorrectly (#3720)
  • CLA signed. If not, go over here and sign the CLA
  • Tests added/passed
  • Requires documentation to be updated
  • I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #755

Detailed Description of the Pull Request / Additional comments

Changed the input sequence for Ctrl+Backspace to \x1b\x8 so the sequence would pass through _DoControlCharacter. Changed _DoControlCharacter to process \b in a way which forms the correct INPUT_RECORDs to delete whole words.

Fixed #3447 by verifying that COORD X,Y values are positive.
Fixed #3720 by wrapping the at call in a try-catch.

Validation Steps Performed

Ctrl+Backspace works 🎉
Can no longer repro #3720


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/microsoft/terminal/pull/3934 **Author:** [@mkitzan](https://github.com/mkitzan) **Created:** 12/12/2019 **Status:** ❌ Closed **Base:** `master` ← **Head:** `three-piece-fixes` --- ### 📝 Commits (1) - [`8694156`](https://github.com/microsoft/terminal/commit/869415665c417614dd2122bf91a07d89055a3324) Ctrl+Backspace works, and two other small fixes ### 📊 Changes **4 files changed** (+16 additions, -10 deletions) <details> <summary>View changed files</summary> 📝 `src/cascadia/TerminalCore/TerminalApi.cpp` (+9 -6) 📝 `src/terminal/input/terminalInput.cpp` (+1 -1) 📝 `src/terminal/parser/InputStateMachineEngine.cpp` (+5 -2) 📝 `src/winconpty/winconpty.cpp` (+1 -1) </details> ### 📄 Description <!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request Changes the <kbd>Ctrl+Backspace</kbd> input sequence and how it is processed by `InputStateMachineEngine`. Now <kbd>Ctrl+Backspace</kbd> deletes a whole word at a time (tested on WSL, CMD, and PS). PR also fixes two other issues which just needed some someone to implement them. <!-- Other than the issue solved, is this relevant to any other issues/existing PRs? --> ## References <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist * [x] Closes #755, #3447, #3720 * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA * [ ] Tests added/passed * [ ] Requires documentation to be updated * [x] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #755 <!-- Provide a more detailed description of the PR, other things fixed or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments Changed the input sequence for <kbd>Ctrl+Backspace</kbd> to `\x1b\x8` so the sequence would pass through `_DoControlCharacter`. Changed `_DoControlCharacter` to process `\b` in a way which forms the correct `INPUT_RECORD`s to delete whole words. Fixed #3447 by verifying that `COORD` X,Y values are positive. Fixed #3720 by wrapping the `at` call in a try-catch. <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed <kbd>Ctrl+Backspace</kbd> works 🎉 Can no longer repro #3720 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-31 09:10:18 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#25559