aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2007-05-05 22:39:58 +0000
committerGlenn Morris2007-05-05 22:39:58 +0000
commit8ec65cd7d1b257e2d30b4467eea42bb52bb802f9 (patch)
treee20b2fc1ddbc7d22653814b9603a62ce74bb79b1
parent2aaacad4c73bd24ed43019c436c62ff46faec622 (diff)
downloademacs-8ec65cd7d1b257e2d30b4467eea42bb52bb802f9.tar.gz
emacs-8ec65cd7d1b257e2d30b4467eea42bb52bb802f9.zip
Try to rearrange by related topics, and some order of importance.
-rw-r--r--etc/NEWS3321
1 files changed, 1667 insertions, 1654 deletions
diff --git a/etc/NEWS b/etc/NEWS
index a49b67ff7f6..4e8d2eb3c78 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -41,14 +41,6 @@ Some specific packages that are known to cause problems are:
41when you run configure. This requires Gtk+ 2.4 or newer. This port 41when you run configure. This requires Gtk+ 2.4 or newer. This port
42provides a way to display multilingual text in menus (with some caveats). 42provides a way to display multilingual text in menus (with some caveats).
43 43
44** Emacs comes with a new set of icons.
45These icons are displayed on the taskbar and/or titlebar when Emacs
46runs in a graphical environment. Source files for these icons can be
47found in etc/images/icons. (You can't change the icons displayed by
48Emacs by changing these files directly. On X, the icon is compiled
49into the Emacs executable; see gnu.h in the source tree. On MS
50Windows, see nt/icons/emacs.ico.)
51
52** The Emacs Lisp Reference Manual is now part of the distribution. 44** The Emacs Lisp Reference Manual is now part of the distribution.
53 45
54The Emacs Lisp Reference Manual in Info format is built as part of the 46The Emacs Lisp Reference Manual in Info format is built as part of the
@@ -68,22 +60,14 @@ item was added to the menu bar to make it easily accessible
68You no longer need to download a separate tarball in order to build 60You no longer need to download a separate tarball in order to build
69Emacs with Leim. 61Emacs with Leim.
70 62
71** New translations of the Emacs Tutorial are available in the 63** Support for MacOS X was added.
72following languages: Brasilian Portuguese, Bulgarian, Chinese (both 64See the files mac/README and mac/INSTALL for build instructions.
73with simplified and traditional characters), French, Russian, and
74Italian. Type `C-u C-h t' to choose one of them in case your language
75setup doesn't automatically select the right one.
76
77** New translations of the Emacs reference card are available in the
78Brasilian Portuguese and Russian. The corresponding PostScript files
79are also included.
80 65
81** A French translation of the `Emacs Survival Guide' is available. 66** Mac OS 9 port now uses the Carbon API by default. You can also
67create a non-Carbon build by specifying `NonCarbon' as a target. See
68the files mac/README and mac/INSTALL for build instructions.
82 69
83** Emacs now includes support for loading image libraries on demand. 70** Support for a Cygwin build of Emacs was added.
84(Currently this feature is only used on MS Windows.) You can configure
85the supported image types and their associated dynamic libraries by
86setting the variable `image-library-alist'.
87 71
88** Support for GNU/Linux systems on X86-64 machines was added. 72** Support for GNU/Linux systems on X86-64 machines was added.
89 73
@@ -93,19 +77,17 @@ setting the variable `image-library-alist'.
93 77
94** Support for FreeBSD/Alpha has been added. 78** Support for FreeBSD/Alpha has been added.
95 79
96** Support for a Cygwin build of Emacs was added. 80** New translations of the Emacs Tutorial are available in the
97 81following languages: Brasilian Portuguese, Bulgarian, Chinese (both
98** Support for MacOS X was added. 82with simplified and traditional characters), French, Russian, and
99See the files mac/README and mac/INSTALL for build instructions. 83Italian. Type `C-u C-h t' to choose one of them in case your language
100 84setup doesn't automatically select the right one.
101** Mac OS 9 port now uses the Carbon API by default. You can also
102create a non-Carbon build by specifying `NonCarbon' as a target. See
103the files mac/README and mac/INSTALL for build instructions.
104 85
105** The `emacsserver' program has been removed, replaced with Lisp code. 86** New translations of the Emacs reference card are available in the
87Brasilian Portuguese and Russian. The corresponding PostScript files
88are also included.
106 89
107** The `yow' program has been removed. 90** A French translation of the `Emacs Survival Guide' is available.
108Use the corresponding Emacs feature instead.
109 91
110** Emacs now supports new configure options `--program-prefix', 92** Emacs now supports new configure options `--program-prefix',
111`--program-suffix' and `--program-transform-name' that affect the names of 93`--program-suffix' and `--program-transform-name' that affect the names of
@@ -119,37 +101,68 @@ to own the game scores is controlled by `--with-game-user'. If access
119to a game user is not available, then scores will be stored separately 101to a game user is not available, then scores will be stored separately
120in each user's home directory. 102in each user's home directory.
121 103
104** Emacs now includes support for loading image libraries on demand.
105(Currently this feature is only used on MS Windows.) You can configure
106the supported image types and their associated dynamic libraries by
107setting the variable `image-library-alist'.
108
122** Emacs can now be built without sound support. 109** Emacs can now be built without sound support.
123 110
124** Building with -DENABLE_CHECKING does not automatically build with union 111** Emacs Lisp source files are compressed by default if `gzip' is available.
125types any more. Add -DUSE_LISP_UNION_TYPE if you want union types.
126 112
127** When pure storage overflows while dumping, Emacs now prints how 113** All images used in Emacs have been consolidated in etc/images and subdirs.
128much pure storage it will approximately need. 114See also the changes to `find-image', documented below.
129 115
130** The script etc/emacs-buffer.gdb can be used with gdb to retrieve the 116** Emacs comes with a new set of icons.
131contents of buffers from a core dump and save them to files easily, should 117These icons are displayed on the taskbar and/or titlebar when Emacs
132Emacs crash. 118runs in a graphical environment. Source files for these icons can be
119found in etc/images/icons. (You can't change the icons displayed by
120Emacs by changing these files directly. On X, the icon is compiled
121into the Emacs executable; see gnu.h in the source tree. On MS
122Windows, see nt/icons/emacs.ico.)
123
124** The `emacsserver' program has been removed, replaced with Lisp code.
125
126** The `yow' program has been removed.
127Use the corresponding Emacs feature instead.
133 128
134** The Emacs terminal emulation in term.el uses a different terminfo name. 129** The Emacs terminal emulation in term.el uses a different terminfo name.
135The Emacs terminal emulation in term.el now uses "eterm-color" as its 130The Emacs terminal emulation in term.el now uses "eterm-color" as its
136terminfo name, since term.el now supports color. 131terminfo name, since term.el now supports color.
137 132
138** Emacs Lisp source files are compressed by default if `gzip' is available. 133** The script etc/emacs-buffer.gdb can be used with gdb to retrieve the
134contents of buffers from a core dump and save them to files easily, should
135Emacs crash.
139 136
140** All images used in Emacs have been consolidated in etc/images and subdirs. 137** Building with -DENABLE_CHECKING does not automatically build with union
141See also the changes to `find-image', documented below. 138types any more. Add -DUSE_LISP_UNION_TYPE if you want union types.
139
140** When pure storage overflows while dumping, Emacs now prints how
141much pure storage it will approximately need.
142 142
143 143
144* Startup Changes in Emacs 22.1 144* Startup Changes in Emacs 22.1
145 145
146** New command line option -Q or --quick. 146** Init file changes
147This is like using -q --no-site-file, but in addition it also disables 147If the init file ~/.emacs does not exist, Emacs will try
148the fancy startup screen. 148~/.emacs.d/init.el or ~/.emacs.d/init.elc. Likewise, if the shell init file
149~/.emacs_SHELL is not found, Emacs will try ~/.emacs.d/init_SHELL.sh.
149 150
150** New command line option -D or --basic-display. 151** Emacs can now be invoked in full-screen mode on a windowed display.
151Disables the menu-bar, the tool-bar, the scroll-bars, tool tips, and 152When Emacs is invoked on a window system, the new command-line options
152the blinking cursor. 153`--fullwidth', `--fullheight', and `--fullscreen' produce a frame
154whose width, height, or both width and height take up the entire
155screen size. (For now, this does not work with some window managers.)
156
157** Emacs now displays a splash screen by default even if command-line
158arguments were given. The new command-line option --no-splash
159disables the splash screen; see also the variable
160`inhibit-splash-screen' (which is also aliased as
161`inhibit-startup-message').
162
163** New user option `inhibit-startup-buffer-menu'.
164When loading many files, for instance with `emacs *', Emacs normally
165displays a buffer menu. This option turns the buffer menu off.
153 166
154** New command line option -nbc or --no-blinking-cursor disables 167** New command line option -nbc or --no-blinking-cursor disables
155the blinking cursor on graphical terminals. 168the blinking cursor on graphical terminals.
@@ -160,6 +173,10 @@ can start with this line:
160 173
161 #!/usr/bin/emacs --script 174 #!/usr/bin/emacs --script
162 175
176** The -f option, used from the command line to call a function,
177now reads arguments for the function interactively if it is
178an interactively callable function.
179
163** The option --directory DIR now modifies `load-path' immediately. 180** The option --directory DIR now modifies `load-path' immediately.
164Directories are added to the front of `load-path' in the order they 181Directories are added to the front of `load-path' in the order they
165appear on the command line. For example, with this command line: 182appear on the command line. For example, with this command line:
@@ -169,16 +186,6 @@ appear on the command line. For example, with this command line:
169Emacs looks for library `foo' in the parent directory, then in /tmp, then 186Emacs looks for library `foo' in the parent directory, then in /tmp, then
170in the other directories in `load-path'. (-L is short for --directory.) 187in the other directories in `load-path'. (-L is short for --directory.)
171 188
172** The command line option --no-windows has been changed to
173--no-window-system. The old one still works, but is deprecated.
174
175** If the environment variable DISPLAY specifies an unreachable X display,
176Emacs will now startup as if invoked with the --no-window-system option.
177
178** The -f option, used from the command line to call a function,
179now reads arguments for the function interactively if it is
180an interactively callable function.
181
182** When you specify a frame size with --geometry, the size applies to 189** When you specify a frame size with --geometry, the size applies to
183all frames you create. A position specified with --geometry only 190all frames you create. A position specified with --geometry only
184affects the initial frame. 191affects the initial frame.
@@ -189,30 +196,11 @@ with respect to its frame position: if you don't specify a position
189command-line option), Emacs leaves the frame position to the Windows' 196command-line option), Emacs leaves the frame position to the Windows'
190window manager. 197window manager.
191 198
192** Emacs can now be invoked in full-screen mode on a windowed display. 199** The command line option --no-windows has been changed to
193When Emacs is invoked on a window system, the new command-line options 200--no-window-system. The old one still works, but is deprecated.
194`--fullwidth', `--fullheight', and `--fullscreen' produce a frame
195whose width, height, or both width and height take up the entire
196screen size. (For now, this does not work with some window managers.)
197
198** Emacs now displays a splash screen by default even if command-line
199arguments were given. The new command-line option --no-splash
200disables the splash screen; see also the variable
201`inhibit-splash-screen' (which is also aliased as
202`inhibit-startup-message').
203
204** The default is now to use a bitmap as the icon.
205The command-line options --icon-type, -i have been replaced with
206options --no-bitmap-icon, -nbi to turn the bitmap icon off.
207
208** New user option `inhibit-startup-buffer-menu'.
209When loading many files, for instance with `emacs *', Emacs normally
210displays a buffer menu. This option turns the buffer menu off.
211 201
212** Init file changes 202** If the environment variable DISPLAY specifies an unreachable X display,
213If the init file ~/.emacs does not exist, Emacs will try 203Emacs will now startup as if invoked with the --no-window-system option.
214~/.emacs.d/init.el or ~/.emacs.d/init.elc. Likewise, if the shell init file
215~/.emacs_SHELL is not found, Emacs will try ~/.emacs.d/init_SHELL.sh.
216 204
217** Emacs now reads the standard abbrevs file ~/.abbrev_defs 205** Emacs now reads the standard abbrevs file ~/.abbrev_defs
218automatically at startup, if it exists. When Emacs offers to save 206automatically at startup, if it exists. When Emacs offers to save
@@ -220,6 +208,18 @@ modified buffers, it saves the abbrevs too if they have changed. It
220can do this either silently or asking for confirmation first, 208can do this either silently or asking for confirmation first,
221according to the value of `save-abbrevs'. 209according to the value of `save-abbrevs'.
222 210
211** New command line option -Q or --quick.
212This is like using -q --no-site-file, but in addition it also disables
213the fancy startup screen.
214
215** New command line option -D or --basic-display.
216Disables the menu-bar, the tool-bar, the scroll-bars, tool tips, and
217the blinking cursor.
218
219** The default is now to use a bitmap as the icon.
220The command-line options --icon-type, -i have been replaced with
221options --no-bitmap-icon, -nbi to turn the bitmap icon off.
222
223** If the environment variable EMAIL is defined, Emacs now uses its value 223** If the environment variable EMAIL is defined, Emacs now uses its value
224to compute the default value of `user-mail-address', in preference to 224to compute the default value of `user-mail-address', in preference to
225concatenation of `user-login-name' with the name of your host machine. 225concatenation of `user-login-name' with the name of your host machine.
@@ -231,6 +231,24 @@ concatenation of `user-login-name' with the name of your host machine.
231 231
232See below for more details. 232See below for more details.
233 233
234** When the undo information of the current command gets really large
235(beyond the value of `undo-outer-limit'), Emacs discards it and warns
236you about it.
237
238** When Emacs prompts for file names, SPC no longer completes the file name.
239This is so filenames with embedded spaces could be input without the
240need to quote the space with a C-q. The underlying changes in the
241keymaps that are active in the minibuffer are described below under
242"New keymaps for typing file names".
243
244** The completion commands TAB, SPC and ? in the minibuffer apply only
245to the text before point. If there is text in the buffer after point,
246it remains unchanged.
247
248** In incremental search, C-w is changed. M-%, C-M-w and C-M-y are special.
249
250See below under "incremental search changes".
251
234** M-g is now a prefix key. 252** M-g is now a prefix key.
235M-g g and M-g M-g run goto-line. 253M-g g and M-g M-g run goto-line.
236M-g n and M-g M-n run next-error (like C-x `). 254M-g n and M-g M-n run next-error (like C-x `).
@@ -245,24 +263,6 @@ point then it acts as the default argument for the minibuffer.
245** M-o now is the prefix key for setting text properties; 263** M-o now is the prefix key for setting text properties;
246M-o M-o requests refontification. 264M-o M-o requests refontification.
247 265
248** The old bindings C-M-delete and C-M-backspace have been deleted,
249since there are situations where one or the other will shut down
250the operating system or your X server.
251
252** When the undo information of the current command gets really large
253(beyond the value of `undo-outer-limit'), Emacs discards it and warns
254you about it.
255
256** In incremental search, C-w is changed. M-%, C-M-w and C-M-y are special.
257
258See below under "incremental search changes".
259
260** When Emacs prompts for file names, SPC no longer completes the file name.
261This is so filenames with embedded spaces could be input without the
262need to quote the space with a C-q. The underlying changes in the
263keymaps that are active in the minibuffer are described below under
264"New keymaps for typing file names".
265
266** C-x C-f RET (find-file), typing nothing in the minibuffer, is no longer 266** C-x C-f RET (find-file), typing nothing in the minibuffer, is no longer
267a special case. 267a special case.
268 268
@@ -273,10 +273,6 @@ directory with Dired.
273You can get the old behavior by typing C-x C-f M-n RET, which fetches 273You can get the old behavior by typing C-x C-f M-n RET, which fetches
274the actual file name into the minibuffer. 274the actual file name into the minibuffer.
275 275
276** The completion commands TAB, SPC and ? in the minibuffer apply only
277to the text before point. If there is text in the buffer after point,
278it remains unchanged.
279
280** In Dired's ! command (dired-do-shell-command), `*' and `?' now 276** In Dired's ! command (dired-do-shell-command), `*' and `?' now
281control substitution of the file names only when they are surrounded 277control substitution of the file names only when they are surrounded
282by whitespace. This means you can now use them as shell wildcards 278by whitespace. This means you can now use them as shell wildcards
@@ -300,6 +296,10 @@ in the region, rather than on all complete lines in the region.
300** Adaptive filling misfeature removed. 296** Adaptive filling misfeature removed.
301It no longer treats `NNN.' or `(NNN)' as a prefix. 297It no longer treats `NNN.' or `(NNN)' as a prefix.
302 298
299** The old bindings C-M-delete and C-M-backspace have been deleted,
300since there are situations where one or the other will shut down
301the operating system or your X server.
302
303** The register compatibility key bindings (deprecated since Emacs 19) 303** The register compatibility key bindings (deprecated since Emacs 19)
304have been removed: 304have been removed:
305 C-x / point-to-register (Use: C-x r SPC) 305 C-x / point-to-register (Use: C-x r SPC)
@@ -310,6 +310,9 @@ have been removed:
310 310
311* Editing Changes in Emacs 22.1 311* Editing Changes in Emacs 22.1
312 312
313** The max size of buffers and integers has been doubled.
314On 32bit machines, it is now 256M (i.e. 268435455).
315
313** !MEM FULL! at the start of the mode line indicates that Emacs 316** !MEM FULL! at the start of the mode line indicates that Emacs
314cannot get any more memory for Lisp data. This often means it could 317cannot get any more memory for Lisp data. This often means it could
315crash soon if you do things that use more memory. On most systems, 318crash soon if you do things that use more memory. On most systems,
@@ -317,34 +320,31 @@ killing buffers will get out of this state. If killing buffers does
317not make !MEM FULL! disappear, you should save your work and start 320not make !MEM FULL! disappear, you should save your work and start
318a new Emacs. 321a new Emacs.
319 322
320** The max size of buffers and integers has been doubled. 323** `undo-only' does an undo which does not redo any previous undo.
321On 32bit machines, it is now 256M (i.e. 268435455).
322 324
323** You can now switch buffers in a cyclic order with C-x C-left 325** Yanking text now discards certain text properties that can
324(previous-buffer) and C-x C-right (next-buffer). C-x left and 326be inconvenient when you did not expect them. The variable
325C-x right can be used as well. The functions keep a different buffer 327`yank-excluded-properties' specifies which ones. Insertion
326cycle for each frame, using the frame-local buffer list. 328of register contents and rectangles also discards these properties.
327 329
328** `undo-only' does an undo which does not redo any previous undo. 330** New command `kill-whole-line' kills an entire line at once.
331By default, it is bound to C-S-<backspace>.
329 332
330** M-SPC (just-one-space) when given a numeric argument N 333** M-SPC (just-one-space) when given a numeric argument N
331converts whitespace around point to N spaces. 334converts whitespace around point to N spaces.
332 335
336** You can now switch buffers in a cyclic order with C-x C-left
337(previous-buffer) and C-x C-right (next-buffer). C-x left and
338C-x right can be used as well. The functions keep a different buffer
339cycle for each frame, using the frame-local buffer list.
340
333** C-x 5 C-o displays a specified buffer in another frame 341** C-x 5 C-o displays a specified buffer in another frame
334but does not switch to that frame. It's the multi-frame 342but does not switch to that frame. It's the multi-frame
335analogue of C-x 4 C-o. 343analogue of C-x 4 C-o.
336 344
337** New command `kill-whole-line' kills an entire line at once. 345** `special-display-buffer-names' and `special-display-regexps' now
338By default, it is bound to C-S-<backspace>. 346understand two new boolean pseudo-frame-parameters `same-frame' and
339 347`same-window'.
340** Yanking text now discards certain text properties that can
341be inconvenient when you did not expect them. The variable
342`yank-excluded-properties' specifies which ones. Insertion
343of register contents and rectangles also discards these properties.
344
345** The default values of paragraph-start and indent-line-function have
346been changed to reflect those used in Text mode rather than those used
347in Indented-Text mode.
348 348
349** New commands to operate on pairs of open and close characters: 349** New commands to operate on pairs of open and close characters:
350`insert-pair', `delete-pair', `raise-sexp'. 350`insert-pair', `delete-pair', `raise-sexp'.
@@ -355,58 +355,13 @@ Substrings of the form `$foo' and `${foo}' in the specified new value
355now refer to the value of environment variable foo. To include a `$' 355now refer to the value of environment variable foo. To include a `$'
356in the value, use `$$'. 356in the value, use `$$'.
357 357
358** `special-display-buffer-names' and `special-display-regexps' now 358** The default values of paragraph-start and indent-line-function have
359understand two new boolean pseudo-frame-parameters `same-frame' and 359been changed to reflect those used in Text mode rather than those used
360`same-window'. 360in Indented-Text mode.
361 361
362** The default for the paper size (variable ps-paper-type) is taken 362** The default for the paper size (variable ps-paper-type) is taken
363from the locale. 363from the locale.
364 364
365** Mark command changes:
366
367*** A prefix argument is no longer required to repeat a jump to a
368previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the
369mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump.
370
371*** Marking commands extend the region when invoked multiple times.
372
373If you type C-M-SPC (mark-sexp), M-@ (mark-word), M-h
374(mark-paragraph), or C-M-h (mark-defun) repeatedly, the marked region
375extends each time, so you can mark the next two sexps with M-C-SPC
376M-C-SPC, for example. This feature also works for
377mark-end-of-sentence, if you bind that to a key. It also extends the
378region when the mark is active in Transient Mark mode, regardless of
379the last command. To start a new region with one of marking commands
380in Transient Mark mode, you can deactivate the active region with C-g,
381or set the new mark with C-SPC.
382
383*** M-h (mark-paragraph) now accepts a prefix arg.
384
385With positive arg, M-h marks the current and the following paragraphs;
386if the arg is negative, it marks the current and the preceding
387paragraphs.
388
389*** Some commands do something special in Transient Mark mode when the
390mark is active--for instance, they limit their operation to the
391region. Even if you don't normally use Transient Mark mode, you might
392want to get this behavior from a particular command. There are two
393ways you can enable Transient Mark mode and activate the mark, for one
394command only.
395
396One method is to type C-SPC C-SPC; this enables Transient Mark mode
397and sets the mark at point. The other method is to type C-u C-x C-x.
398This enables Transient Mark mode temporarily but does not alter the
399mark or the region.
400
401After these commands, Transient Mark mode remains enabled until you
402deactivate the mark. That typically happens when you type a command
403that alters the buffer, but you can also deactivate the mark by typing
404C-g.
405
406*** Movement commands `beginning-of-buffer', `end-of-buffer',
407`beginning-of-defun', `end-of-defun' do not set the mark if the mark
408is already active in Transient Mark mode.
409
410** Help command changes: 365** Help command changes:
411 366
412*** Changes in C-h bindings: 367*** Changes in C-h bindings:
@@ -442,6 +397,18 @@ to new-kill-line, these commands now report:
442- C-h w and C-h f new-kill-line reports: 397- C-h w and C-h f new-kill-line reports:
443 new-kill-line is on C-k 398 new-kill-line is on C-k
444 399
400*** The apropos commands now accept a list of words to match.
401When more than one word is specified, at least two of those words must
402be present for an item to match. Regular expression matching is still
403available.
404
405*** The new option `apropos-sort-by-scores' causes the matching items
406to be sorted according to their score. The score for an item is a
407number calculated to indicate how well the item matches the words or
408regular expression that you entered to the apropos command. The best
409match is listed first, and the calculated score is shown for each
410matching item.
411
445*** Help commands `describe-function' and `describe-key' now show function 412*** Help commands `describe-function' and `describe-key' now show function
446arguments in lowercase italics on displays that support it. To change the 413arguments in lowercase italics on displays that support it. To change the
447default, customize face `help-argument-name' or redefine the function 414default, customize face `help-argument-name' or redefine the function
@@ -481,25 +448,56 @@ point-over, after suitable idle time. The amount of idle time is
481determined by the user option `help-at-pt-timer-delay' and defaults 448determined by the user option `help-at-pt-timer-delay' and defaults
482to one second. This feature is turned off by default. 449to one second. This feature is turned off by default.
483 450
484*** The apropos commands now accept a list of words to match. 451** Mark command changes:
485When more than one word is specified, at least two of those words must
486be present for an item to match. Regular expression matching is still
487available.
488 452
489*** The new option `apropos-sort-by-scores' causes the matching items 453*** A prefix argument is no longer required to repeat a jump to a
490to be sorted according to their score. The score for an item is a 454previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the
491number calculated to indicate how well the item matches the words or 455mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump.
492regular expression that you entered to the apropos command. The best 456
493match is listed first, and the calculated score is shown for each 457*** Marking commands extend the region when invoked multiple times.
494matching item. 458
459If you type C-M-SPC (mark-sexp), M-@ (mark-word), M-h
460(mark-paragraph), or C-M-h (mark-defun) repeatedly, the marked region
461extends each time, so you can mark the next two sexps with M-C-SPC
462M-C-SPC, for example. This feature also works for
463mark-end-of-sentence, if you bind that to a key. It also extends the
464region when the mark is active in Transient Mark mode, regardless of
465the last command. To start a new region with one of marking commands
466in Transient Mark mode, you can deactivate the active region with C-g,
467or set the new mark with C-SPC.
468
469*** Some commands do something special in Transient Mark mode when the
470mark is active--for instance, they limit their operation to the
471region. Even if you don't normally use Transient Mark mode, you might
472want to get this behavior from a particular command. There are two
473ways you can enable Transient Mark mode and activate the mark, for one
474command only.
475
476One method is to type C-SPC C-SPC; this enables Transient Mark mode
477and sets the mark at point. The other method is to type C-u C-x C-x.
478This enables Transient Mark mode temporarily but does not alter the
479mark or the region.
480
481After these commands, Transient Mark mode remains enabled until you
482deactivate the mark. That typically happens when you type a command
483that alters the buffer, but you can also deactivate the mark by typing
484C-g.
485
486*** Movement commands `beginning-of-buffer', `end-of-buffer',
487`beginning-of-defun', `end-of-defun' do not set the mark if the mark
488is already active in Transient Mark mode.
489
490*** M-h (mark-paragraph) now accepts a prefix arg.
491
492With positive arg, M-h marks the current and the following paragraphs;
493if the arg is negative, it marks the current and the preceding
494paragraphs.
495 495
496** Incremental Search changes: 496** Incremental Search changes:
497 497
498*** Vertical scrolling is now possible within incremental search. 498*** M-% typed in isearch mode invokes `query-replace' or
499To enable this feature, customize the new user option 499`query-replace-regexp' (depending on search mode) with the current
500`isearch-allow-scroll'. User written commands which satisfy stringent 500search string used as the string to replace.
501constraints can be marked as "scrolling commands". See the Emacs manual
502for details.
503 501
504*** C-w in incremental search now grabs either a character or a word, 502*** C-w in incremental search now grabs either a character or a word,
505making the decision in a heuristic way. This new job is done by the 503making the decision in a heuristic way. This new job is done by the
@@ -513,9 +511,11 @@ at the end of a line.
513Another method to grab a character is to enter the minibuffer by `M-e' 511Another method to grab a character is to enter the minibuffer by `M-e'
514and to type `C-f' at the end of the search string in the minibuffer. 512and to type `C-f' at the end of the search string in the minibuffer.
515 513
516*** M-% typed in isearch mode invokes `query-replace' or 514*** Vertical scrolling is now possible within incremental search.
517`query-replace-regexp' (depending on search mode) with the current 515To enable this feature, customize the new user option
518search string used as the string to replace. 516`isearch-allow-scroll'. User written commands which satisfy stringent
517constraints can be marked as "scrolling commands". See the Emacs manual
518for details.
519 519
520*** Isearch no longer adds `isearch-resume' commands to the command 520*** Isearch no longer adds `isearch-resume' commands to the command
521history by default. To enable this feature, customize the new 521history by default. To enable this feature, customize the new
@@ -523,10 +523,6 @@ user option `isearch-resume-in-command-history'.
523 523
524** Replace command changes: 524** Replace command changes:
525 525
526*** New user option `query-replace-skip-read-only': when non-nil,
527`query-replace' and related functions simply ignore
528a match if part of it has a read-only property.
529
530*** When used interactively, the commands `query-replace-regexp' and 526*** When used interactively, the commands `query-replace-regexp' and
531`replace-regexp' allow \,expr to be used in a replacement string, 527`replace-regexp' allow \,expr to be used in a replacement string,
532where expr is an arbitrary Lisp expression evaluated at replacement 528where expr is an arbitrary Lisp expression evaluated at replacement
@@ -543,15 +539,11 @@ deprecated since it offers no additional functionality.
543*** The current match in query-replace is highlighted in new face 539*** The current match in query-replace is highlighted in new face
544`query-replace' which by default inherits from isearch face. 540`query-replace' which by default inherits from isearch face.
545 541
546** Local variables lists: 542*** New user option `query-replace-skip-read-only': when non-nil,
547 543`query-replace' and related functions simply ignore
548*** In processing a local variables list, Emacs strips the prefix and 544a match if part of it has a read-only property.
549suffix from every line before processing all the lines.
550
551*** Text properties in local variables.
552 545
553A file local variables list cannot specify a string with text 546** Local variables lists:
554properties--any specified text properties are discarded.
555 547
556*** If the local variables list contains any variable-value pairs that 548*** If the local variables list contains any variable-value pairs that
557are not known to be safe, Emacs shows a prompt asking whether to apply 549are not known to be safe, Emacs shows a prompt asking whether to apply
@@ -589,6 +581,14 @@ with the form as argument, and if any returns t, the form is ok to call.
589If the form is not "ok to call", that means Emacs asks for 581If the form is not "ok to call", that means Emacs asks for
590confirmation as before. 582confirmation as before.
591 583
584*** In processing a local variables list, Emacs strips the prefix and
585suffix from every line before processing all the lines.
586
587*** Text properties in local variables.
588
589A file local variables list cannot specify a string with text
590properties--any specified text properties are discarded.
591
592** File operation changes: 592** File operation changes:
593 593
594*** Unquoted `$' in file names do not signal an error any more when 594*** Unquoted `$' in file names do not signal an error any more when
@@ -596,29 +596,20 @@ the corresponding environment variable does not exist.
596Instead, the `$ENVVAR' text is left as is, so that `$$' quoting 596Instead, the `$ENVVAR' text is left as is, so that `$$' quoting
597is only rarely needed. 597is only rarely needed.
598 598
599*** find-file-read-only visits multiple files in read-only mode,
600when the file name contains wildcard characters.
601
602*** find-alternate-file replaces the current file with multiple files,
603when the file name contains wildcard characters. It now asks if you
604wish save your changes and not just offer to kill the buffer.
605
606*** Auto Compression mode is now enabled by default.
607
608*** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case. 599*** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case.
609 600
610Since the default input is the current directory, this has the effect 601Since the default input is the current directory, this has the effect
611of specifying the current directory. Normally that means to visit the 602of specifying the current directory. Normally that means to visit the
612directory with Dired. 603directory with Dired.
613 604
614*** When you are root, and you visit a file whose modes specify
615read-only, the Emacs buffer is now read-only too. Type C-x C-q if you
616want to make the buffer writable. (As root, you can in fact alter the
617file.)
618
619*** C-x s (save-some-buffers) now offers an option `d' to diff a buffer 605*** C-x s (save-some-buffers) now offers an option `d' to diff a buffer
620against its file, so you can see what changes you would be saving. 606against its file, so you can see what changes you would be saving.
621 607
608*** Auto Compression mode is now enabled by default.
609
610*** If the user visits a file larger than `large-file-warning-threshold',
611Emacs asks for confirmation.
612
622*** The commands copy-file, rename-file, make-symbolic-link and 613*** The commands copy-file, rename-file, make-symbolic-link and
623add-name-to-file, when given a directory as the "new name" argument, 614add-name-to-file, when given a directory as the "new name" argument,
624convert it to a file name by merging in the within-directory part of 615convert it to a file name by merging in the within-directory part of
@@ -626,22 +617,6 @@ the existing file's name. (This is the same convention that shell
626commands cp, mv, and ln follow.) Thus, M-x copy-file RET ~/foo RET 617commands cp, mv, and ln follow.) Thus, M-x copy-file RET ~/foo RET
627/tmp RET copies ~/foo to /tmp/foo. 618/tmp RET copies ~/foo to /tmp/foo.
628 619
629*** When used interactively, `format-write-file' now asks for confirmation
630before overwriting an existing file, unless a prefix argument is
631supplied. This behavior is analogous to `write-file'.
632
633*** The variable `auto-save-file-name-transforms' now has a third element that
634controls whether or not the function `make-auto-save-file-name' will
635attempt to construct a unique auto-save name (e.g. for remote files).
636
637*** The new option `write-region-inhibit-fsync' disables calls to fsync
638in `write-region'. This can be useful on laptops to avoid spinning up
639the hard drive upon each file save. Enabling this variable may result
640in data loss, use with care.
641
642*** If the user visits a file larger than `large-file-warning-threshold',
643Emacs asks for confirmation.
644
645*** require-final-newline now has two new possible values: 620*** require-final-newline now has two new possible values:
646 621
647`visit' means add a newline (as an undoable change) if it's needed 622`visit' means add a newline (as an undoable change) if it's needed
@@ -658,8 +633,37 @@ sets require-final-newline based on mode-require-final-newline.
658So you can customize mode-require-final-newline to control what these 633So you can customize mode-require-final-newline to control what these
659modes do. 634modes do.
660 635
636*** When you are root, and you visit a file whose modes specify
637read-only, the Emacs buffer is now read-only too. Type C-x C-q if you
638want to make the buffer writable. (As root, you can in fact alter the
639file.)
640
641*** find-file-read-only visits multiple files in read-only mode,
642when the file name contains wildcard characters.
643
644*** find-alternate-file replaces the current file with multiple files,
645when the file name contains wildcard characters. It now asks if you
646wish save your changes and not just offer to kill the buffer.
647
648*** When used interactively, `format-write-file' now asks for confirmation
649before overwriting an existing file, unless a prefix argument is
650supplied. This behavior is analogous to `write-file'.
651
652*** The variable `auto-save-file-name-transforms' now has a third element that
653controls whether or not the function `make-auto-save-file-name' will
654attempt to construct a unique auto-save name (e.g. for remote files).
655
656*** The new option `write-region-inhibit-fsync' disables calls to fsync
657in `write-region'. This can be useful on laptops to avoid spinning up
658the hard drive upon each file save. Enabling this variable may result
659in data loss, use with care.
660
661** Minibuffer changes: 661** Minibuffer changes:
662 662
663*** The completion commands TAB, SPC and ? in the minibuffer apply only
664to the text before point. If there is text in the buffer after point,
665it remains unchanged.
666
663*** The new file-name-shadow-mode is turned ON by default, so that when 667*** The new file-name-shadow-mode is turned ON by default, so that when
664entering a file name, any prefix which Emacs will ignore is dimmed. 668entering a file name, any prefix which Emacs will ignore is dimmed.
665 669
@@ -695,59 +699,12 @@ completing file names. Elements of `completion-ignored-extensions'
695which do not end in a slash are never considered when a completion 699which do not end in a slash are never considered when a completion
696candidate is a directory. 700candidate is a directory.
697 701
698*** The completion commands TAB, SPC and ? in the minibuffer apply only
699to the text before point. If there is text in the buffer after point,
700it remains unchanged.
701
702*** New user option `history-delete-duplicates'. 702*** New user option `history-delete-duplicates'.
703If set to t when adding a new history element, all previous identical 703If set to t when adding a new history element, all previous identical
704elements are deleted from the history list. 704elements are deleted from the history list.
705 705
706** Redisplay changes: 706** Redisplay changes:
707 707
708*** Preemptive redisplay now adapts to current load and bandwidth.
709
710To avoid preempting redisplay on fast computers, networks, and displays,
711the arrival of new input is now performed at regular intervals during
712redisplay. The new variable `redisplay-preemption-period' specifies
713the period; the default is to check for input every 0.1 seconds.
714
715*** The mode line position information now comes before the major mode.
716When the file is maintained under version control, that information
717appears between the position information and the major mode.
718
719*** New face `escape-glyph' highlights control characters and escape glyphs.
720
721*** Non-breaking space and hyphens are now displayed with a special
722face, either nobreak-space or escape-glyph. You can turn this off or
723specify a different mode by setting the variable `nobreak-char-display'.
724
725*** The parameters of automatic hscrolling can now be customized.
726The variable `hscroll-margin' determines how many columns away from
727the window edge point is allowed to get before automatic hscrolling
728will horizontally scroll the window. The default value is 5.
729
730The variable `hscroll-step' determines how many columns automatic
731hscrolling scrolls the window when point gets too close to the
732window edge. If its value is zero, the default, Emacs scrolls the
733window so as to center point. If its value is an integer, it says how
734many columns to scroll. If the value is a floating-point number, it
735gives the fraction of the window's width to scroll the window.
736
737The variable `automatic-hscrolling' was renamed to
738`auto-hscroll-mode'. The old name is still available as an alias.
739
740*** Moving or scrolling through images (and other lines) taller than
741the window now works sensibly, by automatically adjusting the window's
742vscroll property.
743
744*** New customize option `overline-margin' controls the space between
745overline and text.
746
747*** New variable `x-underline-at-descent-line' controls the relative
748position of the underline. When set, it overrides the
749`x-use-underline-position-properties' variables.
750
751*** The new face `mode-line-inactive' is used to display the mode line 708*** The new face `mode-line-inactive' is used to display the mode line
752of non-selected windows. The `mode-line' face is now used to display 709of non-selected windows. The `mode-line' face is now used to display
753the mode line of the currently selected window. 710the mode line of the currently selected window.
@@ -755,6 +712,10 @@ the mode line of the currently selected window.
755The new variable `mode-line-in-non-selected-windows' controls whether 712The new variable `mode-line-in-non-selected-windows' controls whether
756the `mode-line-inactive' face is used. 713the `mode-line-inactive' face is used.
757 714
715*** The mode line position information now comes before the major mode.
716When the file is maintained under version control, that information
717appears between the position information and the major mode.
718
758*** You can now customize the use of window fringes. To control this 719*** You can now customize the use of window fringes. To control this
759for all frames, use M-x fringe-mode or the Show/Hide submenu of the 720for all frames, use M-x fringe-mode or the Show/Hide submenu of the
760top-level Options menu, or customize the `fringe-mode' variable. To 721top-level Options menu, or customize the `fringe-mode' variable. To
@@ -789,10 +750,6 @@ cursor will be displayed in the fringe when positioned on that newline.
789The new user option 'overflow-newline-into-fringe' can be set to nil to 750The new user option 'overflow-newline-into-fringe' can be set to nil to
790revert to the old behavior of continuing such lines. 751revert to the old behavior of continuing such lines.
791 752
792*** When a window has display margin areas, the fringes are now
793displayed between the margins and the buffer's text area, rather than
794outside those margins.
795
796*** A window can now have individual fringe and scroll-bar settings, 753*** A window can now have individual fringe and scroll-bar settings,
797in addition to the individual display margin settings. 754in addition to the individual display margin settings.
798 755
@@ -800,6 +757,42 @@ Such individual settings are now preserved when windows are split
800horizontally or vertically, a saved window configuration is restored, 757horizontally or vertically, a saved window configuration is restored,
801or when the frame is resized. 758or when the frame is resized.
802 759
760*** When a window has display margin areas, the fringes are now
761displayed between the margins and the buffer's text area, rather than
762outside those margins.
763
764*** New face `escape-glyph' highlights control characters and escape glyphs.
765
766*** Non-breaking space and hyphens are now displayed with a special
767face, either nobreak-space or escape-glyph. You can turn this off or
768specify a different mode by setting the variable `nobreak-char-display'.
769
770*** The parameters of automatic hscrolling can now be customized.
771The variable `hscroll-margin' determines how many columns away from
772the window edge point is allowed to get before automatic hscrolling
773will horizontally scroll the window. The default value is 5.
774
775The variable `hscroll-step' determines how many columns automatic
776hscrolling scrolls the window when point gets too close to the
777window edge. If its value is zero, the default, Emacs scrolls the
778window so as to center point. If its value is an integer, it says how
779many columns to scroll. If the value is a floating-point number, it
780gives the fraction of the window's width to scroll the window.
781
782The variable `automatic-hscrolling' was renamed to
783`auto-hscroll-mode'. The old name is still available as an alias.
784
785*** Moving or scrolling through images (and other lines) taller than
786the window now works sensibly, by automatically adjusting the window's
787vscroll property.
788
789*** Preemptive redisplay now adapts to current load and bandwidth.
790
791To avoid preempting redisplay on fast computers, networks, and displays,
792the arrival of new input is now performed at regular intervals during
793redisplay. The new variable `redisplay-preemption-period' specifies
794the period; the default is to check for input every 0.1 seconds.
795
803*** The %c and %l constructs are now ignored in frame-title-format. 796*** The %c and %l constructs are now ignored in frame-title-format.
804Due to technical limitations in how Emacs interacts with windowing 797Due to technical limitations in how Emacs interacts with windowing
805systems, these constructs often failed to render properly, and could 798systems, these constructs often failed to render properly, and could
@@ -809,27 +802,12 @@ even cause Emacs to crash.
809will expand as needed, but not contract automatically. To contract 802will expand as needed, but not contract automatically. To contract
810the tool bar, you must type C-l. 803the tool bar, you must type C-l.
811 804
812** Cursor display changes: 805*** New customize option `overline-margin' controls the space between
813 806overline and text.
814*** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is
815now controlled by the variable `blink-cursor-alist'.
816
817*** The X resource cursorBlink can be used to turn off cursor blinking.
818
819*** Emacs can produce an underscore-like (horizontal bar) cursor.
820The underscore cursor is set by putting `(cursor-type . hbar)' in
821default-frame-alist. It supports variable heights, like the `bar'
822cursor does.
823
824*** Display of hollow cursors now obeys the buffer-local value (if any)
825of `cursor-in-non-selected-windows' in the buffer that the cursor
826appears in.
827
828*** The variable `cursor-in-non-selected-windows' can now be set to any
829of the recognized cursor types.
830 807
831*** On text terminals, the variable `visible-cursor' controls whether Emacs 808*** New variable `x-underline-at-descent-line' controls the relative
832uses the "very visible" cursor (the default) or the normal cursor. 809position of the underline. When set, it overrides the
810`x-use-underline-position-properties' variables.
833 811
834** New faces: 812** New faces:
835 813
@@ -851,9 +829,6 @@ so package-specific faces can inherit from it.
851 829
852** Font-Lock (syntax highlighting) changes: 830** Font-Lock (syntax highlighting) changes:
853 831
854*** M-o now is the prefix key for setting text properties;
855M-o M-o requests refontification.
856
857*** All modes now support using M-x font-lock-mode to toggle 832*** All modes now support using M-x font-lock-mode to toggle
858fontification, even those such as Occur, Info, and comint-derived 833fontification, even those such as Occur, Info, and comint-derived
859modes that do their own fontification in a special way. 834modes that do their own fontification in a special way.
@@ -862,22 +837,25 @@ The variable `Info-fontify' is no longer applicable; to disable
862fontification in Info, remove `turn-on-font-lock' from 837fontification in Info, remove `turn-on-font-lock' from
863`Info-mode-hook'. 838`Info-mode-hook'.
864 839
865*** Font-Lock mode: in major modes such as Lisp mode, where some Emacs 840*** New standard font-lock face `font-lock-comment-delimiter-face'.
866features assume that an open-paren in column 0 is always outside of
867any string or comment, Font-Lock now highlights any such open-paren in
868bold-red if it is inside a string or a comment, to indicate that it
869can cause trouble. You should rewrite the string or comment so that
870the open-paren is not in column 0.
871 841
872*** New standard font-lock face `font-lock-preprocessor-face'. 842*** New standard font-lock face `font-lock-preprocessor-face'.
873 843
874*** New standard font-lock face `font-lock-comment-delimiter-face'.
875
876*** Easy to overlook single character negation can now be font-locked. 844*** Easy to overlook single character negation can now be font-locked.
877You can use the new variable `font-lock-negation-char-face' and the face of 845You can use the new variable `font-lock-negation-char-face' and the face of
878the same name to customize this. Currently the cc-modes, sh-script-mode, 846the same name to customize this. Currently the cc-modes, sh-script-mode,
879cperl-mode and make-mode support this. 847cperl-mode and make-mode support this.
880 848
849*** Font-Lock mode: in major modes such as Lisp mode, where some Emacs
850features assume that an open-paren in column 0 is always outside of
851any string or comment, Font-Lock now highlights any such open-paren in
852bold-red if it is inside a string or a comment, to indicate that it
853can cause trouble. You should rewrite the string or comment so that
854the open-paren is not in column 0.
855
856*** M-o now is the prefix key for setting text properties;
857M-o M-o requests refontification.
858
881*** The default settings for JIT stealth lock parameters are changed. 859*** The default settings for JIT stealth lock parameters are changed.
882The default value for the user option jit-lock-stealth-time is now nil 860The default value for the user option jit-lock-stealth-time is now nil
883instead of 3. This setting of jit-lock-stealth-time disables stealth 861instead of 3. This setting of jit-lock-stealth-time disables stealth
@@ -925,8 +903,6 @@ current date and time, current line and column number in the mode-line.
925 903
926*** Speedbar has moved from the "Tools" top level menu to "Show/Hide". 904*** Speedbar has moved from the "Tools" top level menu to "Show/Hide".
927 905
928*** You can exit dialog windows and menus by typing C-g.
929
930*** The menu item "Open File..." has been split into two items, "New File..." 906*** The menu item "Open File..." has been split into two items, "New File..."
931and "Open File...". "Open File..." now opens only existing files. This is 907and "Open File...". "Open File..." now opens only existing files. This is
932to support existing GUI file selection dialogs better. 908to support existing GUI file selection dialogs better.
@@ -952,6 +928,35 @@ ESC, like they do for Gtk+, Mac and W32.
952by setting the variable `x-gtk-use-old-file-dialog' to t. Default is to use 928by setting the variable `x-gtk-use-old-file-dialog' to t. Default is to use
953the new dialog. 929the new dialog.
954 930
931*** You can exit dialog windows and menus by typing C-g.
932
933** Buffer Menu changes:
934
935*** The new options `buffers-menu-show-directories' and
936`buffers-menu-show-status' let you control how buffers are displayed
937in the menu dropped down when you click "Buffers" from the menu bar.
938
939`buffers-menu-show-directories' controls whether the menu displays
940leading directories as part of the file name visited by the buffer.
941If its value is `unless-uniquify', the default, directories are
942shown unless uniquify-buffer-name-style' is non-nil. The value of nil
943and t turn the display of directories off and on, respectively.
944
945`buffers-menu-show-status' controls whether the Buffers menu includes
946the modified and read-only status of the buffers. By default it is
947t, and the status is shown.
948
949Setting these variables directly does not take effect until next time
950the Buffers menu is regenerated.
951
952*** New command `Buffer-menu-toggle-files-only' toggles display of file
953buffers only in the Buffer Menu. It is bound to T in Buffer Menu
954mode.
955
956*** `buffer-menu' and `list-buffers' now list buffers whose names begin
957with a space, when those buffers are visiting files. Normally buffers
958whose names begin with space are omitted.
959
955** Mouse changes: 960** Mouse changes:
956 961
957*** You can now follow links by clicking Mouse-1 on the link. 962*** You can now follow links by clicking Mouse-1 on the link.
@@ -1006,8 +1011,7 @@ also disable mouse highlighting.
1006shall not copy the selected text to the kill-ring by setting the new 1011shall not copy the selected text to the kill-ring by setting the new
1007variable mouse-drag-copy-region to nil. 1012variable mouse-drag-copy-region to nil.
1008 1013
1009*** mouse-wheels can now scroll a specific fraction of the window 1014*** Under X, mouse-wheel-mode is turned on by default.
1010(rather than a fixed number of lines) and the scrolling is `progressive'.
1011 1015
1012*** Emacs ignores mouse-2 clicks while the mouse wheel is being moved. 1016*** Emacs ignores mouse-2 clicks while the mouse wheel is being moved.
1013 1017
@@ -1016,7 +1020,8 @@ unintentionally while turning the wheel, so these clicks are now
1016ignored. You can customize this with the mouse-wheel-click-event and 1020ignored. You can customize this with the mouse-wheel-click-event and
1017mouse-wheel-inhibit-click-time variables. 1021mouse-wheel-inhibit-click-time variables.
1018 1022
1019*** Under X, mouse-wheel-mode is turned on by default. 1023*** mouse-wheels can now scroll a specific fraction of the window
1024(rather than a fixed number of lines) and the scrolling is `progressive'.
1020 1025
1021** Multilingual Environment (Mule) changes: 1026** Multilingual Environment (Mule) changes:
1022 1027
@@ -1047,6 +1052,11 @@ keyboard-coding-system) if you prefer META to work (the old default)
1047or if the locale doesn't describe the character set actually generated 1052or if the locale doesn't describe the character set actually generated
1048by the keyboard. See Info node `Unibyte Mode'. 1053by the keyboard. See Info node `Unibyte Mode'.
1049 1054
1055*** The new command `set-file-name-coding-system' (C-x RET F) sets
1056coding system for encoding and decoding file names. A new menu item
1057(Options->Mule->Set Coding Systems->For File Name) invokes this
1058command.
1059
1050*** The new command `revert-buffer-with-coding-system' (C-x RET r) 1060*** The new command `revert-buffer-with-coding-system' (C-x RET r)
1051revisits the current file using a coding system that you specify. 1061revisits the current file using a coding system that you specify.
1052 1062
@@ -1059,11 +1069,6 @@ of a file.
1059*** New command `ucs-insert' inserts a character specified by its 1069*** New command `ucs-insert' inserts a character specified by its
1060unicode. 1070unicode.
1061 1071
1062*** The new command `set-file-name-coding-system' (C-x RET F) sets
1063coding system for encoding and decoding file names. A new menu item
1064(Options->Mule->Set Coding Systems->For File Name) invokes this
1065command.
1066
1067*** New command quail-show-key shows what key (or key sequence) to type 1072*** New command quail-show-key shows what key (or key sequence) to type
1068in the current input method to input a character at point. 1073in the current input method to input a character at point.
1069 1074
@@ -1177,34 +1182,17 @@ the previous value becomes the "backup value" of the variable.
1177You can go back to that backup value by selecting "Use Backup Value" 1182You can go back to that backup value by selecting "Use Backup Value"
1178under the "[State]" button. 1183under the "[State]" button.
1179 1184
1180** Buffer Menu changes: 1185** Dired mode:
1181
1182*** New command `Buffer-menu-toggle-files-only' toggles display of file
1183buffers only in the Buffer Menu. It is bound to T in Buffer Menu
1184mode.
1185
1186*** `buffer-menu' and `list-buffers' now list buffers whose names begin
1187with a space, when those buffers are visiting files. Normally buffers
1188whose names begin with space are omitted.
1189
1190*** The new options `buffers-menu-show-directories' and
1191`buffers-menu-show-status' let you control how buffers are displayed
1192in the menu dropped down when you click "Buffers" from the menu bar.
1193
1194`buffers-menu-show-directories' controls whether the menu displays
1195leading directories as part of the file name visited by the buffer.
1196If its value is `unless-uniquify', the default, directories are
1197shown unless uniquify-buffer-name-style' is non-nil. The value of nil
1198and t turn the display of directories off and on, respectively.
1199
1200`buffers-menu-show-status' controls whether the Buffers menu includes
1201the modified and read-only status of the buffers. By default it is
1202t, and the status is shown.
1203 1186
1204Setting these variables directly does not take effect until next time 1187*** In Dired's ! command (dired-do-shell-command), `*' and `?' now
1205the Buffers menu is regenerated. 1188control substitution of the file names only when they are surrounded
1189by whitespace. This means you can now use them as shell wildcards
1190too. If you want to use just plain `*' as a wildcard, type `*""'; the
1191double quotes make no difference in the shell, but they prevent
1192special treatment in `dired-do-shell-command'.
1206 1193
1207** Dired mode: 1194*** The Dired command `dired-goto-file' is now bound to j, not M-g.
1195This is to avoid hiding the global key binding of M-g.
1208 1196
1209*** New faces dired-header, dired-mark, dired-marked, dired-flagged, 1197*** New faces dired-header, dired-mark, dired-marked, dired-flagged,
1210dired-ignored, dired-directory, dired-symlink, dired-warning 1198dired-ignored, dired-directory, dired-symlink, dired-warning
@@ -1216,16 +1204,6 @@ with different file attributes in two dired buffers.
1216*** New Dired command `dired-do-touch' (bound to T) changes timestamps 1204*** New Dired command `dired-do-touch' (bound to T) changes timestamps
1217of marked files with the value entered in the minibuffer. 1205of marked files with the value entered in the minibuffer.
1218 1206
1219*** The Dired command `dired-goto-file' is now bound to j, not M-g.
1220This is to avoid hiding the global key binding of M-g.
1221
1222*** In Dired's ! command (dired-do-shell-command), `*' and `?' now
1223control substitution of the file names only when they are surrounded
1224by whitespace. This means you can now use them as shell wildcards
1225too. If you want to use just plain `*' as a wildcard, type `*""'; the
1226double quotes make no difference in the shell, but they prevent
1227special treatment in `dired-do-shell-command'.
1228
1229*** In Dired, the w command now stores the current line's file name 1207*** In Dired, the w command now stores the current line's file name
1230into the kill ring. With a zero prefix arg, it stores the absolute file name. 1208into the kill ring. With a zero prefix arg, it stores the absolute file name.
1231 1209
@@ -1243,6 +1221,12 @@ directory listing into a buffer.
1243 1221
1244** Comint changes: 1222** Comint changes:
1245 1223
1224*** The new INSIDE_EMACS environment variable is set to "t" in subshells
1225running inside Emacs. This supersedes the EMACS environment variable,
1226which will be removed in a future Emacs release. Programs that need
1227to know whether they are started inside Emacs should check INSIDE_EMACS
1228instead of EMACS.
1229
1246*** The comint prompt can now be made read-only, using the new user 1230*** The comint prompt can now be made read-only, using the new user
1247option `comint-prompt-read-only'. This is not enabled by default, 1231option `comint-prompt-read-only'. This is not enabled by default,
1248except in IELM buffers. The read-only status of IELM prompts can be 1232except in IELM buffers. The read-only status of IELM prompts can be
@@ -1273,12 +1257,6 @@ otherwise behaves quite similarly to the bash version.
1273`comint-use-prompt-regexp'. The old name has been kept as an alias, 1257`comint-use-prompt-regexp'. The old name has been kept as an alias,
1274but declared obsolete. 1258but declared obsolete.
1275 1259
1276*** The new INSIDE_EMACS environment variable is set to "t" in subshells
1277running inside Emacs. This supersedes the EMACS environment variable,
1278which will be removed in a future Emacs release. Programs that need
1279to know whether they are started inside Emacs should check INSIDE_EMACS
1280instead of EMACS.
1281
1282** M-x Compile changes: 1260** M-x Compile changes:
1283 1261
1284*** M-x compile has become more robust and reliable 1262*** M-x compile has become more robust and reliable
@@ -1330,13 +1308,6 @@ of the window.
1330 1308
1331** Occur mode changes: 1309** Occur mode changes:
1332 1310
1333*** In the *Occur* buffer, `o' switches to it in another window, and
1334C-o displays the current line's occurrence in another window without
1335switching to it.
1336
1337*** You can now use next-error (C-x `) and previous-error to advance to
1338the next/previous matching line found by M-x occur.
1339
1340*** The new command `multi-occur' is just like `occur', except it can 1311*** The new command `multi-occur' is just like `occur', except it can
1341search multiple buffers. There is also a new command 1312search multiple buffers. There is also a new command
1342`multi-occur-in-matching-buffers' which allows you to specify the 1313`multi-occur-in-matching-buffers' which allows you to specify the
@@ -1344,6 +1315,13 @@ buffers to search by their filenames or buffer names. Internally,
1344Occur mode has been rewritten, and now uses font-lock, among other 1315Occur mode has been rewritten, and now uses font-lock, among other
1345changes. 1316changes.
1346 1317
1318*** You can now use next-error (C-x `) and previous-error to advance to
1319the next/previous matching line found by M-x occur.
1320
1321*** In the *Occur* buffer, `o' switches to it in another window, and
1322C-o displays the current line's occurrence in another window without
1323switching to it.
1324
1347** Grep changes: 1325** Grep changes:
1348 1326
1349*** Grep has been decoupled from compilation mode setup. 1327*** Grep has been decoupled from compilation mode setup.
@@ -1374,9 +1352,6 @@ are automatically skipped by `rgrep'.
1374Hits are fontified in green, and hits in binary files in orange. Grep buffers 1352Hits are fontified in green, and hits in binary files in orange. Grep buffers
1375can be saved and automatically revisited. 1353can be saved and automatically revisited.
1376 1354
1377*** The new variables `grep-window-height' and `grep-scroll-output' override
1378the corresponding compilation mode settings, for grep commands only.
1379
1380*** New option `grep-highlight-matches' highlights matches in *grep* 1355*** New option `grep-highlight-matches' highlights matches in *grep*
1381buffer. It uses a special feature of some grep programs which accept 1356buffer. It uses a special feature of some grep programs which accept
1382--color option to output markers around matches. When going to the next 1357--color option to output markers around matches. When going to the next
@@ -1399,11 +1374,36 @@ When `-H' is used, the grep command line supplied by the user is passed
1399unchanged to the system to execute, which allows more complicated 1374unchanged to the system to execute, which allows more complicated
1400command lines to be used than was possible before. 1375command lines to be used than was possible before.
1401 1376
1377*** The new variables `grep-window-height' and `grep-scroll-output' override
1378the corresponding compilation mode settings, for grep commands only.
1379
1380** Cursor display changes:
1381
1382*** Emacs can produce an underscore-like (horizontal bar) cursor.
1383The underscore cursor is set by putting `(cursor-type . hbar)' in
1384default-frame-alist. It supports variable heights, like the `bar'
1385cursor does.
1386
1387*** The variable `cursor-in-non-selected-windows' can now be set to any
1388of the recognized cursor types.
1389
1390*** Display of hollow cursors now obeys the buffer-local value (if any)
1391of `cursor-in-non-selected-windows' in the buffer that the cursor
1392appears in.
1393
1394*** On text terminals, the variable `visible-cursor' controls whether Emacs
1395uses the "very visible" cursor (the default) or the normal cursor.
1396
1397*** The X resource cursorBlink can be used to turn off cursor blinking.
1398
1399*** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is
1400now controlled by the variable `blink-cursor-alist'.
1401
1402** X Windows Support: 1402** X Windows Support:
1403 1403
1404*** Emacs now supports drag and drop for X. Dropping a file on a window 1404*** Emacs now supports drag and drop for X. Dropping a file on a window
1405 opens it, dropping text inserts the text. Dropping a file on a dired 1405opens it, dropping text inserts the text. Dropping a file on a dired
1406 buffer copies or moves the file to that directory. 1406buffer copies or moves the file to that directory.
1407 1407
1408*** Under X11, it is possible to swap Alt and Meta (and Super and Hyper). 1408*** Under X11, it is possible to swap Alt and Meta (and Super and Hyper).
1409The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym', 1409The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym',
@@ -1482,69 +1482,6 @@ Values greater than 1.0, expand the arrow.
1482 1482
1483* New Modes and Packages in Emacs 22.1 1483* New Modes and Packages in Emacs 22.1
1484 1484
1485** ERC is now part of the Emacs distribution.
1486
1487ERC is a powerful, modular, and extensible IRC client for Emacs.
1488
1489To see what modules are available, type
1490M-x customize-option erc-modules RET.
1491
1492To start an IRC session with ERC, type M-x erc, and follow the prompts
1493for server, port, and nick.
1494
1495** Rcirc is now part of the Emacs distribution.
1496
1497Rcirc is an Internet relay chat (IRC) client. It supports
1498simultaneous connections to multiple IRC servers. Each discussion
1499takes place in its own buffer. For each connection you can join
1500several channels (many-to-many) and participate in private
1501(one-to-one) chats. Both channel and private chats are contained in
1502separate buffers.
1503
1504To start an IRC session using the default parameters, type M-x irc.
1505If you type C-u M-x irc, it prompts you for the server, nick, port and
1506startup channel parameters before connecting.
1507
1508** Newsticker is now part of the Emacs distribution.
1509
1510Newsticker asynchronously retrieves headlines (RSS) from a list of news
1511sites, prepares these headlines for reading, and allows for loading the
1512corresponding articles in a web browser. Its documentation is in a
1513separate manual.
1514
1515** savehist saves minibuffer histories between sessions.
1516To use this feature, turn on savehist-mode in your `.emacs' file.
1517
1518** Filesets are collections of files. You can define a fileset in
1519various ways, such as based on a directory tree or based on
1520program files that include other program files.
1521
1522Once you have defined a fileset, you can perform various operations on
1523all the files in it, such as visiting them or searching and replacing
1524in them.
1525
1526** Calc is now part of the Emacs distribution.
1527
1528Calc is an advanced desk calculator and mathematical tool written in
1529Emacs Lisp. The prefix for Calc has been changed to `C-x *' and Calc
1530can be started with `C-x * *'. The Calc manual is separate from the
1531Emacs manual; within Emacs, type "C-h i m calc RET" to read the
1532manual. A reference card is available in `etc/calccard.tex' and
1533`etc/calccard.ps'.
1534
1535** The new package ibuffer provides a powerful, completely
1536customizable replacement for buff-menu.el.
1537
1538** Ido mode is now part of the Emacs distribution.
1539
1540The ido (interactively do) package is an extension of the iswitchb
1541package to do interactive opening of files and directories in addition
1542to interactive buffer switching. Ido is a superset of iswitchb (with
1543a few exceptions), so don't enable both packages.
1544
1545** Image files are normally visited in Image mode, which lets you toggle
1546between viewing the image and viewing the text using C-c C-c.
1547
1548** CUA mode is now part of the Emacs distribution. 1485** CUA mode is now part of the Emacs distribution.
1549 1486
1550The new cua package provides CUA-like keybindings using C-x for 1487The new cua package provides CUA-like keybindings using C-x for
@@ -1593,6 +1530,49 @@ versions of cua.el and cua-mode.el. To ensure proper operation, you
1593must remove older versions of cua.el or cua-mode.el as well as the 1530must remove older versions of cua.el or cua-mode.el as well as the
1594loading and customization of those packages from the .emacs file. 1531loading and customization of those packages from the .emacs file.
1595 1532
1533** Tramp is now part of the distribution.
1534
1535This package is similar to Ange-FTP: it allows you to edit remote
1536files. But whereas Ange-FTP uses FTP to access the remote host,
1537Tramp uses a shell connection. The shell connection is always used
1538for filename completion and directory listings and suchlike, but for
1539the actual file transfer, you can choose between the so-called
1540`inline' methods (which transfer the files through the shell
1541connection using base64 or uu encoding) and the `out-of-band' methods
1542(which invoke an external copying program such as `rcp' or `scp' or
1543`rsync' to do the copying).
1544
1545Shell connections can be acquired via `rsh', `ssh', `telnet' and also
1546`su' and `sudo'. Ange-FTP is still supported via the `ftp' method.
1547
1548If you want to disable Tramp you should set
1549
1550 (setq tramp-default-method "ftp")
1551
1552Removing Tramp, and re-enabling Ange-FTP, can be achieved by M-x
1553tramp-unload-tramp.
1554
1555** The image-dired.el package allows you to easily view, tag and in
1556other ways manipulate image files and their thumbnails, using dired as
1557the main interface. Image-Dired provides functionality to generate
1558simple image galleries.
1559
1560** Image files are normally visited in Image mode, which lets you toggle
1561between viewing the image and viewing the text using C-c C-c.
1562
1563** The new python.el package is used to edit Python and Jython programs.
1564
1565** The URL package (which had been part of W3) is now part of Emacs.
1566
1567** Calc is now part of the Emacs distribution.
1568
1569Calc is an advanced desk calculator and mathematical tool written in
1570Emacs Lisp. The prefix for Calc has been changed to `C-x *' and Calc
1571can be started with `C-x * *'. The Calc manual is separate from the
1572Emacs manual; within Emacs, type "C-h i m calc RET" to read the
1573manual. A reference card is available in `etc/calccard.tex' and
1574`etc/calccard.ps'.
1575
1596** Org mode is now part of the Emacs distribution 1576** Org mode is now part of the Emacs distribution
1597 1577
1598Org mode is a mode for keeping notes, maintaining ToDo lists, and 1578Org mode is a mode for keeping notes, maintaining ToDo lists, and
@@ -1607,8 +1587,48 @@ The documentation for org-mode is in a separate manual; within Emacs,
1607type "C-h i m org RET" to read that manual. A reference card is 1587type "C-h i m org RET" to read that manual. A reference card is
1608available in `etc/orgcard.tex' and `etc/orgcard.ps'. 1588available in `etc/orgcard.tex' and `etc/orgcard.ps'.
1609 1589
1610** The new package dns-mode.el adds syntax highlighting of DNS master files. 1590** ERC is now part of the Emacs distribution.
1611It is a modern replacement for zone-mode.el, which is now obsolete. 1591
1592ERC is a powerful, modular, and extensible IRC client for Emacs.
1593
1594To see what modules are available, type
1595M-x customize-option erc-modules RET.
1596
1597To start an IRC session with ERC, type M-x erc, and follow the prompts
1598for server, port, and nick.
1599
1600** Rcirc is now part of the Emacs distribution.
1601
1602Rcirc is an Internet relay chat (IRC) client. It supports
1603simultaneous connections to multiple IRC servers. Each discussion
1604takes place in its own buffer. For each connection you can join
1605several channels (many-to-many) and participate in private
1606(one-to-one) chats. Both channel and private chats are contained in
1607separate buffers.
1608
1609To start an IRC session using the default parameters, type M-x irc.
1610If you type C-u M-x irc, it prompts you for the server, nick, port and
1611startup channel parameters before connecting.
1612
1613** The new package ibuffer provides a powerful, completely
1614customizable replacement for buff-menu.el.
1615
1616** Newsticker is now part of the Emacs distribution.
1617
1618Newsticker asynchronously retrieves headlines (RSS) from a list of news
1619sites, prepares these headlines for reading, and allows for loading the
1620corresponding articles in a web browser. Its documentation is in a
1621separate manual.
1622
1623** The wdired.el package allows you to use normal editing commands on Dired
1624buffers to change filenames, permissions, etc...
1625
1626** Ido mode is now part of the Emacs distribution.
1627
1628The ido (interactively do) package is an extension of the iswitchb
1629package to do interactive opening of files and directories in addition
1630to interactive buffer switching. Ido is a superset of iswitchb (with
1631a few exceptions), so don't enable both packages.
1612 1632
1613** The new global minor mode `file-name-shadow-mode' modifies the way 1633** The new global minor mode `file-name-shadow-mode' modifies the way
1614filenames being entered by the user in the minibuffer are displayed, so 1634filenames being entered by the user in the minibuffer are displayed, so
@@ -1617,33 +1637,6 @@ Emacs' filename parsing rules. The ignored portion can be made dim,
1617invisible, or otherwise less visually noticeable. The display method can 1637invisible, or otherwise less visually noticeable. The display method can
1618be displayed by customizing the variable `file-name-shadow-properties'. 1638be displayed by customizing the variable `file-name-shadow-properties'.
1619 1639
1620** The new package flymake.el does on-the-fly syntax checking of program
1621source files. See the Flymake's Info manual for more details.
1622
1623** The new keypad setup package provides several common bindings for
1624the numeric keypad which is available on most keyboards. The numeric
1625keypad typically has the digits 0 to 9, a decimal point, keys marked
1626+, -, /, and *, an Enter key, and a NumLock toggle key. The keypad
1627package only controls the use of the digit and decimal keys.
1628
1629By customizing the variables `keypad-setup', `keypad-shifted-setup',
1630`keypad-numlock-setup', and `keypad-numlock-shifted-setup', or by
1631using the function `keypad-setup', you can rebind all digit keys and
1632the decimal key of the keypad in one step for each of the four
1633possible combinations of the Shift key state (not pressed/pressed) and
1634the NumLock toggle state (off/on).
1635
1636The choices for the keypad keys in each of the above states are:
1637`Plain numeric keypad' where the keys generates plain digits,
1638`Numeric keypad with decimal key' where the character produced by the
1639decimal key can be customized individually (for internationalization),
1640`Numeric Prefix Arg' where the keypad keys produce numeric prefix args
1641for Emacs editing commands, `Cursor keys' and `Shifted Cursor keys'
1642where the keys work like (shifted) arrow keys, home/end, etc., and
1643`Unspecified/User-defined' where the keypad keys (kp-0, kp-1, etc.)
1644are left unspecified and can be bound individually through the global
1645or local keymaps.
1646
1647** Emacs' keyboard macro facilities have been enhanced by the new 1640** Emacs' keyboard macro facilities have been enhanced by the new
1648kmacro package. 1641kmacro package.
1649 1642
@@ -1677,22 +1670,29 @@ Keyboard macros can now be debugged and edited interactively.
1677C-x C-k SPC steps through the last keyboard macro one key sequence 1670C-x C-k SPC steps through the last keyboard macro one key sequence
1678at a time, prompting for the actions to take. 1671at a time, prompting for the actions to take.
1679 1672
1680** New minor mode, Visible mode, toggles invisibility in the current buffer. 1673** The new keypad setup package provides several common bindings for
1681When enabled, it makes all invisible text visible. When disabled, it 1674the numeric keypad which is available on most keyboards. The numeric
1682restores the previous value of `buffer-invisibility-spec'. 1675keypad typically has the digits 0 to 9, a decimal point, keys marked
1676+, -, /, and *, an Enter key, and a NumLock toggle key. The keypad
1677package only controls the use of the digit and decimal keys.
1683 1678
1684** The wdired.el package allows you to use normal editing commands on Dired 1679By customizing the variables `keypad-setup', `keypad-shifted-setup',
1685buffers to change filenames, permissions, etc... 1680`keypad-numlock-setup', and `keypad-numlock-shifted-setup', or by
1681using the function `keypad-setup', you can rebind all digit keys and
1682the decimal key of the keypad in one step for each of the four
1683possible combinations of the Shift key state (not pressed/pressed) and
1684the NumLock toggle state (off/on).
1686 1685
1687** The new package longlines.el provides a minor mode for editing text 1686The choices for the keypad keys in each of the above states are:
1688files composed of long lines, based on the `use-hard-newlines' 1687`Plain numeric keypad' where the keys generates plain digits,
1689mechanism. The long lines are broken up by inserting soft newlines, 1688`Numeric keypad with decimal key' where the character produced by the
1690which are automatically removed when saving the file to disk or 1689decimal key can be customized individually (for internationalization),
1691copying into the kill ring, clipboard, etc. By default, Longlines 1690`Numeric Prefix Arg' where the keypad keys produce numeric prefix args
1692mode inserts soft newlines automatically during editing, a behavior 1691for Emacs editing commands, `Cursor keys' and `Shifted Cursor keys'
1693referred to as "soft word wrap" in other text editors. This is 1692where the keys work like (shifted) arrow keys, home/end, etc., and
1694similar to Refill mode, but more reliable. To turn the word wrap 1693`Unspecified/User-defined' where the keypad keys (kp-0, kp-1, etc.)
1695feature off, set `longlines-auto-wrap' to nil. 1694are left unspecified and can be bound individually through the global
1695or local keymaps.
1696 1696
1697** The printing package is now part of the Emacs distribution. 1697** The printing package is now part of the Emacs distribution.
1698 1698
@@ -1703,26 +1703,21 @@ ghostview, use ghostscript to print (if you don't have a PostScript
1703printer) or send directly to printer a PostScript code generated by 1703printer) or send directly to printer a PostScript code generated by
1704`ps-print' package. Use M-x pr-help for more information. 1704`ps-print' package. Use M-x pr-help for more information.
1705 1705
1706** The minor mode Reveal mode makes text visible on the fly as you 1706** The new package longlines.el provides a minor mode for editing text
1707move your cursor into hidden regions of the buffer. 1707files composed of long lines, based on the `use-hard-newlines'
1708It should work with any package that uses overlays to hide parts 1708mechanism. The long lines are broken up by inserting soft newlines,
1709of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ... 1709which are automatically removed when saving the file to disk or
1710 1710copying into the kill ring, clipboard, etc. By default, Longlines
1711There is also Global Reveal mode which affects all buffers. 1711mode inserts soft newlines automatically during editing, a behavior
1712 1712referred to as "soft word wrap" in other text editors. This is
1713** The ruler-mode.el library provides a minor mode for displaying an 1713similar to Refill mode, but more reliable. To turn the word wrap
1714"active" ruler in the header line. You can use the mouse to visually 1714feature off, set `longlines-auto-wrap' to nil.
1715change the `fill-column', `window-margins' and `tab-stop-list'
1716settings.
1717 1715
1718** SES mode (ses-mode) is a new major mode for creating and editing 1716** SES mode (ses-mode) is a new major mode for creating and editing
1719spreadsheet files. Besides the usual Emacs features (intuitive command 1717spreadsheet files. Besides the usual Emacs features (intuitive command
1720letters, undo, cell formulas in Lisp, plaintext files, etc.) it also offers 1718letters, undo, cell formulas in Lisp, plaintext files, etc.) it also offers
1721viral immunity and import/export of tab-separated values. 1719viral immunity and import/export of tab-separated values.
1722 1720
1723** The new global minor mode `size-indication-mode' (off by default)
1724shows the size of accessible part of the buffer on the mode line.
1725
1726** The new package table.el implements editable, WYSIWYG, embedded 1721** The new package table.el implements editable, WYSIWYG, embedded
1727`text tables' in Emacs buffers. It simulates the effect of putting 1722`text tables' in Emacs buffers. It simulates the effect of putting
1728these tables in a special major mode. The package emulates WYSIWYG 1723these tables in a special major mode. The package emulates WYSIWYG
@@ -1730,37 +1725,48 @@ table editing available in modern word processors. The package also
1730can generate a table source in typesetting and markup languages such 1725can generate a table source in typesetting and markup languages such
1731as latex and html from the visually laid out text table. 1726as latex and html from the visually laid out text table.
1732 1727
1733** The image-dired.el package allows you to easily view, tag and in 1728** Filesets are collections of files. You can define a fileset in
1734other ways manipulate image files and their thumbnails, using dired as 1729various ways, such as based on a directory tree or based on
1735the main interface. Image-Dired provides functionality to generate 1730program files that include other program files.
1736simple image galleries.
1737 1731
1738** Tramp is now part of the distribution. 1732Once you have defined a fileset, you can perform various operations on
1733all the files in it, such as visiting them or searching and replacing
1734in them.
1739 1735
1740This package is similar to Ange-FTP: it allows you to edit remote 1736** The minor mode Reveal mode makes text visible on the fly as you
1741files. But whereas Ange-FTP uses FTP to access the remote host, 1737move your cursor into hidden regions of the buffer.
1742Tramp uses a shell connection. The shell connection is always used 1738It should work with any package that uses overlays to hide parts
1743for filename completion and directory listings and suchlike, but for 1739of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ...
1744the actual file transfer, you can choose between the so-called
1745`inline' methods (which transfer the files through the shell
1746connection using base64 or uu encoding) and the `out-of-band' methods
1747(which invoke an external copying program such as `rcp' or `scp' or
1748`rsync' to do the copying).
1749 1740
1750Shell connections can be acquired via `rsh', `ssh', `telnet' and also 1741There is also Global Reveal mode which affects all buffers.
1751`su' and `sudo'. Ange-FTP is still supported via the `ftp' method.
1752 1742
1753If you want to disable Tramp you should set 1743** New minor mode, Visible mode, toggles invisibility in the current buffer.
1744When enabled, it makes all invisible text visible. When disabled, it
1745restores the previous value of `buffer-invisibility-spec'.
1754 1746
1755 (setq tramp-default-method "ftp") 1747** The new package flymake.el does on-the-fly syntax checking of program
1748source files. See the Flymake's Info manual for more details.
1756 1749
1757Removing Tramp, and re-enabling Ange-FTP, can be achieved by M-x 1750** savehist saves minibuffer histories between sessions.
1758tramp-unload-tramp. 1751To use this feature, turn on savehist-mode in your `.emacs' file.
1759 1752
1760** The URL package (which had been part of W3) is now part of Emacs. 1753** The ruler-mode.el library provides a minor mode for displaying an
1754"active" ruler in the header line. You can use the mouse to visually
1755change the `fill-column', `window-margins' and `tab-stop-list'
1756settings.
1761 1757
1762** `cfengine-mode' is a major mode for editing GNU Cfengine 1758** The file t-mouse.el is now part of Emacs and provides access to mouse
1763configuration files. 1759events from the console. It still requires gpm to work but has been updated
1760for Emacs 22. In particular, the mode-line is now position sensitive.
1761
1762** The new package scroll-lock.el provides the Scroll Lock minor mode
1763for pager-like scrolling. Keys which normally move point by line or
1764paragraph will scroll the buffer by the respective amount of lines
1765instead and point will be kept vertically fixed relative to window
1766boundaries during scrolling.
1767
1768** The new global minor mode `size-indication-mode' (off by default)
1769shows the size of accessible part of the buffer on the mode line.
1764 1770
1765** The new package conf-mode.el handles thousands of configuration files, with 1771** The new package conf-mode.el handles thousands of configuration files, with
1766varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value, 1772varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value,
@@ -1771,37 +1777,211 @@ recognized.
1771 1777
1772** GDB-Script-mode is used for files like .gdbinit. 1778** GDB-Script-mode is used for files like .gdbinit.
1773 1779
1774** The new python.el package is used to edit Python and Jython programs. 1780** The new package dns-mode.el adds syntax highlighting of DNS master files.
1781It is a modern replacement for zone-mode.el, which is now obsolete.
1782
1783** `cfengine-mode' is a major mode for editing GNU Cfengine
1784configuration files.
1775 1785
1776** The TCL package tcl-mode.el was replaced by tcl.el. 1786** The TCL package tcl-mode.el was replaced by tcl.el.
1777This was actually done in Emacs-21.1, and was not documented. 1787This was actually done in Emacs-21.1, and was not documented.
1778
1779** The new package scroll-lock.el provides the Scroll Lock minor mode
1780for pager-like scrolling. Keys which normally move point by line or
1781paragraph will scroll the buffer by the respective amount of lines
1782instead and point will be kept vertically fixed relative to window
1783boundaries during scrolling.
1784
1785** The file t-mouse.el is now part of Emacs and provides access to mouse
1786events from the console. It still requires gpm to work but has been updated
1787for Emacs 22. In particular, the mode-line is now position sensitive.
1788 1788
1789* Changes in Specialized Modes and Packages in Emacs 22.1: 1789* Changes in Specialized Modes and Packages in Emacs 22.1:
1790 1790
1791** Changes in Shell Mode
1792
1793*** Shell output normally scrolls so that the input line is at the
1794bottom of the window -- thus showing the maximum possible text. (This
1795is similar to the way sequential output to a terminal works.)
1796
1797** Changes in Dired 1791** Changes in Dired
1798 1792
1799*** Bindings for Image-Dired added 1793*** Bindings for Image-Dired added.
1800Several new keybindings, all starting with the C-t prefix, have been 1794Several new keybindings, all starting with the C-t prefix, have been
1801added to Dired. They are all bound to commands in Image-Dired. As a 1795added to Dired. They are all bound to commands in Image-Dired. As a
1802starting point, mark some image files in a dired buffer and do C-t d 1796starting point, mark some image files in a dired buffer and do C-t d
1803to display thumbnails of them in a separate buffer. 1797to display thumbnails of them in a separate buffer.
1804 1798
1799** Info mode changes
1800
1801*** Images in Info pages are supported.
1802
1803Info pages show embedded images, in Emacs frames with image support.
1804Info documentation that includes images, processed with makeinfo
1805version 4.7 or newer, compiles to Info pages with embedded images.
1806
1807*** `Info-index' offers completion.
1808
1809*** http and ftp links in Info are now operational: they look like cross
1810references and following them calls `browse-url'.
1811
1812*** isearch in Info uses Info-search and searches through multiple nodes.
1813
1814Before leaving the initial Info node isearch fails once with the error
1815message [initial node], and with subsequent C-s/C-r continues through
1816other nodes. When isearch fails for the rest of the manual, it wraps
1817around the whole manual to the top/final node. The user option
1818`Info-isearch-search' controls whether to use Info-search for isearch,
1819or the default isearch search function that wraps around the current
1820Info node.
1821
1822*** New search commands: `Info-search-case-sensitively' (bound to S),
1823`Info-search-backward', and `Info-search-next' which repeats the last
1824search without prompting for a new search string.
1825
1826*** New command `info-apropos' searches the indices of the known
1827Info files on your system for a string, and builds a menu of the
1828possible matches.
1829
1830*** New command `Info-history-forward' (bound to r and new toolbar icon)
1831moves forward in history to the node you returned from after using
1832`Info-history-back' (renamed from `Info-last').
1833
1834*** New command `Info-history' (bound to L) displays a menu of visited nodes.
1835
1836*** New command `Info-toc' (bound to T) creates a node with table of contents
1837from the tree structure of menus of the current Info file.
1838
1839*** New command `Info-copy-current-node-name' (bound to w) copies
1840the current Info node name into the kill ring. With a zero prefix
1841arg, puts the node name inside the `info' function call.
1842
1843*** New face `info-xref-visited' distinguishes visited nodes from unvisited
1844and a new option `Info-fontify-visited-nodes' to control this.
1845
1846*** A numeric prefix argument of `info' selects an Info buffer
1847with the number appended to the `*info*' buffer name (e.g. "*info*<2>").
1848
1849*** Info now hides node names in menus and cross references by default.
1850
1851If you prefer the old behavior, you can set the new user option
1852`Info-hide-note-references' to nil.
1853
1854*** The default value for `Info-scroll-prefer-subnodes' is now nil.
1855
1856** Emacs server changes
1857
1858*** You can have several Emacs servers on the same machine.
1859
1860 % emacs --eval '(setq server-name "foo")' -f server-start &
1861 % emacs --eval '(setq server-name "bar")' -f server-start &
1862 % emacsclient -s foo file1
1863 % emacsclient -s bar file2
1864
1865*** The `emacsclient' command understands the options `--eval' and
1866`--display' which tell Emacs respectively to evaluate the given Lisp
1867expression and to use the given display when visiting files.
1868
1869*** User option `server-mode' can be used to start a server process.
1870
1871** Locate changes
1872
1873*** By default, reverting the *Locate* buffer now just runs the last
1874`locate' command back over again without offering to update the locate
1875database (which normally only works if you have root privileges). If
1876you prefer the old behavior, set the new customizable option
1877`locate-update-when-revert' to t.
1878
1879** Desktop package
1880
1881*** Desktop saving is now a minor mode, `desktop-save-mode'.
1882
1883*** The variable `desktop-enable' is obsolete.
1884
1885Customize `desktop-save-mode' to enable desktop saving.
1886
1887*** Buffers are saved in the desktop file in the same order as that in the
1888buffer list.
1889
1890*** The desktop package can be customized to restore only some buffers
1891immediately, remaining buffers are restored lazily (when Emacs is
1892idle).
1893
1894*** New command line option --no-desktop
1895
1896*** New commands:
1897 - desktop-revert reverts to the last loaded desktop.
1898 - desktop-change-dir kills current desktop and loads a new.
1899 - desktop-save-in-desktop-dir saves desktop in the directory from which
1900 it was loaded.
1901 - desktop-lazy-complete runs the desktop load to completion.
1902 - desktop-lazy-abort aborts lazy loading of the desktop.
1903
1904*** New customizable variables:
1905 - desktop-save. Determines whether the desktop should be saved when it is
1906 killed.
1907 - desktop-file-name-format. Format in which desktop file names should be saved.
1908 - desktop-path. List of directories in which to lookup the desktop file.
1909 - desktop-locals-to-save. List of local variables to save.
1910 - desktop-globals-to-clear. List of global variables that `desktop-clear' will clear.
1911 - desktop-clear-preserve-buffers-regexp. Regexp identifying buffers that `desktop-clear'
1912 should not delete.
1913 - desktop-restore-eager. Number of buffers to restore immediately. Remaining buffers are
1914 restored lazily (when Emacs is idle).
1915 - desktop-lazy-verbose. Verbose reporting of lazily created buffers.
1916 - desktop-lazy-idle-delay. Idle delay before starting to create buffers.
1917
1918*** New hooks:
1919 - desktop-after-read-hook run after a desktop is loaded.
1920 - desktop-no-desktop-file-hook run when no desktop file is found.
1921
1922** Recentf changes
1923
1924The recent file list is now automatically cleaned up when recentf mode is
1925enabled. The new option `recentf-auto-cleanup' controls when to do
1926automatic cleanup.
1927
1928The ten most recent files can be quickly opened by using the shortcut
1929keys 1 to 9, and 0, when the recent list is displayed in a buffer via
1930the `recentf-open-files', or `recentf-open-more-files' commands.
1931
1932The `recentf-keep' option replaces `recentf-keep-non-readable-files-p'
1933and provides a more general mechanism to customize which file names to
1934keep in the recent list.
1935
1936With the more advanced option `recentf-filename-handlers', you can
1937specify functions that successively transform recent file names. For
1938example, if set to `file-truename' plus `abbreviate-file-name', the
1939same file will not be in the recent list with different symbolic
1940links, and the file name will be abbreviated.
1941
1942To follow naming convention, `recentf-menu-append-commands-flag'
1943replaces the misnamed option `recentf-menu-append-commands-p'. The
1944old name remains available as alias, but has been marked obsolete.
1945
1946** Auto-Revert changes
1947
1948*** You can now use Auto Revert mode to `tail' a file.
1949
1950If point is at the end of a file buffer before reverting, Auto Revert
1951mode keeps it at the end after reverting. Similarly if point is
1952displayed at the end of a file buffer in any window, it stays at
1953the end of the buffer in that window. This allows to tail a file:
1954just put point at the end of the buffer and it stays there. This
1955rule applies to file buffers. For non-file buffers, the behavior can
1956be mode dependent.
1957
1958If you are sure that the file will only change by growing at the end,
1959then you can tail the file more efficiently by using the new minor
1960mode Auto Revert Tail mode. The function `auto-revert-tail-mode'
1961toggles this mode.
1962
1963*** Auto Revert mode is now more careful to avoid excessive reverts and
1964other potential problems when deciding which non-file buffers to
1965revert. This matters especially if Global Auto Revert mode is enabled
1966and `global-auto-revert-non-file-buffers' is non-nil. Auto Revert
1967mode only reverts a non-file buffer if the buffer has a non-nil
1968`revert-buffer-function' and a non-nil `buffer-stale-function', which
1969decides whether the buffer should be reverted. Currently, this means
1970that auto reverting works for Dired buffers (although this may not
1971work properly on all operating systems) and for the Buffer Menu.
1972
1973*** If the new user option `auto-revert-check-vc-info' is non-nil, Auto
1974Revert mode reliably updates version control info (such as the version
1975control number in the mode line), in all version controlled buffers in
1976which it is active. If the option is nil, the default, then this info
1977only gets updated whenever the buffer gets reverted.
1978
1979** Changes in Shell Mode
1980
1981*** Shell output normally scrolls so that the input line is at the
1982bottom of the window -- thus showing the maximum possible text. (This
1983is similar to the way sequential output to a terminal works.)
1984
1805** Changes in Hi Lock 1985** Changes in Hi Lock
1806 1986
1807*** hi-lock-mode now only affects a single buffer, and a new function 1987*** hi-lock-mode now only affects a single buffer, and a new function
@@ -1815,6 +1995,19 @@ behavior in older versions of Emacs).
1815 1995
1816** Changes in Allout 1996** Changes in Allout
1817 1997
1998*** Topic cryptography added, enabling easy gpg topic encryption and
1999decryption. Per-topic basis enables interspersing encrypted-text and
2000clear-text within a single file to your heart's content, using symmetric
2001and/or public key modes. Time-limited key caching, user-provided
2002symmetric key hinting and consistency verification, auto-encryption of
2003pending topics on save, and more, make it easy to use encryption in
2004powerful ways. Encryption behavior customization is collected in the
2005allout-encryption customization group.
2006
2007*** Default command prefix was changed to "\C-c " (control-c space), to
2008avoid intruding on user's keybinding space. Customize the
2009`allout-command-prefix' variable to your preference.
2010
1818*** Some previously rough topic-header format edge cases are reconciled. 2011*** Some previously rough topic-header format edge cases are reconciled.
1819Level 1 topics use the mode's comment format, and lines starting with the 2012Level 1 topics use the mode's comment format, and lines starting with the
1820asterisk - for instance, the comment close of some languages (eg, c's "*/" 2013asterisk - for instance, the comment close of some languages (eg, c's "*/"
@@ -1843,15 +2036,6 @@ other hand, allout now operates gracefully with existing containment
1843discontinuities, revealing excessively contained topics rather than either 2036discontinuities, revealing excessively contained topics rather than either
1844leaving them hidden or raising an error. 2037leaving them hidden or raising an error.
1845 2038
1846*** Topic cryptography added, enabling easy gpg topic encryption and
1847decryption. Per-topic basis enables interspersing encrypted-text and
1848clear-text within a single file to your heart's content, using symmetric
1849and/or public key modes. Time-limited key caching, user-provided
1850symmetric key hinting and consistency verification, auto-encryption of
1851pending topics on save, and more, make it easy to use encryption in
1852powerful ways. Encryption behavior customization is collected in the
1853allout-encryption customization group.
1854
1855*** Navigation within an item is easier. Repeated beginning-of-line and 2039*** Navigation within an item is easier. Repeated beginning-of-line and
1856end-of-line key commands (usually, ^A and ^E) cycle through the 2040end-of-line key commands (usually, ^A and ^E) cycle through the
1857beginning/end-of-line and then beginning/end of topic, etc. See new 2041beginning/end-of-line and then beginning/end of topic, etc. See new
@@ -1877,10 +2061,6 @@ coordinating with deactivation of allout-mode. Both that and the mode
1877activation hook, `allout-mode-hook' are now run after the `allout-mode' 2061activation hook, `allout-mode-hook' are now run after the `allout-mode'
1878variable is changed, rather than before. 2062variable is changed, rather than before.
1879 2063
1880*** Default command prefix was changed to "\C-c " (control-c space), to
1881avoid intruding on user's keybinding space. Customize the
1882`allout-command-prefix' variable to your preference.
1883
1884*** Allout now uses text overlay's `invisible' property for concealed text, 2064*** Allout now uses text overlay's `invisible' property for concealed text,
1885instead of selective-display. This simplifies the code, in particular 2065instead of selective-display. This simplifies the code, in particular
1886avoiding the need for kludges for isearch dynamic-display, discretionary 2066avoiding the need for kludges for isearch dynamic-display, discretionary
@@ -1911,149 +2091,274 @@ handling of edits of concealed text, undo concerns, etc.
1911 - many, many other, more minor tweaks, fixes, and refinements. 2091 - many, many other, more minor tweaks, fixes, and refinements.
1912 - version number incremented to 2.2 2092 - version number incremented to 2.2
1913 2093
1914** The variable `woman-topic-at-point' is renamed 2094** Hideshow mode changes
1915to `woman-use-topic-at-point' and behaves differently: if this
1916variable is non-nil, the `woman' command uses the word at point
1917automatically, without asking for a confirmation. Otherwise, the word
1918at point is suggested as default, but not inserted at the prompt.
1919 2095
1920** Changes to cmuscheme 2096*** New variable `hs-set-up-overlay' allows customization of the overlay
2097used to effect hiding for hideshow minor mode. Integration with isearch
2098handles the overlay property `display' specially, preserving it during
2099temporary overlay showing in the course of an isearch operation.
1921 2100
1922*** Emacs now offers to start Scheme if the user tries to 2101*** New variable `hs-allow-nesting' non-nil means that hiding a block does
1923evaluate a Scheme expression but no Scheme subprocess is running. 2102not discard the hidden state of any "internal" blocks; when the parent
2103block is later shown, the internal blocks remain hidden. Default is nil.
1924 2104
1925*** If the file ~/.emacs_NAME or ~/.emacs.d/init_NAME.scm (where NAME 2105** FFAP changes
1926is the name of the Scheme interpreter) exists, its contents are sent
1927to the Scheme subprocess upon startup.
1928 2106
1929*** There are new commands to instruct the Scheme interpreter to trace 2107*** New ffap commands and keybindings:
1930procedure calls (`scheme-trace-procedure') and to expand syntactic forms
1931(`scheme-expand-current-form'). The commands actually sent to the Scheme
1932subprocess are controlled by the user options `scheme-trace-command',
1933`scheme-untrace-command' and `scheme-expand-current-form'.
1934 2108
1935** Changes in Makefile mode 2109C-x C-r (`ffap-read-only'),
2110C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'),
2111C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'),
2112C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame').
1936 2113
1937*** Makefile mode has submodes for automake, gmake, makepp, BSD make and imake. 2114*** FFAP accepts wildcards in a file name by default.
1938 2115
1939The former two couldn't be differentiated before, and the latter three 2116C-x C-f passes the file name to `find-file' with non-nil WILDCARDS
1940are new. Font-locking is robust now and offers new customizable 2117argument, which visits multiple files, and C-x d passes it to `dired'.
1941faces.
1942 2118
1943*** The variable `makefile-query-one-target-method' has been renamed 2119** Changes in Skeleton
1944to `makefile-query-one-target-method-function'. The old name is still
1945available as alias.
1946 2120
1947** In Outline mode, `hide-body' no longer hides lines at the top 2121*** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction.
1948of the file that precede the first header line.
1949 2122
1950** Telnet now prompts you for a port number with C-u M-x telnet. 2123`@' has reverted to only setting `skeleton-positions' and no longer
2124sets `skeleton-point'. Skeletons which used @ to mark
2125`skeleton-point' independent of `_' should now use `-' instead. The
2126updated `skeleton-insert' docstring explains these new features along
2127with other details of skeleton construction.
1951 2128
1952** The terminal emulation code in term.el has been improved; it can 2129*** The variables `skeleton-transformation', `skeleton-filter', and
1953run most curses applications now. 2130`skeleton-pair-filter' have been renamed to
2131`skeleton-transformation-function', `skeleton-filter-function', and
2132`skeleton-pair-filter-function'. The old names are still available
2133as aliases.
1954 2134
1955** M-x diff uses Diff mode instead of Compilation mode. 2135** HTML/SGML changes
1956 2136
1957** Diff mode key bindings changed. 2137*** Emacs now tries to set up buffer coding systems for HTML/XML files
2138automatically.
1958 2139
1959These are the new bindings: 2140*** SGML mode has indentation and supports XML syntax.
2141The new variable `sgml-xml-mode' tells SGML mode to use XML syntax.
2142When this option is enabled, SGML tags are inserted in XML style,
2143i.e., there is always a closing tag.
2144By default, its setting is inferred on a buffer-by-buffer basis
2145from the file name or buffer contents.
1960 2146
1961C-c C-e diff-ediff-patch (old M-A) 2147*** The variable `sgml-transformation' has been renamed to
1962C-c C-n diff-restrict-view (old M-r) 2148`sgml-transformation-function'. The old name is still available as
1963C-c C-r diff-reverse-direction (old M-R) 2149alias.
1964C-c C-u diff-context->unified (old M-U)
1965C-c C-w diff-refine-hunk (old C-c C-r)
1966 2150
1967To convert unified to context format, use C-u C-c C-u. 2151*** `xml-mode' is now an alias for `sgml-mode', which has XML support.
1968In addition, C-c C-u now operates on the region
1969in Transient Mark mode when the mark is active.
1970 2152
1971** You can now customize `fill-nobreak-predicate' to control where 2153** TeX modes
1972filling can break lines. The value is now normally a list of
1973functions, but it can also be a single function, for compatibility.
1974 2154
1975Emacs provide two predicates, `fill-single-word-nobreak-p' and 2155*** New major mode Doctex mode, for *.dtx files.
1976`fill-french-nobreak-p', for use as the value of
1977`fill-nobreak-predicate'.
1978 2156
1979** M-x view-file and commands that use it now avoid interfering 2157*** C-c C-c prompts for a command to run, and tries to offer a good default.
1980with special modes such as Tar mode.
1981 2158
1982** Commands `winner-redo' and `winner-undo', from winner.el, are now 2159*** The user option `tex-start-options-string' has been replaced
1983bound to C-c <left> and C-c <right>, respectively. This is an 2160by two new user options: `tex-start-options', which should hold
1984incompatible change. 2161command-line options to feed to TeX, and `tex-start-commands' which should hold
2162TeX commands to use at startup.
1985 2163
1986** `global-whitespace-mode' is a new alias for `whitespace-global-mode'. 2164*** verbatim environments are now highlighted in courier by font-lock
2165and super/sub-scripts are made into super/sub-scripts.
1987 2166
1988** M-x compare-windows now can automatically skip non-matching text to 2167** RefTeX mode changes
1989resync points in both windows.
1990 2168
1991** New user option `add-log-always-start-new-record'. 2169*** Changes to RefTeX's table of contents
1992 2170
1993When this option is enabled, M-x add-change-log-entry always 2171The new command keys "<" and ">" in the TOC buffer promote/demote the
1994starts a new record regardless of when the last record is. 2172section at point or all sections in the current region, with full
2173support for multifile documents.
1995 2174
1996** PO translation files are decoded according to their MIME headers 2175The new command `reftex-toc-recenter' (`C-c -') shows the current
1997when Emacs visits them. 2176section in the TOC buffer without selecting the TOC window.
2177Recentering can happen automatically in idle time when the option
2178`reftex-auto-recenter-toc' is turned on. The highlight in the TOC
2179buffer stays when the focus moves to a different window. A dedicated
2180frame can show the TOC with the current section always automatically
2181highlighted. The frame is created and deleted from the toc buffer
2182with the `d' key.
1998 2183
1999** Info mode changes: 2184The toc window can be split off horizontally instead of vertically.
2185See new option `reftex-toc-split-windows-horizontally'.
2000 2186
2001*** A numeric prefix argument of `info' selects an Info buffer 2187Labels can be renamed globally from the table of contents using the
2002with the number appended to the `*info*' buffer name (e.g. "*info*<2>"). 2188key `M-%'.
2003 2189
2004*** isearch in Info uses Info-search and searches through multiple nodes. 2190The new command `reftex-goto-label' jumps directly to a label
2191location.
2005 2192
2006Before leaving the initial Info node isearch fails once with the error 2193*** Changes related to citations and BibTeX database files
2007message [initial node], and with subsequent C-s/C-r continues through
2008other nodes. When isearch fails for the rest of the manual, it wraps
2009around the whole manual to the top/final node. The user option
2010`Info-isearch-search' controls whether to use Info-search for isearch,
2011or the default isearch search function that wraps around the current
2012Info node.
2013 2194
2014*** New search commands: `Info-search-case-sensitively' (bound to S), 2195Commands that insert a citation now prompt for optional arguments when
2015`Info-search-backward', and `Info-search-next' which repeats the last 2196called with a prefix argument. Related new options are
2016search without prompting for a new search string. 2197`reftex-cite-prompt-optional-args' and `reftex-cite-cleanup-optional-args'.
2017 2198
2018*** New command `Info-history-forward' (bound to r and new toolbar icon) 2199The new command `reftex-create-bibtex-file' creates a BibTeX database
2019moves forward in history to the node you returned from after using 2200with all entries referenced in the current document. The keys "e" and
2020`Info-history-back' (renamed from `Info-last'). 2201"E" allow to produce a BibTeX database file from entries marked in a
2202citation selection buffer.
2021 2203
2022*** New command `Info-history' (bound to L) displays a menu of visited nodes. 2204The command `reftex-citation' uses the word in the buffer before the
2205cursor as a default search string.
2023 2206
2024*** New command `Info-toc' (bound to T) creates a node with table of contents 2207The support for chapterbib has been improved. Different chapters can
2025from the tree structure of menus of the current Info file. 2208now use BibTeX or an explicit `thebibliography' environment.
2026 2209
2027*** New command `info-apropos' searches the indices of the known 2210The macros which specify the bibliography file (like \bibliography)
2028Info files on your system for a string, and builds a menu of the 2211can be configured with the new option `reftex-bibliography-commands'.
2029possible matches.
2030 2212
2031*** New command `Info-copy-current-node-name' (bound to w) copies 2213Support for jurabib has been added.
2032the current Info node name into the kill ring. With a zero prefix
2033arg, puts the node name inside the `info' function call.
2034 2214
2035*** New face `info-xref-visited' distinguishes visited nodes from unvisited 2215*** Global index matched may be verified with a user function.
2036and a new option `Info-fontify-visited-nodes' to control this.
2037 2216
2038*** http and ftp links in Info are now operational: they look like cross 2217During global indexing, a user function can verify an index match.
2039references and following them calls `browse-url'. 2218See new option `reftex-index-verify-function'.
2040 2219
2041*** Info now hides node names in menus and cross references by default. 2220*** Parsing documents with many labels can be sped up.
2042 2221
2043If you prefer the old behavior, you can set the new user option 2222Operating in a document with thousands of labels can be sped up
2044`Info-hide-note-references' to nil. 2223considerably by allowing RefTeX to derive the type of a label directly
2224from the label prefix like `eq:' or `fig:'. The option
2225`reftex-trust-label-prefix' needs to be configured in order to enable
2226this feature. While the speed-up is significant, this may reduce the
2227quality of the context offered by RefTeX to describe a label.
2045 2228
2046*** Images in Info pages are supported. 2229*** Miscellaneous changes
2047 2230
2048Info pages show embedded images, in Emacs frames with image support. 2231The macros which input a file in LaTeX (like \input, \include) can be
2049Info documentation that includes images, processed with makeinfo 2232configured in the new option `reftex-include-file-commands'.
2050version 4.7 or newer, compiles to Info pages with embedded images.
2051 2233
2052*** The default value for `Info-scroll-prefer-subnodes' is now nil. 2234RefTeX supports global incremental search.
2053 2235
2054*** `Info-index' offers completion. 2236** BibTeX mode
2237
2238*** The new command `bibtex-url' browses a URL for the BibTeX entry at
2239point (bound to C-c C-l and mouse-2, RET on clickable fields).
2240
2241*** The new command `bibtex-entry-update' (bound to C-c C-u) updates
2242an existing BibTeX entry by inserting fields that may occur but are not
2243present.
2244
2245*** New `bibtex-entry-format' option `required-fields', enabled by default.
2246
2247*** `bibtex-maintain-sorted-entries' can take values `plain',
2248`crossref', and `entry-class' which control the sorting scheme used
2249for BibTeX entries. `bibtex-sort-entry-class' controls the sorting
2250scheme `entry-class'. TAB completion for reference keys and
2251automatic detection of duplicates does not require anymore that
2252`bibtex-maintain-sorted-entries' is non-nil.
2253
2254*** The new command `bibtex-complete' completes word fragment before
2255point according to context (bound to M-tab).
2256
2257*** In BibTeX mode the command `fill-paragraph' (M-q) fills
2258individual fields of a BibTeX entry.
2259
2260*** The new variable `bibtex-autofill-types' contains a list of entry
2261types for which fields are filled automatically (if possible).
2262
2263*** The new commands `bibtex-find-entry' and `bibtex-find-crossref'
2264locate entries and crossref'd entries (bound to C-c C-s and C-c C-x).
2265Crossref fields are clickable (bound to mouse-2, RET).
2266
2267*** The new variables `bibtex-files' and `bibtex-file-path' define a set
2268of BibTeX files that are searched for entry keys.
2269
2270*** The new command `bibtex-validate-globally' checks for duplicate keys
2271in multiple BibTeX files.
2272
2273*** If the new variable `bibtex-autoadd-commas' is non-nil,
2274automatically add missing commas at end of BibTeX fields.
2275
2276*** The new command `bibtex-copy-summary-as-kill' pushes summary
2277of BibTeX entry to kill ring (bound to C-c C-t).
2055 2278
2056** Lisp mode changes: 2279*** If the new variable `bibtex-parse-keys-fast' is non-nil,
2280use fast but simplified algorithm for parsing BibTeX keys.
2281
2282*** The new variables bibtex-expand-strings and
2283bibtex-autokey-expand-strings control the expansion of strings when
2284extracting the content of a BibTeX field.
2285
2286*** The variables `bibtex-autokey-name-case-convert' and
2287`bibtex-autokey-titleword-case-convert' have been renamed to
2288`bibtex-autokey-name-case-convert-function' and
2289`bibtex-autokey-titleword-case-convert-function'. The old names are
2290still available as aliases.
2291
2292** GUD changes
2293
2294*** The new package gdb-ui.el provides an enhanced graphical interface to
2295GDB. You can interact with GDB through the GUD buffer in the usual way, but
2296there are also further buffers which control the execution and describe the
2297state of your program. It can separate the input/output of your program from
2298that of GDB and watches expressions in the speedbar. It also uses features of
2299Emacs 21/22 such as the toolbar, and bitmaps in the fringe to indicate
2300breakpoints.
2301
2302To use this package just type M-x gdb. See the Emacs manual if you want the
2303old behaviour.
2304
2305*** GUD mode has its own tool bar for controlling execution of the inferior
2306and other common debugger commands.
2307
2308*** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program
2309counter to the specified source line (the one where point is).
2310
2311*** The variable tooltip-gud-tips-p has been removed. GUD tooltips can now be
2312toggled independently of normal tooltips with the minor mode
2313`gud-tooltip-mode'.
2314
2315*** In graphical mode, with a C program, GUD Tooltips have been extended to
2316display the #define directive associated with an identifier when program is
2317not executing.
2318
2319*** GUD mode improvements for jdb:
2320
2321**** Search for source files using jdb classpath and class information.
2322Fast startup since there is no need to scan all source files up front.
2323There is also no need to create and maintain lists of source
2324directories to scan. Look at `gud-jdb-use-classpath' and
2325`gud-jdb-classpath' customization variables documentation.
2326
2327**** The previous method of searching for source files has been
2328preserved in case someone still wants/needs to use it.
2329Set `gud-jdb-use-classpath' to nil.
2330
2331**** Supports the standard breakpoint (gud-break, gud-clear)
2332set/clear operations from Java source files under the classpath, stack
2333traversal (gud-up, gud-down), and run until current stack finish
2334(gud-finish).
2335
2336**** Supports new jdb (Java 1.2 and later) in addition to oldjdb
2337(Java 1.1 jdb).
2338
2339*** Added jdb Customization Variables
2340
2341**** `gud-jdb-command-name'. What command line to use to invoke jdb.
2342
2343**** `gud-jdb-use-classpath'. Allows selection of java source file searching
2344method: set to t for new method, nil to scan `gud-jdb-directories' for
2345java sources (previous method).
2346
2347**** `gud-jdb-directories'. List of directories to scan and search for Java
2348classes using the original gud-jdb method (if `gud-jdb-use-classpath'
2349is nil).
2350
2351*** Minor Improvements
2352
2353**** The STARTTLS wrapper (starttls.el) can now use GNUTLS
2354instead of the OpenSSL based `starttls' tool. For backwards
2355compatibility, it prefers `starttls', but you can toggle
2356`starttls-use-gnutls' to switch to GNUTLS (or simply remove the
2357`starttls' tool).
2358
2359**** Do not allow debugger output history variable to grow without bounds.
2360
2361** Lisp mode changes
2057 2362
2058*** Lisp mode now uses `font-lock-doc-face' for doc strings. 2363*** Lisp mode now uses `font-lock-doc-face' for doc strings.
2059 2364
@@ -2070,33 +2375,46 @@ by the new function `eval-expression-print-format'. The same
2070function also defines the result format for `eval-expression' (M-:), 2375function also defines the result format for `eval-expression' (M-:),
2071`eval-print-last-sexp' (C-j) and some edebug evaluation functions. 2376`eval-print-last-sexp' (C-j) and some edebug evaluation functions.
2072 2377
2073** CC mode changes. 2378** Changes to cmuscheme
2074 2379
2075*** The CC Mode manual has been extensively revised. 2380*** Emacs now offers to start Scheme if the user tries to
2076The information about using CC Mode has been separated from the larger 2381evaluate a Scheme expression but no Scheme subprocess is running.
2077and more difficult chapters about configuration.
2078 2382
2079*** Changes in Key Sequences 2383*** If the file ~/.emacs_NAME or ~/.emacs.d/init_NAME.scm (where NAME
2080**** c-toggle-auto-hungry-state is no longer bound to C-c C-t. 2384is the name of the Scheme interpreter) exists, its contents are sent
2385to the Scheme subprocess upon startup.
2081 2386
2082**** c-toggle-hungry-state is no longer bound to C-c C-d. 2387*** There are new commands to instruct the Scheme interpreter to trace
2083This binding has been taken over by c-hungry-delete-forwards. 2388procedure calls (`scheme-trace-procedure') and to expand syntactic forms
2389(`scheme-expand-current-form'). The commands actually sent to the Scheme
2390subprocess are controlled by the user options `scheme-trace-command',
2391`scheme-untrace-command' and `scheme-expand-current-form'.
2084 2392
2085**** c-toggle-auto-state (C-c C-t) has been renamed to c-toggle-auto-newline. 2393** Ewoc changes
2086c-toggle-auto-state remains as an alias.
2087 2394
2088**** The new commands c-hungry-backspace and c-hungry-delete-forwards 2395*** The new function `ewoc-delete' deletes specified nodes.
2089have key bindings C-c C-DEL (or C-c DEL, for the benefit of TTYs) and
2090C-c C-d (or C-c C-<delete> or C-c <delete>) respectively. These
2091commands delete entire blocks of whitespace with a single
2092key-sequence. [N.B. "DEL" is the <backspace> key.]
2093 2396
2094**** The new command c-toggle-electric-mode is bound to C-c C-l. 2397*** `ewoc-create' now takes optional arg NOSEP, which inhibits insertion of
2398a newline after each pretty-printed entry and after the header and footer.
2399This allows you to create multiple-entry ewocs on a single line and to
2400effect "invisible" nodes by arranging for the pretty-printer to not print
2401anything for those nodes.
2095 2402
2096**** The new command c-subword-mode is bound to C-c C-w. 2403For example, these two sequences of expressions behave identically:
2097 2404
2098*** C-c C-s (`c-show-syntactic-information') now highlights the anchor 2405;; NOSEP nil
2099position(s). 2406(defun PP (data) (insert (format "%S" data)))
2407(ewoc-create 'PP "start\n")
2408
2409;; NOSEP t
2410(defun PP (data) (insert (format "%S\n" data)))
2411(ewoc-create 'PP "start\n\n" "\n" t)
2412
2413** CC mode changes
2414
2415*** The CC Mode manual has been extensively revised.
2416The information about using CC Mode has been separated from the larger
2417and more difficult chapters about configuration.
2100 2418
2101*** New Minor Modes 2419*** New Minor Modes
2102**** Electric Minor Mode toggles the electric action of non-alphabetic keys. 2420**** Electric Minor Mode toggles the electric action of non-alphabetic keys.
@@ -2110,15 +2428,41 @@ disconcerting. Its current state is displayed in the mode line with an
2110letters in StudlyCapsIdentifiers. You enable this feature by C-c C-w. It can 2428letters in StudlyCapsIdentifiers. You enable this feature by C-c C-w. It can
2111also be used in non-CC Mode buffers. :-) Contributed by Masatake YAMATO. 2429also be used in non-CC Mode buffers. :-) Contributed by Masatake YAMATO.
2112 2430
2113*** New clean-ups 2431*** Support for the AWK language.
2432Support for the AWK language has been introduced. The implementation is
2433based around GNU AWK version 3.1, but it should work pretty well with
2434any AWK. As yet, not all features of CC Mode have been adapted for AWK.
2435Here is a summary:
2114 2436
2115**** `comment-close-slash'. 2437**** Indentation Engine
2116With this clean-up, a block (i.e. c-style) comment can be terminated by 2438The CC Mode indentation engine fully supports AWK mode.
2117typing a slash at the start of a line.
2118 2439
2119**** `c-one-liner-defun' 2440AWK mode handles code formatted in the conventional AWK fashion: `{'s
2120This clean-up compresses a short enough defun (for example, an AWK 2441which start actions, user-defined functions, or compound statements are
2121pattern/action pair) onto a single line. "Short enough" is configurable. 2442placed on the same line as the associated construct; the matching `}'s
2443are normally placed under the start of the respective pattern, function
2444definition, or structured statement.
2445
2446The predefined line-up functions haven't yet been adapted for AWK
2447mode, though some of them may work serendipitously. There shouldn't
2448be any problems writing custom indentation functions for AWK mode.
2449
2450**** Font Locking
2451There is a single level of font locking in AWK mode, rather than the
2452three distinct levels the other modes have. There are several
2453idiosyncrasies in AWK mode's font-locking due to the peculiarities of
2454the AWK language itself.
2455
2456**** Comment and Movement Commands
2457These commands all work for AWK buffers. The notion of "defun" has
2458been augmented to include AWK pattern-action pairs - the standard
2459"defun" commands on key sequences C-M-a, C-M-e, and C-M-h use this
2460extended definition.
2461
2462**** "awk" style, Auto-newline Insertion and Clean-ups
2463A new style, "awk" has been introduced, and this is now the default
2464style for AWK code. With auto-newline enabled, the clean-up
2465c-one-liner-defun (see above) is useful.
2122 2466
2123*** Font lock support. 2467*** Font lock support.
2124CC Mode now provides font lock support for all its languages. This 2468CC Mode now provides font lock support for all its languages. This
@@ -2181,41 +2525,27 @@ The special "@" declarations in Objective-C are handled correctly.
2181All the keywords used in CORBA IDL, PSDL, and CIDL are recognized and 2525All the keywords used in CORBA IDL, PSDL, and CIDL are recognized and
2182handled correctly, also wrt indentation. 2526handled correctly, also wrt indentation.
2183 2527
2184*** Support for the AWK language. 2528*** Changes in Key Sequences
2185Support for the AWK language has been introduced. The implementation is 2529**** c-toggle-auto-hungry-state is no longer bound to C-c C-t.
2186based around GNU AWK version 3.1, but it should work pretty well with
2187any AWK. As yet, not all features of CC Mode have been adapted for AWK.
2188Here is a summary:
2189 2530
2190**** Indentation Engine 2531**** c-toggle-hungry-state is no longer bound to C-c C-d.
2191The CC Mode indentation engine fully supports AWK mode. 2532This binding has been taken over by c-hungry-delete-forwards.
2192 2533
2193AWK mode handles code formatted in the conventional AWK fashion: `{'s 2534**** c-toggle-auto-state (C-c C-t) has been renamed to c-toggle-auto-newline.
2194which start actions, user-defined functions, or compound statements are 2535c-toggle-auto-state remains as an alias.
2195placed on the same line as the associated construct; the matching `}'s
2196are normally placed under the start of the respective pattern, function
2197definition, or structured statement.
2198 2536
2199The predefined line-up functions haven't yet been adapted for AWK 2537**** The new commands c-hungry-backspace and c-hungry-delete-forwards
2200mode, though some of them may work serendipitously. There shouldn't 2538have key bindings C-c C-DEL (or C-c DEL, for the benefit of TTYs) and
2201be any problems writing custom indentation functions for AWK mode. 2539C-c C-d (or C-c C-<delete> or C-c <delete>) respectively. These
2540commands delete entire blocks of whitespace with a single
2541key-sequence. [N.B. "DEL" is the <backspace> key.]
2202 2542
2203**** Font Locking 2543**** The new command c-toggle-electric-mode is bound to C-c C-l.
2204There is a single level of font locking in AWK mode, rather than the
2205three distinct levels the other modes have. There are several
2206idiosyncrasies in AWK mode's font-locking due to the peculiarities of
2207the AWK language itself.
2208 2544
2209**** Comment and Movement Commands 2545**** The new command c-subword-mode is bound to C-c C-w.
2210These commands all work for AWK buffers. The notion of "defun" has
2211been augmented to include AWK pattern-action pairs - the standard
2212"defun" commands on key sequences C-M-a, C-M-e, and C-M-h use this
2213extended definition.
2214 2546
2215**** "awk" style, Auto-newline Insertion and Clean-ups 2547*** C-c C-s (`c-show-syntactic-information') now highlights the anchor
2216A new style, "awk" has been introduced, and this is now the default 2548position(s).
2217style for AWK code. With auto-newline enabled, the clean-up
2218c-one-liner-defun (see above) is useful.
2219 2549
2220*** New syntactic symbols in IDL mode. 2550*** New syntactic symbols in IDL mode.
2221The top level constructs "module" and "composition" (from CIDL) are 2551The top level constructs "module" and "composition" (from CIDL) are
@@ -2346,6 +2676,16 @@ cases (something which was hardcoded earlier).
2346*** New function `c-context-open-line'. 2676*** New function `c-context-open-line'.
2347It's the open-line equivalent of `c-context-line-break'. 2677It's the open-line equivalent of `c-context-line-break'.
2348 2678
2679*** New clean-ups
2680
2681**** `comment-close-slash'.
2682With this clean-up, a block (i.e. c-style) comment can be terminated by
2683typing a slash at the start of a line.
2684
2685**** `c-one-liner-defun'
2686This clean-up compresses a short enough defun (for example, an AWK
2687pattern/action pair) onto a single line. "Short enough" is configurable.
2688
2349*** New lineup functions 2689*** New lineup functions
2350 2690
2351**** `c-lineup-string-cont' 2691**** `c-lineup-string-cont'
@@ -2368,6 +2708,10 @@ Provides better indentation inside asm blocks.
2368**** `c-lineup-argcont' 2708**** `c-lineup-argcont'
2369Lines up continued function arguments after the preceding comma. 2709Lines up continued function arguments after the preceding comma.
2370 2710
2711*** Added toggle for syntactic indentation.
2712The function `c-toggle-syntactic-indentation' can be used to toggle
2713syntactic indentation.
2714
2371*** Better caching of the syntactic context. 2715*** Better caching of the syntactic context.
2372CC Mode caches the positions of the opening parentheses (of any kind) 2716CC Mode caches the positions of the opening parentheses (of any kind)
2373of the lists surrounding the point. Those positions are used in many 2717of the lists surrounding the point. Those positions are used in many
@@ -2393,386 +2737,194 @@ point doesn't have to be immediately before the block to indent.
2393Also, only the block and the closing line is indented; the current 2737Also, only the block and the closing line is indented; the current
2394line is left untouched. 2738line is left untouched.
2395 2739
2396*** Added toggle for syntactic indentation. 2740** Changes in Makefile mode
2397The function `c-toggle-syntactic-indentation' can be used to toggle
2398syntactic indentation.
2399
2400** In sh-script, a continuation line is only indented if the backslash was
2401preceded by a SPC or a TAB.
2402
2403** Perl mode has a new variable `perl-indent-continued-arguments'.
2404
2405** The old Octave mode bindings C-c f and C-c i have been changed
2406to C-c C-f and C-c C-i. The C-c C-i subcommands now have duplicate
2407bindings on control characters--thus, C-c C-i C-b is the same as
2408C-c C-i b, and so on.
2409
2410** Fortran mode changes:
2411
2412*** Fortran mode does more font-locking by default. Use level 3
2413highlighting for the old default.
2414
2415*** Fortran mode has a new variable `fortran-directive-re'.
2416Adapt this to match the format of any compiler directives you use.
2417Lines that match are never indented, and are given distinctive font-locking.
2418
2419*** F90 mode and Fortran mode have new navigation commands
2420`f90-end-of-block', `f90-beginning-of-block', `f90-next-block',
2421`f90-previous-block', `fortran-end-of-block',
2422`fortran-beginning-of-block'.
2423
2424*** F90 mode and Fortran mode have support for `hs-minor-mode' (hideshow).
2425It cannot deal with every code format, but ought to handle a sizeable
2426majority.
2427
2428*** The new function `f90-backslash-not-special' can be used to change
2429the syntax of backslashes in F90 buffers.
2430
2431** Reftex mode changes
2432
2433*** Changes to RefTeX's table of contents
2434
2435The new command keys "<" and ">" in the TOC buffer promote/demote the
2436section at point or all sections in the current region, with full
2437support for multifile documents.
2438
2439The new command `reftex-toc-recenter' (`C-c -') shows the current
2440section in the TOC buffer without selecting the TOC window.
2441Recentering can happen automatically in idle time when the option
2442`reftex-auto-recenter-toc' is turned on. The highlight in the TOC
2443buffer stays when the focus moves to a different window. A dedicated
2444frame can show the TOC with the current section always automatically
2445highlighted. The frame is created and deleted from the toc buffer
2446with the `d' key.
2447
2448The toc window can be split off horizontally instead of vertically.
2449See new option `reftex-toc-split-windows-horizontally'.
2450
2451Labels can be renamed globally from the table of contents using the
2452key `M-%'.
2453
2454The new command `reftex-goto-label' jumps directly to a label
2455location.
2456
2457*** Changes related to citations and BibTeX database files
2458
2459Commands that insert a citation now prompt for optional arguments when
2460called with a prefix argument. Related new options are
2461`reftex-cite-prompt-optional-args' and `reftex-cite-cleanup-optional-args'.
2462
2463The new command `reftex-create-bibtex-file' creates a BibTeX database
2464with all entries referenced in the current document. The keys "e" and
2465"E" allow to produce a BibTeX database file from entries marked in a
2466citation selection buffer.
2467
2468The command `reftex-citation' uses the word in the buffer before the
2469cursor as a default search string.
2470
2471The support for chapterbib has been improved. Different chapters can
2472now use BibTeX or an explicit `thebibliography' environment.
2473
2474The macros which specify the bibliography file (like \bibliography)
2475can be configured with the new option `reftex-bibliography-commands'.
2476
2477Support for jurabib has been added.
2478
2479*** Global index matched may be verified with a user function
2480
2481During global indexing, a user function can verify an index match.
2482See new option `reftex-index-verify-function'.
2483
2484*** Parsing documents with many labels can be sped up.
2485
2486Operating in a document with thousands of labels can be sped up
2487considerably by allowing RefTeX to derive the type of a label directly
2488from the label prefix like `eq:' or `fig:'. The option
2489`reftex-trust-label-prefix' needs to be configured in order to enable
2490this feature. While the speed-up is significant, this may reduce the
2491quality of the context offered by RefTeX to describe a label.
2492
2493*** Miscellaneous changes
2494
2495The macros which input a file in LaTeX (like \input, \include) can be
2496configured in the new option `reftex-include-file-commands'.
2497
2498RefTeX supports global incremental search.
2499
2500** Prolog mode has a new variable `prolog-font-lock-keywords'
2501to support use of font-lock.
2502
2503** HTML/SGML changes:
2504
2505*** Emacs now tries to set up buffer coding systems for HTML/XML files
2506automatically.
2507
2508*** SGML mode has indentation and supports XML syntax.
2509The new variable `sgml-xml-mode' tells SGML mode to use XML syntax.
2510When this option is enabled, SGML tags are inserted in XML style,
2511i.e., there is always a closing tag.
2512By default, its setting is inferred on a buffer-by-buffer basis
2513from the file name or buffer contents.
2514
2515*** The variable `sgml-transformation' has been renamed to
2516`sgml-transformation-function'. The old name is still available as
2517alias.
2518
2519*** `xml-mode' is now an alias for `sgml-mode', which has XML support.
2520
2521** TeX modes:
2522
2523*** C-c C-c prompts for a command to run, and tries to offer a good default.
2524
2525*** The user option `tex-start-options-string' has been replaced
2526by two new user options: `tex-start-options', which should hold
2527command-line options to feed to TeX, and `tex-start-commands' which should hold
2528TeX commands to use at startup.
2529
2530*** verbatim environments are now highlighted in courier by font-lock
2531and super/sub-scripts are made into super/sub-scripts.
2532
2533*** New major mode Doctex mode, for *.dtx files.
2534
2535** BibTeX mode:
2536
2537*** The new command `bibtex-url' browses a URL for the BibTeX entry at
2538point (bound to C-c C-l and mouse-2, RET on clickable fields).
2539
2540*** The new command `bibtex-entry-update' (bound to C-c C-u) updates
2541an existing BibTeX entry by inserting fields that may occur but are not
2542present.
2543
2544*** New `bibtex-entry-format' option `required-fields', enabled by default.
2545
2546*** `bibtex-maintain-sorted-entries' can take values `plain',
2547`crossref', and `entry-class' which control the sorting scheme used
2548for BibTeX entries. `bibtex-sort-entry-class' controls the sorting
2549scheme `entry-class'. TAB completion for reference keys and
2550automatic detection of duplicates does not require anymore that
2551`bibtex-maintain-sorted-entries' is non-nil.
2552
2553*** If the new variable `bibtex-parse-keys-fast' is non-nil,
2554use fast but simplified algorithm for parsing BibTeX keys.
2555
2556*** If the new variable `bibtex-autoadd-commas' is non-nil,
2557automatically add missing commas at end of BibTeX fields.
2558
2559*** The new variable `bibtex-autofill-types' contains a list of entry
2560types for which fields are filled automatically (if possible).
2561 2741
2562*** The new command `bibtex-complete' completes word fragment before 2742*** Makefile mode has submodes for automake, gmake, makepp, BSD make and imake.
2563point according to context (bound to M-tab).
2564 2743
2565*** The new commands `bibtex-find-entry' and `bibtex-find-crossref' 2744The former two couldn't be differentiated before, and the latter three
2566locate entries and crossref'd entries (bound to C-c C-s and C-c C-x). 2745are new. Font-locking is robust now and offers new customizable
2567Crossref fields are clickable (bound to mouse-2, RET). 2746faces.
2568 2747
2569*** In BibTeX mode the command `fill-paragraph' (M-q) fills 2748*** The variable `makefile-query-one-target-method' has been renamed
2570individual fields of a BibTeX entry. 2749to `makefile-query-one-target-method-function'. The old name is still
2750available as alias.
2571 2751
2572*** The new variables `bibtex-files' and `bibtex-file-path' define a set 2752** Sql changes
2573of BibTeX files that are searched for entry keys.
2574 2753
2575*** The new command `bibtex-validate-globally' checks for duplicate keys 2754*** The variable `sql-product' controls the highlighting of different
2576in multiple BibTeX files. 2755SQL dialects. This variable can be set globally via Customize, on a
2756buffer-specific basis via local variable settings, or for the current
2757session using the new SQL->Product submenu. (This menu replaces the
2758SQL->Highlighting submenu.)
2577 2759
2578*** The new command `bibtex-copy-summary-as-kill' pushes summary 2760The following values are supported:
2579of BibTeX entry to kill ring (bound to C-c C-t).
2580 2761
2581*** The new variables bibtex-expand-strings and 2762 ansi ANSI Standard (default)
2582bibtex-autokey-expand-strings control the expansion of strings when 2763 db2 DB2
2583extracting the content of a BibTeX field. 2764 informix Informix
2765 ingres Ingres
2766 interbase Interbase
2767 linter Linter
2768 ms Microsoft
2769 mysql MySQL
2770 oracle Oracle
2771 postgres Postgres
2772 solid Solid
2773 sqlite SQLite
2774 sybase Sybase
2584 2775
2585*** The variables `bibtex-autokey-name-case-convert' and 2776The current product name will be shown on the mode line following the
2586`bibtex-autokey-titleword-case-convert' have been renamed to 2777SQL mode indicator.
2587`bibtex-autokey-name-case-convert-function' and
2588`bibtex-autokey-titleword-case-convert-function'. The old names are
2589still available as aliases.
2590 2778
2591** In Artist mode the variable `artist-text-renderer' has been 2779The technique of setting `sql-mode-font-lock-defaults' directly in
2592renamed to `artist-text-renderer-function'. The old name is still 2780your `.emacs' will no longer establish the default highlighting -- Use
2593available as alias. 2781`sql-product' to accomplish this.
2594 2782
2595** In Enriched mode, `set-left-margin' and `set-right-margin' are now 2783ANSI keywords are always highlighted.
2596by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l'
2597and `C-c C-r'.
2598 2784
2599** GUD changes: 2785*** The function `sql-add-product-keywords' can be used to add
2786font-lock rules to the product specific rules. For example, to have
2787all identifiers ending in `_t' under MS SQLServer treated as a type,
2788you would use the following line in your .emacs file:
2600 2789
2601*** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program 2790 (sql-add-product-keywords 'ms
2602counter to the specified source line (the one where point is). 2791 '(("\\<\\w+_t\\>" . font-lock-type-face)))
2603 2792
2604*** GUD mode has its own tool bar for controlling execution of the inferior 2793*** Oracle support includes keyword highlighting for Oracle 9i.
2605and other common debugger commands.
2606 2794
2607*** The new package gdb-ui.el provides an enhanced graphical interface to 2795Most SQL and PL/SQL keywords are implemented. SQL*Plus commands are
2608GDB. You can interact with GDB through the GUD buffer in the usual way, but 2796highlighted in `font-lock-doc-face'.
2609there are also further buffers which control the execution and describe the
2610state of your program. It can separate the input/output of your program from
2611that of GDB and watches expressions in the speedbar. It also uses features of
2612Emacs 21/22 such as the toolbar, and bitmaps in the fringe to indicate
2613breakpoints.
2614 2797
2615To use this package just type M-x gdb. See the Emacs manual if you want the 2798*** Microsoft SQLServer support has been significantly improved.
2616old behaviour.
2617 2799
2618*** The variable tooltip-gud-tips-p has been removed. GUD tooltips can now be 2800Keyword highlighting for SqlServer 2000 is implemented.
2619toggled independently of normal tooltips with the minor mode 2801sql-interactive-mode defaults to use osql, rather than isql, because
2620`gud-tooltip-mode'. 2802osql flushes its error stream more frequently. Thus error messages
2803are displayed when they occur rather than when the session is
2804terminated.
2621 2805
2622*** In graphical mode, with a C program, GUD Tooltips have been extended to 2806If the username and password are not provided to `sql-ms', osql is
2623display the #define directive associated with an identifier when program is 2807called with the `-E' command line argument to use the operating system
2624not executing. 2808credentials to authenticate the user.
2625 2809
2626** GUD mode improvements for jdb: 2810*** Postgres support is enhanced.
2811Keyword highlighting of Postgres 7.3 is implemented. Prompting for
2812the username and the pgsql `-U' option is added.
2627 2813
2628*** Search for source files using jdb classpath and class information. 2814*** MySQL support is enhanced.
2629Fast startup since there is no need to scan all source files up front. 2815Keyword highlighting of MySql 4.0 is implemented.
2630There is also no need to create and maintain lists of source
2631directories to scan. Look at `gud-jdb-use-classpath' and
2632`gud-jdb-classpath' customization variables documentation.
2633 2816
2634*** Supports the standard breakpoint (gud-break, gud-clear) 2817*** Imenu support has been enhanced to locate tables, views, indexes,
2635set/clear operations from Java source files under the classpath, stack 2818packages, procedures, functions, triggers, sequences, rules, and
2636traversal (gud-up, gud-down), and run until current stack finish 2819defaults.
2637(gud-finish).
2638 2820
2639*** Supports new jdb (Java 1.2 and later) in addition to oldjdb 2821*** Added SQL->Start SQLi Session menu entry which calls the
2640(Java 1.1 jdb). 2822appropriate `sql-interactive-mode' wrapper for the current setting of
2823`sql-product'.
2641 2824
2642*** The previous method of searching for source files has been 2825*** sql.el supports the SQLite interpreter--call 'sql-sqlite'.
2643preserved in case someone still wants/needs to use it.
2644Set `gud-jdb-use-classpath' to nil.
2645 2826
2646*** Added Customization Variables 2827** Fortran mode changes
2647 2828
2648**** `gud-jdb-command-name'. What command line to use to invoke jdb. 2829*** F90 mode and Fortran mode have support for `hs-minor-mode' (hideshow).
2830It cannot deal with every code format, but ought to handle a sizeable
2831majority.
2649 2832
2650**** `gud-jdb-use-classpath'. Allows selection of java source file searching 2833*** F90 mode and Fortran mode have new navigation commands
2651method: set to t for new method, nil to scan `gud-jdb-directories' for 2834`f90-end-of-block', `f90-beginning-of-block', `f90-next-block',
2652java sources (previous method). 2835`f90-previous-block', `fortran-end-of-block',
2836`fortran-beginning-of-block'.
2653 2837
2654**** `gud-jdb-directories'. List of directories to scan and search for Java 2838*** Fortran mode does more font-locking by default. Use level 3
2655classes using the original gud-jdb method (if `gud-jdb-use-classpath' 2839highlighting for the old default.
2656is nil).
2657 2840
2658*** Minor Improvements 2841*** Fortran mode has a new variable `fortran-directive-re'.
2842Adapt this to match the format of any compiler directives you use.
2843Lines that match are never indented, and are given distinctive font-locking.
2659 2844
2660**** The STARTTLS wrapper (starttls.el) can now use GNUTLS 2845*** The new function `f90-backslash-not-special' can be used to change
2661instead of the OpenSSL based `starttls' tool. For backwards 2846the syntax of backslashes in F90 buffers.
2662compatibility, it prefers `starttls', but you can toggle
2663`starttls-use-gnutls' to switch to GNUTLS (or simply remove the
2664`starttls' tool).
2665 2847
2666**** Do not allow debugger output history variable to grow without bounds. 2848** Miscellaneous programming mode changes
2667 2849
2668** Auto-Revert changes: 2850*** In sh-script, a continuation line is only indented if the backslash was
2851preceded by a SPC or a TAB.
2669 2852
2670*** You can now use Auto Revert mode to `tail' a file. 2853*** Perl mode has a new variable `perl-indent-continued-arguments'.
2671 2854
2672If point is at the end of a file buffer before reverting, Auto Revert 2855*** The old Octave mode bindings C-c f and C-c i have been changed
2673mode keeps it at the end after reverting. Similarly if point is 2856to C-c C-f and C-c C-i. The C-c C-i subcommands now have duplicate
2674displayed at the end of a file buffer in any window, it stays at 2857bindings on control characters--thus, C-c C-i C-b is the same as
2675the end of the buffer in that window. This allows to tail a file: 2858C-c C-i b, and so on.
2676just put point at the end of the buffer and it stays there. This
2677rule applies to file buffers. For non-file buffers, the behavior can
2678be mode dependent.
2679 2859
2680If you are sure that the file will only change by growing at the end, 2860*** Prolog mode has a new variable `prolog-font-lock-keywords'
2681then you can tail the file more efficiently by using the new minor 2861to support use of font-lock.
2682mode Auto Revert Tail mode. The function `auto-revert-tail-mode'
2683toggles this mode.
2684 2862
2685*** Auto Revert mode is now more careful to avoid excessive reverts and 2863** VC Changes
2686other potential problems when deciding which non-file buffers to
2687revert. This matters especially if Global Auto Revert mode is enabled
2688and `global-auto-revert-non-file-buffers' is non-nil. Auto Revert
2689mode only reverts a non-file buffer if the buffer has a non-nil
2690`revert-buffer-function' and a non-nil `buffer-stale-function', which
2691decides whether the buffer should be reverted. Currently, this means
2692that auto reverting works for Dired buffers (although this may not
2693work properly on all operating systems) and for the Buffer Menu.
2694 2864
2695*** If the new user option `auto-revert-check-vc-info' is non-nil, Auto 2865*** New backends for Subversion and Meta-CVS.
2696Revert mode reliably updates version control info (such as the version
2697control number in the mode line), in all version controlled buffers in
2698which it is active. If the option is nil, the default, then this info
2699only gets updated whenever the buffer gets reverted.
2700 2866
2701** recentf changes. 2867*** The new variable `vc-cvs-global-switches' specifies switches that
2868are passed to any CVS command invoked by VC.
2702 2869
2703The recent file list is now automatically cleaned up when recentf mode is 2870These switches are used as "global options" for CVS, which means they
2704enabled. The new option `recentf-auto-cleanup' controls when to do 2871are inserted before the command name. For example, this allows you to
2705automatic cleanup. 2872specify a compression level using the `-z#' option for CVS.
2706 2873
2707The ten most recent files can be quickly opened by using the shortcut 2874*** The key C-x C-q only changes the read-only state of the buffer
2708keys 1 to 9, and 0, when the recent list is displayed in a buffer via 2875(toggle-read-only). It no longer checks files in or out.
2709the `recentf-open-files', or `recentf-open-more-files' commands.
2710 2876
2711The `recentf-keep' option replaces `recentf-keep-non-readable-files-p' 2877We made this change because we held a poll and found that many users
2712and provides a more general mechanism to customize which file names to 2878were unhappy with the previous behavior. If you do prefer this
2713keep in the recent list. 2879behavior, you can bind `vc-toggle-read-only' to C-x C-q in your
2880`.emacs' file:
2714 2881
2715With the more advanced option `recentf-filename-handlers', you can 2882 (global-set-key "\C-x\C-q" 'vc-toggle-read-only)
2716specify functions that successively transform recent file names. For
2717example, if set to `file-truename' plus `abbreviate-file-name', the
2718same file will not be in the recent list with different symbolic
2719links, and the file name will be abbreviated.
2720 2883
2721To follow naming convention, `recentf-menu-append-commands-flag' 2884The function `vc-toggle-read-only' will continue to exist.
2722replaces the misnamed option `recentf-menu-append-commands-p'. The
2723old name remains available as alias, but has been marked obsolete.
2724 2885
2725** Desktop package 2886*** VC-Annotate mode enhancements
2726 2887
2727*** Desktop saving is now a minor mode, `desktop-save-mode'. 2888In VC-Annotate mode, you can now use the following key bindings for
2889enhanced functionality to browse the annotations of past revisions, or
2890to view diffs or log entries directly from vc-annotate-mode:
2728 2891
2729*** The variable `desktop-enable' is obsolete. 2892 P: annotates the previous revision
2893 N: annotates the next revision
2894 J: annotates the revision at line
2895 A: annotates the revision previous to line
2896 D: shows the diff of the revision at line with its previous revision
2897 L: shows the log of the revision at line
2898 W: annotates the workfile (most up to date) version
2730 2899
2731Customize `desktop-save-mode' to enable desktop saving. 2900** pcl-cvs changes
2732 2901
2733*** Buffers are saved in the desktop file in the same order as that in the 2902*** In pcl-cvs mode, there is a new `d y' command to view the diffs
2734buffer list. 2903between the local version of the file and yesterday's head revision
2904in the repository.
2735 2905
2736*** The desktop package can be customized to restore only some buffers 2906*** In pcl-cvs mode, there is a new `d r' command to view the changes
2737immediately, remaining buffers are restored lazily (when Emacs is 2907anyone has committed to the repository since you last executed
2738idle). 2908`checkout', `update' or `commit'. That means using cvs diff options
2909-rBASE -rHEAD.
2739 2910
2740*** New commands: 2911** Diff changes
2741 - desktop-revert reverts to the last loaded desktop.
2742 - desktop-change-dir kills current desktop and loads a new.
2743 - desktop-save-in-desktop-dir saves desktop in the directory from which
2744 it was loaded.
2745 - desktop-lazy-complete runs the desktop load to completion.
2746 - desktop-lazy-abort aborts lazy loading of the desktop.
2747 2912
2748*** New customizable variables: 2913*** M-x diff uses Diff mode instead of Compilation mode.
2749 - desktop-save. Determines whether the desktop should be saved when it is
2750 killed.
2751 - desktop-file-name-format. Format in which desktop file names should be saved.
2752 - desktop-path. List of directories in which to lookup the desktop file.
2753 - desktop-locals-to-save. List of local variables to save.
2754 - desktop-globals-to-clear. List of global variables that `desktop-clear' will clear.
2755 - desktop-clear-preserve-buffers-regexp. Regexp identifying buffers that `desktop-clear'
2756 should not delete.
2757 - desktop-restore-eager. Number of buffers to restore immediately. Remaining buffers are
2758 restored lazily (when Emacs is idle).
2759 - desktop-lazy-verbose. Verbose reporting of lazily created buffers.
2760 - desktop-lazy-idle-delay. Idle delay before starting to create buffers.
2761 2914
2762*** New command line option --no-desktop 2915*** Diff mode key bindings changed.
2763 2916
2764*** New hooks: 2917These are the new bindings:
2765 - desktop-after-read-hook run after a desktop is loaded.
2766 - desktop-no-desktop-file-hook run when no desktop file is found.
2767 2918
2768** The saveplace.el package now filters out unreadable files. 2919C-c C-e diff-ediff-patch (old M-A)
2920C-c C-n diff-restrict-view (old M-r)
2921C-c C-r diff-reverse-direction (old M-R)
2922C-c C-u diff-context->unified (old M-U)
2923C-c C-w diff-refine-hunk (old C-c C-r)
2769 2924
2770When you exit Emacs, the saved positions in visited files no longer 2925To convert unified to context format, use C-u C-c C-u.
2771include files that aren't readable, e.g. files that don't exist. 2926In addition, C-c C-u now operates on the region
2772Customize the new option `save-place-forget-unreadable-files' to nil 2927in Transient Mark mode when the mark is active.
2773to get the old behavior. The new options `save-place-save-skipped'
2774and `save-place-skip-check-regexp' allow further fine-tuning of this
2775feature.
2776 2928
2777** EDiff changes. 2929** EDiff changes.
2778 2930
@@ -2827,26 +2979,33 @@ per line. Lines beginning with space or tab are ignored.
2827 2979
2828*** New language parsing features 2980*** New language parsing features
2829 2981
2982**** New language HTML.
2983
2984Tags are generated for `title' as well as `h1', `h2', and `h3'. Also,
2985when `name=' is used inside an anchor and whenever `id=' is used.
2986
2987**** New language PHP.
2988
2989Functions, classes and defines are tags. If the --members option is
2990specified to etags, variables are tags also.
2991
2992**** New language Lua.
2993
2994All functions are tagged.
2995
2830**** The `::' qualifier triggers C++ parsing in C file. 2996**** The `::' qualifier triggers C++ parsing in C file.
2831 2997
2832Previously, only the `template' and `class' keywords had this effect. 2998Previously, only the `template' and `class' keywords had this effect.
2833 2999
2834**** The GCC __attribute__ keyword is now recognized and ignored. 3000**** The GCC __attribute__ keyword is now recognized and ignored.
2835 3001
2836**** New language HTML. 3002**** In C and derived languages, etags creates tags for #undef
2837
2838Tags are generated for `title' as well as `h1', `h2', and `h3'. Also,
2839when `name=' is used inside an anchor and whenever `id=' is used.
2840 3003
2841**** In Makefiles, constants are tagged. 3004**** In Makefiles, constants are tagged.
2842 3005
2843If you want the old behavior instead, thus avoiding to increase the 3006If you want the old behavior instead, thus avoiding to increase the
2844size of the tags file, use the --no-globals option. 3007size of the tags file, use the --no-globals option.
2845 3008
2846**** New language Lua.
2847
2848All functions are tagged.
2849
2850**** In Perl, packages are tags. 3009**** In Perl, packages are tags.
2851 3010
2852Subroutine tags are named from their package. You can jump to sub tags 3011Subroutine tags are named from their package. You can jump to sub tags
@@ -2855,18 +3014,11 @@ package::sub.
2855 3014
2856**** In Prolog, etags creates tags for rules in addition to predicates. 3015**** In Prolog, etags creates tags for rules in addition to predicates.
2857 3016
2858**** New language PHP.
2859
2860Functions, classes and defines are tags. If the --members option is
2861specified to etags, variables are tags also.
2862
2863**** New default keywords for TeX. 3017**** New default keywords for TeX.
2864 3018
2865The new keywords are def, newcommand, renewcommand, newenvironment and 3019The new keywords are def, newcommand, renewcommand, newenvironment and
2866renewenvironment. 3020renewenvironment.
2867 3021
2868**** In C and derived languages, etags creates tags for #undef
2869
2870*** Honor #line directives. 3022*** Honor #line directives.
2871 3023
2872When Etags parses an input file that contains C preprocessor's #line 3024When Etags parses an input file that contains C preprocessor's #line
@@ -2891,70 +3043,7 @@ struct members in C, members variables in C++ and variables in PHP.
2891 3043
2892*** Ctags now allows duplicate tags 3044*** Ctags now allows duplicate tags
2893 3045
2894** VC Changes 3046** Rmail changes
2895
2896*** The key C-x C-q only changes the read-only state of the buffer
2897(toggle-read-only). It no longer checks files in or out.
2898
2899We made this change because we held a poll and found that many users
2900were unhappy with the previous behavior. If you do prefer this
2901behavior, you can bind `vc-toggle-read-only' to C-x C-q in your
2902`.emacs' file:
2903
2904 (global-set-key "\C-x\C-q" 'vc-toggle-read-only)
2905
2906The function `vc-toggle-read-only' will continue to exist.
2907
2908*** The new variable `vc-cvs-global-switches' specifies switches that
2909are passed to any CVS command invoked by VC.
2910
2911These switches are used as "global options" for CVS, which means they
2912are inserted before the command name. For example, this allows you to
2913specify a compression level using the `-z#' option for CVS.
2914
2915*** New backends for Subversion and Meta-CVS.
2916
2917*** VC-Annotate mode enhancements
2918
2919In VC-Annotate mode, you can now use the following key bindings for
2920enhanced functionality to browse the annotations of past revisions, or
2921to view diffs or log entries directly from vc-annotate-mode:
2922
2923 P: annotates the previous revision
2924 N: annotates the next revision
2925 J: annotates the revision at line
2926 A: annotates the revision previous to line
2927 D: shows the diff of the revision at line with its previous revision
2928 L: shows the log of the revision at line
2929 W: annotates the workfile (most up to date) version
2930
2931** pcl-cvs changes:
2932
2933*** In pcl-cvs mode, there is a new `d y' command to view the diffs
2934between the local version of the file and yesterday's head revision
2935in the repository.
2936
2937*** In pcl-cvs mode, there is a new `d r' command to view the changes
2938anyone has committed to the repository since you last executed
2939`checkout', `update' or `commit'. That means using cvs diff options
2940-rBASE -rHEAD.
2941
2942** The new variable `mail-default-directory' specifies
2943`default-directory' for mail buffers. This directory is used for
2944auto-save files of mail buffers. It defaults to "~/".
2945
2946** The mode line can indicate new mail in a directory or file.
2947
2948See the documentation of the user option
2949`display-time-mail-directory'.
2950
2951** Rmail changes:
2952
2953*** Rmail now displays 5-digit message ids in its summary buffer.
2954
2955*** The new commands rmail-end-of-message and rmail-summary end-of-message,
2956by default bound to `/', go to the end of the current mail message in
2957Rmail and Rmail summary buffers.
2958 3047
2959*** Support for `movemail' from GNU mailutils was added to Rmail. 3048*** Support for `movemail' from GNU mailutils was added to Rmail.
2960 3049
@@ -2964,6 +3053,12 @@ without TLS encryption. If GNU mailutils is installed on the system
2964and its version of `movemail' can be found in exec-path, it will be 3053and its version of `movemail' can be found in exec-path, it will be
2965used instead of the native one. 3054used instead of the native one.
2966 3055
3056*** The new commands rmail-end-of-message and rmail-summary end-of-message,
3057by default bound to `/', go to the end of the current mail message in
3058Rmail and Rmail summary buffers.
3059
3060*** Rmail now displays 5-digit message ids in its summary buffer.
3061
2967** Gnus package 3062** Gnus package
2968 3063
2969*** Gnus now includes Sieve and PGG 3064*** Gnus now includes Sieve and PGG
@@ -2980,13 +3075,17 @@ See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details.
2980Upgraded to MH-E version 8.0.3. There have been major changes since 3075Upgraded to MH-E version 8.0.3. There have been major changes since
2981version 5.0.2; see MH-E-NEWS for details. 3076version 5.0.2; see MH-E-NEWS for details.
2982 3077
2983** Calendar changes: 3078** Miscellaneous mail changes
2984 3079
2985*** The meanings of C-x < and C-x > have been interchanged. 3080*** The new variable `mail-default-directory' specifies
2986< means to scroll backward in time, and > means to scroll forward. 3081`default-directory' for mail buffers. This directory is used for
3082auto-save files of mail buffers. It defaults to "~/".
2987 3083
2988*** You can now use < and >, instead of C-x < and C-x >, to scroll 3084*** The mode line can indicate new mail in a directory or file.
2989the calendar left or right. 3085
3086See the documentation of the user option `display-time-mail-directory'.
3087
3088** Calendar changes
2990 3089
2991*** There is a new calendar package, icalendar.el, that can be used to 3090*** There is a new calendar package, icalendar.el, that can be used to
2992convert Emacs diary entries to/from the iCalendar format. 3091convert Emacs diary entries to/from the iCalendar format.
@@ -2994,6 +3093,21 @@ convert Emacs diary entries to/from the iCalendar format.
2994*** The new package cal-html.el writes HTML files with calendar and 3093*** The new package cal-html.el writes HTML files with calendar and
2995diary entries. 3094diary entries.
2996 3095
3096*** The new functions `diary-from-outlook', `diary-from-outlook-gnus',
3097and `diary-from-outlook-rmail' can be used to import diary entries
3098from Outlook-format appointments in mail messages. The variable
3099`diary-outlook-formats' can be customized to recognize additional
3100formats.
3101
3102*** The procedure for activating appointment reminders has changed:
3103use the new function `appt-activate'. The new variable
3104`appt-display-format' controls how reminders are displayed, replacing
3105`appt-issue-message', `appt-visible', and `appt-msg-window'.
3106
3107*** The function `simple-diary-display' now by default sets a header line.
3108This can be controlled through the variables `diary-header-line-flag'
3109and `diary-header-line-format'.
3110
2997*** Diary sexp entries can have custom marking in the calendar. 3111*** Diary sexp entries can have custom marking in the calendar.
2998Diary sexp functions which only apply to certain days (such as 3112Diary sexp functions which only apply to certain days (such as
2999`diary-block' or `diary-cyclic') now take an optional parameter MARK, 3113`diary-block' or `diary-cyclic') now take an optional parameter MARK,
@@ -3004,6 +3118,12 @@ day in the calendar. Specifying a face highlights the day with that
3004face. This lets you have different colors or markings for vacations, 3118face. This lets you have different colors or markings for vacations,
3005appointments, paydays or anything else using a sexp. 3119appointments, paydays or anything else using a sexp.
3006 3120
3121*** The meanings of C-x < and C-x > have been interchanged.
3122< means to scroll backward in time, and > means to scroll forward.
3123
3124*** You can now use < and >, instead of C-x < and C-x >, to scroll
3125the calendar left or right.
3126
3007*** The new function `calendar-goto-day-of-year' (g D) prompts for a 3127*** The new function `calendar-goto-day-of-year' (g D) prompts for a
3008year and day number, and moves to that date. Negative day numbers 3128year and day number, and moves to that date. Negative day numbers
3009count backward from the end of the year. 3129count backward from the end of the year.
@@ -3012,37 +3132,19 @@ count backward from the end of the year.
3012prompts for a year and a week number, and moves to the first 3132prompts for a year and a week number, and moves to the first
3013day of that ISO week. 3133day of that ISO week.
3014 3134
3015*** The new variable `calendar-minimum-window-height' affects the
3016window generated by the function `generate-calendar-window'.
3017
3018*** The functions `holiday-easter-etc' and `holiday-advent' now take 3135*** The functions `holiday-easter-etc' and `holiday-advent' now take
3019optional arguments, in order to only report on the specified holiday 3136optional arguments, in order to only report on the specified holiday
3020rather than all. This makes customization of variables such as 3137rather than all. This makes customization of variables such as
3021`christian-holidays' simpler. 3138`christian-holidays' simpler.
3022 3139
3023*** The function `simple-diary-display' now by default sets a header line. 3140*** The new variable `calendar-minimum-window-height' affects the
3024This can be controlled through the variables `diary-header-line-flag' 3141window generated by the function `generate-calendar-window'.
3025and `diary-header-line-format'.
3026
3027*** The procedure for activating appointment reminders has changed:
3028use the new function `appt-activate'. The new variable
3029`appt-display-format' controls how reminders are displayed, replacing
3030`appt-issue-message', `appt-visible', and `appt-msg-window'.
3031
3032*** The new functions `diary-from-outlook', `diary-from-outlook-gnus',
3033and `diary-from-outlook-rmail' can be used to import diary entries
3034from Outlook-format appointments in mail messages. The variable
3035`diary-outlook-formats' can be customized to recognize additional
3036formats.
3037 3142
3038** Speedbar changes: 3143** Speedbar changes
3039 3144
3040*** Speedbar items can now be selected by clicking mouse-1, based on 3145*** Speedbar items can now be selected by clicking mouse-1, based on
3041the `mouse-1-click-follows-link' mechanism. 3146the `mouse-1-click-follows-link' mechanism.
3042 3147
3043*** SPC and DEL are no longer bound to scroll up/down in the speedbar
3044keymap.
3045
3046*** The new command `speedbar-toggle-line-expansion', bound to SPC, 3148*** The new command `speedbar-toggle-line-expansion', bound to SPC,
3047contracts or expands the line under the cursor. 3149contracts or expands the line under the cursor.
3048 3150
@@ -3053,6 +3155,9 @@ contracts or expands the line under the cursor.
3053respectively, expand and contract the line under cursor with all of 3155respectively, expand and contract the line under cursor with all of
3054its descendents. 3156its descendents.
3055 3157
3158*** The new user option `speedbar-use-tool-tips-flag', if non-nil,
3159means to display tool-tips for speedbar items.
3160
3056*** The new user option `speedbar-query-confirmation-method' controls 3161*** The new user option `speedbar-query-confirmation-method' controls
3057how querying is performed for file operations. A value of 'always 3162how querying is performed for file operations. A value of 'always
3058means to always query before file operations; 'none-but-delete means 3163means to always query before file operations; 'none-but-delete means
@@ -3065,8 +3170,8 @@ value of 'attached means to use the attached frame (the frame that
3065speedbar was started from.) A number such as 1 or -1 means to pass 3170speedbar was started from.) A number such as 1 or -1 means to pass
3066that number to `other-frame'. 3171that number to `other-frame'.
3067 3172
3068*** The new user option `speedbar-use-tool-tips-flag', if non-nil, 3173*** SPC and DEL are no longer bound to scroll up/down in the speedbar
3069means to display tool-tips for speedbar items. 3174keymap.
3070 3175
3071*** The frame management code in speedbar.el has been split into a new 3176*** The frame management code in speedbar.el has been split into a new
3072`dframe' library. Emacs Lisp code that makes use of the speedbar 3177`dframe' library. Emacs Lisp code that makes use of the speedbar
@@ -3078,230 +3183,136 @@ should use `dframe-attached-frame' instead of
3078`speedbar-update-speed' and `speedbar-navigating-speed' are also 3183`speedbar-update-speed' and `speedbar-navigating-speed' are also
3079obsolete; use `dframe-update-speed' instead. 3184obsolete; use `dframe-update-speed' instead.
3080 3185
3081** sql changes. 3186** battery.el changes
3082
3083*** The variable `sql-product' controls the highlighting of different
3084SQL dialects. This variable can be set globally via Customize, on a
3085buffer-specific basis via local variable settings, or for the current
3086session using the new SQL->Product submenu. (This menu replaces the
3087SQL->Highlighting submenu.)
3088
3089The following values are supported:
3090
3091 ansi ANSI Standard (default)
3092 db2 DB2
3093 informix Informix
3094 ingres Ingres
3095 interbase Interbase
3096 linter Linter
3097 ms Microsoft
3098 mysql MySQL
3099 oracle Oracle
3100 postgres Postgres
3101 solid Solid
3102 sqlite SQLite
3103 sybase Sybase
3104
3105The current product name will be shown on the mode line following the
3106SQL mode indicator.
3107
3108The technique of setting `sql-mode-font-lock-defaults' directly in
3109your `.emacs' will no longer establish the default highlighting -- Use
3110`sql-product' to accomplish this.
3111
3112ANSI keywords are always highlighted.
3113 3187
3114*** The function `sql-add-product-keywords' can be used to add 3188*** display-battery-mode replaces display-battery.
3115font-lock rules to the product specific rules. For example, to have
3116all identifiers ending in `_t' under MS SQLServer treated as a type,
3117you would use the following line in your .emacs file:
3118
3119 (sql-add-product-keywords 'ms
3120 '(("\\<\\w+_t\\>" . font-lock-type-face)))
3121
3122*** Oracle support includes keyword highlighting for Oracle 9i.
3123
3124Most SQL and PL/SQL keywords are implemented. SQL*Plus commands are
3125highlighted in `font-lock-doc-face'.
3126
3127*** Microsoft SQLServer support has been significantly improved.
3128
3129Keyword highlighting for SqlServer 2000 is implemented.
3130sql-interactive-mode defaults to use osql, rather than isql, because
3131osql flushes its error stream more frequently. Thus error messages
3132are displayed when they occur rather than when the session is
3133terminated.
3134
3135If the username and password are not provided to `sql-ms', osql is
3136called with the `-E' command line argument to use the operating system
3137credentials to authenticate the user.
3138 3189
3139*** Postgres support is enhanced. 3190*** battery.el now works on recent versions of OS X.
3140Keyword highlighting of Postgres 7.3 is implemented. Prompting for
3141the username and the pgsql `-U' option is added.
3142 3191
3143*** MySQL support is enhanced. 3192** Games
3144Keyword highlighting of MySql 4.0 is implemented.
3145 3193
3146*** Imenu support has been enhanced to locate tables, views, indexes, 3194*** The game `mpuz' is enhanced.
3147packages, procedures, functions, triggers, sequences, rules, and
3148defaults.
3149 3195
3150*** Added SQL->Start SQLi Session menu entry which calls the 3196`mpuz' now allows the 2nd factor not to have two identical digits. By
3151appropriate `sql-interactive-mode' wrapper for the current setting of 3197default, all trivial operations involving whole lines are performed
3152`sql-product'. 3198automatically. The game uses faces for better visual feedback.
3153
3154*** sql.el supports the SQLite interpreter--call 'sql-sqlite'.
3155 3199
3156** FFAP changes: 3200** Obsolete and deleted packages
3157 3201
3158*** New ffap commands and keybindings: 3202*** fast-lock.el and lazy-lock.el are obsolete. Use jit-lock.el instead.
3159 3203
3160C-x C-r (`ffap-read-only'), 3204*** iso-acc.el is now obsolete. Use one of the latin input methods instead.
3161C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'),
3162C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'),
3163C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame').
3164 3205
3165*** FFAP accepts wildcards in a file name by default. 3206*** zone-mode.el is now obsolete. Use dns-mode.el instead.
3166 3207
3167C-x C-f passes the file name to `find-file' with non-nil WILDCARDS 3208*** cplus-md.el has been deleted.
3168argument, which visits multiple files, and C-x d passes it to `dired'.
3169 3209
3170** Changes in Skeleton 3210** Miscellaneous
3171 3211
3172*** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction. 3212*** The variable `woman-topic-at-point' is renamed
3213to `woman-use-topic-at-point' and behaves differently: if this
3214variable is non-nil, the `woman' command uses the word at point
3215automatically, without asking for a confirmation. Otherwise, the word
3216at point is suggested as default, but not inserted at the prompt.
3173 3217
3174`@' has reverted to only setting `skeleton-positions' and no longer 3218*** You can now customize `fill-nobreak-predicate' to control where
3175sets `skeleton-point'. Skeletons which used @ to mark 3219filling can break lines. The value is now normally a list of
3176`skeleton-point' independent of `_' should now use `-' instead. The 3220functions, but it can also be a single function, for compatibility.
3177updated `skeleton-insert' docstring explains these new features along
3178with other details of skeleton construction.
3179 3221
3180*** The variables `skeleton-transformation', `skeleton-filter', and 3222Emacs provide two predicates, `fill-single-word-nobreak-p' and
3181`skeleton-pair-filter' have been renamed to 3223`fill-french-nobreak-p', for use as the value of
3182`skeleton-transformation-function', `skeleton-filter-function', and 3224`fill-nobreak-predicate'.
3183`skeleton-pair-filter-function'. The old names are still available
3184as aliases.
3185 3225
3186** Hideshow mode changes 3226*** M-x view-file and commands that use it now avoid interfering
3227with special modes such as Tar mode.
3187 3228
3188*** New variable `hs-set-up-overlay' allows customization of the overlay 3229*** `global-whitespace-mode' is a new alias for `whitespace-global-mode'.
3189used to effect hiding for hideshow minor mode. Integration with isearch
3190handles the overlay property `display' specially, preserving it during
3191temporary overlay showing in the course of an isearch operation.
3192 3230
3193*** New variable `hs-allow-nesting' non-nil means that hiding a block does 3231*** The saveplace.el package now filters out unreadable files.
3194not discard the hidden state of any "internal" blocks; when the parent
3195block is later shown, the internal blocks remain hidden. Default is nil.
3196 3232
3197** `hide-ifdef-mode' now uses overlays rather than selective-display 3233When you exit Emacs, the saved positions in visited files no longer
3198to hide its text. This should be mostly transparent but slightly 3234include files that aren't readable, e.g. files that don't exist.
3199changes the behavior of motion commands like C-e and C-p. 3235Customize the new option `save-place-forget-unreadable-files' to nil
3236to get the old behavior. The new options `save-place-save-skipped'
3237and `save-place-skip-check-regexp' allow further fine-tuning of this
3238feature.
3200 3239
3201** `partial-completion-mode' now handles partial completion on directory names. 3240*** Commands `winner-redo' and `winner-undo', from winner.el, are now
3241bound to C-c <left> and C-c <right>, respectively. This is an
3242incompatible change.
3202 3243
3203** The type-break package now allows `type-break-file-name' to be nil 3244*** The type-break package now allows `type-break-file-name' to be nil
3204and if so, doesn't store any data across sessions. This is handy if 3245and if so, doesn't store any data across sessions. This is handy if
3205you don't want the `.type-break' file in your home directory or are 3246you don't want the `.type-break' file in your home directory or are
3206annoyed by the need for interaction when you kill Emacs. 3247annoyed by the need for interaction when you kill Emacs.
3207 3248
3208** `ps-print' can now print characters from the mule-unicode charsets. 3249*** `ps-print' can now print characters from the mule-unicode charsets.
3209 3250
3210Printing text with characters from the mule-unicode-* sets works with 3251Printing text with characters from the mule-unicode-* sets works with
3211`ps-print', provided that you have installed the appropriate BDF 3252`ps-print', provided that you have installed the appropriate BDF
3212fonts. See the file INSTALL for URLs where you can find these fonts. 3253fonts. See the file INSTALL for URLs where you can find these fonts.
3213 3254
3214** New command `strokes-global-set-stroke-string'. 3255*** New command `strokes-global-set-stroke-string'.
3215This is like `strokes-global-set-stroke', but it allows you to bind 3256This is like `strokes-global-set-stroke', but it allows you to bind
3216the stroke directly to a string to insert. This is convenient for 3257the stroke directly to a string to insert. This is convenient for
3217using strokes as an input method. 3258using strokes as an input method.
3218 3259
3219** Emacs server changes: 3260*** In Outline mode, `hide-body' no longer hides lines at the top
3220 3261of the file that precede the first header line.
3221*** You can have several Emacs servers on the same machine.
3222 3262
3223 % emacs --eval '(setq server-name "foo")' -f server-start & 3263*** `hide-ifdef-mode' now uses overlays rather than selective-display
3224 % emacs --eval '(setq server-name "bar")' -f server-start & 3264to hide its text. This should be mostly transparent but slightly
3225 % emacsclient -s foo file1 3265changes the behavior of motion commands like C-e and C-p.
3226 % emacsclient -s bar file2
3227 3266
3228*** The `emacsclient' command understands the options `--eval' and 3267*** In Artist mode the variable `artist-text-renderer' has been
3229`--display' which tell Emacs respectively to evaluate the given Lisp 3268renamed to `artist-text-renderer-function'. The old name is still
3230expression and to use the given display when visiting files. 3269available as alias.
3231 3270
3232*** User option `server-mode' can be used to start a server process. 3271*** In Enriched mode, `set-left-margin' and `set-right-margin' are now
3272by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l'
3273and `C-c C-r'.
3233 3274
3234** LDAP support now defaults to ldapsearch from OpenLDAP version 2. 3275*** `partial-completion-mode' now handles partial completion on directory names.
3235 3276
3236** You can now disable pc-selection-mode after enabling it. 3277*** You can now disable pc-selection-mode after enabling it.
3237 3278
3238M-x pc-selection-mode behaves like a proper minor mode, and with no 3279M-x pc-selection-mode behaves like a proper minor mode, and with no
3239argument it toggles the mode. Turning off PC-Selection mode restores 3280argument it toggles the mode. Turning off PC-Selection mode restores
3240the global key bindings that were replaced by turning on the mode. 3281the global key bindings that were replaced by turning on the mode.
3241 3282
3242** `uniquify-strip-common-suffix' tells uniquify to prefer 3283*** `uniquify-strip-common-suffix' tells uniquify to prefer
3243`file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'. 3284`file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'.
3244 3285
3245** Support for `magic cookie' standout modes has been removed. 3286*** New user option `add-log-always-start-new-record'.
3246
3247Emacs still works on terminals that require magic cookies in order to
3248use standout mode, but they can no longer display mode-lines in
3249inverse-video.
3250
3251** The game `mpuz' is enhanced.
3252 3287
3253`mpuz' now allows the 2nd factor not to have two identical digits. By 3288When this option is enabled, M-x add-change-log-entry always
3254default, all trivial operations involving whole lines are performed 3289starts a new record regardless of when the last record is.
3255automatically. The game uses faces for better visual feedback.
3256 3290
3257** battery.el changes: 3291*** M-x compare-windows now can automatically skip non-matching text to
3292resync points in both windows.
3258 3293
3259*** display-battery-mode replaces display-battery. 3294*** PO translation files are decoded according to their MIME headers
3295when Emacs visits them.
3260 3296
3261*** battery.el now works on recent versions of OS X. 3297*** Telnet now prompts you for a port number with C-u M-x telnet.
3262 3298
3263** calculator.el now has radix grouping mode. 3299*** calculator.el now has radix grouping mode.
3264 3300
3265To enable this, set `calculator-output-radix' non-nil. In this mode a 3301To enable this, set `calculator-output-radix' non-nil. In this mode a
3266separator character is used every few digits, making it easier to see 3302separator character is used every few digits, making it easier to see
3267byte boundaries etc. For more info, see the documentation of the 3303byte boundaries etc. For more info, see the documentation of the
3268variable `calculator-radix-grouping-mode'. 3304variable `calculator-radix-grouping-mode'.
3269 3305
3270** fast-lock.el and lazy-lock.el are obsolete. Use jit-lock.el instead. 3306*** LDAP support now defaults to ldapsearch from OpenLDAP version 2.
3271
3272** iso-acc.el is now obsolete. Use one of the latin input methods instead.
3273
3274** zone-mode.el is now obsolete. Use dns-mode.el instead.
3275
3276** cplus-md.el has been deleted.
3277
3278** Ewoc changes
3279
3280*** The new function `ewoc-delete' deletes specified nodes.
3281
3282*** `ewoc-create' now takes optional arg NOSEP, which inhibits insertion of
3283a newline after each pretty-printed entry and after the header and footer.
3284This allows you to create multiple-entry ewocs on a single line and to
3285effect "invisible" nodes by arranging for the pretty-printer to not print
3286anything for those nodes.
3287
3288For example, these two sequences of expressions behave identically:
3289
3290;; NOSEP nil
3291(defun PP (data) (insert (format "%S" data)))
3292(ewoc-create 'PP "start\n")
3293 3307
3294;; NOSEP t 3308*** The terminal emulation code in term.el has been improved; it can
3295(defun PP (data) (insert (format "%S\n" data))) 3309run most curses applications now.
3296(ewoc-create 'PP "start\n\n" "\n" t)
3297 3310
3298** Locate changes 3311*** Support for `magic cookie' standout modes has been removed.
3299 3312
3300*** By default, reverting the *Locate* buffer now just runs the last 3313Emacs still works on terminals that require magic cookies in order to
3301`locate' command back over again without offering to update the locate 3314use standout mode, but they can no longer display mode-lines in
3302database (which normally only works if you have root privileges). If 3315inverse-video.
3303you prefer the old behavior, set the new customizable option
3304`locate-update-when-revert' to t.
3305 3316
3306 3317
3307* Changes in Emacs 22.1 on non-free operating systems 3318* Changes in Emacs 22.1 on non-free operating systems
@@ -3320,29 +3331,6 @@ This change means that users can now have their own `.emacs' files on
3320shared computers, and the default HOME directory is less likely to be 3331shared computers, and the default HOME directory is less likely to be
3321read-only on computers that are administered by someone else. 3332read-only on computers that are administered by someone else.
3322 3333
3323** Passing resources on the command line now works on MS Windows.
3324
3325You can use --xrm to pass resource settings to Emacs, overriding any
3326existing values. For example:
3327
3328 emacs --xrm "Emacs.Background:red" --xrm "Emacs.Geometry:100x20"
3329
3330will start up Emacs on an initial frame of 100x20 with red background,
3331irrespective of geometry or background setting on the Windows registry.
3332
3333** On MS Windows, the "system caret" now follows the cursor.
3334
3335This enables Emacs to work better with programs that need to track the
3336cursor, for example screen magnifiers and text to speech programs.
3337When such a program is in use, the system caret is made visible
3338instead of Emacs drawing its own cursor. This seems to be required by
3339some programs. The new variable w32-use-visible-system-caret allows
3340the caret visibility to be manually toggled.
3341
3342** Tooltips now work on MS Windows.
3343
3344See the Emacs 21.1 NEWS entry for tooltips for details.
3345
3346** Images are now supported on MS Windows. 3334** Images are now supported on MS Windows.
3347 3335
3348PBM and XBM images are supported out of the box. Other image formats 3336PBM and XBM images are supported out of the box. Other image formats
@@ -3359,9 +3347,9 @@ as AU, AIFF and MP3 may be supported in the more recent versions of
3359Windows, or when other software provides hooks into the system level 3347Windows, or when other software provides hooks into the system level
3360sound support for those formats. 3348sound support for those formats.
3361 3349
3362** Different shaped mouse pointers are supported on MS Windows. 3350** Tooltips now work on MS Windows.
3363 3351
3364The mouse pointer changes shape depending on what is under the pointer. 3352See the Emacs 21.1 NEWS entry for tooltips for details.
3365 3353
3366** Pointing devices with more than 3 buttons are now supported on MS Windows. 3354** Pointing devices with more than 3 buttons are now supported on MS Windows.
3367 3355
@@ -3369,6 +3357,16 @@ The new variable `w32-pass-extra-mouse-buttons-to-system' controls
3369whether Emacs should handle the extra buttons itself (the default), or 3357whether Emacs should handle the extra buttons itself (the default), or
3370pass them to Windows to be handled with system-wide functions. 3358pass them to Windows to be handled with system-wide functions.
3371 3359
3360** Passing resources on the command line now works on MS Windows.
3361
3362You can use --xrm to pass resource settings to Emacs, overriding any
3363existing values. For example:
3364
3365 emacs --xrm "Emacs.Background:red" --xrm "Emacs.Geometry:100x20"
3366
3367will start up Emacs on an initial frame of 100x20 with red background,
3368irrespective of geometry or background setting on the Windows registry.
3369
3372** Emacs takes note of colors defined in Control Panel on MS-Windows. 3370** Emacs takes note of colors defined in Control Panel on MS-Windows.
3373 3371
3374The Control Panel defines some default colors for applications in much 3372The Control Panel defines some default colors for applications in much
@@ -3379,14 +3377,6 @@ some of them to initialize some of the default faces.
3379`list-colors-display' shows the list of System color names, in case 3377`list-colors-display' shows the list of System color names, in case
3380you wish to use them in other faces. 3378you wish to use them in other faces.
3381 3379
3382** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations.
3383
3384Those systems use Unicode internally, so this allows Emacs to share
3385multilingual text with other applications. On other versions of
3386MS Windows, Emacs now uses the appropriate locale coding-system, so
3387the clipboard should work correctly for your local language without
3388any customizations.
3389
3390** Running in a console window in Windows now uses the console size. 3380** Running in a console window in Windows now uses the console size.
3391 3381
3392Previous versions of Emacs erred on the side of having a usable Emacs 3382Previous versions of Emacs erred on the side of having a usable Emacs
@@ -3400,6 +3390,27 @@ defaults to 80x25. If you use such a telnet server regularly at a size
3400other than 80x25, you can still manually set 3390other than 80x25, you can still manually set
3401w32-use-full-screen-buffer to t. 3391w32-use-full-screen-buffer to t.
3402 3392
3393** Different shaped mouse pointers are supported on MS Windows.
3394
3395The mouse pointer changes shape depending on what is under the pointer.
3396
3397** On MS Windows, the "system caret" now follows the cursor.
3398
3399This enables Emacs to work better with programs that need to track the
3400cursor, for example screen magnifiers and text to speech programs.
3401When such a program is in use, the system caret is made visible
3402instead of Emacs drawing its own cursor. This seems to be required by
3403some programs. The new variable w32-use-visible-system-caret allows
3404the caret visibility to be manually toggled.
3405
3406** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations.
3407
3408Those systems use Unicode internally, so this allows Emacs to share
3409multilingual text with other applications. On other versions of
3410MS Windows, Emacs now uses the appropriate locale coding-system, so
3411the clipboard should work correctly for your local language without
3412any customizations.
3413
3403** On Mac OS, `keyboard-coding-system' changes based on the keyboard script. 3414** On Mac OS, `keyboard-coding-system' changes based on the keyboard script.
3404 3415
3405** The variable `mac-keyboard-text-encoding' and the constants 3416** The variable `mac-keyboard-text-encoding' and the constants
@@ -3411,22 +3422,6 @@ w32-use-full-screen-buffer to t.
3411 3422
3412* Incompatible Lisp Changes in Emacs 22.1 3423* Incompatible Lisp Changes in Emacs 22.1
3413 3424
3414** The `read-file-name' function now returns a null string if the
3415user just types RET.
3416
3417** The function find-operation-coding-system may be called with a cons
3418(FILENAME . BUFFER) in the second argument if the first argument
3419OPERATION is `insert-file-contents', and thus a function registered in
3420`file-coding-system-alist' is also called with such an argument.
3421
3422** The variables post-command-idle-hook and post-command-idle-delay have
3423been removed. Use run-with-idle-timer instead.
3424
3425** `suppress-keymap' now works by remapping `self-insert-command' to
3426the command `undefined'. (In earlier Emacs versions, it used
3427`substitute-key-definition' to rebind self inserting characters to
3428`undefined'.)
3429
3430** Mode line display ignores text properties as well as the 3425** Mode line display ignores text properties as well as the
3431:propertize and :eval forms in the value of a variable whose 3426:propertize and :eval forms in the value of a variable whose
3432`risky-local-variable' property is nil. 3427`risky-local-variable' property is nil.
@@ -3439,14 +3434,11 @@ Callers sending input not from the user should use bind the 3rd
3439argument `artificial' to a non-nil value, to prevent Emacs from 3434argument `artificial' to a non-nil value, to prevent Emacs from
3440deleting the part of subprocess output that matches the input. 3435deleting the part of subprocess output that matches the input.
3441 3436
3442** Support for Mocklisp has been removed. 3437** The `read-file-name' function now returns a null string if the
3443 3438user just types RET.
3444** The variable `memory-full' now remains t until
3445there is no longer a shortage of memory.
3446 3439
3447** When Emacs receives a USR1 or USR2 signal, this generates 3440** The variables post-command-idle-hook and post-command-idle-delay have
3448input events: sigusr1 or sigusr2. Use special-event-map to 3441been removed. Use run-with-idle-timer instead.
3449handle these events.
3450 3442
3451** A hex or octal escape in a string constant forces the string to 3443** A hex or octal escape in a string constant forces the string to
3452be multibyte or unibyte, respectively. 3444be multibyte or unibyte, respectively.
@@ -3459,6 +3451,25 @@ Instead, the new functions `make-glyph-code', `glyph-char', and
3459`glyph-face' must be used to create and decode glyph codes in 3451`glyph-face' must be used to create and decode glyph codes in
3460display tables. 3452display tables.
3461 3453
3454** `suppress-keymap' now works by remapping `self-insert-command' to
3455the command `undefined'. (In earlier Emacs versions, it used
3456`substitute-key-definition' to rebind self inserting characters to
3457`undefined'.)
3458
3459** The function find-operation-coding-system may be called with a cons
3460(FILENAME . BUFFER) in the second argument if the first argument
3461OPERATION is `insert-file-contents', and thus a function registered in
3462`file-coding-system-alist' is also called with such an argument.
3463
3464** When Emacs receives a USR1 or USR2 signal, this generates
3465input events: sigusr1 or sigusr2. Use special-event-map to
3466handle these events.
3467
3468** The variable `memory-full' now remains t until
3469there is no longer a shortage of memory.
3470
3471** Support for Mocklisp has been removed.
3472
3462 3473
3463* Lisp Changes in Emacs 22.1 3474* Lisp Changes in Emacs 22.1
3464 3475
@@ -3484,17 +3495,29 @@ of MATHEMATICAL ITALIC CAPITAL ALPHA (the latter is greater than
3484 3495
3485This syntax works for both character constants and strings. 3496This syntax works for both character constants and strings.
3486 3497
3487*** The function `expt' handles negative exponents differently. 3498*** New function `unsafep' determines whether a Lisp form is safe.
3488The value for `(expt A B)', if both A and B are integers and B is 3499
3489negative, is now a float. For example: (expt 2 -2) => 0.25. 3500It returns nil if the given Lisp form can't possibly do anything
3501dangerous; otherwise it returns a reason why the form might be unsafe
3502(calls unknown function, alters global variable, etc.).
3490 3503
3491*** The function `eql' is now available without requiring the CL package. 3504*** The function `eql' is now available without requiring the CL package.
3492 3505
3493*** The new function `memql' is like `memq', but uses `eql' for comparison, 3506*** The new function `memql' is like `memq', but uses `eql' for comparison,
3494that is, floats are compared by value and other elements with `eq'. 3507that is, floats are compared by value and other elements with `eq'.
3495 3508
3509*** New functions `string-or-null-p' and `booleanp'.
3510
3511`string-or-null-p' returns non-nil iff OBJECT is a string or nil.
3512`booleanp' returns non-nil iff OBJECT is t or nil.
3513
3496*** `makehash' is now obsolete. Use `make-hash-table' instead. 3514*** `makehash' is now obsolete. Use `make-hash-table' instead.
3497 3515
3516*** Minor change in the function `format'.
3517
3518Some flags that were accepted but not implemented (such as "*") are no
3519longer accepted.
3520
3498*** `add-to-list' takes an optional third argument, APPEND. 3521*** `add-to-list' takes an optional third argument, APPEND.
3499 3522
3500If APPEND is non-nil, the new element gets added at the end of the 3523If APPEND is non-nil, the new element gets added at the end of the
@@ -3504,6 +3527,14 @@ Emacs 21.1, but was not documented then.
3504*** New function `add-to-ordered-list' is like `add-to-list' but 3527*** New function `add-to-ordered-list' is like `add-to-list' but
3505associates a numeric ordering of each element added to the list. 3528associates a numeric ordering of each element added to the list.
3506 3529
3530*** New function `add-to-history' adds an element to a history list.
3531
3532Lisp packages should use this function to add elements to their
3533history lists.
3534
3535If `history-delete-duplicates' is non-nil, it removes duplicates of
3536the new element from the history list it updates.
3537
3507*** New function `copy-tree' makes a copy of a tree. 3538*** New function `copy-tree' makes a copy of a tree.
3508 3539
3509It recursively copies through both CARs and CDRs. 3540It recursively copies through both CARs and CDRs.
@@ -3514,35 +3545,11 @@ It modifies the list destructively, like `delete'. Of several `equal'
3514occurrences of an element in the list, the one that's kept is the 3545occurrences of an element in the list, the one that's kept is the
3515first one. 3546first one.
3516 3547
3517*** New function `add-to-history' adds an element to a history list.
3518
3519Lisp packages should use this function to add elements to their
3520history lists.
3521
3522If `history-delete-duplicates' is non-nil, it removes duplicates of
3523the new element from the history list it updates.
3524
3525*** New function `rassq-delete-all'. 3548*** New function `rassq-delete-all'.
3526 3549
3527(rassq-delete-all VALUE ALIST) deletes, from ALIST, each element whose 3550(rassq-delete-all VALUE ALIST) deletes, from ALIST, each element whose
3528CDR is `eq' to the specified value. 3551CDR is `eq' to the specified value.
3529 3552
3530*** The function `number-sequence' makes a list of equally-separated numbers.
3531
3532For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). By
3533default, the separation is 1, but you can specify a different
3534separation as the third argument. (number-sequence 1.5 6 2) returns
3535(1.5 3.5 5.5).
3536
3537*** New variables `most-positive-fixnum' and `most-negative-fixnum'.
3538
3539They hold the largest and smallest possible integer values.
3540
3541*** Minor change in the function `format'.
3542
3543Some flags that were accepted but not implemented (such as "*") are no
3544longer accepted.
3545
3546*** Functions `get' and `plist-get' no longer give errors for bad plists. 3553*** Functions `get' and `plist-get' no longer give errors for bad plists.
3547 3554
3548They return nil for a malformed property list or if the list is 3555They return nil for a malformed property list or if the list is
@@ -3553,20 +3560,20 @@ cyclic.
3553They are like `plist-get' and `plist-put', except that they compare 3560They are like `plist-get' and `plist-put', except that they compare
3554the property name using `equal' rather than `eq'. 3561the property name using `equal' rather than `eq'.
3555 3562
3556*** New variable `print-continuous-numbering'. 3563*** The function `number-sequence' makes a list of equally-separated numbers.
3557 3564
3558When this is non-nil, successive calls to print functions use a single 3565For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). By
3559numbering scheme for circular structure references. This is only 3566default, the separation is 1, but you can specify a different
3560relevant when `print-circle' is non-nil. 3567separation as the third argument. (number-sequence 1.5 6 2) returns
3568(1.5 3.5 5.5).
3561 3569
3562When you bind `print-continuous-numbering' to t, you should 3570*** New variables `most-positive-fixnum' and `most-negative-fixnum'.
3563also bind `print-number-table' to nil.
3564 3571
3565*** New function `macroexpand-all' expands all macros in a form. 3572They hold the largest and smallest possible integer values.
3566 3573
3567It is similar to the Common-Lisp function of the same name. 3574*** The function `expt' handles negative exponents differently.
3568One difference is that it guarantees to return the original argument 3575The value for `(expt A B)', if both A and B are integers and B is
3569if no expansion is done, which can be tested using `eq'. 3576negative, is now a float. For example: (expt 2 -2) => 0.25.
3570 3577
3571*** The function `atan' now accepts an optional second argument. 3578*** The function `atan' now accepts an optional second argument.
3572 3579
@@ -3574,12 +3581,10 @@ When called with 2 arguments, as in `(atan Y X)', `atan' returns the
3574angle in radians between the vector [X, Y] and the X axis. (This is 3581angle in radians between the vector [X, Y] and the X axis. (This is
3575equivalent to the standard C library function `atan2'.) 3582equivalent to the standard C library function `atan2'.)
3576 3583
3577*** A function or macro's doc string can now specify the calling pattern. 3584*** New macro `with-case-table'
3578 3585
3579You put this info in the doc string's last line. It should be 3586This executes the body with the case table temporarily set to a given
3580formatted so as to match the regexp "\n\n(fn .*)\\'". If you don't 3587case table.
3581specify this explicitly, Emacs determines it from the actual argument
3582names. Usually that default is right, but not always.
3583 3588
3584*** New macro `with-local-quit' temporarily allows quitting. 3589*** New macro `with-local-quit' temporarily allows quitting.
3585 3590
@@ -3594,31 +3599,37 @@ inside timer functions and `post-command-hook' functions.
3594 3599
3595This combines `defalias' and `make-obsolete'. 3600This combines `defalias' and `make-obsolete'.
3596 3601
3597*** New macro `with-case-table'
3598
3599This executes the body with the case table temporarily set to a given
3600case table.
3601
3602*** New function `unsafep' determines whether a Lisp form is safe.
3603
3604It returns nil if the given Lisp form can't possibly do anything
3605dangerous; otherwise it returns a reason why the form might be unsafe
3606(calls unknown function, alters global variable, etc.).
3607
3608*** New macro `eval-at-startup' specifies expressions to 3602*** New macro `eval-at-startup' specifies expressions to
3609evaluate when Emacs starts up. If this is done after startup, 3603evaluate when Emacs starts up. If this is done after startup,
3610it evaluates those expressions immediately. 3604it evaluates those expressions immediately.
3611 3605
3612This is useful in packages that can be preloaded. 3606This is useful in packages that can be preloaded.
3613 3607
3614*** `list-faces-display' takes an optional argument, REGEXP. 3608*** New function `macroexpand-all' expands all macros in a form.
3615 3609
3616If it is non-nil, the function lists only faces matching this regexp. 3610It is similar to the Common-Lisp function of the same name.
3611One difference is that it guarantees to return the original argument
3612if no expansion is done, which can be tested using `eq'.
3617 3613
3618*** New functions `string-or-null-p' and `booleanp'. 3614*** A function or macro's doc string can now specify the calling pattern.
3619 3615
3620`string-or-null-p' returns non-nil iff OBJECT is a string or nil. 3616You put this info in the doc string's last line. It should be
3621`booleanp' returns non-nil iff OBJECT is t or nil. 3617formatted so as to match the regexp "\n\n(fn .*)\\'". If you don't
3618specify this explicitly, Emacs determines it from the actual argument
3619names. Usually that default is right, but not always.
3620
3621*** New variable `print-continuous-numbering'.
3622
3623When this is non-nil, successive calls to print functions use a single
3624numbering scheme for circular structure references. This is only
3625relevant when `print-circle' is non-nil.
3626
3627When you bind `print-continuous-numbering' to t, you should
3628also bind `print-number-table' to nil.
3629
3630*** `list-faces-display' takes an optional argument, REGEXP.
3631
3632If it is non-nil, the function lists only faces matching this regexp.
3622 3633
3623*** New hook `command-error-function'. 3634*** New hook `command-error-function'.
3624 3635
@@ -3670,6 +3681,9 @@ changes the value of BASE-VAR.
3670DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has 3681DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has
3671the same documentation as BASE-VAR. 3682the same documentation as BASE-VAR.
3672 3683
3684*** The macro `define-obsolete-variable-alias' combines `defvaralias' and
3685`make-obsolete-variable'.
3686
3673*** New function: indirect-variable VARIABLE 3687*** New function: indirect-variable VARIABLE
3674 3688
3675This function returns the variable at the end of the chain of aliases 3689This function returns the variable at the end of the chain of aliases
@@ -3679,9 +3693,6 @@ defined as an alias, the function returns VARIABLE.
3679It might be noteworthy that variables aliases work for all kinds of 3693It might be noteworthy that variables aliases work for all kinds of
3680variables, including buffer-local and frame-local variables. 3694variables, including buffer-local and frame-local variables.
3681 3695
3682*** The macro `define-obsolete-variable-alias' combines `defvaralias' and
3683`make-obsolete-variable'.
3684
3685** defcustom changes: 3696** defcustom changes:
3686 3697
3687*** The package-version keyword has been added to provide 3698*** The package-version keyword has been added to provide
@@ -3697,22 +3708,22 @@ variable `customize-package-emacs-version-alist'.
3697 3708
3698*** An octal escape in a string constant forces the string to be unibyte. 3709*** An octal escape in a string constant forces the string to be unibyte.
3699 3710
3711*** New function `string-to-multibyte' converts a unibyte string to a
3712multibyte string with the same individual character codes.
3713
3700*** `split-string' now includes null substrings in the returned list if 3714*** `split-string' now includes null substrings in the returned list if
3701the optional argument SEPARATORS is non-nil and there are matches for 3715the optional argument SEPARATORS is non-nil and there are matches for
3702SEPARATORS at the beginning or end of the string. If SEPARATORS is 3716SEPARATORS at the beginning or end of the string. If SEPARATORS is
3703nil, or if the new optional third argument OMIT-NULLS is non-nil, all 3717nil, or if the new optional third argument OMIT-NULLS is non-nil, all
3704empty matches are omitted from the returned list. 3718empty matches are omitted from the returned list.
3705 3719
3706*** New function `string-to-multibyte' converts a unibyte string to a
3707multibyte string with the same individual character codes.
3708
3709*** New function `substring-no-properties' returns a substring without
3710text properties.
3711
3712*** The new function `assoc-string' replaces `assoc-ignore-case' and 3720*** The new function `assoc-string' replaces `assoc-ignore-case' and
3713`assoc-ignore-representation', which are still available, but have 3721`assoc-ignore-representation', which are still available, but have
3714been declared obsolete. 3722been declared obsolete.
3715 3723
3724*** New function `substring-no-properties' returns a substring without
3725text properties.
3726
3716** Displaying warnings to the user. 3727** Displaying warnings to the user.
3717 3728
3718See the functions `warn' and `display-warning', or the Lisp Manual. 3729See the functions `warn' and `display-warning', or the Lisp Manual.
@@ -3749,32 +3760,32 @@ It defaults to 1.
3749 3760
3750It defaults to 1. 3761It defaults to 1.
3751 3762
3752*** New function `mouse-on-link-p' tests if a position is in a clickable link. 3763*** `field-beginning' and `field-end' take new optional argument, LIMIT.
3753 3764
3754This is the function used by the new `mouse-1-click-follows-link' 3765This argument tells them not to search beyond LIMIT. Instead they
3755functionality. 3766give up and return LIMIT.
3767
3768*** New function `window-line-height' is an efficient way to get
3769information about a specific text line in a window provided that the
3770window's display is up-to-date.
3756 3771
3757*** New function `line-number-at-pos' returns the line number of a position. 3772*** New function `line-number-at-pos' returns the line number of a position.
3758 3773
3759It an optional buffer position argument that defaults to point. 3774It an optional buffer position argument that defaults to point.
3760 3775
3761*** `field-beginning' and `field-end' take new optional argument, LIMIT.
3762
3763This argument tells them not to search beyond LIMIT. Instead they
3764give up and return LIMIT.
3765
3766*** Function `pos-visible-in-window-p' now returns the pixel coordinates 3776*** Function `pos-visible-in-window-p' now returns the pixel coordinates
3767and partial visibility state of the corresponding row, if the PARTIALLY 3777and partial visibility state of the corresponding row, if the PARTIALLY
3768arg is non-nil. 3778arg is non-nil.
3769 3779
3770*** New function `window-line-height' is an efficient way to get
3771information about a specific text line in a window provided that the
3772window's display is up-to-date.
3773
3774*** New functions `posn-at-point' and `posn-at-x-y' return 3780*** New functions `posn-at-point' and `posn-at-x-y' return
3775click-event-style position information for a given visible buffer 3781click-event-style position information for a given visible buffer
3776position or for a given window pixel coordinate. 3782position or for a given window pixel coordinate.
3777 3783
3784*** New function `mouse-on-link-p' tests if a position is in a clickable link.
3785
3786This is the function used by the new `mouse-1-click-follows-link'
3787functionality.
3788
3778** Text modification: 3789** Text modification:
3779 3790
3780*** The new function `buffer-chars-modified-tick' returns a buffer's 3791*** The new function `buffer-chars-modified-tick' returns a buffer's
@@ -3886,17 +3897,17 @@ finished.
3886 3897
3887** Buffer-related changes: 3898** Buffer-related changes:
3888 3899
3900*** The new function `buffer-local-value' returns the buffer-local
3901binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not
3902have a buffer-local binding in buffer BUFFER, it returns the default
3903value of VARIABLE instead.
3904
3889*** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST. 3905*** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST.
3890 3906
3891If it is non-nil, it specifies which buffers to list. 3907If it is non-nil, it specifies which buffers to list.
3892 3908
3893*** `kill-buffer-hook' is now a permanent local. 3909*** `kill-buffer-hook' is now a permanent local.
3894 3910
3895*** The new function `buffer-local-value' returns the buffer-local
3896binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not
3897have a buffer-local binding in buffer BUFFER, it returns the default
3898value of VARIABLE instead.
3899
3900*** The function `frame-or-buffer-changed-p' now lets you maintain 3911*** The function `frame-or-buffer-changed-p' now lets you maintain
3901various status records in parallel. 3912various status records in parallel.
3902 3913
@@ -3941,8 +3952,6 @@ These match the beginning and end of a symbol. A symbol is a
3941non-empty sequence of either word or symbol constituent characters, as 3952non-empty sequence of either word or symbol constituent characters, as
3942specified by the syntax table. 3953specified by the syntax table.
3943 3954
3944*** rx.el has new corresponding `symbol-start' and `symbol-end' elements.
3945
3946*** `skip-chars-forward' and `skip-chars-backward' now handle 3955*** `skip-chars-forward' and `skip-chars-backward' now handle
3947character classes such as `[:alpha:]', along with individual 3956character classes such as `[:alpha:]', along with individual
3948characters and ranges. 3957characters and ranges.
@@ -3958,6 +3967,8 @@ accepts such a list for restoring the match state.
3958argument `reseat'. When non-nil, all markers in the match data list 3967argument `reseat'. When non-nil, all markers in the match data list
3959passed to these functions will be reseated to point to nowhere. 3968passed to these functions will be reseated to point to nowhere.
3960 3969
3970*** rx.el has new corresponding `symbol-start' and `symbol-end' elements.
3971
3961*** The default value of `sentence-end' is now defined using the new 3972*** The default value of `sentence-end' is now defined using the new
3962variable `sentence-end-without-space', which contains such characters 3973variable `sentence-end-without-space', which contains such characters
3963that end a sentence without following spaces. 3974that end a sentence without following spaces.
@@ -3984,7 +3995,9 @@ range BEG...END and increased the buffer size by DELTA.
3984`undo-outer-limit', garbage collection empties it. This is to prevent 3995`undo-outer-limit', garbage collection empties it. This is to prevent
3985it from using up the available memory and choking Emacs. 3996it from using up the available memory and choking Emacs.
3986 3997
3987** New `yank-handler' text property can be used to control how 3998** Killing and yanking changes:
3999
4000*** New `yank-handler' text property can be used to control how
3988previously killed text on the kill ring is reinserted. 4001previously killed text on the kill ring is reinserted.
3989 4002
3990The value of the `yank-handler' property must be a list with one to four 4003The value of the `yank-handler' property must be a list with one to four
@@ -4028,7 +4041,8 @@ string. The old behavior is available if you call
4028 4041
4029** Syntax table changes: 4042** Syntax table changes:
4030 4043
4031*** The macro `with-syntax-table' no longer copies the syntax table. 4044*** The new function `syntax-ppss' provides an efficient way to find the
4045current syntactic context at point.
4032 4046
4033*** The new function `syntax-after' returns the syntax code 4047*** The new function `syntax-after' returns the syntax code
4034of the character after a specified buffer position, taking account 4048of the character after a specified buffer position, taking account
@@ -4037,58 +4051,53 @@ of text properties as well as the character code.
4037*** `syntax-class' extracts the class of a syntax code (as returned 4051*** `syntax-class' extracts the class of a syntax code (as returned
4038by `syntax-after'). 4052by `syntax-after').
4039 4053
4040*** The new function `syntax-ppss' provides an efficient way to find the 4054*** The macro `with-syntax-table' no longer copies the syntax table.
4041current syntactic context at point.
4042 4055
4043** File operation changes: 4056** File operation changes:
4044 4057
4045*** New vars `exec-suffixes' and `load-suffixes' used when 4058*** New vars `exec-suffixes' and `load-suffixes' used when
4046searching for an executable or an Emacs Lisp file. 4059searching for an executable or an Emacs Lisp file.
4047 4060
4048*** The new primitive `set-file-times' sets a file's access and 4061*** New function `locate-file' searches for a file in a list of directories.
4049modification times. Magic file name handlers can handle this 4062`locate-file' accepts a name of a file to search (a string), and two
4050operation. 4063lists: a list of directories to search in and a list of suffixes to
4064try; typical usage might use `exec-path' and `load-path' for the list
4065of directories, and `exec-suffixes' and `load-suffixes' for the list
4066of suffixes. The function also accepts a predicate argument to
4067further filter candidate files.
4068
4069One advantage of using this function is that the list of suffixes in
4070`exec-suffixes' is OS-dependant, so this function will find
4071executables without polluting Lisp code with OS dependencies.
4051 4072
4052*** The new function `file-remote-p' tests a file name and returns 4073*** The new function `file-remote-p' tests a file name and returns
4053non-nil if it specifies a remote file (one that Emacs accesses using 4074non-nil if it specifies a remote file (one that Emacs accesses using
4054its own special methods and not directly through the file system). 4075its own special methods and not directly through the file system).
4055The value in that case is an identifier for the remote file system. 4076The value in that case is an identifier for the remote file system.
4056 4077
4057*** `buffer-auto-save-file-format' is the new name for what was 4078*** The new hook `before-save-hook' is invoked by `basic-save-buffer'
4058formerly called `auto-save-file-format'. It is now a permanent local. 4079before saving buffers. This allows packages to perform various final
4059 4080tasks. For example, it can be used by the copyright package to make
4060*** Functions `file-name-sans-extension' and `file-name-extension' now 4081sure saved files have the current year in any copyright headers.
4061ignore the leading dots in file names, so that file names such as
4062`.emacs' are treated as extensionless.
4063
4064*** `visited-file-modtime' and `calendar-time-from-absolute' now return
4065a list of two integers, instead of a cons.
4066 4082
4067*** `file-chase-links' now takes an optional second argument LIMIT which 4083*** `file-chase-links' now takes an optional second argument LIMIT which
4068specifies the maximum number of links to chase through. If after that 4084specifies the maximum number of links to chase through. If after that
4069many iterations the file name obtained is still a symbolic link, 4085many iterations the file name obtained is still a symbolic link,
4070`file-chase-links' returns it anyway. 4086`file-chase-links' returns it anyway.
4071 4087
4072*** The new hook `before-save-hook' is invoked by `basic-save-buffer' 4088*** Functions `file-name-sans-extension' and `file-name-extension' now
4073before saving buffers. This allows packages to perform various final 4089ignore the leading dots in file names, so that file names such as
4074tasks. For example, it can be used by the copyright package to make 4090`.emacs' are treated as extensionless.
4075sure saved files have the current year in any copyright headers.
4076 4091
4077*** If `buffer-save-without-query' is non-nil in some buffer, 4092*** If `buffer-save-without-query' is non-nil in some buffer,
4078`save-some-buffers' will always save that buffer without asking (if 4093`save-some-buffers' will always save that buffer without asking (if
4079it's modified). 4094it's modified).
4080 4095
4081*** New function `locate-file' searches for a file in a list of directories. 4096*** `buffer-auto-save-file-format' is the new name for what was
4082`locate-file' accepts a name of a file to search (a string), and two 4097formerly called `auto-save-file-format'. It is now a permanent local.
4083lists: a list of directories to search in and a list of suffixes to
4084try; typical usage might use `exec-path' and `load-path' for the list
4085of directories, and `exec-suffixes' and `load-suffixes' for the list
4086of suffixes. The function also accepts a predicate argument to
4087further filter candidate files.
4088 4098
4089One advantage of using this function is that the list of suffixes in 4099*** `visited-file-modtime' and `calendar-time-from-absolute' now return
4090`exec-suffixes' is OS-dependant, so this function will find 4100a list of two integers, instead of a cons.
4091executables without polluting Lisp code with OS dependencies.
4092 4101
4093*** The precedence of file name handlers has been changed. 4102*** The precedence of file name handlers has been changed.
4094 4103
@@ -4114,8 +4123,16 @@ name handlers. This will be exploited for remote files mainly.
4114*** The function `file-name-completion' accepts an optional argument 4123*** The function `file-name-completion' accepts an optional argument
4115PREDICATE, and rejects completion candidates that don't satisfy PREDICATE. 4124PREDICATE, and rejects completion candidates that don't satisfy PREDICATE.
4116 4125
4126*** The new primitive `set-file-times' sets a file's access and
4127modification times. Magic file name handlers can handle this
4128operation.
4129
4117** Input changes: 4130** Input changes:
4118 4131
4132*** Functions `y-or-n-p', `read-char', `read-key-sequence' and the like, that
4133display a prompt but don't use the minibuffer, now display the prompt
4134using the text properties (esp. the face) of the prompt string.
4135
4119*** The functions `read-event', `read-char', and `read-char-exclusive' 4136*** The functions `read-event', `read-char', and `read-char-exclusive'
4120have a new optional argument SECONDS. If non-nil, this specifies a 4137have a new optional argument SECONDS. If non-nil, this specifies a
4121maximum time to wait for input, in seconds. If no input arrives after 4138maximum time to wait for input, in seconds. If no input arrives after
@@ -4129,10 +4146,6 @@ previous `k' or `K' argument was a down-event; otherwise nil is used.
4129much like `F', but if the input is a directory name (even defaulted), 4146much like `F', but if the input is a directory name (even defaulted),
4130it returns just the directory name. 4147it returns just the directory name.
4131 4148
4132*** Functions `y-or-n-p', `read-char', `read-key-sequence' and the like, that
4133display a prompt but don't use the minibuffer, now display the prompt
4134using the text properties (esp. the face) of the prompt string.
4135
4136*** (while-no-input BODY...) runs BODY, but only so long as no input 4149*** (while-no-input BODY...) runs BODY, but only so long as no input
4137arrives. If the user types or clicks anything, BODY stops as if a 4150arrives. If the user types or clicks anything, BODY stops as if a
4138quit had occurred. `while-no-input' returns the value of BODY, if BODY 4151quit had occurred. `while-no-input' returns the value of BODY, if BODY
@@ -4209,16 +4222,20 @@ If completion is requested in the minibuffer, FUN will be called in the buffer
4209from which the minibuffer was entered. The return value of 4222from which the minibuffer was entered. The return value of
4210`lazy-completion-table' must be used to initialize the value of VAR. 4223`lazy-completion-table' must be used to initialize the value of VAR.
4211 4224
4212** Enhancements to keymaps. 4225** Abbrev changes:
4213 4226
4214*** New keymaps for typing file names 4227*** `define-abbrev' now accepts an optional argument SYSTEM-FLAG.
4215 4228
4216Two new keymaps, `minibuffer-local-filename-completion-map' and 4229If non-nil, this marks the abbrev as a "system" abbrev, which means
4217`minibuffer-local-must-match-filename-map', apply whenever 4230that it won't be stored in the user's abbrevs file if he saves the
4218Emacs reads a file name in the minibuffer. These key maps override 4231abbrevs. Major modes that predefine some abbrevs should always
4219the usual binding of SPC to `minibuffer-complete-word' (so that file 4232specify this flag.
4220names with embedded spaces could be typed without the need to quote 4233
4221the spaces). 4234*** The new function `copy-abbrev-table' copies an abbrev table.
4235
4236It returns a new abbrev table that is a copy of a given abbrev table.
4237
4238** Enhancements to keymaps.
4222 4239
4223*** Cleaner way to enter key sequences. 4240*** Cleaner way to enter key sequences.
4224 4241
@@ -4285,6 +4302,26 @@ The following changes have been made to provide command remapping:
4285 command before remapping. It is equal to `this-command' when the 4302 command before remapping. It is equal to `this-command' when the
4286 command was not remapped. 4303 command was not remapped.
4287 4304
4305*** The definition of a key-binding passed to define-key can use XEmacs-style
4306key-sequences, such as [(control a)].
4307
4308*** New keymaps for typing file names
4309
4310Two new keymaps, `minibuffer-local-filename-completion-map' and
4311`minibuffer-local-must-match-filename-map', apply whenever
4312Emacs reads a file name in the minibuffer. These key maps override
4313the usual binding of SPC to `minibuffer-complete-word' (so that file
4314names with embedded spaces could be typed without the need to quote
4315the spaces).
4316
4317*** New function `current-active-maps' returns a list of currently
4318active keymaps.
4319
4320*** New function `describe-buffer-bindings' inserts the list of all
4321defined keys and their definitions.
4322
4323*** New function `keymap-prompt' returns the prompt string of a keymap.
4324
4288*** If text has a `keymap' property, that keymap takes precedence 4325*** If text has a `keymap' property, that keymap takes precedence
4289over minor mode keymaps. 4326over minor mode keymaps.
4290 4327
@@ -4298,21 +4335,8 @@ sequence is started with a mouse event. Instead of letting the click
4298position be determined from the key sequence itself, it is also 4335position be determined from the key sequence itself, it is also
4299possible to specify it with an optional argument explicitly. 4336possible to specify it with an optional argument explicitly.
4300 4337
4301*** Dense keymaps now handle inheritance correctly.
4302
4303Previously a dense keymap would hide all of the simple-char key
4304bindings of the parent keymap.
4305
4306*** `define-key-after' now accepts keys longer than 1. 4338*** `define-key-after' now accepts keys longer than 1.
4307 4339
4308*** New function `current-active-maps' returns a list of currently
4309active keymaps.
4310
4311*** New function `describe-buffer-bindings' inserts the list of all
4312defined keys and their definitions.
4313
4314*** New function `keymap-prompt' returns the prompt string of a keymap.
4315
4316*** (map-keymap FUNCTION KEYMAP) applies the function to each binding 4340*** (map-keymap FUNCTION KEYMAP) applies the function to each binding
4317in the keymap. 4341in the keymap.
4318 4342
@@ -4322,23 +4346,30 @@ Lisp packages using many minor mode keymaps can now maintain their own
4322keymap alist separate from `minor-mode-map-alist' by adding their 4346keymap alist separate from `minor-mode-map-alist' by adding their
4323keymap alist to this list. 4347keymap alist to this list.
4324 4348
4325*** The definition of a key-binding passed to define-key can use XEmacs-style 4349*** Dense keymaps now handle inheritance correctly.
4326key-sequences, such as [(control a)].
4327 4350
4328** Abbrev changes: 4351Previously a dense keymap would hide all of the simple-char key
4352bindings of the parent keymap.
4329 4353
4330*** The new function `copy-abbrev-table' copies an abbrev table. 4354** Enhancements to process support
4331 4355
4332It returns a new abbrev table that is a copy of a given abbrev table. 4356*** Adaptive read buffering of subprocess output.
4333 4357
4334*** `define-abbrev' now accepts an optional argument SYSTEM-FLAG. 4358On some systems, when Emacs reads the output from a subprocess, the
4359output data is read in very small blocks, potentially resulting in
4360very poor performance. This behavior can be remedied to some extent
4361by setting the new variable `process-adaptive-read-buffering' to a
4362non-nil value (the default), as it will automatically delay reading
4363from such processes, allowing them to produce more output before
4364Emacs tries to read it.
4335 4365
4336If non-nil, this marks the abbrev as a "system" abbrev, which means 4366*** Processes now have an associated property list where programs can
4337that it won't be stored in the user's abbrevs file if he saves the 4367maintain process state and other per-process related information.
4338abbrevs. Major modes that predefine some abbrevs should always
4339specify this flag.
4340 4368
4341** Enhancements to process support 4369Use the new functions `process-get' and `process-put' to access, add,
4370and modify elements on this property list. Use the new functions
4371`process-plist' and `set-process-plist' to access and replace the
4372entire property list of a process.
4342 4373
4343*** Function `list-processes' now has an optional argument; if non-nil, 4374*** Function `list-processes' now has an optional argument; if non-nil,
4344it lists only the processes whose query-on-exit flag is set. 4375it lists only the processes whose query-on-exit flag is set.
@@ -4349,16 +4380,16 @@ These replace the old function `process-kill-without-query'. That
4349function is still supported, but new code should use the new 4380function is still supported, but new code should use the new
4350functions. 4381functions.
4351 4382
4352*** Function `signal-process' now accepts a process object or process 4383*** The new function `call-process-shell-command'.
4353name in addition to a process id to identify the signaled process.
4354 4384
4355*** Processes now have an associated property list where programs can 4385This executes a shell command synchronously in a separate process.
4356maintain process state and other per-process related information.
4357 4386
4358Use the new functions `process-get' and `process-put' to access, add, 4387*** The new function `process-file' is similar to `call-process', but
4359and modify elements on this property list. Use the new functions 4388obeys file handlers. The file handler is chosen based on
4360`process-plist' and `set-process-plist' to access and replace the 4389`default-directory'.
4361entire property list of a process. 4390
4391*** Function `signal-process' now accepts a process object or process
4392name in addition to a process id to identify the signaled process.
4362 4393
4363*** Function `accept-process-output' has a new optional fourth arg 4394*** Function `accept-process-output' has a new optional fourth arg
4364JUST-THIS-ONE. If non-nil, only output from the specified process 4395JUST-THIS-ONE. If non-nil, only output from the specified process
@@ -4367,24 +4398,6 @@ integer, also inhibit running timers. This feature is generally not
4367recommended, but may be necessary for specific applications, such as 4398recommended, but may be necessary for specific applications, such as
4368speech synthesis. 4399speech synthesis.
4369 4400
4370*** Adaptive read buffering of subprocess output.
4371
4372On some systems, when Emacs reads the output from a subprocess, the
4373output data is read in very small blocks, potentially resulting in
4374very poor performance. This behavior can be remedied to some extent
4375by setting the new variable `process-adaptive-read-buffering' to a
4376non-nil value (the default), as it will automatically delay reading
4377from such processes, allowing them to produce more output before
4378Emacs tries to read it.
4379
4380*** The new function `call-process-shell-command'.
4381
4382This executes a shell command synchronously in a separate process.
4383
4384*** The new function `process-file' is similar to `call-process', but
4385obeys file handlers. The file handler is chosen based on
4386`default-directory'.
4387
4388*** A process filter function gets the output as multibyte string 4401*** A process filter function gets the output as multibyte string
4389if the process specifies t for its filter's multibyteness. 4402if the process specifies t for its filter's multibyteness.
4390 4403
@@ -4427,19 +4440,6 @@ To test for the availability of a given feature, use featurep like this:
4427 4440
4428*** The old `open-network-stream' now uses `make-network-process'. 4441*** The old `open-network-stream' now uses `make-network-process'.
4429 4442
4430*** New functions `process-datagram-address', `set-process-datagram-address'.
4431
4432These functions are used with datagram-based network processes to get
4433and set the current address of the remote partner.
4434
4435*** New function `format-network-address'.
4436
4437This function reformats the Lisp representation of a network address
4438to a printable string. For example, an IP address A.B.C.D and port
4439number P is represented as a five element vector [A B C D P], and the
4440printable string returned for this vector is "A.B.C.D:P". See the doc
4441string for other formatting options.
4442
4443*** `process-contact' has an optional KEY argument. 4443*** `process-contact' has an optional KEY argument.
4444 4444
4445Depending on this argument, you can get the complete list of network 4445Depending on this argument, you can get the complete list of network
@@ -4456,6 +4456,14 @@ connection. For a server process, no connections are accepted in the
4456stopped state. For a client process, no input is received in the 4456stopped state. For a client process, no input is received in the
4457stopped state. 4457stopped state.
4458 4458
4459*** New function `format-network-address'.
4460
4461This function reformats the Lisp representation of a network address
4462to a printable string. For example, an IP address A.B.C.D and port
4463number P is represented as a five element vector [A B C D P], and the
4464printable string returned for this vector is "A.B.C.D:P". See the doc
4465string for other formatting options.
4466
4459*** New function `network-interface-list'. 4467*** New function `network-interface-list'.
4460 4468
4461This function returns a list of network interface names and their 4469This function returns a list of network interface names and their
@@ -4466,6 +4474,11 @@ current network addresses.
4466This function returns the network address, hardware address, current 4474This function returns the network address, hardware address, current
4467status, and other information about a specific network interface. 4475status, and other information about a specific network interface.
4468 4476
4477*** New functions `process-datagram-address', `set-process-datagram-address'.
4478
4479These functions are used with datagram-based network processes to get
4480and set the current address of the remote partner.
4481
4469*** Deleting a network process with `delete-process' calls the sentinel. 4482*** Deleting a network process with `delete-process' calls the sentinel.
4470 4483
4471The status message passed to the sentinel for a deleted network 4484The status message passed to the sentinel for a deleted network
@@ -4475,11 +4488,6 @@ connection is closed by the remote peer has been changed to
4475 4488
4476** Using window objects: 4489** Using window objects:
4477 4490
4478*** New function `window-body-height'.
4479
4480This is like `window-height' but does not count the mode line or the
4481header line.
4482
4483*** You can now make a window as short as one line. 4491*** You can now make a window as short as one line.
4484 4492
4485A window that is just one line tall does not display either a mode 4493A window that is just one line tall does not display either a mode
@@ -4496,6 +4504,14 @@ the mode line.
4496*** The new functions `window-pixel-edges' and `window-inside-pixel-edges' 4504*** The new functions `window-pixel-edges' and `window-inside-pixel-edges'
4497return window edges in units of pixels, rather than columns and lines. 4505return window edges in units of pixels, rather than columns and lines.
4498 4506
4507*** New function `window-body-height'.
4508
4509This is like `window-height' but does not count the mode line or the
4510header line.
4511
4512*** The new function `adjust-window-trailing-edge' moves the right
4513or bottom edge of a window. It does not move other window edges.
4514
4499*** The new macro `with-selected-window' temporarily switches the 4515*** The new macro `with-selected-window' temporarily switches the
4500selected window without impacting the order of `buffer-list'. 4516selected window without impacting the order of `buffer-list'.
4501It saves and restores the current buffer, too. 4517It saves and restores the current buffer, too.
@@ -4520,11 +4536,18 @@ and scroll-bar settings.
4520argument `dedicated'. If non-nil, those functions do not ignore 4536argument `dedicated'. If non-nil, those functions do not ignore
4521dedicated windows. 4537dedicated windows.
4522 4538
4523*** The new function `adjust-window-trailing-edge' moves the right
4524or bottom edge of a window. It does not move other window edges.
4525
4526** Customizable fringe bitmaps 4539** Customizable fringe bitmaps
4527 4540
4541*** There are new display properties, `left-fringe' and `right-fringe',
4542that can be used to show a specific bitmap in the left or right fringe
4543bitmap of the display line.
4544
4545Format is `display (left-fringe BITMAP [FACE])', where BITMAP is a
4546symbol identifying a fringe bitmap, either built-in or defined with
4547`define-fringe-bitmap', and FACE is an optional face name to be used
4548for displaying the bitmap instead of the default `fringe' face.
4549When specified, FACE is automatically merged with the `fringe' face.
4550
4528*** New buffer-local variables `fringe-indicator-alist' and 4551*** New buffer-local variables `fringe-indicator-alist' and
4529`fringe-cursor-alist' maps between logical (internal) fringe indicator 4552`fringe-cursor-alist' maps between logical (internal) fringe indicator
4530and cursor symbols and the actual fringe bitmaps to be displayed. 4553and cursor symbols and the actual fringe bitmaps to be displayed.
@@ -4543,16 +4566,6 @@ used for a specific fringe bitmap. The face is automatically merged
4543with the `fringe' face, so normally, the face should only specify the 4566with the `fringe' face, so normally, the face should only specify the
4544foreground color of the bitmap. 4567foreground color of the bitmap.
4545 4568
4546*** There are new display properties, `left-fringe' and `right-fringe',
4547that can be used to show a specific bitmap in the left or right fringe
4548bitmap of the display line.
4549
4550Format is `display (left-fringe BITMAP [FACE])', where BITMAP is a
4551symbol identifying a fringe bitmap, either built-in or defined with
4552`define-fringe-bitmap', and FACE is an optional face name to be used
4553for displaying the bitmap instead of the default `fringe' face.
4554When specified, FACE is automatically merged with the `fringe' face.
4555
4556*** New function `fringe-bitmaps-at-pos' returns the current fringe 4569*** New function `fringe-bitmaps-at-pos' returns the current fringe
4557bitmaps in the display line at a given buffer position. 4570bitmaps in the display line at a given buffer position.
4558 4571
@@ -4825,26 +4838,16 @@ controlled/overridden via the `pointer' text property.
4825 4838
4826** Mouse event enhancements: 4839** Mouse event enhancements:
4827 4840
4828*** Mouse events for clicks on window fringes now specify `left-fringe'
4829or `right-fringe' as the area.
4830
4831*** All mouse events now include a buffer position regardless of where 4841*** All mouse events now include a buffer position regardless of where
4832you clicked. For mouse clicks in window margins and fringes, this is 4842you clicked. For mouse clicks in window margins and fringes, this is
4833a sensible buffer position corresponding to the surrounding text. 4843a sensible buffer position corresponding to the surrounding text.
4834 4844
4835*** `posn-point' now returns buffer position for non-text area events. 4845*** Mouse events for clicks on window fringes now specify `left-fringe'
4836 4846or `right-fringe' as the area.
4837*** Function `mouse-set-point' now works for events outside text area.
4838
4839*** New function `posn-area' returns window area clicked on (nil means
4840text area).
4841 4847
4842*** Mouse events include actual glyph column and row for all event types 4848*** Mouse events include actual glyph column and row for all event types
4843and all areas. 4849and all areas.
4844 4850
4845*** New function `posn-actual-col-row' returns the actual glyph coordinates
4846of the mouse event position.
4847
4848*** Mouse events can now indicate an image object clicked on. 4851*** Mouse events can now indicate an image object clicked on.
4849 4852
4850*** Mouse events include relative X and Y pixel coordinates relative to 4853*** Mouse events include relative X and Y pixel coordinates relative to
@@ -4853,6 +4856,16 @@ the top left corner of the object (image or character) clicked on.
4853*** Mouse events include the pixel width and height of the object 4856*** Mouse events include the pixel width and height of the object
4854(image or character) clicked on. 4857(image or character) clicked on.
4855 4858
4859*** Function `mouse-set-point' now works for events outside text area.
4860
4861*** `posn-point' now returns buffer position for non-text area events.
4862
4863*** New function `posn-area' returns window area clicked on (nil means
4864text area).
4865
4866*** New function `posn-actual-col-row' returns the actual glyph coordinates
4867of the mouse event position.
4868
4856*** New functions 'posn-object', 'posn-object-x-y', 'posn-object-width-height'. 4869*** New functions 'posn-object', 'posn-object-x-y', 'posn-object-width-height'.
4857 4870
4858These return the image or string object of a mouse click, the X and Y 4871These return the image or string object of a mouse click, the X and Y
@@ -4914,12 +4927,6 @@ directly in the `face' property instead of using a named face.
4914defaults that apply to all the subsequent cases (and can be overridden 4927defaults that apply to all the subsequent cases (and can be overridden
4915by them). 4928by them).
4916 4929
4917*** The variable `face-font-rescale-alist' specifies how much larger
4918(or smaller) font we should use. For instance, if the value is
4919'((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10
4920point, we actually use a font of 13 point if the font matches
4921SOME-FONTNAME-PATTERN.
4922
4923*** The function `face-differs-from-default-p' now truly checks 4930*** The function `face-differs-from-default-p' now truly checks
4924whether the given face displays differently from the default face or 4931whether the given face displays differently from the default face or
4925not (previously it did only a very cursory check). 4932not (previously it did only a very cursory check).
@@ -4941,6 +4948,12 @@ releases of Emacs, the order was the opposite. This change was made
4941so that :inherit face lists operate identically to face lists in text 4948so that :inherit face lists operate identically to face lists in text
4942`face' properties. 4949`face' properties.
4943 4950
4951*** The variable `face-font-rescale-alist' specifies how much larger
4952(or smaller) font we should use. For instance, if the value is
4953'((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10
4954point, we actually use a font of 13 point if the font matches
4955SOME-FONTNAME-PATTERN.
4956
4944*** On terminals, faces with the :inverse-video attribute are displayed 4957*** On terminals, faces with the :inverse-video attribute are displayed
4945with swapped foreground and background colors even when one of them is 4958with swapped foreground and background colors even when one of them is
4946not specified. In previous releases of Emacs, if either foreground 4959not specified. In previous releases of Emacs, if either foreground
@@ -4994,6 +5007,15 @@ of multiline constructs so that such constructs get properly recognized.
4994 5007
4995** Major mode mechanism changes: 5008** Major mode mechanism changes:
4996 5009
5010*** New variable `magic-mode-alist' determines major mode for a file by
5011looking at the file contents. It takes precedence over `auto-mode-alist'.
5012
5013*** XML or SGML major mode is selected when file starts with an `<?xml'
5014or `<!DOCTYPE' declaration.
5015
5016*** An interpreter magic line (if present) takes precedence over the
5017file name when setting the major mode.
5018
4997*** If new variable `auto-mode-case-fold' is set to a non-nil value, 5019*** If new variable `auto-mode-case-fold' is set to a non-nil value,
4998Emacs will perform a second case-insensitive search through 5020Emacs will perform a second case-insensitive search through
4999`auto-mode-alist' if the first case-sensitive search fails. This 5021`auto-mode-alist' if the first case-sensitive search fails. This
@@ -5002,48 +5024,39 @@ PROG.HTML is opened in html-mode. Note however, that independent of
5002this setting, *.C files are usually recognized as C++ files. It also 5024this setting, *.C files are usually recognized as C++ files. It also
5003has no effect on systems with case-insensitive file names. 5025has no effect on systems with case-insensitive file names.
5004 5026
5005*** New variable `magic-mode-alist' determines major mode for a file by
5006looking at the file contents. It takes precedence over `auto-mode-alist'.
5007
5008*** An interpreter magic line (if present) takes precedence over the
5009file name when setting the major mode.
5010
5011*** XML or SGML major mode is selected when file starts with an `<?xml'
5012or `<!DOCTYPE' declaration.
5013
5014*** Use the new function `run-mode-hooks' to run the major mode's mode hook.
5015
5016*** All major mode functions should now run the new normal hook 5027*** All major mode functions should now run the new normal hook
5017`after-change-major-mode-hook', at their very end, after the mode 5028`after-change-major-mode-hook', at their very end, after the mode
5018hooks. `run-mode-hooks' does this automatically. 5029hooks. `run-mode-hooks' does this automatically.
5019 5030
5020*** If a major mode function has a non-nil `no-clone-indirect'
5021property, `clone-indirect-buffer' signals an error if you use
5022it in that buffer.
5023
5024*** Major modes can define `eldoc-documentation-function' 5031*** Major modes can define `eldoc-documentation-function'
5025locally to provide Eldoc functionality by some method appropriate to 5032locally to provide Eldoc functionality by some method appropriate to
5026the language. 5033the language.
5027 5034
5028*** `define-derived-mode' by default creates a new empty abbrev table. 5035*** Use the new function `run-mode-hooks' to run the major mode's mode hook.
5029It does not copy abbrevs from the parent mode's abbrev table.
5030 5036
5031*** The new function `run-mode-hooks' and the new macro `delay-mode-hooks' 5037*** The new function `run-mode-hooks' and the new macro `delay-mode-hooks'
5032are used by `define-derived-mode' to make sure the mode hook for the 5038are used by `define-derived-mode' to make sure the mode hook for the
5033parent mode is run at the end of the child mode. 5039parent mode is run at the end of the child mode.
5034 5040
5041*** `define-derived-mode' by default creates a new empty abbrev table.
5042It does not copy abbrevs from the parent mode's abbrev table.
5043
5044*** If a major mode function has a non-nil `no-clone-indirect'
5045property, `clone-indirect-buffer' signals an error if you use
5046it in that buffer.
5047
5035** Minor mode changes: 5048** Minor mode changes:
5036 5049
5037*** `define-minor-mode' now accepts arbitrary additional keyword arguments 5050*** `define-minor-mode' now accepts arbitrary additional keyword arguments
5038and simply passes them to `defcustom', if applicable. 5051and simply passes them to `defcustom', if applicable.
5039 5052
5040*** `minor-mode-list' now holds a list of minor mode commands.
5041
5042*** `define-globalized-minor-mode'. 5053*** `define-globalized-minor-mode'.
5043 5054
5044This is a new name for what was formerly called 5055This is a new name for what was formerly called
5045`easy-mmode-define-global-mode'. The old name remains as an alias. 5056`easy-mmode-define-global-mode'. The old name remains as an alias.
5046 5057
5058*** `minor-mode-list' now holds a list of minor mode commands.
5059
5047** Command loop changes: 5060** Command loop changes:
5048 5061
5049*** The new function `called-interactively-p' does what many people 5062*** The new function `called-interactively-p' does what many people
@@ -5162,6 +5175,41 @@ Reference manual for more detailed documentation.
5162*** When using non-toolkit scroll bars with the default width, 5175*** When using non-toolkit scroll bars with the default width,
5163the `scroll-bar-width' frame parameter value is nil. 5176the `scroll-bar-width' frame parameter value is nil.
5164 5177
5178** Mode line changes:
5179
5180*** New function `format-mode-line'.
5181
5182This returns the mode line or header line of the selected (or a
5183specified) window as a string with or without text properties.
5184
5185*** The new mode-line construct `(:propertize ELT PROPS...)' can be
5186used to add text properties to mode-line elements.
5187
5188*** The new `%i' and `%I' constructs for `mode-line-format' can be used
5189to display the size of the accessible part of the buffer on the mode
5190line.
5191
5192*** Mouse-face on mode-line (and header-line) is now supported.
5193
5194** Menu manipulation changes:
5195
5196*** To manipulate the File menu using easy-menu, you must specify the
5197proper name "file". In previous Emacs versions, you had to specify
5198"files", even though the menu item itself was changed to say "File"
5199several versions ago.
5200
5201*** The dummy function keys made by easy-menu are now always lower case.
5202If you specify the menu item name "Ada", for instance, it uses `ada'
5203as the "key" bound by that key binding.
5204
5205This is relevant only if Lisp code looks for the bindings that were
5206made with easy-menu.
5207
5208*** `easy-menu-define' now allows you to use nil for the symbol name
5209if you don't need to give the menu a name. If you install the menu
5210into other keymaps right away (MAPS is non-nil), it usually doesn't
5211need to have a name.
5212
5165** Mule changes: 5213** Mule changes:
5166 5214
5167*** Already true in Emacs 21.1, but not emphasized clearly enough: 5215*** Already true in Emacs 21.1, but not emphasized clearly enough:
@@ -5179,9 +5227,6 @@ the time it takes to convert the format.
51793. For binary files where format conversion would be pointless and 52273. For binary files where format conversion would be pointless and
5180wasteful. 5228wasteful.
5181 5229
5182*** `set-buffer-file-coding-system' now takes an additional argument,
5183NOMODIFY. If it is non-nil, it means don't mark the buffer modified.
5184
5185*** The new variable `auto-coding-functions' lets you specify functions 5230*** The new variable `auto-coding-functions' lets you specify functions
5186to examine a file being visited and deduce the proper coding system 5231to examine a file being visited and deduce the proper coding system
5187for it. (If the coding system is detected incorrectly for a specific 5232for it. (If the coding system is detected incorrectly for a specific
@@ -5208,40 +5253,8 @@ hash tables defined by the Lisp function `define-translation-hash-table'.
5208*** New function `quail-find-key' returns a list of keys to type in the 5253*** New function `quail-find-key' returns a list of keys to type in the
5209current input method to input a character. 5254current input method to input a character.
5210 5255
5211** Mode line changes: 5256*** `set-buffer-file-coding-system' now takes an additional argument,
5212 5257NOMODIFY. If it is non-nil, it means don't mark the buffer modified.
5213*** New function `format-mode-line'.
5214
5215This returns the mode line or header line of the selected (or a
5216specified) window as a string with or without text properties.
5217
5218*** The new mode-line construct `(:propertize ELT PROPS...)' can be
5219used to add text properties to mode-line elements.
5220
5221*** The new `%i' and `%I' constructs for `mode-line-format' can be used
5222to display the size of the accessible part of the buffer on the mode
5223line.
5224
5225*** Mouse-face on mode-line (and header-line) is now supported.
5226
5227** Menu manipulation changes:
5228
5229*** To manipulate the File menu using easy-menu, you must specify the
5230proper name "file". In previous Emacs versions, you had to specify
5231"files", even though the menu item itself was changed to say "File"
5232several versions ago.
5233
5234*** The dummy function keys made by easy-menu are now always lower case.
5235If you specify the menu item name "Ada", for instance, it uses `ada'
5236as the "key" bound by that key binding.
5237
5238This is relevant only if Lisp code looks for the bindings that were
5239made with easy-menu.
5240
5241*** `easy-menu-define' now allows you to use nil for the symbol name
5242if you don't need to give the menu a name. If you install the menu
5243into other keymaps right away (MAPS is non-nil), it usually doesn't
5244need to have a name.
5245 5258
5246** Operating system access: 5259** Operating system access:
5247 5260
@@ -5261,6 +5274,18 @@ formerly used for that purpose is now an alias for locale-coding-system.
5261*** New function `redirect-debugging-output' can be used to redirect 5274*** New function `redirect-debugging-output' can be used to redirect
5262debugging output on the stderr file handle to a file. 5275debugging output on the stderr file handle to a file.
5263 5276
5277** GC changes:
5278
5279*** New variable `gc-cons-percentage' automatically grows the GC cons threshold
5280as the heap size increases.
5281
5282*** New variables `gc-elapsed' and `gcs-done' provide extra information
5283on garbage collection.
5284
5285*** The normal hook `post-gc-hook' is run at the end of garbage collection.
5286
5287The hook is run with GC inhibited, so use it with care.
5288
5264** Miscellaneous: 5289** Miscellaneous:
5265 5290
5266*** A number of hooks have been renamed to better follow the conventions: 5291*** A number of hooks have been renamed to better follow the conventions:
@@ -5281,18 +5306,6 @@ Use the LOCAL arg of `add-hook'.
5281 5306
5282*** New function `x-send-client-message' sends a client message when 5307*** New function `x-send-client-message' sends a client message when
5283running under X. 5308running under X.
5284
5285** GC changes:
5286
5287*** New variable `gc-cons-percentage' automatically grows the GC cons threshold
5288as the heap size increases.
5289
5290*** New variables `gc-elapsed' and `gcs-done' provide extra information
5291on garbage collection.
5292
5293*** The normal hook `post-gc-hook' is run at the end of garbage collection.
5294
5295The hook is run with GC inhibited, so use it with care.
5296 5309
5297* New Packages for Lisp Programming in Emacs 22.1 5310* New Packages for Lisp Programming in Emacs 22.1
5298 5311