home *** CD-ROM | disk | FTP | other *** search
/ Carousel Volume 2 #1 / carousel.iso / mactosh / code / microema.sit / src / ebind.h < prev    next >
Encoding:
Text File  |  1989-06-09  |  9.9 KB  |  438 lines  |  [TEXT/Earl]

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