comparison etc/NEWS @ 89909:68c22ea6027c

Sync to HEAD
author Kenichi Handa <handa@m17n.org>
date Fri, 16 Apr 2004 12:51:06 +0000
parents d2c6900fc175
children 4c90ffeb71c5
comparison
equal deleted inserted replaced
89908:ee1402f7b568 89909:68c22ea6027c
1 GNU Emacs NEWS -- history of user-visible changes. 2003-05-21 1 GNU Emacs NEWS -- history of user-visible changes. 2003-05-21
2 Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. 2 Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
3 See the end for copying conditions. 3 See the end for copying conditions.
4 4
5 Please send Emacs bug reports to bug-gnu-emacs@gnu.org. 5 Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
6 For older news, see the file ONEWS 6 For older news, see the file ONEWS
7 7
87 eight-bit-control/eight-bit-graphic charsets aren't now in the range 87 eight-bit-control/eight-bit-graphic charsets aren't now in the range
88 128-255. 88 128-255.
89 89
90 * Installation Changes in Emacs 21.4 90 * Installation Changes in Emacs 21.4
91 91
92 ---
93 ** A Bulgarian translation of the Emacs Tutorial is available.
94
92 ** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk' 95 ** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk'
93 when you run configure. This requires Gtk+ 2.0 or newer. This port 96 when you run configure. This requires Gtk+ 2.0 or newer. This port
94 provides a way to display multilingual text in menus (with some caveats). 97 provides a way to display multilingual text in menus (with some caveats).
95 98
96 --- 99 ---
152 --- 155 ---
153 ** A French translation of the `Emacs Survival Guide' is available. 156 ** A French translation of the `Emacs Survival Guide' is available.
154 157
155 --- 158 ---
156 ** A French translation of the Emacs Tutorial is available. 159 ** A French translation of the Emacs Tutorial is available.
160 ** Building with -DENABLE_CHECKING does not automatically build with union
161 types any more. Add -DUSE_LISP_UNION_TYPE if you want union types.
157 162
158 163
159 * Changes in Emacs 21.4 164 * Changes in Emacs 21.4
165
166 ** New command line option -Q.
167
168 This is like using -q --no-site-file, but in addition it also disables
169 the menu-bar, the tool-bar, the scroll-bars, tool tips, the blinking
170 cursor, and the fancy startup screen.
171
172 ** C-h v and C-h f commands now include a hyperlink to the C source for
173 variables and functions defined in C (if the C source is available).
174
175 ** When used interactively, `format-write-file' now asks for confirmation
176 before overwriting an existing file, unless a prefix argument is
177 supplied. This behavior is analogous to `write-file'.
178
179 ** You can now use Auto Revert mode to `tail' a file.
180 If point is at the end of a file buffer before reverting, Auto Revert
181 mode keeps it at the end after reverting. Similarly if point is
182 displayed at the end of a file buffer in any window, it will stay at
183 the end of the buffer in that window. This allows to tail a file:
184 just put point at the end of the buffer and it will stay there. This
185 rule applies to file buffers. For non-file buffers, the behavior may
186 be mode dependent.
187
188 ** Auto Revert mode is now more careful to avoid excessive reverts and
189 other potential problems when deciding which non-file buffers to
190 revert. This matters especially if Global Auto Revert mode is enabled
191 and `global-auto-revert-non-file-buffers' is non-nil. Auto Revert
192 mode will only revert a non-file buffer if the buffer has a non-nil
193 `revert-buffer-function' and a non-nil `buffer-stale-function', which
194 decides whether the buffer should be reverted. Currently, this means
195 that auto reverting works for Dired buffers (although this may not
196 work properly on all operating systems) and for the Buffer Menu.
197
198 ** If the new user option `auto-revert-check-vc-info' is non-nil, Auto
199 Revert mode reliably updates version control info (such as the version
200 control number in the mode line), in all version controlled buffers in
201 which it is active. If the option is nil, the default, then this info
202 only gets updated whenever the buffer gets reverted.
203
204 ** New command `Buffer-menu-toggle-files-only' toggles display of file
205 buffers only in the Buffer Menu. It is bound to `T' in Buffer Menu
206 mode.
207
208 ** M-x compile has become more robust and reliable
209
210 Quite a few more kinds of messages are recognized. Messages that are
211 recognized as warnings or informational come in orange or green, instead of
212 red. Informational messages are by default skipped with `next-error'
213 (controlled by `compilation-skip-threshold').
214
215 Location data is collected on the fly as the *compilation* buffer changes.
216 This means you could modify messages to make them point to different files.
217 This also means you can not go to locations of messages you may have deleted.
218
219 The variable `compilation-error-regexp-alist' has now become customizable. If
220 you had added your own regexps to this, you'll probably need to include a
221 leading `^', otherwise they'll match anywhere on a line. There is now also a
222 `compilation-mode-font-lock-keywords' and it nicely handles all the checks
223 that configure outputs and -o options so you see at a glance where you are.
224
225 The new file etc/compilation.txt gives examples of each type of message.
226
227 ** M-x grep has been adapted to new compile
228
229 Hits are fontified in green, and hits in binary files in orange. Grep buffers
230 can be saved and will again be loaded with the new `grep-mode'.
231
232 ** M-x diff uses diff-mode instead of compilation-mode.
233
234 ** M-x compare-windows now can automatically skip non-matching text to
235 resync points in both windows.
236
237 ** New command `strokes-global-set-stroke-string'.
238 This is like `strokes-global-set-stroke', but it allows you to bind
239 the stroke directly to a string to insert. This is convenient for
240 using strokes as an input method.
241
242 ---
243 ** The saveplace.el package now filters out unreadable files.
244 When you exit Emacs, the saved positions in visited files no longer
245 include files that aren't readable, e.g. files that don't exist.
246 Customize the new option `save-place-forget-unreadable-files' to nil
247 to get the old behavior. The new options `save-place-save-skipped'
248 and `save-place-skip-check-regexp' allow further fine-tuning of this
249 feature.
250
251 ** You can have several Emacs servers on the same machine.
252
253 % emacs --eval '(setq server-name "foo")' -f server-start &
254 % emacs --eval '(setq server-name "bar")' -f server-start &
255 % emacsclient -s foo file1
256 % emacsclient -s bar file2
257
258 ** On window systems, lines which are exactly as wide as the window
259 (not counting the final newline character) are no longer broken into
260 two lines on the display (with just the newline on the second line).
261 Instead, the newline now "overflows" into the right fringe, and the
262 cursor will be displayed in the fringe when positioned on that newline.
263
264 The new user option 'overflow-newline-into-fringe' may be set to nil to
265 revert to the old behaviour of continuing such lines.
266
267 ** The buffer boundaries (i.e. first and last line in the buffer) may
268 now be marked with angle bitmaps in the fringes. In addition, up and
269 down arrow bitmaps may be shown at the top and bottom of the left or
270 right fringe if the window can be scrolled in either direction.
271
272 This behavior is activated by setting the buffer-local variable
273 `indicate-buffer-boundaries' to a non-nil value. The default value of
274 this variable is found in `default-indicate-buffer-boundaries'.
275
276 If value is `left' or `right', both angle and arrow bitmaps are
277 displayed in the left or right fringe, resp. Any other non-nil value
278 causes the bitmap on the top line to be displayed in the left fringe,
279 and the bitmap on the bottom line in the right fringe.
280
281 If value is a cons (ANGLES . ARROWS), the car specifies the position
282 of the angle bitmaps, and the cdr specifies the position of the arrow
283 bitmaps.
284
285 For example, (t . right) places the top angle bitmap in left fringe,
286 the bottom angle bitmap in right fringe, and both arrow bitmaps in
287 right fringe. To show just the angle bitmaps in the left fringe, but
288 no arrow bitmaps, use (left . nil).
289
290 ** New command `display-local-help' displays any local help at point
291 in the echo area. It is bound to `C-h .'. It normally displays the
292 same string that would be displayed on mouse-over using the
293 `help-echo' property, but, in certain cases, it can display a more
294 keyboard oriented alternative.
295
296 ** New user option `help-at-pt-display-when-idle' allows to
297 automatically show the help provided by `display-local-help' on
298 point-over, after suitable idle time. The amount of idle time is
299 determined by the user option `help-at-pt-timer-delay' and defaults
300 to one second. This feature is turned off by default.
301
302 ** New commands `scan-buf-next-region' and `scan-buf-previous-region'
303 move to the start of the next (previous, respectively) region with
304 non-nil help-echo property and display any help found there in the
305 echo area, using `display-local-help'.
306
307 +++
308 ** Help mode now only makes hyperlinks for faces when the face name is
309 preceded or followed by the word `face'. It no longer makes
310 hyperlinks for variables without variable documentation, unless
311 preceded by one of the words `variable' or `option'. It now makes
312 hyperlinks to Info anchors (or nodes) if the anchor (or node) name is
313 enclosed in single quotes and preceded by `info anchor' or `Info
314 anchor' (in addition to earlier `info node' and `Info node').
315
316 ** The max size of buffers and integers has been doubled.
317 On 32bit machines, it is now 256M (i.e. 268435455).
318
319 +++
320 ** The -f option, used from the command line to call a function,
321 now reads arguments for the function interactively if it is
322 an interactively callable function.
323
160 324
161 ** sql changes. 325 ** sql changes.
162 326
163 *** The variable `sql-product' controls the highlightng of different 327 *** The variable `sql-product' controls the highlightng of different
164 SQL dialects. This variable can be set globally via Customize, on a 328 SQL dialects. This variable can be set globally via Customize, on a
202 highlighted in `font-lock-doc-face'. 366 highlighted in `font-lock-doc-face'.
203 367
204 *** Microsoft SQLServer support has been significantly improved. 368 *** Microsoft SQLServer support has been significantly improved.
205 Keyword highlighting for SqlServer 2000 is implemented. 369 Keyword highlighting for SqlServer 2000 is implemented.
206 sql-interactive-mode defaults to use osql, rather than isql, because 370 sql-interactive-mode defaults to use osql, rather than isql, because
207 osql flushes it's error stream more frequently. Thus error messages 371 osql flushes its error stream more frequently. Thus error messages
208 are displayed when they occur rather than when the session is 372 are displayed when they occur rather than when the session is
209 terminated. 373 terminated.
210 374
211 If the username and password are not provided to `sql-ms', osql is 375 If the username and password are not provided to `sql-ms', osql is
212 called with the -E command line argument to use the operating system 376 called with the -E command line argument to use the operating system
247 restores the previous value of `buffer-invisibility-spec'. 411 restores the previous value of `buffer-invisibility-spec'.
248 412
249 ** New command `kill-whole-line' kills an entire line at once. 413 ** New command `kill-whole-line' kills an entire line at once.
250 By default, it is bound to C-S-<backspace>. 414 By default, it is bound to C-S-<backspace>.
251 415
252 +++ 416 ** Dired mode:
253 ** Info now hides node names in menus and cross references by default. 417
418 *** New faces dired-header, dired-mark, dired-marked, dired-flagged,
419 dired-ignored, dired-directory, dired-symlink, dired-warning
420 introduced for Dired mode instead of font-lock faces.
421
422 *** New Dired command `dired-compare-directories' to mark files with
423 different file attributes in two dired buffers.
424
425 +++
426 *** In Dired's ! command (dired-do-shell-command), `*' and `?' now
427 control substitution of the file names only when they are surrounded
428 by whitespace. This means you can now use them as shell wildcards
429 too. If you want to use just plain `*' as a wildcard, type `*""'; the
430 doublequotes make no difference in the shell, but they prevent
431 special treatment in `dired-do-shell-command'.
432
433 +++
434 *** Dired's v command now runs external viewers to view certain
435 types of files. The variable `dired-view-command-alist' controls
436 what external viewers to use and when.
437
438 *** In Dired, the w command now copies the current line's file name
439 into the kill ring.
440
441 ** Info mode:
442 +++
443 *** Info now hides node names in menus and cross references by default.
254 If you prefer the old behavior, you can set the new user option 444 If you prefer the old behavior, you can set the new user option
255 `Info-hide-note-references' to nil. 445 `Info-hide-note-references' to nil.
446
447 *** The new command `info-apropos' searches the indices of the known
448 Info files on your system for a string, and builds a menu of the
449 possible matches.
450
451 +++
452 *** The default value for `Info-scroll-prefer-subnodes' is now nil.
453
454 ---
455 *** Info-index offers completion.
256 456
257 ** Support for the SQLite interpreter has been added to sql.el by calling 457 ** Support for the SQLite interpreter has been added to sql.el by calling
258 'sql-sqlite'. 458 'sql-sqlite'.
259 459
260 ** BibTeX mode: 460 ** BibTeX mode:
293 493
294 Such individual settings are now preserved when windows are split 494 Such individual settings are now preserved when windows are split
295 horizontally or vertically, a saved window configuration is restored, 495 horizontally or vertically, a saved window configuration is restored,
296 or when the frame is resized. 496 or when the frame is resized.
297 497
498 ** New functions frame-current-scroll-bars and window-current-scroll-bars.
499
500 These functions return the current locations of the vertical and
501 horizontal scroll bars in a frame or window.
502
503 ---
504 ** Emacs now supports drag and drop for X. Dropping a file on a window
505 opens it, dropping text inserts the text. Dropping a file on a dired
506 buffer copies or moves the file to that directory.
507
298 ** Under X, mouse-wheel-mode is turned on by default. 508 ** Under X, mouse-wheel-mode is turned on by default.
299 509
300 ** The X resource useXIM can be used to turn off use of XIM, which may 510 ** The X resource useXIM can be used to turn off use of XIM, which may
301 speed up Emacs with slow networking to the X server. 511 speed up Emacs with slow networking to the X server.
302 512
303 If the configure option `--without-xim' was used to turn off use of 513 If the configure option `--without-xim' was used to turn off use of
304 XIM by default, the X resource useXIM can be used to turn it on. 514 XIM by default, the X resource useXIM can be used to turn it on.
305
306 ** `describe-char' can show data from the Unicode database file. See
307 user option `unicode-data'.
308 515
309 ** `undo-only' does an undo which does not redo any previous undo. 516 ** `undo-only' does an undo which does not redo any previous undo.
310 517
311 ** `uniquify-strip-common-suffix' tells uniquify to prefer 518 ** `uniquify-strip-common-suffix' tells uniquify to prefer
312 `file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'. 519 `file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'.
427 ** The commands M-x customize-face and M-x customize-face-other-window 634 ** The commands M-x customize-face and M-x customize-face-other-window
428 now look at the character after point. If a face or faces are 635 now look at the character after point. If a face or faces are
429 specified for that character, the commands by default customize those 636 specified for that character, the commands by default customize those
430 faces. 637 faces.
431 638
432 ** New language environments: French, Ukrainian, Windows-1251, Tajik, 639 ** New language environments: French, Ukrainian, Tajik,
433 Bulgarian, Belarusian, Ukrainian, UTF-8, Windows-1255, Welsh, Latin-6, 640 Bulgarian, Belarusian, Ukrainian, UTF-8, Windows-1255, Welsh, Latin-6,
434 Latin-7, Lithuanian, Latvian, Swedish, Slovenian, Croatian, Georgian, 641 Latin-7, Lithuanian, Latvian, Swedish, Slovenian, Croatian, Georgian,
435 Italian, Russian, Malayalam, Tamil, Russian, Chinese-EUC-TW. (Set up 642 Italian, Russian, Malayalam, Tamil, Russian, Chinese-EUC-TW. (Set up
436 automatically according to the locale.) 643 automatically according to the locale.)
437 644
455 Big 5 is then converted to CNS. 662 Big 5 is then converted to CNS.
456 663
457 --- 664 ---
458 ** Many new coding systems are available by loading the `code-pages' 665 ** Many new coding systems are available by loading the `code-pages'
459 library. These include complete versions of most of those in 666 library. These include complete versions of most of those in
460 codepage.el, based on Unicode mappings. 667 codepage.el, based on Unicode mappings. `codepage-setup' is now
668 obsolete and is used only in the MS-DOS port of Emacs. windows-1252
669 and windows-1251 are preloaded since the former is so common and the
670 latter is used by GNU locales.
461 671
462 ** The utf-8/16 coding systems have been enhanced. 672 ** The utf-8/16 coding systems have been enhanced.
463 By default, untranslatable utf-8 sequences (mostly representing CJK 673 By default, untranslatable utf-8 sequences (mostly representing CJK
464 characters) are simply composed into single quasi-characters. User 674 characters) are simply composed into single quasi-characters. User
465 option `utf-translate-cjk' arranges to translate many utf-8 CJK 675 option `utf-translate-cjk' arranges to translate many utf-8 CJK
511 --- 721 ---
512 ** The scrollbar under LessTif or Motif has a smoother drag-scrolling. 722 ** The scrollbar under LessTif or Motif has a smoother drag-scrolling.
513 On the other hand, the size of the thumb does not represent the actual 723 On the other hand, the size of the thumb does not represent the actual
514 amount of text shown any more (only a crude approximation of it). 724 amount of text shown any more (only a crude approximation of it).
515 725
726 ---
727 ** The pop up menus for Lucid now stay up if you do a fast click and can
728 be navigated with the arrow keys (like Gtk+ and W32).
729
730 ---
731 ** Dialogs for Lucid/Athena and Lesstif/Motif pops down when pressing ESC.
732
733 +++
734 ** The file selection dialog for Gtk+, W32 and Motif/Lesstif can be
735 disabled by customizing the variable `use-file-dialog'.
736
516 +++ 737 +++
517 ** Emacs can produce an underscore-like (horizontal bar) cursor. 738 ** Emacs can produce an underscore-like (horizontal bar) cursor.
518 The underscore cursor is set by putting `(cursor-type . hbar)' in 739 The underscore cursor is set by putting `(cursor-type . hbar)' in
519 default-frame-alist. It supports variable heights, like the `bar' 740 default-frame-alist. It supports variable heights, like the `bar'
520 cursor does. 741 cursor does.
521 742
743 +++
744 ** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is
745 now controlled by the variable `blink-cursor-alist'.
746
522 ** Filesets are collections of files. You can define a fileset in 747 ** Filesets are collections of files. You can define a fileset in
523 various ways, such as based on a directory tree or based on 748 various ways, such as based on a directory tree or based on
524 program files that include other program files. 749 program files that include other program files.
525 750
526 Once you have defined a fileset, you can perform various operations on 751 Once you have defined a fileset, you can perform various operations on
535 ** The game `mpuz' is enhanced. 760 ** The game `mpuz' is enhanced.
536 761
537 `mpuz' now allows the 2nd factor not to have two identical digits. By 762 `mpuz' now allows the 2nd factor not to have two identical digits. By
538 default, all trivial operations involving whole lines are performed 763 default, all trivial operations involving whole lines are performed
539 automatically. The game uses faces for better visual feedback. 764 automatically. The game uses faces for better visual feedback.
540
541 +++
542 ** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is
543 now shown as a hollow box or a thin bar. However, you can control how
544 it blinks off by setting the variable `blink-cursor-alist'.
545 765
546 ** The new variable `x-select-request-type' controls how Emacs 766 ** The new variable `x-select-request-type' controls how Emacs
547 requests X selection. The default value is nil, which means that 767 requests X selection. The default value is nil, which means that
548 Emacs requests X selection with types COMPOUND_TEXT and UTF8_STRING, 768 Emacs requests X selection with types COMPOUND_TEXT and UTF8_STRING,
549 and use the more appropriately result. 769 and use the more appropriately result.
581 to another, even within a frame. If you set the variable 801 to another, even within a frame. If you set the variable
582 mouse-autoselect-window to non-nil value, moving the mouse to a 802 mouse-autoselect-window to non-nil value, moving the mouse to a
583 different Emacs window will select that window (minibuffer window can 803 different Emacs window will select that window (minibuffer window can
584 be selected only when it is active). The default is nil, so that this 804 be selected only when it is active). The default is nil, so that this
585 feature is not enabled. 805 feature is not enabled.
806
807 ** On X, when the window manager requires that you click on a frame to
808 select it (give it focus), the selected window and cursor position
809 normally changes according to the mouse click position. If you set
810 the variable x-mouse-click-focus-ignore-position to t, the selected
811 window and cursor position do not change when you click on a frame
812 to give it focus.
586 813
587 +++ 814 +++
588 ** The new command `describe-char' (C-u C-x =) pops up a buffer with 815 ** The new command `describe-char' (C-u C-x =) pops up a buffer with
589 description various information about a character, including its 816 description various information about a character, including its
590 encodings and syntax, its text properties, overlays, and widgets at 817 encodings and syntax, its text properties, overlays, and widgets at
640 867
641 +++ 868 +++
642 ** Emacs can now indicate in the mode-line the presence of new e-mail 869 ** Emacs can now indicate in the mode-line the presence of new e-mail
643 in a directory or in a file. See the documentation of the user option 870 in a directory or in a file. See the documentation of the user option
644 `display-time-mail-directory'. 871 `display-time-mail-directory'.
645
646 +++
647 ** The default value for `Info-scroll-prefer-subnodes' is now nil.
648 872
649 --- 873 ---
650 ** LDAP support now defaults to ldapsearch from OpenLDAP version 2. 874 ** LDAP support now defaults to ldapsearch from OpenLDAP version 2.
651 875
652 +++ 876 +++
682 than 8 colors. For example, for `xterm', 16-color, 88-color, and 906 than 8 colors. For example, for `xterm', 16-color, 88-color, and
683 256-color modes are supported. Emacs automatically notes at startup 907 256-color modes are supported. Emacs automatically notes at startup
684 the extended number of colors, and defines the appropriate entries for 908 the extended number of colors, and defines the appropriate entries for
685 all of these colors. 909 all of these colors.
686 910
911 +++
912 *** Emacs now uses the full range of available colors for the default
913 faces when running on a color terminal, including 16-, 88-, and
914 256-color xterms. This means that when you run "emacs -nw" on an
915 88-color or 256-color xterm, you will see essentially the same face
916 colors as on X.
917
687 --- 918 ---
688 *** There's a new support for colors on `rxvt' terminal emulator. 919 *** There's a new support for colors on `rxvt' terminal emulator.
689 920
690 +++ 921 +++
691 ** Emacs can now be invoked in full-screen mode on a windowed display. 922 ** Emacs can now be invoked in full-screen mode on a windowed display.
692 923
693 When Emacs is invoked on a window system, the new command-line options 924 When Emacs is invoked on a window system, the new command-line options
694 `--fullwidth', `--fullheight', and `--fullscreen' produce a frame 925 `--fullwidth', `--fullheight', and `--fullscreen' produce a frame
695 whose width, height, or both width and height take up the entire 926 whose width, height, or both width and height take up the entire
696 screen size. (For now, this does not work with some window managers.) 927 screen size. (For now, this does not work with some window managers.)
697
698 ---
699 ** Info-index offers completion.
700 928
701 --- 929 ---
702 ** Emacs now tries to set up buffer coding systems for HTML/XML files 930 ** Emacs now tries to set up buffer coding systems for HTML/XML files
703 automatically. 931 automatically.
704 932
829 *** Do not allow debugger output history variable to grow without bounds. 1057 *** Do not allow debugger output history variable to grow without bounds.
830 1058
831 +++ 1059 +++
832 ** hide-ifdef-mode now uses overlays rather than selective-display 1060 ** hide-ifdef-mode now uses overlays rather than selective-display
833 to hide its text. This should be mostly transparent but slightly 1061 to hide its text. This should be mostly transparent but slightly
834 changes the behavior of motion commands line C-e and C-p. 1062 changes the behavior of motion commands like C-e and C-p.
835
836 +++
837 ** In Dired's ! command (dired-do-shell-command), `*' and `?' now
838 control substitution of the file names only when they are surrounded
839 by whitespace. This means you can now use them as shell wildcards
840 too. If you want to use just plain `*' as a wildcard, type `*""'; the
841 doublequotes make no difference in the shell, but they prevent
842 special treatment in `dired-do-shell-command'.
843
844 +++
845 ** Dired's v command now runs external viewers to view certain
846 types of files. The variable `dired-view-command-alist' controls
847 what external viewers to use and when.
848 1063
849 +++ 1064 +++
850 ** Unquoted `$' in file names do not signal an error any more when 1065 ** Unquoted `$' in file names do not signal an error any more when
851 the corresponding environment variable does not exist. 1066 the corresponding environment variable does not exist.
852 Instead, the `$ENVVAR' text is left as is, so that `$$' quoting 1067 Instead, the `$ENVVAR' text is left as is, so that `$$' quoting
853 is only rarely needed. 1068 is only rarely needed.
854 1069
855 --- 1070 ---
856 ** jit-lock can now be delayed with `jit-lock-defer-time'. 1071 ** JIT-lock changes
1072 *** jit-lock can now be delayed with `jit-lock-defer-time'.
857 1073
858 If this variable is non-nil, its value should be the amount of Emacs 1074 If this variable is non-nil, its value should be the amount of Emacs
859 idle time in seconds to wait before starting fontification. For 1075 idle time in seconds to wait before starting fontification. For
860 example, if you set `jit-lock-defer-time' to 0.25, fontification will 1076 example, if you set `jit-lock-defer-time' to 0.25, fontification will
861 only happen after 0.25s of idle time. 1077 only happen after 0.25s of idle time.
1078
1079 *** contextual refontification is now separate from stealth fontification.
1080
1081 jit-lock-defer-contextually is renamed jit-lock-contextually and
1082 jit-lock-context-time determines the delay after which contextual
1083 refontification takes place.
862 1084
863 +++ 1085 +++
864 ** Marking commands extend the region when invoked multiple times. If 1086 ** Marking commands extend the region when invoked multiple times. If
865 you hit M-C-SPC (mark-sexp), M-@ (mark-word), M-h (mark-paragraph), or 1087 you hit M-C-SPC (mark-sexp), M-@ (mark-word), M-h (mark-paragraph), or
866 C-M-h (mark-defun) repeatedly, the marked region will now be extended 1088 C-M-h (mark-defun) repeatedly, the marked region will now be extended
904 +++ 1126 +++
905 ** M-h (mark-paragraph) now accepts a prefix arg. 1127 ** M-h (mark-paragraph) now accepts a prefix arg.
906 With positive arg, M-h marks the current and the following paragraphs; 1128 With positive arg, M-h marks the current and the following paragraphs;
907 if the arg is negative, it marks the current and the preceding 1129 if the arg is negative, it marks the current and the preceding
908 paragraphs. 1130 paragraphs.
909
910 ** In Dired, the w command now copies the current line's file name
911 into the kill ring.
912 1131
913 +++ 1132 +++
914 ** The variables dired-free-space-program and dired-free-space-args 1133 ** The variables dired-free-space-program and dired-free-space-args
915 have been renamed to directory-free-space-program and 1134 have been renamed to directory-free-space-program and
916 directory-free-space-args, and they now apply whenever Emacs puts a 1135 directory-free-space-args, and they now apply whenever Emacs puts a
956 attempt to construct a unique auto-save name (e.g. for remote files). 1175 attempt to construct a unique auto-save name (e.g. for remote files).
957 1176
958 +++ 1177 +++
959 ** Diary sexp entries can have custom marking in the calendar. 1178 ** Diary sexp entries can have custom marking in the calendar.
960 Diary sexp functions which only apply to certain days (such as 1179 Diary sexp functions which only apply to certain days (such as
961 `diary-block' or `diary-cyclic' now take an optional parameter MARK, 1180 `diary-block' or `diary-cyclic') now take an optional parameter MARK,
962 which is the name of a face or a single-character string indicating 1181 which is the name of a face or a single-character string indicating
963 how to highlight the day in the calendar display. Specifying a 1182 how to highlight the day in the calendar display. Specifying a
964 single-character string as @var{mark} places the character next to the 1183 single-character string as @var{mark} places the character next to the
965 day in the calendar. Specifying a face highlights the day with that 1184 day in the calendar. Specifying a face highlights the day with that
966 face. This lets you have different colors or markings for vacations, 1185 face. This lets you have different colors or markings for vacations,
967 appointments, paydays or anything else using a sexp. 1186 appointments, paydays or anything else using a sexp.
1187
1188 +++
1189 ** The new function `calendar-goto-day-of-year' (g D) prompts for a
1190 year and day number, and moves to that date. Negative day numbers
1191 count backward from the end of the year.
1192
1193 ** The function `simple-diary-display' now by default sets a header line.
1194 This can be controlled through the variables `diary-header-line-flag'
1195 and `diary-header-line-format'.
1196
1197 +++
1198 ** The procedure for activating appointment reminders has changed: use
1199 the new function `appt-activate'. The new variable
1200 `appt-display-format' controls how reminders are displayed, replacing
1201 appt-issue-message, appt-visible, and appt-msg-window.
968 1202
969 ** VC Changes 1203 ** VC Changes
970 1204
971 *** The key C-x C-q no longer checks files in or out, it only changes 1205 *** The key C-x C-q no longer checks files in or out, it only changes
972 the read-only state of the buffer (toggle-read-only). We made this 1206 the read-only state of the buffer (toggle-read-only). We made this
1443 +++ 1677 +++
1444 ** The completion commands TAB, SPC and ? in the minibuffer apply only 1678 ** The completion commands TAB, SPC and ? in the minibuffer apply only
1445 to the text before point. If there is text in the buffer after point, 1679 to the text before point. If there is text in the buffer after point,
1446 it remains unchanged. 1680 it remains unchanged.
1447 1681
1682 ** Visual feedback of *Completions* buffer is enhanced.
1683 Faces are put on the common prefix substrings and the first uncommon
1684 charachters of each completion candidate in the *Completions* buffer.
1685 `completion-de-emphasis' is put on the common prefix substrings as the
1686 face; and `completion-emphasis' is put on the first uncommon
1687 charachters. By default `completion-de-emphasis' is inherited from
1688 `default' face. `completion-emphasis' is inherited from `bold' face.
1689
1448 +++ 1690 +++
1449 ** New user option `inhibit-startup-buffer-menu'. 1691 ** New user option `inhibit-startup-buffer-menu'.
1450 When loading many files, for instance with `emacs *', Emacs normally 1692 When loading many files, for instance with `emacs *', Emacs normally
1451 displays a buffer menu. This option turns the buffer menu off. 1693 displays a buffer menu. This option turns the buffer menu off.
1452 1694
1453 ** New user option `compilation-environment'. 1695 ** Compilation mode enhancements:
1696
1697 *** New user option `compilation-environment'.
1454 This option allows you to specify environment variables for inferior 1698 This option allows you to specify environment variables for inferior
1455 compilation processes without affecting the environment that all 1699 compilation processes without affecting the environment that all
1456 subprocesses inherit. 1700 subprocesses inherit.
1701
1702 *** `next-error' now temporarily highlights the corresponding source line.
1703
1704 ** Grep has been decoupled from compilation mode setup.
1705
1706 *** Grep commands now have their own submenu and customization group.
1707
1708 *** The new variables `grep-window-height', `grep-auto-highlight', and
1709 `grep-scroll-output' can be used to override the corresponding
1710 compilation mode settings for grep commands.
1711
1712 *** Source line is temporarily highlighted when going to next match.
1713
1714 *** New key bindings in grep output window:
1715 SPC and DEL scrolls window up and down. C-n and C-p moves to next and
1716 previous match in the grep window. RET jumps to the source line of
1717 the current match. `n' and `p' shows next and previous match in
1718 other window, but does not switch buffer. `{' and `}' jumps to the
1719 previous or next file in the grep output. TAB also jumps to the next
1720 file.
1457 1721
1458 --- 1722 ---
1459 ** Rmail now displays 5-digit message ids in its summary buffer. 1723 ** Rmail now displays 5-digit message ids in its summary buffer.
1460 1724
1461 --- 1725 ---
1510 use for the modifiers. For example, the following two lines swap 1774 use for the modifiers. For example, the following two lines swap
1511 Meta and Alt: 1775 Meta and Alt:
1512 (setq x-alt-keysym 'meta) 1776 (setq x-alt-keysym 'meta)
1513 (setq x-meta-keysym 'alt) 1777 (setq x-meta-keysym 'alt)
1514 1778
1515 * New modes and packages in 21.4 1779 +++
1780 ** vc-annotate-mode enhancements
1781
1782 In vc-annotate mode, you can now use the following key bindings for
1783 enhanced functionality to browse the annotations of past revisions, or
1784 to view diffs or log entries directly from vc-annotate-mode:
1785
1786 P: annotates the previous revision
1787 N: annotates the next revision
1788 J: annotates the revision at line
1789 A: annotates the revision previous to line
1790 D: shows the diff of the revision at line with its previous revision
1791 L: shows the log of the revision at line
1792 W: annotates the workfile (most up to date) version
1793
1794 * New modes and packages in Emacs 21.4
1795
1796 ** The new python.el package is used to edit Python and Jython programs.
1797
1798 ** The URL package (which had been part of W3) is now part of Emacs.
1799
1800 +++
1801 ** The new global minor mode `size-indication-mode' (off by default)
1802 shows the size of accessible part of the buffer on the mode line.
1516 1803
1517 ** GDB-Script-mode is used for files like .gdbinit. 1804 ** GDB-Script-mode is used for files like .gdbinit.
1518 1805
1519 --- 1806 ---
1520 ** Ido mode is now part of the Emacs distribution. 1807 ** Ido mode is now part of the Emacs distribution.
1722 2009
1723 ** If you set `query-replace-skip-read-only' non-nil, 2010 ** If you set `query-replace-skip-read-only' non-nil,
1724 `query-replace' and related functions simply ignore 2011 `query-replace' and related functions simply ignore
1725 a match if part of it has a read-only property. 2012 a match if part of it has a read-only property.
1726 2013
2014 ** The new Lisp library fringe.el controls the apperance of fringes.
2015
2016 ** `cfengine-mode' is a major mode for editing GNU Cfengine
2017 configuration files.
1727 2018
1728 * Lisp Changes in Emacs 21.4 2019 * Lisp Changes in Emacs 21.4
2020
2021 ** The display space :width and :align-to text properties are now
2022 supported on text terminals.
2023
2024 ** Enhancements to stretch display properties
2025
2026 The display property stretch specification form `(space PROPS)', where
2027 PROPS is a property list now allows pixel based width and height
2028 specifications, as well as enhanced horizontal text alignment.
2029
2030 The value of these properties can now be a (primitive) expression
2031 which is evaluated during redisplay. The following expressions
2032 are supported:
2033
2034 EXPR ::= NUM | (NUM) | UNIT | ELEM | POS | IMAGE | FORM
2035 NUM ::= INTEGER | FLOAT | SYMBOL
2036 UNIT ::= in | mm | cm | width | height
2037 ELEM ::= left-fringe | right-fringe | left-margin | right-margin
2038 | scroll-bar | text
2039 POS ::= left | center | right
2040 FORM ::= (NUM . EXPR) | (OP EXPR ...)
2041 OP ::= + | -
2042
2043 The form `NUM' specifies a fractional width or height of the default
2044 frame font size. The form `(NUM)' specifies an absolute number of
2045 pixels. If a symbol is specified, its buffer-local variable binding
2046 is used. The `in', `mm', and `cm' units specifies the number of
2047 pixels per inch, milli-meter, and centi-meter, resp. The `width' and
2048 `height' units correspond to the width and height of the current face
2049 font. An image specification corresponds to the width or height of
2050 the image.
2051
2052 The `left-fringe', `right-fringe', `left-margin', `right-margin',
2053 `scroll-bar', and `text' elements specify to the width of the
2054 corresponding area of the window.
2055
2056 The `left', `center', and `right' positions can be used with :align-to
2057 to specify a position relative to the left edge, center, or right edge
2058 of the text area. One of the above window elements (except `text')
2059 can also be used with :align-to to specify that the position is
2060 relative to the left edge of the given area. Once the base offset for
2061 a relative position has been set (by the first occurrence of one of
2062 these symbols), further occurences of these symbols are interpreted as
2063 the width of the area.
2064
2065 For example, to align to the center of the left-margin, use
2066 :align-to (+ left-margin (0.5 . left-margin))
2067
2068 If no specific base offset is set for alignment, it is always relative
2069 to the left edge of the text area. For example, :align-to 0 in a
2070 header-line aligns with the first text column in the text area.
2071
2072 The value of the form `(NUM . EXPR)' is the value of NUM multiplied by
2073 the value of the expression EXPR. For example, (2 . in) specifies a
2074 width of 2 inches, while (0.5 . IMAGE) specifies half the width (or
2075 height) of the specified image.
2076
2077 The form `(+ EXPR ...)' adds up the value of the expressions.
2078 The form `(- EXPR ...)' negates or subtracts the value of the expressions.
2079
2080 ** New macro with-local-quit temporarily sets inhibit-quit to nil for use
2081 around potentially blocking or long-running code in timers
2082 and post-command-hooks.
2083
2084 +++
2085 ** New face attribute `min-colors' can be used to tailor the face color
2086 to the number of colors supported by a display, and define the
2087 foreground and background colors accordingly so that they look best on
2088 a terminal that supports at least this many colors. This is now the
2089 preferred method for defining default faces in a way that makes a good
2090 use of the capabilities of the display.
2091
2092 ** New function 'define-fringe-bitmap' can now be used to change the
2093 built-in fringe bitmaps, as well as create new fringe bitmaps.
2094 The return value is a number identifying the new fringe bitmap.
2095
2096 To change a built-in bitmap, do (require 'fringe) and identify the
2097 bitmap to change with the value of the corresponding symbol, like
2098 `left-truncation-fringe-bitmap' or `continued-line-fringe-bitmap'.
2099
2100 ** New function 'destroy-fringe-bitmap' may be used to destroy a
2101 previously created bitmap, or restore a built-in bitmap.
2102
2103 ** New function 'set-fringe-bitmap-face' can now be used to set a
2104 specific face to be used for a specific fringe bitmap. Normally,
2105 this should be a face derived from the `fringe' face, specifying
2106 the foreground color as the desired color of the bitmap.
2107
2108 ** There are new display properties, left-fringe and right-fringe,
2109 that can be used to show a specific bitmap in the left or right fringe
2110 bitmap of the display line.
2111
2112 Format is 'display '(left-fringe BITMAP [FACE]), where BITMAP is a
2113 number identifying a fringe bitmap, either built-in or as returned by
2114 `define-fringe-bitmap', and FACE is an optional face name to be used
2115 for displaying the bitmap.
2116
2117 ** New function `fringe-bitmaps-at-pos' returns a cons (LEFT . RIGHT)
2118 identifying the current fringe bitmaps in the display line at a given
2119 buffer position. A nil value means no bitmap.
2120
2121 ** Multiple overlay arrows can now be defined and managed via the new
2122 variable `overlay-arrow-variable-list'. It contains a list of
2123 varibles which contain overlay arrow position markers, including
2124 the original `overlay-arrow-position' variable.
2125
2126 Each variable on this list may have individual `overlay-arrow-string'
2127 and `overlay-arrow-bitmap' properties that specify an overlay arrow
2128 string (for non-window terminals) or fringe bitmap (for window
2129 systems) to display at the corresponding overlay arrow position.
2130 If either property is not set, the default `overlay-arrow-string' or
2131 'overlay-arrow-fringe-bitmap' will be used.
2132
2133 +++
2134 ** New function `line-number-at-pos' returns line number of current
2135 line in current buffer, or if optional buffer position is given, line
2136 number of corresponding line in current buffer.
2137
2138 ** The default value of `sentence-end' is now defined using the new
2139 variable `sentence-end-without-space' which contains such characters
2140 that end a sentence without following spaces.
2141
2142 +++
2143 ** The flags, width, and precision options for %-specifications in function
2144 `format' are now documented. Some flags that were accepted but not
2145 implemented (such as "*") are no longer accepted.
2146
2147 ** New function `macroexpand-all' expands all macros in a form.
2148 It is similar to the Common-Lisp function of the same name.
2149 One difference is that it guarantees to return the original argument
2150 if no expansion is done, which may be tested using `eq'.
2151
2152 +++
2153 ** New function `delete-dups' destructively removes `equal' duplicates
2154 from a list. Of several `equal' occurrences of an element in the list,
2155 the first one is kept.
2156
2157 +++
2158 ** `declare' is now a macro. This change was made mostly for
2159 documentation purposes and should have no real effect on Lisp code.
2160
2161 ** The new hook `before-save-hook' is invoked by `basic-save-buffer'
2162 before saving buffers. This allows packages to perform various final
2163 tasks, for example; it can be used by the copyright package to make
2164 sure saved files have the current year in any copyright headers.
2165
2166 +++
2167 ** The function `insert-for-yank' now supports strings where the
2168 `yank-handler' property does not span the first character of the
2169 string. The old behavior is available if you call
2170 `insert-for-yank-1' instead.
2171
2172 ** New function `get-char-property-and-overlay' accepts the same
2173 arguments as `get-char-property' and returns a cons whose car is the
2174 return value of `get-char-property' called with those arguments and
2175 whose cdr is the overlay in which the property was found, or nil if
2176 it was found as a text property or not found at all.
2177
2178 ** The mouse pointer shape in void text areas (i.e. after the end of a
2179 line or below the last line in the buffer) of the text window is now
2180 controlled by the new variable `void-text-area-pointer'. The default
2181 is to use the `arrow' (non-text) pointer. Other choices are `text'
2182 (or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'.
2183
2184 ** The mouse pointer shape over an image can now be controlled by the
2185 :pointer image property.
2186
2187 ** The mouse pointer shape over ordinary text or images may now be
2188 controlled/overriden via the `pointer' text property.
2189
2190 ** Images may now have an associated image map via the :map property.
2191
2192 An image map is an alist where each element has the format (AREA ID PLIST).
2193 An AREA is specified as either a rectangle, a circle, or a polygon:
2194 A rectangle is a cons (rect . ((x0 . y0) . (x1 . y1))) specifying the
2195 pixel coordinates of the upper left and bottom right corners.
2196 A circle is a cons (circle . ((x0 . y0) . r)) specifying the center
2197 and the radius of the circle; r may be a float or integer.
2198 A polygon is a cons (poly . [x0 y0 x1 y1 ...]) where each pair in the
2199 vector describes one corner in the polygon.
2200
2201 When the mouse pointer is above a hot-spot area of an image, the
2202 PLIST of that hot-spot is consulted; if it contains a `help-echo'
2203 property it defines a tool-tip for the hot-spot, and if it contains
2204 a `pointer' property, it defines the shape of the mouse cursor when
2205 it is over the hot-spot. See the variable 'void-area-text-pointer'
2206 for possible pointer shapes.
2207
2208 When you click the mouse when the mouse pointer is over a hot-spot,
2209 an event is composed by combining the ID of the hot-spot with the
2210 mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'.
2211
2212 ** Mouse event enhancements:
2213
2214 *** Mouse clicks on fringes now generates left-fringe or right-fringes
2215 events, rather than a text area click event.
2216
2217 *** Mouse clicks in the left and right marginal areas now includes a
2218 sensible buffer position corresponding to the first character in the
2219 corresponding text row.
2220
2221 *** Function `mouse-set-point' now works for events outside text area.
2222
2223 +++
2224 *** Mouse events now includes buffer position for all event types.
2225
2226 +++
2227 *** `posn-point' now returns buffer position for non-text area events.
2228
2229 +++
2230 *** New function `posn-area' returns window area clicked on (nil means
2231 text area).
2232
2233 +++
2234 *** Mouse events include actual glyph column and row for all event types.
2235
2236 +++
2237 *** New function `posn-actual-col-row' returns actual glyph coordinates.
2238
2239 +++
2240 *** Mouse events may now include image object in addition to string object.
2241
2242 +++
2243 *** Mouse events include relative x and y pixel coordinates relative to
2244 the top left corner of the object (image or character) clicked on.
2245
2246 +++
2247 *** Mouse events include the pixel width and height of the object
2248 (image or character) clicked on.
2249
2250 +++
2251 *** New functions 'posn-object', 'posn-object-x-y', and
2252 'posn-object-width-height' return the image or string object of a mouse
2253 click, the x and y pixel coordinates relative to the top left corner
2254 of that object, and the total width and height of that object.
2255
2256 ** New function `force-window-update' can initiate a full redisplay of
2257 one or all windows. Normally, this is not needed as changes in window
2258 contents are detected automatically. However, certain implicit
2259 changes to mode lines, header lines, or display properties may require
2260 forcing an explicit window update.
2261
2262 ** New function `redirect-debugging-output' can be used to redirect
2263 debugging output on the stderr file handle to a file.
2264
2265 +++
2266 ** `split-string' now includes null substrings in the returned list if
2267 the optional argument SEPARATORS is non-nil and there are matches for
2268 SEPARATORS at the beginning or end of the string. If SEPARATORS is
2269 nil, or if the new optional third argument OMIT-NULLS is non-nil, all
2270 empty matches are omitted from the returned list.
2271
2272 +++
2273 ** `makehash' is now obsolete. Use `make-hash-table' instead.
2274
2275 +++
2276 ** If optional third argument APPEND to `add-to-list' is non-nil, a
2277 new element gets added at the end of the list instead of at the
2278 beginning. This change actually occurred in Emacs-21.1, but was not
2279 documented.
2280
2281 ** Major modes can define `eldoc-print-current-symbol-info-function'
2282 locally to provide Eldoc functionality by some method appropriate to
2283 the language.
2284
2285 ---
2286 ** New coding system property `mime-text-unsuitable' indicates that
2287 the coding system's `mime-charset' is not suitable for MIME text
2288 parts, e.g. utf-16.
2289
2290 +++
2291 ** The argument to forward-word, backward-word, forward-to-indentation
2292 and backward-to-indentation is now optional, and defaults to 1.
2293
2294 +++
2295 ** (char-displayable-p CHAR) returns non-nil if Emacs ought to be able
2296 to display CHAR. More precisely, if the selected frame's fontset has
2297 a font to display the character set that CHAR belongs to.
2298
2299 Fontsets can specify a font on a per-character basis; when the fontset
2300 does that, this value may not be accurate.
1729 2301
1730 +++ 2302 +++
1731 ** The new function `window-inside-edges' returns the edges of the 2303 ** The new function `window-inside-edges' returns the edges of the
1732 actual text portion of the window, not including the scroll bar or 2304 actual text portion of the window, not including the scroll bar or
1733 divider line, the fringes, the display margins, the header line and 2305 divider line, the fringes, the display margins, the header line and
1937 splotches are skipped for forms that can't possibly complete their evaluation, 2509 splotches are skipped for forms that can't possibly complete their evaluation,
1938 such as `error'. The brown splotches are skipped for forms that are expected 2510 such as `error'. The brown splotches are skipped for forms that are expected
1939 to always evaluate to the same value, such as (setq x 14). 2511 to always evaluate to the same value, such as (setq x 14).
1940 2512
1941 *** For difficult cases, you can add do-nothing macros to your code to help 2513 *** For difficult cases, you can add do-nothing macros to your code to help
1942 out the test coverage tool. The macro 1value suppresses a brown splotch for 2514 out the test coverage tool. The macro `noreturn' suppresses a red splotch.
1943 its argument. The macro noreturn suppresses a red splotch. 2515 It is an error if the argument to `noreturn' does return. The macro 1value
2516 suppresses a brown splotch for its argument. This macro is a no-op except
2517 during test-coverage -- then it signals an error if the argument actually
2518 returns differing values.
1944 2519
1945 +++ 2520 +++
1946 ** New function unsafep returns nil if the given Lisp form can't possibly 2521 ** New function unsafep returns nil if the given Lisp form can't possibly
1947 do anything dangerous; otherwise it returns a reason why the form might be 2522 do anything dangerous; otherwise it returns a reason why the form might be
1948 unsafe (calls dangerous function, alters global variable, etc). 2523 unsafe (calls dangerous function, alters global variable, etc).
1982 +++ 2557 +++
1983 ** The new function `minibufferp' returns non-nil if its optional buffer 2558 ** The new function `minibufferp' returns non-nil if its optional buffer
1984 argument is a minibuffer. If the argument is omitted it defaults to 2559 argument is a minibuffer. If the argument is omitted it defaults to
1985 the current buffer. 2560 the current buffer.
1986 2561
2562 +++
1987 ** There is a new Warnings facility; see the functions `warn' 2563 ** There is a new Warnings facility; see the functions `warn'
1988 and `display-warning'. 2564 and `display-warning'.
1989 2565
1990 +++ 2566 +++
1991 ** The functions all-completions and try-completion now accept lists 2567 ** The functions all-completions and try-completion now accept lists
2005 2581
2006 --- 2582 ---
2007 ** The new function `merge-coding-systems' fills in unspecified aspects 2583 ** The new function `merge-coding-systems' fills in unspecified aspects
2008 of one coding system from another coding system. 2584 of one coding system from another coding system.
2009 2585
2586 +++
2010 ** The variable `safe-local-eval-forms' specifies a list of forms that 2587 ** The variable `safe-local-eval-forms' specifies a list of forms that
2011 are ok to evaluate when they appear in an `eval' local variables 2588 are ok to evaluate when they appear in an `eval' local variables
2012 specification. Normally Emacs asks for confirmation before evaluating 2589 specification. Normally Emacs asks for confirmation before evaluating
2013 such a form, but if the form appears in this list, no confirmation is 2590 such a form, but if the form appears in this list, no confirmation is
2014 needed. 2591 needed.
2015 2592
2593 ---
2016 ** If a function has a non-nil `safe-local-eval-function' property, 2594 ** If a function has a non-nil `safe-local-eval-function' property,
2017 that means it is ok to evaluate some calls to that function when it 2595 that means it is ok to evaluate some calls to that function when it
2018 appears in an `eval' local variables specification. If the property 2596 appears in an `eval' local variables specification. If the property
2019 is t, then any form calling that function with constant arguments is 2597 is t, then any form calling that function with constant arguments is
2020 ok. If the property is a function or list of functions, they are called 2598 ok. If the property is a function or list of functions, they are called
2021 with the form as argument, and if any returns t, the form is ok to call. 2599 with the form as argument, and if any returns t, the form is ok to call.
2022 2600
2023 If the form is not "ok to call", that means Emacs asks for 2601 If the form is not "ok to call", that means Emacs asks for
2024 confirmation as before. 2602 confirmation as before.
2025 2603
2604 +++
2026 ** Controlling the default left and right fringe widths. 2605 ** Controlling the default left and right fringe widths.
2027 2606
2028 The default left and right fringe widths for all windows of a frame 2607 The default left and right fringe widths for all windows of a frame
2029 can now be controlled by setting the `left-fringe' and `right-fringe' 2608 can now be controlled by setting the `left-fringe' and `right-fringe'
2030 frame parameters to an integer value specifying the width in pixels. 2609 frame parameters to an integer value specifying the width in pixels.
2040 Setting the width to nil (the default), restores the default fringe 2619 Setting the width to nil (the default), restores the default fringe
2041 width which is the minimum number of pixels necessary to display any 2620 width which is the minimum number of pixels necessary to display any
2042 of the currently defined fringe bitmaps. The width of the built-in 2621 of the currently defined fringe bitmaps. The width of the built-in
2043 fringe bitmaps is 8 pixels. 2622 fringe bitmaps is 8 pixels.
2044 2623
2624 +++
2045 ** Per-window fringes settings 2625 ** Per-window fringes settings
2046 2626
2047 Windows can now have their own individual fringe widths and position 2627 Windows can now have their own individual fringe widths and position
2048 settings. 2628 settings.
2049 2629
2060 settings. To make `left-fringe-width', `right-fringe-width', and 2640 settings. To make `left-fringe-width', `right-fringe-width', and
2061 `fringes-outside-margins' take effect, you must set them before 2641 `fringes-outside-margins' take effect, you must set them before
2062 displaying the buffer in a window, or use `set-window-buffer' to force 2642 displaying the buffer in a window, or use `set-window-buffer' to force
2063 an update of the display margins. 2643 an update of the display margins.
2064 2644
2645 +++
2065 ** Per-window vertical scroll-bar settings 2646 ** Per-window vertical scroll-bar settings
2066 2647
2067 Windows can now have their own individual scroll-bar settings 2648 Windows can now have their own individual scroll-bar settings
2068 controlling the width and position of scroll-bars. 2649 controlling the width and position of scroll-bars.
2069 2650
2073 used to obtain the current settings. To make `scroll-bar-mode' and 2654 used to obtain the current settings. To make `scroll-bar-mode' and
2074 `scroll-bar-width' take effect, you must set them before displaying 2655 `scroll-bar-width' take effect, you must set them before displaying
2075 the buffer in a window, or use `set-window-buffer' to force an update 2656 the buffer in a window, or use `set-window-buffer' to force an update
2076 of the display margins. 2657 of the display margins.
2077 2658
2659 +++
2078 ** The function `set-window-buffer' now has an optional third argument 2660 ** The function `set-window-buffer' now has an optional third argument
2079 KEEP-MARGINS which will preserve the window's current margin, fringe, 2661 KEEP-MARGINS which will preserve the window's current margin, fringe,
2080 and scroll-bar settings if non-nil. 2662 and scroll-bar settings if non-nil.
2081 2663
2082 +++ 2664 +++
2085 find-file-not-found-hooks to find-file-not-found-functions, 2667 find-file-not-found-hooks to find-file-not-found-functions,
2086 write-file-hooks to write-file-functions, 2668 write-file-hooks to write-file-functions,
2087 write-contents-hooks to write-contents-functions. 2669 write-contents-hooks to write-contents-functions.
2088 Marked local-write-file-hooks as obsolete (use the LOCAL arg of `add-hook'). 2670 Marked local-write-file-hooks as obsolete (use the LOCAL arg of `add-hook').
2089 2671
2672 +++
2090 ** The new variable `delete-frame-functions' replaces `delete-frame-hook'. 2673 ** The new variable `delete-frame-functions' replaces `delete-frame-hook'.
2091 It was renamed to follow the naming conventions for abnormal hooks. The old 2674 It was renamed to follow the naming conventions for abnormal hooks. The old
2092 name remains available as an alias, but has been marked obsolete. 2675 name remains available as an alias, but has been marked obsolete.
2093 2676
2677 +++
2094 ** The `read-file-name' function now takes an additional argument which 2678 ** The `read-file-name' function now takes an additional argument which
2095 specifies a predicate which the file name read must satify. The 2679 specifies a predicate which the file name read must satify. The
2096 new variable `read-file-name-predicate' contains the predicate argument 2680 new variable `read-file-name-predicate' contains the predicate argument
2097 while reading the file name from the minibuffer; the predicate in this 2681 while reading the file name from the minibuffer; the predicate in this
2098 variable is used by read-file-name-internal to filter the completion list. 2682 variable is used by read-file-name-internal to filter the completion list.
2099 2683
2684 ---
2100 ** The new variable `read-file-name-function' can be used by lisp code 2685 ** The new variable `read-file-name-function' can be used by lisp code
2101 to override the internal read-file-name function. 2686 to override the internal read-file-name function.
2102 2687
2688 +++
2103 ** The new function `read-directory-name' can be used instead of 2689 ** The new function `read-directory-name' can be used instead of
2104 `read-file-name' to read a directory name; when used, completion 2690 `read-file-name' to read a directory name; when used, completion
2105 will only show directories. 2691 will only show directories.
2106 2692
2693 +++
2107 ** The new function `file-remote-p' tests a file name and returns 2694 ** The new function `file-remote-p' tests a file name and returns
2108 non-nil if it specifies a remote file (one that Emacs accesses using 2695 non-nil if it specifies a remote file (one that Emacs accesses using
2109 its own special methods and not directly through the file system). 2696 its own special methods and not directly through the file system).
2110 2697
2698 ---
2111 ** When a Lisp file uses CL functions at run-time, compiling the file 2699 ** When a Lisp file uses CL functions at run-time, compiling the file
2112 now issues warnings about these calls, unless the file performs 2700 now issues warnings about these calls, unless the file performs
2113 (require 'cl) when loaded. 2701 (require 'cl) when loaded.
2114 2702
2115 ** The new Lisp library fringe.el controls the apperance of fringes. 2703 +++
2116
2117 ** The `defmacro' form may contain declarations specifying how to 2704 ** The `defmacro' form may contain declarations specifying how to
2118 indent the macro in Lisp mode and how to debug it with Edebug. The 2705 indent the macro in Lisp mode and how to debug it with Edebug. The
2119 syntax of defmacro has been extended to 2706 syntax of defmacro has been extended to
2120 2707
2121 (defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...) 2708 (defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...)
2128 2715
2129 (edebug DEBUG) 2716 (edebug DEBUG)
2130 Set NAME's `edebug-form-spec' property to DEBUG. (This is 2717 Set NAME's `edebug-form-spec' property to DEBUG. (This is
2131 equivalent to writing a `def-edebug-spec' for the macro. 2718 equivalent to writing a `def-edebug-spec' for the macro.
2132 2719
2720 +++
2133 ** Interactive commands can be remapped through keymaps. 2721 ** Interactive commands can be remapped through keymaps.
2134 2722
2135 This is an alternative to using defadvice or substitute-key-definition 2723 This is an alternative to using defadvice or substitute-key-definition
2136 to modify the behavior of a key binding using the normal keymap 2724 to modify the behavior of a key binding using the normal keymap
2137 binding and lookup functionality. 2725 binding and lookup functionality.
2184 2772
2185 - The new variable `this-original-command' contains the original 2773 - The new variable `this-original-command' contains the original
2186 command before remapping. It is equal to `this-command' when the 2774 command before remapping. It is equal to `this-command' when the
2187 command was not remapped. 2775 command was not remapped.
2188 2776
2777 +++
2189 ** New variable emulation-mode-map-alists. 2778 ** New variable emulation-mode-map-alists.
2190 2779
2191 Lisp packages using many minor mode keymaps can now maintain their own 2780 Lisp packages using many minor mode keymaps can now maintain their own
2192 keymap alist separate from minor-mode-map-alist by adding their keymap 2781 keymap alist separate from minor-mode-map-alist by adding their keymap
2193 alist to this list. 2782 alist to this list.
2194 2783
2784 +++
2195 ** Atomic change groups. 2785 ** Atomic change groups.
2196 2786
2197 To perform some changes in the current buffer "atomically" so that 2787 To perform some changes in the current buffer "atomically" so that
2198 they either all succeed or are all undone, use `atomic-change-group' 2788 they either all succeed or are all undone, use `atomic-change-group'
2199 around the code that makes changes. For instance: 2789 around the code that makes changes. For instance:
2255 This variable allows you to create alternative names for text 2845 This variable allows you to create alternative names for text
2256 properties. It works at the same level as `default-text-properties', 2846 properties. It works at the same level as `default-text-properties',
2257 although it applies to overlays as well. This variable was introduced 2847 although it applies to overlays as well. This variable was introduced
2258 to implement the `font-lock-face' property. 2848 to implement the `font-lock-face' property.
2259 2849
2850 +++
2260 ** New special text property `font-lock-face'. 2851 ** New special text property `font-lock-face'.
2261 2852
2262 This property acts like the `face' property, but it is controlled by 2853 This property acts like the `face' property, but it is controlled by
2263 M-x font-lock-mode. It is not, strictly speaking, a builtin text 2854 M-x font-lock-mode. It is not, strictly speaking, a builtin text
2264 property. Instead, it is implemented inside font-core.el, using the 2855 property. Instead, it is implemented inside font-core.el, using the
2265 new variable `char-property-alias-alist'. 2856 new variable `char-property-alias-alist'.
2266 2857
2858 +++
2267 ** New function remove-list-of-text-properties. 2859 ** New function remove-list-of-text-properties.
2268 2860
2269 The new function `remove-list-of-text-properties' is almost the same 2861 The new function `remove-list-of-text-properties' is almost the same
2270 as `remove-text-properties'. The only difference is that it takes 2862 as `remove-text-properties'. The only difference is that it takes
2271 a list of property names as argument rather than a property list. 2863 a list of property names as argument rather than a property list.
2272 2864
2865 +++
2273 ** New function insert-for-yank. 2866 ** New function insert-for-yank.
2274 2867
2275 This function normally works like `insert' but removes the text 2868 This function normally works like `insert' but removes the text
2276 properties in the `yank-excluded-properties' list. However, if the 2869 properties in the `yank-excluded-properties' list. However, if the
2277 inserted text has a `yank-handler' text property on the first 2870 inserted text has a `yank-handler' text property on the first
2278 character of the string, the insertion of the text may be modified in 2871 character of the string, the insertion of the text may be modified in
2279 a number of ways. See the description of `yank-handler' below. 2872 a number of ways. See the description of `yank-handler' below.
2280 2873
2874 +++
2281 ** New function insert-buffer-substring-as-yank. 2875 ** New function insert-buffer-substring-as-yank.
2282 2876
2283 This function works like `insert-buffer-substring', but removes the 2877 This function works like `insert-buffer-substring', but removes the
2284 text properties in the `yank-excluded-properties' list. 2878 text properties in the `yank-excluded-properties' list.
2285 2879
2880 +++
2286 ** New function insert-buffer-substring-no-properties. 2881 ** New function insert-buffer-substring-no-properties.
2287 2882
2288 This function is like insert-buffer-substring, but removes all 2883 This function is like insert-buffer-substring, but removes all
2289 text properties from the inserted substring. 2884 text properties from the inserted substring.
2290 2885
2886 +++
2291 ** New `yank-handler' text property may be used to control how 2887 ** New `yank-handler' text property may be used to control how
2292 previously killed text on the kill-ring is reinserted. 2888 previously killed text on the kill-ring is reinserted.
2293 2889
2294 The value of the yank-handler property must be a list with one to five 2890 The value of the yank-handler property must be a list with one to four
2295 elements with the following format: 2891 elements with the following format:
2296 (FUNCTION PARAM NOEXCLUDE UNDO). 2892 (FUNCTION PARAM NOEXCLUDE UNDO).
2297 2893
2298 The `insert-for-yank' function looks for a yank-handler property on 2894 The `insert-for-yank' function looks for a yank-handler property on
2299 the first character on its string argument (typically the first 2895 the first character on its string argument (typically the first
2313 If UNDO is present and non-nil, it is a function that will be called 2909 If UNDO is present and non-nil, it is a function that will be called
2314 by `yank-pop' to undo the insertion of the current object. It is 2910 by `yank-pop' to undo the insertion of the current object. It is
2315 called with two arguments, the start and end of the current region. 2911 called with two arguments, the start and end of the current region.
2316 FUNCTION may set `yank-undo-function' to override the UNDO value. 2912 FUNCTION may set `yank-undo-function' to override the UNDO value.
2317 2913
2318 *** The functions kill-new, kill-append, and kill-region now has an 2914 *** The functions kill-new, kill-append, and kill-region now have an
2319 optional third argument to specify the yank-handler text property 2915 optional argument to specify the yank-handler text property to put on
2320 to put on the killed text. 2916 the killed text.
2321 2917
2322 *** The function yank-pop will now use a non-nil value of the variable 2918 *** The function yank-pop will now use a non-nil value of the variable
2323 `yank-undo-function' (instead of delete-region) to undo the previous 2919 `yank-undo-function' (instead of delete-region) to undo the previous
2324 yank or yank-pop command (or a call to insert-for-yank). The function 2920 yank or yank-pop command (or a call to insert-for-yank). The function
2325 insert-for-yank automatically sets that variable according to the UNDO 2921 insert-for-yank automatically sets that variable according to the UNDO
2326 element of the string argument's yank-handler text property if present. 2922 element of the string argument's yank-handler text property if present.
2327 2923
2924 +++
2328 ** New function display-supports-face-attributes-p may be used to test 2925 ** New function display-supports-face-attributes-p may be used to test
2329 whether a given set of face attributes is actually displayable. 2926 whether a given set of face attributes is actually displayable.
2330 2927
2331 A new predicate `supports' has also been added to the `defface' face 2928 A new predicate `supports' has also been added to the `defface' face
2332 specification language, which can be used to do this test for faces 2929 specification language, which can be used to do this test for faces
2333 defined with defface. 2930 defined with defface.
2334 2931
2932 +++
2335 ** face-attribute, face-foreground, face-background, and face-stipple now 2933 ** face-attribute, face-foreground, face-background, and face-stipple now
2336 accept a new optional argument, INHERIT, which controls how face 2934 accept a new optional argument, INHERIT, which controls how face
2337 inheritance is used when determining the value of a face attribute. 2935 inheritance is used when determining the value of a face attribute.
2338 2936
2937 +++
2339 ** New functions face-attribute-relative-p and merge-face-attribute 2938 ** New functions face-attribute-relative-p and merge-face-attribute
2340 help with handling relative face attributes. 2939 help with handling relative face attributes.
2341 2940
2941 +++
2342 ** Enhancements to process support 2942 ** Enhancements to process support
2343 2943
2344 *** Function list-processes now has an optional argument; if non-nil, 2944 *** Function list-processes now has an optional argument; if non-nil,
2345 only the processes whose query-on-exit flag is set are listed. 2945 only the processes whose query-on-exit flag is set are listed.
2346 2946
2358 and modify elements on this property list. 2958 and modify elements on this property list.
2359 2959
2360 The new low-level functions process-plist and set-process-plist are 2960 The new low-level functions process-plist and set-process-plist are
2361 used to access and replace the entire property list of a process. 2961 used to access and replace the entire property list of a process.
2362 2962
2363 2963 ???
2964 *** Adaptive read buffering of subprocess output.
2965
2966 On some systems, when emacs reads the output from a subprocess, the
2967 output data is read in very small blocks, potentially resulting in
2968 very poor performance. This behaviour can be remedied to some extent
2969 by setting the new variable process-adaptive-read-buffering to a
2970 non-nil value (the default), as it will automatically delay reading
2971 from such processes, to allowing them to produce more output before
2972 emacs tries to read it.
2973
2974 +++
2364 ** Enhanced networking support. 2975 ** Enhanced networking support.
2365 2976
2366 *** There is a new `make-network-process' function which supports 2977 *** There is a new `make-network-process' function which supports
2367 opening of stream and datagram connections to a server, as well as 2978 opening of stream and datagram connections to a server, as well as
2368 create a stream or datagram server inside emacs. 2979 create a stream or datagram server inside emacs.
2421 *** Network processes can now be stopped and restarted with 3032 *** Network processes can now be stopped and restarted with
2422 `stop-process' and `continue-process'. For a server process, no 3033 `stop-process' and `continue-process'. For a server process, no
2423 connections are accepted in the stopped state. For a client process, 3034 connections are accepted in the stopped state. For a client process,
2424 no input is received in the stopped state. 3035 no input is received in the stopped state.
2425 3036
3037 *** New function network-interface-list.
3038
3039 This function returns a list of network interface names and their
3040 current network addresses.
3041
3042 *** New function network-interface-info.
3043
3044 This function returns the network address, hardware address, current
3045 status, and other information about a specific network interface.
3046
3047 +++
2426 ** New function copy-tree. 3048 ** New function copy-tree.
2427 3049
3050 +++
2428 ** New function substring-no-properties. 3051 ** New function substring-no-properties.
2429 3052
3053 +++
2430 ** New function minibuffer-selected-window. 3054 ** New function minibuffer-selected-window.
2431 3055
3056 +++
2432 ** New function `call-process-shell-command'. 3057 ** New function `call-process-shell-command'.
2433 3058
3059 ---
2434 ** The dummy function keys made by easymenu 3060 ** The dummy function keys made by easymenu
2435 are now always lower case. If you specify the 3061 are now always lower case. If you specify the
2436 menu item name "Ada", for instance, it uses `ada' 3062 menu item name "Ada", for instance, it uses `ada'
2437 as the "key" bound by that key binding. 3063 as the "key" bound by that key binding.
2438 3064
2439 This is relevant only if Lisp code looks for 3065 This is relevant only if Lisp code looks for
2440 the bindings that were made with easymenu. 3066 the bindings that were made with easymenu.
2441 3067
3068 +++
2442 ** The function `commandp' takes an additional optional 3069 ** The function `commandp' takes an additional optional
2443 argument. If it is non-nil, then `commandp' checks 3070 argument. If it is non-nil, then `commandp' checks
2444 for a function that could be called with `call-interactively', 3071 for a function that could be called with `call-interactively',
2445 and does not return t for keyboard macros. 3072 and does not return t for keyboard macros.
2446 3073
3074 ---
2447 ** master-mode.el implements a minor mode for scrolling a slave 3075 ** master-mode.el implements a minor mode for scrolling a slave
2448 buffer without leaving your current buffer, the master buffer. 3076 buffer without leaving your current buffer, the master buffer.
2449 3077
2450 It can be used by sql.el, for example: the SQL buffer is the master 3078 It can be used by sql.el, for example: the SQL buffer is the master
2451 and its SQLi buffer is the slave. This allows you to scroll the SQLi 3079 and its SQLi buffer is the slave. This allows you to scroll the SQLi
2462 (master-set-slave sql-buffer)))) 3090 (master-set-slave sql-buffer))))
2463 (add-hook 'sql-set-sqli-hook 3091 (add-hook 'sql-set-sqli-hook
2464 (function (lambda () 3092 (function (lambda ()
2465 (master-set-slave sql-buffer)))) 3093 (master-set-slave sql-buffer))))
2466 3094
3095 +++
2467 ** File local variables. 3096 ** File local variables.
2468 3097
2469 A file local variables list cannot specify a string with text 3098 A file local variables list cannot specify a string with text
2470 properties--any specified text properties are discarded. 3099 properties--any specified text properties are discarded.
2471 3100
2473 ** New function window-body-height. 3102 ** New function window-body-height.
2474 3103
2475 This is like window-height but does not count the mode line 3104 This is like window-height but does not count the mode line
2476 or the header line. 3105 or the header line.
2477 3106
3107 +++
2478 ** New function format-mode-line. 3108 ** New function format-mode-line.
2479 3109
2480 This returns the mode-line or header-line of the selected (or a 3110 This returns the mode-line or header-line of the selected (or a
2481 specified) window as a string with or without text properties. 3111 specified) window as a string with or without text properties.
2482 3112
3113 +++
2483 ** New functions `lax-plist-get' and `lax-plist-put'. 3114 ** New functions `lax-plist-get' and `lax-plist-put'.
2484 3115
2485 These functions are like `plist-get' and `plist-put' except that they 3116 These functions are like `plist-get' and `plist-put' except that they
2486 compare the property name using `equal' rather than `eq'. 3117 compare the property name using `equal' rather than `eq'.
2487 3118
3119 +++
2488 ** New function `tool-bar-local-item-from-menu' 3120 ** New function `tool-bar-local-item-from-menu'
2489 3121
2490 The `tool-bar-add-item-from-menu' must not be used (as previously 3122 The `tool-bar-add-item-from-menu' must not be used (as previously
2491 recommended) for making entries in the tool bar for local keymaps. 3123 recommended) for making entries in the tool bar for local keymaps.
2492 Instead, use the function `tool-bar-local-item-from-menu', which lets 3124 Instead, use the function `tool-bar-local-item-from-menu', which lets
2512 ** The new frame parameter `tty-color-mode' specifies the mode to use 3144 ** The new frame parameter `tty-color-mode' specifies the mode to use
2513 for color support on character terminal frames. Its value can be a 3145 for color support on character terminal frames. Its value can be a
2514 number of colors to support, or a symbol. See the Emacs Lisp 3146 number of colors to support, or a symbol. See the Emacs Lisp
2515 Reference manual for more detailed documentation. 3147 Reference manual for more detailed documentation.
2516 3148
2517 ** Mode line display ignores text properties in the value 3149 +++
2518 of a variable whose `risky-local-variables' property is nil. 3150 ** The new mode-line construct `(:propertize ELT PROPS...)' can be
3151 used to add text properties to mode-line elements.
3152
3153 +++
3154 ** Mode line display ignores text properties as well as the
3155 :propertize and :eval forms in the value of a variable whose
3156 `risky-local-variable' property is nil.
3157
3158 +++
3159 ** The new `%i' and `%I' constructs for `mode-line-format' can be used
3160 to display the size of the accessible part of the buffer on the mode
3161 line.
2519 3162
2520 --- 3163 ---
2521 ** Indentation of simple and extended loop forms has been added to the 3164 ** Indentation of simple and extended loop forms has been added to the
2522 cl-indent package. The new user options 3165 cl-indent package. The new user options
2523 `lisp-loop-keyword-indentation', `lisp-loop-forms-indentation', and 3166 `lisp-loop-keyword-indentation', `lisp-loop-forms-indentation', and
2526 3169
2527 --- 3170 ---
2528 ** Indentation of backquoted forms has been made customizable in the 3171 ** Indentation of backquoted forms has been made customizable in the
2529 cl-indent package. See the new user option `lisp-backquote-indentation'. 3172 cl-indent package. See the new user option `lisp-backquote-indentation'.
2530 3173
3174 +++
2531 ** Already true in Emacs 21.1, but not emphasized clearly enough: 3175 ** Already true in Emacs 21.1, but not emphasized clearly enough:
2532 3176
2533 Multibyte buffers can now faithfully record all 256 character codes 3177 Multibyte buffers can now faithfully record all 256 character codes
2534 from 0 to 255. As a result, most of the past reasons to use unibyte 3178 from 0 to 255. As a result, most of the past reasons to use unibyte
2535 buffers no longer exist. We only know of three reasons to use them 3179 buffers no longer exist. We only know of three reasons to use them
2541 the time it takes to convert the format. 3185 the time it takes to convert the format.
2542 3186
2543 3. For binary files where format conversion would be pointless and 3187 3. For binary files where format conversion would be pointless and
2544 wasteful. 3188 wasteful.
2545 3189
3190 +++
2546 ** If text has a `keymap' property, that keymap takes precedence 3191 ** If text has a `keymap' property, that keymap takes precedence
2547 over minor mode keymaps. 3192 over minor mode keymaps.
2548 3193
3194 +++
2549 ** A hex escape in a string forces the string to be multibyte. 3195 ** A hex escape in a string forces the string to be multibyte.
2550 An octal escape makes it unibyte. 3196 An octal escape makes it unibyte.
2551 3197
3198 +++
2552 ** At the end of a command, point moves out from within invisible 3199 ** At the end of a command, point moves out from within invisible
2553 text, in the same way it moves out from within text covered by an 3200 text, in the same way it moves out from within text covered by an
2554 image or composition property. 3201 image or composition property.
2555 3202
2556 This makes it generally unnecessary to mark invisible text as intangible. 3203 This makes it generally unnecessary to mark invisible text as intangible.
2557 This is particularly good because the intangible property often has 3204 This is particularly good because the intangible property often has
2558 unexpected side-effects since the property applies to everything 3205 unexpected side-effects since the property applies to everything
2559 (including `goto-char', ...) whereas this new code is only run after 3206 (including `goto-char', ...) whereas this new code is only run after
2560 post-command-hook and thus does not care about intermediate states. 3207 post-command-hook and thus does not care about intermediate states.
2561
2562 ** Only one of the beginning or end of an invisible, intangible region is
2563 considered an acceptable value for point; which one is determined by
2564 examining how the invisible/intangible properties are inherited when new
2565 text is inserted adjacent to them. (The `front-sticky' and `rear-sticky'
2566 properties control this.)
2567
2568 If the invisible/intangible would be inherited by any text inserted
2569 before this region, then the position before it is considered
2570 unacceptable, and point is forced to continue (if moving forwards, to
2571 the position following the invisible/intangible text; if moving
2572 backwards, to one position before). If the properties would be
2573 inherited by any text inserted after, then the position after is
2574 considered unacceptable, and point is forced to keep moving (if moving
2575 backwards, to the position preceding the invisible/intangible text; if
2576 moving forwards, to one position later).
2577
2578 Thus, point can only go to one end of an invisible, intangible region, but
2579 not the other one. This prevents C-f and C-b from appearing to stand still
2580 on the screen.
2581
2582 You should not set it up so that both the position before and the position
2583 after are unacceptable.
2584 3208
2585 +++ 3209 +++
2586 ** field-beginning and field-end now accept an additional optional 3210 ** field-beginning and field-end now accept an additional optional
2587 argument, LIMIT. 3211 argument, LIMIT.
2588 3212
2634 --- 3258 ---
2635 ** describe-vector now takes a second argument `describer' which is 3259 ** describe-vector now takes a second argument `describer' which is
2636 called to print the entries' values. It defaults to `princ'. 3260 called to print the entries' values. It defaults to `princ'.
2637 3261
2638 ** defcustom and other custom declarations now use a default group 3262 ** defcustom and other custom declarations now use a default group
2639 (the last group defined in the same file) when no :group was given. 3263 (the last prior group defined in the same file) when no :group was given.
2640 3264
2641 +++ 3265 +++
2642 ** emacsserver now runs pre-command-hook and post-command-hook when 3266 ** emacsserver now runs pre-command-hook and post-command-hook when
2643 it receives a request from emacsclient. 3267 it receives a request from emacsclient.
2644 3268
2774 3398
2775 ** Functions y-or-n-p, read-char, read-key-sequence and the like, that 3399 ** Functions y-or-n-p, read-char, read-key-sequence and the like, that
2776 display a prompt but don't use the minibuffer, now display the prompt 3400 display a prompt but don't use the minibuffer, now display the prompt
2777 using the text properties (esp. the face) of the prompt string. 3401 using the text properties (esp. the face) of the prompt string.
2778 3402
3403 ** New function x-send-client-message sends a client message when
3404 running under X.
3405
2779 ** New packages: 3406 ** New packages:
2780 3407
2781 *** The new package gdb-ui.el provides an enhanced graphical interface to 3408 *** The new package gdb-ui.el provides an enhanced graphical interface to
2782 GDB. You can interact with GDB through the GUD buffer in the usual way, but 3409 GDB. You can interact with GDB through the GUD buffer in the usual way, but
2783 there are also further buffers which control the execution and describe the 3410 there are also further buffers which control the execution and describe the
2784 state of your program. It separates the input/output of your program from 3411 state of your program. It separates the input/output of your program from
2785 that of GDB and displays expressions and their current values in their own 3412 that of GDB and watches expressions in the speedbar. It also uses features of
2786 buffers. It also uses features of Emacs 21 such as the display margin for 3413 Emacs 21 such as the display margin for breakpoints, and the toolbar.
2787 breakpoints, and the toolbar.
2788 3414
2789 Use M-x gdba to start GDB-UI. 3415 Use M-x gdba to start GDB-UI.
2790 3416
2791 *** The new package syntax.el provides an efficient way to find the 3417 *** The new package syntax.el provides an efficient way to find the
2792 current syntactic context (as returned by parse-partial-sexp). 3418 current syntactic context (as returned by parse-partial-sexp).
5239 5865
5240 ** The function `delete' now also works with vectors and strings. 5866 ** The function `delete' now also works with vectors and strings.
5241 5867
5242 ** The meaning of the `:weakness WEAK' argument of make-hash-table 5868 ** The meaning of the `:weakness WEAK' argument of make-hash-table
5243 has been changed: WEAK can now have new values `key-or-value' and 5869 has been changed: WEAK can now have new values `key-or-value' and
5244 `key-and-value', in addition the `nil', `key', `value', and `t'. 5870 `key-and-value', in addition to `nil', `key', `value', and `t'.
5245 5871
5246 ** Function `aset' stores any multibyte character in any string 5872 ** Function `aset' stores any multibyte character in any string
5247 without signaling "Attempt to change char length of a string". It may 5873 without signaling "Attempt to change char length of a string". It may
5248 convert a unibyte string to multibyte if necessary. 5874 convert a unibyte string to multibyte if necessary.
5249 5875
7088 Additional image properties supported are: 7714 Additional image properties supported are:
7089 7715
7090 `:index INDEX' 7716 `:index INDEX'
7091 7717
7092 INDEX must be an integer >= 0. Load image number INDEX from a 7718 INDEX must be an integer >= 0. Load image number INDEX from a
7093 multi-image GIF file. An error is signaled if INDEX is too large. 7719 multi-image GIF file. If INDEX is too large, the image displays
7720 as a hollow box.
7094 7721
7095 This could be used to implement limited support for animated GIFs. 7722 This could be used to implement limited support for animated GIFs.
7096 For example, the following function displays a multi-image GIF file 7723 For example, the following function displays a multi-image GIF file
7097 at point-min in the current buffer, switching between sub-images 7724 at point-min in the current buffer, switching between sub-images
7098 every 0.1 seconds. 7725 every 0.1 seconds.
12149 12776
12150 Local variables: 12777 Local variables:
12151 mode: outline 12778 mode: outline
12152 paragraph-separate: "[ ]*$" 12779 paragraph-separate: "[ ]*$"
12153 end: 12780 end:
12781
12782 arch-tag: 1aca9dfa-2ac4-4d14-bebf-0007cee12793