aboutsummaryrefslogtreecommitdiff
path: root/ui-curses.c
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2015-07-09 15:37:02 +0200
committerMarc André Tanner <mat@brain-dump.org>2015-07-09 16:41:46 +0200
commit160db043cc285d9e32b17502ab0fbd897d7bf420 (patch)
tree3eeeb31ed01dcacc347c2976421dda42a3c455e4 /ui-curses.c
parentb88e0eff7e8ac64dd0aeb7ec93e9803689d068fe (diff)
downloadvis-160db043cc285d9e32b17502ab0fbd897d7bf420.tar.gz
vis-160db043cc285d9e32b17502ab0fbd897d7bf420.tar.xz
ui: unify backspace handling
Diffstat (limited to 'ui-curses.c')
-rw-r--r--ui-curses.c13
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;