From 160db043cc285d9e32b17502ab0fbd897d7bf420 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Thu, 9 Jul 2015 15:37:02 +0200 Subject: ui: unify backspace handling --- ui-curses.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'ui-curses.c') 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; -- cgit v1.2.3