summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2008-03-02 17:24:05 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2008-03-02 17:24:05 +0100
commit2209ae02ba97e7c349e80af8fa6c5946d4510f84 (patch)
treeb492553cbdf4fd1262a01e237f906c684c7dae11
parent23d1cead89190823609cfd9ce1112237bd310843 (diff)
downloadbarebox-2209ae02ba97e7c349e80af8fa6c5946d4510f84.tar.gz
barebox-2209ae02ba97e7c349e80af8fa6c5946d4510f84.tar.xz
readline: Fix wrong screen reprinting. Try:
abcde<BACKSPACE><HOME><DEL>
-rw-r--r--lib/readline.c6
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);