]> git.ipfire.org Git - thirdparty/newt.git/commitdiff
1) added NEWT_KEY_F1, NEWT_KEY_F12
authorewt <ewt>
Fri, 2 Aug 1996 18:44:58 +0000 (18:44 +0000)
committerewt <ewt>
Fri, 2 Aug 1996 18:44:58 +0000 (18:44 +0000)
2) doesn't coredump when escape sequences come in quickly

newt.c

diff --git a/newt.c b/newt.c
index 330a103f180a17838518bef5753d10c5b47ebeca..60a1f2afb378739231f1b83b7ec745396adf0711 100644 (file)
--- a/newt.c
+++ b/newt.c
@@ -66,6 +66,9 @@ static struct keymap keymap[] = {
        { "\033[5~",            NEWT_KEY_PGUP,          NULL },
        { "\033[6~",            NEWT_KEY_PGDN,          NULL },
 
+       { "\033[11~",           NEWT_KEY_F1,            NULL },
+       { "\033[24~",           NEWT_KEY_F12,           NULL },
+
        { NULL,         0,                      NULL }, /* LEAVE this one */
 };
 static char keyPrefix = '\033';
@@ -161,6 +164,12 @@ int newtGetKey(void) {
     *chptr++ = key;
     while (SLang_input_pending(5)) {
        key = SLang_getkey();
+       if (key == keyPrefix) {
+           /* he hit unknown keys too many times -- start over */
+           memset(buf, 0, sizeof(buf));
+           chptr = buf;
+       }
+
        *chptr++ = key;
 
        /* this search should use bsearch(), but when we only look through