1 diff -ru slang-1.4.4.vanilla/src/slcurses.c slang-1.4.4/src/slcurses.c
2 --- slang-1.4.4.vanilla/src/slcurses.c Wed Feb 21 02:17:36 2001
3 +++ slang-1.4.4/src/slcurses.c Sun Jun 24 14:50:06 2001
6 else if (ch == 0xFFFF) return ERR;
8 - return SLkp_getkey ();
9 + if ((ch = SLkp_getkey ()) != SL_KEY_ERR)
12 + return SLang_getkey ();
14 return SLang_getkey ();
16 diff -ru slang-1.4.4.vanilla/src/slkeymap.c slang-1.4.4/src/slkeymap.c
17 --- slang-1.4.4.vanilla/src/slkeymap.c Wed Feb 21 02:17:37 2001
18 +++ slang-1.4.4/src/slkeymap.c Sun Jun 24 14:50:06 2001
21 SLang_Key_Type *SLang_do_key(SLKeyMap_List_Type *kml, int (*getkey)(void))
23 + unsigned char SLang_Undo_Buffer [SL_MAX_INPUT_BUFFER_LEN];
24 + int SLang_Undo_Len = 0;
25 register SLang_Key_Type *key, *next, *kmax;
27 unsigned char input_ch;
31 input_ch = (unsigned char) SLang_Last_Key_Char;
32 + SLang_Undo_Buffer [SLang_Undo_Len++] = input_ch;
34 key = (SLang_Key_Type *) &((kml->keymap)[input_ch]);
38 key = kml->keymap + input_ch;
41 + if (getkey == (int (*)(void)) SLang_getkey)
42 + SLang_ungetkey_string (SLang_Undo_Buffer, SLang_Undo_Len);
47 /* It appears to be a prefix character in a key sequence. */
50 SLang_Key_TimeOut_Flag = 1;
51 SLang_Last_Key_Char = (*getkey)();
52 + SLang_Undo_Buffer [SLang_Undo_Len++] = (unsigned char) SLang_Last_Key_Char;
53 SLang_Key_TimeOut_Flag = 0;
60 + if (getkey == (int (*)(void)) SLang_getkey)
61 + SLang_ungetkey_string (SLang_Undo_Buffer, SLang_Undo_Len);
65 diff -ru slang-1.4.4.vanilla/src/slkeypad.c slang-1.4.4/src/slkeypad.c
66 --- slang-1.4.4.vanilla/src/slkeypad.c Wed Feb 21 02:17:37 2001
67 +++ slang-1.4.4/src/slkeypad.c Sun Jun 24 14:50:06 2001
69 key = SLang_do_key (Keymap_List, (int (*)(void)) SLang_getkey);
70 if ((key == NULL) || (key->type != SLKEY_F_KEYSYM))
72 - SLang_flush_input ();
73 + /* SLang_flush_input (); */