lynx-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

lynx-dev Re: linux F1 key and slang (was http://x28.deja.com/=dnc/[ST_rn


From: John E. Davis
Subject: lynx-dev Re: linux F1 key and slang (was http://x28.deja.com/=dnc/[ST_rn=ps,ST_m=ps]/getdoc.xp?AN=499905285&CON)
Date: Mon, 12 Jul 1999 23:36:14 -0400

On Mon, 12 Jul 1999 19:26:50 -0500 (CDT), Klaus Weide <address@hidden> said:
>The F1 sequence could also be explicitly added to the vtXXX_keymap 
>table in LYStrings.c.  But it looks like a bad idea to me to
>continue adding system-specific non-standard escape sequences
>there.  (And there's nothing vtXXX-ish about the linux key_f1).

Here are patches to lynx-2-8-1 that fix the problem.  The patches
affects two files:  LYCurses.c and LYStrings.c

--- LYCurses.c.ORIG     Mon Jul 12 23:29:16 1999
+++ LYCurses.c  Mon Jul 12 23:00:45 1999
@@ -677,7 +677,9 @@
     }
 
     if (slinit == 0) {
+#if !defined(USE_KEYMAPS)
        SLtt_get_terminfo();
+#endif
 #if defined(__DJGPP__) && !defined(DJGPP_KEYHANDLER)
        SLkp_init ();
 #endif /* __DJGPP__ && !DJGPP_KEYHANDLER */
--- LYStrings.c.ORIG    Fri May 28 10:04:01 1999
+++ LYStrings.c Mon Jul 12 23:25:26 1999
@@ -581,9 +581,13 @@
  * the CSI logic and other special cases for VMS, NCSA telnet, etc.
  */
 #ifdef USE_SLANG
-#define DEFINE_KEY(string,lynx,curses) {string,lynx}
+# ifdef VMS
+#  define DEFINE_KEY(string,string1,lynx,curses) {string,lynx}
+# else
+#  define DEFINE_KEY(string,string1,lynx,curses) {string1,lynx}
+# endif
 #else
-#define DEFINE_KEY(string,lynx,curses) {string,curses}
+#define DEFINE_KEY(string,string1,lynx,curses) {string,curses}
 #endif
 
 typedef struct
@@ -595,22 +599,22 @@
 
 static Keysym_String_List Keysym_Strings [] =
 {
-    DEFINE_KEY( "UPARROW",     UPARROW,        KEY_UP ),
-    DEFINE_KEY( "DNARROW",     DNARROW,        KEY_DOWN ),
-    DEFINE_KEY( "RTARROW",     RTARROW,        KEY_RIGHT ),
-    DEFINE_KEY( "LTARROW",     LTARROW,        KEY_LEFT ),
-    DEFINE_KEY( "PGDOWN",      PGDOWN,         KEY_NPAGE ),
-    DEFINE_KEY( "PGUP",                PGUP,           KEY_PPAGE ),
-    DEFINE_KEY( "HOME",                HOME,           KEY_HOME ),
-    DEFINE_KEY( "END",         END_KEY,        KEY_END ),
-    DEFINE_KEY( "F1",          F1,             KEY_F(1) ),
-    DEFINE_KEY( "DO_KEY",      DO_KEY,         KEY_F(16) ),
-    DEFINE_KEY( "FIND_KEY",    FIND_KEY,       KEY_FIND ),
-    DEFINE_KEY( "SELECT_KEY",  SELECT_KEY,     KEY_SELECT ),
-    DEFINE_KEY( "INSERT_KEY",  INSERT_KEY,     KEY_IC ),
-    DEFINE_KEY( "REMOVE_KEY",  REMOVE_KEY,     KEY_DC ),
-    DEFINE_KEY( "DO_NOTHING",  DO_NOTHING,     0 ),
-    DEFINE_KEY( NULL,          -1,             ERR )
+    DEFINE_KEY( "UPARROW",     "UPARROW",      UPARROW,        KEY_UP ),
+    DEFINE_KEY( "DNARROW",     "DNARROW",      DNARROW,        KEY_DOWN ),
+    DEFINE_KEY( "RTARROW",     "RTARROW",      RTARROW,        KEY_RIGHT ),
+    DEFINE_KEY( "LTARROW",     "LTARROW",      LTARROW,        KEY_LEFT ),
+    DEFINE_KEY( "PGDOWN",      "PGDOWN",       PGDOWN,         KEY_NPAGE ),
+    DEFINE_KEY( "PGUP",                "PGUP",         PGUP,           
KEY_PPAGE ),
+    DEFINE_KEY( "HOME",                "HOME",         HOME,           
KEY_HOME ),
+    DEFINE_KEY( "END",         "END",          END_KEY,        KEY_END ),
+    DEFINE_KEY( "F1",          "F1",           F1,             KEY_F(1) ),
+    DEFINE_KEY( "DO_KEY",      "DO_KEY",       DO_KEY,         KEY_F(16) ),
+    DEFINE_KEY( "FIND_KEY",    "FIND_KEY",     FIND_KEY,       KEY_FIND ),
+    DEFINE_KEY( "SELECT_KEY",  "SELECT_KEY",   SELECT_KEY,     KEY_SELECT ),
+    DEFINE_KEY( "INSERT_KEY",  "INSERT_KEY",   INSERT_KEY,     KEY_IC ),
+    DEFINE_KEY( "REMOVE_KEY",  "REMOVE_KEY",   REMOVE_KEY,     KEY_DC ),
+    DEFINE_KEY( "DO_NOTHING",  "DO_NOTHING",   DO_NOTHING,     0 ),
+    DEFINE_KEY( NULL,          NULL,           -1,             ERR )
 };
 
 #ifdef NCURSES_VERSION
@@ -938,26 +942,26 @@
 PRIVATE void setup_vtXXX_keymap NOARGS
 {
     static Keysym_String_List table[] = {
-       DEFINE_KEY( "\033[A",   UPARROW,        KEY_UP ),
-       DEFINE_KEY( "\033OA",   UPARROW,        KEY_UP ),
-       DEFINE_KEY( "\033[B",   DNARROW,        KEY_DOWN ),
-       DEFINE_KEY( "\033OB",   DNARROW,        KEY_DOWN ),
-       DEFINE_KEY( "\033[C",   RTARROW,        KEY_RIGHT ),
-       DEFINE_KEY( "\033OC",   RTARROW,        KEY_RIGHT ),
-       DEFINE_KEY( "\033[D",   LTARROW,        KEY_LEFT ),
-       DEFINE_KEY( "\033OD",   LTARROW,        KEY_LEFT ),
-       DEFINE_KEY( "\033[1~",  FIND_KEY,       KEY_FIND ),
-       DEFINE_KEY( "\033[2~",  INSERT_KEY,     KEY_IC ),
-       DEFINE_KEY( "\033[3~",  REMOVE_KEY,     KEY_DC ),
-       DEFINE_KEY( "\033[4~",  SELECT_KEY,     KEY_SELECT ),
-       DEFINE_KEY( "\033[5~",  PGUP,           KEY_PPAGE ),
-       DEFINE_KEY( "\033[6~",  PGDOWN,         KEY_NPAGE ),
-       DEFINE_KEY( "\033[8~",  END_KEY,        KEY_END ),
-       DEFINE_KEY( "\033[7~",  HOME,           KEY_HOME),
-       DEFINE_KEY( "\033[28~", F1,             KEY_F(1) ),
-       DEFINE_KEY( "\033OP",   F1,             KEY_F(1) ),
-       DEFINE_KEY( "\033[OP",  F1,             KEY_F(1) ),
-       DEFINE_KEY( "\033[29~", DO_KEY,         KEY_F(16) ),
+       DEFINE_KEY( "\033[A",   "^(ku)", UPARROW,       KEY_UP ),
+       DEFINE_KEY( "\033OA",   "^(ku)", UPARROW,       KEY_UP ),
+       DEFINE_KEY( "\033[B",   "^(kd)", DNARROW,       KEY_DOWN ),
+       DEFINE_KEY( "\033OB",   "^(kd)", DNARROW,       KEY_DOWN ),
+       DEFINE_KEY( "\033[C",   "^(kr)", RTARROW,       KEY_RIGHT ),
+       DEFINE_KEY( "\033OC",   "^(kr)", RTARROW,       KEY_RIGHT ),
+       DEFINE_KEY( "\033[D",   "^(kl)", LTARROW,       KEY_LEFT ),
+       DEFINE_KEY( "\033OD",   "^(kl)", LTARROW,       KEY_LEFT ),
+       DEFINE_KEY( "\033[1~",  "^(@0)", FIND_KEY,      KEY_FIND ),
+       DEFINE_KEY( "\033[2~",  "^(kI)", INSERT_KEY,    KEY_IC ),
+       DEFINE_KEY( "\033[3~",  "^(kD)", REMOVE_KEY,    KEY_DC ),
+       DEFINE_KEY( "\033[4~",  "^(*6)", SELECT_KEY,    KEY_SELECT ),
+       DEFINE_KEY( "\033[5~",  "^(kP)", PGUP,          KEY_PPAGE ),
+       DEFINE_KEY( "\033[6~",  "^(kN)", PGDOWN,                KEY_NPAGE ),
+       DEFINE_KEY( "\033[8~",  "^(@7)", END_KEY,       KEY_END ),
+       DEFINE_KEY( "\033[7~",  "^(kh)", HOME,          KEY_HOME),
+       DEFINE_KEY( "\033[28~", "^(k1)", F1,            KEY_F(1) ),
+       DEFINE_KEY( "\033OP",   "^(k1)", F1,            KEY_F(1) ),
+       DEFINE_KEY( "\033[OP",  "^(k1)", F1,            KEY_F(1) ),
+       DEFINE_KEY( "\033[29~", "^(F6)", DO_KEY,                KEY_F(16) ),
     };
     size_t n;
     for (n = 0; n < TABLESIZE(table); n++)
@@ -970,6 +974,11 @@
     int i;
     char keybuf[2];
 
+    /* The escape sequences may contain embedded termcap strings.  Make
+     * sure the library is initialized for that.
+     */
+    SLtt_get_terminfo();
+   
     if (NULL == (Keymap_List = SLang_create_keymap ("Lynx", NULL)))
        return -1;
 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]