diff options
author | sascha <sascha@nomad.localdomain> | 2007-10-16 23:08:37 +0200 |
---|---|---|
committer | sascha <sascha@nomad.localdomain> | 2007-10-16 23:08:37 +0200 |
commit | 10bdc84297efb85211908adaff7ba20f72275bdc (patch) | |
tree | 22871cf6706b0a3f37ea439a0f9271788d8b9af4 /lib | |
parent | 288c97b89ca9c9a38dfd108495c6a1e83e21306a (diff) | |
download | barebox-10bdc84297efb85211908adaff7ba20f72275bdc.tar.gz barebox-10bdc84297efb85211908adaff7ba20f72275bdc.tar.xz |
implement delete key in readline
Diffstat (limited to 'lib')
-rw-r--r-- | lib/readline.c | 12 |
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: { |