diff options
author | Ian Moffett <ian@osmora.org> | 2025-10-10 22:34:20 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2025-10-10 22:34:20 -0400 |
commit | e9d5ccc0131ba96981d1b070f6054bafcc6c2d1f (patch) | |
tree | dc39a8e6dea29f2207dbb7b5d930f5c61c1d913c /src | |
parent | d594e7264d740e5a316260e9408d6ab51b6adea9 (diff) |
cmd: hush: Handle backspace on input
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/cmd/hush/hush.c | 12 |
1 files changed, 12 insertions, 0 deletions
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); |