emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/etc/ONEWS.3 [lexbind]


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/etc/ONEWS.3 [lexbind]
Date: Tue, 14 Oct 2003 19:08:07 -0400

Index: emacs/etc/ONEWS.3
diff -c /dev/null emacs/etc/ONEWS.3:1.2.18.1
*** /dev/null   Tue Oct 14 19:08:07 2003
--- emacs/etc/ONEWS.3   Tue Oct 14 19:08:03 2003
***************
*** 0 ****
--- 1,1611 ----
+ GNU Emacs NEWS -- history of user-visible changes.  17-Aug-1988
+ Copyright (C) 1988 Free Software Foundation, Inc.
+ See the end for copying conditions.
+ 
+ For older news, see the file ONEWS.2.
+ 
+ Changes in version 18.52.
+ 
+ * X windows version 10 is supported under system V.
+ 
+ * Pop-up menus are now supported with the same Lisp interface in
+ both version 10 and 11 of X windows.
+ 
+ * C-x 4 a is a new command to edit a change-log entry in another window.
+ 
+ * The emacs client program now allows an option +NNN to specify the
+ line number to go to in the file whose name follows.  Thus,
+     emacsclient foo.c +45 bar.c
+ will find the files `foo.c' and `bar.c', going to line 45 in `bar.c'.
+ 
+ * Dired allows empty directories to be deleted like files.
+ 
+ * When the terminal type is used to find a terminal-specific file to
+ run, Emacs now tries the entire terminal type first.  If that doesn't
+ yield a file that exists, the last hyphen and what follows it is
+ stripped.  If that doesn't yield a file that exists, the previous
+ hyphen is stripped, and so on until all hyphens are gone.  For
+ example, if the terminal type is `aaa-48-foo', Emacs will try first
+ `term/aaa-48-foo.el', then `term/aaa-48.el' and finally `term/aaa.el'.
+ 
+ Underscores now receive the same treatment as hyphens.
+ 
+ * Texinfo features: @defun, etc.  texinfo-show-structure.
+ New template commands.  texinfo-format-region.
+ 
+ * The special "local variable" `eval' is now ignored if you are running
+ as root.
+ 
+ * New command `c-macro-expand' shows the result of C macro expansion
+ in the region.  It works using the C preprocessor, so its results
+ are completely accurate.
+ 
+ * Errors in trying to auto save now flash error messages for a few seconds.
+ 
+ * Killing a buffer now sends SIGHUP to the buffer's process.
+ 
+ * New hooks.
+ 
+ ** `spell-region' now allows you to filter the text before spelling-checking.
+ If the value of `spell-filter' is non-nil, it is called, with no arguments,
+ looking at a temporary buffer containing a copy of the text to be checked.
+ It can alter the text freely before the spell program sees it.
+ 
+ ** The variable `lpr-command' now specifies the command to be used when
+ you use the commands to print text (such as M-x print-buffer).
+ 
+ ** Posting netnews now calls the value of `news-inews-hook' (if not nil)
+ as a function of no arguments before the actual posting.
+ 
+ ** Rmail now calls the value of `rmail-show-message-hook' (if not nil)
+ as a function of no arguments, each time a new message is selected.
+ 
+ ** `kill-emacs' calls the value of `kill-emacs-hook' as a function of no args.
+ 
+ * New libraries.
+ See the source code of each library for more information.
+ 
+ ** icon.el: a major mode for editing programs written in Icon.
+ 
+ ** life.el: a simulator for the cellular automaton "life".  Load the
+ library and run M-x life.
+ 
+ ** doctex.el: a library for converting the Emacs `etc/DOC' file of
+ documentation strings into TeX input.
+ 
+ ** saveconf.el: a library which records the arrangement of windows and
+ buffers when you exit Emacs, and automatically recreates the same
+ setup the next time you start Emacs.
+ 
+ ** uncompress.el: a library that automatically uncompresses files
+ when you visit them.
+ 
+ ** c-fill.el: a mode for editing filled comments in C.
+ 
+ ** kermit.el: an extended version of shell-mode designed for running kermit.
+ 
+ ** spook.el: a library for adding some "distract the NSA" keywords to every
+ message you send.
+ 
+ ** hideif.el: a library for hiding parts of a C program based on preprocessor
+ conditionals.
+ 
+ ** autoinsert.el: a library to put in some initial text when you visit
+ a nonexistent file.  The text used depends on the major mode, and
+ comes from a directory of files created by you.
+ 
+ * New programming features.
+ 
+ ** The variable `window-system-version' now contains the version number
+ of the window system you are using (if appropriate).  When using X windows,
+ its value is either 10 or 11.
+ 
+ ** (interactive "N") uses the prefix argument if any; otherwise, it reads
+ a number using the minibuffer.
+ 
+ ** VMS: there are two new functions `vms-system-info' and `shrink-to-icon'.
+ The former allows you to get many kinds of system status information.
+ See its self-documentation for full details.
+ The second is used with the window system: it iconifies the Emacs window.
+ 
+ ** VMS: the new function `define-logical-name' allows you to create
+ job-wide logical names.  The old function `define-dcl-symbol' has been
+ removed.
+ 
+ Changes in version 18.50.
+ 
+ * X windows version 11 is supported.
+ 
+ Define X11 in config.h if you want X version 11 instead of version 10.
+ 
+ * The command M-x gdb runs the GDB debugger as an inferior.
+ It asks for the filename of the executable you want to debug.
+ 
+ GDB runs as an inferior with I/O through an Emacs buffer.  All the
+ facilities of Shell mode are available.  In addition, each time your
+ program stops, and each time you select a new stack frame, the source
+ code is displayed in another window with an arrow added to the line
+ where the program is executing.
+ 
+ Special GDB-mode commands include M-s, M-n, M-i, M-u, M-d, and C-c C-f
+ which send the GDB commands `step', `next', `stepi', `up', `down'
+ and `finish'.
+ 
+ In any source file, the commands C-x SPC tells GDB to set a breakpoint
+ on the current line.
+ 
+ * M-x calendar displays a three-month calendar.
+ 
+ * C-u 0 C-x C-s never makes a backup file.
+ 
+ This is a way you can explicitly request not to make a backup.
+ 
+ * `term-setup-hook' is for users only.
+ 
+ Emacs never uses this variable for internal purposes, so you can freely
+ set it in your `.emacs' file to make Emacs do something special after
+ loading any terminal-specific setup file from `lisp/term'.
+ 
+ * `copy-keymap' now copies recursive submaps.
+ 
+ * New overlay-arrow feature.
+ 
+ If you set the variable `overlay-arrow-string' to a string
+ and `overlay-arrow-position' to a marker, that string is displayed on
+ the screen at the position of that marker, hiding whatever text would
+ have appeared there.  If that position isn't on the screen, or if
+ the buffer the marker points into isn't displayed, there is no effect.
+ 
+ * -batch mode can read from the terminal.
+ 
+ It now works to use `read-char' to do terminal input in a noninteractive
+ Emacs run.  End of file causes Emacs to exit.
+ 
+ * Variables `data-bytes-used' and `data-bytes-free' removed.
+ 
+ These variables cannot really work because the 24-bit range of an
+ integer in (most ports of) GNU Emacs is not large enough to hold their
+ values on many systems.
+ 
+ Changes in version 18.45, since version 18.41.
+ 
+ * C indentation parameter `c-continued-brace-offset'.
+ 
+ This parameter's value is added to the indentation of any
+ line that is in a continuation context and starts with an open-brace.
+ For example, it applies to the open brace shown here:
+ 
+      if (x)
+        {
+ 
+ The default value is zero.
+ 
+ * Dabbrev expansion (Meta-/) preserves case.
+ 
+ When you use Meta-/ to search the buffer for an expansion of an
+ abbreviation, if the expansion found is all lower case except perhaps
+ for its first letter, then the case pattern of the abbreviation
+ is carried over to the expansion that replaces it.
+ 
+ * TeX-mode syntax.
+ 
+ \ is no longer given "escape character" syntax in TeX mode.  It now
+ has the syntax of an ordinary punctuation character.  As a result,
+ \[...\] and such like are considered to balance each other.
+ 
+ * Mail-mode automatic Reply-to field.
+ 
+ If the variable `mail-default-reply-to' is non-`nil', then each time
+ you start to compose a message, a Reply-to field is inserted with
+ its contents taken from the value of `mail-default-reply-to'.
+ 
+ * Where is your .emacs file?
+ 
+ If you run Emacs under `su', so your real and effective uids are
+ different, Emacs uses the home directory associated with the real uid
+ (the name you actually logged in under) to find the .emacs file.
+ 
+ Otherwise, Emacs uses the environment variable HOME to find the .emacs
+ file.
+ 
+ The .emacs file is not loaded at all if -batch is specified.
+ 
+ * Prolog mode is the default for ".pl" files.
+ 
+ * File names are not case-sensitive on VMS.
+ 
+ On VMS systems, all file names that you specify are converted to upper
+ case.  You can use either upper or lower case indiscriminately.
+ 
+ * VMS-only function 'define-dcl-symbol'.
+ 
+ This is a new name for the function formerly called
+ `define-logical-name'.
+ 
+ Editing Changes in Emacs 18
+ 
+ * Additional systems and machines are supported.
+ 
+ GNU Emacs now runs on Vax VMS.  However, many facilities that are normally
+ implemented by running subprocesses do not work yet.  This includes listing
+ a directory and sending mail.  There are features for running subprocesses
+ but they are incompatible with those on Unix.  I hope that some of
+ the VMS users can reimplement these features for VMS (compatibly for
+ the user, if possible).
+ 
+ VMS wizards are also asked to work on making the subprocess facilities
+ more upward compatible with those on Unix, and also to rewrite their
+ internals to use the same Lisp objects that are used on Unix to
+ represent processes.
+ 
+ In addition, the TI Nu machine running Unix system V, the AT&T 3b, and
+ the Wicat, Masscomp, Integrated Solutions, Alliant, Amdahl uts, Mips,
+ Altos 3068 and Gould Unix systems are now supported.  The IBM PC-RT is
+ supported under 4.2, but not yet under system V.  The GEC 93 is close
+ to working.  The port for the Elxsi is partly merged.  See the file
+ MACHINES for full status information and machine-specific installation
+ advice.
+ 
+ * Searching is faster.
+ 
+ Forward search for a text string, or for a regexp that is equivalent
+ to a text string, is now several times faster.  Motion by lines and
+ counting lines is also faster.
+ 
+ * Memory usage improvements.
+ 
+ It is no longer possible to run out of memory during garbage
+ collection.  As a result, running out of memory is never fatal.  This
+ is due to a new garbage collection algorithm which compactifies
+ strings in place rather than copying them.  Another consequence of the
+ change is a reduction in total memory usage and a slight increase in
+ garbage collection speed.
+ 
+ * Display changes.
+ 
+ ** Editing above top of screen.
+ 
+ When you delete or kill or alter text that reaches to the top of the
+ screen or above it, so that display would start in the middle of a
+ line, Emacs will usually attempt to scroll the text so that display
+ starts at the beginning of a line again.
+ 
+ ** Yanking in the minibuffer.
+ 
+ The message "Mark Set" is no longer printed when the minibuffer is
+ active.  This is convenient with many commands, including C-y, that
+ normally print such a message.
+ 
+ ** Cursor appears in last line during y-or-n questions.
+ 
+ Questions that want a `y' or `n' answer now move the cursor
+ to the last line, following the question.
+ 
+ * Library loading changes.
+ 
+ `load' now considers all possible suffixes (`.elc', `.el' and none)
+ for each directory in `load-path' before going on to the next directory.
+ It now accepts an optional fourth argument which, if non-nil, says to
+ use no suffixes; then the file name must be given in full.  The search
+ of the directories in `load-path' goes on as usual in this case, but
+ it too can be prevented by passing an absolute file name.
+ 
+ The value of `load-path' no longer by default includes nil (meaning to
+ look in the current default directory).  The idea is that `load' should
+ be used to search the path only for libraries to be found in the standard
+ places.  If you want to override system libraries with your own, place
+ your own libraries in one special directory and add that directory to the
+ front of `load-path'.
+ 
+ The function `load' is no longer a command; that is to say, `M-x load'
+ is no longer allowed.  Instead, there are two commands for loading files.
+ `M-x load-library' is equivalent to the old meaning of `M-x load'.
+ `M-x load-file' reads a file name with completion and defaulting
+ and then loads exactly that file, with no searching and no suffixes.
+ 
+ * Emulation of other editors.
+ 
+ ** `edt-emulation-on' starts emulating DEC's EDT editor.
+ 
+ Do `edt-emulation-off' to return Emacs to normal.
+ 
+ ** `vi-mode' and `vip-mode' starts emulating vi.
+ 
+ These are two different vi emulations provided by GNU Emacs users.
+ We are interested in feedback as to which emulation is preferable.
+ 
+ See the documentation and source code for these functions
+ for more information.
+ 
+ ** `set-gosmacs-bindings' emulates Gosling Emacs.
+ 
+ This command changes many global bindings to resemble those of
+ Gosling Emacs.  The previous bindings are saved and can be restored using
+ `set-gnu-bindings'.
+ 
+ * Emulation of a display terminal.
+ 
+ Within Emacs it is now possible to run programs (such as emacs or
+ supdup) which expect to do output to a visual display terminal.
+ 
+ See the function `terminal-emulator' for more information.
+ 
+ * New support for keypads and function keys.
+ 
+ There is now a first attempt at terminal-independent support for
+ keypad and function keys.
+ 
+ Emacs now defines a standard set of key-names for function and keypad
+ keys, and provides standard hooks for defining them.  Most of the
+ standard key-names have default definitions built into Emacs; you can
+ override these in a terminal-independent manner.  The default definitions
+ and the conventions for redefining them are in the file `lisp/keypad.el'.
+ 
+ These keys on the terminal normally work by sending sequences of
+ characters starting with ESC.  The exact sequences used vary from
+ terminal to terminal.  Emacs interprets them in two stages:
+ in the first stage, terminal-dependent sequences are mapped into
+ the standard key-names; then second stage maps the standard key-names
+ into their definitions in a terminal-independent fashion.
+ 
+ The terminal-specific file `term/$TERM.el' now is responsible only for
+ establishing the mapping from the terminal's escape sequences into
+ standard key-names.  It no longer knows what Emacs commands are
+ assigned to the standard key-names.
+ 
+ One other change in terminal-specific files: if the value of the TERM
+ variable contains a hyphen, only the part before the first hyphen is
+ used in forming the name of the terminal-specific file.  Thus, for
+ terminal type `aaa-48', the file loaded is now `term/aaa.el' rather
+ than `term/aaa-48.el'.
+ 
+ * New startup command line options.
+ 
+ `-i FILE' or `-insert FILE' in the command line to Emacs tells Emacs to
+ insert the contents of FILE into the current buffer at that point in
+ command line processing.  This is like using the command M-x insert-file.
+ 
+ `-funcall', `-load', `-user' and `-no-init-file' are new synonyms for
+ `-f', `-l', `-u' and `-q'.
+ 
+ `-nw' means don't use a window system.  If you are using a terminal
+ emulator on the X window system and you want to run Emacs to work through
+ the terminal emulator instead of working directly with the window system,
+ use this switch.
+ 
+ * Buffer-sorting commands.
+ 
+ Various M-x commands whose names start with `sort-' sort parts of
+ the region:
+ 
+ sort-lines    divides the region into lines and sorts them alphabetically.
+ sort-pages    divides into pages and sorts them alphabetically.
+ sort-paragraphs       divides into paragraphs and sorts them alphabetically.
+ sort-fields   divides into lines and sorts them alphabetically
+               according to one field in the line.
+               The numeric argument specifies which field (counting
+               from field 1 at the beginning of the line).  Fields in a line
+               are separated by whitespace.
+ sort-numeric-fields
+               is similar but converts the specified fields to numbers
+               and sorts them numerically.
+ sort-columns  divides into lines and sorts them according to the contents
+               of a specified range of columns.
+ 
+ Refer to the self-documentation of these commands for full usage information.
+ 
+ * Changes in various commands.
+ 
+ ** `tags-query-replace' and `tags-search' change.
+ 
+ These functions now display the name of the file being searched at the moment.
+ 
+ ** `occur' output now serves as a menu.  `occur-menu' command deleted.
+ 
+ `M-x occur' now allows you to move quickly to any of the occurrences
+ listed.  Select the `*Occur*' buffer that contains the output of `occur',
+ move point to the occurrence you want, and type C-c C-c.
+ This will move point to the same occurrence in the buffer that the
+ occurrences were found in.
+ 
+ The command `occur-menu' is thus obsolete, and has been deleted.
+ 
+ One way to get a list of matching lines without line numbers is to
+ copy the text to another buffer and use the command `keep-lines'.
+ 
+ ** Incremental search changes.
+ 
+ Ordinary and regexp incremental searches now have distinct default
+ search strings.  Thus, regexp searches recall only previous regexp
+ searches.
+ 
+ If you exit an incremental search when the search string is empty,
+ the old default search string is kept.  The default does not become
+ empty.
+ 
+ Reversing the direction of an incremental search with C-s or C-r
+ when the search string is empty now does not get the default search
+ string.  It leaves the search string empty.  A second C-s or C-r
+ will get the default search string.  As a result, you can do a reverse
+ incremental regexp search with C-M-s C-r.
+ 
+ If you add a `*', `?' or `\|' to an incremental search regexp,
+ point will back up if that is appropriate.  For example, if
+ you have searched for `ab' and add a `*', point moves to the
+ first match for `ab*', which may be before the match for `ab'
+ that was previously found.
+ 
+ If an incremental search is failing and you ask to repeat it,
+ it will start again from the beginning of the buffer (or the end,
+ if it is a backward search).
+ 
+ The search-controlling parameters `isearch-slow-speed' and
+ `isearch-slow-window-lines' have now been renamed to start with
+ `search' instead of `isearch'.  Now all the parameters' names start
+ with `search'.
+ 
+ If `search-slow-window-lines' is negative, the slow search window
+ is put at the top of the screen, and the absolute value or the
+ negative number specifies the height of it.
+ 
+ ** Undo changes
+ 
+ The undo command now will mark the buffer as unmodified only when it is
+ identical to the contents of the visited file.
+ 
+ ** C-M-v in minibuffer.
+ 
+ If while in the minibuffer you request help in a way that uses a
+ window to display something, then until you exit the minibuffer C-M-v
+ in the minibuffer window scrolls the window of help.
+ 
+ For example, if you request a list of possible completions, C-M-v can
+ be used reliably to scroll the completion list.
+ 
+ ** M-TAB command.
+ 
+ Meta-TAB performs completion on the Emacs Lisp symbol names.  The sexp
+ in the buffer before point is compared against all existing nontrivial
+ Lisp symbols and completed as far as is uniquely determined by them.
+ Nontrivial symbols are those with either function definitions, values
+ or properties.
+ 
+ If there are multiple possibilities for the very next character, a
+ list of possible completions is displayed.
+ 
+ ** Dynamic abbreviation package.
+ 
+ The new command Meta-/ expands an abbreviation in the buffer before point
+ by searching the buffer for words that start with the abbreviation.
+ 
+ ** Changes in saving kbd macros.
+ 
+ The commands `write-kbd-macro' and `append-kbd-macro' have been
+ deleted.  The way to save a keyboard macro is to use the new command
+ `insert-kbd-macro', which inserts Lisp code to define the macro as
+ it is currently defined into the buffer before point.  Visit a Lisp
+ file such as your Emacs init file `~/.emacs', insert the macro
+ definition (perhaps deleting an old definition for the same macro)
+ and then save the file.
+ 
+ ** C-x ' command.
+ 
+ The new command C-x ' (expand-abbrev) expands the word before point as
+ an abbrev, even if abbrev-mode is not turned on.
+ 
+ ** Sending to inferior Lisp.
+ 
+ The command C-M-x in Lisp mode, which sends the current defun to
+ an inferior Lisp process, now works by writing the text into a temporary
+ file and actually sending only a `load'-form to load the file.
+ As a result, it avoids the Unix bugs that used to strike when the
+ text was above a certain length.
+ 
+ With a prefix argument, this command now makes the inferior Lisp buffer
+ appear on the screen and scrolls it so that the bottom is showing.
+ 
+ Two variables `inferior-lisp-load-command' and `inferior-lisp-prompt',
+ exist to customize these feature for different Lisp implementations.
+ 
+ ** C-x p now disabled.
+ 
+ The command C-x p, a nonrecomended command which narrows to the current
+ page, is now initially disabled like C-x n.
+ 
+ * Dealing with files.
+ 
+ ** C-x C-v generalized
+ 
+ This command is now allowed even if the current buffer is not visiting
+ a file.  As usual, it kills the current buffer and replaces it with a
+ newly found file.
+ 
+ ** M-x recover-file improved; auto save file names changed.
+ 
+ M-x recover-file now checks whether the last auto-save file is more
+ recent than the real visited file before offering to read in the
+ auto-save file.  If the auto-save file is newer, a directory listing
+ containing the two files is displayed while you are asked whether you
+ want the auto save file.
+ 
+ Visiting a file also makes this check.  If the auto-save file is more recent,
+ a message is printed suggesting that you consider using M-x recover file.
+ 
+ Auto save file names now by default have a `#' at the end as well
+ as at the beginning.  This is so that `*.c' in a shell command
+ will never match auto save files.
+ 
+ On VMS, auto save file names are made by appending `_$' at the front
+ and `$' at the end.
+ 
+ When you change the visited file name of a buffer, the auto save file
+ is now renamed to belong to the new visited file name.
+ 
+ You can customize the way auto save file names are made by redefining
+ the two functions `make-auto-save-file-name' and `auto-save-file-name-p',
+ both of which are defined in `files.el'.
+ 
+ ** Modifying a buffer whose file is changed on disk is detected instantly.
+ 
+ On systems where clash detection (locking of files being edited) is
+ implemented, Emacs also checks the first time you modify a buffer
+ whether the file has changed on disk since it was last visited or saved.
+ If it has, you are asked to confirm that you want to change the buffer.
+ 
+ ** Exiting Emacs offers to save `*mail*'.
+ 
+ Emacs can now know about buffers that it should offer to save on exit
+ even though they are not visiting files.  This is done for any buffer
+ which has a non-nil local value of `buffer-offer-save'.  By default,
+ Mail mode provides such a local value.
+ 
+ ** Backup file changes.
+ 
+ If a backup file cannot be written in the directory of the visited file
+ due to fascist file protection, a backup file is now written in your home
+ directory as `~/%backup%~'.  Only one such file is made, ever, so only
+ the most recently made such backup is available.
+ 
+ When backup files are made by copying, the last-modification time of the
+ original file is now preserved in the backup copy.
+ 
+ ** Visiting remote files.
+ 
+ On an internet host, you can now visit and save files on any other
+ internet host directly from Emacs with the commands M-x ftp-find-file
+ and M-x ftp-write-file.  Specify an argument of the form HOST:FILENAME.
+ Since standard internet FTP is used, the other host may be any kind
+ of machine and is not required to have any special facilities.
+ 
+ The first time any one remote host is accessed, you will be asked to
+ give the user name and password for use on that host.  FTP is reinvoked
+ each time you ask to use it, but previously specified user names and
+ passwords are remembered automatically.
+ 
+ ** Dired `g' command.
+ 
+ `g' in Dired mode is equivalent to M-x revert-buffer; it causes the
+ current contents of the same directory to be read in.
+ 
+ * Changes in major modes.
+ 
+ ** C mode indentation change.
+ 
+ The binding of Linefeed is no longer changed by C mode.  It once again
+ has its normal meaning, which is to insert a newline and then indent
+ afterward.
+ 
+ The old definition did one additional thing: it reindented the line
+ before the new newline.  This has been removed because it made the
+ command twice as slow.  The only time it was really useful was after the
+ insertion of an `else', since the fact of starting with `else' may change
+ the way that line is indented.  Now you will have to type TAB again
+ yourself to reindent the `else' properly.
+ 
+ If the variable `c-tab-always-indent' is set to `nil', the TAB command
+ in C mode, with no argument, will just insert a tab character if there
+ is non-whitespace preceding point on the current line.  Giving it a
+ prefix argument will force reindentation of the line (as well as
+ of the compound statement that begins after point, if any).
+ 
+ ** Fortran mode now exists.
+ 
+ This mode provides commands for motion and indentation of Fortran code,
+ plus built-in abbrevs for Fortran keywords.  For details, see the manual
+ or the on-line documentation of the command `fortran-mode'.
+ 
+ ** Scribe mode now exists.
+ 
+ This mode does something useful for editing files of Scribe input.
+ It is used automatically for files with names ending in ".mss".
+ 
+ ** Modula2 and Prolog modes now exist.
+ 
+ These modes are for editing programs in the languages of the same names.
+ They can be selected with M-x modula-2-mode and M-x prolog-mode.
+ 
+ ** Telnet mode changes.
+ 
+ The telnet mode special commands have now been assigned to C-c keys.
+ Most of them are the same as in Shell mode.
+ 
+ ** Picture mode changes.
+ 
+ The special picture-mode commands to specify the direction of cursor
+ motion after insertion have been moved to C-c keys.  The commands to
+ specify diagonal motion were already C-c keys; they are unchanged.
+ The keys to specify horizontal or vertical motion are now
+ C-c < (left), C-c > (right), C-c ^ (up) and C-c . (down).
+ 
+ ** Nroff mode comments.
+ 
+ Comments are now supported in Nroff mode.  The standard comment commands
+ such as M-; and C-x ; know how to insert, align and delete comments
+ that start with backslash-doublequote.
+ 
+ ** LaTeX mode.
+ 
+ LaTeX mode now exists.  Use M-x latex-mode to select this mode, and
+ M-x plain-tex-mode to select the previously existing mode for Plain
+ TeX.  M-x tex-mode attempts to examine the contents of the buffer and
+ choose between latex-mode and plain-tex-mode accordingly; if the
+ buffer is empty or it cannot tell, the variable `TeX-default-mode'
+ controls the choice.  Its value should be the symbol for the mode to
+ be used.
+ 
+ The facilities for running TeX on all or part of the buffer
+ work with LaTeX as well.
+ 
+ Some new commands available in both modes:
+ 
+ C-c C-l               recenter the window showing the TeX output buffer
+                so most recent line of output can be seen.
+ C-c C-k               kill the TeX subprocess.
+ C-c C-q               show the printer queue.
+ C-c C-f               close a block (appropriate for LaTeX only).
+                If the current line contains a \begin{...},
+                this inserts an \end{...} on the following line
+                and puts point on a blank line between them.
+ 
+ ** Outline mode changes.
+ 
+ Invisible lines in outline mode are now indicated by `...' at the
+ end of the previous visible line.
+ 
+ The special outline heading motion commands are now all on C-c keys.
+ A few new ones have been added.  Here is a full list:
+ 
+ C-c C-n   Move to next visible heading (formerly M-})
+ C-c C-p   Move to previous visible heading (formerly M-{)
+ C-c C-f   Move to next visible heading at the same level.
+          Thus, if point is on a level-2 heading line,
+          this command moves to the next visible level-2 heading.
+ C-c C-b   Move to previous visible heading at the same level.
+ C-c C-u   Move up to previous visible heading at a higher level.
+ 
+ The variable `outline-regexp' now controls recognition of heading lines.
+ Any line whose beginning matches this regexp is a heading line.
+ The depth in outline structure is determined by the length of
+ the string that matches.
+ 
+ A line starting with a ^L (formfeed) is now by default considered
+ a header line.
+ 
+ * Mail reading and sending.
+ 
+ ** MH-E changes.
+ 
+ MH-E has been extensively modified and improved since the v17 release.
+ It contains many new features, including commands to: extracted failed
+ messages, kill a draft message, undo changes to a mail folder, monitor
+ delivery of a letter, print multiple messages, page digests backwards,
+ insert signatures, and burst digests.  Also, many commands have been
+ made to able to deal with named sequences of messages, instead of
+ single messages.  MH-E also has had numerous bugs fixed and commands
+ made to run faster.  Furthermore, its keybindings have been changed to
+ be compatible with Rmail and the rest of GNU Emacs.
+ 
+ ** Mail mode changes.
+ 
+ The C-c commands of mail mode have been rearranged:
+ 
+ C-c s, C-c c, C-c t and C-c b (move point to various header fields)
+ 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
+ C-f C-b.  C-c C-f is for "field".
+ 
+ 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.
+ 
+ Thus, C-c LETTER is always unassigned.
+ 
+ ** Rmail C-r command changed to w.
+ 
+ The Rmail command to edit the current message is now `w'.  This change
+ has been made because people frequently type C-r while in Rmail hoping
+ to do a reverse incremental search.  That now works.
+ 
+ * Rnews changes.
+ 
+ ** Caesar rotation added.
+ 
+ The function news-caesar-buffer-body performs encryption and
+ decryption of the body of a news message.  It defaults to the USENET
+ standard of 13, and accepts any numeric arg between 1 to 25 and -25 to -1.
+ The function is bound to C-c C-r in both news-mode and news-reply-mode.
+ 
+ ** rmail-output command added.
+ 
+ The C-o command has been bound to rmail-output in news-mode.
+ This allows one to append an article to a file which is in either Unix
+ mail or RMAIL format.
+ 
+ ** news-reply-mode changes.
+ 
+ The C-c commands of news reply mode have been rearranged and changed,
+ so that C-c LETTER is always unassigned:
+ 
+ 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.
+ 
+ C-c c, C-c t, and C-c b (move to various mail header fields) have been
+ deleted (they make no sense for posting and replying to USENET).
+ 
+ C-c s (move to Subject: header field) has been reassigned as C-c C-f
+ C-s.  C-c C-f is for "field".  Several additional move to news header
+ field commands have been added.
+ 
+ The local news-reply-mode bindings now look like this:
+ 
+ C-c C-s  news-inews (post the message)    C-c C-c  news-inews
+ C-c C-f        move to a header field (and create it if there isn't):
+        C-c C-f C-n  move to Newsgroups:       C-c C-f C-s  move to Subj:
+        C-c C-f C-f  move to Followup-To:      C-c C-f C-k  move to Keywords:
+        C-c C-f C-d  move to Distribution:     C-c C-f C-a  move to Summary:
+ C-c C-y  news-reply-yank-original (insert current message, in NEWS).
+ C-c C-q  mail-fill-yanked-message (fill what was yanked).
+ C-c C-r  caesar rotate all letters by 13 places in the article's body (rot13).
+ 
+ * Existing Emacs usable as a server.
+ 
+ Programs such as mailers that invoke "the editor" as an inferior
+ to edit some text can now be told to use an existing Emacs process
+ instead of creating a new editor.
+ 
+ To do this, you must have an Emacs process running and capable of
+ doing terminal I/O at the time you want to invoke it.  This means that
+ either you are using a window system and give Emacs a separate window
+ or you run the other programs as inferiors of Emacs (such as, using
+ M-x shell).
+ 
+ First prepare the existing Emacs process by loading the `server'
+ library and executing M-x server-start.  (Your .emacs can do this
+ automatically.)
+ 
+ Now tell the other programs to use, as "the editor", the Emacs client
+ program (etc/emacsclient, located in the same directory as this file).
+ This can be done by setting the environment variable EDITOR.
+ 
+ When another program invokes the emacsclient as "the editor", the
+ client actually transfers the file names to be edited to the existing
+ Emacs, which automatically visits the files.
+ 
+ When you are done editing a buffer for a client, do C-x # (server-edit).
+ This marks that buffer as done, and selects the next buffer that the client
+ asked for.  When all the buffers requested by a client are marked in this
+ way, Emacs tells the client program to exit, so that the program that
+ invoked "the editor" will resume execution.
+ 
+ You can only have one server Emacs at a time, but multiple client programs
+ can put in requests at the same time.
+ 
+ The client/server work only on Berkeley Unix, since they use the Berkeley
+ sockets mechanism for their communication.
+ 
+ Changes in Lisp programming in Emacs version 18.
+ 
+ * Init file changes.
+ 
+ ** Suffixes no longer accepted on `.emacs'.
+ 
+ Emacs will no longer load a file named `.emacs.el' or `emacs.elc'
+ in place of `.emacs'.  This is so that it will take less time to
+ find `.emacs'.  If you want to compile your init file, give it another
+ name and make `.emacs' a link to the `.elc' file, or make it contain
+ a call to `load' to load the `.elc' file.
+ 
+ ** `default-profile' renamed to `default', and loaded after `.emacs'.
+ 
+ It used to be the case that the file `default-profile' was loaded if
+ and only if `.emacs' was not found.
+ 
+ Now the name `default-profile' is not used at all.  Instead, a library
+ named `default' is loaded after the `.emacs' file.  `default' is loaded
+ whether the `.emacs' file exists or not.  However, loading of `default'
+ can be prevented if the `.emacs' file sets `inhibit-default-init' to non-nil.
+ 
+ In fact, you would call the default file `default.el' and probably would
+ byte-compile it to speed execution.
+ 
+ Note that for most purposes you are better off using a `site-init' library
+ since that will be loaded before the runnable Emacs is dumped.  By using
+ a `site-init' library, you avoid taking up time each time Emacs is started.
+ 
+ ** inhibit-command-line has been eliminated.
+ 
+ This variable used to exist for .emacs files to set.  It has been
+ eliminated because you can get the same effect by setting
+ command-line-args to nil and setting inhibit-startup-message to t.
+ 
+ * `apply' is more general.
+ 
+ `apply' now accepts any number of arguments.  The first one is a function;
+ the rest are individual arguments to pass to that function, except for the
+ last, which is a list of arguments to pass.
+ 
+ Previously, `apply' required exactly two arguments.  Its old behavior
+ follows as a special case of the new definition.
+ 
+ * New code-letter for `interactive'.
+ 
+ (interactive "NFoo: ") is like (interactive "nFoo: ") in reading
+ a number using the minibuffer to serve as the argument; however,
+ if a prefix argument was specified, it uses the prefix argument
+ value as the argument, and does not use the minibuffer at all.
+ 
+ This is used by the `goto-line' and `goto-char' commands.
+ 
+ * Semantics of variables.
+ 
+ ** Built-in per-buffer variables improved.
+ 
+ Several built-in variables which in the past had a different value in
+ each buffer now behave exactly as if `make-variable-buffer-local' had
+ been done to them.
+ 
+ These variables are `tab-width', `ctl-arrow', `truncate-lines',
+ `fill-column', `left-margin', `mode-line-format', `abbrev-mode',
+ `overwrite-mode', `case-fold-search', `auto-fill-hook',
+ `selective-display', `selective-display-ellipses'.
+ 
+ To be precise, each variable has a default value which shows through
+ in most buffers and can be accessed with `default-value' and set with
+ `set-default'.  Setting the variable with `setq' makes the variable
+ local to the current buffer.  Changing the default value has retroactive
+ effect on all buffers in which the variable is not local.
+ 
+ The variables `default-case-fold-search', etc., are now obsolete.
+ They now refer to the default value of the variable, which is not
+ quite the same behavior as before, but it should enable old init files
+ to continue to work.
+ 
+ ** New per-buffer variables.
+ 
+ The variables `fill-prefix', `comment-column' and `indent-tabs-mode'
+ are now per-buffer.  They work just like `fill-column', etc.
+ 
+ ** New function `setq-default'.
+ 
+ `setq-default' sets the default value of a variable, and uses the
+ same syntax that `setq' accepts: the variable name is not evaluated
+ and need not be quoted.
+ 
+ `(setq-default case-fold-search nil)' would make searches case-sensitive
+ in all buffers that do not have local values for `case-fold-search'.
+ 
+ ** Functions `global-set' and `global-value' deleted.
+ 
+ These functions were never used except by mistake by users expecting
+ the functionality of `set-default' and `default-value'.
+ 
+ * Changes in defaulting of major modes.
+ 
+ When `default-major-mode' is `nil', new buffers are supposed to
+ get their major mode from the buffer that is current.  However,
+ certain major modes (such as Dired mode, Rmail mode, Rmail Summary mode,
+ and others) are not reasonable to use in this way.
+ 
+ Now such modes' names have been given non-`nil' `mode-class' properties.
+ If the current buffer's mode has such a property, Fundamental mode is
+ used as the default for newly created buffers.
+ 
+ * `where-is-internal' requires additional arguments.
+ 
+ This function now accepts three arguments, two of them required:
+ DEFINITION, the definition to search for; LOCAL-KEYMAP, the keymap
+ to use as the local map when doing the searching, and FIRST-ONLY,
+ which is nonzero to return only the first key found.
+ 
+ This function returns a list of keys (strings) whose definitions
+ (in the LOCAL-KEYMAP or the current global map) are DEFINITION.
+ 
+ If FIRST-ONLY is non-nil, it returns a single key (string).
+ 
+ This function has changed incompatibly in that now two arguments
+ are required when previously only one argument was allowed.  To get
+ the old behavior of this function, write `(current-local-map)' as
+ the expression for the second argument.
+ 
+ The incompatibility is sad, but `nil' is a legitimate value for the
+ second argument (it means there is no local keymap), so it cannot also
+ serve as a default meaning to use the current local keymap.
+ 
+ * Abbrevs with hooks.
+ 
+ When an abbrev defined with a hook is expanded, it now performs the
+ usual replacement of the abbrev with the expansion before running the
+ hook.  Previously the abbrev itself was deleted but the expansion was
+ not inserted.
+ 
+ * Function `scan-buffer' deleted.
+ 
+ Use `search-forward' or `search-backward' in place of `scan-buffer'.
+ You will have to rearrange the arguments.
+ 
+ * X window interface improvements.
+ 
+ ** Detect release of mouse buttons.
+ 
+ Button-up events can now be detected.  See the file `lisp/x-mouse.el'
+ for details.
+ 
+ ** New pop-up menu facility.
+ 
+ The new function `x-popup-menu' pops up a menu (in a X window)
+ and returns an indication of which selection the user made.
+ For more information, see its self-documentation.
+ 
+ * M-x disassemble.
+ 
+ This command prints the disassembly of a byte-compiled Emacs Lisp function.
+ 
+ Would anyone like to interface this to the debugger?
+ 
+ * `insert-buffer-substring' can insert part of the current buffer.
+ 
+ The old restriction that the text being inserted had to come from
+ a different buffer is now lifted.
+ 
+ When inserting text from the current buffer, the text to be inserted
+ is determined from the specified bounds before any copying takes place.
+ 
+ * New function `substitute-key-definition'.
+ 
+ This is a new way to replace one command with another command as the
+ binding of whatever keys may happen to refer to it.
+ 
+ (substitute-key-definition OLDDEF NEWDEF KEYMAP) looks through KEYMAP
+ for keys defined to run OLDDEF, and rebinds those keys to run NEWDEF
+ instead.
+ 
+ * New function `insert-char'.
+ 
+ Insert a specified character, a specified number of times.
+ 
+ * `mark-marker' changed.
+ 
+ When there is no mark, this now returns a marker that points
+ nowhere, rather than `nil'.
+ 
+ * `ding' accepts argument.
+ 
+ When given an argument, the function `ding' does not terminate
+ execution of a keyboard macro.  Normally, `ding' does terminate
+ all macros that are currently executing.
+ 
+ * New function `minibuffer-depth'.
+ 
+ This function returns the current depth in minibuffer activations.
+ The value is zero when the minibuffer is not in use.
+ Values greater than one are possible if the user has entered the
+ minibuffer recursively.
+ 
+ * New function `documentation-property'.
+ 
+ (documentation-property SYMBOL PROPNAME) is like (get SYMBOL PROPNAME),
+ except that if the property value is a number `documentation-property'
+ will take that number (or its absolute value) as a character position
+ in the DOC file and return the string found there.
+ 
+ (documentation-property VAR 'variable-documentation) is the proper
+ way for a Lisp program to get the documentation of variable VAR.
+ 
+ * New documentation-string expansion feature.
+ 
+ If a documentation string (for a variable or function) contains text
+ of the form `\<FOO>', it means that all command names specified in
+ `\[COMMAND]' construct from that point on should be turned into keys
+ using the value of the variable FOO as the local keymap.  Thus, for example,
+ 
+   `\<emacs-lisp-mode-map>\[eval-defun] evaluates the defun containing point.'
+ 
+ will expand into
+ 
+   "ESC C-x evaluates the defun containing point."
+ 
+ regardless of the current major mode, because ESC C-x is defined to
+ run `eval-defun' in the keymap `emacs-lisp-mode-map'.  The effect is
+ to show the key for `eval-defun' in Emacs Lisp mode regardless of the
+ current major mode.
+ 
+ The `\<...>' construct applies to all `\[...]' constructs that follow it,
+ up to the end of the documentation string or the next `\<...>'.
+ 
+ Without `\<...>', the keys for commands specified in `\[...]' are found
+ in the current buffer's local map.
+ 
+ The current global keymap is always searched second, whether `\<...>'
+ has been used or not.
+ 
+ * Multiple hooks allowed in certain contexts.
+ 
+ The old hook variables `find-file-hook', `find-file-not-found-hook' and
+ `write-file-hook' have been replaced.
+ 
+ The replacements are `find-file-hooks', `find-file-not-found-hooks'
+ and `write-file-hooks'.  Each holds a list of functions to be called;
+ by default, `nil', for no functions.  The functions are called in
+ order of appearance in the list.
+ 
+ In the case of `find-file-hooks', all the functions are executed.
+ 
+ In the case of `find-file-not-found-hooks', if any of the functions
+ returns non-`nil', the rest of the functions are not called.
+ 
+ In the case of `write-file-hooks', if any of the functions returns
+ non-`nil', the rest of the functions are not called, and the file is
+ considered to have been written already; so actual writing in the
+ usual way is not done.  If `write-file-hooks' is local to a buffer,
+ it is set to its global value if `set-visited-file-name' is called
+ (and thus by C-x C-w as well).
+ 
+ `find-file-not-found-hooks' and `write-file-hooks' can be used
+ together to implement editing of files that are not stored as Unix
+ files: stored in archives, or inside version control systems, or on
+ other machines running other operating systems and accessible via ftp.
+ 
+ * New hooks for suspending Emacs.
+ 
+ Suspending Emacs runs the hook `suspend-hook' before suspending
+ and the hook `suspend-resume-hook' if the suspended Emacs is resumed.
+ Running a hook is done by applying the variable's value to no arguments
+ if the variable has a non-`nil' value.  If `suspend-hook' returns
+ non-`nil', then suspending is inhibited and so is running the
+ `suspend-resume-hook'.  The non-`nil' value means that the `suspend-hook'
+ has done whatever suspending is required.
+ 
+ * Disabling commands can print a special message.
+ 
+ A command is disabled by giving it a non-`nil' `disabled' property.
+ Now, if this property is a string, it is included in the message
+ printed when the user tries to run the command.
+ 
+ * Emacs can open TCP connections.
+ 
+ The function `open-network-stream' opens a TCP connection to
+ a specified host and service.  Its value is a Lisp object that represents
+ the connection.  The object is a kind of "subprocess", and I/O are
+ done like I/O to subprocesses.
+ 
+ * Display-related changes.
+ 
+ ** New mode-line control features.
+ 
+ The display of the mode line used to be controlled by a format-string
+ that was the value of the variable `mode-line-format'.
+ 
+ This variable still exists, but it now allows more general values,
+ not just strings.  Lists, cons cells and symbols are also meaningful.
+ 
+ The mode line contents are created by outputting various mode elements
+ one after the other.  Here are the kinds of objects that can be
+ used as mode elements, and what they do in the display:
+ 
+   string        the contents of the string are output to the mode line,
+               and %-constructs are replaced by other text.
+ 
+   t or nil    ignored; no output results.
+ 
+   symbol      the symbol's value is used.  If the value is a string,
+               the string is output verbatim to the mode line
+               (so %-constructs are not interpreted).  Otherwise,
+               the symbol's value is processed as a mode element.
+ 
+   list (whose first element is a string or list or cons cell)
+               the elements of the list are treated as as mode elements,
+               so that the output they generate is concatenated,
+ 
+   list (whose car is a symbol)
+               if the symbol's value is non-nil, the second element of the
+               list is treated as a mode element.  Otherwise, the third
+               element (if any) of the list is treated as a mode element.
+ 
+   cons (whose car is a positive integer)
+               the cdr of the cons is used as a mode element, but
+               the text it produces is padded, if necessary, to have
+               at least the width specified by the integer.
+ 
+   cons (whose car is a negative integer)
+               the cdr of the cons is used as a mode element, but
+               the text it produces is truncated, if necessary, to have
+               at most the width specified by the integer.
+ 
+ There is always one mode element to start with, that being the value of
+ `mode-line-format', but if this value is a list then it leads to several
+ more mode elements, which can lead to more, and so on.
+ 
+ There is one new %-construct for mode elements that are strings:
+ `%n' displays ` Narrow' for a buffer that is narrowed.
+ 
+ The default value of `mode-line-format' refers to several other variables.
+ These variables are `mode-name', `mode-line-buffer-identification',
+ `mode-line-process', `mode-line-modified', `global-mode-string' and
+ `minor-mode-alist'.  The first four are local in every buffer in which they
+ are changed from the default.
+ 
+ mode-name     Name of buffer's major mode.  Local in every buffer.
+ 
+ mode-line-buffer-identification
+               Normally the list ("Emacs: %17b"), it is responsible
+               for displaying text to indicate what buffer is being shown
+               and what kind of editing it is doing.  `Emacs' means
+               that a file of characters is being edited.  Major modes
+               such as Info and Dired which edit or view other kinds
+               of data often change this value.  This variables becomes
+               local to the current buffer if it is setq'd.
+ 
+ mode-line-process
+               Normally nil, this variable is responsible for displaying
+               information about the process running in the current buffer.
+               M-x shell-mode and M-x compile alter this variable.
+ 
+ mode-line-modified
+               This variable is responsible for displaying the indication
+               of whether the current buffer is modified or read-only.
+               By default its value is `("--%*%*-")'.
+ 
+ minor-mode-alist
+               This variable is responsible for displaying text for those
+               minor modes that are currently enabled.  Its value
+               is a list of elements of the form (VARIABLE STRING),
+               where STRING is to be displayed if VARIABLE's value
+               (in the buffer whose mode line is being displayed)
+               is non-nil.  This variable is not made local to particular
+               buffers, but loading some libraries may add elements to it.
+ 
+ global-mode-string
+               This variable is used to display the time, if you ask
+               for that.
+ 
+ The idea of these variables is to eliminate the need for major modes
+ to alter mode-line-format itself.
+ 
+ ** `window-point' valid for selected window.
+ 
+ The value returned by `window-point' used to be incorrect when its
+ argument was the selected window.  Now the value is correct.
+ 
+ ** Window configurations may be saved as Lisp objects.
+ 
+ The function `current-window-configuration' returns a special type of
+ Lisp object that represents the current layout of windows: the
+ sizes and positions of windows, which buffers appear in them, and
+ which parts of the buffers appear on the screen.
+ 
+ The function `set-window-configuration' takes one argument, which must
+ be a window configuration object, and restores that configuration.
+ 
+ ** New hook `temp-output-buffer-show-hook'.
+ 
+ This hook allows you to control how help buffers are displayed.
+ Whenever `with-output-to-temp-buffer' has executed its body and wants
+ to display the temp buffer, if this variable is bound and non-`nil'
+ then its value is called with one argument, the temp buffer.
+ The hook function is solely responsible for displaying the buffer.
+ The standard manner of display--making the buffer appear in a window--is
+ used only if there is no hook function.
+ 
+ ** New function `minibuffer-window'.
+ 
+ This function returns the window used (sometimes) for displaying
+ the minibuffer.  It can be used even when the minibuffer is not active.
+ 
+ ** New feature to `next-window'.
+ 
+ If the optional second argument is neither `nil' nor `t', the minibuffer
+ window is omitted from consideration even when active; if the starting
+ window was the last non-minibuffer window, the value will be the first
+ non-minibuffer window.
+ 
+ ** New variable `minibuffer-scroll-window'.
+ 
+ When this variable is non-`nil', the command `scroll-other-window'
+ uses it as the window to be scrolled.  Displays of completion-lists
+ set this variable to the window containing the display.
+ 
+ ** New argument to `sit-for'.
+ 
+ A non-nil second argument to `sit-for' means do not redisplay;
+ just wait for the specified time or until input is available.
+ 
+ ** Deleted function `set-minor-mode'; minor modes must be changed.
+ 
+ The function `set-minor-mode' has been eliminated.  The display
+ of minor mode names in the mode line is now controlled by the
+ variable `minor-mode-alist'.  To specify display of a new minor
+ mode, it is sufficient to add an element to this list.  Once that
+ is done, you can turn the mode on and off just by setting a variable,
+ and the display will show its status automatically.
+ 
+ ** New variable `cursor-in-echo-area'.
+ 
+ If this variable is non-nil, the screen cursor appears on the
+ last line of the screen, at the end of the text displayed there.
+ 
+ Binding this variable to t is useful at times when reading single
+ characters of input with `read-char'.
+ 
+ ** New per-buffer variable `selective-display-ellipses'.
+ 
+ If this variable is non-nil, an ellipsis (`...') appears on the screen
+ at the end of each text line that is followed by invisible text.
+ 
+ If this variable is nil, no ellipses appear.  Then there is no sign
+ on the screen that invisible text is present.
+ 
+ Text is made invisible under the control of the variable
+ `selective-display'; this is how Outline mode and C-x $ work.
+ 
+ ** New variable `no-redraw-on-reenter'.
+ 
+ If you set this variable non-nil, Emacs will not clear the screen when
+ you resume it after suspending it.  This is for the sake of terminals
+ with multiple screens of memory, where the termcap entry has been set
+ up to switch between screens when Emacs is suspended and resumed.
+ 
+ ** New argument to `set-screen-height' or `set-screen-width'.
+ 
+ These functions now take an optional second argument which says
+ what significance the newly specified height or width has.
+ 
+ If the argument is nil, or absent, it means that Emacs should
+ believe that the terminal height or width really is as just specified.
+ 
+ If the argument is t, it means Emacs should not believe that the
+ terminal really is this high or wide, but it should use the
+ specific height or width as the number of lines or columns to display.
+ Thus, you could display only 24 lines on a screen known to have 48 lines.
+ 
+ What practical difference is there between using only 24 lines for display
+ and really believing that the terminal has 24 lines?
+ 
+ 1. The ``real'' height of the terminal says what the terminal command
+ to move the cursor to the last line will do.
+ 
+ 2. The ``real'' height of the terminal determines how much padding is
+ needed.
+ 
+ * File-related changes.
+ 
+ ** New parameter `backup-by-copying-when-mismatch'.
+ 
+ If this variable is non-`nil', then when Emacs is about to save a
+ file, it will create the backup file by copying if that would avoid
+ changing the file's uid or gid.
+ 
+ The default value of this variable is `nil', because usually it is
+ useful to have the uid of a file change according to who edited it
+ last.  I recommend thet this variable be left normally `nil' and
+ changed with a local variables list in those particular files where
+ the uid needs to be preserved.
+ 
+ ** New parameter `file-precious-flag'.
+ 
+ If this variable is non-`nil', saving the buffer tries to avoid
+ leaving an incomplete file due to disk full or other I/O errors.
+ It renames the old file before saving.  If saving is successful,
+ the renamed file is deleted; if saving gets an error, the renamed
+ file is renamed back to the name you visited.
+ 
+ Backups are always made by copying for such files.
+ 
+ ** New variable `buffer-offer-save'.
+ 
+ If the value of this variable is non-`nil' in a buffer then exiting
+ Emacs will offer to save the buffer (if it is modified and nonempty)
+ even if the buffer is not visiting a file.  This variable is
+ automatically made local to the current buffer whenever it is set.
+ 
+ ** `rename-file', `copy-file', `add-name-to-file' and `make-symbolic-link'.
+ 
+ The third argument to these functions used to be `t' or `nil'; `t'
+ meaning go ahead even if the specified new file name already has a file,
+ and `nil' meaning to get an error.
+ 
+ Now if the third argument is a number it means to ask the user for
+ confirmation in this case.
+ 
+ ** New optional argument to `copy-file'.
+ 
+ If `copy-file' receives a non-nil fourth argument, it attempts
+ to give the new copy the same time-of-last-modification that the
+ original file has.
+ 
+ ** New function `file-newer-than-file-p'.
+ 
+ (file-newer-than-file-p FILE1 FILE2) returns non-nil if FILE1 has been
+ modified more recently than FILE2.  If FILE1 does not exist, the value
+ is always nil; otherwise, if FILE2 does not exist, the value is t.
+ This is meant for use when FILE2 depends on FILE1, to see if changes
+ in FILE1 make it necessary to recompute FILE2 from it.
+ 
+ ** Changed function `file-exists-p'.
+ 
+ This function is no longer the same as `file-readable-p'.
+ `file-exists-p' can now return t for a file that exists but which
+ the fascists won't allow you to read.
+ 
+ ** New function `file-locked-p'.
+ 
+ This function receives a file name as argument and returns `nil'
+ if the file is not locked, `t' if locked by this Emacs, or a
+ string giving the name of the user who has locked it.
+ 
+ ** New function `file-name-sans-versions'.
+ 
+ (file-name-sans-versions NAME) returns a substring of NAME, with any
+ version numbers or other backup suffixes deleted from the end.
+ 
+ ** New functions for directory names.
+ 
+ Although a directory is really a kind of file, specifying a directory
+ uses a somewhat different syntax from specifying a file.
+ In Emacs, a directory name is used as part of a file name.
+ 
+ On Unix, the difference is small: a directory name ends in a slash,
+ while a file name does not: thus, `/usr/rms/' to name a directory,
+ while `/usr/rms' names the file which holds that directory.
+ 
+ On VMS, the difference is considerable: `du:[rms.foo]' specifies a
+ directory, but the name of the file that holds that directory is
+ `du:[rms]foo.dir'.
+ 
+ There are two new functions for converting between directory names
+ and file names.  `directory-file-name' takes a directory name and
+ returns the name of the file in which that directory's data is stored.
+ `file-name-as-directory' takes the name of a file and returns
+ the corresponding directory name.  These always understand Unix file name
+ syntax; on VMS, they understand VMS syntax as well.
+ 
+ For example, (file-name-as-directory "/usr/rms") returns "/usr/rms/"
+ and (directory-file-name "/usr/rms/") returns "/usr/rms".
+ On VMS, (file-name-as-directory "du:[rms]foo.dir") returns "du:[rms.foo]"
+ and (directory-file-name "du:[rms.foo]") returns "du:[rms]foo.dir".
+ 
+ ** Value of `file-attributes' changed.
+ 
+ The function file-attributes returns a list containing many kinds of
+ information about a file.  Now the list has eleven elements.
+ 
+ The tenth element is `t' if deleting the file and creating another
+ file of the same name would result in a change in the file's group;
+ `nil' if there would be no change.  You can also think of this as
+ comparing the file's group with the default group for files created in
+ the same directory by you.
+ 
+ The eleventh element is the inode number of the file.
+ 
+ ** VMS-only function `file-name-all-versions'.
+ 
+ This function returns a list of all the completions, including version
+ number, of a specified version-number-less file name.  This is like
+ `file-name-all-completions', except that the latter returns values
+ that do not include version numbers.
+ 
+ ** VMS-only variable `vms-stmlf-recfm'.
+ 
+ On a VMS system, if this variable is non-nil, Emacs will give newly
+ created files the record format `stmlf'.  This is necessary for files
+ that must contain lines of arbitrary length, such as compiled Emacs
+ Lisp.
+ 
+ When writing a new version of an existing file, Emacs always keeps
+ the same record format as the previous version; so this variable has
+ no effect.
+ 
+ This variable has no effect on Unix systems.
+ 
+ ** `insert-file-contents' on an empty file.
+ 
+ This no longer sets the buffer's "modified" flag.
+ 
+ ** New function (VMS only) `define-logical-name':
+ 
+ (define-logical-name LOGICAL TRANSLATION) defines a VMS logical name
+ LOGICAL whose translation is TRANSLATION.  The new name applies to
+ the current process only.
+ 
+ ** Deleted variable `ask-about-buffer-names'.
+ 
+ If you want buffer names for files to be generated in a special way,
+ you must redefine `create-file-buffer'.
+ 
+ * Subprocess-related changes.
+ 
+ ** New function `process-list'.
+ 
+ This function takes no arguments and returns a list of all
+ of Emacs's asynchronous subprocesses.
+ 
+ ** New function `process-exit-status'.
+ 
+ This function, given a process, process name or buffer as argument,
+ returns the exit status code or signal number of the process.
+ If the process has not yet exited or died, this function returns 0.
+ 
+ ** Process output ignores `buffer-read-only'.
+ 
+ Output from a process will go into the process's buffer even if the
+ buffer is read only.
+ 
+ ** Switching buffers in filter functions and sentinels.
+ 
+ Emacs no longer saves and restore the current buffer around calling
+ the filter and sentinel functions, so these functions can now
+ permanently alter the selected buffer in a straightforward manner.
+ 
+ ** Specifying environment variables for subprocesses.
+ 
+ When a subprocess is started with `start-process' or `call-process',
+ the value of the variable `process-environment' is taken to
+ specify the environment variables to give the subprocess.  The
+ value should be a list of strings, each of the form "VAR=VALUE".
+ 
+ `process-environment' is initialized when Emacs starts up
+ based on Emacs's environment.
+ 
+ ** New variable `process-connection-type'.
+ 
+ If this variable is `nil', when a subprocess is created, Emacs uses
+ a pipe rather than a pty to communicate with it.  Normally this
+ variable is `t', telling Emacs to use a pty if ptys are supported
+ and one is available.
+ 
+ ** New function `waiting-for-user-input-p'.
+ 
+ This function, given a subprocess as argument, returns `t' if that
+ subprocess appears to be waiting for input sent from Emacs,
+ or `nil' otherwise.
+ 
+ ** New hook `shell-set-directory-error-hook'.
+ 
+ The value of this variable is called, with no arguments, whenever
+ Shell mode gets an error trying to keep track of directory-setting
+ commands (such as `cd' and `pushd') used in the shell buffer.
+ 
+ * New functions `user-uid' and `user-real-uid'.
+ 
+ These functions take no arguments and return, respectively,
+ the effective uid and the real uid of the Emacs process.
+ The value in each case is an integer.
+ 
+ * New variable `print-escape-newlines' controls string printing.
+ 
+ If this variable is non-`nil', then when a Lisp string is printed
+ by the Lisp printing function `prin1' or `print', newline characters
+ are printed as `\n' rather than as a literal newline.
+ 
+ * New function `sysnetunam' on HPUX.
+ 
+ This function takes two arguments, a network address PATH and a
+ login string LOGIN, and executes the system call `netunam'.
+ It returns `t' if the call succeeds, otherwise `nil'.
+ 
+ News regarding installation:
+ 
+ * Many `s-...' file names changed.
+ 
+ Many `s-...' files have been renamed.  All periods in such names,
+ except the ones just before the final `h', have been changed to
+ hyphens.  Thus, `s-bsd4.2.h' has been renamed to `s-bsd4-2.h'.
+ 
+ This is so a Unix distribution can be moved mechanically to VMS.
+ 
+ * `DOCSTR...' file now called `DOC-...'.
+ 
+ The file of on-line documentation strings, that used to be
+ `DOCSTR.mm.nn.oo' in this directory, is now called `DOC-mm.nn.oo'.
+ This is so that it can port to VMS using the standard conventions
+ for translating filenames for VMS.
+ 
+ This file also now contains the doc strings for variables as
+ well as functions.
+ 
+ * Emacs no longer uses floating point arithmetic.
+ 
+ This may make it easier to port to some machines.
+ 
+ * Macros `XPNTR' and `XSETPNTR'; flag `DATA_SEG_BITS'.
+ 
+ These macros exclusively are used to unpack a pointer from a Lisp_Object
+ and to insert a pointer into a Lisp_Object.  Redefining them may help
+ port Emacs to machines in which all pointers to data objects have
+ certain high bits set.
+ 
+ If `DATA_SEG_BITS' is defined, it should be a number which contains
+ the high bits to be inclusive or'ed with pointers that are unpacked.
+ 
+ * New flag `HAVE_X_MENU'.
+ 
+ Define this flag in `config.h' in addition to `HAVE_X_WINDOWS'
+ to enable use of the Emacs interface to X Menus.  On some operating
+ systems, the rest of the X interface works properly but X Menus
+ do not work; hence this separate flag.  See the file `src/xmenu.c'
+ for more information.
+ 
+ * Macros `ARRAY_MARK_FLAG' and `DONT_COPY_FLAG'.
+ 
+ * `HAVE_ALLOCA' prevents assembly of `alloca.s'.
+ 
+ * `SYSTEM_MALLOC' prevents use of GNU `malloc.c'.
+ 
+ SYSTEM_MALLOC, if defined, means use the system's own `malloc' routines
+ rather than those that come with Emacs.
+ 
+ Use this only if absolutely necessary, because if it is used you do
+ not get warnings when space is getting low.
+ 
+ * New flags to control unexec.
+ 
+ See the file `unexec.c' for a long comment on the compilation
+ switches that suffice to make it work on many machines.
+ 
+ * `PNTR_COMPARISON_TYPE'
+ 
+ Pointers that need to be compared for ordering are converted to this type
+ first.  Normally this is `unsigned int'.
+ 
+ * `HAVE_VFORK', `HAVE_DUP2' and `HAVE_GETTIMEOFDAY'.
+ 
+ These flags just say whether certain system calls are available.
+ 
+ * New macros control compiler switches, linker switches and libraries.
+ 
+ The m- and s- files can now control in a modular fashion the precise
+ arguments passed to `cc' and `ld'.
+ 
+ LIBS_STANDARD defines the standard C libraries.  Default is `-lc'.
+ LIBS_DEBUG defines the extra libraries to use when debugging.  Default `-lg'.
+ LIBS_SYSTEM can be defined by the s- file to specify extra libraries.
+ LIBS_MACHINE can be defined by the m- file to specify extra libraries.
+ LIBS_TERMCAP defines the libraries for Termcap or Terminfo.
+   It is defined by default in a complicated fashion but the m- or s- file
+   can override it.
+ 
+ LD_SWITCH_SYSTEM can be defined by the s- file to specify extra `ld' switches.
+   The default is `-X' on BSD systems except those few that use COFF object 
files.
+ LD_SWITCH_MACHINE can be defined by the m- file to specify extra `ld' 
switches.
+ 
+ C_DEBUG_SWITCH defines the switches to give `cc' when debugging.  Default 
`-g'.
+ C_OPTIMIZE_SWITCH defines the switches to give `cc' to optimize.  Default 
`-O'.
+ C_SWITCH_MACHINE can be defined by the m- file to specify extra `cc' switches.
+ 
+ For older news, see the file ONEWS.2.
+ 
+ ----------------------------------------------------------------------
+ Copyright information:
+ 
+ Copyright (C) 1988 Free Software Foundation, Inc.
+ 
+    Permission is granted to anyone to make or distribute verbatim copies
+    of this document as received, in any medium, provided that the
+    copyright notice and this permission notice are preserved,
+    thus giving the recipient permission to redistribute in turn.
+ 
+    Permission is granted to distribute modified versions
+    of this document, or of portions of it,
+    under the above conditions, provided also that they
+    carry prominent notices stating who last changed them.
+ 
+ Local variables:
+ mode: text
+ end:
+ 
+ arch-tag: 8fed393b-c9c5-47d1-afbb-c0e7a135094a




reply via email to

[Prev in Thread] Current Thread [Next in Thread]