From a6f6958b41e97590b84b9f221d380c34ef804bd8 Mon Sep 17 00:00:00 2001 From: czapek1337 Date: Sat, 29 Jan 2022 07:54:49 +0100 Subject: [PATCH] readline: Don't delete input beyond a null terminator --- stage23/lib/readline.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/stage23/lib/readline.c b/stage23/lib/readline.c index 28673ab3..f13347b7 100644 --- a/stage23/lib/readline.c +++ b/stage23/lib/readline.c @@ -272,7 +272,6 @@ void readline(const char *orig_str, char *buf, size_t limit) { term_autoflush = false; size_t orig_str_len = strlen(orig_str); - memset(buf, 0, limit); memmove(buf, orig_str, orig_str_len); buf[orig_str_len] = 0; @@ -303,6 +302,9 @@ void readline(const char *orig_str, char *buf, size_t limit) { cursor_back(); case GETCHAR_DELETE:; size_t j; + if (buf[i] == 0) { + continue; + } for (j = i; ; j++) { buf[j] = buf[j+1]; if (!buf[j]) {