From e9d5ccc0131ba96981d1b070f6054bafcc6c2d1f Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Fri, 10 Oct 2025 22:34:20 -0400 Subject: cmd: hush: Handle backspace on input Signed-off-by: Ian Moffett --- src/cmd/hush/hush.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/cmd/hush/hush.c b/src/cmd/hush/hush.c index ade7b4e..bd6ca6f 100644 --- a/src/cmd/hush/hush.c +++ b/src/cmd/hush/hush.c @@ -72,6 +72,18 @@ read_input(char *buf, size_t maxlen) continue; } + /* Don't overwrite prompt */ + if (c == '\b' && i == 0) { + continue; + } + + /* Is this a backspace? */ + if (c == '\b' && i > 0) { + buf[--i] = '\0'; + write(STDOUT_FILENO, &c, 1); + continue; + } + if (c != '\n' && i < maxlen) { buf[i++] = c; write(STDOUT_FILENO, &c, 1); -- cgit v1.2.3