Annotation of GNUtools/emacs/etc/NEWS, revision 1.1

1.1     ! root        1: GNU Emacs NEWS -- history of user-visible changes.  3 Feb 1992
        !             2: Copyright (C) 1988, 1990, 1992 Free Software Foundation, Inc.
        !             3: See the end for copying conditions.
        !             4: 
        !             5: Changes in version 18.58.
        !             6: 
        !             7: * RMAIL reply now properly parses nested comments in addresses.
        !             8: 
        !             9: * The "visual bell" feature when used with X windows
        !            10: now flashes only 1/4 of the window's total area.  This is because
        !            11: flashing the whole window is too slow on some systems.
        !            12: 
        !            13: * call-process and call-process-region now return an indication
        !            14: of the exit status of the subprocess: either a numeric exit code
        !            15: or a string describing the signal which caused termination.
        !            16: 
        !            17: * It is possible for regular expression matching to overflow the stack
        !            18: of failure points.  In the past, such overflow was treated as simple
        !            19: failure to match.  Now it causes an error.
        !            20: 
        !            21: * You can use C-u to end a numeric argument.  Thus, type C-u 1 0 0 C-u 1
        !            22: to insert 100 1's.
        !            23: 
        !            24: * Emacs now knows how to get resource values from the X server.
        !            25: 
        !            26: * Job control commands in shell mode work properly on more systems
        !            27: because they now work by "typing" signal characters such as C-c.
        !            28: 
        !            29: * copy-keymap no longer recursively copies keymaps reached through
        !            30: symbols' function definitions (i.e., those that have names).  It does
        !            31: copy nested keymaps that appear directly in the other copied keymaps.
        !            32: 
        !            33: Changes in version 18.56.
        !            34: 
        !            35: * C-g should now work to interrupt a running program
        !            36: on all kinds of systems even when using X windows.
        !            37: 
        !            38: * Quitting is inhibited while a filter or sentinel is running.
        !            39: Those functions can run asynchronously while Emacs is waiting
        !            40: for keyboard input, and if they allow quitting, they
        !            41: make the behavior of C-g unpredictable.
        !            42: 
        !            43: * Storing text into the X windows cut buffer
        !            44: now clears out any selection.
        !            45: 
        !            46: * The undo facility is completely rewritten, and now
        !            47: uses Lisp data structures.  It can record much more
        !            48: information.  You can use the variables undo-threshold
        !            49: and undo-high-threshold to control how much.
        !            50: 
        !            51: * There is no longer a maximum screen height or width. 
        !            52: 
        !            53: Changes in version 18.52.
        !            54: 
        !            55: * X windows version 10 is supported under system V.
        !            56: 
        !            57: * Pop-up menus are now supported with the same Lisp interface in
        !            58: both version 10 and 11 of X windows.
        !            59: 
        !            60: * C-x 4 a is a new command to edit a change-log entry in another window.
        !            61: 
        !            62: * The emacs client program now allows an option +NNN to specify the
        !            63: line number to go to in the file whose name follows.  Thus,
        !            64:     emacsclient foo.c +45 bar.c
        !            65: will find the files `foo.c' and `bar.c', going to line 45 in `bar.c'.
        !            66: 
        !            67: * Dired allows empty directories to be deleted like files.
        !            68: 
        !            69: * When the terminal type is used to find a terminal-specific file to
        !            70: run, Emacs now tries the entire terminal type first.  If that doesn't
        !            71: yield a file that exists, the last hyphen and what follows it is
        !            72: stripped.  If that doesn't yield a file that exists, the previous
        !            73: hyphen is stripped, and so on until all hyphens are gone.  For
        !            74: example, if the terminal type is `aaa-48-foo', Emacs will try first
        !            75: `term/aaa-48-foo.el', then `term/aaa-48.el' and finally `term/aaa.el'.
        !            76: 
        !            77: Underscores now receive the same treatment as hyphens.
        !            78: 
        !            79: * Texinfo features: @defun, etc.  texinfo-show-structure.
        !            80: New template commands.  texinfo-format-region.
        !            81: 
        !            82: * The special "local variable" `eval' is now ignored if you are running
        !            83: as root.
        !            84: 
        !            85: * New command `c-macro-expand' shows the result of C macro expansion
        !            86: in the region.  It works using the C preprocessor, so its results
        !            87: are completely accurate.
        !            88: 
        !            89: * Errors in trying to auto save now flash error messages for a few seconds.
        !            90: 
        !            91: * Killing a buffer now sends SIGHUP to the buffer's process.
        !            92: 
        !            93: * New hooks.
        !            94: 
        !            95: ** `spell-region' now allows you to filter the text before spelling-checking.
        !            96: If the value of `spell-filter' is non-nil, it is called, with no arguments,
        !            97: looking at a temporary buffer containing a copy of the text to be checked.
        !            98: It can alter the text freely before the spell program sees it.
        !            99: 
        !           100: ** The variable `lpr-command' now specifies the command to be used when
        !           101: you use the commands to print text (such as M-x print-buffer).
        !           102: 
        !           103: ** Posting netnews now calls the value of `news-inews-hook' (if not nil)
        !           104: as a function of no arguments before the actual posting.
        !           105: 
        !           106: ** Rmail now calls the value of `rmail-show-message-hook' (if not nil)
        !           107: as a function of no arguments, each time a new message is selected.
        !           108: 
        !           109: ** `kill-emacs' calls the value of `kill-emacs-hook' as a function of no args.
        !           110: 
        !           111: * New libraries.
        !           112: See the source code of each library for more information.
        !           113: 
        !           114: ** icon.el: a major mode for editing programs written in Icon.
        !           115: 
        !           116: ** life.el: a simulator for the cellular automaton "life".  Load the
        !           117: library and run M-x life.
        !           118: 
        !           119: ** doctex.el: a library for converting the Emacs `etc/DOC' file of
        !           120: documentation strings into TeX input.
        !           121: 
        !           122: ** saveconf.el: a library which records the arrangement of windows and
        !           123: buffers when you exit Emacs, and automatically recreates the same
        !           124: setup the next time you start Emacs.
        !           125: 
        !           126: ** uncompress.el: a library that automatically uncompresses files
        !           127: when you visit them.
        !           128: 
        !           129: ** c-fill.el: a mode for editing filled comments in C.
        !           130: 
        !           131: ** kermit.el: an extended version of shell-mode designed for running kermit.
        !           132: 
        !           133: ** spook.el: a library for adding some "distract the NSA" keywords to every
        !           134: message you send.
        !           135: 
        !           136: ** hideif.el: a library for hiding parts of a C program based on preprocessor
        !           137: conditionals.
        !           138: 
        !           139: ** autoinsert.el: a library to put in some initial text when you visit
        !           140: a nonexistent file.  The text used depends on the major mode, and
        !           141: comes from a directory of files created by you.
        !           142: 
        !           143: * New programming features.
        !           144: 
        !           145: ** The variable `window-system-version' now contains the version number
        !           146: of the window system you are using (if appropriate).  When using X windows,
        !           147: its value is either 10 or 11.
        !           148: 
        !           149: ** (interactive "N") uses the prefix argument if any; otherwise, it reads
        !           150: a number using the minibuffer.
        !           151: 
        !           152: ** VMS: there are two new functions `vms-system-info' and `shrink-to-icon'.
        !           153: The former allows you to get many kinds of system status information.
        !           154: See its self-documentation for full details.
        !           155: The second is used with the window system: it iconifies the Emacs window.
        !           156: 
        !           157: ** VMS: the new function `define-logical-name' allows you to create
        !           158: job-wide logical names.  The old function `define-dcl-symbol' has been
        !           159: removed.
        !           160: 
        !           161: Changes in version 18.50.
        !           162: 
        !           163: * X windows version 11 is supported.
        !           164: 
        !           165: Define X11 in config.h if you want X version 11 instead of version 10.
        !           166: 
        !           167: * The command M-x gdb runs the GDB debugger as an inferior.
        !           168: It asks for the filename of the executable you want to debug.
        !           169: 
        !           170: GDB runs as an inferior with I/O through an Emacs buffer.  All the
        !           171: facilities of Shell mode are available.  In addition, each time your
        !           172: program stops, and each time you select a new stack frame, the source
        !           173: code is displayed in another window with an arrow added to the line
        !           174: where the program is executing.
        !           175: 
        !           176: Special GDB-mode commands include M-s, M-n, M-i, M-u, M-d, and C-c C-f
        !           177: which send the GDB commands `step', `next', `stepi', `up', `down'
        !           178: and `finish'.
        !           179: 
        !           180: In any source file, the commands C-x SPC tells GDB to set a breakpoint
        !           181: on the current line.
        !           182: 
        !           183: * M-x calendar displays a three-month calendar.
        !           184: 
        !           185: * C-u 0 C-x C-s never makes a backup file.
        !           186: 
        !           187: This is a way you can explicitly request not to make a backup.
        !           188: 
        !           189: * `term-setup-hook' is for users only.
        !           190: 
        !           191: Emacs never uses this variable for internal purposes, so you can freely
        !           192: set it in your `.emacs' file to make Emacs do something special after
        !           193: loading any terminal-specific setup file from `lisp/term'.
        !           194: 
        !           195: * `copy-keymap' now copies recursive submaps.
        !           196: 
        !           197: * New overlay-arrow feature.
        !           198: 
        !           199: If you set the variable `overlay-arrow-string' to a string
        !           200: and `overlay-arrow-position' to a marker, that string is displayed on
        !           201: the screen at the position of that marker, hiding whatever text would
        !           202: have appeared there.  If that position isn't on the screen, or if
        !           203: the buffer the marker points into isn't displayed, there is no effect.
        !           204: 
        !           205: * -batch mode can read from the terminal.
        !           206: 
        !           207: It now works to use `read-char' to do terminal input in a noninteractive
        !           208: Emacs run.  End of file causes Emacs to exit.
        !           209: 
        !           210: * Variables `data-bytes-used' and `data-bytes-free' removed.
        !           211: 
        !           212: These variables cannot really work because the 24-bit range of an
        !           213: integer in (most ports of) GNU Emacs is not large enough to hold their
        !           214: values on many systems.
        !           215: 
        !           216: Changes in version 18.45, since version 18.41.
        !           217: 
        !           218: * C indentation parameter `c-continued-brace-offset'.
        !           219: 
        !           220: This parameter's value is added to the indentation of any
        !           221: line that is in a continuation context and starts with an open-brace.
        !           222: For example, it applies to the open brace shown here:
        !           223: 
        !           224:      if (x)
        !           225:        {
        !           226: 
        !           227: The default value is zero.
        !           228: 
        !           229: * Dabbrev expansion (Meta-/) preserves case.
        !           230: 
        !           231: When you use Meta-/ to search the buffer for an expansion of an
        !           232: abbreviation, if the expansion found is all lower case except perhaps
        !           233: for its first letter, then the case pattern of the abbreviation
        !           234: is carried over to the expansion that replaces it.
        !           235: 
        !           236: * TeX-mode syntax.
        !           237: 
        !           238: \ is no longer given "escape character" syntax in TeX mode.  It now
        !           239: has the syntax of an ordinary punctuation character.  As a result,
        !           240: \[...\] and such like are considered to balance each other.
        !           241: 
        !           242: * Mail-mode automatic Reply-to field.
        !           243: 
        !           244: If the variable `mail-default-reply-to' is non-`nil', then each time
        !           245: you start to compose a message, a Reply-to field is inserted with
        !           246: its contents taken from the value of `mail-default-reply-to'.
        !           247: 
        !           248: * Where is your .emacs file?
        !           249: 
        !           250: If you run Emacs under `su', so your real and effective uids are
        !           251: different, Emacs uses the home directory associated with the real uid
        !           252: (the name you actually logged in under) to find the .emacs file.
        !           253: 
        !           254: Otherwise, Emacs uses the environment variable HOME to find the .emacs
        !           255: file.
        !           256: 
        !           257: The .emacs file is not loaded at all if -batch is specified.
        !           258: 
        !           259: * Prolog mode is the default for ".pl" files.
        !           260: 
        !           261: * File names are not case-sensitive on VMS.
        !           262: 
        !           263: On VMS systems, all file names that you specify are converted to upper
        !           264: case.  You can use either upper or lower case indiscriminately.
        !           265: 
        !           266: * VMS-only function 'define-dcl-symbol'.
        !           267: 
        !           268: This is a new name for the function formerly called
        !           269: `define-logical-name'.
        !           270: 
        !           271: Editing Changes in Emacs 18
        !           272: 
        !           273: * Additional systems and machines are supported.
        !           274: 
        !           275: GNU Emacs now runs on Vax VMS.  However, many facilities that are normally
        !           276: implemented by running subprocesses do not work yet.  This includes listing
        !           277: a directory and sending mail.  There are features for running subprocesses
        !           278: but they are incompatible with those on Unix.  I hope that some of
        !           279: the VMS users can reimplement these features for VMS (compatibly for
        !           280: the user, if possible).
        !           281: 
        !           282: VMS wizards are also asked to work on making the subprocess facilities
        !           283: more upward compatible with those on Unix, and also to rewrite their
        !           284: internals to use the same Lisp objects that are used on Unix to
        !           285: represent processes.
        !           286: 
        !           287: In addition, the TI Nu machine running Unix system V, the AT&T 3b, and
        !           288: the Wicat, Masscomp, Integrated Solutions, Alliant, Amdahl uts, Mips,
        !           289: Altos 3068 and Gould Unix systems are now supported.  The IBM PC-RT is
        !           290: supported under 4.2, but not yet under system V.  The GEC 93 is close
        !           291: to working.  The port for the Elxsi is partly merged.  See the file
        !           292: MACHINES for full status information and machine-specific installation
        !           293: advice.
        !           294: 
        !           295: * Searching is faster.
        !           296: 
        !           297: Forward search for a text string, or for a regexp that is equivalent
        !           298: to a text string, is now several times faster.  Motion by lines and
        !           299: counting lines is also faster.
        !           300: 
        !           301: * Memory usage improvements.
        !           302: 
        !           303: It is no longer possible to run out of memory during garbage
        !           304: collection.  As a result, running out of memory is never fatal.  This
        !           305: is due to a new garbage collection algorithm which compactifies
        !           306: strings in place rather than copying them.  Another consequence of the
        !           307: change is a reduction in total memory usage and a slight increase in
        !           308: garbage collection speed.
        !           309: 
        !           310: * Display changes.
        !           311: 
        !           312: ** Editing above top of screen.
        !           313: 
        !           314: When you delete or kill or alter text that reaches to the top of the
        !           315: screen or above it, so that display would start in the middle of a
        !           316: line, Emacs will usually attempt to scroll the text so that display
        !           317: starts at the beginning of a line again.
        !           318: 
        !           319: ** Yanking in the minibuffer.
        !           320: 
        !           321: The message "Mark Set" is no longer printed when the minibuffer is
        !           322: active.  This is convenient with many commands, including C-y, that
        !           323: normally print such a message.
        !           324: 
        !           325: ** Cursor appears in last line during y-or-n questions.
        !           326: 
        !           327: Questions that want a `y' or `n' answer now move the cursor
        !           328: to the last line, following the question.
        !           329: 
        !           330: * Library loading changes.
        !           331: 
        !           332: `load' now considers all possible suffixes (`.elc', `.el' and none)
        !           333: for each directory in `load-path' before going on to the next directory.
        !           334: It now accepts an optional fourth argument which, if non-nil, says to
        !           335: use no suffixes; then the file name must be given in full.  The search
        !           336: of the directories in `load-path' goes on as usual in this case, but
        !           337: it too can be prevented by passing an absolute file name.
        !           338: 
        !           339: The value of `load-path' no longer by default includes nil (meaning to
        !           340: look in the current default directory).  The idea is that `load' should
        !           341: be used to search the path only for libraries to be found in the standard
        !           342: places.  If you want to override system libraries with your own, place
        !           343: your own libraries in one special directory and add that directory to the
        !           344: front of `load-path'.
        !           345: 
        !           346: The function `load' is no longer a command; that is to say, `M-x load'
        !           347: is no longer allowed.  Instead, there are two commands for loading files.
        !           348: `M-x load-library' is equivalent to the old meaning of `M-x load'.
        !           349: `M-x load-file' reads a file name with completion and defaulting
        !           350: and then loads exactly that file, with no searching and no suffixes.
        !           351: 
        !           352: * Emulation of other editors.
        !           353: 
        !           354: ** `edt-emulation-on' starts emulating DEC's EDT editor.
        !           355: 
        !           356: Do `edt-emulation-off' to return Emacs to normal.
        !           357: 
        !           358: ** `vi-mode' and `vip-mode' starts emulating vi.
        !           359: 
        !           360: These are two different vi emulations provided by GNU Emacs users.
        !           361: We are interested in feedback as to which emulation is preferable.
        !           362: 
        !           363: See the documentation and source code for these functions
        !           364: for more information.
        !           365: 
        !           366: ** `set-gosmacs-bindings' emulates Gosling Emacs.
        !           367: 
        !           368: This command changes many global bindings to resemble those of
        !           369: Gosling Emacs.  The previous bindings are saved and can be restored using
        !           370: `set-gnu-bindings'.
        !           371: 
        !           372: * Emulation of a display terminal.
        !           373: 
        !           374: Within Emacs it is now possible to run programs (such as emacs or
        !           375: supdup) which expect to do output to a visual display terminal.
        !           376: 
        !           377: See the function `terminal-emulator' for more information.
        !           378: 
        !           379: * New support for keypads and function keys.
        !           380: 
        !           381: There is now a first attempt at terminal-independent support for
        !           382: keypad and function keys.
        !           383: 
        !           384: Emacs now defines a standard set of key-names for function and keypad
        !           385: keys, and provides standard hooks for defining them.  Most of the
        !           386: standard key-names have default definitions built into Emacs; you can
        !           387: override these in a terminal-independent manner.  The default definitions
        !           388: and the conventions for redefining them are in the file `lisp/keypad.el'.
        !           389: 
        !           390: These keys on the terminal normally work by sending sequences of
        !           391: characters starting with ESC.  The exact sequences used vary from
        !           392: terminal to terminal.  Emacs interprets them in two stages:
        !           393: in the first stage, terminal-dependent sequences are mapped into
        !           394: the standard key-names; then second stage maps the standard key-names
        !           395: into their definitions in a terminal-independent fashion.
        !           396: 
        !           397: The terminal-specific file `term/$TERM.el' now is responsible only for
        !           398: establishing the mapping from the terminal's escape sequences into
        !           399: standard key-names.  It no longer knows what Emacs commands are
        !           400: assigned to the standard key-names.
        !           401: 
        !           402: One other change in terminal-specific files: if the value of the TERM
        !           403: variable contains a hyphen, only the part before the first hyphen is
        !           404: used in forming the name of the terminal-specific file.  Thus, for
        !           405: terminal type `aaa-48', the file loaded is now `term/aaa.el' rather
        !           406: than `term/aaa-48.el'.
        !           407: 
        !           408: * New startup command line options.
        !           409: 
        !           410: `-i FILE' or `-insert FILE' in the command line to Emacs tells Emacs to
        !           411: insert the contents of FILE into the current buffer at that point in
        !           412: command line processing.  This is like using the command M-x insert-file.
        !           413: 
        !           414: `-funcall', `-load', `-user' and `-no-init-file' are new synonyms for
        !           415: `-f', `-l', `-u' and `-q'.
        !           416: 
        !           417: `-nw' means don't use a window system.  If you are using a terminal
        !           418: emulator on the X window system and you want to run Emacs to work through
        !           419: the terminal emulator instead of working directly with the window system,
        !           420: use this switch.
        !           421: 
        !           422: * Buffer-sorting commands.
        !           423: 
        !           424: Various M-x commands whose names start with `sort-' sort parts of
        !           425: the region:
        !           426: 
        !           427: sort-lines     divides the region into lines and sorts them alphabetically.
        !           428: sort-pages     divides into pages and sorts them alphabetically.
        !           429: sort-paragraphs        divides into paragraphs and sorts them alphabetically.
        !           430: sort-fields    divides into lines and sorts them alphabetically
        !           431:                according to one field in the line.
        !           432:                The numeric argument specifies which field (counting
        !           433:                from field 1 at the beginning of the line).  Fields in a line
        !           434:                are separated by whitespace.
        !           435: sort-numeric-fields
        !           436:                is similar but converts the specified fields to numbers
        !           437:                and sorts them numerically.
        !           438: sort-columns   divides into lines and sorts them according to the contents
        !           439:                of a specified range of columns.
        !           440: 
        !           441: Refer to the self-documentation of these commands for full usage information.
        !           442: 
        !           443: * Changes in various commands.
        !           444: 
        !           445: ** `tags-query-replace' and `tags-search' change.
        !           446: 
        !           447: These functions now display the name of the file being searched at the moment.
        !           448: 
        !           449: ** `occur' output now serves as a menu.  `occur-menu' command deleted.
        !           450: 
        !           451: `M-x occur' now allows you to move quickly to any of the occurrences
        !           452: listed.  Select the `*Occur*' buffer that contains the output of `occur',
        !           453: move point to the occurrence you want, and type C-c C-c.
        !           454: This will move point to the same occurrence in the buffer that the
        !           455: occurrences were found in.
        !           456: 
        !           457: The command `occur-menu' is thus obsolete, and has been deleted.
        !           458: 
        !           459: One way to get a list of matching lines without line numbers is to
        !           460: copy the text to another buffer and use the command `keep-lines'.
        !           461: 
        !           462: ** Incremental search changes.
        !           463: 
        !           464: Ordinary and regexp incremental searches now have distinct default
        !           465: search strings.  Thus, regexp searches recall only previous regexp
        !           466: searches.
        !           467: 
        !           468: If you exit an incremental search when the search string is empty,
        !           469: the old default search string is kept.  The default does not become
        !           470: empty.
        !           471: 
        !           472: Reversing the direction of an incremental search with C-s or C-r
        !           473: when the search string is empty now does not get the default search
        !           474: string.  It leaves the search string empty.  A second C-s or C-r
        !           475: will get the default search string.  As a result, you can do a reverse
        !           476: incremental regexp search with C-M-s C-r.
        !           477: 
        !           478: If you add a `*', `?' or `\|' to an incremental search regexp,
        !           479: point will back up if that is appropriate.  For example, if
        !           480: you have searched for `ab' and add a `*', point moves to the
        !           481: first match for `ab*', which may be before the match for `ab'
        !           482: that was previously found.
        !           483: 
        !           484: If an incremental search is failing and you ask to repeat it,
        !           485: it will start again from the beginning of the buffer (or the end,
        !           486: if it is a backward search).
        !           487: 
        !           488: The search-controlling parameters `isearch-slow-speed' and
        !           489: `isearch-slow-window-lines' have now been renamed to start with
        !           490: `search' instead of `isearch'.  Now all the parameters' names start
        !           491: with `search'.
        !           492: 
        !           493: If `search-slow-window-lines' is negative, the slow search window
        !           494: is put at the top of the screen, and the absolute value or the
        !           495: negative number specifies the height of it.
        !           496: 
        !           497: ** Undo changes
        !           498: 
        !           499: The undo command now will mark the buffer as unmodified only when it is
        !           500: identical to the contents of the visited file.
        !           501: 
        !           502: ** C-M-v in minibuffer.
        !           503: 
        !           504: If while in the minibuffer you request help in a way that uses a
        !           505: window to display something, then until you exit the minibuffer C-M-v
        !           506: in the minibuffer window scrolls the window of help.
        !           507: 
        !           508: For example, if you request a list of possible completions, C-M-v can
        !           509: be used reliably to scroll the completion list.
        !           510: 
        !           511: ** M-TAB command.
        !           512: 
        !           513: Meta-TAB performs completion on the Emacs Lisp symbol names.  The sexp
        !           514: in the buffer before point is compared against all existing nontrivial
        !           515: Lisp symbols and completed as far as is uniquely determined by them.
        !           516: Nontrivial symbols are those with either function definitions, values
        !           517: or properties.
        !           518: 
        !           519: If there are multiple possibilities for the very next character, a
        !           520: list of possible completions is displayed.
        !           521: 
        !           522: ** Dynamic abbreviation package.
        !           523: 
        !           524: The new command Meta-/ expands an abbreviation in the buffer before point
        !           525: by searching the buffer for words that start with the abbreviation.
        !           526: 
        !           527: ** Changes in saving kbd macros.
        !           528: 
        !           529: The commands `write-kbd-macro' and `append-kbd-macro' have been
        !           530: deleted.  The way to save a keyboard macro is to use the new command
        !           531: `insert-kbd-macro', which inserts Lisp code to define the macro as
        !           532: it is currently defined into the buffer before point.  Visit a Lisp
        !           533: file such as your Emacs init file `~/.emacs', insert the macro
        !           534: definition (perhaps deleting an old definition for the same macro)
        !           535: and then save the file.
        !           536: 
        !           537: ** C-x ' command.
        !           538: 
        !           539: The new command C-x ' (expand-abbrev) expands the word before point as
        !           540: an abbrev, even if abbrev-mode is not turned on.
        !           541: 
        !           542: ** Sending to inferior Lisp.
        !           543: 
        !           544: The command C-M-x in Lisp mode, which sends the current defun to
        !           545: an inferior Lisp process, now works by writing the text into a temporary
        !           546: file and actually sending only a `load'-form to load the file.
        !           547: As a result, it avoids the Unix bugs that used to strike when the
        !           548: text was above a certain length.
        !           549: 
        !           550: With a prefix argument, this command now makes the inferior Lisp buffer
        !           551: appear on the screen and scrolls it so that the bottom is showing.
        !           552: 
        !           553: Two variables `inferior-lisp-load-command' and `inferior-lisp-prompt',
        !           554: exist to customize these feature for different Lisp implementations.
        !           555: 
        !           556: ** C-x p now disabled.
        !           557: 
        !           558: The command C-x p, a nonrecomended command which narrows to the current
        !           559: page, is now initially disabled like C-x n.
        !           560: 
        !           561: * Dealing with files.
        !           562: 
        !           563: ** C-x C-v generalized
        !           564: 
        !           565: This command is now allowed even if the current buffer is not visiting
        !           566: a file.  As usual, it kills the current buffer and replaces it with a
        !           567: newly found file.
        !           568: 
        !           569: ** M-x recover-file improved; auto save file names changed.
        !           570: 
        !           571: M-x recover-file now checks whether the last auto-save file is more
        !           572: recent than the real visited file before offering to read in the
        !           573: auto-save file.  If the auto-save file is newer, a directory listing
        !           574: containing the two files is displayed while you are asked whether you
        !           575: want the auto save file.
        !           576: 
        !           577: Visiting a file also makes this check.  If the auto-save file is more recent,
        !           578: a message is printed suggesting that you consider using M-x recover file.
        !           579: 
        !           580: Auto save file names now by default have a `#' at the end as well
        !           581: as at the beginning.  This is so that `*.c' in a shell command
        !           582: will never match auto save files.
        !           583: 
        !           584: On VMS, auto save file names are made by appending `_$' at the front
        !           585: and `$' at the end.
        !           586: 
        !           587: When you change the visited file name of a buffer, the auto save file
        !           588: is now renamed to belong to the new visited file name.
        !           589: 
        !           590: You can customize the way auto save file names are made by redefining
        !           591: the two functions `make-auto-save-file-name' and `auto-save-file-name-p',
        !           592: both of which are defined in `files.el'.
        !           593: 
        !           594: ** Modifying a buffer whose file is changed on disk is detected instantly.
        !           595: 
        !           596: On systems where clash detection (locking of files being edited) is
        !           597: implemented, Emacs also checks the first time you modify a buffer
        !           598: whether the file has changed on disk since it was last visited or saved.
        !           599: If it has, you are asked to confirm that you want to change the buffer.
        !           600: 
        !           601: ** Exiting Emacs offers to save `*mail*'.
        !           602: 
        !           603: Emacs can now know about buffers that it should offer to save on exit
        !           604: even though they are not visiting files.  This is done for any buffer
        !           605: which has a non-nil local value of `buffer-offer-save'.  By default,
        !           606: Mail mode provides such a local value.
        !           607: 
        !           608: ** Backup file changes.
        !           609: 
        !           610: If a backup file cannot be written in the directory of the visited file
        !           611: due to fascist file protection, a backup file is now written in your home
        !           612: directory as `~/%backup%~'.  Only one such file is made, ever, so only
        !           613: the most recently made such backup is available.
        !           614: 
        !           615: When backup files are made by copying, the last-modification time of the
        !           616: original file is now preserved in the backup copy.
        !           617: 
        !           618: ** Visiting remote files.
        !           619: 
        !           620: On an internet host, you can now visit and save files on any other
        !           621: internet host directly from Emacs with the commands M-x ftp-find-file
        !           622: and M-x ftp-write-file.  Specify an argument of the form HOST:FILENAME.
        !           623: Since standard internet FTP is used, the other host may be any kind
        !           624: of machine and is not required to have any special facilities.
        !           625: 
        !           626: The first time any one remote host is accessed, you will be asked to
        !           627: give the user name and password for use on that host.  FTP is reinvoked
        !           628: each time you ask to use it, but previously specified user names and
        !           629: passwords are remembered automatically.
        !           630: 
        !           631: ** Dired `g' command.
        !           632: 
        !           633: `g' in Dired mode is equivalent to M-x revert-buffer; it causes the
        !           634: current contents of the same directory to be read in.
        !           635: 
        !           636: * Changes in major modes.
        !           637: 
        !           638: ** C mode indentation change.
        !           639: 
        !           640: The binding of Linefeed is no longer changed by C mode.  It once again
        !           641: has its normal meaning, which is to insert a newline and then indent
        !           642: afterward.
        !           643: 
        !           644: The old definition did one additional thing: it reindented the line
        !           645: before the new newline.  This has been removed because it made the
        !           646: command twice as slow.  The only time it was really useful was after the
        !           647: insertion of an `else', since the fact of starting with `else' may change
        !           648: the way that line is indented.  Now you will have to type TAB again
        !           649: yourself to reindent the `else' properly.
        !           650: 
        !           651: If the variable `c-tab-always-indent' is set to `nil', the TAB command
        !           652: in C mode, with no argument, will just insert a tab character if there
        !           653: is non-whitespace preceding point on the current line.  Giving it a
        !           654: prefix argument will force reindentation of the line (as well as
        !           655: of the compound statement that begins after point, if any).
        !           656: 
        !           657: ** Fortran mode now exists.
        !           658: 
        !           659: This mode provides commands for motion and indentation of Fortran code,
        !           660: plus built-in abbrevs for Fortran keywords.  For details, see the manual
        !           661: or the on-line documentation of the command `fortran-mode'.
        !           662: 
        !           663: ** Scribe mode now exists.
        !           664: 
        !           665: This mode does something useful for editing files of Scribe input.
        !           666: It is used automatically for files with names ending in ".mss".
        !           667: 
        !           668: ** Modula2 and Prolog modes now exist.
        !           669: 
        !           670: These modes are for editing programs in the languages of the same names.
        !           671: They can be selected with M-x modula-2-mode and M-x prolog-mode.
        !           672: 
        !           673: ** Telnet mode changes.
        !           674: 
        !           675: The telnet mode special commands have now been assigned to C-c keys.
        !           676: Most of them are the same as in Shell mode.
        !           677: 
        !           678: ** Picture mode changes.
        !           679: 
        !           680: The special picture-mode commands to specify the direction of cursor
        !           681: motion after insertion have been moved to C-c keys.  The commands to
        !           682: specify diagonal motion were already C-c keys; they are unchanged.
        !           683: The keys to specify horizontal or vertical motion are now
        !           684: C-c < (left), C-c > (right), C-c ^ (up) and C-c . (down).
        !           685: 
        !           686: ** Nroff mode comments.
        !           687: 
        !           688: Comments are now supported in Nroff mode.  The standard comment commands
        !           689: such as M-; and C-x ; know how to insert, align and delete comments
        !           690: that start with backslash-doublequote.
        !           691: 
        !           692: ** LaTeX mode.
        !           693: 
        !           694: LaTeX mode now exists.  Use M-x latex-mode to select this mode, and
        !           695: M-x plain-tex-mode to select the previously existing mode for Plain
        !           696: TeX.  M-x tex-mode attempts to examine the contents of the buffer and
        !           697: choose between latex-mode and plain-tex-mode accordingly; if the
        !           698: buffer is empty or it cannot tell, the variable `TeX-default-mode'
        !           699: controls the choice.  Its value should be the symbol for the mode to
        !           700: be used.
        !           701: 
        !           702: The facilities for running TeX on all or part of the buffer
        !           703: work with LaTeX as well.
        !           704: 
        !           705: Some new commands available in both modes:
        !           706: 
        !           707: C-c C-l                recenter the window showing the TeX output buffer
        !           708:                 so most recent line of output can be seen.
        !           709: C-c C-k                kill the TeX subprocess.
        !           710: C-c C-q                show the printer queue.
        !           711: C-c C-f                close a block (appropriate for LaTeX only).
        !           712:                 If the current line contains a \begin{...},
        !           713:                 this inserts an \end{...} on the following line
        !           714:                 and puts point on a blank line between them.
        !           715: 
        !           716: ** Outline mode changes.
        !           717: 
        !           718: Invisible lines in outline mode are now indicated by `...' at the
        !           719: end of the previous visible line.
        !           720: 
        !           721: The special outline heading motion commands are now all on C-c keys.
        !           722: A few new ones have been added.  Here is a full list:
        !           723: 
        !           724: C-c C-n   Move to next visible heading (formerly M-})
        !           725: C-c C-p   Move to previous visible heading (formerly M-{)
        !           726: C-c C-f   Move to next visible heading at the same level.
        !           727:           Thus, if point is on a level-2 heading line,
        !           728:           this command moves to the next visible level-2 heading.
        !           729: C-c C-b   Move to previous visible heading at the same level.
        !           730: C-c C-u   Move up to previous visible heading at a higher level.
        !           731: 
        !           732: The variable `outline-regexp' now controls recognition of heading lines.
        !           733: Any line whose beginning matches this regexp is a heading line.
        !           734: The depth in outline structure is determined by the length of
        !           735: the string that matches.
        !           736: 
        !           737: A line starting with a ^L (formfeed) is now by default considered
        !           738: a header line.
        !           739: 
        !           740: * Mail reading and sending.
        !           741: 
        !           742: ** MH-E changes.
        !           743: 
        !           744: MH-E has been extensively modified and improved since the v17 release.
        !           745: It contains many new features, including commands to: extracted failed
        !           746: messages, kill a draft message, undo changes to a mail folder, monitor
        !           747: delivery of a letter, print multiple messages, page digests backwards,
        !           748: insert signatures, and burst digests.  Also, many commands have been
        !           749: made to able to deal with named sequences of messages, instead of
        !           750: single messages.  MH-E also has had numerous bugs fixed and commands
        !           751: made to run faster.  Furthermore, its keybindings have been changed to
        !           752: be compatible with Rmail and the rest of GNU Emacs.
        !           753: 
        !           754: ** Mail mode changes.
        !           755: 
        !           756: The C-c commands of mail mode have been rearranged:
        !           757: 
        !           758: C-c s, C-c c, C-c t and C-c b (move point to various header fields)
        !           759: have been reassigned as C-c C-f C-s, C-c C-f C-c, C-c C-f C-t and C-c
        !           760: C-f C-b.  C-c C-f is for "field".
        !           761: 
        !           762: C-c y, C-c w and C-c q have been changed to C-c C-y, C-c C-w and C-c C-q.
        !           763: 
        !           764: Thus, C-c LETTER is always unassigned.
        !           765: 
        !           766: ** Rmail C-r command changed to w.
        !           767: 
        !           768: The Rmail command to edit the current message is now `w'.  This change
        !           769: has been made because people frequently type C-r while in Rmail hoping
        !           770: to do a reverse incremental search.  That now works.
        !           771: 
        !           772: * Rnews changes.
        !           773: 
        !           774: ** Caesar rotation added.
        !           775: 
        !           776: The function news-caesar-buffer-body performs encryption and
        !           777: decryption of the body of a news message.  It defaults to the USENET
        !           778: standard of 13, and accepts any numeric arg between 1 to 25 and -25 to -1.
        !           779: The function is bound to C-c C-r in both news-mode and news-reply-mode.
        !           780: 
        !           781: ** rmail-output command added.
        !           782: 
        !           783: The C-o command has been bound to rmail-output in news-mode.
        !           784: This allows one to append an article to a file which is in either Unix
        !           785: mail or RMAIL format.
        !           786: 
        !           787: ** news-reply-mode changes.
        !           788: 
        !           789: The C-c commands of news reply mode have been rearranged and changed,
        !           790: so that C-c LETTER is always unassigned:
        !           791: 
        !           792: C-c y, C-c w and C-c q have been changed to C-c C-y, C-c C-w and C-c C-q.
        !           793: 
        !           794: C-c c, C-c t, and C-c b (move to various mail header fields) have been
        !           795: deleted (they make no sense for posting and replying to USENET).
        !           796: 
        !           797: C-c s (move to Subject: header field) has been reassigned as C-c C-f
        !           798: C-s.  C-c C-f is for "field".  Several additional move to news header
        !           799: field commands have been added.
        !           800: 
        !           801: The local news-reply-mode bindings now look like this:
        !           802: 
        !           803: C-c C-s  news-inews (post the message)    C-c C-c  news-inews
        !           804: C-c C-f         move to a header field (and create it if there isn't):
        !           805:         C-c C-f C-n  move to Newsgroups:       C-c C-f C-s  move to Subj:
        !           806:         C-c C-f C-f  move to Followup-To:      C-c C-f C-k  move to Keywords:
        !           807:         C-c C-f C-d  move to Distribution:     C-c C-f C-a  move to Summary:
        !           808: C-c C-y  news-reply-yank-original (insert current message, in NEWS).
        !           809: C-c C-q  mail-fill-yanked-message (fill what was yanked).
        !           810: C-c C-r  caesar rotate all letters by 13 places in the article's body (rot13).
        !           811: 
        !           812: * Existing Emacs usable as a server.
        !           813: 
        !           814: Programs such as mailers that invoke "the editor" as an inferior
        !           815: to edit some text can now be told to use an existing Emacs process
        !           816: instead of creating a new editor.
        !           817: 
        !           818: To do this, you must have an Emacs process running and capable of
        !           819: doing terminal I/O at the time you want to invoke it.  This means that
        !           820: either you are using a window system and give Emacs a separate window
        !           821: or you run the other programs as inferiors of Emacs (such as, using
        !           822: M-x shell).
        !           823: 
        !           824: First prepare the existing Emacs process by loading the `server'
        !           825: library and executing M-x server-start.  (Your .emacs can do this
        !           826: automatically.)
        !           827: 
        !           828: Now tell the other programs to use, as "the editor", the Emacs client
        !           829: program (etc/emacsclient, located in the same directory as this file).
        !           830: This can be done by setting the environment variable EDITOR.
        !           831: 
        !           832: When another program invokes the emacsclient as "the editor", the
        !           833: client actually transfers the file names to be edited to the existing
        !           834: Emacs, which automatically visits the files.
        !           835: 
        !           836: When you are done editing a buffer for a client, do C-x # (server-edit).
        !           837: This marks that buffer as done, and selects the next buffer that the client
        !           838: asked for.  When all the buffers requested by a client are marked in this
        !           839: way, Emacs tells the client program to exit, so that the program that
        !           840: invoked "the editor" will resume execution.
        !           841: 
        !           842: You can only have one server Emacs at a time, but multiple client programs
        !           843: can put in requests at the same time.
        !           844: 
        !           845: The client/server work only on Berkeley Unix, since they use the Berkeley
        !           846: sockets mechanism for their communication.
        !           847: 
        !           848: Changes in Lisp programming in Emacs version 18.
        !           849: 
        !           850: * Init file changes.
        !           851: 
        !           852: ** Suffixes no longer accepted on `.emacs'.
        !           853: 
        !           854: Emacs will no longer load a file named `.emacs.el' or `emacs.elc'
        !           855: in place of `.emacs'.  This is so that it will take less time to
        !           856: find `.emacs'.  If you want to compile your init file, give it another
        !           857: name and make `.emacs' a link to the `.elc' file, or make it contain
        !           858: a call to `load' to load the `.elc' file.
        !           859: 
        !           860: ** `default-profile' renamed to `default', and loaded after `.emacs'.
        !           861: 
        !           862: It used to be the case that the file `default-profile' was loaded if
        !           863: and only if `.emacs' was not found.
        !           864: 
        !           865: Now the name `default-profile' is not used at all.  Instead, a library
        !           866: named `default' is loaded after the `.emacs' file.  `default' is loaded
        !           867: whether the `.emacs' file exists or not.  However, loading of `default'
        !           868: can be prevented if the `.emacs' file sets `inhibit-default-init' to non-nil.
        !           869: 
        !           870: In fact, you would call the default file `default.el' and probably would
        !           871: byte-compile it to speed execution.
        !           872: 
        !           873: Note that for most purposes you are better off using a `site-init' library
        !           874: since that will be loaded before the runnable Emacs is dumped.  By using
        !           875: a `site-init' library, you avoid taking up time each time Emacs is started.
        !           876: 
        !           877: ** inhibit-command-line has been eliminated.
        !           878: 
        !           879: This variable used to exist for .emacs files to set.  It has been
        !           880: eliminated because you can get the same effect by setting
        !           881: command-line-args to nil and setting inhibit-startup-message to t.
        !           882: 
        !           883: * `apply' is more general.
        !           884: 
        !           885: `apply' now accepts any number of arguments.  The first one is a function;
        !           886: the rest are individual arguments to pass to that function, except for the
        !           887: last, which is a list of arguments to pass.
        !           888: 
        !           889: Previously, `apply' required exactly two arguments.  Its old behavior
        !           890: follows as a special case of the new definition.
        !           891: 
        !           892: * New code-letter for `interactive'.
        !           893: 
        !           894: (interactive "NFoo: ") is like (interactive "nFoo: ") in reading
        !           895: a number using the minibuffer to serve as the argument; however,
        !           896: if a prefix argument was specified, it uses the prefix argument
        !           897: value as the argument, and does not use the minibuffer at all.
        !           898: 
        !           899: This is used by the `goto-line' and `goto-char' commands.
        !           900: 
        !           901: * Semantics of variables.
        !           902: 
        !           903: ** Built-in per-buffer variables improved.
        !           904: 
        !           905: Several built-in variables which in the past had a different value in
        !           906: each buffer now behave exactly as if `make-variable-buffer-local' had
        !           907: been done to them.
        !           908: 
        !           909: These variables are `tab-width', `ctl-arrow', `truncate-lines',
        !           910: `fill-column', `left-margin', `mode-line-format', `abbrev-mode',
        !           911: `overwrite-mode', `case-fold-search', `auto-fill-hook',
        !           912: `selective-display', `selective-display-ellipses'.
        !           913: 
        !           914: To be precise, each variable has a default value which shows through
        !           915: in most buffers and can be accessed with `default-value' and set with
        !           916: `set-default'.  Setting the variable with `setq' makes the variable
        !           917: local to the current buffer.  Changing the default value has retroactive
        !           918: effect on all buffers in which the variable is not local.
        !           919: 
        !           920: The variables `default-case-fold-search', etc., are now obsolete.
        !           921: They now refer to the default value of the variable, which is not
        !           922: quite the same behavior as before, but it should enable old init files
        !           923: to continue to work.
        !           924: 
        !           925: ** New per-buffer variables.
        !           926: 
        !           927: The variables `fill-prefix', `comment-column' and `indent-tabs-mode'
        !           928: are now per-buffer.  They work just like `fill-column', etc.
        !           929: 
        !           930: ** New function `setq-default'.
        !           931: 
        !           932: `setq-default' sets the default value of a variable, and uses the
        !           933: same syntax that `setq' accepts: the variable name is not evaluated
        !           934: and need not be quoted.
        !           935: 
        !           936: `(setq-default case-fold-search nil)' would make searches case-sensitive
        !           937: in all buffers that do not have local values for `case-fold-search'.
        !           938: 
        !           939: ** Functions `global-set' and `global-value' deleted.
        !           940: 
        !           941: These functions were never used except by mistake by users expecting
        !           942: the functionality of `set-default' and `default-value'.
        !           943: 
        !           944: * Changes in defaulting of major modes.
        !           945: 
        !           946: When `default-major-mode' is `nil', new buffers are supposed to
        !           947: get their major mode from the buffer that is current.  However,
        !           948: certain major modes (such as Dired mode, Rmail mode, Rmail Summary mode,
        !           949: and others) are not reasonable to use in this way.
        !           950: 
        !           951: Now such modes' names have been given non-`nil' `mode-class' properties.
        !           952: If the current buffer's mode has such a property, Fundamental mode is
        !           953: used as the default for newly created buffers.
        !           954: 
        !           955: * `where-is-internal' requires additional arguments.
        !           956: 
        !           957: This function now accepts three arguments, two of them required:
        !           958: DEFINITION, the definition to search for; LOCAL-KEYMAP, the keymap
        !           959: to use as the local map when doing the searching, and FIRST-ONLY,
        !           960: which is nonzero to return only the first key found.
        !           961: 
        !           962: This function returns a list of keys (strings) whose definitions
        !           963: (in the LOCAL-KEYMAP or the current global map) are DEFINITION.
        !           964: 
        !           965: If FIRST-ONLY is non-nil, it returns a single key (string).
        !           966: 
        !           967: This function has changed incompatibly in that now two arguments
        !           968: are required when previously only one argument was allowed.  To get
        !           969: the old behavior of this function, write `(current-local-map)' as
        !           970: the expression for the second argument.
        !           971: 
        !           972: The incompatibility is sad, but `nil' is a legitimate value for the
        !           973: second argument (it means there is no local keymap), so it cannot also
        !           974: serve as a default meaning to use the current local keymap.
        !           975: 
        !           976: * Abbrevs with hooks.
        !           977: 
        !           978: When an abbrev defined with a hook is expanded, it now performs the
        !           979: usual replacement of the abbrev with the expansion before running the
        !           980: hook.  Previously the abbrev itself was deleted but the expansion was
        !           981: not inserted.
        !           982: 
        !           983: * Function `scan-buffer' deleted.
        !           984: 
        !           985: Use `search-forward' or `search-backward' in place of `scan-buffer'.
        !           986: You will have to rearrange the arguments.
        !           987: 
        !           988: * X window interface improvements.
        !           989: 
        !           990: ** Detect release of mouse buttons.
        !           991: 
        !           992: Button-up events can now be detected.  See the file `lisp/x-mouse.el'
        !           993: for details.
        !           994: 
        !           995: ** New pop-up menu facility.
        !           996: 
        !           997: The new function `x-popup-menu' pops up a menu (in a X window)
        !           998: and returns an indication of which selection the user made.
        !           999: For more information, see its self-documentation.
        !          1000: 
        !          1001: * M-x disassemble.
        !          1002: 
        !          1003: This command prints the disassembly of a byte-compiled Emacs Lisp function.
        !          1004: 
        !          1005: Would anyone like to interface this to the debugger?
        !          1006: 
        !          1007: * `insert-buffer-substring' can insert part of the current buffer.
        !          1008: 
        !          1009: The old restriction that the text being inserted had to come from
        !          1010: a different buffer is now lifted.
        !          1011: 
        !          1012: When inserting text from the current buffer, the text to be inserted
        !          1013: is determined from the specified bounds before any copying takes place.
        !          1014: 
        !          1015: * New function `substitute-key-definition'.
        !          1016: 
        !          1017: This is a new way to replace one command with another command as the
        !          1018: binding of whatever keys may happen to refer to it.
        !          1019: 
        !          1020: (substitute-key-definition OLDDEF NEWDEF KEYMAP) looks through KEYMAP
        !          1021: for keys defined to run OLDDEF, and rebinds those keys to run NEWDEF
        !          1022: instead.
        !          1023: 
        !          1024: * New function `insert-char'.
        !          1025: 
        !          1026: Insert a specified character, a specified number of times.
        !          1027: 
        !          1028: * `mark-marker' changed.
        !          1029: 
        !          1030: When there is no mark, this now returns a marker that points
        !          1031: nowhere, rather than `nil'.
        !          1032: 
        !          1033: * `ding' accepts argument.
        !          1034: 
        !          1035: When given an argument, the function `ding' does not terminate
        !          1036: execution of a keyboard macro.  Normally, `ding' does terminate
        !          1037: all macros that are currently executing.
        !          1038: 
        !          1039: * New function `minibuffer-depth'.
        !          1040: 
        !          1041: This function returns the current depth in minibuffer activations.
        !          1042: The value is zero when the minibuffer is not in use.
        !          1043: Values greater than one are possible if the user has entered the
        !          1044: minibuffer recursively.
        !          1045: 
        !          1046: * New function `documentation-property'.
        !          1047: 
        !          1048: (documentation-property SYMBOL PROPNAME) is like (get SYMBOL PROPNAME),
        !          1049: except that if the property value is a number `documentation-property'
        !          1050: will take that number (or its absolute value) as a character position
        !          1051: in the DOC file and return the string found there.
        !          1052: 
        !          1053: (documentation-property VAR 'variable-documentation) is the proper
        !          1054: way for a Lisp program to get the documentation of variable VAR.
        !          1055: 
        !          1056: * New documentation-string expansion feature.
        !          1057: 
        !          1058: If a documentation string (for a variable or function) contains text
        !          1059: of the form `\<FOO>', it means that all command names specified in
        !          1060: `\[COMMAND]' construct from that point on should be turned into keys
        !          1061: using the value of the variable FOO as the local keymap.  Thus, for example,
        !          1062: 
        !          1063:   `\<emacs-lisp-mode-map>\[eval-defun] evaluates the defun containing point.'
        !          1064: 
        !          1065: will expand into
        !          1066: 
        !          1067:   "ESC C-x evaluates the defun containing point."
        !          1068: 
        !          1069: regardless of the current major mode, because ESC C-x is defined to
        !          1070: run `eval-defun' in the keymap `emacs-lisp-mode-map'.  The effect is
        !          1071: to show the key for `eval-defun' in Emacs Lisp mode regardless of the
        !          1072: current major mode.
        !          1073: 
        !          1074: The `\<...>' construct applies to all `\[...]' constructs that follow it,
        !          1075: up to the end of the documentation string or the next `\<...>'.
        !          1076: 
        !          1077: Without `\<...>', the keys for commands specified in `\[...]' are found
        !          1078: in the current buffer's local map.
        !          1079: 
        !          1080: The current global keymap is always searched second, whether `\<...>'
        !          1081: has been used or not.
        !          1082: 
        !          1083: * Multiple hooks allowed in certain contexts.
        !          1084: 
        !          1085: The old hook variables `find-file-hook', `find-file-not-found-hook' and
        !          1086: `write-file-hook' have been replaced.
        !          1087: 
        !          1088: The replacements are `find-file-hooks', `find-file-not-found-hooks'
        !          1089: and `write-file-hooks'.  Each holds a list of functions to be called;
        !          1090: by default, `nil', for no functions.  The functions are called in
        !          1091: order of appearance in the list.
        !          1092: 
        !          1093: In the case of `find-file-hooks', all the functions are executed.
        !          1094: 
        !          1095: In the case of `find-file-not-found-hooks', if any of the functions
        !          1096: returns non-`nil', the rest of the functions are not called.
        !          1097: 
        !          1098: In the case of `write-file-hooks', if any of the functions returns
        !          1099: non-`nil', the rest of the functions are not called, and the file is
        !          1100: considered to have been written already; so actual writing in the
        !          1101: usual way is not done.  If `write-file-hooks' is local to a buffer,
        !          1102: it is set to its global value if `set-visited-file-name' is called
        !          1103: (and thus by C-x C-w as well).
        !          1104: 
        !          1105: `find-file-not-found-hooks' and `write-file-hooks' can be used
        !          1106: together to implement editing of files that are not stored as Unix
        !          1107: files: stored in archives, or inside version control systems, or on
        !          1108: other machines running other operating systems and accessible via ftp.
        !          1109: 
        !          1110: * New hooks for suspending Emacs.
        !          1111: 
        !          1112: Suspending Emacs runs the hook `suspend-hook' before suspending
        !          1113: and the hook `suspend-resume-hook' if the suspended Emacs is resumed.
        !          1114: Running a hook is done by applying the variable's value to no arguments
        !          1115: if the variable has a non-`nil' value.  If `suspend-hook' returns
        !          1116: non-`nil', then suspending is inhibited and so is running the
        !          1117: `suspend-resume-hook'.  The non-`nil' value means that the `suspend-hook'
        !          1118: has done whatever suspending is required.
        !          1119: 
        !          1120: * Disabling commands can print a special message.
        !          1121: 
        !          1122: A command is disabled by giving it a non-`nil' `disabled' property.
        !          1123: Now, if this property is a string, it is included in the message
        !          1124: printed when the user tries to run the command.
        !          1125: 
        !          1126: * Emacs can open TCP connections.
        !          1127: 
        !          1128: The function `open-network-stream' opens a TCP connection to
        !          1129: a specified host and service.  Its value is a Lisp object that represents
        !          1130: the connection.  The object is a kind of "subprocess", and I/O are
        !          1131: done like I/O to subprocesses.
        !          1132: 
        !          1133: * Display-related changes.
        !          1134: 
        !          1135: ** New mode-line control features.
        !          1136: 
        !          1137: The display of the mode line used to be controlled by a format-string
        !          1138: that was the value of the variable `mode-line-format'.
        !          1139: 
        !          1140: This variable still exists, but it now allows more general values,
        !          1141: not just strings.  Lists, cons cells and symbols are also meaningful.
        !          1142: 
        !          1143: The mode line contents are created by outputting various mode elements
        !          1144: one after the other.  Here are the kinds of objects that can be
        !          1145: used as mode elements, and what they do in the display:
        !          1146: 
        !          1147:   string        the contents of the string are output to the mode line,
        !          1148:                and %-constructs are replaced by other text.
        !          1149: 
        !          1150:   t or nil     ignored; no output results.
        !          1151: 
        !          1152:   symbol       the symbol's value is used.  If the value is a string,
        !          1153:                the string is output verbatim to the mode line
        !          1154:                (so %-constructs are not interpreted).  Otherwise,
        !          1155:                the symbol's value is processed as a mode element.
        !          1156: 
        !          1157:   list (whose first element is a string or list or cons cell)
        !          1158:                the elements of the list are treated as as mode elements,
        !          1159:                so that the output they generate is concatenated,
        !          1160: 
        !          1161:   list (whose car is a symbol)
        !          1162:                if the symbol's value is non-nil, the second element of the
        !          1163:                list is treated as a mode element.  Otherwise, the third
        !          1164:                element (if any) of the list is treated as a mode element.
        !          1165: 
        !          1166:   cons (whose car is a positive integer)
        !          1167:                the cdr of the cons is used as a mode element, but
        !          1168:                the text it produces is padded, if necessary, to have
        !          1169:                at least the width specified by the integer.
        !          1170: 
        !          1171:   cons (whose car is a negative integer)
        !          1172:                the cdr of the cons is used as a mode element, but
        !          1173:                the text it produces is truncated, if necessary, to have
        !          1174:                at most the width specified by the integer.
        !          1175: 
        !          1176: There is always one mode element to start with, that being the value of
        !          1177: `mode-line-format', but if this value is a list then it leads to several
        !          1178: more mode elements, which can lead to more, and so on.
        !          1179: 
        !          1180: There is one new %-construct for mode elements that are strings:
        !          1181: `%n' displays ` Narrow' for a buffer that is narrowed.
        !          1182: 
        !          1183: The default value of `mode-line-format' refers to several other variables.
        !          1184: These variables are `mode-name', `mode-line-buffer-identification',
        !          1185: `mode-line-process', `mode-line-modified', `global-mode-string' and
        !          1186: `minor-mode-alist'.  The first four are local in every buffer in which they
        !          1187: are changed from the default.
        !          1188: 
        !          1189: mode-name      Name of buffer's major mode.  Local in every buffer.
        !          1190: 
        !          1191: mode-line-buffer-identification
        !          1192:                Normally the list ("Emacs: %17b"), it is responsible
        !          1193:                for displaying text to indicate what buffer is being shown
        !          1194:                and what kind of editing it is doing.  `Emacs' means
        !          1195:                that a file of characters is being edited.  Major modes
        !          1196:                such as Info and Dired which edit or view other kinds
        !          1197:                of data often change this value.  This variables becomes
        !          1198:                local to the current buffer if it is setq'd.
        !          1199: 
        !          1200: mode-line-process
        !          1201:                Normally nil, this variable is responsible for displaying
        !          1202:                information about the process running in the current buffer.
        !          1203:                M-x shell-mode and M-x compile alter this variable.
        !          1204: 
        !          1205: mode-line-modified
        !          1206:                This variable is responsible for displaying the indication
        !          1207:                of whether the current buffer is modified or read-only.
        !          1208:                By default its value is `("--%*%*-")'.
        !          1209: 
        !          1210: minor-mode-alist
        !          1211:                This variable is responsible for displaying text for those
        !          1212:                minor modes that are currently enabled.  Its value
        !          1213:                is a list of elements of the form (VARIABLE STRING),
        !          1214:                where STRING is to be displayed if VARIABLE's value
        !          1215:                (in the buffer whose mode line is being displayed)
        !          1216:                is non-nil.  This variable is not made local to particular
        !          1217:                buffers, but loading some libraries may add elements to it.
        !          1218: 
        !          1219: global-mode-string
        !          1220:                This variable is used to display the time, if you ask
        !          1221:                for that.
        !          1222: 
        !          1223: The idea of these variables is to eliminate the need for major modes
        !          1224: to alter mode-line-format itself.
        !          1225: 
        !          1226: ** `window-point' valid for selected window.
        !          1227: 
        !          1228: The value returned by `window-point' used to be incorrect when its
        !          1229: argument was the selected window.  Now the value is correct.
        !          1230: 
        !          1231: ** Window configurations may be saved as Lisp objects.
        !          1232: 
        !          1233: The function `current-window-configuration' returns a special type of
        !          1234: Lisp object that represents the current layout of windows: the
        !          1235: sizes and positions of windows, which buffers appear in them, and
        !          1236: which parts of the buffers appear on the screen.
        !          1237: 
        !          1238: The function `set-window-configuration' takes one argument, which must
        !          1239: be a window configuration object, and restores that configuration.
        !          1240: 
        !          1241: ** New hook `temp-output-buffer-show-hook'.
        !          1242: 
        !          1243: This hook allows you to control how help buffers are displayed.
        !          1244: Whenever `with-output-to-temp-buffer' has executed its body and wants
        !          1245: to display the temp buffer, if this variable is bound and non-`nil'
        !          1246: then its value is called with one argument, the temp buffer.
        !          1247: The hook function is solely responsible for displaying the buffer.
        !          1248: The standard manner of display--making the buffer appear in a window--is
        !          1249: used only if there is no hook function.
        !          1250: 
        !          1251: ** New function `minibuffer-window'.
        !          1252: 
        !          1253: This function returns the window used (sometimes) for displaying
        !          1254: the minibuffer.  It can be used even when the minibuffer is not active.
        !          1255: 
        !          1256: ** New feature to `next-window'.
        !          1257: 
        !          1258: If the optional second argument is neither `nil' nor `t', the minibuffer
        !          1259: window is omitted from consideration even when active; if the starting
        !          1260: window was the last non-minibuffer window, the value will be the first
        !          1261: non-minibuffer window.
        !          1262: 
        !          1263: ** New variable `minibuffer-scroll-window'.
        !          1264: 
        !          1265: When this variable is non-`nil', the command `scroll-other-window'
        !          1266: uses it as the window to be scrolled.  Displays of completion-lists
        !          1267: set this variable to the window containing the display.
        !          1268: 
        !          1269: ** New argument to `sit-for'.
        !          1270: 
        !          1271: A non-nil second argument to `sit-for' means do not redisplay;
        !          1272: just wait for the specified time or until input is available.
        !          1273: 
        !          1274: ** Deleted function `set-minor-mode'; minor modes must be changed.
        !          1275: 
        !          1276: The function `set-minor-mode' has been eliminated.  The display
        !          1277: of minor mode names in the mode line is now controlled by the
        !          1278: variable `minor-mode-alist'.  To specify display of a new minor
        !          1279: mode, it is sufficient to add an element to this list.  Once that
        !          1280: is done, you can turn the mode on and off just by setting a variable,
        !          1281: and the display will show its status automatically.
        !          1282: 
        !          1283: ** New variable `cursor-in-echo-area'.
        !          1284: 
        !          1285: If this variable is non-nil, the screen cursor appears on the
        !          1286: last line of the screen, at the end of the text displayed there.
        !          1287: 
        !          1288: Binding this variable to t is useful at times when reading single
        !          1289: characters of input with `read-char'.
        !          1290: 
        !          1291: ** New per-buffer variable `selective-display-ellipses'.
        !          1292: 
        !          1293: If this variable is non-nil, an ellipsis (`...') appears on the screen
        !          1294: at the end of each text line that is followed by invisible text.
        !          1295: 
        !          1296: If this variable is nil, no ellipses appear.  Then there is no sign
        !          1297: on the screen that invisible text is present.
        !          1298: 
        !          1299: Text is made invisible under the control of the variable
        !          1300: `selective-display'; this is how Outline mode and C-x $ work.
        !          1301: 
        !          1302: ** New variable `no-redraw-on-reenter'.
        !          1303: 
        !          1304: If you set this variable non-nil, Emacs will not clear the screen when
        !          1305: you resume it after suspending it.  This is for the sake of terminals
        !          1306: with multiple screens of memory, where the termcap entry has been set
        !          1307: up to switch between screens when Emacs is suspended and resumed.
        !          1308: 
        !          1309: ** New argument to `set-screen-height' or `set-screen-width'.
        !          1310: 
        !          1311: These functions now take an optional second argument which says
        !          1312: what significance the newly specified height or width has.
        !          1313: 
        !          1314: If the argument is nil, or absent, it means that Emacs should
        !          1315: believe that the terminal height or width really is as just specified.
        !          1316: 
        !          1317: If the argument is t, it means Emacs should not believe that the
        !          1318: terminal really is this high or wide, but it should use the
        !          1319: specific height or width as the number of lines or columns to display.
        !          1320: Thus, you could display only 24 lines on a screen known to have 48 lines.
        !          1321: 
        !          1322: What practical difference is there between using only 24 lines for display
        !          1323: and really believing that the terminal has 24 lines?
        !          1324: 
        !          1325: 1. The ``real'' height of the terminal says what the terminal command
        !          1326: to move the cursor to the last line will do.
        !          1327: 
        !          1328: 2. The ``real'' height of the terminal determines how much padding is
        !          1329: needed.
        !          1330: 
        !          1331: * File-related changes.
        !          1332: 
        !          1333: ** New parameter `backup-by-copying-when-mismatch'.
        !          1334: 
        !          1335: If this variable is non-`nil', then when Emacs is about to save a
        !          1336: file, it will create the backup file by copying if that would avoid
        !          1337: changing the file's uid or gid.
        !          1338: 
        !          1339: The default value of this variable is `nil', because usually it is
        !          1340: useful to have the uid of a file change according to who edited it
        !          1341: last.  I recommend thet this variable be left normally `nil' and
        !          1342: changed with a local variables list in those particular files where
        !          1343: the uid needs to be preserved.
        !          1344: 
        !          1345: ** New parameter `file-precious-flag'.
        !          1346: 
        !          1347: If this variable is non-`nil', saving the buffer tries to avoid
        !          1348: leaving an incomplete file due to disk full or other I/O errors.
        !          1349: It renames the old file before saving.  If saving is successful,
        !          1350: the renamed file is deleted; if saving gets an error, the renamed
        !          1351: file is renamed back to the name you visited.
        !          1352: 
        !          1353: Backups are always made by copying for such files.
        !          1354: 
        !          1355: ** New variable `buffer-offer-save'.
        !          1356: 
        !          1357: If the value of this variable is non-`nil' in a buffer then exiting
        !          1358: Emacs will offer to save the buffer (if it is modified and nonempty)
        !          1359: even if the buffer is not visiting a file.  This variable is
        !          1360: automatically made local to the current buffer whenever it is set.
        !          1361: 
        !          1362: ** `rename-file', `copy-file', `add-name-to-file' and `make-symbolic-link'.
        !          1363: 
        !          1364: The third argument to these functions used to be `t' or `nil'; `t'
        !          1365: meaning go ahead even if the specified new file name already has a file,
        !          1366: and `nil' meaning to get an error.
        !          1367: 
        !          1368: Now if the third argument is a number it means to ask the user for
        !          1369: confirmation in this case.
        !          1370: 
        !          1371: ** New optional argument to `copy-file'.
        !          1372: 
        !          1373: If `copy-file' receives a non-nil fourth argument, it attempts
        !          1374: to give the new copy the same time-of-last-modification that the
        !          1375: original file has.
        !          1376: 
        !          1377: ** New function `file-newer-than-file-p'.
        !          1378: 
        !          1379: (file-newer-than-file-p FILE1 FILE2) returns non-nil if FILE1 has been
        !          1380: modified more recently than FILE2.  If FILE1 does not exist, the value
        !          1381: is always nil; otherwise, if FILE2 does not exist, the value is t.
        !          1382: This is meant for use when FILE2 depends on FILE1, to see if changes
        !          1383: in FILE1 make it necessary to recompute FILE2 from it.
        !          1384: 
        !          1385: ** Changed function `file-exists-p'.
        !          1386: 
        !          1387: This function is no longer the same as `file-readable-p'.
        !          1388: `file-exists-p' can now return t for a file that exists but which
        !          1389: the fascists won't allow you to read.
        !          1390: 
        !          1391: ** New function `file-locked-p'.
        !          1392: 
        !          1393: This function receives a file name as argument and returns `nil'
        !          1394: if the file is not locked, `t' if locked by this Emacs, or a
        !          1395: string giving the name of the user who has locked it.
        !          1396: 
        !          1397: ** New function `file-name-sans-versions'.
        !          1398: 
        !          1399: (file-name-sans-versions NAME) returns a substring of NAME, with any
        !          1400: version numbers or other backup suffixes deleted from the end.
        !          1401: 
        !          1402: ** New functions for directory names.
        !          1403: 
        !          1404: Although a directory is really a kind of file, specifying a directory
        !          1405: uses a somewhat different syntax from specifying a file.
        !          1406: In Emacs, a directory name is used as part of a file name.
        !          1407: 
        !          1408: On Unix, the difference is small: a directory name ends in a slash,
        !          1409: while a file name does not: thus, `/usr/rms/' to name a directory,
        !          1410: while `/usr/rms' names the file which holds that directory.
        !          1411: 
        !          1412: On VMS, the difference is considerable: `du:[rms.foo]' specifies a
        !          1413: directory, but the name of the file that holds that directory is
        !          1414: `du:[rms]foo.dir'.
        !          1415: 
        !          1416: There are two new functions for converting between directory names
        !          1417: and file names.  `directory-file-name' takes a directory name and
        !          1418: returns the name of the file in which that directory's data is stored.
        !          1419: `file-name-as-directory' takes the name of a file and returns
        !          1420: the corresponding directory name.  These always understand Unix file name
        !          1421: syntax; on VMS, they understand VMS syntax as well.
        !          1422: 
        !          1423: For example, (file-name-as-directory "/usr/rms") returns "/usr/rms/"
        !          1424: and (directory-file-name "/usr/rms/") returns "/usr/rms".
        !          1425: On VMS, (file-name-as-directory "du:[rms]foo.dir") returns "du:[rms.foo]"
        !          1426: and (directory-file-name "du:[rms.foo]") returns "du:[rms]foo.dir".
        !          1427: 
        !          1428: ** Value of `file-attributes' changed.
        !          1429: 
        !          1430: The function file-attributes returns a list containing many kinds of
        !          1431: information about a file.  Now the list has eleven elements.
        !          1432: 
        !          1433: The tenth element is `t' if deleting the file and creating another
        !          1434: file of the same name would result in a change in the file's group;
        !          1435: `nil' if there would be no change.  You can also think of this as
        !          1436: comparing the file's group with the default group for files created in
        !          1437: the same directory by you.
        !          1438: 
        !          1439: The eleventh element is the inode number of the file.
        !          1440: 
        !          1441: ** VMS-only function `file-name-all-versions'.
        !          1442: 
        !          1443: This function returns a list of all the completions, including version
        !          1444: number, of a specified version-number-less file name.  This is like
        !          1445: `file-name-all-completions', except that the latter returns values
        !          1446: that do not include version numbers.
        !          1447: 
        !          1448: ** VMS-only variable `vms-stmlf-recfm'.
        !          1449: 
        !          1450: On a VMS system, if this variable is non-nil, Emacs will give newly
        !          1451: created files the record format `stmlf'.  This is necessary for files
        !          1452: that must contain lines of arbitrary length, such as compiled Emacs
        !          1453: Lisp.
        !          1454: 
        !          1455: When writing a new version of an existing file, Emacs always keeps
        !          1456: the same record format as the previous version; so this variable has
        !          1457: no effect.
        !          1458: 
        !          1459: This variable has no effect on Unix systems.
        !          1460: 
        !          1461: ** `insert-file-contents' on an empty file.
        !          1462: 
        !          1463: This no longer sets the buffer's "modified" flag.
        !          1464: 
        !          1465: ** New function (VMS only) `define-logical-name':
        !          1466: 
        !          1467: (define-logical-name LOGICAL TRANSLATION) defines a VMS logical name
        !          1468: LOGICAL whose translation is TRANSLATION.  The new name applies to
        !          1469: the current process only.
        !          1470: 
        !          1471: ** Deleted variable `ask-about-buffer-names'.
        !          1472: 
        !          1473: If you want buffer names for files to be generated in a special way,
        !          1474: you must redefine `create-file-buffer'.
        !          1475: 
        !          1476: * Subprocess-related changes.
        !          1477: 
        !          1478: ** New function `process-list'.
        !          1479: 
        !          1480: This function takes no arguments and returns a list of all
        !          1481: of Emacs's asynchronous subprocesses.
        !          1482: 
        !          1483: ** New function `process-exit-status'.
        !          1484: 
        !          1485: This function, given a process, process name or buffer as argument,
        !          1486: returns the exit status code or signal number of the process.
        !          1487: If the process has not yet exited or died, this function returns 0.
        !          1488: 
        !          1489: ** Process output ignores `buffer-read-only'.
        !          1490: 
        !          1491: Output from a process will go into the process's buffer even if the
        !          1492: buffer is read only.
        !          1493: 
        !          1494: ** Switching buffers in filter functions and sentinels.
        !          1495: 
        !          1496: Emacs no longer saves and restore the current buffer around calling
        !          1497: the filter and sentinel functions, so these functions can now
        !          1498: permanently alter the selected buffer in a straightforward manner.
        !          1499: 
        !          1500: ** Specifying environment variables for subprocesses.
        !          1501: 
        !          1502: When a subprocess is started with `start-process' or `call-process',
        !          1503: the value of the variable `process-environment' is taken to
        !          1504: specify the environment variables to give the subprocess.  The
        !          1505: value should be a list of strings, each of the form "VAR=VALUE".
        !          1506: 
        !          1507: `process-environment' is initialized when Emacs starts up
        !          1508: based on Emacs's environment.
        !          1509: 
        !          1510: ** New variable `process-connection-type'.
        !          1511: 
        !          1512: If this variable is `nil', when a subprocess is created, Emacs uses
        !          1513: a pipe rather than a pty to communicate with it.  Normally this
        !          1514: variable is `t', telling Emacs to use a pty if ptys are supported
        !          1515: and one is available.
        !          1516: 
        !          1517: ** New function `waiting-for-user-input-p'.
        !          1518: 
        !          1519: This function, given a subprocess as argument, returns `t' if that
        !          1520: subprocess appears to be waiting for input sent from Emacs,
        !          1521: or `nil' otherwise.
        !          1522: 
        !          1523: ** New hook `shell-set-directory-error-hook'.
        !          1524: 
        !          1525: The value of this variable is called, with no arguments, whenever
        !          1526: Shell mode gets an error trying to keep track of directory-setting
        !          1527: commands (such as `cd' and `pushd') used in the shell buffer.
        !          1528: 
        !          1529: * New functions `user-uid' and `user-real-uid'.
        !          1530: 
        !          1531: These functions take no arguments and return, respectively,
        !          1532: the effective uid and the real uid of the Emacs process.
        !          1533: The value in each case is an integer.
        !          1534: 
        !          1535: * New variable `print-escape-newlines' controls string printing.
        !          1536: 
        !          1537: If this variable is non-`nil', then when a Lisp string is printed
        !          1538: by the Lisp printing function `prin1' or `print', newline characters
        !          1539: are printed as `\n' rather than as a literal newline.
        !          1540: 
        !          1541: * New function `sysnetunam' on HPUX.
        !          1542: 
        !          1543: This function takes two arguments, a network address PATH and a
        !          1544: login string LOGIN, and executes the system call `netunam'.
        !          1545: It returns `t' if the call succeeds, otherwise `nil'.
        !          1546: 
        !          1547: News regarding installation:
        !          1548: 
        !          1549: * Many `s-...' file names changed.
        !          1550: 
        !          1551: Many `s-...' files have been renamed.  All periods in such names,
        !          1552: except the ones just before the final `h', have been changed to
        !          1553: hyphens.  Thus, `s-bsd4.2.h' has been renamed to `s-bsd4-2.h'.
        !          1554: 
        !          1555: This is so a Unix distribution can be moved mechanically to VMS.
        !          1556: 
        !          1557: * `DOCSTR...' file now called `DOC-...'.
        !          1558: 
        !          1559: The file of on-line documentation strings, that used to be
        !          1560: `DOCSTR.mm.nn.oo' in this directory, is now called `DOC-mm.nn.oo'.
        !          1561: This is so that it can port to VMS using the standard conventions
        !          1562: for translating filenames for VMS.
        !          1563: 
        !          1564: This file also now contains the doc strings for variables as
        !          1565: well as functions.
        !          1566: 
        !          1567: * Emacs no longer uses floating point arithmetic.
        !          1568: 
        !          1569: This may make it easier to port to some machines.
        !          1570: 
        !          1571: * Macros `XPNTR' and `XSETPNTR'; flag `DATA_SEG_BITS'.
        !          1572: 
        !          1573: These macros exclusively are used to unpack a pointer from a Lisp_Object
        !          1574: and to insert a pointer into a Lisp_Object.  Redefining them may help
        !          1575: port Emacs to machines in which all pointers to data objects have
        !          1576: certain high bits set.
        !          1577: 
        !          1578: If `DATA_SEG_BITS' is defined, it should be a number which contains
        !          1579: the high bits to be inclusive or'ed with pointers that are unpacked.
        !          1580: 
        !          1581: * New flag `HAVE_X_MENU'.
        !          1582: 
        !          1583: Define this flag in `config.h' in addition to `HAVE_X_WINDOWS'
        !          1584: to enable use of the Emacs interface to X Menus.  On some operating
        !          1585: systems, the rest of the X interface works properly but X Menus
        !          1586: do not work; hence this separate flag.  See the file `src/xmenu.c'
        !          1587: for more information.
        !          1588: 
        !          1589: * Macros `ARRAY_MARK_FLAG' and `DONT_COPY_FLAG'.
        !          1590: 
        !          1591: * `HAVE_ALLOCA' prevents assembly of `alloca.s'.
        !          1592: 
        !          1593: * `SYSTEM_MALLOC' prevents use of GNU `malloc.c'.
        !          1594: 
        !          1595: SYSTEM_MALLOC, if defined, means use the system's own `malloc' routines
        !          1596: rather than those that come with Emacs.
        !          1597: 
        !          1598: Use this only if absolutely necessary, because if it is used you do
        !          1599: not get warnings when space is getting low.
        !          1600: 
        !          1601: * New flags to control unexec.
        !          1602: 
        !          1603: See the file `unexec.c' for a long comment on the compilation
        !          1604: switches that suffice to make it work on many machines.
        !          1605: 
        !          1606: * `PNTR_COMPARISON_TYPE'
        !          1607: 
        !          1608: Pointers that need to be compared for ordering are converted to this type
        !          1609: first.  Normally this is `unsigned int'.
        !          1610: 
        !          1611: * `HAVE_VFORK', `HAVE_DUP2' and `HAVE_GETTIMEOFDAY'.
        !          1612: 
        !          1613: These flags just say whether certain system calls are available.
        !          1614: 
        !          1615: * New macros control compiler switches, linker switches and libraries.
        !          1616: 
        !          1617: The m- and s- files can now control in a modular fashion the precise
        !          1618: arguments passed to `cc' and `ld'.
        !          1619: 
        !          1620: LIBS_STANDARD defines the standard C libraries.  Default is `-lc'.
        !          1621: LIBS_DEBUG defines the extra libraries to use when debugging.  Default `-lg'.
        !          1622: LIBS_SYSTEM can be defined by the s- file to specify extra libraries.
        !          1623: LIBS_MACHINE can be defined by the m- file to specify extra libraries.
        !          1624: LIBS_TERMCAP defines the libraries for Termcap or Terminfo.
        !          1625:   It is defined by default in a complicated fashion but the m- or s- file
        !          1626:   can override it.
        !          1627: 
        !          1628: LD_SWITCH_SYSTEM can be defined by the s- file to specify extra `ld' switches.
        !          1629:   The default is `-X' on BSD systems except those few that use COFF object files.
        !          1630: LD_SWITCH_MACHINE can be defined by the m- file to specify extra `ld' switches.
        !          1631: 
        !          1632: C_DEBUG_SWITCH defines the switches to give `cc' when debugging.  Default `-g'.
        !          1633: C_OPTIMIZE_SWITCH defines the switches to give `cc' to optimize.  Default `-O'.
        !          1634: C_SWITCH_MACHINE can be defined by the m- file to specify extra `cc' switches.
        !          1635: 
        !          1636: For older news, see the file ONEWS.
        !          1637: 
        !          1638: ----------------------------------------------------------------------
        !          1639: Copyright information:
        !          1640: 
        !          1641: Copyright (C) 1988, 1990 Free Software Foundation, Inc.
        !          1642: 
        !          1643:    Permission is granted to anyone to make or distribute verbatim copies
        !          1644:    of this document as received, in any medium, provided that the
        !          1645:    copyright notice and this permission notice are preserved,
        !          1646:    thus giving the recipient permission to redistribute in turn.
        !          1647: 
        !          1648:    Permission is granted to distribute modified versions
        !          1649:    of this document, or of portions of it,
        !          1650:    under the above conditions, provided also that they
        !          1651:    carry prominent notices stating who last changed them.
        !          1652: 
        !          1653: Local variables:
        !          1654: mode: text
        !          1655: end:

unix.superglobalmegacorp.com

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