Annotation of 43BSD/contrib/emacs/etc/ONEWS, revision 1.1

1.1     ! root        1: Old GNU Emacs NEWS -- history of user-visible changes thru version 15.
        !             2: Copyright (C) 1985 Richard M. Stallman.
        !             3: See the end for copying conditions.
        !             4: 
        !             5: Changes in Emacs 15
        !             6: 
        !             7: * Emacs now runs on Sun and Megatest 68000 systems;
        !             8:  also on at least one 16000 system running 4.2.
        !             9: 
        !            10: * Emacs now alters the output-start and output-stop characters
        !            11:  to prevent C-s and C-q from being considered as flow control
        !            12:  by cretinous rlogin software in 4.2.
        !            13: 
        !            14: * It is now possible convert Mocklisp code (for Gosling Emacs) to Lisp code
        !            15:  that can run in GNU Emacs.  M-x convert-mocklisp-buffer
        !            16:  converts the contents of the current buffer from Mocklisp to
        !            17:  GNU Emacs Lisp.  You should then save the converted buffer with C-x C-w
        !            18:  under a name ending in ".el"
        !            19: 
        !            20:  There are probably some Mocklisp constructs that are not handled.
        !            21:  If you encounter one, feel free to report the failure as a bug.
        !            22:  The construct will be handled in a future Emacs release, if that is not
        !            23:  not too hard to do.
        !            24: 
        !            25:  Note that lisp code converted from Mocklisp code will not necessarily
        !            26:  run as fast as code specifically written for GNU Emacs, nor will it use
        !            27:  the many features of GNU Emacs which are not present in Gosling's emacs.
        !            28:  (In particular, the byte-compiler (m-x byte-compile-file) knows little
        !            29:  about compilation of code directly converted from mocklisp.)
        !            30:  It is envisaged that old mocklisp code will be incrementally converted
        !            31:  to GNU lisp code, with M-x convert-mocklisp-buffer being the first
        !            32:  step in this process.
        !            33: 
        !            34: * Control-x n (narrow-to-region) is now by default a disabled command.
        !            35: 
        !            36:  This means that, if you issue this command, it will ask whether
        !            37:  you really mean it.  You have the opportunity to enable the
        !            38:  command permanently at that time, so you will not be asked again.
        !            39:  This will place the form "(put 'narrow-to-region 'disabled nil)" in your
        !            40:  .emacs file.
        !            41: 
        !            42: * Tags now prompts for the tag table file name to use.
        !            43: 
        !            44:  All the tags commands ask for the tag table file name
        !            45:  if you have not yet specified one.
        !            46: 
        !            47:  Also, the command M-x visit-tag-table can now be used to
        !            48:  specify the tag table file name initially, or to switch
        !            49:  to a new tag table.
        !            50: 
        !            51: * If truncate-partial-width-windows is non-nil (as it intially is),
        !            52:  all windows less than the full screen width (that is,
        !            53:  made by side-by-side splitting) truncate lines rather than continuing
        !            54:  them.
        !            55: 
        !            56: * Emacs now checks for Lisp stack overflow to avoid fatal errors.
        !            57:  The depth in eval, apply and funcall may not exceed max-lisp-eval-depth.
        !            58:  The depth in variable bindings and unwind-protects may not exceed
        !            59:  max-specpdl-size.  If either limit is exceeded, an error occurs.
        !            60:  You can set the limits to larger values if you wish, but if you make them
        !            61:  too large, you are vulnerable to a fatal error if you invoke
        !            62:  Lisp code that does infinite recursion.
        !            63: 
        !            64: * New hooks  find-file-hook  and  write-file-hook.
        !            65:  Both of these variables if non-nil should be functions of no arguments.
        !            66:  At the time they are called (current-buffer) will be the buffer being
        !            67:  read or written respectively.
        !            68: 
        !            69:  find-file-hook  is called whenever a file is read into its own buffer,
        !            70:  such as by calling  find-file,  revert-buffer, etc.  It is not called by
        !            71:  functions such as  insert-file  which do not read the file into a buffer of
        !            72:  its own.
        !            73:  find-file-hook  is called after the file has been read in and its
        !            74:  local variables (if any) have been processed.
        !            75: 
        !            76:  write-file-hook  is called just before writing out a file from a buffer.
        !            77: 
        !            78: * The initial value of shell-prompt-pattern is now  "^[^#$%>]*[#$%>] *"
        !            79: 
        !            80: * If the .emacs file sets inhibit-startup-message to non-nil,
        !            81:  the messages normally printed by Emacs at startup time
        !            82:  are inhibited.
        !            83: 
        !            84: * Facility for run-time conditionalization on the basis of emacs features.
        !            85: 
        !            86:  The new variable  features  is a list of symbols which represent "features"
        !            87:  of the executing emacs, for use in run-time conditionalization.
        !            88: 
        !            89:  The function  featurep  of one argument may be used to test for the
        !            90:  presence of a feature. It is just the same as
        !            91:  (not (null (memq FEATURE features))) where FEATURE is its argument.
        !            92:  For example, (if (featurep 'magic-window-hack)
        !            93:                  (transmogrify-window 'vertical)
        !            94:                (split-window-vertically))
        !            95: 
        !            96:  The function  provide  of one argument "announces" that FEATURE is present.
        !            97:  It is much the same as (if (not (featurep FEATURE))
        !            98:                            (setq features (cons FEATURE features)))
        !            99: 
        !           100:  The function  require  with arguments FEATURE and FILE-NAME loads FILE-NAME
        !           101:  (which should contain the form (provide FEATURE)) unless FEATURE is present.
        !           102:  It is much the same as (if (not (featurep FEATURE))
        !           103:                            (progn (load FILE-NAME)
        !           104:                                   (if (not featurep FEATURE) (error ...))))
        !           105:  FILE-NAME is optional and defaults to FEATURE.
        !           106: 
        !           107: * New function load-average.
        !           108: 
        !           109:  This returns a list of three integers, which are
        !           110:  the current 1 minute, 5 minute and 15 minute load averages,
        !           111:  each multiplied by a hundred (since normally they are floating
        !           112:  point numbers).
        !           113: 
        !           114: * Per-terminal libraries loaded automatically.
        !           115: 
        !           116:  Emacs when starting up on terminal type T automatically loads
        !           117:  a library named term-T.  T is the value of the TERM environment variable.
        !           118:  Thus, on terminal type vt100, Emacs would do (load "term-vt100" t t).
        !           119:  Such libraries are good places to set the character translation table.
        !           120: 
        !           121:  It is a bad idea to redefine lots of commands in a per-terminal library,
        !           122:  since this affects all users.  Instead, define a command to do the
        !           123:  redefinitions and let the user's init file, which is loaded later,
        !           124:  call that command or not, as the user prefers.
        !           125: 
        !           126: * Programmer's note: detecting killed buffers.
        !           127: 
        !           128:  Buffers are eliminated by explicitly killing them, using
        !           129:  the function kill-buffer.  This does not eliminate or affect
        !           130:  the pointers to the buffer which may exist in list structure.
        !           131:  If you have a pointer to a buffer and wish to tell whether
        !           132:  the buffer has been killed, use the function buffer-name.
        !           133:  It returns nil on a killed buffer, and a string on a live buffer.
        !           134: 
        !           135: * New ways to access the last command input character.
        !           136: 
        !           137:  The function last-key-struck, which used to return the last
        !           138:  input character that was read by command input, is eliminated.
        !           139:  Instead, you can find this information as the value of the
        !           140:  variable last-command-char.  (This variable used to be called
        !           141:  last-key).
        !           142: 
        !           143:  Another new variable, last-input-char, holds the last character
        !           144:  read from the command input stream regardless of what it was
        !           145:  read for.  last-input-char and last-command-char are different
        !           146:  only inside a command that has called read-char to read input.
        !           147: 
        !           148: * The new switch -kill causes Emacs to exit after processing the
        !           149:  preceding command line arguments.  Thus,
        !           150:     emacs -l lib data -e do-it -kill
        !           151:  means to load lib, find file data, call do-it on no arguments,
        !           152:  and then exit.
        !           153: 
        !           154: * The config.h file has been modularized.
        !           155: 
        !           156:  Options that depend on the machine you are running on are defined
        !           157:  in a file whose name starts with "m-", such as m-vax.h.
        !           158:  Options that depend on the operating system software version you are
        !           159:  running on are defined in a file whose name starts with "s-",
        !           160:  such as s-bsd4.2.h.
        !           161: 
        !           162:  config.h includes one m- file and one s- file.  It also defines a
        !           163:  few other options whose values do not follow from the machine type
        !           164:  and system type being used.  Installers normally will have to
        !           165:  select the correct m- and s- files but will never have to change their
        !           166:  contents.
        !           167: 
        !           168: * Termcap AL and DL strings are understood.
        !           169: 
        !           170:  If the termcap entry defines AL and DL strings, for insertion
        !           171:  and deletion of multiple lines in one blow, Emacs now uses them.
        !           172:  This matters most on certain bit map display terminals for which
        !           173:  scrolling is comparatively slow.
        !           174: 
        !           175: * Bias against scrolling screen far on fast terminals.
        !           176: 
        !           177:  Emacs now prefers to redraw a few lines rather than
        !           178:  shift them a long distance on the screen, when the terminal is fast.
        !           179: 
        !           180: * New major mode, mim-mode.
        !           181: 
        !           182:  This major mode is for editing MDL code.  Perhaps a MDL
        !           183:  user can explain why it is not called mdl-mode.
        !           184:  You must load the library mim-mode explicitly to use this.
        !           185: 
        !           186: * GNU documentation formatter `texinfo'.
        !           187: 
        !           188:  The `texinfo' library defines a format for documentation
        !           189:  files which can be passed through Tex to make a printed manual
        !           190:  or passed through texinfo to make an Info file.  Texinfo is
        !           191:  documented fully by its own Info file; compare this file
        !           192:  with its source, texinfo.texinfo, for additional guidance.
        !           193: 
        !           194:  All documentation files for GNU utilities should be written
        !           195:  in texinfo input format.
        !           196: 
        !           197:  Tex processing of texinfo files requires the Botex macro package.
        !           198:  This is not ready for distribution yet, but will appear at
        !           199:  a later time.
        !           200: 
        !           201: * New function read-from-string (emacs 15.29)
        !           202: 
        !           203:  read-from-string takes three arguments: a string to read from,
        !           204:  and optionally start and end indices which delimit a substring
        !           205:  from which to read.  (They default to 0 and the length of the string,
        !           206:  respectively.)
        !           207: 
        !           208:  This function returns a cons cell whose car is the object produced
        !           209:  by reading from the string and whose cdr is a number giving the
        !           210:  index in the string of the first character not read. That index may
        !           211:  be passed as the second argument to a later call to  read-from-string
        !           212:  to read the next form represented by the string.
        !           213: 
        !           214:  In addition, the function  read  now accepts a string as its argument.
        !           215:  In this case, it calls  read-from-string  on the whole string, and
        !           216:  returns the car of the result. (ie the actual object read.)
        !           217: 
        !           218: Changes in Emacs 14
        !           219: 
        !           220: * Completion now prints various messages such as [Sole Completion]
        !           221:  or [Next Character Not Unique] to describe the results obtained.
        !           222:  These messages appear after the text in the minibuffer, and remain
        !           223:  on the screen until a few seconds go by or you type a key.
        !           224: 
        !           225: * The buffer-read-only flag is implemented.
        !           226:  Setting or binding this per-buffer variable to a non-nil value
        !           227:  makes illegal any operation which would modify the textual content of
        !           228:  the buffer.  (Such operations signal a  buffer-read-only  error)
        !           229:  The read-only state of a buffer may be altered using toggle-read-only
        !           230:  (C-x C-q)
        !           231:  The buffers used by Rmail, Dired, Rnews, and Info are now read-only
        !           232:  by default to prevent accidental damage to the information in those
        !           233:  buffers.
        !           234: 
        !           235: * Functions car-safe and cdr-safe.
        !           236:  These functions are like car and cdr when the argument is a cons.
        !           237:  Given an argument not a cons, car-safe always returns nil, with
        !           238:  no error; the same for cdr-safe.
        !           239: 
        !           240: * The new function user-real-login-name returns the name corresponding
        !           241:  to the real uid of the Emacs process.  This is usually the same
        !           242:  as what user-login-name returns; however, when Emacs is invoked
        !           243:  from su, user-real-login-name returns "root" but user-login-name
        !           244:  returns the name of the user who invoked su.
        !           245: 
        !           246: Changes in Emacs 13
        !           247: 
        !           248: * There is a new version numbering scheme.
        !           249: 
        !           250:  What used to be the first version number, which was 1,
        !           251:  has been discarded since it does not seem that I need three
        !           252:  levels of version number.
        !           253: 
        !           254:  However, a new third version number has been added to represent
        !           255:  changes by user sites.  This number will always be zero in
        !           256:  Emacs when I distribute it; it will be incremented each time
        !           257:  Emacs is built at another site.
        !           258: 
        !           259: * There is now a reader syntax for Meta characters:
        !           260:  \M-CHAR means CHAR or'ed with the Meta bit.  For example:
        !           261: 
        !           262:     ?\M-x   is   (+ ?x 128)
        !           263:     ?\M-\n  is   (+ ?\n 128)
        !           264:     ?\M-\^f is   (+ ?\^f 128)
        !           265: 
        !           266:  This syntax can be used in strings too.  Note, however, that
        !           267:  Meta characters are not meaningful in key sequences being passed
        !           268:  to define-key or lookup-key; you must use ESC characters (\e)
        !           269:  in them instead.
        !           270: 
        !           271:  ?\C- can be used likewise for control characters.  (13.9)
        !           272: 
        !           273: * Installation change
        !           274:  The string "../lisp" now adds to the front of the load-path
        !           275:  used for searching for Lisp files during Emacs initialization.
        !           276:  It used to replace the path specified in paths.h entirely.
        !           277:  Now the directory ../lisp is searched first and the directoris
        !           278:  specified in paths.h are searched afterward.
        !           279: 
        !           280: Changes in Emacs 1.12
        !           281: 
        !           282: * There is a new installation procedure.
        !           283:  See the file INSTALL that comes in the top level
        !           284:  directory in the tar file or tape.
        !           285: 
        !           286: * The Meta key is now supported on terminals that have it.
        !           287:  This is a shift key which causes the high bit to be turned on
        !           288:  in all input characters typed while it is held down.
        !           289: 
        !           290:  read-char now returns a value in the range 128-255 if
        !           291:  a Meta character is typed.  When interpreted as command
        !           292:  input, a Meta character is equivalent to a two character
        !           293:  sequence, the meta prefix character followed by the un-metized
        !           294:  character (Meta-G unmetized is G).
        !           295: 
        !           296:  The meta prefix character
        !           297:  is specified by the value of the variable meta-prefix-char.
        !           298:  If this character (normally Escape) has been redefined locally
        !           299:  with a non-prefix definition (such as happens in completing
        !           300:  minibuffers) then the local redefinition is suppressed when
        !           301:  the character is not the last one in a key sequence.
        !           302:  So the local redefinition is effective if you type the character
        !           303:  explicitly, but not effective if the character comes from
        !           304:  the use of the Meta key.
        !           305: 
        !           306: * `-' is no longer a completion command in the minibuffer.
        !           307:  It is an ordinary self-inserting character.
        !           308: 
        !           309: * The list load-path of directories load to search for Lisp files
        !           310:  is now controlled by the EMACSLOADPATH environment variable
        !           311: [[ Note this was originally EMACS-LOAD-PATH and has been changed
        !           312:  again; sh does not deal properly with hyphens in env variable names]]
        !           313:  rather than the EPATH environment variable.  This is to avoid
        !           314:  conflicts with other Emacses.
        !           315: 
        !           316:  While Emacs is being built initially, the load-path
        !           317:  is now just ("../lisp"), ignoring paths.h.  It does not
        !           318:  ignore EMACSLOADPATH, however; you should avoid having
        !           319:  this variable set while building Emacs.
        !           320: 
        !           321: * You can now specify a translation table for keyboard
        !           322:  input characters, as a way of exchanging or substituting
        !           323:  keys on the keyboard.
        !           324: 
        !           325:  If the value of keyboard-translate-table is a string,
        !           326:  every character received from the keyboard is used as an
        !           327:  index in that string, and the character at that index in
        !           328:  the string is used as input instead of what was actually
        !           329:  typed.  If the actual input character is >= the length of
        !           330:  the string, it is used unchanged.
        !           331: 
        !           332:  One way this feature can be used is to fix bad keyboard
        !           333:  designes.  For example, on some terminals, Delete is 
        !           334:  Shift-Underscore.  Since Delete is a more useful character
        !           335:  than Underscore, it is an improvement to make the unshifted
        !           336:  character Delete and the shifted one Underscore.  This can
        !           337:  be done with
        !           338: 
        !           339:   ;; First make a translate table that does the identity translation.
        !           340:   (setq keyboard-translate-table (make-string 128 0))
        !           341:   (let ((i 0))
        !           342:     (while (< i 128)
        !           343:       (aset keyboard-translate-table i i)
        !           344:       (setq i (1+ i))))
        !           345: 
        !           346:   ;; Now alter translations of some characters.
        !           347:   (aset keyboard-translate-table ?\_ ?\^?)
        !           348:   (aset keyboard-translate-table ?\^? ?\_)
        !           349: 
        !           350:  If your terminal has a Meta key and can therefore send
        !           351:  codes up to 255, Meta characters are translated through
        !           352:  elements 128 through 255 of the translate table, and therefore
        !           353:  are translated independently of the corresponding non-Meta
        !           354:  characters.  You must therefore establish translations
        !           355:  independently for the Meta characters if you want them too:
        !           356: 
        !           357:   ;; First make a translate table that does the identity translation.
        !           358:   (setq keyboard-translate-table (make-string 256 0))
        !           359:   (let ((i 0))
        !           360:     (while (< i 256)
        !           361:       (aset keyboard-translate-table i i)
        !           362:       (setq i (1+ i))))
        !           363: 
        !           364:   ;; Now alter translations of some characters.
        !           365:   (aset keyboard-translate-table ?\_ ?\^?)
        !           366:   (aset keyboard-translate-table ?\^? ?\_)
        !           367: 
        !           368:   ;; Now alter translations of some Meta characters.
        !           369:   (aset keyboard-translate-table (+ 128 ?\_) (+ 128 ?\^?))
        !           370:   (aset keyboard-translate-table (+ 128 ?\^?) (+ 128 ?\_))
        !           371: 
        !           372: * (process-kill-without-query PROCESS)
        !           373: 
        !           374: This marks the process so that, when you kill Emacs,
        !           375: you will not on its account be queried about active subprocesses.
        !           376: 
        !           377: Changes in Emacs 1.11
        !           378: 
        !           379: * The commands C-c and C-z have been interchanged,
        !           380:  for greater compatibility with normal Unix usage.
        !           381:  C-z now runs suspend-emacs and C-c runs exit-recursive-edit.
        !           382: 
        !           383: * The value returned by file-name-directory now ends
        !           384:  with a slash.  (file-name-directory "foo/bar") => "foo/".
        !           385:  This avoids confusing results when dealing with files
        !           386:  in the root directory.
        !           387: 
        !           388:  The value of the per-buffer variable default-directory
        !           389:  is also supposed to have a final slash now.
        !           390: 
        !           391: * There are now variables to control the switches passed to
        !           392:  `ls' by the C-x C-d command (list-directory).
        !           393:  list-directory-brief-switches is a string, initially "-CF",
        !           394:  used for brief listings, and list-directory-verbose-switches
        !           395:  is a string, initially "-l", used for verbose ones.
        !           396: 
        !           397: * For Ann Arbor Ambassador terminals, the termcap "ti" string
        !           398:  is now used to initialize the screen geometry on entry to Emacs,
        !           399:  and the "te" string is used to set it back on exit.
        !           400:  If the termcap entry does not define the "ti" or "te" string,
        !           401:  Emacs does what it used to do.
        !           402: 
        !           403: Changes in Emacs 1.10
        !           404: 
        !           405: * GNU Emacs has been made almost 1/3 smaller.
        !           406:  It now dumps out as only 530kbytes on Vax 4.2bsd.
        !           407: 
        !           408: * The term "checkpoint" has been replaced by "auto save"
        !           409:  throughout the function names, variable names and documentation
        !           410:  of GNU Emacs.
        !           411: 
        !           412: * The function load now tries appending ".elc" and ".el"
        !           413:  to the specified filename BEFORE it tries the filename
        !           414:  without change.
        !           415: 
        !           416: * rmail now makes the mode line display the total number
        !           417:  of messages and the current message number.
        !           418:  The "f" command now means forward a message to another user.
        !           419:  The command to search through all messages for a string is now "F".
        !           420:  The "u" command now means to move back to the previous
        !           421:  message and undelete it.  To undelete the selected message, use Meta-u.
        !           422: 
        !           423: * The hyphen character is now equivalent to a Space while
        !           424:  in completing minibuffers.  Both mean to complete an additional word.
        !           425: 
        !           426: * The Lisp function error now takes args like format
        !           427:  which are used to construct the error message.
        !           428: 
        !           429: * Redisplay will refuse to start its display at the end of the buffer.
        !           430:  It will pick a new place to display from, rather than use that.
        !           431: 
        !           432: * The value returned by garbage-collect has been changed.
        !           433:  Its first element is no longer a number but a cons,
        !           434:  whose car is the number of cons cells now in use,
        !           435:  and whose cdr is the number of cons cells that have been
        !           436:  made but are now free.
        !           437:  The second element is similar but describes symbols rather than cons cells.
        !           438:  The third element is similar but describes markers.
        !           439: 
        !           440: * The variable buffer-name has been eliminated.
        !           441:  The function buffer-name still exists.  This is to prevent
        !           442:  user programs from changing buffer names without going
        !           443:  through the rename-buffer function.
        !           444: 
        !           445: Changes in Emacs 1.9
        !           446: 
        !           447: * When a fill prefix is in effect, paragraphs are started
        !           448:  or separated by lines that do not start with the fill prefix.
        !           449:  Also, a line which consists of the fill prefix followed by
        !           450:  white space separates paragraphs.
        !           451: 
        !           452: * C-x C-v runs the new function find-alternate-file.
        !           453:  It finds the specified file, switches to that buffer,
        !           454:  and kills the previous current buffer.  (It requires
        !           455:  confirmation if that buffer had changes.)  This is
        !           456:  most useful after you find the wrong file due to a typo.
        !           457: 
        !           458: * Exiting the minibuffer moves the cursor to column 0,
        !           459:  to show you that it has really been exited.
        !           460: 
        !           461: * Meta-g (fill-region) now fills each paragraph in the
        !           462:  region individually.  To fill the region as if it were
        !           463:  a single paragraph (for when the paragraph-delimiting mechanism
        !           464:  does the wrong thing), use fill-region-as-paragraph.
        !           465: 
        !           466: * Tab in text mode now runs the function tab-to-tab-stop.
        !           467:  A new mode called indented-text-mode is like text-mode
        !           468:  except that in it Tab runs the function indent-relative,
        !           469:  which indents the line under the previous line.
        !           470:  If auto fill is enabled while in indented-text-mode,
        !           471:  the new lines that it makes are indented.
        !           472: 
        !           473: * Functions kill-rectangle and yank-rectangle.
        !           474:  kill-rectangle deletes the rectangle specified by dot and mark
        !           475:  (or by two arguments) and saves it in the variable killed-rectangle.
        !           476:  yank-rectangle inserts the rectangle in that variable.
        !           477: 
        !           478:  Tab characters in a rectangle being saved are replaced
        !           479:  by spaces in such a way that their appearance will
        !           480:  not be changed if the rectangle is later reinserted
        !           481:  at a different column position.
        !           482: 
        !           483: * `+' in a regular expression now means
        !           484:  to repeat the previous expression one or more times.
        !           485:  `?' means to repeat it zero or one time.
        !           486:  They are in all regards like `*' except for the
        !           487:  number of repetitions they match.
        !           488: 
        !           489:  \< in a regular expression now matches the null string
        !           490:  when it is at the beginning of a word; \> matches
        !           491:  the null string at the end of a word.
        !           492: 
        !           493: * C-x p narrows the buffer so that only the current page
        !           494:  is visible.
        !           495: 
        !           496: * C-x ) with argument repeats the kbd macro just
        !           497:  defined that many times, counting the definition
        !           498:  as one repetition.
        !           499: 
        !           500: * C-x ( with argument begins defining a kbd macro
        !           501:  starting with the last one defined.  It executes that
        !           502:  previous kbd macro initially, just as if you began
        !           503:  by typing it over again.
        !           504: 
        !           505: * C-x q command queries the user during kbd macro execution.
        !           506:  With prefix argument, enters recursive edit,
        !           507:   reading keyboard commands even within a kbd macro.
        !           508:   You can give different commands each time the macro executes.
        !           509:  Without prefix argument, reads a character.  Your options are:
        !           510:   Space -- execute the rest of the macro.
        !           511:   Delete -- skip the rest of the macro; start next repetition.
        !           512:   C-d -- skip rest of the macro and don't repeat it any more.
        !           513:   C-r -- enter a recursive edit, then on exit ask again for a character
        !           514:   C-l -- redisplay screen and ask again."
        !           515: 
        !           516: * write-kbd-macro and append-kbd-macro are used to save
        !           517:  a kbd macro definition in a file (as Lisp code to
        !           518:  redefine the macro when the file is loaded).
        !           519:  These commands differ in that write-kbd-macro
        !           520:  discards the previous contents of the file.
        !           521:  If given a prefix argument, both commands
        !           522:  record the keys which invoke the macro as well as the
        !           523:  macro's definition.
        !           524: 
        !           525: * The variable global-minor-modes is used to display
        !           526:  strings in the mode line of all buffers.  It should be
        !           527:  a list of elements thaht are conses whose cdrs are strings
        !           528:  to be displayed.  This complements the variable
        !           529:  minor-modes, which has the same effect but has a separate
        !           530:  value in each buffer.
        !           531: 
        !           532: * C-x = describes horizontal scrolling in effect, if any.
        !           533: 
        !           534: * Return now auto-fills the line it is ending, in auto fill mode.
        !           535:  Space with zero as argument auto-fills the line before it
        !           536:  just like Space without an argument.
        !           537: 
        !           538: Changes in Emacs 1.8
        !           539: 
        !           540: This release mostly fixes bugs.  There are a few new features:
        !           541: 
        !           542: * apropos now sorts the symbols before displaying them.
        !           543:  Also, it returns a list of the symbols found.
        !           544: 
        !           545:  apropos now accepts a second arg PRED which should be a function
        !           546:  of one argument; if PRED is non-nil, each symbol is tested
        !           547:  with PRED and only symbols for which PRED returns non-nil
        !           548:  appear in the output or the returned list.
        !           549: 
        !           550:  If the third argument to apropos is non-nil, apropos does not
        !           551:  display anything; it merely returns the list of symbols found.
        !           552: 
        !           553:  C-h a now runs the new function command-apropos rather than
        !           554:  apropos, and shows only symbols with definitions as commands.
        !           555: 
        !           556: * M-x shell sends the command 
        !           557:     if (-f ~/.emacs_NAME)source ~/.emacs_NAME
        !           558:  invisibly to the shell when it starts.  Here NAME
        !           559:  is replaced by the name of shell used,
        !           560:  as it came from your ESHELL or SHELL environment variable
        !           561:  but with directory name, if any, removed.
        !           562: 
        !           563: * M-, now runs the command tags-loop-continue, which is used
        !           564:  to resume a terminated tags-search or tags-query-replace.
        !           565: 
        !           566: Changes in Emacs 1.7
        !           567: 
        !           568: It's Beat CCA Week.
        !           569: 
        !           570: * The initial buffer is now called "*scratch*" instead of "scratch",
        !           571:  so that all buffer names used automatically by Emacs now have *'s.
        !           572: 
        !           573: * Undo information is now stored separately for each buffer.
        !           574:  The Undo command (C-x u) always applies to the current
        !           575:  buffer only.
        !           576: 
        !           577:  C-_ is now a synonym for C-x u.
        !           578: 
        !           579:  (buffer-flush-undo BUFFER) causes undo information not to
        !           580:  be kept for BUFFER, and frees the space that would have
        !           581:  been used to hold it.  In any case, no undo information is
        !           582:  kept for buffers whose names start with spaces.  (These
        !           583:  buffers also do not appear in the C-x C-b display.)
        !           584: 
        !           585: * Rectangle operations are now implemented.
        !           586:  C-x r stores the rectangle described by dot and mark
        !           587:  into a register; it reads the register name from the keyboard.
        !           588:  C-x g, the command to insert the contents of a register,
        !           589:  can be used to reinsert the rectangle elsewhere.
        !           590: 
        !           591:  Other rectangle commands include
        !           592:   open-rectangle:
        !           593:     insert a blank rectangle in the position and size
        !           594:     described by dot and mark, at its corners;
        !           595:     the existing text is pushed to the right.
        !           596:   clear-rectangle:
        !           597:     replace the rectangle described by dot ane mark
        !           598:     with blanks.  The previous text is deleted.
        !           599:   delete-rectangle:
        !           600:     delete the text of the specified rectangle,
        !           601:     moving the text beyond it on each line leftward.
        !           602: 
        !           603: * Side-by-side windows are allowed.  Use C-x 5 to split the
        !           604:  current window into two windows side by side.
        !           605:  C-x } makes the selected window ARG columns wider at the
        !           606:  expense of the windows at its sides.  C-x { makes the selected
        !           607:  window ARG columns narrower.  An argument to C-x 5 specifies
        !           608:  how many columns to give to the leftmost of the two windows made.
        !           609: 
        !           610:  C-x 2 now accepts a numeric argument to specify the number of
        !           611:  lines to give to the uppermost of the two windows it makes.
        !           612: 
        !           613: * Horizontal scrolling of the lines in a window is now implemented.
        !           614:  C-x < (scroll-left) scrolls all displayed lines left,
        !           615:  with the numeric argument (default 1) saying how far to scroll.
        !           616:  When the window is scrolled left, some amount of the beginning
        !           617:  of each nonempty line is replaced by an "$".
        !           618:  C-x > scrolls right.  If a window has no text hidden at the left
        !           619:  margin, it cannot be scrolled any farther right than that.
        !           620:  When nonzero leftwards scrolling is in effect in a window.
        !           621:  lines are automatically truncated at the window's right margin
        !           622:  regardless of the value of the variable truncate-lines in the
        !           623:  buffer being displayed.
        !           624: 
        !           625: * C-x C-d now uses the default output format of `ls',
        !           626:  which gives just file names in multiple columns.
        !           627:  C-u C-x C-d passes the -l switch to `ls'.
        !           628: 
        !           629: * C-t at the end of a line now exchanges the two preceding characters.
        !           630: 
        !           631:  All the transpose commands now interpret zero as an argument
        !           632:  to mean to transpose the textual unit after or around dot
        !           633:  with the one after or around the mark.
        !           634: 
        !           635: * M-! executes a shell command in an inferior shell
        !           636:  and displays the output from it.  With a prefix argument,
        !           637:  it inserts the output in the current buffer after dot
        !           638:  and sets the mark after the output.  The shell command
        !           639:  gets /dev/null as its standard input.
        !           640: 
        !           641:  M-| is like M-! but passes the contents of the region
        !           642:  as input to the shell command.  A prefix argument makes
        !           643:  the output from the command replace the contents of the region.
        !           644: 
        !           645: * The mode line will now say "Def" after the major mode
        !           646:  while a keyboard macro is being defined.
        !           647: 
        !           648: * The variable fill-prefix is now used by Meta-q.
        !           649:  Meta-q removes the fill prefix from lines that start with it
        !           650:  before filling, and inserts the fill prefix on each line
        !           651:  after filling.
        !           652: 
        !           653:  The command C-x . sets the fill prefix equal to the text
        !           654:  on the current line before dot.
        !           655: 
        !           656: * The new command Meta-j (indent-new-comment-line),
        !           657:  is like Linefeed (indent-new-line) except when dot is inside a comment;
        !           658:  in that case, Meta-j inserts a comment starter on the new line,
        !           659:  indented under the comment starter above.  It also inserts
        !           660:  a comment terminator at the end of the line above,
        !           661:  if the language being edited calls for one.
        !           662: 
        !           663: * Rmail should work correctly now, and has some C-h m documentation.
        !           664: 
        !           665: Changes in Emacs 1.6
        !           666: 
        !           667: * save-buffers-kill-emacs is now on C-x C-c
        !           668:  while C-x C-z does suspend-emacs.  This is to make
        !           669:  C-x C-c like the normal Unix meaning of C-c
        !           670:  and C-x C-z linke the normal Unix meaning of C-z.
        !           671: 
        !           672: * M-ESC (eval-expression) is now a disabled command by default.
        !           673:  This prevents users who type ESC ESC accidentally from
        !           674:  getting confusing results.  Put
        !           675:     (put 'eval-expression 'disabled nil)
        !           676:  in your ~/.emacs file to enable the command.
        !           677: 
        !           678: * Self-inserting text is grouped into bunches for undoing.
        !           679:  Each C-x u command undoes up to 20 consecutive self-inserting
        !           680:  characters.
        !           681: 
        !           682: * Help f now uses as a default the function being called
        !           683:  in the innermost Lisp expression that dot is in.
        !           684:  This makes it more convenient to use while writing
        !           685:  Lisp code to run in Emacs.
        !           686:  (If the text around dot does not appear to be a call
        !           687:  to a Lisp function, there is no default.)
        !           688: 
        !           689:  Likewise, Help v uses the symbol around or before dot
        !           690:  as a default, if that is a variable name.
        !           691: 
        !           692: * Commands that read filenames now insert the default
        !           693:  directory in the minibuffer, to become part of your input.
        !           694:  This allows you to see what the default is.
        !           695:  You may type a filename which goes at the end of the
        !           696:  default directory, or you may edit the default directory
        !           697:  as you like to create the input you want to give.
        !           698:  You may also type an absolute pathname (starting with /)
        !           699:  or refer to a home directory (input starting with ~)
        !           700:  after the default; the presence of // or /~ causes
        !           701:  everything up through the slash that precedes your
        !           702:  type-in to be ignored.
        !           703: 
        !           704:  Returning the default directory without change,
        !           705:  including the terminating slash, requests the use
        !           706:  of the default file name (usually the visited file's name).
        !           707: 
        !           708:  Set the variable insert-default-directory to nil
        !           709:  to turn off this feature.
        !           710: 
        !           711: * M-x shell now uses the environment variable ESHELL,
        !           712:  if it exists, as the file name of the shell to run.
        !           713:  If there is no ESHELL variable, the SHELL variable is used.
        !           714:  This is because some shells do not work properly as inferiors
        !           715:  of Emacs (or anything like Emacs).
        !           716: 
        !           717: * A new variable minor-modes now exists, with a separate value
        !           718:  in each buffer.  Its value should be an alist of elements
        !           719:  (MODE-FUNCTION-SYMBOL . PRETTY-NAME-STRING), one for each
        !           720:  minor mode that is turned on in the buffer.  The pretty
        !           721:  name strings are displayed in the mode line after the name of the
        !           722:  major mode (with spaces between them).  The mode function
        !           723:  symbols should be symbols whose function definitions will
        !           724:  turn on the minor mode if given 1 as an argument; they are present
        !           725:  so that Help m can find their documentation strings.
        !           726: 
        !           727: * The format of tag table files has been changed.
        !           728:  The new format enables Emacs to find tags much faster.
        !           729: 
        !           730:  A new program, etags, exists to make the kind of
        !           731:  tag table that Emacs wants.  etags is invoked just
        !           732:  like ctags; in fact, if you give it any switches,
        !           733:  it does exactly what ctags would do.  Give it the
        !           734:  empty switch ("-") to make it act like ctags with no switches.
        !           735: 
        !           736:  etags names the tag table file "TAGS" rather than "tags",
        !           737:  so that these tag tables and the standard Unix ones
        !           738:  can coexist.
        !           739: 
        !           740:  The tags library can no longer use standard ctags-style
        !           741:  tag tables files.
        !           742: 
        !           743: * The file of Lisp code Emacs reads on startup is now
        !           744:  called ~/.emacs rather than ~/.emacs_pro.
        !           745: 
        !           746: * copy-file now gives the copied file the same mode bits
        !           747:  as the original file.
        !           748: 
        !           749: * Output from a process inserted into the process's buffer
        !           750:  no longer sets the buffer's mark.  Instead it sets a
        !           751:  marker associated with the process to point to the end
        !           752:  of the inserted text.  You can access this marker with
        !           753:     (process-mark PROCESS)
        !           754:  and then either examine its position with marker-position
        !           755:  or set its position with set-marker.
        !           756: 
        !           757: * completing-read takes a new optional fifth argument which,
        !           758:  if non-nil, should be a string of text to insert into
        !           759:  the minibuffer before reading user commands.
        !           760: 
        !           761: * The Lisp function elt now exists:
        !           762:  (elt ARRAY N) is like (aref ARRAY N),
        !           763:  (elt LIST N) is like (nth N LIST).
        !           764: 
        !           765: * rplaca is now a synonym for setcar, and rplacd for setcdr.
        !           766:  eql is now a synonym for eq; it turns out that the Common Lisp
        !           767:  distinction between eq and eql is insignificant in Emacs.
        !           768:  numberp is a new synonym for integerp.
        !           769: 
        !           770: * auto-save has been renamed to auto-save-mode.
        !           771: 
        !           772: * Auto save file names for buffers are now created by the
        !           773:  function make-auto-save-file-name.  This is so you can
        !           774:  redefine that function to change the way auto save file names
        !           775:  are chosen.
        !           776: 
        !           777: * expand-file-name no longer discards a final slash.
        !           778:     (expand-file-name "foo" "/lose") => "/lose/foo"
        !           779:     (expand-file-name "foo/" "/lose") => "/lose/foo/"
        !           780: 
        !           781:  Also, expand-file-name no longer substitutes $ constructs.
        !           782:  A new function substitute-in-file-name does this.  Reading
        !           783:  a file name with read-file-name or the `f' or`F' option
        !           784:  of interactive calling uses substitute-in-file-name
        !           785:  on the file name that was read and returns the result.
        !           786: 
        !           787:  All I/O primitives including insert-file-contents and
        !           788:  delete-file call expand-file-name on the file name supplied.
        !           789:  This change makes them considerably faster in the usual case.
        !           790: 
        !           791: * Interactive calling spec strings allow the new code letter 'D'
        !           792:  which means to read a directory name.  It is like 'f' except
        !           793:  that the default if the user makes no change in the minibuffer
        !           794:  is to return the current default directory rather than the
        !           795:  current visited file name.
        !           796: 
        !           797: Changes in Emacs 1.5
        !           798: 
        !           799: * suspend-emacs now accepts an optional argument
        !           800:  which is a string to be stuffed as terminal input
        !           801:  to be read by Emacs's superior shell after Emacs exits.
        !           802: 
        !           803:  A library called ledit exists which uses this feature
        !           804:  to transmit text to a Lisp job running as a sibling of
        !           805:  Emacs.
        !           806: 
        !           807: * If find-file is given the name of a directory,
        !           808:  it automatically invokes dired on that directory
        !           809:  rather than reading in the binary data that make up
        !           810:  the actual contents of the directory according to Unix.
        !           811: 
        !           812: * Saving an Emacs buffer now preserves the file modes
        !           813:  of any previously existing file with the same name.
        !           814:  This works using new Lisp functions file-modes and
        !           815:  set-file-modes, which can be used to read or set the mode
        !           816:  bits of any file.
        !           817: 
        !           818: * The Lisp function  cond  now exists, with its traditional meaning.
        !           819: 
        !           820: * defvar and defconst now permit the documentation string
        !           821:  to be omitted.  defvar also permits the initial value
        !           822:  to be omitted; then it acts only as a comment.
        !           823: 
        !           824: Changes in Emacs 1.4
        !           825: 
        !           826: * Auto-filling now normally indents the new line it creates
        !           827:  by calling indent-according-to-mode.  This function, meanwhile,
        !           828:  has in Fundamental and Text modes the effect of making the line
        !           829:  have an indentation of the value of left-margin, a per-buffer variable.
        !           830: 
        !           831:  Tab no longer precisely does indent-according-to-mode;
        !           832:  it does that in all modes that supply their own indentation routine,
        !           833:  but in Fundamental, Text and allied modes it inserts a tab character.
        !           834: 
        !           835: * The command M-x grep now invokes grep (on arguments
        !           836:  supplied by the user) and reads the output from grep
        !           837:  asynchronously into a buffer.  The command C-x ` can
        !           838:  be used to move to the lines that grep has found.
        !           839:  This is an adaptation of the mechanism used for
        !           840:  running compilations and finding the loci of error messages.
        !           841: 
        !           842:  You can now use C-x ` even while grep or compilation
        !           843:  is proceeding; as more matches or error messages arrive,
        !           844:  C-x ` will parse them and be able to find them.
        !           845: 
        !           846: * M-x mail now provides a command to send the message
        !           847:  and "exit"--that is, return to the previously selected
        !           848:  buffer.  It is C-z C-z.
        !           849: 
        !           850: * Tab in C mode now tries harder to adapt to all indentation styles.
        !           851:  If the line being indented is a statement that is not the first
        !           852:  one in the containing compound-statement, it is aligned under
        !           853:  the beginning of the first statement.
        !           854: 
        !           855: * The functions screen-width and screen-height return the
        !           856:  total width and height of the screen as it is now being used.
        !           857:  set-screen-width and set-screen-height tell Emacs how big
        !           858:  to assume the screen is; they each take one argument,
        !           859:  an integer.
        !           860: 
        !           861: * The Lisp function 'function' now exists.  function is the
        !           862:  same as quote, except that it serves as a signal to the
        !           863:  Lisp compiler that the argument should be compiled as
        !           864:  a function.  Example:
        !           865:    (mapcar (function (lambda (x) (+ x 5))) list)
        !           866: 
        !           867: * The function set-key has been renamed to global-set-key.
        !           868:  undefine-key and local-undefine-key has been renamed to
        !           869:  global-unset-key and local-unset-key.
        !           870: 
        !           871: * Emacs now collects input from asynchronous subprocesses
        !           872:  while waiting in the functions sleep-for and sit-for.
        !           873: 
        !           874: * Shell mode's Newline command attempts to distinguish subshell
        !           875:  prompts from user input when issued in the middle of the buffer.
        !           876:  It no longer reexecutes from dot to the end of the line;
        !           877:  it reeexecutes the entire line minus any prompt.
        !           878:  The prompt is recognized by searching for the value of
        !           879:  shell-prompt-pattern, starting from the beginning of the line.
        !           880:  Anything thus skipped is not reexecuted.
        !           881: 
        !           882: Changes in Emacs 1.3
        !           883: 
        !           884: * An undo facility exists now.  Type C-x u to undo a batch of
        !           885:  changes (usually one command's changes, but some commands
        !           886:  such as query-replace divide their changes into multiple
        !           887:  batches.  You can repeat C-x u to undo further.  As long
        !           888:  as no commands other than C-x u intervene, each one undoes
        !           889:  another batch.  A numeric argument to C-x u acts as a repeat
        !           890:  count.
        !           891: 
        !           892:  If you keep on undoing, eventually you may be told that
        !           893:  you have used up all the recorded undo information.
        !           894:  Some actions, such as reading in files, discard all
        !           895:  undo information.
        !           896: 
        !           897:  The undo information is not currently stored separately
        !           898:  for each buffer, so it is mainly good if you do something
        !           899:  totally spastic.  [This has since been fixed.]
        !           900: 
        !           901: * A learn-by-doing tutorial introduction to Emacs now exists.
        !           902:  Type C-h t to enter it.
        !           903: 
        !           904: * An Info documentation browser exists.  Do M-x info to enter it.
        !           905:  It contains a tutorial introduction so that no more documentation
        !           906:  is needed here.  As of now, the only documentation in it
        !           907:  is that of Info itself.
        !           908: 
        !           909: * Help k and Help c are now different.  Help c prints just the
        !           910:  name of the function which the specified key invokes.  Help k
        !           911:  prints the documentation of the function as well.
        !           912: 
        !           913: * A document of the differences between GNU Emacs and Twenex Emacs
        !           914:  now exists.  It is called DIFF, in the same directory as this file.
        !           915: 
        !           916: * C mode can now indent comments better, including multi-line ones.
        !           917:  Meta-Control-q now reindents comment lines within the expression
        !           918:  being aligned.
        !           919: 
        !           920: * Insertion of a close-parenthesis now shows the matching open-parenthesis
        !           921:  even if it is off screen, by printing the text following it on its line
        !           922:  in the minibuffer.
        !           923: 
        !           924: * A file can now contain a list of local variable values
        !           925:  to be in effect when the file is edited.  See the file DIFF
        !           926:  in the same directory as this file for full details.
        !           927: 
        !           928: * A function nth is defined.  It means the same thing as in Common Lisp.
        !           929: 
        !           930: * The function install-command has been renamed to set-key.
        !           931:  It now takes the key sequence as the first argument
        !           932:  and the definition for it as the second argument.
        !           933:  Likewise, local-install-command has been renamed to local-set-key.
        !           934: 
        !           935: Changes in Emacs 1.2
        !           936: 
        !           937: * A Lisp single-stepping and debugging facility exists.
        !           938:  To cause the debugger to be entered when an error
        !           939:  occurs, set the variable debug-on-error non-nil.
        !           940: 
        !           941:  To cause the debugger to be entered whenever function foo
        !           942:  is called, do (debug-on-entry 'foo).  To cancel this,
        !           943:  do (cancel-debug-on-entry 'foo).  debug-on-entry does
        !           944:  not work for primitives (written in C), only functions
        !           945:  written in Lisp.  Most standard Emacs commands are in Lisp.
        !           946: 
        !           947:  When the debugger is entered, the selected window shows
        !           948:  a buffer called " *Backtrace" which displays a series
        !           949:  of stack frames, most recently entered first.  For each
        !           950:  frame, the function name called is shown, usually followed
        !           951:  by the argument values unless arguments are still being
        !           952:  calculated.  At the beginning of the buffer is a description
        !           953:  of why the debugger was entered: function entry, function exit,
        !           954:  error, or simply that the user called the function `debug'.
        !           955: 
        !           956:  To exit the debugger and return to top level, type `q'.
        !           957: 
        !           958:  In the debugger, you can evaluate Lisp expressions by 
        !           959:  typing `e'.  This is equivalent to `M-ESC'.
        !           960: 
        !           961:  When the debugger is entered due to an error, that is
        !           962:  all you can do.  When it is entered due to function entry
        !           963:  (such as, requested by debug-on-entry), you have two
        !           964:  options:
        !           965:   Continue execution and reenter debugger after the
        !           966:     completion of the function being entered.  Type `c'.
        !           967:   Continue execution but enter the debugger before
        !           968:     the next subexpression.  Type `d'.
        !           969: 
        !           970:  You will see that some stack frames are marked with *.
        !           971:  This means the debugger will be entered when those
        !           972:  frames exit.  You will see the value being returned
        !           973:  in the first line of the backtrace buffer.  Your options:
        !           974:   Continue execution, and return that value.  Type `c'.
        !           975:   Continue execution, and return a specified value.  Type `r'.
        !           976: 
        !           977:  You can mark a frame to enter the debugger on exit
        !           978:  with the `b' command, or clear such a mark with `u'.
        !           979: 
        !           980: * Lisp macros now exist.
        !           981:  For example, you can write
        !           982:     (defmacro cadr (arg) (list 'car (list 'cdr arg)))
        !           983:  and then the expression
        !           984:     (cadr foo)
        !           985:  will expand into
        !           986:     (car (cdr foo))
        !           987: 
        !           988: Changes in Emacs 1.1
        !           989: 
        !           990: * The initial buffer is now called "scratch" and is in a
        !           991:  new major mode, Lisp Interaction mode.  This mode is
        !           992:  intended for typing Lisp expressions, evaluating them,
        !           993:  and having the values printed into the buffer.
        !           994: 
        !           995:   Type Linefeed after a Lisp expression, to evaluate the
        !           996:  expression and have its value printed into the buffer,
        !           997:  advancing dot.
        !           998: 
        !           999:  The other commands of Lisp mode are available.
        !          1000: 
        !          1001: * The C-x C-e command for evaluating the Lisp expression
        !          1002:  before dot has been changed to print the value in the
        !          1003:  minibuffer line rather than insert it in the buffer.
        !          1004:  A numeric argument causes the printed value to appear
        !          1005:  in the buffer instead.
        !          1006: 
        !          1007: * In Lisp mode, the command M-C-x evaluates the defun
        !          1008:  containing or following dot.  The value is printed in
        !          1009:  the minibuffer.
        !          1010: 
        !          1011: * The value of a Lisp expression evaluated using M-ESC
        !          1012:  is now printed in the minibuffer.
        !          1013: 
        !          1014: * M-q now runs fill-paragraph, independent of major mode.
        !          1015: 
        !          1016: * C-h m now prints documentation on the current buffer's
        !          1017:  major mode.  What it prints is the documentation of the
        !          1018:  major mode name as a function.  All major modes have been
        !          1019:  equipped with documentation that describes all commands
        !          1020:  peculiar to the major mode, for this purpose.
        !          1021: 
        !          1022: * You can display a Unix manual entry with
        !          1023:  the M-x manual-entry command.
        !          1024: 
        !          1025: * You can run a shell, displaying its output in a buffer,
        !          1026:  with the M-x shell command.  The Return key sends input
        !          1027:  to the subshell.  Output is printed inserted automatically
        !          1028:  in the buffer.  Commands C-c, C-d, C-u, C-w and C-z are redefined
        !          1029:  for controlling the subshell and its subjobs.
        !          1030:  "cd", "pushd" and "popd" commands are recognized as you
        !          1031:  enter them, so that the default directory of the Emacs buffer
        !          1032:  always remains the same as that of the subshell.
        !          1033: 
        !          1034: * C-x $ (that's a real dollar sign) controls line-hiding based
        !          1035:  on indentation.  With a numeric arg N > 0, it causes all lines
        !          1036:  indented by N or more columns to become invisible.
        !          1037:  They are, effectively, tacked onto the preceding line, where
        !          1038:  they are represented by " ..." on the screen.
        !          1039:  (The end of the preceding visible line corresponds to a
        !          1040:  screen cursor position before the "...".  Anywhere in the
        !          1041:  invisible lines that follow appears on the screen as a cursor
        !          1042:  position after the "...".)
        !          1043:  Currently, all editing commands treat invisible lines just
        !          1044:  like visible ones, except for C-n and C-p, which have special
        !          1045:  code to count visible lines only.
        !          1046:  C-x $ with no argument turns off this mode, which in any case
        !          1047:  is remembered separately for each buffer.
        !          1048: 
        !          1049: * Outline mode is another form of selective display.
        !          1050:  It is a major mode invoked with M-x outline-mode.
        !          1051:  It is intended for editing files that are structured as
        !          1052:  outlines, with heading lines (lines that begin with one
        !          1053:  or more asterisks) and text lines (all other lines).
        !          1054:  The number of asterisks in a heading line are its level;
        !          1055:  the subheadings of a heading line are all following heading
        !          1056:  lines at higher levels, until but not including the next 
        !          1057:  heading line at the same or a lower level, regardless
        !          1058:  of intervening text lines.
        !          1059: 
        !          1060:   In outline mode, you have commands to hide (remove from display)
        !          1061:  or show the text or subheadings under each heading line
        !          1062:  independently.  Hidden text or subheadings are invisibly
        !          1063:  attached to the end of the preceding heading line, so that
        !          1064:  if you kill the hading line and yank it back elsewhere
        !          1065:  all the invisible lines accompany it.
        !          1066: 
        !          1067:   All editing commands treat hidden outline-mode lines
        !          1068:  as part of the preceding visible line.
        !          1069:  
        !          1070: * C-x C-z runs save-buffers-kill-emacs
        !          1071:  offers to save each file buffer, then exits.
        !          1072: 
        !          1073: * C-c's function is now called suspend-emacs.
        !          1074: 
        !          1075: * The command C-x m runs mail, which switches to a buffer *mail*
        !          1076:  and lets you compose a message to send.  C-x 4 m runs mail in
        !          1077:  another window.  Type C-z C-s in the mail buffer to send the
        !          1078:  message according to what you have entered in the buffer.
        !          1079: 
        !          1080:   You must separate the headers from the message text with
        !          1081:  an empty line.
        !          1082: 
        !          1083: * You can now dired partial directories (specified with names
        !          1084:  containing *'s, etc, all processed by the shell).  Also, you
        !          1085:  can dired more than one directory; dired names the buffer
        !          1086:  according to the filespec or directory name.  Reinvoking
        !          1087:  dired on a directory already direded just switches back to
        !          1088:  the same directory used last time; do M-x revert if you want
        !          1089:  to read in the current contents of the directory.
        !          1090: 
        !          1091:   C-x d runs dired, and C-x 4 d runs dired in another window.
        !          1092: 
        !          1093:   C-x C-d (list-directory) also allows partial directories now.
        !          1094: 
        !          1095: Lisp programming changes
        !          1096: 
        !          1097: * t as an output stream now means "print to the minibuffer".
        !          1098:  If there is already text in the minibuffer printed via t
        !          1099:  as an output stream, the new text is appended to the old
        !          1100:  (or is truncated and lost at the margin).  If the minibuffer
        !          1101:  contains text put there for some other reason, it is cleared
        !          1102:  first.
        !          1103: 
        !          1104:   t is now the top-level value of standard-output.
        !          1105: 
        !          1106:   t as an input stream now means "read via the minibuffer".
        !          1107:  The minibuffer is used to read a line of input, with editing,
        !          1108:  and this line is then parsed.  Any excess not used by `read'
        !          1109:  is ignored; each `read' from t reads fresh input.
        !          1110:  t is now the top-level value of standard-input.
        !          1111: 
        !          1112: * A marker may be used as an input stream or an output stream.
        !          1113:  The effect is to grab input from where the marker points,
        !          1114:  advancing it over the characters read, or to insert output
        !          1115:  at the marker and advance it.
        !          1116: 
        !          1117: * Output from an asynchronous subprocess is now inserted at
        !          1118:  the end of the associated buffer, not at the buffer's dot,
        !          1119:  and the buffer's mark is set to the end of the inserted output
        !          1120:  each time output is inserted.
        !          1121: 
        !          1122: * (pos-visible-in-window-p POS WINDOW)
        !          1123:  returns t if position POS in WINDOW's buffer is in the range
        !          1124:  that is being displayed in WINDOW; nil if it is scrolled
        !          1125:  vertically out of visibility.
        !          1126: 
        !          1127:   If display in WINDOW is not currently up to date, this function
        !          1128:  calculates carefully whether POS would appear if display were
        !          1129:  done immediately based on the current (window-start WINDOW).
        !          1130: 
        !          1131:   POS defaults to (dot), and WINDOW to (selected-window).
        !          1132: 
        !          1133: * Variable buffer-alist replaced by function (buffer-list).
        !          1134:  The actual alist of buffers used internally by Emacs is now
        !          1135:  no longer accessible, to prevent the user from crashing Emacs
        !          1136:  by modifying it.  The function buffer-list returns a list
        !          1137:  of all existing buffers.  Modifying this list cannot hurt anything
        !          1138:  as a new list is constructed by each call to buffer-list.
        !          1139: 
        !          1140: * load now takes an optional third argument NOMSG which, if non-nil,
        !          1141:  prevents load from printing a message when it starts and when
        !          1142:  it is done.
        !          1143: 
        !          1144: * byte-recompile-directory is a new function which finds all
        !          1145:  the .elc files in a directory, and regenerates each one which
        !          1146:  is older than the corresponding .el (Lisp source) file.
        !          1147: 
        !          1148: ----------------------------------------------------------------------
        !          1149: Copyright information:
        !          1150: 
        !          1151: Copyright (C) 1985 Richard M. Stallman
        !          1152: 
        !          1153:    Permission is granted to anyone to make or distribute verbatim copies
        !          1154:    of this document as received, in any medium, provided that the
        !          1155:    copyright notice and this permission notice are preserved,
        !          1156:    thus giving the recipient permission to redistribute in turn.
        !          1157: 
        !          1158:    Permission is granted to distribute modified versions
        !          1159:    of this document, or of portions of it,
        !          1160:    under the above conditions, provided also that they
        !          1161:    carry prominent notices stating who last changed them.
        !          1162: 
        !          1163: Local variables:
        !          1164: mode: text
        !          1165: end:

unix.superglobalmegacorp.com

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