about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/LYEditmap.c1076
-rw-r--r--src/LYKeymap.c266
-rw-r--r--src/LYKeymap.h7
-rw-r--r--src/LYMain.c45
-rw-r--r--src/LYStrings.h3
-rw-r--r--src/chrtrans/makefile.in4
6 files changed, 701 insertions, 700 deletions
diff --git a/src/LYEditmap.c b/src/LYEditmap.c
index 61efe160..6b453d85 100644
--- a/src/LYEditmap.c
+++ b/src/LYEditmap.c
@@ -1,5 +1,5 @@
 /*
- * $LynxId: LYEditmap.c,v 1.73 2014/02/08 01:12:58 Gisle.Vanem Exp $
+ * $LynxId: LYEditmap.c,v 1.74 2015/10/08 00:17:28 tom Exp $
  *
  * LYEditMap.c
  * Keybindings for line and form editing.
@@ -131,119 +131,119 @@ static LYEditCode *Mod3Binding = Mod1Binding;
 
 static const LYEditInit initMod1Binding[] =
 {
-    {1, LYE_BOL},		/* ^B */
-    {2, LYE_BACKW},		/* ^C */
-    {3, LYE_UNMOD},		/* ^D */
-    {4, LYK_NEXT_LINK | LYE_FORM_LAC},	/* ^E */
-    {5, LYK_EDITTEXTAREA | LYE_FORM_LAC},	/* ^F */
-    {6, LYE_FORWW},		/* ^G */
-    {7, LYE_ABORT},		/* ^H */
-    {8, LYE_DELPW},		/* ^I */
-    {9, LYE_UNMOD},		/* ^J */
-    {10, LYE_ENTER},		/* ^K */
-    {11, LYK_LPOS_NEXT_LINK | LYE_FORM_LAC},	/* ^L */
-    {12, LYE_FORM_PASS},	/* ^M */
-    {13, LYE_ENTER},		/* ^N */
-    {14, LYE_FORWW},		/* ^O */
-    {15, LYE_UNMOD},		/* ^P */
-    {16, LYE_BACKW},		/* ^Q */
-    {18, LYE_BACKW},		/* ^S */
-    {21, LYE_FORM_PASS},	/* ^V */
-    {23, LYE_KILLREG},		/* ^X */
-    {24, LYE_XPMARK},		/* ^Y */
-    {25, LYE_UNMOD},		/* ^Z */
-    {26, LYE_FORM_PASS},	/* ^[ */
-    {28, LYE_FORM_PASS},	/* ^] */
-    {29, LYE_FORM_PASS},	/* ^^ */
-    {30, LYE_UNMOD},		/* ^_ */
-    {32, LYE_UNMOD},		/*   */
-    {33, LYE_UNMOD},		/* ! */
-    {34, LYE_UNMOD},		/* " */
-    {35, LYE_UNMOD},		/* # */
-    {36, LYE_UNMOD},		/* $ */
-    {37, LYE_UNMOD},		/* % */
-    {38, LYE_UNMOD},		/* & */
-    {39, LYE_UNMOD},		/* ' */
-    {40, LYE_UNMOD},		/* ( */
-    {41, LYE_UNMOD},		/* ) */
-    {42, LYE_UNMOD},		/* * */
-    {43, LYE_UNMOD},		/* + */
-    {44, LYE_UNMOD},		/* , */
-    {45, LYE_UNMOD},		/* - */
-    {46, LYE_UNMOD},		/* . */
-    {47, LYE_FORM_PASS},	/* / */
-    {48, LYE_UNMOD},		/* 0 */
-    {49, LYE_UNMOD},		/* 1 */
-    {50, LYE_UNMOD},		/* 2 */
-    {51, LYE_UNMOD},		/* 3 */
-    {52, LYE_UNMOD},		/* 4 */
-    {53, LYE_UNMOD},		/* 5 */
-    {54, LYE_UNMOD},		/* 6 */
-    {55, LYE_UNMOD},		/* 7 */
-    {56, LYE_UNMOD},		/* 8 */
-    {57, LYE_UNMOD},		/* 9 */
-    {58, LYE_UNMOD},		/* : */
-    {59, LYE_UNMOD},		/* ; */
-    {60, LYK_HOME | LYE_FORM_LAC},	/* < */
-    {61, LYE_UNMOD},		/* = */
-    {62, LYK_END | LYE_FORM_LAC},	/* > */
-    {63, LYE_UNMOD},		/* ? */
-    {64, LYE_C1CHAR},		/* @ */
-    {65, LYE_C1CHAR},		/* A */
-    {66, LYE_C1CHAR},		/* B */
-    {67, LYE_C1CHAR},		/* C */
-    {68, LYE_C1CHAR},		/* D */
-    {69, LYE_C1CHAR},		/* E */
-    {70, LYE_C1CHAR},		/* F */
-    {71, LYE_C1CHAR},		/* G */
-    {72, LYE_C1CHAR},		/* H */
-    {73, LYE_C1CHAR},		/* I */
-    {74, LYE_C1CHAR},		/* J */
-    {75, LYE_C1CHAR},		/* K */
-    {76, LYE_C1CHAR},		/* L */
-    {77, LYE_C1CHAR},		/* M */
-    {78, LYE_C1CHAR},		/* N */
-    {79, LYE_C1CHAR},		/* O */
-    {80, LYE_C1CHAR},		/* P */
-    {81, LYE_C1CHAR},		/* Q */
-    {82, LYE_C1CHAR},		/* R */
-    {83, LYE_C1CHAR},		/* S */
-    {84, LYE_C1CHAR},		/* T */
-    {85, LYE_C1CHAR},		/* U */
-    {86, LYE_C1CHAR},		/* V */
-    {87, LYE_C1CHAR},		/* W */
-    {88, LYE_C1CHAR},		/* X */
-    {89, LYE_C1CHAR},		/* Y */
-    {90, LYE_C1CHAR},		/* Z */
-    {91, LYE_C1CHAR},		/* [ */
-    {92, LYE_C1CHAR},		/* \ */
-    {93, LYE_C1CHAR},		/* ] */
-    {94, LYE_C1CHAR},		/* ^ */
-    {95, LYE_C1CHAR},		/* _ */
-    {96, LYE_UNMOD},		/* ` */
-    {97, LYE_BOL},		/* a */
-    {98, LYE_BACKW},		/* b */
-    {99, LYE_UNMOD},		/* c */
-    {100, LYE_DELNW},		/* d */
-    {101, LYK_EDITTEXTAREA | LYE_FORM_LAC},	/* e */
-    {102, LYE_FORWW},		/* f */
-    {103, LYK_GROWTEXTAREA | LYE_FORM_LAC},	/* g */
-    {104, LYE_CHAR},		/* h */
-    {105, LYK_INSERTFILE | LYE_FORM_LAC},	/* i */
-    {106, LYE_CHAR},		/* j */
-    {107, LYE_ERASE},		/* k */
-    {108, LYE_LOWER},		/* l */
-    {109, LYE_CHAR},		/* m */
-    {110, LYE_FORM_PASS},	/* n */
-    {111, LYE_UNMOD},		/* o */
-    {112, LYE_CHAR},		/* p */
-    {117, LYE_UPPER},		/* u */
-    {122, LYE_UNMOD},		/* z */
-    {123, LYE_UNMOD},		/* { */
-    {124, LYE_UNMOD},		/* | */
-    {125, LYE_UNMOD},		/* } */
-    {126, LYE_UNMOD},		/* ~ */
-    {127, LYE_DELPW},
+    {CTL('A'), LYE_BOL},
+    {CTL('B'), LYE_BACKW},
+    {CTL('C'), LYE_UNMOD},
+    {CTL('D'), LYK_NEXT_LINK | LYE_FORM_LAC},
+    {CTL('E'), LYK_EDITTEXTAREA | LYE_FORM_LAC},
+    {CTL('F'), LYE_FORWW},
+    {CTL('G'), LYE_ABORT},
+    {CTL('H'), LYE_DELPW},
+    {CTL('I'), LYE_UNMOD},
+    {CTL('J'), LYE_ENTER},
+    {CTL('K'), LYK_LPOS_NEXT_LINK | LYE_FORM_LAC},
+    {CTL('L'), LYE_FORM_PASS},
+    {CTL('M'), LYE_ENTER},
+    {CTL('N'), LYE_FORWW},
+    {CTL('O'), LYE_UNMOD},
+    {CTL('P'), LYE_BACKW},
+    {CTL('R'), LYE_BACKW},
+    {CTL('U'), LYE_FORM_PASS},
+    {CTL('W'), LYE_KILLREG},
+    {CTL('X'), LYE_XPMARK},
+    {CTL('Y'), LYE_UNMOD},
+    {CTL('Z'), LYE_FORM_PASS},
+    {CTL('\\'), LYE_FORM_PASS},
+    {CTL(']'), LYE_FORM_PASS},
+    {CTL('^'), LYE_UNMOD},
+    {' ', LYE_UNMOD},
+    {'!', LYE_UNMOD},
+    {'"', LYE_UNMOD},
+    {'#', LYE_UNMOD},
+    {'$', LYE_UNMOD},
+    {'%', LYE_UNMOD},
+    {'&', LYE_UNMOD},
+    {'\'', LYE_UNMOD},
+    {'(', LYE_UNMOD},
+    {')', LYE_UNMOD},
+    {'*', LYE_UNMOD},
+    {'+', LYE_UNMOD},
+    {',', LYE_UNMOD},
+    {'-', LYE_UNMOD},
+    {'.', LYE_UNMOD},
+    {'/', LYE_FORM_PASS},
+    {'0', LYE_UNMOD},
+    {'1', LYE_UNMOD},
+    {'2', LYE_UNMOD},
+    {'3', LYE_UNMOD},
+    {'4', LYE_UNMOD},
+    {'5', LYE_UNMOD},
+    {'6', LYE_UNMOD},
+    {'7', LYE_UNMOD},
+    {'8', LYE_UNMOD},
+    {'9', LYE_UNMOD},
+    {':', LYE_UNMOD},
+    {';', LYE_UNMOD},
+    {'<', LYK_HOME | LYE_FORM_LAC},
+    {'=', LYE_UNMOD},
+    {'>', LYK_END | LYE_FORM_LAC},
+    {'?', LYE_UNMOD},
+    {'@', LYE_C1CHAR},
+    {'A', LYE_C1CHAR},
+    {'B', LYE_C1CHAR},
+    {'C', LYE_C1CHAR},
+    {'D', LYE_C1CHAR},
+    {'E', LYE_C1CHAR},
+    {'F', LYE_C1CHAR},
+    {'G', LYE_C1CHAR},
+    {'H', LYE_C1CHAR},
+    {'I', LYE_C1CHAR},
+    {'J', LYE_C1CHAR},
+    {'K', LYE_C1CHAR},
+    {'L', LYE_C1CHAR},
+    {'M', LYE_C1CHAR},
+    {'N', LYE_C1CHAR},
+    {'O', LYE_C1CHAR},
+    {'P', LYE_C1CHAR},
+    {'Q', LYE_C1CHAR},
+    {'R', LYE_C1CHAR},
+    {'S', LYE_C1CHAR},
+    {'T', LYE_C1CHAR},
+    {'U', LYE_C1CHAR},
+    {'V', LYE_C1CHAR},
+    {'W', LYE_C1CHAR},
+    {'X', LYE_C1CHAR},
+    {'Y', LYE_C1CHAR},
+    {'Z', LYE_C1CHAR},
+    {'[', LYE_C1CHAR},
+    {'\\', LYE_C1CHAR},
+    {']', LYE_C1CHAR},
+    {'^', LYE_C1CHAR},
+    {'_', LYE_C1CHAR},
+    {'`', LYE_UNMOD},
+    {'a', LYE_BOL},
+    {'b', LYE_BACKW},
+    {'c', LYE_UNMOD},
+    {'d', LYE_DELNW},
+    {'e', LYK_EDITTEXTAREA | LYE_FORM_LAC},
+    {'f', LYE_FORWW},
+    {'g', LYK_GROWTEXTAREA | LYE_FORM_LAC},
+    {'h', LYE_CHAR},
+    {'i', LYK_INSERTFILE | LYE_FORM_LAC},
+    {'j', LYE_CHAR},
+    {'k', LYE_ERASE},
+    {'l', LYE_LOWER},
+    {'m', LYE_CHAR},
+    {'n', LYE_FORM_PASS},
+    {'o', LYE_UNMOD},
+    {'p', LYE_CHAR},
+    {'u', LYE_UPPER},
+    {'z', LYE_UNMOD},
+    {'{', LYE_UNMOD},
+    {'|', LYE_UNMOD},
+    {'}', LYE_UNMOD},
+    {'~', LYE_UNMOD},
+    {DEL_KEY, LYE_DELPW},
     {160, LYE_UNMOD},
     {161, LYE_UNMOD},
     {162, LYE_UNMOD},
@@ -340,26 +340,26 @@ static const LYEditInit initMod1Binding[] =
     {253, LYE_UNMOD},
     {254, LYE_UNMOD},
     {255, LYE_UNMOD},
-    {256, LYE_UNMOD},		/* UPARROW_KEY */
-    {257, LYE_UNMOD},		/* DNARROW_KEY */
-    {258, LYE_UNMOD},		/* RTARROW_KEY */
-    {259, LYE_UNMOD},		/* LTARROW_KEY */
-    {260, LYE_UNMOD},		/* PGDOWN_KEY */
-    {261, LYE_UNMOD},		/* PGUP_KEY */
-    {262, LYE_FORM_PASS},	/* HOME_KEY */
-    {263, LYE_FORM_PASS},	/* END_KEY */
-    {264, LYK_DWIMHELP | LYE_FORM_LAC},		/* F1 */
-    {265, LYE_UNMOD},		/* DO_KEY */
+    {UPARROW_KEY, LYE_UNMOD},
+    {DNARROW_KEY, LYE_UNMOD},
+    {RTARROW_KEY, LYE_UNMOD},
+    {LTARROW_KEY, LYE_UNMOD},
+    {PGDOWN_KEY, LYE_UNMOD},
+    {PGUP_KEY, LYE_UNMOD},
+    {HOME_KEY, LYE_FORM_PASS},
+    {END_KEY, LYE_FORM_PASS},
+    {F1_KEY, LYK_DWIMHELP | LYE_FORM_LAC},
+    {DO_KEY, LYE_UNMOD},
 #if (defined(_WINDOWS) || defined(__DJGPP__))
-    {266, LYE_UNMOD},		/* FIND_KEY */
-    {267, LYE_UNMOD},		/* SELECT_KEY */
+    {FIND_KEY, LYE_UNMOD},
+    {SELECT_KEY, LYE_UNMOD},
 #else
-    {266, LYK_WHEREIS | LYE_FORM_LAC},	/* FIND_KEY */
-    {267, LYK_NEXT | LYE_FORM_LAC},	/* SELECT_KEY */
+    {FIND_KEY, LYK_WHEREIS | LYE_FORM_LAC},
+    {SELECT_KEY, LYK_NEXT | LYE_FORM_LAC},
 #endif
-    {268, LYE_UNMOD},		/* INSERT_KEY */
-    {270, LYE_UNMOD},		/* DO_NOTHING */
-    {271, LYE_UNMOD},		/* BACKTAB_KEY */
+    {INSERT_KEY, LYE_UNMOD},
+    {DO_NOTHING, LYE_UNMOD},
+    {BACKTAB_KEY, LYE_UNMOD},
 #if (defined(_WINDOWS) || defined(__DJGPP__)) && defined(USE_SLANG) && !defined(DJGPP_KEYHANDLER)
     {272, LYE_DELPW},
 #else
@@ -378,127 +378,127 @@ LYEditConfig LYModifierBindings[] =
 
 static const LYEditInit initDefaultEditor[] =
 {
-    {1, LYE_BOL},		/* ^B */
-    {2, LYE_DELPW},		/* ^C */
-    {3, LYE_ABORT},		/* ^D */
-    {4, LYE_DELN},		/* ^E */
-    {5, LYE_EOL},		/* ^F */
-    {6, LYE_DELNW},		/* ^G */
-    {7, LYE_ABORT},		/* ^H */
-    {8, LYE_DELP},		/* ^I */
-    {9, LYE_TAB},		/* ^J */
-    {10, LYE_ENTER},		/* ^K */
-    {11, LYE_LOWER},		/* ^L */
-    {13, LYE_ENTER},		/* ^N */
-    {14, LYE_FORWW},		/* ^O */
-    {15, LYE_ABORT},		/* ^P */
-    {16, LYE_BACKW},		/* ^Q */
-    {18, LYE_DELN},		/* ^S */
-    {20, LYE_UPPER},		/* ^U */
-    {21, LYE_ERASE},		/* ^V */
-    {22, LYE_LKCMD},		/* ^W */
+    {CTL('A'), LYE_BOL},
+    {CTL('B'), LYE_DELPW},
+    {CTL('C'), LYE_ABORT},
+    {CTL('D'), LYE_DELN},
+    {CTL('E'), LYE_EOL},
+    {CTL('F'), LYE_DELNW},
+    {CTL('G'), LYE_ABORT},
+    {CTL('H'), LYE_DELP},
+    {CTL('I'), LYE_TAB},
+    {CTL('J'), LYE_ENTER},
+    {CTL('K'), LYE_LOWER},
+    {CTL('M'), LYE_ENTER},
+    {CTL('N'), LYE_FORWW},
+    {CTL('O'), LYE_ABORT},
+    {CTL('P'), LYE_BACKW},
+    {CTL('R'), LYE_DELN},
+    {CTL('T'), LYE_UPPER},
+    {CTL('U'), LYE_ERASE},
+    {CTL('V'), LYE_LKCMD},
 #ifdef CAN_CUT_AND_PASTE
-    {23, LYE_PASTE},		/* ^X */
+    {CTL('W'), LYE_PASTE},
 #endif
-    {24, LYE_SETM1},		/* ^Y */
-    {30, LYE_SWMAP},		/* ^_ */
-    {31, LYE_DELEL},		/* ^` */
-    {32, LYE_CHAR},		/*   */
-    {33, LYE_CHAR},		/* ! */
-    {34, LYE_CHAR},		/* " */
-    {35, LYE_CHAR},		/* # */
-    {36, LYE_CHAR},		/* $ */
-    {37, LYE_CHAR},		/* % */
-    {38, LYE_CHAR},		/* & */
-    {39, LYE_CHAR},		/* ' */
-    {40, LYE_CHAR},		/* ( */
-    {41, LYE_CHAR},		/* ) */
-    {42, LYE_CHAR},		/* * */
-    {43, LYE_CHAR},		/* + */
-    {44, LYE_CHAR},		/* , */
-    {45, LYE_CHAR},		/* - */
-    {46, LYE_CHAR},		/* . */
-    {47, LYE_CHAR},		/* / */
-    {48, LYE_CHAR},		/* 0 */
-    {49, LYE_CHAR},		/* 1 */
-    {50, LYE_CHAR},		/* 2 */
-    {51, LYE_CHAR},		/* 3 */
-    {52, LYE_CHAR},		/* 4 */
-    {53, LYE_CHAR},		/* 5 */
-    {54, LYE_CHAR},		/* 6 */
-    {55, LYE_CHAR},		/* 7 */
-    {56, LYE_CHAR},		/* 8 */
-    {57, LYE_CHAR},		/* 9 */
-    {58, LYE_CHAR},		/* : */
-    {59, LYE_CHAR},		/* ; */
-    {60, LYE_CHAR},		/* < */
-    {61, LYE_CHAR},		/* = */
-    {62, LYE_CHAR},		/* > */
-    {63, LYE_CHAR},		/* ? */
-    {64, LYE_CHAR},		/* @ */
-    {65, LYE_CHAR},		/* A */
-    {66, LYE_CHAR},		/* B */
-    {67, LYE_CHAR},		/* C */
-    {68, LYE_CHAR},		/* D */
-    {69, LYE_CHAR},		/* E */
-    {70, LYE_CHAR},		/* F */
-    {71, LYE_CHAR},		/* G */
-    {72, LYE_CHAR},		/* H */
-    {73, LYE_CHAR},		/* I */
-    {74, LYE_CHAR},		/* J */
-    {75, LYE_CHAR},		/* K */
-    {76, LYE_CHAR},		/* L */
-    {77, LYE_CHAR},		/* M */
-    {78, LYE_CHAR},		/* N */
-    {79, LYE_CHAR},		/* O */
-    {80, LYE_CHAR},		/* P */
-    {81, LYE_CHAR},		/* Q */
-    {82, LYE_CHAR},		/* R */
-    {83, LYE_CHAR},		/* S */
-    {84, LYE_CHAR},		/* T */
-    {85, LYE_CHAR},		/* U */
-    {86, LYE_CHAR},		/* V */
-    {87, LYE_CHAR},		/* W */
-    {88, LYE_CHAR},		/* X */
-    {89, LYE_CHAR},		/* Y */
-    {90, LYE_CHAR},		/* Z */
-    {91, LYE_CHAR},		/* [ */
-    {92, LYE_CHAR},		/* \ */
-    {93, LYE_CHAR},		/* ] */
-    {94, LYE_CHAR},		/* ^ */
-    {95, LYE_CHAR},		/* _ */
-    {96, LYE_CHAR},		/* ` */
-    {97, LYE_CHAR},		/* a */
-    {98, LYE_CHAR},		/* b */
-    {99, LYE_CHAR},		/* c */
-    {100, LYE_CHAR},		/* d */
-    {101, LYE_CHAR},		/* e */
-    {102, LYE_CHAR},		/* f */
-    {103, LYE_CHAR},		/* g */
-    {104, LYE_CHAR},		/* h */
-    {105, LYE_CHAR},		/* i */
-    {106, LYE_CHAR},		/* j */
-    {107, LYE_CHAR},		/* k */
-    {108, LYE_CHAR},		/* l */
-    {109, LYE_CHAR},		/* m */
-    {110, LYE_CHAR},		/* n */
-    {111, LYE_CHAR},		/* o */
-    {112, LYE_CHAR},		/* p */
-    {113, LYE_CHAR},		/* q */
-    {114, LYE_CHAR},		/* r */
-    {115, LYE_CHAR},		/* s */
-    {116, LYE_CHAR},		/* t */
-    {117, LYE_CHAR},		/* u */
-    {118, LYE_CHAR},		/* v */
-    {119, LYE_CHAR},		/* w */
-    {120, LYE_CHAR},		/* x */
-    {121, LYE_CHAR},		/* y */
-    {122, LYE_CHAR},		/* z */
-    {123, LYE_CHAR},		/* { */
-    {124, LYE_CHAR},		/* | */
-    {125, LYE_CHAR},		/* } */
-    {126, LYE_CHAR},		/* ~ */
-    {127, LYE_DELP},
+    {CTL('X'), LYE_SETM1},
+    {CTL('^'), LYE_SWMAP},
+    {CTL('_'), LYE_DELEL},
+    {' ', LYE_CHAR},
+    {'!', LYE_CHAR},
+    {'"', LYE_CHAR},
+    {'#', LYE_CHAR},
+    {'$', LYE_CHAR},
+    {'%', LYE_CHAR},
+    {'&', LYE_CHAR},
+    {'\'', LYE_CHAR},
+    {'(', LYE_CHAR},
+    {')', LYE_CHAR},
+    {'*', LYE_CHAR},
+    {'+', LYE_CHAR},
+    {',', LYE_CHAR},
+    {'-', LYE_CHAR},
+    {'.', LYE_CHAR},
+    {'/', LYE_CHAR},
+    {'0', LYE_CHAR},
+    {'1', LYE_CHAR},
+    {'2', LYE_CHAR},
+    {'3', LYE_CHAR},
+    {'4', LYE_CHAR},
+    {'5', LYE_CHAR},
+    {'6', LYE_CHAR},
+    {'7', LYE_CHAR},
+    {'8', LYE_CHAR},
+    {'9', LYE_CHAR},
+    {':', LYE_CHAR},
+    {';', LYE_CHAR},
+    {'<', LYE_CHAR},
+    {'=', LYE_CHAR},
+    {'>', LYE_CHAR},
+    {'?', LYE_CHAR},
+    {'@', LYE_CHAR},
+    {'A', LYE_CHAR},
+    {'B', LYE_CHAR},
+    {'C', LYE_CHAR},
+    {'D', LYE_CHAR},
+    {'E', LYE_CHAR},
+    {'F', LYE_CHAR},
+    {'G', LYE_CHAR},
+    {'H', LYE_CHAR},
+    {'I', LYE_CHAR},
+    {'J', LYE_CHAR},
+    {'K', LYE_CHAR},
+    {'L', LYE_CHAR},
+    {'M', LYE_CHAR},
+    {'N', LYE_CHAR},
+    {'O', LYE_CHAR},
+    {'P', LYE_CHAR},
+    {'Q', LYE_CHAR},
+    {'R', LYE_CHAR},
+    {'S', LYE_CHAR},
+    {'T', LYE_CHAR},
+    {'U', LYE_CHAR},
+    {'V', LYE_CHAR},
+    {'W', LYE_CHAR},
+    {'X', LYE_CHAR},
+    {'Y', LYE_CHAR},
+    {'Z', LYE_CHAR},
+    {'[', LYE_CHAR},
+    {'\\', LYE_CHAR},
+    {']', LYE_CHAR},
+    {'^', LYE_CHAR},
+    {'_', LYE_CHAR},
+    {'`', LYE_CHAR},
+    {'a', LYE_CHAR},
+    {'b', LYE_CHAR},
+    {'c', LYE_CHAR},
+    {'d', LYE_CHAR},
+    {'e', LYE_CHAR},
+    {'f', LYE_CHAR},
+    {'g', LYE_CHAR},
+    {'h', LYE_CHAR},
+    {'i', LYE_CHAR},
+    {'j', LYE_CHAR},
+    {'k', LYE_CHAR},
+    {'l', LYE_CHAR},
+    {'m', LYE_CHAR},
+    {'n', LYE_CHAR},
+    {'o', LYE_CHAR},
+    {'p', LYE_CHAR},
+    {'q', LYE_CHAR},
+    {'r', LYE_CHAR},
+    {'s', LYE_CHAR},
+    {'t', LYE_CHAR},
+    {'u', LYE_CHAR},
+    {'v', LYE_CHAR},
+    {'w', LYE_CHAR},
+    {'x', LYE_CHAR},
+    {'y', LYE_CHAR},
+    {'z', LYE_CHAR},
+    {'{', LYE_CHAR},
+    {'|', LYE_CHAR},
+    {'}', LYE_CHAR},
+    {'~', LYE_CHAR},
+    {DEL_KEY, LYE_DELP},
     {128, LYE_CHAR},
     {129, LYE_CHAR},
     {130, LYE_CHAR},
@@ -631,22 +631,22 @@ static const LYEditInit initDefaultEditor[] =
     {253, LYE_CHAR},
     {254, LYE_CHAR},
     {255, LYE_CHAR},
-    {256, LYE_FORM_PASS},	/* UPARROW_KEY */
-    {257, LYE_FORM_PASS},	/* DNARROW_KEY */
-    {258, LYE_FORW},		/* RTARROW_KEY */
-    {259, LYE_BACK},		/* LTARROW_KEY */
-    {260, LYE_FORM_PASS},	/* PGDOWN_KEY */
-    {261, LYE_FORM_PASS},	/* PGUP_KEY */
-    {262, LYE_BOL},		/* HOME_KEY */
-    {263, LYE_EOL},		/* END_KEY */
-    {264, LYE_FORM_PASS},	/* F1_KEY */
+    {UPARROW_KEY, LYE_FORM_PASS},
+    {DNARROW_KEY, LYE_FORM_PASS},
+    {RTARROW_KEY, LYE_FORW},
+    {LTARROW_KEY, LYE_BACK},
+    {PGDOWN_KEY, LYE_FORM_PASS},
+    {PGUP_KEY, LYE_FORM_PASS},
+    {HOME_KEY, LYE_BOL},
+    {END_KEY, LYE_EOL},
+    {F1_KEY, LYE_FORM_PASS},
 #if !(defined(_WINDOWS) || defined(__DJGPP__))
-    {265, LYE_TAB},		/* DO_KEY */
-    {266, LYE_BOL},		/* FIND_KEY */
-    {267, LYE_EOL},		/* SELECT_KEY */
+    {DO_KEY, LYE_TAB},
+    {FIND_KEY, LYE_BOL},
+    {SELECT_KEY, LYE_EOL},
 #endif
-    {269, LYE_DELP},		/* REMOVE_KEY */
-    {271, LYE_FORM_PASS},	/* BACKTAB_KEY */
+    {REMOVE_KEY, LYE_DELP},
+    {BACKTAB_KEY, LYE_FORM_PASS},
 #if (defined(_WINDOWS) || defined(__DJGPP__)) && defined(USE_SLANG) && !defined(DJGPP_KEYHANDLER)
     {272, LYE_DELP},
     {273, LYE_ENTER},
@@ -657,127 +657,127 @@ static const LYEditInit initDefaultEditor[] =
 #ifdef USE_ALT_BINDINGS
 static const LYEditInit initBetterEditor[] =
 {
-    {1, LYE_BOL},		/* ^B */
-    {2, LYE_BACK},		/* ^C */
-    {3, LYE_ABORT},		/* ^D */
-    {4, LYE_DELN},		/* ^E */
-    {5, LYE_EOL},		/* ^F */
-    {6, LYE_FORW},		/* ^G */
-    {7, LYE_ABORT},		/* ^H */
-    {8, LYE_DELP},		/* ^I */
-    {9, LYE_ENTER},		/* ^J */
-    {10, LYE_ENTER},		/* ^K */
-    {11, LYE_DELEL},		/* ^L */
-    {13, LYE_ENTER},		/* ^N */
-    {14, LYE_FORWW},		/* ^O */
-    {15, LYE_ABORT},		/* ^P */
-    {16, LYE_BACKW},		/* ^Q */
-    {18, LYE_DELPW},		/* ^S */
-    {20, LYE_DELNW},		/* ^U */
-    {21, LYE_ERASE},		/* ^V */
-    {22, LYE_LKCMD},		/* ^W */
+    {CTL('A'), LYE_BOL},
+    {CTL('B'), LYE_BACK},
+    {CTL('C'), LYE_ABORT},
+    {CTL('D'), LYE_DELN},
+    {CTL('E'), LYE_EOL},
+    {CTL('F'), LYE_FORW},
+    {CTL('G'), LYE_ABORT},
+    {CTL('H'), LYE_DELP},
+    {CTL('I'), LYE_ENTER},
+    {CTL('J'), LYE_ENTER},
+    {CTL('K'), LYE_DELEL},
+    {CTL('M'), LYE_ENTER},
+    {CTL('N'), LYE_FORWW},
+    {CTL('O'), LYE_ABORT},
+    {CTL('P'), LYE_BACKW},
+    {CTL('R'), LYE_DELPW},
+    {CTL('T'), LYE_DELNW},
+    {CTL('U'), LYE_ERASE},
+    {CTL('V'), LYE_LKCMD},
 #ifdef CAN_CUT_AND_PASTE
-    {23, LYE_PASTE},		/* ^X */
+    {CTL('W'), LYE_PASTE},
 #endif
-    {24, LYE_SETM1},		/* ^Y */
-    {30, LYE_UPPER},		/* ^_ */
-    {31, LYE_LOWER},		/* ^` */
-    {32, LYE_CHAR},		/*   */
-    {33, LYE_CHAR},		/* ! */
-    {34, LYE_CHAR},		/* " */
-    {35, LYE_CHAR},		/* # */
-    {36, LYE_CHAR},		/* $ */
-    {37, LYE_CHAR},		/* % */
-    {38, LYE_CHAR},		/* & */
-    {39, LYE_CHAR},		/* ' */
-    {40, LYE_CHAR},		/* ( */
-    {41, LYE_CHAR},		/* ) */
-    {42, LYE_CHAR},		/* * */
-    {43, LYE_CHAR},		/* + */
-    {44, LYE_CHAR},		/* , */
-    {45, LYE_CHAR},		/* - */
-    {46, LYE_CHAR},		/* . */
-    {47, LYE_CHAR},		/* / */
-    {48, LYE_CHAR},		/* 0 */
-    {49, LYE_CHAR},		/* 1 */
-    {50, LYE_CHAR},		/* 2 */
-    {51, LYE_CHAR},		/* 3 */
-    {52, LYE_CHAR},		/* 4 */
-    {53, LYE_CHAR},		/* 5 */
-    {54, LYE_CHAR},		/* 6 */
-    {55, LYE_CHAR},		/* 7 */
-    {56, LYE_CHAR},		/* 8 */
-    {57, LYE_CHAR},		/* 9 */
-    {58, LYE_CHAR},		/* : */
-    {59, LYE_CHAR},		/* ; */
-    {60, LYE_CHAR},		/* < */
-    {61, LYE_CHAR},		/* = */
-    {62, LYE_CHAR},		/* > */
-    {63, LYE_CHAR},		/* ? */
-    {64, LYE_CHAR},		/* @ */
-    {65, LYE_CHAR},		/* A */
-    {66, LYE_CHAR},		/* B */
-    {67, LYE_CHAR},		/* C */
-    {68, LYE_CHAR},		/* D */
-    {69, LYE_CHAR},		/* E */
-    {70, LYE_CHAR},		/* F */
-    {71, LYE_CHAR},		/* G */
-    {72, LYE_CHAR},		/* H */
-    {73, LYE_CHAR},		/* I */
-    {74, LYE_CHAR},		/* J */
-    {75, LYE_CHAR},		/* K */
-    {76, LYE_CHAR},		/* L */
-    {77, LYE_CHAR},		/* M */
-    {78, LYE_CHAR},		/* N */
-    {79, LYE_CHAR},		/* O */
-    {80, LYE_CHAR},		/* P */
-    {81, LYE_CHAR},		/* Q */
-    {82, LYE_CHAR},		/* R */
-    {83, LYE_CHAR},		/* S */
-    {84, LYE_CHAR},		/* T */
-    {85, LYE_CHAR},		/* U */
-    {86, LYE_CHAR},		/* V */
-    {87, LYE_CHAR},		/* W */
-    {88, LYE_CHAR},		/* X */
-    {89, LYE_CHAR},		/* Y */
-    {90, LYE_CHAR},		/* Z */
-    {91, LYE_CHAR},		/* [ */
-    {92, LYE_CHAR},		/* \ */
-    {93, LYE_CHAR},		/* ] */
-    {94, LYE_CHAR},		/* ^ */
-    {95, LYE_CHAR},		/* _ */
-    {96, LYE_CHAR},		/* ` */
-    {97, LYE_CHAR},		/* a */
-    {98, LYE_CHAR},		/* b */
-    {99, LYE_CHAR},		/* c */
-    {100, LYE_CHAR},		/* d */
-    {101, LYE_CHAR},		/* e */
-    {102, LYE_CHAR},		/* f */
-    {103, LYE_CHAR},		/* g */
-    {104, LYE_CHAR},		/* h */
-    {105, LYE_CHAR},		/* i */
-    {106, LYE_CHAR},		/* j */
-    {107, LYE_CHAR},		/* k */
-    {108, LYE_CHAR},		/* l */
-    {109, LYE_CHAR},		/* m */
-    {110, LYE_CHAR},		/* n */
-    {111, LYE_CHAR},		/* o */
-    {112, LYE_CHAR},		/* p */
-    {113, LYE_CHAR},		/* q */
-    {114, LYE_CHAR},		/* r */
-    {115, LYE_CHAR},		/* s */
-    {116, LYE_CHAR},		/* t */
-    {117, LYE_CHAR},		/* u */
-    {118, LYE_CHAR},		/* v */
-    {119, LYE_CHAR},		/* w */
-    {120, LYE_CHAR},		/* x */
-    {121, LYE_CHAR},		/* y */
-    {122, LYE_CHAR},		/* z */
-    {123, LYE_CHAR},		/* { */
-    {124, LYE_CHAR},		/* | */
-    {125, LYE_CHAR},		/* } */
-    {126, LYE_CHAR},		/* ~ */
-    {127, LYE_DELP},
+    {CTL('X'), LYE_SETM1},
+    {CTL('^'), LYE_UPPER},
+    {CTL('_'), LYE_LOWER},
+    {' ', LYE_CHAR},
+    {'!', LYE_CHAR},
+    {'"', LYE_CHAR},
+    {'#', LYE_CHAR},
+    {'$', LYE_CHAR},
+    {'%', LYE_CHAR},
+    {'&', LYE_CHAR},
+    {'\'', LYE_CHAR},
+    {'(', LYE_CHAR},
+    {')', LYE_CHAR},
+    {'*', LYE_CHAR},
+    {'+', LYE_CHAR},
+    {',', LYE_CHAR},
+    {'-', LYE_CHAR},
+    {'.', LYE_CHAR},
+    {'/', LYE_CHAR},
+    {'0', LYE_CHAR},
+    {'1', LYE_CHAR},
+    {'2', LYE_CHAR},
+    {'3', LYE_CHAR},
+    {'4', LYE_CHAR},
+    {'5', LYE_CHAR},
+    {'6', LYE_CHAR},
+    {'7', LYE_CHAR},
+    {'8', LYE_CHAR},
+    {'9', LYE_CHAR},
+    {':', LYE_CHAR},
+    {';', LYE_CHAR},
+    {'<', LYE_CHAR},
+    {'=', LYE_CHAR},
+    {'>', LYE_CHAR},
+    {'?', LYE_CHAR},
+    {'@', LYE_CHAR},
+    {'A', LYE_CHAR},
+    {'B', LYE_CHAR},
+    {'C', LYE_CHAR},
+    {'D', LYE_CHAR},
+    {'E', LYE_CHAR},
+    {'F', LYE_CHAR},
+    {'G', LYE_CHAR},
+    {'H', LYE_CHAR},
+    {'I', LYE_CHAR},
+    {'J', LYE_CHAR},
+    {'K', LYE_CHAR},
+    {'L', LYE_CHAR},
+    {'M', LYE_CHAR},
+    {'N', LYE_CHAR},
+    {'O', LYE_CHAR},
+    {'P', LYE_CHAR},
+    {'Q', LYE_CHAR},
+    {'R', LYE_CHAR},
+    {'S', LYE_CHAR},
+    {'T', LYE_CHAR},
+    {'U', LYE_CHAR},
+    {'V', LYE_CHAR},
+    {'W', LYE_CHAR},
+    {'X', LYE_CHAR},
+    {'Y', LYE_CHAR},
+    {'Z', LYE_CHAR},
+    {'[', LYE_CHAR},
+    {'\\', LYE_CHAR},
+    {']', LYE_CHAR},
+    {'^', LYE_CHAR},
+    {'_', LYE_CHAR},
+    {'`', LYE_CHAR},
+    {'a', LYE_CHAR},
+    {'b', LYE_CHAR},
+    {'c', LYE_CHAR},
+    {'d', LYE_CHAR},
+    {'e', LYE_CHAR},
+    {'f', LYE_CHAR},
+    {'g', LYE_CHAR},
+    {'h', LYE_CHAR},
+    {'i', LYE_CHAR},
+    {'j', LYE_CHAR},
+    {'k', LYE_CHAR},
+    {'l', LYE_CHAR},
+    {'m', LYE_CHAR},
+    {'n', LYE_CHAR},
+    {'o', LYE_CHAR},
+    {'p', LYE_CHAR},
+    {'q', LYE_CHAR},
+    {'r', LYE_CHAR},
+    {'s', LYE_CHAR},
+    {'t', LYE_CHAR},
+    {'u', LYE_CHAR},
+    {'v', LYE_CHAR},
+    {'w', LYE_CHAR},
+    {'x', LYE_CHAR},
+    {'y', LYE_CHAR},
+    {'z', LYE_CHAR},
+    {'{', LYE_CHAR},
+    {'|', LYE_CHAR},
+    {'}', LYE_CHAR},
+    {'~', LYE_CHAR},
+    {DEL_KEY, LYE_DELP},
     {128, LYE_CHAR},
     {129, LYE_CHAR},
     {130, LYE_CHAR},
@@ -910,22 +910,22 @@ static const LYEditInit initBetterEditor[] =
     {253, LYE_CHAR},
     {254, LYE_CHAR},
     {255, LYE_CHAR},
-    {256, LYE_FORM_PASS},	/* UPARROW_KEY */
-    {257, LYE_FORM_PASS},	/* DNARROW_KEY */
-    {258, LYE_FORW},		/* RTARROW_KEY */
-    {259, LYE_BACK},		/* LTARROW_KEY */
-    {260, LYE_FORM_PASS},	/* PGDOWN_KEY */
-    {261, LYE_FORM_PASS},	/* PGUP_KEY */
-    {262, LYE_BOL},		/* HOME_KEY */
-    {263, LYE_EOL},		/* END_KEY */
-    {264, LYE_FORM_PASS},	/* F1_KEY */
+    {UPARROW_KEY, LYE_FORM_PASS},
+    {DNARROW_KEY, LYE_FORM_PASS},
+    {RTARROW_KEY, LYE_FORW},
+    {LTARROW_KEY, LYE_BACK},
+    {PGDOWN_KEY, LYE_FORM_PASS},
+    {PGUP_KEY, LYE_FORM_PASS},
+    {HOME_KEY, LYE_BOL},
+    {END_KEY, LYE_EOL},
+    {F1_KEY, LYE_FORM_PASS},
 #if !(defined(_WINDOWS) || defined(__DJGPP__))
-    {265, LYE_TAB},		/* DO_KEY */
-    {266, LYE_BOL},		/* FIND_KEY */
-    {267, LYE_EOL},		/* SELECT_KEY */
+    {DO_KEY, LYE_TAB},
+    {FIND_KEY, LYE_BOL},
+    {SELECT_KEY, LYE_EOL},
 #endif
-    {269, LYE_DELP},		/* REMOVE_KEY */
-    {271, LYE_FORM_PASS},	/* BACKTAB_KEY */
+    {REMOVE_KEY, LYE_DELP},
+    {BACKTAB_KEY, LYE_FORM_PASS},
 #if (defined(_WINDOWS) || defined(__DJGPP__)) && defined(USE_SLANG) && !defined(DJGPP_KEYHANDLER)
     {272, LYE_DELP},
     {273, LYE_ENTER},
@@ -935,133 +935,133 @@ static const LYEditInit initBetterEditor[] =
 
 static const LYEditInit initBashlikeEditor[] =
 {
-    {0, LYE_SETMARK},		/* nul */
-    {1, LYE_BOL},		/* ^B */
-    {2, LYE_BACK},		/* ^C */
-    {3, LYE_ABORT},		/* ^D */
-    {4, LYE_DELN},		/* ^E */
-    {5, LYE_EOL | LYE_DF},	/* ^F */
-    {6, LYE_FORW},		/* ^G */
-    {7, LYE_ABORT},		/* ^H */
-    {8, LYE_DELP},		/* ^I */
-    {9, LYE_TAB},		/* ^J */
-    {10, LYE_ENTER},		/* ^K */
-    {11, LYE_DELEL | LYE_DF},	/* ^L */
-    {12, LYE_FORM_PASS},	/* ^M */
-    {13, LYE_ENTER},		/* ^N */
-    {14, LYE_FORM_PASS},	/* ^O */
-    {15, LYE_FORM_PASS},	/* ^P */
-    {16, LYE_FORM_PASS},	/* ^Q */
-    {18, LYE_BACKW},		/* ^S */
-    {19, LYE_FORWW},		/* XOFF */
-    {20, LYE_TPOS},		/* ^U */
-    {21, LYE_DELBL},		/* ^V */
-    {22, LYE_LKCMD},		/* ^W */
-    {23, LYE_DELPW},		/* ^X */
-    {24, LYE_SETM1},		/* ^Y */
-    {25, LYE_YANK},		/* ^Z */
-    {26, LYE_FORM_PASS},	/* ^[ */
-    {27, LYE_SETM2},		/* ^\ */
-    {28, LYE_FORM_PASS},	/* ^] */
-    {29, LYE_FORM_PASS},	/* ^^ */
-    {30, LYE_SWMAP},		/* ^_ */
-    {31, LYE_ABORT},		/* ^` */
-    {32, LYE_CHAR},		/*   */
-    {33, LYE_CHAR},		/* ! */
-    {34, LYE_CHAR},		/* " */
-    {35, LYE_CHAR},		/* # */
-    {36, LYE_CHAR},		/* $ */
-    {37, LYE_CHAR},		/* % */
-    {38, LYE_CHAR},		/* & */
-    {39, LYE_CHAR},		/* ' */
-    {40, LYE_CHAR},		/* ( */
-    {41, LYE_CHAR},		/* ) */
-    {42, LYE_CHAR},		/* * */
-    {43, LYE_CHAR},		/* + */
-    {44, LYE_CHAR},		/* , */
-    {45, LYE_CHAR},		/* - */
-    {46, LYE_CHAR},		/* . */
-    {47, LYE_CHAR},		/* / */
-    {48, LYE_CHAR},		/* 0 */
-    {49, LYE_CHAR},		/* 1 */
-    {50, LYE_CHAR},		/* 2 */
-    {51, LYE_CHAR},		/* 3 */
-    {52, LYE_CHAR},		/* 4 */
-    {53, LYE_CHAR},		/* 5 */
-    {54, LYE_CHAR},		/* 6 */
-    {55, LYE_CHAR},		/* 7 */
-    {56, LYE_CHAR},		/* 8 */
-    {57, LYE_CHAR},		/* 9 */
-    {58, LYE_CHAR},		/* : */
-    {59, LYE_CHAR},		/* ; */
-    {60, LYE_CHAR},		/* < */
-    {61, LYE_CHAR},		/* = */
-    {62, LYE_CHAR},		/* > */
-    {63, LYE_CHAR},		/* ? */
-    {64, LYE_CHAR},		/* @ */
-    {65, LYE_CHAR},		/* A */
-    {66, LYE_CHAR},		/* B */
-    {67, LYE_CHAR},		/* C */
-    {68, LYE_CHAR},		/* D */
-    {69, LYE_CHAR},		/* E */
-    {70, LYE_CHAR},		/* F */
-    {71, LYE_CHAR},		/* G */
-    {72, LYE_CHAR},		/* H */
-    {73, LYE_CHAR},		/* I */
-    {74, LYE_CHAR},		/* J */
-    {75, LYE_CHAR},		/* K */
-    {76, LYE_CHAR},		/* L */
-    {77, LYE_CHAR},		/* M */
-    {78, LYE_CHAR},		/* N */
-    {79, LYE_CHAR},		/* O */
-    {80, LYE_CHAR},		/* P */
-    {81, LYE_CHAR},		/* Q */
-    {82, LYE_CHAR},		/* R */
-    {83, LYE_CHAR},		/* S */
-    {84, LYE_CHAR},		/* T */
-    {85, LYE_CHAR},		/* U */
-    {86, LYE_CHAR},		/* V */
-    {87, LYE_CHAR},		/* W */
-    {88, LYE_CHAR},		/* X */
-    {89, LYE_CHAR},		/* Y */
-    {90, LYE_CHAR},		/* Z */
-    {91, LYE_CHAR},		/* [ */
-    {92, LYE_CHAR},		/* \ */
-    {93, LYE_CHAR},		/* ] */
-    {94, LYE_CHAR},		/* ^ */
-    {95, LYE_CHAR},		/* _ */
-    {96, LYE_CHAR},		/* ` */
-    {97, LYE_CHAR},		/* a */
-    {98, LYE_CHAR},		/* b */
-    {99, LYE_CHAR},		/* c */
-    {100, LYE_CHAR},		/* d */
-    {101, LYE_CHAR},		/* e */
-    {102, LYE_CHAR},		/* f */
-    {103, LYE_CHAR},		/* g */
-    {104, LYE_CHAR},		/* h */
-    {105, LYE_CHAR},		/* i */
-    {106, LYE_CHAR},		/* j */
-    {107, LYE_CHAR},		/* k */
-    {108, LYE_CHAR},		/* l */
-    {109, LYE_CHAR},		/* m */
-    {110, LYE_CHAR},		/* n */
-    {111, LYE_CHAR},		/* o */
-    {112, LYE_CHAR},		/* p */
-    {113, LYE_CHAR},		/* q */
-    {114, LYE_CHAR},		/* r */
-    {115, LYE_CHAR},		/* s */
-    {116, LYE_CHAR},		/* t */
-    {117, LYE_CHAR},		/* u */
-    {118, LYE_CHAR},		/* v */
-    {119, LYE_CHAR},		/* w */
-    {120, LYE_CHAR},		/* x */
-    {121, LYE_CHAR},		/* y */
-    {122, LYE_CHAR},		/* z */
-    {123, LYE_CHAR},		/* { */
-    {124, LYE_CHAR},		/* | */
-    {125, LYE_CHAR},		/* } */
-    {126, LYE_CHAR},		/* ~ */
-    {127, LYE_DELP},
+    {CTL('@'), LYE_SETMARK},
+    {CTL('A'), LYE_BOL},
+    {CTL('B'), LYE_BACK},
+    {CTL('C'), LYE_ABORT},
+    {CTL('D'), LYE_DELN},
+    {CTL('E'), LYE_EOL | LYE_DF},
+    {CTL('F'), LYE_FORW},
+    {CTL('G'), LYE_ABORT},
+    {CTL('H'), LYE_DELP},
+    {CTL('I'), LYE_TAB},
+    {CTL('J'), LYE_ENTER},
+    {CTL('K'), LYE_DELEL | LYE_DF},
+    {CTL('L'), LYE_FORM_PASS},
+    {CTL('M'), LYE_ENTER},
+    {CTL('N'), LYE_FORM_PASS},
+    {CTL('O'), LYE_FORM_PASS},
+    {CTL('P'), LYE_FORM_PASS},
+    {CTL('R'), LYE_BACKW},
+    {CTL('S'), LYE_FORWW},
+    {CTL('T'), LYE_TPOS},
+    {CTL('U'), LYE_DELBL},
+    {CTL('V'), LYE_LKCMD},
+    {CTL('W'), LYE_DELPW},
+    {CTL('X'), LYE_SETM1},
+    {CTL('Y'), LYE_YANK},
+    {CTL('Z'), LYE_FORM_PASS},
+    {CTL('['), LYE_SETM2},
+    {CTL('\\'), LYE_FORM_PASS},
+    {CTL(']'), LYE_FORM_PASS},
+    {CTL('^'), LYE_SWMAP},
+    {CTL('_'), LYE_ABORT},
+    {' ', LYE_CHAR},
+    {'!', LYE_CHAR},
+    {'"', LYE_CHAR},
+    {'#', LYE_CHAR},
+    {'$', LYE_CHAR},
+    {'%', LYE_CHAR},
+    {'&', LYE_CHAR},
+    {'\'', LYE_CHAR},
+    {'(', LYE_CHAR},
+    {')', LYE_CHAR},
+    {'*', LYE_CHAR},
+    {'+', LYE_CHAR},
+    {',', LYE_CHAR},
+    {'-', LYE_CHAR},
+    {'.', LYE_CHAR},
+    {'/', LYE_CHAR},
+    {'0', LYE_CHAR},
+    {'1', LYE_CHAR},
+    {'2', LYE_CHAR},
+    {'3', LYE_CHAR},
+    {'4', LYE_CHAR},
+    {'5', LYE_CHAR},
+    {'6', LYE_CHAR},
+    {'7', LYE_CHAR},
+    {'8', LYE_CHAR},
+    {'9', LYE_CHAR},
+    {':', LYE_CHAR},
+    {';', LYE_CHAR},
+    {'<', LYE_CHAR},
+    {'=', LYE_CHAR},
+    {'>', LYE_CHAR},
+    {'?', LYE_CHAR},
+    {'@', LYE_CHAR},
+    {'A', LYE_CHAR},
+    {'B', LYE_CHAR},
+    {'C', LYE_CHAR},
+    {'D', LYE_CHAR},
+    {'E', LYE_CHAR},
+    {'F', LYE_CHAR},
+    {'G', LYE_CHAR},
+    {'H', LYE_CHAR},
+    {'I', LYE_CHAR},
+    {'J', LYE_CHAR},
+    {'K', LYE_CHAR},
+    {'L', LYE_CHAR},
+    {'M', LYE_CHAR},
+    {'N', LYE_CHAR},
+    {'O', LYE_CHAR},
+    {'P', LYE_CHAR},
+    {'Q', LYE_CHAR},
+    {'R', LYE_CHAR},
+    {'S', LYE_CHAR},
+    {'T', LYE_CHAR},
+    {'U', LYE_CHAR},
+    {'V', LYE_CHAR},
+    {'W', LYE_CHAR},
+    {'X', LYE_CHAR},
+    {'Y', LYE_CHAR},
+    {'Z', LYE_CHAR},
+    {'[', LYE_CHAR},
+    {'\\', LYE_CHAR},
+    {']', LYE_CHAR},
+    {'^', LYE_CHAR},
+    {'_', LYE_CHAR},
+    {'`', LYE_CHAR},
+    {'a', LYE_CHAR},
+    {'b', LYE_CHAR},
+    {'c', LYE_CHAR},
+    {'d', LYE_CHAR},
+    {'e', LYE_CHAR},
+    {'f', LYE_CHAR},
+    {'g', LYE_CHAR},
+    {'h', LYE_CHAR},
+    {'i', LYE_CHAR},
+    {'j', LYE_CHAR},
+    {'k', LYE_CHAR},
+    {'l', LYE_CHAR},
+    {'m', LYE_CHAR},
+    {'n', LYE_CHAR},
+    {'o', LYE_CHAR},
+    {'p', LYE_CHAR},
+    {'q', LYE_CHAR},
+    {'r', LYE_CHAR},
+    {'s', LYE_CHAR},
+    {'t', LYE_CHAR},
+    {'u', LYE_CHAR},
+    {'v', LYE_CHAR},
+    {'w', LYE_CHAR},
+    {'x', LYE_CHAR},
+    {'y', LYE_CHAR},
+    {'z', LYE_CHAR},
+    {'{', LYE_CHAR},
+    {'|', LYE_CHAR},
+    {'}', LYE_CHAR},
+    {'~', LYE_CHAR},
+    {DEL_KEY, LYE_DELP},
     {128, LYE_CHAR},
     {129, LYE_CHAR},
     {130, LYE_CHAR},
@@ -1190,22 +1190,22 @@ static const LYEditInit initBashlikeEditor[] =
     {253, LYE_CHAR},
     {254, LYE_CHAR},
     {255, LYE_CHAR},
-    {256, LYE_FORM_PASS},	/* UPARROW_KEY */
-    {257, LYE_FORM_PASS},	/* DNARROW_KEY */
-    {258, LYE_FORW},		/* RTARROW_KEY */
-    {259, LYE_BACK},		/* LTARROW_KEY */
-    {260, LYE_FORM_PASS},	/* PGDOWN_KEY */
-    {261, LYE_FORM_PASS},	/* PGUP_KEY */
-    {262, LYE_BOL},		/* HOME_KEY */
-    {263, LYE_EOL},		/* END_KEY */
-    {264, LYE_FORM_PASS},	/* F1_KEY */
+    {UPARROW_KEY, LYE_FORM_PASS},
+    {DNARROW_KEY, LYE_FORM_PASS},
+    {RTARROW_KEY, LYE_FORW},
+    {LTARROW_KEY, LYE_BACK},
+    {PGDOWN_KEY, LYE_FORM_PASS},
+    {PGUP_KEY, LYE_FORM_PASS},
+    {HOME_KEY, LYE_BOL},
+    {END_KEY, LYE_EOL},
+    {F1_KEY, LYE_FORM_PASS},
 #if !(defined(_WINDOWS) || defined(__DJGPP__))
-    {265, LYE_TAB},		/* DO_KEY */
-    {266, LYE_BOL},		/* FIND_KEY */
-    {267, LYE_EOL},		/* SELECT_KEY */
+    {DO_KEY, LYE_TAB},
+    {FIND_KEY, LYE_BOL},
+    {SELECT_KEY, LYE_EOL},
 #endif
-    {269, LYE_DELN},		/* REMOVE_KEY */
-    {271, LYE_FORM_PASS},	/* BACKTAB_KEY */
+    {REMOVE_KEY, LYE_DELN},
+    {BACKTAB_KEY, LYE_FORM_PASS},
 #if (defined(_WINDOWS) || defined(__DJGPP__)) && defined(USE_SLANG) && !defined(DJGPP_KEYHANDLER)
     {272, LYE_DELP},
     {273, LYE_ENTER},
diff --git a/src/LYKeymap.c b/src/LYKeymap.c
index c8d3a6c0..a457c835 100644
--- a/src/LYKeymap.c
+++ b/src/LYKeymap.c
@@ -1,4 +1,4 @@
-/* $LynxId: LYKeymap.c,v 1.113 2014/12/09 01:48:50 tom Exp $ */
+/* $LynxId: LYKeymap.c,v 1.115 2015/10/07 23:24:24 tom Exp $ */
 #include <HTUtils.h>
 #include <LYUtils.h>
 #include <LYGlobalDefs.h>
@@ -58,146 +58,146 @@ LYKeymap_t keymap[KEYMAP_SIZE];
 
 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 */
-    {27, LYK_MAXSCREEN_TOGGLE},	/* ^Z */
-    {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 */
+    {KTL('@'), LYK_DO_NOTHING},
+    {KTL('A'), LYK_HOME},
+    {KTL('B'), LYK_PREV_PAGE},
+    {KTL('D'), LYK_ABORT},
+    {KTL('E'), LYK_END},
+    {KTL('F'), LYK_NEXT_PAGE},
+    {KTL('H'), LYK_HISTORY},
+    {KTL('I'), LYK_FASTFORW_LINK},
+    {KTL('J'), LYK_ACTIVATE},
+    {KTL('K'), LYK_COOKIE_JAR},
+    {KTL('L'), LYK_REFRESH},
+    {KTL('M'), LYK_ACTIVATE},
+    {KTL('N'), LYK_DOWN_TWO},
+    {KTL('P'), LYK_UP_TWO},
+    {KTL('Q'), LYK_CHANGE_CENTER},
+    {KTL('R'), LYK_RELOAD},
+    {KTL('S'), LYK_TO_CLIPBOARD},
+    {KTL('T'), LYK_TRACE_TOGGLE},
+    {KTL('U'), LYK_NEXT_DOC},
+    {KTL('V'), LYK_SWITCH_DTD},
+    {KTL('W'), LYK_REFRESH},
+    {KTL('X'), LYK_CACHE_JAR},
+    {KTL('Z'), LYK_MAXSCREEN_TOGGLE},
+    {KHR(' '), LYK_NEXT_PAGE},
+    {KHR('!'), LYK_SHELL},
+    {KHR('"'), LYK_SOFT_DQUOTES},
+    {KHR('#'), LYK_TOOLBAR},
+    {KHR('$'), LYK_LAST_LINK},
+    {KHR('\''), LYK_HISTORICAL},
+    {KHR('('), LYK_UP_HALF},
+    {KHR(')'), LYK_DOWN_HALF},
+    {KHR('*'), LYK_IMAGE_TOGGLE},
+    {KHR('+'), LYK_NEXT_PAGE},
+    {KHR(','), LYK_EXTERN_PAGE},
+    {KHR('-'), LYK_PREV_PAGE},
+    {KHR('.'), LYK_EXTERN_LINK},
+    {KHR('/'), LYK_WHEREIS},
+    {KHR('0'), LYK_F_LINK_NUM},
+    {KHR('1'), LYK_1},
+    {KHR('2'), LYK_2},
+    {KHR('3'), LYK_3},
+    {KHR('4'), LYK_4},
+    {KHR('5'), LYK_5},
+    {KHR('6'), LYK_6},
+    {KHR('7'), LYK_7},
+    {KHR('8'), LYK_8},
+    {KHR('9'), LYK_9},
+    {KHR(':'), LYK_COMMAND},
+    {KHR(';'), LYK_TRACE_LOG},
+    {KHR('<'), LYK_UP_LINK},
+    {KHR('='), LYK_INFO},
+    {KHR('>'), LYK_DOWN_LINK},
+    {KHR('?'), LYK_HELP},
+    {KHR('@'), LYK_RAW_TOGGLE},
+    {KHR('A'), LYK_ADDRLIST},
+    {KHR('B'), LYK_PREV_PAGE},
 #ifdef SUPPORT_CHDIR
-    {68, LYK_CHDIR},		/* C */
+    {KHR('C'), LYK_CHDIR},
 #else
-    {68, LYK_COMMENT},		/* C */
+    {KHR('C'), LYK_COMMENT},
 #endif
-    {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 */
+    {KHR('D'), LYK_DOWNLOAD},
+    {KHR('E'), LYK_ELGOTO},
+    {KHR('F'), LYK_DIRED_MENU},
+    {KHR('G'), LYK_ECGOTO},
+    {KHR('H'), LYK_HELP},
+    {KHR('I'), LYK_INDEX},
 #ifdef KANJI_CODE_OVERRIDE
-    {75, LYK_CHANGE_KCODE},	/* J */
+    {KHR('J'), LYK_CHANGE_KCODE},
 #else
-    {75, LYK_JUMP},		/* J */
+    {KHR('J'), LYK_JUMP},
 #endif
-    {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 */
+    {KHR('K'), LYK_KEYMAP},
+    {KHR('L'), LYK_LIST},
+    {KHR('M'), LYK_MAIN_MENU},
+    {KHR('N'), LYK_PREV},
+    {KHR('O'), LYK_OPTIONS},
+    {KHR('P'), LYK_PRINT},
+    {KHR('Q'), LYK_ABORT},
+    {KHR('R'), LYK_DEL_BOOKMARK},
+    {KHR('S'), LYK_INDEX_SEARCH},
+    {KHR('T'), LYK_TAG_LINK},
+    {KHR('U'), LYK_PREV_DOC},
+    {KHR('V'), LYK_VLINKS},
+    {KHR('X'), LYK_NOCACHE},
+    {KHR('Z'), LYK_INTERRUPT},
+    {KHR('['), LYK_INLINE_TOGGLE},
+    {KHR('\\'), LYK_SOURCE},
+    {KHR(']'), LYK_HEAD},
+    {KHR('^'), LYK_FIRST_LINK},
+    {KHR('_'), LYK_CLEAR_AUTH},
+    {KHR('`'), LYK_MINIMAL},
+    {KHR('a'), LYK_ADD_BOOKMARK},
+    {KHR('b'), LYK_PREV_PAGE},
+    {KHR('c'), LYK_COMMENT},
+    {KHR('d'), LYK_DOWNLOAD},
+    {KHR('e'), LYK_EDIT},
+    {KHR('f'), LYK_DIRED_MENU},
+    {KHR('g'), LYK_GOTO},
+    {KHR('h'), LYK_HELP},
+    {KHR('i'), LYK_INDEX},
+    {KHR('j'), LYK_JUMP},
+    {KHR('k'), LYK_KEYMAP},
+    {KHR('l'), LYK_LIST},
+    {KHR('m'), LYK_MAIN_MENU},
+    {KHR('n'), LYK_NEXT},
+    {KHR('o'), LYK_OPTIONS},
+    {KHR('p'), LYK_PRINT},
+    {KHR('q'), LYK_QUIT},
+    {KHR('r'), LYK_DEL_BOOKMARK},
+    {KHR('s'), LYK_INDEX_SEARCH},
+    {KHR('t'), LYK_TAG_LINK},
+    {KHR('u'), LYK_PREV_DOC},
+    {KHR('v'), LYK_VIEW_BOOKMARK},
+    {KHR('x'), LYK_NOCACHE},
+    {KHR('z'), LYK_INTERRUPT},
+    {KHR('{'), LYK_SHIFT_LEFT},
+    {KHR('|'), LYK_LINEWRAP_TOGGLE},
+    {KHR('}'), LYK_SHIFT_RIGHT},
+    {KHR('~'), LYK_NESTED_TABLES},
+    {KHR(DEL_KEY), LYK_HISTORY},
+    {KHR(UPARROW_KEY), LYK_PREV_LINK},
+    {KHR(DNARROW_KEY), LYK_NEXT_LINK},
+    {KHR(RTARROW_KEY), LYK_ACTIVATE},
+    {KHR(LTARROW_KEY), LYK_PREV_DOC},
+    {KHR(PGDOWN_KEY), LYK_NEXT_PAGE},
+    {KHR(PGUP_KEY), LYK_PREV_PAGE},
+    {KHR(HOME_KEY), LYK_HOME},
+    {KHR(END_KEY), LYK_END},
+    {KHR(F1_KEY), LYK_DWIMHELP},
 #if !(defined(_WINDOWS) || defined(__DJGPP__))
-    {266, LYK_ACTIVATE},	/* DO_KEY */
-    {267, LYK_HOME},		/* FIND_KEY */
-    {268, LYK_END},		/* SELECT_KEY */
+    {KHR(DO_KEY), LYK_ACTIVATE},
+    {KHR(FIND_KEY), LYK_HOME},
+    {KHR(SELECT_KEY), LYK_END},
 #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 */
+    {KHR(INSERT_KEY), LYK_UP_TWO},
+    {KHR(REMOVE_KEY), LYK_DOWN_TWO},
+    {KHR(DO_NOTHING), LYK_DO_NOTHING},
+    {KHR(BACKTAB_KEY), LYK_FASTBACKW_LINK},
+    {KHR(F11_KEY), LYK_DO_NOTHING},
 #ifdef DJGPP_KEYHANDLER
     {302, LYK_ABORT},
 #endif				/* DJGPP_KEYHANDLER */
diff --git a/src/LYKeymap.h b/src/LYKeymap.h
index d5a4b218..a06db045 100644
--- a/src/LYKeymap.h
+++ b/src/LYKeymap.h
@@ -1,4 +1,4 @@
-/* $LynxId: LYKeymap.h,v 1.53 2013/10/20 22:11:03 tom Exp $ */
+/* $LynxId: LYKeymap.h,v 1.55 2015/10/07 23:34:55 tom Exp $ */
 #ifndef LYKEYMAP_H
 #define LYKEYMAP_H
 
@@ -52,6 +52,11 @@ extern "C" {
     extern LYKeymap_t key_override[];
 #endif
 
+/* readable mapping for characters in edit- and key-maps */
+#define CTL(c)		((c) & 0x1f)
+#define KHR(c)		((c) + 1)
+#define KTL(c)		(CTL(c) + 1)
+
 /* * *  LynxKeyCodes  * * */
 #define LKC_ISLECLAC	0x8000	/* flag: contains lynxaction + editaction */
 #define LKC_MOD1	0x4000	/* a modifier bit - currently for ^x-map */
diff --git a/src/LYMain.c b/src/LYMain.c
index db35ed33..a15c9447 100644
--- a/src/LYMain.c
+++ b/src/LYMain.c
@@ -1,5 +1,5 @@
 /*
- * $LynxId: LYMain.c,v 1.255 2015/09/19 17:40:20 tom Exp $
+ * $LynxId: LYMain.c,v 1.256 2015/10/08 00:41:48 tom Exp $
  */
 #include <HTUtils.h>
 #include <HTTP.h>
@@ -3208,11 +3208,14 @@ static int version_fun(char *next_arg GCC_UNUSED)
     printf("%s\n", result);
     free(result);
 
-#ifndef __DATE__
-#define __DATE__ ""
-#endif
-#ifndef __TIME__
-#define __TIME__ ""
+/*
+ * Define NO_BUILDSTAMP if you really want an executable with no timestamp in
+ * the -version message.
+ */
+#ifdef NO_BUILDSTAMP
+#define BUILDSTAMP ""
+#else
+#define BUILDSTAMP " (" __DATE__ " " __TIME__ ")"
 #endif
 
 /*
@@ -3220,25 +3223,17 @@ static int version_fun(char *next_arg GCC_UNUSED)
  * systems, according to predefined compiler symbols.
  */
 #ifdef SYSTEM_NAME
-    printf(gettext("Built on %s %s %s\n"), SYSTEM_NAME, __DATE__, __TIME__);
-#else
-#ifdef __CYGWIN__
-    printf("Compiled by CYGWIN (%s %s).\n", __DATE__, __TIME__);
-#else
-#ifdef __BORLANDC__
-    printf("Compiled by Borland C++ (%s %s).\n", __DATE__, __TIME__);
-#else
-#ifdef _MSC_VER
-    printf("Compiled by Microsoft Visual C++ (%s %s).\n", __DATE__, __TIME__);
-#else
-#ifdef __DJGPP__
-    printf("Compiled by DJGPP (%s %s).\n", __DATE__, __TIME__);
-#else
-    printf("Compiled at (%s %s).\n", __DATE__, __TIME__);
-#endif /* __DJGPP__ */
-#endif /* _MSC_VER */
-#endif /* __BORLANDC__ */
-#endif /* __CYGWIN__ */
+    printf(gettext("Built on %s%s.\n"), SYSTEM_NAME, BUILDSTAMP);
+#elif defined(__CYGWIN__)
+    printf("Compiled by CYGWIN%s.\n", BUILDSTAMP);
+#elif defined(__BORLANDC__)
+    printf("Compiled by Borland C++%s.\n", BUILDSTAMP);
+#elif defined(_MSC_VER)
+    printf("Compiled by Microsoft Visual C++%s.\n", BUILDSTAMP);
+#elif defined(__DJGPP__)
+    printf("Compiled by DJGPP%s.\n", BUILDSTAMP);
+#elif !defined(NO_BUILDSTAMP)
+    printf("Compiled at %s %s.\n", __DATE__, __TIME__);
 #endif
 
     puts("");
diff --git a/src/LYStrings.h b/src/LYStrings.h
index 6f368a48..c75b3a85 100644
--- a/src/LYStrings.h
+++ b/src/LYStrings.h
@@ -1,5 +1,5 @@
 /*
- * $LynxId: LYStrings.h,v 1.114 2014/12/09 01:49:51 tom Exp $
+ * $LynxId: LYStrings.h,v 1.116 2015/10/07 23:20:48 tom Exp $
  */
 #ifndef LYSTRINGS_H
 #define LYSTRINGS_H
@@ -145,6 +145,7 @@ extern "C" {
      */
     typedef enum {
 	UNKNOWN_KEY = -1
+	,DEL_KEY = 127
 	,UPARROW_KEY = 256
 	,DNARROW_KEY
 	,RTARROW_KEY
diff --git a/src/chrtrans/makefile.in b/src/chrtrans/makefile.in
index 042657c2..5978a86d 100644
--- a/src/chrtrans/makefile.in
+++ b/src/chrtrans/makefile.in
@@ -1,4 +1,4 @@
-# $LynxId: makefile.in,v 1.39 2014/01/19 14:42:43 tom Exp $
+# $LynxId: makefile.in,v 1.40 2015/10/08 00:26:34 Atsuhito.Kohda Exp $
 #
 # Makefile for the makeuctb and unicode tables.
 #
@@ -123,7 +123,7 @@ OBJS		= makeuctb$o
 C_SRC		= $(OBJS:$o=.c)
 
 $(MAKEUCTB) : $(OBJS)
-	$(BUILD_CC) $(CC_OPTS) $(BUILD_LDFLAGS) -o $@ $(OBJS) $(INTLLIB) $(BUILD_LIBS)
+	$(BUILD_CC) $(CC_OPTS) $(LDFLAGS) $(BUILD_LDFLAGS) -o $@ $(OBJS) $(INTLLIB) $(BUILD_LIBS)
 
 makeuctb$o : $(srcdir)/UCkd.h $(srcdir)/makeuctb.c