chry_readline_keycode.h 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394
  1. /*
  2. * Copyright (c) 2022, Egahp
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. /*!< VT101 User Guide */
  7. /*!< APPENDIX C */
  8. /*!< <1> Standard Key Character Codes (0x21-0x7E) */
  9. /*!< Lowercase Lowercase Code Uppercase Uppercasee Code */
  10. /*!< a 0x61 A 0x41 */
  11. /*!< b 0x62 B 0x42 */
  12. /*!< c 0x63 C 0x43 */
  13. /*!< d 0x64 D 0x44 */
  14. /*!< e 0x65 E 0x45 */
  15. /*!< f 0x66 F 0x46 */
  16. /*!< g 0x67 G 0x47 */
  17. /*!< h 0x68 H 0x48 */
  18. /*!< i 0x69 I 0x49 */
  19. /*!< j 0x6A J 0x4A */
  20. /*!< k 0x6B K 0x4B */
  21. /*!< l 0x6C L 0x4C */
  22. /*!< m 0x6D M 0x4D */
  23. /*!< n 0x6E N 0x4E */
  24. /*!< o 0x6F O 0x4F */
  25. /*!< p 0x70 P 0x50 */
  26. /*!< q 0x71 Q 0x51 */
  27. /*!< r 0x72 R 0x52 */
  28. /*!< s 0x73 S 0x53 */
  29. /*!< t 0x74 T 0x54 */
  30. /*!< u 0x75 U 0x55 */
  31. /*!< v 0x76 V 0x56 */
  32. /*!< w 0x77 W 0x57 */
  33. /*!< x 0x78 X 0x58 */
  34. /*!< y 0x79 Y 0x59 */
  35. /*!< z 0x7A Z 0x5A */
  36. /*!< 1 0x31 ! 0x21 */
  37. /*!< 2 0x32 @ 0x40 */
  38. /*!< 3 0x33 # 0x23 */
  39. /*!< 4 0x34 $ 0x24 */
  40. /*!< 5 0x35 % 0x25 */
  41. /*!< 6 0x36 ^(circumflex) 0x5E */
  42. /*!< 7 0x37 & 0x26 */
  43. /*!< 8 0x38 * 0x2A */
  44. /*!< 9 0x39 ( 0x28 */
  45. /*!< 0 0x30 ) 0x29 */
  46. /*!< -(minus) 0x2D _ 0x5F */
  47. /*!< = 0x3D + 0x2B */
  48. /*!< `(grave) 0x60 ~(tilde) 0x7E */
  49. /*!< [ 0x5B { 0x7B */
  50. /*!< ] 0x5D } 0x7D */
  51. /*!< ; 0x3B : 0x3A */
  52. /*!< '(spostrophe) 0x27 " 0x22 */
  53. /*!< \ 0x5C | 0x7C */
  54. /*!< ,(comma) 0x2C < 0x3C */
  55. /*!< .(period) 0x2E > 0x3E */
  56. /*!< / 0x2F ? 0x3F */
  57. /*!< */
  58. /*!< <2> Cursor Control KeyCodes */
  59. /*!< Cursor Key ANSI Mode Reset ANSI Mode Set VT52 Mode */
  60. /*!< ↑ Up <esc>[A <esc>OA <esc>A */
  61. /*!< ↓ Down <esc>[B <esc>OB <esc>B */
  62. /*!< → Right <esc>[C <esc>OC <esc>C */
  63. /*!< ← Left <esc>[D <esc>OD <esc>D */
  64. /*!< */
  65. /*!< <3> Control Codes Generated (0x00 - 0x1F, 0x7F) */
  66. /*!< Mnemonic Code Hex Key with CTRL Dedicated Key */
  67. /*!< NUL 0x00 Spcae Bar */
  68. /*!< SOH 0x01 A */
  69. /*!< STX 0x02 B */
  70. /*!< ETX 0x03 C */
  71. /*!< EOT 0x04 D */
  72. /*!< ENQ 0x05 E */
  73. /*!< ACK 0x06 F */
  74. /*!< BEL 0x07 G */
  75. /*!< BS 0x08 H BACK SPACE */
  76. /*!< HT 0x09 I TAB */
  77. /*!< LF 0x0A J LINE FEED */
  78. /*!< VT 0x0B K */
  79. /*!< FF 0x0C L */
  80. /*!< CR 0x0D M RETURN (ENTER) */
  81. /*!< SO 0x0E N */
  82. /*!< SI 0x0F O */
  83. /*!< DLE 0x10 P */
  84. /*!< DC1 0x11 Q */
  85. /*!< DC2 0x12 R */
  86. /*!< DC3 0x13 S */
  87. /*!< DC4 0x14 T */
  88. /*!< NAK 0x15 U */
  89. /*!< SYN 0x16 V */
  90. /*!< ETB 0x17 W */
  91. /*!< CAN 0x18 X */
  92. /*!< EM 0x19 Y */
  93. /*!< SUB 0x1A Z */
  94. /*!< ESC 0x1B [ */
  95. /*!< FS 0x1C \ */
  96. /*!< GS 0x1D ] */
  97. /*!< RS 0x1E ~ */
  98. /*!< US 0x1F ? */
  99. /*!< DEL 0x7F DELETE */
  100. /*!< */
  101. /*!< The following control charaters are generated differently from previous */
  102. /*!< NUL 0x00 @ */
  103. /*!< RS 0x1E ^ */
  104. /*!< US 0x1F - & */
  105. /*!< */
  106. /*!< <4> Auxiliary Keypad Codes */
  107. /*!< Key ANSI Numeric ANSI Alternate VT52 Numeric VT52 Alternate */
  108. /*!< 0 0 <esc>Op 0 <esc>?p */
  109. /*!< 1 1 <esc>Oq 1 <esc>?q */
  110. /*!< 2 2 <esc>Or 2 <esc>?r */
  111. /*!< 3 3 <esc>Os 3 <esc>?s */
  112. /*!< 4 4 <esc>Ot 4 <esc>?t */
  113. /*!< 5 5 <esc>Ou 5 <esc>?u */
  114. /*!< 6 6 <esc>Ov 6 <esc>?v */
  115. /*!< 7 7 <esc>Ow 7 <esc>?w */
  116. /*!< 8 8 <esc>Ox 8 <esc>?x */
  117. /*!< 9 9 <esc>Oy 9 <esc>?y */
  118. /*!< - - <esc>Om - <esc>?m */
  119. /*!< , , <esc>Ol , <esc>?l */
  120. /*!< . . <esc>On . <esc>?n */
  121. /*!< ENTER CR <esc>OM CR <esc>?M */
  122. /*!< PF1 <esc>OP <esc>OP <esc>P <esc>?P */
  123. /*!< PF2 <esc>OQ <esc>OQ <esc>Q <esc>?Q */
  124. /*!< PF3 <esc>OR <esc>OR <esc>R <esc>?R */
  125. /*!< PF4 <esc>OS <esc>OS <esc>S <esc>?S */
  126. /*!< */
  127. /*!< */
  128. /*!< vt sequences: */
  129. /*!< <esc>[1~ - Home <esc>[16~ - <esc>[31~ - F17 */
  130. /*!< <esc>[2~ - Insert <esc>[17~ - F6 <esc>[32~ - F18 */
  131. /*!< <esc>[3~ - Delete <esc>[18~ - F7 <esc>[33~ - F19 */
  132. /*!< <esc>[4~ - End <esc>[19~ - F8 <esc>[34~ - F20 */
  133. /*!< <esc>[5~ - PgUp <esc>[20~ - F9 <esc>[35~ - */
  134. /*!< <esc>[6~ - PgDn <esc>[21~ - F10 */
  135. /*!< <esc>[7~ - Home <esc>[22~ - */
  136. /*!< <esc>[8~ - End <esc>[23~ - F11 */
  137. /*!< <esc>[9~ - <esc>[24~ - F12 */
  138. /*!< <esc>[10~ - F0 <esc>[25~ - F13 */
  139. /*!< <esc>[11~ - F1 <esc>[26~ - F14 */
  140. /*!< <esc>[12~ - F2 <esc>[27~ - */
  141. /*!< <esc>[13~ - F3 <esc>[28~ - F15 */
  142. /*!< <esc>[14~ - F4 <esc>[29~ - F16 */
  143. /*!< <esc>[15~ - F5 <esc>[30~ - */
  144. /*!< */
  145. /*!< xterm sequences: */
  146. /*!< <esc>[A - Up <esc>[K - <esc>[U - */
  147. /*!< <esc>[B - Down <esc>[L - <esc>[V - */
  148. /*!< <esc>[C - Right <esc>[M - <esc>[W - */
  149. /*!< <esc>[D - Left <esc>[N - <esc>[X - */
  150. /*!< <esc>[E - <esc>[O - <esc>[Y - */
  151. /*!< <esc>[F - End <esc>[P - F1 <esc>[Z - */
  152. /*!< <esc>[G - Keypad 5 <esc>[Q - F2 */
  153. /*!< <esc>[H - Home <esc>[R - F3 */
  154. /*!< <esc>[I - <esc>[S - F4 */
  155. /*!< <esc>[J - <esc>[T - */
  156. /*!< */
  157. /*!< Host -> Terminal input sequences */
  158. /*!< Pressing special keys on the keyboard, as well as outputting many */
  159. /*!< xterm CSI, DCS, or OSC sequences, often produces a CSI, DCS, or OSC */
  160. /*!< sequence, sent from the terminal to the computer as though the user */
  161. /*!< typed it. */
  162. /*!< When typing input on a terminal keypresses outside the normal main */
  163. /*!< alphanumeric keyboard area can be sent to the host as ANSI sequences. */
  164. /*!< For keys that have an equivalent output function, such as the cursor */
  165. /*!< keys, these often mirror the output sequences. However, for most */
  166. /*!< keypresses there isn't an equivalent output sequence to use. */
  167. /*!< */
  168. /*!< There are several encoding schemes, and unfortunately most terminals */
  169. /*!< mix sequences from different schemes, so host software has to be able */
  170. /*!< to deal with input sequences using any scheme. To complicate the */
  171. /*!< matter, the VT terminals themselves have two schemes of input, normal */
  172. /*!< mode and application mode that can be switched by the application. */
  173. /*!< */
  174. /*!< */
  175. /*!< Pn -> Numeric Parameter */
  176. /*!< A parameter that represents a number, designated by Pn. */
  177. /*!< Ps -> Selective Parameter */
  178. /*!< A parameter that selects a subfunction from a specified list of */
  179. /*!< subfunctions, designated by Ps. In general, a control sequence with */
  180. /*!< more than one selective parameter causes the same effect as several */
  181. /*!< control sequences, each with one selective parameter, e.g., */
  182. /*!< CSI Psa; Psb; Psc F is identical to CSI Psa F CSI Psb F CSI Psc F. */
  183. /*!< Parameter String */
  184. /*!< A string of parameters separated by a semicolon -> ; */
  185. /*!< Default */
  186. /*!< A function-dependent value that is assumed when no explicit value, */
  187. /*!< or a value of 0, is specified. */
  188. /*!< F -> Final character */
  189. /*!< A character whose bit combination terminates an escape or control */
  190. /*!< sequence. */
  191. /*!< */
  192. /*!< <esc> c -> RIS Reset to initial State */
  193. /*!< <esc> N -> SS2 Single Shift Select of G2 Character Set */
  194. /*!< <esc> O -> SS3 Single Shift Select of G3 Character Set */
  195. /*!< <esc> P -> DCS Device Control String */
  196. /*!< <esc> [ -> CSI Control Sequence Introducer */
  197. /*!< <esc> \ -> ST String Terminator */
  198. /*!< <esc> ] -> OSC Operating System Command */
  199. /*!< */
  200. /*!< CSI Ps A -> CUU Cursor Up Cursor Up Ps Times */
  201. /*!< CSI Ps B -> CUD Cursor Down Cursor Down Ps Times */
  202. /*!< CSI Ps C -> CUF Cursor Forward Cursor Forward Ps Times */
  203. /*!< CSI Ps D -> CUB Cursor Back Cursor Backward Ps Times */
  204. /*!< CSI Ps E -> CNL Cursor Next Line Cursor Next Line Ps Times */
  205. /*!< CSI Ps F -> CPL Cursor Previous Line Cursor Previous Line Ps Times */
  206. /*!< CSI Ps G -> CHA Cursor Horizontal Absolute Cursor Character Absolute [column] */
  207. /*!< CSI Ps ; Ps H -> CUP Cursor Position Cursor Position [row;column] */
  208. /*!< CSI Ps J -> ED Erase in Display */
  209. /*!< Ps = 0 -> Erase Below (default) */
  210. /*!< Ps = 1 -> Erase Above */
  211. /*!< Ps = 2 -> Erase All */
  212. /*!< Ps = 3 -> Erase Saved Lines (xterm) */
  213. /*!< CSI Ps K -> EL Erase in Line */
  214. /*!< Ps = 0 -> Erase to Right (default) */
  215. /*!< Ps = 1 -> Erase to Left */
  216. /*!< Ps = 2 -> Erase All */
  217. /*!< CSI Ps L -> IL Insert Line Insert Ps Lines */
  218. /*!< CSI Ps M -> DL Delete Line Delete Ps Lines */
  219. /*!< CSI Ps S -> SU Scroll Up Scroll up Ps lines */
  220. /*!< CSI Ps T -> SD Scroll Down Scroll down Ps lines */
  221. /*!< CSI Ps n -> DSR Device Status Report */
  222. /*!< Ps = 5 -> Status Report CSI 0 n */
  223. /*!< Ps = 6 -> Report Cursor Position [row;column] as CSI r ; c R */
  224. /*!< CSI s -> SCP Save Current Cursor Position */
  225. /*!< CSI u -> RCP Restore Saved Cursor Position */
  226. /*!< CSI Ps t -> WM Window manipulation */
  227. /*!< Ps = 18 -> Report the size of the text area in characters */
  228. /*!< as CSI 8 ; height ; width t */
  229. /*!< CSI ? Ps h -> DECSET DEC Private Mode Set */
  230. /*!< Ps = 47 -> UUse Alternate Screen Buffer */
  231. /*!< CSI ? Ps l -> DECRST DEC Private Mode Reset */
  232. /*!< Ps = 47 -> Use Normal Screen Buffer */
  233. #ifndef CHRY_READLINE_KEYCODE_H
  234. #define CHRY_READLINE_KEYCODE_H
  235. #ifdef __cplusplus
  236. extern "C" {
  237. #endif
  238. enum {
  239. /*!< C0 control codes for general use */
  240. CHRY_READLINE_C0_NUL = 0x00, /*!< Null \0 */
  241. CHRY_READLINE_C0_SOH = 0x01, /*!< Start of Heading */
  242. CHRY_READLINE_C0_STX = 0x02, /*!< Start of Text */
  243. CHRY_READLINE_C0_ETX = 0x03, /*!< End of Text */
  244. CHRY_READLINE_C0_EOT = 0x04, /*!< End of Transmission */
  245. CHRY_READLINE_C0_ENQ = 0x05, /*!< Enquiry */
  246. CHRY_READLINE_C0_ACK = 0x06, /*!< Acknowledge */
  247. CHRY_READLINE_C0_BEL = 0x07, /*!< Bell, Alert \a */
  248. CHRY_READLINE_C0_BS = 0x08, /*!< Backspace \b */
  249. CHRY_READLINE_C0_HT = 0x09, /*!< Horizontal Tabulation \t */
  250. CHRY_READLINE_C0_LF = 0x0A, /*!< Line Feed \n */
  251. CHRY_READLINE_C0_VT = 0x0B, /*!< Vertical Tabulation \v */
  252. CHRY_READLINE_C0_FF = 0x0C, /*!< Form Feed \f */
  253. CHRY_READLINE_C0_CR = 0x0D, /*!< Carriage Return \r */
  254. CHRY_READLINE_C0_SO = 0x0E, /*!< Shift Out */
  255. CHRY_READLINE_C0_SI = 0x0F, /*!< Shift In */
  256. CHRY_READLINE_C0_DLE = 0x10, /*!< Data Link Escape */
  257. CHRY_READLINE_C0_DC1 = 0x11, /*!< Device Control One XON */
  258. CHRY_READLINE_C0_DC2 = 0x12, /*!< Device Control Two */
  259. CHRY_READLINE_C0_DC3 = 0x13, /*!< Device Control Three XOFF */
  260. CHRY_READLINE_C0_DC4 = 0x14, /*!< Device Control Four */
  261. CHRY_READLINE_C0_NAK = 0x15, /*!< Negative Acknowledge */
  262. CHRY_READLINE_C0_SYN = 0x16, /*!< Synchronous Idle */
  263. CHRY_READLINE_C0_ETB = 0x17, /*!< End of Transmission Block */
  264. CHRY_READLINE_C0_CAN = 0x18, /*!< Cancel */
  265. CHRY_READLINE_C0_EM = 0x19, /*!< End of medium */
  266. CHRY_READLINE_C0_SUB = 0x1A, /*!< Substitute */
  267. CHRY_READLINE_C0_ESC = 0x1B, /*!< Escape \e */
  268. CHRY_READLINE_C0_FS = 0x1C, /*!< File Separator */
  269. CHRY_READLINE_C0_GS = 0x1D, /*!< Group Separator */
  270. CHRY_READLINE_C0_RS = 0x1E, /*!< Record Separator */
  271. CHRY_READLINE_C0_US = 0x1F, /*!< Unit Separator */
  272. /*!< While not technically part of the C0 control character range, the */
  273. /*!< following two characters are defined in ISO/IEC 2022 as always being */
  274. /*!< available regardless of which sets of control characters and graphics */
  275. /*!< characters have been registered. They can be thought of as having some */
  276. /*!< characteristics of control characters. */
  277. CHRY_READLINE_C0_SP = 0x20, /*!< Space */
  278. CHRY_READLINE_G0_BEG = 0x20, /*!< G0 Code Start */
  279. CHRY_READLINE_G0_END = 0x7E, /*!< G0 Code End */
  280. CHRY_READLINE_C0_DEL = 0x7F, /*!< Delete */
  281. /*!< Not support 8bit codes */
  282. };
  283. enum {
  284. CHRY_READLINE_EXEC_NUL = 0, /*!< Null */
  285. CHRY_READLINE_EXEC_CLR, /*!< Clear screen refresh line */
  286. CHRY_READLINE_EXEC_NLN, /*!< Newline */
  287. CHRY_READLINE_EXEC_ALN, /*!< Abortline */
  288. CHRY_READLINE_EXEC_DEL, /*!< Delete character */
  289. CHRY_READLINE_EXEC_BS, /*!< Backspace character */
  290. CHRY_READLINE_EXEC_MVRT, /*!< Move Right */
  291. CHRY_READLINE_EXEC_MVLT, /*!< Move Left */
  292. CHRY_READLINE_EXEC_MVED, /*!< Move End */
  293. CHRY_READLINE_EXEC_MVHM, /*!< Move Home */
  294. CHRY_READLINE_EXEC_NXTH, /*!< Next History */
  295. CHRY_READLINE_EXEC_PRVH, /*!< Prev History */
  296. CHRY_READLINE_EXEC_DLWD, /*!< Delete prev word */
  297. CHRY_READLINE_EXEC_DHLN, /*!< Delete whole line */
  298. CHRY_READLINE_EXEC_DELN, /*!< Delete cursor to end line */
  299. CHRY_READLINE_EXEC_CPLT, /*!< Complete */
  300. CHRY_READLINE_EXEC_ACPLT, /*!< Autocomplete or space */
  301. CHRY_READLINE_EXEC_SWNM, /*!< Switch to Normal Screen */
  302. CHRY_READLINE_EXEC_HELP, /*!< Show help */
  303. CHRY_READLINE_EXEC_EOF_, /*!< End of file */
  304. CHRY_READLINE_EXEC_SIGINT_, /*!< SIGINT */
  305. CHRY_READLINE_EXEC_EOF, /*!< End of file */
  306. CHRY_READLINE_EXEC_SIGINT, /*!< SIGINT */
  307. CHRY_READLINE_EXEC_SIGQUIT, /*!< SIGQUIT */
  308. CHRY_READLINE_EXEC_SIGCONT, /*!< SIGTCONT */
  309. CHRY_READLINE_EXEC_SIGSTOP, /*!< SIGSTOP */
  310. CHRY_READLINE_EXEC_SIGTSTP, /*!< SIGTSTP */
  311. CHRY_READLINE_EXEC_F1, /*!< Fucntion 1 */
  312. CHRY_READLINE_EXEC_F2, /*!< Fucntion 2 */
  313. CHRY_READLINE_EXEC_F3, /*!< Fucntion 3 */
  314. CHRY_READLINE_EXEC_F4, /*!< Fucntion 4 */
  315. CHRY_READLINE_EXEC_F5, /*!< Fucntion 5 */
  316. CHRY_READLINE_EXEC_F6, /*!< Fucntion 6 */
  317. CHRY_READLINE_EXEC_F7, /*!< Fucntion 7 */
  318. CHRY_READLINE_EXEC_F8, /*!< Fucntion 8 */
  319. CHRY_READLINE_EXEC_F9, /*!< Fucntion 9 */
  320. CHRY_READLINE_EXEC_F10, /*!< Fucntion 10 */
  321. CHRY_READLINE_EXEC_F11, /*!< Fucntion 11 */
  322. CHRY_READLINE_EXEC_F12, /*!< Fucntion 12 */
  323. CHRY_READLINE_EXEC_USER, /*!< User Event Start */
  324. CHRY_READLINE_EXEC_END = 255, /*!< Max Value is 255 */
  325. };
  326. enum {
  327. CHRY_READLINE_CTRLMAP_A = 1, /*!< defalut is MVHM */
  328. CHRY_READLINE_CTRLMAP_B, /*!< default is MVLT */
  329. CHRY_READLINE_CTRLMAP_C, /*!< default is ALN */
  330. CHRY_READLINE_CTRLMAP_D, /*!< default is DEL */
  331. CHRY_READLINE_CTRLMAP_E, /*!< default is MVED */
  332. CHRY_READLINE_CTRLMAP_F, /*!< default is MVRT */
  333. CHRY_READLINE_CTRLMAP_G, /*!< default is ALN */
  334. CHRY_READLINE_CTRLMAP_H, /*!< default is BS */
  335. CHRY_READLINE_CTRLMAP_I, /*!< default is CPLT */
  336. CHRY_READLINE_CTRLMAP_J, /*!< default is NLN */
  337. CHRY_READLINE_CTRLMAP_K, /*!< default is DELN */
  338. CHRY_READLINE_CTRLMAP_L, /*!< default is CLR */
  339. CHRY_READLINE_CTRLMAP_M, /*!< default is NLN */
  340. CHRY_READLINE_CTRLMAP_N, /*!< default is NXTH */
  341. CHRY_READLINE_CTRLMAP_O, /*!< default is NLN */
  342. CHRY_READLINE_CTRLMAP_P, /*!< default is PRVH */
  343. CHRY_READLINE_CTRLMAP_Q, /*!< default is NUL */
  344. CHRY_READLINE_CTRLMAP_R, /*!< default is NUL */
  345. CHRY_READLINE_CTRLMAP_S, /*!< default is NUL */
  346. CHRY_READLINE_CTRLMAP_T, /*!< default is NUL */
  347. CHRY_READLINE_CTRLMAP_U, /*!< default is DHLN */
  348. CHRY_READLINE_CTRLMAP_V, /*!< default is NUL */
  349. CHRY_READLINE_CTRLMAP_W, /*!< default is DLWD */
  350. CHRY_READLINE_CTRLMAP_X, /*!< default is NUL */
  351. CHRY_READLINE_CTRLMAP_Y, /*!< default is NUL */
  352. CHRY_READLINE_CTRLMAP_Z, /*!< default is ALN */
  353. };
  354. enum {
  355. CHRY_READLINE_ALTMAP_A = 0, /*!< default is NUL */
  356. CHRY_READLINE_ALTMAP_B, /*!< default is NUL */
  357. CHRY_READLINE_ALTMAP_C, /*!< default is NUL */
  358. CHRY_READLINE_ALTMAP_D, /*!< default is NUL */
  359. CHRY_READLINE_ALTMAP_E, /*!< default is NUL */
  360. CHRY_READLINE_ALTMAP_F, /*!< default is NUL */
  361. CHRY_READLINE_ALTMAP_G, /*!< default is NUL */
  362. CHRY_READLINE_ALTMAP_H, /*!< default is NUL */
  363. CHRY_READLINE_ALTMAP_I, /*!< default is NUL */
  364. CHRY_READLINE_ALTMAP_J, /*!< default is NUL */
  365. CHRY_READLINE_ALTMAP_K, /*!< default is NUL */
  366. CHRY_READLINE_ALTMAP_L, /*!< default is NUL */
  367. CHRY_READLINE_ALTMAP_M, /*!< default is NUL */
  368. CHRY_READLINE_ALTMAP_N, /*!< default is NUL */
  369. CHRY_READLINE_ALTMAP_O, /*!< default is NUL */
  370. CHRY_READLINE_ALTMAP_P, /*!< default is NUL */
  371. CHRY_READLINE_ALTMAP_Q, /*!< default is NUL */
  372. CHRY_READLINE_ALTMAP_R, /*!< default is NUL */
  373. CHRY_READLINE_ALTMAP_S, /*!< default is NUL */
  374. CHRY_READLINE_ALTMAP_T, /*!< default is NUL */
  375. CHRY_READLINE_ALTMAP_U, /*!< default is NUL */
  376. CHRY_READLINE_ALTMAP_V, /*!< default is NUL */
  377. CHRY_READLINE_ALTMAP_W, /*!< default is NUL */
  378. CHRY_READLINE_ALTMAP_X, /*!< default is NUL */
  379. CHRY_READLINE_ALTMAP_Y, /*!< default is NUL */
  380. CHRY_READLINE_ALTMAP_Z, /*!< default is NUL */
  381. };
  382. #ifdef __cplusplus
  383. }
  384. #endif
  385. #endif