123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 |
- GNU Emacs NEWS -- history of user-visible changes. 12-Jun-1986
- Copyright (C) 1986 Richard M. Stallman.
- See the end for copying conditions.
- Changes in Emacs 18
- * Additional systems and machines are supported.
- GNU Emacs now runs on Vax VMS (Vomit Making System). However,
- many facilities that are normally implemented by running subprocesses
- do not work yet. This includes listing a directory and sending mail.
- In addition, the TI Nu machine running Unix system V, and the Masscomp
- and Gould Unix systems are now supported. The IBM PC-RT is supported,
- under 4.2, but not yet under system V.
- * Display changes.
- 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
- Emacs will usually attempt to scroll the text so that display starts
- at the beginning of a line again.
- * File 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 that file, exactly, with no searching and no suffixes.
- * `tags-query-replace' and `tags-search' changes
- These functions now display the name of the file being searched at the moment.
- * 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.
- * 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.
- * 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.
- 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.
- * 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.
- * 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.
- * 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'.
- * mh-e changes.
- A new version of mh-e is installed. I do not know how it differs
- from the old one; but then, I don't know how to use the old one.
- * Outline mode changes.
- 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.
- * 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.
- * 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.
- * 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 `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-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".
- * 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 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.
- * 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.
- * 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.
- * 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.
- * 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.
- For older news, see the file ONEWS.
- ----------------------------------------------------------------------
- Copyright information:
- Copyright (C) 1986 Richard M. Stallman
- 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:
|