home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / EMACSOS2.ZIP / EBIND.H < prev    next >
Text File  |  1988-10-01  |  13KB  |  440 lines

  1. /*    EBIND:        Initial default key to function bindings for
  2.             MicroEMACS 3.7
  3. */
  4.  
  5. /*
  6.  * Command table.
  7.  * This table  is *roughly* in ASCII order, left to right across the
  8.  * characters of the command. This explains the funny location of the
  9.  * control-X commands.
  10.  */
  11. noshare KEYTAB  keytab[NBINDS] = {
  12.     {CTRL|'A',        gotobol},
  13.     {CTRL|'B',        backchar},
  14.     {CTRL|'C',        insspace},
  15.     {CTRL|'D',        forwdel},
  16.     {CTRL|'E',        gotoeol},
  17.     {CTRL|'F',        forwchar},
  18.     {CTRL|'G',        ctrlg},
  19.     {CTRL|'H',        backdel},
  20.     {CTRL|'I',        tab},
  21.     {CTRL|'J',        indent},
  22.     {CTRL|'K',        killtext},
  23.     {CTRL|'L',        refresh},
  24.     {CTRL|'M',        newline},
  25.     {CTRL|'N',        forwline},
  26.     {CTRL|'O',        openline},
  27.     {CTRL|'P',        backline},
  28.     {CTRL|'Q',        quote},
  29.     {CTRL|'R',        backsearch},
  30.     {CTRL|'S',        forwsearch},
  31.     {CTRL|'T',        twiddle},
  32.     {CTRL|'U',        unarg},
  33.     {CTRL|'V',        forwpage},
  34.     {CTRL|'W',        killregion},
  35.     {CTRL|'X',        cex},
  36.     {CTRL|'Y',        yank},
  37.     {CTRL|'Z',        backpage},
  38.     {CTRL|'[',        meta},
  39.     {CTLX|CTRL|'B',        listbuffers},
  40.     {CTLX|CTRL|'C',        quit},          /* Hard quit.           */
  41. #if    AEDIT
  42.     {CTLX|CTRL|'D',        detab},
  43.     {CTLX|CTRL|'E',        entab},
  44. #endif
  45.     {CTLX|CTRL|'F',        filefind},
  46.     {CTLX|CTRL|'I',        insfile},
  47.     {CTLX|CTRL|'L',        lowerregion},
  48.     {CTLX|CTRL|'M',        delmode},
  49.     {CTLX|CTRL|'N',        mvdnwind},
  50.     {CTLX|CTRL|'O',        deblank},
  51.     {CTLX|CTRL|'P',        mvupwind},
  52.     {CTLX|CTRL|'R',        fileread},
  53.     {CTLX|CTRL|'S',        filesave},
  54. #if    AEDIT
  55.     {CTLX|CTRL|'T',        trim},
  56. #endif
  57.     {CTLX|CTRL|'U',        upperregion},
  58.     {CTLX|CTRL|'V',        viewfile},
  59.     {CTLX|CTRL|'W',        filewrite},
  60.     {CTLX|CTRL|'X',        swapmark},
  61. #if    VMSVT & MOUSE
  62.     {CTLX|CTRL|'Y',        vwspaste},
  63.     {CTLX|'W',        vwscopy},
  64. #endif
  65.     {CTLX|CTRL|'Z',        shrinkwind},
  66.     {CTLX|'?',        deskey},
  67.     {CTLX|'!',        spawn},
  68.     {CTLX|'@',        pipecmd},
  69.     {CTLX|'#',        filter},
  70.     {CTLX|'$',        execprg},
  71.     {CTLX|'=',        showcpos},
  72.     {CTLX|'(',        ctlxlp},
  73.     {CTLX|')',        ctlxrp},
  74.     {CTLX|'<',        narrow},
  75.     {CTLX|'>',        widen},
  76.     {CTLX|'^',        enlargewind},
  77.     {CTLX|' ',        remmark},
  78.     {CTLX|'0',        delwind},
  79.     {CTLX|'1',        onlywind},
  80.     {CTLX|'2',        splitwind},
  81.     {CTLX|'A',        setvar},
  82.     {CTLX|'B',        usebuffer},
  83.     {CTLX|'C',        spawncli},
  84. #if    BSD
  85.     {CTLX|'D',        bktoshell},
  86. #endif
  87.     {CTLX|'E',        ctlxe},
  88.     {CTLX|'F',        setfillcol},
  89. #if    DEBUGM
  90.     {CTLX|'G',        dispvar},
  91. #endif
  92.     {CTLX|'K',        killbuffer},
  93.     {CTLX|'M',        setmod},
  94.     {CTLX|'N',        filename},
  95.     {CTLX|'O',        nextwind},
  96.     {CTLX|'P',        prevwind},
  97. #if    ISRCH
  98.     {CTLX|'R',        risearch},
  99.     {CTLX|'S',        fisearch},
  100. #endif
  101.     {CTLX|'W',        resize},
  102.     {CTLX|'X',        nextbuffer},
  103.     {CTLX|'Z',        enlargewind},
  104. #if    WORDPRO
  105.     {META|CTRL|'C',        wordcount},
  106. #endif
  107. #if    PROC
  108.     {META|CTRL|'E',        execproc},
  109. #endif
  110. #if    CFENCE
  111.     {META|CTRL|'F',        getfence},
  112. #endif
  113.     {META|CTRL|'H',        delbword},
  114.     {META|CTRL|'K',        unbindkey},
  115.     {META|CTRL|'L',        reposition},
  116.     {META|CTRL|'M',        delgmode},
  117.     {META|CTRL|'N',        namebuffer},
  118.     {META|CTRL|'R',        qreplace},
  119.     {META|CTRL|'V',        scrnextdw},
  120. #if    WORDPRO
  121.     {META|CTRL|'W',        killpara},
  122. #endif
  123.     {META|CTRL|'Z',        scrnextup},
  124.     {META|' ',        setmark},
  125.     {META|'?',        help},
  126.     {META|'!',        reposition},
  127.     {META|'.',        setmark},
  128.     {META|'>',        gotoeob},
  129.     {META|'<',        gotobob},
  130.     {META|'~',        unmark},
  131. #if    APROP
  132.     {META|'A',        apro},
  133. #endif
  134.     {META|'B',        backword},
  135.     {META|'C',        capword},
  136.     {META|'D',        delfword},
  137. #if    CRYPT
  138.     {META|'E',        setkey},
  139. #endif
  140.     {META|'F',        forwword},
  141.     {META|'G',        gotoline},
  142.     {META|'K',        bindtokey},
  143.     {META|'L',        lowerword},
  144.     {META|'M',        setgmode},
  145. #if    WORDPRO
  146.     {META|'N',        gotoeop},
  147.     {META|'P',        gotobop},
  148.     {META|'Q',        fillpara},
  149. #endif
  150.     {META|'R',        sreplace},
  151. #if    BSD
  152.     {META|'S',        bktoshell},
  153. #endif
  154.     {META|'U',        upperword},
  155.     {META|'V',        backpage},
  156.     {META|'W',        copyregion},
  157.     {META|'X',        namedcmd},
  158.     {META|'Z',        quickexit},
  159.     {META|0x7F,              delbword},
  160.  
  161. #if    MOUSE
  162.     ALTD|'a',        movemd,
  163.     ALTD|'b',        movemu,
  164.     ALTD|'c',        killmd,
  165.     ALTD|'d',        killmu,
  166.     ALTD|'e',        yankmd,
  167.     ALTD|'f',        yankmu,
  168.     ALTD|'E',        killmd,
  169.     ALTD|'F',        killmu,
  170.     ALTD|'1',        resizm,
  171. #endif 
  172.  
  173. #if    (MSDOS & (HP150 == 0) & (WANGPC == 0) & (HP110 == 0)) | OS2
  174.     {SPEC|CTRL|'_',        forwhunt},
  175.     {SPEC|CTRL|'S',        backhunt},
  176.     {SPEC|71,        gotobob},
  177.     {SPEC|72,        backline},
  178.     {SPEC|73,        backpage},
  179.     {SPEC|75,        backchar},
  180.     {SPEC|77,        forwchar},
  181.     {SPEC|79,        gotoeob},
  182.     {SPEC|80,        forwline},
  183.     {SPEC|81,        forwpage},
  184.     {SPEC|82,        insspace},
  185.     {SPEC|83,        forwdel},
  186.     {SPEC|115,        backword},
  187.     {SPEC|116,        forwword},
  188. #if    WORDPRO
  189.     {SPEC|132,        gotobop},
  190.     {SPEC|118,        gotoeop},
  191. #endif
  192.     {SPEC|84,        cbuf1},
  193.     {SPEC|85,        cbuf2},
  194.     {SPEC|86,        cbuf3},
  195.     {SPEC|87,        cbuf4},
  196.     {SPEC|88,        cbuf5},
  197.     {SPEC|89,        cbuf6},
  198.     {SPEC|90,        cbuf7},
  199.     {SPEC|91,        cbuf8},
  200.     {SPEC|92,        cbuf9},
  201.     {SPEC|93,        cbuf10},
  202. #endif
  203.  
  204. #if    HP150
  205.     {SPEC|32,        backline},
  206.     {SPEC|33,        forwline},
  207.     {SPEC|35,        backchar},
  208.     {SPEC|34,        forwchar},
  209.     {SPEC|44,        gotobob},
  210.     {SPEC|46,        forwpage},
  211.     {SPEC|47,        backpage},
  212.     {SPEC|82,        nextwind},
  213.     {SPEC|68,        openline},
  214.     {SPEC|69,        killtext},
  215.     {SPEC|65,        forwdel},
  216.     {SPEC|64,        ctlxe},
  217.     {SPEC|67,        refresh},
  218.     {SPEC|66,        reposition},
  219.     {SPEC|83,        help},
  220.     {SPEC|81,        deskey},
  221. #endif
  222.  
  223. #if    HP110
  224.     {SPEC|0x4b,        backchar},
  225.     {SPEC|0x4d,        forwchar},
  226.     {SPEC|0x48,        backline},
  227.     {SPEC|0x50,        forwline},
  228.     {SPEC|0x43,        help},
  229.     {SPEC|0x73,        backword},
  230.     {SPEC|0x74,        forwword},
  231.     {SPEC|0x49,        backpage},
  232.     {SPEC|0x51,        forwpage},
  233.     {SPEC|84,        cbuf1},
  234.     {SPEC|85,        cbuf2},
  235.     {SPEC|86,        cbuf3},
  236.     {SPEC|87,        cbuf4},
  237.     {SPEC|88,        cbuf5},
  238.     {SPEC|89,        cbuf6},
  239.     {SPEC|90,        cbuf7},
  240.     {SPEC|91,        cbuf8},
  241. #endif
  242.  
  243. #if    AMIGA
  244.     {SPEC|'?',        help},
  245.     {SPEC|'A',        backline},
  246.     {SPEC|'B',        forwline},
  247.     {SPEC|'C',        forwchar},
  248.     {SPEC|'D',        backchar},
  249.     {SPEC|'T',        backpage},
  250.     {SPEC|'S',        forwpage},
  251.     {SPEC|'a',        backword},
  252.     {SPEC|'`',        forwword},
  253.     {SPEC|'P',        cbuf1},
  254.     {SPEC|'Q',        cbuf2},
  255.     {SPEC|'R',        cbuf3},
  256.     {SPEC|'S',        cbuf4},
  257.     {SPEC|'T',        cbuf5},
  258.     {SPEC|'U',        cbuf6},
  259.     {SPEC|'V',        cbuf7},
  260.     {SPEC|'W',        cbuf8},
  261.     {SPEC|'X',        cbuf9},
  262.     {SPEC|'Y',        cbuf10},
  263.     {127,            forwdel},
  264. #endif
  265.  
  266. #if    ST520
  267.     {SPEC|'b',        help},
  268.     {SPEC|'H',        backline},
  269.     {SPEC|'P',        forwline},
  270.     {SPEC|'M',        forwchar},
  271.     {SPEC|'K',        backchar},
  272.     {SPEC|'t',        setmark},
  273.     {SPEC|'a',        yank},
  274.     {SPEC|'R',        insspace},
  275.     {SPEC|'G',        gotobob},
  276.     {127,            forwdel},
  277.     {SPEC|84,        cbuf1},
  278.     {SPEC|85,        cbuf2},
  279.     {SPEC|86,        cbuf3},
  280.     {SPEC|87,        cbuf4},
  281.     {SPEC|88,        cbuf5},
  282.     {SPEC|89,        cbuf6},
  283.     {SPEC|90,        cbuf7},
  284.     {SPEC|91,        cbuf8},
  285.     {SPEC|92,        cbuf9},
  286.     {SPEC|93,        cbuf10},
  287. #endif
  288.  
  289. #if  WANGPC
  290.     SPEC|0xE0,              quit,           /* Cancel */
  291.     SPEC|0xE1,              help,           /* Help */
  292.     SPEC|0xF1,              help,           /* ^Help */
  293.     SPEC|0xE3,              ctrlg,          /* Print */
  294.     SPEC|0xF3,              ctrlg,          /* ^Print */
  295.     SPEC|0xC0,              backline,       /* North */
  296.     SPEC|0xD0,              gotobob,        /* ^North */
  297.     SPEC|0xC1,              forwchar,       /* East */
  298.     SPEC|0xD1,              gotoeol,        /* ^East */
  299.     SPEC|0xC2,              forwline,       /* South */
  300.     SPEC|0xD2,              gotobop,        /* ^South */
  301.     SPEC|0xC3,              backchar,       /* West */
  302.     SPEC|0xD3,              gotobol,        /* ^West */
  303.     SPEC|0xC4,              ctrlg,          /* Home */
  304.     SPEC|0xD4,              gotobob,        /* ^Home */
  305.     SPEC|0xC5,              filesave,       /* Execute */
  306.     SPEC|0xD5,              ctrlg,          /* ^Execute */
  307.     SPEC|0xC6,              insfile,        /* Insert */
  308.     SPEC|0xD6,              ctrlg,          /* ^Insert */
  309.     SPEC|0xC7,              forwdel,        /* Delete */
  310.     SPEC|0xD7,              killregion,     /* ^Delete */
  311.     SPEC|0xC8,              backpage,       /* Previous */
  312.     SPEC|0xD8,              prevwind,       /* ^Previous */
  313.     SPEC|0xC9,              forwpage,       /* Next */
  314.     SPEC|0xD9,              nextwind,       /* ^Next */
  315.     SPEC|0xCB,              ctrlg,          /* Erase */
  316.     SPEC|0xDB,              ctrlg,          /* ^Erase */
  317.     SPEC|0xDC,              ctrlg,          /* ^Tab */
  318.     SPEC|0xCD,              ctrlg,          /* BackTab */
  319.     SPEC|0xDD,              ctrlg,          /* ^BackTab */
  320.     SPEC|0x80,              ctrlg,          /* Indent */
  321.     SPEC|0x90,              ctrlg,          /* ^Indent */
  322.     SPEC|0x81,              ctrlg,          /* Page */
  323.     SPEC|0x91,              ctrlg,          /* ^Page */
  324.     SPEC|0x82,              ctrlg,          /* Center */
  325.     SPEC|0x92,              ctrlg,          /* ^Center */
  326.     SPEC|0x83,              ctrlg,          /* DecTab */
  327.     SPEC|0x93,              ctrlg,          /* ^DecTab */
  328.     SPEC|0x84,              ctrlg,          /* Format */
  329.     SPEC|0x94,              ctrlg,          /* ^Format */
  330.     SPEC|0x85,              ctrlg,          /* Merge */
  331.     SPEC|0x95,              ctrlg,          /* ^Merge */
  332.     SPEC|0x86,              setmark,        /* Note */
  333.     SPEC|0x96,              ctrlg,          /* ^Note */
  334.     SPEC|0x87,              ctrlg,          /* Stop */
  335.     SPEC|0x97,              ctrlg,          /* ^Stop */
  336.     SPEC|0x88,              forwsearch,     /* Srch */
  337.     SPEC|0x98,              backsearch,     /* ^Srch */
  338.     SPEC|0x89,              sreplace,       /* Replac */
  339.     SPEC|0x99,              qreplace,       /* ^Replac */
  340.     SPEC|0x8A,              ctrlg,          /* Copy */
  341.     SPEC|0x9A,              ctrlg,          /* ^Copy */
  342.     SPEC|0x8B,              ctrlg,          /* Move */
  343.     SPEC|0x9B,              ctrlg,          /* ^Move */
  344.     SPEC|0x8C,              namedcmd,       /* Command */
  345.     SPEC|0x9C,              spawn,          /* ^Command */
  346.     SPEC|0x8D,              ctrlg,          /* ^ */
  347.     SPEC|0x9D,              ctrlg,          /* ^^ */
  348.     SPEC|0x8E,              ctrlg,          /* Blank */
  349.     SPEC|0x9E,              ctrlg,          /* ^Blank */
  350.     SPEC|0x8F,              gotoline,       /* GoTo */
  351.     SPEC|0x9F,              usebuffer,      /* ^GoTo */
  352. #endif
  353.  
  354. #if    VMSVT
  355.     { SPEC|'a', forwline },        /* Down arrow, next-line    */
  356.     { SPEC|'b', backchar },        /* Left arrow, previous-char    */
  357.     { SPEC|'c', forwchar },        /* Right arrow, next-char    */
  358.     { SPEC|'d', backline },        /* Up arrow, previous-line    */
  359.     { SPEC|'6', ctrlg },        /* F6, abort-command        */
  360.     { SPEC|'B', meta },        /* F11, meta-prefix        */
  361.     { SPEC|'C', backdel },        /* F12, delete-previous-char    */
  362.     { SPEC|'D', indent },        /* F13, newline-and-indent    */
  363.     { SPEC|'F', help },        /* Help, help            */
  364.     { SPEC|'G', nextbuffer },    /* Do, next-buffer        */
  365.     { SPEC|'N', forwsearch },    /* Find, search-forward        */
  366.     { SPEC|'O', insspace },        /* Insert here, insert-space    */
  367.     { SPEC|'P', forwdel },        /* Remove, delete-next-char    */
  368.     { SPEC|'Q', forwhunt },        /* Select, hunt-forward        */
  369.     { SPEC|'R', backpage },        /* Prev screen, previous-page    */
  370.     { SPEC|'S', forwpage },        /* Next screen, next-page    */
  371. #endif
  372.  
  373.     {0x7F,            backdel},
  374.  
  375.     {0,            NULL}
  376. };
  377.  
  378. #if RAINBOW
  379.  
  380. #include "rainbow.h"
  381.  
  382. /*
  383.  * Mapping table from the LK201 function keys to the internal EMACS character.
  384.  */
  385.  
  386. short lk_map[][2] = {
  387.     Up_Key,                         CTRL+'P',
  388.     Down_Key,                       CTRL+'N',
  389.     Left_Key,                       CTRL+'B',
  390.     Right_Key,                      CTRL+'F',
  391.     Shift+Left_Key,                 META+'B',
  392.     Shift+Right_Key,                META+'F',
  393.     Control+Left_Key,               CTRL+'A',
  394.     Control+Right_Key,              CTRL+'E',
  395.     Prev_Scr_Key,                   META+'V',
  396.     Next_Scr_Key,                   CTRL+'V',
  397.     Shift+Up_Key,                   META+'<',
  398.     Shift+Down_Key,                 META+'>',
  399.     Cancel_Key,                     CTRL+'G',
  400.     Find_Key,                       CTRL+'S',
  401.     Shift+Find_Key,                 CTRL+'R',
  402.     Insert_Key,                     CTRL+'Y',
  403.     Options_Key,                    CTRL+'D',
  404.     Shift+Options_Key,              META+'D',
  405.     Remove_Key,                     CTRL+'W',
  406.     Shift+Remove_Key,               META+'W',
  407.     Select_Key,                     CTRL+'@',
  408.     Shift+Select_Key,               CTLX+CTRL+'X',
  409.     Interrupt_Key,                  CTRL+'U',
  410.     Keypad_PF2,                     META+'L',
  411.     Keypad_PF3,                     META+'C',
  412.     Keypad_PF4,                     META+'U',
  413.     Shift+Keypad_PF2,               CTLX+CTRL+'L',
  414.     Shift+Keypad_PF4,               CTLX+CTRL+'U',
  415.     Keypad_1,                       CTLX+'1',
  416.     Keypad_2,                       CTLX+'2',
  417.     Do_Key,                         CTLX+'E',
  418.     Keypad_4,                       CTLX+CTRL+'B',
  419.     Keypad_5,                       CTLX+'B',
  420.     Keypad_6,                       CTLX+'K',
  421.     Resume_Key,                     META+'!',
  422.     Control+Next_Scr_Key,           CTLX+'N',
  423.     Control+Prev_Scr_Key,           CTLX+'P',
  424.     Control+Up_Key,                 CTLX+CTRL+'P',
  425.     Control+Down_Key,               CTLX+CTRL+'N',
  426.     Help_Key,                       CTLX+'=',
  427.     Shift+Do_Key,                   CTLX+'(',
  428.     Control+Do_Key,                 CTLX+')',
  429.     Keypad_0,                       CTLX+'Z',
  430.     Shift+Keypad_0,                 CTLX+CTRL+'Z',
  431.     Main_Scr_Key,                   CTRL+'C',
  432.     Keypad_Enter,                   CTLX+'!',
  433.     Exit_Key,                       CTLX+CTRL+'C',
  434.     Shift+Exit_Key,                 CTRL+'Z'
  435. };
  436.  
  437. #define lk_map_size     (sizeof(lk_map)/2)
  438. #endif
  439.  
  440.