From b3f3b344b775887c098a287559ce4d3144afba3c Mon Sep 17 00:00:00 2001 From: HAYAMA_Kaoru Date: Sun, 1 Dec 2024 13:00:03 +0900 Subject: [PATCH] Replace Ctrl-H to Backspace because Ctrl-H removes all input text on CMD.exe The reason is unknown --- watcher.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/watcher.go b/watcher.go index bb3fd97..60de37a 100644 --- a/watcher.go +++ b/watcher.go @@ -1,7 +1,6 @@ package main import ( - "bytes" "io" "os" "strings" @@ -26,10 +25,19 @@ func NewWatcher(pty io.ReadWriter) *Watcher { for { var buffer [1024]byte n, _ := os.Stdin.Read(buffer[:]) - pty.Write(buffer[:n]) - if bytes.IndexByte(buffer[:n], '\x03') >= 0 { - ctrlc <- struct{}{} + B := buffer[:n] + for i, b := range B { + if b == '\x03' { + ctrlc <- struct{}{} + return + } else if b == '\x08' { + // On CMD.exe, Ctrl-H removes all input text. + // ( The reason is unknown ) + // Therefore, replace Ctrl-H to Backspace-key + buffer[i] = '\x7F' + } } + pty.Write(B) } }() go func() {