diff options
Diffstat (limited to 'ui-curses.c')
| -rw-r--r-- | ui-curses.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/ui-curses.c b/ui-curses.c index f333c1d..a57ab8f 100644 --- a/ui-curses.c +++ b/ui-curses.c @@ -28,6 +28,8 @@ int ESCDELAY; # define set_escdelay(d) (ESCDELAY = (d)) #endif +#define CONTROL(k) ((k)&0x1F) + #if 0 #define wresize(win, y, x) do { \ if (wresize(win, y, x) == ERR) { \ @@ -563,6 +565,17 @@ static Key ui_getkey(Ui *ui) { key.str[cur] = t; nodelay(stdscr, FALSE); } + + if (len == 1) { + switch (key.str[0]) { + case 127: + case CONTROL('H'): + case CONTROL('B'): + key.code = KEY_BACKSPACE; + key.str[0] = '\0'; + break; + } + } } return key; |
