comparison etc/NEWS @ 80858:1e7591247a96

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