Mercurial > emacs
comparison etc/NEWS @ 90182:f042e7c0fe20
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-53
Merge from emacs--cvs-trunk--0
Patches applied:
* emacs--cvs-trunk--0 (patch 302-319)
- Update from CVS
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 69)
- Update from CVS
author | Miles Bader <miles@gnu.org> |
---|---|
date | Fri, 20 May 2005 04:22:05 +0000 |
parents | 62afea0771d8 e4728ae2ecf8 |
children | 5b029ff3b08d |
comparison
equal
deleted
inserted
replaced
90181:0c828e2b0b6f | 90182:f042e7c0fe20 |
---|---|
104 ** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk' | 104 ** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk' |
105 when you run configure. This requires Gtk+ 2.0 or newer. This port | 105 when you run configure. This requires Gtk+ 2.0 or newer. This port |
106 provides a way to display multilingual text in menus (with some caveats). | 106 provides a way to display multilingual text in menus (with some caveats). |
107 | 107 |
108 --- | 108 --- |
109 ** The `emacsserver' program has been removed, replaced with elisp code. | 109 ** The `emacsserver' program has been removed, replaced with Lisp code. |
110 | 110 |
111 --- | 111 --- |
112 ** By default, Emacs now uses a setgid helper program to update game | 112 ** By default, Emacs now uses a setgid helper program to update game |
113 scores. The directory ${localstatedir}/games/emacs is the normal | 113 scores. The directory ${localstatedir}/games/emacs is the normal |
114 place for game scores to be stored. You can control this with the | 114 place for game scores to be stored. You can control this with the |
750 +++ | 750 +++ |
751 *** The mode line position information now comes before the major mode. | 751 *** The mode line position information now comes before the major mode. |
752 When the file is maintained under version control, that information | 752 When the file is maintained under version control, that information |
753 appears between the position information and the major mode. | 753 appears between the position information and the major mode. |
754 | 754 |
755 *** Easy to overlook single character negation is now font-locked. | 755 +++ |
756 You can use the new variable `font-lock-negation-char-face' and the face of | 756 *** New face `escape-glyph' highlights control characters and escape glyphs. |
757 the same name to customize this. Currently the cc-modes, sh-script-mode, | |
758 cperl-mode and make-mode support this. | |
759 | |
760 +++ | |
761 *** Control characters and escape glyphs are now shown in the new | |
762 escape-glyph face. | |
763 | 757 |
764 +++ | 758 +++ |
765 *** Non-breaking space and hyphens are now prefixed with an escape | 759 *** Non-breaking space and hyphens are now prefixed with an escape |
766 character, unless the new user variable `show-nonbreak-escape' is set | 760 character, unless the new user variable `show-nonbreak-escape' is set |
767 to nil. | 761 to nil. |
892 *** font-lock: in modes like C and Lisp where the fontification assumes that | 886 *** font-lock: in modes like C and Lisp where the fontification assumes that |
893 an open-paren in column 0 is always outside of any string or comment, | 887 an open-paren in column 0 is always outside of any string or comment, |
894 font-lock now highlights any such open-paren-in-column-zero in bold-red | 888 font-lock now highlights any such open-paren-in-column-zero in bold-red |
895 if it is inside a string or a comment, to indicate that it can cause | 889 if it is inside a string or a comment, to indicate that it can cause |
896 trouble with fontification and/or indentation. | 890 trouble with fontification and/or indentation. |
891 | |
892 +++ | |
893 *** New standard font-lock face `font-lock-preprocessor-face'. | |
894 | |
895 *** New standard font-lock face `font-lock-comment-delimiter-face'. | |
896 | |
897 *** Easy to overlook single character negation can now be font-locked. | |
898 You can use the new variable `font-lock-negation-char-face' and the face of | |
899 the same name to customize this. Currently the cc-modes, sh-script-mode, | |
900 cperl-mode and make-mode support this. | |
897 | 901 |
898 --- | 902 --- |
899 *** The default settings for JIT stealth lock parameters are changed. | 903 *** The default settings for JIT stealth lock parameters are changed. |
900 The default value for the user option jit-lock-stealth-time is now 16 | 904 The default value for the user option jit-lock-stealth-time is now 16 |
901 instead of 3, and the default value of jit-lock-stealth-nice is now | 905 instead of 3, and the default value of jit-lock-stealth-nice is now |
1025 --- | 1029 --- |
1026 *** mouse-wheels can now scroll a specific fraction of the window | 1030 *** mouse-wheels can now scroll a specific fraction of the window |
1027 (rather than a fixed number of lines) and the scrolling is `progressive'. | 1031 (rather than a fixed number of lines) and the scrolling is `progressive'. |
1028 | 1032 |
1029 --- | 1033 --- |
1030 *** Unexpected yanking of text due to accidental clicking on the mouse | 1034 *** Emacs ignores mouse-2 clicks while the mouse wheel is being moved. |
1031 wheel button (typically mouse-2) during wheel scrolling is now avoided. | 1035 |
1032 This behavior can be customized via the mouse-wheel-click-event and | 1036 People tend to push the mouse wheel (which counts as a mouse-2 click) |
1037 unintentionally while turning the wheel, so these clicks are now | |
1038 ignored. You can customize this with the mouse-wheel-click-event and | |
1033 mouse-wheel-inhibit-click-time variables. | 1039 mouse-wheel-inhibit-click-time variables. |
1034 | 1040 |
1035 +++ | 1041 +++ |
1036 *** Under X, mouse-wheel-mode is turned on by default. | 1042 *** Under X, mouse-wheel-mode is turned on by default. |
1037 | 1043 |
1350 modes that can use `next-error'). In this mode, cursor motion in the | 1356 modes that can use `next-error'). In this mode, cursor motion in the |
1351 buffer causes automatic display in another window of the corresponding | 1357 buffer causes automatic display in another window of the corresponding |
1352 matches, compilation errors, etc. This minor mode can be toggled with | 1358 matches, compilation errors, etc. This minor mode can be toggled with |
1353 C-c C-f. | 1359 C-c C-f. |
1354 | 1360 |
1361 *** When the left fringe is displayed, an arrow points to current message in | |
1362 the compilation buffer. | |
1363 | |
1364 *** The new variable `compilation-context-lines' controls lines of leading | |
1365 context before the current message. If nil and the left fringe is displayed, | |
1366 it doesn't scroll the compilation output window. If there is no left fringe, | |
1367 no arrow is displayed and a value of nil means display the message at the top | |
1368 of the window. | |
1369 | |
1355 ** Occur mode changes: | 1370 ** Occur mode changes: |
1356 | 1371 |
1357 +++ | 1372 +++ |
1358 *** In the *Occur* buffer, `o' switches to it in another window, and | 1373 *** In the *Occur* buffer, `o' switches to it in another window, and |
1359 C-o displays the current line's occurrence in another window without | 1374 C-o displays the current line's occurrence in another window without |
1497 *** There's a new support for colors on `rxvt' terminal emulator. | 1512 *** There's a new support for colors on `rxvt' terminal emulator. |
1498 | 1513 |
1499 * New Modes and Packages in Emacs 22.1 | 1514 * New Modes and Packages in Emacs 22.1 |
1500 | 1515 |
1501 +++ | 1516 +++ |
1502 ** New package benchmark.el contains simple support for convenient | |
1503 timing measurements of code (including the garbage collection component). | |
1504 | |
1505 +++ | |
1506 ** Filesets are collections of files. You can define a fileset in | 1517 ** Filesets are collections of files. You can define a fileset in |
1507 various ways, such as based on a directory tree or based on | 1518 various ways, such as based on a directory tree or based on |
1508 program files that include other program files. | 1519 program files that include other program files. |
1509 | 1520 |
1510 Once you have defined a fileset, you can perform various operations on | 1521 Once you have defined a fileset, you can perform various operations on |
1518 Emacs Lisp. Its documentation is in a separate manual; within Emacs, | 1529 Emacs Lisp. Its documentation is in a separate manual; within Emacs, |
1519 type "C-h i m calc RET" to read that manual. A reference card is | 1530 type "C-h i m calc RET" to read that manual. A reference card is |
1520 available in `etc/calccard.tex' and `etc/calccard.ps'. | 1531 available in `etc/calccard.tex' and `etc/calccard.ps'. |
1521 | 1532 |
1522 --- | 1533 --- |
1523 ** `cfengine-mode' is a major mode for editing GNU Cfengine | 1534 ** The new package ibuffer provides a powerful, completely |
1524 configuration files. | 1535 customizable replacement for buff-menu.el. |
1525 | 1536 |
1526 +++ | 1537 --- |
1527 ** The new package conf-mode.el handles thousands of configuration files, with | 1538 ** Ido mode is now part of the Emacs distribution. |
1528 varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value, | 1539 |
1529 var : value, var value or keyword var value) and sections ([section] or | 1540 The ido (interactively do) package is an extension of the iswitchb |
1530 section { }). Many files under /etc/, or with suffixes like .cf through | 1541 package to do interactive opening of files and directories in addition |
1531 .config, .properties (Java), .desktop (KDE/Gnome), .ini and many others are | 1542 to interactive buffer switching. Ido is a superset of iswitchb (with |
1532 recognized. | 1543 a few exceptions), so don't enable both packages. |
1544 | |
1545 +++ | |
1546 ** Image files are normally visited in Image mode, which lets you toggle | |
1547 between viewing the image and viewing the text using C-c C-c. | |
1533 | 1548 |
1534 --- | 1549 --- |
1535 ** CUA mode is now part of the Emacs distribution. | 1550 ** CUA mode is now part of the Emacs distribution. |
1536 | 1551 |
1537 The new cua package provides CUA-like keybindings using C-x for | 1552 The new cua package provides CUA-like keybindings using C-x for |
1540 keys (like pc-selection-mode) and typed text replaces the active | 1555 keys (like pc-selection-mode) and typed text replaces the active |
1541 region (like delete-selection-mode). Do not enable these modes with | 1556 region (like delete-selection-mode). Do not enable these modes with |
1542 cua-mode. Customize the variable `cua-mode' to enable cua. | 1557 cua-mode. Customize the variable `cua-mode' to enable cua. |
1543 | 1558 |
1544 In addition, cua provides unified rectangle support with visible | 1559 In addition, cua provides unified rectangle support with visible |
1545 rectangle highlighting: Use S-return to start a rectangle, extend it | 1560 rectangle highlighting: Use C-return to start a rectangle, extend it |
1546 using the movement commands (or mouse-3), and cut or copy it using C-x | 1561 using the movement commands (or mouse-3), and cut or copy it using C-x |
1547 or C-c (using C-w and M-w also works). | 1562 or C-c (using C-w and M-w also works). |
1548 | 1563 |
1549 Use M-o and M-c to `open' or `close' the rectangle, use M-b or M-f, to | 1564 Use M-o and M-c to `open' or `close' the rectangle, use M-b or M-f, to |
1550 fill it with blanks or another character, use M-u or M-l to upcase or | 1565 fill it with blanks or another character, use M-u or M-l to upcase or |
1590 be displayed by customizing the variable `file-name-shadow-properties'. | 1605 be displayed by customizing the variable `file-name-shadow-properties'. |
1591 | 1606 |
1592 +++ | 1607 +++ |
1593 ** The new package flymake.el does on-the-fly syntax checking of program | 1608 ** The new package flymake.el does on-the-fly syntax checking of program |
1594 source files. See the Flymake's Info manual for more details. | 1609 source files. See the Flymake's Info manual for more details. |
1595 | |
1596 --- | |
1597 ** The new Lisp library fringe.el controls the appearance of fringes. | |
1598 | |
1599 --- | |
1600 ** GDB-Script-mode is used for files like .gdbinit. | |
1601 | |
1602 --- | |
1603 ** The new package ibuffer provides a powerful, completely | |
1604 customizable replacement for buff-menu.el. | |
1605 | |
1606 --- | |
1607 ** Ido mode is now part of the Emacs distribution. | |
1608 | |
1609 The ido (interactively do) package is an extension of the iswitchb | |
1610 package to do interactive opening of files and directories in addition | |
1611 to interactive buffer switching. Ido is a superset of iswitchb (with | |
1612 a few exceptions), so don't enable both packages. | |
1613 | |
1614 +++ | |
1615 ** Image files are normally visited in Image mode, which lets you toggle | |
1616 between viewing the image and viewing the text using C-c C-c. | |
1617 | 1610 |
1618 +++ | 1611 +++ |
1619 ** The new keypad setup package provides several common bindings for | 1612 ** The new keypad setup package provides several common bindings for |
1620 the numeric keypad which is available on most keyboards. The numeric | 1613 the numeric keypad which is available on most keyboards. The numeric |
1621 keypad typically has the digits 0 to 9, a decimal point, keys marked | 1614 keypad typically has the digits 0 to 9, a decimal point, keys marked |
1672 | 1665 |
1673 Keyboard macros can now be debugged and edited interactively. | 1666 Keyboard macros can now be debugged and edited interactively. |
1674 C-x C-k SPC steps through the last keyboard macro one key sequence | 1667 C-x C-k SPC steps through the last keyboard macro one key sequence |
1675 at a time, prompting for the actions to take. | 1668 at a time, prompting for the actions to take. |
1676 | 1669 |
1670 --- | |
1671 ** New minor mode, Visible mode, toggles invisibility in the current buffer. | |
1672 When enabled, it makes all invisible text visible. When disabled, it | |
1673 restores the previous value of `buffer-invisibility-spec'. | |
1674 | |
1675 +++ | |
1676 ** The wdired.el package allows you to use normal editing commands on Dired | |
1677 buffers to change filenames, permissions, etc... | |
1678 | |
1677 +++ | 1679 +++ |
1678 ** The new package longlines.el provides a minor mode for editing text | 1680 ** The new package longlines.el provides a minor mode for editing text |
1679 files composed of long lines, based on the `use-hard-newlines' | 1681 files composed of long lines, based on the `use-hard-newlines' |
1680 mechanism. The long lines are broken up by inserting soft newlines, | 1682 mechanism. The long lines are broken up by inserting soft newlines, |
1681 which are automatically removed when saving the file to disk or | 1683 which are automatically removed when saving the file to disk or |
1692 with a Print sub-menu which allows you to preview output through | 1694 with a Print sub-menu which allows you to preview output through |
1693 ghostview, use ghostscript to print (if you don't have a PostScript | 1695 ghostview, use ghostscript to print (if you don't have a PostScript |
1694 printer) or send directly to printer a PostScript code generated by | 1696 printer) or send directly to printer a PostScript code generated by |
1695 `ps-print' package. Use M-x pr-help for more information. | 1697 `ps-print' package. Use M-x pr-help for more information. |
1696 | 1698 |
1697 +++ | |
1698 ** The new python.el package is used to edit Python and Jython programs. | |
1699 | |
1700 --- | 1699 --- |
1701 ** The minor mode Reveal mode makes text visible on the fly as you | 1700 ** The minor mode Reveal mode makes text visible on the fly as you |
1702 move your cursor into hidden regions of the buffer. | 1701 move your cursor into hidden regions of the buffer. |
1703 It should work with any package that uses overlays to hide parts | 1702 It should work with any package that uses overlays to hide parts |
1704 of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ... | 1703 of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ... |
1752 If you want to disable Tramp you should set | 1751 If you want to disable Tramp you should set |
1753 | 1752 |
1754 (setq tramp-default-method "ftp") | 1753 (setq tramp-default-method "ftp") |
1755 | 1754 |
1756 --- | 1755 --- |
1757 ** The library tree-widget.el provides a new widget to display a set | |
1758 of hierarchical data as an outline. For example, the tree-widget is | |
1759 well suited to display a hierarchy of directories and files. | |
1760 | |
1761 --- | |
1762 ** The URL package (which had been part of W3) is now part of Emacs. | 1756 ** The URL package (which had been part of W3) is now part of Emacs. |
1763 | 1757 |
1764 --- | 1758 --- |
1765 ** New minor mode, Visible mode, toggles invisibility in the current buffer. | 1759 ** `cfengine-mode' is a major mode for editing GNU Cfengine |
1766 When enabled, it makes all invisible text visible. When disabled, it | 1760 configuration files. |
1767 restores the previous value of `buffer-invisibility-spec'. | 1761 |
1768 | 1762 +++ |
1769 +++ | 1763 ** The new package conf-mode.el handles thousands of configuration files, with |
1770 ** The wdired.el package allows you to use normal editing commands on Dired | 1764 varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value, |
1771 buffers to change filenames, permissions, etc... | 1765 var : value, var value or keyword var value) and sections ([section] or |
1766 section { }). Many files under /etc/, or with suffixes like .cf through | |
1767 .config, .properties (Java), .desktop (KDE/Gnome), .ini and many others are | |
1768 recognized. | |
1769 | |
1770 --- | |
1771 ** GDB-Script-mode is used for files like .gdbinit. | |
1772 | |
1773 +++ | |
1774 ** The new python.el package is used to edit Python and Jython programs. | |
1772 | 1775 |
1773 --- | 1776 --- |
1774 ** The TCL package tcl-mode.el was replaced by tcl.el. | 1777 ** The TCL package tcl-mode.el was replaced by tcl.el. |
1775 This was actually done in Emacs-21.1, and was not documented. | 1778 This was actually done in Emacs-21.1, and was not documented. |
1776 | |
1777 ** The new package bindat.el provides functions to unpack and pack | |
1778 binary data structures, such as network packets, to and from Lisp | |
1779 data structures. | |
1780 | |
1781 +++ | |
1782 ** The new package button.el implements simple and fast `clickable buttons' | |
1783 in emacs buffers. `buttons' are much lighter-weight than the `widgets' | |
1784 implemented by widget.el, and can be used by lisp code that doesn't | |
1785 require the full power of widgets. Emacs uses buttons for such things | |
1786 as help and apropos buffers. | |
1787 | |
1788 --- | |
1789 ** master-mode.el implements a minor mode for scrolling a slave | |
1790 buffer without leaving your current buffer, the master buffer. | |
1791 | |
1792 It can be used by sql.el, for example: the SQL buffer is the master | |
1793 and its SQLi buffer is the slave. This allows you to scroll the SQLi | |
1794 buffer containing the output from the SQL buffer containing the | |
1795 commands. | |
1796 | |
1797 This is how to use sql.el and master.el together: the variable | |
1798 sql-buffer contains the slave buffer. It is a local variable in the | |
1799 SQL buffer. | |
1800 | |
1801 (add-hook 'sql-mode-hook | |
1802 (function (lambda () | |
1803 (master-mode t) | |
1804 (master-set-slave sql-buffer)))) | |
1805 (add-hook 'sql-set-sqli-hook | |
1806 (function (lambda () | |
1807 (master-set-slave sql-buffer)))) | |
1808 | |
1809 +++ | |
1810 ** New Lisp library testcover.el works with edebug to help you determine | |
1811 whether you've tested all your Lisp code. Function testcover-start | |
1812 instruments all functions in a given file. Then test your code. Function | |
1813 testcover-mark-all adds overlay "splotches" to the Lisp file's buffer to | |
1814 show where coverage is lacking. Command testcover-next-mark (bind it to | |
1815 a key!) will move point forward to the next spot that has a splotch. | |
1816 | |
1817 Normally, a red splotch indicates the form was never completely | |
1818 evaluated; a brown splotch means it always evaluated to the same | |
1819 value. The red splotches are skipped for forms that can't possibly | |
1820 complete their evaluation, such as `error'. The brown splotches are | |
1821 skipped for forms that are expected to always evaluate to the same | |
1822 value, such as (setq x 14). | |
1823 | |
1824 For difficult cases, you can add do-nothing macros to your code to | |
1825 help out the test coverage tool. The macro `noreturn' suppresses a | |
1826 red splotch. It is an error if the argument to `noreturn' does | |
1827 return. The macro 1value suppresses a brown splotch for its argument. | |
1828 This macro is a no-op except during test-coverage -- then it signals | |
1829 an error if the argument actually returns differing values. | |
1830 | 1779 |
1831 * Changes in Specialized Modes and Packages in Emacs 22.1: | 1780 * Changes in Specialized Modes and Packages in Emacs 22.1: |
1832 | 1781 |
1833 +++ | 1782 ** Makefile mode has submodes for automake, gmake, makepp and BSD make. |
1834 ** In Outline mode, hide-body no longer hides lines at the top | 1783 |
1784 The former two couldn't be differentiated before, and the latter two | |
1785 are new. Font-locking is robust now and offers new customizable | |
1786 faces. | |
1787 | |
1788 +++ | |
1789 ** In Outline mode, `hide-body' no longer hides lines at the top | |
1835 of the file that precede the first header line. | 1790 of the file that precede the first header line. |
1836 | 1791 |
1837 +++ | 1792 +++ |
1838 ** Telnet now prompts you for a port number with C-u M-x telnet. | 1793 ** Telnet now prompts you for a port number with C-u M-x telnet. |
1839 | 1794 |
1840 --- | 1795 --- |
1841 ** The terminal emulation code in term.el has been improved, it can | 1796 ** The terminal emulation code in term.el has been improved; it can |
1842 run most curses applications now. | 1797 run most curses applications now. |
1843 | 1798 |
1844 +++ | 1799 +++ |
1845 ** M-x diff uses diff-mode instead of compilation-mode. | 1800 ** M-x diff uses Diff mode instead of Compilation mode. |
1846 | 1801 |
1847 +++ | 1802 +++ |
1848 ** You can now customize fill-nobreak-predicate to control where | 1803 ** You can now customize `fill-nobreak-predicate' to control where |
1849 filling can break lines. The value is now normally a list of | 1804 filling can break lines. The value is now normally a list of |
1850 functions, but it can also be a single function, for compatibility. | 1805 functions, but it can also be a single function, for compatibility. |
1851 | 1806 |
1852 We provide two sample predicates, fill-single-word-nobreak-p and | 1807 Emacs provide two predicates, `fill-single-word-nobreak-p' and |
1853 fill-french-nobreak-p, for use in the value of fill-nobreak-predicate. | 1808 `fill-french-nobreak-p', for use as the value of |
1809 `fill-nobreak-predicate'. | |
1854 | 1810 |
1855 --- | 1811 --- |
1856 ** M-x view-file and commands that use it now avoid interfering | 1812 ** M-x view-file and commands that use it now avoid interfering |
1857 with special modes such as Tar mode. | 1813 with special modes such as Tar mode. |
1858 | 1814 |
1859 --- | 1815 --- |
1860 ** Commands winner-redo and winner-undo, from winner.el, are now bound to | 1816 ** Commands `winner-redo' and `winner-undo', from winner.el, are now |
1861 C-c <left> and C-c <right>, respectively. This is an incompatible change. | 1817 bound to C-c <left> and C-c <right>, respectively. This is an |
1862 | 1818 incompatible change. |
1863 --- | 1819 |
1864 ** global-whitespace-mode is a new alias for whitespace-global-mode. | 1820 --- |
1821 ** `global-whitespace-mode' is a new alias for `whitespace-global-mode'. | |
1865 | 1822 |
1866 +++ | 1823 +++ |
1867 ** M-x compare-windows now can automatically skip non-matching text to | 1824 ** M-x compare-windows now can automatically skip non-matching text to |
1868 resync points in both windows. | 1825 resync points in both windows. |
1869 | 1826 |
1870 +++ | 1827 +++ |
1871 ** New user option `add-log-always-start-new-record'. | 1828 ** New user option `add-log-always-start-new-record'. |
1829 | |
1872 When this option is enabled, M-x add-change-log-entry always | 1830 When this option is enabled, M-x add-change-log-entry always |
1873 starts a new record regardless of when the last record is. | 1831 starts a new record regardless of when the last record is. |
1874 | 1832 |
1875 --- | 1833 --- |
1876 ** PO translation files are decoded according to their MIME headers | 1834 ** PO translation files are decoded according to their MIME headers |
1878 | 1836 |
1879 ** Info mode changes: | 1837 ** Info mode changes: |
1880 | 1838 |
1881 +++ | 1839 +++ |
1882 *** A numeric prefix argument of `info' selects an Info buffer | 1840 *** A numeric prefix argument of `info' selects an Info buffer |
1883 with the number appended to the *info* buffer name (e.g. "*info*<2>"). | 1841 with the number appended to the `*info*' buffer name (e.g. "*info*<2>"). |
1884 | 1842 |
1885 --- | 1843 --- |
1886 *** isearch in Info uses Info-search and searches through multiple nodes. | 1844 *** isearch in Info uses Info-search and searches through multiple nodes. |
1845 | |
1887 Before leaving the initial Info node isearch fails once with the error | 1846 Before leaving the initial Info node isearch fails once with the error |
1888 message [initial node], and with subsequent C-s/C-r continues through | 1847 message [initial node], and with subsequent C-s/C-r continues through |
1889 other nodes. When isearch fails for the rest of the manual, it wraps | 1848 other nodes. When isearch fails for the rest of the manual, it wraps |
1890 aroung the whole manual to the top/final node. The user option | 1849 aroung the whole manual to the top/final node. The user option |
1891 `Info-isearch-search' controls whether to use Info-search for isearch, | 1850 `Info-isearch-search' controls whether to use Info-search for isearch, |
1920 *** http and ftp links in Info are now operational: they look like cross | 1879 *** http and ftp links in Info are now operational: they look like cross |
1921 references and following them calls `browse-url'. | 1880 references and following them calls `browse-url'. |
1922 | 1881 |
1923 +++ | 1882 +++ |
1924 *** Info now hides node names in menus and cross references by default. | 1883 *** Info now hides node names in menus and cross references by default. |
1884 | |
1925 If you prefer the old behavior, you can set the new user option | 1885 If you prefer the old behavior, you can set the new user option |
1926 `Info-hide-note-references' to nil. | 1886 `Info-hide-note-references' to nil. |
1927 | 1887 |
1928 --- | 1888 --- |
1929 *** Images in Info pages are supported. | 1889 *** Images in Info pages are supported. |
1890 | |
1930 Info pages show embedded images, in Emacs frames with image support. | 1891 Info pages show embedded images, in Emacs frames with image support. |
1931 Info documentation that includes images, processed with makeinfo | 1892 Info documentation that includes images, processed with makeinfo |
1932 version 4.7 or newer, compiles to Info pages with embedded images. | 1893 version 4.7 or newer, compiles to Info pages with embedded images. |
1933 | 1894 |
1934 +++ | 1895 +++ |
1935 *** The default value for `Info-scroll-prefer-subnodes' is now nil. | 1896 *** The default value for `Info-scroll-prefer-subnodes' is now nil. |
1936 | 1897 |
1937 --- | 1898 --- |
1938 *** Info-index offers completion. | 1899 *** `Info-index' offers completion. |
1939 | 1900 |
1940 ** Lisp mode changes: | 1901 ** Lisp mode changes: |
1941 | 1902 |
1942 --- | 1903 --- |
1943 *** Lisp mode now uses font-lock-doc-face for the docstrings. | 1904 *** Lisp mode now uses `font-lock-doc-face' for doc strings. |
1944 | 1905 |
1945 +++ | 1906 +++ |
1946 *** A prefix argument of C-M-q in Emacs Lisp mode pretty-printifies the | 1907 *** C-u C-M-q in Emacs Lisp mode pretty-prints the list after point. |
1947 list starting after point. | |
1948 | 1908 |
1949 *** New features in evaluation commands | 1909 *** New features in evaluation commands |
1950 | 1910 |
1951 +++ | 1911 +++ |
1952 *** The function `eval-defun' (C-M-x) called on defface reinitializes | 1912 **** The function `eval-defun' (C-M-x) called on defface reinitializes |
1953 the face to the value specified in the defface expression. | 1913 the face to the value specified in the defface expression. |
1954 | 1914 |
1955 +++ | 1915 +++ |
1956 *** Typing C-x C-e twice prints the value of the integer result | 1916 **** Typing C-x C-e twice prints the value of the integer result |
1957 in additional formats (octal, hexadecimal, character) specified | 1917 in additional formats (octal, hexadecimal, character) specified |
1958 by the new function `eval-expression-print-format'. The same | 1918 by the new function `eval-expression-print-format'. The same |
1959 function also defines the result format for `eval-expression' (M-:), | 1919 function also defines the result format for `eval-expression' (M-:), |
1960 `eval-print-last-sexp' (C-j) and some edebug evaluation functions. | 1920 `eval-print-last-sexp' (C-j) and some edebug evaluation functions. |
1961 | 1921 |
2077 now handled like "namespace" in C++: They are given syntactic symbols | 2037 now handled like "namespace" in C++: They are given syntactic symbols |
2078 module-open, module-close, inmodule, composition-open, | 2038 module-open, module-close, inmodule, composition-open, |
2079 composition-close, and incomposition. | 2039 composition-close, and incomposition. |
2080 | 2040 |
2081 *** New functions to do hungry delete without enabling hungry delete mode. | 2041 *** New functions to do hungry delete without enabling hungry delete mode. |
2082 The functions c-hungry-backspace and c-hungry-delete-forward can be | 2042 The functions `c-hungry-backspace' and `c-hungry-delete-forward' can be |
2083 bound to keys to get this feature without toggling a mode. | 2043 bound to keys to get this feature without toggling a mode. |
2084 Contributed by Kevin Ryde. | 2044 |
2085 | 2045 *** Better control over `require-final-newline'. |
2086 *** Better control over require-final-newline. The variable that | 2046 |
2087 controls how to handle a final newline when the buffer is saved, | 2047 The variable `c-require-final-newline' specifies which of the modes |
2088 require-final-newline, is now customizable on a per-mode basis through | 2048 implemented by CC mode should insert final newlines. Its value is a |
2089 c-require-final-newline. That is a list of modes, and only those | 2049 list of modes, and only those modes should do it. By default the list |
2090 modes set require-final-newline. By default that's C, C++ and | 2050 includes C, C++ and Objective-C modes. |
2091 Objective-C. | 2051 |
2092 | 2052 Whichever modes are in this list will set `require-final-newline' |
2093 The specified modes set require-final-newline based on | 2053 based on `mode-require-final-newline'. |
2094 mode-require-final-newline, as usual. | |
2095 | 2054 |
2096 *** Format change for syntactic context elements. | 2055 *** Format change for syntactic context elements. |
2097 The elements in the syntactic context returned by c-guess-basic-syntax | 2056 |
2098 and stored in c-syntactic-context has been changed somewhat to allow | 2057 The elements in the syntactic context returned by `c-guess-basic-syntax' |
2058 and stored in `c-syntactic-context' has been changed somewhat to allow | |
2099 attaching more information. They are now lists instead of single cons | 2059 attaching more information. They are now lists instead of single cons |
2100 cells. E.g. a line that previously had the syntactic analysis | 2060 cells. E.g. a line that previously had the syntactic analysis |
2101 | 2061 |
2102 ((inclass . 11) (topmost-intro . 13)) | 2062 ((inclass . 11) (topmost-intro . 13)) |
2103 | 2063 |
2106 ((inclass 11) (topmost-intro 13)) | 2066 ((inclass 11) (topmost-intro 13)) |
2107 | 2067 |
2108 In some cases there are more than one position given for a syntactic | 2068 In some cases there are more than one position given for a syntactic |
2109 symbol. | 2069 symbol. |
2110 | 2070 |
2111 This change might affect code that call c-guess-basic-syntax directly, | 2071 This change might affect code that call `c-guess-basic-syntax' directly, |
2112 and custom lineup functions if they use c-syntactic-context. However, | 2072 and custom lineup functions if they use `c-syntactic-context'. However, |
2113 the argument given to lineup functions is still a single cons cell | 2073 the argument given to lineup functions is still a single cons cell |
2114 with nil or an integer in the cdr. | 2074 with nil or an integer in the cdr. |
2115 | 2075 |
2116 *** API changes for derived modes. | 2076 *** API changes for derived modes. |
2077 | |
2117 There have been extensive changes "under the hood" which can affect | 2078 There have been extensive changes "under the hood" which can affect |
2118 derived mode writers. Some of these changes are likely to cause | 2079 derived mode writers. Some of these changes are likely to cause |
2119 incompatibilities with existing derived modes, but on the other hand | 2080 incompatibilities with existing derived modes, but on the other hand |
2120 care has now been taken to make it possible to extend and modify CC | 2081 care has now been taken to make it possible to extend and modify CC |
2121 Mode with less risk of such problems in the future. | 2082 Mode with less risk of such problems in the future. |
2123 **** New language variable system. | 2084 **** New language variable system. |
2124 See the comment blurb near the top of cc-langs.el. | 2085 See the comment blurb near the top of cc-langs.el. |
2125 | 2086 |
2126 **** New initialization functions. | 2087 **** New initialization functions. |
2127 The initialization procedure has been split up into more functions to | 2088 The initialization procedure has been split up into more functions to |
2128 give better control: c-basic-common-init, c-font-lock-init, and | 2089 give better control: `c-basic-common-init', `c-font-lock-init', and |
2129 c-init-language-vars. | 2090 `c-init-language-vars'. |
2130 | 2091 |
2131 *** Changes in analysis of nested syntactic constructs. | 2092 *** Changes in analysis of nested syntactic constructs. |
2132 The syntactic analysis engine has better handling of cases where | 2093 The syntactic analysis engine has better handling of cases where |
2133 several syntactic constructs appear nested on the same line. They are | 2094 several syntactic constructs appear nested on the same line. They are |
2134 now handled as if each construct started on a line of its own. | 2095 now handled as if each construct started on a line of its own. |
2150 *** Better handling of multiline macros. | 2111 *** Better handling of multiline macros. |
2151 | 2112 |
2152 **** Syntactic indentation inside macros. | 2113 **** Syntactic indentation inside macros. |
2153 The contents of multiline #define's are now analyzed and indented | 2114 The contents of multiline #define's are now analyzed and indented |
2154 syntactically just like other code. This can be disabled by the new | 2115 syntactically just like other code. This can be disabled by the new |
2155 variable c-syntactic-indentation-in-macros. A new syntactic symbol | 2116 variable `c-syntactic-indentation-in-macros'. A new syntactic symbol |
2156 cpp-define-intro has been added to control the initial indentation | 2117 `cpp-define-intro' has been added to control the initial indentation |
2157 inside #define's. | 2118 inside `#define's. |
2158 | 2119 |
2159 **** New lineup function c-lineup-cpp-define. | 2120 **** New lineup function `c-lineup-cpp-define'. |
2121 | |
2160 Now used by default to line up macro continuation lines. The behavior | 2122 Now used by default to line up macro continuation lines. The behavior |
2161 of this function closely mimics the indentation one gets if the macro | 2123 of this function closely mimics the indentation one gets if the macro |
2162 is indented while the line continuation backslashes are temporarily | 2124 is indented while the line continuation backslashes are temporarily |
2163 removed. If syntactic indentation in macros is turned off, it works | 2125 removed. If syntactic indentation in macros is turned off, it works |
2164 much line c-lineup-dont-change, which was used earlier, but handles | 2126 much line `c-lineup-dont-change', which was used earlier, but handles |
2165 empty lines within the macro better. | 2127 empty lines within the macro better. |
2166 | 2128 |
2167 **** Automatically inserted newlines continues the macro if used within one. | 2129 **** Automatically inserted newlines continues the macro if used within one. |
2168 This applies to the newlines inserted by the auto-newline mode, and to | 2130 This applies to the newlines inserted by the auto-newline mode, and to |
2169 c-context-line-break and c-context-open-line. | 2131 `c-context-line-break' and `c-context-open-line'. |
2170 | 2132 |
2171 **** Better alignment of line continuation backslashes. | 2133 **** Better alignment of line continuation backslashes. |
2172 c-backslash-region tries to adapt to surrounding backslashes. New | 2134 `c-backslash-region' tries to adapt to surrounding backslashes. New |
2173 variable c-backslash-max-column which put a limit on how far out | 2135 variable `c-backslash-max-column' which put a limit on how far out |
2174 backslashes can be moved. | 2136 backslashes can be moved. |
2175 | 2137 |
2176 **** Automatic alignment of line continuation backslashes. | 2138 **** Automatic alignment of line continuation backslashes. |
2177 This is controlled by the new variable c-auto-align-backslashes. It | 2139 This is controlled by the new variable `c-auto-align-backslashes'. It |
2178 affects c-context-line-break, c-context-open-line and newlines | 2140 affects `c-context-line-break', `c-context-open-line' and newlines |
2179 inserted in auto-newline mode. | 2141 inserted in Auto-Newline mode. |
2180 | |
2181 **** Line indentation works better inside macros. | 2142 **** Line indentation works better inside macros. |
2143 | |
2182 Regardless whether syntactic indentation and syntactic indentation | 2144 Regardless whether syntactic indentation and syntactic indentation |
2183 inside macros are enabled or not, line indentation now ignores the | 2145 inside macros are enabled or not, line indentation now ignores the |
2184 line continuation backslashes. This is most noticeable when syntactic | 2146 line continuation backslashes. This is most noticeable when syntactic |
2185 indentation is turned off and there are empty lines (save for the | 2147 indentation is turned off and there are empty lines (save for the |
2186 backslash) in the macro. | 2148 backslash) in the macro. |
2187 | 2149 |
2188 *** indent-for-comment is more customizable. | 2150 *** indent-for-comment is more customizable. |
2189 The behavior of M-; (indent-for-comment) is now configurable through | 2151 The behavior of M-; (indent-for-comment) is now configurable through |
2190 the variable c-indent-comment-alist. The indentation behavior based | 2152 the variable `c-indent-comment-alist'. The indentation behavior based |
2191 on the preceding code on the line, e.g. to get two spaces after #else | 2153 on the preceding code on the line, e.g. to get two spaces after #else |
2192 and #endif but indentation to comment-column in most other cases | 2154 and #endif but indentation to `comment-column' in most other cases |
2193 (something which was hardcoded earlier). | 2155 (something which was hardcoded earlier). |
2194 | 2156 |
2195 *** New function c-context-open-line. | 2157 *** New function `c-context-open-line'. |
2196 It's the open-line equivalent of c-context-line-break. | 2158 It's the open-line equivalent of `c-context-line-break'. |
2197 | 2159 |
2198 *** New lineup functions | 2160 *** New lineup functions |
2199 | 2161 |
2200 **** c-lineup-string-cont | 2162 **** `c-lineup-string-cont' |
2201 This lineup function lines up a continued string under the one it | 2163 This lineup function lines up a continued string under the one it |
2202 continues. E.g: | 2164 continues. E.g: |
2203 | 2165 |
2204 result = prefix + "A message " | 2166 result = prefix + "A message " |
2205 "string."; <- c-lineup-string-cont | 2167 "string."; <- c-lineup-string-cont |
2206 | 2168 |
2207 **** c-lineup-cascaded-calls | 2169 **** `c-lineup-cascaded-calls' |
2208 Lines up series of calls separated by "->" or ".". | 2170 Lines up series of calls separated by "->" or ".". |
2209 | 2171 |
2210 **** c-lineup-knr-region-comment | 2172 **** `c-lineup-knr-region-comment' |
2211 Gives (what most people think is) better indentation of comments in | 2173 Gives (what most people think is) better indentation of comments in |
2212 the "K&R region" between the function header and its body. | 2174 the "K&R region" between the function header and its body. |
2213 | 2175 |
2214 **** c-lineup-gcc-asm-reg | 2176 **** `c-lineup-gcc-asm-reg' |
2215 Provides better indentation inside asm blocks. Contributed by Kevin | 2177 Provides better indentation inside asm blocks. |
2216 Ryde. | 2178 |
2217 | 2179 **** `c-lineup-argcont' |
2218 **** c-lineup-argcont | |
2219 Lines up continued function arguments after the preceding comma. | 2180 Lines up continued function arguments after the preceding comma. |
2220 Contributed by Kevin Ryde. | |
2221 | 2181 |
2222 *** Better caching of the syntactic context. | 2182 *** Better caching of the syntactic context. |
2223 CC Mode caches the positions of the opening parentheses (of any kind) | 2183 CC Mode caches the positions of the opening parentheses (of any kind) |
2224 of the lists surrounding the point. Those positions are used in many | 2184 of the lists surrounding the point. Those positions are used in many |
2225 places as anchor points for various searches. The cache is now | 2185 places as anchor points for various searches. The cache is now |
2235 *** Statements are recognized in a more robust way. | 2195 *** Statements are recognized in a more robust way. |
2236 Statements are recognized most of the time even when they occur in an | 2196 Statements are recognized most of the time even when they occur in an |
2237 "invalid" context, e.g. in a function argument. In practice that can | 2197 "invalid" context, e.g. in a function argument. In practice that can |
2238 happen when macros are involved. | 2198 happen when macros are involved. |
2239 | 2199 |
2240 *** Improved the way c-indent-exp chooses the block to indent. | 2200 *** Improved the way `c-indent-exp' chooses the block to indent. |
2241 It now indents the block for the closest sexp following the point | 2201 It now indents the block for the closest sexp following the point |
2242 whose closing paren ends on a different line. This means that the | 2202 whose closing paren ends on a different line. This means that the |
2243 point doesn't have to be immediately before the block to indent. | 2203 point doesn't have to be immediately before the block to indent. |
2244 Also, only the block and the closing line is indented; the current | 2204 Also, only the block and the closing line is indented; the current |
2245 line is left untouched. | 2205 line is left untouched. |
2246 | 2206 |
2247 *** Added toggle for syntactic indentation. | 2207 *** Added toggle for syntactic indentation. |
2248 The function c-toggle-syntactic-indentation can be used to toggle | 2208 The function `c-toggle-syntactic-indentation' can be used to toggle |
2249 syntactic indentation. | 2209 syntactic indentation. |
2250 | 2210 |
2251 --- | 2211 --- |
2252 ** Perl mode has a new variable `perl-indent-continued-arguments'. | 2212 ** Perl mode has a new variable `perl-indent-continued-arguments'. |
2253 | 2213 |
2273 `f90-end-of-block', `f90-beginning-of-block', `f90-next-block', | 2233 `f90-end-of-block', `f90-beginning-of-block', `f90-next-block', |
2274 `f90-previous-block', `fortran-end-of-block', | 2234 `f90-previous-block', `fortran-end-of-block', |
2275 `fortran-beginning-of-block'. | 2235 `fortran-beginning-of-block'. |
2276 | 2236 |
2277 --- | 2237 --- |
2278 *** F90 mode and Fortran mode have support for hs-minor-mode (hideshow). | 2238 *** F90 mode and Fortran mode have support for `hs-minor-mode' (hideshow). |
2279 It cannot deal with every code format, but ought to handle a sizeable | 2239 It cannot deal with every code format, but ought to handle a sizeable |
2280 majority. | 2240 majority. |
2281 | 2241 |
2282 --- | 2242 --- |
2283 *** The new function `f90-backslash-not-special' can be used to change | 2243 *** The new function `f90-backslash-not-special' can be used to change |
2318 --- | 2278 --- |
2319 *** verbatim environments are now highlighted in courier by font-lock | 2279 *** verbatim environments are now highlighted in courier by font-lock |
2320 and super/sub-scripts are made into super/sub-scripts. | 2280 and super/sub-scripts are made into super/sub-scripts. |
2321 | 2281 |
2322 +++ | 2282 +++ |
2323 *** New major mode doctex-mode for *.dtx files. | 2283 *** New major mode Doctex mode, for *.dtx files. |
2324 | 2284 |
2325 ** BibTeX mode: | 2285 ** BibTeX mode: |
2326 *** The new command bibtex-url browses a URL for the BibTeX entry at | 2286 |
2287 *** The new command `bibtex-url' browses a URL for the BibTeX entry at | |
2327 point (bound to C-c C-l and mouse-2, RET on clickable fields). | 2288 point (bound to C-c C-l and mouse-2, RET on clickable fields). |
2328 | 2289 |
2329 *** The new command bibtex-entry-update (bound to C-c C-u) updates | 2290 *** The new command `bibtex-entry-update' (bound to C-c C-u) updates |
2330 an existing BibTeX entry. | 2291 an existing BibTeX entry. |
2331 | 2292 |
2332 *** New `bibtex-entry-format' option `required-fields', enabled by default. | 2293 *** New `bibtex-entry-format' option `required-fields', enabled by default. |
2333 | 2294 |
2334 *** bibtex-maintain-sorted-entries can take values `plain', | 2295 *** `bibtex-maintain-sorted-entries' can take values `plain', |
2335 `crossref', and `entry-class' which control the sorting scheme used | 2296 `crossref', and `entry-class' which control the sorting scheme used |
2336 for BibTeX entries. `bibtex-sort-entry-class' controls the sorting | 2297 for BibTeX entries. `bibtex-sort-entry-class' controls the sorting |
2337 scheme `entry-class'. TAB completion for reference keys and | 2298 scheme `entry-class'. TAB completion for reference keys and |
2338 automatic detection of duplicates does not require anymore that | 2299 automatic detection of duplicates does not require anymore that |
2339 bibtex-maintain-sorted-entries is non-nil. | 2300 `bibtex-maintain-sorted-entries' is non-nil. |
2340 | 2301 |
2341 *** If the new variable bibtex-parse-keys-fast is non-nil, | 2302 *** If the new variable `bibtex-parse-keys-fast' is non-nil, |
2342 use fast but simplified algorithm for parsing BibTeX keys. | 2303 use fast but simplified algorithm for parsing BibTeX keys. |
2343 | 2304 |
2344 *** If the new variable bibtex-autoadd-commas is non-nil, | 2305 *** If the new variable `bibtex-autoadd-commas' is non-nil, |
2345 automatically add missing commas at end of BibTeX fields. | 2306 automatically add missing commas at end of BibTeX fields. |
2346 | 2307 |
2347 *** The new variable bibtex-autofill-types contains a list of entry | 2308 *** The new variable `bibtex-autofill-types' contains a list of entry |
2348 types for which fields are filled automatically (if possible). | 2309 types for which fields are filled automatically (if possible). |
2349 | 2310 |
2350 *** The new command bibtex-complete completes word fragment before | 2311 *** The new command `bibtex-complete' completes word fragment before |
2351 point according to context (bound to M-tab). | 2312 point according to context (bound to M-tab). |
2352 | 2313 |
2353 *** The new commands bibtex-find-entry and bibtex-find-crossref | 2314 *** The new commands `bibtex-find-entry' and `bibtex-find-crossref' |
2354 locate entries and crossref'd entries (bound to C-c C-s and C-c C-x). | 2315 locate entries and crossref'd entries (bound to C-c C-s and C-c C-x). |
2355 Crossref fields are clickable (bound to mouse-2, RET). | 2316 Crossref fields are clickable (bound to mouse-2, RET). |
2356 | 2317 |
2357 *** In BibTeX mode the command fill-paragraph (bound to M-q) fills | 2318 *** In BibTeX mode the command `fill-paragraph' (M-q) fills |
2358 individual fields of a BibTeX entry. | 2319 individual fields of a BibTeX entry. |
2359 | 2320 |
2360 *** The new variables bibtex-files and bibtex-file-path define a set | 2321 *** The new variables `bibtex-files' and `bibtex-file-path' define a set |
2361 of BibTeX files that are searched for entry keys. | 2322 of BibTeX files that are searched for entry keys. |
2362 | 2323 |
2363 *** The new command bibtex-validate-globally checks for duplicate keys | 2324 *** The new command `bibtex-validate-globally' checks for duplicate keys |
2364 in multiple BibTeX files. | 2325 in multiple BibTeX files. |
2365 | 2326 |
2366 *** The new command bibtex-copy-summary-as-kill pushes summary | 2327 *** The new command `bibtex-copy-summary-as-kill' pushes summary |
2367 of BibTeX entry to kill ring (bound to C-c C-t). | 2328 of BibTeX entry to kill ring (bound to C-c C-t). |
2368 | 2329 |
2369 +++ | 2330 +++ |
2370 ** In Enriched mode, `set-left-margin' and `set-right-margin' are now | 2331 ** In Enriched mode, `set-left-margin' and `set-right-margin' are now |
2371 by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l' | 2332 by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l' |
2383 | 2344 |
2384 +++ | 2345 +++ |
2385 *** The new package gdb-ui.el provides an enhanced graphical interface to | 2346 *** The new package gdb-ui.el provides an enhanced graphical interface to |
2386 GDB. You can interact with GDB through the GUD buffer in the usual way, but | 2347 GDB. You can interact with GDB through the GUD buffer in the usual way, but |
2387 there are also further buffers which control the execution and describe the | 2348 there are also further buffers which control the execution and describe the |
2388 state of your program. It separates the input/output of your program from | 2349 state of your program. It can separate the input/output of your program from |
2389 that of GDB and watches expressions in the speedbar. It also uses features of | 2350 that of GDB and watches expressions in the speedbar. It also uses features of |
2390 Emacs 21 such as the display margin for breakpoints, and the toolbar. | 2351 Emacs 21/22 such as the the toolbar, and bitmaps in the fringe to indicate |
2391 | 2352 breakpoints. |
2392 Use M-x gdba to start GDB-UI. | 2353 |
2393 | 2354 Use M-x gdb to start GDB-UI. |
2394 *** GUD tooltips can be toggled independently of normal tooltips | 2355 |
2395 with the minor mode, gud-tooltip-mode. | 2356 *** The variable tooltip-gud-tips-p has been removed. GUD tooltips can now be |
2357 toggled independently of normal tooltips with the minor mode | |
2358 `gud-tooltip-mode'. | |
2396 | 2359 |
2397 +++ | 2360 +++ |
2398 *** In graphical mode, with a C program, GUD Tooltips have been extended to | 2361 *** In graphical mode, with a C program, GUD Tooltips have been extended to |
2399 display the #define directive associated with an identifier when program is | 2362 display the #define directive associated with an identifier when program is |
2400 not executing. | 2363 not executing. |
2416 *** Supports new jdb (Java 1.2 and later) in addition to oldjdb | 2379 *** Supports new jdb (Java 1.2 and later) in addition to oldjdb |
2417 (Java 1.1 jdb). | 2380 (Java 1.1 jdb). |
2418 | 2381 |
2419 *** The previous method of searching for source files has been | 2382 *** The previous method of searching for source files has been |
2420 preserved in case someone still wants/needs to use it. | 2383 preserved in case someone still wants/needs to use it. |
2421 Set gud-jdb-use-classpath to nil. | 2384 Set `gud-jdb-use-classpath' to nil. |
2422 | 2385 |
2423 Added Customization Variables | 2386 Added Customization Variables |
2424 | 2387 |
2425 *** gud-jdb-command-name. What command line to use to invoke jdb. | 2388 *** `gud-jdb-command-name'. What command line to use to invoke jdb. |
2426 | 2389 |
2427 *** gud-jdb-use-classpath. Allows selection of java source file searching | 2390 *** `gud-jdb-use-classpath'. Allows selection of java source file searching |
2428 method: set to t for new method, nil to scan gud-jdb-directories for | 2391 method: set to t for new method, nil to scan `gud-jdb-directories' for |
2429 java sources (previous method). | 2392 java sources (previous method). |
2430 | 2393 |
2431 *** gud-jdb-directories. List of directories to scan and search for java | 2394 *** `gud-jdb-directories'. List of directories to scan and search for java |
2432 classes using the original gud-jdb method (if gud-jdb-use-classpath | 2395 classes using the original gud-jdb method (if `gud-jdb-use-classpath' |
2433 is nil). | 2396 is nil). |
2434 | 2397 |
2435 Minor Improvements | 2398 Minor Improvements |
2436 | 2399 |
2437 *** The STARTTLS elisp wrapper (starttls.el) can now use GNUTLS | 2400 *** The STARTTLS wrapper (starttls.el) can now use GNUTLS |
2438 instead of the OpenSSL based "starttls" tool. For backwards | 2401 instead of the OpenSSL based `starttls' tool. For backwards |
2439 compatibility, it prefers "starttls", but you can toggle | 2402 compatibility, it prefers `starttls', but you can toggle |
2440 `starttls-use-gnutls' to switch to GNUTLS (or simply remove the | 2403 `starttls-use-gnutls' to switch to GNUTLS (or simply remove the |
2441 "starttls" tool). | 2404 `starttls' tool). |
2442 | 2405 |
2443 *** Do not allow debugger output history variable to grow without bounds. | 2406 *** Do not allow debugger output history variable to grow without bounds. |
2444 | 2407 |
2445 ** Auto-Revert changes: | 2408 ** Auto-Revert changes: |
2446 | 2409 |
2447 +++ | 2410 +++ |
2448 *** You can now use Auto Revert mode to `tail' a file. | 2411 *** You can now use Auto Revert mode to `tail' a file. |
2412 | |
2449 If point is at the end of a file buffer before reverting, Auto Revert | 2413 If point is at the end of a file buffer before reverting, Auto Revert |
2450 mode keeps it at the end after reverting. Similarly if point is | 2414 mode keeps it at the end after reverting. Similarly if point is |
2451 displayed at the end of a file buffer in any window, it stays at | 2415 displayed at the end of a file buffer in any window, it stays at |
2452 the end of the buffer in that window. This allows to tail a file: | 2416 the end of the buffer in that window. This allows to tail a file: |
2453 just put point at the end of the buffer and it stays there. This | 2417 just put point at the end of the buffer and it stays there. This |
2499 | 2463 |
2500 +++ | 2464 +++ |
2501 ** Desktop package | 2465 ** Desktop package |
2502 | 2466 |
2503 +++ | 2467 +++ |
2504 *** Desktop saving is now a minor mode, desktop-save-mode. Variable | 2468 *** Desktop saving is now a minor mode, `desktop-save-mode'. |
2505 desktop-enable is obsolete. Customize desktop-save-mode to enable desktop | 2469 |
2506 saving. | 2470 *** The variable `desktop-enable' is obsolete. |
2471 | |
2472 Customize `desktop-save-mode' to enable desktop saving. | |
2507 | 2473 |
2508 --- | 2474 --- |
2509 *** Buffers are saved in the desktop file in the same order as that in the | 2475 *** Buffers are saved in the desktop file in the same order as that in the |
2510 buffer list. | 2476 buffer list. |
2511 | 2477 |
2512 +++ | 2478 +++ |
2513 *** The desktop package can be customized to restore only some buffers immediately, | 2479 *** The desktop package can be customized to restore only some buffers |
2514 remaining buffers are restored lazily (when Emacs is idle). | 2480 immediately, remaining buffers are restored lazily (when Emacs is |
2481 idle). | |
2515 | 2482 |
2516 +++ | 2483 +++ |
2517 *** New commands: | 2484 *** New commands: |
2518 - desktop-revert reverts to the last loaded desktop. | 2485 - desktop-revert reverts to the last loaded desktop. |
2519 - desktop-change-dir kills current desktop and loads a new. | 2486 - desktop-change-dir kills current desktop and loads a new. |
2545 - desktop-after-read-hook run after a desktop is loaded. | 2512 - desktop-after-read-hook run after a desktop is loaded. |
2546 - desktop-no-desktop-file-hook run when no desktop file is found. | 2513 - desktop-no-desktop-file-hook run when no desktop file is found. |
2547 | 2514 |
2548 --- | 2515 --- |
2549 ** The saveplace.el package now filters out unreadable files. | 2516 ** The saveplace.el package now filters out unreadable files. |
2517 | |
2550 When you exit Emacs, the saved positions in visited files no longer | 2518 When you exit Emacs, the saved positions in visited files no longer |
2551 include files that aren't readable, e.g. files that don't exist. | 2519 include files that aren't readable, e.g. files that don't exist. |
2552 Customize the new option `save-place-forget-unreadable-files' to nil | 2520 Customize the new option `save-place-forget-unreadable-files' to nil |
2553 to get the old behavior. The new options `save-place-save-skipped' | 2521 to get the old behavior. The new options `save-place-save-skipped' |
2554 and `save-place-skip-check-regexp' allow further fine-tuning of this | 2522 and `save-place-skip-check-regexp' allow further fine-tuning of this |
2577 ** Etags changes. | 2545 ** Etags changes. |
2578 | 2546 |
2579 *** New regular expressions features | 2547 *** New regular expressions features |
2580 | 2548 |
2581 **** New syntax for regular expressions, multi-line regular expressions. | 2549 **** New syntax for regular expressions, multi-line regular expressions. |
2550 | |
2582 The syntax --ignore-case-regexp=/regex/ is now undocumented and retained | 2551 The syntax --ignore-case-regexp=/regex/ is now undocumented and retained |
2583 only for backward compatibility. The new equivalent syntax is | 2552 only for backward compatibility. The new equivalent syntax is |
2584 --regex=/regex/i. More generally, it is --regex=/TAGREGEX/TAGNAME/MODS, | 2553 --regex=/regex/i. More generally, it is --regex=/TAGREGEX/TAGNAME/MODS, |
2585 where `/TAGNAME' is optional, as usual, and MODS is a string of 0 or | 2554 where `/TAGNAME' is optional, as usual, and MODS is a string of 0 or |
2586 more characters among `i' (ignore case), `m' (multi-line) and `s' | 2555 more characters among `i' (ignore case), `m' (multi-line) and `s' |
2588 expressions: `m' allows regexps to match more than one line, while `s' | 2557 expressions: `m' allows regexps to match more than one line, while `s' |
2589 (which implies `m') means that `.' matches newlines. The ability to | 2558 (which implies `m') means that `.' matches newlines. The ability to |
2590 span newlines allows writing of much more powerful regular expressions | 2559 span newlines allows writing of much more powerful regular expressions |
2591 and rapid prototyping for tagging new languages. | 2560 and rapid prototyping for tagging new languages. |
2592 | 2561 |
2593 **** Regular expressions can use char escape sequences as in Gcc. | 2562 **** Regular expressions can use char escape sequences as in GCC. |
2563 | |
2594 The escaped character sequence \a, \b, \d, \e, \f, \n, \r, \t, \v, | 2564 The escaped character sequence \a, \b, \d, \e, \f, \n, \r, \t, \v, |
2595 respectively, stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL, | 2565 respectively, stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL, |
2596 CR, TAB, VT, | 2566 CR, TAB, VT, |
2597 | 2567 |
2598 **** Regular expressions can be bound to a given language. | 2568 **** Regular expressions can be bound to a given language. |
2569 | |
2599 The syntax --regex={LANGUAGE}REGEX means that REGEX is used to make tags | 2570 The syntax --regex={LANGUAGE}REGEX means that REGEX is used to make tags |
2600 only for files of language LANGUAGE, and ignored otherwise. This is | 2571 only for files of language LANGUAGE, and ignored otherwise. This is |
2601 particularly useful when storing regexps in a file. | 2572 particularly useful when storing regexps in a file. |
2602 | 2573 |
2603 **** Regular expressions can be read from a file. | 2574 **** Regular expressions can be read from a file. |
2575 | |
2604 The --regex=@regexfile option means read the regexps from a file, one | 2576 The --regex=@regexfile option means read the regexps from a file, one |
2605 per line. Lines beginning with space or tab are ignored. | 2577 per line. Lines beginning with space or tab are ignored. |
2606 | 2578 |
2607 *** New language parsing features | 2579 *** New language parsing features |
2608 | 2580 |
2609 **** The `::' qualifier triggers C++ parsing in C file. | 2581 **** The `::' qualifier triggers C++ parsing in C file. |
2582 | |
2610 Previously, only the `template' and `class' keywords had this effect. | 2583 Previously, only the `template' and `class' keywords had this effect. |
2611 | 2584 |
2612 **** The gnucc __attribute__ keyword is now recognised and ignored. | 2585 **** The GCC __attribute__ keyword is now recognised and ignored. |
2613 | 2586 |
2614 **** New language HTML. | 2587 **** New language HTML. |
2615 Title and h1, h2, h3 are tagged. Also, tags are generated when name= is | 2588 |
2616 used inside an anchor and whenever id= is used. | 2589 Tags are generated for `title' as well as `h1', `h2', and `h3'. Also, |
2590 when `name=' is used inside an anchor and whenever `id=' is used. | |
2617 | 2591 |
2618 **** In Makefiles, constants are tagged. | 2592 **** In Makefiles, constants are tagged. |
2593 | |
2619 If you want the old behavior instead, thus avoiding to increase the | 2594 If you want the old behavior instead, thus avoiding to increase the |
2620 size of the tags file, use the --no-globals option. | 2595 size of the tags file, use the --no-globals option. |
2621 | 2596 |
2622 **** New language Lua. | 2597 **** New language Lua. |
2598 | |
2623 All functions are tagged. | 2599 All functions are tagged. |
2624 | 2600 |
2625 **** In Perl, packages are tags. | 2601 **** In Perl, packages are tags. |
2602 | |
2626 Subroutine tags are named from their package. You can jump to sub tags | 2603 Subroutine tags are named from their package. You can jump to sub tags |
2627 as you did before, by the sub name, or additionally by looking for | 2604 as you did before, by the sub name, or additionally by looking for |
2628 package::sub. | 2605 package::sub. |
2629 | 2606 |
2630 **** In Prolog, etags creates tags for rules in addition to predicates. | 2607 **** In Prolog, etags creates tags for rules in addition to predicates. |
2631 | 2608 |
2632 **** New language PHP. | 2609 **** New language PHP. |
2633 Tags are functions, classes and defines. | 2610 |
2634 If the --members option is specified to etags, tags are variables also. | 2611 Functions, classes and defines are tags. If the --members option is |
2612 specified to etags, variables are tags also. | |
2635 | 2613 |
2636 **** New default keywords for TeX. | 2614 **** New default keywords for TeX. |
2615 | |
2637 The new keywords are def, newcommand, renewcommand, newenvironment and | 2616 The new keywords are def, newcommand, renewcommand, newenvironment and |
2638 renewenvironment. | 2617 renewenvironment. |
2639 | 2618 |
2640 *** Honour #line directives. | 2619 *** Honour #line directives. |
2620 | |
2641 When Etags parses an input file that contains C preprocessor's #line | 2621 When Etags parses an input file that contains C preprocessor's #line |
2642 directives, it creates tags using the file name and line number | 2622 directives, it creates tags using the file name and line number |
2643 specified in those directives. This is useful when dealing with code | 2623 specified in those directives. This is useful when dealing with code |
2644 created from Cweb source files. When Etags tags the generated file, it | 2624 created from Cweb source files. When Etags tags the generated file, it |
2645 writes tags pointing to the source file. | 2625 writes tags pointing to the source file. |
2646 | 2626 |
2647 *** New option --parse-stdin=FILE. | 2627 *** New option --parse-stdin=FILE. |
2628 | |
2648 This option is mostly useful when calling etags from programs. It can | 2629 This option is mostly useful when calling etags from programs. It can |
2649 be used (only once) in place of a file name on the command line. Etags | 2630 be used (only once) in place of a file name on the command line. Etags |
2650 reads from standard input and marks the produced tags as belonging to | 2631 reads from standard input and marks the produced tags as belonging to |
2651 the file FILE. | 2632 the file FILE. |
2652 | 2633 |
2653 ** VC Changes | 2634 ** VC Changes |
2654 | 2635 |
2655 +++ | 2636 +++ |
2656 *** The key C-x C-q no longer checks files in or out, it only changes | 2637 *** The key C-x C-q only changes the read-only state of the buffer |
2657 the read-only state of the buffer (toggle-read-only). We made this | 2638 (toggle-read-only). It no longer checks files in or out. |
2658 change because we held a poll and found that many users were unhappy | 2639 |
2659 with the previous behavior. If you do prefer this behavior, you | 2640 We made this change because we held a poll and found that many users |
2660 can bind `vc-toggle-read-only' to C-x C-q in your .emacs: | 2641 were unhappy with the previous behavior. If you do prefer this |
2642 behavior, you can bind `vc-toggle-read-only' to C-x C-q in your | |
2643 `.emacs' file: | |
2661 | 2644 |
2662 (global-set-key "\C-x\C-q" 'vc-toggle-read-only) | 2645 (global-set-key "\C-x\C-q" 'vc-toggle-read-only) |
2663 | 2646 |
2664 The function `vc-toggle-read-only' will continue to exist. | 2647 The function `vc-toggle-read-only' will continue to exist. |
2665 | 2648 |
2666 +++ | 2649 +++ |
2667 *** There is a new user option `vc-cvs-global-switches' that allows | 2650 *** The new variable `vc-cvs-global-switches' specifies switches that |
2668 you to specify switches that are passed to any CVS command invoked | 2651 are passed to any CVS command invoked by VC. |
2669 by VC. These switches are used as "global options" for CVS, which | 2652 |
2670 means they are inserted before the command name. For example, this | 2653 These switches are used as "global options" for CVS, which means they |
2671 allows you to specify a compression level using the "-z#" option for | 2654 are inserted before the command name. For example, this allows you to |
2672 CVS. | 2655 specify a compression level using the `-z#' option for CVS. |
2673 | 2656 |
2674 +++ | 2657 +++ |
2675 *** New backends for Subversion and Meta-CVS. | 2658 *** New backends for Subversion and Meta-CVS. |
2676 | 2659 |
2677 +++ | 2660 +++ |
2678 *** vc-annotate-mode enhancements | 2661 *** VC-Annotate mode enhancements |
2679 | 2662 |
2680 In vc-annotate mode, you can now use the following key bindings for | 2663 In VC-Annotate mode, you can now use the following key bindings for |
2681 enhanced functionality to browse the annotations of past revisions, or | 2664 enhanced functionality to browse the annotations of past revisions, or |
2682 to view diffs or log entries directly from vc-annotate-mode: | 2665 to view diffs or log entries directly from vc-annotate-mode: |
2683 | 2666 |
2684 P: annotates the previous revision | 2667 P: annotates the previous revision |
2685 N: annotates the next revision | 2668 N: annotates the next revision |
2697 in the repository. | 2680 in the repository. |
2698 | 2681 |
2699 +++ | 2682 +++ |
2700 *** In pcl-cvs mode, there is a new `d r' command to view the changes | 2683 *** In pcl-cvs mode, there is a new `d r' command to view the changes |
2701 anyone has committed to the repository since you last executed | 2684 anyone has committed to the repository since you last executed |
2702 "checkout", "update" or "commit". That means using cvs diff options | 2685 `checkout', `update' or `commit'. That means using cvs diff options |
2703 -rBASE -rHEAD. | 2686 -rBASE -rHEAD. |
2704 | 2687 |
2705 +++ | 2688 +++ |
2706 ** There is a new user option `mail-default-directory' that allows you | 2689 ** The new variable `mail-default-directory' specifies |
2707 to specify the value of `default-directory' for mail buffers. This | 2690 `default-directory' for mail buffers. This directory is used for |
2708 directory is used for auto-save files of mail buffers. It defaults to | 2691 auto-save files of mail buffers. It defaults to "~/". |
2709 "~/". | 2692 |
2710 | 2693 +++ |
2711 +++ | 2694 ** The mode line can indicate new mail in a directory or file. |
2712 ** Emacs can now indicate in the mode-line the presence of new e-mail | 2695 |
2713 in a directory or in a file. See the documentation of the user option | 2696 See the documentation of the user option |
2714 `display-time-mail-directory'. | 2697 `display-time-mail-directory'. |
2715 | 2698 |
2716 ** Rmail changes: | 2699 ** Rmail changes: |
2717 | 2700 |
2718 --- | 2701 --- |
2719 *** Rmail now displays 5-digit message ids in its summary buffer. | 2702 *** Rmail now displays 5-digit message ids in its summary buffer. |
2720 | 2703 |
2721 +++ | 2704 +++ |
2722 *** Support for `movemail' from GNU mailutils was added to Rmail. | 2705 *** Support for `movemail' from GNU mailutils was added to Rmail. |
2706 | |
2723 This version of `movemail' allows to read mail from a wide range of | 2707 This version of `movemail' allows to read mail from a wide range of |
2724 mailbox formats, including remote POP3 and IMAP4 mailboxes with or | 2708 mailbox formats, including remote POP3 and IMAP4 mailboxes with or |
2725 without TLS encryption. If GNU mailutils is installed on the system | 2709 without TLS encryption. If GNU mailutils is installed on the system |
2726 and its version of `movemail' can be found in exec-path, it will be | 2710 and its version of `movemail' can be found in exec-path, it will be |
2727 used instead of the native one. | 2711 used instead of the native one. |
2728 | 2712 |
2729 ** Gnus package | 2713 ** Gnus package |
2730 | 2714 |
2731 --- | 2715 --- |
2732 *** Gnus now includes Sieve and PGG | 2716 *** Gnus now includes Sieve and PGG |
2717 | |
2733 Sieve is a library for managing Sieve scripts. PGG is a library to handle | 2718 Sieve is a library for managing Sieve scripts. PGG is a library to handle |
2734 PGP/MIME. | 2719 PGP/MIME. |
2735 | 2720 |
2736 --- | 2721 --- |
2737 *** There are many news features, bug fixes and improvements. | 2722 *** There are many news features, bug fixes and improvements. |
2723 | |
2738 See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details. | 2724 See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details. |
2739 | 2725 |
2740 --- | 2726 --- |
2741 ** MH-E changes. | 2727 ** MH-E changes. |
2742 | 2728 |
2784 *** The function `simple-diary-display' now by default sets a header line. | 2770 *** The function `simple-diary-display' now by default sets a header line. |
2785 This can be controlled through the variables `diary-header-line-flag' | 2771 This can be controlled through the variables `diary-header-line-flag' |
2786 and `diary-header-line-format'. | 2772 and `diary-header-line-format'. |
2787 | 2773 |
2788 +++ | 2774 +++ |
2789 *** The procedure for activating appointment reminders has changed: use | 2775 *** The procedure for activating appointment reminders has changed: |
2790 the new function `appt-activate'. The new variable | 2776 use the new function `appt-activate'. The new variable |
2791 `appt-display-format' controls how reminders are displayed, replacing | 2777 `appt-display-format' controls how reminders are displayed, replacing |
2792 appt-issue-message, appt-visible, and appt-msg-window. | 2778 `appt-issue-message', `appt-visible', and `appt-msg-window'. |
2793 | 2779 |
2794 +++ | 2780 +++ |
2795 *** The new functions `diary-from-outlook', `diary-from-outlook-gnus', | 2781 *** The new functions `diary-from-outlook', `diary-from-outlook-gnus', |
2796 and `diary-from-outlook-rmail' can be used to import diary entries | 2782 and `diary-from-outlook-rmail' can be used to import diary entries |
2797 from Outlook-format appointments in mail messages. The variable | 2783 from Outlook-format appointments in mail messages. The variable |
2825 | 2811 |
2826 The current product name will be shown on the mode line following the | 2812 The current product name will be shown on the mode line following the |
2827 SQL mode indicator. | 2813 SQL mode indicator. |
2828 | 2814 |
2829 The technique of setting `sql-mode-font-lock-defaults' directly in | 2815 The technique of setting `sql-mode-font-lock-defaults' directly in |
2830 your .emacs will no longer establish the default highlighting -- Use | 2816 your `.emacs' will no longer establish the default highlighting -- Use |
2831 `sql-product' to accomplish this. | 2817 `sql-product' to accomplish this. |
2832 | 2818 |
2833 ANSI keywords are always highlighted. | 2819 ANSI keywords are always highlighted. |
2834 | 2820 |
2835 *** The function `sql-add-product-keywords' can be used to add | 2821 *** The function `sql-add-product-keywords' can be used to add |
2836 font-lock rules to the product specific rules. For example, to have | 2822 font-lock rules to the product specific rules. For example, to have |
2837 all identifiers ending in "_t" under MS SQLServer treated as a type, | 2823 all identifiers ending in `_t' under MS SQLServer treated as a type, |
2838 you would use the following line in your .emacs file: | 2824 you would use the following line in your .emacs file: |
2839 | 2825 |
2840 (sql-add-product-keywords 'ms | 2826 (sql-add-product-keywords 'ms |
2841 '(("\\<\\w+_t\\>" . font-lock-type-face))) | 2827 '(("\\<\\w+_t\\>" . font-lock-type-face))) |
2842 | 2828 |
2843 *** Oracle support includes keyword highlighting for Oracle 9i. Most | 2829 *** Oracle support includes keyword highlighting for Oracle 9i. |
2844 SQL and PL/SQL keywords are implemented. SQL*Plus commands are | 2830 |
2831 Most SQL and PL/SQL keywords are implemented. SQL*Plus commands are | |
2845 highlighted in `font-lock-doc-face'. | 2832 highlighted in `font-lock-doc-face'. |
2846 | 2833 |
2847 *** Microsoft SQLServer support has been significantly improved. | 2834 *** Microsoft SQLServer support has been significantly improved. |
2835 | |
2848 Keyword highlighting for SqlServer 2000 is implemented. | 2836 Keyword highlighting for SqlServer 2000 is implemented. |
2849 sql-interactive-mode defaults to use osql, rather than isql, because | 2837 sql-interactive-mode defaults to use osql, rather than isql, because |
2850 osql flushes its error stream more frequently. Thus error messages | 2838 osql flushes its error stream more frequently. Thus error messages |
2851 are displayed when they occur rather than when the session is | 2839 are displayed when they occur rather than when the session is |
2852 terminated. | 2840 terminated. |
2853 | 2841 |
2854 If the username and password are not provided to `sql-ms', osql is | 2842 If the username and password are not provided to `sql-ms', osql is |
2855 called with the -E command line argument to use the operating system | 2843 called with the `-E' command line argument to use the operating system |
2856 credentials to authenticate the user. | 2844 credentials to authenticate the user. |
2857 | 2845 |
2858 *** Postgres support is enhanced. | 2846 *** Postgres support is enhanced. |
2859 Keyword highlighting of Postgres 7.3 is implemented. Prompting for | 2847 Keyword highlighting of Postgres 7.3 is implemented. Prompting for |
2860 the username and the pgsql `-U' option is added. | 2848 the username and the pgsql `-U' option is added. |
2865 *** Imenu support has been enhanced to locate tables, views, indexes, | 2853 *** Imenu support has been enhanced to locate tables, views, indexes, |
2866 packages, procedures, functions, triggers, sequences, rules, and | 2854 packages, procedures, functions, triggers, sequences, rules, and |
2867 defaults. | 2855 defaults. |
2868 | 2856 |
2869 *** Added SQL->Start SQLi Session menu entry which calls the | 2857 *** Added SQL->Start SQLi Session menu entry which calls the |
2870 appropriate sql-interactive-mode wrapper for the current setting of | 2858 appropriate `sql-interactive-mode' wrapper for the current setting of |
2871 `sql-product'. | 2859 `sql-product'. |
2872 | 2860 |
2873 --- | 2861 --- |
2874 *** Support for the SQLite interpreter has been added to sql.el by calling | 2862 *** sql.el supports the SQLite interpreter--call 'sql-sqlite'. |
2875 'sql-sqlite'. | |
2876 | 2863 |
2877 ** FFAP changes: | 2864 ** FFAP changes: |
2878 | 2865 |
2879 +++ | 2866 +++ |
2880 *** New ffap commands and keybindings: C-x C-r (`ffap-read-only'), | 2867 *** New ffap commands and keybindings: |
2868 | |
2869 C-x C-r (`ffap-read-only'), | |
2881 C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'), | 2870 C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'), |
2882 C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'), | 2871 C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'), |
2883 C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame'). | 2872 C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame'). |
2884 | 2873 |
2885 --- | 2874 --- |
2886 *** FFAP accepts wildcards in a file name by default. C-x C-f passes | 2875 *** FFAP accepts wildcards in a file name by default. |
2887 it to `find-file' with non-nil WILDCARDS argument, which visits | 2876 |
2888 multiple files, and C-x d passes it to `dired'. | 2877 C-x C-f passes the file name to `find-file' with non-nil WILDCARDS |
2889 | 2878 argument, which visits multiple files, and C-x d passes it to `dired'. |
2890 --- | 2879 |
2891 ** skeleton.el now supports using - to mark the skeleton-point without | 2880 --- |
2892 interregion interaction. @ has reverted to only setting | 2881 ** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction. |
2893 skeleton-positions and no longer sets skeleton-point. Skeletons | 2882 |
2894 which used @ to mark skeleton-point independent of _ should now use - | 2883 `@' has reverted to only setting `skeleton-positions' and no longer |
2895 instead. The updated skeleton-insert docstring explains these new | 2884 sets `skeleton-point'. Skeletons which used @ to mark |
2896 features along with other details of skeleton construction. | 2885 `skeleton-point' independent of `_' should now use `-' instead. The |
2886 updated `skeleton-insert' docstring explains these new features along | |
2887 with other details of skeleton construction. | |
2897 | 2888 |
2898 --- | 2889 --- |
2899 ** New variable `hs-set-up-overlay' allows customization of the overlay | 2890 ** New variable `hs-set-up-overlay' allows customization of the overlay |
2900 used to effect hiding for hideshow minor mode. Integration with isearch | 2891 used to effect hiding for hideshow minor mode. Integration with isearch |
2901 handles the overlay property `display' specially, preserving it during | 2892 handles the overlay property `display' specially, preserving it during |
2902 temporary overlay showing in the course of an isearch operation. | 2893 temporary overlay showing in the course of an isearch operation. |
2903 | 2894 |
2904 +++ | 2895 +++ |
2905 ** hide-ifdef-mode now uses overlays rather than selective-display | 2896 ** `hide-ifdef-mode' now uses overlays rather than selective-display |
2906 to hide its text. This should be mostly transparent but slightly | 2897 to hide its text. This should be mostly transparent but slightly |
2907 changes the behavior of motion commands like C-e and C-p. | 2898 changes the behavior of motion commands like C-e and C-p. |
2908 | 2899 |
2909 --- | 2900 --- |
2910 ** partial-completion-mode now does partial completion on directory names. | 2901 ** `partial-completion-mode' now handles partial completion on directory names. |
2911 | 2902 |
2912 --- | 2903 --- |
2913 ** The type-break package now allows `type-break-file-name' to be nil | 2904 ** The type-break package now allows `type-break-file-name' to be nil |
2914 and if so, doesn't store any data across sessions. This is handy if | 2905 and if so, doesn't store any data across sessions. This is handy if |
2915 you don't want the .type-break file in your home directory or are | 2906 you don't want the `.type-break' file in your home directory or are |
2916 annoyed by the need for interaction when you kill Emacs. | 2907 annoyed by the need for interaction when you kill Emacs. |
2917 | 2908 |
2918 --- | 2909 --- |
2919 ** `ps-print' can now print characters from the mule-unicode charsets. | 2910 ** `ps-print' can now print characters from the mule-unicode charsets. |
2920 | 2911 |
2921 Printing text with characters from the mule-unicode-* sets works with | 2912 Printing text with characters from the mule-unicode-* sets works with |
2922 ps-print, provided that you have installed the appropriate BDF fonts. | 2913 `ps-print', provided that you have installed the appropriate BDF |
2923 See the file INSTALL for URLs where you can find these fonts. | 2914 fonts. See the file INSTALL for URLs where you can find these fonts. |
2924 | 2915 |
2925 --- | 2916 --- |
2926 ** New command `strokes-global-set-stroke-string'. | 2917 ** New command `strokes-global-set-stroke-string'. |
2927 This is like `strokes-global-set-stroke', but it allows you to bind | 2918 This is like `strokes-global-set-stroke', but it allows you to bind |
2928 the stroke directly to a string to insert. This is convenient for | 2919 the stroke directly to a string to insert. This is convenient for |
2938 % emacsclient -s foo file1 | 2929 % emacsclient -s foo file1 |
2939 % emacsclient -s bar file2 | 2930 % emacsclient -s bar file2 |
2940 | 2931 |
2941 +++ | 2932 +++ |
2942 *** The `emacsclient' command understands the options `--eval' and | 2933 *** The `emacsclient' command understands the options `--eval' and |
2943 `--display' which tell Emacs respectively to evaluate the given elisp | 2934 `--display' which tell Emacs respectively to evaluate the given Lisp |
2944 expression and to use the given display when visiting files. | 2935 expression and to use the given display when visiting files. |
2945 | 2936 |
2946 +++ | 2937 +++ |
2947 *** User option `server-mode' can be used to start a server process. | 2938 *** User option `server-mode' can be used to start a server process. |
2948 | 2939 |
2949 --- | 2940 --- |
2950 ** LDAP support now defaults to ldapsearch from OpenLDAP version 2. | 2941 ** LDAP support now defaults to ldapsearch from OpenLDAP version 2. |
2951 | 2942 |
2952 +++ | 2943 +++ |
2953 ** You can now disable pc-selection-mode after enabling it. | 2944 ** You can now disable pc-selection-mode after enabling it. |
2945 | |
2954 M-x pc-selection-mode behaves like a proper minor mode, and with no | 2946 M-x pc-selection-mode behaves like a proper minor mode, and with no |
2955 argument it toggles the mode. | 2947 argument it toggles the mode. Turning off PC-Selection mode restores |
2956 | 2948 the global key bindings that were replaced by turning on the mode. |
2957 Turning off PC-Selection mode restores the global key bindings | |
2958 that were replaced by turning on the mode. | |
2959 | 2949 |
2960 --- | 2950 --- |
2961 ** `uniquify-strip-common-suffix' tells uniquify to prefer | 2951 ** `uniquify-strip-common-suffix' tells uniquify to prefer |
2962 `file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'. | 2952 `file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'. |
2963 | 2953 |
2964 --- | 2954 --- |
2965 ** Support for `magic cookie' standout modes has been removed. | 2955 ** Support for `magic cookie' standout modes has been removed. |
2966 Emacs will still work on terminals that require magic cookies in order | 2956 |
2967 to use standout mode, however they will not be able to display | 2957 Emacs still works on terminals that require magic cookies in order to |
2968 mode-lines in inverse-video. | 2958 use standout mode, but they can no longer display mode-lines in |
2959 inverse-video. | |
2969 | 2960 |
2970 --- | 2961 --- |
2971 ** The game `mpuz' is enhanced. | 2962 ** The game `mpuz' is enhanced. |
2972 | 2963 |
2973 `mpuz' now allows the 2nd factor not to have two identical digits. By | 2964 `mpuz' now allows the 2nd factor not to have two identical digits. By |
2974 default, all trivial operations involving whole lines are performed | 2965 default, all trivial operations involving whole lines are performed |
2975 automatically. The game uses faces for better visual feedback. | 2966 automatically. The game uses faces for better visual feedback. |
2976 | 2967 |
2977 --- | 2968 --- |
2978 ** display-battery has been replaced by display-battery-mode. | 2969 ** display-battery-mode replaces display-battery. |
2979 | 2970 |
2980 --- | 2971 --- |
2981 ** calculator.el now has radix grouping mode, which is available when | 2972 ** calculator.el now has radix grouping mode. |
2982 `calculator-output-radix' is non-nil. In this mode a separator | 2973 |
2983 character is used every few digits, making it easier to see byte | 2974 To enable this, set `calculator-output-radix' non-nil. In this mode a |
2984 boundries etc. For more info, see the documentation of the variable | 2975 separator character is used every few digits, making it easier to see |
2985 `calculator-radix-grouping-mode'. | 2976 byte boundries etc. For more info, see the documentation of the |
2977 variable `calculator-radix-grouping-mode'. | |
2986 | 2978 |
2987 --- | 2979 --- |
2988 ** fast-lock.el and lazy-lock.el are obsolete. Use jit-lock.el instead. | 2980 ** fast-lock.el and lazy-lock.el are obsolete. Use jit-lock.el instead. |
2989 | 2981 |
2990 --- | 2982 --- |
2991 ** iso-acc.el is now obsolete. Use one of the latin input methods instead. | 2983 ** iso-acc.el is now obsolete. Use one of the latin input methods instead. |
2992 | 2984 |
2993 --- | 2985 --- |
2994 ** cplus-md.el has been removed to avoid problems with Custom. | 2986 ** cplus-md.el has been deleted. |
2995 | 2987 |
2996 * Changes in Emacs 22.1 on non-free operating systems | 2988 * Changes in Emacs 22.1 on non-free operating systems |
2997 | 2989 |
2998 +++ | 2990 +++ |
2999 ** Passing resources on the command line now works on MS Windows. | 2991 ** Passing resources on the command line now works on MS Windows. |
2992 | |
3000 You can use --xrm to pass resource settings to Emacs, overriding any | 2993 You can use --xrm to pass resource settings to Emacs, overriding any |
3001 existing values. For example: | 2994 existing values. For example: |
3002 | 2995 |
3003 emacs --xrm "Emacs.Background:red" --xrm "Emacs.Geometry:100x20" | 2996 emacs --xrm "Emacs.Background:red" --xrm "Emacs.Geometry:100x20" |
3004 | 2997 |
3005 will start up Emacs on an initial frame of 100x20 with red background, | 2998 will start up Emacs on an initial frame of 100x20 with red background, |
3006 irrespective of geometry or background setting on the Windows registry. | 2999 irrespective of geometry or background setting on the Windows registry. |
3007 | 3000 |
3008 --- | 3001 --- |
3009 ** On MS Windows, the "system caret" now follows the cursor. | 3002 ** On MS Windows, the "system caret" now follows the cursor. |
3003 | |
3010 This enables Emacs to work better with programs that need to track | 3004 This enables Emacs to work better with programs that need to track |
3011 the cursor, for example screen magnifiers and text to speech programs. | 3005 the cursor, for example screen magnifiers and text to speech programs. |
3012 | 3006 |
3013 --- | 3007 --- |
3014 ** Tooltips now work on MS Windows. | 3008 ** Tooltips now work on MS Windows. |
3009 | |
3015 See the Emacs 21.1 NEWS entry for tooltips for details. | 3010 See the Emacs 21.1 NEWS entry for tooltips for details. |
3016 | 3011 |
3017 --- | 3012 --- |
3018 ** Images are now supported on MS Windows. | 3013 ** Images are now supported on MS Windows. |
3014 | |
3019 PBM and XBM images are supported out of the box. Other image formats | 3015 PBM and XBM images are supported out of the box. Other image formats |
3020 depend on external libraries. All of these libraries have been ported | 3016 depend on external libraries. All of these libraries have been ported |
3021 to Windows, and can be found in both source and binary form at | 3017 to Windows, and can be found in both source and binary form at |
3022 http://gnuwin32.sourceforge.net/. Note that libpng also depends on | 3018 http://gnuwin32.sourceforge.net/. Note that libpng also depends on |
3023 zlib, and tiff depends on the version of jpeg that it was compiled | 3019 zlib, and tiff depends on the version of jpeg that it was compiled |
3024 against. For additional information, see nt/INSTALL. | 3020 against. For additional information, see nt/INSTALL. |
3025 | 3021 |
3026 --- | 3022 --- |
3027 ** Sound is now supported on MS Windows. | 3023 ** Sound is now supported on MS Windows. |
3024 | |
3028 WAV format is supported on all versions of Windows, other formats such | 3025 WAV format is supported on all versions of Windows, other formats such |
3029 as AU, AIFF and MP3 may be supported in the more recent versions of | 3026 as AU, AIFF and MP3 may be supported in the more recent versions of |
3030 Windows, or when other software provides hooks into the system level | 3027 Windows, or when other software provides hooks into the system level |
3031 sound support for those formats. | 3028 sound support for those formats. |
3032 | 3029 |
3033 --- | 3030 --- |
3034 ** Different shaped mouse pointers are supported on MS Windows. | 3031 ** Different shaped mouse pointers are supported on MS Windows. |
3032 | |
3035 The mouse pointer changes shape depending on what is under the pointer. | 3033 The mouse pointer changes shape depending on what is under the pointer. |
3036 | 3034 |
3037 --- | 3035 --- |
3038 ** Pointing devices with more than 3 buttons are now supported on MS Windows. | 3036 ** Pointing devices with more than 3 buttons are now supported on MS Windows. |
3037 | |
3039 The new variable `w32-pass-extra-mouse-buttons-to-system' controls | 3038 The new variable `w32-pass-extra-mouse-buttons-to-system' controls |
3040 whether Emacs should handle the extra buttons itself (the default), or | 3039 whether Emacs should handle the extra buttons itself (the default), or |
3041 pass them to Windows to be handled with system-wide functions. | 3040 pass them to Windows to be handled with system-wide functions. |
3042 | 3041 |
3043 --- | 3042 --- |
3044 ** Emacs takes note of colors defined in Control Panel on MS-Windows. | 3043 ** Emacs takes note of colors defined in Control Panel on MS-Windows. |
3044 | |
3045 The Control Panel defines some default colors for applications in much | 3045 The Control Panel defines some default colors for applications in much |
3046 the same way as wildcard X Resources do on X. Emacs now adds these | 3046 the same way as wildcard X Resources do on X. Emacs now adds these |
3047 colors to the colormap prefixed by System (eg SystemMenu for the | 3047 colors to the colormap prefixed by System (eg SystemMenu for the |
3048 default Menu background, SystemMenuText for the foreground), and uses | 3048 default Menu background, SystemMenuText for the foreground), and uses |
3049 some of them to initialize some of the default faces. | 3049 some of them to initialize some of the default faces. |
3050 `list-colors-display' shows the list of System color names, in case | 3050 `list-colors-display' shows the list of System color names, in case |
3051 you wish to use them in other faces. | 3051 you wish to use them in other faces. |
3052 | 3052 |
3053 --- | 3053 --- |
3054 ** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations. | 3054 ** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations. |
3055 | |
3055 Those systems use Unicode internally, so this allows Emacs to share | 3056 Those systems use Unicode internally, so this allows Emacs to share |
3056 multilingual text with other applications. On other versions of | 3057 multilingual text with other applications. On other versions of |
3057 MS Windows, Emacs now uses the appropriate locale coding-system, so | 3058 MS Windows, Emacs now uses the appropriate locale coding-system, so |
3058 the clipboard should work correctly for your local language without | 3059 the clipboard should work correctly for your local language without |
3059 any customizations. | 3060 any customizations. |
3060 | 3061 |
3061 --- | 3062 --- |
3062 ** On Mac OS, the value of the variable `keyboard-coding-system' is | 3063 ** On Mac OS, `keyboard-coding-system' changes based on the keyboard script. |
3063 now dynamically changed according to the current keyboard script. The | 3064 |
3064 variable `mac-keyboard-text-encoding' and the constants | 3065 --- |
3066 ** The variable `mac-keyboard-text-encoding' and the constants | |
3065 `kTextEncodingMacRoman', `kTextEncodingISOLatin1', and | 3067 `kTextEncodingMacRoman', `kTextEncodingISOLatin1', and |
3066 `kTextEncodingISOLatin2' are obsolete. | 3068 `kTextEncodingISOLatin2' are obsolete. |
3067 | 3069 |
3068 * Incompatible Lisp Changes in Emacs 22.1 | 3070 * Incompatible Lisp Changes in Emacs 22.1 |
3069 | 3071 |
3083 | 3085 |
3084 * Lisp Changes in Emacs 22.1 | 3086 * Lisp Changes in Emacs 22.1 |
3085 | 3087 |
3086 ** General Lisp changes: | 3088 ** General Lisp changes: |
3087 | 3089 |
3090 --- | |
3091 *** The variables post-command-idle-hook and post-command-idle-delay have | |
3092 been removed. Use run-with-idle-timer instead. | |
3093 | |
3088 +++ | 3094 +++ |
3089 *** The function `eql' is now available without requiring the CL package. | 3095 *** The function `eql' is now available without requiring the CL package. |
3090 | 3096 |
3091 +++ | 3097 +++ |
3092 *** `makehash' is now obsolete. Use `make-hash-table' instead. | 3098 *** `makehash' is now obsolete. Use `make-hash-table' instead. |
3093 | 3099 |
3094 +++ | 3100 +++ |
3095 *** If optional third argument APPEND to `add-to-list' is non-nil, a | 3101 *** `add-to-list' takes an optional third argument, APPEND. |
3096 new element gets added at the end of the list instead of at the | 3102 |
3097 beginning. This change actually occurred in Emacs-21.1, but was not | 3103 If APPEND is non-nil, the new element gets added at the end of the |
3098 documented. | 3104 list instead of at the beginning. This change actually occurred in |
3099 | 3105 Emacs 21.1, but was not documented then. |
3100 +++ | 3106 |
3101 *** New function `copy-tree' makes a copy of a tree, recursively copying | 3107 +++ |
3102 both cars and cdrs. | 3108 *** New function `copy-tree' makes a copy of a tree. |
3103 | 3109 |
3104 +++ | 3110 It recursively copyies through both CARs and CDRs. |
3105 *** New function `delete-dups' destructively removes `equal' | 3111 |
3106 duplicates from a list. Of several `equal' occurrences of an element | 3112 +++ |
3107 in the list, the first one is kept. | 3113 *** New function `delete-dups' deletes `equal' duplicate elements from a list. |
3108 | 3114 |
3109 +++ | 3115 It modifies the list destructively, like `delete'. Of several `equal' |
3110 *** `declare' is now a macro. This change was made mostly for | 3116 occurrences of an element in the list, the one that's kept is the |
3111 documentation purposes and should have no real effect on Lisp code. | 3117 first one. |
3112 | 3118 |
3113 +++ | 3119 +++ |
3114 *** The new function `rassq-delete-all' deletes all elements from an | 3120 *** New function `rassq-delete-all'. |
3115 alist whose cdr is `eq' to a specified value. | 3121 |
3116 | 3122 (rassq-delete-all VALUE ALIST) deletes, from ALIST, each element whose |
3117 +++ | 3123 CDR is `eq' to the specified value. |
3118 *** The function `number-sequence' returns a list of equally-separated | 3124 |
3119 numbers. For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). | 3125 +++ |
3120 By default, the separation is 1, but you can specify a different separation | 3126 *** The function `number-sequence' makes a list of equally-separated numbers. |
3121 as the third argument. (number-sequence 1.5 6 2) returns (1.5 3.5 5.5). | 3127 |
3122 | 3128 For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). By |
3123 +++ | 3129 default, the separation is 1, but you can specify a different |
3124 *** The variables `most-positive-fixnum' and `most-negative-fixnum' | 3130 separation as the third argument. (number-sequence 1.5 6 2) returns |
3125 hold the largest and smallest possible integer values. | 3131 (1.5 3.5 5.5). |
3126 | 3132 |
3127 +++ | 3133 +++ |
3128 *** The flags, width, and precision options for %-specifications in function | 3134 *** New variables `most-positive-fixnum' and `most-negative-fixnum'. |
3129 `format' are now documented. Some flags that were accepted but not | 3135 |
3130 implemented (such as "*") are no longer accepted. | 3136 They hold the largest and smallest possible integer values. |
3131 | 3137 |
3132 +++ | 3138 +++ |
3133 *** Functions `get' and `plist-get' no longer signals an error for | 3139 *** Minor change in the function `format'. |
3134 a malformed property list. They also detect cyclic lists. | 3140 |
3135 | 3141 Some flags that were accepted but not implemented (such as "*") are no |
3136 +++ | 3142 longer accepted. |
3137 *** The new functions `lax-plist-get' and `lax-plist-put' are like | 3143 |
3138 `plist-get' and `plist-put', except that they compare the property | 3144 +++ |
3139 name using `equal' rather than `eq'. | 3145 *** Functions `get' and `plist-get' no longer give errors for bad plists. |
3140 | 3146 |
3141 +++ | 3147 They return nil for a malformed property list or if the list is |
3142 *** The new variable `print-continuous-numbering', when non-nil, says | 3148 cyclic. |
3143 that successive calls to print functions should use the same | 3149 |
3144 numberings for circular structure references. This is only relevant | 3150 +++ |
3145 when `print-circle' is non-nil. | 3151 *** New functions `lax-plist-get' and `lax-plist-put'. |
3152 | |
3153 They are like `plist-get' and `plist-put', except that they compare | |
3154 the property name using `equal' rather than `eq'. | |
3155 | |
3156 +++ | |
3157 *** New variable `print-continuous-numbering'. | |
3158 | |
3159 When this is non-nil, successive calls to print functions use a single | |
3160 numbering scheme for circular structure references. This is only | |
3161 relevant when `print-circle' is non-nil. | |
3146 | 3162 |
3147 When you bind `print-continuous-numbering' to t, you should | 3163 When you bind `print-continuous-numbering' to t, you should |
3148 also bind `print-number-table' to nil. | 3164 also bind `print-number-table' to nil. |
3149 | 3165 |
3150 +++ | 3166 +++ |
3160 When called with 2 arguments, as in `(atan Y X)', `atan' returns the | 3176 When called with 2 arguments, as in `(atan Y X)', `atan' returns the |
3161 angle in radians between the vector [X, Y] and the X axis. (This is | 3177 angle in radians between the vector [X, Y] and the X axis. (This is |
3162 equivalent to the standard C library function `atan2'.) | 3178 equivalent to the standard C library function `atan2'.) |
3163 | 3179 |
3164 +++ | 3180 +++ |
3165 *** A function's doc string can now specify the calling pattern. | 3181 *** A function or macro's doc string can now specify the calling pattern. |
3166 | 3182 |
3167 You put this in the doc string's last line, which should match the | 3183 You put this info in the doc string's last line. It should be |
3168 regexp "\n\n(fn.*)\\'". | 3184 formatted so as to match the regexp "\n\n(fn .*)\\'". If you don't |
3169 | 3185 specify this explicitly, Emacs determines it from the actual argument |
3170 +++ | 3186 names. Usually that default is right, but not always. |
3171 *** New macro `with-local-quit' temporarily sets `inhibit-quit' to nil. | 3187 |
3172 | 3188 +++ |
3173 This is for use around potentially blocking or long-running code in | 3189 *** New macro `with-local-quit' temporarily allows quitting. |
3174 timers and `post-command-hook' functions. | 3190 |
3175 | 3191 A quit inside the body of `with-local-quit' is caught by the |
3176 *** `define-obsolete-function-alias' | 3192 `with-local-quit' form itself, but another quit will happen later once |
3177 combines `defalias' and `make-obsolete'. | 3193 the code that has inhibitted quitting exits. |
3178 | 3194 |
3179 +++ | 3195 This is for use around potentially blocking or long-running code |
3180 *** New function `unsafep' returns nil if the given Lisp form can't | 3196 inside timer functions and `post-command-hook' functions. |
3181 possibly do anything dangerous; otherwise it returns a reason why the | 3197 |
3182 form might be unsafe (calls unknown function, alters global variable, | 3198 +++ |
3183 etc). | 3199 *** New macro `define-obsolete-function-alias'. |
3200 | |
3201 This combines `defalias' and `make-obsolete'. | |
3202 | |
3203 +++ | |
3204 *** New function `unsafep' determines whether a Lisp form is safe. | |
3205 | |
3206 It returns nil if the given Lisp form can't possibly do anything | |
3207 dangerous; otherwise it returns a reason why the form might be unsafe | |
3208 (calls unknown function, alters global variable, etc). | |
3184 | 3209 |
3185 ** Lisp code indentation features: | 3210 ** Lisp code indentation features: |
3186 | 3211 |
3187 +++ | 3212 +++ |
3188 *** The `defmacro' form can contain declarations specifying how to | 3213 *** The `defmacro' form can contain indentation and edebug declarations. |
3189 indent the macro in Lisp mode and how to debug it with Edebug. The | 3214 |
3190 syntax of defmacro has been extended to | 3215 These declarations specify how to indent the macro calls in Lisp mode |
3216 and how to debug them with Edebug. You write them like this: | |
3191 | 3217 |
3192 (defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...) | 3218 (defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...) |
3193 | 3219 |
3194 DECLARATION is a list `(declare DECLARATION-SPECIFIER ...)'. The | 3220 DECLARATION is a list `(declare DECLARATION-SPECIFIER ...)'. The |
3195 declaration specifiers supported are: | 3221 possible declaration specifiers are: |
3196 | 3222 |
3197 (indent INDENT) | 3223 (indent INDENT) |
3198 Set NAME's `lisp-indent-function' property to INDENT. | 3224 Set NAME's `lisp-indent-function' property to INDENT. |
3199 | 3225 |
3200 (edebug DEBUG) | 3226 (edebug DEBUG) |
3201 Set NAME's `edebug-form-spec' property to DEBUG. (This is | 3227 Set NAME's `edebug-form-spec' property to DEBUG. (This is |
3202 equivalent to writing a `def-edebug-spec' for the macro. | 3228 equivalent to writing a `def-edebug-spec' for the macro, |
3229 but this is cleaner.) | |
3203 | 3230 |
3204 --- | 3231 --- |
3205 *** cl-indent now allows customization of Indentation of backquoted forms. | 3232 *** cl-indent now allows customization of Indentation of backquoted forms. |
3206 | 3233 |
3207 See the new user option `lisp-backquote-indentation'. | 3234 See the new user option `lisp-backquote-indentation'. |
3215 forms. | 3242 forms. |
3216 | 3243 |
3217 +++ | 3244 +++ |
3218 ** Variable aliases: | 3245 ** Variable aliases: |
3219 | 3246 |
3220 *** defvaralias ALIAS-VAR BASE-VAR [DOCSTRING] | 3247 *** New function: defvaralias ALIAS-VAR BASE-VAR [DOCSTRING] |
3221 | 3248 |
3222 This function defines the symbol ALIAS-VAR as a variable alias for | 3249 This function defines the symbol ALIAS-VAR as a variable alias for |
3223 symbol BASE-VAR. This means that retrieving the value of ALIAS-VAR | 3250 symbol BASE-VAR. This means that retrieving the value of ALIAS-VAR |
3224 returns the value of BASE-VAR, and changing the value of ALIAS-VAR | 3251 returns the value of BASE-VAR, and changing the value of ALIAS-VAR |
3225 changes the value of BASE-VAR. | 3252 changes the value of BASE-VAR. |
3226 | 3253 |
3227 DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has | 3254 DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has |
3228 the same documentation as BASE-VAR. | 3255 the same documentation as BASE-VAR. |
3229 | 3256 |
3230 *** indirect-variable VARIABLE | 3257 *** New function: indirect-variable VARIABLE |
3231 | 3258 |
3232 This function returns the variable at the end of the chain of aliases | 3259 This function returns the variable at the end of the chain of aliases |
3233 of VARIABLE. If VARIABLE is not a symbol, or if VARIABLE is not | 3260 of VARIABLE. If VARIABLE is not a symbol, or if VARIABLE is not |
3234 defined as an alias, the function returns VARIABLE. | 3261 defined as an alias, the function returns VARIABLE. |
3235 | 3262 |
3241 `make-obsolete-variable'. | 3268 `make-obsolete-variable'. |
3242 | 3269 |
3243 ** defcustom changes: | 3270 ** defcustom changes: |
3244 | 3271 |
3245 +++ | 3272 +++ |
3246 *** defcustom and other custom declarations now use a default group | 3273 *** The new customization type `float' requires a floating point number. |
3247 (the last prior group defined in the same file) when no :group was given. | |
3248 | |
3249 --- | |
3250 *** The new customization type `float' specifies numbers with floating | |
3251 point (no integers are allowed). | |
3252 | 3274 |
3253 ** String changes: | 3275 ** String changes: |
3254 | 3276 |
3255 +++ | 3277 +++ |
3256 *** The escape sequence \s is now interpreted as a SPACE character, | 3278 *** The escape sequence \s is now interpreted as a SPACE character. |
3257 unless it is followed by a `-' in a character constant (e.g. ?\s-A), | 3279 |
3258 in which case it is still interpreted as the super modifier. | 3280 Exception: In a character constant, if it is followed by a `-' in a |
3259 In strings, \s is always interpreted as a space. | 3281 character constant (e.g. ?\s-A), it is still interpreted as the super |
3260 | 3282 modifier. In strings, \s is always interpreted as a space. |
3261 +++ | 3283 |
3262 *** A hex escape in a string forces the string to be multibyte. | 3284 +++ |
3263 An octal escape makes it unibyte. | 3285 *** A hex escape in a string constant forces the string to be multibyte. |
3286 | |
3287 +++ | |
3288 *** An octal escape in a string constant forces the string to be unibyte. | |
3264 | 3289 |
3265 +++ | 3290 +++ |
3266 *** `split-string' now includes null substrings in the returned list if | 3291 *** `split-string' now includes null substrings in the returned list if |
3267 the optional argument SEPARATORS is non-nil and there are matches for | 3292 the optional argument SEPARATORS is non-nil and there are matches for |
3268 SEPARATORS at the beginning or end of the string. If SEPARATORS is | 3293 SEPARATORS at the beginning or end of the string. If SEPARATORS is |
3272 +++ | 3297 +++ |
3273 *** New function `string-to-multibyte' converts a unibyte string to a | 3298 *** New function `string-to-multibyte' converts a unibyte string to a |
3274 multibyte string with the same individual character codes. | 3299 multibyte string with the same individual character codes. |
3275 | 3300 |
3276 +++ | 3301 +++ |
3277 *** New function `substring-no-properties returns a substring without | 3302 *** New function `substring-no-properties' returns a substring without |
3278 text properties. | 3303 text properties. |
3279 | 3304 |
3280 +++ | 3305 +++ |
3281 *** The new function `assoc-string' replaces `assoc-ignore-case' and | 3306 *** The new function `assoc-string' replaces `assoc-ignore-case' and |
3282 `assoc-ignore-representation', which are still available, but have | 3307 `assoc-ignore-representation', which are still available, but have |
3283 been declared obsolete. | 3308 been declared obsolete. |
3284 | 3309 |
3285 ** Buffer/variable changes: | 3310 +++ |
3311 ** Displaying warnings to the user. | |
3312 | |
3313 See the functions `warn' and `display-warning', or the Lisp Manual. | |
3314 If you want to be sure the warning will not be overlooked, this | |
3315 facility is much better than using `message', since it displays | |
3316 warnings in a separate window. | |
3317 | |
3318 +++ | |
3319 ** Progress reporters. | |
3320 | |
3321 These provide a simple and uniform way for commands to present | |
3322 progress messages for the user. | |
3323 | |
3324 See the new functions `make-progress-reporter', | |
3325 `progress-reporter-update', `progress-reporter-force-update', | |
3326 `progress-reporter-done', and `dotimes-with-progress-reporter'. | |
3327 | |
3328 ** Buffer positions: | |
3329 | |
3330 +++ | |
3331 *** Function `compute-motion' now calculates the usable window | |
3332 width if the WIDTH argument is nil. If the TOPOS argument is nil, | |
3333 the usable window height and width is used. | |
3334 | |
3335 +++ | |
3336 *** The `line-move', `scroll-up', and `scroll-down' functions will now | |
3337 modify the window vscroll to scroll through display rows that are | |
3338 taller that the height of the window, for example in the presence of | |
3339 large images. To disable this feature, bind the new variable | |
3340 `auto-window-vscroll' to nil. | |
3341 | |
3342 +++ | |
3343 *** The argument to `forward-word', `backward-word' is optional. | |
3344 | |
3345 It defaults to 1. | |
3346 | |
3347 +++ | |
3348 *** Argument to `forward-to-indentation' and `backward-to-indentation' is optional. | |
3349 | |
3350 It defaults to 1. | |
3351 | |
3352 +++ | |
3353 *** New function `mouse-on-link-p' test if a position is in a clickable link. | |
3354 | |
3355 This is the function used by the new `mouse-1-click-follows-link' | |
3356 functionality. | |
3357 | |
3358 +++ | |
3359 *** New function `line-number-at-pos' returns the line number of a position. | |
3360 | |
3361 It an optional buffer position argument that defaults to point. | |
3362 | |
3363 +++ | |
3364 *** `field-beginning' and `field-end' take new optional argument, LIMIT. | |
3365 | |
3366 This argument tells them not to search beyond LIMIT. Instead they | |
3367 give up and return LIMIT. | |
3368 | |
3369 +++ | |
3370 *** Function `pos-visible-in-window-p' now returns the pixel coordinates | |
3371 and partial visiblity state of the corresponding row, if the PARTIALLY | |
3372 arg is non-nil. | |
3373 | |
3374 +++ | |
3375 *** New functions `posn-at-point' and `posn-at-x-y' return | |
3376 click-event-style position information for a given visible buffer | |
3377 position or for a given window pixel coordinate. | |
3378 | |
3379 ** Text modification: | |
3380 | |
3381 +++ | |
3382 *** The new function `insert-for-yank' normally works like `insert', but | |
3383 removes the text properties in the `yank-excluded-properties' list | |
3384 and handles the `yank-handler' text property. | |
3385 | |
3386 +++ | |
3387 *** The new function `insert-buffer-substring-as-yank' is like | |
3388 `insert-for-yank' except that it gets the text from another buffer as | |
3389 in `insert-buffer-substring'. | |
3390 | |
3391 +++ | |
3392 *** The new function `insert-buffer-substring-no-properties' is like | |
3393 `insert-buffer-substring', but removes all text properties from the | |
3394 inserted substring. | |
3395 | |
3396 +++ | |
3397 *** The new function `filter-buffer-substring' extracts a buffer | |
3398 substring, passes it through a set of filter functions, and returns | |
3399 the filtered substring. Use it instead of `buffer-substring' or | |
3400 `delete-and-extract-region' when copying text into a user-accessible | |
3401 data structure, such as the kill-ring, X clipboard, or a register. | |
3402 | |
3403 The list of filter function is specified by the new variable | |
3404 `buffer-substring-filters'. For example, Longlines mode adds to | |
3405 `buffer-substring-filters' to remove soft newlines from the copied | |
3406 text. | |
3407 | |
3408 +++ | |
3409 *** Function `translate-region' accepts also a char-table as TABLE | |
3410 argument. | |
3411 | |
3412 +++ | |
3413 *** The new translation table `translation-table-for-input' | |
3414 is used for customizing self-insertion. The character to | |
3415 be inserted is translated through it. | |
3416 | |
3417 --- | |
3418 *** Text clones. | |
3419 | |
3420 The new function `text-clone-create'. Text clones are chunks of text | |
3421 that are kept identical by transparently propagating changes from one | |
3422 clone to the other. | |
3423 | |
3424 --- | |
3425 *** The function `insert-string' is now obsolete. | |
3426 | |
3427 +++ | |
3428 ** Atomic change groups. | |
3429 | |
3430 To perform some changes in the current buffer "atomically" so that | |
3431 they either all succeed or are all undone, use `atomic-change-group' | |
3432 around the code that makes changes. For instance: | |
3433 | |
3434 (atomic-change-group | |
3435 (insert foo) | |
3436 (delete-region x y)) | |
3437 | |
3438 If an error (or other nonlocal exit) occurs inside the body of | |
3439 `atomic-change-group', it unmakes all the changes in that buffer that | |
3440 were during the execution of the body. The change group has no effect | |
3441 on any other buffers--any such changes remain. | |
3442 | |
3443 If you need something more sophisticated, you can directly call the | |
3444 lower-level functions that `atomic-change-group' uses. Here is how. | |
3445 | |
3446 To set up a change group for one buffer, call `prepare-change-group'. | |
3447 Specify the buffer as argument; it defaults to the current buffer. | |
3448 This function returns a "handle" for the change group. You must save | |
3449 the handle to activate the change group and then finish it. | |
3450 | |
3451 Before you change the buffer again, you must activate the change | |
3452 group. Pass the handle to `activate-change-group' afterward to | |
3453 do this. | |
3454 | |
3455 After you make the changes, you must finish the change group. You can | |
3456 either accept the changes or cancel them all. Call | |
3457 `accept-change-group' to accept the changes in the group as final; | |
3458 call `cancel-change-group' to undo them all. | |
3459 | |
3460 You should use `unwind-protect' to make sure the group is always | |
3461 finished. The call to `activate-change-group' should be inside the | |
3462 `unwind-protect', in case the user types C-g just after it runs. | |
3463 (This is one reason why `prepare-change-group' and | |
3464 `activate-change-group' are separate functions.) Once you finish the | |
3465 group, don't use the handle again--don't try to finish the same group | |
3466 twice. | |
3467 | |
3468 To make a multibuffer change group, call `prepare-change-group' once | |
3469 for each buffer you want to cover, then use `nconc' to combine the | |
3470 returned values, like this: | |
3471 | |
3472 (nconc (prepare-change-group buffer-1) | |
3473 (prepare-change-group buffer-2)) | |
3474 | |
3475 You can then activate the multibuffer change group with a single call | |
3476 to `activate-change-group', and finish it with a single call to | |
3477 `accept-change-group' or `cancel-change-group'. | |
3478 | |
3479 Nested use of several change groups for the same buffer works as you | |
3480 would expect. Non-nested use of change groups for the same buffer | |
3481 will lead to undesirable results, so don't let it happen; the first | |
3482 change group you start for any given buffer should be the last one | |
3483 finished. | |
3484 | |
3485 ** Buffer-related changes: | |
3486 | |
3487 --- | |
3488 *** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST. | |
3489 | |
3490 If it is non-nil, it specifies which buffers to list. | |
3491 | |
3492 +++ | |
3493 *** `kill-buffer-hook' is now a permanent local. | |
3286 | 3494 |
3287 +++ | 3495 +++ |
3288 *** The new function `buffer-local-value' returns the buffer-local | 3496 *** The new function `buffer-local-value' returns the buffer-local |
3289 binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not | 3497 binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not |
3290 have a buffer-local binding in buffer BUFFER, it returns the default | 3498 have a buffer-local binding in buffer BUFFER, it returns the default |
3291 value of VARIABLE instead. | 3499 value of VARIABLE instead. |
3292 | |
3293 +++ | |
3294 ** There is a new facility for displaying warnings to the user. | |
3295 | |
3296 See the functions `warn' and `display-warning' . | |
3297 | |
3298 +++ | |
3299 ** Progress reporters. | |
3300 | |
3301 These provide a simple and uniform way for commands to present | |
3302 progress messages for the user. | |
3303 | |
3304 See the new functions `make-progress-reporter', | |
3305 `progress-reporter-update', `progress-reporter-force-update', | |
3306 `progress-reporter-done', and `dotimes-with-progress-reporter'. | |
3307 | |
3308 ** Buffer positions: | |
3309 | |
3310 +++ | |
3311 *** Function `compute-motion' now calculates the usable window | |
3312 width if the WIDTH argument is nil. If the TOPOS argument is nil, | |
3313 the usable window height and width is used. | |
3314 | |
3315 +++ | |
3316 *** The `line-move', `scroll-up', and `scroll-down' functions will now | |
3317 modify the window vscroll to scroll through display rows that are | |
3318 taller that the height of the window, for example in the presense of | |
3319 large images. To disable this feature, Lisp code can bind the new | |
3320 variable `auto-window-vscroll' to nil. | |
3321 | |
3322 +++ | |
3323 *** The argument to `forward-word', `backward-word', | |
3324 `forward-to-indentation' and `backward-to-indentation' is now | |
3325 optional, and defaults to 1. | |
3326 | |
3327 +++ | |
3328 *** Lisp code can now test if a given buffer position is inside a | |
3329 clickable link with the new function `mouse-on-link-p'. This is the | |
3330 function used by the new `mouse-1-click-follows-link' functionality. | |
3331 | |
3332 +++ | |
3333 *** New function `line-number-at-pos' returns the line number of the | |
3334 current line in the current buffer, or if optional buffer position is | |
3335 given, line number of corresponding line in current buffer. | |
3336 | |
3337 +++ | |
3338 *** `field-beginning' and `field-end' now accept an additional optional | |
3339 argument, LIMIT. | |
3340 | |
3341 +++ | |
3342 *** Function `pos-visible-in-window-p' now returns the pixel coordinates | |
3343 and partial visiblity state of the corresponding row, if the PARTIALLY | |
3344 arg is non-nil. | |
3345 | |
3346 +++ | |
3347 *** New functions `posn-at-point' and `posn-at-x-y' return | |
3348 click-event-style position information for a given visible buffer | |
3349 position or for a given window pixel coordinate. | |
3350 | |
3351 ** Text modification: | |
3352 | |
3353 +++ | |
3354 *** The new function `insert-buffer-substring-as-yank' works like | |
3355 `insert-buffer-substring', but removes the text properties in the | |
3356 `yank-excluded-properties' list. | |
3357 | |
3358 +++ | |
3359 *** The new function `insert-buffer-substring-no-properties' is like | |
3360 insert-buffer-substring, but removes all text properties from the | |
3361 inserted substring. | |
3362 | |
3363 +++ | |
3364 *** The new function `filter-buffer-substring' extracts a buffer | |
3365 substring, passes it through a set of filter functions, and returns | |
3366 the filtered substring. It is used instead of `buffer-substring' or | |
3367 `delete-and-extract-region' when copying text into a user-accessible | |
3368 data structure, like the kill-ring, X clipboard, or a register. The | |
3369 list of filter function is specified by the new variable | |
3370 `buffer-substring-filters'. For example, Longlines mode uses | |
3371 `buffer-substring-filters' to remove soft newlines from the copied | |
3372 text. | |
3373 | |
3374 +++ | |
3375 *** Function `translate-region' accepts also a char-table as TABLE | |
3376 argument. | |
3377 | |
3378 +++ | |
3379 *** The new translation table `translation-table-for-input' | |
3380 is used for customizing self-insertion. The character to | |
3381 be inserted is translated through it. | |
3382 | |
3383 --- | |
3384 *** Text clones. | |
3385 | |
3386 The new function `text-clone-create'. Text clones are chunks of text | |
3387 that are kept identical by transparently propagating changes from one | |
3388 clone to the other. | |
3389 | |
3390 --- | |
3391 *** The function `insert-string' is now obsolete. | |
3392 | |
3393 ** Syntax table changes: | |
3394 | |
3395 +++ | |
3396 *** The macro `with-syntax-table' does not copy the table any more. | |
3397 | |
3398 +++ | |
3399 *** The new function `syntax-after' returns the syntax code | |
3400 of the character after a specified buffer position, taking account | |
3401 of text properties as well as the character code. | |
3402 | |
3403 +++ | |
3404 *** `syntax-class' extracts the class of a syntax code (as returned | |
3405 by syntax-after). | |
3406 | |
3407 *** The new package `syntax.el' provides an efficient way to find the | |
3408 current syntactic context (as returned by `parse-partial-sexp'). | |
3409 | |
3410 ** GC changes: | |
3411 | |
3412 +++ | |
3413 *** New variables `gc-elapsed' and `gcs-done' provide extra information | |
3414 on garbage collection. | |
3415 | |
3416 +++ | |
3417 *** Functions from `post-gc-hook' are run at the end of garbage | |
3418 collection. The hook is run with GC inhibited, so use it with care. | |
3419 | |
3420 ** Buffer-related changes: | |
3421 | |
3422 --- | |
3423 *** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST. | |
3424 If it is non-nil, it specifies which buffers to list. | |
3425 | |
3426 +++ | |
3427 *** `kill-buffer-hook' is now a permanent local. | |
3428 | 3500 |
3429 ** Local variables lists: | 3501 ** Local variables lists: |
3430 | 3502 |
3431 +++ | 3503 +++ |
3432 *** Text properties in local variables. | 3504 *** Text properties in local variables. |
3450 with the form as argument, and if any returns t, the form is ok to call. | 3522 with the form as argument, and if any returns t, the form is ok to call. |
3451 | 3523 |
3452 If the form is not "ok to call", that means Emacs asks for | 3524 If the form is not "ok to call", that means Emacs asks for |
3453 confirmation as before. | 3525 confirmation as before. |
3454 | 3526 |
3455 ** Abbrev changes: | 3527 ** Searching and matching changes: |
3456 | 3528 |
3457 *** The new function copy-abbrev-table returns a new abbrev table that | 3529 +++ |
3458 is a copy of a given abbrev table. | 3530 *** New function `looking-back' checks whether a regular expression matches |
3459 | 3531 the text before point. Specifying the LIMIT argument bounds how far |
3460 +++ | 3532 back the match can start; this is a way to keep it from taking too long. |
3461 *** define-abbrev now accepts an optional argument SYSTEM-FLAG. If | 3533 |
3462 non-nil, this marks the abbrev as a "system" abbrev, which means that | 3534 +++ |
3463 it won't be stored in the user's abbrevs file if he saves the abbrevs. | 3535 *** The new variable `search-spaces-regexp' controls how to search |
3464 Major modes that predefine some abbrevs should always specify this | 3536 for spaces in a regular expression. If it is non-nil, it should be a |
3465 flag. | 3537 regular expression, and any series of spaces stands for that regular |
3538 expression. If it is nil, spaces stand for themselves. | |
3539 | |
3540 Spaces inside of constructs such as `[..]' and inside loops such as | |
3541 `*', `+', and `?' are never replaced with `search-spaces-regexp'. | |
3542 | |
3543 +++ | |
3544 *** New regular expression operators, `\_<' and `\_>'. | |
3545 | |
3546 These match the beginning and end of a symbol. A symbol is a | |
3547 non-empty sequence of either word or symbol constituent characters, as | |
3548 specified by the syntax table. | |
3549 | |
3550 --- | |
3551 *** rx.el has new corresponding `symbol-end' and `symbol-start' elements. | |
3552 | |
3553 +++ | |
3554 *** `skip-chars-forward' and `skip-chars-backward' now handle | |
3555 character classes such as `[:alpha:]', along with individual | |
3556 characters and ranges. | |
3557 | |
3558 --- | |
3559 *** In `replace-match', the replacement text no longer inherits | |
3560 properties from surrounding text. | |
3561 | |
3562 +++ | |
3563 *** The list returned by `(match-data t)' now has the buffer as a final | |
3564 element, if the last match was on a buffer. `set-match-data' | |
3565 accepts such a list for restoring the match state. | |
3566 | |
3567 +++ | |
3568 *** The default value of `sentence-end' is now defined using the new | |
3569 variable `sentence-end-without-space', which contains such characters | |
3570 that end a sentence without following spaces. | |
3571 | |
3572 The function `sentence-end' should be used to obtain the value of the | |
3573 variable `sentence-end'. If the variable `sentence-end' is nil, then | |
3574 this function returns the regexp constructed from the variables | |
3575 `sentence-end-without-period', `sentence-end-double-space' and | |
3576 `sentence-end-without-space'. | |
3466 | 3577 |
3467 ** Undo changes: | 3578 ** Undo changes: |
3468 | 3579 |
3469 +++ | 3580 +++ |
3470 *** An element of buffer-undo-list can now have the form (apply FUNNAME | 3581 *** `buffer-undo-list' can allows programmable elements. |
3471 . ARGS), where FUNNAME is a symbol other than t or nil. That stands | 3582 |
3472 for a high-level change that should be undone by evaluating (apply | 3583 These elements have the form (apply FUNNAME . ARGS), where FUNNAME is |
3473 FUNNAME ARGS). | 3584 a symbol other than t or nil. That stands for a high-level change |
3585 that should be undone by evaluating (apply FUNNAME ARGS). | |
3474 | 3586 |
3475 These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS) | 3587 These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS) |
3476 which indicates that the change which took place was limited to the | 3588 which indicates that the change which took place was limited to the |
3477 range BEG...END and increased the buffer size by DELTA. | 3589 range BEG...END and increased the buffer size by DELTA. |
3478 | 3590 |
3479 +++ | 3591 +++ |
3480 *** If the buffer's undo list for the current command gets longer than | 3592 *** If the buffer's undo list for the current command gets longer than |
3481 undo-outer-limit, garbage collection empties it. This is to prevent | 3593 `undo-outer-limit', garbage collection empties it. This is to prevent |
3482 it from using up the available memory and choking Emacs. | 3594 it from using up the available memory and choking Emacs. |
3483 | 3595 |
3484 +++ | 3596 +++ |
3485 ** New `yank-handler' text property can be used to control how | 3597 ** New `yank-handler' text property can be used to control how |
3486 previously killed text on the kill-ring is reinserted. | 3598 previously killed text on the kill ring is reinserted. |
3487 | 3599 |
3488 The value of the yank-handler property must be a list with one to four | 3600 The value of the `yank-handler' property must be a list with one to four |
3489 elements with the following format: | 3601 elements with the following format: |
3490 (FUNCTION PARAM NOEXCLUDE UNDO). | 3602 (FUNCTION PARAM NOEXCLUDE UNDO). |
3491 | 3603 |
3492 The `insert-for-yank' function looks for a yank-handler property on | 3604 The `insert-for-yank' function looks for a yank-handler property on |
3493 the first character on its string argument (typically the first | 3605 the first character on its string argument (typically the first |
3494 element on the kill-ring). If a yank-handler property is found, | 3606 element on the kill-ring). If a `yank-handler' property is found, |
3495 the normal behavior of `insert-for-yank' is modified in various ways: | 3607 the normal behavior of `insert-for-yank' is modified in various ways: |
3496 | 3608 |
3497 When FUNCTION is present and non-nil, it is called instead of `insert' | 3609 When FUNCTION is present and non-nil, it is called instead of `insert' |
3498 to insert the string. FUNCTION takes one argument--the object to insert. | 3610 to insert the string. FUNCTION takes one argument--the object to insert. |
3499 If PARAM is present and non-nil, it replaces STRING as the object | 3611 If PARAM is present and non-nil, it replaces STRING as the object |
3500 passed to FUNCTION (or `insert'); for example, if FUNCTION is | 3612 passed to FUNCTION (or `insert'); for example, if FUNCTION is |
3501 `yank-rectangle', PARAM should be a list of strings to insert as a | 3613 `yank-rectangle', PARAM should be a list of strings to insert as a |
3502 rectangle. | 3614 rectangle. |
3503 If NOEXCLUDE is present and non-nil, the normal removal of the | 3615 If NOEXCLUDE is present and non-nil, the normal removal of the |
3504 yank-excluded-properties is not performed; instead FUNCTION is | 3616 `yank-excluded-properties' is not performed; instead FUNCTION is |
3505 responsible for removing those properties. This may be necessary | 3617 responsible for removing those properties. This may be necessary |
3506 if FUNCTION adjusts point before or after inserting the object. | 3618 if FUNCTION adjusts point before or after inserting the object. |
3507 If UNDO is present and non-nil, it is a function that will be called | 3619 If UNDO is present and non-nil, it is a function that will be called |
3508 by `yank-pop' to undo the insertion of the current object. It is | 3620 by `yank-pop' to undo the insertion of the current object. It is |
3509 called with two arguments, the start and end of the current region. | 3621 called with two arguments, the start and end of the current region. |
3510 FUNCTION can set `yank-undo-function' to override the UNDO value. | 3622 FUNCTION can set `yank-undo-function' to override the UNDO value. |
3511 | 3623 |
3512 *** The functions kill-new, kill-append, and kill-region now have an | 3624 *** The functions `kill-new', `kill-append', and `kill-region' now have an |
3513 optional argument to specify the yank-handler text property to put on | 3625 optional argument to specify the `yank-handler' text property to put on |
3514 the killed text. | 3626 the killed text. |
3515 | 3627 |
3516 *** The function yank-pop will now use a non-nil value of the variable | 3628 *** The function `yank-pop' will now use a non-nil value of the variable |
3517 `yank-undo-function' (instead of delete-region) to undo the previous | 3629 `yank-undo-function' (instead of `delete-region') to undo the previous |
3518 yank or yank-pop command (or a call to insert-for-yank). The function | 3630 `yank' or `yank-pop' command (or a call to `insert-for-yank'). The function |
3519 insert-for-yank automatically sets that variable according to the UNDO | 3631 `insert-for-yank' automatically sets that variable according to the UNDO |
3520 element of the string argument's yank-handler text property if present. | 3632 element of the string argument's `yank-handler' text property if present. |
3521 | 3633 |
3522 *** The function `insert-for-yank' now supports strings where the | 3634 *** The function `insert-for-yank' now supports strings where the |
3523 `yank-handler' property does not span the first character of the | 3635 `yank-handler' property does not span the first character of the |
3524 string. The old behavior is available if you call | 3636 string. The old behavior is available if you call |
3525 `insert-for-yank-1' instead. | 3637 `insert-for-yank-1' instead. |
3526 | 3638 |
3527 *** The new function insert-for-yank normally works like `insert', but | 3639 ** Syntax table changes: |
3528 removes the text properties in the `yank-excluded-properties' list. | 3640 |
3529 However, the insertion of the text can be modified by a `yank-handler' | 3641 +++ |
3530 text property. | 3642 *** The macro `with-syntax-table' no longer copies the syntax table. |
3643 | |
3644 +++ | |
3645 *** The new function `syntax-after' returns the syntax code | |
3646 of the character after a specified buffer position, taking account | |
3647 of text properties as well as the character code. | |
3648 | |
3649 +++ | |
3650 *** `syntax-class' extracts the class of a syntax code (as returned | |
3651 by `syntax-after'). | |
3652 | |
3653 *** The new function `syntax-ppss' rovides an efficient way to find the | |
3654 current syntactic context at point. | |
3531 | 3655 |
3532 ** File operation changes: | 3656 ** File operation changes: |
3533 | 3657 |
3534 +++ | 3658 +++ |
3535 *** New vars `exec-suffixes' and `load-suffixes' used when | 3659 *** New vars `exec-suffixes' and `load-suffixes' used when |
3536 searching for an executable resp. an elisp file. | 3660 searching for an executable or an Emacs Lisp file. |
3537 | 3661 |
3538 +++ | 3662 +++ |
3539 *** The new primitive `set-file-times' sets a file's access and | 3663 *** The new primitive `set-file-times' sets a file's access and |
3540 modification times. Magic file name handlers can handle this | 3664 modification times. Magic file name handlers can handle this |
3541 operation. | 3665 operation. |
3545 non-nil if it specifies a remote file (one that Emacs accesses using | 3669 non-nil if it specifies a remote file (one that Emacs accesses using |
3546 its own special methods and not directly through the file system). | 3670 its own special methods and not directly through the file system). |
3547 The value in that case is an identifier for the remote file system. | 3671 The value in that case is an identifier for the remote file system. |
3548 | 3672 |
3549 +++ | 3673 +++ |
3550 *** `auto-save-file-format' has been renamed to | 3674 *** `buffer-auto-save-file-format' is the new name for what was |
3551 `buffer-auto-save-file-format' and made into a permanent local. | 3675 formerly called `auto-save-file-format'. It is now a permanent local. |
3552 | 3676 |
3553 +++ | 3677 +++ |
3554 *** Functions `file-name-sans-extension' and `file-name-extension' now | 3678 *** Functions `file-name-sans-extension' and `file-name-extension' now |
3555 ignore the leading dots in file names, so that file names such as | 3679 ignore the leading dots in file names, so that file names such as |
3556 `.emacs' are treated as extensionless. | 3680 `.emacs' are treated as extensionless. |
3557 | 3681 |
3558 +++ | 3682 +++ |
3559 *** copy-file now takes an additional option arg MUSTBENEW. | 3683 *** `copy-file' now takes an additional option arg MUSTBENEW. |
3560 | 3684 |
3561 This argument works like the MUSTBENEW argument of write-file. | 3685 This argument works like the MUSTBENEW argument of write-file. |
3562 | |
3563 +++ | |
3564 *** If the second argument to `copy-file' is the name of a directory, | |
3565 the file is copied to that directory instead of signaling an error. | |
3566 | 3686 |
3567 +++ | 3687 +++ |
3568 *** `visited-file-modtime' and `calendar-time-from-absolute' now return | 3688 *** `visited-file-modtime' and `calendar-time-from-absolute' now return |
3569 a list of two integers, instead of a cons. | 3689 a list of two integers, instead of a cons. |
3570 | 3690 |
3579 before saving buffers. This allows packages to perform various final | 3699 before saving buffers. This allows packages to perform various final |
3580 tasks, for example; it can be used by the copyright package to make | 3700 tasks, for example; it can be used by the copyright package to make |
3581 sure saved files have the current year in any copyright headers. | 3701 sure saved files have the current year in any copyright headers. |
3582 | 3702 |
3583 +++ | 3703 +++ |
3584 *** If a buffer sets buffer-save-without-query to non-nil, | 3704 *** If `buffer-save-without-query' is non-nil in some buffer, |
3585 save-some-buffers will always save that buffer without asking | 3705 `save-some-buffers' will always save that buffer without asking (if |
3586 (if it's modified). | 3706 it's modified). |
3587 | 3707 |
3588 *** New function `locate-file' searches for a file in a list of directories. | 3708 *** New function `locate-file' searches for a file in a list of directories. |
3589 `locate-file' accepts a name of a file to search (a string), and two | 3709 `locate-file' accepts a name of a file to search (a string), and two |
3590 lists: a list of directories to search in and a list of suffixes to | 3710 lists: a list of directories to search in and a list of suffixes to |
3591 try; typical usage might use `exec-path' and `load-path' for the list | 3711 try; typical usage might use `exec-path' and `load-path' for the list |
3596 One advantage of using this function is that the list of suffixes in | 3716 One advantage of using this function is that the list of suffixes in |
3597 `exec-suffixes' is OS-dependant, so this function will find | 3717 `exec-suffixes' is OS-dependant, so this function will find |
3598 executables without polluting Lisp code with OS dependancies. | 3718 executables without polluting Lisp code with OS dependancies. |
3599 | 3719 |
3600 --- | 3720 --- |
3601 *** The precedence of file-name-handlers has been changed. | 3721 *** The precedence of file name handlers has been changed. |
3602 Instead of blindly choosing the first handler that matches, | 3722 |
3603 find-file-name-handler now gives precedence to a file-name handler | 3723 Instead of choosing the first handler that matches, |
3604 that matches near the end of the file name. More specifically, the | 3724 `find-file-name-handler' now gives precedence to a file name handler |
3605 handler whose (match-beginning 0) is the largest is chosen. | 3725 that matches nearest the end of the file name. More precisely, the |
3606 In case of ties, the old "first matched" rule applies. | 3726 handler whose (match-beginning 0) is the largest is chosen. In case |
3727 of ties, the old "first matched" rule applies. | |
3607 | 3728 |
3608 +++ | 3729 +++ |
3609 *** A file name handler can declare which operations it handles. | 3730 *** A file name handler can declare which operations it handles. |
3610 | 3731 |
3611 You do this by putting an `operation' property on the handler name | 3732 You do this by putting an `operation' property on the handler name |
3619 ** Input changes: | 3740 ** Input changes: |
3620 | 3741 |
3621 +++ | 3742 +++ |
3622 *** An interactive specification can now use the code letter 'U' to get | 3743 *** An interactive specification can now use the code letter 'U' to get |
3623 the up-event that was discarded in case the last key sequence read for a | 3744 the up-event that was discarded in case the last key sequence read for a |
3624 previous 'k' or 'K' argument was a down-event; otherwise nil is used. | 3745 previous `k' or `K' argument was a down-event; otherwise nil is used. |
3625 | 3746 |
3626 +++ | 3747 +++ |
3627 *** The new interactive-specification `G' reads a file name | 3748 *** The new interactive-specification `G' reads a file name |
3628 much like `F', but if the input is a directory name (even defaulted), | 3749 much like `F', but if the input is a directory name (even defaulted), |
3629 it returns just the directory name. | 3750 it returns just the directory name. |
3630 | 3751 |
3631 --- | 3752 --- |
3632 *** Functions y-or-n-p, read-char, read-key-sequence and the like, that | 3753 *** Functions `y-or-n-p', `read-char', `read-key-sequence' and the like, that |
3633 display a prompt but don't use the minibuffer, now display the prompt | 3754 display a prompt but don't use the minibuffer, now display the prompt |
3634 using the text properties (esp. the face) of the prompt string. | 3755 using the text properties (esp. the face) of the prompt string. |
3635 | 3756 |
3636 +++ | 3757 +++ |
3637 *** (while-no-input BODY...) runs BODY, but only so long as no input | 3758 *** (while-no-input BODY...) runs BODY, but only so long as no input |
3638 arrives. If the user types or clicks anything, BODY stops as if a | 3759 arrives. If the user types or clicks anything, BODY stops as if a |
3639 quit had occurred. while-no-input returns the value of BODY, if BODY | 3760 quit had occurred. `while-no-input' returns the value of BODY, if BODY |
3640 finishes. It returns nil if BODY was aborted. | 3761 finishes. It returns nil if BODY was aborted. |
3641 | 3762 |
3642 ** Minibuffer changes: | 3763 ** Minibuffer changes: |
3643 | 3764 |
3765 +++ | |
3644 *** The new function `minibufferp' returns non-nil if its optional | 3766 *** The new function `minibufferp' returns non-nil if its optional |
3645 buffer argument is a minibuffer. If the argument is omitted, it | 3767 buffer argument is a minibuffer. If the argument is omitted, it |
3646 defaults to the current buffer. | 3768 defaults to the current buffer. |
3647 | 3769 |
3648 +++ | 3770 +++ |
3649 *** New function minibuffer-selected-window returns the window which | 3771 *** New function `minibuffer-selected-window' returns the window which |
3650 was selected when entering the minibuffer. | 3772 was selected when entering the minibuffer. |
3651 | 3773 |
3652 +++ | 3774 +++ |
3653 *** read-from-minibuffer now accepts an additional argument KEEP-ALL | 3775 *** `read-from-minibuffer' now accepts an additional argument KEEP-ALL |
3654 saying to put all inputs in the history list, even empty ones. | 3776 saying to put all inputs in the history list, even empty ones. |
3655 | 3777 |
3656 +++ | 3778 +++ |
3657 *** The `read-file-name' function now takes an additional argument which | 3779 *** The `read-file-name' function now takes an additional argument which |
3658 specifies a predicate which the file name read must satify. The | 3780 specifies a predicate which the file name read must satify. The |
3659 new variable `read-file-name-predicate' contains the predicate argument | 3781 new variable `read-file-name-predicate' contains the predicate argument |
3660 while reading the file name from the minibuffer; the predicate in this | 3782 while reading the file name from the minibuffer; the predicate in this |
3661 variable is used by read-file-name-internal to filter the completion list. | 3783 variable is used by read-file-name-internal to filter the completion list. |
3662 | 3784 |
3663 --- | 3785 --- |
3664 *** The new variable `read-file-name-function' can be used by lisp code | 3786 *** The new variable `read-file-name-function' can be used by Lisp code |
3665 to override the internal read-file-name function. | 3787 to override the built-in `read-file-name' function. |
3666 | 3788 |
3667 +++ | 3789 +++ |
3668 *** The new variable `read-file-name-completion-ignore-case' specifies | 3790 *** The new variable `read-file-name-completion-ignore-case' specifies |
3669 whether completion ignores case when reading a file name with the | 3791 whether completion ignores case when reading a file name with the |
3670 `read-file-name' function. | 3792 `read-file-name' function. |
3671 | 3793 |
3672 +++ | 3794 +++ |
3673 *** The new function `read-directory-name' can be used instead of | 3795 *** The new function `read-directory-name' for reading a directory name. |
3674 `read-file-name' to read a directory name; when used, completion | 3796 |
3675 will only show directories. | 3797 It is like `read-file-name' except that the defaulting works better |
3676 | 3798 for directories, and completion inside it shows only directories. |
3677 ** Searching and matching changes: | 3799 |
3678 | 3800 ** Completion changes: |
3679 +++ | 3801 |
3680 *** New function `looking-back' checks whether a regular expression matches | 3802 +++ |
3681 the text before point. Specifying the LIMIT argument bounds how far | 3803 *** The functions `all-completions' and `try-completion' now accept lists |
3682 back the match can start; this is a way to keep it from taking too long. | 3804 of strings as well as hash-tables additionally to alists, obarrays |
3683 | 3805 and functions. Furthermore, the function `test-completion' is now |
3684 +++ | 3806 exported to Lisp. The keys in alists and hash tables can be either |
3685 *** The new variable search-spaces-regexp controls how to search | 3807 strings or symbols, which are automatically converted with to strings. |
3686 for spaces in a regular expression. If it is non-nil, it should be a | 3808 |
3687 regular expression, and any series of spaces stands for that regular | 3809 +++ |
3688 expression. If it is nil, spaces stand for themselves. | 3810 *** The new macro `dynamic-completion-table' supports using functions |
3689 | 3811 as a dynamic completion table. |
3690 Spaces inside of constructs such as [..] and *, +, ? are never | 3812 |
3691 replaced with search-spaces-regexp. | 3813 (dynamic-completion-table FUN) |
3692 | 3814 |
3693 +++ | 3815 FUN is called with one argument, the string for which completion is required, |
3694 *** There are now two new regular expression operators, \_< and \_>, | 3816 and it should return an alist containing all the intended possible |
3695 for matching the beginning and end of a symbol. A symbol is a | 3817 completions. This alist can be a full list of possible completions so that FUN |
3696 non-empty sequence of either word or symbol constituent characters, as | 3818 can ignore the value of its argument. If completion is performed in the |
3697 specified by the syntax table. | 3819 minibuffer, FUN will be called in the buffer from which the minibuffer was |
3698 | 3820 entered. `dynamic-completion-table' then computes the completion. |
3699 +++ | 3821 |
3700 *** skip-chars-forward and skip-chars-backward now handle | 3822 +++ |
3701 character classes such as [:alpha:], along with individual characters | 3823 *** The new macro `lazy-completion-table' initializes a variable |
3702 and ranges. | 3824 as a lazy completion table. |
3703 | 3825 |
3704 --- | 3826 (lazy-completion-table VAR FUN &rest ARGS) |
3705 *** In `replace-match', the replacement text no longer inherits | 3827 |
3706 properties from surrounding text. | 3828 If the completion table VAR is used for the first time (e.g., by passing VAR |
3707 | 3829 as an argument to `try-completion'), the function FUN is called with arguments |
3708 +++ | 3830 ARGS. FUN must return the completion table that will be stored in VAR. If |
3709 *** The list returned by `(match-data t)' now has the buffer as a final | 3831 completion is requested in the minibuffer, FUN will be called in the buffer |
3710 element, if the last match was on a buffer. `set-match-data' | 3832 from which the minibuffer was entered. The return value of |
3711 accepts such a list for restoring the match state. | 3833 `lazy-completion-table' must be used to initialize the value of VAR. |
3712 | |
3713 --- | |
3714 *** rx.el has new corresponding `symbol-end' and `symbol-start' elements. | |
3715 | |
3716 +++ | |
3717 *** The default value of `sentence-end' is now defined using the new | |
3718 variable `sentence-end-without-space', which contains such characters | |
3719 that end a sentence without following spaces. | |
3720 | |
3721 The function `sentence-end' should be used to obtain the value of the | |
3722 variable `sentence-end'. If the variable `sentence-end' is nil, then | |
3723 this function returns the regexp constructed from the variables | |
3724 `sentence-end-without-period', `sentence-end-double-space' and | |
3725 `sentence-end-without-space'. | |
3726 | 3834 |
3727 +++ | 3835 +++ |
3728 ** Enhancements to keymaps. | 3836 ** Enhancements to keymaps. |
3729 | 3837 |
3730 *** Cleaner way to enter key sequences. | 3838 *** Cleaner way to enter key sequences. |
3735 | 3843 |
3736 (kbd "C-x C-f") => "\^x\^f" | 3844 (kbd "C-x C-f") => "\^x\^f" |
3737 | 3845 |
3738 *** Interactive commands can be remapped through keymaps. | 3846 *** Interactive commands can be remapped through keymaps. |
3739 | 3847 |
3740 This is an alternative to using defadvice or substitute-key-definition | 3848 This is an alternative to using `defadvice' or `substitute-key-definition' |
3741 to modify the behavior of a key binding using the normal keymap | 3849 to modify the behavior of a key binding using the normal keymap |
3742 binding and lookup functionality. | 3850 binding and lookup functionality. |
3743 | 3851 |
3744 When a key sequence is bound to a command, and that command is | 3852 When a key sequence is bound to a command, and that command is |
3745 remapped to another command, that command is run instead of the | 3853 remapped to another command, that command is run instead of the |
3746 original command. | 3854 original command. |
3747 | 3855 |
3748 Example: | 3856 Example: |
3749 Suppose that minor mode my-mode has defined the commands | 3857 Suppose that minor mode `my-mode' has defined the commands |
3750 my-kill-line and my-kill-word, and it wants C-k (and any other key | 3858 `my-kill-line' and `my-kill-word', and it wants C-k (and any other key |
3751 bound to kill-line) to run the command my-kill-line instead of | 3859 bound to `kill-line') to run the command `my-kill-line' instead of |
3752 kill-line, and likewise it wants to run my-kill-word instead of | 3860 `kill-line', and likewise it wants to run `my-kill-word' instead of |
3753 kill-word. | 3861 `kill-word'. |
3754 | 3862 |
3755 Instead of rebinding C-k and the other keys in the minor mode map, | 3863 Instead of rebinding C-k and the other keys in the minor mode map, |
3756 command remapping allows you to directly map kill-line into | 3864 command remapping allows you to directly map `kill-line' into |
3757 my-kill-line and kill-word into my-kill-word through the minor mode | 3865 `my-kill-line' and `kill-word' into `my-kill-word' using `define-key': |
3758 map using define-key: | |
3759 | 3866 |
3760 (define-key my-mode-map [remap kill-line] 'my-kill-line) | 3867 (define-key my-mode-map [remap kill-line] 'my-kill-line) |
3761 (define-key my-mode-map [remap kill-word] 'my-kill-word) | 3868 (define-key my-mode-map [remap kill-word] 'my-kill-word) |
3762 | 3869 |
3763 Now, when my-mode is enabled, and the user enters C-k or M-d, | 3870 When `my-mode' is enabled, its minor mode keymap is enabled too. So |
3764 the commands my-kill-line and my-kill-word are run. | 3871 when the user types C-k, that runs the command `my-kill-line'. |
3765 | 3872 |
3766 Notice that only one level of remapping is supported. In the above | 3873 Only one level of remapping is supported. In the above example, this |
3767 example, this means that if my-kill-line is remapped to other-kill, | 3874 means that if `my-kill-line' is remapped to `other-kill', then C-k still |
3768 then C-k still runs my-kill-line. | 3875 runs `my-kill-line'. |
3769 | 3876 |
3770 The following changes have been made to provide command remapping: | 3877 The following changes have been made to provide command remapping: |
3771 | 3878 |
3772 - Command remappings are defined using `define-key' with a prefix-key | 3879 - Command remappings are defined using `define-key' with a prefix-key |
3773 `remap', i.e. `(define-key MAP [remap CMD] DEF)' remaps command CMD | 3880 `remap', i.e. `(define-key MAP [remap CMD] DEF)' remaps command CMD |
3775 another command; it can be anything accepted for a normal binding. | 3882 another command; it can be anything accepted for a normal binding. |
3776 | 3883 |
3777 - The new function `command-remapping' returns the binding for a | 3884 - The new function `command-remapping' returns the binding for a |
3778 remapped command in the current keymaps, or nil if not remapped. | 3885 remapped command in the current keymaps, or nil if not remapped. |
3779 | 3886 |
3780 - key-binding now remaps interactive commands unless the optional | 3887 - `key-binding' now remaps interactive commands unless the optional |
3781 third argument NO-REMAP is non-nil. | 3888 third argument NO-REMAP is non-nil. |
3782 | 3889 |
3783 - where-is-internal now returns nil for a remapped command (e.g. | 3890 - `where-is-internal' now returns nil for a remapped command (e.g. |
3784 kill-line if my-mode is enabled), and the actual key binding for | 3891 `kill-line', when `my-mode' is enabled), and the actual key binding for |
3785 the command it is remapped to (e.g. C-k for my-kill-line). | 3892 the command it is remapped to (e.g. C-k for my-kill-line). |
3786 It also has a new optional fifth argument, NO-REMAP, which inhibits | 3893 It also has a new optional fifth argument, NO-REMAP, which inhibits |
3787 remapping if non-nil (e.g. it returns C-k for kill-line and | 3894 remapping if non-nil (e.g. it returns "C-k" for `kill-line', and |
3788 <kill-line> for my-kill-line). | 3895 "<kill-line>" for `my-kill-line'). |
3789 | 3896 |
3790 - The new variable `this-original-command' contains the original | 3897 - The new variable `this-original-command' contains the original |
3791 command before remapping. It is equal to `this-command' when the | 3898 command before remapping. It is equal to `this-command' when the |
3792 command was not remapped. | 3899 command was not remapped. |
3793 | 3900 |
3794 *** If text has a `keymap' property, that keymap takes precedence | 3901 *** If text has a `keymap' property, that keymap takes precedence |
3795 over minor mode keymaps. | 3902 over minor mode keymaps. |
3796 | 3903 |
3797 *** The `keymap' property now also works at the ends of overlays and | 3904 *** The `keymap' property now also works at the ends of overlays and |
3798 text-properties, according to their stickiness. This also means that it | 3905 text properties, according to their stickiness. This also means that it |
3799 works with empty overlays. The same hold for the `local-map' property. | 3906 works with empty overlays. The same hold for the `local-map' property. |
3800 | 3907 |
3801 *** Dense keymaps now handle inheritance correctly. | 3908 *** Dense keymaps now handle inheritance correctly. |
3909 | |
3802 Previously a dense keymap would hide all of the simple-char key | 3910 Previously a dense keymap would hide all of the simple-char key |
3803 bindings of the parent keymap. | 3911 bindings of the parent keymap. |
3804 | 3912 |
3805 *** `define-key-after' now accepts keys longer than 1. | 3913 *** `define-key-after' now accepts keys longer than 1. |
3806 | 3914 |
3808 active keymaps. | 3916 active keymaps. |
3809 | 3917 |
3810 *** New function `describe-buffer-bindings' inserts the list of all | 3918 *** New function `describe-buffer-bindings' inserts the list of all |
3811 defined keys and their definitions. | 3919 defined keys and their definitions. |
3812 | 3920 |
3813 *** New function `keymap-prompt' returns the prompt-string of a keymap | 3921 *** New function `keymap-prompt' returns the prompt string of a keymap. |
3814 | 3922 |
3815 *** (map-keymap FUNCTION KEYMAP) applies the function to each binding | 3923 *** (map-keymap FUNCTION KEYMAP) applies the function to each binding |
3816 in the keymap. | 3924 in the keymap. |
3817 | 3925 |
3818 *** New variable emulation-mode-map-alists. | 3926 *** New variable `emulation-mode-map-alists'. |
3819 | 3927 |
3820 Lisp packages using many minor mode keymaps can now maintain their own | 3928 Lisp packages using many minor mode keymaps can now maintain their own |
3821 keymap alist separate from minor-mode-map-alist by adding their keymap | 3929 keymap alist separate from `minor-mode-map-alist' by adding their |
3822 alist to this list. | 3930 keymap alist to this list. |
3823 | 3931 |
3824 +++ | 3932 ** Abbrev changes: |
3825 ** Atomic change groups. | 3933 |
3826 | 3934 +++ |
3827 To perform some changes in the current buffer "atomically" so that | 3935 *** The new function `copy-abbrev-table' copies an abbrev table. |
3828 they either all succeed or are all undone, use `atomic-change-group' | 3936 |
3829 around the code that makes changes. For instance: | 3937 It returns a new abbrev table that is a copy of a given abbrev table. |
3830 | 3938 |
3831 (atomic-change-group | 3939 +++ |
3832 (insert foo) | 3940 *** `define-abbrev' now accepts an optional argument SYSTEM-FLAG. |
3833 (delete-region x y)) | 3941 |
3834 | 3942 If non-nil, this marks the abbrev as a "system" abbrev, which means |
3835 If an error (or other nonlocal exit) occurs inside the body of | 3943 that it won't be stored in the user's abbrevs file if he saves the |
3836 `atomic-change-group', it unmakes all the changes in that buffer that | 3944 abbrevs. Major modes that predefine some abbrevs should always |
3837 were during the execution of the body. The change group has no effect | 3945 specify this flag. |
3838 on any other buffers--any such changes remain. | |
3839 | |
3840 If you need something more sophisticated, you can directly call the | |
3841 lower-level functions that `atomic-change-group' uses. Here is how. | |
3842 | |
3843 To set up a change group for one buffer, call `prepare-change-group'. | |
3844 Specify the buffer as argument; it defaults to the current buffer. | |
3845 This function returns a "handle" for the change group. You must save | |
3846 the handle to activate the change group and then finish it. | |
3847 | |
3848 Before you change the buffer again, you must activate the change | |
3849 group. Pass the handle to `activate-change-group' afterward to | |
3850 do this. | |
3851 | |
3852 After you make the changes, you must finish the change group. You can | |
3853 either accept the changes or cancel them all. Call | |
3854 `accept-change-group' to accept the changes in the group as final; | |
3855 call `cancel-change-group' to undo them all. | |
3856 | |
3857 You should use `unwind-protect' to make sure the group is always | |
3858 finished. The call to `activate-change-group' should be inside the | |
3859 `unwind-protect', in case the user types C-g just after it runs. | |
3860 (This is one reason why `prepare-change-group' and | |
3861 `activate-change-group' are separate functions.) Once you finish the | |
3862 group, don't use the handle again--don't try to finish the same group | |
3863 twice. | |
3864 | |
3865 To make a multibuffer change group, call `prepare-change-group' once | |
3866 for each buffer you want to cover, then use `nconc' to combine the | |
3867 returned values, like this: | |
3868 | |
3869 (nconc (prepare-change-group buffer-1) | |
3870 (prepare-change-group buffer-2)) | |
3871 | |
3872 You can then activate the multibuffer change group with a single call | |
3873 to `activate-change-group', and finish it with a single call to | |
3874 `accept-change-group' or `cancel-change-group'. | |
3875 | |
3876 Nested use of several change groups for the same buffer works as you | |
3877 would expect. Non-nested use of change groups for the same buffer | |
3878 will lead to undesirable results, so don't let it happen; the first | |
3879 change group you start for any given buffer should be the last one | |
3880 finished. | |
3881 | 3946 |
3882 +++ | 3947 +++ |
3883 ** Enhancements to process support | 3948 ** Enhancements to process support |
3884 | 3949 |
3885 *** Function list-processes now has an optional argument; if non-nil, | 3950 *** Function `list-processes' now has an optional argument; if non-nil, |
3886 only the processes whose query-on-exit flag is set are listed. | 3951 it lists only the processes whose query-on-exit flag is set. |
3887 | 3952 |
3888 *** New set-process-query-on-exit-flag and process-query-on-exit-flag | 3953 *** New fns `set-process-query-on-exit-flag' and `process-query-on-exit-flag'. |
3889 functions. The existing process-kill-without-query function is still | 3954 |
3890 supported, but new code should use the new functions. | 3955 These replace the old function `process-kill-without-query'. That |
3891 | 3956 function is still supported, but new code should use the new |
3892 *** Function signal-process now accepts a process object or process | 3957 functions. |
3958 | |
3959 *** Function `signal-process' now accepts a process object or process | |
3893 name in addition to a process id to identify the signalled process. | 3960 name in addition to a process id to identify the signalled process. |
3894 | 3961 |
3895 *** Processes now have an associated property list where programs can | 3962 *** Processes now have an associated property list where programs can |
3896 maintain process state and other per-process related information. | 3963 maintain process state and other per-process related information. |
3897 | 3964 |
3898 The new functions process-get and process-put are used to access, add, | 3965 Use the new functions `process-get' and `process-put' to access, add, |
3899 and modify elements on this property list. | 3966 and modify elements on this property list. Use the new functions |
3900 | 3967 `process-plist' and `set-process-plist' to access and replace the |
3901 The new low-level functions process-plist and set-process-plist are | 3968 entire property list of a process. |
3902 used to access and replace the entire property list of a process. | 3969 |
3903 | 3970 *** Function `accept-process-output' has a new optional fourth arg |
3904 *** Function accept-process-output now has an optional fourth arg | 3971 JUST-THIS-ONE. If non-nil, only output from the specified process |
3905 `just-this-one'. If non-nil, only output from the specified process | |
3906 is handled, suspending output from other processes. If value is an | 3972 is handled, suspending output from other processes. If value is an |
3907 integer, also inhibit running timers. This feature is generally not | 3973 integer, also inhibit running timers. This feature is generally not |
3908 recommended, but may be necessary for specific applications, such as | 3974 recommended, but may be necessary for specific applications, such as |
3909 speech synthesis. | 3975 speech synthesis. |
3910 | 3976 |
3911 *** Adaptive read buffering of subprocess output. | 3977 *** Adaptive read buffering of subprocess output. |
3912 | 3978 |
3913 On some systems, when emacs reads the output from a subprocess, the | 3979 On some systems, when emacs reads the output from a subprocess, the |
3914 output data is read in very small blocks, potentially resulting in | 3980 output data is read in very small blocks, potentially resulting in |
3915 very poor performance. This behavior can be remedied to some extent | 3981 very poor performance. This behavior can be remedied to some extent |
3916 by setting the new variable process-adaptive-read-buffering to a | 3982 by setting the new variable `process-adaptive-read-buffering' to a |
3917 non-nil value (the default), as it will automatically delay reading | 3983 non-nil value (the default), as it will automatically delay reading |
3918 from such processes, to allowing them to produce more output before | 3984 from such processes, to allowing them to produce more output before |
3919 emacs tries to read it. | 3985 emacs tries to read it. |
3920 | 3986 |
3921 *** The new function `call-process-shell-command'. | 3987 *** The new function `call-process-shell-command'. |
3925 | 3991 |
3926 *** The new function `process-file' is similar to `call-process', but | 3992 *** The new function `process-file' is similar to `call-process', but |
3927 obeys file handlers. The file handler is chosen based on | 3993 obeys file handlers. The file handler is chosen based on |
3928 `default-directory'. | 3994 `default-directory'. |
3929 | 3995 |
3930 *** A filter function of a process is called with a multibyte string | 3996 *** A process filter function gets the output as multibyte string |
3931 if the filter's multibyteness is t. That multibyteness is decided by | 3997 if the process specifies t for its filter's multibyteness. |
3932 the value of `default-enable-multibyte-characters' when the process is | 3998 |
3933 created and can be changed later by `set-process-filter-multibyte'. | 3999 That multibyteness is decided by the value of |
4000 `default-enable-multibyte-characters' when the process is created, and | |
4001 you can change it later with `set-process-filter-multibyte'. | |
3934 | 4002 |
3935 *** The new function `set-process-filter-multibyte' sets the | 4003 *** The new function `set-process-filter-multibyte' sets the |
3936 multibyteness of the strings passed to the process's filter. | 4004 multibyteness of the strings passed to the process's filter. |
3937 | 4005 |
3938 *** The new function `process-filter-multibyte-p' returns the | 4006 *** The new function `process-filter-multibyte-p' returns the |
3945 which was not compatible with the behavior of file reading. | 4013 which was not compatible with the behavior of file reading. |
3946 | 4014 |
3947 +++ | 4015 +++ |
3948 ** Enhanced networking support. | 4016 ** Enhanced networking support. |
3949 | 4017 |
3950 *** There is a new `make-network-process' function which supports | 4018 *** The new `make-network-process' function makes network connections. |
3951 opening of stream and datagram connections to a server, as well as | 4019 It allows opening of stream and datagram connections to a server, as well as |
3952 create a stream or datagram server inside emacs. | 4020 create a stream or datagram server inside emacs. |
3953 | 4021 |
3954 - A server is started using :server t arg. | 4022 - A server is started using :server t arg. |
3955 - Datagram connection is selected using :type 'datagram arg. | 4023 - Datagram connection is selected using :type 'datagram arg. |
3956 - A server can open on a random port using :service t arg. | 4024 - A server can open on a random port using :service t arg. |
3961 by new client processes created to handle incoming connections. | 4029 by new client processes created to handle incoming connections. |
3962 | 4030 |
3963 To test for the availability of a given feature, use featurep like this: | 4031 To test for the availability of a given feature, use featurep like this: |
3964 (featurep 'make-network-process '(:type datagram)) | 4032 (featurep 'make-network-process '(:type datagram)) |
3965 | 4033 |
3966 *** Original open-network-stream is now emulated using make-network-process. | 4034 *** The old `open-network-stream' now uses `make-network-process'. |
3967 | 4035 |
3968 *** New function open-network-stream-nowait. | 4036 *** New functions `process-datagram-address', `set-process-datagram-address'. |
3969 | |
3970 This function initiates a non-blocking connect and returns immediately | |
3971 without waiting for the connection to be established. It takes the | |
3972 filter and sentinel functions as arguments; when the non-blocking | |
3973 connect completes, the sentinel is called with a status string | |
3974 matching "open" or "failed". | |
3975 | |
3976 *** New function open-network-stream-server. | |
3977 | |
3978 This function creates a network server process for a TCP service. | |
3979 When a client connects to the specified service, a new subprocess | |
3980 is created to handle the new connection, and the sentinel function | |
3981 is called for the new process. | |
3982 | |
3983 *** New functions process-datagram-address and set-process-datagram-address. | |
3984 | 4037 |
3985 These functions are used with datagram-based network processes to get | 4038 These functions are used with datagram-based network processes to get |
3986 and set the current address of the remote partner. | 4039 and set the current address of the remote partner. |
3987 | 4040 |
3988 *** New function format-network-address. | 4041 *** New function `format-network-address'. |
3989 | 4042 |
3990 This function reformats the lisp representation of a network address | 4043 This function reformats the Lisp representation of a network address |
3991 to a printable string. For example, an IP address A.B.C.D and port | 4044 to a printable string. For example, an IP address A.B.C.D and port |
3992 number P is represented as a five element vector [A B C D P], and the | 4045 number P is represented as a five element vector [A B C D P], and the |
3993 printable string returned for this vector is "A.B.C.D:P". See the doc | 4046 printable string returned for this vector is "A.B.C.D:P". See the doc |
3994 string for other formatting options. | 4047 string for other formatting options. |
3995 | 4048 |
3996 *** By default, the function process-contact still returns (HOST SERVICE) | 4049 *** `process-contact' has an optional KEY argument. |
3997 for a network process. Using the new optional KEY arg, the complete list | 4050 |
3998 of network process properties or a specific property can be selected. | 4051 Depending on this argument, you can get the complete list of network |
3999 | 4052 process properties or a specific property. Using :local or :remote as |
4000 Using :local and :remote as the KEY, the address of the local or | 4053 the KEY, you get the address of the local or remote end-point. |
4001 remote end-point is returned. An Inet address is represented as a 5 | 4054 |
4002 element vector, where the first 4 elements contain the IP address and | 4055 An Inet address is represented as a 5 element vector, where the first |
4003 the fifth is the port number. | 4056 4 elements contain the IP address and the fifth is the port number. |
4004 | 4057 |
4005 *** Network processes can now be stopped and restarted with | 4058 *** New functions `stop-process' and `continue-process'. |
4006 `stop-process' and `continue-process'. For a server process, no | 4059 |
4007 connections are accepted in the stopped state. For a client process, | 4060 These functions stop and restart communication through a network |
4008 no input is received in the stopped state. | 4061 connection. For a server process, no connections are accepted in the |
4009 | 4062 stopped state. For a client process, no input is received in the |
4010 *** New function network-interface-list. | 4063 stopped state. |
4064 | |
4065 *** New function `network-interface-list'. | |
4011 | 4066 |
4012 This function returns a list of network interface names and their | 4067 This function returns a list of network interface names and their |
4013 current network addresses. | 4068 current network addresses. |
4014 | 4069 |
4015 *** New function network-interface-info. | 4070 *** New function `network-interface-info'. |
4016 | 4071 |
4017 This function returns the network address, hardware address, current | 4072 This function returns the network address, hardware address, current |
4018 status, and other information about a specific network interface. | 4073 status, and other information about a specific network interface. |
4019 | 4074 |
4020 *** The sentinel is now called when a network process is deleted with | 4075 *** Deleting a network process with `delete-process' calls the sentinel. |
4021 delete-process. The status message passed to the sentinel for a | 4076 |
4022 deleted network process is "deleted". The message passed to the | 4077 The status message passed to the sentinel for a deleted network |
4023 sentinel when the connection is closed by the remote peer has been | 4078 process is "deleted". The message passed to the sentinel when the |
4024 changed to "connection broken by remote peer". | 4079 connection is closed by the remote peer has been changed to |
4080 "connection broken by remote peer". | |
4025 | 4081 |
4026 ** Using window objects: | 4082 ** Using window objects: |
4027 | 4083 |
4028 +++ | 4084 +++ |
4029 *** New function `window-body-height'. | 4085 *** New function `window-body-height'. |
4032 header line. | 4088 header line. |
4033 | 4089 |
4034 +++ | 4090 +++ |
4035 *** New function `window-body-height'. | 4091 *** New function `window-body-height'. |
4036 | 4092 |
4037 This is like window-height but does not count the mode line | 4093 This is like `window-height' but does not count the mode line |
4038 or the header line. | 4094 or the header line. |
4039 | 4095 |
4040 +++ | 4096 +++ |
4041 *** You can now make a window as short as one line. | 4097 *** You can now make a window as short as one line. |
4042 | 4098 |
4059 +++ | 4115 +++ |
4060 *** The new macro `with-selected-window' temporarily switches the | 4116 *** The new macro `with-selected-window' temporarily switches the |
4061 selected window without impacting the order of `buffer-list'. | 4117 selected window without impacting the order of `buffer-list'. |
4062 | 4118 |
4063 +++ | 4119 +++ |
4064 *** `select-window' takes an optional second argument `norecord'. | 4120 *** `select-window' takes an optional second argument NORECORD. |
4065 | 4121 |
4066 This is like `switch-to-buffer'. | 4122 This is like `switch-to-buffer'. |
4067 | 4123 |
4068 +++ | 4124 +++ |
4069 *** `save-selected-window' now saves and restores the selected window | 4125 *** `save-selected-window' now saves and restores the selected window |
4086 identifing the bitmap such as `left-truncation or `continued-line'. | 4142 identifing the bitmap such as `left-truncation or `continued-line'. |
4087 | 4143 |
4088 *** New function `destroy-fringe-bitmap' deletes a fringe bitmap | 4144 *** New function `destroy-fringe-bitmap' deletes a fringe bitmap |
4089 or restores a built-in one to its default value. | 4145 or restores a built-in one to its default value. |
4090 | 4146 |
4091 *** New function `set-fringe-bitmap-face' can now be used to set a | 4147 *** New function `set-fringe-bitmap-face' specifies the face to be |
4092 specific face to be used for a specific fringe bitmap. The face is | 4148 used for a specific fringe bitmap. The face is automatically merged |
4093 automatically merged with the `fringe' face, so normally, the face | 4149 with the `fringe' face, so normally, the face should only specify the |
4094 should only specify the foreground color of the bitmap. | 4150 foreground color of the bitmap. |
4095 | 4151 |
4096 *** There are new display properties, `left-fringe; and `right-fringe', | 4152 *** There are new display properties, `left-fringe' and `right-fringe', |
4097 that can be used to show a specific bitmap in the left or right fringe | 4153 that can be used to show a specific bitmap in the left or right fringe |
4098 bitmap of the display line. | 4154 bitmap of the display line. |
4099 | 4155 |
4100 Format is `display (left-fringe BITMAP [FACE])', where BITMAP is a | 4156 Format is `display (left-fringe BITMAP [FACE])', where BITMAP is a |
4101 symbol identifying a fringe bitmap, either built-in or defined with | 4157 symbol identifying a fringe bitmap, either built-in or defined with |
4234 | 4290 |
4235 If the `line-spacing' property is a float or cons, the line spacing | 4291 If the `line-spacing' property is a float or cons, the line spacing |
4236 is calculated as specified above for the `line-height' property. | 4292 is calculated as specified above for the `line-height' property. |
4237 | 4293 |
4238 +++ | 4294 +++ |
4239 *** The buffer local line-spacing variable can now have a float value, | 4295 *** The buffer local `line-spacing' variable can now have a float value, |
4240 which is used as a height relative to the default frame line height. | 4296 which is used as a height relative to the default frame line height. |
4241 | 4297 |
4242 +++ | 4298 +++ |
4243 *** Enhancements to stretch display properties | 4299 *** Enhancements to stretch display properties |
4244 | 4300 |
4284 For example, to align to the center of the left-margin, use | 4340 For example, to align to the center of the left-margin, use |
4285 :align-to (+ left-margin (0.5 . left-margin)) | 4341 :align-to (+ left-margin (0.5 . left-margin)) |
4286 | 4342 |
4287 If no specific base offset is set for alignment, it is always relative | 4343 If no specific base offset is set for alignment, it is always relative |
4288 to the left edge of the text area. For example, :align-to 0 in a | 4344 to the left edge of the text area. For example, :align-to 0 in a |
4289 header-line aligns with the first text column in the text area. | 4345 header line aligns with the first text column in the text area. |
4290 | 4346 |
4291 The value of the form `(NUM . EXPR)' is the value of NUM multiplied by | 4347 The value of the form `(NUM . EXPR)' is the value of NUM multiplied by |
4292 the value of the expression EXPR. For example, (2 . in) specifies a | 4348 the value of the expression EXPR. For example, (2 . in) specifies a |
4293 width of 2 inches, while (0.5 . IMAGE) specifies half the width (or | 4349 width of 2 inches, while (0.5 . IMAGE) specifies half the width (or |
4294 height) of the specified image. | 4350 height) of the specified image. |
4310 *** Support for displaying image slices | 4366 *** Support for displaying image slices |
4311 | 4367 |
4312 **** New display property (slice X Y WIDTH HEIGHT) can be used with | 4368 **** New display property (slice X Y WIDTH HEIGHT) can be used with |
4313 an image property to display only a specific slice of the image. | 4369 an image property to display only a specific slice of the image. |
4314 | 4370 |
4315 **** Function insert-image has new optional fourth arg to | 4371 **** Function `insert-image' has new optional fourth arg to |
4316 specify image slice (X Y WIDTH HEIGHT). | 4372 specify image slice (X Y WIDTH HEIGHT). |
4317 | 4373 |
4318 **** New function insert-sliced-image inserts a given image as a | 4374 **** New function `insert-sliced-image' inserts a given image as a |
4319 specified number of evenly sized slices (rows x columns). | 4375 specified number of evenly sized slices (rows x columns). |
4320 | 4376 |
4321 +++ | 4377 +++ |
4322 *** Images can now have an associated image map via the :map property. | 4378 *** Images can now have an associated image map via the :map property. |
4323 | 4379 |
4332 | 4388 |
4333 When the mouse pointer is above a hot-spot area of an image, the | 4389 When the mouse pointer is above a hot-spot area of an image, the |
4334 PLIST of that hot-spot is consulted; if it contains a `help-echo' | 4390 PLIST of that hot-spot is consulted; if it contains a `help-echo' |
4335 property it defines a tool-tip for the hot-spot, and if it contains | 4391 property it defines a tool-tip for the hot-spot, and if it contains |
4336 a `pointer' property, it defines the shape of the mouse cursor when | 4392 a `pointer' property, it defines the shape of the mouse cursor when |
4337 it is over the hot-spot. See the variable 'void-area-text-pointer' | 4393 it is over the hot-spot. See the variable `void-area-text-pointer' |
4338 for possible pointer shapes. | 4394 for possible pointer shapes. |
4339 | 4395 |
4340 When you click the mouse when the mouse pointer is over a hot-spot, | 4396 When you click the mouse when the mouse pointer is over a hot-spot, |
4341 an event is composed by combining the ID of the hot-spot with the | 4397 an event is composed by combining the ID of the hot-spot with the |
4342 mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'. | 4398 mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'. |
4360 controlled/overriden via the `pointer' text property. | 4416 controlled/overriden via the `pointer' text property. |
4361 | 4417 |
4362 ** Mouse event enhancements: | 4418 ** Mouse event enhancements: |
4363 | 4419 |
4364 +++ | 4420 +++ |
4365 *** Mouse clicks on fringes now generates left-fringe or right-fringes | 4421 *** Mouse events for clicks on window fringes now specify `left-fringe' |
4366 events, rather than a text area click event. | 4422 or `right-fringe' as the area. |
4367 | 4423 |
4368 +++ | 4424 +++ |
4369 *** Mouse clicks in the left and right marginal areas now includes a | 4425 *** All mouse events now include a buffer position regardless of where |
4370 sensible buffer position corresponding to the first character in the | 4426 you clicked. For mouse clicks in window margins and fringes, this is |
4371 corresponding text row. | 4427 a sensible buffer position corresponding to the surrounding text. |
4428 | |
4429 +++ | |
4430 *** `posn-point' now returns buffer position for non-text area events. | |
4372 | 4431 |
4373 +++ | 4432 +++ |
4374 *** Function `mouse-set-point' now works for events outside text area. | 4433 *** Function `mouse-set-point' now works for events outside text area. |
4375 | |
4376 +++ | |
4377 *** Mouse events now includes buffer position for all event types. | |
4378 | |
4379 +++ | |
4380 *** `posn-point' now returns buffer position for non-text area events. | |
4381 | 4434 |
4382 +++ | 4435 +++ |
4383 *** New function `posn-area' returns window area clicked on (nil means | 4436 *** New function `posn-area' returns window area clicked on (nil means |
4384 text area). | 4437 text area). |
4385 | 4438 |
4386 +++ | 4439 +++ |
4387 *** Mouse events include actual glyph column and row for all event types. | 4440 *** Mouse events include actual glyph column and row for all event types |
4388 | 4441 and all areas. |
4389 +++ | 4442 |
4390 *** New function `posn-actual-col-row' returns actual glyph coordinates. | 4443 +++ |
4391 | 4444 *** New function `posn-actual-col-row' returns the actual glyph coordinates |
4392 +++ | 4445 of the mouse event position. |
4393 *** Mouse events can now include image object in addition to string object. | 4446 |
4394 | 4447 +++ |
4395 +++ | 4448 *** Mouse events can now indicate an image object clicked on. |
4396 *** Mouse events include relative x and y pixel coordinates relative to | 4449 |
4450 +++ | |
4451 *** Mouse events include relative X and Y pixel coordinates relative to | |
4397 the top left corner of the object (image or character) clicked on. | 4452 the top left corner of the object (image or character) clicked on. |
4398 | 4453 |
4399 +++ | 4454 +++ |
4400 *** Mouse events include the pixel width and height of the object | 4455 *** Mouse events include the pixel width and height of the object |
4401 (image or character) clicked on. | 4456 (image or character) clicked on. |
4402 | 4457 |
4403 +++ | 4458 +++ |
4404 *** New functions 'posn-object', 'posn-object-x-y', and | 4459 *** New functions 'posn-object', 'posn-object-x-y', 'posn-object-width-height'. |
4405 'posn-object-width-height' return the image or string object of a mouse | 4460 |
4406 click, the x and y pixel coordinates relative to the top left corner | 4461 These return the image or string object of a mouse click, the X and Y |
4407 of that object, and the total width and height of that object. | 4462 pixel coordinates relative to the top left corner of that object, and |
4463 the total width and height of that object. | |
4408 | 4464 |
4409 ** Text property and overlay changes: | 4465 ** Text property and overlay changes: |
4410 | 4466 |
4411 +++ | 4467 +++ |
4412 *** Arguments for remove-overlays are now optional, so that you can | 4468 *** Arguments for `remove-overlays' are now optional, so that you can |
4413 remove all overlays in the buffer by just calling (remove-overlays). | 4469 remove all overlays in the buffer with just (remove-overlays). |
4414 | 4470 |
4415 +++ | 4471 +++ |
4416 *** New variable char-property-alias-alist. | 4472 *** New variable `char-property-alias-alist'. |
4417 | 4473 |
4418 This variable allows you to create alternative names for text | 4474 This variable allows you to create alternative names for text |
4419 properties. It works at the same level as `default-text-properties', | 4475 properties. It works at the same level as `default-text-properties', |
4420 although it applies to overlays as well. This variable was introduced | 4476 although it applies to overlays as well. This variable was introduced |
4421 to implement the `font-lock-face' property. | 4477 to implement the `font-lock-face' property. |
4426 return value of `get-char-property' called with those arguments and | 4482 return value of `get-char-property' called with those arguments and |
4427 whose cdr is the overlay in which the property was found, or nil if | 4483 whose cdr is the overlay in which the property was found, or nil if |
4428 it was found as a text property or not found at all. | 4484 it was found as a text property or not found at all. |
4429 | 4485 |
4430 +++ | 4486 +++ |
4431 *** The new function remove-list-of-text-properties is almost the same | 4487 *** The new function `remove-list-of-text-properties'. |
4432 as `remove-text-properties'. The only difference is that it takes a | 4488 |
4433 list of property names as argument rather than a property list. | 4489 It is like `remove-text-properties' except that it takes a list of |
4490 property names as argument rather than a property list. | |
4434 | 4491 |
4435 ** Face changes | 4492 ** Face changes |
4436 | 4493 |
4437 +++ | 4494 +++ |
4438 *** The new face attribute condition `min-colors' can be used to tailor | 4495 *** The new face attribute condition `min-colors' can be used to tailor |
4441 look best on a terminal that supports at least this many colors. This | 4498 look best on a terminal that supports at least this many colors. This |
4442 is now the preferred method for defining default faces in a way that | 4499 is now the preferred method for defining default faces in a way that |
4443 makes a good use of the capabilities of the display. | 4500 makes a good use of the capabilities of the display. |
4444 | 4501 |
4445 +++ | 4502 +++ |
4446 *** New function display-supports-face-attributes-p can be used to test | 4503 *** New function `display-supports-face-attributes-p' can be used to test |
4447 whether a given set of face attributes is actually displayable. | 4504 whether a given set of face attributes is actually displayable. |
4448 | 4505 |
4449 A new predicate `supports' has also been added to the `defface' face | 4506 A new predicate `supports' has also been added to the `defface' face |
4450 specification language, which can be used to do this test for faces | 4507 specification language, which can be used to do this test for faces |
4451 defined with defface. | 4508 defined with `defface'. |
4452 | 4509 |
4453 --- | 4510 --- |
4454 *** The special treatment of faces whose names are of the form `fg:COLOR' | 4511 *** The special treatment of faces whose names are of the form `fg:COLOR' |
4455 or `bg:COLOR' has been removed. Lisp programs should use the | 4512 or `bg:COLOR' has been removed. Lisp programs should use the |
4456 `defface' facility for defining faces with specific colors, or use | 4513 `defface' facility for defining faces with specific colors, or use |
4474 *** The function `face-differs-from-default-p' now truly checks | 4531 *** The function `face-differs-from-default-p' now truly checks |
4475 whether the given face displays differently from the default face or | 4532 whether the given face displays differently from the default face or |
4476 not (previously it did only a very cursory check). | 4533 not (previously it did only a very cursory check). |
4477 | 4534 |
4478 +++ | 4535 +++ |
4479 *** `face-attribute', `face-foreground', `face-background', and | 4536 *** `face-attribute', `face-foreground', `face-background', `face-stipple'. |
4480 `face-stipple' now accept a new optional argument, INHERIT, which | 4537 |
4481 controls how face inheritance is used when determining the value of a | 4538 These now accept a new optional argument, INHERIT, which controls how |
4482 face attribute. | 4539 face inheritance is used when determining the value of a face |
4540 attribute. | |
4483 | 4541 |
4484 +++ | 4542 +++ |
4485 *** New functions `face-attribute-relative-p' and `merge-face-attribute' | 4543 *** New functions `face-attribute-relative-p' and `merge-face-attribute' |
4486 help with handling relative face attributes. | 4544 help with handling relative face attributes. |
4487 | 4545 |
4492 faces in the list override later faces in the list; in previous | 4550 faces in the list override later faces in the list; in previous |
4493 releases of Emacs, the order was the opposite. This change was made | 4551 releases of Emacs, the order was the opposite. This change was made |
4494 so that :inherit face lists operate identically to face lists in text | 4552 so that :inherit face lists operate identically to face lists in text |
4495 `face' properties. | 4553 `face' properties. |
4496 | 4554 |
4497 +++ | |
4498 *** New standard font-lock face `font-lock-preprocessor-face'. | |
4499 | |
4500 --- | 4555 --- |
4501 *** `set-fontset-font', `fontset-info', `fontset-font' now operate on | 4556 *** `set-fontset-font', `fontset-info', `fontset-font' now operate on |
4502 the default fontset if the argument NAME is nil.. | 4557 the default fontset if the argument NAME is nil.. |
4503 | 4558 |
4504 ** Font-Lock changes: | 4559 ** Font-Lock changes: |
4512 new variable `char-property-alias-alist'. | 4567 new variable `char-property-alias-alist'. |
4513 | 4568 |
4514 +++ | 4569 +++ |
4515 *** font-lock can manage arbitrary text-properties beside `face'. | 4570 *** font-lock can manage arbitrary text-properties beside `face'. |
4516 | 4571 |
4517 *** the FACENAME returned in `font-lock-keywords' can be a list of the | 4572 **** the FACENAME returned in `font-lock-keywords' can be a list of the |
4518 form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set other | 4573 form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set other |
4519 properties than `face'. | 4574 properties than `face'. |
4520 | 4575 |
4521 *** `font-lock-extra-managed-props' can be set to make sure those | 4576 **** `font-lock-extra-managed-props' can be set to make sure those |
4522 extra properties are automatically cleaned up by font-lock. | 4577 extra properties are automatically cleaned up by font-lock. |
4523 | 4578 |
4524 --- | 4579 --- |
4525 *** jit-lock obeys a new text-property `jit-lock-defer-multiline'. | 4580 *** jit-lock obeys a new text-property `jit-lock-defer-multiline'. |
4526 | 4581 |
4548 precedence over the file name. Likewise an `<?xml' or `<!DOCTYPE' | 4603 precedence over the file name. Likewise an `<?xml' or `<!DOCTYPE' |
4549 declaration will give the buffer XML or SGML mode, based on the new | 4604 declaration will give the buffer XML or SGML mode, based on the new |
4550 var `magic-mode-alist'. | 4605 var `magic-mode-alist'. |
4551 | 4606 |
4552 +++ | 4607 +++ |
4553 *** Major mode functions now run the new normal hook | 4608 *** Use the new function `run-mode-hooks' to run the major mode's mode hook. |
4554 `after-change-major-mode-hook', at their very end, after the mode hooks. | 4609 |
4610 +++ | |
4611 *** All major mode functions should now run the new normal hook | |
4612 `after-change-major-mode-hook', at their very end, after the mode | |
4613 hooks. `run-mode-hooks' does this automatically. | |
4555 | 4614 |
4556 --- | 4615 --- |
4557 *** If a major mode function has a non-nil `no-clone-indirect' | 4616 *** If a major mode function has a non-nil `no-clone-indirect' |
4558 property, `clone-indirect-buffer' signals an error if you use | 4617 property, `clone-indirect-buffer' signals an error if you use |
4559 it in that buffer. | 4618 it in that buffer. |
4579 and simply passes them to `defcustom', if applicable. | 4638 and simply passes them to `defcustom', if applicable. |
4580 | 4639 |
4581 +++ | 4640 +++ |
4582 *** `minor-mode-list' now holds a list of minor mode commands. | 4641 *** `minor-mode-list' now holds a list of minor mode commands. |
4583 | 4642 |
4584 --- | 4643 +++ |
4585 *** `define-global-minor-mode'. | 4644 *** `define-global-minor-mode'. |
4586 | 4645 |
4587 This is a new name for what was formerly called | 4646 This is a new name for what was formerly called |
4588 `easy-mmode-define-global-mode'. The old name remains as an alias. | 4647 `easy-mmode-define-global-mode'. The old name remains as an alias. |
4589 | 4648 |
4590 ** Command loop changes: | 4649 ** Command loop changes: |
4591 | 4650 |
4592 +++ | 4651 +++ |
4593 *** The new function `called-interactively-p' does what many people | 4652 *** The new function `called-interactively-p' does what many people |
4594 have mistakenly believed `interactive-p' did: it returns t if the | 4653 have mistakenly believed `interactive-p' to do: it returns t if the |
4595 calling function was called through `call-interactively'. This should | 4654 calling function was called through `call-interactively'. |
4596 only be used when you cannot solve the problem by adding a new | 4655 |
4656 Only use this when you cannot solve the problem by adding a new | |
4597 INTERACTIVE argument to the command. | 4657 INTERACTIVE argument to the command. |
4598 | 4658 |
4599 +++ | 4659 +++ |
4600 *** The function `commandp' takes an additional optional argument. | 4660 *** The function `commandp' takes an additional optional argument. |
4601 | 4661 |
4628 | 4688 |
4629 +++ | 4689 +++ |
4630 *** `emacsserver' now runs `pre-command-hook' and `post-command-hook' | 4690 *** `emacsserver' now runs `pre-command-hook' and `post-command-hook' |
4631 when it receives a request from emacsclient. | 4691 when it receives a request from emacsclient. |
4632 | 4692 |
4633 ** Minibuffer changes: | |
4634 | |
4635 +++ | |
4636 *** The functions all-completions and try-completion now accept lists | |
4637 of strings as well as hash-tables additionally to alists, obarrays | |
4638 and functions. Furthermore, the function `test-completion' is now | |
4639 exported to Lisp. The keys in alists and hash tables can be either | |
4640 strings or symbols, which are automatically converted with to strings. | |
4641 | |
4642 +++ | |
4643 *** The new macro `dynamic-completion-table' supports using functions | |
4644 as a dynamic completion table. | |
4645 | |
4646 (dynamic-completion-table FUN) | |
4647 | |
4648 FUN is called with one argument, the string for which completion is required, | |
4649 and it should return an alist containing all the intended possible | |
4650 completions. This alist can be a full list of possible completions so that FUN | |
4651 can ignore the value of its argument. If completion is performed in the | |
4652 minibuffer, FUN will be called in the buffer from which the minibuffer was | |
4653 entered. `dynamic-completion-table' then computes the completion. | |
4654 | |
4655 +++ | |
4656 *** The new macro `lazy-completion-table' initializes a variable | |
4657 as a lazy completion table. | |
4658 | |
4659 (lazy-completion-table VAR FUN &rest ARGS) | |
4660 | |
4661 If the completion table VAR is used for the first time (e.g., by passing VAR | |
4662 as an argument to `try-completion'), the function FUN is called with arguments | |
4663 ARGS. FUN must return the completion table that will be stored in VAR. If | |
4664 completion is requested in the minibuffer, FUN will be called in the buffer | |
4665 from which the minibuffer was entered. The return value of | |
4666 `lazy-completion-table' must be used to initialize the value of VAR. | |
4667 | |
4668 ** Lisp file loading changes: | 4693 ** Lisp file loading changes: |
4669 | 4694 |
4670 +++ | 4695 +++ |
4671 *** `load-history' can now have elements of the form (t . FUNNAME), | 4696 *** `load-history' can now have elements of the form (t . FUNNAME), |
4672 which means FUNNAME was previously defined as an autoload (before the | 4697 which means FUNNAME was previously defined as an autoload (before the |
4675 +++ | 4700 +++ |
4676 *** `load-history' now records (defun . FUNNAME) when a function is | 4701 *** `load-history' now records (defun . FUNNAME) when a function is |
4677 defined. For a variable, it records just the variable name. | 4702 defined. For a variable, it records just the variable name. |
4678 | 4703 |
4679 +++ | 4704 +++ |
4680 *** The function symbol-file can now search specifically for function or | 4705 *** The function `symbol-file' can now search specifically for function, |
4681 variable definitions. | 4706 variable or face definitions. |
4682 | 4707 |
4683 +++ | 4708 +++ |
4684 *** `provide' and `featurep' now accept an optional second argument | 4709 *** `provide' and `featurep' now accept an optional second argument |
4685 to test/provide subfeatures. Also `provide' now checks `after-load-alist' | 4710 to test/provide subfeatures. Also `provide' now checks `after-load-alist' |
4686 and runs any code associated with the provided feature. | 4711 and runs any code associated with the provided feature. |
4691 than 3 levels of nesting. | 4716 than 3 levels of nesting. |
4692 | 4717 |
4693 +++ | 4718 +++ |
4694 ** Byte compiler changes: | 4719 ** Byte compiler changes: |
4695 | 4720 |
4696 *** The byte-compiler now displays the actual line and character | 4721 *** The byte compiler now displays the actual line and character |
4697 position of errors, where possible. Additionally, the form of its | 4722 position of errors, where possible. Additionally, the form of its |
4698 warning and error messages have been brought more in line with the | 4723 warning and error messages have been brought into line with GNU standards |
4699 output of other GNU tools. | 4724 for these. As a result, you can use next-error and friends on the |
4725 compilation output buffer. | |
4700 | 4726 |
4701 *** The new macro `with-no-warnings' suppresses all compiler warnings | 4727 *** The new macro `with-no-warnings' suppresses all compiler warnings |
4702 inside its body. In terms of execution, it is equivalent to `progn'. | 4728 inside its body. In terms of execution, it is equivalent to `progn'. |
4703 | 4729 |
4704 *** You can avoid warnings for possibly-undefined symbols with a | 4730 *** You can avoid warnings for possibly-undefined symbols with a |
4722 Emacs and XEmacs and can sometimes make the result significantly more | 4748 Emacs and XEmacs and can sometimes make the result significantly more |
4723 efficient. Since byte code from recent versions of XEmacs won't | 4749 efficient. Since byte code from recent versions of XEmacs won't |
4724 generally run in Emacs and vice versa, this optimization doesn't lose | 4750 generally run in Emacs and vice versa, this optimization doesn't lose |
4725 you anything. | 4751 you anything. |
4726 | 4752 |
4727 *** The local variable `no-byte-compile' in elisp files is now obeyed. | 4753 *** The local variable `no-byte-compile' in Lisp files is now obeyed. |
4728 | 4754 |
4729 --- | 4755 --- |
4730 *** When a Lisp file uses CL functions at run-time, compiling the file | 4756 *** When a Lisp file uses CL functions at run-time, compiling the file |
4731 now issues warnings about these calls, unless the file performs | 4757 now issues warnings about these calls, unless the file performs |
4732 (require 'cl) when loaded. | 4758 (require 'cl) when loaded. |
4770 | 4796 |
4771 3. For binary files where format conversion would be pointless and | 4797 3. For binary files where format conversion would be pointless and |
4772 wasteful. | 4798 wasteful. |
4773 | 4799 |
4774 --- | 4800 --- |
4775 *** set-buffer-file-coding-system now takes an additional argument, | 4801 *** `set-buffer-file-coding-system' now takes an additional argument, |
4776 NOMODIFY. If it is non-nil, it means don't mark the buffer modified. | 4802 NOMODIFY. If it is non-nil, it means don't mark the buffer modified. |
4777 | 4803 |
4778 +++ | 4804 +++ |
4779 *** The new variable `auto-coding-functions' lets you specify functions | 4805 *** The new variable `auto-coding-functions' lets you specify functions |
4780 to examine a file being visited and deduce the proper coding system | 4806 to examine a file being visited and deduce the proper coding system |
4797 --- | 4823 --- |
4798 *** New CCL functions `lookup-character' and `lookup-integer' access | 4824 *** New CCL functions `lookup-character' and `lookup-integer' access |
4799 hash tables defined by the Lisp function `define-translation-hash-table'. | 4825 hash tables defined by the Lisp function `define-translation-hash-table'. |
4800 | 4826 |
4801 --- | 4827 --- |
4802 *** New function quail-find-key returns a list of keys to type in the | 4828 *** New function `quail-find-key' returns a list of keys to type in the |
4803 current input method to input a character. | 4829 current input method to input a character. |
4804 | 4830 |
4805 ** Mode line changes: | 4831 ** Mode line changes: |
4806 | 4832 |
4807 +++ | 4833 +++ |
4808 *** New function `format-mode-line'. | 4834 *** New function `format-mode-line'. |
4809 | 4835 |
4810 This returns the mode-line or header-line of the selected (or a | 4836 This returns the mode line or header line of the selected (or a |
4811 specified) window as a string with or without text properties. | 4837 specified) window as a string with or without text properties. |
4812 | 4838 |
4813 +++ | 4839 +++ |
4814 *** The new mode-line construct `(:propertize ELT PROPS...)' can be | 4840 *** The new mode-line construct `(:propertize ELT PROPS...)' can be |
4815 used to add text properties to mode-line elements. | 4841 used to add text properties to mode-line elements. |
4867 ** Miscellaneous: | 4893 ** Miscellaneous: |
4868 | 4894 |
4869 +++ | 4895 +++ |
4870 *** A number of hooks have been renamed to better follow the conventions: | 4896 *** A number of hooks have been renamed to better follow the conventions: |
4871 | 4897 |
4872 find-file-hooks to find-file-hook, | 4898 `find-file-hooks' to `find-file-hook', |
4873 find-file-not-found-hooks to find-file-not-found-functions, | 4899 `find-file-not-found-hooks' to `find-file-not-found-functions', |
4874 write-file-hooks to write-file-functions, | 4900 `write-file-hooks' to `write-file-functions', |
4875 write-contents-hooks to write-contents-functions, | 4901 `write-contents-hooks' to `write-contents-functions', |
4876 x-lost-selection-hooks to x-lost-selection-functions, | 4902 `x-lost-selection-hooks' to `x-lost-selection-functions', |
4877 x-sent-selection-hooks to x-sent-selection-functions, | 4903 `x-sent-selection-hooks' to `x-sent-selection-functions', |
4878 delete-frame-hook to delete-frame-functions. | 4904 `delete-frame-hook' to `delete-frame-functions'. |
4879 | 4905 |
4880 In each case the old name remains as an alias for the moment. | 4906 In each case the old name remains as an alias for the moment. |
4881 | 4907 |
4882 +++ | 4908 +++ |
4883 *** local-write-file-hooks is marked obsolete | 4909 *** local-write-file-hooks is marked obsolete |
4885 Use the LOCAL arg of `add-hook'. | 4911 Use the LOCAL arg of `add-hook'. |
4886 | 4912 |
4887 --- | 4913 --- |
4888 *** New function `x-send-client-message' sends a client message when | 4914 *** New function `x-send-client-message' sends a client message when |
4889 running under X. | 4915 running under X. |
4916 | |
4917 ** GC changes: | |
4918 | |
4919 +++ | |
4920 *** New variables `gc-elapsed' and `gcs-done' provide extra information | |
4921 on garbage collection. | |
4922 | |
4923 +++ | |
4924 *** The normal hook `post-gc-hook' is run at the end of garbage collection. | |
4925 | |
4926 The hook is run with GC inhibited, so use it with care. | |
4927 | |
4928 * New Packages for Lisp Programming in Emacs 22.1 | |
4929 | |
4930 +++ | |
4931 ** The new library button.el implements simple and fast `clickable | |
4932 buttons' in emacs buffers. Buttons are much lighter-weight than the | |
4933 `widgets' implemented by widget.el, and can be used by lisp code that | |
4934 doesn't require the full power of widgets. Emacs uses buttons for | |
4935 such things as help and apropos buffers. | |
4936 | |
4937 --- | |
4938 ** The new library tree-widget.el provides a widget to display a set | |
4939 of hierarchical data as an outline. For example, the tree-widget is | |
4940 well suited to display a hierarchy of directories and files. | |
4941 | |
4942 ** The new library bindat.el provides functions to unpack and pack | |
4943 binary data structures, such as network packets, to and from Lisp | |
4944 data structures. | |
4945 | |
4946 --- | |
4947 ** master-mode.el implements a minor mode for scrolling a slave | |
4948 buffer without leaving your current buffer, the master buffer. | |
4949 | |
4950 It can be used by sql.el, for example: the SQL buffer is the master | |
4951 and its SQLi buffer is the slave. This allows you to scroll the SQLi | |
4952 buffer containing the output from the SQL buffer containing the | |
4953 commands. | |
4954 | |
4955 This is how to use sql.el and master.el together: the variable | |
4956 sql-buffer contains the slave buffer. It is a local variable in the | |
4957 SQL buffer. | |
4958 | |
4959 (add-hook 'sql-mode-hook | |
4960 (function (lambda () | |
4961 (master-mode t) | |
4962 (master-set-slave sql-buffer)))) | |
4963 (add-hook 'sql-set-sqli-hook | |
4964 (function (lambda () | |
4965 (master-set-slave sql-buffer)))) | |
4966 | |
4967 +++ | |
4968 ** The new library benchmark.el does timing measurements on Lisp code. | |
4969 | |
4970 This includes measuring garbage collection time. | |
4971 | |
4972 +++ | |
4973 ** The new library testcover.el does test coverage checking. | |
4974 | |
4975 This is so you can tell whether you've tested all paths in your Lisp | |
4976 code. It works with edebug. | |
4977 | |
4978 The function `testcover-start' instruments all functions in a given | |
4979 file. Then test your code. The function `testcover-mark-all' adds | |
4980 overlay "splotches" to the Lisp file's buffer to show where coverage | |
4981 is lacking. The command `testcover-next-mark' (bind it to a key!) | |
4982 will move point forward to the next spot that has a splotch. | |
4983 | |
4984 Normally, a red splotch indicates the form was never completely | |
4985 evaluated; a brown splotch means it always evaluated to the same | |
4986 value. The red splotches are skipped for forms that can't possibly | |
4987 complete their evaluation, such as `error'. The brown splotches are | |
4988 skipped for forms that are expected to always evaluate to the same | |
4989 value, such as (setq x 14). | |
4990 | |
4991 For difficult cases, you can add do-nothing macros to your code to | |
4992 help out the test coverage tool. The macro `noreturn' suppresses a | |
4993 red splotch. It is an error if the argument to `noreturn' does | |
4994 return. The macro `1value' suppresses a brown splotch for its argument. | |
4995 This macro is a no-op except during test-coverage -- then it signals | |
4996 an error if the argument actually returns differing values. | |
4890 | 4997 |
4891 * Installation changes in Emacs 21.3 | 4998 * Installation changes in Emacs 21.3 |
4892 | 4999 |
4893 ** Support for GNU/Linux on little-endian MIPS and on IBM S390 has | 5000 ** Support for GNU/Linux on little-endian MIPS and on IBM S390 has |
4894 been added. | 5001 been added. |
10713 the time the message was written or the time it is being sent; this | 10820 the time the message was written or the time it is being sent; this |
10714 can make FCC copies more closely resemble copies that recipients get | 10821 can make FCC copies more closely resemble copies that recipients get |
10715 | 10822 |
10716 **** you can specify an arbitrary function for actually transmitting | 10823 **** you can specify an arbitrary function for actually transmitting |
10717 the message; included in feedmail are interfaces for /bin/[r]mail, | 10824 the message; included in feedmail are interfaces for /bin/[r]mail, |
10718 /usr/lib/sendmail, and elisp smtpmail; it's easy to write a new | 10825 /usr/lib/sendmail, and Emacs Lisp smtpmail; it's easy to write a new |
10719 function for something else (10-20 lines of elisp) | 10826 function for something else (10-20 lines of Lisp code). |
10720 | 10827 |
10721 ** Dired changes | 10828 ** Dired changes |
10722 | 10829 |
10723 *** The Dired function dired-do-toggle, which toggles marked and unmarked | 10830 *** The Dired function dired-do-toggle, which toggles marked and unmarked |
10724 files, is now bound to "t" instead of "T". | 10831 files, is now bound to "t" instead of "T". |