From 2c1604089c93526acae9f073d4af7c89e9f25c2c Mon Sep 17 00:00:00 2001 From: czapek1337 Date: Fri, 28 Jan 2022 23:51:56 +0100 Subject: [PATCH] readline: Handle END/HOME keys --- stage23/lib/readline.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/stage23/lib/readline.c b/stage23/lib/readline.c index 22415716..06667405 100644 --- a/stage23/lib/readline.c +++ b/stage23/lib/readline.c @@ -316,6 +316,18 @@ void readline(const char *orig_str, char *buf, size_t limit) { case '\n': term_write((uintptr_t)"\n", 1); goto out; + case GETCHAR_END: + for (size_t j = 0; j < strlen(buf) - i; j++) { + cursor_fwd(); + } + i = strlen(buf); + continue; + case GETCHAR_HOME: + for (size_t j = 0; j < i; j++) { + cursor_back(); + } + i = 0; + continue; default: { if (strlen(buf) < limit - 1 && isprint(c)) { for (size_t j = strlen(buf); ; j--) {