]> git.pld-linux.org Git - packages/slang.git/blob - slang-keymap.patch
- adapterized, cosmetics
[packages/slang.git] / slang-keymap.patch
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
4 @@ -127,7 +127,10 @@
5                }
6              else if (ch == 0xFFFF) return ERR;
7              SLang_ungetkey (ch);
8 -            return SLkp_getkey ();
9 +            if ((ch = SLkp_getkey ()) != SL_KEY_ERR)
10 +              return ch;
11 +            else
12 +              return SLang_getkey ();
13           }
14         return SLang_getkey ();
15       }
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
19 @@ -335,6 +335,8 @@
20  
21  SLang_Key_Type *SLang_do_key(SLKeyMap_List_Type *kml, int (*getkey)(void))
22  {
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;
26     unsigned int len;
27     unsigned char input_ch;
28 @@ -348,6 +350,7 @@
29       return NULL;
30  
31     input_ch = (unsigned char) SLang_Last_Key_Char;
32 +   SLang_Undo_Buffer [SLang_Undo_Len++] = input_ch;
33  
34     key = (SLang_Key_Type *) &((kml->keymap)[input_ch]);
35  
36 @@ -364,7 +367,11 @@
37  
38         key = kml->keymap + input_ch;
39         if (key->type == 0)
40 +       {
41 +         if (getkey == (int (*)(void)) SLang_getkey)
42 +           SLang_ungetkey_string (SLang_Undo_Buffer, SLang_Undo_Len);
43           return NULL;
44 +       }
45       }
46  
47     /* It appears to be a prefix character in a key sequence. */
48 @@ -377,6 +384,7 @@
49       {
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;
54  
55         len++;
56 @@ -450,6 +458,8 @@
57         kmax = next;
58       }
59  
60 +   if (getkey == (int (*)(void)) SLang_getkey)
61 +     SLang_ungetkey_string (SLang_Undo_Buffer, SLang_Undo_Len);
62     return NULL;
63  }
64  
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
68 @@ -122,7 +122,7 @@
69     key = SLang_do_key (Keymap_List, (int (*)(void)) SLang_getkey);
70     if ((key == NULL) || (key->type != SLKEY_F_KEYSYM))
71       {
72 -       SLang_flush_input ();
73 +       /* SLang_flush_input (); */
74         return SL_KEY_ERR;
75       }
76  
This page took 0.052248 seconds and 3 git commands to generate.