home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / archives / ckc190.zip / ckocon.h < prev    next >
C/C++ Source or Header  |  1994-09-03  |  19KB  |  471 lines

  1. /*  File CKOCON.H  --  OS/2 C-Kermit keyboard verb definitions & tables.  */
  2.  
  3. /*
  4.   Author: Frank da Cruz (fdc@columbia.edu, FDCCU@CUVMA.BITNET),
  5.   Columbia University Academic Information Systems, New York City.
  6.  
  7.   Copyright (C) 1994, Trustees of Columbia University in the City of New
  8.   York.  The C-Kermit software may not be, in whole or in part, licensed or
  9.   sold for profit as a software product itself, nor may it be included in or
  10.   distributed with commercial products or otherwise distributed by commercial
  11.   concerns to their clients or customers without written permission of the
  12.   Office of Kermit Development and Distribution, Columbia University.  This
  13.   copyright notice must not be removed, altered, or obscured.
  14. */
  15. #ifndef NOKVERBS
  16. #ifndef CKOCON_H
  17. #define CKOCON_H
  18.  
  19. /* DEC VT keyboard key definitions */
  20.  
  21. #define K_COMPOSE      1        /* Compose key */
  22.  
  23. /* DEC arrow keys */
  24.  
  25. #define K_ARR_MIN     10
  26. #define K_UPARR       10        /* DEC Up Arrow key */
  27. #define K_DNARR       11        /* DEC Down Arrow key */
  28. #define K_RTARR       12        /* DEC Right Arrow key */
  29. #define K_LFARR       13        /* DEC Left Arrow key */
  30. #define K_ARR_MAX     13
  31.  
  32. #define K_GOLD        15        /* DEC Gold key (same as PF1) */
  33. #define K_PF1         15        /* DEC PF1 key */
  34. #define K_PF2         16        /* DEC PF2 key */
  35. #define K_PF3         17        /* DEC PF3 key */
  36. #define K_PF4         18        /* DEC PF4 key */
  37.  
  38. #define K_KP0         20        /* DEC Keypad 0 */
  39. #define K_KP1         21        /* DEC Keypad 1 */
  40. #define K_KP2         22        /* etc ... through 9 */
  41. #define K_KP3         23
  42. #define K_KP4         24
  43. #define K_KP5         25
  44. #define K_KP6         26
  45. #define K_KP7         27
  46. #define K_KP8         28
  47. #define K_KP9         29
  48. #define K_KPCOMA      30        /* DEC keypad comma */
  49. #define K_KPMINUS     31        /* DEC keypad minus */
  50. #define K_KPDOT       32        /* DEC keypad period */
  51. #define K_KPENTER     33        /* DEC keypad enter */
  52.  
  53. /* DEC Top-Rank F keys */
  54.  
  55. #define K_DECF6       46        /* DEC F6 key */
  56. #define K_DECF7       47        /* etc, through F20 */
  57. #define K_DECF8       48
  58. #define K_DECF9       49
  59. #define K_DECF10      50
  60. #define K_DECF11      51
  61. #define K_DECF12      52
  62. #define K_DECF13      53
  63. #define K_DECF14      54
  64. #define K_DECF15      55
  65. #define K_DECHELP     55        /* DEC Help key */
  66. #define K_DECF16      56
  67. #define K_DECDO       56        /* DEC Do key */
  68. #define K_DECF17      57
  69. #define K_DECF18      58
  70. #define K_DECF19      59
  71. #define K_DECF20      60
  72.  
  73. /* DEC editing keys */
  74.  
  75. #define K_DECFIND     71        /* DEC Find key */
  76. #define K_DECINSERT   72        /* DEC Insert key */
  77. #define K_DECREMOVE   73        /* DEC Remove key */
  78. #define K_DECSELECT   74        /* DEC Select key */
  79. #define K_DECPREV     75        /* DEC Previous Screen key */
  80. #define K_DECNEXT     76        /* DEC Next Screen key */
  81.  
  82. /* DEC User-Defined Keys */
  83.  
  84. #define K_UDKF6       86        /* DEC User Defined Key F6 */
  85. #define K_UDKF7       87        /* DEC User Defined Key F7 */
  86. #define K_UDKF8       88        /* etc ... through F20 */
  87. #define K_UDKF9       89
  88. #define K_UDKF10      90
  89. #define K_UDKF11      91
  90. #define K_UDKF12      92
  91. #define K_UDKF13      93
  92. #define K_UDKF14      94
  93. #define K_UDKF15      95
  94. #define K_UDKF16      96
  95. #define K_UDKF17      97
  96. #define K_UDKF18      98
  97. #define K_UDKF19      99
  98. #define K_UDKF20     100
  99.  
  100. /* Kermit screen-scrolling keys */
  101.  
  102. #define K_ROLLMIN    110
  103. #define K_DNONE      110        /* Screen rollback: down one line */
  104. #define K_DNSCN      111        /* Screen rollback: down one screen */
  105. #define K_UPONE      112        /* Screen rollback: Up one line */
  106. #define K_UPSCN      113        /* Screen rollback: Up one screen */
  107. #define K_ENDSCN     114        /* Screen rollback: latest screen */
  108. #define K_HOMSCN     115        /* Screen rollback: oldest screen */
  109. #define K_ROLLMAX    115
  110.  
  111. #define K_LFONE      120        /* Horizontal Scroll: Left one cell */
  112. #define K_LFPAGE     121        /* Horizontal Scroll: Left one page */
  113. #define K_RTONE      122        /* Horizontal Scroll: Right one cell */
  114. #define K_RTPAGE     123        /* Horizontal Scroll: Right one page */
  115.  
  116. /* Keyboard language switching verbs */
  117.  
  118. #define K_KB_ENG     130        /* Switch keyboard to English mode */
  119. #define K_KB_HEB     131        /* Switch keyboard to Hebrew mode */
  120. #define K_KB_RUS     132        /* Switch keyboard to Russian mode */
  121.  
  122. /* Mouse actions */
  123.  
  124. #define K_MARKBEG    180      /* Begin selection of text */
  125. #define K_MARKEND    181      /* End selection of text */
  126. #define K_CUT        182      /* Cut data to buffer */
  127. #define K_PASTE      183      /* Paste data from buffer */
  128.  
  129. /* Miscellaneous Kermit actions */
  130.  
  131. #define K_ACT_MIN    200        /* Lowest Action verb number */
  132. #define K_EXIT       200        /* Return to command parser */
  133. #define K_BREAK      201        /* Send a BREAK */
  134. #define K_RESET      202        /* Reset emulator */
  135. #define K_DOS        203        /* Push to DOS (i.e. OS/2) */
  136. #define K_HANGUP     204        /* Hang up the connection */
  137. #define K_DUMP       205        /* Dump screen */
  138. #define K_LBREAK     206        /* Send a Long BREAK */
  139. #define K_NULL       207        /* Send a NUL */
  140. #define K_HELP       208        /* Pop-up help */
  141. #define K_HOLDSCRN   209        /* Hold screen */
  142. #define K_IGNORE     210        /* Ignore this key, don't even beep */
  143. #define K_LOGOFF     211        /* Turn off session logging */
  144. #define K_LOGON      212        /* Turn on session logging */
  145. #define K_MODELINE   213        /* Toggle mode line */
  146. #define K_NETHOLD    214        /* Put network connection on hold */
  147. #define K_NEXTSESS   215        /* Toggle to next network session */
  148. #define K_STATUS     216        /* Show status */
  149. #define K_TERMTYPE   217        /* Toggle term type: text/graphics */
  150. #define K_PRTSCN     218        /* Print Screen */
  151. #define K_PRINTFF    219        /* Print formfeed */
  152. #define K_FLIPSCN    220        /* Flip screen */
  153. #define K_DEBUG      221        /* Toggle debugging */
  154. #define K_TN_AYT     222        /* TELNET Are You There */
  155. #define K_TN_IP      223        /* TELNET Interrupt Process */
  156. #define K_ACT_MAX    223        /* Highest Action verb number */
  157.  
  158. #include "ckucmd.h"            /* For struct keytab definition. */
  159. /*
  160.   Table of keyboard verbs, associating name with symbol (value).
  161.   Names are chosen for compatibility with MS-DOS Kermit.
  162.   Keyword strings MUST be in lowercase and must be in alphabetical order!
  163. */
  164. struct keytab kverbs[] = {
  165.     "break",      K_BREAK,       0,
  166.     "compose",    K_COMPOSE,     0,
  167.     "debug",      K_DEBUG,       0,
  168.     "decdo",      K_DECDO,       0,
  169.     "decf10",     K_DECF10,      0,
  170.     "decf11",     K_DECF11,      0,
  171.     "decf12",     K_DECF12,      0,
  172.     "decf13",     K_DECF13,      0,
  173.     "decf14",     K_DECF14,      0,
  174.     "decf16",     K_DECF16,      0,
  175.     "decf16",     K_DECF16,      0,
  176.     "decf17",     K_DECF17,      0,
  177.     "decf18",     K_DECF18,      0,
  178.     "decf19",     K_DECF19,      0,
  179.     "decf20",     K_DECF20,      0,
  180.     "decf6",      K_DECF6,       0,
  181.     "decf7",      K_DECF7,       0,
  182.     "decf8",      K_DECF8,       0,
  183.     "decf9",      K_DECF9,       0,
  184.     "decfind",    K_DECFIND,     0,
  185.     "dechelp",    K_DECHELP,     0,
  186.     "decinsert",  K_DECINSERT,   0,
  187.     "decnext",    K_DECNEXT,     0,
  188.     "decprev",    K_DECPREV,     0,
  189.     "decremove",  K_DECREMOVE,   0,
  190.     "decselect",  K_DECSELECT,   0,
  191.     "dnarr",      K_DNARR,       0,
  192.     "dnone",      K_DNONE,       0,
  193.     "dnscn",      K_DNSCN,       0,
  194.     "dos",        K_DOS,         0,
  195.     "dump",       K_DUMP,        0,
  196.     "endscn",     K_ENDSCN,      0,
  197.     "exit",       K_EXIT,        0,
  198.     "flipscn",    K_FLIPSCN,     0,
  199.     "gold",       K_GOLD,        0,
  200.     "hangup",     K_HANGUP,      0,
  201.     "help",       K_HELP,        0,
  202.     "holdscrn",   K_HOLDSCRN,    0,
  203.     "homscn",     K_HOMSCN,      0,
  204.     "ignore",     K_IGNORE,      0,
  205.     "kbenglish",  K_KB_ENG,      0,
  206.     "kbhebrew",   K_KB_HEB,      0,
  207.     "kp0",        K_KP0,         0,
  208.     "kp1",        K_KP1,         0,
  209.     "kp2",        K_KP2,         0,
  210.     "kp3",        K_KP3,         0,
  211.     "kp4",        K_KP4,         0,
  212.     "kp5",        K_KP5,         0,
  213.     "kp6",        K_KP6,         0,
  214.     "kp7",        K_KP7,         0,
  215.     "kp8",        K_KP8,         0,
  216.     "kp9",        K_KP9,         0,
  217.     "kpcoma",     K_KPCOMA,      0,
  218.     "kpdot",      K_KPDOT,       0,
  219.     "kpenter",    K_KPENTER,     0,
  220.     "kpminus",    K_KPMINUS,     0,
  221.     "lbreak",     K_LBREAK,      0,
  222.     "lfarr",      K_LFARR,       0,
  223. /*  "lfone",      K_LFONE,       0, */
  224. /*  "lfpage",     K_LFPAGE,      0, */
  225.     "logoff",     K_LOGOFF,      0,
  226.     "logon",      K_LOGON,       0,
  227. /*  "modeline",   K_MODELINE,    0, */
  228. /*  "nethold",    K_NETHOLD,     0, */
  229. /*  "nextsession",K_NEXTSESS,    0, */
  230.     "null",       K_NULL,        0,
  231.     "os2",        K_DOS,         0,
  232.     "pf1",        K_PF1,         0,
  233.     "pf2",        K_PF2,         0,
  234.     "pf3",        K_PF3,         0,
  235.     "pf4",        K_PF4,         0,
  236.     "printff",    K_PRINTFF,     0,
  237.     "prtscn",     K_PRTSCN,      0,
  238.     "reset",      K_RESET,       0,
  239.     "rtarr",      K_RTARR,       0,
  240. /*  "rtone",      K_RTONE,       0, */
  241. /*  "rtpage",     K_RTPAGE,      0, */
  242. /*  "status",     K_STATUS,      0, */
  243. /*  "termtype",   K_TERMTYPE,    0, */
  244.     "tn_ayt",     K_TN_AYT,      0,
  245.     "tn_ip",      K_TN_IP,       0,
  246. #ifdef COMMENT
  247.     "udkf6",      K_UDKF6,       0,
  248.     "udkf7",      K_UDKF7,       0,
  249.     "udkf8",      K_UDKF8,       0,
  250.     "udkf9",      K_UDKF9,       0,
  251.     "udkf10",     K_UDKF10,      0,
  252.     "udkf11",     K_UDKF11,      0,
  253.     "udkf12",     K_UDKF12,      0,
  254.     "udkf13",     K_UDKF13,      0,
  255.     "udkf14",     K_UDKF14,      0,
  256.     "udkf15",     K_UDKF15,      0,
  257.     "udkf16",     K_UDKF16,      0,
  258.     "udkf17",     K_UDKF17,      0,
  259.     "udkf18",     K_UDKF18,      0,
  260.     "udkf19",     K_UDKF19,      0,
  261.     "udkf20",     K_UDKF20,      0,
  262. #endif /* COMMENT */
  263.     "uparr",      K_UPARR,       0,
  264.     "upone",      K_UPONE,       0,
  265.     "upscn",      K_UPSCN,       0
  266. };
  267. int nkverbs = (sizeof(kverbs) / sizeof(struct keytab));
  268.  
  269. /* Compose-key support structures and tables */
  270.  
  271. struct compose_key_tab {
  272.     CHAR c1;                /* First char of compose sequence */
  273.     CHAR c2;                /* Second char of compose sequence */
  274.     CHAR c3;                /* Character that it maps to */
  275. };
  276. /*
  277.   Eventually we need a bunch of these tables, one for each language
  278.   group, roughly corresponding to Latin Alphabets, and should use the 
  279.   appropriate one depending on the terminal character-set.
  280. */
  281. struct compose_key_tab l1ktab[] = {
  282.     'A', '`', (CHAR) 0xC0,        /* A grave */
  283.     '`', 'A', (CHAR) 0xC0,        /* A grave */
  284.     'A', (CHAR) 0x27, (CHAR) 0xC1,    /* A acute */
  285.     (CHAR) 0x27, 'A', (CHAR) 0xC1,    /* A acute */
  286.     'A', '^', (CHAR) 0xC2,        /* A circumflex */
  287.     '^', 'A', (CHAR) 0xC2,        /* A circumflex */
  288.     'A', '~', (CHAR) 0xC3,        /* A tilde */
  289.     '~', 'A', (CHAR) 0xC3,        /* A tilde */
  290.     'A', '"', (CHAR) 0xC4,        /* A diaeresis */
  291.     '"', 'A', (CHAR) 0xC4,        /* A diaeresis */
  292.     'A', '*', (CHAR) 0xC5,        /* A ring above */
  293.     '*', 'A', (CHAR) 0xC5,        /* A ring above */
  294.     'A', 'E', (CHAR) 0xC6,        /* A with E */
  295.     'C', ',', (CHAR) 0xC7,        /* C Cedilla */
  296.     ',', 'C', (CHAR) 0xC7,        /* C Cedilla */
  297.     'E', '`', (CHAR) 0xC8,        /* E grave */
  298.     '`', 'E', (CHAR) 0xC8,        /* E grave */
  299.     'E', (CHAR) 0x27, (CHAR) 0xC9,    /* E acute */
  300.     (CHAR) 0x27, 'E', (CHAR) 0xC9,    /* E acute */
  301.     'E', '^', (CHAR) 0xCA,        /* E circumflex */
  302.     '^', 'E', (CHAR) 0xCA,        /* E circumflex */
  303.     'E', '"', (CHAR) 0xCB,        /* E diaeresis */
  304.     '"', 'E', (CHAR) 0xCB,        /* E diaeresis */
  305.     'I', '`', (CHAR) 0xCC,        /* I grave */
  306.     '`', 'I', (CHAR) 0xCC,        /* I grave */
  307.     'I', (CHAR) 0x27, (CHAR) 0xCD,    /* I acute */
  308.     (CHAR) 0x27, 'I', (CHAR) 0xCD,    /* I acute */
  309.     'I', '^', (CHAR) 0xCE,        /* I circumflex */
  310.     '^', 'I', (CHAR) 0xCE,        /* I circumflex */
  311.     'I', '"', (CHAR) 0xCF,        /* I diaeresis */
  312.     '"', 'I', (CHAR) 0xCF,        /* I diaeresis */
  313.     '-', 'D', (CHAR) 0xD0,        /* Icelandic Eth */
  314.     'D', '-', (CHAR) 0xD0,        /* Icelandic Eth */
  315.     'N', '~', (CHAR) 0xD1,        /* N tilde */
  316.     '~', 'N', (CHAR) 0xD1,        /* N tilde */
  317.     'O', '`', (CHAR) 0xD2,        /* O grave */
  318.     '`', 'O', (CHAR) 0xD2,        /* O grave */
  319.     'O', (CHAR) 0x27, (CHAR) 0xD3,    /* O acute */
  320.     (CHAR) 0x27, 'O', (CHAR) 0xD3,    /* O acute */
  321.     'O', '^', (CHAR) 0xD4,        /* O circumflex */
  322.     '^', 'O', (CHAR) 0xD4,        /* O circumflex */
  323.     'O', '~', (CHAR) 0xD5,        /* O tilde */
  324.     '~', 'O', (CHAR) 0xD5,        /* O tilde */
  325.     'O', '"', (CHAR) 0xD6,        /* O diaeresis */
  326.     '"', 'O', (CHAR) 0xD6,        /* O diaeresis */
  327.     'O', '/', (CHAR) 0xD8,        /* O oblique stroke */
  328.     '/', 'O', (CHAR) 0xD8,        /* O oblique stroke */
  329.     'U', '`', (CHAR) 0xD9,        /* U grave */
  330.     '`', 'U', (CHAR) 0xD9,        /* U grave */
  331.     'U', (CHAR) 0x27, (CHAR) 0xDA,    /* U acute */
  332.     (CHAR) 0x27, 'U', (CHAR) 0xDA,    /* U acute */
  333.     'U', '^', (CHAR) 0xDB,        /* U circumflex */
  334.     '^', 'U', (CHAR) 0xDB,        /* U circumflex */
  335.     'U', '"', (CHAR) 0xDC,        /* U diaeresis */
  336.     '"', 'U', (CHAR) 0xDC,        /* U diaeresis */
  337.     'Y', (CHAR) 0x27, (CHAR) 0xDD,    /* Y acute */
  338.     (CHAR) 0x27, 'Y', (CHAR) 0xDD,    /* Y acute */
  339.     'H', 'T', (CHAR) 0xDE,        /* Icelandic Thorn */
  340.     'T', 'H', (CHAR) 0xDE,        /* Icelandic Thorn */
  341.     's', 's', (CHAR) 0xDF,        /* German scharfes s */
  342.     'a', '`', (CHAR) 0xE0,        /* a grave */
  343.     '`', 'a', (CHAR) 0xE0,        /* a grave */
  344.     'a', (CHAR) 0x27, (CHAR) 0xE1,    /* a acute */
  345.     (CHAR) 0x27, 'a', (CHAR) 0xE1,    /* a acute */
  346.     'a', '^', (CHAR) 0xE2,        /* a circumflex */
  347.     '^', 'a', (CHAR) 0xE2,        /* a circumflex */
  348.     'a', '~', (CHAR) 0xE3,        /* a tilde */
  349.     '~', 'a', (CHAR) 0xE3,        /* a tilde */
  350.     'a', '"', (CHAR) 0xE4,        /* a diaeresis */
  351.     '"', 'a', (CHAR) 0xE4,        /* a diaeresis */
  352.     'a', '*', (CHAR) 0xE5,        /* a ring above */
  353.     '*', 'a', (CHAR) 0xE5,        /* a ring above */
  354.     'a', 'e', (CHAR) 0xE6,        /* a with e */
  355.     'c', ',', (CHAR) 0xE7,        /* c cedilla */
  356.     ',', 'c', (CHAR) 0xE7,        /* c cedilla */
  357.     'e', '`', (CHAR) 0xE8,        /* e grave */
  358.     '`', 'e', (CHAR) 0xE8,        /* e grave */
  359.     'e', (CHAR) 0x27, (CHAR) 0xE9,    /* e acute */
  360.     (CHAR) 0x27, 'e', (CHAR) 0xE9,    /* e acute */
  361.     'e', '^', (CHAR) 0xEA,        /* e circumflex */
  362.     '^', 'e', (CHAR) 0xEA,        /* e circumflex */
  363.     'e', '"', (CHAR) 0xEB,        /* e diaeresis */
  364.     '"', 'e', (CHAR) 0xEB,        /* e diaeresis */
  365.     'i', '`', (CHAR) 0xEC,        /* i grave */
  366.     '`', 'i', (CHAR) 0xEC,        /* i grave */
  367.     'i', (CHAR) 0x27, (CHAR) 0xED,    /* i acute */
  368.     (CHAR) 0x27, 'i', (CHAR) 0xED,    /* i acute */
  369.     'i', '^', (CHAR) 0xEE,        /* i circumflex */
  370.     '^', 'i', (CHAR) 0xEE,        /* i circumflex */
  371.     'i', '"', (CHAR) 0xEF,        /* i diaeresis */
  372.     '"', 'i', (CHAR) 0xEF,        /* i diaeresis */
  373.     '-', 'd', (CHAR) 0xF0,        /* Icelandic eth */
  374.     'd', '-', (CHAR) 0xF0,        /* Icelandic eth */
  375.     'n', '~', (CHAR) 0xF1,        /* n tilde */
  376.     '~', 'n', (CHAR) 0xF1,        /* n tilde */
  377.     'o', '`', (CHAR) 0xF2,        /* o grave */
  378.     '`', 'o', (CHAR) 0xF2,        /* o grave */
  379.     'o', (CHAR) 0x27, (CHAR) 0xF3,    /* o acute */
  380.     (CHAR) 0x27, 'o', (CHAR) 0xF3,    /* o acute */
  381.     'o', '^', (CHAR) 0xF4,        /* o circumflex */
  382.     '^', 'o', (CHAR) 0xF4,        /* o circumflex */
  383.     'o', '~', (CHAR) 0xF5,        /* o tilde */
  384.     '~', 'o', (CHAR) 0xF5,        /* o tilde */
  385.     'o', '"', (CHAR) 0xF6,        /* o diaeresis */
  386.     '"', 'o', (CHAR) 0xF6,        /* o diaeresis */
  387.     '-', ':', (CHAR) 0xF7,        /* Division sign */
  388.     'o', '/', (CHAR) 0xF8,        /* o oblique stroke */
  389.     '/', 'o', (CHAR) 0xF8,        /* o oblique stroke */
  390.     'u', '`', (CHAR) 0xF9,        /* u grave */
  391.     '`', 'u', (CHAR) 0xF9,        /* u grave */
  392.     'u', (CHAR) 0x27, (CHAR) 0xFA,    /* u acute */
  393.     (CHAR) 0x27, 'u', (CHAR) 0xFA,    /* u acute */
  394.     'u', '^', (CHAR) 0xFB,        /* u circumflex */
  395.     '^', 'u', (CHAR) 0xFB,        /* u circumflex */
  396.     'u', '"', (CHAR) 0xFC,        /* u diaeresis */
  397.     '"', 'u', (CHAR) 0xFC,        /* u diaeresis */
  398.     'y', (CHAR) 0x27, (CHAR) 0xFD,    /* y acute */
  399.     (CHAR) 0x27, 'y', (CHAR) 0xFD,    /* y acute */
  400.     'h', 't', (CHAR) 0xFE,        /* Icelandic thorn */
  401.     't', 'h', (CHAR) 0xFE,        /* Icelandic thorn */
  402.     'y', '"', (CHAR) 0xFF,        /* y diaeresis */
  403.     '"', 'y', (CHAR) 0xFF,        /* y diaeresis */
  404.     '+', '+', '#',            /* Number sign */
  405.     'A', 'A', '@',            /* At sign */
  406.     'a', 'a', '@',            /* At sign */
  407.     '(', '(', '[',            /* Left bracket */
  408.     '/', '/', '\\',            /* Backslash */
  409.     '/', '<', '\\',            /* Backslash */
  410.     ')', ')', ']',            /* Right bracket */
  411.     '(', '-', '{',            /* Left brace */
  412.     '/', '^', '|',            /* Vertical bar */
  413.     ')', '-', '}',            /* Right brace */
  414.     '!', '!', (CHAR) 0xA1,        /* Inverted exclamation */
  415.     'C', '/', (CHAR) 0xA2,        /* Cent sign */
  416.     'c', '/', (CHAR) 0xA2,        /* Cent sign */
  417.     'L', '-', (CHAR) 0xA3,        /* Pound sterling sign */
  418.     'l', '-', (CHAR) 0xA3,        /* Pound sterling sign */
  419.     'Y', '-', (CHAR) 0xA5,        /* Yen sign */
  420.     'y', '-', (CHAR) 0xA5,        /* Yen sign */
  421.     '|', '|', (CHAR) 0xA6,        /* Broken bar */
  422.     'S', 'O', (CHAR) 0xA7,        /* Paragraph sign */
  423.     'S', '!', (CHAR) 0xA7,        /* Paragraph sign */
  424.     'S', '0', (CHAR) 0xA7,        /* Paragraph sign */
  425.     's', 'o', (CHAR) 0xA7,        /* Paragraph sign */
  426.     's', '!', (CHAR) 0xA7,        /* Paragraph sign */
  427.     's', '0', (CHAR) 0xA7,        /* Paragraph sign */
  428.     'X', 'O', (CHAR) 0xA4,        /* Currency sign */
  429.     'X', '0', (CHAR) 0xA4,        /* Currency sign */
  430.     'x', 'o', (CHAR) 0xA4,        /* Currency sign */
  431.     'x', '0', (CHAR) 0xA4,        /* Currency sign */
  432.     'C', 'O', (CHAR) 0xA9,        /* Copyright sign */
  433.     'C', '0', (CHAR) 0xA9,        /* Copyright sign */
  434.     'c', 'o', (CHAR) 0xA9,        /* Copyright sign */
  435.     'c', '0', (CHAR) 0xA9,        /* Copyright sign */
  436.     'A', '_', (CHAR) 0xAA,        /* Feminine ordinal */
  437.     'a', '_', (CHAR) 0xAA,        /* Feminine ordinal */
  438.     '<', '<', (CHAR) 0xAB,        /* Left angle quotation */
  439.     '-', ',', (CHAR) 0xAC,        /* Not sign */
  440.     '-', '-', (CHAR) 0xAD,        /* Soft hyphen */
  441.     'R', 'O', (CHAR) 0xAE,        /* Registered Trademark */
  442.     'r', 'o', (CHAR) 0xAE,        /* Registered Trademark */
  443.     '-', '^', (CHAR) 0xAF,        /* Macron */
  444.     '0', '^', (CHAR) 0xB0,        /* Degree sign */
  445.     '+', '-', (CHAR) 0xB1,        /* Plus or minus sign */
  446.     '2', '^', (CHAR) 0xB2,        /* Superscript 2 */
  447.     '3', '^', (CHAR) 0xB3,        /* Superscript 3 */
  448.     (CHAR) 0x27, (CHAR) 0x27, (CHAR) 0xB4, /* Acute accent */
  449.     '/', 'U', (CHAR) 0xB5,        /* Micro sign */
  450.     'U', '/', (CHAR) 0xB5,        /* Micro sign */
  451.     '/', 'u', (CHAR) 0xB5,        /* Micro sign */
  452.     'u', '/', (CHAR) 0xB5,        /* Micro sign */
  453.     'P', '!', (CHAR) 0xB6,        /* Pilcrow sign */
  454.     'p', '!', (CHAR) 0xB6,        /* Pilcrow sign */
  455.     '.', '^', (CHAR) 0xB7,        /* Middle dot */
  456.     ',', ',', (CHAR) 0xB8,        /* Cedilla */
  457.     '1', '^', (CHAR) 0xB9,        /* Superscript 1 */
  458.     'O', '_', (CHAR) 0xBA,        /* Masculine ordinal */
  459.     'o', '_', (CHAR) 0xBA,        /* Masculine ordinal */
  460.     '>', '>', (CHAR) 0xBB,        /* Right angle quotation */
  461.     '1', '4', (CHAR) 0xBC,        /* Fraction one quarter */
  462.     '1', '2', (CHAR) 0xBD,        /* Fraction one half */
  463.     '?', '?', (CHAR) 0xBF,        /* Inverted question mark */
  464.     'x', 'x', (CHAR) 0xD7,        /* Multiplication sign */
  465.     'X', 'X', (CHAR) 0xD7        /* Multiplication sign */
  466. };
  467. int nl1ktab = (sizeof(l1ktab) / sizeof(struct compose_key_tab));
  468.  
  469. #endif /* CKOCON_H */
  470. #endif /* NOKVERBS */
  471.