comparison etc/NEWS @ 90261:7beb78bc1f8e

Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-97 Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 616-696) - Add lisp/mh-e/.arch-inventory - Update from CVS - Merge from gnus--rel--5.10 - Update from CVS: lisp/smerge-mode.el: Add 'tools' to file keywords. - lisp/gnus/ChangeLog: Remove duplicate entry * gnus--rel--5.10 (patch 147-181) - Update from CVS - Merge from emacs--cvs-trunk--0 - Update from CVS: lisp/mml.el (mml-preview): Doc fix. - Update from CVS: texi/message.texi: Fix default values. - Update from CVS: texi/gnus.texi (RSS): Addition.
author Miles Bader <miles@gnu.org>
date Mon, 16 Jan 2006 08:37:27 +0000
parents 0ca0d9181b5e 0c26a0aebc97
children d88caeac70d7
comparison
equal deleted inserted replaced
90260:0ca0d9181b5e 90261:7beb78bc1f8e
191 --- 191 ---
192 ** The Emacs terminal emulation in term.el uses a different terminfo name. 192 ** The Emacs terminal emulation in term.el uses a different terminfo name.
193 The Emacs terminal emulation in term.el now uses "eterm-color" as its 193 The Emacs terminal emulation in term.el now uses "eterm-color" as its
194 terminfo name, since term.el now supports color. 194 terminfo name, since term.el now supports color.
195 195
196 ---
197 ** Emacs Lisp source files are compressed by default if `gzip' is available.
198
196 199
197 * Startup Changes in Emacs 22.1 200 * Startup Changes in Emacs 22.1
198 201
199 +++ 202 +++
200 ** New command line option -Q or --quick. 203 ** New command line option -Q or --quick.
254 disables the splash screen; see also the variable 257 disables the splash screen; see also the variable
255 `inhibit-startup-message' (which is also aliased as 258 `inhibit-startup-message' (which is also aliased as
256 `inhibit-splash-screen'). 259 `inhibit-splash-screen').
257 260
258 +++ 261 +++
259 ** The default is now to use an bitmap as the icon, so the command-line options 262 ** The default is now to use a bitmap as the icon, so the command-line options
260 --icon-type, -i has been replaced with options --no-bitmap-icon, -nbi to turn 263 --icon-type, -i has been replaced with options --no-bitmap-icon, -nbi to turn
261 the bitmap icon off. 264 the bitmap icon off.
262 265
263 +++ 266 +++
264 ** New user option `inhibit-startup-buffer-menu'. 267 ** New user option `inhibit-startup-buffer-menu'.
265 When loading many files, for instance with `emacs *', Emacs normally 268 When loading many files, for instance with `emacs *', Emacs normally
266 displays a buffer menu. This option turns the buffer menu off. 269 displays a buffer menu. This option turns the buffer menu off.
267 270
268 +++ 271 +++
269 ** Init file changes 272 ** Init file changes
270 You can now put the init files .emacs and .emacs_SHELL under 273 If the init file ~/.emacs does not exist, Emacs will try
271 ~/.emacs.d or directly under ~. Emacs will find them in either place. 274 ~/.emacs.d/init.el or ~/.emacs.d/init.elc. You can also put the shell
275 init file .emacs_SHELL under ~/.emacs.d.
272 276
273 +++ 277 +++
274 ** Emacs now reads the standard abbrevs file ~/.abbrev_defs 278 ** Emacs now reads the standard abbrevs file ~/.abbrev_defs
275 automatically at startup, if it exists. When Emacs offers to save 279 automatically at startup, if it exists. When Emacs offers to save
276 modified buffers, it saves the abbrevs too if they have changed. It 280 modified buffers, it saves the abbrevs too if they have changed. It
309 ** `apply-macro-to-region-lines' now operates on all lines that begin 313 ** `apply-macro-to-region-lines' now operates on all lines that begin
310 in the region, rather than on all complete lines in the region. 314 in the region, rather than on all complete lines in the region.
311 315
312 +++ 316 +++
313 ** A prefix argument is no longer required to repeat a jump to a 317 ** A prefix argument is no longer required to repeat a jump to a
314 previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the 318 previous mark if you set `set-mark-command-repeat-pop' to t. I.e. C-u
315 mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump. 319 C-SPC C-SPC C-SPC ... cycles through the mark ring. Use C-u C-u C-SPC
320 to set the mark immediately after a jump.
316 321
317 +++ 322 +++
318 ** The info-search bindings on C-h C-f, C-h C-k and C-h C-i 323 ** The info-search bindings on C-h C-f, C-h C-k and C-h C-i
319 have been moved to C-h F, C-h K and C-h S. 324 have been moved to C-h F, C-h K and C-h S.
320 325
328 333
329 Since the default input is the current directory, this has the effect 334 Since the default input is the current directory, this has the effect
330 of specifying the current directory. Normally that means to visit the 335 of specifying the current directory. Normally that means to visit the
331 directory with Dired. 336 directory with Dired.
332 337
338 You can get the old behavior by typing C-x C-f M-n RET, which fetches
339 the actual file name into the minibuffer.
340
333 +++ 341 +++
334 ** The completion commands TAB, SPC and ? in the minibuffer apply only 342 ** The completion commands TAB, SPC and ? in the minibuffer apply only
335 to the text before point. If there is text in the buffer after point, 343 to the text before point. If there is text in the buffer after point,
336 it remains unchanged. 344 it remains unchanged.
345
346 +++
347 ** When Emacs prompts for file names, SPC no longer completes the file name.
348 This is so filenames with embedded spaces could be input without the
349 need to quote the space with a C-q. The underlying changes in the
350 keymaps that are active in the minibuffer are described below under
351 "New keymaps for typing file names".
337 352
338 +++ 353 +++
339 ** M-o now is the prefix key for setting text properties; 354 ** M-o now is the prefix key for setting text properties;
340 M-o M-o requests refontification. 355 M-o M-o requests refontification.
341 356
353 special treatment in `dired-do-shell-command'. 368 special treatment in `dired-do-shell-command'.
354 369
355 * Editing Changes in Emacs 22.1 370 * Editing Changes in Emacs 22.1
356 371
357 +++ 372 +++
373 ** !MEM FULL! at the start of the mode line indicates that Emacs
374 cannot get any more memory for Lisp data. This often means it could
375 crash soon if you do things that use more memory. On most systems,
376 killing buffers will get out of this state. If killing buffers does
377 not make !MEM FULL! disappear, you should save your work and start
378 a new Emacs.
379
380 +++
358 ** The max size of buffers and integers has been doubled. 381 ** The max size of buffers and integers has been doubled.
359 On 32bit machines, it is now 256M (i.e. 268435455). 382 On 32bit machines, it is now 256M (i.e. 268435455).
360 383
361 +++ 384 +++
362 ** M-g is now a prefix key. 385 ** You can now switch buffers in a cyclic order with C-x C-left
363 M-g g and M-g M-g run goto-line. 386 (previous-buffer) and C-x C-right (next-buffer). C-x left and
364 M-g n and M-g M-n run next-error (like C-x `). 387 C-x right can be used as well. The functions keep a different buffer
365 M-g p and M-g M-p run previous-error. 388 cycle for each frame, using the frame-local buffer list.
366
367 +++
368 ** C-u M-g M-g switches to the most recent previous buffer,
369 and goes to the specified line in that buffer.
370
371 When goto-line starts to execute, if there's a number in the buffer at
372 point then it acts as the default argument for the minibuffer.
373
374 +++
375 ** The old bindings C-M-delete and C-M-backspace have been deleted,
376 since there are situations where one or the other will shut down
377 the operating system or your X server.
378
379 +++
380 ** line-move-ignore-invisible now defaults to t.
381
382 +++
383 ** When the undo information of the current command gets really large
384 (beyond the value of `undo-outer-limit'), Emacs discards it and warns
385 you about it.
386
387 +++
388 ** `apply-macro-to-region-lines' now operates on all lines that begin
389 in the region, rather than on all complete lines in the region.
390
391 +++
392 ** You can now switch buffers in a cyclic order with C-x C-left and
393 (prev-buffer) and C-x C-right (next-buffer). C-x left and C-x right
394 can be used as well.
395 389
396 +++ 390 +++
397 ** `undo-only' does an undo which does not redo any previous undo. 391 ** `undo-only' does an undo which does not redo any previous undo.
398 392
399 +++ 393 +++
402 396
403 --- 397 ---
404 ** New commands to operate on pairs of open and close characters: 398 ** New commands to operate on pairs of open and close characters:
405 `insert-pair', `delete-pair', `raise-sexp'. 399 `insert-pair', `delete-pair', `raise-sexp'.
406 400
407 --- 401 +++
408 ** New command `kill-whole-line' kills an entire line at once. 402 ** New command `kill-whole-line' kills an entire line at once.
409 By default, it is bound to C-S-<backspace>. 403 By default, it is bound to C-S-<backspace>.
410 404
411 +++ 405 +++
412 ** Yanking text now discards certain text properties that can 406 ** Yanking text now discards certain text properties that can
494 +++ 488 +++
495 *** Changes in C-h bindings: 489 *** Changes in C-h bindings:
496 490
497 C-h e displays the *Messages* buffer. 491 C-h e displays the *Messages* buffer.
498 492
493 C-h d runs apropos-documentation.
494
499 C-h followed by a control character is used for displaying files 495 C-h followed by a control character is used for displaying files
500 that do not change: 496 that do not change:
501 497
502 C-h C-f displays the FAQ. 498 C-h C-f displays the FAQ.
503 C-h C-e displays the PROBLEMS file. 499 C-h C-e displays the PROBLEMS file.
504 500
505 The info-search bindings on C-h C-f, C-h C-k and C-h C-i 501 The info-search bindings on C-h C-f, C-h C-k and C-h C-i
506 have been moved to C-h F, C-h K and C-h S. 502 have been moved to C-h F, C-h K and C-h S.
507 503
508 C-h c, C-h k, C-h w, and C-h f now handle remapped interactive commands. 504 C-h c, C-h k, C-h w, and C-h f now handle remapped interactive commands.
509
510 - C-h c and C-h k report the actual command (after possible remapping) 505 - C-h c and C-h k report the actual command (after possible remapping)
511 run by the key sequence. 506 run by the key sequence.
512
513 - C-h w and C-h f on a command which has been remapped now report the 507 - C-h w and C-h f on a command which has been remapped now report the
514 command it is remapped to, and the keys which can be used to run 508 command it is remapped to, and the keys which can be used to run
515 that command. 509 that command.
516 510
517 For example, if C-k is bound to kill-line, and kill-line is remapped 511 For example, if C-k is bound to kill-line, and kill-line is remapped
518 to new-kill-line, these commands now report: 512 to new-kill-line, these commands now report:
519
520 - C-h c and C-h k C-k reports: 513 - C-h c and C-h k C-k reports:
521 C-k runs the command new-kill-line 514 C-k runs the command new-kill-line
522
523 - C-h w and C-h f kill-line reports: 515 - C-h w and C-h f kill-line reports:
524 kill-line is remapped to new-kill-line which is on C-k, <deleteline> 516 kill-line is remapped to new-kill-line which is on C-k, <deleteline>
525
526 - C-h w and C-h f new-kill-line reports: 517 - C-h w and C-h f new-kill-line reports:
527 new-kill-line is on C-k 518 new-kill-line is on C-k
528 519
529 --- 520 ---
530 *** Help commands `describe-function' and `describe-key' now show function 521 *** Help commands `describe-function' and `describe-key' now show function
541 preceded or followed by the word `face'. It no longer makes 532 preceded or followed by the word `face'. It no longer makes
542 hyperlinks for variables without variable documentation, unless 533 hyperlinks for variables without variable documentation, unless
543 preceded by one of the words `variable' or `option'. It now makes 534 preceded by one of the words `variable' or `option'. It now makes
544 hyperlinks to Info anchors (or nodes) if the anchor (or node) name is 535 hyperlinks to Info anchors (or nodes) if the anchor (or node) name is
545 enclosed in single quotes and preceded by `info anchor' or `Info 536 enclosed in single quotes and preceded by `info anchor' or `Info
546 anchor' (in addition to earlier `info node' and `Info node'). 537 anchor' (in addition to earlier `info node' and `Info node'). In
538 addition, it now makes hyperlinks to URLs as well if the URL is
539 enclosed in single quotes and preceded by `URL'.
547 540
548 +++ 541 +++
549 *** The new command `describe-char' (C-u C-x =) pops up a buffer with 542 *** The new command `describe-char' (C-u C-x =) pops up a buffer with
550 description various information about a character, including its 543 description various information about a character, including its
551 encodings and syntax, its text properties, how to input, overlays, and 544 encodings and syntax, its text properties, how to input, overlays, and
652 Instead, the `$ENVVAR' text is left as is, so that `$$' quoting 645 Instead, the `$ENVVAR' text is left as is, so that `$$' quoting
653 is only rarely needed. 646 is only rarely needed.
654 647
655 +++ 648 +++
656 *** In processing a local variables list, Emacs strips the prefix and 649 *** In processing a local variables list, Emacs strips the prefix and
657 suffix are from every line before processing all the lines. 650 suffix from every line before processing all the lines.
658 651
659 +++ 652 +++
660 *** find-file-read-only visits multiple files in read-only mode, 653 *** find-file-read-only visits multiple files in read-only mode,
661 when the file name contains wildcard characters. 654 when the file name contains wildcard characters.
662 655
729 sets require-final-newline based on mode-require-final-newline. 722 sets require-final-newline based on mode-require-final-newline.
730 So you can customize mode-require-final-newline to control what these 723 So you can customize mode-require-final-newline to control what these
731 modes do. 724 modes do.
732 725
733 ** Minibuffer changes: 726 ** Minibuffer changes:
727
728 +++
729 *** The new file-name-shadow-mode is turned ON by default, so that when
730 entering a file name, any prefix which Emacs will ignore is dimmed.
734 731
735 +++ 732 +++
736 *** There's a new face `minibuffer-prompt'. 733 *** There's a new face `minibuffer-prompt'.
737 Emacs adds this face to the list of text properties stored in the 734 Emacs adds this face to the list of text properties stored in the
738 variable `minibuffer-prompt-properties', which is used to display the 735 variable `minibuffer-prompt-properties', which is used to display the
807 804
808 The variable `automatic-hscrolling' was renamed to 805 The variable `automatic-hscrolling' was renamed to
809 `auto-hscroll-mode'. The old name is still available as an alias. 806 `auto-hscroll-mode'. The old name is still available as an alias.
810 807
811 --- 808 ---
812 *** Moving or scrolling through images (and other lines) taller that 809 *** Moving or scrolling through images (and other lines) taller than
813 the window now works sensibly, by automatically adjusting the window's 810 the window now works sensibly, by automatically adjusting the window's
814 vscroll property. 811 vscroll property.
815 812
816 +++ 813 +++
817 *** The new face `mode-line-inactive' is used to display the mode line 814 *** The new face `mode-line-inactive' is used to display the mode line
892 appears in. 889 appears in.
893 890
894 +++ 891 +++
895 *** The variable `cursor-in-non-selected-windows' can now be set to any 892 *** The variable `cursor-in-non-selected-windows' can now be set to any
896 of the recognized cursor types. 893 of the recognized cursor types.
894
895 +++
896 *** On text terminals, the variable `visible-cursor' controls whether Emacs
897 uses the "very visible" cursor (the default) or the normal cursor.
897 898
898 ** New faces: 899 ** New faces:
899 900
900 +++ 901 +++
901 *** `mode-line-highlight' is the standard face indicating mouse sensitive 902 *** `mode-line-highlight' is the standard face indicating mouse sensitive
1269 1270
1270 ** Buffer Menu changes: 1271 ** Buffer Menu changes:
1271 1272
1272 +++ 1273 +++
1273 *** New command `Buffer-menu-toggle-files-only' toggles display of file 1274 *** New command `Buffer-menu-toggle-files-only' toggles display of file
1274 buffers only in the Buffer Menu. It is bound to `T' in Buffer Menu 1275 buffers only in the Buffer Menu. It is bound to T in Buffer Menu
1275 mode. 1276 mode.
1276 1277
1277 +++ 1278 +++
1278 *** `buffer-menu' and `list-buffers' now list buffers whose names begin 1279 *** `buffer-menu' and `list-buffers' now list buffers whose names begin
1279 with a space, when those buffers are visiting files. Normally buffers 1280 with a space, when those buffers are visiting files. Normally buffers
1357 `comint-kill-region' is like `kill-region', except that it ignores 1358 `comint-kill-region' is like `kill-region', except that it ignores
1358 read-only properties, if it is safe to do so. This means that if any 1359 read-only properties, if it is safe to do so. This means that if any
1359 part of a prompt is deleted, then the entire prompt must be deleted 1360 part of a prompt is deleted, then the entire prompt must be deleted
1360 and that all prompts must stay at the beginning of a line. If this is 1361 and that all prompts must stay at the beginning of a line. If this is
1361 not the case, then `comint-kill-region' behaves just like 1362 not the case, then `comint-kill-region' behaves just like
1362 `kill-region' if read-only are involved: it copies the text to the 1363 `kill-region' if read-only properties are involved: it copies the text
1363 kill-ring, but does not delete it. 1364 to the kill-ring, but does not delete it.
1364 1365
1365 +++ 1366 +++
1366 *** The new command `comint-insert-previous-argument' in comint-derived 1367 *** The new command `comint-insert-previous-argument' in comint-derived
1367 modes (shell-mode etc) inserts arguments from previous command lines, 1368 modes (shell-mode, etc.) inserts arguments from previous command lines,
1368 like bash's `ESC .' binding. It is bound by default to `C-c .', but 1369 like bash's `ESC .' binding. It is bound by default to `C-c .', but
1369 otherwise behaves quite similarly to the bash version. 1370 otherwise behaves quite similarly to the bash version.
1370 1371
1371 +++ 1372 +++
1372 *** `comint-use-prompt-regexp-instead-of-fields' has been renamed 1373 *** `comint-use-prompt-regexp-instead-of-fields' has been renamed
1595 corresponding articles in a web browser. Its documentation is in a 1596 corresponding articles in a web browser. Its documentation is in a
1596 separate manual. 1597 separate manual.
1597 1598
1598 +++ 1599 +++
1599 ** savehist saves minibuffer histories between sessions. 1600 ** savehist saves minibuffer histories between sessions.
1601 To use this feature, turn on savehist-mode in your `.emacs' file.
1600 1602
1601 +++ 1603 +++
1602 ** Filesets are collections of files. You can define a fileset in 1604 ** Filesets are collections of files. You can define a fileset in
1603 various ways, such as based on a directory tree or based on 1605 various ways, such as based on a directory tree or based on
1604 program files that include other program files. 1606 program files that include other program files.
1609 1611
1610 +++ 1612 +++
1611 ** Calc is now part of the Emacs distribution. 1613 ** Calc is now part of the Emacs distribution.
1612 1614
1613 Calc is an advanced desk calculator and mathematical tool written in 1615 Calc is an advanced desk calculator and mathematical tool written in
1614 Emacs Lisp. Its documentation is in a separate manual; within Emacs, 1616 Emacs Lisp. The prefix for Calc has been changed to `C-x *' and Calc
1615 type "C-h i m calc RET" to read that manual. A reference card is 1617 can be started with `C-x * *'. The Calc manual is separate from the
1616 available in `etc/calccard.tex' and `etc/calccard.ps'. 1618 Emacs manual; within Emacs, type "C-h i m calc RET" to read the
1619 manual. A reference card is available in `etc/calccard.tex' and
1620 `etc/calccard.ps'.
1617 1621
1618 --- 1622 ---
1619 ** The new package ibuffer provides a powerful, completely 1623 ** The new package ibuffer provides a powerful, completely
1620 customizable replacement for buff-menu.el. 1624 customizable replacement for buff-menu.el.
1621 1625
1827 these tables in a special major mode. The package emulates WYSIWYG 1831 these tables in a special major mode. The package emulates WYSIWYG
1828 table editing available in modern word processors. The package also 1832 table editing available in modern word processors. The package also
1829 can generate a table source in typesetting and markup languages such 1833 can generate a table source in typesetting and markup languages such
1830 as latex and html from the visually laid out text table. 1834 as latex and html from the visually laid out text table.
1831 1835
1832 +++ 1836 ** The tumme.el package allows you to easily view, tag and in other ways
1833 ** The thumbs.el package allows you to preview image files as thumbnails 1837 manipulate image files and their thumbnails, using dired as the main interface.
1834 and can be invoked from a Dired buffer. 1838 Tumme provides functionality to generate simple image galleries.
1835 1839
1836 +++ 1840 +++
1837 ** Tramp is now part of the distribution. 1841 ** Tramp is now part of the distribution.
1838 1842
1839 This package is similar to Ange-FTP: it allows you to edit remote 1843 This package is similar to Ange-FTP: it allows you to edit remote
1884 instead and point will be kept vertically fixed relative to window 1888 instead and point will be kept vertically fixed relative to window
1885 boundaries during scrolling. 1889 boundaries during scrolling.
1886 1890
1887 * Changes in Specialized Modes and Packages in Emacs 22.1: 1891 * Changes in Specialized Modes and Packages in Emacs 22.1:
1888 1892
1893 ** Changes in Hi Lock:
1894
1895 +++
1896 *** hi-lock-mode now only affects a single buffer, and a new function
1897 `global-hi-lock-mode' enables Hi Lock in all buffers. By default, if
1898 hi-lock-mode is used in what appears to be the initialization file, a
1899 warning message suggests to use global-hi-lock-mode instead. However,
1900 if the new variable `hi-lock-archaic-interface-deduce' is non-nil,
1901 using hi-lock-mode in an initialization file will turn on Hi Lock in all
1902 buffers and no warning will be issued (for compatibility with the
1903 behavior in older versions of Emacs).
1904
1889 ** Changes in Allout 1905 ** Changes in Allout
1890 1906
1891 *** Topic cryptography added, enabling easy gpg topic encryption and 1907 *** Topic cryptography added, enabling easy gpg topic encryption and
1892 decryption. Per-topic basis enables interspersing encrypted-text and 1908 decryption. Per-topic basis enables interspersing encrypted-text and
1893 clear-text within a single file to your hearts content, using symmetric 1909 clear-text within a single file to your hearts content, using symmetric
1896 pending topics on save, and more, make it easy to use encryption in 1912 pending topics on save, and more, make it easy to use encryption in
1897 powerful ways. 1913 powerful ways.
1898 1914
1899 *** many substantial fixes and refinements, including: 1915 *** many substantial fixes and refinements, including:
1900 1916
1901 - repaired inhibition of inadvertant edits to concealed text 1917 - repaired inhibition of inadvertent edits to concealed text
1902 - repaired retention of topic body hanging indent upon topic depth shifts 1918 - repaired retention of topic body hanging indent upon topic depth shifts
1903 - prevent "containment discontinuities" where a topic is shifted deeper 1919 - prevent "containment discontinuities" where a topic is shifted deeper
1904 than the offspring-depth of its' container 1920 than the offspring-depth of its container
1905 - easy to adopt the distinctive bullet of a topic in a topic created 1921 - easy to adopt the distinctive bullet of a topic in a topic created
1906 relative to it, or select a new one, or use the common topic bullet 1922 relative to it, or select a new one, or use the common topic bullet
1907 - plain bullets, by default, now alternate between only two characters 1923 - plain bullets, by default, now alternate between only two characters
1908 ('.' and ','), yielding less cluttered outlines. 1924 ('.' and ','), yielding less cluttered outlines
1909 - many internal fixes. 1925 - many internal fixes
1926 - version number incremented to 2.1
1910 1927
1911 ** The variable `woman-topic-at-point' was renamed 1928 ** The variable `woman-topic-at-point' was renamed
1912 to `woman-use-topic-at-point' and behaves differently: if this 1929 to `woman-use-topic-at-point' and behaves differently: if this
1913 variable is non-nil, the `woman' command uses the word at point 1930 variable is non-nil, the `woman' command uses the word at point
1914 automatically, without asking for a confirmation. Otherwise, the word 1931 automatically, without asking for a confirmation. Otherwise, the word
2078 function also defines the result format for `eval-expression' (M-:), 2095 function also defines the result format for `eval-expression' (M-:),
2079 `eval-print-last-sexp' (C-j) and some edebug evaluation functions. 2096 `eval-print-last-sexp' (C-j) and some edebug evaluation functions.
2080 2097
2081 +++ 2098 +++
2082 ** CC mode changes. 2099 ** CC mode changes.
2100
2101 *** The CC Mode manual has been extensively revised.
2102 The information about using CC Mode has been separated from the larger
2103 and more difficult chapters about configuration.
2104
2105 *** Changes in Key Sequences
2106 **** c-toggle-auto-hungry-state is no longer bound to C-c C-t.
2107
2108 **** c-toggle-hungry-state is no longer bound to C-c C-d.
2109 This binding has been taken over by c-hungry-delete-forwards.
2110
2111 **** c-toggle-auto-state (C-c C-t) has been renamed to c-toggle-auto-newline.
2112 c-toggle-auto-state remains as an alias.
2113
2114 **** The new commands c-hungry-backspace and c-hungry-delete-forwards
2115 have key bindings C-c C-DEL (or C-c DEL, for the benefit of TTYs) and
2116 C-c C-d (or C-c C-<delete> or C-c <delete>) respectively. These
2117 commands delete entire blocks of whitespace with a single
2118 key-sequence. [N.B. "DEL" is the <backspace> key.]
2119
2120 **** The new command c-toggle-electric-mode is bound to C-c C-l.
2121
2122 **** The new command c-subword-mode is bound to C-c C-w.
2123
2124 *** C-c C-s (`c-show-syntactic-information') now highlights the anchor
2125 position(s).
2126
2127 *** New Minor Modes
2128 **** Electric Minor Mode toggles the electric action of non-alphabetic keys.
2129 The new command c-toggle-electric-mode is bound to C-c C-l. Turning the
2130 mode off can be helpful for editing chaotically indented code and for
2131 users new to CC Mode, who sometimes find electric indentation
2132 disconcerting. Its current state is displayed in the mode line with an
2133 'l', e.g. "C/al".
2134
2135 **** Subword Minor Mode makes Emacs recognize word boundaries at upper case
2136 letters in StudlyCapsIdentifiers. You enable this feature by C-c C-w. It can
2137 also be used in non-CC Mode buffers. :-) Contributed by Masatake YAMATO.
2138
2139 *** New clean-ups
2140
2141 **** `comment-close-slash'.
2142 With this clean-up, a block (i.e. c-style) comment can be terminated by
2143 typing a slash at the start of a line.
2144
2145 **** `c-one-liner-defun'
2146 This clean-up compresses a short enough defun (for example, an AWK
2147 pattern/action pair) onto a single line. "Short enough" is configurable.
2083 2148
2084 *** Font lock support. 2149 *** Font lock support.
2085 CC Mode now provides font lock support for all its languages. This 2150 CC Mode now provides font lock support for all its languages. This
2086 supersedes the font lock patterns that have been in the core font lock 2151 supersedes the font lock patterns that have been in the core font lock
2087 package for C, C++, Java and Objective-C. Like indentation, font 2152 package for C, C++, Java and Objective-C. Like indentation, font
2098 demanding analysis which can be slow on older hardware, and it can 2163 demanding analysis which can be slow on older hardware, and it can
2099 therefore be disabled by choosing a lower decoration level with the 2164 therefore be disabled by choosing a lower decoration level with the
2100 variable font-lock-maximum-decoration. 2165 variable font-lock-maximum-decoration.
2101 2166
2102 Note that the most demanding font lock level has been tuned with lazy 2167 Note that the most demanding font lock level has been tuned with lazy
2103 fontification in mind, i.e. there should be a support mode that waits 2168 fontification in mind; Just-In-Time-Lock mode should be enabled for
2104 with the fontification until the text is actually shown 2169 the highest font lock level (by default, it is). Fontifying a file
2105 (e.g. Just-in-time Lock mode, which is the default, or Lazy Lock 2170 with several thousand lines in one go can take the better part of a
2106 mode). Fontifying a file with several thousand lines in one go can 2171 minute.
2107 take the better part of a minute.
2108 2172
2109 **** The (c|c++|objc|java|idl|pike)-font-lock-extra-types variables 2173 **** The (c|c++|objc|java|idl|pike)-font-lock-extra-types variables
2110 are now used by CC Mode to recognize identifiers that are certain to 2174 are now used by CC Mode to recognize identifiers that are certain to
2111 be types. (They are also used in cases that aren't related to font 2175 be types. (They are also used in cases that aren't related to font
2112 locking.) At the maximum decoration level, types are often recognized 2176 locking.) At the maximum decoration level, types are often recognized
2117 There is a "plugin" system to fontify documentation comments like 2181 There is a "plugin" system to fontify documentation comments like
2118 Javadoc and the markup within them. It's independent of the host 2182 Javadoc and the markup within them. It's independent of the host
2119 language, so it's possible to e.g. turn on Javadoc font locking in C 2183 language, so it's possible to e.g. turn on Javadoc font locking in C
2120 buffers. See the variable c-doc-comment-style for details. 2184 buffers. See the variable c-doc-comment-style for details.
2121 2185
2122 Currently two kinds of doc comment styles are recognized: Suns Javadoc 2186 Currently three kinds of doc comment styles are recognized: Sun's
2123 and Autodoc which is used in Pike. This is by no means a complete 2187 Javadoc, Autodoc (which is used in Pike) and GtkDoc (used in C). (The
2124 list of the most common tools; if your doc comment extractor of choice 2188 last was contributed by Masatake YAMATO). This is by no means a
2125 is missing then please drop a note to bug-cc-mode@gnu.org. 2189 complete list of the most common tools; if your doc comment extractor
2190 of choice is missing then please drop a note to bug-cc-mode@gnu.org.
2126 2191
2127 **** Better handling of C++ templates. 2192 **** Better handling of C++ templates.
2128 As a side effect of the more accurate font locking, C++ templates are 2193 As a side effect of the more accurate font locking, C++ templates are
2129 now handled much better. The angle brackets that delimit them are 2194 now handled much better. The angle brackets that delimit them are
2130 given parenthesis syntax so that they can be navigated like other 2195 given parenthesis syntax so that they can be navigated like other
2155 which start actions, user-defined functions, or compound statements are 2220 which start actions, user-defined functions, or compound statements are
2156 placed on the same line as the associated construct; the matching `}'s 2221 placed on the same line as the associated construct; the matching `}'s
2157 are normally placed under the start of the respective pattern, function 2222 are normally placed under the start of the respective pattern, function
2158 definition, or structured statement. 2223 definition, or structured statement.
2159 2224
2160 The predefined indentation functions haven't yet been adapted for AWK 2225 The predefined line-up functions haven't yet been adapted for AWK
2161 mode, though some of them may work serendipitously. There shouldn't be 2226 mode, though some of them may work serendipitously. There shouldn't
2162 any problems writing custom indentation functions for AWK mode. 2227 be any problems writing custom indentation functions for AWK mode.
2163
2164 The command C-c C-q (c-indent-defun) hasn't yet been adapted for AWK,
2165 though in practice it works properly nearly all the time. Should it
2166 fail, explicitly set the region around the function (using C-u C-SPC:
2167 C-M-h probably won't work either) then do C-M-\ (indent-region).
2168 2228
2169 **** Font Locking 2229 **** Font Locking
2170 There is a single level of font locking in AWK mode, rather than the 2230 There is a single level of font locking in AWK mode, rather than the
2171 three distinct levels the other modes have. There are several 2231 three distinct levels the other modes have. There are several
2172 idiosyncrasies in AWK mode's font-locking due to the peculiarities of 2232 idiosyncrasies in AWK mode's font-locking due to the peculiarities of
2173 the AWK language itself. 2233 the AWK language itself.
2174 2234
2175 **** Comment Commands 2235 **** Comment and Movement Commands
2176 M-; (indent-for-comment) works fine. None of the other CC Mode 2236 These commands all work for AWK buffers. The notion of "defun" has
2177 comment formatting commands have yet been adapted for AWK mode. 2237 been augmented to include AWK pattern-action pairs - the standard
2178 2238 "defun" commands on key sequences C-M-a, C-M-e, and C-M-h use this
2179 **** Movement Commands 2239 extended definition.
2180 Most of the movement commands work in AWK mode. The most important 2240
2181 exceptions are M-a (c-beginning-of-statement) and M-e 2241 **** "awk" style, Auto-newline Insertion and Clean-ups
2182 (c-end-of-statement) which haven't yet been adapted. 2242 A new style, "awk" has been introduced, and this is now the default
2183 2243 style for AWK code. With auto-newline enabled, the clean-up
2184 The notion of "defun" has been augmented to include AWK pattern-action 2244 c-one-liner-defun (see above) is useful.
2185 pairs. C-M-a (c-awk-beginning-of-defun) and C-M-e (c-awk-end-of-defun)
2186 recognize these pattern-action pairs, as well as user defined
2187 functions.
2188
2189 **** Auto-newline Insertion and Clean-ups
2190 Auto-newline insertion hasn't yet been adapted for AWK. Some of
2191 the clean-ups can actually convert good AWK code into syntactically
2192 invalid code. These features are best disabled in AWK buffers.
2193 2245
2194 *** New syntactic symbols in IDL mode. 2246 *** New syntactic symbols in IDL mode.
2195 The top level constructs "module" and "composition" (from CIDL) are 2247 The top level constructs "module" and "composition" (from CIDL) are
2196 now handled like "namespace" in C++: They are given syntactic symbols 2248 now handled like "namespace" in C++: They are given syntactic symbols
2197 module-open, module-close, inmodule, composition-open, 2249 module-open, module-close, inmodule, composition-open,
2198 composition-close, and incomposition. 2250 composition-close, and incomposition.
2199 2251
2200 *** New functions to do hungry delete without enabling hungry delete mode. 2252 *** New functions to do hungry delete without enabling hungry delete mode.
2201 The functions `c-hungry-backspace' and `c-hungry-delete-forward' can be 2253 The new functions `c-hungry-backspace' and `c-hungry-delete-forward'
2202 bound to keys to get this feature without toggling a mode. 2254 provide hungry deletion without having to toggle a mode. They are
2255 bound to C-c C-DEL and C-c C-d (and several variants, for the benefit
2256 of different keyboard setups. See "Changes in key sequences" above).
2203 2257
2204 *** Better control over `require-final-newline'. 2258 *** Better control over `require-final-newline'.
2205 2259
2206 The variable `c-require-final-newline' specifies which of the modes 2260 The variable `c-require-final-newline' specifies which of the modes
2207 implemented by CC mode should insert final newlines. Its value is a 2261 implemented by CC mode should insert final newlines. Its value is a
2225 ((inclass 11) (topmost-intro 13)) 2279 ((inclass 11) (topmost-intro 13))
2226 2280
2227 In some cases there are more than one position given for a syntactic 2281 In some cases there are more than one position given for a syntactic
2228 symbol. 2282 symbol.
2229 2283
2230 This change might affect code that call `c-guess-basic-syntax' directly, 2284 This change might affect code that calls `c-guess-basic-syntax'
2231 and custom lineup functions if they use `c-syntactic-context'. However, 2285 directly, and custom lineup functions if they use
2232 the argument given to lineup functions is still a single cons cell 2286 `c-syntactic-context'. However, the argument given to lineup
2233 with nil or an integer in the cdr. 2287 functions is still a single cons cell with nil or an integer in the
2288 cdr.
2234 2289
2235 *** API changes for derived modes. 2290 *** API changes for derived modes.
2236 2291
2237 There have been extensive changes "under the hood" which can affect 2292 There have been extensive changes "under the hood" which can affect
2238 derived mode writers. Some of these changes are likely to cause 2293 derived mode writers. Some of these changes are likely to cause
2239 incompatibilities with existing derived modes, but on the other hand 2294 incompatibilities with existing derived modes, but on the other hand
2240 care has now been taken to make it possible to extend and modify CC 2295 care has now been taken to make it possible to extend and modify CC
2241 Mode with less risk of such problems in the future. 2296 Mode with less risk of such problems in the future.
2242 2297
2243 **** New language variable system. 2298 **** New language variable system.
2244 See the comment blurb near the top of cc-langs.el. 2299 These are variables whose values vary between CC Mode's different
2300 languages. See the comment blurb near the top of cc-langs.el.
2245 2301
2246 **** New initialization functions. 2302 **** New initialization functions.
2247 The initialization procedure has been split up into more functions to 2303 The initialization procedure has been split up into more functions to
2248 give better control: `c-basic-common-init', `c-font-lock-init', and 2304 give better control: `c-basic-common-init', `c-font-lock-init', and
2249 `c-init-language-vars'. 2305 `c-init-language-vars'.
2289 This applies to the newlines inserted by the auto-newline mode, and to 2345 This applies to the newlines inserted by the auto-newline mode, and to
2290 `c-context-line-break' and `c-context-open-line'. 2346 `c-context-line-break' and `c-context-open-line'.
2291 2347
2292 **** Better alignment of line continuation backslashes. 2348 **** Better alignment of line continuation backslashes.
2293 `c-backslash-region' tries to adapt to surrounding backslashes. New 2349 `c-backslash-region' tries to adapt to surrounding backslashes. New
2294 variable `c-backslash-max-column' which put a limit on how far out 2350 variable `c-backslash-max-column' puts a limit on how far out
2295 backslashes can be moved. 2351 backslashes can be moved.
2296 2352
2297 **** Automatic alignment of line continuation backslashes. 2353 **** Automatic alignment of line continuation backslashes.
2298 This is controlled by the new variable `c-auto-align-backslashes'. It 2354 This is controlled by the new variable `c-auto-align-backslashes'. It
2299 affects `c-context-line-break', `c-context-open-line' and newlines 2355 affects `c-context-line-break', `c-context-open-line' and newlines
2300 inserted in Auto-Newline mode. 2356 inserted in Auto-Newline mode.
2357
2301 **** Line indentation works better inside macros. 2358 **** Line indentation works better inside macros.
2302
2303 Regardless whether syntactic indentation and syntactic indentation 2359 Regardless whether syntactic indentation and syntactic indentation
2304 inside macros are enabled or not, line indentation now ignores the 2360 inside macros are enabled or not, line indentation now ignores the
2305 line continuation backslashes. This is most noticeable when syntactic 2361 line continuation backslashes. This is most noticeable when syntactic
2306 indentation is turned off and there are empty lines (save for the 2362 indentation is turned off and there are empty lines (save for the
2307 backslash) in the macro. 2363 backslash) in the macro.
2308 2364
2309 *** indent-for-comment is more customizable. 2365 *** indent-for-comment is more customizable.
2310 The behavior of M-; (indent-for-comment) is now configurable through 2366 The behavior of M-; (indent-for-comment) is now configurable through
2311 the variable `c-indent-comment-alist'. The indentation behavior based 2367 the variable `c-indent-comment-alist'. The indentation behavior is
2312 on the preceding code on the line, e.g. to get two spaces after #else 2368 based on the preceding code on the line, e.g. to get two spaces after
2313 and #endif but indentation to `comment-column' in most other cases 2369 #else and #endif but indentation to `comment-column' in most other
2314 (something which was hardcoded earlier). 2370 cases (something which was hardcoded earlier).
2315 2371
2316 *** New function `c-context-open-line'. 2372 *** New function `c-context-open-line'.
2317 It's the open-line equivalent of `c-context-line-break'. 2373 It's the open-line equivalent of `c-context-line-break'.
2318 2374
2319 *** New lineup functions 2375 *** New lineup functions
2405 *** The new function `f90-backslash-not-special' can be used to change 2461 *** The new function `f90-backslash-not-special' can be used to change
2406 the syntax of backslashes in F90 buffers. 2462 the syntax of backslashes in F90 buffers.
2407 2463
2408 --- 2464 ---
2409 ** Reftex mode changes 2465 ** Reftex mode changes
2466
2410 +++ 2467 +++
2411 *** Changes to RefTeX's table of contents 2468 *** Changes to RefTeX's table of contents
2412 2469
2413 The new command keys "<" and ">" in the TOC buffer promote/demote the 2470 The new command keys "<" and ">" in the TOC buffer promote/demote the
2414 section at point or all sections in the current region, with full 2471 section at point or all sections in the current region, with full
2522 2579
2523 *** The new command `bibtex-url' browses a URL for the BibTeX entry at 2580 *** The new command `bibtex-url' browses a URL for the BibTeX entry at
2524 point (bound to C-c C-l and mouse-2, RET on clickable fields). 2581 point (bound to C-c C-l and mouse-2, RET on clickable fields).
2525 2582
2526 *** The new command `bibtex-entry-update' (bound to C-c C-u) updates 2583 *** The new command `bibtex-entry-update' (bound to C-c C-u) updates
2527 an existing BibTeX entry. 2584 an existing BibTeX entry by inserting fields that may occur but are not
2585 present.
2528 2586
2529 *** New `bibtex-entry-format' option `required-fields', enabled by default. 2587 *** New `bibtex-entry-format' option `required-fields', enabled by default.
2530 2588
2531 *** `bibtex-maintain-sorted-entries' can take values `plain', 2589 *** `bibtex-maintain-sorted-entries' can take values `plain',
2532 `crossref', and `entry-class' which control the sorting scheme used 2590 `crossref', and `entry-class' which control the sorting scheme used
2560 *** The new command `bibtex-validate-globally' checks for duplicate keys 2618 *** The new command `bibtex-validate-globally' checks for duplicate keys
2561 in multiple BibTeX files. 2619 in multiple BibTeX files.
2562 2620
2563 *** The new command `bibtex-copy-summary-as-kill' pushes summary 2621 *** The new command `bibtex-copy-summary-as-kill' pushes summary
2564 of BibTeX entry to kill ring (bound to C-c C-t). 2622 of BibTeX entry to kill ring (bound to C-c C-t).
2623
2624 *** The new variables bibtex-expand-strings and
2625 bibtex-autokey-expand-strings control the expansion of strings when
2626 extracting the content of a BibTeX field.
2565 2627
2566 +++ 2628 +++
2567 ** In Enriched mode, `set-left-margin' and `set-right-margin' are now 2629 ** In Enriched mode, `set-left-margin' and `set-right-margin' are now
2568 by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l' 2630 by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l'
2569 and `C-c C-r'. 2631 and `C-c C-r'.
2599 not executing. 2661 not executing.
2600 2662
2601 --- 2663 ---
2602 ** GUD mode improvements for jdb: 2664 ** GUD mode improvements for jdb:
2603 2665
2604 *** Search for source files using jdb classpath and class 2666 *** Search for source files using jdb classpath and class information.
2605 information. Fast startup since there is no need to scan all 2667 Fast startup since there is no need to scan all source files up front.
2606 source files up front. There is also no need to create and maintain 2668 There is also no need to create and maintain lists of source
2607 lists of source directories to scan. Look at `gud-jdb-use-classpath' 2669 directories to scan. Look at `gud-jdb-use-classpath' and
2608 and `gud-jdb-classpath' customization variables documentation. 2670 `gud-jdb-classpath' customization variables documentation.
2609 2671
2610 *** Supports the standard breakpoint (gud-break, gud-clear) 2672 *** Supports the standard breakpoint (gud-break, gud-clear)
2611 set/clear operations from java source files under the classpath, stack 2673 set/clear operations from Java source files under the classpath, stack
2612 traversal (gud-up, gud-down), and run until current stack finish 2674 traversal (gud-up, gud-down), and run until current stack finish
2613 (gud-finish). 2675 (gud-finish).
2614 2676
2615 *** Supports new jdb (Java 1.2 and later) in addition to oldjdb 2677 *** Supports new jdb (Java 1.2 and later) in addition to oldjdb
2616 (Java 1.1 jdb). 2678 (Java 1.1 jdb).
2617 2679
2618 *** The previous method of searching for source files has been 2680 *** The previous method of searching for source files has been
2619 preserved in case someone still wants/needs to use it. 2681 preserved in case someone still wants/needs to use it.
2620 Set `gud-jdb-use-classpath' to nil. 2682 Set `gud-jdb-use-classpath' to nil.
2621 2683
2622 Added Customization Variables 2684 *** Added Customization Variables
2623 2685
2624 *** `gud-jdb-command-name'. What command line to use to invoke jdb. 2686 **** `gud-jdb-command-name'. What command line to use to invoke jdb.
2625 2687
2626 *** `gud-jdb-use-classpath'. Allows selection of java source file searching 2688 **** `gud-jdb-use-classpath'. Allows selection of java source file searching
2627 method: set to t for new method, nil to scan `gud-jdb-directories' for 2689 method: set to t for new method, nil to scan `gud-jdb-directories' for
2628 java sources (previous method). 2690 java sources (previous method).
2629 2691
2630 *** `gud-jdb-directories'. List of directories to scan and search for java 2692 **** `gud-jdb-directories'. List of directories to scan and search for Java
2631 classes using the original gud-jdb method (if `gud-jdb-use-classpath' 2693 classes using the original gud-jdb method (if `gud-jdb-use-classpath'
2632 is nil). 2694 is nil).
2633 2695
2634 Minor Improvements 2696 *** Minor Improvements
2635 2697
2636 *** The STARTTLS wrapper (starttls.el) can now use GNUTLS 2698 **** The STARTTLS wrapper (starttls.el) can now use GNUTLS
2637 instead of the OpenSSL based `starttls' tool. For backwards 2699 instead of the OpenSSL based `starttls' tool. For backwards
2638 compatibility, it prefers `starttls', but you can toggle 2700 compatibility, it prefers `starttls', but you can toggle
2639 `starttls-use-gnutls' to switch to GNUTLS (or simply remove the 2701 `starttls-use-gnutls' to switch to GNUTLS (or simply remove the
2640 `starttls' tool). 2702 `starttls' tool).
2641 2703
2642 *** Do not allow debugger output history variable to grow without bounds. 2704 **** Do not allow debugger output history variable to grow without bounds.
2643 2705
2644 ** Auto-Revert changes: 2706 ** Auto-Revert changes:
2645 2707
2646 +++ 2708 +++
2647 *** You can now use Auto Revert mode to `tail' a file. 2709 *** You can now use Auto Revert mode to `tail' a file.
2678 only gets updated whenever the buffer gets reverted. 2740 only gets updated whenever the buffer gets reverted.
2679 2741
2680 --- 2742 ---
2681 ** recentf changes. 2743 ** recentf changes.
2682 2744
2683 The recent file list is now automatically cleanup when recentf mode is 2745 The recent file list is now automatically cleaned up when recentf mode is
2684 enabled. The new option `recentf-auto-cleanup' controls when to do 2746 enabled. The new option `recentf-auto-cleanup' controls when to do
2685 automatic cleanup. 2747 automatic cleanup.
2686 2748
2687 The ten most recent files can be quickly opened by using the shortcut 2749 The ten most recent files can be quickly opened by using the shortcut
2688 keys 1 to 9, and 0, when the recent list is displayed in a buffer via 2750 keys 1 to 9, and 0, when the recent list is displayed in a buffer via
2804 2866
2805 **** Regular expressions can use char escape sequences as in GCC. 2867 **** Regular expressions can use char escape sequences as in GCC.
2806 2868
2807 The escaped character sequence \a, \b, \d, \e, \f, \n, \r, \t, \v, 2869 The escaped character sequence \a, \b, \d, \e, \f, \n, \r, \t, \v,
2808 respectively, stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL, 2870 respectively, stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL,
2809 CR, TAB, VT, 2871 CR, TAB, VT.
2810 2872
2811 **** Regular expressions can be bound to a given language. 2873 **** Regular expressions can be bound to a given language.
2812 2874
2813 The syntax --regex={LANGUAGE}REGEX means that REGEX is used to make tags 2875 The syntax --regex={LANGUAGE}REGEX means that REGEX is used to make tags
2814 only for files of language LANGUAGE, and ignored otherwise. This is 2876 only for files of language LANGUAGE, and ignored otherwise. This is
3399 3461
3400 --- 3462 ---
3401 ** The variable `mac-keyboard-text-encoding' and the constants 3463 ** The variable `mac-keyboard-text-encoding' and the constants
3402 `kTextEncodingMacRoman', `kTextEncodingISOLatin1', and 3464 `kTextEncodingMacRoman', `kTextEncodingISOLatin1', and
3403 `kTextEncodingISOLatin2' are obsolete. 3465 `kTextEncodingISOLatin2' are obsolete.
3466
3467 ** The variable `mac-command-key-is-meta' is obsolete. Use
3468 `mac-command-modifier' and `mac-option-modifier' instead.
3404 3469
3405 * Incompatible Lisp Changes in Emacs 22.1 3470 * Incompatible Lisp Changes in Emacs 22.1
3406 3471
3407 --- 3472 ---
3408 ** The variables post-command-idle-hook and post-command-idle-delay have 3473 ** The variables post-command-idle-hook and post-command-idle-delay have
3419 :propertize and :eval forms in the value of a variable whose 3484 :propertize and :eval forms in the value of a variable whose
3420 `risky-local-variable' property is nil. 3485 `risky-local-variable' property is nil.
3421 3486
3422 --- 3487 ---
3423 ** Support for Mocklisp has been removed. 3488 ** Support for Mocklisp has been removed.
3489
3490 +++
3491 ** The variable `memory-full' now remains t until
3492 there is no longer a shortage of memory.
3424 3493
3425 * Lisp Changes in Emacs 22.1 3494 * Lisp Changes in Emacs 22.1
3426 3495
3427 ** General Lisp changes: 3496 ** General Lisp changes:
3428 3497
3546 +++ 3615 +++
3547 *** New function `unsafep' determines whether a Lisp form is safe. 3616 *** New function `unsafep' determines whether a Lisp form is safe.
3548 3617
3549 It returns nil if the given Lisp form can't possibly do anything 3618 It returns nil if the given Lisp form can't possibly do anything
3550 dangerous; otherwise it returns a reason why the form might be unsafe 3619 dangerous; otherwise it returns a reason why the form might be unsafe
3551 (calls unknown function, alters global variable, etc). 3620 (calls unknown function, alters global variable, etc.).
3621
3622 +++
3623 *** New macro `eval-at-startup' specifies expressions to
3624 evaluate when Emacs starts up. If this is done after startup,
3625 it evaluates those expressions immediately.
3626
3627 This is useful in packages that can be preloaded.
3552 3628
3553 *** `list-faces-display' takes an optional argument, REGEXP. 3629 *** `list-faces-display' takes an optional argument, REGEXP.
3554 3630
3555 If it is non-nil, the function lists only faces matching this regexp. 3631 If it is non-nil, the function lists only faces matching this regexp.
3556 3632
3695 *** Argument to `forward-to-indentation' and `backward-to-indentation' is optional. 3771 *** Argument to `forward-to-indentation' and `backward-to-indentation' is optional.
3696 3772
3697 It defaults to 1. 3773 It defaults to 1.
3698 3774
3699 +++ 3775 +++
3700 *** New function `mouse-on-link-p' test if a position is in a clickable link. 3776 *** New function `mouse-on-link-p' tests if a position is in a clickable link.
3701 3777
3702 This is the function used by the new `mouse-1-click-follows-link' 3778 This is the function used by the new `mouse-1-click-follows-link'
3703 functionality. 3779 functionality.
3704 3780
3705 +++ 3781 +++
3853 value of VARIABLE instead. 3929 value of VARIABLE instead.
3854 3930
3855 *** The function `frame-or-buffer-changed-p' now lets you maintain 3931 *** The function `frame-or-buffer-changed-p' now lets you maintain
3856 various status records in parallel. 3932 various status records in parallel.
3857 3933
3858 It take a variable (a symbol) as argument. If the variable is non-nil, 3934 It takes a variable (a symbol) as argument. If the variable is non-nil,
3859 then its value should be a vector installed previously by 3935 then its value should be a vector installed previously by
3860 `frame-or-buffer-changed-p'. If the frame names, buffer names, buffer 3936 `frame-or-buffer-changed-p'. If the frame names, buffer names, buffer
3861 order, or their read-only or modified flags have changed, since the 3937 order, or their read-only or modified flags have changed, since the
3862 time the vector's contents were recorded by a previous call to 3938 time the vector's contents were recorded by a previous call to
3863 `frame-or-buffer-changed-p', then the function returns t. Otherwise 3939 `frame-or-buffer-changed-p', then the function returns t. Otherwise
3944 accepts such a list for restoring the match state. 4020 accepts such a list for restoring the match state.
3945 4021
3946 +++ 4022 +++
3947 *** Functions `match-data' and `set-match-data' now have an optional 4023 *** Functions `match-data' and `set-match-data' now have an optional
3948 argument `reseat'. When non-nil, all markers in the match data list 4024 argument `reseat'. When non-nil, all markers in the match data list
3949 passed to these function will be reseated to point to nowhere. 4025 passed to these functions will be reseated to point to nowhere.
3950 4026
3951 +++ 4027 +++
3952 *** The default value of `sentence-end' is now defined using the new 4028 *** The default value of `sentence-end' is now defined using the new
3953 variable `sentence-end-without-space', which contains such characters 4029 variable `sentence-end-without-space', which contains such characters
3954 that end a sentence without following spaces. 4030 that end a sentence without following spaces.
4080 `file-chase-links' returns it anyway. 4156 `file-chase-links' returns it anyway.
4081 4157
4082 +++ 4158 +++
4083 *** The new hook `before-save-hook' is invoked by `basic-save-buffer' 4159 *** The new hook `before-save-hook' is invoked by `basic-save-buffer'
4084 before saving buffers. This allows packages to perform various final 4160 before saving buffers. This allows packages to perform various final
4085 tasks, for example; it can be used by the copyright package to make 4161 tasks. For example, it can be used by the copyright package to make
4086 sure saved files have the current year in any copyright headers. 4162 sure saved files have the current year in any copyright headers.
4087 4163
4088 +++ 4164 +++
4089 *** If `buffer-save-without-query' is non-nil in some buffer, 4165 *** If `buffer-save-without-query' is non-nil in some buffer,
4090 `save-some-buffers' will always save that buffer without asking (if 4166 `save-some-buffers' will always save that buffer without asking (if
4099 of suffixes. The function also accepts a predicate argument to 4175 of suffixes. The function also accepts a predicate argument to
4100 further filter candidate files. 4176 further filter candidate files.
4101 4177
4102 One advantage of using this function is that the list of suffixes in 4178 One advantage of using this function is that the list of suffixes in
4103 `exec-suffixes' is OS-dependant, so this function will find 4179 `exec-suffixes' is OS-dependant, so this function will find
4104 executables without polluting Lisp code with OS dependancies. 4180 executables without polluting Lisp code with OS dependencies.
4105 4181
4106 --- 4182 ---
4107 *** The precedence of file name handlers has been changed. 4183 *** The precedence of file name handlers has been changed.
4108 4184
4109 Instead of choosing the first handler that matches, 4185 Instead of choosing the first handler that matches,
4181 *** The new variable `read-file-name-completion-ignore-case' specifies 4257 *** The new variable `read-file-name-completion-ignore-case' specifies
4182 whether completion ignores case when reading a file name with the 4258 whether completion ignores case when reading a file name with the
4183 `read-file-name' function. 4259 `read-file-name' function.
4184 4260
4185 +++ 4261 +++
4186 *** The new function `read-directory-name' for reading a directory name. 4262 *** The new function `read-directory-name' is for reading a directory name.
4187 4263
4188 It is like `read-file-name' except that the defaulting works better 4264 It is like `read-file-name' except that the defaulting works better
4189 for directories, and completion inside it shows only directories. 4265 for directories, and completion inside it shows only directories.
4190 4266
4191 ** Completion changes: 4267 ** Completion changes:
4268
4269 +++
4270 *** The new function `minibuffer-completion-contents' returns the contents
4271 of the minibuffer just before point. That is what completion commands
4272 operate on.
4192 4273
4193 +++ 4274 +++
4194 *** The functions `all-completions' and `try-completion' now accept lists 4275 *** The functions `all-completions' and `try-completion' now accept lists
4195 of strings as well as hash-tables additionally to alists, obarrays 4276 of strings as well as hash-tables additionally to alists, obarrays
4196 and functions. Furthermore, the function `test-completion' is now 4277 and functions. Furthermore, the function `test-completion' is now
4212 4293
4213 +++ 4294 +++
4214 *** The new macro `lazy-completion-table' initializes a variable 4295 *** The new macro `lazy-completion-table' initializes a variable
4215 as a lazy completion table. 4296 as a lazy completion table.
4216 4297
4217 (lazy-completion-table VAR FUN &rest ARGS) 4298 (lazy-completion-table VAR FUN)
4218 4299
4219 If the completion table VAR is used for the first time (e.g., by passing VAR 4300 If the completion table VAR is used for the first time (e.g., by passing VAR
4220 as an argument to `try-completion'), the function FUN is called with arguments 4301 as an argument to `try-completion'), the function FUN is called with no
4221 ARGS. FUN must return the completion table that will be stored in VAR. If 4302 arguments. FUN must return the completion table that will be stored in VAR.
4222 completion is requested in the minibuffer, FUN will be called in the buffer 4303 If completion is requested in the minibuffer, FUN will be called in the buffer
4223 from which the minibuffer was entered. The return value of 4304 from which the minibuffer was entered. The return value of
4224 `lazy-completion-table' must be used to initialize the value of VAR. 4305 `lazy-completion-table' must be used to initialize the value of VAR.
4225 4306
4226 +++ 4307 +++
4227 ** Enhancements to keymaps. 4308 ** Enhancements to keymaps.
4309
4310 *** New keymaps for typing file names
4311
4312 Two new keymaps, `minibuffer-local-filename-completion-map' and
4313 `minibuffer-local-must-match-filename-map', apply whenever
4314 Emacs reads a file name in the minibuffer. These key maps override
4315 the usual binding of SPC to `minibuffer-complete-word' (so that file
4316 names with embedded spaces could be typed without the need to quote
4317 the spaces).
4228 4318
4229 *** Cleaner way to enter key sequences. 4319 *** Cleaner way to enter key sequences.
4230 4320
4231 You can enter a constant key sequence in a more natural format, the 4321 You can enter a constant key sequence in a more natural format, the
4232 same one used for saving keyboard macros, using the macro `kbd'. For 4322 same one used for saving keyboard macros, using the macro `kbd'. For
4370 On some systems, when emacs reads the output from a subprocess, the 4460 On some systems, when emacs reads the output from a subprocess, the
4371 output data is read in very small blocks, potentially resulting in 4461 output data is read in very small blocks, potentially resulting in
4372 very poor performance. This behavior can be remedied to some extent 4462 very poor performance. This behavior can be remedied to some extent
4373 by setting the new variable `process-adaptive-read-buffering' to a 4463 by setting the new variable `process-adaptive-read-buffering' to a
4374 non-nil value (the default), as it will automatically delay reading 4464 non-nil value (the default), as it will automatically delay reading
4375 from such processes, to allowing them to produce more output before 4465 from such processes, allowing them to produce more output before
4376 emacs tries to read it. 4466 emacs tries to read it.
4377 4467
4378 *** The new function `call-process-shell-command'. 4468 *** The new function `call-process-shell-command'.
4379 4469
4380 This executes a shell command synchronously in a separate process. 4470 This executes a shell command synchronously in a separate process.
4411 4501
4412 - A server is started using :server t arg. 4502 - A server is started using :server t arg.
4413 - Datagram connection is selected using :type 'datagram arg. 4503 - Datagram connection is selected using :type 'datagram arg.
4414 - A server can open on a random port using :service t arg. 4504 - A server can open on a random port using :service t arg.
4415 - Local sockets are supported using :family 'local arg. 4505 - Local sockets are supported using :family 'local arg.
4506 - IPv6 is supported (when available). You may explicitly select IPv6
4507 using :family 'ipv6 arg.
4416 - Non-blocking connect is supported using :nowait t arg. 4508 - Non-blocking connect is supported using :nowait t arg.
4417 - The process' property list can be initialized using :plist PLIST arg; 4509 - The process' property list can be initialized using :plist PLIST arg;
4418 a copy of the server process' property list is automatically inherited 4510 a copy of the server process' property list is automatically inherited
4419 by new client processes created to handle incoming connections. 4511 by new client processes created to handle incoming connections.
4420 4512
4421 To test for the availability of a given feature, use featurep like this: 4513 To test for the availability of a given feature, use featurep like this:
4422 (featurep 'make-network-process '(:type datagram)) 4514 (featurep 'make-network-process '(:type datagram))
4515 (featurep 'make-network-process '(:family ipv6))
4423 4516
4424 *** The old `open-network-stream' now uses `make-network-process'. 4517 *** The old `open-network-stream' now uses `make-network-process'.
4425 4518
4426 *** New functions `process-datagram-address', `set-process-datagram-address'. 4519 *** New functions `process-datagram-address', `set-process-datagram-address'.
4427 4520
4526 4619
4527 +++ 4620 +++
4528 *** The new function `window-tree' returns a frame's window tree. 4621 *** The new function `window-tree' returns a frame's window tree.
4529 4622
4530 +++ 4623 +++
4624 *** The functions `get-lru-window' and `get-largest-window' take an optional
4625 argument `dedicated'. If non-nil, those functions do not ignore
4626 dedicated windows.
4627
4628 +++
4629 *** The new function `adjust-window-trailing-edge' moves the right
4630 or bottom edge of a window. It does not move other window edges.
4631
4632 +++
4531 ** Customizable fringe bitmaps 4633 ** Customizable fringe bitmaps
4532 4634
4533 *** New function `define-fringe-bitmap' can now be used to create new 4635 *** New function `define-fringe-bitmap' can now be used to create new
4534 fringe bitmaps, as well as change the built-in fringe bitmaps. 4636 fringe bitmaps, as well as change the built-in fringe bitmaps.
4535 4637
4536 To change a built-in bitmap, do (require 'fringe) and use the symbol 4638 To change a built-in bitmap, do (require 'fringe) and use the symbol
4537 identifing the bitmap such as `left-truncation or `continued-line'. 4639 identifing the bitmap such as `left-truncation' or `continued-line'.
4538 4640
4539 *** New function `destroy-fringe-bitmap' deletes a fringe bitmap 4641 *** New function `destroy-fringe-bitmap' deletes a fringe bitmap
4540 or restores a built-in one to its default value. 4642 or restores a built-in one to its default value.
4541 4643
4542 *** New function `set-fringe-bitmap-face' specifies the face to be 4644 *** New function `set-fringe-bitmap-face' specifies the face to be
4568 Setting the width to 0 effectively removes the corresponding fringe. 4670 Setting the width to 0 effectively removes the corresponding fringe.
4569 4671
4570 The actual default fringe widths for the frame may deviate from the 4672 The actual default fringe widths for the frame may deviate from the
4571 specified widths, since the combined fringe widths must match an 4673 specified widths, since the combined fringe widths must match an
4572 integral number of columns. The extra width is distributed evenly 4674 integral number of columns. The extra width is distributed evenly
4573 between the left and right fringe. For force a specific fringe width, 4675 between the left and right fringe. To force a specific fringe width,
4574 specify the width as a negative integer (if both widths are negative, 4676 specify the width as a negative integer (if both widths are negative,
4575 only the left fringe gets the specified width). 4677 only the left fringe gets the specified width).
4576 4678
4577 Setting the width to nil (the default), restores the default fringe 4679 Setting the width to nil (the default), restores the default fringe
4578 width which is the minimum number of pixels necessary to display any 4680 width which is the minimum number of pixels necessary to display any
4692 4794
4693 +++ 4795 +++
4694 *** Enhancements to stretch display properties 4796 *** Enhancements to stretch display properties
4695 4797
4696 The display property stretch specification form `(space PROPS)', where 4798 The display property stretch specification form `(space PROPS)', where
4697 PROPS is a property list now allows pixel based width and height 4799 PROPS is a property list, now allows pixel based width and height
4698 specifications, as well as enhanced horizontal text alignment. 4800 specifications, as well as enhanced horizontal text alignment.
4699 4801
4700 The value of these properties can now be a (primitive) expression 4802 The value of these properties can now be a (primitive) expression
4701 which is evaluated during redisplay. The following expressions 4803 which is evaluated during redisplay. The following expressions
4702 are supported: 4804 are supported:
5017 5119
5018 +++ 5120 +++
5019 *** `set-auto-mode' now gives the interpreter magic line (if present) 5121 *** `set-auto-mode' now gives the interpreter magic line (if present)
5020 precedence over the file name. Likewise an `<?xml' or `<!DOCTYPE' 5122 precedence over the file name. Likewise an `<?xml' or `<!DOCTYPE'
5021 declaration will give the buffer XML or SGML mode, based on the new 5123 declaration will give the buffer XML or SGML mode, based on the new
5022 var `magic-mode-alist'. 5124 variable `magic-mode-alist'.
5023 5125
5024 +++ 5126 +++
5025 *** Use the new function `run-mode-hooks' to run the major mode's mode hook. 5127 *** Use the new function `run-mode-hooks' to run the major mode's mode hook.
5026 5128
5027 +++ 5129 +++
5324 `delete-frame-hook' to `delete-frame-functions'. 5426 `delete-frame-hook' to `delete-frame-functions'.
5325 5427
5326 In each case the old name remains as an alias for the moment. 5428 In each case the old name remains as an alias for the moment.
5327 5429
5328 +++ 5430 +++
5329 *** local-write-file-hooks is marked obsolete 5431 *** Variable `local-write-file-hooks' is marked obsolete.
5330 5432
5331 Use the LOCAL arg of `add-hook'. 5433 Use the LOCAL arg of `add-hook'.
5332 5434
5333 --- 5435 ---
5334 *** New function `x-send-client-message' sends a client message when 5436 *** New function `x-send-client-message' sends a client message when
11600 documentation string checking for style and spelling. The style 11702 documentation string checking for style and spelling. The style
11601 guidelines are found in the Emacs Lisp programming manual. 11703 guidelines are found in the Emacs Lisp programming manual.
11602 11704
11603 *** The net-utils package makes some common networking features 11705 *** The net-utils package makes some common networking features
11604 available in Emacs. Some of these functions are wrappers around 11706 available in Emacs. Some of these functions are wrappers around
11605 system utilities (ping, nslookup, etc); others are implementations of 11707 system utilities (ping, nslookup, etc.); others are implementations of
11606 simple protocols (finger, whois) in Emacs Lisp. There are also 11708 simple protocols (finger, whois) in Emacs Lisp. There are also
11607 functions to make simple connections to TCP/IP ports for debugging and 11709 functions to make simple connections to TCP/IP ports for debugging and
11608 the like. 11710 the like.
11609 11711
11610 *** highlight-changes-mode is a minor mode that uses colors to 11712 *** highlight-changes-mode is a minor mode that uses colors to
11619 11721
11620 apache-generic-mode: For Apache and NCSA httpd configuration files 11722 apache-generic-mode: For Apache and NCSA httpd configuration files
11621 samba-generic-mode: Samba configuration files 11723 samba-generic-mode: Samba configuration files
11622 fvwm-generic-mode: For fvwm initialization files 11724 fvwm-generic-mode: For fvwm initialization files
11623 x-resource-generic-mode: For X resource files 11725 x-resource-generic-mode: For X resource files
11624 hosts-generic-mode: For hosts files (.rhosts, /etc/hosts, etc) 11726 hosts-generic-mode: For hosts files (.rhosts, /etc/hosts, etc.)
11625 mailagent-rules-generic-mode: For mailagent .rules files 11727 mailagent-rules-generic-mode: For mailagent .rules files
11626 javascript-generic-mode: For JavaScript files 11728 javascript-generic-mode: For JavaScript files
11627 vrml-generic-mode: For VRML files 11729 vrml-generic-mode: For VRML files
11628 java-manifest-generic-mode: For Java MANIFEST files 11730 java-manifest-generic-mode: For Java MANIFEST files
11629 java-properties-generic-mode: For Java property files 11731 java-properties-generic-mode: For Java property files
13370 ** Font Lock mode 13472 ** Font Lock mode
13371 13473
13372 *** Custom support 13474 *** Custom support
13373 13475
13374 The variables font-lock-face-attributes, font-lock-display-type and 13476 The variables font-lock-face-attributes, font-lock-display-type and
13375 font-lock-background-mode are now obsolete; the recommended way to specify the 13477 font-lock-background-mode are now obsolete; the recommended way to specify
13376 faces to use for Font Lock mode is with M-x customize-group on the new custom 13478 the faces to use for Font Lock mode is with M-x customize-group on the new
13377 group font-lock-highlighting-faces. If you set font-lock-face-attributes in 13479 custom group font-lock-faces. If you set font-lock-face-attributes in your
13378 your ~/.emacs file, Font Lock mode will respect its value. However, you should 13480 ~/.emacs file, Font Lock mode will respect its value. However, you should
13379 consider converting from setting that variable to using M-x customize. 13481 consider converting from setting that variable to using M-x customize.
13380 13482
13381 You can still use X resources to specify Font Lock face appearances. 13483 You can still use X resources to specify Font Lock face appearances.
13382 13484
13383 *** Maximum decoration 13485 *** Maximum decoration