]> git.pld-linux.org Git - packages/slang.git/commitdiff
- patch from rawhide: added patch to fix Alt/Meta key handling
authorkloczek <kloczek@pld-linux.org>
Thu, 5 Jul 2001 07:30:02 +0000 (07:30 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
  (originally from mutt, <jorton@btconnect.com>).

Changed files:
    slang-keymap.patch -> 1.1

slang-keymap.patch [new file with mode: 0644]

diff --git a/slang-keymap.patch b/slang-keymap.patch
new file mode 100644 (file)
index 0000000..2a560bc
--- /dev/null
@@ -0,0 +1,76 @@
+diff -ru slang-1.4.4.vanilla/src/slcurses.c slang-1.4.4/src/slcurses.c
+--- slang-1.4.4.vanilla/src/slcurses.c Wed Feb 21 02:17:36 2001
++++ slang-1.4.4/src/slcurses.c Sun Jun 24 14:50:06 2001
+@@ -127,7 +127,10 @@
+              }
+            else if (ch == 0xFFFF) return ERR;
+            SLang_ungetkey (ch);
+-           return SLkp_getkey ();
++           if ((ch = SLkp_getkey ()) != SL_KEY_ERR)
++             return ch;
++           else
++             return SLang_getkey ();
+         }
+       return SLang_getkey ();
+      }
+diff -ru slang-1.4.4.vanilla/src/slkeymap.c slang-1.4.4/src/slkeymap.c
+--- slang-1.4.4.vanilla/src/slkeymap.c Wed Feb 21 02:17:37 2001
++++ slang-1.4.4/src/slkeymap.c Sun Jun 24 14:50:06 2001
+@@ -335,6 +335,8 @@
+ SLang_Key_Type *SLang_do_key(SLKeyMap_List_Type *kml, int (*getkey)(void))
+ {
++   unsigned char SLang_Undo_Buffer [SL_MAX_INPUT_BUFFER_LEN];
++   int SLang_Undo_Len = 0;
+    register SLang_Key_Type *key, *next, *kmax;
+    unsigned int len;
+    unsigned char input_ch;
+@@ -348,6 +350,7 @@
+      return NULL;
+    input_ch = (unsigned char) SLang_Last_Key_Char;
++   SLang_Undo_Buffer [SLang_Undo_Len++] = input_ch;
+    key = (SLang_Key_Type *) &((kml->keymap)[input_ch]);
+@@ -364,7 +367,11 @@
+       key = kml->keymap + input_ch;
+       if (key->type == 0)
++      {
++        if (getkey == (int (*)(void)) SLang_getkey)
++          SLang_ungetkey_string (SLang_Undo_Buffer, SLang_Undo_Len);
+         return NULL;
++      }
+      }
+    /* It appears to be a prefix character in a key sequence. */
+@@ -377,6 +384,7 @@
+      {
+       SLang_Key_TimeOut_Flag = 1;
+       SLang_Last_Key_Char = (*getkey)();
++      SLang_Undo_Buffer [SLang_Undo_Len++] = (unsigned char) SLang_Last_Key_Char;
+       SLang_Key_TimeOut_Flag = 0;
+       len++;
+@@ -450,6 +458,8 @@
+       kmax = next;
+      }
++   if (getkey == (int (*)(void)) SLang_getkey)
++     SLang_ungetkey_string (SLang_Undo_Buffer, SLang_Undo_Len);
+    return NULL;
+ }
+diff -ru slang-1.4.4.vanilla/src/slkeypad.c slang-1.4.4/src/slkeypad.c
+--- slang-1.4.4.vanilla/src/slkeypad.c Wed Feb 21 02:17:37 2001
++++ slang-1.4.4/src/slkeypad.c Sun Jun 24 14:50:06 2001
+@@ -122,7 +122,7 @@
+    key = SLang_do_key (Keymap_List, (int (*)(void)) SLang_getkey);
+    if ((key == NULL) || (key->type != SLKEY_F_KEYSYM))
+      {
+-      SLang_flush_input ();
++      /* SLang_flush_input (); */
+       return SL_KEY_ERR;
+      }
This page took 0.427341 seconds and 4 git commands to generate.