diff options
-rw-r--r-- | CHANGES | 10 | ||||
-rwxr-xr-x | PACKAGE/debian/rules | 2 | ||||
-rw-r--r-- | lynx_help/about_lynx.html | 27 | ||||
-rw-r--r-- | lynx_help/lynx_help_main.html | 76 | ||||
-rwxr-xr-x | scripts/indent.sh | 5 | ||||
-rw-r--r-- | src/LYCurses.c | 10 | ||||
-rw-r--r-- | src/LYEditmap.c | 44 | ||||
-rw-r--r-- | src/LYKeymap.c | 1371 | ||||
-rw-r--r-- | src/LYKeymap.h | 10 | ||||
-rw-r--r-- | src/LYMain.c | 10 | ||||
-rw-r--r-- | src/LYMainLoop.c | 22 | ||||
-rw-r--r-- | src/LYStrings.c | 3 | ||||
-rw-r--r-- | src/LYStrings.h | 6 |
13 files changed, 673 insertions, 923 deletions
diff --git a/CHANGES b/CHANGES index ce1cfeb1..8e09aa0f 100644 --- a/CHANGES +++ b/CHANGES @@ -1,9 +1,11 @@ --- $LynxId: CHANGES,v 1.689 2013/10/19 12:11:03 tom Exp $ +-- $LynxId: CHANGES,v 1.692 2013/10/20 21:59:40 tom Exp $ =============================================================================== Changes since Lynx 2.8 release =============================================================================== -2013-10-19 (2.8.8dev.17) +2013-10-20 (2.8.8dev.17) +* updates for lynx_help_main.html -TD +* update URLs in about_lynx.html -TD * add internal URL "LYNXEDITMAP:", which is (like "LYNXKEYMAP:") generated, making that the primary page for field-editing help -TD * improve DOSPATH-related logic in HomeEnv(), making this work properly with @@ -22,8 +24,8 @@ Changes since Lynx 2.8 release function keys 2-12, to improve keymap-configurability -TD * change extra-key #define's in LYStrings.h to enum -TD * cleanup pre-2.7 debris from LYStrings.c and LYStrings.h -TD -* modify tables for edit-bindings to allow them to be reloaded to their initial - values -TD +* modify tables for key-bindings and edit-bindings to allow them to be reloaded + to their initial values -TD * add check in get_connection() for ftp-connections to ensure that a password from a URL is non-empty -TD * add samples/oldlynx.bat to demonstrate how to use non-color-style -TD diff --git a/PACKAGE/debian/rules b/PACKAGE/debian/rules index ceb4e199..3b214a37 100755 --- a/PACKAGE/debian/rules +++ b/PACKAGE/debian/rules @@ -171,7 +171,7 @@ binary-arch: build install dh_install dh_link dh_strip - dh_compress + dh_compress -XCOPY dh_fixperms dh_installdeb dh_shlibdeps diff --git a/lynx_help/about_lynx.html b/lynx_help/about_lynx.html index e740aca2..8063f90b 100644 --- a/lynx_help/about_lynx.html +++ b/lynx_help/about_lynx.html @@ -1,4 +1,4 @@ -<!-- $LynxId: about_lynx.html,v 1.18 2013/05/22 00:57:45 tom Exp $ --> +<!-- $LynxId: about_lynx.html,v 1.19 2013/10/20 19:07:10 tom Exp $ --> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> @@ -36,21 +36,22 @@ <p>Lynx was a product of the Distributed Computing Group within Academic Computing Services of <a href= - "http://www.cc.ukans.edu/">The University of Kansas</a>.</p> + "http://web.archive.org/web/19971210163627/http://www.cc.ukans.edu/"> + The University of Kansas</a>.</p> <p>Lynx was originally developed by <a href= - "http://www.cc.ukans.edu/cwis/people/Lou.Montulli.html">Lou - Montulli</a>, <a href="http://www.cc.ku.edu/~grobe/">Michael - Grobe</a>, and <a href= - "http://www.cc.ukans.edu/cwis/people/Charles.Rezac.html">Charles - Rezac</a>. <a href= - "http://www.cc.ukans.edu/cwis/people/Garrett/Garrett_Arch_Blythe.html"> + "http://web.archive.org/web/20040309105337/http://www.cc.ukans.edu/cwis/people/Lou.Montulli.html"> + Lou Montulli</a>, <a href= + "http://condor.cc.ku.edu/~grobe/">Michael Grobe</a>, and <a href= + "http://web.archive.org/web/20040412210202/http://www.cc.ukans.edu/cwis/people/Charles.Rezac.html"> + Charles Rezac</a>. <a href= + "http://web.archive.org/web/20040412210651/http://www.cc.ukans.edu/cwis/people/Garrett/Garrett_Arch_Blythe.html"> Garrett Blythe</a> created <a href= - "http://www.cc.ukans.edu/about_doslynx/doslynx.html">DosLynx</a> - and later joined the Lynx effort as well. Following the - departures of Lou and Garrett for positions at Netscape in the - summer of 1994, <em>Craig Lavender</em> provided support services - for Lynx, and <em>Ravikumar Kolli</em> for DosLynx.</p> + "http://web.archive.org/web/20040812204015/http://www.cc.ukans.edu/about_doslynx/doslynx.html"> + DosLynx</a> and later joined the Lynx effort as well. Following + the departures of Lou and Garrett for positions at Netscape in + the summer of 1994, <em>Craig Lavender</em> provided support + services for Lynx, and <em>Ravikumar Kolli</em> for DosLynx.</p> <p>Lynx is maintained and supported by members of the Internet community coordinated via the <a href= diff --git a/lynx_help/lynx_help_main.html b/lynx_help/lynx_help_main.html index b8494de8..1a1f5df7 100644 --- a/lynx_help/lynx_help_main.html +++ b/lynx_help/lynx_help_main.html @@ -1,4 +1,4 @@ -<!-- $LynxId: lynx_help_main.html,v 1.40 2013/05/22 00:56:39 tom Exp $ --> +<!-- $LynxId: lynx_help_main.html,v 1.46 2013/10/20 18:42:32 tom Exp $ --> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> @@ -58,17 +58,20 @@ <h2>World Wide Web Consortium documents:</h2> <ul> - <li>HTML — <a href= - "http://www.w3.org/TR/REC-html40/">4.0</a> — <a href= - "http://www.w3.org/MarkUp/">3.2</a> — <a href= - "http://www.w3.org/MarkUp/html3/Contents.html">3.0</a> — - <a href= + <li>HTML — <a href="http://www.w3.org/TR/html51/">5.1</a> + — <a href="http://www.w3.org/TR/REC-html40/">4.0</a> + — <a href="http://www.w3.org/MarkUp/">3.2</a> — + <a href="http://www.w3.org/MarkUp/html3/Contents.html">3.0</a> + — <a href= "http://www.w3.org/MarkUp/html-spec/html-spec_toc.html">2.0</a></li> <li>HTTP — <a href="http://www.w3.org/Protocols/">1.1</a> — <a href= "http://www.isi.edu/in-notes/rfc1945.txt">1.0</a></li> + <li>XHTML — <a href= + "http://www.w3.org/TR/xhtml1/">1.0</a></li> + <li><a href="http://www.w3.org/Addressing/">Web Naming & Addressing Overview: URIs, URLs etc</a></li> @@ -86,12 +89,17 @@ 4.0 Reference</a></li> <li><a href= - "http://archive.ncsa.uiuc.edu/General/Internet/WWW/HTMLPrimer.html"> - NCSA Beginner's Guide To HTML</a></li> + "http://www.w3schools.com/html/default.asp">W3Schools</a></li> + + <li><a href="http://www.htmlgoodies.com/primers/html/">HTML + Goodies</a></li> + + <li><a href="http://www.htmlcodetutorial.com/">HTML Code + Tutorial</a></li> <li><a href= - "http://www.ku.edu/acs/documentation/docs/html_quick.shtml">HTML - Quick Reference Guide</a></li> + "http://www.simplehtmlguide.com/cheatsheet.php">HTML Cheat + Sheet – A Simple Guide to HTML</a></li> </ul> <h2>HTML validation services:</h2> @@ -107,11 +115,11 @@ <h2>Other browsing software:</h2> <ul> - <li><a href="http://wget.sunsite.dk/">GNU wget</a> — - powerful & flexible non-interactive downloader</li> + <li><a href="http://wget.addictivecode.org/">GNU wget</a> + — powerful & flexible non-interactive downloader</li> - <li><a href="http://www.idata.sk/~ondrej/pavuk/">Pavuk</a> - — powerful & an even more-featured downloader</li> + <li><a href="http://www.pavuk.org/">Pavuk</a> — powerful + & an even more-featured downloader</li> <li><a href="http://curl.haxx.se/">cURL</a> — non-interactive downloader which supports HTTPS</li> @@ -120,32 +128,40 @@ small simple 1-file non-interactive downloader</li> </ul> - <h2>Meta-indexes: lists of links</h2> + <h2>Historical interest</h2> <ul> <li><a href= - "http://archive.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html"> + "http://web.archive.org/web/2005050785333/http://archive.ncsa.uiuc.edu/SDG/Software/Mosaic/MetaIndex.html"> NCSA Mosaic</a></li> </ul> <h2>Search engines:</h2> <ul> - <li><a href="http://www.alltheweb.com/">AlltheWeb.com</a></li> - - <li><a href="http://www.altavista.com/">AltaVista</a></li> + <!-- all usable with Lynx as of 2013/10/20 --> <li><a href="http://www.ask.com/">Ask.com</a></li> - <li><a href="http://www.excite.com/">Excite</a></li> + <li><a href="http://www.baidu.com/">Baidu</a> (Chinese)</li> - <li><a href="http://www.go.com/">GO.com</a></li> + <li><a href="http://www.bing.com/">Bing</a></li> + + <li><a href="http://www.dogpile.com/">Dogpile</a></li> + + <li><a href="http://labs.goo.ne.jp/">goo</a> (Japanese)</li> <li><a href="http://www.google.com/">Google</a></li> - <li><a href="http://search.lycos.com/">Lycos</a></li> + <li><a href="http://hakia.com/">Hakia</a></li> + + <li><a href="http://www.icerocket.com/">IceRocket</a></li> + + <li><a href="http://indeed.com/">Indeed</a></li> - <li><a href="http://www.metacrawler.com/">MetaCrawler</a></li> + <li><a href="http://www.lexxe.com/">Lexxe</a></li> + + <li><a href="http://www.rambler.ru/">Rambler</a> (Russian)</li> <li><a href="http://www.search.com/">Search.com</a></li> @@ -156,19 +172,5 @@ <li><a href="http://www.yahoo.com/">Yahoo!</a></li> </ul> - <h2>Free WWW E-mail services:</h2> - - <ul> - <li><a href="http://www.eudoramail.com/">Eudora - Web-Mail</a></li> - - <li><a href="http://www.excite.com/">Excite Inbox</a></li> - - <li><a href="http://www.hotmail.com/">Hotmail</a></li> - - <li><a href="http://www.netaddress.com/">Net@ddress</a></li> - - <li><a href="http://mail.yahoo.com/">Yahoo! Mail</a></li> - </ul> </body> </html> diff --git a/scripts/indent.sh b/scripts/indent.sh index 899870de..ca06d26f 100755 --- a/scripts/indent.sh +++ b/scripts/indent.sh @@ -1,6 +1,7 @@ #!/bin/sh -# $LynxId: indent.sh,v 1.3 2007/05/13 16:26:51 tom Exp $ -# Indent LYNX files. +# $LynxId: indent.sh,v 1.4 2013/10/20 19:34:35 tom Exp $ +# Indent LYNX files (for reference). See "lnx-indent" from +# http://invisible-island.net/cindent/ NOOP=no OPTS=' --blank-lines-after-declarations diff --git a/src/LYCurses.c b/src/LYCurses.c index 28a0ff19..1f9c7a00 100644 --- a/src/LYCurses.c +++ b/src/LYCurses.c @@ -1,4 +1,4 @@ -/* $LynxId: LYCurses.c,v 1.175 2013/10/02 14:35:56 tom Exp $ */ +/* $LynxId: LYCurses.c,v 1.177 2013/10/20 16:24:43 tom Exp $ */ #include <HTUtils.h> #include <HTAlert.h> @@ -58,6 +58,10 @@ int lynx_has_color = FALSE; char *XCursesProgramName = "Lynx"; #endif +#ifdef PDCURSES +#undef HAVE_NEWTERM /* not needed, since /dev/tty is unused */ +#endif + #if defined(USE_COLOR_STYLE) && !defined(USE_COLOR_TABLE) #define COLOR_BKGD ((s_normal != NOSTYLE) ? hashStyles[s_normal].color : A_NORMAL) #else @@ -922,7 +926,7 @@ static SCREEN *LYscreen = NULL; #define LYDELSCR() /* ncurses does not need this */ -#elif defined(HAVE_NEWTERM) && defined(HAVE_DELSCREEN) && !defined(PDCURSES) +#elif defined(HAVE_NEWTERM) && defined(HAVE_DELSCREEN) static SCREEN *LYscreen = NULL; @@ -1407,7 +1411,7 @@ void start_curses(void) endwin(); exit_immediately(EXIT_FAILURE); } -#endif +#endif /* ncurses-keymaps */ /* * This is a workaround for a bug in SVr4 curses, observed on Solaris diff --git a/src/LYEditmap.c b/src/LYEditmap.c index 8f94fce3..7786f508 100644 --- a/src/LYEditmap.c +++ b/src/LYEditmap.c @@ -1,5 +1,5 @@ /* - * $LynxId: LYEditmap.c,v 1.68 2013/10/19 20:04:16 tom Exp $ + * $LynxId: LYEditmap.c,v 1.71 2013/10/20 20:03:24 tom Exp $ * * LYEditMap.c * Keybindings for line and form editing. @@ -106,11 +106,11 @@ static struct emap ekmap[] = { #undef SEPARATOR /* *INDENT-ON* */ -static LYEditCode DefaultEditBinding[KEYMAP_SIZE - 1]; +static LYEditCode DefaultEditBinding[KEYMAP_SIZE]; #ifdef USE_ALT_BINDINGS -static LYEditCode BetterEditBinding[KEYMAP_SIZE - 1]; -static LYEditCode BashlikeEditBinding[KEYMAP_SIZE - 1]; +static LYEditCode BetterEditBinding[KEYMAP_SIZE]; +static LYEditCode BashlikeEditBinding[KEYMAP_SIZE]; /* * If a modifier bit is set in a lynxkeycode, it is first looked up here. @@ -121,7 +121,7 @@ static LYEditCode BashlikeEditBinding[KEYMAP_SIZE - 1]; * effect only for those Bindings that map a lynxkeycode to LYE_SETMn. ( This * doesn't apply if the modifier is already being set in LYgetch(). ) - kw */ -static LYEditCode Mod1Binding[KEYMAP_SIZE - 1]; +static LYEditCode Mod1Binding[KEYMAP_SIZE]; /* Two more tables here, but currently they are all the same. In other words, we are cheating to save space, until there @@ -1248,7 +1248,7 @@ static struct emap *name2emap(const char *name) if (non_empty(name)) { for (mp = ekmap; mp->name != NULL; mp++) { - if (strcmp(mp->name, name) == 0) { + if (strcasecomp(mp->name, name) == 0) { result = mp; break; } @@ -1359,7 +1359,7 @@ BOOL LYRemapEditBinding(int xlkc, int c = xlkc & LKC_MASK; BOOLEAN success = FALSE; - if (xlkc >= 0 && !(xlkc & LKC_ISLAC) && (c < KEYMAP_SIZE + 1)) { + if (xlkc >= 0 && !(xlkc & LKC_ISLAC) && (c < KEYMAP_SIZE)) { LYEditCode code = (LYEditCode) lec; #ifdef USE_ALT_BINDINGS @@ -1422,7 +1422,7 @@ int LYKeyForEditAction(int lec) { int editaction, i; - for (i = FIRST_I; i >= 0; i = NEXT_I(i, KEYMAP_SIZE - 2)) { + for (i = FIRST_I; i >= 0; i = NEXT_I(i, KEYMAP_SIZE - 1)) { editaction = CurrentLineEditor()[i]; if (editaction == lec) { #ifdef NOT_ASCII @@ -1457,7 +1457,7 @@ int LYEditKeyForAction(int lac, if (pmodkey) *pmodkey = -1; - for (i = FIRST_I; i >= 0; i = NEXT_I(i, KEYMAP_SIZE - 2)) { + for (i = FIRST_I; i >= 0; i = NEXT_I(i, KEYMAP_SIZE - 1)) { editaction = CurrentLineEditor()[i]; #ifdef NOT_ASCII if (i < 256) { @@ -1613,18 +1613,6 @@ int LYEditKeyForAction(int lac, return (-1); } -/* - * Dummy initializer to ensure this module is linked - * if the external model is common block, and the - * module is ever placed in a library. - FM - */ -int LYEditmapDeclared(void) -{ - int status = 1; - - return status; -} - #if 0 /* * This function was useful in converting the hand-crafted key-bindings to @@ -1650,7 +1638,7 @@ static void checkEditMap(LYEditConfig * table) table->used[code]); } } - for (j = 0; j < KEYMAP_SIZE - 1; ++j) { + for (j = 0; j < KEYMAP_SIZE; ++j) { int code = (int) j; BOOL found = FALSE; @@ -1716,7 +1704,7 @@ static void checkEditMap(LYEditConfig * table) } if (name == 0) { name = "XXX"; - } else if (!strcmp(name, "PASS")) { + } else if (!strcasecomp(name, "PASS")) { name = "FORM_PASS"; } if (first) { @@ -1742,7 +1730,7 @@ static void initLineEditor(LYEditConfig * table) LYEditCode *used = table->used; const LYEditInit *init = table->init; - memset(used, 0, sizeof(LYEditCode) * (KEYMAP_SIZE - 1)); + memset(used, 0, sizeof(LYEditCode) * KEYMAP_SIZE); for (k = 0; init[k].code >= 0; ++k) { int code = init[k].code; @@ -1774,7 +1762,7 @@ static char *showRanges(int *state) int i; range[0] = range[1] = -1; - for (i = 0; i < KEYMAP_SIZE - 1; ++i) { + for (i = 0; i < KEYMAP_SIZE; ++i) { if (!state[i]) { int code = CurrentLineEditor()[i]; @@ -1802,7 +1790,7 @@ static int LYLoadEditmap(const char *arg GCC_UNUSED, #define FORMAT " %-*s %-*s - %s\n" HTFormat format_in = WWW_HTML; HTStream *target; - int state[KEYMAP_SIZE - 1]; + int state[KEYMAP_SIZE]; int width[2]; char *buf = 0; char *ranges = 0; @@ -1826,7 +1814,7 @@ static int LYLoadEditmap(const char *arg GCC_UNUSED, /* determine the column-widths we will use for showing bindings */ width[0] = 0; width[1] = 0; - for (i = 0; i < KEYMAP_SIZE - 1; ++i) { + for (i = 0; i < KEYMAP_SIZE; ++i) { int code = CurrentLineEditor()[i]; if (code == LYE_NOP) { @@ -1876,7 +1864,7 @@ static int LYLoadEditmap(const char *arg GCC_UNUSED, PUTS(buf); had_output = TRUE; } else { - for (i = 0; i < KEYMAP_SIZE - 1; ++i) { + for (i = 0; i < KEYMAP_SIZE; ++i) { int code = CurrentLineEditor()[i]; if ((code == mp->code) && !state[i]) { diff --git a/src/LYKeymap.c b/src/LYKeymap.c index 362182c5..5c144c2a 100644 --- a/src/LYKeymap.c +++ b/src/LYKeymap.c @@ -1,4 +1,4 @@ -/* $LynxId: LYKeymap.c,v 1.100 2013/10/19 13:51:38 tom Exp $ */ +/* $LynxId: LYKeymap.c,v 1.108 2013/10/20 22:26:42 tom Exp $ */ #include <HTUtils.h> #include <LYUtils.h> #include <LYGlobalDefs.h> @@ -48,307 +48,172 @@ const char *LYKbLayoutNames[] = * lynx.cfg. * * Lynxactioncodes (confusingly, constants are named LYK_foo and typed as - * LYKeymapCode) specify key `functions', see LYKeymap.h. + * specify key `functions', see LYKeymap.h. */ /* the character gets 1 added to it before lookup, * so that EOF maps to 0 */ -/* *INDENT-OFF* */ -LYKeymap_t keymap[KEYMAP_SIZE] = { - -0, -/* EOF */ - -LYK_DO_NOTHING, LYK_HOME, LYK_PREV_PAGE, 0, -/* nul */ /* ^A */ /* ^B */ /* ^C */ - -LYK_ABORT, LYK_END, LYK_NEXT_PAGE, 0, -/* ^D */ /* ^E */ /* ^F */ /* ^G */ - -LYK_HISTORY, LYK_FASTFORW_LINK, LYK_ACTIVATE, LYK_COOKIE_JAR, -/* bs */ /* ht */ /* nl */ /* ^K */ - -LYK_REFRESH, LYK_ACTIVATE, LYK_DOWN_TWO, 0, -/* ^L */ /* cr */ /* ^N */ /* ^O */ - -LYK_UP_TWO, LYK_CHG_CENTER, LYK_RELOAD, LYK_TO_CLIPBOARD, -/* ^P */ /* XON */ /* ^R */ /* ^S */ - -LYK_TRACE_TOGGLE, LYK_NEXT_DOC, LYK_SWITCH_DTD, LYK_REFRESH, -/* ^T */ /* ^U */ /* ^V */ /* ^W */ - -LYK_CACHE_JAR, 0, LYK_MAXSCREEN_TOGGLE, 0, -/* ^X */ /* ^Y */ /* ^Z */ /* ESC */ - -0, 0, 0, 0, -/* ^\ */ /* ^] */ /* ^^ */ /* ^_ */ - -LYK_NEXT_PAGE, LYK_SHELL, LYK_SOFT_DQUOTES, LYK_TOOLBAR, -/* sp */ /* ! */ /* " */ /* # */ - -LYK_LAST_LINK, 0, 0, LYK_HISTORICAL, -/* $ */ /* % */ /* & */ /* ' */ - -LYK_UP_HALF, LYK_DOWN_HALF, LYK_IMAGE_TOGGLE, LYK_NEXT_PAGE, -/* ( */ /* ) */ /* * */ /* + */ - -LYK_EXTERN_PAGE, LYK_PREV_PAGE, LYK_EXTERN_LINK, LYK_WHEREIS, -/* , */ /* - */ /* . */ /* / */ +LYKeymap_t keymap[KEYMAP_SIZE]; -LYK_F_LINK_NUM, LYK_1, LYK_2, LYK_3, -/* 0 */ /* 1 */ /* 2 */ /* 3 */ - -LYK_4, LYK_5, LYK_6, LYK_7, -/* 4 */ /* 5 */ /* 6 */ /* 7 */ - -LYK_8, LYK_9, LYK_COMMAND, LYK_TRACE_LOG, -/* 8 */ /* 9 */ /* : */ /* ; */ - -LYK_UP_LINK, LYK_INFO, LYK_DOWN_LINK, LYK_HELP, -/* < */ /* = */ /* > */ /* ? */ - -#ifndef SUPPORT_CHDIR -LYK_RAW_TOGGLE, LYK_ADDRLIST, LYK_PREV_PAGE, LYK_COMMENT, -/* @ */ /* A */ /* B */ /* C */ +static const LYEditInit initKeymapData[] = +{ + {1, LYK_DO_NOTHING}, /* nul */ + {2, LYK_HOME}, /* ^B */ + {3, LYK_PREV_PAGE}, /* ^C */ + {5, LYK_ABORT}, /* ^E */ + {6, LYK_END}, /* ^F */ + {7, LYK_NEXT_PAGE}, /* ^G */ + {9, LYK_HISTORY}, /* ^I */ + {10, LYK_FASTFORW_LINK}, /* ^J */ + {11, LYK_ACTIVATE}, /* ^K */ + {12, LYK_COOKIE_JAR}, /* ^L */ + {13, LYK_REFRESH}, /* ^M */ + {14, LYK_ACTIVATE}, /* ^N */ + {15, LYK_DOWN_TWO}, /* ^O */ + {17, LYK_UP_TWO}, /* ^Q */ + {18, LYK_CHANGE_CENTER}, /* XON */ + {19, LYK_RELOAD}, /* ^S */ + {20, LYK_TO_CLIPBOARD}, /* XOFF */ + {21, LYK_TRACE_TOGGLE}, /* ^U */ + {22, LYK_NEXT_DOC}, /* ^V */ + {23, LYK_SWITCH_DTD}, /* ^W */ + {24, LYK_REFRESH}, /* ^X */ + {25, LYK_CACHE_JAR}, /* ^Y */ + {33, LYK_NEXT_PAGE}, /* */ + {34, LYK_SHELL}, /* ! */ + {35, LYK_SOFT_DQUOTES}, /* " */ + {36, LYK_TOOLBAR}, /* # */ + {37, LYK_LAST_LINK}, /* $ */ + {40, LYK_HISTORICAL}, /* ' */ + {41, LYK_UP_HALF}, /* ( */ + {42, LYK_DOWN_HALF}, /* ) */ + {43, LYK_IMAGE_TOGGLE}, /* * */ + {44, LYK_NEXT_PAGE}, /* + */ + {45, LYK_EXTERN_PAGE}, /* , */ + {46, LYK_PREV_PAGE}, /* - */ + {47, LYK_EXTERN_LINK}, /* . */ + {48, LYK_WHEREIS}, /* / */ + {49, LYK_F_LINK_NUM}, /* 0 */ + {50, LYK_1}, /* 1 */ + {51, LYK_2}, /* 2 */ + {52, LYK_3}, /* 3 */ + {53, LYK_4}, /* 4 */ + {54, LYK_5}, /* 5 */ + {55, LYK_6}, /* 6 */ + {56, LYK_7}, /* 7 */ + {57, LYK_8}, /* 8 */ + {58, LYK_9}, /* 9 */ + {59, LYK_COMMAND}, /* : */ + {60, LYK_TRACE_LOG}, /* ; */ + {61, LYK_UP_LINK}, /* < */ + {62, LYK_INFO}, /* = */ + {63, LYK_DOWN_LINK}, /* > */ + {64, LYK_HELP}, /* ? */ + {65, LYK_RAW_TOGGLE}, /* @ */ + {66, LYK_ADDRLIST}, /* A */ + {67, LYK_PREV_PAGE}, /* B */ +#ifdef SUPPORT_CHDIR + {68, LYK_CHDIR}, /* C */ #else -LYK_RAW_TOGGLE, LYK_ADDRLIST, LYK_PREV_PAGE, LYK_CHDIR, -/* @ */ /* A */ /* B */ /* C */ + {68, LYK_COMMENT}, /* C */ #endif - -LYK_DOWNLOAD, LYK_ELGOTO, LYK_DIRED_MENU, LYK_ECGOTO, -/* D */ /* E */ /* F */ /* G */ - + {69, LYK_DOWNLOAD}, /* D */ + {70, LYK_ELGOTO}, /* E */ + {71, LYK_DIRED_MENU}, /* F */ + {72, LYK_ECGOTO}, /* G */ + {73, LYK_HELP}, /* H */ + {74, LYK_INDEX}, /* I */ #ifdef KANJI_CODE_OVERRIDE -LYK_HELP, LYK_INDEX, LYK_CHG_KCODE, LYK_KEYMAP, -/* H */ /* I */ /* J */ /* K */ - + {75, LYK_CHANGE_KCODE}, /* J */ #else -LYK_HELP, LYK_INDEX, LYK_JUMP, LYK_KEYMAP, -/* H */ /* I */ /* J */ /* K */ + {75, LYK_JUMP}, /* J */ #endif - -LYK_LIST, LYK_MAIN_MENU, LYK_PREV, LYK_OPTIONS, -/* L */ /* M */ /* N */ /* O */ - -LYK_PRINT, LYK_ABORT, LYK_DEL_BOOKMARK, LYK_INDEX_SEARCH, -/* P */ /* Q */ /* R */ /* S */ - -LYK_TAG_LINK, LYK_PREV_DOC, LYK_VLINKS, 0, -/* T */ /* U */ /* V */ /* W */ - -LYK_NOCACHE, 0, LYK_INTERRUPT, LYK_INLINE_TOGGLE, -/* X */ /* Y */ /* Z */ /* [ */ - -LYK_SOURCE, LYK_HEAD, LYK_FIRST_LINK, LYK_CLEAR_AUTH, -/* \ */ /* ] */ /* ^ */ /* _ */ - -LYK_MINIMAL, LYK_ADD_BOOKMARK, LYK_PREV_PAGE, LYK_COMMENT, -/* ` */ /* a */ /* b */ /* c */ - -LYK_DOWNLOAD, LYK_EDIT, LYK_DIRED_MENU, LYK_GOTO, -/* d */ /* e */ /* f */ /* g */ - -LYK_HELP, LYK_INDEX, LYK_JUMP, LYK_KEYMAP, -/* h */ /* i */ /* j */ /* k */ - -LYK_LIST, LYK_MAIN_MENU, LYK_NEXT, LYK_OPTIONS, -/* l */ /* m */ /* n */ /* o */ - -LYK_PRINT, LYK_QUIT, LYK_DEL_BOOKMARK, LYK_INDEX_SEARCH, -/* p */ /* q */ /* r */ /* s */ - -LYK_TAG_LINK, LYK_PREV_DOC, LYK_VIEW_BOOKMARK, 0, -/* t */ /* u */ /* v */ /* w */ - -LYK_NOCACHE, 0, LYK_INTERRUPT, LYK_SHIFT_LEFT, -/* x */ /* y */ /* z */ /* { */ - -LYK_LINEWRAP_TOGGLE, LYK_SHIFT_RIGHT, LYK_NESTED_TABLES, LYK_HISTORY, -/* | */ /* } */ /* ~ */ /* del */ - - -/* 80..9F (illegal ISO-8859-1) 8-bit characters. */ - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - -/* A0..FF (permissible ISO-8859-1) 8-bit characters. */ - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - -/* 100..10F function key definitions in LYStrings.h */ -LYK_PREV_LINK, LYK_NEXT_LINK, LYK_ACTIVATE, LYK_PREV_DOC, -/* UPARROW */ /* DNARROW */ /* RTARROW */ /* LTARROW */ - -LYK_NEXT_PAGE, LYK_PREV_PAGE, LYK_HOME, LYK_END, -/* PGDOWN */ /* PGUP */ /* HOME */ /* END */ - -#if (defined(_WINDOWS) || defined(__DJGPP__)) - -LYK_DWIMHELP, 0, 0, 0, -/* F1*/ -#else - -LYK_DWIMHELP, LYK_ACTIVATE, LYK_HOME, LYK_END, -/* F1*/ /* Do key */ /* Find key */ /* Select key */ - -#endif /* _WINDOWS || __DJGPP__ */ - -LYK_UP_TWO, LYK_DOWN_TWO, LYK_DO_NOTHING, LYK_FASTBACKW_LINK, -/* Insert key */ /* Remove key */ /* DO_NOTHING*/ /* Back tab */ - -/* 110..18F */ - - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, LYK_DO_NOTHING, 0, 0, - /* 0x11d: MOUSE_KEY */ - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, + {76, LYK_KEYMAP}, /* K */ + {77, LYK_LIST}, /* L */ + {78, LYK_MAIN_MENU}, /* M */ + {79, LYK_PREV}, /* N */ + {80, LYK_OPTIONS}, /* O */ + {81, LYK_PRINT}, /* P */ + {82, LYK_ABORT}, /* Q */ + {83, LYK_DEL_BOOKMARK}, /* R */ + {84, LYK_INDEX_SEARCH}, /* S */ + {85, LYK_TAG_LINK}, /* T */ + {86, LYK_PREV_DOC}, /* U */ + {87, LYK_VLINKS}, /* V */ + {89, LYK_NOCACHE}, /* X */ + {91, LYK_INTERRUPT}, /* Z */ + {92, LYK_INLINE_TOGGLE}, /* [ */ + {93, LYK_SOURCE}, /* \ */ + {94, LYK_HEAD}, /* ] */ + {95, LYK_FIRST_LINK}, /* ^ */ + {96, LYK_CLEAR_AUTH}, /* _ */ + {97, LYK_MINIMAL}, /* ` */ + {98, LYK_ADD_BOOKMARK}, /* a */ + {99, LYK_PREV_PAGE}, /* b */ + {100, LYK_COMMENT}, /* c */ + {101, LYK_DOWNLOAD}, /* d */ + {102, LYK_EDIT}, /* e */ + {103, LYK_DIRED_MENU}, /* f */ + {104, LYK_GOTO}, /* g */ + {105, LYK_HELP}, /* h */ + {106, LYK_INDEX}, /* i */ + {107, LYK_JUMP}, /* j */ + {108, LYK_KEYMAP}, /* k */ + {109, LYK_LIST}, /* l */ + {110, LYK_MAIN_MENU}, /* m */ + {111, LYK_NEXT}, /* n */ + {112, LYK_OPTIONS}, /* o */ + {113, LYK_PRINT}, /* p */ + {114, LYK_QUIT}, /* q */ + {115, LYK_DEL_BOOKMARK}, /* r */ + {116, LYK_INDEX_SEARCH}, /* s */ + {117, LYK_TAG_LINK}, /* t */ + {118, LYK_PREV_DOC}, /* u */ + {119, LYK_VIEW_BOOKMARK}, /* v */ + {121, LYK_NOCACHE}, /* x */ + {123, LYK_INTERRUPT}, /* z */ + {124, LYK_SHIFT_LEFT}, /* { */ + {125, LYK_LINEWRAP_TOGGLE}, /* | */ + {126, LYK_SHIFT_RIGHT}, /* } */ + {127, LYK_NESTED_TABLES}, /* ~ */ + {128, LYK_HISTORY}, /* DEL */ + {257, LYK_PREV_LINK}, /* UPARROW_KEY */ + {258, LYK_NEXT_LINK}, /* DNARROW_KEY */ + {259, LYK_ACTIVATE}, /* RTARROW_KEY */ + {260, LYK_PREV_DOC}, /* LTARROW_KEY */ + {261, LYK_NEXT_PAGE}, /* PGDOWN_KEY */ + {262, LYK_PREV_PAGE}, /* PGUP_KEY */ + {263, LYK_HOME}, /* HOME_KEY */ + {264, LYK_END}, /* END_KEY */ + {265, LYK_DWIMHELP}, /* F1_KEY */ +#if !(defined(_WINDOWS) || defined(__DJGPP__)) + {266, LYK_ACTIVATE}, /* DO_KEY */ + {267, LYK_HOME}, /* FIND_KEY */ + {268, LYK_END}, /* SELECT_KEY */ +#endif + {269, LYK_UP_TWO}, /* INSERT_KEY */ + {270, LYK_DOWN_TWO}, /* REMOVE_KEY */ + {271, LYK_DO_NOTHING}, /* DO_NOTHING */ + {272, LYK_FASTBACKW_LINK}, /* BACKTAB_KEY */ + {282, LYK_DO_NOTHING}, /* F11_KEY */ #ifdef DJGPP_KEYHANDLER - 0, LYK_ABORT, 0, 0, - /* ALT_X */ -#else - 0, 0, 0, 0, -#endif /* DJGPP_KEYHANDLER */ - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, -/* 190..20F */ - - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, -#if (defined(_WINDOWS) || defined(__DJGPP__) || defined(__CYGWIN__)) && !defined(USE_SLANG) /* PDCurses */ - LYK_ABORT, 0, 0, 0, - /* ALT_X */ - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, LYK_WHEREIS, 0, - /* KP_SLASH */ - 0, 0, 0, LYK_IMAGE_TOGGLE, - /* KP_* */ - LYK_PREV_PAGE, LYK_NEXT_PAGE, 0, 0, - /* KP_- */ /* KP_+ */ -#else - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, -#endif /* (_WINDOWS || __DJGPP__ || __CYGWIN__) && !USE_SLANG */ - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, -/* 210..28F */ - - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - /* 290...293 */ - LYK_CHANGE_LINK, 0, 0, 0, + {302, LYK_ABORT}, +#endif /* DJGPP_KEYHANDLER */ +#if (defined(_WINDOWS) || defined(__DJGPP__) || defined(__CYGWIN__)) && !defined(USE_SLANG) /* PDCurses */ + {441, LYK_ABORT}, /* ALT_X */ + {459, LYK_WHEREIS}, /* KP_SLASH */ + {464, LYK_IMAGE_TOGGLE}, /* KP_* */ + {465, LYK_PREV_PAGE}, /* KP_- */ + {466, LYK_NEXT_PAGE}, /* KP_+ */ +#endif + {657, LYK_CHANGE_LINK}, + {-1, LYE_UNKNOWN} +}; + +static LYEditConfig myKeymapData = +{ + "Key Map", initKeymapData, keymap }; #if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE) @@ -358,644 +223,417 @@ LYK_UP_TWO, LYK_DOWN_TWO, LYK_DO_NOTHING, LYK_FASTBACKW_LINK, * allowed at compile time. */ -LYKeymap_t key_override[KEYMAP_SIZE] = { - - 0, -/* EOF */ - - 0, 0, 0, 0, -/* nul */ /* ^A */ /* ^B */ /* ^C */ - - 0, 0, 0, 0, -/* ^D */ /* ^E */ /* ^F */ /* ^G */ - - 0, 0, 0, 0, -/* bs */ /* ht */ /* nl */ /* ^K */ +LYKeymap_t key_override[KEYMAP_SIZE]; - 0, 0, 0, 0, -/* ^L */ /* cr */ /* ^N */ /* ^O */ - - 0, 0, 0, 0, -/* ^P */ /* XON */ /* ^R */ /* XOFF */ - - 0, LYK_NEXT_DOC, 0, 0, -/* ^T */ /* ^U */ /* ^V */ /* ^W */ - - 0, 0, 0, 0, -/* ^X */ /* ^Y */ /* ^Z */ /* ESC */ - - 0, 0, 0, 0, -/* ^\ */ /* ^] */ /* ^^ */ /* ^_ */ - - 0, 0, 0, 0, -/* sp */ /* ! */ /* " */ /* # */ - - 0, 0, 0, 0, -/* $ */ /* % */ /* & */ /* ' */ - - 0, 0, 0, 0, -/* ( */ /* ) */ /* * */ /* + */ - - 0, 0, LYK_TAG_LINK, 0, -/* , */ /* - */ /* . */ /* / */ - - 0, 0, 0, 0, -/* 0 */ /* 1 */ /* 2 */ /* 3 */ - - 0, 0, 0, 0, -/* 4 */ /* 5 */ /* 6 */ /* 7 */ - - 0, 0, 0, 0, -/* 8 */ /* 9 */ /* : */ /* ; */ - - 0, 0, 0, 0, -/* < */ /* = */ /* > */ /* ? */ +static const LYEditInit initOverrideData[] = +{ + {22, LYK_NEXT_DOC}, /* ^V */ + {47, LYK_TAG_LINK}, /* . */ #ifndef SUPPORT_CHDIR - 0, 0, 0, LYK_CREATE, -/* @ */ /* A */ /* B */ /* C */ + {68, LYK_CREATE}, /* C */ #else - 0, 0, 0, LYK_CHDIR, -/* @ */ /* A */ /* B */ /* C */ + {68, LYK_CHDIR}, /* C */ #endif + {71, LYK_DIRED_MENU}, /* F */ + {78, LYK_MODIFY}, /* M */ + {83, LYK_REMOVE}, /* R */ + {85, LYK_TAG_LINK}, /* T */ + {86, LYK_UPLOAD}, /* U */ + {100, LYK_CREATE}, /* c */ + {103, LYK_DIRED_MENU}, /* f */ + {110, LYK_MODIFY}, /* m */ + {115, LYK_REMOVE}, /* r */ + {117, LYK_TAG_LINK}, /* t */ + {118, LYK_UPLOAD}, /* u */ + {271, LYK_DO_NOTHING}, /* DO_NOTHING */ + {-1, LYE_UNKNOWN} +}; - 0, 0, LYK_DIRED_MENU, 0, -/* D */ /* E */ /* F */ /* G */ - - 0, 0, 0, 0, -/* H */ /* I */ /* J */ /* K */ - - 0, LYK_MODIFY, 0, 0, -/* L */ /* M */ /* N */ /* O */ - - 0, 0, LYK_REMOVE, 0, -/* P */ /* Q */ /* R */ /* S */ - -LYK_TAG_LINK, LYK_UPLOAD, 0, 0, -/* T */ /* U */ /* V */ /* W */ - - 0, 0, 0, 0, -/* X */ /* Y */ /* Z */ /* [ */ - - 0, 0, 0, 0, -/* \ */ /* ] */ /* ^ */ /* _ */ - -0, 0, 0, LYK_CREATE, -/* ` */ /* a */ /* b */ /* c */ - - 0, 0, LYK_DIRED_MENU, 0, -/* d */ /* e */ /* f */ /* g */ - - 0, 0, 0, 0, -/* h */ /* i */ /* j */ /* k */ - -0, LYK_MODIFY, 0, 0, -/* l */ /* m */ /* n */ /* o */ - - 0, 0, LYK_REMOVE, 0, -/* p */ /* q */ /* r */ /* s */ - -LYK_TAG_LINK, LYK_UPLOAD, 0, 0, -/* t */ /* u */ /* v */ /* w */ - - 0, 0, 0, 0, -/* x */ /* y */ /* z */ /* { */ - - 0, 0, 0, 0, -/* | */ /* } */ /* ~ */ /* del */ - -/* 80..9F (illegal ISO-8859-1) 8-bit characters. */ - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - -/* A0..FF (permissible ISO-8859-1) 8-bit characters. */ - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - -/* 100..10F function key definitions in LYStrings.h */ - 0, 0, 0, 0, -/* UPARROW */ /* DNARROW */ /* RTARROW */ /* LTARROW */ - - 0, 0, 0, 0, -/* PGDOWN */ /* PGUP */ /* HOME */ /* END */ - - 0, 0, 0, 0, -/* F1*/ /* Do key */ /* Find key */ /* Select key */ - - 0, 0, LYK_DO_NOTHING, 0, -/* Insert key */ /* Remove key */ /* DO_NOTHING */ /* Back tab */ - -/* 110..18F */ - - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, -/* 190..20F */ - - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, -/* 210..28F */ - - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - /* 290...293 */ - 0, 0, 0, 0, +static LYEditConfig myOverrideData = +{ + "Key Override", initOverrideData, key_override }; #endif /* DIRED_SUPPORT && OK_OVERRIDE */ #define DATA(code, name, doc) { code, name, doc } /* The order of this array must match the LYKeymapCode enum in LYKeymap.h */ -static Kcmd revmap[] = { +static Kcmd revmap[] = +{ DATA( - LYK_UNKNOWN, "UNMAPPED", - NULL ), + LYK_UNKNOWN, "UNMAPPED", + NULL), DATA( - LYK_COMMAND, "COMMAND", - "prompt for, execute a command" ), + LYK_COMMAND, "COMMAND", + "prompt for, execute a command"), DATA( - LYK_1, "1", - NULL ), + LYK_1, "1", + NULL), DATA( - LYK_2, "2", - NULL ), + LYK_2, "2", + NULL), DATA( - LYK_3, "3", - NULL ), + LYK_3, "3", + NULL), DATA( - LYK_4, "4", - NULL ), + LYK_4, "4", + NULL), DATA( - LYK_5, "5", - NULL ), + LYK_5, "5", + NULL), DATA( - LYK_6, "6", - NULL ), + LYK_6, "6", + NULL), DATA( - LYK_7, "7", - NULL ), + LYK_7, "7", + NULL), DATA( - LYK_8, "8", - NULL ), + LYK_8, "8", + NULL), DATA( - LYK_9, "9", - NULL ), + LYK_9, "9", + NULL), DATA( - LYK_SOURCE, "SOURCE", - "toggle source/presentation for current document" ), + LYK_SOURCE, "SOURCE", + "toggle source/presentation for current document"), DATA( - LYK_RELOAD, "RELOAD", - "reload the current document" ), + LYK_RELOAD, "RELOAD", + "reload the current document"), DATA( - LYK_QUIT, "QUIT", - "quit the browser" ), + LYK_QUIT, "QUIT", + "quit the browser"), DATA( - LYK_ABORT, "ABORT", - "quit the browser unconditionally" ), + LYK_ABORT, "ABORT", + "quit the browser unconditionally"), DATA( - LYK_NEXT_PAGE, "NEXT_PAGE", - "view the next page of the document" ), + LYK_NEXT_PAGE, "NEXT_PAGE", + "view the next page of the document"), DATA( - LYK_PREV_PAGE, "PREV_PAGE", - "view the previous page of the document" ), + LYK_PREV_PAGE, "PREV_PAGE", + "view the previous page of the document"), DATA( - LYK_UP_TWO, "UP_TWO", - "go back two lines in the document" ), + LYK_UP_TWO, "UP_TWO", + "go back two lines in the document"), DATA( - LYK_DOWN_TWO, "DOWN_TWO", - "go forward two lines in the document" ), + LYK_DOWN_TWO, "DOWN_TWO", + "go forward two lines in the document"), DATA( - LYK_UP_HALF, "UP_HALF", - "go back half a page in the document" ), + LYK_UP_HALF, "UP_HALF", + "go back half a page in the document"), DATA( - LYK_DOWN_HALF, "DOWN_HALF", - "go forward half a page in the document" ), + LYK_DOWN_HALF, "DOWN_HALF", + "go forward half a page in the document"), DATA( - LYK_REFRESH, "REFRESH", - "refresh the screen to clear garbled text" ), + LYK_REFRESH, "REFRESH", + "refresh the screen to clear garbled text"), DATA( - LYK_HOME, "HOME", - "go to the beginning of the current document" ), + LYK_HOME, "HOME", + "go to the beginning of the current document"), DATA( - LYK_END, "END", - "go to the end of the current document" ), + LYK_END, "END", + "go to the end of the current document"), DATA( - LYK_FIRST_LINK, "FIRST_LINK", - "make the first link on the line current" ), + LYK_FIRST_LINK, "FIRST_LINK", + "make the first link on the line current"), DATA( - LYK_LAST_LINK, "LAST_LINK", - "make the last link on the line current" ), + LYK_LAST_LINK, "LAST_LINK", + "make the last link on the line current"), DATA( - LYK_PREV_LINK, "PREV_LINK", - "make the previous link current" ), + LYK_PREV_LINK, "PREV_LINK", + "make the previous link current"), DATA( - LYK_NEXT_LINK, "NEXT_LINK", - "make the next link current" ), + LYK_NEXT_LINK, "NEXT_LINK", + "make the next link current"), DATA( - LYK_LPOS_PREV_LINK, "LPOS_PREV_LINK", - "make previous link current, same column for input" ), + LYK_LPOS_PREV_LINK, "LPOS_PREV_LINK", + "make previous link current, same column for input"), DATA( - LYK_LPOS_NEXT_LINK, "LPOS_NEXT_LINK", - "make next link current, same column for input" ), + LYK_LPOS_NEXT_LINK, "LPOS_NEXT_LINK", + "make next link current, same column for input"), DATA( - LYK_FASTBACKW_LINK, "FASTBACKW_LINK", - "previous link or text area, only stops on links" ), + LYK_FASTBACKW_LINK, "FASTBACKW_LINK", + "previous link or text area, only stops on links"), DATA( - LYK_FASTFORW_LINK, "FASTFORW_LINK", - "next link or text area, only stops on links" ), + LYK_FASTFORW_LINK, "FASTFORW_LINK", + "next link or text area, only stops on links"), DATA( - LYK_UP_LINK, "UP_LINK", - "move up the page to a previous link" ), + LYK_UP_LINK, "UP_LINK", + "move up the page to a previous link"), DATA( - LYK_DOWN_LINK, "DOWN_LINK", - "move down the page to another link" ), + LYK_DOWN_LINK, "DOWN_LINK", + "move down the page to another link"), DATA( - LYK_RIGHT_LINK, "RIGHT_LINK", - "move right to another link" ), + LYK_RIGHT_LINK, "RIGHT_LINK", + "move right to another link"), DATA( - LYK_LEFT_LINK, "LEFT_LINK", - "move left to a previous link" ), + LYK_LEFT_LINK, "LEFT_LINK", + "move left to a previous link"), DATA( - LYK_HISTORY, "HISTORY", - "display stack of currently-suspended documents" ), + LYK_HISTORY, "HISTORY", + "display stack of currently-suspended documents"), DATA( - LYK_PREV_DOC, "PREV_DOC", - "go back to the previous document" ), + LYK_PREV_DOC, "PREV_DOC", + "go back to the previous document"), DATA( - LYK_NEXT_DOC, "NEXT_DOC", - "undo going back to the previous document" ), + LYK_NEXT_DOC, "NEXT_DOC", + "undo going back to the previous document"), DATA( - LYK_ACTIVATE, "ACTIVATE", - "go to the document given by the current link" ), + LYK_ACTIVATE, "ACTIVATE", + "go to the document given by the current link"), DATA( - LYK_MOUSE_SUBMIT, "MOUSE_SUBMIT", - "DO NOT MAP: follow current link, submit" ), + LYK_MOUSE_SUBMIT, "MOUSE_SUBMIT", + "DO NOT MAP: follow current link, submit"), DATA( - LYK_SUBMIT, "SUBMIT", - "prompt and submit form" ), + LYK_SUBMIT, "SUBMIT", + "prompt and submit form"), DATA( - LYK_RESET, "RESET", - "reset fields on current form" ), + LYK_RESET, "RESET", + "reset fields on current form"), DATA( - LYK_GOTO, "GOTO", - "go to a document given as a URL" ), + LYK_GOTO, "GOTO", + "go to a document given as a URL"), DATA( - LYK_ECGOTO, "ECGOTO", - "edit the current document's URL and go to it" ), + LYK_ECGOTO, "ECGOTO", + "edit the current document's URL and go to it"), DATA( - LYK_HELP, "HELP", - "display help on using the browser" ), + LYK_HELP, "HELP", + "display help on using the browser"), DATA( - LYK_DWIMHELP, "DWIMHELP", - "display help page that may depend on context" ), + LYK_DWIMHELP, "DWIMHELP", + "display help page that may depend on context"), DATA( - LYK_INDEX, "INDEX", - "display an index of potentially useful documents" ), + LYK_INDEX, "INDEX", + "display an index of potentially useful documents"), DATA( - LYK_NOCACHE, "NOCACHE", - "force submission of form or link with no-cache" ), + LYK_NOCACHE, "NOCACHE", + "force submission of form or link with no-cache"), DATA( - LYK_INTERRUPT, "INTERRUPT", - "interrupt network connection or transmission" ), + LYK_INTERRUPT, "INTERRUPT", + "interrupt network connection or transmission"), DATA( - LYK_MAIN_MENU, "MAIN_MENU", - "return to the first screen (home page)" ), + LYK_MAIN_MENU, "MAIN_MENU", + "return to the first screen (home page)"), DATA( - LYK_OPTIONS, "OPTIONS", - "display and change option settings" ), + LYK_OPTIONS, "OPTIONS", + "display and change option settings"), DATA( - LYK_INDEX_SEARCH, "INDEX_SEARCH", - "allow searching of an index" ), + LYK_INDEX_SEARCH, "INDEX_SEARCH", + "allow searching of an index"), DATA( - LYK_WHEREIS, "WHEREIS", - "search within the current document" ), + LYK_WHEREIS, "WHEREIS", + "search within the current document"), DATA( - LYK_PREV, "PREV", - "search for the previous occurence" ), + LYK_PREV, "PREV", + "search for the previous occurence"), DATA( - LYK_NEXT, "NEXT", - "search for the next occurence" ), + LYK_NEXT, "NEXT", + "search for the next occurence"), DATA( - LYK_COMMENT, "COMMENT", - "send a comment to the author of the current document" ), + LYK_COMMENT, "COMMENT", + "send a comment to the author of the current document"), DATA( - LYK_EDIT, "EDIT", - "edit the current document or a form's textarea" ), + LYK_EDIT, "EDIT", + "edit the current document or a form's textarea"), DATA( - LYK_INFO, "INFO", - "display information on the current document and link" ), + LYK_INFO, "INFO", + "display information on the current document and link"), DATA( - LYK_PRINT, "PRINT", - "display choices for printing the current document" ), + LYK_PRINT, "PRINT", + "display choices for printing the current document"), DATA( - LYK_ADD_BOOKMARK, "ADD_BOOKMARK", - "add to your personal bookmark list" ), + LYK_ADD_BOOKMARK, "ADD_BOOKMARK", + "add to your personal bookmark list"), DATA( - LYK_DEL_BOOKMARK, "DEL_BOOKMARK", - "delete from your personal bookmark list" ), + LYK_DEL_BOOKMARK, "DEL_BOOKMARK", + "delete from your personal bookmark list"), DATA( - LYK_VIEW_BOOKMARK, "VIEW_BOOKMARK", - "view your personal bookmark list" ), + LYK_VIEW_BOOKMARK, "VIEW_BOOKMARK", + "view your personal bookmark list"), DATA( - LYK_VLINKS, "VLINKS", - "list links visited during the current Lynx session" ), + LYK_VLINKS, "VLINKS", + "list links visited during the current Lynx session"), DATA( - LYK_SHELL, "SHELL", - "escape from the browser to the system" ), + LYK_SHELL, "SHELL", + "escape from the browser to the system"), DATA( - LYK_DOWNLOAD, "DOWNLOAD", - "download the current link to your computer" ), + LYK_DOWNLOAD, "DOWNLOAD", + "download the current link to your computer"), DATA( - LYK_TRACE_TOGGLE, "TRACE_TOGGLE", - "toggle tracing of browser operations" ), + LYK_TRACE_TOGGLE, "TRACE_TOGGLE", + "toggle tracing of browser operations"), DATA( - LYK_TRACE_LOG, "TRACE_LOG", - "view trace log if started in the current session" ), + LYK_TRACE_LOG, "TRACE_LOG", + "view trace log if started in the current session"), DATA( - LYK_IMAGE_TOGGLE, "IMAGE_TOGGLE", - "toggle handling of all images as links" ), + LYK_IMAGE_TOGGLE, "IMAGE_TOGGLE", + "toggle handling of all images as links"), DATA( - LYK_INLINE_TOGGLE, "INLINE_TOGGLE", - "toggle pseudo-ALTs for inlines with no ALT string" ), + LYK_INLINE_TOGGLE, "INLINE_TOGGLE", + "toggle pseudo-ALTs for inlines with no ALT string"), DATA( - LYK_HEAD, "HEAD", - "send a HEAD request for the current document or link" ), + LYK_HEAD, "HEAD", + "send a HEAD request for the current document or link"), DATA( - LYK_DO_NOTHING, "DO_NOTHING", - NULL ), + LYK_DO_NOTHING, "DO_NOTHING", + NULL), DATA( - LYK_TOGGLE_HELP, "TOGGLE_HELP", - "show other commands in the novice help menu" ), + LYK_TOGGLE_HELP, "TOGGLE_HELP", + "show other commands in the novice help menu"), DATA( - LYK_JUMP, "JUMP", - "go directly to a target document or action" ), + LYK_JUMP, "JUMP", + "go directly to a target document or action"), DATA( - LYK_EDITMAP, "EDITMAP", - "display the current edit-key map" ), + LYK_EDITMAP, "EDITMAP", + "display the current edit-key map"), DATA( - LYK_KEYMAP, "KEYMAP", - "display the current key map" ), + LYK_KEYMAP, "KEYMAP", + "display the current key map"), DATA( - LYK_LIST, "LIST", - "list the references (links) in the current document" ), + LYK_LIST, "LIST", + "list the references (links) in the current document"), DATA( - LYK_TOOLBAR, "TOOLBAR", - "go to Toolbar or Banner in the current document" ), + LYK_TOOLBAR, "TOOLBAR", + "go to Toolbar or Banner in the current document"), DATA( - LYK_HISTORICAL, "HISTORICAL", - "toggle historical vs. valid/minimal comment parsing" ), + LYK_HISTORICAL, "HISTORICAL", + "toggle historical vs. valid/minimal comment parsing"), DATA( - LYK_MINIMAL, "MINIMAL", - "toggle minimal vs. valid comment parsing" ), + LYK_MINIMAL, "MINIMAL", + "toggle minimal vs. valid comment parsing"), DATA( - LYK_SOFT_DQUOTES, "SOFT_DQUOTES", - "toggle valid vs. soft double-quote parsing" ), + LYK_SOFT_DQUOTES, "SOFT_DQUOTES", + "toggle valid vs. soft double-quote parsing"), DATA( - LYK_RAW_TOGGLE, "RAW_TOGGLE", - "toggle raw 8-bit translations or CJK mode ON or OFF" ), + LYK_RAW_TOGGLE, "RAW_TOGGLE", + "toggle raw 8-bit translations or CJK mode ON or OFF"), DATA( - LYK_COOKIE_JAR, "COOKIE_JAR", - "examine the Cookie Jar" ), + LYK_COOKIE_JAR, "COOKIE_JAR", + "examine the Cookie Jar"), DATA( - LYK_F_LINK_NUM, "F_LINK_NUM", - "invoke the 'Follow link (or page) number:' prompt" ), + LYK_F_LINK_NUM, "F_LINK_NUM", + "invoke the 'Follow link (or page) number:' prompt"), DATA( - LYK_CLEAR_AUTH, "CLEAR_AUTH", - "clear all authorization info for this session" ), + LYK_CLEAR_AUTH, "CLEAR_AUTH", + "clear all authorization info for this session"), DATA( - LYK_SWITCH_DTD, "SWITCH_DTD", - "switch between two ways of parsing HTML" ), + LYK_SWITCH_DTD, "SWITCH_DTD", + "switch between two ways of parsing HTML"), DATA( - LYK_ELGOTO, "ELGOTO", - "edit the current link's URL or ACTION and go to it" ), + LYK_ELGOTO, "ELGOTO", + "edit the current link's URL or ACTION and go to it"), DATA( - LYK_CHANGE_LINK, "CHANGE_LINK", - "force reset of the current link on the page" ), + LYK_CHANGE_LINK, "CHANGE_LINK", + "force reset of the current link on the page"), DATA( - LYK_DWIMEDIT, "DWIMEDIT", - "use external editor for context-dependent purpose" ), + LYK_DWIMEDIT, "DWIMEDIT", + "use external editor for context-dependent purpose"), DATA( - LYK_EDITTEXTAREA, "EDITTEXTAREA", - "use an external editor to edit a form's textarea" ), + LYK_EDITTEXTAREA, "EDITTEXTAREA", + "use an external editor to edit a form's textarea"), DATA( - LYK_GROWTEXTAREA, "GROWTEXTAREA", - "add 5 new blank lines to the bottom of a textarea" ), + LYK_GROWTEXTAREA, "GROWTEXTAREA", + "add 5 new blank lines to the bottom of a textarea"), DATA( - LYK_INSERTFILE, "INSERTFILE", - "insert file into a textarea (just above cursorline)" ), + LYK_INSERTFILE, "INSERTFILE", + "insert file into a textarea (just above cursorline)"), #ifdef USE_ADDRLIST_PAGE DATA( - LYK_ADDRLIST, "ADDRLIST", - "like LIST command, but always shows the links' URLs" ), + LYK_ADDRLIST, "ADDRLIST", + "like LIST command, but always shows the links' URLs"), #endif #ifdef USE_EXTERNALS DATA( - LYK_EXTERN_LINK, "EXTERN_LINK", - "run external program with current link" ), + LYK_EXTERN_LINK, "EXTERN_LINK", + "run external program with current link"), DATA( - LYK_EXTERN_PAGE, "EXTERN_PAGE", - "run external program with current page" ), + LYK_EXTERN_PAGE, "EXTERN_PAGE", + "run external program with current page"), #endif #ifdef VMS DATA( - LYK_DIRED_MENU, "DIRED_MENU", - "invoke File/Directory Manager, if available" ), + LYK_DIRED_MENU, "DIRED_MENU", + "invoke File/Directory Manager, if available"), #else #ifdef DIRED_SUPPORT DATA( - LYK_DIRED_MENU, "DIRED_MENU", - "display a full menu of file operations" ), + LYK_DIRED_MENU, "DIRED_MENU", + "display a full menu of file operations"), DATA( - LYK_CREATE, "CREATE", - "create a new file or directory" ), + LYK_CREATE, "CREATE", + "create a new file or directory"), DATA( - LYK_REMOVE, "REMOVE", - "remove a file or directory" ), + LYK_REMOVE, "REMOVE", + "remove a file or directory"), DATA( - LYK_MODIFY, "MODIFY", - "modify the name or location of a file or directory" ), + LYK_MODIFY, "MODIFY", + "modify the name or location of a file or directory"), DATA( - LYK_TAG_LINK, "TAG_LINK", - "tag a file or directory for later action" ), + LYK_TAG_LINK, "TAG_LINK", + "tag a file or directory for later action"), DATA( - LYK_UPLOAD, "UPLOAD", - "upload from your computer to the current directory" ), + LYK_UPLOAD, "UPLOAD", + "upload from your computer to the current directory"), DATA( - LYK_INSTALL, "INSTALL", - "install file or tagged files into a system area" ), -#endif /* DIRED_SUPPORT */ + LYK_INSTALL, "INSTALL", + "install file or tagged files into a system area"), +#endif /* DIRED_SUPPORT */ DATA( - LYK_CHG_CENTER, "CHANGE_CENTER", - "toggle center alignment in HTML TABLE" ), + LYK_CHANGE_CENTER, "CHANGE_CENTER", + "toggle center alignment in HTML TABLE"), #ifdef KANJI_CODE_OVERRIDE DATA( - LYK_CHG_KCODE, "CHANGE_KCODE", - "Change Kanji code" ), + LYK_CHANGE_KCODE, "CHANGE_KCODE", + "Change Kanji code"), #endif -#endif /* VMS */ +#endif /* VMS */ #ifdef SUPPORT_CHDIR DATA( - LYK_CHDIR, "CHDIR", - "change current directory" ), + LYK_CHDIR, "CHDIR", + "change current directory"), DATA( - LYK_PWD, "PWD", - "print current directory" ), + LYK_PWD, "PWD", + "print current directory"), #endif #ifdef USE_CURSES_PADS DATA( - LYK_SHIFT_LEFT, "SHIFT_LEFT", - "shift the screen left" ), + LYK_SHIFT_LEFT, "SHIFT_LEFT", + "shift the screen left"), DATA( - LYK_SHIFT_RIGHT, "SHIFT_RIGHT", - "shift the screen right" ), + LYK_SHIFT_RIGHT, "SHIFT_RIGHT", + "shift the screen right"), DATA( - LYK_LINEWRAP_TOGGLE, "LINEWRAP_TOGGLE", - "toggle linewrap on/off" ), + LYK_LINEWRAP_TOGGLE, "LINEWRAP_TOGGLE", + "toggle linewrap on/off"), #endif #ifdef CAN_CUT_AND_PASTE DATA( - LYK_PASTE_URL, "PASTE_URL", - "Goto the URL in the clipboard" ), + LYK_PASTE_URL, "PASTE_URL", + "Goto the URL in the clipboard"), DATA( - LYK_TO_CLIPBOARD, "TO_CLIPBOARD", - "link's URL to Clip Board" ), + LYK_TO_CLIPBOARD, "TO_CLIPBOARD", + "link's URL to Clip Board"), #endif #ifdef EXP_NESTED_TABLES DATA( - LYK_NESTED_TABLES, "NESTED_TABLES", - "toggle nested-table parsing on/off" ), + LYK_NESTED_TABLES, "NESTED_TABLES", + "toggle nested-table parsing on/off"), #endif #ifdef USE_CACHEJAR DATA( - LYK_CACHE_JAR, "CACHE_JAR", - "examine list of cached documents" ), + LYK_CACHE_JAR, "CACHE_JAR", + "examine list of cached documents"), #endif #ifdef USE_MAXSCREEN_TOGGLE DATA( - LYK_MAXSCREEN_TOGGLE, "MAXSCREEN_TOGGLE", - "toggle max screen and normal" ), + LYK_MAXSCREEN_TOGGLE, "MAXSCREEN_TOGGLE", + "toggle max screen and normal"), #endif DATA( - LYK_UNKNOWN, NULL, - "" ) + LYK_UNKNOWN, NULL, + "") }; -#undef DATA +#undef DATA +/* *INDENT-OFF* */ static const struct { int key; const char *name; @@ -1235,10 +873,10 @@ static char *pretty_html(int c) static char *format_binding(LYKeymap_t *table, int i) { - LYKeymapCode the_key = (LYKeymapCode) table[i]; + LYKeymap_t the_key = table[i]; char *buf = 0; char *formatted; - Kcmd *rmap = LYKeycodeToKcmd(the_key); + Kcmd *rmap = LYKeycodeToKcmd((LYKeymapCode) the_key); if (rmap != 0 && rmap->name != 0 @@ -1258,11 +896,11 @@ static char *format_binding(LYKeymap_t *table, int i) static void print_binding(HTStream *target, int i, int both) { char *buf; - LYKeymapCode lac1 = LYK_UNKNOWN; /* 0 */ + LYKeymap_t lac1 = LYK_UNKNOWN; /* 0 */ #if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE) if (prev_lynx_edit_mode && !no_dired_support && - (lac1 = (LYKeymapCode) key_override[i]) != LYK_UNKNOWN) { + (lac1 = key_override[i]) != LYK_UNKNOWN) { if ((buf = format_binding(key_override, i)) != 0) { PUTS(buf); FREE(buf); @@ -1270,7 +908,7 @@ static void print_binding(HTStream *target, int i, int both) } else #endif /* DIRED_SUPPORT && OK_OVERRIDE */ if ((buf = format_binding(keymap, i)) != 0) { - lac1 = (LYKeymapCode) keymap[i]; + lac1 = keymap[i]; PUTS(buf); FREE(buf); } @@ -1658,7 +1296,7 @@ static int best_reverse_keymap(int lac) { int i, c; - for (i = FIRST_I; i >= 0; i = NEXT_I(i, KEYMAP_SIZE - 2)) { + for (i = FIRST_I; i >= 0; i = NEXT_I(i, KEYMAP_SIZE - 1)) { #ifdef NOT_ASCII if (i < 256) { c = FROMASCII(i); @@ -1719,15 +1357,18 @@ char *key_for_func_ext(int lac, BOOLEAN LYisNonAlnumKeyname(int ch, int KeyName) { - if (ch < 0 || (ch + 1) >= KEYMAP_SIZE) - return (FALSE); - if (ch > 0 - && strchr("0123456789\ -ABCDEFGHIJKLMNOPQRSTUVWXYZ\ -abcdefghijklmnopqrstuvwxyz", ch) != NULL) - return (FALSE); - - return (BOOL) (keymap[ch + 1] == KeyName); + BOOLEAN result = FALSE; + + if (ch >= 0 && (ch + 1) < KEYMAP_SIZE) { + if ((ch <= 0 + || strchr("0123456789" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz", ch) == NULL) + && (keymap[ch + 1] == KeyName)) { + result = TRUE; + } + } + return result; } /* @@ -1737,28 +1378,158 @@ abcdefghijklmnopqrstuvwxyz", ch) != NULL) int LYReverseKeymap(int KeyName) { int i; + int result = -1; for (i = 1; i < KEYMAP_SIZE; i++) { if (keymap[i] == KeyName) { - return (i - 1); + result = (i - 1); + break; } } - return (-1); + return result; } #ifdef EXP_KEYBOARD_LAYOUT -int LYSetKbLayout(char *layout_id) +BOOLEAN LYSetKbLayout(char *layout_id) { int i; + BOOLEAN result = FALSE; for (i = 0; i < (int) TABLESIZE(LYKbLayoutNames) - 1; i++) { - if (!strcmp(LYKbLayoutNames[i], layout_id)) { + if (!strcasecomp(LYKbLayoutNames[i], layout_id)) { current_layout = i; - return (-1); + result = TRUE; + break; } } - return 0; + return result; } #endif + +#if 0 +/* + * This function was useful in converting the hand-crafted key-bindings to + * their reusable form in 2.8.8 -TD + */ +static void checkKeyMap(LYEditConfig * table) +{ + unsigned j, k; + char comment[80]; + int first = TRUE; + + for (j = 0; table->init[j].code >= 0; ++j) { + int code = table->init[j].code; + + if (table->init[j].edit != table->used[code]) { + if (first) { + printf("TABLE %s\n", table->name); + first = FALSE; + } + printf("%u: init %d vs used %d\n", + j, + table->init[j].edit, + table->used[code]); + } + } + for (j = 0; j < KEYMAP_SIZE; ++j) { + int code = (int) j; + BOOL found = FALSE; + + for (k = 0; table->init[k].code >= 0; ++k) { + if (code == table->init[k].code) { + found = TRUE; + break; + } + } + if (!found) { + if (table->used[j] != 0) { + unsigned used = (j - 1); + int edit = table->used[j]; + const char *prefix = "LYK_"; + const char *name = 0; + Kcmd *cmd = LYKeycodeToKcmd(edit + 0); + + if (cmd != 0) { + name = cmd->name; + } + + if (used < 32) { + char temp[80]; + const char *what = 0; + + switch (used) { + case 0: + what = "nul"; + break; + case 17: + what = "XON"; + break; + case 19: + what = "XOFF"; + break; + default: + sprintf(temp, "^%c", used + 'A'); + what = temp; + break; + } + sprintf(comment, "\t/* %s */", what); + } else if (used < 127) { + sprintf(comment, "\t/* %c */", used); + } else if (used == 127) { + strcpy(comment, "\t/* DEL */"); + } else { + const char *what = LYextraKeysToName(used); + + if (non_empty(what)) { + sprintf(comment, "\t/* %s%s */", what, + ((strchr(what, '_') != 0) + ? "" + : "_KEY")); + } else { + strcpy(comment, ""); + } + } + if (name == 0) { + name = "XXX"; + } + if (first) { + printf("TABLE %s\n", table->name); + first = FALSE; + } + printf("\t{ %d, %s%s },%s\n", code, prefix, name, comment); + } + } + } +} + +#else +#define checkKeyMap(table) /* nothing */ +#endif + +static void initKeyMap(LYEditConfig * table) +{ + unsigned k; + LYEditCode *used = table->used; + const LYEditInit *init = table->init; + + memset(used, 0, sizeof(LYEditCode) * KEYMAP_SIZE); + for (k = 0; init[k].code >= 0; ++k) { + int code = init[k].code; + + used[code] = init[k].edit; + } + checkKeyMap(table); +} + +/* + * Reset the key bindings to their default values. + */ +void LYinitKeymap(void) +{ + initKeyMap(&myKeymapData); +#if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE) + initKeyMap(&myOverrideData); +#endif +} diff --git a/src/LYKeymap.h b/src/LYKeymap.h index 98dd67f7..d5a4b218 100644 --- a/src/LYKeymap.h +++ b/src/LYKeymap.h @@ -1,4 +1,4 @@ -/* $LynxId: LYKeymap.h,v 1.50 2013/10/19 12:59:21 tom Exp $ */ +/* $LynxId: LYKeymap.h,v 1.53 2013/10/20 22:11:03 tom Exp $ */ #ifndef LYKEYMAP_H #define LYKEYMAP_H @@ -35,7 +35,7 @@ extern "C" { * (which is supposed to be 'int'), that would be okay, but not as clean * for type-checking. */ - typedef unsigned short LYKeymap_t; + typedef short LYKeymap_t; #define KEYMAP_SIZE 661 extern LYKeymap_t keymap[KEYMAP_SIZE]; /* main keymap matrix */ @@ -45,7 +45,7 @@ extern "C" { extern int current_layout; extern LYKbLayout_t *LYKbLayouts[]; extern const char *LYKbLayoutNames[]; - extern int LYSetKbLayout(char *layout_id); + extern BOOLEAN LYSetKbLayout(char *layout_id); #endif #if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE) @@ -235,10 +235,10 @@ extern "C" { #define LYK_TAG_LINK LYK_UNKNOWN #endif /* DIRED_SUPPORT */ - ,LYK_CHG_CENTER + ,LYK_CHANGE_CENTER #ifdef KANJI_CODE_OVERRIDE - ,LYK_CHG_KCODE + ,LYK_CHANGE_KCODE #endif #ifdef SUPPORT_CHDIR diff --git a/src/LYMain.c b/src/LYMain.c index dcca4d71..ee7c77e2 100644 --- a/src/LYMain.c +++ b/src/LYMain.c @@ -1,5 +1,5 @@ /* - * $LynxId: LYMain.c,v 1.247 2013/10/19 01:22:25 tom Exp $ + * $LynxId: LYMain.c,v 1.249 2013/10/20 20:35:23 tom Exp $ */ #include <HTUtils.h> #include <HTTP.h> @@ -1043,6 +1043,7 @@ int main(int argc, #endif LYinitEditmap(); + LYinitKeymap(); #ifdef USE_CHARSET_CHOICE memset((char *) charset_subsets, 0, sizeof(charset_subset_t) * MAXCHARSETS); #endif @@ -1529,13 +1530,6 @@ int main(int argc, StrAllocCopy(UCAssume_MIMEcharset, LYCharSet_UC[UCLYhndl_for_unspec].MIMEname); - /* - * Make sure we have the edit map declared. - FM - */ - if (!LYEditmapDeclared()) { - fprintf(stderr, gettext("\nLynx edit map not declared.\n\n")); - exit_immediately(EXIT_FAILURE); - } #ifdef USE_COLOR_TABLE /* * Set up default foreground and background colors. diff --git a/src/LYMainLoop.c b/src/LYMainLoop.c index 500f91ae..7c56991a 100644 --- a/src/LYMainLoop.c +++ b/src/LYMainLoop.c @@ -1,5 +1,5 @@ /* - * $LynxId: LYMainLoop.c,v 1.226 2013/10/19 13:06:29 tom Exp $ + * $LynxId: LYMainLoop.c,v 1.229 2013/10/20 21:14:17 tom Exp $ */ #include <HTUtils.h> #include <HTAccess.h> @@ -2611,13 +2611,11 @@ static void handle_LYK_DWIMHELP(const char **cshelpfile) if (curdoc.link >= 0 && curdoc.link < nlinks && !FormIsReadonly(links[curdoc.link].l_form) && LinkIsTextLike(curdoc.link)) { - *cshelpfile = LYLineeditHelpURL(); + *cshelpfile = STR_LYNXEDITMAP; } } -static void handle_LYK_EDITMAP(BOOLEAN *vi_keys_flag, - BOOLEAN *emacs_keys_flag, - int *old_c, +static void handle_LYK_EDITMAP(int *old_c, int real_c) { if (*old_c != real_c) { @@ -2629,16 +2627,6 @@ static void handle_LYK_EDITMAP(BOOLEAN *vi_keys_flag, newdoc.isHEAD = FALSE; newdoc.safe = FALSE; newdoc.internal_link = FALSE; - /* - * If vi_keys changed, the keymap did too, so force no cache, and reset - * the flag. - FM - */ - if (*vi_keys_flag != vi_keys || - *emacs_keys_flag != emacs_keys) { - LYforce_no_cache = TRUE; - *vi_keys_flag = vi_keys; - *emacs_keys_flag = emacs_keys; - } #if defined(DIRED_SUPPORT) && defined(OK_OVERRIDE) /* * Remember whether we are in dired menu so we can display the right @@ -7154,7 +7142,7 @@ int mainloop(void) handle_LYK_SOURCE(&ownerS_address); break; - case LYK_CHG_CENTER: /* ^Q */ + case LYK_CHANGE_CENTER: /* ^Q */ if (no_table_center) { no_table_center = FALSE; @@ -7698,7 +7686,7 @@ int mainloop(void) break; case LYK_EDITMAP: - handle_LYK_EDITMAP(&vi_keys_flag, &emacs_keys_flag, &old_c, real_c); + handle_LYK_EDITMAP(&old_c, real_c); break; case LYK_KEYMAP: diff --git a/src/LYStrings.c b/src/LYStrings.c index 351d7c41..ce537668 100644 --- a/src/LYStrings.c +++ b/src/LYStrings.c @@ -1,4 +1,4 @@ -/* $LynxId: LYStrings.c,v 1.255 2013/10/15 09:08:42 tom Exp $ */ +/* $LynxId: LYStrings.c,v 1.256 2013/10/20 21:31:45 tom Exp $ */ #include <HTUtils.h> #include <HTCJK.h> #include <UCAux.h> @@ -980,6 +980,7 @@ static Keysym_String_List Keysym_Strings [] = INTERN_KEY( "INSERT_KEY", INSERT_KEY, KEY_IC ), INTERN_KEY( "REMOVE_KEY", REMOVE_KEY, KEY_DC ), INTERN_KEY( "DO_NOTHING", DO_NOTHING, DO_NOTHING|LKC_ISLKC ), + INTERN_KEY( "BACKTAB_KEY", BACKTAB_KEY, BACKTAB_KEY ), INTERN_KEY( NULL, UNKNOWN_KEY, ERR ) }; /* *INDENT-ON* */ diff --git a/src/LYStrings.h b/src/LYStrings.h index 972f65a3..0e6519ea 100644 --- a/src/LYStrings.h +++ b/src/LYStrings.h @@ -1,5 +1,5 @@ /* - * $LynxId: LYStrings.h,v 1.111 2013/10/15 09:07:48 tom Exp $ + * $LynxId: LYStrings.h,v 1.113 2013/10/20 20:33:23 tom Exp $ */ #ifndef LYSTRINGS_H #define LYSTRINGS_H @@ -384,15 +384,13 @@ extern "C" { #define CurrentLineEditor() LYLineEditors[current_lineedit].used extern void LYinitEditmap(void); + extern void LYinitKeymap(void); extern const char *LYLineeditHelpURL(void); extern int escape_bound; #define LYLineEdit(e,c,m) LYDoEdit(e, c, EditBinding(c) & ~LYE_DF, m) -/* Dummy initializer for LYEditmap.c */ - extern int LYEditmapDeclared(void); - extern int LYEditInsert(FieldEditor * edit, unsigned const char *s, int len, int map_active, int maxMessage); |