Annotation of researchv9/cmd/emacs/recent_changes, revision 1.1.1.1

1.1       root        1: SUBJECT: new features and old bugs
                      2: 
                      3: Version 2.4 will soon be installed as EMACS (it is now NEMACS). 
                      4: This version allows longer files to be edited (up to about 9,000
                      5: lines), and has several other changes.
                      6: 
                      7: The M-w command puts a "wall chart" of commands (the combined output
                      8: of "M-?*" and "M-?^X*" into the current buffer.  This is a handy reference.
                      9: 
                     10: If you try to quit via ^X^C and tell emacs to write a buffer that
                     11: has been modified, it will not quit if it encounters a problem (such
                     12: as a protection violation).
                     13: 
                     14: Several problems in the manual have been fixed.  These were first
                     15: discovered when Brad, a new user totally unfamiliar with emacs,
                     16: tried to learn emacs from the manual.  The manual is in
                     17: /n1/warren/emacs/emacs.doc
                     18: 
                     19: SUBJECT: Version 2.6
                     20: 
                     21: Version 2.6 (now /usr/obin/nemacs) has several new features.  This
                     22: version has some modifications to the file and buffer handling, and
                     23: there may be bugs that cause garbled files.  It will probably stay
                     24: as nemacs for some time until I am sure that it is sound.
                     25: 
                     26: Non-Destructive buffer reading:  The ^X^R and M-$ commands now take
                     27: the value of their argument to specify whether or not clear the buffer
                     28: before reading.  If no argument is given (just
                     29: invoke ^X^R or M-$), they clear, as they did in past versions.  If
                     30: an argument is given, the text read is inserted into the buffer at
                     31: the current cursor position, or at the end for M-$.   Thus if you
                     32: type ^U^X^R and a file name, it is inserted.  If you type ^UM-$ and
                     33: a command line, the output of the command is appended to the buffer .exec.
                     34: 
                     35: (almost) Unlimited Kill Buffer.  The limit on the amount of text you
                     36: can kill and still receive is now 256K characters.  The kill buffer
                     37: is kept in a file, and the only limit is the amount of stuff you
                     38: want to clutter up the file system with.  As before, only the last 8
                     39: deletions are remembered.
                     40: 
                     41: Reading a file without re-initializing the buffer, or retrieving
                     42: lots of killed text, take lots of time if the cursor is in the
                     43: middle of a line (i.e. there is text to the right of the cursor). 
                     44: You can save a lot of time by opening up a line, doing the read or
                     45: retrieval, and then killing the leftovers.
                     46: 
                     47: SUBJECT: version 2.7
                     48: 
                     49: version 2.7 contains many non-visible changes to reduce memory usage
                     50: and improve efficiency.  The visible changes in version 2.7 are
                     51: 
                     52: support for HP terminals (terminal type hp)
                     53: 
                     54: An improved re-display algorithm that sometimes scrolls the screen.
                     55: 
                     56: ^Z now does exactly what ^X^C did.
                     57: 
                     58: The ^X^T command takes the marked region in the current buffer and
                     59: inserts it into a second buffer.
                     60: 
                     61: Mail will now take any number of lines starting TO: or CC: for the
                     62: destination of the mail.
                     63: 
                     64: EMACS will not try to write buffers with a null file name after ^X^C
                     65: or ^X^S
                     66: 
                     67: SUBJECT: new features in EMACS 2.8
                     68: 
                     69: New commands:
                     70: 
                     71:        ^X= will print out the character position of the cursor in
                     72: the buffer and the total number of characters in the buffer.
                     73: 
                     74:        M-" will re-adjust the lines in the buffer so that each line 
                     75: has 72 or fewer characters.  Blank lines, or lines starting with '.'
                     76: or '`' are not changed (these are nroff control lines).
                     77: 
                     78: Other new features:
                     79:        You now have 12 marks available for the commands dealing
                     80: with marks.  If you specify no argument to commands using marks,
                     81: they will use a different mark in each buffer.  By specifying an
                     82: argument to commands using marks, you can explicitly set two or more
                     83: marks in the same buffer.  See the documentation for more details.
                     84: 
                     85:        You can now set default modes for a file by putting the
                     86: string EMACS_MODES: anywhere in the first 10 lines of a file,
                     87: followed by a description of the modes to set.  For example, the string
                     88: /* EMACS_MODES: c, !fill, tabstop=3 */
                     89: in a c source file will turn on c mode, turn off fill mode, and set
                     90: the number of spaces per tab in the display to 3.  For more details,
                     91: see the document.
                     92: 
                     93:        When EMACS asks "continue?" after executing a unix command
                     94: or listing active buffers, if you type 'y', ' ', or (return), EMACS
                     95: will go back to the buffer.  Otherwise, it will ask for another unix
                     96: command or another buffer name.  You can also get a list of active
                     97: buffers by entering (return) in response to any of the commands
                     98: that ask for a buffer name.
                     99: 
                    100: SUBJECT: new features in EMACS 3.0
                    101: 
                    102: There is now a way to pass the contents of the current buffer as
                    103: standard input to a command.  Preceding meta-! (execute unix
                    104: command) with ^U causes it to pass the buffer as standard input. 
                    105: This does not work for meta-$.  (Sorry, but there is no obvious way
                    106: to do this without the possibility of deadlock.)
                    107: 
                    108: There are several minor bug fixes in this version.
                    109: 
                    110: The undocumented game of life command (M-#) has been deleted.  If
                    111: there is any interest in it, I will keep a version that has this feature.
                    112: 
                    113: The big change here is the ability to define new commands.  Basically,
                    114: any sequence of emacs commands can be defined as a command.  There
                    115: are additional commands for sequencing execution, and for obtaining
                    116: information from the terminal.  A brief description of the new
                    117: commands is available in /n1/warren/emacs/macro.mm (mm source) or
                    118: /n1/warren/emacs/macro.xopr (xopr'able copy).  Some sample macro
                    119: definitions are available in the directory /n1/warren/emacs/macros.
                    120: 
                    121: SUBJECT: new features in EMACS 3.1
                    122: 
                    123: Several new features relating to macros:
                    124:        The ^X% command which exchanges the top of the kill stack with
                    125:        the item identified by the argument.
                    126: 
                    127:        All of the commands that access the kill stack
                    128:        (^Y,^X-,^X>,^X%, etc) now return 1 as a result if successful
                    129:        and 0 if there are not enough items in the kill stack to
                    130:        satisfy the request.
                    131:        
                    132:        EMACS will not ask Continue? after commands, buffer display,
                    133:        statistics, and similar commands when the command is invoked
                    134:        in a macro.  You can use ^X< to ask Continue? if you like.
                    135:        
                    136:        M-s now displays the amount of buffer space left for editing
                    137:        or macro text.  You need a minimum of 1024 characters.
                    138: 
                    139:        The buffer name ... is now special.  If you create a buffer
                    140:        named ..., it will create a new buffer with a unique name
                    141:        instead.  This is useful for creating temporary buffers in macros.
                    142:        
                    143:        M-x can now be used to call macros by names, rather than always
                    144:        invoking a macro by a character.  This should help in the
                    145:        construction of macro libraries.
                    146:        
                    147:        ^X& compares two strings for a macro
                    148: 
                    149: SUBJECT: new features in EMACS 3.2
                    150: 
                    151: Several miscelaneous display bugs have been fixed
                    152: 
                    153: A new mode parameter (keepscroll) has been added.  This is initially
                    154: 0 and can be set to the number of lines that you wish to keep from
                    155: the last screen when going forward or backward by pages (^V or M-V)
                    156: 
                    157: If you give an argument to ^L, it specifies the number of lines to
                    158: appear on the screen before the current line when the display is rereshed.
                    159: 
                    160: The command ^X^^ causes one line to be added to the current window
                    161: when in two window mode.
                    162: 
                    163: The command ^X^U causes the display to be updated and causes EMACS
                    164: to delay for n seconds, where n is the argument to ^X^U.  This is
                    165: useful in macros.
                    166: 
                    167: The command M-] causes the last numeric argument to a macro to be
                    168: passed as the argument to the current command.
                    169: 
                    170: By popular demand, EMACS will now ask whether or not to write a
                    171: buffer that contains text and has no file name associated with it.
                    172: 
                    173: SUBJECT: new features in EMACS 3.3
                    174: 
                    175: The command ^X! starts a case statement in a macro (see the macros
                    176: memo for details)
                    177: 
                    178: The redisplay heuristics have been improved for terminals that have
                    179: insert/delete line and insert/delete character capabilities (hp,
                    180: adm31, vt100, etc.)
                    181: 
                    182: The command M-~ marks a buffer as not being up to date without
                    183: writing it out.
                    184: 
                    185: The .emacs_init file is now run before reading in a file specified
                    186: on the command line.  This should reduce unwanted display on
                    187: starting up.
                    188: 
                    189: I am now maintaining a library of macros in /n1/warren/emacs/macros.
                    190: There are macros for various purposes, such as dealing with unix
                    191: mail, keeping track of refrences for mm, a help function for emacs
                    192: commands, balancing parentheses, etc.  Anyone interested in
                    193: submitting macros should follow the rules outlined in the
                    194: LIBRARY_RULES file, and send them to me.
                    195: 
                    196: SUBJECT: new features in EMACS 3.4
                    197: 
                    198: EMACS will now expand environment variables, such as $HOME or $MAIL,
                    199: in pathnames for reading, writing, and finding files.  Asteristisks
                    200: in file names (ie *.c) are still not expanded.
                    201: 
                    202: EMACS will not print prompts from commands read from an init file or
                    203: form files read with ^X^I. This should cut down on annoying output
                    204: at startup.
                    205: 
                    206: A negative argument to a command can be specified with escape, '-',
                    207: followed by the number.  Most commands treat their argument as
                    208: unsigned, so a negative argument is treated like a large positive
                    209: argument.  For some commands, negative arguments cause special effects.
                    210: 
                    211: Passing a negative argument to ^X< causes a prompt to be given, and
                    212: a single character to be read from the terminal as the result.
                    213: 
                    214: The command M-: allows you to re-map character commands.  It prompts
                    215: for a character (or a meta or ^X sequence) and a command  (also a
                    216: character sequence) to put on that character.  This allows you to
                    217: re-configure EMACS to your liking.
                    218: 
                    219: The regular expression search facility (M-^S) has been improved.  You can
                    220: now search forward or backward, either ending at the beginning or end of
                    221: buffer, or wrapping around (like ed).  With a positive argument, the
                    222: search is forward, while a negative argument searches backwards.  An
                    223: argument of 1 or -1 causes the search to wrap, failing only if there
                    224: is no occurance of the expression in the buffer.  Any other argument
                    225: causes the search to stop at the beginning or end of file.  Note
                    226: that the default (argument = 1) does exactly what the old one did.
                    227: Entering ^S or ^R immediately following a regular expression search
                    228: will find the next or previous occurance of the expression.
                    229: 
                    230: ***********Note to EMACS maintainers*************
                    231: 
                    232: As of version 3.4, the file regexp.h is no longer needed.  The
                    233: makefile has been updated to reflect this, and you will not receive
                    234: this file in future updates.
                    235: 
                    236: Beginning with version 3.5, EMACS will maintain error messages in a
                    237: separate file (errfile).  This is produced like the helpfile.  Also
                    238: beginning with this version the pathnames for the help and error
                    239: files will be automatically set to the directory from which make is
                    240: invoked.  Thus you do not need to change any pathnames unless you
                    241: plan to keep the error, help, and statistics files in some other
                    242: location on your system.  This should simplify making EMACS.
                    243: 
                    244: ***************************************************************
                    245: 
                    246: SUBJECT: new features in EMACS 3.5
                    247: 
                    248: Passing an argument to ^X^W (i.e. ^U^X^W) will cause the contents of the
                    249: buffer to be appended to the specified file, rather than replacing it.
                    250: 
                    251: There is a new mode: caseless.  Setting this mode will cause case to be
                    252: ignored in searches and replaces.
                    253: 
                    254: EMACS will now periodically check to see if you have received mail. 
                    255: If so, it will print a warning at the bottom of the screen and beep.
                    256: 
                    257: You can now use \ folowed by a single digit in the "To? " string for
                    258: regular expression query replace to specify replacement by a
                    259: sub-expression of what was matched.  This works just like it does in ed.
                    260: 
                    261: You can now have local variables within a macro.  This is done through
                    262: the ^] ad M-^] commands.  ^] returns as its result the value of a
                    263: local variable selected by its argument.  M-^] assigns the result of
                    264: the following command to a local variable selected by the argument
                    265: to M-^] and returns as its result the previous value held by the
                    266: variable.  You can have up to 10 local variables in each macro.  For
                    267: compatibility with the previous definition of ^], local variable
                    268: number 1 in each macro invocation is initialized to the argument
                    269: given to the macro.
                    270: 
                    271: There is a new mode, rigid_newline, that will cause a newline or carriage
                    272: return to always insert a newline into the file, even if the
                    273: following line is blank.
                    274: 
                    275: Typing ^Z in response to an error message will no longer result in a
                    276: core dump, but will ask if you want to write out modified buffers
                    277: before exiting.
                    278: 
                    279: Regular expression querry replace will check for matching something
                    280: at the end of a line, and move to the next line if so, so that you
                    281: will not get into an infinite loop replacing the end of a line with
                    282: something else.
                    283: 
                    284: ^N will no longer go beyond the end of the buffer.
                    285: 
                    286: The displays for search and querry replace have been changed somewhat to
                    287: give you immediate feedback in response to characters typed before
                    288: long searches.
                    289: 
                    290: SUBJECT: new features in EMACS 3.6
                    291: 
                    292: There is now a default match in the macro case construct.  See the
                    293: macro memo for details.
                    294: 
                    295: The display algorithm has been changed somewhat to avoid centering
                    296: the window every time that you change buffers.  This should make
                    297: macros like abbrev, that changes to another buffer to look up the
                    298: abbreviation, more acceptable on slow terminals.
                    299: 
                    300: The special character sequences \< and \> can be used to delimit a
                    301: word in a regular expression.  The regular expression "\<the\>"
                    302: matches an occurance of the word "the" (but not the delimiters on
                    303: either side).  Words are delimited by line boundaries, white space,
                    304: punctuation, and control characters.
                    305: 
                    306: The new command ^X+ causes the next item put in the kill stack to be
                    307: appended to the last item put in the kill stack.  See the macros manual for
                    308: more details and cautions.
                    309: 
                    310: Minor changes:  
                    311: 
                    312:        ^X^S on a buffer without a file name will fail in a
                    313:        macro, rather than asking for a file name.
                    314: 
                    315:        The algorithm used to find sentence beginning and end has
                    316:        been changed somewhat.
                    317: 
                    318:        The change mode command (^X^M) now returns the previous value of
                    319:        the mode set as its result.  
                    320: 
                    321:        There is a new mode (end_newline) which when set causes ^N
                    322:        at the end of a buffer to extend the buffer by one line like
                    323:        it used to before version 3.5.
                    324: 
                    325: New Macros:
                    326:        
                    327:        There is a new macro package called tags in
                    328:        /n1/warren/emacs/macros that facilitates working with a
                    329:        group of related files.  See /n1/warren/emacs/macros/CATALOG
                    330:        for details
                    331: 
                    332: DIRED changes:
                    333:        If you give dired an argument beginning with a dash, it is taken
                    334:        as additional arguments to the ls -al command used to
                    335:        produce a listing for dired.  Thus "dired -t" produces a
                    336:        time sorted listing of the current directory, "dired -t
                    337:        /usr/bin" produces a similar listing of /usr/bin.
                    338: 
                    339: SUBJECT: new features in EMACS 4.0
                    340: 
                    341: There is a new terminal support mechanism in EMACS 3.7.  This allows
                    342: me (or anyone) to construct terminal description files for terminals
                    343: without re-compiling.  This will allow many more terminal
                    344: descriptions and synonyms, easing compatibility problems with EX. 
                    345: It also lets us define "funny" terminals, such as vt100 in 80 column mode.
                    346: 
                    347: This version makes use of the (crude) terminal improvements in UNIX
                    348: 3.0 to read-ahead, and hopefully reduce re-display somewhat on slow
                    349: terminals.  System support for this is still very poor, thus there
                    350: is little I can do.
                    351: 
                    352: There are lots of new features for DIRED, see the manual page or
                    353: memo for details.
                    354: 
                    355: ^X= has been changed to give lots more information.
                    356: 
                    357: There are two new modes, tspeed and usilent.  
                    358: 
                    359: tspeed is the speed of
                    360: your terminal in miliseconds per character.  tspeed is used by emacs
                    361: in determining how to update the screen, and is set automatically
                    362: whenever you enter or exit emacs.
                    363: 
                    364: usilent causes emacs not to display the command line or output of
                    365: M-$ commands.  This is useful for running unix commands silently
                    366: from macros.
                    367: 
                    368: The new command ^X^N allows you to change the buffer name or the
                    369: file name associated with a buffer without changing the contents of
                    370: the buffer.
                    371: 
                    372: The buffer re-display algorithm has been changed.  This should eliminate
                    373: several display bugs and make it much easier to maintain.  Report
                    374: any bugs in terminal support or display.
                    375: 
                    376: There is a new macro library (/n1/warren/emacs/macros/crypt) for
                    377: those who like encrypted files.  See /n1/warren/emacs/macros/CATALOG
                    378: for details.
                    379: 
                    380: SUBJECT: new features in EMACS 4.2
                    381: 
                    382: There is a new command line option, "-i <filename>" which lets you specify
                    383: an additional initialization file.  The file <filename> will be run after
                    384: your standard init file and before any file name specified on the
                    385: command line is read in.  Recall that init files contain sequences
                    386: of emacs commands.
                    387: 
                    388: The algorithm for determining terminal type has changed slightly. It
                    389: first checks $TERM, then runs your init file, and if terminal type
                    390: still hasn't been determined, asks for it.
                    391: 
                    392: The command ^X= has been changed to return status information when
                    393: invoked in a macro, depending on its argument.  You can get file or screen
                    394: line and character positions. See the macros document for details.
                    395:  
                    396: ^X^F or ^X^R will not give an error if the file cannot be read when
                    397: invoked with a negative argument.
                    398: 
                    399: You can now re-map any command using M-:.  This allows, for example,
                    400: mapping some more convenient key to escape on a terminal where
                    401: escape is not in a convenient place.
                    402: 
                    403: NEW modes:
                    404: 
                    405:        notabs mode causes emacs to display tabs as ^I (rather than
                    406:        white space), and to insert spaces up to the next tab
                    407:        boundary when the tab key is pressed (unless the tab is
                    408:        quoted with ^Q).
                    409:        
                    410:        readonly mode causes emacs to refuse to save the current
                    411:        buffer back to the associated file and to not save the
                    412:        buffer in auto save mode.  You can still save by writting to
                    413:        a file explicitly with ^X^W.
                    414:        
                    415:        controlify mode allows you to use the character ^^ 
                    416:        (control-uparrow) to make the next character a control
                    417:        character.  This is primarily useful for using emacs over cu
                    418:        (uucall, cuu) links, which swallow ^S and ^Q, or on a
                    419:        console terminal, which swallows ^O.
                    420:        
                    421: SUBJECT: new features in EMACS 4.3
                    422: 
                    423: Failing Searches inside of macros no longer beep.
                    424: 
                    425: The mail command has been modified to support the header format used
                    426: by other unix tools and by the arpanet community.  The principal
                    427: changes are to define the header of a mail item to be all of the
                    428: lines up to the first blank line, and to have M-^M look for lines
                    429: beginning To: or Cc: (Instead of TO: and CC:) to specify the recipients.
                    430: The old format will continue to be supported for some time, and old
                    431: header lines will be converted to new headers before the mail is sent.
                    432: 
                    433: New support has been added for terminals that underline, and terminals with
                    434: a forms-editing style insert character mode (like the concept-100). 
                    435: On terminals with underlining capabilities, the backspace mode is on
                    436: by default, and positions that are over struck with an underscore
                    437: will be underscored on the display.  Turning backspace mode off
                    438: causes backspaces to appear as ^H, and nothing to be underscored.
                    439: 
                    440: Emacs will now send you mail when it is killed (i.e. hung up on from
                    441: a dialup terminal) and saves buffers.
                    442: 
                    443: Emacs will only ring the terminal bell after the first "you have
                    444: mail" warning.  If you don't read the mail, the warning will stay on
                    445: the screen but emacs will not beep.
                    446: 
                    447: Emacs will now preserve owner and group when writing files.  It also
                    448: warns you when you try to write to a file that you do not own.
                    449: 
                    450: New command: ^X^A.  This command puts the first un-processed command
                    451: line argument on the kill stack.  See macros document for details.
                    452: 
                    453: MACRO changes:
                    454: 
                    455: rmail has been extended to provide local, btl-wide, and arpanet signatures,
                    456: for mail replies depending on the destination.  It has also been
                    457: modified to support standard mail headers.
                    458: 
                    459: There is a new macro package (vmail) that automatically responds to
                    460: your mail while you are on vacation.
                    461: 
                    462: SUBJECT: changes in emacs_4.4
                    463: 
                    464: Several bugs in regular expressions having to do with ranges of
                    465: repeats (\{n,m\}) have been fixed.  Also, a new operator '+' has
                    466: been defined to mean 1 or more occurance of what preceeds it, as it
                    467: does in common use of regular expressions.
                    468: 
                    469: The newline function has been changed so that the only time it does
                    470: not insert a new line is when you are at the end of the current
                    471: line, the next line is blank, and you are not in "rigid_newline" mode.
                    472: 
                    473: Autofill and fill buffer have been slightly modified.  Autofill will
                    474: now consider the whole line for possible breaking whenever you type
                    475: a space or tab.  This means that if the line is several words over
                    476: the line length, and you type space, several words will move to the
                    477: next line instead of just the last word.  
                    478: 
                    479: Fill buffer will now act
                    480: just on the marked region (Actually the first character of the first
                    481: line marked to the last character of the last line marked)  when
                    482: given an argument.  The whole region is considered as one block to
                    483: fill, irrespective of paragraph boundaries or blank lines, although
                    484: it still avoids breaking lines in such a way that a '.' or ''' is
                    485: put at the front of a line.
                    486: 
                    487: The new command ^X@ works just like ^^X<, except that it takes the
                    488: string used for prompting
                    489: from the kill stack (or from the user if invoked from the
                    490: terminal)  This allows you to alter the string used for prompting
                    491: rather than compiling it in.
                    492: 
                    493: The ^X^O command now returns 1 if both windows contain the same
                    494: buffer, 0 if the windows contain different buffers, and -1 if it is
                    495: called in one window mode.
                    496: 
                    497: Querry replace will now display the from and to strings at the
                    498: bottom of the screen.  It also has a new option 'b' which causes it
                    499: to go backwards to the previous occurance of the To string.  (Note
                    500: that this means find the previous occurance in the current file and
                    501: does not find something that has already been replaced!).  Query
                    502: replace also remembers the most recent replacement string and will
                    503: substitute it for a replacement string consisting of a single '%'
                    504: character.  
                    505: 
                    506: The grow/shrink window  command (^X^^) will now expand or contract
                    507: the display window while in 1 window mode as well as two window
                    508: mode. The mode and echo lines remain at the bottom of the screen
                    509: independent of window size.
                    510: 
                    511: Emacs will now expand all of the usual shell meta characters in
                    512: filenames.  Thus you can read "*.c", or `logdir usa`/.profile.  In
                    513: all cases, only the first "word" (up to the first whitespace
                    514: character) is used from the expansion.  Thus when specifying files
                    515: with "*", only the first match is found.  The expansion of shell
                    516: meta characters is slow, since emacs runs a subshell to do it.
                    517: 
                    518: There is a new mode (display_percent) which will display the current
                    519: file position as a percentage of the number of lines in the file
                    520: when turned on.
                    521: 
                    522: Two new operators have been added to convert between numeric and
                    523: string values.  With an argument of 16, ^X~ will convert the result
                    524: of the next command to a string and put it on the kill stack.  With
                    525: an argument of 17, The top item on the kill stack is converted to an
                    526: integer and returned as the result of ^X~.  See the macros document
                    527: for details.
                    528: 
                    529: Emacs now strips leading tabs and blanks from macro definitions when
                    530: they are loaded in order to reduce storage requirements.  Although
                    531: it is possible to construct a macro that would be effected by this
                    532: change, it does not occur with normal coding practices.
                    533: 
                    534: SUBJECT: changes in emacs_4.5
                    535: 
                    536: Added a new command (M-E) which expands an environment variable and
                    537: returns its value (or a null string) on the kill stack.  The return
                    538: value of M-E is 1 if the string fed to it matched an environment
                    539: variable, and 0 otherwise. (12/22/81)
                    540: 
                    541: Added a new option to query replace.  When you respond with ".",
                    542: query replace replaces the current occurance and exits query
                    543: replace. (12/29/81)
                    544: 
                    545: New Meta character for file names: (12/30/81)
                    546: 
                    547: Emacs now interprets the tilde character (~) in filenames as meaning
                    548:        "home directory" like the C shell.  Emacs will take the
                    549:        characters following the ~ up to the next word separator as
                    550:        the login name of a user and translate the entire sequence
                    551:        to that user's home directory.  A null user name is taken as
                    552:        your own, while the special user name EMACS is mapped to the
                    553:        emacs data directry (contains the macro library and other
                    554:        emacs related files).  Thus ~/.profile references
                    555:        your .profile, ~foo/.profile references the .profile for
                    556:        user foo, and ~EMACS/macros/crypt references the crypt macro
                    557:        package.
                    558: 
                    559: Emacs will now take a full path name to specify the terminal
                    560:        description file either in the TERM environment variable or
                    561:        with the M-t command.  This allows a user who does not have
                    562:        control of the terminals database to customize his own
                    563:        terminal description to meet special needs.
                    564: 
                    565: Emacs now responds to a break signal.  When a break is detected,
                    566: emacs stops what it is doing and prompts the user.  You have 5 options:
                    567: 
                    568:        'y' or ' ' causes a "recursive edit" to be invoked on top of
                    569:        whatever you were doing.  Entering ^Z from the recursive
                    570:        edit will return you to the break message.
                    571:        
                    572:        'n' (no break) causes emacs to resume whatever was in
                    573:        progress when break was detected.
                    574:        
                    575:        '^G' (quit) causes emacs to abandon what was interrupted and
                    576:        unwind to the top level.  Any macros or init files being
                    577:        executed are abandoned.
                    578:        
                    579:        '^Z' Causes emacs to exit, after asking about saving any
                    580:        modified buffers.
                    581: 
                    582:        '^]' Causes emacs to crash leaving behind a core dump.  (Not
                    583:        terribly useful except for my debugging!)
                    584: 
                    585: This allows you to interrupt a looping macro or long running search
                    586: and to escape from it if necessary.
                    587: 
                    588: MAILER parameter:  If you set the environment variable $MAILER,
                    589: emacs will take it as the name of the command to run to send mail
                    590: when M-^M is invoked.
                    591: 
                    592: More editing for string parameters: (3/1/82)
                    593: 
                    594:        You can now edit string-valued parameters (Like filenames or
                    595:        unix commands) Using ^A, ^E, ^F, ^B, ^D, ^K ^U and ^?
                    596:        If you type characters in the middle of a line, they are
                    597:        inserted in place.
                    598: 
                    599: Keyboard Macros: (6/15/82)
                    600: 
                    601:        You can now tell emacs to remember a sequence of keystrokes
                    602:        to be re-executed whenever you want.  ^X( tells emacs to
                    603:        start remembering, ^X) ends the remembered sequence, and ^XE
                    604:        executes it.  ^X( and ^X) do not interfere with normal
                    605:        editing, however the saving causes some overhead, as
                    606:        characters received from the keyboard are written one at a
                    607:        time into a file ($HOME/.emacs_kbd) to be re-invoked.  Note
                    608:        that you can use this feature to record a backup script of
                    609:        your editing session.
                    610:        
                    611: Picture Editing Modes:  (6/6/82)
                    612: 
                    613:        Two new modes have been added to facilitate editing of pictures:
                    614: 
                    615:        "picture" mode treats the buffer as an electronic blackboard
                    616:        extending infinitely to the right and down.  The screen is a
                    617:        window into this blackboard.  Text to the right of the window is
                    618:        not shown  (As in normal mode, a ! appears at the right margin,
                    619:        but the rest of the line is invisible.)  The horizontal position
                    620:        of the left most character position displayed is given on the
                    621:        mode line to the left of the editor name, if it is not zero. 
                    622:        The screen automatically scrolls left or right to keep the
                    623:        cursor in view.  Several commands behave differently in
                    624:        picture mode:
                    625:        
                    626:        ^N/^P   These keep the same character position.  If the line
                    627:                being moved to is not long enough, it is extended.
                    628: 
                    629:        ^F/^B   These will not go off of the current line.  Movement
                    630:                to the right causes the line to extend, movement to
                    631:                the left stops at the left margin.
                    632:                
                    633:        Deletions and ^Y.  These treat the region to be deleted as a
                    634:                rectangle on the screen.  For example, ^W takes the
                    635:                mark as one corner and the cursor position as the
                    636:                other corner of a rectangle and deletes its
                    637:                contents.  Likewise, ^Y retrieves text in the same
                    638:                fashion.  (This makes most sense with nodelete mode
                    639:                and overwrite mode.  See below).
                    640:                
                    641:        "nodelete" mode directs emacs not to remove text that is
                    642:        deleted via text deletion commands, but to overwrite it with
                    643:        blanks.  This should probably be the behavior associated
                    644:        with overwrite mode, but for compatibility, they are treated
                    645:        separaterly.
                    646:        
                    647:        These two modes are intended to work together with overwrite
                    648:        mode to give you an editor designed to work with two
                    649:        dimensional displays of textual information.  Using these
                    650:        modes in other combinations may cause somewhat strange
                    651:        behavior.  In addition, commands may not behave exactly as
                    652:        expected if the file being edited contains tabs, backspaces,
                    653:        or control and meta characters.  If this is a serious
                    654:        problem, I can consider fixing it, but this would not be a
                    655:        simple fix!
                    656:        
                    657:        Enjoy
                    658:        
                    659: SUBJECT: changes in emacs_4.6
                    660: 
                    661: Dired now does recursive edits in the same process, allowing you to
                    662: peruse a directory structure much quicker.  If you try to read a
                    663: file with dired, it will display the contents, not the directory
                    664: listing.  
                    665: 
                    666: Emacs has some hooks to interface to the blit terminal.  These
                    667: include a new command (^Xg) for use in positioning from input from
                    668: the mouse, and a new method of spewing out raw text to the terminal
                    669: (M-3^X<) that can be used to download control information directly
                    670: into the terminal, and a feature that enables emacs to discover the
                    671: window size of the current layer.  For more information, see the
                    672: blit.info file in the macros directory.
                    673: 
                    674: Emacs will read and write encrypted files via the unix crypt
                    675: program.  The command ^Xk prompts for an encryption key.  All
                    676: subsequent reads, writes, and saves use that key in saving.  This
                    677: also applies to files saved in case of crashes, and to the temporary
                    678: files used by emacs (though the encryption algorithm used for
                    679: temporary files is not the standard one).  Running emacs with the
                    680: command line flag "-x" will cause emacs to prompt for a key name
                    681: before reading the file specified on the command line.  For both
                    682: this and ^Xk, the key is echoed on the screen, but disappears as
                    683: soon as you hit return.
                    684: 
                    685: Performance on editing large files should be improved substantially.
                    686: Startup for all size files should be faster.
                    687: 
                    688: There is a new option to querry replace.  Typing <escape> to the
                    689: prompt during querry replace will cause it to ask for a new string
                    690: to substitute.  Unless you type ^G, this will become the new string
                    691: to substitute in subsequent instances (^G exits querry replace).
                    692: 
                    693: Lowercase letter command: M-l.  Converts the next character to lower
                    694:        case.
                    695: 
                    696: Screen goto command: ^Xg
                    697: 
                    698:        This command goes to a screen position.  It is intended to
                    699:        help interface to terminals with a mouse, or other
                    700:        positioning device.  The command takes its argument and
                    701:        decodes it as: Row=arg%128,Col=arg/128, where row 0,col 0 is
                    702:        the upper left hand corner of the screen.  It then goes to
                    703:        the requested position, changing windows if appropriate. 
                    704:        Attempts to position to most "illegal" positions result in
                    705:        going to the nearest legal position, however positioning
                    706:        into the echo area or off the bottom of the screen result in
                    707:        no movement.
                    708:        
                    709: The display of time and "you have mail" has been changed somewhat. 
                    710: The effect should be that both messages will now appear on the line
                    711: below the mode line when appropriate, and both will be updated when
                    712: your terminal sits idle.  You may notice the mail message appearing
                    713: and disappearing at different times than it did before.
                    714: 
                    715: New Modes:
                    716: 
                    717: ctl_char:      The character to be used to specify that the next
                    718:                character is to be made a control character when
                    719:                controlify mode is on.  The mode is the ascii value
                    720:                of the character.
                    721: 
                    722: flow_lim:      An integer specifying control over xon/xoff flow
                    723:                control.  If flow_lim is non-zero, emacs will enable
                    724:                xon/xoff flow control whenever more than flow_lim
                    725:                characters are sent to the terminal at one time. 
                    726:                This will also cause typeahead of ^S or ^Q to be
                    727:                mis-interpreted.  This mode should be set only if
                    728:                xon/xoff flow control is absolutely required for
                    729:                correct operation.  Under normal conditions, emacs
                    730:                supplies sufficient padding to terminals to allow
                    731:                operation at all speeds without xon/xoff flow
                    732:                control.
                    733:                
                    734: eofnl:         an on/off mode specifying that a newline will be
                    735:                appended to any file written from a buffer not
                    736:                containing a newline.  This mode defaults to ON.  If
                    737:                you want to edit files that you do not want to end
                    738:                in a newline, turn this mode off.
                    739:        
                    740: SUBJECT: changes in emacs_4.7
                    741: 
                    742: 4.6a,b,c:      Added checks on reading/writing files for concurrent
                    743:                access by other processes.  Emacs will complain if
                    744:                you try and write to something that someone modified
                    745:                while you were editing it.  It will not let you
                    746:                overwrite the other changes.  You must save your
                    747:                buffer in some other file, then find out what's
                    748:                wrong.
                    749:                
                    750: 4.6d:          Lots of minor bug fixes, including fixes to dired.
                    751: 
                    752: 
                    753: 4.6d:          Macro trace command (^XT).  This command traces the
                    754:                execution of the next command. Each primitave
                    755:                command is printed as it is executed, along with the
                    756:                argument and result.  Retrievals from the kill stack
                    757:                are also displayed so that you can see the arguments
                    758:                passed to commands that take string arguments. 
                    759:                Emacs pauses after every command for you to hit a
                    760:                key.
                    761: 
                    762: 4.7:           Improved macro capabilities.  A macro compiler that
                    763:                compiles a lisp like language into the familiar and
                    764:                uncomprehensible macro language of the past.  This
                    765:                is separately described (in the nroff file
                    766:                ecompile).  In connection with this change, the
                    767:                following additions/changes were made to the basic
                    768:                macro language:
                    769:                
                    770:                a)      Expanded naming.  There is now no limit on
                    771:                        the number of named macros.  calling/called
                    772:                        names must matched exactly now.  (The old
                    773:                        system allowed any prefix, and just caused
                    774:                        confusion.)
                    775:                b)      New numeric operations for bitwise and, or,
                    776:                        and xor.  (see macro.mm for details)
                    777:                        
                    778:                c)      New string operations for append strings,
                    779:                        substring, index, and string length.
                    780: 
                    781:                d)      New operation to convert strings to pointers
                    782:                        and vice versa.  This supports the string
                    783:                        variables.
                    784:                        
                    785:                e)      Named global variables (seem macro
                    786:                        documentation for details)
                    787:                        
                    788:        new modes:
                    789:        
                    790:        autoload mode (defaults to on) 
                    791:        
                    792:                causes a call of a macro by name from another macro
                    793:                to try to load a file with the same name as the
                    794:                macro from either the directory specified by
                    795:                environment variable $EMACS_LIB, or the directory
                    796:                ~EMACS/macros.
                    797: 
                    798: 4.7:   Display enhancement.  Emacs will now display the current line
                    799:        first whenever re-drawing a large portion of the screen, provided
                    800:        that your terminal has either insert/delete line or selective
                    801:        scrolling capability.
                    802: 
                    803: Subject: New features in emacs versions 4.8 and 4.9
                    804: 
                    805: 1)     Undo command.  M-u will undo the last significant text
                    806:        change.  Deletions, insertions, the effect of m-y, can all
                    807:        be undone.  Replacements can sometimes be undone.  (If there
                    808:        weren't more than about 10 individual replacements done). 
                    809:        Undo is it's own inverse.  
                    810:        
                    811: 2)     Macro hooks.  Macros defined with particular names will be
                    812:        invoked automatically under appropriate circumstances,
                    813:        allowing you to customize the behavior of emacs.
                    814:        
                    815: 3)     New macro programming commands:
                    816: 
                    817:                format -- do  string format conversion, substituting
                    818:                parameter strings for format specifiers.
                    819: 
                    820:        (unget-character <arg>) pushes a character back onto the
                    821:                input queue.
                    822:        
                    823:        input-count Returns the number of characters typed and not
                    824:                yet processed by emacs.
                    825: 
                    826:        window-top      screen-line of top of window
                    827:        window-bottom   screen-line at bottom of window
                    828:        first-visible-line      file-line at top of window
                    829:        last-visible-line       file-line at bottom of window
                    830: 
                    831:        (format <format> <string 1> <string 2 > ...)
                    832:                This is a kind of primitive printf allowing you to
                    833:                substitute string arguments into a format string.
                    834:                
                    835:        Several macro compiler bugs were fixed, allowing more
                    836:        flexible syntax and avoiding errors that caused coredumps in
                    837:        earlier versions.               
                    838: 
                    839:        Due to changes in the ways that key bindings are done,
                    840:        macros should now run about 3 times as fast as they did in
                    841:        previous versions.
                    842: 
                    843: 4)     Berkeley unix tty I/O changes.  Emacs now supports flow_lim
                    844:        mode, handles break from the keyboard, and updates the time
                    845:        and mail messages while the terminal is idle on 4.2BSD
                    846:        systems as well as on AT&T unix.  As a result of this
                    847:        change, the mark command cannot be typed as ^@ on the
                    848:        keyboard from berkeley unix systems.  Please use meta-space
                    849:        instead.  (^@ and meta-space both continue to work in macros
                    850:        as usual).
                    851: 
                    852: 5 (11/1) 7bit_ascii mode:  This mode changes the display of meta
                    853:        characters, showing them as underlined rather than prefixed
                    854:        with M-, to make displays of files using the high order bit
                    855:        for graphics or format control more readable.
                    856: 
                    857: 
                    858: 6 New command: M-^Z.  This command causes emacs to try to suspend
                    859:                itself and return control to the shell on any system
                    860:                using berkeley job control, or on a system using
                    861:                "shl".  On systems using "shl", emacs will print a
                    862:                message requesting you to type your normal character
                    863:                for suspending jobs, while on berkeley systems,
                    864:                emacs suspends itself automatically.
                    865: 
                    866: 7 New command -- M-0M-$.  This command runs a sub-process in a buffer
                    867:                on emacs.  The process is started and runs
                    868:                assynchronously.  All output that is produced is
                    869:                appended to the buffer.  You can send input to the
                    870:                sub-process by entering a line of text and hitting
                    871:                return in the buffer in which it is run, or by using
                    872:                the ^X^T command to send text to that buffer.  The
                    873:                mark in this buffer is maintained at the end of the
                    874:                last output from the process.  When you hit return,
                    875:                if you are on the same line as the mark, everything
                    876:                after the mark is sent.  This avoids sending back
                    877:                prompts typed by the process.  (If you are anywhere
                    878:                else, it sends the whole line.)
                    879:                
                    880: Key Bindings:  As of version 4.9, the key bindings used by macros
                    881:                are different from those of the terminal.  This
                    882:                allows you to re-map the keyboard without
                    883:                interfering with the execution of macros.  Macro
                    884:                code will use the built-in command attached to a key
                    885:                (if any), no matter how the keyboard may have been
                    886:                re-mapped by changing key bindings around with M-:,
                    887:                and no matter what macros have been bound to
                    888:                keyboard keys.  If there is no default binding, and
                    889:                if there is a macro bound to the key, then it will
                    890:                execute the macro.  You can restore the default
                    891:                keyboard key bindings with by invoking the M-:
                    892:                command with an argument of 0.
                    893: 
                    894: 
                    895: Macros:                Many macros have been enhanced, and source is now
                    896:                available for more of them.
                    897:                
                    898: 
                    899:                Of particular interest are the new netty and
                    900:                emacsterm macros for use with blits and dmd 5620
                    901:                terminals.  For documentation, see
                    902:                ~EMACS/macro_source/blit-or-dmd.  Also included are
                    903:                new macros for lisp editing and for editing of emacs
                    904:                macros.  These provide the parentheses matching and
                    905:                indenting functions of the old lisp macros, plus
                    906:                some new functions for navigating in a lisp file and
                    907:                interacting with a lisp interpreter running in a
                    908:                buffer.
                    909: 
                    910: Documentation: The users manual and macros manual have both been
                    911:                completely rewritten to try to achieve a logical
                    912:                organization rather than a historical one.
                    913: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.