diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2008-03-02 17:24:05 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2008-03-02 17:24:05 +0100 |
commit | 2209ae02ba97e7c349e80af8fa6c5946d4510f84 (patch) | |
tree | b492553cbdf4fd1262a01e237f906c684c7dae11 | |
parent | 23d1cead89190823609cfd9ce1112237bd310843 (diff) | |
download | barebox-2209ae02ba97e7c349e80af8fa6c5946d4510f84.tar.gz barebox-2209ae02ba97e7c349e80af8fa6c5946d4510f84.tar.xz |
readline: Fix wrong screen reprinting. Try:
abcde<BACKSPACE><HOME><DEL>
-rw-r--r-- | lib/readline.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/readline.c b/lib/readline.c index 503f4efaea..216ffbb79c 100644 --- a/lib/readline.c +++ b/lib/readline.c @@ -276,7 +276,7 @@ int readline(const char *prompt, char *buf, int len) if (num) { wlen = eol_num - num; num--; - memmove(&buf[num], &buf[num+1], wlen); + memmove(buf + num, buf + num + 1, wlen); getcmd_putch(CTL_BACKSPACE); putnstr(buf + num, wlen); getcmd_putch(' '); @@ -289,8 +289,8 @@ int readline(const char *prompt, char *buf, int len) case KEY_DEL: if (num < eol_num) { wlen = eol_num - num; - memmove(&buf[num], &buf[num+1], wlen); - putnstr(buf + num, wlen); + memmove(buf + num, buf + num + 1, wlen); + putnstr(buf + num, wlen - 1); getcmd_putch(' '); do { getcmd_putch(CTL_BACKSPACE); |