1/* generated by MKkeyname.awk */ 2 3#include <curses.priv.h> 4#include <tic.h> 5#include <term_entry.h> 6 7const struct kn _nc_key_names[] = { 8 { "KEY_A1", KEY_A1 }, 9 { "KEY_A3", KEY_A3 }, 10 { "KEY_B2", KEY_B2 }, 11 { "KEY_BACKSPACE", KEY_BACKSPACE }, 12 { "KEY_BEG", KEY_BEG }, 13 { "KEY_BREAK", KEY_BREAK }, 14 { "KEY_BTAB", KEY_BTAB }, 15 { "KEY_C1", KEY_C1 }, 16 { "KEY_C3", KEY_C3 }, 17 { "KEY_CANCEL", KEY_CANCEL }, 18 { "KEY_CATAB", KEY_CATAB }, 19 { "KEY_CLEAR", KEY_CLEAR }, 20 { "KEY_CLOSE", KEY_CLOSE }, 21 { "KEY_COMMAND", KEY_COMMAND }, 22 { "KEY_COPY", KEY_COPY }, 23 { "KEY_CREATE", KEY_CREATE }, 24 { "KEY_CTAB", KEY_CTAB }, 25 { "KEY_DC", KEY_DC }, 26 { "KEY_DL", KEY_DL }, 27 { "KEY_DOWN", KEY_DOWN }, 28 { "KEY_EIC", KEY_EIC }, 29 { "KEY_END", KEY_END }, 30 { "KEY_ENTER", KEY_ENTER }, 31 { "KEY_EOL", KEY_EOL }, 32 { "KEY_EOS", KEY_EOS }, 33 { "KEY_EXIT", KEY_EXIT }, 34 { "KEY_F(0)", KEY_F(0) }, 35 { "KEY_F(1)", KEY_F(1) }, 36 { "KEY_F(10)", KEY_F(10) }, 37 { "KEY_F(11)", KEY_F(11) }, 38 { "KEY_F(12)", KEY_F(12) }, 39 { "KEY_F(13)", KEY_F(13) }, 40 { "KEY_F(14)", KEY_F(14) }, 41 { "KEY_F(15)", KEY_F(15) }, 42 { "KEY_F(16)", KEY_F(16) }, 43 { "KEY_F(17)", KEY_F(17) }, 44 { "KEY_F(18)", KEY_F(18) }, 45 { "KEY_F(19)", KEY_F(19) }, 46 { "KEY_F(2)", KEY_F(2) }, 47 { "KEY_F(20)", KEY_F(20) }, 48 { "KEY_F(21)", KEY_F(21) }, 49 { "KEY_F(22)", KEY_F(22) }, 50 { "KEY_F(23)", KEY_F(23) }, 51 { "KEY_F(24)", KEY_F(24) }, 52 { "KEY_F(25)", KEY_F(25) }, 53 { "KEY_F(26)", KEY_F(26) }, 54 { "KEY_F(27)", KEY_F(27) }, 55 { "KEY_F(28)", KEY_F(28) }, 56 { "KEY_F(29)", KEY_F(29) }, 57 { "KEY_F(3)", KEY_F(3) }, 58 { "KEY_F(30)", KEY_F(30) }, 59 { "KEY_F(31)", KEY_F(31) }, 60 { "KEY_F(32)", KEY_F(32) }, 61 { "KEY_F(33)", KEY_F(33) }, 62 { "KEY_F(34)", KEY_F(34) }, 63 { "KEY_F(35)", KEY_F(35) }, 64 { "KEY_F(36)", KEY_F(36) }, 65 { "KEY_F(37)", KEY_F(37) }, 66 { "KEY_F(38)", KEY_F(38) }, 67 { "KEY_F(39)", KEY_F(39) }, 68 { "KEY_F(4)", KEY_F(4) }, 69 { "KEY_F(40)", KEY_F(40) }, 70 { "KEY_F(41)", KEY_F(41) }, 71 { "KEY_F(42)", KEY_F(42) }, 72 { "KEY_F(43)", KEY_F(43) }, 73 { "KEY_F(44)", KEY_F(44) }, 74 { "KEY_F(45)", KEY_F(45) }, 75 { "KEY_F(46)", KEY_F(46) }, 76 { "KEY_F(47)", KEY_F(47) }, 77 { "KEY_F(48)", KEY_F(48) }, 78 { "KEY_F(49)", KEY_F(49) }, 79 { "KEY_F(5)", KEY_F(5) }, 80 { "KEY_F(50)", KEY_F(50) }, 81 { "KEY_F(51)", KEY_F(51) }, 82 { "KEY_F(52)", KEY_F(52) }, 83 { "KEY_F(53)", KEY_F(53) }, 84 { "KEY_F(54)", KEY_F(54) }, 85 { "KEY_F(55)", KEY_F(55) }, 86 { "KEY_F(56)", KEY_F(56) }, 87 { "KEY_F(57)", KEY_F(57) }, 88 { "KEY_F(58)", KEY_F(58) }, 89 { "KEY_F(59)", KEY_F(59) }, 90 { "KEY_F(6)", KEY_F(6) }, 91 { "KEY_F(60)", KEY_F(60) }, 92 { "KEY_F(61)", KEY_F(61) }, 93 { "KEY_F(62)", KEY_F(62) }, 94 { "KEY_F(63)", KEY_F(63) }, 95 { "KEY_F(7)", KEY_F(7) }, 96 { "KEY_F(8)", KEY_F(8) }, 97 { "KEY_F(9)", KEY_F(9) }, 98 { "KEY_FIND", KEY_FIND }, 99 { "KEY_HELP", KEY_HELP }, 100 { "KEY_HOME", KEY_HOME }, 101 { "KEY_IC", KEY_IC }, 102 { "KEY_IL", KEY_IL }, 103 { "KEY_LEFT", KEY_LEFT }, 104 { "KEY_LL", KEY_LL }, 105 { "KEY_MARK", KEY_MARK }, 106 { "KEY_MESSAGE", KEY_MESSAGE }, 107 { "KEY_MOUSE", KEY_MOUSE }, 108 { "KEY_MOVE", KEY_MOVE }, 109 { "KEY_NEXT", KEY_NEXT }, 110 { "KEY_NPAGE", KEY_NPAGE }, 111 { "KEY_OPEN", KEY_OPEN }, 112 { "KEY_OPTIONS", KEY_OPTIONS }, 113 { "KEY_PPAGE", KEY_PPAGE }, 114 { "KEY_PREVIOUS", KEY_PREVIOUS }, 115 { "KEY_PRINT", KEY_PRINT }, 116 { "KEY_REDO", KEY_REDO }, 117 { "KEY_REFERENCE", KEY_REFERENCE }, 118 { "KEY_REFRESH", KEY_REFRESH }, 119 { "KEY_REPLACE", KEY_REPLACE }, 120 { "KEY_RESET", KEY_RESET }, 121 { "KEY_RESIZE", KEY_RESIZE }, 122 { "KEY_RESTART", KEY_RESTART }, 123 { "KEY_RESUME", KEY_RESUME }, 124 { "KEY_RIGHT", KEY_RIGHT }, 125 { "KEY_SAVE", KEY_SAVE }, 126 { "KEY_SBEG", KEY_SBEG }, 127 { "KEY_SCANCEL", KEY_SCANCEL }, 128 { "KEY_SCOMMAND", KEY_SCOMMAND }, 129 { "KEY_SCOPY", KEY_SCOPY }, 130 { "KEY_SCREATE", KEY_SCREATE }, 131 { "KEY_SDC", KEY_SDC }, 132 { "KEY_SDL", KEY_SDL }, 133 { "KEY_SELECT", KEY_SELECT }, 134 { "KEY_SEND", KEY_SEND }, 135 { "KEY_SEOL", KEY_SEOL }, 136 { "KEY_SEXIT", KEY_SEXIT }, 137 { "KEY_SF", KEY_SF }, 138 { "KEY_SFIND", KEY_SFIND }, 139 { "KEY_SHELP", KEY_SHELP }, 140 { "KEY_SHOME", KEY_SHOME }, 141 { "KEY_SIC", KEY_SIC }, 142 { "KEY_SLEFT", KEY_SLEFT }, 143 { "KEY_SMESSAGE", KEY_SMESSAGE }, 144 { "KEY_SMOVE", KEY_SMOVE }, 145 { "KEY_SNEXT", KEY_SNEXT }, 146 { "KEY_SOPTIONS", KEY_SOPTIONS }, 147 { "KEY_SPREVIOUS", KEY_SPREVIOUS }, 148 { "KEY_SPRINT", KEY_SPRINT }, 149 { "KEY_SR", KEY_SR }, 150 { "KEY_SREDO", KEY_SREDO }, 151 { "KEY_SREPLACE", KEY_SREPLACE }, 152 { "KEY_SRESET", KEY_SRESET }, 153 { "KEY_SRIGHT", KEY_SRIGHT }, 154 { "KEY_SRSUME", KEY_SRSUME }, 155 { "KEY_SSAVE", KEY_SSAVE }, 156 { "KEY_SSUSPEND", KEY_SSUSPEND }, 157 { "KEY_STAB", KEY_STAB }, 158 { "KEY_SUNDO", KEY_SUNDO }, 159 { "KEY_SUSPEND", KEY_SUSPEND }, 160 { "KEY_UNDO", KEY_UNDO }, 161 { "KEY_UP", KEY_UP }, 162 { 0, 0 }}; 163 164NCURSES_EXPORT(NCURSES_CONST char *) keyname (int c) 165{ 166 static char **table; 167 int i; 168 char name[20]; 169 char *p; 170 NCURSES_CONST char *result = 0; 171 172 if (c == -1) { 173 result = "-1"; 174 } else { 175 for (i = 0; _nc_key_names[i].name != 0; i++) { 176 if (_nc_key_names[i].code == c) { 177 result = (NCURSES_CONST char *)_nc_key_names[i].name; 178 break; 179 } 180 } 181 182 if (result == 0 && (c >= 0 && c < 256)) { 183 if (table == 0) 184 table = typeCalloc(char *, 256); 185 if (table != 0) { 186 if (table[c] == 0) { 187 p = name; 188 if (c >= 128) { 189 strcpy(p, "M-"); 190 p += 2; 191 c -= 128; 192 } 193 if (c < 32) 194 sprintf(p, "^%c", c + '@'); 195 else if (c == 127) 196 strcpy(p, "^?"); 197 else 198 sprintf(p, "%c", c); 199 table[c] = strdup(name); 200 } 201 result = table[c]; 202 } 203#if NCURSES_EXT_FUNCS && NCURSES_XNAMES 204 } else if (result == 0 && cur_term != 0) { 205 int j, k; 206 char * bound; 207 TERMTYPE *tp = &(cur_term->type); 208 int save_trace = _nc_tracing; 209 210 _nc_tracing = 0; /* prevent recursion via keybound() */ 211 for (j = 0; (bound = keybound(c, j)) != 0; ++j) { 212 for(k = STRCOUNT; k < NUM_STRINGS(tp); k++) { 213 if (tp->Strings[k] != 0 && !strcmp(bound, tp->Strings[k])) { 214 result = ExtStrname(tp, k, strnames); 215 break; 216 } 217 } 218 if (result != 0) 219 break; 220 } 221 _nc_tracing = save_trace; 222#endif 223 } 224 } 225 return result; 226} 227 228#if USE_WIDEC_SUPPORT 229NCURSES_EXPORT(NCURSES_CONST char *) key_name (wchar_t c) 230{ 231 NCURSES_CONST char *result = keyname((int)c); 232 if (!strncmp(result, "M-", 2)) result = 0; 233 return result; 234} 235#endif 236