diff options
| author | Gerd Moellmann | 2000-08-17 15:38:59 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2000-08-17 15:38:59 +0000 |
| commit | 3787e12e9d324207d442b035b066ccec5e10936c (patch) | |
| tree | a87a49954be68523f5cf60ebcf8466b88d803ed2 /etc/NEWS.2 | |
| parent | aff3bff87b8f7c4a6a25378084269f4318ef240c (diff) | |
| download | emacs-3787e12e9d324207d442b035b066ccec5e10936c.tar.gz emacs-3787e12e9d324207d442b035b066ccec5e10936c.zip | |
*** empty log message ***
Diffstat (limited to 'etc/NEWS.2')
| -rw-r--r-- | etc/NEWS.2 | 1348 |
1 files changed, 1348 insertions, 0 deletions
diff --git a/etc/NEWS.2 b/etc/NEWS.2 new file mode 100644 index 00000000000..96dabd85968 --- /dev/null +++ b/etc/NEWS.2 | |||
| @@ -0,0 +1,1348 @@ | |||
| 1 | GNU Emacs NEWS -- history of user-visible changes. 26-Mar-1986 | ||
| 2 | Copyright (C) 1986 Richard M. Stallman. | ||
| 3 | See the end for copying conditions. | ||
| 4 | |||
| 5 | For older news, see the file NEWS.1. | ||
| 6 | |||
| 7 | Changes in Emacs 17 | ||
| 8 | |||
| 9 | * Frustrated? | ||
| 10 | |||
| 11 | Try M-x doctor. | ||
| 12 | |||
| 13 | * Bored? | ||
| 14 | |||
| 15 | Try M-x hanoi. | ||
| 16 | |||
| 17 | * Brain-damaged? | ||
| 18 | |||
| 19 | Try M-x yow. | ||
| 20 | |||
| 21 | * Sun3, Tahoe, Apollo, HP9000s300, Celerity, NCR Tower 32, | ||
| 22 | Sequent, Stride, Encore, Plexus and AT&T 7300 machines supported. | ||
| 23 | |||
| 24 | The Tahoe, Sun3, Sequent and Celerity use 4.2. In regard to the | ||
| 25 | Apollo, see the file APOLLO in this directory. NCR Tower32, | ||
| 26 | HP9000s300, Stride and Nu run forms of System V. System V rel 2 also | ||
| 27 | works on Vaxes now. See etc/MACHINES. | ||
| 28 | |||
| 29 | * System V Unix supported, including subprocesses. | ||
| 30 | |||
| 31 | It should be possible now to bring up Emacs on a machine running | ||
| 32 | mere unameliorated system V Unix with no major work; just possible bug | ||
| 33 | fixes. But you can expect to find a handful of those on any machine | ||
| 34 | that Emacs has not been run on before. | ||
| 35 | |||
| 36 | * Berkeley 4.1 Unix supported. | ||
| 37 | |||
| 38 | See etc/MACHINES. | ||
| 39 | |||
| 40 | * Portable `alloca' provided. | ||
| 41 | |||
| 42 | Emacs can now run on machines that do not and cannot support the library | ||
| 43 | subroutine `alloca' in the canonical fashion, using an `alloca' emulation | ||
| 44 | written in C. | ||
| 45 | |||
| 46 | * On-line manual. | ||
| 47 | |||
| 48 | Info now contains an Emacs manual, with essentially the same text | ||
| 49 | as in the printed manual. | ||
| 50 | |||
| 51 | The manual can now be printed with a standard TeX. | ||
| 52 | |||
| 53 | Nicely typeset and printed copies of the manual are available | ||
| 54 | from the Free Software Foundation. | ||
| 55 | |||
| 56 | * Backup file version numbers. | ||
| 57 | |||
| 58 | Emacs now supports version numbers in backup files. | ||
| 59 | |||
| 60 | The first time you save a particular file in one editing session, | ||
| 61 | the old file is copied or renamed to serve as a backup file. | ||
| 62 | In the past, the name for the backup file was made by appending `~' | ||
| 63 | to the end of the original file name. | ||
| 64 | |||
| 65 | Now the backup file name can instead be made by appending ".~NN~" to | ||
| 66 | the original file name, where NN stands for a numeric version. Each | ||
| 67 | time this is done, the new version number is one higher than the | ||
| 68 | highest previously used. | ||
| 69 | |||
| 70 | Thus, the active, current file does not have a version number. | ||
| 71 | Only the backups have them. | ||
| 72 | |||
| 73 | This feature is controlled by the variable `version-control'. If it | ||
| 74 | is `nil', as normally, then numbered backups are made only for files | ||
| 75 | that already have numbered backups. Backup names with just `~' are | ||
| 76 | used for files that have no numbered backups. | ||
| 77 | |||
| 78 | If `version-control' is `never', then the backup file's name is | ||
| 79 | made with just `~' in any case. | ||
| 80 | |||
| 81 | If `version-control' is not `nil' or `never', numbered backups are | ||
| 82 | made unconditionally. | ||
| 83 | |||
| 84 | To prevent unlimited consumption of disk space, Emacs can delete | ||
| 85 | old backup versions automatically. Generally Emacs keeps the first | ||
| 86 | few backups and the latest few backups, deleting any in between. | ||
| 87 | This happens every time a new backup is made. The two variables that | ||
| 88 | control the deletion are `kept-old-versions' and `kept-new-versions'. | ||
| 89 | Their values are, respectively, the number of oldest backups to keep | ||
| 90 | and the number of newest ones to keep, each time a new backup is made. | ||
| 91 | The value of `kept-new-versions' includes the backup just created. | ||
| 92 | By default, both values are 2. | ||
| 93 | |||
| 94 | If `trim-versions-without-asking' is non-`nil', the excess middle versions | ||
| 95 | are deleted without a murmur. If it is `nil', the default, then you | ||
| 96 | are asked whether the excess middle versions should really be deleted. | ||
| 97 | |||
| 98 | Dired has a new command `.' which marks for deletion all but the latest | ||
| 99 | and oldest few of every numeric series of backups. `kept-old-versions' | ||
| 100 | controls the number of oldest versions to keep, and `dired-kept-versions' | ||
| 101 | controls the number of latest versions to keep. A numeric argument to | ||
| 102 | the `.' command, if positive, specifies the number of latest versions | ||
| 103 | to keep, overriding `dired-kept-versions'. A negative argument specifies | ||
| 104 | the number of oldest versions to keep, using minus the argument to override | ||
| 105 | `kept-old-versions'. | ||
| 106 | |||
| 107 | * Immediate conflict detection. | ||
| 108 | |||
| 109 | Emacs now locks the files it is modifying, so that if | ||
| 110 | you start to modify within Emacs a file that is being | ||
| 111 | modified in another Emacs, you get an immediate warning. | ||
| 112 | |||
| 113 | The warning gives you three choices: | ||
| 114 | 1. Give up, and do not make any changes. | ||
| 115 | 2. Make changes anyway at your own risk. | ||
| 116 | 3. Make changes anyway, and record yourself as | ||
| 117 | the person locking the file (instead of whoever | ||
| 118 | was previously recorded.) | ||
| 119 | |||
| 120 | Just visiting a file does not lock it. It is locked | ||
| 121 | when you try to change the buffer that is visiting the file. | ||
| 122 | Saving the file unlocks it until you make another change. | ||
| 123 | |||
| 124 | Locking is done by writing a lock file in a special designated | ||
| 125 | directory. If such a directory is not provided and told to | ||
| 126 | Emacs as part of configuring it for your machine, the lock feature | ||
| 127 | is turned off. | ||
| 128 | |||
| 129 | * M-x recover-file. | ||
| 130 | |||
| 131 | This command is used to get a file back from an auto-save | ||
| 132 | (after a system crash, for example). It takes a file name | ||
| 133 | as argument and visits that file, but gets the data from the | ||
| 134 | file's last auto save rather than from the file itself. | ||
| 135 | |||
| 136 | * M-x normal-mode. | ||
| 137 | |||
| 138 | This command resets the current buffer's major mode and local | ||
| 139 | variables to be as specified by the visit filename, the -*- line | ||
| 140 | and/or the Local Variables: block at the end of the buffer. | ||
| 141 | It is the same thing normally done when a file is first visited. | ||
| 142 | |||
| 143 | * Echo area messages disappear shortly if minibuffer is in use. | ||
| 144 | |||
| 145 | Any message in the echo area disappears after 2 seconds | ||
| 146 | if the minibuffer is active. This allows the minibuffer | ||
| 147 | to become visible again. | ||
| 148 | |||
| 149 | * C-z on System V runs a subshell. | ||
| 150 | |||
| 151 | On systems which do not allow programs to be suspended, the C-z command | ||
| 152 | forks a subshell that talks directly to the terminal, and then waits | ||
| 153 | for the subshell to exit. This gets almost the effect of suspending | ||
| 154 | in that you can run other programs and then return to Emacs. However, | ||
| 155 | you cannot log out from the subshell. | ||
| 156 | |||
| 157 | * C-c is always a prefix character. | ||
| 158 | |||
| 159 | Also, subcommands of C-c which are letters are always | ||
| 160 | reserved for the user. No standard Emacs major mode | ||
| 161 | defines any of them. | ||
| 162 | |||
| 163 | * Picture mode C-c commands changed. | ||
| 164 | |||
| 165 | The old C-c k command is now C-c C-w. | ||
| 166 | The old C-c y command is now C-c C-x. | ||
| 167 | |||
| 168 | * Shell mode commands changed. | ||
| 169 | |||
| 170 | All the special commands of Shell mode are now moved onto | ||
| 171 | the C-c prefix. Most are not changed aside from that. | ||
| 172 | Thus, the old Shell mode C-c command (kill current job) | ||
| 173 | is now C-c C-c; the old C-z (suspend current job) is now C-c C-z, | ||
| 174 | etc. | ||
| 175 | |||
| 176 | The old C-x commands are now C-c commands. C-x C-k (kill output) | ||
| 177 | is now C-c C-o, and C-x C-v (show output) is now C-c C-r. | ||
| 178 | |||
| 179 | The old M-= (copy previous input) command is now C-c C-y. | ||
| 180 | |||
| 181 | * Shell mode recognizes aliases for `pushd', `popd' and `cd'. | ||
| 182 | |||
| 183 | Shell mode now uses the variable `shell-pushd-regexp' as a | ||
| 184 | regular expression to recognize any command name that is | ||
| 185 | equivalent to a `pushd' command. By default it is set up | ||
| 186 | to recognize just `pushd' itself. If you use aliases for | ||
| 187 | `pushd', change the regexp to recognize them as well. | ||
| 188 | |||
| 189 | There are also `shell-popd-regexp' to recognize commands | ||
| 190 | with the effect of a `popd', and `shell-cd-regexp' to recognize | ||
| 191 | commands with the effect of a `cd'. | ||
| 192 | |||
| 193 | * "Exit" command in certain modes now C-c C-c. | ||
| 194 | |||
| 195 | These include electric buffer menu mode, electric command history | ||
| 196 | mode, Info node edit mode, and Rmail edit mode. In all these | ||
| 197 | modes, the command to exit used to be just C-c. | ||
| 198 | |||
| 199 | * Outline mode changes. | ||
| 200 | |||
| 201 | Lines that are not heading lines are now called "body" lines. | ||
| 202 | The command `hide-text' is renamed to `hide-body'. | ||
| 203 | The key M-H is renamed to C-c C-h. | ||
| 204 | The key M-S is renamed to C-c C-s. | ||
| 205 | The key M-s is renamed to C-c C-i. | ||
| 206 | |||
| 207 | Changes of line visibility are no longer undoable. As a result, | ||
| 208 | they no longer use up undo memory and no longer interfere with | ||
| 209 | undoing earlier commands. | ||
| 210 | |||
| 211 | * Rmail changes. | ||
| 212 | |||
| 213 | The s and q commands now both expunge deleted messages before saving; | ||
| 214 | use C-x C-s to save without expunging. | ||
| 215 | |||
| 216 | The u command now undeletes the current message if it is deleted; | ||
| 217 | otherwise, it backs up as far as necessary to reach a deleted message, | ||
| 218 | and undeletes that one. The u command in the summary behaves likewise, | ||
| 219 | but considers only messages listed in the summary. The M-u command | ||
| 220 | has been eliminated. | ||
| 221 | |||
| 222 | The o and C-o keys' meanings are interchanged. | ||
| 223 | o now outputs to an Rmail file, and C-o to a Unix mail file. | ||
| 224 | |||
| 225 | The F command (rmail-find) is renamed to M-s (rmail-search). | ||
| 226 | Various new commands and features exist; see the Emacs manual. | ||
| 227 | |||
| 228 | * Local bindings described first in describe-bindings. | ||
| 229 | |||
| 230 | * [...], {...} now balance in Fundamental mode. | ||
| 231 | |||
| 232 | * Nroff mode and TeX mode. | ||
| 233 | |||
| 234 | The are two new major modes for editing nroff input and TeX input. | ||
| 235 | See the Emacs manual for full information. | ||
| 236 | |||
| 237 | * New C indentation style variable `c-brace-imaginary-offset'. | ||
| 238 | |||
| 239 | The value of `c-brace-imaginary-offset', normally zero, controls the | ||
| 240 | indentation of a statement inside a brace-group where the open-brace | ||
| 241 | is not the first thing on a line. The value says where the open-brace | ||
| 242 | is imagined to be, relative to the first nonblank character on the line. | ||
| 243 | |||
| 244 | * Dired improvements. | ||
| 245 | |||
| 246 | Dired now normally keeps the cursor at the beginning of the file name, | ||
| 247 | not at the beginning of the line. The most used motion commands are | ||
| 248 | redefined in Dired to position the cursor this way. | ||
| 249 | |||
| 250 | `n' and `p' are now equivalent in dired to `C-n' and `C-p'. | ||
| 251 | |||
| 252 | If any files to be deleted cannot be deleted, their names are | ||
| 253 | printed in an error message. | ||
| 254 | |||
| 255 | If the `v' command is invoked on a file which is a directory, | ||
| 256 | dired is run on that directory. | ||
| 257 | |||
| 258 | * `visit-tag-table' renamed `visit-tags-table'. | ||
| 259 | |||
| 260 | This is so apropos of `tags' finds everything you need to | ||
| 261 | know about in connection with Tags. | ||
| 262 | |||
| 263 | * `mh-e' library uses C-c as prefix. | ||
| 264 | |||
| 265 | All the special commands of `mh-rmail' now are placed on a | ||
| 266 | C-c prefix rather than on the C-x prefix. This is for | ||
| 267 | consistency with other special modes with their own commands. | ||
| 268 | |||
| 269 | * M-$ or `spell-word' checks word before point. | ||
| 270 | |||
| 271 | It used to check the word after point. | ||
| 272 | |||
| 273 | * Quitting during autoloading no longer causes trouble. | ||
| 274 | |||
| 275 | Now, when a file is autoloaded, all function redefinitions | ||
| 276 | and `provide' calls are recorded and are undone if you quit | ||
| 277 | before the file is finished loading. | ||
| 278 | |||
| 279 | As a result, it no longer happens that some of the entry points | ||
| 280 | which are normally autoloading have been defined already, but the | ||
| 281 | entire file is not really present to support them. | ||
| 282 | |||
| 283 | * `else' can now be indented correctly in C mode. | ||
| 284 | |||
| 285 | TAB in C mode now knows which `if' statement an `else' matches | ||
| 286 | up with, and can indent the `else' correctly under the `if', | ||
| 287 | even if the `if' contained such things as another `if' statement, | ||
| 288 | or a `while' or `for' statement, with no braces around it. | ||
| 289 | |||
| 290 | * `batch-byte-compile' | ||
| 291 | |||
| 292 | Runs byte-compile-file on the files specified on the command line. | ||
| 293 | All the rest of the command line arguments are taken as files to | ||
| 294 | compile (or, if directories, to do byte-recompile-directory on). | ||
| 295 | Must be used only with -batch, and kills emacs on completion. | ||
| 296 | Each file will be processed even if an error occurred previously. | ||
| 297 | For example, invoke `emacs -batch -f batch-byte-compile *.el'. | ||
| 298 | |||
| 299 | * `-batch' changes. | ||
| 300 | |||
| 301 | `-batch' now implies `-q': no init file is loaded by Emacs when | ||
| 302 | `-batch' is used. Also, no `term/TERMTYPE.el' file is loaded. Auto | ||
| 303 | saving is not done except in buffers in which it is explicitly | ||
| 304 | requested. Also, many echo-area printouts describing what is going on | ||
| 305 | are inhibited in batch mode, so that the only output you get is the | ||
| 306 | output you program specifically. | ||
| 307 | |||
| 308 | One echo-area message that is not suppressed is the one that says | ||
| 309 | that a file is being loaded. That is because you can prevent this | ||
| 310 | message by passing `t' as the third argument to `load'. | ||
| 311 | |||
| 312 | * Display of search string in incremental search. | ||
| 313 | |||
| 314 | Now, when you type C-s or C-r to reuse the previous search | ||
| 315 | string, that search string is displayed immediately in the echo area. | ||
| 316 | |||
| 317 | Three dots are displayed after the search string while search | ||
| 318 | is actually going on. | ||
| 319 | |||
| 320 | * View commands. | ||
| 321 | |||
| 322 | The commands C-x ], C-x [, C-x /, C-x j and C-x o are now | ||
| 323 | available inside `view-buffer' and `view-file', with their | ||
| 324 | normal meanings. | ||
| 325 | |||
| 326 | * Full-width windows preferred. | ||
| 327 | |||
| 328 | The ``other-window'' commands prefer other full width windows, | ||
| 329 | and will split only full width windows. | ||
| 330 | |||
| 331 | * M-x rename-file can copy if necessary. | ||
| 332 | |||
| 333 | When used between different file systems, since actual renaming does | ||
| 334 | not work, the old file will be copied and deleted. | ||
| 335 | |||
| 336 | * Within C-x ESC, you can pick the command to repeat. | ||
| 337 | |||
| 338 | While editing a previous command to be repeated, inside C-x ESC, | ||
| 339 | you can now use the commands M-p and M-n to pick an earlier or | ||
| 340 | later command to repeat. M-n picks the next earlier command | ||
| 341 | and M-p picks the next later one. The new command appears in | ||
| 342 | the minibuffer, and you can go ahead and edit it, and repeat it | ||
| 343 | when you exit the minibuffer. | ||
| 344 | |||
| 345 | Using M-n or M-p within C-x ESC is like having used a different | ||
| 346 | numeric argument when you ran C-x ESC in the first place. | ||
| 347 | |||
| 348 | The command you finally execute using C-x ESC is added to the | ||
| 349 | front of the command history, unless it is identical with the | ||
| 350 | first thing in the command history. | ||
| 351 | |||
| 352 | * Use C-c C-c to exit from editing within Info. | ||
| 353 | |||
| 354 | It used to be C-z for this. Somehow this use of C-z was | ||
| 355 | left out when all the others were moved. The intention is that | ||
| 356 | C-z should always suspend Emacs. | ||
| 357 | |||
| 358 | * Default arg to C-x < and C-x > now window width minus 2. | ||
| 359 | |||
| 360 | These commands, which scroll the current window horizontally | ||
| 361 | by a specified number of columns, now scroll a considerable | ||
| 362 | distance rather than a single column if used with no argument. | ||
| 363 | |||
| 364 | * Auto Save Files Deleted. | ||
| 365 | |||
| 366 | The default value of `delete-auto-save-files' is now `t', so that | ||
| 367 | when you save a file for real, its auto save file is deleted. | ||
| 368 | |||
| 369 | * Rnews changes. | ||
| 370 | |||
| 371 | The N, P and J keys in Rnews are renamed to M-n, M-p and M-j. | ||
| 372 | These keys move among newsgroups. | ||
| 373 | |||
| 374 | The n and p keys for moving sequentially between news articles now | ||
| 375 | accept repeat count arguments, and the + and - keys, made redundant by | ||
| 376 | this change, are eliminated. | ||
| 377 | |||
| 378 | The s command for outputting the current article to a file | ||
| 379 | is renamed as o, to be compatible with Rmail. | ||
| 380 | |||
| 381 | * Sendmail changes. | ||
| 382 | |||
| 383 | If you have a ~/.mailrc file, Emacs searches it for mailing address | ||
| 384 | aliases, and these aliases are expanded when you send mail in Emacs. | ||
| 385 | |||
| 386 | Fcc fields can now be used in the headers in the *mail* buffer | ||
| 387 | to specify files in which copies of the message should be put. | ||
| 388 | The message is written into those files in Unix mail file format. | ||
| 389 | The message as sent does not contain any Fcc fields in its header. | ||
| 390 | You can use any number of Fcc fields, but only one file name in each one. | ||
| 391 | The variable `mail-archive-file-name', if non-`nil', can be a string | ||
| 392 | which is a file name; an Fcc to that file will be inserted in every | ||
| 393 | message when you begin to compose it. | ||
| 394 | |||
| 395 | A new command C-c q now exists in Mail mode. It fills the | ||
| 396 | paragraphs of an old message that had been inserted with C-c y. | ||
| 397 | |||
| 398 | When the *mail* buffer is put in Mail mode, text-mode-hook | ||
| 399 | is now run in addition to mail-mode-hook. text-mode-hook | ||
| 400 | is run first. | ||
| 401 | |||
| 402 | The new variable `mail-header-separator' now specifies the string | ||
| 403 | to use on the line that goes between the headers and the message text. | ||
| 404 | By default it is still "--text follows this line--". | ||
| 405 | |||
| 406 | * Command history truncated automatically. | ||
| 407 | |||
| 408 | Just before each garbage collection, all but the last 30 elements | ||
| 409 | of the command history are discarded. | ||
| 410 | |||
| 411 | Incompatible Lisp Programming Changes in Emacs 17 | ||
| 412 | |||
| 413 | * `"e' no longer supported. | ||
| 414 | |||
| 415 | This feature, which allowed Lisp functions to take arguments | ||
| 416 | that were not evaluated, has been eliminated, because it is | ||
| 417 | inescapably hard to make the compiler work properly with such | ||
| 418 | functions. | ||
| 419 | |||
| 420 | You should use macros instead. A simple way to change any | ||
| 421 | code that uses `"e' is to replace | ||
| 422 | |||
| 423 | (defun foo ("e x y z) ... | ||
| 424 | |||
| 425 | with | ||
| 426 | |||
| 427 | (defmacro foo (x y z) | ||
| 428 | (list 'foo-1 (list 'quote x) (list 'quote y) (list 'quote z))) | ||
| 429 | |||
| 430 | (defun foo-1 (x y z) ... | ||
| 431 | |||
| 432 | * Functions `region-to-string' and `region-around-match' removed. | ||
| 433 | |||
| 434 | These functions were made for compatibility with Gosling Emacs, but it | ||
| 435 | turns out to be undesirable to use them in GNU Emacs because they use | ||
| 436 | the mark. They have been eliminated from Emacs proper, but are | ||
| 437 | present in mlsupport.el for the sake of converted mocklisp programs. | ||
| 438 | |||
| 439 | If you were using `region-to-string', you should instead use | ||
| 440 | `buffer-substring'; then you can pass the bounds as arguments and | ||
| 441 | can avoid setting the mark. | ||
| 442 | |||
| 443 | If you were using `region-around-match', you can use instead | ||
| 444 | the two functions `match-beginning' and `match-end'. These give | ||
| 445 | you one bound at a time, as a numeric value, without changing | ||
| 446 | point or the mark. | ||
| 447 | |||
| 448 | * Function `function-type' removed. | ||
| 449 | |||
| 450 | This just appeared not to be very useful. It can easily be written in | ||
| 451 | Lisp if you happen to want it. Just use `symbol-function' to get the | ||
| 452 | function definition of a symbol, and look at its data type or its car | ||
| 453 | if it is a list. | ||
| 454 | |||
| 455 | * Variable `buffer-number' removed. | ||
| 456 | |||
| 457 | You can still use the function `buffer-number' to find out | ||
| 458 | a buffer's unique number (assigned in order of creation). | ||
| 459 | |||
| 460 | * Variable `executing-macro' renamed `executing-kbd-macro'. | ||
| 461 | |||
| 462 | This variable is the currently executing keyboard macro, as | ||
| 463 | a string, or `nil' when no keyboard macro is being executed. | ||
| 464 | |||
| 465 | * Loading term/$TERM. | ||
| 466 | |||
| 467 | The library term/$TERM (where $TERM get replaced by your terminal | ||
| 468 | type), which is done by Emacs automatically when it starts up, now | ||
| 469 | happens after the user's .emacs file is loaded. | ||
| 470 | |||
| 471 | In previous versions of Emacs, these files had names of the form | ||
| 472 | term-$TERM; thus, for example, term-vt100.el, but now they live | ||
| 473 | in a special subdirectory named term, and have names like | ||
| 474 | term/vt100.el. | ||
| 475 | |||
| 476 | * `command-history' format changed. | ||
| 477 | |||
| 478 | The elements of this list are now Lisp expressions which can | ||
| 479 | be evaluated directly to repeat a command. | ||
| 480 | |||
| 481 | * Unused editing commands removed. | ||
| 482 | |||
| 483 | The functions `forward-to-word', `backward-to-word', | ||
| 484 | `upcase-char', `mark-beginning-of-buffer' and `mark-end-of-buffer' | ||
| 485 | have been removed. Their definitions can be found in file | ||
| 486 | lisp/unused.el if you need them. | ||
| 487 | |||
| 488 | Upward Compatible Lisp Programming Changes in Emacs 17 | ||
| 489 | |||
| 490 | * You can now continue after errors and quits. | ||
| 491 | |||
| 492 | When the debugger is entered because of a C-g, due to | ||
| 493 | a non-`nil' value of `debug-on-quit', the `c' command in the debugger | ||
| 494 | resumes execution of the code that was running when the quit happened. | ||
| 495 | Use the `q' command to go ahead and quit. | ||
| 496 | |||
| 497 | The same applies to some kinds of errors, but not all. Errors | ||
| 498 | signaled with the Lisp function `signal' can be continued; the `c' | ||
| 499 | command causes `signal' to return. The `r' command causes `signal' to | ||
| 500 | return the value you specify. The `c' command is equivalent to `r' | ||
| 501 | with the value `nil'. | ||
| 502 | |||
| 503 | For a `wrong-type-argument' error, the value returned with the `r' | ||
| 504 | command is used in place of the invalid argument. If this new value | ||
| 505 | is not valid, another error occurs. | ||
| 506 | |||
| 507 | Errors signaled with the function `error' cannot be continued. | ||
| 508 | If you try to continue, the error just happens again. | ||
| 509 | |||
| 510 | * `dot' renamed `point'. | ||
| 511 | |||
| 512 | The word `dot' has been replaced with `point' in all | ||
| 513 | function and variable names, including: | ||
| 514 | |||
| 515 | point, point-min, point-max, | ||
| 516 | point-marker, point-min-marker, point-max-marker, | ||
| 517 | window-point, set-window-point, | ||
| 518 | point-to-register, register-to-point, | ||
| 519 | exchange-point-and-mark. | ||
| 520 | |||
| 521 | The old names are still supported, for now. | ||
| 522 | |||
| 523 | * `string-match' records position of end of match. | ||
| 524 | |||
| 525 | After a successful call to `string-match', `(match-end 0)' will | ||
| 526 | return the index in the string of the first character after the match. | ||
| 527 | Also, `match-begin' and `match-end' with nonzero arguments can be | ||
| 528 | used to find the indices of beginnings and ends of substrings matched | ||
| 529 | by subpatterns surrounded by parentheses. | ||
| 530 | |||
| 531 | * New function `insert-before-markers'. | ||
| 532 | |||
| 533 | This function is just like `insert' except in the handling of any | ||
| 534 | relocatable markers that are located at the point of insertion. | ||
| 535 | With `insert', such markers end up pointing before the inserted text. | ||
| 536 | With `insert-before-markers', they end up pointing after the inserted | ||
| 537 | text. | ||
| 538 | |||
| 539 | * New function `copy-alist'. | ||
| 540 | |||
| 541 | This function takes one argument, a list, and makes a disjoint copy | ||
| 542 | of the alist structure. The list itself is copied, and each element | ||
| 543 | that is a cons cell is copied, but the cars and cdrs of elements | ||
| 544 | remain shared with the original argument. | ||
| 545 | |||
| 546 | This is what it takes to get two alists disjoint enough that changes | ||
| 547 | in one do not change the result of `assq' on the other. | ||
| 548 | |||
| 549 | * New function `copy-keymap'. | ||
| 550 | |||
| 551 | This function takes a keymap as argument and returns a new keymap | ||
| 552 | containing initially the same bindings. Rebindings in either one of | ||
| 553 | them will not alter the bindings in the other. | ||
| 554 | |||
| 555 | * New function `copy-syntax-table'. | ||
| 556 | |||
| 557 | This function takes a syntax table as argument and returns a new | ||
| 558 | syntax table containing initially the same syntax settings. Changes | ||
| 559 | in either one of them will not alter the other. | ||
| 560 | |||
| 561 | * Randomizing the random numbers. | ||
| 562 | |||
| 563 | `(random t)' causes the random number generator's seed to be set | ||
| 564 | based on the current time and Emacs's process id. | ||
| 565 | |||
| 566 | * Third argument to `modify-syntax-entry'. | ||
| 567 | |||
| 568 | The optional third argument to `modify-syntax-entry', if specified | ||
| 569 | should be a syntax table. The modification is made in that syntax table | ||
| 570 | rather than in the current syntax table. | ||
| 571 | |||
| 572 | * New function `run-hooks'. | ||
| 573 | |||
| 574 | This function takes any number of symbols as arguments. | ||
| 575 | It processes the symbols in order. For each symbol which | ||
| 576 | has a value (as a variable) that is non-nil, the value is | ||
| 577 | called as a function, with no arguments. | ||
| 578 | |||
| 579 | This is useful in major mode commands. | ||
| 580 | |||
| 581 | * Second arg to `switch-to-buffer'. | ||
| 582 | |||
| 583 | If this function is given a non-`nil' second argument, then the | ||
| 584 | selection being done is not recorded on the selection history. | ||
| 585 | The buffer's position in the history remains unchanged. This | ||
| 586 | feature is used by the view commands, so that the selection history | ||
| 587 | after exiting from viewing is the same as it was before. | ||
| 588 | |||
| 589 | * Second arg to `display-buffer' and `pop-to-buffer'. | ||
| 590 | |||
| 591 | These two functions both accept an optional second argument which | ||
| 592 | defaults to `nil'. If the argument is not `nil', it means that | ||
| 593 | another window (not the selected one) must be found or created to | ||
| 594 | display the specified buffer in, even if it is already shown in | ||
| 595 | the selected window. | ||
| 596 | |||
| 597 | This feature is used by `switch-to-buffer-other-window'. | ||
| 598 | |||
| 599 | * New variable `completion-ignore-case'. | ||
| 600 | |||
| 601 | If this variable is non-`nil', completion allows strings | ||
| 602 | in different cases to be considered matching. The global value | ||
| 603 | is `nil' | ||
| 604 | |||
| 605 | This variable exists for the sake of commands that are completing | ||
| 606 | an argument in which case is not significant. It is possible | ||
| 607 | to change the value globally, but you might not like the consequences | ||
| 608 | in the many situations (buffer names, command names, file names) | ||
| 609 | where case makes a difference. | ||
| 610 | |||
| 611 | * Major modes related to Text mode call text-mode-hook, then their own hooks. | ||
| 612 | |||
| 613 | For example, turning on Outline mode first calls the value of | ||
| 614 | `text-mode-hook' as a function, if it exists and is non-`nil', | ||
| 615 | and then does likewise for the variable `outline-mode-hook'. | ||
| 616 | |||
| 617 | * Defining new command line switches. | ||
| 618 | |||
| 619 | You can define a new command line switch in your .emacs file | ||
| 620 | by putting elements on the value of `command-switch-alist'. | ||
| 621 | Each element of this list should look like | ||
| 622 | (SWITCHSTRING . FUNCTION) | ||
| 623 | where SWITCHSTRING is a string containing the switch to be | ||
| 624 | defined, such as "-foo", and FUNCTION is a function to be called | ||
| 625 | if such an argument is found in the command line. FUNCTION | ||
| 626 | receives the command line argument, a string, as its argument. | ||
| 627 | |||
| 628 | To implement a switch that uses up one or more following arguments, | ||
| 629 | use the fact that the remaining command line arguments are kept | ||
| 630 | as a list in the variable `command-line-args'. FUNCTION can | ||
| 631 | examine this variable, and do | ||
| 632 | (setq command-line-args (cdr command-line-args) | ||
| 633 | to "use up" an argument. | ||
| 634 | |||
| 635 | * New variable `load-in-progress'. | ||
| 636 | |||
| 637 | This variable is non-`nil' when a file of Lisp code is being read | ||
| 638 | and executed by `load'. | ||
| 639 | |||
| 640 | * New variable `print-length'. | ||
| 641 | |||
| 642 | The value of this variable is normally `nil'. It may instead be | ||
| 643 | a number; in that case, when a list is printed by `prin1' or | ||
| 644 | `princ' only that many initial elements are printed; the rest are | ||
| 645 | replaced by `...'. | ||
| 646 | |||
| 647 | * New variable `find-file-not-found-hook'. | ||
| 648 | |||
| 649 | If `find-file' or any of its variants is used on a nonexistent file, | ||
| 650 | the value of `find-file-not-found-hook' is called (if it is not `nil') | ||
| 651 | with no arguments, after creating an empty buffer. The file's name | ||
| 652 | can be found as the value of `buffer-file-name'. | ||
| 653 | |||
| 654 | * Processes without buffers. | ||
| 655 | |||
| 656 | In the function `start-process', you can now specify `nil' as | ||
| 657 | the process's buffer. You can also set a process's buffer to `nil' | ||
| 658 | using `set-process-buffer'. | ||
| 659 | |||
| 660 | The reason you might want to do this is to prevent the process | ||
| 661 | from being killed because any particular buffer is killed. | ||
| 662 | When a process has a buffer, killing that buffer kills the | ||
| 663 | process too. | ||
| 664 | |||
| 665 | When a process has no buffer, its output is lost unless it has a | ||
| 666 | filter, and no indication of its being stopped or killed is given | ||
| 667 | unless it has a sentinel. | ||
| 668 | |||
| 669 | * New function `user-variable-p'. `v' arg prompting changed. | ||
| 670 | |||
| 671 | This function takes a symbol as argument and returns `t' if | ||
| 672 | the symbol is defined as a user option variable. This means | ||
| 673 | that it has a `variable-documentation' property whose value is | ||
| 674 | a string starting with `*'. | ||
| 675 | |||
| 676 | Code `v' in an interactive arg reading string now accepts | ||
| 677 | user variables only, and completion is limited to the space of | ||
| 678 | user variables. | ||
| 679 | |||
| 680 | The function `read-variable' also now accepts and completes | ||
| 681 | over user variables only. | ||
| 682 | |||
| 683 | * CBREAK mode input is the default in Unix 4.3 bsd. | ||
| 684 | |||
| 685 | In Berkeley 4.3 Unix, there are sufficient features for Emacs to | ||
| 686 | work fully correctly using CBREAK mode and not using SIGIO. | ||
| 687 | Therefore, this mode is the default when running under 4.3. | ||
| 688 | This mode corresponds to `nil' as the first argument to | ||
| 689 | `set-input-mode'. You can still select either mode by calling | ||
| 690 | that function. | ||
| 691 | |||
| 692 | * Information on memory usage. | ||
| 693 | |||
| 694 | The new variable `data-bytes-used' contains the number | ||
| 695 | of bytes of impure space allocated in Emacs. | ||
| 696 | `data-bytes-free' contains the number of additional bytes | ||
| 697 | Emacs could allocate. Note that space formerly allocated | ||
| 698 | and freed again still counts as `used', since it is still | ||
| 699 | in Emacs's address space. | ||
| 700 | |||
| 701 | * No limit on size of output from `format'. | ||
| 702 | |||
| 703 | The string output from `format' used to be truncated to | ||
| 704 | 100 characters in length. Now it can have any length. | ||
| 705 | |||
| 706 | * New errors `void-variable' and `void-function' replace `void-symbol'. | ||
| 707 | |||
| 708 | This change makes it possible to have error messages that | ||
| 709 | clearly distinguish undefined variables from undefined functions. | ||
| 710 | It also allows `condition-case' to handle one case without the other. | ||
| 711 | |||
| 712 | * `replace-match' handling of `\'. | ||
| 713 | |||
| 714 | In `replace-match', when the replacement is not literal, | ||
| 715 | `\' in the replacement string is always treated as an | ||
| 716 | escape marker. The only two special `\' constructs | ||
| 717 | are `\&' and `\DIGIT', so `\' followed by anything other than | ||
| 718 | `&' or a digit has no effect. `\\' is necessary to include | ||
| 719 | a `\' in the replacement text. | ||
| 720 | |||
| 721 | This level of escaping is comparable with what goes on in | ||
| 722 | a regular expression. It is over and above the level of `\' | ||
| 723 | escaping that goes on when strings are read in Lisp syntax. | ||
| 724 | |||
| 725 | * New error `invalid-regexp'. | ||
| 726 | |||
| 727 | A regexp search signals this type of error if the argument does | ||
| 728 | not meet the rules for regexp syntax. | ||
| 729 | |||
| 730 | * `kill-emacs' with argument. | ||
| 731 | |||
| 732 | If the argument is a number, it is returned as the exit status code | ||
| 733 | of the Emacs process. If the argument is a string, its contents | ||
| 734 | are stuffed as pending terminal input, to be read by another program | ||
| 735 | after Emacs is dead. | ||
| 736 | |||
| 737 | * New fifth argument to `subst-char-in-region'. | ||
| 738 | |||
| 739 | This argument is optional and defaults to `nil'. If it is not `nil', | ||
| 740 | then the substitutions made by this function are not recorded | ||
| 741 | in the Undo mechanism. | ||
| 742 | |||
| 743 | This feature should be used with great care. It is now used | ||
| 744 | by Outline mode to make lines visible or invisible. | ||
| 745 | |||
| 746 | * ` *Backtrace*' buffer renamed to `*Backtrace*'. | ||
| 747 | |||
| 748 | As a result, you can now reselect this buffer easily if you switch to | ||
| 749 | another while in the debugger. | ||
| 750 | |||
| 751 | Exiting from the debugger kills the `*Backtrace*' buffer, so you will | ||
| 752 | not try to give commands in it when no longer really in the debugger. | ||
| 753 | |||
| 754 | * New function `switch-to-buffer-other-window'. | ||
| 755 | |||
| 756 | This is the new primitive to select a specified buffer (the | ||
| 757 | argument) in another window. It is not quite the same as | ||
| 758 | `pop-to-buffer', because it is guaranteed to create another | ||
| 759 | window (assuming there is room on the screen) so that it can | ||
| 760 | leave the current window's old buffer displayed as well. | ||
| 761 | |||
| 762 | All functions to select a buffer in another window should | ||
| 763 | do so by calling this new function. | ||
| 764 | |||
| 765 | * New variable `minibuffer-help-form'. | ||
| 766 | |||
| 767 | At entry to the minibuffer, the variable `help-form' is bound | ||
| 768 | to the value of `minibuffer-help-form'. | ||
| 769 | |||
| 770 | `help-form' is expected at all times to contain either `nil' | ||
| 771 | or an expression to be executed when C-h is typed (overriding | ||
| 772 | teh definition of C-h as a command). `minibuffer-help-form' | ||
| 773 | can be used to provide a different default way of handling | ||
| 774 | C-h while in the minibuffer. | ||
| 775 | |||
| 776 | * New \{...} documentation construct. | ||
| 777 | |||
| 778 | It is now possible to set up the documentation string for | ||
| 779 | a major mode in such a way that it always describes the contents | ||
| 780 | of the major mode's keymap, as it has been customized. | ||
| 781 | To do this, include in the documentation string the characters `\{' | ||
| 782 | followed by the name of the variable containing the keymap, | ||
| 783 | terminated with `}'. (The `\' at the beginning probably needs to | ||
| 784 | be quoted with a second `\', to include it in the doc string.) | ||
| 785 | This construct is normally used on a line by itself, with no blank | ||
| 786 | lines before or after. | ||
| 787 | |||
| 788 | For example, the documentation string for the function `c-mode' contains | ||
| 789 | ... | ||
| 790 | Paragraphs are separated by blank lines only. | ||
| 791 | Delete converts tabs to spaces as it moves back. | ||
| 792 | \\{c-mode-map} | ||
| 793 | Variables controlling indentation style: | ||
| 794 | ... | ||
| 795 | |||
| 796 | * New character syntax class "punctuation". | ||
| 797 | |||
| 798 | Punctuation characters behave like whitespace in word and | ||
| 799 | list parsing, but can be distinguished in regexps and in the | ||
| 800 | function `char-syntax'. Punctuation syntax is represented by | ||
| 801 | a period in `modify-syntax-entry'. | ||
| 802 | |||
| 803 | * `auto-mode-alist' no longer needs entries for backup-file names, | ||
| 804 | |||
| 805 | Backup suffixes of all kinds are now stripped from a file's name | ||
| 806 | before searching `auto-mode-alist'. | ||
| 807 | |||
| 808 | Changes in Emacs 16 | ||
| 809 | |||
| 810 | * No special code for Ambassadors, VT-100's and Concept-100's. | ||
| 811 | |||
| 812 | Emacs now controls these terminals based on the termcap entry, like | ||
| 813 | all other terminals. Formerly it did not refer to the termcap entries | ||
| 814 | for those terminal types, and often the termcap entries for those | ||
| 815 | terminals are wrong or inadequate. If you experience worse behavior | ||
| 816 | on these terminals than in version 15, you can probably correct it by | ||
| 817 | fixing up the termcap entry. See ./TERMS for more info. | ||
| 818 | |||
| 819 | See ./TERMS in any case if you find that some terminal does not work | ||
| 820 | right with Emacs now. | ||
| 821 | |||
| 822 | * Minibuffer default completion character is TAB (and not ESC). | ||
| 823 | |||
| 824 | So that ESC can be used in minibuffer for more useful prefix commands. | ||
| 825 | |||
| 826 | * C-z suspends Emacs in all modes. | ||
| 827 | |||
| 828 | Formerly, C-z was redefined for other purposes by certain modes, | ||
| 829 | such as Buffer Menu mode. Now other keys are used for those purposes, | ||
| 830 | to keep the meaning of C-z uniform. | ||
| 831 | |||
| 832 | * C-x ESC (repeat-complex-command) allows editing the command it repeats. | ||
| 833 | |||
| 834 | Instead of asking for confirmation to re-execute a command from the | ||
| 835 | command history, the command is placed, in its Lisp form, into the | ||
| 836 | minibuffer for editing. You can confirm by typing RETURN, change some | ||
| 837 | arguments and then confirm, or abort with C-g. | ||
| 838 | |||
| 839 | * Incremental search does less redisplay on slow terminals. | ||
| 840 | |||
| 841 | If the terminal baud rate is <= the value of `isearch-slow-speed', | ||
| 842 | incremental searching outside the text on the screen creates | ||
| 843 | a single-line window and uses that to display the line on which | ||
| 844 | a match has been found. Exiting or quitting the search restores | ||
| 845 | the previous window configuration and redisplays the window you | ||
| 846 | were searching in. | ||
| 847 | |||
| 848 | The initial value of `isearch-slow-speed' is 1200. | ||
| 849 | |||
| 850 | This feature is courtesy of crl@purdue. | ||
| 851 | |||
| 852 | * Recursive minibuffers not allowed. | ||
| 853 | |||
| 854 | If the minibuffer window is selected, most commands that would | ||
| 855 | use the minibuffer gets an error instead. (Specific commands | ||
| 856 | may override this feature and therefore still be allowed.) | ||
| 857 | |||
| 858 | Strictly speaking, recursive entry to the minibuffer is still | ||
| 859 | possible, because you can switch to another window after | ||
| 860 | entering the minibuffer, and then minibuffer-using commands | ||
| 861 | are allowed. This is still allowed by a deliberate decision: | ||
| 862 | if you know enough to switch windows while in the minibuffer, | ||
| 863 | you can probably understand recursive minibuffers. | ||
| 864 | |||
| 865 | This may be overridden by binding the variable | ||
| 866 | `enable-recursive-minibuffers' to t. | ||
| 867 | |||
| 868 | * New major mode Emacs-Lisp mode, for editing Lisp code to run in Emacs. | ||
| 869 | |||
| 870 | The mode in which emacs lisp files is edited is now called emacs-lisp-mode | ||
| 871 | and is distinct from lisp-mode. The latter is intended for use with | ||
| 872 | lisps external to emacs. | ||
| 873 | |||
| 874 | The hook which is funcalled (if non-nil) on entry to elisp-mode is now | ||
| 875 | called emacs-lisp-mode-hook. A consequence of this changes is that | ||
| 876 | .emacs init files which set the value of lisp-mode-hook may need to be | ||
| 877 | changed to use the new names. | ||
| 878 | |||
| 879 | * Correct matching of parentheses is checked on insertion. | ||
| 880 | |||
| 881 | When you insert a close-paren, the matching open-paren | ||
| 882 | is checked for validity. The close paren must be the kind | ||
| 883 | of close-paren that the open-paren says it should match. | ||
| 884 | Otherwise, a warning message is printed. close-paren immediately | ||
| 885 | preceded by quoting backslash syntax character is not matched. | ||
| 886 | |||
| 887 | This feature was originally written by shane@mit-ajax. | ||
| 888 | |||
| 889 | * M-x list-command-history | ||
| 890 | * M-x command-history-mode | ||
| 891 | * M-x electric-command-history | ||
| 892 | |||
| 893 | `list-command-history' displays forms from the command history subject | ||
| 894 | to user controlled filtering and limit on number of forms. It leaves | ||
| 895 | the buffer in `command-history-mode'. M-x command-history-mode | ||
| 896 | recomputes the command history each time it is invoked via | ||
| 897 | `list-command-history'. It is like Emacs-Lisp mode except that characters | ||
| 898 | don't insert themselves and provision is made for re-evaluating an | ||
| 899 | expression from the list. `electric-command-history' pops up a type | ||
| 900 | out window with the command history displayed. If the very next | ||
| 901 | character is Space, the window goes away and the previous window | ||
| 902 | configuration is restored. Otherwise you can move around in the | ||
| 903 | history and select an expression for evaluation *inside* the buffer | ||
| 904 | which invoked `electric-command-history'. The original window | ||
| 905 | configuration is restored on exit unless the command selected changes | ||
| 906 | it. | ||
| 907 | |||
| 908 | * M-x edit-picture | ||
| 909 | |||
| 910 | Enters a temporary major mode (the previous major mode is remembered | ||
| 911 | and can is restored on exit) designed for editing pictures and tables. | ||
| 912 | Printing characters replace rather than insert themselves with motion | ||
| 913 | afterwards that is user controlled (you can specify any of the 8 | ||
| 914 | compass directions). Special commands for movement are provided. | ||
| 915 | Special commands for hacking tabs and tab stops are provided. Special | ||
| 916 | commands for killing rectangles and overlaying them are provided. See | ||
| 917 | the documentation of function edit-picture for more details. | ||
| 918 | |||
| 919 | Calls value of `edit-picture-hook' on entry if non-nil. | ||
| 920 | |||
| 921 | * Stupid C-s/C-q `flow control' supported. | ||
| 922 | |||
| 923 | Do (set-input-mode nil t) to tell Emacs to use CBREAK mode and interpret | ||
| 924 | C-s and C-q as flow control commands. (set-input-mode t nil) switches | ||
| 925 | back to interrupt-driven input. (set-input-mode nil nil) uses CBREAK | ||
| 926 | mode but no `flow control'; this may make it easier to run Emacs under | ||
| 927 | certain debuggers that have trouble dealing with inferiors that use SIGIO. | ||
| 928 | |||
| 929 | CBREAK mode has certain inherent disadvantages, which are why it is | ||
| 930 | not the default: | ||
| 931 | |||
| 932 | Meta-keys are ignored; CBREAK mode discards the 8th bit of | ||
| 933 | input characters. | ||
| 934 | |||
| 935 | Control-G as keyboard input discards buffered output, | ||
| 936 | and therefore can cause incorrect screen updating. | ||
| 937 | |||
| 938 | The use of `flow control' has its own additional disadvantage: the | ||
| 939 | characters C-s and C-q are not available as editing commands. You can | ||
| 940 | partially compensate for this by setting up a keyboard-translate-table | ||
| 941 | (see file ONEWS) that maps two other characters (such as C-^ and C-\) into | ||
| 942 | C-s and C-q. Of course, C-^ and C-\ are commonly used as escape | ||
| 943 | characters in remote-terminal programs. You really can't win except | ||
| 944 | by getting rid of this sort of `flow control.' | ||
| 945 | |||
| 946 | The configuration switch CBREAK_INPUT is now eliminated. | ||
| 947 | INTERRUPT_INPUT exists only to specify the default mode of operation; | ||
| 948 | #define it to make interrupt-driven input the default. | ||
| 949 | |||
| 950 | * Completion of directory names provides a slash. | ||
| 951 | |||
| 952 | If file name completion yields the name of a directory, | ||
| 953 | a slash is appended to it. | ||
| 954 | |||
| 955 | * Undo can clear modified-flag. | ||
| 956 | |||
| 957 | If you undo changes in a buffer back to a state in which the | ||
| 958 | buffer was not considered "modified", then it is labelled as | ||
| 959 | once again "unmodified". | ||
| 960 | |||
| 961 | * M-x run-lisp. | ||
| 962 | |||
| 963 | This command creates an inferior Lisp process whose input and output | ||
| 964 | appear in the Emacs buffer named `*lisp*'. That buffer uses a major mode | ||
| 965 | called inferior-lisp-mode, which has many of the commands of lisp-mode | ||
| 966 | and those of shell-mode. Calls the value of shell-mode-hook and | ||
| 967 | lisp-mode-hook, in that order, if non-nil. | ||
| 968 | |||
| 969 | Meanwhile, in lisp-mode, the command C-M-x is defined to | ||
| 970 | send the current defun as input to the `*lisp*' subprocess. | ||
| 971 | |||
| 972 | * Mode line says `Narrow' when buffer is clipped. | ||
| 973 | |||
| 974 | If a buffer has a clipping restriction (made by `narrow-to-region') | ||
| 975 | then its mode line contains the word `Narrow' after the major and | ||
| 976 | minor modes. | ||
| 977 | |||
| 978 | * Mode line says `Abbrev' when abbrev mode is on. | ||
| 979 | |||
| 980 | * add-change-log-entry takes prefix argument | ||
| 981 | |||
| 982 | Giving a prefix argument makes it prompt for login name, full name, | ||
| 983 | and site name, with defaults. Otherwise the defaults are used | ||
| 984 | with no confirmation. | ||
| 985 | |||
| 986 | * M-x view-buffer and M-x view-file | ||
| 987 | |||
| 988 | view-buffer selects the named buffer, view-file finds the named file; the | ||
| 989 | resulting buffer is placed into view-mode (a recursive edit). The normal | ||
| 990 | emacs commands are not available. Instead a set of special commands is | ||
| 991 | provided which faclitate moving around in the buffer, searching and | ||
| 992 | scrolling by screenfuls. Exiting view-mode returns to the buffer in which | ||
| 993 | the view-file or view-buffer command was given. | ||
| 994 | Type ? or h when viewing for a complete list of view commands. | ||
| 995 | Each calls value of `view-hook' if non-nil on entry. | ||
| 996 | |||
| 997 | written by shane@mit-ajax. | ||
| 998 | |||
| 999 | * New key commands in dired. | ||
| 1000 | |||
| 1001 | `v' views (like more) the file on the current line. | ||
| 1002 | `#' marks auto-save files for deletion. | ||
| 1003 | `~' marks backup files for deletion. | ||
| 1004 | `r' renames a file and updates the directory listing if the | ||
| 1005 | file is renamed to same directory. | ||
| 1006 | `c' copies a file and updates the directory listing if the file is | ||
| 1007 | copied to the same directory. | ||
| 1008 | |||
| 1009 | * New function `electric-buffer-list'. | ||
| 1010 | |||
| 1011 | This pops up a buffer describing the set of emacs buffers. | ||
| 1012 | Immediately typing space makes the buffer list go away and returns | ||
| 1013 | to the buffer and window which were previously selected. | ||
| 1014 | |||
| 1015 | Otherwise one may use the c-p and c-n commands to move around in the | ||
| 1016 | buffer-list buffer and type Space or C-z to select the buffer on the | ||
| 1017 | cursor's line. There are a number of other commands which are the same | ||
| 1018 | as those of buffer-menu-mode. | ||
| 1019 | |||
| 1020 | This is a useful thing to bind to c-x c-b in your `.emacs' file if the | ||
| 1021 | rather non-standard `electric' behaviour of the buffer list suits your taste. | ||
| 1022 | Type C-h after invoking electric-buffer-list for more information. | ||
| 1023 | |||
| 1024 | Calls value of `electric-buffer-menu-mode-hook' if non-nil on entry. | ||
| 1025 | Calls value of `after-electric-buffer-menu' on exit (select) if non-nil. | ||
| 1026 | |||
| 1027 | Changes in version 16 for mail reading and sending | ||
| 1028 | |||
| 1029 | * sendmail prefix character is C-c (and not C-z). New command C-c w. | ||
| 1030 | |||
| 1031 | For instance C-c C-c (or C-c C-s) sends mail now rather than C-z C-z. | ||
| 1032 | C-c w inserts your `signature' (contents of ~/.signature) at the end | ||
| 1033 | of mail. | ||
| 1034 | |||
| 1035 | * New feature in C-c y command in sending mail. | ||
| 1036 | |||
| 1037 | C-c y is the command to insert the message being replied to. | ||
| 1038 | Normally it deletes most header fields and indents everything | ||
| 1039 | by three spaces. | ||
| 1040 | |||
| 1041 | Now, C-c y does not delete header fields or indent. | ||
| 1042 | C-c y with any other numeric argument does delete most header | ||
| 1043 | fields, but indents by the amount specified in the argument. | ||
| 1044 | |||
| 1045 | * C-r command in Rmail edits current message. | ||
| 1046 | |||
| 1047 | It does this by switching to a different major mode | ||
| 1048 | which is nearly the same as Text mode. The only difference | ||
| 1049 | between it and text mode are the two command C-c and C-]. | ||
| 1050 | C-c is defined to switch back to Rmail mode, and C-] | ||
| 1051 | is defined to restore the original contents of the message | ||
| 1052 | and then switch back to Rmail mode. | ||
| 1053 | |||
| 1054 | C-c and C-] are the only ways "back into Rmail", but you | ||
| 1055 | can switch to other buffers and edit them as usual. | ||
| 1056 | C-r in Rmail changes only the handling of the Rmail buffer. | ||
| 1057 | |||
| 1058 | * Rmail command `t' toggles header display. | ||
| 1059 | |||
| 1060 | Normally Rmail reformats messages to hide most header fields. | ||
| 1061 | `t' switches to display of all the header fields of the | ||
| 1062 | current message, as long as it remains current. | ||
| 1063 | Another `t' switches back to the usual display. | ||
| 1064 | |||
| 1065 | * Rmail command '>' goes to the last message. | ||
| 1066 | |||
| 1067 | * Rmail commands `a' and `k' set message attributes. | ||
| 1068 | `a' adds an attribute and `k' removes one. You specify | ||
| 1069 | the attrbute by name. You can specify either a built-in | ||
| 1070 | flag such as "deleted" or "filed", or a user-defined keyword | ||
| 1071 | (anything not recognized as built-in). | ||
| 1072 | |||
| 1073 | * Rmail commands `l' and `L' summarize by attributes. | ||
| 1074 | |||
| 1075 | These commands create a summary with one line per message, | ||
| 1076 | like `h', but they list only some of the messages. You | ||
| 1077 | specify which attribute (for `l') or attributes (for `L') | ||
| 1078 | the messages should have. | ||
| 1079 | |||
| 1080 | * Rmail can parse mmdf mail files. | ||
| 1081 | |||
| 1082 | * Interface to MH mail system. | ||
| 1083 | |||
| 1084 | mh-e is a front end for GNU emacs and the MH mail system. It | ||
| 1085 | provides a friendly and convient interface to the MH commands. | ||
| 1086 | |||
| 1087 | To read mail, invoke mh-rmail. This will inc new mail and display the | ||
| 1088 | scan listing on the screen. To see a summary of the mh-e commands, | ||
| 1089 | type ?. Help is available through the usual facilities. | ||
| 1090 | |||
| 1091 | To send mail, invoke mh-smail. | ||
| 1092 | |||
| 1093 | mh-e requires a copy of MH.5 that has been compiled with the MHE | ||
| 1094 | compiler switch. | ||
| 1095 | |||
| 1096 | From larus@berkeley. | ||
| 1097 | |||
| 1098 | New hooks and parameters in version 16 | ||
| 1099 | |||
| 1100 | * New variable `blink-matching-paren-distance'. | ||
| 1101 | |||
| 1102 | This is the maximum number of characters to search for | ||
| 1103 | an open-paren to match an inserted close-paren. | ||
| 1104 | The matching open-paren is shown and checked if it is found | ||
| 1105 | within this distance. | ||
| 1106 | |||
| 1107 | `nil' means search all the way to the beginning of the buffer. | ||
| 1108 | In this case, a warning message is printed if no matching | ||
| 1109 | open-paren is found. | ||
| 1110 | |||
| 1111 | This feature was originally written by shane@mit-ajax. | ||
| 1112 | |||
| 1113 | * New variable `find-file-run-dired' | ||
| 1114 | |||
| 1115 | If nil, find-file will report an error if an attempt to visit a | ||
| 1116 | directory is detected; otherwise, it runs dired on that directory. | ||
| 1117 | The default is t. | ||
| 1118 | |||
| 1119 | * Variable `dired-listing-switches' holds switches given to `ls' by dired. | ||
| 1120 | |||
| 1121 | The value should be a string containing `-' followed by letters. | ||
| 1122 | The letter `l' had better be included and letter 'F' had better be excluded! | ||
| 1123 | The default is "-al". | ||
| 1124 | |||
| 1125 | This feature was originally written by shane@mit-ajax. | ||
| 1126 | |||
| 1127 | * New variable `display-time-day-and-date'. | ||
| 1128 | |||
| 1129 | If this variable is set non-`nil', the function M-x display-time | ||
| 1130 | displays the day and date, as well as the time. | ||
| 1131 | |||
| 1132 | * New parameter `c-continued-statement-indent'. | ||
| 1133 | |||
| 1134 | This controls the extra indentation given to a line | ||
| 1135 | that continues a C statement started on the previous line. | ||
| 1136 | By default it is 2, which is why you would see | ||
| 1137 | |||
| 1138 | if (foo) | ||
| 1139 | bar (); | ||
| 1140 | |||
| 1141 | |||
| 1142 | * Changed meaning of `c-indent-level'. | ||
| 1143 | |||
| 1144 | The value of `c-brace-offset' used to be | ||
| 1145 | subtracted from the value of `c-indent-level' whenever | ||
| 1146 | that value was used. Now it is not. | ||
| 1147 | |||
| 1148 | As a result, `c-indent-level' is now the offset of | ||
| 1149 | statements within a block, relative to the line containing | ||
| 1150 | the open-brace that starts the block. | ||
| 1151 | |||
| 1152 | * turn-on-auto-fill is useful value for text-mode-hook. | ||
| 1153 | |||
| 1154 | (setq text-mode-hook 'turn-on-auto-fill) | ||
| 1155 | is all you have to do to make sure Auto Fill mode is turned | ||
| 1156 | on whenever you enter Text mode. | ||
| 1157 | |||
| 1158 | * Parameter explicit-shell-file-name for M-x shell. | ||
| 1159 | |||
| 1160 | This variable, if non-nil, specifies the file name to use | ||
| 1161 | for the shell to run if you do M-x shell. | ||
| 1162 | |||
| 1163 | Changes in version 16 affecting Lisp programming: | ||
| 1164 | |||
| 1165 | * Documentation strings adapt to customization. | ||
| 1166 | |||
| 1167 | Often the documentation string for a command wants to mention | ||
| 1168 | another command. Simply stating the other command as a | ||
| 1169 | character sequence has a disadvantage: if the user customizes | ||
| 1170 | Emacs by moving that function to a different command, the | ||
| 1171 | cross reference in the documentation becomes wrong. | ||
| 1172 | |||
| 1173 | A new feature allows you to write the documentation string | ||
| 1174 | using a function name, and the command to run that function | ||
| 1175 | is looked up when the documentation is printed. | ||
| 1176 | |||
| 1177 | If a documentation string contains `\[' (two characters) then | ||
| 1178 | the following text, up to the next `]', is taken as a function name. | ||
| 1179 | Instead of printing that function name, the command that runs it is printed. | ||
| 1180 | (M-x is used to construct a command if no shorter one exists.) | ||
| 1181 | |||
| 1182 | For example, instead of putting `C-n' in a documentation string | ||
| 1183 | to refer to the C-n command, put in `\[next-line]'. (In practice | ||
| 1184 | you will need to quote the backslash with another backslash, | ||
| 1185 | due to the syntax for strings in Lisp and C.) | ||
| 1186 | |||
| 1187 | To include the literal characters `\[' in a documentation string, | ||
| 1188 | precede them with `\='. To include the characters `\=', precede | ||
| 1189 | them with `\='. For example, "\\=\\= is the way to quote \\=\\[" | ||
| 1190 | will come out as `\= is the way to quote \['. | ||
| 1191 | |||
| 1192 | The new function `substitute-command-keys' takes a string possibly | ||
| 1193 | contaning \[...] constructs and replaces those constructs with | ||
| 1194 | the key sequences they currently stand for. | ||
| 1195 | |||
| 1196 | * Primitives `find-line-comment' and `find-line-comment-body' flushed. | ||
| 1197 | |||
| 1198 | Search for the value of `comment-start-skip' if you want to find | ||
| 1199 | whether and where a line has a comment. | ||
| 1200 | |||
| 1201 | * New function `auto-save-file-name-p' | ||
| 1202 | |||
| 1203 | Should return non-`nil' iff given a string which is the name of an | ||
| 1204 | auto-save file (sans directory name). If you redefine | ||
| 1205 | `make-auto-save-file-name', you should redefine this accordingly. By | ||
| 1206 | default, this function returns `t' for filenames beginning with | ||
| 1207 | character `#'. | ||
| 1208 | |||
| 1209 | * The value of `exec-directory' now ends in a slash. | ||
| 1210 | |||
| 1211 | This is to be compatible with most directory names in GNU Emacs. | ||
| 1212 | |||
| 1213 | * Dribble files and termscript files. | ||
| 1214 | |||
| 1215 | (open-dribble-file FILE) opens a dribble file named FILE. When a | ||
| 1216 | dribble file is open, every character Emacs reads from the terminal is | ||
| 1217 | written to the dribble file. | ||
| 1218 | |||
| 1219 | (open-termscript FILE) opens a termscript file named FILE. When a | ||
| 1220 | termscript file is open, all characters sent to the terminal by Emacs | ||
| 1221 | are also written in the termscript file. | ||
| 1222 | |||
| 1223 | The two of these together are very useful for debugging Emacs problems | ||
| 1224 | in redisplay. | ||
| 1225 | |||
| 1226 | * Upper case command characters by default are same as lower case. | ||
| 1227 | |||
| 1228 | If a character in a command is an upper case letter, and is not defined, | ||
| 1229 | Emacs uses the definition of the corresponding lower case letter. | ||
| 1230 | For example, if C-x U is not directly undefined, it is treated as | ||
| 1231 | a synonym for C-x u (undo). | ||
| 1232 | |||
| 1233 | * Undefined function errors versus undefined variable errors. | ||
| 1234 | |||
| 1235 | Void-symbol errors now say "boundp" if the symbol's value was void | ||
| 1236 | or "fboundp" if the function definition was void. | ||
| 1237 | |||
| 1238 | * New function `bury-buffer'. | ||
| 1239 | |||
| 1240 | The new function `bury-buffer' takes one argument, a buffer object, | ||
| 1241 | and puts that buffer at the end of the internal list of buffers. | ||
| 1242 | So it is the least preferred candidate for use as the default value | ||
| 1243 | of C-x b, or for other-buffer to return. | ||
| 1244 | |||
| 1245 | * Already-displayed buffers have low priority for display. | ||
| 1246 | |||
| 1247 | When a buffer is chosen automatically for display, or to be the | ||
| 1248 | default in C-x b, buffers already displayed in windows have lower | ||
| 1249 | priority than buffers not currently visible. | ||
| 1250 | |||
| 1251 | * `set-window-start' accepts a third argument NOFORCE. | ||
| 1252 | |||
| 1253 | This argument, if non-nil, prevents the window's force_start flag | ||
| 1254 | from being set. Setting the force_start flag causes the next | ||
| 1255 | redisplay to insist on starting display at the specified starting | ||
| 1256 | point, even if dot must be moved to get it onto the screen. | ||
| 1257 | |||
| 1258 | * New function `send-string-to-terminal'. | ||
| 1259 | |||
| 1260 | This function takes one argument, a string, and outputs its contents | ||
| 1261 | to the terminal exactly as specified: control characters, escape | ||
| 1262 | sequences, and all. | ||
| 1263 | |||
| 1264 | * Keypad put in command mode. | ||
| 1265 | |||
| 1266 | The terminal's keypad is now put into command mode, as opposed to | ||
| 1267 | numeric mode, while Emacs is running. This is done by means of the | ||
| 1268 | termcap `ks' and `ke' strings. | ||
| 1269 | |||
| 1270 | * New function `generate-new-buffer' | ||
| 1271 | |||
| 1272 | This function takes a string as an argument NAME and looks for a | ||
| 1273 | creates and returns a buffer called NAME if one did not already exist. | ||
| 1274 | Otherwise, it successively tries appending suffixes of the form "<1>", | ||
| 1275 | "<2>" etc to NAME until it creates a string which does not name an | ||
| 1276 | existing buffer. A new buffer with that name is the created and returned. | ||
| 1277 | |||
| 1278 | * New function `prin1-to-string' | ||
| 1279 | This function takes one argument, a lisp object, and returns a string | ||
| 1280 | containing that object's printed representation, such as `prin1' | ||
| 1281 | would output. | ||
| 1282 | |||
| 1283 | * New function `read-from-minibuffer' | ||
| 1284 | Lets you supply a prompt, initial-contents, a keymap, and specify | ||
| 1285 | whether the result should be interpreted as a string or a lisp object. | ||
| 1286 | |||
| 1287 | Old functions `read-minibuffer', `eval-minibuffer', `read-string' all | ||
| 1288 | take second optional string argument which is initial contents of | ||
| 1289 | minibuffer. | ||
| 1290 | |||
| 1291 | * minibuffer variable names changed (names of keymaps) | ||
| 1292 | |||
| 1293 | minibuf-local-map -> minibuffer-local-map | ||
| 1294 | minibuf-local-ns-map -> minibuffer-local-ns-map | ||
| 1295 | minibuf-local-completion-map -> minibuffer-local-completion-map | ||
| 1296 | minibuf-local-must-match-map -> minibuffer-local-must-match-map | ||
| 1297 | |||
| 1298 | Changes in version 16 affecting configuring and building Emacs | ||
| 1299 | |||
| 1300 | * Configuration switch VT100_INVERSE eliminated. | ||
| 1301 | |||
| 1302 | You can control the use of inverse video on any terminal by setting | ||
| 1303 | the variable `inverse-video', or by changing the termcap entry. If | ||
| 1304 | you like, set `inverse-video' in your `.emacs' file based on | ||
| 1305 | examination of (getenv "TERM"). | ||
| 1306 | |||
| 1307 | * New switch `-batch' makes Emacs run noninteractively. | ||
| 1308 | |||
| 1309 | If the switch `-batch' is used, Emacs treats its standard output | ||
| 1310 | and input like ordinary files (even if they are a terminal). | ||
| 1311 | It does not display buffers or windows; the only output to standard output | ||
| 1312 | is what would appear as messages in the echo area, and each | ||
| 1313 | message is followed by a newline. | ||
| 1314 | |||
| 1315 | The terminal modes are not changed, so that C-z and C-c retain | ||
| 1316 | their normal Unix meanings. Emacs does still read commands from | ||
| 1317 | the terminal, but the idea of `-batch' is that you use it with | ||
| 1318 | other command line arguments that tell Emacs a complete task to perform, | ||
| 1319 | including killing itself. `-kill' used as the last argument is a good | ||
| 1320 | way to accomplish this. | ||
| 1321 | |||
| 1322 | The Lisp variable `noninteractive' is now defined, to be `nil' | ||
| 1323 | except when `-batch' has been specified. | ||
| 1324 | |||
| 1325 | * Emacs can be built with output redirected to a file. | ||
| 1326 | |||
| 1327 | This is because -batch (see above) is now used in building Emacs. | ||
| 1328 | |||
| 1329 | For older news, see the file NEWS.1. | ||
| 1330 | |||
| 1331 | ---------------------------------------------------------------------- | ||
| 1332 | Copyright information: | ||
| 1333 | |||
| 1334 | Copyright (C) 1985 Richard M. Stallman | ||
| 1335 | |||
| 1336 | Permission is granted to anyone to make or distribute verbatim copies | ||
| 1337 | of this document as received, in any medium, provided that the | ||
| 1338 | copyright notice and this permission notice are preserved, | ||
| 1339 | thus giving the recipient permission to redistribute in turn. | ||
| 1340 | |||
| 1341 | Permission is granted to distribute modified versions | ||
| 1342 | of this document, or of portions of it, | ||
| 1343 | under the above conditions, provided also that they | ||
| 1344 | carry prominent notices stating who last changed them. | ||
| 1345 | |||
| 1346 | Local variables: | ||
| 1347 | mode: text | ||
| 1348 | end: | ||