:: commit a6f6958b41e97590b84b9f221d380c34ef804bd8

czapek1337 <czapek1337@gmail.com> — 2022-01-29 06:54

parents: 77ed9d23ca

readline: Don't delete input beyond a null terminator

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]) {
tab: 248 wrap: offon