comparison etc/NEWS @ 38900:a3e94a8271e0

Reshuffle user-level changes to bring more important ones closer to the beginning.
author Eli Zaretskii <eliz@gnu.org>
date Wed, 22 Aug 2001 07:11:33 +0000
parents 681dc47ffb61
children d5d4948816a7
comparison
equal deleted inserted replaced
38899:8e03c8311b6e 38900:a3e94a8271e0
14 14
15 ** Support for GNU/Linux on IA64 machines has been added. 15 ** Support for GNU/Linux on IA64 machines has been added.
16 16
17 ** Support for LynxOS has been added. 17 ** Support for LynxOS has been added.
18 18
19 ** `movemail' defaults to supporting POP. You can turn this off using
20 the --without-pop configure option, should that be necessary.
21
22 ** There are new configure options associated with the support for 19 ** There are new configure options associated with the support for
23 images and toolkit scrollbars. Use the --help option in `configure' 20 images and toolkit scrollbars. Use the --help option in `configure'
24 to list them. 21 to list them.
25
26 ** There is a new configure option `--without-xim' that instructs
27 Emacs to not use X Input Methods (XIM), if these are available.
28
29 ** There is a new configure option `--disable-largefile' to omit
30 Unix-98-style support for large files if that is available.
31 22
32 ** You can build a 64-bit Emacs for SPARC/Solaris systems which 23 ** You can build a 64-bit Emacs for SPARC/Solaris systems which
33 support 64-bit executables and also on Irix 6.5. This increases the 24 support 64-bit executables and also on Irix 6.5. This increases the
34 maximum buffer size. See etc/MACHINES for instructions. Changes to 25 maximum buffer size. See etc/MACHINES for instructions. Changes to
35 build on other 64-bit systems should be straightforward modulo any 26 build on other 64-bit systems should be straightforward modulo any
36 necessary changes to unexec. 27 necessary changes to unexec.
37 28
38 ** Note that the MS-Windows port does not yet implement various of the 29 ** There is a new configure option `--disable-largefile' to omit
39 new display features described below. 30 Unix-98-style support for large files if that is available.
31
32 ** There is a new configure option `--without-xim' that instructs
33 Emacs to not use X Input Methods (XIM), if these are available.
34
35 ** `movemail' defaults to supporting POP. You can turn this off using
36 the --without-pop configure option, should that be necessary.
40 37
41 ** This version can be built for the Macintosh, but does not implement 38 ** This version can be built for the Macintosh, but does not implement
42 all of the new display features described below. The port currently 39 all of the new display features described below. The port currently
43 lacks unexec, asynchronous processes, and networking support. See the 40 lacks unexec, asynchronous processes, and networking support. See the
44 "Emacs and the Mac OS" appendix in the Emacs manual, for the 41 "Emacs and the Mac OS" appendix in the Emacs manual, for the
45 description of aspects specific to the Mac. 42 description of aspects specific to the Mac.
43
44 ** Note that the MS-Windows port does not yet implement various of the
45 new display features described below.
46 46
47 47
48 * Changes in Emacs 21.1 48 * Changes in Emacs 21.1
49 49
50 ** Emacs has a new redisplay engine. 50 ** Emacs has a new redisplay engine.
78 on terminals. 78 on terminals.
79 79
80 The command-line options `-fg COLOR', `-bg COLOR', and `-rv' are now 80 The command-line options `-fg COLOR', `-bg COLOR', and `-rv' are now
81 supported on character terminals. 81 supported on character terminals.
82 82
83 Emacs automatically remaps all X-style color specifications to one of
84 the colors supported by the terminal. This means you could have the
85 same color customizations that work both on a windowed display and on
86 a TTY or when Emacs is invoked with the -nw option.
87
83 ** New default font is Courier 12pt under X. 88 ** New default font is Courier 12pt under X.
89
90 ** Sound support
91
92 Emacs supports playing sound files on GNU/Linux and FreeBSD (Voxware
93 driver and native BSD driver, a.k.a. Luigi's driver). Currently
94 supported file formats are RIFF-WAVE (*.wav) and Sun Audio (*.au).
84 95
85 +++ 96 +++
86 ** Emacs now resizes mini-windows if appropriate. 97 ** Emacs now resizes mini-windows if appropriate.
87 98
88 If a message is longer than one line, or minibuffer contents are 99 If a message is longer than one line, or minibuffer contents are
146 This is not a problem when Imakefiles are used because each system's 157 This is not a problem when Imakefiles are used because each system's
147 imake configuration file contains the necessary information. Since 158 imake configuration file contains the necessary information. Since
148 Emacs doesn't use imake, this has do be done manually. 159 Emacs doesn't use imake, this has do be done manually.
149 160
150 +++ 161 +++
151 ** Automatic Hscrolling
152
153 Horizontal scrolling now happens automatically if
154 `automatic-hscrolling' is set (the default). This setting can be
155 customized.
156
157 If a window is scrolled horizontally with set-window-hscroll, or
158 scroll-left/scroll-right (C-x <, C-x >), this serves as a lower bound
159 for automatic horizontal scrolling. Automatic scrolling will scroll
160 the text more to the left if necessary, but won't scroll the text more
161 to the right than the column set with set-window-hscroll etc.
162
163 +++
164 ** Tool bar support. 162 ** Tool bar support.
165 163
166 Emacs supports a tool bar at the top of a frame under X. For details 164 Emacs supports a tool bar at the top of a frame under X. For details
167 of how to define a tool bar, see the page describing Lisp-level 165 of how to define a tool bar, see the page describing Lisp-level
168 changes. Tool-bar global minor mode controls whether or not it is 166 changes. Tool-bar global minor mode controls whether or not it is
185 variable values can be displayed in tooltips by pointing at them with 183 variable values can be displayed in tooltips by pointing at them with
186 the mouse in source buffers. You can customize various aspects of the 184 the mouse in source buffers. You can customize various aspects of the
187 tooltip display in the group `tooltip'. 185 tooltip display in the group `tooltip'.
188 186
189 +++ 187 +++
188 ** Automatic Hscrolling
189
190 Horizontal scrolling now happens automatically if
191 `automatic-hscrolling' is set (the default). This setting can be
192 customized.
193
194 If a window is scrolled horizontally with set-window-hscroll, or
195 scroll-left/scroll-right (C-x <, C-x >), this serves as a lower bound
196 for automatic horizontal scrolling. Automatic scrolling will scroll
197 the text more to the left if necessary, but won't scroll the text more
198 to the right than the column set with set-window-hscroll etc.
199
200 +++
190 ** When using a windowing terminal, each Emacs window now has a cursor 201 ** When using a windowing terminal, each Emacs window now has a cursor
191 of its own. By default, when a window is selected, the cursor is 202 of its own. By default, when a window is selected, the cursor is
192 solid; otherwise, it is hollow. The user-option 203 solid; otherwise, it is hollow. The user-option
193 `cursor-in-non-selected-windows' controls how to display the 204 `cursor-in-non-selected-windows' controls how to display the
194 cursor in non-selected windows. If nil, no cursor is shown, if 205 cursor in non-selected windows. If nil, no cursor is shown, if
259 details. 270 details.
260 271
261 Font-lock uses jit-lock-mode as default support mode, so you don't 272 Font-lock uses jit-lock-mode as default support mode, so you don't
262 have to do anything to activate it. 273 have to do anything to activate it.
263 274
264 +++ 275 ** The default binding of the Delete key has changed.
265 ** The default for user-option `next-line-add-newlines' has been 276
266 changed to nil, i.e. C-n will no longer add newlines at the end of a 277 The new user-option `normal-erase-is-backspace' can be set to
267 buffer by default.
268
269 ** The <home> and <end> keys now move to the beginning or end of the
270 current line, respectively. C-<home> and C-<end> move to the
271 beginning and end of the buffer.
272
273 ** Emacs now checks for recursive loads of Lisp files. If the
274 recursion depth exceeds `recursive-load-depth-limit', an error is
275 signaled.
276
277 ** When an error is signaled during the loading of the user's init
278 file, Emacs now pops up the *Messages* buffer.
279
280 +++
281 ** Emacs now refuses to load compiled Lisp files which weren't
282 compiled with Emacs. Set `load-dangerous-libraries' to t to change
283 this behavior.
284
285 The reason for this change is an incompatible change in XEmacs' byte
286 compiler. Files compiled with XEmacs can contain byte codes that let
287 Emacs dump core.
288
289 ** Toggle buttons and radio buttons in menus.
290
291 When compiled with LessTif (or Motif) support, Emacs uses toolkit
292 widgets for radio and toggle buttons in menus. When configured for
293 Lucid, Emacs draws radio buttons and toggle buttons similar to Motif.
294
295 ** The menu bar configuration has changed. The new configuration is
296 more CUA-compliant. The most significant change is that Options is
297 now a separate menu-bar item, with Mule and Customize as its submenus.
298
299 ** Item Save Options on the Options menu allows saving options set
300 using that menu.
301
302 +++
303 ** Highlighting of trailing whitespace.
304
305 When `show-trailing-whitespace' is non-nil, Emacs displays trailing
306 whitespace in the face `trailing-whitespace'. Trailing whitespace is
307 defined as spaces or tabs at the end of a line. To avoid busy
308 highlighting when entering new text, trailing whitespace is not
309 displayed if point is at the end of the line containing the
310 whitespace.
311
312 +++
313 ** C-x 5 1 runs the new command delete-other-frames which deletes
314 all frames except the selected one.
315
316 ** The new user-option `confirm-kill-emacs' can be customized to
317 let Emacs ask for confirmation before exiting.
318
319 +++
320 ** Highlighting of mouse-sensitive regions is now supported in the
321 MS-DOS version of Emacs.
322
323 ** The header line in an Info buffer is now displayed as an emacs
324 header-line (which is like a mode-line, but at the top of the window),
325 so that it remains visible even when the buffer has been scrolled.
326 This behavior may be disabled by customizing the option
327 `Info-use-header-line'.
328
329 +++
330 ** The recommended way of using Iswitchb is via the new global minor
331 mode `iswitchb-mode'.
332
333 +++
334 ** Just loading the msb package doesn't switch on Msb mode anymore.
335 If you have `(require 'msb)' in your .emacs, please replace it with
336 `(msb-mode 1)'.
337
338 ** Polish, Czech, German, and French translations of Emacs' reference card
339 have been added. They are named `pl-refcard.tex', `cs-refcard.tex',
340 `de-refcard.tex' and `fr-refcard.tex'. Postscript files are included.
341
342 ** An `Emacs Survival Guide', etc/survival.tex, is available.
343
344 ** A reference card for Dired has been added. Its name is
345 `dired-ref.tex'. A French translation is available in
346 `fr-drdref.tex'.
347
348 +++
349 ** C-down-mouse-3 is bound differently. Now if the menu bar is not
350 displayed it pops up a menu containing the items which would be on the
351 menu bar. If the menu bar is displayed, it pops up the major mode
352 menu or the Edit menu if there is no major mode menu.
353
354 ** Variable `load-path' is no longer customizable throuh Customize.
355
356 You can no longer use `M-x customize-variable' to customize `load-path'
357 because it now contains a version-dependent component. You can still
358 use `add-to-list' and `setq' to customize this variable in your
359 `~/.emacs' init file or to modify it from any Lisp program in general.
360
361 ** The new user-option `normal-erase-is-backspace' can be set to
362 determine the effect of the Delete and Backspace function keys. 278 determine the effect of the Delete and Backspace function keys.
363 279
364 On window systems, the default value of this option is chosen 280 On window systems, the default value of this option is chosen
365 according to the keyboard used. If the keyboard has both a Backspace 281 according to the keyboard used. If the keyboard has both a Backspace
366 key and a Delete key, and both are mapped to their usual meanings, the 282 key and a Delete key, and both are mapped to their usual meanings, the
379 295
380 Programmatically, you can call function normal-erase-is-backspace-mode 296 Programmatically, you can call function normal-erase-is-backspace-mode
381 to toggle the behavior of the Delete and Backspace keys. 297 to toggle the behavior of the Delete and Backspace keys.
382 298
383 +++ 299 +++
300 ** The default for user-option `next-line-add-newlines' has been
301 changed to nil, i.e. C-n will no longer add newlines at the end of a
302 buffer by default.
303
304 ** The <home> and <end> keys now move to the beginning or end of the
305 current line, respectively. C-<home> and C-<end> move to the
306 beginning and end of the buffer.
307
308 ** Emacs now checks for recursive loads of Lisp files. If the
309 recursion depth exceeds `recursive-load-depth-limit', an error is
310 signaled.
311
312 ** When an error is signaled during the loading of the user's init
313 file, Emacs now pops up the *Messages* buffer.
314
315 +++
316 ** Emacs now refuses to load compiled Lisp files which weren't
317 compiled with Emacs. Set `load-dangerous-libraries' to t to change
318 this behavior.
319
320 The reason for this change is an incompatible change in XEmacs's byte
321 compiler. Files compiled with XEmacs can contain byte codes that let
322 Emacs dump core.
323
324 ** Toggle buttons and radio buttons in menus.
325
326 When compiled with LessTif (or Motif) support, Emacs uses toolkit
327 widgets for radio and toggle buttons in menus. When configured for
328 Lucid, Emacs draws radio buttons and toggle buttons similar to Motif.
329
330 ** The menu bar configuration has changed. The new configuration is
331 more CUA-compliant. The most significant change is that Options is
332 now a separate menu-bar item, with Mule and Customize as its submenus.
333
334 ** Item Save Options on the Options menu allows saving options set
335 using that menu.
336
337 +++
338 ** Highlighting of trailing whitespace.
339
340 When `show-trailing-whitespace' is non-nil, Emacs displays trailing
341 whitespace in the face `trailing-whitespace'. Trailing whitespace is
342 defined as spaces or tabs at the end of a line. To avoid busy
343 highlighting when entering new text, trailing whitespace is not
344 displayed if point is at the end of the line containing the
345 whitespace.
346
347 +++
348 ** C-x 5 1 runs the new command delete-other-frames which deletes
349 all frames except the selected one.
350
351 ** The new user-option `confirm-kill-emacs' can be customized to
352 let Emacs ask for confirmation before exiting.
353
354 ** The header line in an Info buffer is now displayed as an emacs
355 header-line (which is like a mode-line, but at the top of the window),
356 so that it remains visible even when the buffer has been scrolled.
357 This behavior may be disabled by customizing the option
358 `Info-use-header-line'.
359
360 ** Polish, Czech, German, and French translations of Emacs' reference card
361 have been added. They are named `pl-refcard.tex', `cs-refcard.tex',
362 `de-refcard.tex' and `fr-refcard.tex'. Postscript files are included.
363
364 ** An `Emacs Survival Guide', etc/survival.tex, is available.
365
366 ** A reference card for Dired has been added. Its name is
367 `dired-ref.tex'. A French translation is available in
368 `fr-drdref.tex'.
369
370 +++
371 ** C-down-mouse-3 is bound differently. Now if the menu bar is not
372 displayed it pops up a menu containing the items which would be on the
373 menu bar. If the menu bar is displayed, it pops up the major mode
374 menu or the Edit menu if there is no major mode menu.
375
376 ** Variable `load-path' is no longer customizable through Customize.
377
378 You can no longer use `M-x customize-variable' to customize `load-path'
379 because it now contains a version-dependent component. You can still
380 use `add-to-list' and `setq' to customize this variable in your
381 `~/.emacs' init file or to modify it from any Lisp program in general.
382
383 +++
384 ** C-u C-x = provides detailed information about the character at 384 ** C-u C-x = provides detailed information about the character at
385 point in a pop-up window. 385 point in a pop-up window.
386 386
387 +++ 387 +++
388 ** Emacs can now support 'wheeled' mice (such as the MS IntelliMouse) 388 ** Emacs can now support 'wheeled' mice (such as the MS IntelliMouse)
399 You can customize `auto-save-list-file-prefix' to change this location. 399 You can customize `auto-save-list-file-prefix' to change this location.
400 400
401 +++ 401 +++
402 ** The function `getenv' is now callable interactively. 402 ** The function `getenv' is now callable interactively.
403 403
404 ** The many obsolete language `setup-...-environment' commands have
405 been removed -- use `set-language-environment'.
406
407 +++
408 ** The environment variable `EMACSLOCKDIR' is no longer used on MS-Windows.
409 This environment variable was used when creating lock files. Emacs on
410 MS-Windows does not use this variable anymore. This change was made
411 before Emacs 21.1, but wasn't documented until now.
412
413 ** Flyspell mode has various new options. See the `flyspell' Custom
414 group.
415
416 ** The user option `backward-delete-char-untabify-method' controls the
417 behavior of `backward-delete-char-untabify'. The following values
418 are recognized:
419
420 `untabify' -- turn a tab to many spaces, then delete one space;
421 `hungry' -- delete all whitespace, both tabs and spaces;
422 `all' -- delete all whitespace, including tabs, spaces and newlines;
423 nil -- just delete one character.
424
425 Default value is `untabify'.
426
427 [This change was made in Emacs 20.3 but not mentioned then.]
428
429 ** In Cperl mode `cperl-invalid-face' should now be a normal face
430 symbol, not double-quoted.
431
432 ** Some packages are declared obsolete, to be removed in a future
433 version. They are: auto-show, c-mode, hilit19, hscroll, ooutline,
434 rnews, rnewspost. Their implementations have been moved to
435 lisp/obsolete.
436
437 +++
438 ** The new Custom option `keyboard-coding-system' specifies a coding
439 system for keyboard input.
440
441 +++ 404 +++
442 ** The new user-option `even-window-heights' can be set to nil 405 ** The new user-option `even-window-heights' can be set to nil
443 to prevent `display-buffer' from evening out window heights. 406 to prevent `display-buffer' from evening out window heights.
444
445 +++
446 ** The new command `msdos-set-mouse-buttons' forces Emacs to behave
447 as if the mouse had a specified number of buttons. This comes handy
448 with mice that don't report their number of buttons correctly. One
449 example is the wheeled mice, which report 3 buttons, but clicks on the
450 middle button are not passed to the MS-DOS version of Emacs.
451 407
452 ** The new command M-x delete-trailing-whitespace RET will delete the 408 ** The new command M-x delete-trailing-whitespace RET will delete the
453 trailing whitespace within the current restriction. You can also add 409 trailing whitespace within the current restriction. You can also add
454 this function to `write-file-hooks' or `local-write-file-hooks'. 410 this function to `write-file-hooks' or `local-write-file-hooks'.
455 411
456 ** When visiting a file with M-x find-file-literally, no newlines will 412 ** When visiting a file with M-x find-file-literally, no newlines will
457 be added to the end of the buffer even if `require-final-newline' is 413 be added to the end of the buffer even if `require-final-newline' is
458 non-nil. 414 non-nil.
459 415
460 ** auto-compression mode is no longer enabled just by loading jka-compr.el.
461 To control it, set `auto-compression-mode' via Custom or use the
462 `auto-compression-mode' command.
463
464 ** `browse-url-gnome-moz' is a new option for
465 `browse-url-browser-function', invoking Mozilla in GNOME, and
466 `browse-url-kde' can be chosen for invoking the KDE browser.
467
468 ** The user-option `browse-url-new-window-p' has been renamed to
469 `browse-url-new-window-flag'.
470
471 +++
472 ** The functions `keep-lines', `flush-lines' and `how-many' now
473 operate on the active region in Transient Mark mode.
474
475 +++
476 ** `gnus-user-agent' is a new possibility for `mail-user-agent'. It
477 is like `message-user-agent', but with all the Gnus paraphernalia.
478
479 +++
480 ** Gnus changes.
481
482 The Gnus NEWS entries are short, but they reflect sweeping changes in
483 four areas: Article display treatment, MIME treatment,
484 internationalization and mail-fetching.
485
486 *** The mail-fetching functions have changed. See the manual for the
487 many details. In particular, all procmail fetching variables are gone.
488
489 If you used procmail like in
490
491 (setq nnmail-use-procmail t)
492 (setq nnmail-spool-file 'procmail)
493 (setq nnmail-procmail-directory "~/mail/incoming/")
494 (setq nnmail-procmail-suffix "\\.in")
495
496 this now has changed to
497
498 (setq mail-sources
499 '((directory :path "~/mail/incoming/"
500 :suffix ".in")))
501
502 More information is available in the info doc at Select Methods ->
503 Getting Mail -> Mail Sources
504
505 *** Gnus is now a MIME-capable reader. This affects many parts of
506 Gnus, and adds a slew of new commands. See the manual for details.
507 Separate MIME packages like RMIME, mime-compose etc., will probably no
508 longer work; remove them and use the native facilities.
509
510 The FLIM/SEMI package still works with Emacs 21, but if you want to
511 use the native facilities, you must remove any mailcap.el[c] that was
512 installed by FLIM/SEMI version 1.13 or earlier.
513
514 *** Gnus has also been multilingualized. This also affects too many
515 parts of Gnus to summarize here, and adds many new variables. There
516 are built-in facilities equivalent to those of gnus-mule.el, which is
517 now just a compatibility layer.
518
519 *** gnus-auto-select-first can now be a function to be
520 called to position point.
521
522 *** The user can now decide which extra headers should be included in
523 summary buffers and NOV files.
524
525 *** `gnus-article-display-hook' has been removed. Instead, a number
526 of variables starting with `gnus-treat-' have been added.
527
528 *** The Gnus posting styles have been redone again and now work in a
529 subtly different manner.
530
531 *** New web-based backends have been added: nnslashdot, nnwarchive
532 and nnultimate. nnweb has been revamped, again, to keep up with
533 ever-changing layouts.
534
535 *** Gnus can now read IMAP mail via nnimap.
536
537 *** There is image support of various kinds and some sound support.
538
539 +++
540 ** When your terminal can't display characters from some of the ISO
541 8859 character sets but can display Latin-1, you can display
542 more-or-less mnemonic sequences of ASCII/Latin-1 characters instead of
543 empty boxes (under a window system) or question marks (not under a
544 window system). Customize the option `latin1-display' to turn this
545 on.
546
547 ** The new user-option `find-file-suppress-same-file-warnings' can be 416 ** The new user-option `find-file-suppress-same-file-warnings' can be
548 set to suppress warnings ``X and Y are the same file'' when visiting a 417 set to suppress warnings ``X and Y are the same file'' when visiting a
549 file that is already visited under a different name. 418 file that is already visited under a different name.
550 419
551 ** The new user-option `electric-help-shrink-window' can be set to 420 ** The new user-option `electric-help-shrink-window' can be set to
552 nil to prevent adjusting the help window size to the buffer size. 421 nil to prevent adjusting the help window size to the buffer size.
553
554 ** The Strokes package has been updated. If your Emacs has XPM
555 support, you can use it for pictographic editing. In Strokes mode,
556 use C-mouse-2 to compose a complex stoke and insert it into the
557 buffer. You can encode or decode a strokes buffer with new commands
558 M-x strokes-encode-buffer and M-x strokes-decode-buffer. There is a
559 new command M-x strokes-list-strokes.
560 422
561 +++ 423 +++
562 ** New command M-x describe-character-set reads a character set name 424 ** New command M-x describe-character-set reads a character set name
563 and displays information about that. 425 and displays information about that.
564 426
581 contents. (The most preferred is set by set-language-environment or 443 contents. (The most preferred is set by set-language-environment or
582 by M-x prefer-coding-system.) Thus if you visit an ASCII file and 444 by M-x prefer-coding-system.) Thus if you visit an ASCII file and
583 insert a non-ASCII character from your current language environment, 445 insert a non-ASCII character from your current language environment,
584 the file will be saved silently with the appropriate coding. 446 the file will be saved silently with the appropriate coding.
585 Previously you would be prompted for a safe coding system. 447 Previously you would be prompted for a safe coding system.
448
449 ** The many obsolete language `setup-...-environment' commands have
450 been removed -- use `set-language-environment'.
451
452 +++
453 ** The new Custom option `keyboard-coding-system' specifies a coding
454 system for keyboard input.
586 455
587 +++ 456 +++
588 ** New variable `inhibit-iso-escape-detection' determines if Emacs' 457 ** New variable `inhibit-iso-escape-detection' determines if Emacs'
589 coding system detection algorithm should pay attention to ISO2022's 458 coding system detection algorithm should pay attention to ISO2022's
590 escape sequences. If this variable is non-nil, the algorithm ignores 459 escape sequences. If this variable is non-nil, the algorithm ignores
604 473
605 ** M-x set-terminal-coding-system (C-x RET t) now allows CCL-based 474 ** M-x set-terminal-coding-system (C-x RET t) now allows CCL-based
606 coding systems such as cpXXX and cyrillic-koi8. 475 coding systems such as cpXXX and cyrillic-koi8.
607 476
608 +++ 477 +++
478 ** Emacs now attempts to determine the initial language environment
479 and preferred and locale coding systems systematically from the
480 LC_ALL, LC_CTYPE, and LANG environment variables during startup.
481
482 +++
483 ** New language environments `Polish', `Latin-8' and `Latin-9'.
484 Latin-8 and Latin-9 correspond respectively to the ISO character sets
485 8859-14 (Celtic) and 8859-15 (updated Latin-1, with the Euro sign).
486 GNU Intlfonts doesn't support these yet but recent X releases have
487 8859-15. See etc/INSTALL for information on obtaining extra fonts.
488 There are new Leim input methods for Latin-8 and Latin-9 prefix (only)
489 and Polish `slash'.
490
491 +++
492 ** New language environments `Dutch' and `Spanish'.
493 These new environments mainly select appropriate translations
494 of the tutorial.
495
496 ** In Ethiopic language environment, special key bindings for
497 function keys are changed as follows. This is to conform to "Emacs
498 Lisp Coding Convention".
499
500 new command old-binding
501 --- ------- -----------
502 f3 ethio-fidel-to-sera-buffer f5
503 S-f3 ethio-fidel-to-sera-region f5
504 C-f3 ethio-fidel-to-sera-mail-or-marker f5
505
506 f4 ethio-sera-to-fidel-buffer unchanged
507 S-f4 ethio-sera-to-fidel-region unchanged
508 C-f4 ethio-sera-to-fidel-mail-or-marker unchanged
509
510 S-f5 ethio-toggle-punctuation f3
511 S-f6 ethio-modify-vowel f6
512 S-f7 ethio-replace-space f7
513 S-f8 ethio-input-special-character f8
514 S-f9 ethio-replace-space unchanged
515 C-f9 ethio-toggle-space f2
516
517 ** The rule of input method "slovak" is slightly changed. Now the
518 rules for translating "q" and "Q" to "`" (backquote) are deleted, thus
519 typing them inserts "q" and "Q" respectively. Rules for translating
520 "=q", "+q", "=Q", and "+Q" to "`" are also deleted. Now, to input
521 "`", you must type "=q".
522
523 +++
524 ** When your terminal can't display characters from some of the ISO
525 8859 character sets but can display Latin-1, you can display
526 more-or-less mnemonic sequences of ASCII/Latin-1 characters instead of
527 empty boxes (under a window system) or question marks (not under a
528 window system). Customize the option `latin1-display' to turn this
529 on.
530
531 +++
609 ** M-; now calls comment-dwim which tries to do something clever based 532 ** M-; now calls comment-dwim which tries to do something clever based
610 on the context. M-x kill-comment is now an alias to comment-kill, 533 on the context. M-x kill-comment is now an alias to comment-kill,
611 defined in newcomment.el. You can choose different styles of region 534 defined in newcomment.el. You can choose different styles of region
612 commenting with the variable `comment-style'. 535 commenting with the variable `comment-style'.
613 536
693 616
694 Example: 617 Example:
695 618
696 emacs.privateColormap: true 619 emacs.privateColormap: true
697 620
621 ** Faces and frame parameters.
622
623 There are four new faces `scroll-bar', `border', `cursor' and `mouse'.
624 Setting the frame parameters `scroll-bar-foreground' and
625 `scroll-bar-background' sets foreground and background color of face
626 `scroll-bar' and vice versa. Setting frame parameter `border-color'
627 sets the background color of face `border' and vice versa. Likewise
628 for frame parameters `cursor-color' and face `cursor', and frame
629 parameter `mouse-color' and face `mouse'.
630
631 Changing frame parameter `font' sets font-related attributes of the
632 `default' face and vice versa. Setting frame parameters
633 `foreground-color' or `background-color' sets the colors of the
634 `default' face and vice versa.
635
636 +++
637 ** New face `menu'.
638
639 The face `menu' can be used to change colors and font of Emacs' menus.
640
641 +++
642 ** New frame parameter `screen-gamma' for gamma correction.
643
644 The new frame parameter `screen-gamma' specifies gamma-correction for
645 colors. Its value may be nil, the default, in which case no gamma
646 correction occurs, or a number > 0, usually a float, that specifies
647 the screen gamma of a frame's display.
648
649 PC monitors usually have a screen gamma of 2.2. smaller values result
650 in darker colors. You might want to try a screen gamma of 1.5 for LCD
651 color displays. The viewing gamma Emacs uses is 0.4545. (1/2.2).
652
653 The X resource name of this parameter is `screenGamma', class
654 `ScreenGamma'.
655
656 ** Tabs and variable-width text.
657
658 Tabs are now displayed with stretch properties; the width of a tab is
659 defined as a multiple of the normal character width of a frame, and is
660 independent of the fonts used in the text where the tab appears.
661 Thus, tabs can be used to line up text in different fonts.
662
663 ** Enhancements of the Lucid menu bar
664
665 +++
666 *** The Lucid menu bar now supports the resource "margin".
667
668 emacs.pane.menubar.margin: 5
669
670 The default margin is 4 which makes the menu bar appear like the
671 LessTif/Motif one.
672
673 *** Arrows that indicate sub-menus are now drawn with shadows, as in
674 LessTif and Motif.
675
676 +++
677 ** A block cursor can be drawn as wide as the glyph under it under X.
678
679 As an example: if a block cursor is over a tab character, it will be
680 drawn as wide as that tab on the display. To do this, set
681 `x-stretch-cursor' to a non-nil value.
682
683 +++
684 ** Empty display lines at the end of a buffer may be marked with a
685 bitmap (this is similar to the tilde displayed by vi and Less).
686
687 This behavior is activated by setting the buffer-local variable
688 `indicate-empty-lines' to a non-nil value. The default value of this
689 variable is found in `default-indicate-empty-lines'.
690
691 +++
692 ** There is a new "aggressive" scrolling method.
693
694 When scrolling up because point is above the window start, if the
695 value of the buffer-local variable `scroll-up-aggressively' is a
696 number, Emacs chooses a new window start so that point ends up that
697 fraction of the window's height from the top of the window.
698
699 When scrolling down because point is below the window end, if the
700 value of the buffer-local variable `scroll-down-aggressively' is a
701 number, Emacs chooses a new window start so that point ends up that
702 fraction of the window's height from the bottom of the window.
703
704 +++
705 ** You can now easily create new *Info* buffers using either
706 M-x clone-buffer, C-u m <entry> RET or C-u g <entry> RET.
707 M-x clone-buffer can also be used on *Help* and several other special
708 buffers.
709
710 ** The command `Info-search' now uses a search history.
711
712 ** Listing buffers with M-x list-buffers (C-x C-b) now shows
713 abbreviated file names. Abbreviations can be customized by changing
714 `directory-abbrev-alist'.
715
716 +++
717 ** A new variable, backup-by-copying-when-privileged-mismatch, gives
718 the highest file uid for which backup-by-copying-when-mismatch will be
719 forced on. The assumption is that uids less than or equal to this
720 value are special uids (root, bin, daemon, etc.--not real system
721 users) and that files owned by these users should not change ownership,
722 even if your system policy allows users other than root to edit them.
723
724 The default is 200; set the variable to nil to disable the feature.
725
726 ** The rectangle commands now avoid inserting undesirable spaces,
727 notably at the end of lines.
728
729 All these functions have been rewritten to avoid inserting unwanted
730 spaces, and an optional prefix now allows them to behave the old way.
731
732 +++
733 ** The function `replace-rectangle' is an alias for `string-rectangle'.
734
735 ** The new command M-x string-insert-rectangle is like `string-rectangle',
736 but inserts text instead of replacing it.
737
738 ** The new command M-x query-replace-regexp-eval acts like
739 query-replace-regexp, but takes a Lisp expression which is evaluated
740 after each match to get the replacement text.
741
742 +++
743 ** M-x query-replace recognizes a new command `e' (or `E') that lets
744 you edit the replacement string.
745
746 ** The new command mail-abbrev-complete-alias, bound to `M-TAB', lets
747 you complete mail aliases in the text, analogous to
748 lisp-complete-symbol.
749
698 +++ 750 +++
699 ** The variable `echo-keystrokes' may now have a floating point value. 751 ** The variable `echo-keystrokes' may now have a floating point value.
700 752
701 ** If your init file is compiled (.emacs.elc), `user-init-file' is set 753 ** If your init file is compiled (.emacs.elc), `user-init-file' is set
702 to the source name (.emacs.el), if that exists, after loading it. 754 to the source name (.emacs.el), if that exists, after loading it.
708 760
709 ** New user option `read-mail-command' specifies a command to use to 761 ** New user option `read-mail-command' specifies a command to use to
710 read mail from the menu etc. 762 read mail from the menu etc.
711 763
712 +++ 764 +++
713 ** Hexl contains a new command `hexl-insert-hex-string' which inserts 765 ** The environment variable `EMACSLOCKDIR' is no longer used on MS-Windows.
714 a string of hexadecimal numbers read from the mini-buffer. 766 This environment variable was used when creating lock files. Emacs on
767 MS-Windows does not use this variable anymore. This change was made
768 before Emacs 21.1, but wasn't documented until now.
769
770 +++
771 ** Highlighting of mouse-sensitive regions is now supported in the
772 MS-DOS version of Emacs.
773
774 +++
775 ** The new command `msdos-set-mouse-buttons' forces the MS-DOS version
776 of Emacs to behave as if the mouse had a specified number of buttons.
777 This comes handy with mice that don't report their number of buttons
778 correctly. One example is the wheeled mice, which report 3 buttons,
779 but clicks on the middle button are not passed to the MS-DOS version
780 of Emacs.
781
782 +++
783 ** Customize changes
784
785 *** Customize now supports comments about customized items. Use the
786 `State' menu to add comments, or give a prefix argument to
787 M-x customize-set-variable or M-x customize-set-value. Note that
788 customization comments will cause the customizations to fail in
789 earlier versions of Emacs.
790
791 *** The new option `custom-buffer-done-function' says whether to kill
792 Custom buffers when you've done with them or just bury them (the
793 default).
794
795 *** If Emacs was invoked with the `-q' or `--no-init-file' options, it
796 does not allow you to save customizations in your `~/.emacs' init
797 file. This is because saving customizations from such a session would
798 wipe out all the other customizationss you might have on your init
799 file.
800
801 ** New features in evaluation commands
802
803 *** The commands to evaluate Lisp expressions, such as C-M-x in Lisp
804 modes, C-j in Lisp Interaction mode, and M-:, now bind the variables
805 print-level, print-length, and debug-on-error based on the new
806 customizable variables eval-expression-print-level,
807 eval-expression-print-length, and eval-expression-debug-on-error.
808
809 The default values for the first two of these variables are 12 and 4
810 respectively, which means that `eval-expression' now prints at most
811 the first 12 members of a list and at most 4 nesting levels deep (if
812 the list is longer or deeper than that, an ellipsis `...' is
813 printed).
814
815 <RET> or <mouse-2> on the printed text toggles between an abbreviated
816 printed representation and an unabbreviated one.
817
818 The default value of eval-expression-debug-on-error is t, so any error
819 during evaluation produces a backtrace.
820
821 *** The function `eval-defun' (M-C-x) now loads Edebug and instruments
822 code when called with a prefix argument.
823
824 ** CC mode changes.
825
826 Note: This release contains changes that might not be compatible with
827 current user setups (although it's believed that these
828 incompatibilities will only show in very uncommon circumstances).
829 However, since the impact is uncertain, these changes may be rolled
830 back depending on user feedback. Therefore there's no forward
831 compatibility guarantee wrt the new features introduced in this
832 release.
833
834 *** The hardcoded switch to "java" style in Java mode is gone.
835 CC Mode used to automatically set the style to "java" when Java mode
836 is entered. This has now been removed since it caused too much
837 confusion.
838
839 However, to keep backward compatibility to a certain extent, the
840 default value for c-default-style now specifies the "java" style for
841 java-mode, but "gnu" for all other modes (as before). So you won't
842 notice the change if you haven't touched that variable.
843
844 *** New cleanups, space-before-funcall and compact-empty-funcall.
845 Two new cleanups have been added to c-cleanup-list:
846
847 space-before-funcall causes a space to be inserted before the opening
848 parenthesis of a function call, which gives the style "foo (bar)".
849
850 compact-empty-funcall causes any space before a function call opening
851 parenthesis to be removed if there are no arguments to the function.
852 It's typically useful together with space-before-funcall to get the
853 style "foo (bar)" and "foo()".
854
855 *** Some keywords now automatically trigger reindentation.
856 Keywords like "else", "while", "catch" and "finally" have been made
857 "electric" to make them reindent automatically when they continue an
858 earlier statement. An example:
859
860 for (i = 0; i < 17; i++)
861 if (a[i])
862 res += a[i]->offset;
863 else
864
865 Here, the "else" should be indented like the preceding "if", since it
866 continues that statement. CC Mode will automatically reindent it after
867 the "else" has been typed in full, since it's not until then it's
868 possible to decide whether it's a new statement or a continuation of
869 the preceding "if".
870
871 CC Mode uses Abbrev mode to achieve this, which is therefore turned on
872 by default.
873
874 *** M-a and M-e now moves by sentence in multiline strings.
875 Previously these two keys only moved by sentence in comments, which
876 meant that sentence movement didn't work in strings containing
877 documentation or other natural language text.
878
879 The reason it's only activated in multiline strings (i.e. strings that
880 contain a newline, even when escaped by a '\') is to avoid stopping in
881 the short strings that often reside inside statements. Multiline
882 strings almost always contain text in a natural language, as opposed
883 to other strings that typically contain format specifications,
884 commands, etc. Also, it's not that bothersome that M-a and M-e misses
885 sentences in single line strings, since they're short anyway.
886
887 *** Support for autodoc comments in Pike mode.
888 Autodoc comments for Pike are used to extract documentation from the
889 source, like Javadoc in Java. Pike mode now recognize this markup in
890 comment prefixes and paragraph starts.
891
892 *** The comment prefix regexps on c-comment-prefix may be mode specific.
893 When c-comment-prefix is an association list, it specifies the comment
894 line prefix on a per-mode basis, like c-default-style does. This
895 change came about to support the special autodoc comment prefix in
896 Pike mode only.
897
898 *** Better handling of syntactic errors.
899 The recovery after unbalanced parens earlier in the buffer has been
900 improved; CC Mode now reports them by dinging and giving a message
901 stating the offending line, but still recovers and indent the
902 following lines in a sane way (most of the time). An "else" with no
903 matching "if" is handled similarly. If an error is discovered while
904 indenting a region, the whole region is still indented and the error
905 is reported afterwards.
906
907 *** Lineup functions may now return absolute columns.
908 A lineup function can give an absolute column to indent the line to by
909 returning a vector with the desired column as the first element.
910
911 *** More robust and warning-free byte compilation.
912 Although this is strictly not a user visible change (well, depending
913 on the view of a user), it's still worth mentioning that CC Mode now
914 can be compiled in the standard ways without causing trouble. Some
915 code have also been moved between the subpackages to enhance the
916 modularity somewhat. Thanks to Martin Buchholz for doing the
917 groundwork.
918
919 *** c-style-variables-are-local-p now defaults to t.
920 This is an incompatible change that has been made to make the behavior
921 of the style system wrt global variable settings less confusing for
922 non-advanced users. If you know what this variable does you might
923 want to set it to nil in your .emacs, otherwise you probably don't
924 have to bother.
925
926 Defaulting c-style-variables-are-local-p to t avoids the confusing
927 situation that occurs when a user sets some style variables globally
928 and edits both a Java and a non-Java file in the same Emacs session.
929 If the style variables aren't buffer local in this case, loading of
930 the second file will cause the default style (either "gnu" or "java"
931 by default) to override the global settings made by the user.
932
933 *** New initialization procedure for the style system.
934 When the initial style for a buffer is determined by CC Mode (from the
935 variable c-default-style), the global values of style variables now
936 take precedence over the values specified by the chosen style. This
937 is different than the old behavior: previously, the style-specific
938 settings would override the global settings. This change makes it
939 possible to do simple configuration in the intuitive way with
940 Customize or with setq lines in one's .emacs file.
941
942 By default, the global value of every style variable is the new
943 special symbol set-from-style, which causes the value to be taken from
944 the style system. This means that in effect, only an explicit setting
945 of a style variable will cause the "overriding" behavior described
946 above.
947
948 Also note that global settings override style-specific settings *only*
949 when the initial style of a buffer is chosen by a CC Mode major mode
950 function. When a style is chosen in other ways --- for example, by a
951 call like (c-set-style "gnu") in a hook, or via M-x c-set-style ---
952 then the style-specific values take precedence over any global style
953 values. In Lisp terms, global values override style-specific values
954 only when the new second argument to c-set-style is non-nil; see the
955 function documentation for more info.
956
957 The purpose of these changes is to make it easier for users,
958 especially novice users, to do simple customizations with Customize or
959 with setq in their .emacs files. On the other hand, the new system is
960 intended to be compatible with advanced users' customizations as well,
961 such as those that choose styles in hooks or whatnot. This new system
962 is believed to be almost entirely compatible with current
963 configurations, in spite of the changed precedence between style and
964 global variable settings when a buffer's default style is set.
965
966 (Thanks to Eric Eide for clarifying this explanation a bit.)
967
968 **** c-offsets-alist is now a customizable variable.
969 This became possible as a result of the new initialization behavior.
970
971 This variable is treated slightly differently from the other style
972 variables; instead of using the symbol set-from-style, it will be
973 completed with the syntactic symbols it doesn't already contain when
974 the style is first initialized. This means it now defaults to the
975 empty list to make all syntactic elements get their values from the
976 style system.
977
978 **** Compatibility variable to restore the old behavior.
979 In case your configuration doesn't work with this change, you can set
980 c-old-style-variable-behavior to non-nil to get the old behavior back
981 as far as possible.
982
983 *** Improvements to line breaking and text filling.
984 CC Mode now handles this more intelligently and seamlessly wrt the
985 surrounding code, especially inside comments. For details see the new
986 chapter about this in the manual.
987
988 **** New variable to recognize comment line prefix decorations.
989 The variable c-comment-prefix-regexp has been added to properly
990 recognize the line prefix in both block and line comments. It's
991 primarily used to initialize the various paragraph recognition and
992 adaptive filling variables that the text handling functions uses.
993
994 **** New variable c-block-comment-prefix.
995 This is a generalization of the now obsolete variable
996 c-comment-continuation-stars to handle arbitrary strings.
997
998 **** CC Mode now uses adaptive fill mode.
999 This to make it adapt better to the paragraph style inside comments.
1000
1001 It's also possible to use other adaptive filling packages inside CC
1002 Mode, notably Kyle E. Jones' Filladapt mode (http://wonderworks.com/).
1003 A new convenience function c-setup-filladapt sets up Filladapt for use
1004 inside CC Mode.
1005
1006 Note though that the 2.12 version of Filladapt lacks a feature that
1007 causes it to work suboptimally when c-comment-prefix-regexp can match
1008 the empty string (which it commonly does). A patch for that is
1009 available from the CC Mode web site (http://www.python.org/emacs/
1010 cc-mode/).
1011
1012 **** The variables `c-hanging-comment-starter-p' and
1013 `c-hanging-comment-ender-p', which controlled how comment starters and
1014 enders were filled, are not used anymore. The new version of the
1015 function `c-fill-paragraph' keeps the comment starters and enders as
1016 they were before the filling.
1017
1018 **** It's now possible to selectively turn off auto filling.
1019 The variable c-ignore-auto-fill is used to ignore auto fill mode in
1020 specific contexts, e.g. in preprocessor directives and in string
1021 literals.
1022
1023 **** New context sensitive line break function c-context-line-break.
1024 It works like newline-and-indent in normal code, and adapts the line
1025 prefix according to the comment style when used inside comments. If
1026 you're normally using newline-and-indent, you might want to switch to
1027 this function.
1028
1029 *** Fixes to IDL mode.
1030 It now does a better job in recognizing only the constructs relevant
1031 to IDL. E.g. it no longer matches "class" as the beginning of a
1032 struct block, but it does match the CORBA 2.3 "valuetype" keyword.
1033 Thanks to Eric Eide.
1034
1035 *** Improvements to the Whitesmith style.
1036 It now keeps the style consistently on all levels and both when
1037 opening braces hangs and when they don't.
1038
1039 **** New lineup function c-lineup-whitesmith-in-block.
1040
1041 *** New lineup functions c-lineup-template-args and c-indent-multi-line-block.
1042 See their docstrings for details. c-lineup-template-args does a
1043 better job of tracking the brackets used as parens in C++ templates,
1044 and is used by default to line up continued template arguments.
1045
1046 *** c-lineup-comment now preserves alignment with a comment on the
1047 previous line. It used to instead preserve comments that started in
1048 the column specified by comment-column.
1049
1050 *** c-lineup-C-comments handles "free form" text comments.
1051 In comments with a long delimiter line at the start, the indentation
1052 is kept unchanged for lines that start with an empty comment line
1053 prefix. This is intended for the type of large block comments that
1054 contain documentation with its own formatting. In these you normally
1055 don't want CC Mode to change the indentation.
1056
1057 *** The `c' syntactic symbol is now relative to the comment start
1058 instead of the previous line, to make integers usable as lineup
1059 arguments.
1060
1061 *** All lineup functions have gotten docstrings.
1062
1063 *** More preprocessor directive movement functions.
1064 c-down-conditional does the reverse of c-up-conditional.
1065 c-up-conditional-with-else and c-down-conditional-with-else are
1066 variants of these that also stops at "#else" lines (suggested by Don
1067 Provan).
1068
1069 *** Minor improvements to many movement functions in tricky situations.
1070
1071 ** Dired changes
1072
1073 *** New variable `dired-recursive-deletes' determines if the delete
1074 command will delete non-empty directories recursively. The default
1075 is, delete only empty directories.
1076
1077 *** New variable `dired-recursive-copies' determines if the copy
1078 command will copy directories recursively. The default is, do not
1079 copy directories recursively.
1080
1081 *** In command `dired-do-shell-command' (usually bound to `!') a `?'
1082 in the shell command has a special meaning similar to `*', but with
1083 the difference that the command will be run on each file individually.
1084
1085 *** The new command `dired-find-alternate-file' (usually bound to `a')
1086 replaces the Dired buffer with the buffer for an alternate file or
1087 directory.
1088
1089 *** The new command `dired-show-file-type' (usually bound to `w') shows
1090 a message in the echo area describing what type of file the point is on.
1091 This command invokes the external program `file' do its work, and so
1092 will only work on systems with that program, and will be only as
1093 accurate or inaccurate as it is.
1094
1095 *** Dired now properly handles undo changes of adding/removing `-R'
1096 from ls switches.
1097
1098 *** Dired commands that prompt for a destination file now allow the use
1099 of the `M-n' command in the minibuffer to insert the source filename,
1100 which the user can then edit. This only works if there is a single
1101 source file, not when operating on multiple marked files.
1102
1103 +++
1104 ** Gnus changes.
1105
1106 The Gnus NEWS entries are short, but they reflect sweeping changes in
1107 four areas: Article display treatment, MIME treatment,
1108 internationalization and mail-fetching.
1109
1110 *** The mail-fetching functions have changed. See the manual for the
1111 many details. In particular, all procmail fetching variables are gone.
1112
1113 If you used procmail like in
1114
1115 (setq nnmail-use-procmail t)
1116 (setq nnmail-spool-file 'procmail)
1117 (setq nnmail-procmail-directory "~/mail/incoming/")
1118 (setq nnmail-procmail-suffix "\\.in")
1119
1120 this now has changed to
1121
1122 (setq mail-sources
1123 '((directory :path "~/mail/incoming/"
1124 :suffix ".in")))
1125
1126 More information is available in the info doc at Select Methods ->
1127 Getting Mail -> Mail Sources
1128
1129 *** Gnus is now a MIME-capable reader. This affects many parts of
1130 Gnus, and adds a slew of new commands. See the manual for details.
1131 Separate MIME packages like RMIME, mime-compose etc., will probably no
1132 longer work; remove them and use the native facilities.
1133
1134 The FLIM/SEMI package still works with Emacs 21, but if you want to
1135 use the native facilities, you must remove any mailcap.el[c] that was
1136 installed by FLIM/SEMI version 1.13 or earlier.
1137
1138 *** Gnus has also been multilingualized. This also affects too many
1139 parts of Gnus to summarize here, and adds many new variables. There
1140 are built-in facilities equivalent to those of gnus-mule.el, which is
1141 now just a compatibility layer.
1142
1143 *** gnus-auto-select-first can now be a function to be
1144 called to position point.
1145
1146 *** The user can now decide which extra headers should be included in
1147 summary buffers and NOV files.
1148
1149 *** `gnus-article-display-hook' has been removed. Instead, a number
1150 of variables starting with `gnus-treat-' have been added.
1151
1152 *** The Gnus posting styles have been redone again and now work in a
1153 subtly different manner.
1154
1155 *** New web-based backends have been added: nnslashdot, nnwarchive
1156 and nnultimate. nnweb has been revamped, again, to keep up with
1157 ever-changing layouts.
1158
1159 *** Gnus can now read IMAP mail via nnimap.
1160
1161 *** There is image support of various kinds and some sound support.
715 1162
716 ** Changes in Texinfo mode. 1163 ** Changes in Texinfo mode.
717 1164
718 *** A couple of new key bindings have been added for inserting Texinfo 1165 *** A couple of new key bindings have been added for inserting Texinfo
719 macros 1166 macros
760 1207
761 +++ 1208 +++
762 ** New command M-x check-parens can be used to find unbalanced paren 1209 ** New command M-x check-parens can be used to find unbalanced paren
763 groups and strings in buffers in Lisp mode (or other modes). 1210 groups and strings in buffers in Lisp mode (or other modes).
764 1211
765 +++
766 ** You can now easily create new *Info* buffers using either
767 M-x clone-buffer, C-u m <entry> RET or C-u g <entry> RET.
768 M-x clone-buffer can also be used on *Help* and several other special
769 buffers.
770
771 ** Listing buffers with M-x list-buffers (C-x C-b) now shows
772 abbreviated file names. Abbreviations can be customized by changing
773 `directory-abbrev-alist'.
774
775 ** Faces and frame parameters.
776
777 There are four new faces `scroll-bar', `border', `cursor' and `mouse'.
778 Setting the frame parameters `scroll-bar-foreground' and
779 `scroll-bar-background' sets foreground and background color of face
780 `scroll-bar' and vice versa. Setting frame parameter `border-color'
781 sets the background color of face `border' and vice versa. Likewise
782 for frame parameters `cursor-color' and face `cursor', and frame
783 parameter `mouse-color' and face `mouse'.
784
785 Changing frame parameter `font' sets font-related attributes of the
786 `default' face and vice versa. Setting frame parameters
787 `foreground-color' or `background-color' sets the colors of the
788 `default' face and vice versa.
789
790 +++
791 ** New face `menu'.
792
793 The face `menu' can be used to change colors and font of Emacs' menus.
794
795 +++
796 ** New frame parameter `screen-gamma' for gamma correction.
797
798 The new frame parameter `screen-gamma' specifies gamma-correction for
799 colors. Its value may be nil, the default, in which case no gamma
800 correction occurs, or a number > 0, usually a float, that specifies
801 the screen gamma of a frame's display.
802
803 PC monitors usually have a screen gamma of 2.2. smaller values result
804 in darker colors. You might want to try a screen gamma of 1.5 for LCD
805 color displays. The viewing gamma Emacs uses is 0.4545. (1/2.2).
806
807 The X resource name of this parameter is `screenGamma', class
808 `ScreenGamma'.
809
810 ** Tabs and variable-width text.
811
812 Tabs are now displayed with stretch properties; the width of a tab is
813 defined as a multiple of the normal character width of a frame, and is
814 independent of the fonts used in the text where the tab appears.
815 Thus, tabs can be used to line up text in different fonts.
816
817 ** Enhancements of the Lucid menu bar
818
819 +++
820 *** The Lucid menu bar now supports the resource "margin".
821
822 emacs.pane.menubar.margin: 5
823
824 The default margin is 4 which makes the menu bar appear like the
825 LessTif/Motif one.
826
827 *** Arrows that indicate sub-menus are now drawn with shadows, as in
828 LessTif and Motif.
829
830 ** Sound support
831
832 Emacs supports playing sound files on GNU/Linux and FreeBSD (Voxware
833 driver and native BSD driver, a.k.a. Luigi's driver). Currently
834 supported file formats are RIFF-WAVE (*.wav) and Sun Audio (*.au).
835
836 +++
837 ** A new variable, backup-by-copying-when-privileged-mismatch, gives
838 the highest file uid for which backup-by-copying-when-mismatch will be
839 forced on. The assumption is that uids less than or equal to this
840 value are special uids (root, bin, daemon, etc.--not real system
841 users) and that files owned by these users should not change ownership,
842 even if your system policy allows users other than root to edit them.
843
844 The default is 200; set the variable to nil to disable the feature.
845
846 +++
847 ** A block cursor can be drawn as wide as the glyph under it under X.
848
849 As an example: if a block cursor is over a tab character, it will be
850 drawn as wide as that tab on the display. To do this, set
851 `x-stretch-cursor' to a non-nil value.
852
853 +++
854 ** Empty display lines at the end of a buffer may be marked with a
855 bitmap (this is similar to the tilde displayed by vi).
856
857 This behavior is activated by setting the buffer-local variable
858 `indicate-empty-lines' to a non-nil value. The default value of this
859 variable is found in `default-indicate-empty-lines'.
860
861 +++
862 ** There is a new "aggressive" scrolling method.
863
864 When scrolling up because point is above the window start, if the
865 value of the buffer-local variable `scroll-up-aggressively' is a
866 number, Emacs chooses a new window start so that point ends up that
867 fraction of the window's height from the top of the window.
868
869 When scrolling down because point is below the window end, if the
870 value of the buffer-local variable `scroll-down-aggressively' is a
871 number, Emacs chooses a new window start so that point ends up that
872 fraction of the window's height from the bottom of the window.
873
874 ** The rectangle commands now avoid inserting undesirable spaces,
875 notably at the end of lines.
876
877 All these functions have been rewritten to avoid inserting unwanted
878 spaces, and an optional prefix now allows them to behave the old way.
879
880 +++
881 ** The function `replace-rectangle' is an alias for `string-rectangle'.
882
883 ** The new command M-x string-insert-rectangle is like `string-rectangle',
884 but inserts text instead of replacing it.
885
886 ** The new command M-x query-replace-regexp-eval acts like
887 query-replace-regexp, but takes a Lisp expression which is evaluated
888 after each match to get the replacement text.
889
890 +++
891 ** M-x query-replace recognizes a new command `e' (or `E') that lets
892 you edit the replacement string.
893
894 ** The new command mail-abbrev-complete-alias, bound to `M-TAB', lets
895 you complete mail aliases in the text, analogous to
896 lisp-complete-symbol.
897
898 ** The command `Info-search' now uses a search history.
899
900 ** Changes to hideshow.el 1212 ** Changes to hideshow.el
901 1213
902 *** Generalized block selection and traversal 1214 *** Generalized block selection and traversal
903 1215
904 A block is now recognized by its start and end regexps (both strings), 1216 A block is now recognized by its start and end regexps (both strings),
1116 defaults to 1. 1428 defaults to 1.
1117 1429
1118 ** Partial Completion mode now completes environment variables in 1430 ** Partial Completion mode now completes environment variables in
1119 file names. 1431 file names.
1120 1432
1121 +++
1122 ** Customize changes
1123
1124 *** Customize now supports comments about customized items. Use the
1125 `State' menu to add comments, or give a prefix argument to
1126 M-x customize-set-variable or M-x customize-set-value. Note that
1127 customization comments will cause the customizations to fail in
1128 earlier versions of Emacs.
1129
1130 *** The new option `custom-buffer-done-function' says whether to kill
1131 Custom buffers when you've done with them or just bury them (the
1132 default).
1133
1134 *** If Emacs was invoked with the `-q' or `--no-init-file' options, it
1135 does not allow you to save customizations in your `~/.emacs' init
1136 file. This is because saving customizations from such a session would
1137 wipe out all the other customizationss you might have on your init
1138 file.
1139
1140 ** New features in evaluation commands
1141
1142 *** The commands to evaluate Lisp expressions, such as C-M-x in Lisp
1143 modes, C-j in Lisp Interaction mode, and M-:, now bind the variables
1144 print-level, print-length, and debug-on-error based on the new
1145 customizable variables eval-expression-print-level,
1146 eval-expression-print-length, and eval-expression-debug-on-error.
1147
1148 The default values for the first two of these variables are 12 and 4
1149 respectively, which means that `eval-expression' now prints at most
1150 the first 12 members of a list and at most 4 nesting levels deep (if
1151 the list is longer or deeper than that, an ellipsis `...' is
1152 printed).
1153
1154 <RET> or <mouse-2> on the printed text toggles between an abbreviated
1155 printed representation and an unabbreviated one.
1156
1157 The default value of eval-expression-debug-on-error is t, so any error
1158 during evaluation produces a backtrace.
1159
1160 *** The function `eval-defun' (M-C-x) now loads Edebug and instruments
1161 code when called with a prefix argument.
1162
1163 ** Ispell changes 1433 ** Ispell changes
1164 1434
1165 +++ 1435 +++
1166 *** The command `ispell' now spell-checks a region if 1436 *** The command `ispell' now spell-checks a region if
1167 transient-mark-mode is on, and the mark is active. Otherwise it 1437 transient-mark-mode is on, and the mark is active. Otherwise it
1183 on syntax errors. 1453 on syntax errors.
1184 1454
1185 *** The buffer-local words are now always placed on a new line at the 1455 *** The buffer-local words are now always placed on a new line at the
1186 end of the buffer. 1456 end of the buffer.
1187 1457
1188 ** Dired changes 1458 *** Spell checking now works in the MS-DOS version of Emacs.
1189
1190 *** New variable `dired-recursive-deletes' determines if the delete
1191 command will delete non-empty directories recursively. The default
1192 is, delete only empty directories.
1193
1194 *** New variable `dired-recursive-copies' determines if the copy
1195 command will copy directories recursively. The default is, do not
1196 copy directories recursively.
1197
1198 *** In command `dired-do-shell-command' (usually bound to `!') a `?'
1199 in the shell command has a special meaning similar to `*', but with
1200 the difference that the command will be run on each file individually.
1201
1202 *** The new command `dired-find-alternate-file' (usually bound to `a')
1203 replaces the Dired buffer with the buffer for an alternate file or
1204 directory.
1205
1206 *** The new command `dired-show-file-type' (usually bound to `w') shows
1207 a message in the echo area describing what type of file the point is on.
1208 This command invokes the external program `file' do its work, and so
1209 will only work on systems with that program, and will be only as
1210 accurate or inaccurate as it is.
1211
1212 *** Dired now properly handles undo changes of adding/removing `-R'
1213 from ls switches.
1214
1215 *** Dired commands that prompt for a destination file now allow the use
1216 of the `M-n' command in the minibuffer to insert the source filename,
1217 which the user can then edit. This only works if there is a single
1218 source file, not when operating on multiple marked files.
1219 1459
1220 ** The variable mail-specify-envelope-from controls whether to 1460 ** The variable mail-specify-envelope-from controls whether to
1221 use the -f option when sending mail. 1461 use the -f option when sending mail.
1222
1223 ** CC mode changes.
1224
1225 Note: This release contains changes that might not be compatible with
1226 current user setups (although it's believed that these
1227 incompatibilities will only show in very uncommon circumstances).
1228 However, since the impact is uncertain, these changes may be rolled
1229 back depending on user feedback. Therefore there's no forward
1230 compatibility guarantee wrt the new features introduced in this
1231 release.
1232
1233 *** The hardcoded switch to "java" style in Java mode is gone.
1234 CC Mode used to automatically set the style to "java" when Java mode
1235 is entered. This has now been removed since it caused too much
1236 confusion.
1237
1238 However, to keep backward compatibility to a certain extent, the
1239 default value for c-default-style now specifies the "java" style for
1240 java-mode, but "gnu" for all other modes (as before). So you won't
1241 notice the change if you haven't touched that variable.
1242
1243 *** New cleanups, space-before-funcall and compact-empty-funcall.
1244 Two new cleanups have been added to c-cleanup-list:
1245
1246 space-before-funcall causes a space to be inserted before the opening
1247 parenthesis of a function call, which gives the style "foo (bar)".
1248
1249 compact-empty-funcall causes any space before a function call opening
1250 parenthesis to be removed if there are no arguments to the function.
1251 It's typically useful together with space-before-funcall to get the
1252 style "foo (bar)" and "foo()".
1253
1254 *** Some keywords now automatically trigger reindentation.
1255 Keywords like "else", "while", "catch" and "finally" have been made
1256 "electric" to make them reindent automatically when they continue an
1257 earlier statement. An example:
1258
1259 for (i = 0; i < 17; i++)
1260 if (a[i])
1261 res += a[i]->offset;
1262 else
1263
1264 Here, the "else" should be indented like the preceding "if", since it
1265 continues that statement. CC Mode will automatically reindent it after
1266 the "else" has been typed in full, since it's not until then it's
1267 possible to decide whether it's a new statement or a continuation of
1268 the preceding "if".
1269
1270 CC Mode uses Abbrev mode to achieve this, which is therefore turned on
1271 by default.
1272
1273 *** M-a and M-e now moves by sentence in multiline strings.
1274 Previously these two keys only moved by sentence in comments, which
1275 meant that sentence movement didn't work in strings containing
1276 documentation or other natural language text.
1277
1278 The reason it's only activated in multiline strings (i.e. strings that
1279 contain a newline, even when escaped by a '\') is to avoid stopping in
1280 the short strings that often reside inside statements. Multiline
1281 strings almost always contain text in a natural language, as opposed
1282 to other strings that typically contain format specifications,
1283 commands, etc. Also, it's not that bothersome that M-a and M-e misses
1284 sentences in single line strings, since they're short anyway.
1285
1286 *** Support for autodoc comments in Pike mode.
1287 Autodoc comments for Pike are used to extract documentation from the
1288 source, like Javadoc in Java. Pike mode now recognize this markup in
1289 comment prefixes and paragraph starts.
1290
1291 *** The comment prefix regexps on c-comment-prefix may be mode specific.
1292 When c-comment-prefix is an association list, it specifies the comment
1293 line prefix on a per-mode basis, like c-default-style does. This
1294 change came about to support the special autodoc comment prefix in
1295 Pike mode only.
1296
1297 *** Better handling of syntactic errors.
1298 The recovery after unbalanced parens earlier in the buffer has been
1299 improved; CC Mode now reports them by dinging and giving a message
1300 stating the offending line, but still recovers and indent the
1301 following lines in a sane way (most of the time). An "else" with no
1302 matching "if" is handled similarly. If an error is discovered while
1303 indenting a region, the whole region is still indented and the error
1304 is reported afterwards.
1305
1306 *** Lineup functions may now return absolute columns.
1307 A lineup function can give an absolute column to indent the line to by
1308 returning a vector with the desired column as the first element.
1309
1310 *** More robust and warning-free byte compilation.
1311 Although this is strictly not a user visible change (well, depending
1312 on the view of a user), it's still worth mentioning that CC Mode now
1313 can be compiled in the standard ways without causing trouble. Some
1314 code have also been moved between the subpackages to enhance the
1315 modularity somewhat. Thanks to Martin Buchholz for doing the
1316 groundwork.
1317
1318 *** c-style-variables-are-local-p now defaults to t.
1319 This is an incompatible change that has been made to make the behavior
1320 of the style system wrt global variable settings less confusing for
1321 non-advanced users. If you know what this variable does you might
1322 want to set it to nil in your .emacs, otherwise you probably don't
1323 have to bother.
1324
1325 Defaulting c-style-variables-are-local-p to t avoids the confusing
1326 situation that occurs when a user sets some style variables globally
1327 and edits both a Java and a non-Java file in the same Emacs session.
1328 If the style variables aren't buffer local in this case, loading of
1329 the second file will cause the default style (either "gnu" or "java"
1330 by default) to override the global settings made by the user.
1331
1332 *** New initialization procedure for the style system.
1333 When the initial style for a buffer is determined by CC Mode (from the
1334 variable c-default-style), the global values of style variables now
1335 take precedence over the values specified by the chosen style. This
1336 is different than the old behavior: previously, the style-specific
1337 settings would override the global settings. This change makes it
1338 possible to do simple configuration in the intuitive way with
1339 Customize or with setq lines in one's .emacs file.
1340
1341 By default, the global value of every style variable is the new
1342 special symbol set-from-style, which causes the value to be taken from
1343 the style system. This means that in effect, only an explicit setting
1344 of a style variable will cause the "overriding" behavior described
1345 above.
1346
1347 Also note that global settings override style-specific settings *only*
1348 when the initial style of a buffer is chosen by a CC Mode major mode
1349 function. When a style is chosen in other ways --- for example, by a
1350 call like (c-set-style "gnu") in a hook, or via M-x c-set-style ---
1351 then the style-specific values take precedence over any global style
1352 values. In Lisp terms, global values override style-specific values
1353 only when the new second argument to c-set-style is non-nil; see the
1354 function documentation for more info.
1355
1356 The purpose of these changes is to make it easier for users,
1357 especially novice users, to do simple customizations with Customize or
1358 with setq in their .emacs files. On the other hand, the new system is
1359 intended to be compatible with advanced users' customizations as well,
1360 such as those that choose styles in hooks or whatnot. This new system
1361 is believed to be almost entirely compatible with current
1362 configurations, in spite of the changed precedence between style and
1363 global variable settings when a buffer's default style is set.
1364
1365 (Thanks to Eric Eide for clarifying this explanation a bit.)
1366
1367 **** c-offsets-alist is now a customizable variable.
1368 This became possible as a result of the new initialization behavior.
1369
1370 This variable is treated slightly differently from the other style
1371 variables; instead of using the symbol set-from-style, it will be
1372 completed with the syntactic symbols it doesn't already contain when
1373 the style is first initialized. This means it now defaults to the
1374 empty list to make all syntactic elements get their values from the
1375 style system.
1376
1377 **** Compatibility variable to restore the old behavior.
1378 In case your configuration doesn't work with this change, you can set
1379 c-old-style-variable-behavior to non-nil to get the old behavior back
1380 as far as possible.
1381
1382 *** Improvements to line breaking and text filling.
1383 CC Mode now handles this more intelligently and seamlessly wrt the
1384 surrounding code, especially inside comments. For details see the new
1385 chapter about this in the manual.
1386
1387 **** New variable to recognize comment line prefix decorations.
1388 The variable c-comment-prefix-regexp has been added to properly
1389 recognize the line prefix in both block and line comments. It's
1390 primarily used to initialize the various paragraph recognition and
1391 adaptive filling variables that the text handling functions uses.
1392
1393 **** New variable c-block-comment-prefix.
1394 This is a generalization of the now obsolete variable
1395 c-comment-continuation-stars to handle arbitrary strings.
1396
1397 **** CC Mode now uses adaptive fill mode.
1398 This to make it adapt better to the paragraph style inside comments.
1399
1400 It's also possible to use other adaptive filling packages inside CC
1401 Mode, notably Kyle E. Jones' Filladapt mode (http://wonderworks.com/).
1402 A new convenience function c-setup-filladapt sets up Filladapt for use
1403 inside CC Mode.
1404
1405 Note though that the 2.12 version of Filladapt lacks a feature that
1406 causes it to work suboptimally when c-comment-prefix-regexp can match
1407 the empty string (which it commonly does). A patch for that is
1408 available from the CC Mode web site (http://www.python.org/emacs/
1409 cc-mode/).
1410
1411 **** The variables `c-hanging-comment-starter-p' and
1412 `c-hanging-comment-ender-p', which controlled how comment starters and
1413 enders were filled, are not used anymore. The new version of the
1414 function `c-fill-paragraph' keeps the comment starters and enders as
1415 they were before the filling.
1416
1417 **** It's now possible to selectively turn off auto filling.
1418 The variable c-ignore-auto-fill is used to ignore auto fill mode in
1419 specific contexts, e.g. in preprocessor directives and in string
1420 literals.
1421
1422 **** New context sensitive line break function c-context-line-break.
1423 It works like newline-and-indent in normal code, and adapts the line
1424 prefix according to the comment style when used inside comments. If
1425 you're normally using newline-and-indent, you might want to switch to
1426 this function.
1427
1428 *** Fixes to IDL mode.
1429 It now does a better job in recognizing only the constructs relevant
1430 to IDL. E.g. it no longer matches "class" as the beginning of a
1431 struct block, but it does match the CORBA 2.3 "valuetype" keyword.
1432 Thanks to Eric Eide.
1433
1434 *** Improvements to the Whitesmith style.
1435 It now keeps the style consistently on all levels and both when
1436 opening braces hangs and when they don't.
1437
1438 **** New lineup function c-lineup-whitesmith-in-block.
1439
1440 *** New lineup functions c-lineup-template-args and c-indent-multi-line-block.
1441 See their docstrings for details. c-lineup-template-args does a
1442 better job of tracking the brackets used as parens in C++ templates,
1443 and is used by default to line up continued template arguments.
1444
1445 *** c-lineup-comment now preserves alignment with a comment on the
1446 previous line. It used to instead preserve comments that started in
1447 the column specified by comment-column.
1448
1449 *** c-lineup-C-comments handles "free form" text comments.
1450 In comments with a long delimiter line at the start, the indentation
1451 is kept unchanged for lines that start with an empty comment line
1452 prefix. This is intended for the type of large block comments that
1453 contain documentation with its own formatting. In these you normally
1454 don't want CC Mode to change the indentation.
1455
1456 *** The `c' syntactic symbol is now relative to the comment start
1457 instead of the previous line, to make integers usable as lineup
1458 arguments.
1459
1460 *** All lineup functions have gotten docstrings.
1461
1462 *** More preprocessor directive movement functions.
1463 c-down-conditional does the reverse of c-up-conditional.
1464 c-up-conditional-with-else and c-down-conditional-with-else are
1465 variants of these that also stops at "#else" lines (suggested by Don
1466 Provan).
1467
1468 *** Minor improvements to many movement functions in tricky situations.
1469 1462
1470 ** Makefile mode changes 1463 ** Makefile mode changes
1471 1464
1472 *** The mode now uses the abbrev table `makefile-mode-abbrev-table'. 1465 *** The mode now uses the abbrev table `makefile-mode-abbrev-table'.
1473 1466
1504 1497
1505 If `isearch-lazy-highlight-cleanup' is set to t, highlights for 1498 If `isearch-lazy-highlight-cleanup' is set to t, highlights for
1506 matches are automatically cleared when you end the search. If it is 1499 matches are automatically cleared when you end the search. If it is
1507 set to nil, you can remove the highlights manually with `M-x 1500 set to nil, you can remove the highlights manually with `M-x
1508 isearch-lazy-highlight-cleanup'. 1501 isearch-lazy-highlight-cleanup'.
1509
1510 +++
1511 ** Changes in sort.el
1512
1513 The function sort-numeric-fields interprets numbers starting with `0'
1514 as octal and numbers starting with `0x' or `0X' as hexadecimal. The
1515 new user-option sort-numeric-base can be used to specify a default
1516 numeric base.
1517
1518 ** Changes to Ange-ftp
1519
1520 +++
1521 *** Ange-ftp allows you to specify of a port number in remote file
1522 names cleanly. It is appended to the host name, separated by a hash
1523 sign, e.g. `/foo@bar.org#666:mumble'. (This syntax comes from EFS.)
1524
1525 *** If the new user-option `ange-ftp-try-passive-mode' is set, passive
1526 ftp mode will be used if the ftp client supports that.
1527
1528 *** Ange-ftp handles the output of the w32-style clients which
1529 output ^M at the end of lines.
1530
1531 ** Shell script mode changes.
1532
1533 Shell script mode (sh-script) can now indent scripts for shells
1534 derived from sh and rc. The indentation style is customizable, and
1535 sh-script can attempt to "learn" the current buffer's style.
1536
1537 ** Etags changes.
1538
1539 *** In DOS, etags looks for file.cgz if it cannot find file.c.
1540
1541 *** New option --ignore-case-regex is an alternative to --regex. It is now
1542 possible to bind a regexp to a language, by prepending the regexp with
1543 {lang}, where lang is one of the languages that `etags --help' prints out.
1544 This feature is useful especially for regex files, where each line contains
1545 a regular expression. The manual contains details.
1546
1547 *** In C and derived languages, etags creates tags for function
1548 declarations when given the --declarations option.
1549
1550 *** In C++, tags are created for "operator". The tags have the form
1551 "operator+", without spaces between the keyword and the operator.
1552
1553 *** You shouldn't generally need any more the -C or -c++ option: etags
1554 automatically switches to C++ parsing when it meets the `class' or
1555 `template' keywords.
1556
1557 *** Etags now is able to delve at arbitrary deeps into nested structures in
1558 C-like languages. Previously, it was limited to one or two brace levels.
1559
1560 *** New language Ada: tags are functions, procedures, packages, tasks, and
1561 types.
1562
1563 *** In Fortran, `procedure' is not tagged.
1564
1565 *** In Java, tags are created for "interface".
1566
1567 *** In Lisp, "(defstruct (foo", "(defun (operator" and similar constructs
1568 are now tagged.
1569
1570 *** In makefiles, tags the targets.
1571
1572 *** In Perl, the --globals option tags global variables. my and local
1573 variables are tagged.
1574
1575 *** New language Python: def and class at the beginning of a line are tags.
1576
1577 *** .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is
1578 for PSWrap.
1579
1580 +++
1581 ** Changes in etags.el
1582
1583 *** The new user-option tags-case-fold-search can be used to make
1584 tags operations case-sensitive or case-insensitive. The default
1585 is to use the same setting as case-fold-search.
1586
1587 *** You can display additional output with M-x tags-apropos by setting
1588 the new variable tags-apropos-additional-actions.
1589
1590 If non-nil, the variable's value should be a list of triples (TITLE
1591 FUNCTION TO-SEARCH). For each triple, M-x tags-apropos processes
1592 TO-SEARCH and lists tags from it. TO-SEARCH should be an alist,
1593 obarray, or symbol. If it is a symbol, the symbol's value is used.
1594
1595 TITLE is a string to use to label the list of tags from TO-SEARCH.
1596
1597 FUNCTION is a function to call when an entry is selected in the Tags
1598 List buffer. It is called with one argument, the selected symbol.
1599
1600 A useful example value for this variable might be something like:
1601
1602 '(("Emacs Lisp" Info-goto-emacs-command-node obarray)
1603 ("Common Lisp" common-lisp-hyperspec common-lisp-hyperspec-obarray)
1604 ("SCWM" scwm-documentation scwm-obarray))
1605
1606 *** The face tags-tag-face can be used to customize the appearance
1607 of tags in the output of M-x tags-apropos.
1608
1609 *** Setting tags-apropos-verbose to a non-nil value displays the
1610 names of tags files in the *Tags List* buffer.
1611
1612 *** You can now search for tags that are part of the filename itself.
1613 If you have tagged the files topfile.c subdir/subfile.c
1614 /tmp/tempfile.c, you can now search for tags "topfile.c", "subfile.c",
1615 "dir/sub", "tempfile", "tempfile.c". If the tag matches the file name,
1616 point will go to the beginning of the file.
1617
1618 *** Compressed files are now transparently supported if
1619 auto-compression-mode is active. You can tag (with Etags) and search
1620 (with find-tag) both compressed and uncompressed files.
1621
1622 *** Tags commands like M-x tags-search no longer change point
1623 in buffers where no match is found. In buffers where a match is
1624 found, the original value of point is pushed on the marker ring.
1625
1626 +++
1627 ** Emacs now attempts to determine the initial language environment
1628 and preferred and locale coding systems systematically from the
1629 LC_ALL, LC_CTYPE, and LANG environment variables during startup.
1630
1631 +++
1632 ** New language environments `Polish', `Latin-8' and `Latin-9'.
1633 Latin-8 and Latin-9 correspond respectively to the ISO character sets
1634 8859-14 (Celtic) and 8859-15 (updated Latin-1, with the Euro sign).
1635 GNU Intlfonts doesn't support these yet but recent X releases have
1636 8859-15. See etc/INSTALL for information on obtaining extra fonts.
1637 There are new Leim input methods for Latin-8 and Latin-9 prefix (only)
1638 and Polish `slash'.
1639
1640 +++
1641 ** New language environments `Dutch' and `Spanish'.
1642 These new environments mainly select appropriate translations
1643 of the tutorial.
1644
1645 ** In Ethiopic language environment, special key bindings for
1646 function keys are changed as follows. This is to conform to "Emacs
1647 Lisp Coding Convention".
1648
1649 new command old-binding
1650 --- ------- -----------
1651 f3 ethio-fidel-to-sera-buffer f5
1652 S-f3 ethio-fidel-to-sera-region f5
1653 C-f3 ethio-fidel-to-sera-mail-or-marker f5
1654
1655 f4 ethio-sera-to-fidel-buffer unchanged
1656 S-f4 ethio-sera-to-fidel-region unchanged
1657 C-f4 ethio-sera-to-fidel-mail-or-marker unchanged
1658
1659 S-f5 ethio-toggle-punctuation f3
1660 S-f6 ethio-modify-vowel f6
1661 S-f7 ethio-replace-space f7
1662 S-f8 ethio-input-special-character f8
1663 S-f9 ethio-replace-space unchanged
1664 C-f9 ethio-toggle-space f2
1665
1666 ** The rule of input method "slovak" is slightly changed. Now the
1667 rules for translating "q" and "Q" to "`" (backquote) are deleted, thus
1668 typing them inserts "q" and "Q" respectively. Rules for translating
1669 "=q", "+q", "=Q", and "+Q" to "`" are also deleted. Now, to input
1670 "`", you must type "=q".
1671
1672 +++
1673 ** Fortran mode has a new command `fortran-strip-sequence-nos' to
1674 remove text past column 72. The syntax class of `\' in Fortran is now
1675 appropriate for C-style escape sequences in strings.
1676
1677 ** SGML mode's default `sgml-validate-command' is now `nsgmls'.
1678
1679 +++
1680 ** A new command `view-emacs-problems' (C-h P) displays the PROBLEMS file.
1681
1682 +++
1683 ** The Dabbrev package has a new user-option `dabbrev-ignored-regexps'
1684 containing a list of regular expressions. Buffers matching a regular
1685 expression from that list, are not checked.
1686
1687 ** Emacs can now figure out modification times of remote files.
1688 When you do C-x C-f /user@host:/path/file RET and edit the file,
1689 and someone else modifies the file, you will be prompted to revert
1690 the buffer, just like for the local files.
1691
1692 ** The buffer menu (C-x C-b) no longer lists the *Buffer List* buffer.
1693
1694 +++
1695 ** When invoked with a prefix argument, the command `list-abbrevs' now
1696 displays local abbrevs, only.
1697 1502
1698 ** VC Changes 1503 ** VC Changes
1699 1504
1700 VC has been overhauled internally. It is now modular, making it 1505 VC has been overhauled internally. It is now modular, making it
1701 easier to plug-in arbitrary version control backends. (See Lisp 1506 easier to plug-in arbitrary version control backends. (See Lisp
2202 they can be profiled, debugged, etc. 2007 they can be profiled, debugged, etc.
2203 2008
2204 *** antlr-mode is a new major mode for editing ANTLR grammar files. 2009 *** antlr-mode is a new major mode for editing ANTLR grammar files.
2205 It is automatically turned on for files whose names have the extension 2010 It is automatically turned on for files whose names have the extension
2206 `.g'. 2011 `.g'.
2012
2013 +++
2014 ** Changes in sort.el
2015
2016 The function sort-numeric-fields interprets numbers starting with `0'
2017 as octal and numbers starting with `0x' or `0X' as hexadecimal. The
2018 new user-option sort-numeric-base can be used to specify a default
2019 numeric base.
2020
2021 ** Changes to Ange-ftp
2022
2023 +++
2024 *** Ange-ftp allows you to specify of a port number in remote file
2025 names cleanly. It is appended to the host name, separated by a hash
2026 sign, e.g. `/foo@bar.org#666:mumble'. (This syntax comes from EFS.)
2027
2028 *** If the new user-option `ange-ftp-try-passive-mode' is set, passive
2029 ftp mode will be used if the ftp client supports that.
2030
2031 *** Ange-ftp handles the output of the w32-style clients which
2032 output ^M at the end of lines.
2033
2034 +++
2035 ** The recommended way of using Iswitchb is via the new global minor
2036 mode `iswitchb-mode'.
2037
2038 +++
2039 ** Just loading the msb package doesn't switch on Msb mode anymore.
2040 If you have `(require 'msb)' in your .emacs, please replace it with
2041 `(msb-mode 1)'.
2042
2043 ** Flyspell mode has various new options. See the `flyspell' Custom
2044 group.
2045
2046 ** The user option `backward-delete-char-untabify-method' controls the
2047 behavior of `backward-delete-char-untabify'. The following values
2048 are recognized:
2049
2050 `untabify' -- turn a tab to many spaces, then delete one space;
2051 `hungry' -- delete all whitespace, both tabs and spaces;
2052 `all' -- delete all whitespace, including tabs, spaces and newlines;
2053 nil -- just delete one character.
2054
2055 Default value is `untabify'.
2056
2057 [This change was made in Emacs 20.3 but not mentioned then.]
2058
2059 ** In Cperl mode `cperl-invalid-face' should now be a normal face
2060 symbol, not double-quoted.
2061
2062 ** Some packages are declared obsolete, to be removed in a future
2063 version. They are: auto-show, c-mode, hilit19, hscroll, ooutline,
2064 profile, rnews, rnewspost, and sc. Their implementations have been
2065 moved to lisp/obsolete.
2066
2067 ** auto-compression mode is no longer enabled just by loading jka-compr.el.
2068 To control it, set `auto-compression-mode' via Custom or use the
2069 `auto-compression-mode' command.
2070
2071 ** `browse-url-gnome-moz' is a new option for
2072 `browse-url-browser-function', invoking Mozilla in GNOME, and
2073 `browse-url-kde' can be chosen for invoking the KDE browser.
2074
2075 ** The user-option `browse-url-new-window-p' has been renamed to
2076 `browse-url-new-window-flag'.
2077
2078 +++
2079 ** The functions `keep-lines', `flush-lines' and `how-many' now
2080 operate on the active region in Transient Mark mode.
2081
2082 +++
2083 ** `gnus-user-agent' is a new possibility for `mail-user-agent'. It
2084 is like `message-user-agent', but with all the Gnus paraphernalia.
2085
2086 ** The Strokes package has been updated. If your Emacs has XPM
2087 support, you can use it for pictographic editing. In Strokes mode,
2088 use C-mouse-2 to compose a complex stoke and insert it into the
2089 buffer. You can encode or decode a strokes buffer with new commands
2090 M-x strokes-encode-buffer and M-x strokes-decode-buffer. There is a
2091 new command M-x strokes-list-strokes.
2092
2093 +++
2094 ** Hexl contains a new command `hexl-insert-hex-string' which inserts
2095 a string of hexadecimal numbers read from the mini-buffer.
2096
2097 ** Hexl mode allows to insert non-ASCII characters.
2098
2099 The non-ASCII characters are encoded using the same encoding as the
2100 file you are visiting in Hexl mode.
2101
2102 ** Shell script mode changes.
2103
2104 Shell script mode (sh-script) can now indent scripts for shells
2105 derived from sh and rc. The indentation style is customizable, and
2106 sh-script can attempt to "learn" the current buffer's style.
2107
2108 ** Etags changes.
2109
2110 *** In DOS, etags looks for file.cgz if it cannot find file.c.
2111
2112 *** New option --ignore-case-regex is an alternative to --regex. It is now
2113 possible to bind a regexp to a language, by prepending the regexp with
2114 {lang}, where lang is one of the languages that `etags --help' prints out.
2115 This feature is useful especially for regex files, where each line contains
2116 a regular expression. The manual contains details.
2117
2118 *** In C and derived languages, etags creates tags for function
2119 declarations when given the --declarations option.
2120
2121 *** In C++, tags are created for "operator". The tags have the form
2122 "operator+", without spaces between the keyword and the operator.
2123
2124 *** You shouldn't generally need any more the -C or -c++ option: etags
2125 automatically switches to C++ parsing when it meets the `class' or
2126 `template' keywords.
2127
2128 *** Etags now is able to delve at arbitrary deeps into nested structures in
2129 C-like languages. Previously, it was limited to one or two brace levels.
2130
2131 *** New language Ada: tags are functions, procedures, packages, tasks, and
2132 types.
2133
2134 *** In Fortran, `procedure' is not tagged.
2135
2136 *** In Java, tags are created for "interface".
2137
2138 *** In Lisp, "(defstruct (foo", "(defun (operator" and similar constructs
2139 are now tagged.
2140
2141 *** In makefiles, tags the targets.
2142
2143 *** In Perl, the --globals option tags global variables. my and local
2144 variables are tagged.
2145
2146 *** New language Python: def and class at the beginning of a line are tags.
2147
2148 *** .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is
2149 for PSWrap.
2150
2151 +++
2152 ** Changes in etags.el
2153
2154 *** The new user-option tags-case-fold-search can be used to make
2155 tags operations case-sensitive or case-insensitive. The default
2156 is to use the same setting as case-fold-search.
2157
2158 *** You can display additional output with M-x tags-apropos by setting
2159 the new variable tags-apropos-additional-actions.
2160
2161 If non-nil, the variable's value should be a list of triples (TITLE
2162 FUNCTION TO-SEARCH). For each triple, M-x tags-apropos processes
2163 TO-SEARCH and lists tags from it. TO-SEARCH should be an alist,
2164 obarray, or symbol. If it is a symbol, the symbol's value is used.
2165
2166 TITLE is a string to use to label the list of tags from TO-SEARCH.
2167
2168 FUNCTION is a function to call when an entry is selected in the Tags
2169 List buffer. It is called with one argument, the selected symbol.
2170
2171 A useful example value for this variable might be something like:
2172
2173 '(("Emacs Lisp" Info-goto-emacs-command-node obarray)
2174 ("Common Lisp" common-lisp-hyperspec common-lisp-hyperspec-obarray)
2175 ("SCWM" scwm-documentation scwm-obarray))
2176
2177 *** The face tags-tag-face can be used to customize the appearance
2178 of tags in the output of M-x tags-apropos.
2179
2180 *** Setting tags-apropos-verbose to a non-nil value displays the
2181 names of tags files in the *Tags List* buffer.
2182
2183 *** You can now search for tags that are part of the filename itself.
2184 If you have tagged the files topfile.c subdir/subfile.c
2185 /tmp/tempfile.c, you can now search for tags "topfile.c", "subfile.c",
2186 "dir/sub", "tempfile", "tempfile.c". If the tag matches the file name,
2187 point will go to the beginning of the file.
2188
2189 *** Compressed files are now transparently supported if
2190 auto-compression-mode is active. You can tag (with Etags) and search
2191 (with find-tag) both compressed and uncompressed files.
2192
2193 *** Tags commands like M-x tags-search no longer change point
2194 in buffers where no match is found. In buffers where a match is
2195 found, the original value of point is pushed on the marker ring.
2196
2197 +++
2198 ** Fortran mode has a new command `fortran-strip-sequence-nos' to
2199 remove text past column 72. The syntax class of `\' in Fortran is now
2200 appropriate for C-style escape sequences in strings.
2201
2202 ** SGML mode's default `sgml-validate-command' is now `nsgmls'.
2203
2204 +++
2205 ** A new command `view-emacs-problems' (C-h P) displays the PROBLEMS file.
2206
2207 +++
2208 ** The Dabbrev package has a new user-option `dabbrev-ignored-regexps'
2209 containing a list of regular expressions. Buffers matching a regular
2210 expression from that list, are not checked.
2211
2212 ** Emacs can now figure out modification times of remote files.
2213 When you do C-x C-f /user@host:/path/file RET and edit the file,
2214 and someone else modifies the file, you will be prompted to revert
2215 the buffer, just like for the local files.
2216
2217 ** The buffer menu (C-x C-b) no longer lists the *Buffer List* buffer.
2218
2219 +++
2220 ** When invoked with a prefix argument, the command `list-abbrevs' now
2221 displays local abbrevs, only.
2207 2222
2208 +++ 2223 +++
2209 ** Refill minor mode provides preliminary support for keeping 2224 ** Refill minor mode provides preliminary support for keeping
2210 paragraphs filled as you modify them. 2225 paragraphs filled as you modify them.
2211 2226
4645 terminals. When Emacs starts, it by default changes the cursor shape 4660 terminals. When Emacs starts, it by default changes the cursor shape
4646 to a solid box, as it does on Unix. The `cursor-type' frame parameter 4661 to a solid box, as it does on Unix. The `cursor-type' frame parameter
4647 overrides this as it does on Unix, except that the bar cursor is 4662 overrides this as it does on Unix, except that the bar cursor is
4648 horizontal rather than vertical (since the MS-DOS display doesn't 4663 horizontal rather than vertical (since the MS-DOS display doesn't
4649 support a vertical-bar cursor). 4664 support a vertical-bar cursor).
4650
4651 4665
4652 4666
4653 4667
4654 * Emacs 20.7 is a bug-fix release with few user-visible changes 4668 * Emacs 20.7 is a bug-fix release with few user-visible changes
4655 4669