0707070000020054451006440001460001440000010717550366170546500000500000000005Size1500 0707070000020026631007770001460001440000010125220366737743100001000000002766InstallLIBDIR=/usr/lib BINDIR=/usr/bin THISDIR=`pwd` mv emacs $BINDIR mv dired $BINDIR mv ecomp $BINDIR chmod +x $BINDIR/emacs $BINDIR/dired $BINDIR/ecomp STICKDOCS mv $HOME/.emacs_init $HOME/o.emacs_init 2> /dev/null mkdir $LIBDIR/emacs 2>/dev/null mkdir $LIBDIR/emacs/macros 2>/dev/null mkdir $LIBDIR/emacs/terminals 2>/dev/null mkdir $LIBDIR/emacs/macro_source 2>/dev/null mv helpfile errfile emacs_defs $LIBDIR/emacs mv emacs.init $LIBDIR/emacs/.emacs_init echo "Installing Emacs Files" mv dired.init $LIBDIR/emacs/.dired_init cd $LIBDIR/emacs/terminals cpio -ic <$THISDIR/TERMINALS cd ../macros mv $THISDIR/spell73 . cpio -ic <$THISDIR/MACROS cd ../macro_source cpio -ic <$THISDIR/MACRO_SOURCE echo "Compiling macro sources" for i in *.e do echo compiling $i ln $i ../macros ecomp ../macros/$i rm ../macros/$i done echo "Do you want Emacs to be the default editor for" echo "normal text files? (type y or n)" ANSWER=`line` if [ $ANSWER = "y" ] then grep -v "^EDIT" /usr/lib/ua/Environment > /tmp/t echo "EDIT=/usr/bin/emacs" >> /tmp/t cp /tmp/t /usr/lib/ua/Environment fi rm -f /tmp/t message -i "EMACS for the UNIX PC has been installed. Please read the document EMACS.UNIX.PC that has been placed in your DOCS folder in your Filecabinet. It explains several new features allowing you to use the UNIX PC mouse with EMACS. Please touch to continue." message -i "Further documentation for EMACS is available by ordering EMACSDOCS from THE STORE! (It is highly recommended). \n\nTouch to continue." 0707070000020101621007770001460001440000010712600360776155200000700000000545Removeecho "Removing emacs files" rm -f /usr/bin/emacs rm -f /usr/bin/dired rm -f /usr/bin/ecomp rm -rf /usr/lib/emacs ED=`grep "^EDIT" /usr/lib/ua/Environment` if [ $ED = "EDIT=/usr/bin/emacs" ] then grep -v "^EDIT" /usr/lib/ua/Environment > /tmp/t echo "EDIT=/bin/ed" >>/tmp/t cp /tmp/t /usr/lib/ua/Environment rm -f /tmp/t fi echo "Emacs Removal Complete" 0707070000020075001006440001460001440000011010170366731113600000500000000064NameUNIX PC EMACS Version 4.9c 9/5/85 - from THE STORE! 0707070000020101251006440001460001440000010027720366731136500000600000000335Files./Size ./Install ./Remove ./Name ./Files ./MACROS ./MACRO_SOURCE ./TERMINALS ./dired ./dired.init ./ecomp ./emacs ./emacs.init ./emacs_defs ./errfile ./helpfile ./MAKEflop ./MAKEcpio ./spell73 ./STICKDOCS ./EMACS.UNIX.PC 0707070000020101411006440001460001440000010576720353211505500000700000343000MACROS0707070000160742451006440017530017530000010223500353211425300001000000050533CATALOGThis is a catalog of EMACS macros in the library balance: W. A. Montgomery (Version 3.4) This file contains macros to display for each closing parenthesis, brace, or bracket, the matching opening character. It re-defines these characters to do so, and beeps if no match is found. The effect on the file is the same as if the macro library were not there with the exception that } always behaves as it does in C mode. The maximum nesting depth that can be handled is about 20. rmail: W. A. Montgomery (version 3.4) This file contains a macro put on ^Xr for processing mail. It gathers new and old mail (old mail from $HOME/rmail) and allows the user to peruse it. ? provides a brief description of the available commands. Among others, you can selectively delete and undelete messages, reply to messages, write messages to files, and gather the most recent UNIX news items. vmail: W. A. Montgomery (version 4.0) This file contains a macro that responds to your mail while you are vacation. It will copy all new mail into $HOME/rmail, and respond to each message, giving the date of the message, the file $HOME/response, and your signature to each. The macro is put on ^Xv when loaded. The intended use of this package is to set it up to run periodically while you are away on vacation (or for some other extended period of time) via at(1) jobs or the like. You do this by having the job run emacs -i where foo is a file that does ^X^Lvmail\n^Xv^Z. Each time you run it, all new mail is replied to, and accumulates in $HOME/rmail awating your return. abbrev: W. A. Montgomery (version 3.2) This file contains a single macro that is put on @ that causes abbreviations to be expanded. The word preceeding the '@' is looked up in a list of abbreviations for expansion. The abbreviation list is taken from the file .abbrevs in the current directory. The file contains a series of entries of the form: abbreviation@ what it expands to. Everything after the "@ " up to the next line containing an '@' becomes the expansion of "abbreviation", so that you may have multi-line abbreviations if you like. appropos: W. A. Montgomery (version 3.2) This file contains a single macro on ^X? that provides a different form of help information. ^X? will prompt for a subject, and display help explanations for all commands and macros that pertain to that subject. (actually, the subject is used as a search string and all help explanations that include the subject are displayed). lcase: W. A. Montgomery (version 3.4) This file contains macros for converting letters or words to lower case. M-l converts a single letter to lower case, while ^Xl converrts an entire word to lower case. refmac: W. A. Montgomery (version 3.2) This file contains macros to interface with J. W. Leth's nroff pre processor (nrpp) to maintain reference lists in memoranda. M-R places the user in the bibliography file, and allows the user to move around in the bibliography file through ordinary emacs commands. When the user exits from the bilbliography file via ^Z, the reference definition at the cursor position in the bibliography is put into the file being edited at the cursor position where M-R was invoked. If the cursor position in the bibliography is at the beginning of the buffer, no reference definition is inserted into the edited file. ^XR can be used while in the bibliography file to send the reference description at the cursor position to the department clerk for inclusion in the department bibliography. spell: W. A. Montgomery (Version 3.4) This macro package contains a single macro on M-S that causes the spell program to be invoked on the file in the buffer, and causes the result to be analyzed. The words found by spell are filtered through a local dictionary (maintained in $HOME/.dict) so that you can add words to your local dictionary that are not in the spell dictionary. For each misspelled word, spell will prompt for action. You can file the word in your local dictionary by typing 'd'. 'n' goes to the next word without looking up the occurances of the current word. '?' displays instructions. A space causes the cursor to move to the first occurance of the misspelled word. You can then edit the file to correct the word and type ^Z to move on to the next occurance. When you reach the last occurance, spell moves on to the next word. tags: W. A. Montgomery (Version 3.6) Tags is a macro library that facilitates working with a collection of related files. This package works with a tags file, which defines a set of names for positions in the files. The macro placed on ^Xf will prompt for a tag name, reads the file containing the position implied by the specified tag, and moves to the indicated position. This is useful, for example, with a set of source files that contain C function definitions when you want to find a function and don't know or care what file it is in. A second macro in this package (C_TAGS) can be used to construct a tags file from a C source file. When C_TAGS is invoked, it scans the current buffer for function definitions, and prompts you. If you enter a space, it defines a tag whose name is the function. Any other character causes the current definition to be ignored. Note: If you declare functions with types, like char *foobar(x,y), put the type on one line and the function definition on a line by itself, otherwise this will not work. The command ^xt defines a tag from the current line of the current file, and can be used to update tags files. The tags are accumulated in a buffer called .tags which should be saved before you exit emacs. Tags from several files can be put in the same tags file simply by running C_TAGS on several source files. There is currently no check for an attempt to re-define the same tag name, which will fail. For those who like the nitty gritty, the format of the tags file is a series of entries of the form @::: Any of the fields can contain any character (including newline) except : and @. debug: W. A. Montgomery (Version 4.0) This library contains several useful macros for debugging and generaal programming. display_killstack: Puts the items in the kill stack into a buffer, and allows you to examine them. PNUMB: Converts its argument to a character string and leaves the result in the buffer at the current position. TO_DECIMAL: Converts the top item of the kill stack to a decimal integer and returns the result. loader: W. A. Montgomery (Version 4.1) This file contains a number of macros to load macros from this library when invoked. If you use macros like spell, rmail, refmac, and crypt, infrequently, load loader instead. When you first invoke a macro in any of those libraries it will be automatically loaded for you. shell: Joe Steffen and Bill Paulson (Version 4.4) This file contains macros that provide convenient execution of your frequently executed shell commands, and allow you to see the output of several commands at once. The M-E macro allows you to edit a file of shell commands called $HOME/.commands. Enter the command(s) you want to execute on a line, or move the cursor to a different line of commands, and optionally enter ^Z to exit. Enter M-^E to execute the command line the cursor was pointing at. The shell output will be put into the .exec buffer and displayed in the bottom emacs window, unless the command line started with a '!', in which case the output will be displayed as the commands execute. The M-C macro displays the current line in this file in case you forget. M-N and M-P move the cursor down and up, respectively, in the file and display the current line. They take an argument just like ^N and ^P. These commands make it easy to switch between several command lines without using the M-E macro. The ^Xs macro executes the shell interactively instead of prompting for each command. This allows cd commands to stay in effect and allows you to see the results of several commands. The prompt is changed to 'emacs' to remind you that you are still within emacs. Enter ^D instead of a null line to return to emacs. list: C. Douglas Blewett (DR30L19) Version 4 This file contains a command that allows the user to edit (recursively) a list of files. This is much like vi's :next command. The list of files is collected in .exec and the files are edited in .list. This is useful for making changes in a global variable that appears in a list of files (e.g. ^XL *.c). If an argument other than 1 is given then the command looks up the file name in the directories known to contain manual pages. This routine contains a string with embedded paths to the manual directories. An "ls -d" is performed, so full Bourne shell style wild carding is available. This is very useful for manual page searches (e.g. ^U^XL *open*). Modified to preserve the sanity of .exec. Saves the point, mark, and extent of .exec. registers: C. Douglas Blewett (DR30L19) Version 4 This file contains two routines for implementing registers (like those found in MIT EMACS or TECO). M-P copies the current area into the named register. M-G copies the named register to the current point. The registers are kept in a buffer named .registers shift: C. Douglas Blewett (DR30L19) Version 4 Shift a region right or left. An argument of != 1 shift left, otherwise right. This is very useful for programing a highly indented language. Concept100.pad: C. Douglas Blewett (DR30L19) Version 4 This routine handles all of the Concept100 cursor pad keys. This routine assumes that the escape character for the Concept has been changed to ^\. This should have been done in the c100* terminal data base file. All escapes are changed to ^\. This routine also takes advantage of the different handling of the comment character interactively and in macros by EMACS. Keys handled Approximate translation HOME M-g PAGE (upper and lower) M-v and ^V SCROL (upper and lower) M-3^P and M-3^N B TAB ^R^I BREAK ^G All of the arrowed keys line or character movement Arguments supplied to these commands multiply the affect. The first five programmable function keys (upper and lower) are defined in the data base file (INSRT, DEL CHAR, DEL & INS LINE, CLEAR EOP & EOL, and SEND). Modified to my own tastes 7/5/81: added MULT, reset & stat, print and tape cc_list C. Douglas Blewett (DR30L19) Version 4 Compiler and list interface (arg>1 file list), (arg<1 manual pages) Interface routines ^XL - the main mono-lith - controls editing lists of files ^X^@ - Creates the new command (or filename) generating routine ^X^_ - Command or file name routine - returns on the kill stack Compiler and list interface routine. This routine prompts for a compiler command (i.e. cc or make), runs it, and catches the output. If line numbers are present in the output, the routine will position to the correct line. Three formats can be handled by this routine. "filename.c", line 23: etc. or filename.c: 23: etc. or filename.c The last format is typical ls stuff. With an argument < 1 the routine prompts for a manual page specification and searches the known directories for manual pages. With an argument > 1 the routine prompts for a file specification and searches using an "ls -d file_spec" SPECIAL STUFF FOR DEFAULT COMMANDS: WARNING creates a new routine This routine, ^XL, when used as a compiler interface calls ^X^_ to detemine what command to issue. ^X^_ can be setup to return a default command (rather than prompting the user) by running the ^X^@ command. ^X^@ actually creates a new macro for ^X^_. It isn't LISP, but it works. The compiler interface (arg == 1) reads files in using ^X^F. No attempt is made to garbage collect buffers. This does not pose a real problem, becuase the routine places the user in the buffer .list when this happens. At that point the user can use ^X^K to remove un-needed buffers. ^X^F is used instead of ^X^R because it is very likely with compiles that the user already has the file in a buffer and want to keep it there (and current). The list (arg > 1) and manual page (arg < 1) facility uses the buffer .list to read files using ^X^R. These routines more or less automatically garbage collect buffer space. home: C. Douglas Blewett (DR30L19) Version 4 This file contains assorted macors that help the user move quickly or accurately around the screen. The central rountines are M-H and M-L (top and bottom of the screen). Interface routines M-H - home or top of screen M-L - last or bottom of screen M-M - Middle of screen ^\ - back one line - adds a line at the top of the screen ^_ - forward one line - adds a line at the bottom of the screen filter: Warren Montgomery, 6E-314, Version 4.3 This file contains one macro, filter_region, which is put on the key M-#. This macro takes the marked region of the current buffer, prompts for a command to run, passes the text from the marked region to the specified command, and replaces the text from the marked region with the output. Thus marking a list of names appearing in an nroff source and invoking M-# with the command "sort" will cause the list to be sorted. The macro makes use of a temporary file (/tmp/$LOGNAME.emacs) to hold some intermediate results. nlpack: Warren Montgomery 6E-314, Version 4.3 This file contains a macro that implements a move to next(previous) line command that moves to the same screen position in the next line. The macro is put on ^N. It moves to the same cursor position in the line that follows. If a sequence of ^N or ^P commands is given, it tries to stay in the same column, even if some of the intermediate lines are too short. Actually, the ^N macro reads characters and carries out the movement so long as the character read is a ^N or a ^P. Any other character breaks out of ^N. To get the same effect on ^P, invoke M-:^P^N. when nlpack has been loaded. Note that this macro may be significantly slower than the built in movement commands. Also, since it changes the built in commands ^P and ^N, it may interact with other macros that use them. Draw: W. A. Montgomery (Version 4.5) This file contains several macros that are useful for drawing pictures on the screen. These should be run in picture mode, with nodelete and overwrite modes set as well. The draw macro allows the user to draw on the screen in picture mode by steering the cursor with the "home" keys of the right hand. The keys uiojlm,. are used to indicate up and left, up, up and right, left, right, down and left, down, and down and right. Each key replaces the character under the cursor by one of: '-' '|' '\' or '/' and moves the cursor in the indicated direction. This provides a simple way of drawing stick figures on the screen for use with gc. The downline macro draws a verticle line of length equal to its argument down the screen starting from the current position. This is an internal macro used by the box command, however it is useful in itself. It is put on M-| The box macro draws boxes using | and -. It draws a box with corners where the current position and the mark are set. These can be in any corners of the desired box. The cursor is left at the lower right hand corner of the box. Keyboard Macro enhancements Author: George Furnas (alice!gwf) Date: 11/1/82 Version: 4.5 The allow saving a small ad hoc library of keyboard macross that can be referred to by name. It also allows editing the macros easily and is set up to encourage keeping documentation on the macros up to date. Macros are saved in a directory $HOME/.kbdmac.dir under names km.NAME where NAME is the user specified name by which the keyboard macro is to be known, called, etc. (The directory must be created ahead of time.) Since the macros allow no internal documentation, a brief amount documentation is kept in a file called $HOME/.kbdmac.dir/README.doc The keyboard macro editing and renaming macros always finish up by pausing with a buffer of this documentation which is to be edited recursively to keep it up to date. They go to old entries or create new ones as needed. M-^N: name_kbdmac names keyboard macro. prompts for name This allows you to save the current standard (unnamed) keyboard macro under the name specified. First, however, it pulls the macro into a buffer for perusal and/or editing (idea was to at the very least make usre you knew what you were naming.) Then it asks for a name, and finally it gives you the README.doc file for any short one-line comments you might like to make on the newly named macro. (A recursive edit, exited as usual by ^Z) M-X: execute_named_kbdmac executes named keyboard macro times This simply prompts for the name of the previously stored keyboard macro, and executes it. It it is called with an argument, it executes it times. M-^E: edit_named_kbdmac edits named keyboard macro This allows you to alter (edit recursively) a previously named keyboard macro. It prompts for the name, pulls in the appropriate file, and enters a recursive edit. When you are done editing it (hitting ^Z, as usual) it goes and gets the README.doc file, at the appropriate line, in case you want to edit the comments on the macro. (Also a recursive edit, exited by ^Z) eml: Warren Montgomery, version 4.9 This macro package contains macros that customize emacs for editing eml macro source or lisp code. For a full description, see ~EMACS/macro_source/eml.e netty, empty, emacsterm: Warren Montgomery, version 4.9 These macro packages interface emacs to blit or dmd terminals running a terminal emulator designed to work with emacs. For a full description on how to use them, consult ~EMACS/macro_source/blit-or-dmd. mouse-dired: Warren Montgomery, version 4.9 This package contains an alternate definition for the menu to display under dired. It should be loaded after loading netty or empty. ansii: Warren Montgomery, version 4.9 This package transforms the ANSII standard terminal escape codes for the arrow keys into emacs commands. It can be used with any terminal that sends ANSII codes for it's arrow keys basic: Joe Steffen This package contains some basic macro definitions and stubs that automatically load the common larger packages, like rmail and spell. caps: Joe Steffen, ihuxs!steffen, IH x5381, Version 4.3 Defines the following macro: : capitalizes entered letters until end of word [MACRO] Lowercase letters are converted to uppercase until a character besides a lower or uppercase letter, underscore, hyphen, or backspace is entered. This character is then executed. Uppercase letters, underscores, and hyphens are inserted as is, whereas backspace deletes the previous character. box: Warren Montgomery, version 4.9 Draws a box around the current region while in picture mode. buffer_macros: Jim Leth, version 4.5 Some miscelaneous buffer handling macros. draw-elipse: Warren Montgomery, version 4.9 Draws an elipse in the current region while in picture mode. edit-menu: Warren Montgomery, version 4.9 Displays a menu of editing commands. This is called from the netty and empty packages. It is generally autoloaded when called, allowing you to define your own edit-menu in it's place. See blit-or-dmd for details. edit-menu2: Warren Montgomery, version 4.9 An alternated editing menu called from netty or empty. file_macros: Jim Leth, Version 4.9 Some miscelaneous file handling macros. find-match,show-match: Warren Montgomery, version 4.9 This package (two names, one package) matches balanced parentheses. It is called from the eml package, and from the empty package under some circumstances. It defines a find-match macro that will find the mate to the brace or parenthesis under the cursor, and a show-match macro that does this and shows the matched pair using arrows (--><--). graphics-menu: Warren Montgomery, version 4.9 This package defines the graphical editing menu for editing GC style graphics on a blit or dmd. mark-c, mark-lisp, mark-text: Warren Montgomery, version 4.9 This package defines the action of button 2 in empty. It scans what was selected to figure out what kind of object it is and calls on other macros to mark it. sel: Warren Montgomery, version 4.9 This macro marks and highlights various text objects. It is called from edit-menu2 and from the marking macros above. 0707070000160744431006440017530017530000010030500353211425300001700000003234Concept100.pad Concept100 cursor pad interpreter  C. Douglas Blewett (DR30L19) Version 4  This routine handles all of the Concept100 cursor pad keys. This routine assumes that the escape character for the Concept has been changed to ^\. This should have been done in the c100* terminal data base file. All escapes are changed to ^\. This routine also takes advantage of the different handling of the comment character interactively and in macros by EMACS.  Keys handled Approximate translation  HOME M-g  PAGE (upper and lower) M-v and ^V  SCROL (upper and lower) M-3^P and M-3^N  B TAB ^R^I  BREAK ^G  All of the arrowed keys line or character movement  Arguments supplied to these commands multiply the affect.  The first five programmable function keys (upper and lower) are defined in the data base file (INSRT, DEL CHAR, DEL & INS LINE, CLEAR EOP & EOL, and SEND).  Modified to my own tastes 7/5/81: added MULT, reset & stat, print and tape  !-< ; Up   < Down   > Left   = Right   . Page up v  - Page down   [ Scroll down 13~3   \ Scroll up 13~3   ? Home   ] Set tab   _ Clear tab   ' Backtab ^3~0 12~1 Loop < -1   : Mult Code - back a word b  { print - forward a word f  , reset - back a line - from move   + stat - forward a line - from move   ` tape - end of buffer    Defaults: | = PRINT(shifted),  = break     0707070000160744441006440017530017530000011743000353211425400001700000004122ConceptAVT.pad ConceptAVT cursor pad interpreter  David W. Goldfarb -- 6/23/82 Version 1 Inspired by C. Douglas Blewett's Concept100.pad macro  This routine handles all of the ConceptAVT cursor pad keys. This routine assumes that the escape character for the Concept has been changed to ^\. This is done in the "cAVT" terminal data base file. All escapes are changed to ^\. This routine also takes advantage of the different handling of the comment character interactively and in macros by EMACS.  Keys handled ACTION  HOME Go to line arg (M-g)  PAGE (upper and lower) full page up or down (M-v or ^V)  SCROL (upper and lower) scroll 1/2 page up or down  PRINT SCRN Forward Word (M-f)  shift PRINT SCRN Delete word forward (M-d)  PRINT Back word (M-b)  shift PRINT Delete word back (M-bM-d)  All of the arrowed keys line or character movement  Arguments supplied to these commands multiply the affect.  The first seven programmable function keys (upper and lower) are defined in the data base file INSRT, DEL CHAR, DEL & INS LINE, CLEAR EOP & EOL, SEND (sets mark when unshifted, saves to current file when shifted), f6 (beginning of line when unshifted, beginning of sentence when shifted) f7 (end of line when unshifted, end of sentence when shifted).  AVT character stream: ^\ [ char , "char" indicates command -<  Above line gets rid of the "[" !-< A Up   B Down   D Left   C Right   V Page up v  U Page down   T Scroll down   S Scroll up   H Home   Z Backtab ^3~0 12~1 Loop < -1   5 print - back a word -<  above line gets rid of "i" b  4 print shifted - delete word back -<  above line gets rid of "i" b  i print scrn - forward word f  = shifted print scrn - delete word forward -< -<  above two line get rid of "8i" d   Defaults:  = break     0707070000160744451006440017530017530000010061100353211425400001600000002276LIBRARY_RULESThis directory contains a library of emacs macros for various purposes. Any macros submitted to this library should follow these rules: Name and description (the first word of the comment on the first line of a macro should be a unique macro name, right after the ^\). A block of comments before any of the code describing in more detail what the macro did, who wrote it, what version of EMACS is needed to run it, and ways in which the user may wish to customize it. Comments on any lines that do something non-obvious (i.e. what is in the kill stack when it is used to supply a parameter to something. When one macro calls another, use M-x. Do not just invoke them with a character sequence, so that a user can re-define which character yours macros are on without screwing up the macros. Any macro that is not intended to be invoked by a character sequence should be assigned to ^X^[ (control-x escape), which is a highly improbable sequence to be useful for anything else. I am sure that we will be developing and using lots of macros, and that a lot of people will be looking at our macros, thus I think that this kind of detail is essential to try to avoid problems. Warren 0707070000160744471006440017530017530000011744140353211425400000700000004122abbrev@expand_abbrev: expand abbreviation [MACRO]  Warren A. Montgomery, IH 6E-314, Version 3.2  Modified by K. R. Stanley, IH 4F-321, Version 4.2 5/26/81 Uses ABBEVIATION FILE: for file name bugs: uses mark 15 for temporary usage To use this macro, set $HOME/.abbrevs to be the location of your abbreviation file. Change @ to whatever character you want for your abbrevations or have a macro call expand_abbrev. It uses the name after ABBREVIATION FILE: as the file to use in the $HOME directory. B save buffer, and delete previous word then add an @ +<@ <^  + make a copy starting with a newline  search for string "ABBREVIATION FILE:" in  first 10 lines 1510 mark here - go to 10'th line B Prepare to check if in .abbrevs (get old buffer  name and check present against it) | See if in abbrevs buffer &-2- in buffer, just ignore it  (dump 2 copies of abbreviation and buffer name) | Not in buffer, process abbrevs -<  search for abbreviation from back and if found -<@  find space and mark next character go to next line |search for next at and go to end of  previous line or go to end of buffer and  back up to end of next line %-save region, return to buffer  and insert  if not found in abbrev file < | 4& ask what abbrev for - check if null  -if not - go to, end back up,  open line, store response and abbrev in buffer display_killstackshow status of buffer and stack %2-@restore and try again - else restore back in old buffer %-end of new abbrev  question if found if in buffer  0707070000160746031006440017530017530000010067170353211425400001100000001036appropos?appropos -- Find all help strings that match a given description  Warren A. Montgomery, IH 63-314, Version 3.2  This macro will prompt for a string, and find all help strings that match the given strinng  B<... < | check for null helpstring & if so, do nothing 0> set up with help strings in buffer, marked ^ while more matches <: -0><: delete non-matches, and mark -0^~- 4"4"4#$"%356p ve=o xv p4 2!4 "!4 3!4 #!4 4!4 $!p= \n%356p sf=\n sr=\\ bx=32 by=32 co=80 li=24 rc=1 am=1 in=1 0707070000160746131006640017530017530000010164370353211426000001100000000575c108keyskeypad lead-in character [MACRO]   This macro is triggered by the lead-in character of the Concept  keypad (after c108r has been loaded), and then acts based on which  key was pressed. This macro should be loaded during emacs initial-  ization.  !-< ; < > = - . [ \ ] _ 1 file list), (arg<1 manual pages)  C. Douglas Blewett (MH3-C-319) Version 4  Interface routines   ^XL - the main mono-lith - controls editing  lists of files  ^X^@ - Creates a stored "default" command  - like make or cc -o ...  ^X^_ - "default" command - returns the command  on the kill stack  Compiler and list interface routine. This routine, ^XL, prompts for a compiler command (i.e. cc or make), runs it, and catches the output. If line numbers are present in the output, the routine will position to the correct line. Three formats can be handled by this routine.   "filename.c", line 23: etc.  or  filename.c: 23: etc.  or  filename.c  The last format is typical ls stuff.  ^XL with an argument < 1 the routine prompts for a manual page specification and searches the known directories for manual pages.  ^XL with an argument > 1 the routine prompts for a file specification and searches using an "ls -d file_spec"  SPECIAL STUFF FOR DEFAULT COMMANDS: WARNING creates a new routine.  This routine, ^XL, when used as a compiler interface calls ^X^_ to detemine what command to issue. ^X^_ can be setup to return a default command (rather than prompting the user) by running the ^X^@ command. ^X^@ actually creates a new macro for ^X^_. It isn't LISP, but it works.  The compiler interface (arg == 1) reads files in using ^X^F. No attempt is made to garbage collect buffers. This does not pose a real problem, because emacs places the user in the buffer .list when this happens. At that point the user can use ^X^K to remove un-needed buffers. ^X^F is used instead of ^X^R because it is very likely with compiles that the user already has the file in a buffer and may want to keep it there (and current).  The list (arg > 1) and manual page (arg < 1) facility use the buffer .list to read files using ^X^R. These routines more or less automatically garbage collect buffer space.  1 21 TRUE = 1 ^4~20 Loop forever through execute requests 20 B Get the stored or interactive string | Check for man 2~1 Arg < 1 manual pages list  1 ls -d of files list < | Input Conditional & Check for Null string -< 0 Zero == FALSE  Null Check End  Default <.exec  Move to .exec 60=71= Current pos. 80=91= Save the mark  Meta Moon 50= Save the eoB | Check for man 3~1 Arg > 1 ls list exec /bin/ls -d   < | & - <...  Insert the program ^X^_ 034Compile_command_string012  Load it up  Load it up <.exec  -diff >-   Cons up command line and run it >2 ^>view_line <.exec ^~~~<~>~- 1- 0707070000160747331006440017530017530000010167470353211426500001300000000312dired-7300standard-menu menu for dired !/tmp/$LOGNAME.emacs B% |~21~< |~2-2- 0707070000160754141006440017530017530000010101440353211427000000700000000603fmodessetup-c set up modes for c mode  major mode variable  copy this file name on kill stack $HOME/.kbdmac.dir/km.-set up line w/filename for macro  - kill the first line putting filename on stack  write to new name fix.kmac.doc  times   FIRST SET UP THE NAME OF THE KEYBOARD MACRO FILE  copy this file name on kill stack $HOME/.kbdmac.dir/km.-set up line w/filename for macro  - kill the first line putting filename on stack  read in the appropriate kbdmac file  pause to show it off, with a recursive edit.  rewrite file fix.kmac.doc  Get a copy of the search string 6 Search in the correct direction ! What we found ( 11~1  ) 11~-1  { 11~1  } 11~-1   0     Beginning or end of file 0    -   Insert a carriage return |  1 ^U is the flag for space or tabs loop 60 6 is the flag for line containing chars   0 61   50 5 is the flag for space or tabs found ^4~0 Loop while trailing spaces and tabs !11~64 ` Space 51  I Tab 51  J Line feed 0 |Clear line if it has spaces or tabs ~51      Real line - leave it alone 0 61    Indent_get - Install the copied chars. 0 | ~61 True text line  1~3=0 Intervening blank lines  Get the string < | Input Conditional & Check for Null string -<  Null Check End  Default 0Last 1 00 last message nNext 1 00 next message pLast 1 00 previous message skip_down 00 next page skip_down 00 next page skip_up 00 previous page l look for next From in newsletters <^From  move next From to top of screen 00 dMark  delete message % swap it and the buffer name 1 00 redisplay and return 0 u%- undelete message Last 1 00 redisplay and return 0 f forward message Put <${MAILER:-mail} + While next line is '>' |~* If not Forwarding line +^ while we find a search string From -0> - put the news on the kill stack  mark .exec as up-to-date %-1  go to beginning and set at top of page : go to end of mail N: put the latest UNIX news in your <: go to beginning of mail mail buffer n: next message U: put the latest netnews in your p: previous message mail buffer d: delete message !: execute UNIX command u: undelete message e: edit mail buffer r: reply to message (^Y brings back ^L: refresh screen text of old message) ^V: display next page of this message s: send message l: go to next "Date" in newsletter w: write message to file f: forward message to another person P: print current message : (space) display next page of current message ^H: (backspace) display previous page of current message 0707070000160756201006440017530017530000010175220353211427700001400000002366mail_macrosM MAIL reader Mail handling macros by J. Leth. (version 3.0)  Note that the names of the mail files should be changed  for each user.  B save buffer name 3>- append text in new buffer 1% put current buf. on stack above ret. value - replace top of stack with appended text 2%- move appended text to bottom of stack frame B push temporary buffer name 1% ...and swap with original buffer name   go back to original buffer and kill tmp buf  a withdraw and APPEND text to previously killed text  withdraw text  append  s invoke a SUB-SHELL <$SH   i ITALICS (nroff style) \fI insert italics string and allow editing \fR return to normal font at end of insert   TRANSPOSE next two words  pick up this word and space after  go to end of next word  - drop saved word - clear stack   OPEN up the middle of a long line. <  go to space before 5th-to-last word in line   move words to next line, go to end of line.  0707070000160756261006440017530017530000011763340353211430300001300000000703modes-7300menu-mode >|%- toggle-mode >2~  modes-7300 !6~>|0&%<%l4%l 3&<M%l!%l!m%l!%l! 3&@ modes-menu download modes menu <M@!Standard Menu!m@!s! > make 3 copies of the mode name 2~ menu-mode  0707070000160756361006440017530017530000010070440353211430600001300000000227mouse-modemouse-mode select mouse mode |~^->Loop deleting the prompts from mail -^while we find a search string From -0> -1000 %-1 00 x netnews  While next line is '>' |~* If not Forwarding line +last_mail 1 00 last message ! back to buffer [!] insert reference 2- clean the kill stack  Else  Back to old buffer  RSend_ref Send reference definition to leth   mails the current reference definition to Jim Leth  for inclusion in the department reference list  B buffer name <*!R  | Conditional & Check for Null string -  Null Check End  Default B% Remember current buffer % Pickup the current area <.registers  Go to .registers  Go the top of the buffer 0> | Conditional  Check for reg already here 0>- Remove  Check for reg End  Conditional End -- Meta Moon and install  Return to orig. buf.     Get (insert) the contents of a register <_______reg: + Get the string  | Conditional & Check for Null string -  Null Check End  Default B% Remember current buffer <.registers  Go to .registers 0>  Go the top of the buffer | Conditional  Check for reg already here  Pickup the text  Check for reg End  Default -01don't complain if no rmail file <$MAIL >now have the new mail in rmail, wipe out old mail. 000 -empty out the buffer now back to old mail ^~ get display in shape !^while more news items pickup sender From->-000 pick up whole buffer %-wlast-mail next-mail Bget message last-mail while next line starts with a > |~*+! <ME!Delete!mE!d! <MF!Undelete!mF!u! <MG!Save Letter!mG!w! <MH!Reply!mH!r! <MI!Send Letter!mI!s! <MJ!Edit Mail!mJ!e! <MK!Exit!mK!! <ML!!mL!!  0707070000160756531006440017530017530000010115160353211431500001300000000656rmail_helpRMAIL commands ?: display help n: next message p: previons message d: delete message u: undelete message r: reply to message (^Y brings back text of old message) s: send message w: write message to file N: put the latest UNIX news in your mail buffer !: Run UNIX command P: Print the current message using $PRINTER >: go to end of mail <: go to beggining of mail ^V: display next page of this message ^Z: exit rmail 0707070000160756541006440017530017530000010341040353211431600000700000000204scrollscroll  Warren Montgomery, version 4.3  Scrolls the display forward by the number of lines in the argument.  2~=  0707070000160756551006440017530017530000010342470353211431700000400000000524selsel select text !1~01 word ^~~ ~ 2 line 3 sentence 4 paragraph ^|~.~0 |~=^|~.~0 5mark-sexp  s-expression 6 mark matching anything forward find-match 7 mark matching anything backward 4&show-region  0707070000160756561006440017530017530000010200700353211432000000600000014015shelledits the shell command file [MACRO]   Shell command execution macros for Version 4.4 and later   Joe Steffen and Bill Paulson   This set of macros allows convenient execution of shell commands  inside emacs. Shell commands are kept in a "hidden" file  named $HOME/.commands. Use to edit or move the line pointer in  this file. Exit from M-E by ^Z. M-C displays the current line in  this file in case you forget. M-N and M-P move the cursor down and up,  respectively, in the file and display the current line. They take an  argument just like ^N and ^P. These commands make it easy to switch  between several command lines without using the M-E macro.  M-^E will execute the current line in the command file. If the  first character of the line is not '!', then any  output will be captured in .exec just like using . On return  from execution, the current buffer will be displayed in the top window,  and .exec will be displayed in the lower window. The shell output can  then be examined as a regular buffer.  If the first character of the line is '!', the output will be  displayed on the screen as the command(s) are being executed  just like using . This allows you to abort a program that is in an  infinite loop, or to enter program input interactively. Entering 'n'  in place of a space when you get the "Continue?" prompt will execute the  ^Xs macro described later.  If the first character of the line is '$', the output will be  displayed on the screen as the command(s) are being executed  just like using but with usilent mode off. This allows you to have  usilent mode on for all other commands, but see the output when you want  it by putting $ at the beginning of the command line.  Note that the command line can contain multiple commands separated  by semicolons. Since emacs allows a line to be several hundred  characters long, entire shell scripts can be executed.  Note also that you can use while editing the command buffer  with . Thus you can test the command line and quickly change it if  it contains an error.  1 ensure one window mode <.exec 2 display .exec in lower window  mark it as updated to prevent junk file  switch to the top window B save current buffer name <$HOME/.commands  change to command file  recursively edit the command file  return to original buffer  displays the current line in shell command file [MACRO] B save this buffer name <$HOME/.commands  get the command file  save commands line 1> pull original buffer name to top of stack  return to the original buffer 0@ display the commands line  displays (arg'th) next line in shell command file [MACRO] B save this buffer name <$HOME/.commands  get the command file 1 move to next line  save commands line 1> pull original buffer name to top of stack  return to the original buffer 0@ display the commands line  displays (arg'th) previous line in shell command file [MACRO] B save this buffer name <$HOME/.commands  get the command file 1 move to previous line  save commands line 1> pull original buffer name to top of stack  return to the original buffer 0@ display the commands line  executes current line in shell command file [MACRO] 0 pull original buffer name to top of stack  restore buffer  pull original buffer name to top of stack  restore buffer  pull original buffer name to top of stack  restore buffer 0> duplicate commands line 0@ display commands line  execute the commands line & save the output 1 ensure one window mode <.exec 20 display .exec in lower window  mark it as updated to prevent junk file  switch to the top window   endif  return to the original buffer  sescapes to the shell (enter ^D to exit) [MACRO]   Joe Steffen, Version 4.0   This macro executes the shell interactively  instead of prompting for each command. This allows cd  commands to stay in effect and allows you to see the results of  several commands. The prompt is changed to 'emacs' to remind you  that you are still within emacs. Enter ^D instead of a null line to  return to emacs. |~21~< |~2-2- 0707070000160756601006440017530017530000010342570353211432200001400000000152show-regionshow-region mark with arrows <--=-->|~=1~< -|~=- 0707070000160756611006440017530017530000010363000353211432300000600000002114spellspell run spell on the buffer version 4.7, warren montgomery 1in-case we have 2  pick up word >make 2 copies go to top of text ^while more occurances |if the user just exits, do nothing if the user exits with 0, make the next search fail >-remove search word next-case, put in dictionary d B<... push word, current buffer, ... % put word in new buffer -<$HOME/lib/spelldict push dictionary file B%write, and prepare to return  m | >.exec 0" on the stack <\> 0> duplicate the search word on the stack  goto the top of the text file ^0 while the word is found in the text file 0 duplicate the word on the stack  end while - pop the word from the stack  goto the next word in .exec 0 Search pattern. ^ While more function defns !- Next line, duplicate search string  End of While - tMAKE_CTAG /* define tag from current line */ F+BTAGS_BUF @%-:2>: -:  Form tag sequence in buffer -- 0707070000160756671006440017530017530000010234250353211432400001100000004272templatetemplate expand template and execute commands [MACRO]   Modified by K. R. Stanley, IH 4F-321, Version 4.2 8/31/81 Based on abbrev macro Uses TEMPLATE FILE: for file name last modified 11/17/82 uses a caret "^" to delineate where the cursor will go.  restrictions: uses mark 15 as temporary marker  It uses the name after TEMPLATE FILE: as the file to use in the $HOME directory. B save buffer, and delete previous word then add an @ +<@ <^  + make a copy starting with a newline  search for string "TEMPLATE FILE:" in  first 10 lines 1510 mark here - go to 10'th line