[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;