diff-NEWS.~11~ 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343
  1. GNU Emacs NEWS -- history of user-visible changes. 12-Jun-1986
  2. Copyright (C) 1986 Richard M. Stallman.
  3. See the end for copying conditions.
  4. Changes in Emacs 18
  5. * Additional systems and machines are supported.
  6. GNU Emacs now runs on Vax VMS (Vomit Making System). However,
  7. many facilities that are normally implemented by running subprocesses
  8. do not work yet. This includes listing a directory and sending mail.
  9. In addition, the TI Nu machine running Unix system V, and the Masscomp
  10. and Gould Unix systems are now supported. The IBM PC-RT is supported,
  11. under 4.2, but not yet under system V.
  12. * Display changes.
  13. When you delete or kill or alter text that reaches to the top of the screen or
  14. above it, so that display would start in the middle of a line, Emacs
  15. Emacs will usually attempt to scroll the text so that display starts
  16. at the beginning of a line again.
  17. * File loading changes.
  18. `load' now considers all possible suffixes (`.elc', `.el' and none)
  19. for each directory in `load-path' before going on to the next directory.
  20. It now accepts an optional fourth argument which, if non-nil, says to
  21. use no suffixes; then the file name must be given in full. The search
  22. of the directories in `load-path' goes on as usual in this case; but
  23. it too can be prevented by passing an absolute file name.
  24. The value of `load-path' no longer by default includes nil (meaning to
  25. look in the current default directory). The idea is that `load' should
  26. be used to search the path only for libraries to be found in the standard
  27. places. If you want to override system libraries with your own, place
  28. your own libraries in one special directory and add that directory to the
  29. front of `load-path'.
  30. The function `load' is no longer a command; that is to say, `M-x load'
  31. is no longer allowed. Instead, there are two commands for loading files.
  32. `M-x load-library' is equivalent to the old meaning of `M-x load'.
  33. `M-x load-file' reads a file name with completion and defaulting
  34. and then loads that file, exactly, with no searching and no suffixes.
  35. * `tags-query-replace' and `tags-search' changes
  36. These functions now display the name of the file being searched at the moment.
  37. * C-M-v in minibuffer.
  38. If while in the minibuffer you request help in a way that uses a
  39. window to display something, then until you exit the minibuffer C-M-v
  40. in the minibuffer window scrolls the window of help.
  41. For example, if you request a list of possible completions, C-M-v can
  42. be used reliably to scroll the completion list.
  43. * C mode indentation change.
  44. The binding of Linefeed is no longer changed by C mode. It once again
  45. has its normal meaning, which is to insert a newline and then indent
  46. afterward.
  47. The old definition did one additional thing: it reindented the line
  48. before the new newline. This has been removed because it made the
  49. command twice as slow. The only time it was really useful was after the
  50. insertion of an `else', since the fact of starting with `else' may change
  51. the way that line is indented. Now you will have to type TAB again
  52. yourself to reindent the `else' properly.
  53. * C-x C-v generalized
  54. This command is now allowed even if the current buffer is not visiting
  55. a file. As usual, it kills the current buffer and replaces it with a
  56. newly found file.
  57. * M-x recover-file improved.
  58. M-x recover-file now checks whether the last auto-save file is more
  59. recent than the real visited file before offering to read in the
  60. auto-save file. If the auto-save file is newer, a directory listing
  61. containing the two files is displayed while you are asked whether you
  62. want the auto save file.
  63. * Telnet mode changes.
  64. The telnet mode special commands have now been assigned to C-c keys.
  65. Most of them are the same as in Shell mode.
  66. * Picture mode changes.
  67. The special picture-mode commands to specify the direction of cursor
  68. motion after insertion have been moved to C-c keys. The commands to
  69. specify diagonal motion were already C-c keys; they are unchanged.
  70. The keys to specify horizontal or vertical motion are now
  71. C-c < (left), C-c > (right), C-c ^ (up) and C-c . (down).
  72. * Nroff mode comments.
  73. Comments are now supported in Nroff mode. The standard comment commands
  74. such as M-; and C-x ; know how to insert, align and delete comments
  75. that start with backslash-doublequote.
  76. * Modifying a buffer whose file is changed on disk is detected instantly.
  77. On systems where clash detection (locking of files being edited) is
  78. implemented, Emacs also checks the first time you modify a buffer
  79. whether the file has changed on disk since it was last visited or saved.
  80. If it has, you are asked to confirm that you want to change the buffer.
  81. * New support for keypads and function keys.
  82. There is now a first attempt at terminal-independent support for
  83. keypad and function keys.
  84. Emacs now defines a standard set of key-names for function and keypad
  85. keys, and provides standard hooks for defining them. Most of the
  86. standard key-names have default definitions built into Emacs; you can
  87. override these in a terminal-independent manner. The default definitions
  88. and the conventions for redefining them are in the file `lisp/keypad.el'.
  89. These keys on the terminal normally work by sending sequences of
  90. characters starting with ESC. The exact sequences used vary from
  91. terminal to terminal. Emacs interprets them in two stages:
  92. in the first stage, terminal-dependent sequences are mapped into
  93. the standard key-names; then second stage maps the standard key-names
  94. into their definitions in a terminal-independent fashion.
  95. The terminal-specific file `term/$TERM.el' now is responsible only for
  96. establishing the mapping from the terminal's escape sequences into
  97. standard key-names. It no longer knows what Emacs commands are
  98. assigned to the standard key-names.
  99. One other change in terminal-specific files: if the value of the TERM
  100. variable contains a hyphen, only the part before the first hyphen is
  101. used in forming the name of the terminal-specific file. Thus, for
  102. terminal type `aaa-48', the file loaded is now `term/aaa.el' rather
  103. than `term/aaa-48.el'.
  104. * mh-e changes.
  105. A new version of mh-e is installed. I do not know how it differs
  106. from the old one; but then, I don't know how to use the old one.
  107. * Outline mode changes.
  108. The special outline heading motion commands are now all on C-c keys.
  109. A few new ones have been added. Here is a full list:
  110. C-c C-n Move to next visible heading (formerly M-})
  111. C-c C-p Move to previous visible heading (formerly M-{)
  112. C-c C-f Move to next visible heading at the same level.
  113. Thus, if point is on a level-2 heading line,
  114. this command moves to the next visible level-2 heading.
  115. C-c C-b Move to previous visible heading at the same level.
  116. C-c C-u Move up to previous visible heading at a higher level.
  117. * Backup file changes.
  118. If a backup file cannot be written in the directory of the visited file
  119. due to fascist file protection, a backup file is now written in your home
  120. directory as `~/-backup-'. Only one such file is made, ever, so only
  121. the most recently made such backup is available.
  122. When backup files are made by copying, the last-modification time of the
  123. original file is now preserved in the backup copy.
  124. * Init file changes.
  125. ** Suffixes no longer accepted on `.emacs'.
  126. Emacs will no longer load a file named `.emacs.el' or `emacs.elc'
  127. in place of `.emacs'. This is so that it will take less time to
  128. find `.emacs'. If you want to compile your init file, give it another
  129. name and make `.emacs' a link to the `.elc' file, or make it contain
  130. a call to `load' to load the `.elc' file.
  131. ** `default-profile' renamed to `default', and loaded after `.emacs'.
  132. It used to be the case that the file `default-profile' was loaded if
  133. and only if `.emacs' was not found.
  134. Now the name `default-profile' is not used at all. Instead, a library
  135. named `default' is loaded after the `.emacs' file. `default' is loaded
  136. whether the `.emacs' file exists or not. However, loading of `default'
  137. can be prevented if the `.emacs' file sets `inhibit-default-init' to non-nil.
  138. In fact, you would call the default file `default.el' and probably would
  139. byte-compile it to speed execution.
  140. Note that for most purposes you are better off using a `site-init' library
  141. since that will be loaded before the runnable Emacs is dumped. By using
  142. a `site-init' library, you avoid taking up time each time Emacs is started.
  143. ** inhibit-command-line has been eliminated.
  144. This variable used to exist for .emacs files to set. It has been
  145. eliminated because you can get the same effect by setting
  146. command-line-args to nil and setting inhibit-startup-message to t.
  147. * New function `substitute-key-definition'.
  148. This is a new way to replace one command with another command as the
  149. binding of whatever keys may happen to refer to it.
  150. (substitute-key-definition OLDDEF NEWDEF KEYMAP) looks through KEYMAP
  151. for keys defined to run OLDDEF, and rebinds those keys to run NEWDEF
  152. instead.
  153. * New function `file-newer-than-file-p'.
  154. (file-newer-than-file-p FILE1 FILE2) returns non-nil if FILE1 has been
  155. modified more recently than FILE2. If FILE1 does not exist, the value
  156. is always nil; otherwise, if FILE2 does not exist, the value is t.
  157. This is meant for use when FILE2 depends on FILE1, to see if changes
  158. in FILE1 make it necessary to recompute FILE2 from it.
  159. * Changed function `file-exists-p'.
  160. This function is no longer the same as `file-readable-p'.
  161. `file-exists-p' can now return t for a file that exists but which
  162. the fascists won't allow you to read.
  163. * New function `file-name-sans-versions'.
  164. (file-name-sans-versions NAME) returns a substring of NAME, with any
  165. version numbers or other backup suffixes deleted from the end.
  166. * New functions for directory names.
  167. Although a directory is really a kind of file, specifying a directory
  168. uses a somewhat different syntax from specifying a file.
  169. In Emacs, a directory name is used as part of a file name.
  170. On Unix, the difference is small: a directory name ends in a slash,
  171. while a file name does not: thus, `/usr/rms/' to name a directory,
  172. while `/usr/rms' names the file which holds that directory.
  173. On VMS, the difference is considerable: `du:[rms.foo]' specifies a
  174. directory, but the name of the file that holds that directory is
  175. `du:[rms]foo.dir'.
  176. There are two new functions for converting between directory names
  177. and file names. `directory-file-name' takes a directory name and
  178. returns the name of the file in which that directory's data is stored.
  179. `file-name-as-directory' takes the name of a file and returns
  180. the corresponding directory name. These always understand Unix file name
  181. syntax; on VMS, they understand VMS syntax as well.
  182. For example, (file-name-as-directory "/usr/rms") returns "/usr/rms/"
  183. and (directory-file-name "/usr/rms/") returns "/usr/rms".
  184. On VMS, (file-name-as-directory "du:[rms]foo.dir") returns "du:[rms.foo]"
  185. and (directory-file-name "du:[rms.foo]") returns "du:[rms]foo.dir".
  186. * New optional argument to `copy-file'.
  187. If `copy-file' receives a non-nil fourth argument, it attempts
  188. to give the new copy the same time-of-last-modification that the
  189. original file has.
  190. * New argument to `set-screen-height' or `set-screen-width'.
  191. These functions now take an optional second argument which says
  192. what significance the newly specified height or width has.
  193. If the argument is nil, or absent, it means that Emacs should
  194. believe that the terminal height or width really is as just specified.
  195. If the argument is t, it means Emacs should not believe that the
  196. terminal really is this high or wide, but it should use the
  197. specific height or width as the number of lines or columns to display.
  198. Thus, you could display only 24 lines on a screen known to have 48 lines.
  199. What practical difference is there between using only 24 lines for display
  200. and really believing that the terminal has 24 lines?
  201. 1. The ``real'' height of the terminal says what the terminal command
  202. to move the cursor to the last line will do.
  203. 2. The ``real'' height of the terminal determines how much padding is
  204. needed.
  205. * New function (VMS only) `define-logical-name':
  206. (define-logical-name LOGICAL TRANSLATION) defines a VMS logical name
  207. LOGICAL whose translation is TRANSLATION. The new name applies to
  208. the current process only.
  209. * New function `process-exit-status'.
  210. This function, given a process, process name or buffer as argument,
  211. returns the exit status code or signal number of the process.
  212. If the process has not yet exited or died, this function returns 0.
  213. * New code-letter for `interactive'.
  214. (interactive "NFoo: ") is like (interactive "nFoo: ") in reading
  215. a number using the minibuffer to serve as the argument; however,
  216. if a prefix argument was specified, it uses the prefix argument
  217. value as the argument, and does not use the minibuffer at all.
  218. This is used by the `goto-line' and `goto-char' commands.
  219. * New per-buffer variable `selective-display-ellipses'.
  220. If this variable is non-nil, an ellipsis (`...') appears on the screen
  221. at the end of each text line that is followed by invisible text.
  222. If this variable is nil, no ellipses appear. Then there is no sign
  223. on the screen that invisible text is present.
  224. Text is made invisible under the control of the variable
  225. `selective-display'; this is how Outline mode and C-x $ work.
  226. * New variable `no-redraw-on-reenter'.
  227. If you set this variable non-nil, Emacs will not clear the screen when
  228. you resume it after suspending it. This is for the sake of terminals
  229. with multiple screens of memory, where the termcap entry has been set
  230. up to switch between screens when Emacs is suspended and resumed.
  231. For older news, see the file ONEWS.
  232. ----------------------------------------------------------------------
  233. Copyright information:
  234. Copyright (C) 1986 Richard M. Stallman
  235. Permission is granted to anyone to make or distribute verbatim copies
  236. of this document as received, in any medium, provided that the
  237. copyright notice and this permission notice are preserved,
  238. thus giving the recipient permission to redistribute in turn.
  239. Permission is granted to distribute modified versions
  240. of this document, or of portions of it,
  241. under the above conditions, provided also that they
  242. carry prominent notices stating who last changed them.
  243. Local variables:
  244. mode: text
  245. end: