home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume6 / uemacs3.7 / part03 < prev    next >
Text File  |  1986-11-30  |  37KB  |  899 lines

  1. Subject: MicroEmacs, Version 3.7 (uEmacs3.7), Part03/12
  2. Newsgroups: mod.sources
  3. Approved: rs@mirror.UUCP
  4.  
  5. Submitted by: ihnp4!pur-ee!pur-phy!duncan!lawrence
  6. Mod.sources: Volume 6, Issue 73
  7. Archive-name: uEmacs3.7/Part03
  8.  
  9. [  This is the latest revision of one of two programs named "MicroEmacs";
  10.    when discussing these on the net, or in contacting the authors, make
  11.    sure to mention the version number -- in this case 3.7 -- as that is
  12.    the easiest way to distinguish between them.  Lawrence will be posting
  13.    uuencoded executables in net.micro.pc and net.micro.amiga; the file
  14.    'readme' contains information on how to also get these from him
  15.    directly.   --r$ ]
  16.  
  17. echo extracting - edef.h
  18. sed 's/^X//' > edef.h << 'FRIDAY_NIGHT'
  19. X/*    EDEF:        Global variable definitions for
  20. X            MicroEMACS 3.2
  21. X
  22. X            written by Dave G. Conroy
  23. X            modified by Steve Wilhite, George Jones
  24. X            greatly modified by Daniel Lawrence
  25. X*/
  26. X
  27. X/* some global fuction declarations */
  28. X
  29. Xchar *malloc();
  30. X
  31. X#ifdef    maindef
  32. X
  33. X/* for MAIN.C */
  34. X
  35. X/* initialized global definitions */
  36. X
  37. Xint     fillcol = 72;                   /* Current fill column          */
  38. Xshort   kbdm[NKBDM] = {CTLX|')'};       /* Macro                        */
  39. Xchar    pat[NPAT];                      /* Search pattern        */
  40. Xchar    rpat[NPAT];            /* replacement pattern        */
  41. Xchar    sarg[NSTRING] = "";        /* string argument for line exec*/
  42. Xint    eolexist = TRUE;        /* does clear to EOL exist    */
  43. Xint    revexist = FALSE;        /* does reverse video exist?    */
  44. Xchar    *modename[] = {            /* name of modes        */
  45. X    "WRAP", "CMODE", "SPELL", "EXACT", "VIEW", "OVER", "MAGIC"};
  46. Xchar    modecode[] = "WCSEVOM";        /* letters to represent modes    */
  47. Xint    gmode = 0;            /* global editor mode        */
  48. Xint    gfcolor = 7;            /* global forgrnd color (white)    */
  49. Xint    gbcolor    = 0;            /* global backgrnd color (black)*/
  50. Xint     sgarbf  = TRUE;                 /* TRUE if screen is garbage    */
  51. Xint     mpresf  = FALSE;                /* TRUE if message in last line */
  52. Xint    clexec    = FALSE;        /* command line execution flag    */
  53. Xint    mstore    = FALSE;        /* storing text to macro flag    */
  54. Xstruct    BUFFER *bstore = NULL;        /* buffer to store macro text to*/
  55. Xint     vtrow   = 0;                    /* Row location of SW cursor */
  56. Xint     vtcol   = 0;                    /* Column location of SW cursor */
  57. Xint     ttrow   = HUGE;                 /* Row location of HW cursor */
  58. Xint     ttcol   = HUGE;                 /* Column location of HW cursor */
  59. Xint    lbound    = 0;            /* leftmost column of current line
  60. X                       being displayed */
  61. Xint    metac = CTRL | '[';        /* current meta character */
  62. Xint    ctlxc = CTRL | 'X';        /* current control X prefix char */
  63. Xint    quotec = 0x11;            /* quote char during mlreply() */
  64. Xchar    *cname[] = {            /* names of colors        */
  65. X    "BLACK", "RED", "GREEN", "YELLOW", "BLUE",
  66. X    "MAGENTA", "CYAN", "WHITE"};
  67. XKILL *kbufp  = NULL;        /* current kill buffer chunk pointer    */
  68. XKILL *kbufh  = NULL;        /* kill buffer header pointer        */
  69. Xint kused = KBLOCK;        /* # of bytes used in kill buffer    */
  70. XWINDOW *swindow = NULL;        /* saved window pointer            */
  71. X
  72. X/* uninitialized global definitions */
  73. X
  74. Xint     currow;                 /* Cursor row                   */
  75. Xint     curcol;                 /* Cursor column                */
  76. Xint     thisflag;               /* Flags, this command          */
  77. Xint     lastflag;               /* Flags, last command          */
  78. Xint     curgoal;                /* Goal for C-P, C-N            */
  79. XWINDOW  *curwp;                 /* Current window               */
  80. XBUFFER  *curbp;                 /* Current buffer               */
  81. XWINDOW  *wheadp;                /* Head of list of windows      */
  82. XBUFFER  *bheadp;                /* Head of list of buffers      */
  83. XBUFFER  *blistp;                /* Buffer for C-X C-B           */
  84. Xshort   *kbdmip;                /* Input pointer for above      */
  85. Xshort   *kbdmop;                /* Output pointer for above     */
  86. X
  87. XBUFFER  *bfind();               /* Lookup a buffer by name      */
  88. XWINDOW  *wpopup();              /* Pop up window creation       */
  89. XLINE    *lalloc();              /* Allocate a line              */
  90. X
  91. X#else
  92. X
  93. X/* for all the other .C files */
  94. X
  95. X/* initialized global external declarations */
  96. X
  97. Xextern  int     fillcol;                /* Fill column                  */
  98. Xextern  short   kbdm[];                 /* Holds kayboard macro data    */
  99. Xextern  char    pat[];                  /* Search pattern               */
  100. Xextern    char    rpat[];            /* Replacement pattern        */
  101. Xextern    char    sarg[];            /* string argument for line exec*/
  102. Xextern    int    eolexist;        /* does clear to EOL exist?    */
  103. Xextern    int    revexist;        /* does reverse video exist?    */
  104. Xextern    char *modename[];        /* text names of modes        */
  105. Xextern    char    modecode[];        /* letters to represent modes    */
  106. Xextern    KEYTAB keytab[];        /* key bind to functions table    */
  107. Xextern    NBIND names[];            /* name to function table    */
  108. Xextern    int    gmode;            /* global editor mode        */
  109. Xextern    int    gfcolor;        /* global forgrnd color (white)    */
  110. Xextern    int    gbcolor;        /* global backgrnd color (black)*/
  111. Xextern  int     sgarbf;                 /* State of screen unknown      */
  112. Xextern  int     mpresf;                 /* Stuff in message line        */
  113. Xextern    int    clexec;            /* command line execution flag    */
  114. Xextern    int    mstore;            /* storing text to macro flag    */
  115. Xextern    struct    BUFFER *bstore;        /* buffer to store macro text to*/
  116. Xextern    int     vtrow;                  /* Row location of SW cursor */
  117. Xextern    int     vtcol;                  /* Column location of SW cursor */
  118. Xextern    int     ttrow;                  /* Row location of HW cursor */
  119. Xextern    int     ttcol;                  /* Column location of HW cursor */
  120. Xextern    int    lbound;            /* leftmost column of current line
  121. X                       being displayed */
  122. Xextern    int    metac;            /* current meta character */
  123. Xextern    int    ctlxc;            /* current control X prefix char */
  124. Xextern    int    quotec;            /* quote char during mlreply() */
  125. Xextern    char    *cname[];        /* names of colors        */
  126. Xextern KILL *kbufp;            /* current kill buffer chunk pointer */
  127. Xextern KILL *kbufh;            /* kill buffer header pointer    */
  128. Xextern int kused;            /* # of bytes used in KB        */
  129. Xextern WINDOW *swindow;            /* saved window pointer        */
  130. X
  131. X/* initialized global external declarations */
  132. X
  133. Xextern  int     currow;                 /* Cursor row                   */
  134. Xextern  int     curcol;                 /* Cursor column                */
  135. Xextern  int     thisflag;               /* Flags, this command          */
  136. Xextern  int     lastflag;               /* Flags, last command          */
  137. Xextern  int     curgoal;                /* Goal for C-P, C-N            */
  138. Xextern  WINDOW  *curwp;                 /* Current window               */
  139. Xextern  BUFFER  *curbp;                 /* Current buffer               */
  140. Xextern  WINDOW  *wheadp;                /* Head of list of windows      */
  141. Xextern  BUFFER  *bheadp;                /* Head of list of buffers      */
  142. Xextern  BUFFER  *blistp;                /* Buffer for C-X C-B           */
  143. Xextern  short   *kbdmip;                /* Input pointer for above      */
  144. Xextern  short   *kbdmop;                /* Output pointer for above     */
  145. X
  146. Xextern  BUFFER  *bfind();               /* Lookup a buffer by name      */
  147. Xextern  WINDOW  *wpopup();              /* Pop up window creation       */
  148. Xextern  LINE    *lalloc();              /* Allocate a line              */
  149. X
  150. X#endif
  151. X
  152. X/* terminal table defined only in TERM.C */
  153. X
  154. X#ifndef    termdef
  155. Xextern  TERM    term;                   /* Terminal information.        */
  156. X#endif
  157. X
  158. X
  159. FRIDAY_NIGHT
  160. echo extracting - efunc.h
  161. sed 's/^X//' > efunc.h << 'FRIDAY_NIGHT'
  162. X/*    EFUNC.H:    MicroEMACS function declarations and names
  163. X
  164. X        This file list all the C code functions used by MicroEMACS
  165. X    and the names to use to bind keys to them. To add functions,
  166. X    declare it here in both the extern function list and the name
  167. X    binding table.
  168. X
  169. X*/
  170. X
  171. X/*    External function declarations        */
  172. X
  173. Xextern  int     ctrlg();                /* Abort out of things          */
  174. Xextern  int     quit();                 /* Quit                         */
  175. Xextern  int     ctlxlp();               /* Begin macro                  */
  176. Xextern  int     ctlxrp();               /* End macro                    */
  177. Xextern  int     ctlxe();                /* Execute macro                */
  178. Xextern  int     fileread();             /* Get a file, read only        */
  179. Xextern  int     filefind();        /* Get a file, read write       */
  180. Xextern  int     filewrite();            /* Write a file                 */
  181. Xextern  int     filesave();             /* Save current file            */
  182. Xextern  int     filename();             /* Adjust file name             */
  183. Xextern  int     getccol();              /* Get current column           */
  184. Xextern  int     gotobol();              /* Move to start of line        */
  185. Xextern  int     forwchar();             /* Move forward by characters   */
  186. Xextern  int     gotoeol();              /* Move to end of line          */
  187. Xextern  int     backchar();             /* Move backward by characters  */
  188. Xextern  int     forwline();             /* Move forward by lines        */
  189. Xextern  int     backline();             /* Move backward by lines       */
  190. Xextern  int     forwpage();             /* Move forward by pages        */
  191. Xextern  int     backpage();             /* Move backward by pages       */
  192. Xextern  int     gotobob();              /* Move to start of buffer      */
  193. Xextern  int     gotoeob();              /* Move to end of buffer        */
  194. Xextern  int     setfillcol();           /* Set fill column.             */
  195. Xextern  int     setmark();              /* Set mark                     */
  196. Xextern  int     swapmark();             /* Swap "." and mark            */
  197. Xextern  int     forwsearch();           /* Search forward               */
  198. Xextern  int     backsearch();           /* Search backwards             */
  199. Xextern    int    sreplace();        /* search and replace        */
  200. Xextern    int    qreplace();        /* search and replace w/query    */
  201. Xextern  int     showcpos();             /* Show the cursor position     */
  202. Xextern  int     nextwind();             /* Move to the next window      */
  203. Xextern  int     prevwind();             /* Move to the previous window  */
  204. Xextern  int     onlywind();             /* Make current window only one */
  205. Xextern  int     splitwind();            /* Split current window         */
  206. Xextern  int     mvdnwind();             /* Move window down             */
  207. Xextern  int     mvupwind();             /* Move window up               */
  208. Xextern  int     enlargewind();          /* Enlarge display window.      */
  209. Xextern  int     shrinkwind();           /* Shrink window.               */
  210. Xextern  int     listbuffers();          /* Display list of buffers      */
  211. Xextern  int     usebuffer();            /* Switch a window to a buffer  */
  212. Xextern  int     killbuffer();           /* Make a buffer go away.       */
  213. Xextern  int     reposition();           /* Reposition window            */
  214. Xextern  int     refresh();              /* Refresh the screen           */
  215. Xextern  int     twiddle();              /* Twiddle characters           */
  216. Xextern  int     tab();                  /* Insert tab                   */
  217. Xextern  int     newline();              /* Insert CR-LF                 */
  218. Xextern  int     indent();               /* Insert CR-LF, then indent    */
  219. Xextern  int     openline();             /* Open up a blank line         */
  220. Xextern  int     deblank();              /* Delete blank lines           */
  221. Xextern  int     quote();                /* Insert literal               */
  222. Xextern  int     backword();             /* Backup by words              */
  223. Xextern  int     forwword();             /* Advance by words             */
  224. Xextern  int     forwdel();              /* Forward delete               */
  225. Xextern  int     backdel();              /* Backward delete              */
  226. Xextern  int     killtext();             /* Kill forward                 */
  227. Xextern  int     yank();                 /* Yank back from killbuffer.   */
  228. Xextern  int     upperword();            /* Upper case word.             */
  229. Xextern  int     lowerword();            /* Lower case word.             */
  230. Xextern  int     upperregion();          /* Upper case region.           */
  231. Xextern  int     lowerregion();          /* Lower case region.           */
  232. Xextern  int     capword();              /* Initial capitalize word.     */
  233. Xextern  int     delfword();             /* Delete forward word.         */
  234. Xextern  int     delbword();             /* Delete backward word.        */
  235. Xextern  int     killregion();           /* Kill region.                 */
  236. Xextern  int     copyregion();           /* Copy region to kill buffer.  */
  237. Xextern  int     spawncli();             /* Run CLI in a subjob.         */
  238. Xextern  int     spawn();                /* Run a command in a subjob.   */
  239. X#if    BSD
  240. Xextern    int    bktoshell();        /* suspend emacs to parent shell*/
  241. Xextern    int    rtfrmshell();        /* return from a suspended state*/
  242. X#endif
  243. Xextern  int     quickexit();            /* low keystroke style exit.    */
  244. Xextern    int    setmode();        /* set an editor mode        */
  245. Xextern    int    delmode();        /* delete a mode        */
  246. Xextern    int    gotoline();        /* go to a numbered line    */
  247. Xextern    int    namebuffer();        /* rename the current buffer    */
  248. X#if    WORDPRO
  249. Xextern    int    gotobop();        /* go to begining/paragraph    */
  250. Xextern    int    gotoeop();        /* go to end/paragraph        */
  251. Xextern    int    fillpara();        /* fill current paragraph    */
  252. X#endif
  253. Xextern    int    help();            /* get the help file here    */
  254. Xextern    int    deskey();        /* describe a key's binding    */
  255. Xextern    int    viewfile();        /* find a file in view mode    */
  256. Xextern    int    insfile();        /* insert a file        */
  257. Xextern    int    scrnextup();        /* scroll next window back    */
  258. Xextern    int    scrnextdw();        /* scroll next window down    */
  259. Xextern    int    bindtokey();        /* bind a function to a key    */
  260. Xextern    int    unbindkey();        /* unbind a key's function    */
  261. Xextern    int    namedcmd();        /* execute named command    */
  262. Xextern    int    desbind();        /* describe bindings        */
  263. Xextern    int    execcmd();        /* execute a command line    */
  264. Xextern    int    execbuf();        /* exec commands from a buffer    */
  265. Xextern    int    execfile();        /* exec commands from a file    */
  266. Xextern    int    nextbuffer();        /* switch to the next buffer    */
  267. X#if    WORDPRO
  268. Xextern    int    killpara();        /* kill the current paragraph    */
  269. X#endif
  270. Xextern    int    setgmode();        /* set a global mode        */
  271. Xextern    int    delgmode();        /* delete a global mode        */
  272. Xextern    int    insspace();        /* insert a space forword    */
  273. Xextern    int    forwhunt();        /* hunt forward for next match    */
  274. Xextern    int    backhunt();        /* hunt backwards for next match*/
  275. Xextern    int    pipe();            /* pipe command into buffer    */
  276. Xextern    int    filter();        /* filter buffer through dos    */
  277. Xextern    int    delwind();        /* delete the current window    */
  278. Xextern    int    cbuf1();        /* execute numbered comd buffer */
  279. Xextern    int    cbuf2();
  280. Xextern    int    cbuf3();
  281. Xextern    int    cbuf4();
  282. Xextern    int    cbuf5();
  283. Xextern    int    cbuf6();
  284. Xextern    int    cbuf7();
  285. Xextern    int    cbuf8();
  286. Xextern    int    cbuf9();
  287. Xextern    int    cbuf10();
  288. Xextern    int    cbuf11();
  289. Xextern    int    cbuf12();
  290. Xextern    int    cbuf13();
  291. Xextern    int    cbuf14();
  292. Xextern    int    cbuf15();
  293. Xextern    int    cbuf16();
  294. Xextern    int    cbuf17();
  295. Xextern    int    cbuf18();
  296. Xextern    int    cbuf19();
  297. Xextern    int    cbuf20();
  298. Xextern    int    cbuf21();
  299. Xextern    int    cbuf22();
  300. Xextern    int    cbuf23();
  301. Xextern    int    cbuf24();
  302. Xextern    int    cbuf25();
  303. Xextern    int    cbuf26();
  304. Xextern    int    cbuf27();
  305. Xextern    int    cbuf28();
  306. Xextern    int    cbuf29();
  307. Xextern    int    cbuf30();
  308. Xextern    int    cbuf31();
  309. Xextern    int    cbuf32();
  310. Xextern    int    cbuf33();
  311. Xextern    int    cbuf34();
  312. Xextern    int    cbuf35();
  313. Xextern    int    cbuf36();
  314. Xextern    int    cbuf37();
  315. Xextern    int    cbuf38();
  316. Xextern    int    cbuf39();
  317. Xextern    int    cbuf40();
  318. Xextern    int    storemac();        /* store text for macro        */
  319. Xextern    int    resize();        /* resize current window    */
  320. Xextern    int    clrmes();        /* clear the message line    */
  321. Xextern    int    meta();            /* meta prefix dummy function    */
  322. Xextern    int    cex();            /* ^X prefix dummy function    */
  323. Xextern    int    istring();        /* insert string in text    */
  324. Xextern    int    unmark();        /* unmark current buffer    */
  325. X#if    ISRCH
  326. Xextern    int    fisearch();        /* forward incremental search    */
  327. Xextern    int    risearch();        /* reverse incremental search    */
  328. X#endif
  329. X#if    WORDPRO
  330. Xextern    int    wordcount();        /* count words in region    */
  331. X#endif
  332. Xextern    int    savewnd();        /* save current window        */
  333. Xextern    int    restwnd();        /* restore current window    */
  334. Xextern    int    upscreen();        /* force screen update        */
  335. Xextern    int    writemsg();        /* write text on message line    */
  336. X
  337. X/*    Name to function binding table
  338. X
  339. X        This table gives the names of all the bindable functions
  340. X    end their C function address. These are used for the bind-to-key
  341. X    function.
  342. X*/
  343. X
  344. XNBIND    names[] = {
  345. X    {"add-mode",            setmode},
  346. X    {"add-global-mode",        setgmode},
  347. X    {"backward-character",        backchar},
  348. X    {"begin-macro",            ctlxlp},
  349. X    {"begining-of-file",        gotobob},
  350. X    {"begining-of-line",        gotobol},
  351. X    {"bind-to-key",            bindtokey},
  352. X    {"buffer-position",        showcpos},
  353. X    {"case-region-lower",        lowerregion},
  354. X    {"case-region-upper",        upperregion},
  355. X    {"case-word-capitalize",    capword},
  356. X    {"case-word-lower",        lowerword},
  357. X    {"case-word-upper",        upperword},
  358. X    {"change-file-name",        filename},
  359. X    {"clear-and-redraw",        refresh},
  360. X    {"clear-message-line",        clrmes},
  361. X    {"copy-region",            copyregion},
  362. X#if    WORDPRO
  363. X    {"count-words",            wordcount},
  364. X#endif
  365. X    {"ctlx-prefix",            cex},
  366. X    {"delete-blank-lines",        deblank},
  367. X    {"delete-buffer",        killbuffer},
  368. X    {"delete-mode",            delmode},
  369. X    {"delete-global-mode",        delgmode},
  370. X    {"delete-next-character",    forwdel},
  371. X    {"delete-next-word",        delfword},
  372. X    {"delete-other-windows",    onlywind},
  373. X    {"delete-previous-character",    backdel},
  374. X    {"delete-previous-word",    delbword},
  375. X    {"delete-window",        delwind},
  376. X    {"describe-bindings",        desbind},
  377. X    {"describe-key",        deskey},
  378. X    {"end-macro",            ctlxrp},
  379. X    {"end-of-file",            gotoeob},
  380. X    {"end-of-line",            gotoeol},
  381. X    {"exchange-point-and-mark",    swapmark},
  382. X    {"execute-buffer",        execbuf},
  383. X    {"execute-command-line",    execcmd},
  384. X    {"execute-file",        execfile},
  385. X    {"execute-macro",        ctlxe},
  386. X    {"execute-macro-1",        cbuf1},
  387. X    {"execute-macro-2",        cbuf2},
  388. X    {"execute-macro-3",        cbuf3},
  389. X    {"execute-macro-4",        cbuf4},
  390. X    {"execute-macro-5",        cbuf5},
  391. X    {"execute-macro-6",        cbuf6},
  392. X    {"execute-macro-7",        cbuf7},
  393. X    {"execute-macro-8",        cbuf8},
  394. X    {"execute-macro-9",        cbuf9},
  395. X    {"execute-macro-10",        cbuf10},
  396. X    {"execute-macro-11",        cbuf11},
  397. X    {"execute-macro-12",        cbuf12},
  398. X    {"execute-macro-13",        cbuf13},
  399. X    {"execute-macro-14",        cbuf14},
  400. X    {"execute-macro-15",        cbuf15},
  401. X    {"execute-macro-16",        cbuf16},
  402. X    {"execute-macro-17",        cbuf17},
  403. X    {"execute-macro-18",        cbuf18},
  404. X    {"execute-macro-19",        cbuf19},
  405. X    {"execute-macro-20",        cbuf20},
  406. X    {"execute-macro-21",        cbuf21},
  407. X    {"execute-macro-22",        cbuf22},
  408. X    {"execute-macro-23",        cbuf23},
  409. X    {"execute-macro-24",        cbuf24},
  410. X    {"execute-macro-25",        cbuf25},
  411. X    {"execute-macro-26",        cbuf26},
  412. X    {"execute-macro-27",        cbuf27},
  413. X    {"execute-macro-28",        cbuf28},
  414. X    {"execute-macro-29",        cbuf29},
  415. X    {"execute-macro-30",        cbuf30},
  416. X    {"execute-macro-31",        cbuf31},
  417. X    {"execute-macro-32",        cbuf32},
  418. X    {"execute-macro-33",        cbuf33},
  419. X    {"execute-macro-34",        cbuf34},
  420. X    {"execute-macro-35",        cbuf35},
  421. X    {"execute-macro-36",        cbuf36},
  422. X    {"execute-macro-37",        cbuf37},
  423. X    {"execute-macro-38",        cbuf38},
  424. X    {"execute-macro-39",        cbuf39},
  425. X    {"execute-macro-40",        cbuf40},
  426. X    {"execute-named-command",    namedcmd},
  427. X    {"exit-emacs",            quit},
  428. X#if    WORDPRO
  429. X    {"fill-paragraph",        fillpara},
  430. X#endif
  431. X    {"filter-buffer",        filter},
  432. X    {"find-file",            filefind},
  433. X    {"forward-character",        forwchar},
  434. X    {"goto-line",            gotoline},
  435. X    {"grow-window",            enlargewind},
  436. X    {"handle-tab",            tab},
  437. X    {"hunt-forward",        forwhunt},
  438. X    {"hunt-backward",        backhunt},
  439. X    {"help",            help},
  440. X    {"i-shell",            spawncli},
  441. X#if    ISRCH
  442. X    {"incremental-search",        fisearch},
  443. X#endif
  444. X    {"insert-file",            insfile},
  445. X    {"insert-space",        insspace},
  446. X    {"insert-string",        istring},
  447. X#if    WORDPRO
  448. X    {"kill-paragraph",        killpara},
  449. X#endif
  450. X    {"kill-region",            killregion},
  451. X    {"kill-to-end-of-line",        killtext},
  452. X    {"list-buffers",        listbuffers},
  453. X    {"meta-prefix",            meta},
  454. X    {"move-window-down",        mvdnwind},
  455. X    {"move-window-up",        mvupwind},
  456. X    {"name-buffer",            namebuffer},
  457. X    {"newline",            newline},
  458. X    {"newline-and-indent",        indent},
  459. X    {"next-buffer",            nextbuffer},
  460. X    {"next-line",            forwline},
  461. X    {"next-page",            forwpage},
  462. X#if    WORDPRO
  463. X    {"next-paragraph",        gotoeop},
  464. X#endif
  465. X    {"next-window",            nextwind},
  466. X    {"next-word",            forwword},
  467. X    {"open-line",            openline},
  468. X    {"pipe-command",        pipe},
  469. X    {"previous-line",        backline},
  470. X    {"previous-page",        backpage},
  471. X#if    WORDPRO
  472. X    {"previous-paragraph",        gotobop},
  473. X#endif
  474. X    {"previous-window",        prevwind},
  475. X    {"previous-word",        backword},
  476. X    {"query-replace-string",    qreplace},
  477. X    {"quick-exit",            quickexit},
  478. X    {"quote-character",        quote},
  479. X    {"read-file",            fileread},
  480. X    {"redraw-display",        reposition},
  481. X    {"resize-window",        resize},
  482. X    {"restore-window",        restwnd},
  483. X    {"replace-string",        sreplace},
  484. X#if    ISRCH
  485. X    {"reverse-incremental-search",    risearch},
  486. X#endif
  487. X    {"save-file",            filesave},
  488. X    {"save-window",            savewnd},
  489. X    {"scroll-next-up",        scrnextup},
  490. X    {"scroll-next-down",        scrnextdw},
  491. X    {"search-forward",        forwsearch},
  492. X    {"search-reverse",        backsearch},
  493. X    {"select-buffer",        usebuffer},
  494. X    {"set-fill-column",        setfillcol},
  495. X    {"set-mark",            setmark},
  496. X    {"shell-command",        spawn},
  497. X    {"shrink-window",        shrinkwind},
  498. X    {"split-current-window",    splitwind},
  499. X    {"store-macro",            storemac},
  500. X#if    BSD
  501. X    {"suspend-emacs",        bktoshell},
  502. X#endif
  503. X    {"transpose-characters",    twiddle},
  504. X    {"unbind-key",            unbindkey},
  505. X    {"unmark-buffer",        unmark},
  506. X    {"update-screen",        upscreen},
  507. X    {"view-file",            viewfile},
  508. X    {"write-file",            filewrite},
  509. X    {"write-message",        writemsg},
  510. X    {"yank",            yank},
  511. X
  512. X    {"",            NULL}
  513. X};
  514. FRIDAY_NIGHT
  515. echo extracting - emacs.hlp
  516. sed 's/^X//' > emacs.hlp << 'FRIDAY_NIGHT'
  517. X=>        MicroEMACS 3.7 Help screens        (07/02/86)
  518. X
  519. X    M-  means to use the <ESC> key prior to using another key
  520. X    ^A  means to use the control key at the same time as the A key
  521. X
  522. X^V or [Pg Dn]     Scroll down        M-< or <HOME>    Begining of file
  523. X^Z or [Pg Up]     Scroll up        M-> or <END>    End of file
  524. X
  525. X-----------------------------------------------------------------------
  526. X=>        (1) MOVING THE CURSOR
  527. X
  528. X^F  Forward character   M-F    Forward word        Keypad arrows
  529. X^B  Backward character  M-B    Backward word        are active!
  530. X^A  Front of line    M-G    Goto a line
  531. X^E  End of line        
  532. X^N  Next line        M-N    Front of paragraph
  533. X^P  Previous line    M-P    End of paragraph
  534. X-----------------------------------------------------------------------
  535. X=>        (2) DELETING & INSERTING
  536. X
  537. X<--             Delete previous character
  538. X^D or <DELETE>  Delete next character
  539. X^C or <INSERT>  Insert a space
  540. XM-<--           Delete previous word
  541. XM-D             Delete next word
  542. X^K              Close (delete) to end of line
  543. X-----------------------------------------------------------------------
  544. X=>        (2a) MORE DELETING & INSERTING
  545. X
  546. X<RETURN>   Insert a newline             <TAB>  Advance to next tab stop
  547. X^J         Insert a newline and indent  M-^W   Delete paragraph
  548. X^O         Open (insert) line
  549. X^W         Delete region between mark (set using M-<spacebar>) and cursor
  550. XM-W        Copy region to kill buffer
  551. X^X ^O      Delete blank lines around cursor
  552. X-----------------------------------------------------------------------
  553. X=>        (3) SEARCHING
  554. X
  555. X^S    Search forward from cursor position.
  556. X^R    Reverse search from cursor position.
  557. X^X S    Forward incremental search
  558. X^X R    Reverse incremental search
  559. X<ALT> S    Search for the next occurence of the last string (IBM-PC only)
  560. X<ALT> R    Search for the last occurence of the last string (IBM-PC only)
  561. X-----------------------------------------------------------------------
  562. X=>        (4) REPLACING
  563. X
  564. XM-R   Replace all instances of first typed-in string with second
  565. X          typed-in string.  End each string with ESC.
  566. XM-^R  Replace with query.  Answer with:
  567. X    ^G  cancel            .   exit to entry point
  568. X    !   replace the rest        Y    replace & continue
  569. X    ?   Get a list of options    N   no replacement & continue
  570. X-----------------------------------------------------------------------
  571. X=>        (5) CAPITALIZING & TRANSPOSING
  572. X
  573. XM-U    UPPERCASE word
  574. XM-C    Capitalize word        ^T    Transpose characters
  575. XM-L    lowercase word
  576. X^X ^L    lowercase region
  577. X^X ^U    uppercase region
  578. X^Q    Quote next entry, so that control codes may be entered into text
  579. X-----------------------------------------------------------------------
  580. X=>        (6) REGIONS & THE KILL BUFFER
  581. X
  582. XM-<spacebar>    set MARK at current position
  583. X^X ^X        eXchange mark and cursor
  584. X
  585. XA REGION will then be continuously-defined as the area between the mark and
  586. Xthe current cursor position.  The KILL BUFFER is the text which has been
  587. Xmost recently saved or deleted.
  588. X-----------------------------------------------------------------------
  589. X=>        (7) COPYING AND MOVING
  590. X
  591. X^W  Delete (Wipe) region        M-W    copy region to KILL buffer
  592. X^Y  Yankback save buffer at cursor
  593. XGenerally, the procedure for copying or moving text is:
  594. X    1)  Mark a REGION using M-<spacebar> at beginning and cursor at end.
  595. X    2)  Delete it (with ^W) or copy it (with M-W) into the KILL buffer.
  596. X    3)  Move the cursor to the desired location and yank it back (with ^Y).
  597. X-----------------------------------------------------------------------
  598. X=>        (8) MODES OF OPERATION
  599. X^X M    Add mode in buffer              M-M    Add global mode
  600. X^X ^M   Delete mode in buffer           M-^M   Delete global mode
  601. XOVER        Replaces (overwrites) rather than inserts characters
  602. XWRAP        Turns on word wrap (automatic carraige return).
  603. XVIEW        Allows viewing file without insertion and deletion.
  604. XCMODE        Automatic indenting for C program entry
  605. XEXACT/MAGIC    Changes how search and replace commands work (see next page)
  606. X-----------------------------------------------------------------------
  607. X=>        (9) SEARCH AND REPLACE MODES
  608. X
  609. XEXACT    Uppper/lower case is not ignored in searches
  610. XMAGIC   Regular pattern matching characters are active
  611. X           ?   Matches any one character
  612. X           *   Matches any sequence of characters
  613. X    [EXACT MODE NOT READY YET ---- 6/5/86]
  614. X
  615. X-----------------------------------------------------------------------
  616. X=>        (10) ON-SCREEN FORMATTING
  617. X
  618. X^X F        Set fill column
  619. XMn-<tab>    Set tab spacing to n charecters between tabs stops
  620. XM-Q        Format paragraph so that text lies between margins
  621. X^X =        Position report -- displays line number, char count,
  622. X                                   file size and character under cursor
  623. XM-^C        Count words/lines/chars in marked region
  624. X-----------------------------------------------------------------------
  625. X=>        (11) MULTIPLE WINDOWS
  626. X
  627. XMany WINDOWS may be active at once on the screen.  All windows may show
  628. Xdifferent parts of the same buffer, or each may display a different one.
  629. X^X 2    Split the current window in two    ^X O    Change to next window
  630. X^X 0    delete current window           ^X P    Change to previous window
  631. X^X 1    delete all other windows        M-^V    Page down next window
  632. X                                      M-^Z    Page up other window
  633. X-----------------------------------------------------------------------
  634. X=>        (12) CONTROLLING WINDOWS
  635. X
  636. X^X ^    Enlarge current window   M-<n> ^X W   Resize window to <n> lines
  637. X^X ^Z   Shrink current window
  638. X^X ^N   Move window down
  639. X^X ^P   Move window up
  640. XM-^L    Reposition window
  641. X^L      Refresh the screen
  642. X-----------------------------------------------------------------------
  643. X=>        (13) MULTIPLE BUFFERS
  644. XA BUFFER is a named area containing a document being edited.  Many buffers
  645. Xmay be activated at once.
  646. X^X B    Switch to another buffer.  <CR> = use just-previous buffer
  647. X^X X    Switch to next buffer in buffer list
  648. XM-^N    Change name of current buffer
  649. X^X K    Delete a non-displayed buffer.
  650. X^X ^B    Display buffer directory in a window
  651. X-----------------------------------------------------------------------
  652. X=>        (14) READING FROM DISK
  653. X
  654. X^X ^F    Find file; read into a new buffer created from filename.
  655. X    (This is the usual way to begin editing a new file.)
  656. X^X ^R    Read file into current buffer, erasing its previous contents.
  657. X    No new buffer will be created.
  658. X^X ^I    Insert file into current buffer at cursor's location.
  659. X^X ^V    Find a file to make current in VIEW mode
  660. X-----------------------------------------------------------------------
  661. X=>        (15) SAVING TO DISK
  662. X
  663. X^X ^S    Save current buffer to disk
  664. X^X ^W    Write current buffer to disk
  665. X^X N    Change file name of current buffer
  666. XM-Z    Write out all changed buffers and exit MicroEMACS
  667. X
  668. X
  669. X-----------------------------------------------------------------------
  670. X=>        (16) ACCESSING THE OPERATING SYSTEM
  671. X
  672. X^X !    Send one command to the operating system and return
  673. X^X @    Pipe DOS command results to buffer
  674. X^X #    Filter buffer through DOS filter program
  675. X^X C    Start a new command processor under MicroEMACS
  676. X^X D    Suspend MicroEMACS into the background (UNIX BSD4.2 only)
  677. X^X ^C    Exit MicroEMACS
  678. X-----------------------------------------------------------------------
  679. X=>        (17) KEY BINDINGS AND COMMANDS
  680. X
  681. XM-K    Bind a key to a command
  682. XM-^K    Unbind a key from a command
  683. X^X ?    Describe command bound to a key
  684. XM-X    Execute a named (and possibly unbound) command
  685. X{Describe-bindings}
  686. X    Display a list of all commands and key bindings to a buffer
  687. X-----------------------------------------------------------------------
  688. X=>        (18) COMMAND EXECUTION
  689. XCommands can be specified as command lines in the form:
  690. X    <optional repeat count> {command-name} <optional arguments>
  691. X{Execute-command-line}    execute a typed in command line
  692. X{Execute-buffer}    executes commands lines in a buffer
  693. X{Execute-file}        executes command lines from a file
  694. X{clear-message-line}    clears the message line during execution
  695. X   M-~            clears the change flag for a buffer
  696. X-----------------------------------------------------------------------
  697. X=>        (19) MACRO EXECUTION
  698. X
  699. X^X (    Start recording keyboard macro
  700. X^X )    Stop recording keyboard macro
  701. X^X E    Execute keyboard macro
  702. XM-<n> {store-macro}    Start recording named macro
  703. X      [end]        Stop recording named macro
  704. X{execute-macro-n}    Execute macro n (where n is from 1 to 20)
  705. X-----------------------------------------------------------------------
  706. X=>        (20) SPECIAL KEYS
  707. X
  708. X^G        Cancel current command and return to top level of processing.
  709. X^U or        Universal repeat.  May be followed by an integer (default = 4)
  710. XM-<digit>    and repeats the next command that many times.
  711. XM-X        Execute a named (and possibly unbound) command
  712. X
  713. X
  714. FRIDAY_NIGHT
  715. echo extracting - emacs.key
  716. sed 's/^X//' > emacs.key << 'FRIDAY_NIGHT'
  717. X        Default Key Bindings for MicroEmacs 3.7        (06/05/86)
  718. X        ========================================
  719. X
  720. X ^A   Move to start of line           
  721. X ^B   Move backward by characters     ESC B   Backup by words
  722. X ^C   Insert space                    ESC C   Initial capitalize word
  723. X ^D   Forward delete                  ESC D   Delete forward word
  724. X ^E   Goto end of line                     
  725. X ^F   Move forward by characters      ESC F   Advance by words
  726. X ^G   Abort out of things             ESC G   Go to a line
  727. X ^H   Backward delete                 
  728. X ^I   Insert tab/Set tab stops
  729. X ^J   Insert CR-LF, then indent                     
  730. X ^K   Kill forward                    ESC K   Bind Key to function
  731. X ^L   Refresh the screen              ESC L   Lower case word
  732. X ^M   Insert CR-LF                    ESC M   Add global mode
  733. X ^N   Move forward by lines           ESC N   Goto End paragraph
  734. X ^O   Open up a blank line            
  735. X ^P   Move backward by lines          ESC P   Goto Begining of paragraph
  736. X ^Q   Insert literal                  ESC Q   Fill current paragraph
  737. X ^R   Search backwards                ESC R   Search and replace
  738. X ^S   Search forward
  739. X ^T   Transpose characters                     
  740. X ^U   Repeat command four times       ESC U   Upper case word
  741. X ^V   Move forward by pages           ESC V   Move backward by pages
  742. X ^W   Kill region                     ESC W   Copy region to kill buffer
  743. X ^Y   Yank back from killbuffer       ESC X   Execute named command
  744. X ^Z   Move backward by pages          ESC Z   Save all buffers and exit
  745. X
  746. X ESC ^C   Count words in region       ESC ~   Unmark current buffer
  747. X ESC ^H   Delete backward word        ESC !   Reposition window
  748. X ESC ^K   Unbind Key from function    ESC <   Move to start of buffer
  749. X ESC ^L   Reposition window           ESC >   Move to end of buffer
  750. X ESC ^M   Delete global mode          ESC .   Set mark
  751. X ESC ^N   Rename current buffer       ESC space    Set mark
  752. X ESC ^R   Search & replace w/query    ESC rubout   Delete backward word
  753. X ESC ^V   Scroll next window down         rubout   Backward delete       
  754. X ESC ^W   Delete Paragraph
  755. X ESC ^Z   Scroll next window up
  756. X
  757. X ^X ?   Describe a key             ^X !   Run 1 command in a subjob
  758. X ^X =   Show the cursor position   ^X @   Pipe DOS command to buffer
  759. X ^X ^   Enlarge display window     ^X #   Filter buffer thru DOS filter
  760. X ^X 0   Delete current window      ^X (   Begin macro
  761. X ^X 1   Delete other windows       ^X )   End macro
  762. X ^X 2   Split current window
  763. X
  764. X ^X ^B   Display buffer list       ^X B   Switch a window to a buffer
  765. X ^X ^C   Exit MicroEMACS           ^X C   Start a new command processer
  766. X                                   ^X D   Suspend MicroEMACS (BSD4.2 only)
  767. X                                   ^X E   Execute macro
  768. X ^X ^F   Find file                 ^X F   Set fill column
  769. X ^X ^I   Insert file
  770. X                                   ^X K   Delete buffer
  771. X ^X ^L   Lower case region
  772. X ^X ^M   Delete Mode               ^X M   Add a mode
  773. X ^X ^N   Move window down          ^X N   Rename current filename
  774. X ^X ^O   Delete blank lines        ^X O   Move to the next window
  775. X ^X ^P   Move window up            ^X P   Move to the previous window
  776. X ^X ^R   Get a file from disk      ^X R   Incremental reverse search
  777. X ^X ^S   Save current file         ^X S   Incremental forward search
  778. X ^X ^U   Upper case region
  779. X ^X ^V   View file
  780. X ^X ^W   Write a file to disk      ^X W   resize Window
  781. X ^X ^X   Swap "." and mark         ^X X   Use next buffer
  782. X ^X ^Z   Shrink window             ^X Z   Enlarge display window
  783. X
  784. XOnly under PCDOS:
  785. X <ALT>-S Hunt forward        SHIFT <F1> - <F10>
  786. X <ALT>-R Hunt backward           Execute macroes 1 - 10
  787. X
  788. XUnbound commands:
  789. X=================
  790. Xdescribe-bindings    pull the list of current bindings into a window
  791. Xclear-message-line      clears the message line (for in macroes)
  792. Xexecute-buffer        execute a buffer od command lines
  793. Xexecute-command-line    execute a command line (n <command> <args>)
  794. Xexecute-file        execute a file of command lines
  795. Xexecute-named-command    execute a command by name (w/command completion)
  796. Xexecute-macro-[1-20]    execute macroes 1 thru 20
  797. Xhunt-forward        find next occurance of search string
  798. Xhunt-backward        find last occurance of search string
  799. X
  800. XUsable Modes
  801. X============
  802. XWRAP     Lines going past right margin "wrap" to a new line
  803. XVIEW     Read-Only mode where no modifications are allowed
  804. XCMODE    Change behavior of some commands to work with C better
  805. XEXACT    Exact case matching on search strings
  806. XOVER     Overwrite typed characters instead of inserting them
  807. XMAGIC    Use regular expresion matching in searches [NOT READY YET]
  808. X
  809. XWHITE/CYAN/MAGENTA/YELLOW/BLUE/RED/GREEN/BLACK    Sets foreground color
  810. Xwhite/cyan/magenta/yellow/blue/red/green/black    Sets background color
  811. FRIDAY_NIGHT
  812. echo extracting - emacs.rc
  813. sed 's/^X//' > emacs.rc << 'FRIDAY_NIGHT'
  814. X;    EMACS.RC:    Startup file for MicroEMACS 3.4
  815. X;
  816. X;            This file is executed everytime the
  817. X;            editor is entered
  818. X
  819. X;    ***** Rebind the Function key group
  820. X
  821. Xbind-to-key execute-named-command    FN;
  822. Xbind-to-key execute-file        FN<
  823. Xbind-to-key hunt-forward        FN=
  824. Xbind-to-key hunt-backward        FN>
  825. Xbind-to-key next-window            FN?
  826. Xbind-to-key execute-macro        FN@
  827. Xbind-to-key find-file            FNA
  828. Xbind-to-key view-file            FNB
  829. Xbind-to-key save-file            FNC
  830. Xbind-to-key exit-emacs            FND
  831. X
  832. X;    set screen colors
  833. Xadd-global-mode "blue"
  834. X
  835. X;    Enter Help
  836. X1 store-macro
  837. X    help
  838. X    8 resize-window
  839. X    bind-to-key execute-macro-12 FNI
  840. X    bind-to-key execute-macro-13 FNQ
  841. X    bind-to-key execute-macro-11 FNT
  842. X    add-mode "red"
  843. X    begining-of-file
  844. X    2 forward-character
  845. X    clear-message-line
  846. X[end]
  847. X
  848. X;    consult file
  849. X2 store-macro
  850. X    2 split-current-window
  851. X    previous-window
  852. X    view-file "@File to Consult: "
  853. X    8 resize-window
  854. X    add-mode "green"
  855. X    add-mode "Black"
  856. X    next-window
  857. X[end]
  858. X
  859. X;    Exit Help
  860. X11 store-macro
  861. X    bind-to-key previous-page FNI
  862. X    bind-to-key next-page FNQ
  863. X    bind-to-key execute-macro-1 FNT
  864. X    delete-window
  865. X    clear-message-line
  866. X[end]
  867. X
  868. X;    last help page
  869. X12 store-macro
  870. X    begining-of-line
  871. X    search-reverse "=>"
  872. X    1 redraw-display
  873. X[end]
  874. X
  875. X;    next help page
  876. X13 store-macro
  877. X    begining-of-line
  878. X    2 forward-character
  879. X    search-forward "=>"
  880. X    1 redraw-display
  881. X[end]
  882. X
  883. X;    bring up the function key window
  884. X
  885. X    2 split-current-window
  886. X    select-buffer "Function Keys"
  887. X    add-mode "red"
  888. X    2 resize-window
  889. X    insert-string "F1 exec cmd    F2  exec file   F3 hunt       F4  back hunt     F5  next window"
  890. X    newline
  891. X    insert-string "F6 exec macro  F7  find file   F8 view file  F9  save file     F10 exit emacs"
  892. X    begining-of-file
  893. X    unmark-buffer
  894. X    next-window
  895. FRIDAY_NIGHT
  896. echo es.3 completed!
  897. : That's all folks!
  898.  
  899.