1/*$Header: /p/tcsh/cvsroot/tcsh/win32/nt.bind.c,v 1.6 2006/03/05 08:59:36 amold Exp $*/ 2/*- 3 * Copyright (c) 1980, 1991 The Regents of the University of California. 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 1. Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * 3. Neither the name of the University nor the names of its contributors 15 * may be used to endorse or promote products derived from this software 16 * without specific prior written permission. 17 * 18 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 19 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 22 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28 * SUCH DAMAGE. 29 */ 30#include "sh.h" 31#include "ed.h" 32#include "ed.defns.h" 33 34 35KEYCMD CcEmacsMap[] = { 36 /* keymap table, each index into above tbl; should be 37 (256+extra NT bindings)*sizeof(KEYCMD) bytes long */ 38 39 F_SET_MARK, /* ^@ */ 40 F_TOBEG, /* ^A */ 41 F_CHARBACK, /* ^B */ 42 F_TTY_INT, /* ^C */ 43 F_DELNEXT_LIST_EOF, /* ^D */ 44 F_TOEND, /* ^E */ 45 F_CHARFWD, /* ^F */ 46 F_UNASSIGNED, /* ^G */ 47 F_DELPREV, /* ^H */ 48 F_COMPLETE, /* ^I */ 49 F_NEWLINE, /* ^J */ 50 F_KILLEND, /* ^K */ 51 F_CLEARDISP, /* ^L */ 52 F_NEWLINE, /* ^M */ 53 F_DOWN_HIST, /* ^N */ 54 F_TTY_FLUSHO, /* ^O */ 55 F_UP_HIST, /* ^P */ 56 F_TTY_STARTO, /* ^Q */ 57 F_REDISP, /* ^R */ 58 F_TTY_STOPO, /* ^S */ 59 F_CHARSWITCH, /* ^T */ 60 F_KILLALL, /* ^U */ 61 F_QUOTE, /* ^V */ 62 F_KILLREGION, /* ^W */ 63 F_XKEY, /* ^X */ 64 F_YANK_KILL, /* ^Y */ 65 F_TTY_TSUSP, /* ^Z */ 66 F_METANEXT, /* ^[ */ 67 F_TTY_QUIT, /* ^\ */ 68 F_TTY_DSUSP, /* ^] */ 69 F_UNASSIGNED, /* ^^ */ 70 F_UNASSIGNED, /* ^_ */ 71 F_INSERT, /* SPACE */ 72 F_INSERT, /* ! */ 73 F_INSERT, /* " */ 74 F_INSERT, /* # */ 75 F_INSERT, /* $ */ 76 F_INSERT, /* % */ 77 F_INSERT, /* & */ 78 F_INSERT, /* ' */ 79 F_INSERT, /* ( */ 80 F_INSERT, /* ) */ 81 F_INSERT, /* * */ 82 F_INSERT, /* + */ 83 F_INSERT, /* , */ 84 F_INSERT, /* - */ 85 F_INSERT, /* . */ 86 F_INSERT, /* / */ 87 F_DIGIT, /* 0 */ 88 F_DIGIT, /* 1 */ 89 F_DIGIT, /* 2 */ 90 F_DIGIT, /* 3 */ 91 F_DIGIT, /* 4 */ 92 F_DIGIT, /* 5 */ 93 F_DIGIT, /* 6 */ 94 F_DIGIT, /* 7 */ 95 F_DIGIT, /* 8 */ 96 F_DIGIT, /* 9 */ 97 F_INSERT, /* : */ 98 F_INSERT, /* ; */ 99 F_INSERT, /* < */ 100 F_INSERT, /* = */ 101 F_INSERT, /* > */ 102 F_INSERT, /* ? */ 103 F_INSERT, /* @ */ 104 F_INSERT, /* A */ 105 F_INSERT, /* B */ 106 F_INSERT, /* C */ 107 F_INSERT, /* D */ 108 F_INSERT, /* E */ 109 F_INSERT, /* F */ 110 F_INSERT, /* G */ 111 F_INSERT, /* H */ 112 F_INSERT, /* I */ 113 F_INSERT, /* J */ 114 F_INSERT, /* K */ 115 F_INSERT, /* L */ 116 F_INSERT, /* M */ 117 F_INSERT, /* N */ 118 F_INSERT, /* O */ 119 F_INSERT, /* P */ 120 F_INSERT, /* Q */ 121 F_INSERT, /* R */ 122 F_INSERT, /* S */ 123 F_INSERT, /* T */ 124 F_INSERT, /* U */ 125 F_INSERT, /* V */ 126 F_INSERT, /* W */ 127 F_INSERT, /* X */ 128 F_INSERT, /* Y */ 129 F_INSERT, /* Z */ 130 F_INSERT, /* [ */ 131 F_INSERT, /* \ */ 132 F_INSERT, /* ] */ 133 F_INSERT, /* ^ */ 134 F_INSERT, /* _ */ 135 F_INSERT, /* ` */ 136 F_INSERT, /* a */ 137 F_INSERT, /* b */ 138 F_INSERT, /* c */ 139 F_INSERT, /* d */ 140 F_INSERT, /* e */ 141 F_INSERT, /* f */ 142 F_INSERT, /* g */ 143 F_INSERT, /* h */ 144 F_INSERT, /* i */ 145 F_INSERT, /* j */ 146 F_INSERT, /* k */ 147 F_INSERT, /* l */ 148 F_INSERT, /* m */ 149 F_INSERT, /* n */ 150 F_INSERT, /* o */ 151 F_INSERT, /* p */ 152 F_INSERT, /* q */ 153 F_INSERT, /* r */ 154 F_INSERT, /* s */ 155 F_INSERT, /* t */ 156 F_INSERT, /* u */ 157 F_INSERT, /* v */ 158 F_INSERT, /* w */ 159 F_INSERT, /* x */ 160 F_INSERT, /* y */ 161 F_INSERT, /* z */ 162 F_INSERT, /* { */ 163 F_INSERT, /* | */ 164 F_INSERT, /* } */ 165 F_INSERT, /* ~ */ 166 F_DELPREV, /* ^? */ 167 F_UNASSIGNED, /* M-^@ */ 168 F_UNASSIGNED, /* M-^A */ 169 F_UNASSIGNED, /* M-^B */ 170 F_UNASSIGNED, /* M-^C */ 171 F_LIST_CHOICES, /* M-^D */ 172 F_UNASSIGNED, /* M-^E */ 173 F_UNASSIGNED, /* M-^F */ 174 F_UNASSIGNED, /* M-^G */ 175 F_DELWORDPREV, /* M-^H */ 176 F_COMPLETE, /* M-^I */ 177 F_UNASSIGNED, /* M-^J */ 178 F_UNASSIGNED, /* M-^K */ 179 F_CLEARDISP, /* M-^L */ 180 F_UNASSIGNED, /* M-^M */ 181 F_UNASSIGNED, /* M-^N */ 182 F_UNASSIGNED, /* M-^O */ 183 F_UNASSIGNED, /* M-^P */ 184 F_UNASSIGNED, /* M-^Q */ 185 F_UNASSIGNED, /* M-^R */ 186 F_UNASSIGNED, /* M-^S */ 187 F_UNASSIGNED, /* M-^T */ 188 F_UNASSIGNED, /* M-^U */ 189 F_UNASSIGNED, /* M-^V */ 190 F_UNASSIGNED, /* M-^W */ 191 F_UNASSIGNED, /* M-^X */ 192 F_UNASSIGNED, /* M-^Y */ 193 F_RUN_FG_EDITOR, /* M-^Z */ 194 F_COMPLETE, /* M-^[ */ 195 F_UNASSIGNED, /* M-^\ */ 196 F_UNASSIGNED, /* M-^] */ 197 F_UNASSIGNED, /* M-^^ */ 198 F_COPYPREV, /* M-^_ */ 199 F_EXPAND_HISTORY, /* M-SPACE */ 200 F_EXPAND_HISTORY, /* M-! */ 201 F_UNASSIGNED, /* M-" */ 202 F_UNASSIGNED, /* M-# */ 203 F_CORRECT_L, /* M-$ */ 204 F_UNASSIGNED, /* M-% */ 205 F_UNASSIGNED, /* M-& */ 206 F_UNASSIGNED, /* M-' */ 207 F_UNASSIGNED, /* M-( */ 208 F_UNASSIGNED, /* M-) */ 209 F_UNASSIGNED, /* M-* */ 210 F_UNASSIGNED, /* M-+ */ 211 F_UNASSIGNED, /* M-, */ 212 F_UNASSIGNED, /* M-- */ 213 F_UNASSIGNED, /* M-. */ 214 F_DABBREV_EXPAND, /* M-/ */ 215 F_ARGDIGIT, /* M-0 */ 216 F_ARGDIGIT, /* M-1 */ 217 F_ARGDIGIT, /* M-2 */ 218 F_ARGDIGIT, /* M-3 */ 219 F_ARGDIGIT, /* M-4 */ 220 F_ARGDIGIT, /* M-5 */ 221 F_ARGDIGIT, /* M-6 */ 222 F_ARGDIGIT, /* M-7 */ 223 F_ARGDIGIT, /* M-8 */ 224 F_ARGDIGIT, /* M-9 */ 225 F_UNASSIGNED, /* M-: */ 226 F_UNASSIGNED, /* M-; */ 227 F_UNASSIGNED, /* M-< */ 228 F_UNASSIGNED, /* M-= */ 229 F_UNASSIGNED, /* M-> */ 230 F_WHICH, /* M-? */ 231 F_UNASSIGNED, /* M-@ */ 232 F_UNASSIGNED, /* M-A */ 233 F_WORDBACK, /* M-B */ 234 F_CASECAPITAL, /* M-C */ 235 F_DELWORDNEXT, /* M-D */ 236 F_UNASSIGNED, /* M-E */ 237 F_WORDFWD, /* M-F */ 238 F_UNASSIGNED, /* M-G */ 239 F_HELPME, /* M-H */ 240 F_UNASSIGNED, /* M-I */ 241 F_UNASSIGNED, /* M-J */ 242 F_UNASSIGNED, /* M-K */ 243 F_CASELOWER, /* M-L */ 244 F_UNASSIGNED, /* M-M */ 245 F_DOWN_SEARCH_HIST, /* M-N */ 246 F_XKEY, /* M-O *//* extended key esc PWP Mar 88 */ 247 F_UP_SEARCH_HIST, /* M-P */ 248 F_UNASSIGNED, /* M-Q */ 249 F_TOGGLE_HIST, /* M-R */ 250 F_CORRECT, /* M-S */ 251 F_UNASSIGNED, /* M-T */ 252 F_CASEUPPER, /* M-U */ 253 F_UNASSIGNED, /* M-V */ 254 F_COPYREGION, /* M-W */ 255 F_UNASSIGNED, /* M-X */ 256 F_UNASSIGNED, /* M-Y */ 257 F_UNASSIGNED, /* M-Z */ 258 F_XKEY, /* M-[ *//* extended key esc -mf Oct 87 */ 259 F_UNASSIGNED, /* M-\ */ 260 F_UNASSIGNED, /* M-] */ 261 F_UNASSIGNED, /* M-^ */ 262 F_LAST_ITEM, /* M-_ */ 263 F_UNASSIGNED, /* M-` */ 264 F_UNASSIGNED, /* M-a */ 265 F_WORDBACK, /* M-b */ 266 F_CASECAPITAL, /* M-c */ 267 F_DELWORDNEXT, /* M-d */ 268 F_UNASSIGNED, /* M-e */ 269 F_WORDFWD, /* M-f */ 270 F_UNASSIGNED, /* M-g */ 271 F_HELPME, /* M-h */ 272 F_UNASSIGNED, /* M-i */ 273 F_UNASSIGNED, /* M-j */ 274 F_UNASSIGNED, /* M-k */ 275 F_CASELOWER, /* M-l */ 276 F_UNASSIGNED, /* M-m */ 277 F_DOWN_SEARCH_HIST, /* M-n */ 278 F_UNASSIGNED, /* M-o */ 279 F_UP_SEARCH_HIST, /* M-p */ 280 F_UNASSIGNED, /* M-q */ 281 F_TOGGLE_HIST, /* M-r */ 282 F_CORRECT, /* M-s */ 283 F_UNASSIGNED, /* M-t */ 284 F_CASEUPPER, /* M-u */ 285 F_UNASSIGNED, /* M-v */ 286 F_COPYREGION, /* M-w */ 287 F_UNASSIGNED, /* M-x */ 288 F_UNASSIGNED, /* M-y */ 289 F_UNASSIGNED, /* M-z */ 290 F_UNASSIGNED, /* M-{ */ 291 F_UNASSIGNED, /* M-| */ 292 F_UNASSIGNED, /* M-} */ 293 F_UNASSIGNED, /* M-~ */ 294 F_DELWORDPREV, /* M-^? */ 295 /* Extra keys begin here */ 296 F_UNASSIGNED, /* f-1 */ 297 F_UNASSIGNED, /* f-2 */ 298 F_UNASSIGNED, /* f-3 */ 299 F_UNASSIGNED, /* f-4 */ 300 F_UNASSIGNED, /* f-5 */ 301 F_UNASSIGNED, /* f-6 */ 302 F_UNASSIGNED, /* f-7 */ 303 F_UNASSIGNED, /* f-8 */ 304 F_UNASSIGNED, /* f-9 */ 305 F_UNASSIGNED, /* f-10 */ 306 F_UNASSIGNED, /* f-11 */ 307 F_UNASSIGNED, /* f-12 */ 308 F_UNASSIGNED, /* f-13 */ 309 F_UNASSIGNED, /* f-14 */ 310 F_UNASSIGNED, /* f-15 */ 311 F_UNASSIGNED, /* f-16 */ 312 F_UNASSIGNED, /* f-17 */ 313 F_UNASSIGNED, /* f-18 */ 314 F_UNASSIGNED, /* f-19 */ 315 F_UNASSIGNED, /* f-20 */ 316 F_UNASSIGNED, /* f-21 */ 317 F_UNASSIGNED, /* f-22 */ 318 F_UNASSIGNED, /* f-23 */ 319 F_UNASSIGNED, /* f-24 */ 320 F_UNASSIGNED, /* PgUp */ 321 F_UNASSIGNED, /* PgDn */ 322 F_UNASSIGNED, /* end */ 323 F_UNASSIGNED, /* home */ 324 F_UNASSIGNED, /* LEFT */ 325 F_UNASSIGNED, /* UP */ 326 F_UNASSIGNED, /* RIGHT */ 327 F_UNASSIGNED, /* DOWN */ 328 F_UNASSIGNED, /* INS */ 329 F_UNASSIGNED, /* DEL */ 330 /* ctrl key mappings */ 331 F_UNASSIGNED, /* f-1 */ 332 F_UNASSIGNED, /* f-2 */ 333 F_UNASSIGNED, /* f-3 */ 334 F_UNASSIGNED, /* f-4 */ 335 F_UNASSIGNED, /* f-5 */ 336 F_UNASSIGNED, /* f-6 */ 337 F_UNASSIGNED, /* f-7 */ 338 F_UNASSIGNED, /* f-8 */ 339 F_UNASSIGNED, /* f-9 */ 340 F_UNASSIGNED, /* f-10 */ 341 F_UNASSIGNED, /* f-11 */ 342 F_UNASSIGNED, /* f-12 */ 343 F_UNASSIGNED, /* f-13 */ 344 F_UNASSIGNED, /* f-14 */ 345 F_UNASSIGNED, /* f-15 */ 346 F_UNASSIGNED, /* f-16 */ 347 F_UNASSIGNED, /* f-17 */ 348 F_UNASSIGNED, /* f-18 */ 349 F_UNASSIGNED, /* f-19 */ 350 F_UNASSIGNED, /* f-20 */ 351 F_UNASSIGNED, /* f-21 */ 352 F_UNASSIGNED, /* f-22 */ 353 F_UNASSIGNED, /* f-23 */ 354 F_UNASSIGNED, /* f-24 */ 355 F_UNASSIGNED, /* PgUp */ 356 F_UNASSIGNED, /* PgDn */ 357 F_UNASSIGNED, /* end */ 358 F_UNASSIGNED, /* home */ 359 F_UNASSIGNED, /* LEFT */ 360 F_UNASSIGNED, /* UP */ 361 F_UNASSIGNED, /* RIGHT */ 362 F_UNASSIGNED, /* DOWN */ 363 F_UNASSIGNED, /* INS */ 364 F_UNASSIGNED, /* DEL */ 365 366 /* alt key mappings */ 367 F_UNASSIGNED, /* f-1 */ 368 F_UNASSIGNED, /* f-2 */ 369 F_UNASSIGNED, /* f-3 */ 370 F_UNASSIGNED, /* f-4 */ 371 F_UNASSIGNED, /* f-5 */ 372 F_UNASSIGNED, /* f-6 */ 373 F_UNASSIGNED, /* f-7 */ 374 F_UNASSIGNED, /* f-8 */ 375 F_UNASSIGNED, /* f-9 */ 376 F_UNASSIGNED, /* f-10 */ 377 F_UNASSIGNED, /* f-11 */ 378 F_UNASSIGNED, /* f-12 */ 379 F_UNASSIGNED, /* f-13 */ 380 F_UNASSIGNED, /* f-14 */ 381 F_UNASSIGNED, /* f-15 */ 382 F_UNASSIGNED, /* f-16 */ 383 F_UNASSIGNED, /* f-17 */ 384 F_UNASSIGNED, /* f-18 */ 385 F_UNASSIGNED, /* f-19 */ 386 F_UNASSIGNED, /* f-20 */ 387 F_UNASSIGNED, /* f-21 */ 388 F_UNASSIGNED, /* f-22 */ 389 F_UNASSIGNED, /* f-23 */ 390 F_UNASSIGNED, /* f-24 */ 391 F_UNASSIGNED, /* PgUp */ 392 F_UNASSIGNED, /* PgDn */ 393 F_UNASSIGNED, /* end */ 394 F_UNASSIGNED, /* home */ 395 F_UNASSIGNED, /* LEFT */ 396 F_UNASSIGNED, /* UP */ 397 F_UNASSIGNED, /* RIGHT */ 398 F_UNASSIGNED, /* DOWN */ 399 F_UNASSIGNED, /* INS */ 400 F_UNASSIGNED, /* DEL */ 401 /* shift key mappings */ 402 F_UNASSIGNED, /* f-1 */ 403 F_UNASSIGNED, /* f-2 */ 404 F_UNASSIGNED, /* f-3 */ 405 F_UNASSIGNED, /* f-4 */ 406 F_UNASSIGNED, /* f-5 */ 407 F_UNASSIGNED, /* f-6 */ 408 F_UNASSIGNED, /* f-7 */ 409 F_UNASSIGNED, /* f-8 */ 410 F_UNASSIGNED, /* f-9 */ 411 F_UNASSIGNED, /* f-10 */ 412 F_UNASSIGNED, /* f-11 */ 413 F_UNASSIGNED, /* f-12 */ 414 F_UNASSIGNED, /* f-13 */ 415 F_UNASSIGNED, /* f-14 */ 416 F_UNASSIGNED, /* f-15 */ 417 F_UNASSIGNED, /* f-16 */ 418 F_UNASSIGNED, /* f-17 */ 419 F_UNASSIGNED, /* f-18 */ 420 F_UNASSIGNED, /* f-19 */ 421 F_UNASSIGNED, /* f-20 */ 422 F_UNASSIGNED, /* f-21 */ 423 F_UNASSIGNED, /* f-22 */ 424 F_UNASSIGNED, /* f-23 */ 425 F_UNASSIGNED, /* f-24 */ 426 F_UNASSIGNED, /* PgUp */ 427 F_UNASSIGNED, /* PgDn */ 428 F_UNASSIGNED, /* end */ 429 F_UNASSIGNED, /* home */ 430 F_UNASSIGNED, /* LEFT */ 431 F_UNASSIGNED, /* UP */ 432 F_UNASSIGNED, /* RIGHT */ 433 F_UNASSIGNED, /* DOWN */ 434 F_UNASSIGNED, /* INS */ 435 F_UNASSIGNED /* DEL */ 436}; 437 438/* 439 * keymap table for vi. Each index into above tbl; should be 440 * 256 entries long. Vi mode uses a sticky-extend to do command mode: 441 * insert mode characters are in the normal keymap, and command mode 442 * in the extended keymap. 443 */ 444KEYCMD CcViMap[] = { 445#ifdef KSHVI 446 F_UNASSIGNED, /* ^@ */ 447 F_INSERT, /* ^A */ 448 F_INSERT, /* ^B */ 449 F_INSERT, /* ^C */ 450 F_INSERT, /* ^D */ 451 F_INSERT, /* ^E */ 452 F_INSERT, /* ^F */ 453 F_INSERT, /* ^G */ 454 V_DELPREV, /* ^H */ /* BackSpace key */ 455 F_COMPLETE, /* ^I */ /* Tab Key */ 456 F_NEWLINE, /* ^J */ 457 F_INSERT, /* ^K */ 458 F_INSERT, /* ^L */ 459 F_NEWLINE, /* ^M */ 460 F_INSERT, /* ^N */ 461 F_INSERT, /* ^O */ 462 F_INSERT, /* ^P */ 463 F_TTY_STARTO, /* ^Q */ 464 F_INSERT, /* ^R */ 465 F_INSERT, /* ^S */ 466 F_INSERT, /* ^T */ 467 F_INSERT, /* ^U */ 468 F_QUOTE, /* ^V */ 469 F_DELWORDPREV, /* ^W */ /* Only until start edit pos */ 470 F_INSERT, /* ^X */ 471 F_INSERT, /* ^Y */ 472 F_INSERT, /* ^Z */ 473 V_CMD_MODE, /* ^[ */ /* [ Esc ] key */ 474 F_TTY_QUIT, /* ^\ */ 475 F_INSERT, /* ^] */ 476 F_INSERT, /* ^^ */ 477 F_INSERT, /* ^_ */ 478#else /* !KSHVI */ 479 F_UNASSIGNED, /* ^@ */ /* NOTE: These mapping do NOT */ 480 F_TOBEG, /* ^A */ /* Correspond well to the KSH */ 481 F_CHARBACK, /* ^B */ /* VI editting assignments */ 482 F_TTY_INT, /* ^C */ /* On the other hand they are */ 483 F_LIST_EOF, /* ^D */ /* convenient any many people */ 484 F_TOEND, /* ^E */ /* have gotten used to them */ 485 F_CHARFWD, /* ^F */ 486 F_LIST_GLOB, /* ^G */ 487 F_DELPREV, /* ^H */ /* BackSpace key */ 488 F_COMPLETE, /* ^I */ /* Tab Key */ 489 F_NEWLINE, /* ^J */ 490 F_KILLEND, /* ^K */ 491 F_CLEARDISP, /* ^L */ 492 F_NEWLINE, /* ^M */ 493 F_DOWN_HIST, /* ^N */ 494 F_TTY_FLUSHO, /* ^O */ 495 F_UP_HIST, /* ^P */ 496 F_TTY_STARTO, /* ^Q */ 497 F_REDISP, /* ^R */ 498 F_TTY_STOPO, /* ^S */ 499 F_CHARSWITCH, /* ^T */ 500 F_KILLBEG, /* ^U */ 501 F_QUOTE, /* ^V */ 502 F_DELWORDPREV, /* ^W */ 503 F_EXPAND, /* ^X */ 504 F_TTY_DSUSP, /* ^Y */ 505 F_TTY_TSUSP, /* ^Z */ 506 V_CMD_MODE, /* ^[ */ 507 F_TTY_QUIT, /* ^\ */ 508 F_UNASSIGNED, /* ^] */ 509 F_UNASSIGNED, /* ^^ */ 510 F_UNASSIGNED, /* ^_ */ 511#endif /* KSHVI */ 512 F_INSERT, /* SPACE */ 513 F_INSERT, /* ! */ 514 F_INSERT, /* " */ 515 F_INSERT, /* # */ 516 F_INSERT, /* $ */ 517 F_INSERT, /* % */ 518 F_INSERT, /* & */ 519 F_INSERT, /* ' */ 520 F_INSERT, /* ( */ 521 F_INSERT, /* ) */ 522 F_INSERT, /* * */ 523 F_INSERT, /* + */ 524 F_INSERT, /* , */ 525 F_INSERT, /* - */ 526 F_INSERT, /* . */ 527 F_INSERT, /* / */ 528 F_INSERT, /* 0 */ 529 F_INSERT, /* 1 */ 530 F_INSERT, /* 2 */ 531 F_INSERT, /* 3 */ 532 F_INSERT, /* 4 */ 533 F_INSERT, /* 5 */ 534 F_INSERT, /* 6 */ 535 F_INSERT, /* 7 */ 536 F_INSERT, /* 8 */ 537 F_INSERT, /* 9 */ 538 F_INSERT, /* : */ 539 F_INSERT, /* ; */ 540 F_INSERT, /* < */ 541 F_INSERT, /* = */ 542 F_INSERT, /* > */ 543 F_INSERT, /* ? */ 544 F_INSERT, /* @ */ 545 F_INSERT, /* A */ 546 F_INSERT, /* B */ 547 F_INSERT, /* C */ 548 F_INSERT, /* D */ 549 F_INSERT, /* E */ 550 F_INSERT, /* F */ 551 F_INSERT, /* G */ 552 F_INSERT, /* H */ 553 F_INSERT, /* I */ 554 F_INSERT, /* J */ 555 F_INSERT, /* K */ 556 F_INSERT, /* L */ 557 F_INSERT, /* M */ 558 F_INSERT, /* N */ 559 F_INSERT, /* O */ 560 F_INSERT, /* P */ 561 F_INSERT, /* Q */ 562 F_INSERT, /* R */ 563 F_INSERT, /* S */ 564 F_INSERT, /* T */ 565 F_INSERT, /* U */ 566 F_INSERT, /* V */ 567 F_INSERT, /* W */ 568 F_INSERT, /* X */ 569 F_INSERT, /* Y */ 570 F_INSERT, /* Z */ 571 F_INSERT, /* [ */ 572 F_INSERT, /* \ */ 573 F_INSERT, /* ] */ 574 F_INSERT, /* ^ */ 575 F_INSERT, /* _ */ 576 F_INSERT, /* ` */ 577 F_INSERT, /* a */ 578 F_INSERT, /* b */ 579 F_INSERT, /* c */ 580 F_INSERT, /* d */ 581 F_INSERT, /* e */ 582 F_INSERT, /* f */ 583 F_INSERT, /* g */ 584 F_INSERT, /* h */ 585 F_INSERT, /* i */ 586 F_INSERT, /* j */ 587 F_INSERT, /* k */ 588 F_INSERT, /* l */ 589 F_INSERT, /* m */ 590 F_INSERT, /* n */ 591 F_INSERT, /* o */ 592 F_INSERT, /* p */ 593 F_INSERT, /* q */ 594 F_INSERT, /* r */ 595 F_INSERT, /* s */ 596 F_INSERT, /* t */ 597 F_INSERT, /* u */ 598 F_INSERT, /* v */ 599 F_INSERT, /* w */ 600 F_INSERT, /* x */ 601 F_INSERT, /* y */ 602 F_INSERT, /* z */ 603 F_INSERT, /* { */ 604 F_INSERT, /* | */ 605 F_INSERT, /* } */ 606 F_INSERT, /* ~ */ 607 F_DELPREV, /* ^? */ 608 F_UNASSIGNED, /* M-^@ */ 609 F_UNASSIGNED, /* M-^A */ 610 F_UNASSIGNED, /* M-^B */ 611 F_UNASSIGNED, /* M-^C */ 612 F_UNASSIGNED, /* M-^D */ 613 F_UNASSIGNED, /* M-^E */ 614 F_UNASSIGNED, /* M-^F */ 615 F_UNASSIGNED, /* M-^G */ 616 F_UNASSIGNED, /* M-^H */ 617 F_UNASSIGNED, /* M-^I */ 618 F_UNASSIGNED, /* M-^J */ 619 F_UNASSIGNED, /* M-^K */ 620 F_UNASSIGNED, /* M-^L */ 621 F_UNASSIGNED, /* M-^M */ 622 F_UNASSIGNED, /* M-^N */ 623 F_UNASSIGNED, /* M-^O */ 624 F_UNASSIGNED, /* M-^P */ 625 F_UNASSIGNED, /* M-^Q */ 626 F_UNASSIGNED, /* M-^R */ 627 F_UNASSIGNED, /* M-^S */ 628 F_UNASSIGNED, /* M-^T */ 629 F_UNASSIGNED, /* M-^U */ 630 F_UNASSIGNED, /* M-^V */ 631 F_UNASSIGNED, /* M-^W */ 632 F_UNASSIGNED, /* M-^X */ 633 F_UNASSIGNED, /* M-^Y */ 634 F_UNASSIGNED, /* M-^Z */ 635 F_UNASSIGNED, /* M-^[ */ 636 F_UNASSIGNED, /* M-^\ */ 637 F_UNASSIGNED, /* M-^] */ 638 F_UNASSIGNED, /* M-^^ */ 639 F_UNASSIGNED, /* M-^_ */ 640 F_UNASSIGNED, /* M-SPACE */ 641 F_UNASSIGNED, /* M-! */ 642 F_UNASSIGNED, /* M-" */ 643 F_UNASSIGNED, /* M-# */ 644 F_UNASSIGNED, /* M-$ */ 645 F_UNASSIGNED, /* M-% */ 646 F_UNASSIGNED, /* M-& */ 647 F_UNASSIGNED, /* M-' */ 648 F_UNASSIGNED, /* M-( */ 649 F_UNASSIGNED, /* M-) */ 650 F_UNASSIGNED, /* M-* */ 651 F_UNASSIGNED, /* M-+ */ 652 F_UNASSIGNED, /* M-, */ 653 F_UNASSIGNED, /* M-- */ 654 F_UNASSIGNED, /* M-. */ 655 F_UNASSIGNED, /* M-/ */ 656 F_UNASSIGNED, /* M-0 */ 657 F_UNASSIGNED, /* M-1 */ 658 F_UNASSIGNED, /* M-2 */ 659 F_UNASSIGNED, /* M-3 */ 660 F_UNASSIGNED, /* M-4 */ 661 F_UNASSIGNED, /* M-5 */ 662 F_UNASSIGNED, /* M-6 */ 663 F_UNASSIGNED, /* M-7 */ 664 F_UNASSIGNED, /* M-8 */ 665 F_UNASSIGNED, /* M-9 */ 666 F_UNASSIGNED, /* M-: */ 667 F_UNASSIGNED, /* M-; */ 668 F_UNASSIGNED, /* M-< */ 669 F_UNASSIGNED, /* M-= */ 670 F_UNASSIGNED, /* M-> */ 671 F_UNASSIGNED, /* M-? */ 672 F_UNASSIGNED, /* M-@ */ 673 F_UNASSIGNED, /* M-A */ 674 F_UNASSIGNED, /* M-B */ 675 F_UNASSIGNED, /* M-C */ 676 F_UNASSIGNED, /* M-D */ 677 F_UNASSIGNED, /* M-E */ 678 F_UNASSIGNED, /* M-F */ 679 F_UNASSIGNED, /* M-G */ 680 F_UNASSIGNED, /* M-H */ 681 F_UNASSIGNED, /* M-I */ 682 F_UNASSIGNED, /* M-J */ 683 F_UNASSIGNED, /* M-K */ 684 F_UNASSIGNED, /* M-L */ 685 F_UNASSIGNED, /* M-M */ 686 F_UNASSIGNED, /* M-N */ 687 F_UNASSIGNED, /* M-O */ 688 F_UNASSIGNED, /* M-P */ 689 F_UNASSIGNED, /* M-Q */ 690 F_UNASSIGNED, /* M-R */ 691 F_UNASSIGNED, /* M-S */ 692 F_UNASSIGNED, /* M-T */ 693 F_UNASSIGNED, /* M-U */ 694 F_UNASSIGNED, /* M-V */ 695 F_UNASSIGNED, /* M-W */ 696 F_UNASSIGNED, /* M-X */ 697 F_UNASSIGNED, /* M-Y */ 698 F_UNASSIGNED, /* M-Z */ 699 F_UNASSIGNED, /* M-[ */ 700 F_UNASSIGNED, /* M-\ */ 701 F_UNASSIGNED, /* M-] */ 702 F_UNASSIGNED, /* M-^ */ 703 F_UNASSIGNED, /* M-_ */ 704 F_UNASSIGNED, /* M-` */ 705 F_UNASSIGNED, /* M-a */ 706 F_UNASSIGNED, /* M-b */ 707 F_UNASSIGNED, /* M-c */ 708 F_UNASSIGNED, /* M-d */ 709 F_UNASSIGNED, /* M-e */ 710 F_UNASSIGNED, /* M-f */ 711 F_UNASSIGNED, /* M-g */ 712 F_UNASSIGNED, /* M-h */ 713 F_UNASSIGNED, /* M-i */ 714 F_UNASSIGNED, /* M-j */ 715 F_UNASSIGNED, /* M-k */ 716 F_UNASSIGNED, /* M-l */ 717 F_UNASSIGNED, /* M-m */ 718 F_UNASSIGNED, /* M-n */ 719 F_UNASSIGNED, /* M-o */ 720 F_UNASSIGNED, /* M-p */ 721 F_UNASSIGNED, /* M-q */ 722 F_UNASSIGNED, /* M-r */ 723 F_UNASSIGNED, /* M-s */ 724 F_UNASSIGNED, /* M-t */ 725 F_UNASSIGNED, /* M-u */ 726 F_UNASSIGNED, /* M-v */ 727 F_UNASSIGNED, /* M-w */ 728 F_UNASSIGNED, /* M-x */ 729 F_UNASSIGNED, /* M-y */ 730 F_UNASSIGNED, /* M-z */ 731 F_UNASSIGNED, /* M-{ */ 732 F_UNASSIGNED, /* M-| */ 733 F_UNASSIGNED, /* M-} */ 734 F_UNASSIGNED, /* M-~ */ 735 F_UNASSIGNED, /* M-^? */ 736 /* Extra keys begin here */ 737 F_UNASSIGNED, /* f-1 */ 738 F_UNASSIGNED, /* f-2 */ 739 F_UNASSIGNED, /* f-3 */ 740 F_UNASSIGNED, /* f-4 */ 741 F_UNASSIGNED, /* f-5 */ 742 F_UNASSIGNED, /* f-6 */ 743 F_UNASSIGNED, /* f-7 */ 744 F_UNASSIGNED, /* f-8 */ 745 F_UNASSIGNED, /* f-9 */ 746 F_UNASSIGNED, /* f-10 */ 747 F_UNASSIGNED, /* f-11 */ 748 F_UNASSIGNED, /* f-12 */ 749 F_UNASSIGNED, /* f-13 */ 750 F_UNASSIGNED, /* f-14 */ 751 F_UNASSIGNED, /* f-15 */ 752 F_UNASSIGNED, /* f-16 */ 753 F_UNASSIGNED, /* f-17 */ 754 F_UNASSIGNED, /* f-18 */ 755 F_UNASSIGNED, /* f-19 */ 756 F_UNASSIGNED, /* f-20 */ 757 F_UNASSIGNED, /* f-21 */ 758 F_UNASSIGNED, /* f-22 */ 759 F_UNASSIGNED, /* f-23 */ 760 F_UNASSIGNED, /* f-24 */ 761 F_UNASSIGNED, /* PgUp */ 762 F_UNASSIGNED, /* PgDn */ 763 F_UNASSIGNED, /* end */ 764 F_UNASSIGNED, /* home */ 765 F_UNASSIGNED, /* LEFT */ 766 F_UNASSIGNED, /* UP */ 767 F_UNASSIGNED, /* RIGHT */ 768 F_UNASSIGNED, /* DOWN */ 769 F_UNASSIGNED, /* INS */ 770 F_UNASSIGNED, /* DEL */ 771 /* ctrl key mappings */ 772 F_UNASSIGNED, /* f-1 */ 773 F_UNASSIGNED, /* f-2 */ 774 F_UNASSIGNED, /* f-3 */ 775 F_UNASSIGNED, /* f-4 */ 776 F_UNASSIGNED, /* f-5 */ 777 F_UNASSIGNED, /* f-6 */ 778 F_UNASSIGNED, /* f-7 */ 779 F_UNASSIGNED, /* f-8 */ 780 F_UNASSIGNED, /* f-9 */ 781 F_UNASSIGNED, /* f-10 */ 782 F_UNASSIGNED, /* f-11 */ 783 F_UNASSIGNED, /* f-12 */ 784 F_UNASSIGNED, /* f-13 */ 785 F_UNASSIGNED, /* f-14 */ 786 F_UNASSIGNED, /* f-15 */ 787 F_UNASSIGNED, /* f-16 */ 788 F_UNASSIGNED, /* f-17 */ 789 F_UNASSIGNED, /* f-18 */ 790 F_UNASSIGNED, /* f-19 */ 791 F_UNASSIGNED, /* f-20 */ 792 F_UNASSIGNED, /* f-21 */ 793 F_UNASSIGNED, /* f-22 */ 794 F_UNASSIGNED, /* f-23 */ 795 F_UNASSIGNED, /* f-24 */ 796 F_UNASSIGNED, /* PgUp */ 797 F_UNASSIGNED, /* PgDn */ 798 F_UNASSIGNED, /* end */ 799 F_UNASSIGNED, /* home */ 800 F_UNASSIGNED, /* LEFT */ 801 F_UNASSIGNED, /* UP */ 802 F_UNASSIGNED, /* RIGHT */ 803 F_UNASSIGNED, /* DOWN */ 804 F_UNASSIGNED, /* INS */ 805 F_UNASSIGNED, /* DEL */ 806 807 /* alt key mappings */ 808 F_UNASSIGNED, /* f-1 */ 809 F_UNASSIGNED, /* f-2 */ 810 F_UNASSIGNED, /* f-3 */ 811 F_UNASSIGNED, /* f-4 */ 812 F_UNASSIGNED, /* f-5 */ 813 F_UNASSIGNED, /* f-6 */ 814 F_UNASSIGNED, /* f-7 */ 815 F_UNASSIGNED, /* f-8 */ 816 F_UNASSIGNED, /* f-9 */ 817 F_UNASSIGNED, /* f-10 */ 818 F_UNASSIGNED, /* f-11 */ 819 F_UNASSIGNED, /* f-12 */ 820 F_UNASSIGNED, /* f-13 */ 821 F_UNASSIGNED, /* f-14 */ 822 F_UNASSIGNED, /* f-15 */ 823 F_UNASSIGNED, /* f-16 */ 824 F_UNASSIGNED, /* f-17 */ 825 F_UNASSIGNED, /* f-18 */ 826 F_UNASSIGNED, /* f-19 */ 827 F_UNASSIGNED, /* f-20 */ 828 F_UNASSIGNED, /* f-21 */ 829 F_UNASSIGNED, /* f-22 */ 830 F_UNASSIGNED, /* f-23 */ 831 F_UNASSIGNED, /* f-24 */ 832 F_UNASSIGNED, /* PgUp */ 833 F_UNASSIGNED, /* PgDn */ 834 F_UNASSIGNED, /* end */ 835 F_UNASSIGNED, /* home */ 836 F_UNASSIGNED, /* LEFT */ 837 F_UNASSIGNED, /* UP */ 838 F_UNASSIGNED, /* RIGHT */ 839 F_UNASSIGNED, /* DOWN */ 840 F_UNASSIGNED, /* INS */ 841 F_UNASSIGNED, /* DEL */ 842 /* shift key mappings */ 843 F_UNASSIGNED, /* f-1 */ 844 F_UNASSIGNED, /* f-2 */ 845 F_UNASSIGNED, /* f-3 */ 846 F_UNASSIGNED, /* f-4 */ 847 F_UNASSIGNED, /* f-5 */ 848 F_UNASSIGNED, /* f-6 */ 849 F_UNASSIGNED, /* f-7 */ 850 F_UNASSIGNED, /* f-8 */ 851 F_UNASSIGNED, /* f-9 */ 852 F_UNASSIGNED, /* f-10 */ 853 F_UNASSIGNED, /* f-11 */ 854 F_UNASSIGNED, /* f-12 */ 855 F_UNASSIGNED, /* f-13 */ 856 F_UNASSIGNED, /* f-14 */ 857 F_UNASSIGNED, /* f-15 */ 858 F_UNASSIGNED, /* f-16 */ 859 F_UNASSIGNED, /* f-17 */ 860 F_UNASSIGNED, /* f-18 */ 861 F_UNASSIGNED, /* f-19 */ 862 F_UNASSIGNED, /* f-20 */ 863 F_UNASSIGNED, /* f-21 */ 864 F_UNASSIGNED, /* f-22 */ 865 F_UNASSIGNED, /* f-23 */ 866 F_UNASSIGNED, /* f-24 */ 867 F_UNASSIGNED, /* PgUp */ 868 F_UNASSIGNED, /* PgDn */ 869 F_UNASSIGNED, /* end */ 870 F_UNASSIGNED, /* home */ 871 F_UNASSIGNED, /* LEFT */ 872 F_UNASSIGNED, /* UP */ 873 F_UNASSIGNED, /* RIGHT */ 874 F_UNASSIGNED, /* DOWN */ 875 F_UNASSIGNED, /* INS */ 876 F_UNASSIGNED /* DEL */ 877}; 878 879KEYCMD CcViCmdMap[] = { 880 F_UNASSIGNED, /* ^@ */ 881 F_TOBEG, /* ^A */ 882 F_UNASSIGNED, /* ^B */ 883 F_TTY_INT, /* ^C */ 884 F_LIST_CHOICES, /* ^D */ 885 F_TOEND, /* ^E */ 886 F_UNASSIGNED, /* ^F */ 887 F_LIST_GLOB, /* ^G */ 888 F_CHARBACK, /* ^H */ 889 V_CM_COMPLETE, /* ^I */ 890 F_NEWLINE, /* ^J */ 891 F_KILLEND, /* ^K */ 892 F_CLEARDISP, /* ^L */ 893 F_NEWLINE, /* ^M */ 894 F_DOWN_HIST, /* ^N */ 895 F_TTY_FLUSHO, /* ^O */ 896 F_UP_HIST, /* ^P */ 897 F_TTY_STARTO, /* ^Q */ 898 F_REDISP, /* ^R */ 899 F_TTY_STOPO, /* ^S */ 900 F_UNASSIGNED, /* ^T */ 901 F_KILLBEG, /* ^U */ 902 F_UNASSIGNED, /* ^V */ 903 F_DELWORDPREV, /* ^W */ 904 F_EXPAND, /* ^X */ 905 F_UNASSIGNED, /* ^Y */ 906 F_UNASSIGNED, /* ^Z */ 907 F_METANEXT, /* ^[ */ 908 F_TTY_QUIT, /* ^\ */ 909 F_UNASSIGNED, /* ^] */ 910 F_UNASSIGNED, /* ^^ */ 911 F_UNASSIGNED, /* ^_ */ 912 F_CHARFWD, /* SPACE */ 913 F_EXPAND_HISTORY, /* ! */ 914 F_UNASSIGNED, /* " */ 915 F_UNASSIGNED, /* # */ 916 F_TOEND, /* $ */ 917 F_UNASSIGNED, /* % */ 918 F_UNASSIGNED, /* & */ 919 F_UNASSIGNED, /* ' */ 920 F_UNASSIGNED, /* ( */ 921 F_UNASSIGNED, /* ) */ 922 F_EXPAND_GLOB, /* * */ 923 F_DOWN_HIST, /* + */ 924 V_RCHAR_BACK, /* , */ 925 F_UP_HIST, /* - */ 926 F_UNASSIGNED, /* . */ 927 V_DSH_META, /* / */ 928 V_ZERO, /* 0 */ 929 F_ARGDIGIT, /* 1 */ 930 F_ARGDIGIT, /* 2 */ 931 F_ARGDIGIT, /* 3 */ 932 F_ARGDIGIT, /* 4 */ 933 F_ARGDIGIT, /* 5 */ 934 F_ARGDIGIT, /* 6 */ 935 F_ARGDIGIT, /* 7 */ 936 F_ARGDIGIT, /* 8 */ 937 F_ARGDIGIT, /* 9 */ 938 F_UNASSIGNED, /* : */ 939 V_RCHAR_FWD, /* ; */ 940 F_UNASSIGNED, /* < */ 941 F_UNASSIGNED, /* = */ 942 F_UNASSIGNED, /* > */ 943 V_USH_META, /* ? */ 944 F_UNASSIGNED, /* @ */ 945 V_ADDEND, /* A */ 946 V_WORDBACK, /* B */ 947 V_CHGTOEND, /* C */ 948 F_KILLEND, /* D */ 949 V_ENDWORD, /* E */ 950 V_CHAR_BACK, /* F */ 951 F_UNASSIGNED, /* G */ 952 F_UNASSIGNED, /* H */ 953 V_INSBEG, /* I */ 954 F_DOWN_SEARCH_HIST, /* J */ 955 F_UP_SEARCH_HIST, /* K */ 956 F_UNASSIGNED, /* L */ 957 F_UNASSIGNED, /* M */ 958 V_RSRCH_BACK, /* N */ 959 F_XKEY, /* O */ 960 F_UNASSIGNED, /* P */ 961 F_UNASSIGNED, /* Q */ 962 V_REPLMODE, /* R */ 963 V_SUBSTLINE, /* S */ 964 V_CHARTO_BACK, /* T */ 965 F_UNASSIGNED, /* U */ 966 F_EXPAND_VARS, /* V */ 967 V_WORDFWD, /* W */ 968 F_DELPREV, /* X */ 969 F_UNASSIGNED, /* Y */ 970 F_UNASSIGNED, /* Z */ 971 F_XKEY, /* [ */ 972 F_UNASSIGNED, /* \ */ 973 F_UNASSIGNED, /* ] */ 974 F_TOBEG, /* ^ */ 975 F_UNASSIGNED, /* _ */ 976 F_UNASSIGNED, /* ` */ 977 V_ADD, /* a */ 978 F_WORDBACK, /* b */ 979 V_CHGMETA, /* c */ 980 V_DELMETA, /* d */ 981 V_EWORD, /* e */ 982 V_CHAR_FWD, /* f */ 983 F_UNASSIGNED, /* g */ 984 F_CHARBACK, /* h */ 985 V_INSERT, /* i */ 986 F_DOWN_HIST, /* j */ 987 F_UP_HIST, /* k */ 988 F_CHARFWD, /* l */ 989 F_UNASSIGNED, /* m */ 990 V_RSRCH_FWD, /* n */ 991 F_UNASSIGNED, /* o */ 992 F_UNASSIGNED, /* p */ 993 F_UNASSIGNED, /* q */ 994 V_REPLONE, /* r */ 995 V_SUBSTCHAR, /* s */ 996 V_CHARTO_FWD, /* t */ 997 V_UNDO, /* u */ 998 F_EXPAND_VARS, /* v */ 999 V_WORDBEGNEXT, /* w */ 1000 F_DELNEXT_EOF, /* x */ 1001 F_UNASSIGNED, /* y */ 1002 F_UNASSIGNED, /* z */ 1003 F_UNASSIGNED, /* { */ 1004 F_UNASSIGNED, /* | */ 1005 F_UNASSIGNED, /* } */ 1006 V_CHGCASE, /* ~ */ 1007 F_DELPREV, /* ^? */ 1008 F_UNASSIGNED, /* M-^@ */ 1009 F_UNASSIGNED, /* M-^A */ 1010 F_UNASSIGNED, /* M-^B */ 1011 F_UNASSIGNED, /* M-^C */ 1012 F_UNASSIGNED, /* M-^D */ 1013 F_UNASSIGNED, /* M-^E */ 1014 F_UNASSIGNED, /* M-^F */ 1015 F_UNASSIGNED, /* M-^G */ 1016 F_UNASSIGNED, /* M-^H */ 1017 F_UNASSIGNED, /* M-^I */ 1018 F_UNASSIGNED, /* M-^J */ 1019 F_UNASSIGNED, /* M-^K */ 1020 F_UNASSIGNED, /* M-^L */ 1021 F_UNASSIGNED, /* M-^M */ 1022 F_UNASSIGNED, /* M-^N */ 1023 F_UNASSIGNED, /* M-^O */ 1024 F_UNASSIGNED, /* M-^P */ 1025 F_UNASSIGNED, /* M-^Q */ 1026 F_UNASSIGNED, /* M-^R */ 1027 F_UNASSIGNED, /* M-^S */ 1028 F_UNASSIGNED, /* M-^T */ 1029 F_UNASSIGNED, /* M-^U */ 1030 F_UNASSIGNED, /* M-^V */ 1031 F_UNASSIGNED, /* M-^W */ 1032 F_UNASSIGNED, /* M-^X */ 1033 F_UNASSIGNED, /* M-^Y */ 1034 F_UNASSIGNED, /* M-^Z */ 1035 F_UNASSIGNED, /* M-^[ */ 1036 F_UNASSIGNED, /* M-^\ */ 1037 F_UNASSIGNED, /* M-^] */ 1038 F_UNASSIGNED, /* M-^^ */ 1039 F_UNASSIGNED, /* M-^_ */ 1040 F_UNASSIGNED, /* M-SPACE */ 1041 F_UNASSIGNED, /* M-! */ 1042 F_UNASSIGNED, /* M-" */ 1043 F_UNASSIGNED, /* M-# */ 1044 F_UNASSIGNED, /* M-$ */ 1045 F_UNASSIGNED, /* M-% */ 1046 F_UNASSIGNED, /* M-& */ 1047 F_UNASSIGNED, /* M-' */ 1048 F_UNASSIGNED, /* M-( */ 1049 F_UNASSIGNED, /* M-) */ 1050 F_UNASSIGNED, /* M-* */ 1051 F_UNASSIGNED, /* M-+ */ 1052 F_UNASSIGNED, /* M-, */ 1053 F_UNASSIGNED, /* M-- */ 1054 F_UNASSIGNED, /* M-. */ 1055 F_UNASSIGNED, /* M-/ */ 1056 F_UNASSIGNED, /* M-0 */ 1057 F_UNASSIGNED, /* M-1 */ 1058 F_UNASSIGNED, /* M-2 */ 1059 F_UNASSIGNED, /* M-3 */ 1060 F_UNASSIGNED, /* M-4 */ 1061 F_UNASSIGNED, /* M-5 */ 1062 F_UNASSIGNED, /* M-6 */ 1063 F_UNASSIGNED, /* M-7 */ 1064 F_UNASSIGNED, /* M-8 */ 1065 F_UNASSIGNED, /* M-9 */ 1066 F_UNASSIGNED, /* M-: */ 1067 F_UNASSIGNED, /* M-; */ 1068 F_UNASSIGNED, /* M-< */ 1069 F_UNASSIGNED, /* M-= */ 1070 F_UNASSIGNED, /* M-> */ 1071 F_HELPME, /* M-? */ 1072 F_UNASSIGNED, /* M-@ */ 1073 F_UNASSIGNED, /* M-A */ 1074 F_UNASSIGNED, /* M-B */ 1075 F_UNASSIGNED, /* M-C */ 1076 F_UNASSIGNED, /* M-D */ 1077 F_UNASSIGNED, /* M-E */ 1078 F_UNASSIGNED, /* M-F */ 1079 F_UNASSIGNED, /* M-G */ 1080 F_UNASSIGNED, /* M-H */ 1081 F_UNASSIGNED, /* M-I */ 1082 F_UNASSIGNED, /* M-J */ 1083 F_UNASSIGNED, /* M-K */ 1084 F_UNASSIGNED, /* M-L */ 1085 F_UNASSIGNED, /* M-M */ 1086 F_UNASSIGNED, /* M-N */ 1087 F_XKEY, /* M-O *//* extended key esc PWP Mar 88 */ 1088 F_UNASSIGNED, /* M-P */ 1089 F_UNASSIGNED, /* M-Q */ 1090 F_UNASSIGNED, /* M-R */ 1091 F_UNASSIGNED, /* M-S */ 1092 F_UNASSIGNED, /* M-T */ 1093 F_UNASSIGNED, /* M-U */ 1094 F_UNASSIGNED, /* M-V */ 1095 F_UNASSIGNED, /* M-W */ 1096 F_UNASSIGNED, /* M-X */ 1097 F_UNASSIGNED, /* M-Y */ 1098 F_UNASSIGNED, /* M-Z */ 1099 F_XKEY, /* M-[ *//* extended key esc -mf Oct 87 */ 1100 F_UNASSIGNED, /* M-\ */ 1101 F_UNASSIGNED, /* M-] */ 1102 F_UNASSIGNED, /* M-^ */ 1103 F_UNASSIGNED, /* M-_ */ 1104 F_UNASSIGNED, /* M-` */ 1105 F_UNASSIGNED, /* M-a */ 1106 F_UNASSIGNED, /* M-b */ 1107 F_UNASSIGNED, /* M-c */ 1108 F_UNASSIGNED, /* M-d */ 1109 F_UNASSIGNED, /* M-e */ 1110 F_UNASSIGNED, /* M-f */ 1111 F_UNASSIGNED, /* M-g */ 1112 F_UNASSIGNED, /* M-h */ 1113 F_UNASSIGNED, /* M-i */ 1114 F_UNASSIGNED, /* M-j */ 1115 F_UNASSIGNED, /* M-k */ 1116 F_UNASSIGNED, /* M-l */ 1117 F_UNASSIGNED, /* M-m */ 1118 F_UNASSIGNED, /* M-n */ 1119 F_UNASSIGNED, /* M-o */ 1120 F_UNASSIGNED, /* M-p */ 1121 F_UNASSIGNED, /* M-q */ 1122 F_UNASSIGNED, /* M-r */ 1123 F_UNASSIGNED, /* M-s */ 1124 F_UNASSIGNED, /* M-t */ 1125 F_UNASSIGNED, /* M-u */ 1126 F_UNASSIGNED, /* M-v */ 1127 F_UNASSIGNED, /* M-w */ 1128 F_UNASSIGNED, /* M-x */ 1129 F_UNASSIGNED, /* M-y */ 1130 F_UNASSIGNED, /* M-z */ 1131 F_UNASSIGNED, /* M-{ */ 1132 F_UNASSIGNED, /* M-| */ 1133 F_UNASSIGNED, /* M-} */ 1134 F_UNASSIGNED, /* M-~ */ 1135 F_UNASSIGNED, /* M-^? */ 1136 /* extra keys begin here */ 1137 F_UNASSIGNED, /* f-1 */ 1138 F_UNASSIGNED, /* f-2 */ 1139 F_UNASSIGNED, /* f-3 */ 1140 F_UNASSIGNED, /* f-4 */ 1141 F_UNASSIGNED, /* f-5 */ 1142 F_UNASSIGNED, /* f-6 */ 1143 F_UNASSIGNED, /* f-7 */ 1144 F_UNASSIGNED, /* f-8 */ 1145 F_UNASSIGNED, /* f-9 */ 1146 F_UNASSIGNED, /* f-10 */ 1147 F_UNASSIGNED, /* f-11 */ 1148 F_UNASSIGNED, /* f-12 */ 1149 F_UNASSIGNED, /* f-13 */ 1150 F_UNASSIGNED, /* f-14 */ 1151 F_UNASSIGNED, /* f-15 */ 1152 F_UNASSIGNED, /* f-16 */ 1153 F_UNASSIGNED, /* f-17 */ 1154 F_UNASSIGNED, /* f-18 */ 1155 F_UNASSIGNED, /* f-19 */ 1156 F_UNASSIGNED, /* f-20 */ 1157 F_UNASSIGNED, /* f-21 */ 1158 F_UNASSIGNED, /* f-22 */ 1159 F_UNASSIGNED, /* f-23 */ 1160 F_UNASSIGNED, /* f-24 */ 1161 F_UNASSIGNED, /* PgUp */ 1162 F_UNASSIGNED, /* PgDn */ 1163 F_UNASSIGNED, /* end */ 1164 F_UNASSIGNED, /* home */ 1165 F_UNASSIGNED, /* LEFT */ 1166 F_UNASSIGNED, /* UP */ 1167 F_UNASSIGNED, /* RIGHT */ 1168 F_UNASSIGNED, /* DOWN */ 1169 F_UNASSIGNED, /* INS */ 1170 F_UNASSIGNED, /* DEL */ 1171 1172 /* ctrl key mappings */ 1173 F_UNASSIGNED, /* f-1 */ 1174 F_UNASSIGNED, /* f-2 */ 1175 F_UNASSIGNED, /* f-3 */ 1176 F_UNASSIGNED, /* f-4 */ 1177 F_UNASSIGNED, /* f-5 */ 1178 F_UNASSIGNED, /* f-6 */ 1179 F_UNASSIGNED, /* f-7 */ 1180 F_UNASSIGNED, /* f-8 */ 1181 F_UNASSIGNED, /* f-9 */ 1182 F_UNASSIGNED, /* f-10 */ 1183 F_UNASSIGNED, /* f-11 */ 1184 F_UNASSIGNED, /* f-12 */ 1185 F_UNASSIGNED, /* f-13 */ 1186 F_UNASSIGNED, /* f-14 */ 1187 F_UNASSIGNED, /* f-15 */ 1188 F_UNASSIGNED, /* f-16 */ 1189 F_UNASSIGNED, /* f-17 */ 1190 F_UNASSIGNED, /* f-18 */ 1191 F_UNASSIGNED, /* f-19 */ 1192 F_UNASSIGNED, /* f-20 */ 1193 F_UNASSIGNED, /* f-21 */ 1194 F_UNASSIGNED, /* f-22 */ 1195 F_UNASSIGNED, /* f-23 */ 1196 F_UNASSIGNED, /* f-24 */ 1197 F_UNASSIGNED, /* PgUp */ 1198 F_UNASSIGNED, /* PgDn */ 1199 F_UNASSIGNED, /* end */ 1200 F_UNASSIGNED, /* home */ 1201 F_UNASSIGNED, /* LEFT */ 1202 F_UNASSIGNED, /* UP */ 1203 F_UNASSIGNED, /* RIGHT */ 1204 F_UNASSIGNED, /* DOWN */ 1205 F_UNASSIGNED, /* INS */ 1206 F_UNASSIGNED, /* DEL */ 1207 1208 /* alt key mappings */ 1209 F_UNASSIGNED, /* f-1 */ 1210 F_UNASSIGNED, /* f-2 */ 1211 F_UNASSIGNED, /* f-3 */ 1212 F_UNASSIGNED, /* f-4 */ 1213 F_UNASSIGNED, /* f-5 */ 1214 F_UNASSIGNED, /* f-6 */ 1215 F_UNASSIGNED, /* f-7 */ 1216 F_UNASSIGNED, /* f-8 */ 1217 F_UNASSIGNED, /* f-9 */ 1218 F_UNASSIGNED, /* f-10 */ 1219 F_UNASSIGNED, /* f-11 */ 1220 F_UNASSIGNED, /* f-12 */ 1221 F_UNASSIGNED, /* f-13 */ 1222 F_UNASSIGNED, /* f-14 */ 1223 F_UNASSIGNED, /* f-15 */ 1224 F_UNASSIGNED, /* f-16 */ 1225 F_UNASSIGNED, /* f-17 */ 1226 F_UNASSIGNED, /* f-18 */ 1227 F_UNASSIGNED, /* f-19 */ 1228 F_UNASSIGNED, /* f-20 */ 1229 F_UNASSIGNED, /* f-21 */ 1230 F_UNASSIGNED, /* f-22 */ 1231 F_UNASSIGNED, /* f-23 */ 1232 F_UNASSIGNED, /* f-24 */ 1233 F_UNASSIGNED, /* PgUp */ 1234 F_UNASSIGNED, /* PgDn */ 1235 F_UNASSIGNED, /* end */ 1236 F_UNASSIGNED, /* home */ 1237 F_UNASSIGNED, /* LEFT */ 1238 F_UNASSIGNED, /* UP */ 1239 F_UNASSIGNED, /* RIGHT */ 1240 F_UNASSIGNED, /* DOWN */ 1241 F_UNASSIGNED, /* INS */ 1242 F_UNASSIGNED, /* DEL */ 1243 /* shift key mappings */ 1244 F_UNASSIGNED, /* f-1 */ 1245 F_UNASSIGNED, /* f-2 */ 1246 F_UNASSIGNED, /* f-3 */ 1247 F_UNASSIGNED, /* f-4 */ 1248 F_UNASSIGNED, /* f-5 */ 1249 F_UNASSIGNED, /* f-6 */ 1250 F_UNASSIGNED, /* f-7 */ 1251 F_UNASSIGNED, /* f-8 */ 1252 F_UNASSIGNED, /* f-9 */ 1253 F_UNASSIGNED, /* f-10 */ 1254 F_UNASSIGNED, /* f-11 */ 1255 F_UNASSIGNED, /* f-12 */ 1256 F_UNASSIGNED, /* f-13 */ 1257 F_UNASSIGNED, /* f-14 */ 1258 F_UNASSIGNED, /* f-15 */ 1259 F_UNASSIGNED, /* f-16 */ 1260 F_UNASSIGNED, /* f-17 */ 1261 F_UNASSIGNED, /* f-18 */ 1262 F_UNASSIGNED, /* f-19 */ 1263 F_UNASSIGNED, /* f-20 */ 1264 F_UNASSIGNED, /* f-21 */ 1265 F_UNASSIGNED, /* f-22 */ 1266 F_UNASSIGNED, /* f-23 */ 1267 F_UNASSIGNED, /* f-24 */ 1268 F_UNASSIGNED, /* PgUp */ 1269 F_UNASSIGNED, /* PgDn */ 1270 F_UNASSIGNED, /* end */ 1271 F_UNASSIGNED, /* home */ 1272 F_UNASSIGNED, /* LEFT */ 1273 F_UNASSIGNED, /* UP */ 1274 F_UNASSIGNED, /* RIGHT */ 1275 F_UNASSIGNED, /* DOWN */ 1276 F_UNASSIGNED, /* INS */ 1277 F_UNASSIGNED /* DEL */ 1278}; 1279 static void 1280nt_bad_spec(const Char *keystr) 1281{ 1282 xprintf(CGETS(20, 4, "Bad key spec %S\n"), keystr); 1283} 1284extern int lstricmp(char*,char*); 1285Char nt_translate_bindkey(const Char*s) { 1286 char *astr = short2str(s); 1287 short fkey; 1288 char corm; /* 1 for ctrl map, 2 for meta map, 3 for shift map*/ 1289 Char keycode = 0; 1290 1291 corm = 0; 1292 1293 if (astr[0] == 'C') 1294 corm= 1; 1295 else if (astr[0] == 'M') 1296 corm = 2; 1297 else if (astr[0] == 'S') /*shift keymap by avner.lottem@intel.com*/ 1298 corm = 3; 1299 1300 if (corm) 1301 astr += 2; /* skip C- or M- or S-*/ 1302 1303 fkey = (short)atoi(astr); 1304 if (fkey !=0) { 1305 keycode = (NT_SPECIFIC_BINDING_OFFSET+ (fkey-1) ); 1306 } 1307 else { 1308 if (!_stricmp("pgup",astr)) { 1309 keycode = (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN); 1310 } 1311 else if (!_stricmp("pgdown",astr)) { 1312 keycode = (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 1); 1313 } 1314 else if (!_stricmp("end",astr)) { 1315 keycode = (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 2); 1316 } 1317 else if (!_stricmp("home",astr)) { 1318 keycode = (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 3); 1319 } 1320 else if (!_stricmp("left",astr)) { 1321 keycode = (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 4); 1322 } 1323 else if (!_stricmp("up",astr)) { 1324 keycode = (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 5); 1325 } 1326 else if (!_stricmp("right",astr)) { 1327 keycode = (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 6); 1328 } 1329 else if (!_stricmp("down",astr)) { 1330 keycode = (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 7); 1331 } 1332 else if (!_stricmp("ins",astr)) { 1333 keycode = (NT_SPECIFIC_BINDING_OFFSET + INS_DEL_MAPPING_BEGIN ); 1334 } 1335 else if (!_stricmp("del",astr)) { 1336 keycode = (NT_SPECIFIC_BINDING_OFFSET +INS_DEL_MAPPING_BEGIN +1 ); 1337 } 1338 else 1339 nt_bad_spec(s); 1340 } 1341 if (keycode && corm) { 1342 if (corm == 1) 1343 keycode += CTRL_KEY_OFFSET; 1344 else if (corm == 2) 1345 keycode += ALT_KEY_OFFSET; 1346 else if (corm == 3) 1347 keycode += SHIFT_KEY_OFFSET; 1348 } 1349 1350 return keycode; 1351} 1352