summaryrefslogtreecommitdiffstats
path: root/lib/readline.c
diff options
context:
space:
mode:
authorsascha <sascha@nomad.localdomain>2007-10-16 23:08:37 +0200
committersascha <sascha@nomad.localdomain>2007-10-16 23:08:37 +0200
commit10bdc84297efb85211908adaff7ba20f72275bdc (patch)
tree22871cf6706b0a3f37ea439a0f9271788d8b9af4 /lib/readline.c
parent288c97b89ca9c9a38dfd108495c6a1e83e21306a (diff)
downloadbarebox-10bdc84297efb85211908adaff7ba20f72275bdc.tar.gz
barebox-10bdc84297efb85211908adaff7ba20f72275bdc.tar.xz
implement delete key in readline
Diffstat (limited to 'lib/readline.c')
-rw-r--r--lib/readline.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/readline.c b/lib/readline.c
index ce63bc29ce..2cf90eca8d 100644
--- a/lib/readline.c
+++ b/lib/readline.c
@@ -255,6 +255,18 @@ int readline(const char *prompt, char *buf, int len)
eol_num--;
}
break;
+ case KEY_DEL:
+ if (num < eol_num) {
+ wlen = eol_num - num;
+ memmove(&buf[num], &buf[num+1], wlen);
+ putnstr(buf + num, wlen);
+ getcmd_putch(' ');
+ do {
+ getcmd_putch(CTL_BACKSPACE);
+ } while (--wlen);
+ eol_num--;
+ }
+ break;
case KEY_UP:
case KEY_DOWN:
{