comparison etc/NEWS @ 90813:e6fdae9180d4

Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 698-710) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 216) - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-196
author Miles Bader <miles@gnu.org>
date Tue, 24 Apr 2007 21:56:25 +0000
parents 4ef881a120fe bb1226c94c20
children 70bf32a0f523
comparison
equal deleted inserted replaced
90812:6137cc8ddf90 90813:e6fdae9180d4
1 GNU Emacs NEWS -- history of user-visible changes. 2006-06-04 1 GNU Emacs NEWS -- history of user-visible changes.
2 2
3 Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 3 Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
4 Free Software Foundation, Inc. 4 Free Software Foundation, Inc.
5 See the end of the file for license conditions. 5 See the end of the file for license conditions.
6 6
108 with Emacs 22 (see the extensive list below), and you should remove 108 with Emacs 22 (see the extensive list below), and you should remove
109 any older versions of these packages to ensure that the Emacs 22 109 any older versions of these packages to ensure that the Emacs 22
110 version is used. You can use M-x list-load-path-shadows to find such 110 version is used. You can use M-x list-load-path-shadows to find such
111 older packages. 111 older packages.
112 112
113 Some specific packages which are known to cause problems are: 113 Some specific packages that are known to cause problems are:
114 114
115 ** Semantic (used by CEDET, ECB, JDEE): upgrade to latest version. 115 ** Semantic (used by CEDET, ECB, JDEE): upgrade to latest version.
116 ** cua.el, cua-mode.el: remove old versions. 116 ** cua.el, cua-mode.el: remove old versions.
117 117
118 118
119 * Installation Changes in Emacs 22.1 119 * Installation Changes in Emacs 22.1
120 120
121 --- 121 ** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk'
122 when you run configure. This requires Gtk+ 2.4 or newer. This port
123 provides a way to display multilingual text in menus (with some caveats).
124
122 ** Emacs comes with a new set of icons. 125 ** Emacs comes with a new set of icons.
123 These icons are displayed on the taskbar and/or titlebar when Emacs 126 These icons are displayed on the taskbar and/or titlebar when Emacs
124 runs in a graphical environment. Source files for these icons can be 127 runs in a graphical environment. Source files for these icons can be
125 found in etc/images/icons. (You can't change the icons displayed by 128 found in etc/images/icons. (You can't change the icons displayed by
126 Emacs by changing these files directly. On X, the icon is compiled 129 Emacs by changing these files directly. On X, the icon is compiled
127 into the Emacs executable; see gnu.h in the source tree. On MS 130 into the Emacs executable; see gnu.h in the source tree. On MS
128 Windows, see nt/icons/emacs.ico.) 131 Windows, see nt/icons/emacs.ico.)
129 132
130 --- 133 ** The Emacs Lisp Reference Manual is now part of the distribution.
134
135 The Emacs Lisp Reference Manual in Info format is built as part of the
136 Emacs build procedure and installed together with the Emacs User
137 Manual. A menu item was added to the menu bar to make it easily
138 accessible (Help->More Manuals->Emacs Lisp Reference).
139
140 ** The Introduction to Programming in Emacs Lisp manual is now part of
141 the distribution.
142
143 This manual is now part of the standard distribution and is installed,
144 together with the Emacs User Manual, into the Info directory. A menu
145 item was added to the menu bar to make it easily accessible
146 (Help->More Manuals->Introduction to Emacs Lisp).
147
148 ** Leim is now part of the Emacs distribution.
149 You no longer need to download a separate tarball in order to build
150 Emacs with Leim.
151
152 ** New translations of the Emacs Tutorial are available in the
153 following languages: Brasilian Portuguese, Bulgarian, Chinese (both
154 with simplified and traditional characters), French, Russian, and
155 Italian. Type `C-u C-h t' to choose one of them in case your language
156 setup doesn't automatically select the right one.
157
158 ** New translations of the Emacs reference card are available in the
159 Brasilian Portuguese and Russian. The corresponding PostScript files
160 are also included.
161
162 ** A French translation of the `Emacs Survival Guide' is available.
163
164 ** Emacs now includes support for loading image libraries on demand.
165 (Currently this feature is only used on MS Windows.) You can configure
166 the supported image types and their associated dynamic libraries by
167 setting the variable `image-library-alist'.
168
169 ** Support for GNU/Linux systems on X86-64 machines was added.
170
171 ** Support for GNU/Linux systems on S390 machines was added.
172
173 ** Support for GNU/Linux systems on Tensilica Xtensa machines was added.
174
175 ** Support for FreeBSD/Alpha has been added.
176
177 ** Support for a Cygwin build of Emacs was added.
178
179 ** Support for MacOS X was added.
180 See the files mac/README and mac/INSTALL for build instructions.
181
182 ** Mac OS 9 port now uses the Carbon API by default. You can also
183 create a non-Carbon build by specifying `NonCarbon' as a target. See
184 the files mac/README and mac/INSTALL for build instructions.
185
186 ** The `emacsserver' program has been removed, replaced with Lisp code.
187
188 ** The `yow' program has been removed.
189 Use the corresponding Emacs feature instead.
190
131 ** Emacs now supports new configure options `--program-prefix', 191 ** Emacs now supports new configure options `--program-prefix',
132 `--program-suffix' and `--program-transform-name' that affect the names of 192 `--program-suffix' and `--program-transform-name' that affect the names of
133 installed programs. 193 installed programs.
134 194
135 ---
136 ** Emacs can now be built without sound support.
137
138 ---
139 ** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk'
140 when you run configure. This requires Gtk+ 2.4 or newer. This port
141 provides a way to display multilingual text in menus (with some caveats).
142
143 ---
144 ** The `emacsserver' program has been removed, replaced with Lisp code.
145
146 ---
147 ** The `yow' program has been removed.
148 Use the corresponding Emacs feature instead.
149
150 ---
151 ** By default, Emacs now uses a setgid helper program to update game 195 ** By default, Emacs now uses a setgid helper program to update game
152 scores. The directory ${localstatedir}/games/emacs is the normal 196 scores. The directory ${localstatedir}/games/emacs is the normal
153 place for game scores to be stored. You can control this with the 197 place for game scores to be stored. You can control this with the
154 configure option `--with-game-dir'. The specific user that Emacs uses 198 configure option `--with-game-dir'. The specific user that Emacs uses
155 to own the game scores is controlled by `--with-game-user'. If access 199 to own the game scores is controlled by `--with-game-user'. If access
156 to a game user is not available, then scores will be stored separately 200 to a game user is not available, then scores will be stored separately
157 in each user's home directory. 201 in each user's home directory.
158 202
159 --- 203 ** Emacs can now be built without sound support.
160 ** Leim is now part of the Emacs distribution. 204
161 You no longer need to download a separate tarball in order to build
162 Emacs with Leim.
163
164 +++
165 ** The Emacs Lisp Reference Manual is now part of the distribution.
166
167 The Emacs Lisp Reference Manual in Info format is built as part of the
168 Emacs build procedure and installed together with the Emacs User
169 Manual. A menu item was added to the menu bar that makes it easy
170 accessible (Help->More Manuals->Emacs Lisp Reference).
171
172 ---
173 ** The Introduction to Programming in Emacs Lisp manual is now part of
174 the distribution.
175
176 This manual is now part of the standard distribution and is installed,
177 together with the Emacs User Manual, into the Info directory. A menu
178 item was added to the menu bar that makes it easy accessible
179 (Help->More Manuals->Introduction to Emacs Lisp).
180
181 ---
182 ** New translations of the Emacs Tutorial are available in the
183 following languages: Brasilian Portuguese, Bulgarian, Chinese (both
184 with simplified and traditional characters), French, and Italian.
185 Type `C-u C-h t' to choose one of them in case your language setup
186 doesn't automatically select the right one.
187
188 ---
189 ** A Portuguese translation of Emacs' reference card has been added.
190 Its name is `pt-br-refcard.tex'. The corresponding PostScript file is
191 also included.
192
193 ---
194 ** A French translation of the `Emacs Survival Guide' is available.
195
196 ---
197 ** Emacs now includes support for loading image libraries on demand.
198 (Currently this feature is only used on MS Windows.) You can configure
199 the supported image types and their associated dynamic libraries by
200 setting the variable `image-library-alist'.
201
202 ---
203 ** Support for a Cygwin build of Emacs was added.
204
205 ---
206 ** Support for FreeBSD/Alpha has been added.
207
208 ---
209 ** Support for GNU/Linux systems on S390 machines was added.
210
211 ---
212 ** Support for GNU/Linux systems on Tensilica Xtensa machines was added.
213
214 ---
215 ** Support for MacOS X was added.
216 See the files mac/README and mac/INSTALL for build instructions.
217
218 ---
219 ** Support for GNU/Linux systems on X86-64 machines was added.
220
221 ---
222 ** Mac OS 9 port now uses the Carbon API by default. You can also
223 create non-Carbon build by specifying `NonCarbon' as a target. See
224 the files mac/README and mac/INSTALL for build instructions.
225
226 ---
227 ** Building with -DENABLE_CHECKING does not automatically build with union 205 ** Building with -DENABLE_CHECKING does not automatically build with union
228 types any more. Add -DUSE_LISP_UNION_TYPE if you want union types. 206 types any more. Add -DUSE_LISP_UNION_TYPE if you want union types.
229 207
230 ---
231 ** When pure storage overflows while dumping, Emacs now prints how 208 ** When pure storage overflows while dumping, Emacs now prints how
232 much pure storage it will approximately need. 209 much pure storage it will approximately need.
233 210
234 ---
235 ** The script etc/emacs-buffer.gdb can be used with gdb to retrieve the 211 ** The script etc/emacs-buffer.gdb can be used with gdb to retrieve the
236 contents of buffers from a core dump and save them to files easily, should 212 contents of buffers from a core dump and save them to files easily, should
237 Emacs crash. 213 Emacs crash.
238 214
239 ---
240 ** The Emacs terminal emulation in term.el uses a different terminfo name. 215 ** The Emacs terminal emulation in term.el uses a different terminfo name.
241 The Emacs terminal emulation in term.el now uses "eterm-color" as its 216 The Emacs terminal emulation in term.el now uses "eterm-color" as its
242 terminfo name, since term.el now supports color. 217 terminfo name, since term.el now supports color.
243 218
244 ---
245 ** Emacs Lisp source files are compressed by default if `gzip' is available. 219 ** Emacs Lisp source files are compressed by default if `gzip' is available.
246 220
247 ---
248 ** All images used in Emacs have been consolidated in etc/images and subdirs. 221 ** All images used in Emacs have been consolidated in etc/images and subdirs.
249 See also the changes to `find-image', documented below. 222 See also the changes to `find-image', documented below.
250 223
251 224
252 * Startup Changes in Emacs 22.1 225 * Startup Changes in Emacs 22.1
253 226
254 +++
255 ** New command line option -Q or --quick. 227 ** New command line option -Q or --quick.
256 This is like using -q --no-site-file, but in addition it also disables 228 This is like using -q --no-site-file, but in addition it also disables
257 the fancy startup screen. 229 the fancy startup screen.
258 230
259 +++
260 ** New command line option -D or --basic-display. 231 ** New command line option -D or --basic-display.
261 Disables the menu-bar, the tool-bar, the scroll-bars, tool tips, and 232 Disables the menu-bar, the tool-bar, the scroll-bars, tool tips, and
262 the blinking cursor. 233 the blinking cursor.
263 234
264 +++
265 ** New command line option -nbc or --no-blinking-cursor disables 235 ** New command line option -nbc or --no-blinking-cursor disables
266 the blinking cursor on graphical terminals. 236 the blinking cursor on graphical terminals.
267 237
268 +++
269 ** The option --script FILE runs Emacs in batch mode and loads FILE. 238 ** The option --script FILE runs Emacs in batch mode and loads FILE.
270 It is useful for writing Emacs Lisp shell script files, because they 239 It is useful for writing Emacs Lisp shell script files, because they
271 can start with this line: 240 can start with this line:
272 241
273 #!/usr/bin/emacs --script 242 #!/usr/bin/emacs --script
274 243
275 +++
276 ** The option --directory DIR now modifies `load-path' immediately. 244 ** The option --directory DIR now modifies `load-path' immediately.
277 Directories are added to the front of `load-path' in the order they 245 Directories are added to the front of `load-path' in the order they
278 appear on the command line. For example, with this command line: 246 appear on the command line. For example, with this command line:
279 247
280 emacs -batch -L .. -L /tmp --eval "(require 'foo)" 248 emacs -batch -L .. -L /tmp --eval "(require 'foo)"
281 249
282 Emacs looks for library `foo' in the parent directory, then in /tmp, then 250 Emacs looks for library `foo' in the parent directory, then in /tmp, then
283 in the other directories in `load-path'. (-L is short for --directory.) 251 in the other directories in `load-path'. (-L is short for --directory.)
284 252
285 +++
286 ** The command line option --no-windows has been changed to 253 ** The command line option --no-windows has been changed to
287 --no-window-system. The old one still works, but is deprecated. 254 --no-window-system. The old one still works, but is deprecated.
288 255
289 ---
290 ** If the environment variable DISPLAY specifies an unreachable X display, 256 ** If the environment variable DISPLAY specifies an unreachable X display,
291 Emacs will now startup as if invoked with the --no-window-system option. 257 Emacs will now startup as if invoked with the --no-window-system option.
292 258
293 +++
294 ** The -f option, used from the command line to call a function, 259 ** The -f option, used from the command line to call a function,
295 now reads arguments for the function interactively if it is 260 now reads arguments for the function interactively if it is
296 an interactively callable function. 261 an interactively callable function.
297 262
298 +++
299 ** When you specify a frame size with --geometry, the size applies to 263 ** When you specify a frame size with --geometry, the size applies to
300 all frames you create. A position specified with --geometry only 264 all frames you create. A position specified with --geometry only
301 affects the initial frame. 265 affects the initial frame.
302 266
303 ---
304 ** Emacs built for MS-Windows now behaves like Emacs on X does, 267 ** Emacs built for MS-Windows now behaves like Emacs on X does,
305 wrt its frame position: if you don't specify a position (in your 268 with respect to its frame position: if you don't specify a position
306 .emacs init file, in the Registry, or with the --geometry command-line 269 (in your .emacs init file, in the Registry, or with the --geometry
307 option), Emacs leaves the frame position to the Windows' window 270 command-line option), Emacs leaves the frame position to the Windows'
308 manager. 271 window manager.
309 272
310 +++
311 ** Emacs can now be invoked in full-screen mode on a windowed display. 273 ** Emacs can now be invoked in full-screen mode on a windowed display.
312 When Emacs is invoked on a window system, the new command-line options 274 When Emacs is invoked on a window system, the new command-line options
313 `--fullwidth', `--fullheight', and `--fullscreen' produce a frame 275 `--fullwidth', `--fullheight', and `--fullscreen' produce a frame
314 whose width, height, or both width and height take up the entire 276 whose width, height, or both width and height take up the entire
315 screen size. (For now, this does not work with some window managers.) 277 screen size. (For now, this does not work with some window managers.)
316 278
317 +++
318 ** Emacs now displays a splash screen by default even if command-line 279 ** Emacs now displays a splash screen by default even if command-line
319 arguments were given. The new command-line option --no-splash 280 arguments were given. The new command-line option --no-splash
320 disables the splash screen; see also the variable 281 disables the splash screen; see also the variable
321 `inhibit-startup-message' (which is also aliased as 282 `inhibit-splash-screen' (which is also aliased as
322 `inhibit-splash-screen'). 283 `inhibit-startup-message').
323 284
324 +++ 285 ** The default is now to use a bitmap as the icon.
325 ** The default is now to use a bitmap as the icon, so the command-line options 286 The command-line options --icon-type, -i have been replaced with
326 --icon-type, -i has been replaced with options --no-bitmap-icon, -nbi to turn 287 options --no-bitmap-icon, -nbi to turn the bitmap icon off.
327 the bitmap icon off. 288
328
329 +++
330 ** New user option `inhibit-startup-buffer-menu'. 289 ** New user option `inhibit-startup-buffer-menu'.
331 When loading many files, for instance with `emacs *', Emacs normally 290 When loading many files, for instance with `emacs *', Emacs normally
332 displays a buffer menu. This option turns the buffer menu off. 291 displays a buffer menu. This option turns the buffer menu off.
333 292
334 +++
335 ** Init file changes 293 ** Init file changes
336 If the init file ~/.emacs does not exist, Emacs will try 294 If the init file ~/.emacs does not exist, Emacs will try
337 ~/.emacs.d/init.el or ~/.emacs.d/init.elc. Likewise, if the shell init file 295 ~/.emacs.d/init.el or ~/.emacs.d/init.elc. Likewise, if the shell init file
338 ~/.emacs_SHELL is not found, Emacs will try ~/.emacs.d/init_SHELL.sh. 296 ~/.emacs_SHELL is not found, Emacs will try ~/.emacs.d/init_SHELL.sh.
339 297
340 +++
341 ** Emacs now reads the standard abbrevs file ~/.abbrev_defs 298 ** Emacs now reads the standard abbrevs file ~/.abbrev_defs
342 automatically at startup, if it exists. When Emacs offers to save 299 automatically at startup, if it exists. When Emacs offers to save
343 modified buffers, it saves the abbrevs too if they have changed. It 300 modified buffers, it saves the abbrevs too if they have changed. It
344 can do this either silently or asking for confirmation first, 301 can do this either silently or asking for confirmation first,
345 according to the value of `save-abbrevs'. 302 according to the value of `save-abbrevs'.
346 303
347 +++
348 ** If the environment variable EMAIL is defined, Emacs now uses its value 304 ** If the environment variable EMAIL is defined, Emacs now uses its value
349 to compute the default value of `user-mail-address', in preference to 305 to compute the default value of `user-mail-address', in preference to
350 concatenation of `user-login-name' with the name of your host machine. 306 concatenation of `user-login-name' with the name of your host machine.
351 307
352 308
353 * Incompatible Editing Changes in Emacs 22.1 309 * Incompatible Editing Changes in Emacs 22.1
354 310
355 +++ 311 ** You can now follow links by clicking Mouse-1 on the link.
312
313 See below for more details.
314
356 ** M-g is now a prefix key. 315 ** M-g is now a prefix key.
357 M-g g and M-g M-g run goto-line. 316 M-g g and M-g M-g run goto-line.
358 M-g n and M-g M-n run next-error (like C-x `). 317 M-g n and M-g M-n run next-error (like C-x `).
359 M-g p and M-g M-p run previous-error. 318 M-g p and M-g M-p run previous-error.
360 319
361 +++
362 ** C-u M-g M-g switches to the most recent previous buffer, 320 ** C-u M-g M-g switches to the most recent previous buffer,
363 and goes to the specified line in that buffer. 321 and goes to the specified line in that buffer.
364 322
365 When goto-line starts to execute, if there's a number in the buffer at 323 When goto-line starts to execute, if there's a number in the buffer at
366 point then it acts as the default argument for the minibuffer. 324 point then it acts as the default argument for the minibuffer.
367 325
368 +++ 326 ** M-o now is the prefix key for setting text properties;
327 M-o M-o requests refontification.
328
369 ** The old bindings C-M-delete and C-M-backspace have been deleted, 329 ** The old bindings C-M-delete and C-M-backspace have been deleted,
370 since there are situations where one or the other will shut down 330 since there are situations where one or the other will shut down
371 the operating system or your X server. 331 the operating system or your X server.
372 332
373 +++
374 ** line-move-ignore-invisible now defaults to t.
375
376 +++
377 ** When the undo information of the current command gets really large 333 ** When the undo information of the current command gets really large
378 (beyond the value of `undo-outer-limit'), Emacs discards it and warns 334 (beyond the value of `undo-outer-limit'), Emacs discards it and warns
379 you about it. 335 you about it.
380 336
381 +++
382 ** `apply-macro-to-region-lines' now operates on all lines that begin
383 in the region, rather than on all complete lines in the region.
384
385 +++
386 ** A prefix argument is no longer required to repeat a jump to a
387 previous mark if you set `set-mark-command-repeat-pop' to t. I.e. C-u
388 C-SPC C-SPC C-SPC ... cycles through the mark ring. Use C-u C-u C-SPC
389 to set the mark immediately after a jump.
390
391 +++
392 ** The info-search bindings on C-h C-f, C-h C-k and C-h C-i
393 have been moved to C-h F, C-h K and C-h S.
394
395 +++
396 ** In incremental search, C-w is changed. M-%, C-M-w and C-M-y are special. 337 ** In incremental search, C-w is changed. M-%, C-M-w and C-M-y are special.
397 338
398 See below under "incremental search changes". 339 See below under "incremental search changes".
399 340
400 ---
401 ** C-x C-f RET (find-file), typing nothing in the minibuffer, is no longer
402 a special case.
403
404 Since the default input is the current directory, this has the effect
405 of specifying the current directory. Normally that means to visit the
406 directory with Dired.
407
408 You can get the old behavior by typing C-x C-f M-n RET, which fetches
409 the actual file name into the minibuffer.
410
411 +++
412 ** The completion commands TAB, SPC and ? in the minibuffer apply only
413 to the text before point. If there is text in the buffer after point,
414 it remains unchanged.
415
416 +++
417 ** When Emacs prompts for file names, SPC no longer completes the file name. 341 ** When Emacs prompts for file names, SPC no longer completes the file name.
418 This is so filenames with embedded spaces could be input without the 342 This is so filenames with embedded spaces could be input without the
419 need to quote the space with a C-q. The underlying changes in the 343 need to quote the space with a C-q. The underlying changes in the
420 keymaps that are active in the minibuffer are described below under 344 keymaps that are active in the minibuffer are described below under
421 "New keymaps for typing file names". 345 "New keymaps for typing file names".
422 346
423 +++ 347 ** C-x C-f RET (find-file), typing nothing in the minibuffer, is no longer
424 ** M-o now is the prefix key for setting text properties; 348 a special case.
425 M-o M-o requests refontification. 349
426 350 Since the default input is the current directory, this has the effect
427 +++ 351 of specifying the current directory. Normally that means to visit the
428 ** You can now follow links by clicking Mouse-1 on the link. 352 directory with Dired.
429 353
430 See below for more details. 354 You can get the old behavior by typing C-x C-f M-n RET, which fetches
431 355 the actual file name into the minibuffer.
432 +++ 356
357 ** The completion commands TAB, SPC and ? in the minibuffer apply only
358 to the text before point. If there is text in the buffer after point,
359 it remains unchanged.
360
433 ** In Dired's ! command (dired-do-shell-command), `*' and `?' now 361 ** In Dired's ! command (dired-do-shell-command), `*' and `?' now
434 control substitution of the file names only when they are surrounded 362 control substitution of the file names only when they are surrounded
435 by whitespace. This means you can now use them as shell wildcards 363 by whitespace. This means you can now use them as shell wildcards
436 too. If you want to use just plain `*' as a wildcard, type `*""'; the 364 too. If you want to use just plain `*' as a wildcard, type `*""'; the
437 doublequotes make no difference in the shell, but they prevent 365 doublequotes make no difference in the shell, but they prevent
438 special treatment in `dired-do-shell-command'. 366 special treatment in `dired-do-shell-command'.
439 367
440 --- 368 ** A prefix argument is no longer required to repeat a jump to a
369 previous mark if you set `set-mark-command-repeat-pop' to t. I.e. C-u
370 C-SPC C-SPC C-SPC ... cycles through the mark ring. Use C-u C-u C-SPC
371 to set the mark immediately after a jump.
372
373 ** The info-search bindings on C-h C-f, C-h C-k and C-h C-i
374 have been moved to C-h F, C-h K and C-h S.
375
376 ** `apply-macro-to-region-lines' now operates on all lines that begin
377 in the region, rather than on all complete lines in the region.
378
379 ** line-move-ignore-invisible now defaults to t.
380
441 ** Adaptive filling misfeature removed. 381 ** Adaptive filling misfeature removed.
442 It no longer treats `NNN.' or `(NNN)' as a prefix. 382 It no longer treats `NNN.' or `(NNN)' as a prefix.
443 383
444 ---
445 ** The register compatibility key bindings (deprecated since Emacs 19) 384 ** The register compatibility key bindings (deprecated since Emacs 19)
446 have been removed: 385 have been removed:
447 C-x / point-to-register (Use: C-x r SPC) 386 C-x / point-to-register (Use: C-x r SPC)
448 C-x j jump-to-register (Use: C-x r j) 387 C-x j jump-to-register (Use: C-x r j)
449 C-x x copy-to-register (Use: C-x r s) 388 C-x x copy-to-register (Use: C-x r s)
450 C-x g insert-register (Use: C-x r i) 389 C-x g insert-register (Use: C-x r i)
451 390
452 391
453 * Editing Changes in Emacs 22.1 392 * Editing Changes in Emacs 22.1
454 393
455 +++
456 ** !MEM FULL! at the start of the mode line indicates that Emacs 394 ** !MEM FULL! at the start of the mode line indicates that Emacs
457 cannot get any more memory for Lisp data. This often means it could 395 cannot get any more memory for Lisp data. This often means it could
458 crash soon if you do things that use more memory. On most systems, 396 crash soon if you do things that use more memory. On most systems,
459 killing buffers will get out of this state. If killing buffers does 397 killing buffers will get out of this state. If killing buffers does
460 not make !MEM FULL! disappear, you should save your work and start 398 not make !MEM FULL! disappear, you should save your work and start
461 a new Emacs. 399 a new Emacs.
462 400
463 +++
464 ** The max size of buffers and integers has been doubled. 401 ** The max size of buffers and integers has been doubled.
465 On 32bit machines, it is now 256M (i.e. 268435455). 402 On 32bit machines, it is now 256M (i.e. 268435455).
466 403
467 +++
468 ** You can now switch buffers in a cyclic order with C-x C-left 404 ** You can now switch buffers in a cyclic order with C-x C-left
469 (previous-buffer) and C-x C-right (next-buffer). C-x left and 405 (previous-buffer) and C-x C-right (next-buffer). C-x left and
470 C-x right can be used as well. The functions keep a different buffer 406 C-x right can be used as well. The functions keep a different buffer
471 cycle for each frame, using the frame-local buffer list. 407 cycle for each frame, using the frame-local buffer list.
472 408
473 +++
474 ** `undo-only' does an undo which does not redo any previous undo. 409 ** `undo-only' does an undo which does not redo any previous undo.
475 410
476 +++
477 ** M-SPC (just-one-space) when given a numeric argument N 411 ** M-SPC (just-one-space) when given a numeric argument N
478 converts whitespace around point to N spaces. 412 converts whitespace around point to N spaces.
479 413
480 ---
481 ** C-x 5 C-o displays a specified buffer in another frame 414 ** C-x 5 C-o displays a specified buffer in another frame
482 but does not switch to that frame. It's the multi-frame 415 but does not switch to that frame. It's the multi-frame
483 analogue of C-x 4 C-o. 416 analogue of C-x 4 C-o.
484 417
485 ---
486 ** New commands to operate on pairs of open and close characters:
487 `insert-pair', `delete-pair', `raise-sexp'.
488
489 +++
490 ** New command `kill-whole-line' kills an entire line at once. 418 ** New command `kill-whole-line' kills an entire line at once.
491 By default, it is bound to C-S-<backspace>. 419 By default, it is bound to C-S-<backspace>.
492 420
493 +++
494 ** Yanking text now discards certain text properties that can 421 ** Yanking text now discards certain text properties that can
495 be inconvenient when you did not expect them. The variable 422 be inconvenient when you did not expect them. The variable
496 `yank-excluded-properties' specifies which ones. Insertion 423 `yank-excluded-properties' specifies which ones. Insertion
497 of register contents and rectangles also discards these properties. 424 of register contents and rectangles also discards these properties.
498 425
499 +++
500 ** The default values of paragraph-start and indent-line-function have 426 ** The default values of paragraph-start and indent-line-function have
501 been changed to reflect those used in Text mode rather than those used 427 been changed to reflect those used in Text mode rather than those used
502 in Indented-Text mode. 428 in Indented-Text mode.
503 429
504 +++ 430 ** New commands to operate on pairs of open and close characters:
431 `insert-pair', `delete-pair', `raise-sexp'.
432
505 ** M-x setenv now expands environment variable references. 433 ** M-x setenv now expands environment variable references.
506 434
507 Substrings of the form `$foo' and `${foo}' in the specified new value 435 Substrings of the form `$foo' and `${foo}' in the specified new value
508 now refer to the value of environment variable foo. To include a `$' 436 now refer to the value of environment variable foo. To include a `$'
509 in the value, use `$$'. 437 in the value, use `$$'.
510 438
511 +++
512 ** `special-display-buffer-names' and `special-display-regexps' now 439 ** `special-display-buffer-names' and `special-display-regexps' now
513 understand two new boolean pseudo-frame-parameters `same-frame' and 440 understand two new boolean pseudo-frame-parameters `same-frame' and
514 `same-window'. 441 `same-window'.
515 442
516 +++
517 ** The default for the paper size (variable ps-paper-type) is taken 443 ** The default for the paper size (variable ps-paper-type) is taken
518 from the locale. 444 from the locale.
519 445
520 ** Mark command changes: 446 ** Mark command changes:
521 447
522 +++
523 *** A prefix argument is no longer required to repeat a jump to a 448 *** A prefix argument is no longer required to repeat a jump to a
524 previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the 449 previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the
525 mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump. 450 mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump.
526 451
527 +++
528 *** Marking commands extend the region when invoked multiple times. 452 *** Marking commands extend the region when invoked multiple times.
529 453
530 If you type C-M-SPC (mark-sexp), M-@ (mark-word), M-h 454 If you type C-M-SPC (mark-sexp), M-@ (mark-word), M-h
531 (mark-paragraph), or C-M-h (mark-defun) repeatedly, the marked region 455 (mark-paragraph), or C-M-h (mark-defun) repeatedly, the marked region
532 extends each time, so you can mark the next two sexps with M-C-SPC 456 extends each time, so you can mark the next two sexps with M-C-SPC
535 region when the mark is active in Transient Mark mode, regardless of 459 region when the mark is active in Transient Mark mode, regardless of
536 the last command. To start a new region with one of marking commands 460 the last command. To start a new region with one of marking commands
537 in Transient Mark mode, you can deactivate the active region with C-g, 461 in Transient Mark mode, you can deactivate the active region with C-g,
538 or set the new mark with C-SPC. 462 or set the new mark with C-SPC.
539 463
540 +++
541 *** M-h (mark-paragraph) now accepts a prefix arg. 464 *** M-h (mark-paragraph) now accepts a prefix arg.
542 465
543 With positive arg, M-h marks the current and the following paragraphs; 466 With positive arg, M-h marks the current and the following paragraphs;
544 if the arg is negative, it marks the current and the preceding 467 if the arg is negative, it marks the current and the preceding
545 paragraphs. 468 paragraphs.
546 469
547 +++
548 *** Some commands do something special in Transient Mark mode when the 470 *** Some commands do something special in Transient Mark mode when the
549 mark is active--for instance, they limit their operation to the 471 mark is active--for instance, they limit their operation to the
550 region. Even if you don't normally use Transient Mark mode, you might 472 region. Even if you don't normally use Transient Mark mode, you might
551 want to get this behavior from a particular command. There are two 473 want to get this behavior from a particular command. There are two
552 ways you can enable Transient Mark mode and activate the mark, for one 474 ways you can enable Transient Mark mode and activate the mark, for one
560 After these commands, Transient Mark mode remains enabled until you 482 After these commands, Transient Mark mode remains enabled until you
561 deactivate the mark. That typically happens when you type a command 483 deactivate the mark. That typically happens when you type a command
562 that alters the buffer, but you can also deactivate the mark by typing 484 that alters the buffer, but you can also deactivate the mark by typing
563 C-g. 485 C-g.
564 486
565 +++
566 *** Movement commands `beginning-of-buffer', `end-of-buffer', 487 *** Movement commands `beginning-of-buffer', `end-of-buffer',
567 `beginning-of-defun', `end-of-defun' do not set the mark if the mark 488 `beginning-of-defun', `end-of-defun' do not set the mark if the mark
568 is already active in Transient Mark mode. 489 is already active in Transient Mark mode.
569 490
570 ** Help command changes: 491 ** Help command changes:
571 492
572 +++
573 *** Changes in C-h bindings: 493 *** Changes in C-h bindings:
574 494
575 C-h e displays the *Messages* buffer. 495 C-h e displays the *Messages* buffer.
576 496
577 C-h d runs apropos-documentation. 497 C-h d runs apropos-documentation.
601 - C-h w and C-h f kill-line reports: 521 - C-h w and C-h f kill-line reports:
602 kill-line is remapped to new-kill-line which is on C-k, <deleteline> 522 kill-line is remapped to new-kill-line which is on C-k, <deleteline>
603 - C-h w and C-h f new-kill-line reports: 523 - C-h w and C-h f new-kill-line reports:
604 new-kill-line is on C-k 524 new-kill-line is on C-k
605 525
606 ---
607 *** Help commands `describe-function' and `describe-key' now show function 526 *** Help commands `describe-function' and `describe-key' now show function
608 arguments in lowercase italics on displays that support it. To change the 527 arguments in lowercase italics on displays that support it. To change the
609 default, customize face `help-argument-name' or redefine the function 528 default, customize face `help-argument-name' or redefine the function
610 `help-default-arg-highlight'. 529 `help-default-arg-highlight'.
611 530
612 +++
613 *** C-h v and C-h f commands now include a hyperlink to the C source for 531 *** C-h v and C-h f commands now include a hyperlink to the C source for
614 variables and functions defined in C (if the C source is available). 532 variables and functions defined in C (if the C source is available).
615 533
616 +++
617 *** Help mode now only makes hyperlinks for faces when the face name is 534 *** Help mode now only makes hyperlinks for faces when the face name is
618 preceded or followed by the word `face'. It no longer makes 535 preceded or followed by the word `face'. It no longer makes
619 hyperlinks for variables without variable documentation, unless 536 hyperlinks for variables without variable documentation, unless
620 preceded by one of the words `variable' or `option'. It now makes 537 preceded by one of the words `variable' or `option'. It now makes
621 hyperlinks to Info anchors (or nodes) if the anchor (or node) name is 538 hyperlinks to Info anchors (or nodes) if the anchor (or node) name is
622 enclosed in single quotes and preceded by `info anchor' or `Info 539 enclosed in single quotes and preceded by `info anchor' or `Info
623 anchor' (in addition to earlier `info node' and `Info node'). In 540 anchor' (in addition to earlier `info node' and `Info node'). In
624 addition, it now makes hyperlinks to URLs as well if the URL is 541 addition, it now makes hyperlinks to URLs as well if the URL is
625 enclosed in single quotes and preceded by `URL'. 542 enclosed in single quotes and preceded by `URL'.
626 543
627 +++
628 *** The new command `describe-char' (C-u C-x =) pops up a buffer with 544 *** The new command `describe-char' (C-u C-x =) pops up a buffer with
629 description various information about a character, including its 545 description various information about a character, including its
630 encodings and syntax, its text properties, how to input, overlays, and 546 encodings and syntax, its text properties, how to input, overlays, and
631 widgets at point. You can get more information about some of them, by 547 widgets at point. You can get more information about some of them, by
632 clicking on mouse-sensitive areas or moving there and pressing RET. 548 clicking on mouse-sensitive areas or moving there and pressing RET.
633 549
634 +++
635 *** The command `list-text-properties-at' has been deleted because 550 *** The command `list-text-properties-at' has been deleted because
636 C-u C-x = gives the same information and more. 551 C-u C-x = gives the same information and more.
637 552
638 +++
639 *** New command `display-local-help' displays any local help at point 553 *** New command `display-local-help' displays any local help at point
640 in the echo area. It is bound to `C-h .'. It normally displays the 554 in the echo area. It is bound to `C-h .'. It normally displays the
641 same string that would be displayed on mouse-over using the 555 same string that would be displayed on mouse-over using the
642 `help-echo' property, but, in certain cases, it can display a more 556 `help-echo' property, but, in certain cases, it can display a more
643 keyboard oriented alternative. 557 keyboard oriented alternative.
644 558
645 +++
646 *** New user option `help-at-pt-display-when-idle' allows to 559 *** New user option `help-at-pt-display-when-idle' allows to
647 automatically show the help provided by `display-local-help' on 560 automatically show the help provided by `display-local-help' on
648 point-over, after suitable idle time. The amount of idle time is 561 point-over, after suitable idle time. The amount of idle time is
649 determined by the user option `help-at-pt-timer-delay' and defaults 562 determined by the user option `help-at-pt-timer-delay' and defaults
650 to one second. This feature is turned off by default. 563 to one second. This feature is turned off by default.
651 564
652 +++
653 *** The apropos commands now accept a list of words to match. 565 *** The apropos commands now accept a list of words to match.
654 When more than one word is specified, at least two of those words must 566 When more than one word is specified, at least two of those words must
655 be present for an item to match. Regular expression matching is still 567 be present for an item to match. Regular expression matching is still
656 available. 568 available.
657 569
658 +++
659 *** The new option `apropos-sort-by-scores' causes the matching items 570 *** The new option `apropos-sort-by-scores' causes the matching items
660 to be sorted according to their score. The score for an item is a 571 to be sorted according to their score. The score for an item is a
661 number calculated to indicate how well the item matches the words or 572 number calculated to indicate how well the item matches the words or
662 regular expression that you entered to the apropos command. The best 573 regular expression that you entered to the apropos command. The best
663 match is listed first, and the calculated score is shown for each 574 match is listed first, and the calculated score is shown for each
664 matching item. 575 matching item.
665 576
666 ** Incremental Search changes: 577 ** Incremental Search changes:
667 578
668 +++
669 *** Vertical scrolling is now possible within incremental search. 579 *** Vertical scrolling is now possible within incremental search.
670 To enable this feature, customize the new user option 580 To enable this feature, customize the new user option
671 `isearch-allow-scroll'. User written commands which satisfy stringent 581 `isearch-allow-scroll'. User written commands which satisfy stringent
672 constraints can be marked as "scrolling commands". See the Emacs manual 582 constraints can be marked as "scrolling commands". See the Emacs manual
673 for details. 583 for details.
674 584
675 +++
676 *** C-w in incremental search now grabs either a character or a word, 585 *** C-w in incremental search now grabs either a character or a word,
677 making the decision in a heuristic way. This new job is done by the 586 making the decision in a heuristic way. This new job is done by the
678 command `isearch-yank-word-or-char'. To restore the old behavior, 587 command `isearch-yank-word-or-char'. To restore the old behavior,
679 bind C-w to `isearch-yank-word' in `isearch-mode-map'. 588 bind C-w to `isearch-yank-word' in `isearch-mode-map'.
680 589
681 +++
682 *** C-y in incremental search now grabs the next line if point is already 590 *** C-y in incremental search now grabs the next line if point is already
683 at the end of a line. 591 at the end of a line.
684 592
685 +++
686 *** C-M-w deletes and C-M-y grabs a character in isearch mode. 593 *** C-M-w deletes and C-M-y grabs a character in isearch mode.
687 Another method to grab a character is to enter the minibuffer by `M-e' 594 Another method to grab a character is to enter the minibuffer by `M-e'
688 and to type `C-f' at the end of the search string in the minibuffer. 595 and to type `C-f' at the end of the search string in the minibuffer.
689 596
690 +++
691 *** M-% typed in isearch mode invokes `query-replace' or 597 *** M-% typed in isearch mode invokes `query-replace' or
692 `query-replace-regexp' (depending on search mode) with the current 598 `query-replace-regexp' (depending on search mode) with the current
693 search string used as the string to replace. 599 search string used as the string to replace.
694 600
695 +++
696 *** Isearch no longer adds `isearch-resume' commands to the command 601 *** Isearch no longer adds `isearch-resume' commands to the command
697 history by default. To enable this feature, customize the new 602 history by default. To enable this feature, customize the new
698 user option `isearch-resume-in-command-history'. 603 user option `isearch-resume-in-command-history'.
699 604
700 ** Replace command changes: 605 ** Replace command changes:
701 606
702 ---
703 *** New user option `query-replace-skip-read-only': when non-nil, 607 *** New user option `query-replace-skip-read-only': when non-nil,
704 `query-replace' and related functions simply ignore 608 `query-replace' and related functions simply ignore
705 a match if part of it has a read-only property. 609 a match if part of it has a read-only property.
706 610
707 +++
708 *** When used interactively, the commands `query-replace-regexp' and 611 *** When used interactively, the commands `query-replace-regexp' and
709 `replace-regexp' allow \,expr to be used in a replacement string, 612 `replace-regexp' allow \,expr to be used in a replacement string,
710 where expr is an arbitrary Lisp expression evaluated at replacement 613 where expr is an arbitrary Lisp expression evaluated at replacement
711 time. In many cases, this will be more convenient than using 614 time. `\#' in a replacement string now refers to the count of
712 `query-replace-regexp-eval'. `\#' in a replacement string now refers 615 replacements already made by the replacement command. All regular
713 to the count of replacements already made by the replacement command. 616 expression replacement commands now allow `\?' in the replacement
714 All regular expression replacement commands now allow `\?' in the 617 string to specify a position where the replacement string can be
715 replacement string to specify a position where the replacement string 618 edited for each replacement. `query-replace-regexp-eval' is now
716 can be edited for each replacement. 619 deprecated since it offers no additional functionality.
717 620
718 +++
719 *** query-replace uses isearch lazy highlighting when the new user option 621 *** query-replace uses isearch lazy highlighting when the new user option
720 `query-replace-lazy-highlight' is non-nil. 622 `query-replace-lazy-highlight' is non-nil.
721 623
722 ---
723 *** The current match in query-replace is highlighted in new face 624 *** The current match in query-replace is highlighted in new face
724 `query-replace' which by default inherits from isearch face. 625 `query-replace' which by default inherits from isearch face.
725 626
726 ** Local variables lists: 627 ** Local variables lists:
727 628
728 +++
729 *** In processing a local variables list, Emacs strips the prefix and 629 *** In processing a local variables list, Emacs strips the prefix and
730 suffix from every line before processing all the lines. 630 suffix from every line before processing all the lines.
731 631
732 +++
733 *** Text properties in local variables. 632 *** Text properties in local variables.
734 633
735 A file local variables list cannot specify a string with text 634 A file local variables list cannot specify a string with text
736 properties--any specified text properties are discarded. 635 properties--any specified text properties are discarded.
737 636
738 +++
739 *** If the local variables list contains any variable-value pairs that 637 *** If the local variables list contains any variable-value pairs that
740 are not known to be safe, Emacs shows a prompt asking whether to apply 638 are not known to be safe, Emacs shows a prompt asking whether to apply
741 the local variables list as a whole. In earlier versions, a prompt 639 the local variables list as a whole. In earlier versions, a prompt
742 was only issued for variables explicitly marked as risky (for the 640 was only issued for variables explicitly marked as risky (for the
743 definition of risky variables, see `risky-local-variable-p'). 641 definition of risky variables, see `risky-local-variable-p').
748 Variables can also be marked as safe with the existing 646 Variables can also be marked as safe with the existing
749 `safe-local-variable' property (see `safe-local-variable-p'). 647 `safe-local-variable' property (see `safe-local-variable-p').
750 However, risky variables will not be added to 648 However, risky variables will not be added to
751 `safe-local-variable-values' in this way. 649 `safe-local-variable-values' in this way.
752 650
753 +++
754 *** The variable `enable-local-variables' controls how local variable 651 *** The variable `enable-local-variables' controls how local variable
755 lists are handled. t, the default, specifies the standard querying 652 lists are handled. t, the default, specifies the standard querying
756 behavior. :safe means use only safe values, and ignore the rest. 653 behavior. :safe means use only safe values, and ignore the rest.
757 :all means set all variables, whether or not they are safe. 654 :all means set all variables, whether or not they are safe.
758 nil means ignore them all. Anything else means always query. 655 nil means ignore them all. Anything else means always query.
759 656
760 +++
761 *** The variable `safe-local-eval-forms' specifies a list of forms that 657 *** The variable `safe-local-eval-forms' specifies a list of forms that
762 are ok to evaluate when they appear in an `eval' local variables 658 are ok to evaluate when they appear in an `eval' local variables
763 specification. Normally Emacs asks for confirmation before evaluating 659 specification. Normally Emacs asks for confirmation before evaluating
764 such a form, but if the form appears in this list, no confirmation is 660 such a form, but if the form appears in this list, no confirmation is
765 needed. 661 needed.
766 662
767 +++
768 *** If a function has a non-nil `safe-local-eval-function' property, 663 *** If a function has a non-nil `safe-local-eval-function' property,
769 that means it is ok to evaluate some calls to that function when it 664 that means it is ok to evaluate some calls to that function when it
770 appears in an `eval' local variables specification. If the property 665 appears in an `eval' local variables specification. If the property
771 is t, then any form calling that function with constant arguments is 666 is t, then any form calling that function with constant arguments is
772 ok. If the property is a function or list of functions, they are called 667 ok. If the property is a function or list of functions, they are called
775 If the form is not "ok to call", that means Emacs asks for 670 If the form is not "ok to call", that means Emacs asks for
776 confirmation as before. 671 confirmation as before.
777 672
778 ** File operation changes: 673 ** File operation changes:
779 674
780 +++
781 *** Unquoted `$' in file names do not signal an error any more when 675 *** Unquoted `$' in file names do not signal an error any more when
782 the corresponding environment variable does not exist. 676 the corresponding environment variable does not exist.
783 Instead, the `$ENVVAR' text is left as is, so that `$$' quoting 677 Instead, the `$ENVVAR' text is left as is, so that `$$' quoting
784 is only rarely needed. 678 is only rarely needed.
785 679
786 +++
787 *** find-file-read-only visits multiple files in read-only mode, 680 *** find-file-read-only visits multiple files in read-only mode,
788 when the file name contains wildcard characters. 681 when the file name contains wildcard characters.
789 682
790 +++
791 *** find-alternate-file replaces the current file with multiple files, 683 *** find-alternate-file replaces the current file with multiple files,
792 when the file name contains wildcard characters. It now asks if you 684 when the file name contains wildcard characters. It now asks if you
793 wish save your changes and not just offer to kill the buffer. 685 wish save your changes and not just offer to kill the buffer.
794 686
795 +++
796 *** Auto Compression mode is now enabled by default. 687 *** Auto Compression mode is now enabled by default.
797 688
798 ---
799 *** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case. 689 *** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case.
800 690
801 Since the default input is the current directory, this has the effect 691 Since the default input is the current directory, this has the effect
802 of specifying the current directory. Normally that means to visit the 692 of specifying the current directory. Normally that means to visit the
803 directory with Dired. 693 directory with Dired.
804 694
805 +++
806 *** When you are root, and you visit a file whose modes specify 695 *** When you are root, and you visit a file whose modes specify
807 read-only, the Emacs buffer is now read-only too. Type C-x C-q if you 696 read-only, the Emacs buffer is now read-only too. Type C-x C-q if you
808 want to make the buffer writable. (As root, you can in fact alter the 697 want to make the buffer writable. (As root, you can in fact alter the
809 file.) 698 file.)
810 699
811 +++
812 *** C-x s (save-some-buffers) now offers an option `d' to diff a buffer 700 *** C-x s (save-some-buffers) now offers an option `d' to diff a buffer
813 against its file, so you can see what changes you would be saving. 701 against its file, so you can see what changes you would be saving.
814 702
815 +++
816 *** The commands copy-file, rename-file, make-symbolic-link and 703 *** The commands copy-file, rename-file, make-symbolic-link and
817 add-name-to-file, when given a directory as the "new name" argument, 704 add-name-to-file, when given a directory as the "new name" argument,
818 convert it to a file name by merging in the within-directory part of 705 convert it to a file name by merging in the within-directory part of
819 the existing file's name. (This is the same convention that shell 706 the existing file's name. (This is the same convention that shell
820 commands cp, mv, and ln follow.) Thus, M-x copy-file RET ~/foo RET 707 commands cp, mv, and ln follow.) Thus, M-x copy-file RET ~/foo RET
821 /tmp RET copies ~/foo to /tmp/foo. 708 /tmp RET copies ~/foo to /tmp/foo.
822 709
823 ---
824 *** When used interactively, `format-write-file' now asks for confirmation 710 *** When used interactively, `format-write-file' now asks for confirmation
825 before overwriting an existing file, unless a prefix argument is 711 before overwriting an existing file, unless a prefix argument is
826 supplied. This behavior is analogous to `write-file'. 712 supplied. This behavior is analogous to `write-file'.
827 713
828 ---
829 *** The variable `auto-save-file-name-transforms' now has a third element that 714 *** The variable `auto-save-file-name-transforms' now has a third element that
830 controls whether or not the function `make-auto-save-file-name' will 715 controls whether or not the function `make-auto-save-file-name' will
831 attempt to construct a unique auto-save name (e.g. for remote files). 716 attempt to construct a unique auto-save name (e.g. for remote files).
832 717
833 +++
834 *** The new option `write-region-inhibit-fsync' disables calls to fsync 718 *** The new option `write-region-inhibit-fsync' disables calls to fsync
835 in `write-region'. This can be useful on laptops to avoid spinning up 719 in `write-region'. This can be useful on laptops to avoid spinning up
836 the hard drive upon each file save. Enabling this variable may result 720 the hard drive upon each file save. Enabling this variable may result
837 in data loss, use with care. 721 in data loss, use with care.
838 722
839 +++
840 *** If the user visits a file larger than `large-file-warning-threshold', 723 *** If the user visits a file larger than `large-file-warning-threshold',
841 Emacs asks for confirmation. 724 Emacs asks for confirmation.
842 725
843 +++
844 *** require-final-newline now has two new possible values: 726 *** require-final-newline now has two new possible values:
845 727
846 `visit' means add a newline (as an undoable change) if it's needed 728 `visit' means add a newline (as an undoable change) if it's needed
847 when visiting the file. 729 when visiting the file.
848 730
849 `visit-save' means add a newline (as an undoable change) if it's 731 `visit-save' means add a newline (as an undoable change) if it's
850 needed when visiting the file, and also add a newline if it's needed 732 needed when visiting the file, and also add a newline if it's needed
851 when saving the file. 733 when saving the file.
852 734
853 +++
854 *** The new option mode-require-final-newline controls how certain 735 *** The new option mode-require-final-newline controls how certain
855 major modes enable require-final-newline. Any major mode that's 736 major modes enable require-final-newline. Any major mode that's
856 designed for a kind of file that should normally end in a newline 737 designed for a kind of file that should normally end in a newline
857 sets require-final-newline based on mode-require-final-newline. 738 sets require-final-newline based on mode-require-final-newline.
858 So you can customize mode-require-final-newline to control what these 739 So you can customize mode-require-final-newline to control what these
859 modes do. 740 modes do.
860 741
861 ** Minibuffer changes: 742 ** Minibuffer changes:
862 743
863 +++
864 *** The new file-name-shadow-mode is turned ON by default, so that when 744 *** The new file-name-shadow-mode is turned ON by default, so that when
865 entering a file name, any prefix which Emacs will ignore is dimmed. 745 entering a file name, any prefix which Emacs will ignore is dimmed.
866 746
867 +++
868 *** There's a new face `minibuffer-prompt'. 747 *** There's a new face `minibuffer-prompt'.
869 Emacs adds this face to the list of text properties stored in the 748 Emacs adds this face to the list of text properties stored in the
870 variable `minibuffer-prompt-properties', which is used to display the 749 variable `minibuffer-prompt-properties', which is used to display the
871 prompt string. 750 prompt string.
872 751
873 ---
874 *** Enhanced visual feedback in `*Completions*' buffer. 752 *** Enhanced visual feedback in `*Completions*' buffer.
875 753
876 Completions lists use faces to highlight what all completions 754 Completions lists use faces to highlight what all completions
877 have in common and where they begin to differ. 755 have in common and where they begin to differ.
878 756
889 triggered at minibuffer. If you want to fontify completions whose 767 triggered at minibuffer. If you want to fontify completions whose
890 listing is triggered at the other normal buffer, you have to pass 768 listing is triggered at the other normal buffer, you have to pass
891 the common prefix of completions to `display-completion-list' as 769 the common prefix of completions to `display-completion-list' as
892 its second argument. 770 its second argument.
893 771
894 +++
895 *** File-name completion can now ignore specified directories. 772 *** File-name completion can now ignore specified directories.
896 If an element of the list in `completion-ignored-extensions' ends in a 773 If an element of the list in `completion-ignored-extensions' ends in a
897 slash `/', it indicates a subdirectory that should be ignored when 774 slash `/', it indicates a subdirectory that should be ignored when
898 completing file names. Elements of `completion-ignored-extensions' 775 completing file names. Elements of `completion-ignored-extensions'
899 which do not end in a slash are never considered when a completion 776 which do not end in a slash are never considered when a completion
900 candidate is a directory. 777 candidate is a directory.
901 778
902 +++
903 *** The completion commands TAB, SPC and ? in the minibuffer apply only 779 *** The completion commands TAB, SPC and ? in the minibuffer apply only
904 to the text before point. If there is text in the buffer after point, 780 to the text before point. If there is text in the buffer after point,
905 it remains unchanged. 781 it remains unchanged.
906 782
907 +++
908 *** New user option `history-delete-duplicates'. 783 *** New user option `history-delete-duplicates'.
909 If set to t when adding a new history element, all previous identical 784 If set to t when adding a new history element, all previous identical
910 elements are deleted from the history list. 785 elements are deleted from the history list.
911 786
912 ** Redisplay changes: 787 ** Redisplay changes:
913 788
914 +++
915 *** Preemptive redisplay now adapts to current load and bandwidth. 789 *** Preemptive redisplay now adapts to current load and bandwidth.
916 790
917 To avoid preempting redisplay on fast computers, networks, and displays, 791 To avoid preempting redisplay on fast computers, networks, and displays,
918 the arrival of new input is now performed at regular intervals during 792 the arrival of new input is now performed at regular intervals during
919 redisplay. The new variable `redisplay-preemption-period' specifies 793 redisplay. The new variable `redisplay-preemption-period' specifies
920 the period; the default is to check for input every 0.1 seconds. 794 the period; the default is to check for input every 0.1 seconds.
921 795
922 +++
923 *** The mode line position information now comes before the major mode. 796 *** The mode line position information now comes before the major mode.
924 When the file is maintained under version control, that information 797 When the file is maintained under version control, that information
925 appears between the position information and the major mode. 798 appears between the position information and the major mode.
926 799
927 +++
928 *** New face `escape-glyph' highlights control characters and escape glyphs. 800 *** New face `escape-glyph' highlights control characters and escape glyphs.
929 801
930 +++
931 *** Non-breaking space and hyphens are now displayed with a special 802 *** Non-breaking space and hyphens are now displayed with a special
932 face, either nobreak-space or escape-glyph. You can turn this off or 803 face, either nobreak-space or escape-glyph. You can turn this off or
933 specify a different mode by setting the variable `nobreak-char-display'. 804 specify a different mode by setting the variable `nobreak-char-display'.
934 805
935 +++
936 *** The parameters of automatic hscrolling can now be customized. 806 *** The parameters of automatic hscrolling can now be customized.
937 The variable `hscroll-margin' determines how many columns away from 807 The variable `hscroll-margin' determines how many columns away from
938 the window edge point is allowed to get before automatic hscrolling 808 the window edge point is allowed to get before automatic hscrolling
939 will horizontally scroll the window. The default value is 5. 809 will horizontally scroll the window. The default value is 5.
940 810
946 gives the fraction of the window's width to scroll the window. 816 gives the fraction of the window's width to scroll the window.
947 817
948 The variable `automatic-hscrolling' was renamed to 818 The variable `automatic-hscrolling' was renamed to
949 `auto-hscroll-mode'. The old name is still available as an alias. 819 `auto-hscroll-mode'. The old name is still available as an alias.
950 820
951 ---
952 *** Moving or scrolling through images (and other lines) taller than 821 *** Moving or scrolling through images (and other lines) taller than
953 the window now works sensibly, by automatically adjusting the window's 822 the window now works sensibly, by automatically adjusting the window's
954 vscroll property. 823 vscroll property.
955 824
956 +++
957 *** New customize option `overline-margin' controls the space between 825 *** New customize option `overline-margin' controls the space between
958 overline and text. 826 overline and text.
959 827
960 +++
961 *** New variable `x-underline-at-descent-line' controls the relative 828 *** New variable `x-underline-at-descent-line' controls the relative
962 position of the underline. When set, it overrides the 829 position of the underline. When set, it overrides the
963 `x-use-underline-position-properties' variables. 830 `x-use-underline-position-properties' variables.
964 831
965 +++
966 *** The new face `mode-line-inactive' is used to display the mode line 832 *** The new face `mode-line-inactive' is used to display the mode line
967 of non-selected windows. The `mode-line' face is now used to display 833 of non-selected windows. The `mode-line' face is now used to display
968 the mode line of the currently selected window. 834 the mode line of the currently selected window.
969 835
970 The new variable `mode-line-in-non-selected-windows' controls whether 836 The new variable `mode-line-in-non-selected-windows' controls whether
971 the `mode-line-inactive' face is used. 837 the `mode-line-inactive' face is used.
972 838
973 +++
974 *** You can now customize the use of window fringes. To control this 839 *** You can now customize the use of window fringes. To control this
975 for all frames, use M-x fringe-mode or the Show/Hide submenu of the 840 for all frames, use M-x fringe-mode or the Show/Hide submenu of the
976 top-level Options menu, or customize the `fringe-mode' variable. To 841 top-level Options menu, or customize the `fringe-mode' variable. To
977 control this for a specific frame, use the command M-x 842 control this for a specific frame, use the command M-x
978 set-fringe-style. 843 set-fringe-style.
979 844
980 +++
981 *** Angle icons in the fringes can indicate the buffer boundaries. In 845 *** Angle icons in the fringes can indicate the buffer boundaries. In
982 addition, up and down arrow bitmaps in the fringe indicate which ways 846 addition, up and down arrow bitmaps in the fringe indicate which ways
983 the window can be scrolled. 847 the window can be scrolled.
984 848
985 This behavior is activated by setting the buffer-local variable 849 This behavior is activated by setting the buffer-local variable
995 For example, ((top . left) (t . right)) places the top angle bitmap 859 For example, ((top . left) (t . right)) places the top angle bitmap
996 in left fringe, the bottom angle bitmap in right fringe, and both 860 in left fringe, the bottom angle bitmap in right fringe, and both
997 arrow bitmaps in right fringe. To show just the angle bitmaps in the 861 arrow bitmaps in right fringe. To show just the angle bitmaps in the
998 left fringe, but no arrow bitmaps, use ((top . left) (bottom . left)). 862 left fringe, but no arrow bitmaps, use ((top . left) (bottom . left)).
999 863
1000 +++
1001 *** On window systems, lines which are exactly as wide as the window 864 *** On window systems, lines which are exactly as wide as the window
1002 (not counting the final newline character) are no longer broken into 865 (not counting the final newline character) are no longer broken into
1003 two lines on the display (with just the newline on the second line). 866 two lines on the display (with just the newline on the second line).
1004 Instead, the newline now "overflows" into the right fringe, and the 867 Instead, the newline now "overflows" into the right fringe, and the
1005 cursor will be displayed in the fringe when positioned on that newline. 868 cursor will be displayed in the fringe when positioned on that newline.
1006 869
1007 The new user option 'overflow-newline-into-fringe' can be set to nil to 870 The new user option 'overflow-newline-into-fringe' can be set to nil to
1008 revert to the old behavior of continuing such lines. 871 revert to the old behavior of continuing such lines.
1009 872
1010 +++
1011 *** When a window has display margin areas, the fringes are now 873 *** When a window has display margin areas, the fringes are now
1012 displayed between the margins and the buffer's text area, rather than 874 displayed between the margins and the buffer's text area, rather than
1013 outside those margins. 875 outside those margins.
1014 876
1015 +++
1016 *** A window can now have individual fringe and scroll-bar settings, 877 *** A window can now have individual fringe and scroll-bar settings,
1017 in addition to the individual display margin settings. 878 in addition to the individual display margin settings.
1018 879
1019 Such individual settings are now preserved when windows are split 880 Such individual settings are now preserved when windows are split
1020 horizontally or vertically, a saved window configuration is restored, 881 horizontally or vertically, a saved window configuration is restored,
1021 or when the frame is resized. 882 or when the frame is resized.
1022 883
1023 +++
1024 *** The %c and %l constructs are now ignored in frame-title-format. 884 *** The %c and %l constructs are now ignored in frame-title-format.
1025 Due to technical limitations in how Emacs interacts with windowing 885 Due to technical limitations in how Emacs interacts with windowing
1026 systems, these constructs often failed to render properly, and could 886 systems, these constructs often failed to render properly, and could
1027 even cause Emacs to crash. 887 even cause Emacs to crash.
1028 888
1029 +++
1030 *** If value of `auto-resize-tool-bars' is `grow-only', the tool bar 889 *** If value of `auto-resize-tool-bars' is `grow-only', the tool bar
1031 will expand as needed, but not contract automatically. To contract 890 will expand as needed, but not contract automatically. To contract
1032 the tool bar, you must type C-l. 891 the tool bar, you must type C-l.
1033 892
1034 ** Cursor display changes: 893 ** Cursor display changes:
1035 894
1036 +++
1037 *** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is 895 *** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is
1038 now controlled by the variable `blink-cursor-alist'. 896 now controlled by the variable `blink-cursor-alist'.
1039 897
1040 +++
1041 *** The X resource cursorBlink can be used to turn off cursor blinking. 898 *** The X resource cursorBlink can be used to turn off cursor blinking.
1042 899
1043 +++
1044 *** Emacs can produce an underscore-like (horizontal bar) cursor. 900 *** Emacs can produce an underscore-like (horizontal bar) cursor.
1045 The underscore cursor is set by putting `(cursor-type . hbar)' in 901 The underscore cursor is set by putting `(cursor-type . hbar)' in
1046 default-frame-alist. It supports variable heights, like the `bar' 902 default-frame-alist. It supports variable heights, like the `bar'
1047 cursor does. 903 cursor does.
1048 904
1049 +++
1050 *** Display of hollow cursors now obeys the buffer-local value (if any) 905 *** Display of hollow cursors now obeys the buffer-local value (if any)
1051 of `cursor-in-non-selected-windows' in the buffer that the cursor 906 of `cursor-in-non-selected-windows' in the buffer that the cursor
1052 appears in. 907 appears in.
1053 908
1054 +++
1055 *** The variable `cursor-in-non-selected-windows' can now be set to any 909 *** The variable `cursor-in-non-selected-windows' can now be set to any
1056 of the recognized cursor types. 910 of the recognized cursor types.
1057 911
1058 +++
1059 *** On text terminals, the variable `visible-cursor' controls whether Emacs 912 *** On text terminals, the variable `visible-cursor' controls whether Emacs
1060 uses the "very visible" cursor (the default) or the normal cursor. 913 uses the "very visible" cursor (the default) or the normal cursor.
1061 914
1062 ** New faces: 915 ** New faces:
1063 916
1064 +++
1065 *** `mode-line-highlight' is the standard face indicating mouse sensitive 917 *** `mode-line-highlight' is the standard face indicating mouse sensitive
1066 elements on mode-line (and header-line) like `highlight' face on text 918 elements on mode-line (and header-line) like `highlight' face on text
1067 areas. 919 areas.
1068 920
1069 +++
1070 *** `mode-line-buffer-id' is the standard face for buffer identification 921 *** `mode-line-buffer-id' is the standard face for buffer identification
1071 parts of the mode line. 922 parts of the mode line.
1072 923
1073 +++
1074 *** `shadow' face defines the appearance of the "shadowed" text, i.e. 924 *** `shadow' face defines the appearance of the "shadowed" text, i.e.
1075 the text which should be less noticeable than the surrounding text. 925 the text which should be less noticeable than the surrounding text.
1076 This can be achieved by using shades of grey in contrast with either 926 This can be achieved by using shades of grey in contrast with either
1077 black or white default foreground color. This generic shadow face 927 black or white default foreground color. This generic shadow face
1078 allows customization of the appearance of shadowed text in one place, 928 allows customization of the appearance of shadowed text in one place,
1079 so package-specific faces can inherit from it. 929 so package-specific faces can inherit from it.
1080 930
1081 +++
1082 *** `vertical-border' face is used for the vertical divider between windows. 931 *** `vertical-border' face is used for the vertical divider between windows.
1083 932
1084 ** ebnf2ps changes: 933 ** Font-Lock (syntax highlighting) changes:
1085 934
1086 +++
1087 *** New option `ebnf-arrow-extra-width' which specify extra width for arrow
1088 shape drawing.
1089 The extra width is used to avoid that the arrowhead and the terminal border
1090 overlap. It depens on `ebnf-arrow-shape' and `ebnf-line-width'.
1091
1092 +++
1093 *** New option `ebnf-arrow-scale' which specify the arrow scale.
1094 Values lower than 1.0, shrink the arrow.
1095 Values greater than 1.0, expand the arrow.
1096
1097 ** Font-Lock changes:
1098
1099 +++
1100 *** M-o now is the prefix key for setting text properties; 935 *** M-o now is the prefix key for setting text properties;
1101 M-o M-o requests refontification. 936 M-o M-o requests refontification.
1102 937
1103 +++
1104 *** All modes now support using M-x font-lock-mode to toggle 938 *** All modes now support using M-x font-lock-mode to toggle
1105 fontification, even those such as Occur, Info, and comint-derived 939 fontification, even those such as Occur, Info, and comint-derived
1106 modes that do their own fontification in a special way. 940 modes that do their own fontification in a special way.
1107 941
1108 The variable `Info-fontify' is no longer applicable; to disable 942 The variable `Info-fontify' is no longer applicable; to disable
1109 fontification in Info, remove `turn-on-font-lock' from 943 fontification in Info, remove `turn-on-font-lock' from
1110 `Info-mode-hook'. 944 `Info-mode-hook'.
1111 945
1112 +++
1113 *** Font-Lock mode: in major modes such as Lisp mode, where some Emacs 946 *** Font-Lock mode: in major modes such as Lisp mode, where some Emacs
1114 features assume that an open-paren in column 0 is always outside of 947 features assume that an open-paren in column 0 is always outside of
1115 any string or comment, Font-Lock now highlights any such open-paren in 948 any string or comment, Font-Lock now highlights any such open-paren in
1116 bold-red if it is inside a string or a comment, to indicate that it 949 bold-red if it is inside a string or a comment, to indicate that it
1117 can cause trouble. You should rewrite the string or comment so that 950 can cause trouble. You should rewrite the string or comment so that
1118 the open-paren is not in column 0. 951 the open-paren is not in column 0.
1119 952
1120 +++
1121 *** New standard font-lock face `font-lock-preprocessor-face'. 953 *** New standard font-lock face `font-lock-preprocessor-face'.
1122 954
1123 +++
1124 *** New standard font-lock face `font-lock-comment-delimiter-face'. 955 *** New standard font-lock face `font-lock-comment-delimiter-face'.
1125 956
1126 +++
1127 *** Easy to overlook single character negation can now be font-locked. 957 *** Easy to overlook single character negation can now be font-locked.
1128 You can use the new variable `font-lock-negation-char-face' and the face of 958 You can use the new variable `font-lock-negation-char-face' and the face of
1129 the same name to customize this. Currently the cc-modes, sh-script-mode, 959 the same name to customize this. Currently the cc-modes, sh-script-mode,
1130 cperl-mode and make-mode support this. 960 cperl-mode and make-mode support this.
1131 961
1132 ---
1133 *** The default settings for JIT stealth lock parameters are changed. 962 *** The default settings for JIT stealth lock parameters are changed.
1134 The default value for the user option jit-lock-stealth-time is now nil 963 The default value for the user option jit-lock-stealth-time is now nil
1135 instead of 3. This setting of jit-lock-stealth-time disables stealth 964 instead of 3. This setting of jit-lock-stealth-time disables stealth
1136 fontification: on today's machines, it may be a bug in font lock 965 fontification: on today's machines, it may be a bug in font lock
1137 patterns if fontification otherwise noticeably degrades interactivity. 966 patterns if fontification otherwise noticeably degrades interactivity.
1140 jit-lock-stealth-time to a non-nil value will let Emacs fontify 969 jit-lock-stealth-time to a non-nil value will let Emacs fontify
1141 buffers in the background when it considers the system to be idle. 970 buffers in the background when it considers the system to be idle.
1142 jit-lock-stealth-nice is now 0.5 instead of 0.125 which is supposed to 971 jit-lock-stealth-nice is now 0.5 instead of 0.125 which is supposed to
1143 cause less load than the old defaults. 972 cause less load than the old defaults.
1144 973
1145 ---
1146 *** jit-lock can now be delayed with `jit-lock-defer-time'. 974 *** jit-lock can now be delayed with `jit-lock-defer-time'.
1147 975
1148 If this variable is non-nil, its value should be the amount of Emacs 976 If this variable is non-nil, its value should be the amount of Emacs
1149 idle time in seconds to wait before starting fontification. For 977 idle time in seconds to wait before starting fontification. For
1150 example, if you set `jit-lock-defer-time' to 0.25, fontification will 978 example, if you set `jit-lock-defer-time' to 0.25, fontification will
1151 only happen after 0.25s of idle time. 979 only happen after 0.25s of idle time.
1152 980
1153 ---
1154 *** contextual refontification is now separate from stealth fontification. 981 *** contextual refontification is now separate from stealth fontification.
1155 982
1156 jit-lock-defer-contextually is renamed jit-lock-contextually and 983 jit-lock-defer-contextually is renamed jit-lock-contextually and
1157 jit-lock-context-time determines the delay after which contextual 984 jit-lock-context-time determines the delay after which contextual
1158 refontification takes place. 985 refontification takes place.
1159 986
1160 ---
1161 *** lazy-lock is considered obsolete. 987 *** lazy-lock is considered obsolete.
1162 988
1163 The `lazy-lock' package is superseded by `jit-lock' and is considered 989 The `lazy-lock' package is superseded by `jit-lock' and is considered
1164 obsolete. `jit-lock' is activated by default; if you wish to continue 990 obsolete. `jit-lock' is activated by default; if you wish to continue
1165 using `lazy-lock', activate it in your ~/.emacs like this: 991 using `lazy-lock', activate it in your ~/.emacs like this:
1166
1167 (setq font-lock-support-mode 'lazy-lock-mode) 992 (setq font-lock-support-mode 'lazy-lock-mode)
1168 993
1169 If you invoke `lazy-lock-mode' directly rather than through 994 If you invoke `lazy-lock-mode' directly rather than through
1170 `font-lock-support-mode', it now issues a warning: 995 `font-lock-support-mode', it now issues a warning:
1171
1172 "Use font-lock-support-mode rather than calling lazy-lock-mode" 996 "Use font-lock-support-mode rather than calling lazy-lock-mode"
1173 997
1174
1175 ** Menu support: 998 ** Menu support:
1176 999
1177 ---
1178 *** A menu item "Show/Hide" was added to the top-level menu "Options". 1000 *** A menu item "Show/Hide" was added to the top-level menu "Options".
1179 This menu allows you to turn various display features on and off (such 1001 This menu allows you to turn various display features on and off (such
1180 as the fringes, the tool bar, the speedbar, and the menu bar itself). 1002 as the fringes, the tool bar, the speedbar, and the menu bar itself).
1181 You can also move the vertical scroll bar to either side here or turn 1003 You can also move the vertical scroll bar to either side here or turn
1182 it off completely. There is also a menu-item to toggle displaying of 1004 it off completely. There is also a menu-item to toggle displaying of
1183 current date and time, current line and column number in the mode-line. 1005 current date and time, current line and column number in the mode-line.
1184 1006
1185 ---
1186 *** Speedbar has moved from the "Tools" top level menu to "Show/Hide". 1007 *** Speedbar has moved from the "Tools" top level menu to "Show/Hide".
1187 1008
1188 ---
1189 *** You can exit dialog windows and menus by typing C-g. 1009 *** You can exit dialog windows and menus by typing C-g.
1190 1010
1191 ---
1192 *** The menu item "Open File..." has been split into two items, "New File..." 1011 *** The menu item "Open File..." has been split into two items, "New File..."
1193 and "Open File...". "Open File..." now opens only existing files. This is 1012 and "Open File...". "Open File..." now opens only existing files. This is
1194 to support existing GUI file selection dialogs better. 1013 to support existing GUI file selection dialogs better.
1195 1014
1196 +++ 1015 *** The file selection dialog for Gtk+, Mac, W32 and Motif/LessTif can be
1197 *** The file selection dialog for Gtk+, Mac, W32 and Motif/Lesstif can be
1198 disabled by customizing the variable `use-file-dialog'. 1016 disabled by customizing the variable `use-file-dialog'.
1199 1017
1200 ---
1201 *** The pop up menus for Lucid now stay up if you do a fast click and can 1018 *** The pop up menus for Lucid now stay up if you do a fast click and can
1202 be navigated with the arrow keys (like Gtk+, Mac and W32). 1019 be navigated with the arrow keys (like Gtk+, Mac and W32).
1203 1020
1204 +++ 1021 *** The menu bar for Motif/LessTif/Lucid/Gtk+ can be navigated with keys.
1205 *** The menu bar for Motif/Lesstif/Lucid/Gtk+ can be navigated with keys.
1206 Pressing F10 shows the first menu in the menu bar. Navigation is done with 1022 Pressing F10 shows the first menu in the menu bar. Navigation is done with
1207 the arrow keys, select with the return key and cancel with the escape keys. 1023 the arrow keys, select with the return key and cancel with the escape keys.
1208 1024
1209 +++
1210 *** The Lucid menus can display multilingual text in your locale. You have 1025 *** The Lucid menus can display multilingual text in your locale. You have
1211 to explicitly specify a fontSet resource for this to work, for example 1026 to explicitly specify a fontSet resource for this to work, for example
1212 `-xrm "Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'. 1027 `-xrm "Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'.
1213 1028
1214 --- 1029 *** Dialogs for Lucid/Athena and LessTif/Motif now pop down on pressing
1215 *** Dialogs for Lucid/Athena and Lesstif/Motif now pops down when pressing
1216 ESC, like they do for Gtk+, Mac and W32. 1030 ESC, like they do for Gtk+, Mac and W32.
1217 1031
1218 +++
1219 *** For the Gtk+ version, you can make Emacs use the old file dialog 1032 *** For the Gtk+ version, you can make Emacs use the old file dialog
1220 by setting the variable `x-gtk-use-old-file-dialog' to t. Default is to use 1033 by setting the variable `x-gtk-use-old-file-dialog' to t. Default is to use
1221 the new dialog. 1034 the new dialog.
1222 1035
1223 ** Mouse changes: 1036 ** Mouse changes:
1224 1037
1225 +++
1226 *** If you set the new variable `mouse-autoselect-window' to a non-nil
1227 value, windows are automatically selected as you move the mouse from
1228 one Emacs window to another, even within a frame. A minibuffer window
1229 can be selected only when it is active.
1230
1231 +++
1232 *** On X, when the window manager requires that you click on a frame to
1233 select it (give it focus), the selected window and cursor position
1234 normally changes according to the mouse click position. If you set
1235 the variable x-mouse-click-focus-ignore-position to t, the selected
1236 window and cursor position do not change when you click on a frame
1237 to give it focus.
1238
1239 +++
1240 *** You can now follow links by clicking Mouse-1 on the link. 1038 *** You can now follow links by clicking Mouse-1 on the link.
1241 1039
1242 Traditionally, Emacs uses a Mouse-1 click to set point and a Mouse-2 1040 Traditionally, Emacs uses a Mouse-1 click to set point and a Mouse-2
1243 click to follow a link, whereas most other applications use a Mouse-1 1041 click to follow a link, whereas most other applications use a Mouse-1
1244 click for both purposes, depending on whether you click outside or 1042 click for both purposes, depending on whether you click outside or
1245 inside a link. Now the behavior of a Mouse-1 click has been changed 1043 inside a link. Now the behavior of a Mouse-1 click has been changed
1246 to match this context-sentitive dual behavior. (If you prefer the old 1044 to match this context-sensitive dual behavior. (If you prefer the old
1247 behavior, set the user option `mouse-1-click-follows-link' to nil.) 1045 behavior, set the user option `mouse-1-click-follows-link' to nil.)
1248 1046
1249 Depending on the current mode, a Mouse-2 click in Emacs can do much 1047 Depending on the current mode, a Mouse-2 click in Emacs can do much
1250 more than just follow a link, so the new Mouse-1 behavior is only 1048 more than just follow a link, so the new Mouse-1 behavior is only
1251 activated for modes which explicitly mark a clickable text as a "link" 1049 activated for modes which explicitly mark a clickable text as a "link"
1265 drag-mouse-1 action, typically copy the text. 1063 drag-mouse-1 action, typically copy the text.
1266 1064
1267 You can customize the new Mouse-1 behavior via the new user options 1065 You can customize the new Mouse-1 behavior via the new user options
1268 `mouse-1-click-follows-link' and `mouse-1-click-in-non-selected-windows'. 1066 `mouse-1-click-follows-link' and `mouse-1-click-in-non-selected-windows'.
1269 1067
1270 +++ 1068 *** If you set the new variable `mouse-autoselect-window' to a non-nil
1069 value, windows are automatically selected as you move the mouse from
1070 one Emacs window to another, even within a frame. A minibuffer window
1071 can be selected only when it is active.
1072
1073 *** On X, when the window manager requires that you click on a frame to
1074 select it (give it focus), the selected window and cursor position
1075 normally changes according to the mouse click position. If you set
1076 the variable x-mouse-click-focus-ignore-position to t, the selected
1077 window and cursor position do not change when you click on a frame
1078 to give it focus.
1079
1271 *** Emacs normally highlights mouse sensitive text whenever the mouse 1080 *** Emacs normally highlights mouse sensitive text whenever the mouse
1272 is over the text. By setting the new variable `mouse-highlight', you 1081 is over the text. By setting the new variable `mouse-highlight', you
1273 can optionally enable mouse highlighting only after you move the 1082 can optionally enable mouse highlighting only after you move the
1274 mouse, so that highlighting disappears when you press a key. You can 1083 mouse, so that highlighting disappears when you press a key. You can
1275 also disable mouse highlighting. 1084 also disable mouse highlighting.
1276 1085
1277 +++
1278 *** You can now customize if selecting a region by dragging the mouse 1086 *** You can now customize if selecting a region by dragging the mouse
1279 shall not copy the selected text to the kill-ring by setting the new 1087 shall not copy the selected text to the kill-ring by setting the new
1280 variable mouse-drag-copy-region to nil. 1088 variable mouse-drag-copy-region to nil.
1281 1089
1282 ---
1283 *** mouse-wheels can now scroll a specific fraction of the window 1090 *** mouse-wheels can now scroll a specific fraction of the window
1284 (rather than a fixed number of lines) and the scrolling is `progressive'. 1091 (rather than a fixed number of lines) and the scrolling is `progressive'.
1285 1092
1286 ---
1287 *** Emacs ignores mouse-2 clicks while the mouse wheel is being moved. 1093 *** Emacs ignores mouse-2 clicks while the mouse wheel is being moved.
1288 1094
1289 People tend to push the mouse wheel (which counts as a mouse-2 click) 1095 People tend to push the mouse wheel (which counts as a mouse-2 click)
1290 unintentionally while turning the wheel, so these clicks are now 1096 unintentionally while turning the wheel, so these clicks are now
1291 ignored. You can customize this with the mouse-wheel-click-event and 1097 ignored. You can customize this with the mouse-wheel-click-event and
1292 mouse-wheel-inhibit-click-time variables. 1098 mouse-wheel-inhibit-click-time variables.
1293 1099
1294 +++
1295 *** Under X, mouse-wheel-mode is turned on by default. 1100 *** Under X, mouse-wheel-mode is turned on by default.
1296 1101
1297 ** Multilingual Environment (Mule) changes: 1102 ** Multilingual Environment (Mule) changes:
1298 1103
1299 +++
1300 *** You can disable character translation for a file using the -*- 1104 *** You can disable character translation for a file using the -*-
1301 construct. Include `enable-character-translation: nil' inside the 1105 construct. Include `enable-character-translation: nil' inside the
1302 -*-...-*- to disable any character translation that may happen by 1106 -*-...-*- to disable any character translation that may happen by
1303 various global and per-coding-system translation tables. You can also 1107 various global and per-coding-system translation tables. You can also
1304 specify it in a local variable list at the end of the file. For 1108 specify it in a local variable list at the end of the file. For
1307 construct or in a local variable list. For example, if a file has the 1111 construct or in a local variable list. For example, if a file has the
1308 following header, it is decoded by the coding system `iso-latin-1' 1112 following header, it is decoded by the coding system `iso-latin-1'
1309 without any character translation: 1113 without any character translation:
1310 ;; -*- coding: iso-latin-1!; -*- 1114 ;; -*- coding: iso-latin-1!; -*-
1311 1115
1312 ---
1313 *** Language environment and various default coding systems are setup 1116 *** Language environment and various default coding systems are setup
1314 more correctly according to the current locale name. If the locale 1117 more correctly according to the current locale name. If the locale
1315 name doesn't specify a charset, the default is what glibc defines. 1118 name doesn't specify a charset, the default is what glibc defines.
1316 This change can result in using the different coding systems as 1119 This change can result in using the different coding systems as
1317 default in some locale (e.g. vi_VN). 1120 default in some locale (e.g. vi_VN).
1318 1121
1319 +++
1320 *** The keyboard-coding-system is now automatically set based on your 1122 *** The keyboard-coding-system is now automatically set based on your
1321 current locale settings if you are not using a window system. This 1123 current locale settings if you are not using a window system. This
1322 can mean that the META key doesn't work but generates non-ASCII 1124 can mean that the META key doesn't work but generates non-ASCII
1323 characters instead, depending on how the terminal (or terminal 1125 characters instead, depending on how the terminal (or terminal
1324 emulator) works. Use `set-keyboard-coding-system' (or customize 1126 emulator) works. Use `set-keyboard-coding-system' (or customize
1325 keyboard-coding-system) if you prefer META to work (the old default) 1127 keyboard-coding-system) if you prefer META to work (the old default)
1326 or if the locale doesn't describe the character set actually generated 1128 or if the locale doesn't describe the character set actually generated
1327 by the keyboard. See Info node `Unibyte Mode'. 1129 by the keyboard. See Info node `Unibyte Mode'.
1328 1130
1329 +++
1330 *** The new command `revert-buffer-with-coding-system' (C-x RET r) 1131 *** The new command `revert-buffer-with-coding-system' (C-x RET r)
1331 revisits the current file using a coding system that you specify. 1132 revisits the current file using a coding system that you specify.
1332 1133
1333 +++
1334 *** New command `recode-region' decodes the region again by a specified 1134 *** New command `recode-region' decodes the region again by a specified
1335 coding system. 1135 coding system.
1336 1136
1337 +++
1338 *** The new command `recode-file-name' changes the encoding of the name 1137 *** The new command `recode-file-name' changes the encoding of the name
1339 of a file. 1138 of a file.
1340 1139
1341 ---
1342 *** New command `ucs-insert' inserts a character specified by its 1140 *** New command `ucs-insert' inserts a character specified by its
1343 unicode. 1141 unicode.
1344 1142
1345 +++
1346 *** The new command `set-file-name-coding-system' (C-x RET F) sets 1143 *** The new command `set-file-name-coding-system' (C-x RET F) sets
1347 coding system for encoding and decoding file names. A new menu item 1144 coding system for encoding and decoding file names. A new menu item
1348 (Options->Mule->Set Coding Systems->For File Name) invokes this 1145 (Options->Mule->Set Coding Systems->For File Name) invokes this
1349 command. 1146 command.
1350 1147
1351 +++
1352 *** New command quail-show-key shows what key (or key sequence) to type 1148 *** New command quail-show-key shows what key (or key sequence) to type
1353 in the current input method to input a character at point. 1149 in the current input method to input a character at point.
1354 1150
1355 +++
1356 *** Limited support for character `unification' has been added. 1151 *** Limited support for character `unification' has been added.
1357 Emacs now knows how to translate between different representations of 1152 Emacs now knows how to translate between different representations of
1358 the same characters in various Emacs charsets according to standard 1153 the same characters in various Emacs charsets according to standard
1359 Unicode mappings. This applies mainly to characters in the ISO 8859 1154 Unicode mappings. This applies mainly to characters in the ISO 8859
1360 sets plus some other 8-bit sets, but can be extended. For instance, 1155 sets plus some other 8-bit sets, but can be extended. For instance,
1370 unify-8859-on-decoding-mode. That maps all the Latin-N character sets 1165 unify-8859-on-decoding-mode. That maps all the Latin-N character sets
1371 into Unicode characters (from the latin-iso8859-1 and 1166 into Unicode characters (from the latin-iso8859-1 and
1372 mule-unicode-0100-24ff charsets) on decoding. Note that this mode 1167 mule-unicode-0100-24ff charsets) on decoding. Note that this mode
1373 will often effectively clobber data with an iso-2022 encoding. 1168 will often effectively clobber data with an iso-2022 encoding.
1374 1169
1375 --- 1170 *** New language environments (set up automatically according to the
1171 locale): Belarusian, Bulgarian, Chinese-EUC-TW, Croatian, Esperanto,
1172 French, Georgian, Italian, Latin-7, Latvian, Lithuanian, Malayalam,
1173 Russian, Russian, Slovenian, Swedish, Tajik, Tamil, UTF-8,Ukrainian,
1174 Welsh,Latin-6, Windows-1255.
1175
1176 *** New input methods: latin-alt-postfix, latin-postfix, latin-prefix,
1177 belarusian, bulgarian-bds, bulgarian-phonetic, chinese-sisheng (for
1178 Chinese Pinyin characters), croatian, dutch, georgian, latvian-keyboard,
1179 lithuanian-numeric, lithuanian-keyboard, malayalam-inscript, rfc1345,
1180 russian-computer, sgml, slovenian, tamil-inscript, ukrainian-computer,
1181 ucs, vietnamese-telex, welsh.
1182
1376 *** There is support for decoding Greek and Cyrillic characters into 1183 *** There is support for decoding Greek and Cyrillic characters into
1377 either Unicode (the mule-unicode charsets) or the iso-8859 charsets, 1184 either Unicode (the mule-unicode charsets) or the iso-8859 charsets,
1378 when possible. The latter are more space-efficient. This is 1185 when possible. The latter are more space-efficient.
1379 controlled by user option utf-fragment-on-decoding. 1186 This is controlled by user option utf-fragment-on-decoding.
1380 1187
1381 ---
1382 *** New language environments: French, Ukrainian, Tajik,
1383 Bulgarian, Belarusian, Ukrainian, UTF-8, Windows-1255, Welsh, Latin-6,
1384 Latin-7, Lithuanian, Latvian, Swedish, Slovenian, Croatian, Georgian,
1385 Italian, Russian, Malayalam, Tamil, Russian, Chinese-EUC-TW,
1386 Esperanto. (Set up automatically according to the locale.)
1387
1388 ---
1389 *** New input methods: latin-alt-postfix, latin-postfix, latin-prefix,
1390 ukrainian-computer, belarusian, bulgarian-bds, russian-computer,
1391 vietnamese-telex, lithuanian-numeric, lithuanian-keyboard,
1392 latvian-keyboard, welsh, georgian, rfc1345, ucs, sgml,
1393 bulgarian-phonetic, dutch, slovenian, croatian, malayalam-inscript,
1394 tamil-inscript.
1395
1396 ---
1397 *** New input method chinese-sisheng for inputting Chinese Pinyin
1398 characters.
1399
1400 ---
1401 *** Improved Thai support. A new minor mode `thai-word-mode' (which is 1188 *** Improved Thai support. A new minor mode `thai-word-mode' (which is
1402 automatically activated if you select Thai as a language 1189 automatically activated if you select Thai as a language
1403 environment) changes key bindings of most word-oriented commands to 1190 environment) changes key bindings of most word-oriented commands to
1404 versions which recognize Thai words. Affected commands are 1191 versions which recognize Thai words. Affected commands are
1405 M-f (forward-word) 1192 M-f (forward-word)
1407 M-d (kill-word) 1194 M-d (kill-word)
1408 M-DEL (backward-kill-word) 1195 M-DEL (backward-kill-word)
1409 M-t (transpose-words) 1196 M-t (transpose-words)
1410 M-q (fill-paragraph) 1197 M-q (fill-paragraph)
1411 1198
1412 ---
1413 *** Indian support has been updated. 1199 *** Indian support has been updated.
1414 The in-is13194 coding system is now Unicode-based. CDAC fonts are 1200 The in-is13194 coding system is now Unicode-based. CDAC fonts are
1415 assumed. There is a framework for supporting various 1201 assumed. There is a framework for supporting various Indian scripts,
1416 Indian scripts, but currently only Devanagari, Malayalam and Tamil are 1202 but currently only Devanagari, Malayalam and Tamil are supported.
1417 supported. 1203
1418
1419 ---
1420 *** A UTF-7 coding system is available in the library `utf-7'.
1421
1422 ---
1423 *** The utf-8/16 coding systems have been enhanced. 1204 *** The utf-8/16 coding systems have been enhanced.
1424 By default, untranslatable utf-8 sequences are simply composed into 1205 By default, untranslatable utf-8 sequences are simply composed into
1425 single quasi-characters. User option `utf-translate-cjk-mode' (it is 1206 single quasi-characters. User option `utf-translate-cjk-mode' (it is
1426 turned on by default) arranges to translate many utf-8 CJK character 1207 turned on by default) arranges to translate many utf-8 CJK character
1427 sequences into real Emacs characters in a similar way to the Mule-UCS 1208 sequences into real Emacs characters in a similar way to the Mule-UCS
1431 `ucs-mule-cjk-to-unicode' and `ucs-unicode-to-mule-cjk'. The utf-8 1212 `ucs-mule-cjk-to-unicode' and `ucs-unicode-to-mule-cjk'. The utf-8
1432 coding system now also encodes characters from most of Emacs's 1213 coding system now also encodes characters from most of Emacs's
1433 one-dimensional internal charsets, specifically the ISO-8859 ones. 1214 one-dimensional internal charsets, specifically the ISO-8859 ones.
1434 The utf-16 coding system is affected similarly. 1215 The utf-16 coding system is affected similarly.
1435 1216
1436 --- 1217 *** A UTF-7 coding system is available in the library `utf-7'.
1218
1437 *** A new coding system `euc-tw' has been added for traditional Chinese 1219 *** A new coding system `euc-tw' has been added for traditional Chinese
1438 in CNS encoding; it accepts both Big 5 and CNS as input; on saving, 1220 in CNS encoding; it accepts both Big 5 and CNS as input; on saving,
1439 Big 5 is then converted to CNS. 1221 Big 5 is then converted to CNS.
1440 1222
1441 ---
1442 *** Many new coding systems are available in the `code-pages' library. 1223 *** Many new coding systems are available in the `code-pages' library.
1443 These include complete versions of most of those in codepage.el, based 1224 These include complete versions of most of those in codepage.el, based
1444 on Unicode mappings. `codepage-setup' is now obsolete and is used 1225 on Unicode mappings. `codepage-setup' is now obsolete and is used
1445 only in the MS-DOS port of Emacs. All coding systems defined in 1226 only in the MS-DOS port of Emacs. All coding systems defined in
1446 `code-pages' are auto-loaded. 1227 `code-pages' are auto-loaded.
1447 1228
1448 ---
1449 *** New variable `utf-translate-cjk-unicode-range' controls which 1229 *** New variable `utf-translate-cjk-unicode-range' controls which
1450 Unicode characters to translate in `utf-translate-cjk-mode'. 1230 Unicode characters to translate in `utf-translate-cjk-mode'.
1451 1231
1452 ---
1453 *** iso-10646-1 (`Unicode') fonts can be used to display any range of 1232 *** iso-10646-1 (`Unicode') fonts can be used to display any range of
1454 characters encodable by the utf-8 coding system. Just specify the 1233 characters encodable by the utf-8 coding system. Just specify the
1455 fontset appropriately. 1234 fontset appropriately.
1456 1235
1457 ** Customize changes: 1236 ** Customize changes:
1458 1237
1459 +++
1460 *** Custom themes are collections of customize options. Create a 1238 *** Custom themes are collections of customize options. Create a
1461 custom theme with M-x customize-create-theme. Use M-x load-theme to 1239 custom theme with M-x customize-create-theme. Use M-x load-theme to
1462 load and enable a theme, and M-x disable-theme to disable it. Use M-x 1240 load and enable a theme, and M-x disable-theme to disable it. Use M-x
1463 enable-theme to enable a disabled theme. 1241 enable-theme to enable a disabled theme.
1464 1242
1465 +++
1466 *** The commands M-x customize-face and M-x customize-face-other-window 1243 *** The commands M-x customize-face and M-x customize-face-other-window
1467 now look at the character after point. If a face or faces are 1244 now look at the character after point. If a face or faces are
1468 specified for that character, the commands by default customize those 1245 specified for that character, the commands by default customize those
1469 faces. 1246 faces.
1470 1247
1471 ---
1472 *** The face-customization widget has been reworked to be less confusing. 1248 *** The face-customization widget has been reworked to be less confusing.
1473 In particular, when you enable a face attribute using the corresponding 1249 In particular, when you enable a face attribute using the corresponding
1474 check-box, there's no longer a redundant `*' option in value selection 1250 check-box, there's no longer a redundant `*' option in value selection
1475 for that attribute; the values you can choose are only those which make 1251 for that attribute; the values you can choose are only those which make
1476 sense for the attribute. When an attribute is de-selected by unchecking 1252 sense for the attribute. When an attribute is de-selected by unchecking
1477 its check-box, then the (now ignored, but still present temporarily in 1253 its check-box, then the (now ignored, but still present temporarily in
1478 case you re-select the attribute) value is hidden. 1254 case you re-select the attribute) value is hidden.
1479 1255
1480 +++
1481 *** When you set or reset a variable's value in a Customize buffer, 1256 *** When you set or reset a variable's value in a Customize buffer,
1482 the previous value becomes the "backup value" of the variable. 1257 the previous value becomes the "backup value" of the variable.
1483 You can go back to that backup value by selecting "Use Backup Value" 1258 You can go back to that backup value by selecting "Use Backup Value"
1484 under the "[State]" button. 1259 under the "[State]" button.
1485 1260
1486 ** Buffer Menu changes: 1261 ** Buffer Menu changes:
1487 1262
1488 +++
1489 *** New command `Buffer-menu-toggle-files-only' toggles display of file 1263 *** New command `Buffer-menu-toggle-files-only' toggles display of file
1490 buffers only in the Buffer Menu. It is bound to T in Buffer Menu 1264 buffers only in the Buffer Menu. It is bound to T in Buffer Menu
1491 mode. 1265 mode.
1492 1266
1493 +++
1494 *** `buffer-menu' and `list-buffers' now list buffers whose names begin 1267 *** `buffer-menu' and `list-buffers' now list buffers whose names begin
1495 with a space, when those buffers are visiting files. Normally buffers 1268 with a space, when those buffers are visiting files. Normally buffers
1496 whose names begin with space are omitted. 1269 whose names begin with space are omitted.
1497 1270
1498 ---
1499 *** The new options `buffers-menu-show-directories' and 1271 *** The new options `buffers-menu-show-directories' and
1500 `buffers-menu-show-status' let you control how buffers are displayed 1272 `buffers-menu-show-status' let you control how buffers are displayed
1501 in the menu dropped down when you click "Buffers" from the menu bar. 1273 in the menu dropped down when you click "Buffers" from the menu bar.
1502 1274
1503 `buffers-menu-show-directories' controls whether the menu displays 1275 `buffers-menu-show-directories' controls whether the menu displays
1513 Setting these variables directly does not take effect until next time 1285 Setting these variables directly does not take effect until next time
1514 the Buffers menu is regenerated. 1286 the Buffers menu is regenerated.
1515 1287
1516 ** Dired mode: 1288 ** Dired mode:
1517 1289
1518 ---
1519 *** New faces dired-header, dired-mark, dired-marked, dired-flagged, 1290 *** New faces dired-header, dired-mark, dired-marked, dired-flagged,
1520 dired-ignored, dired-directory, dired-symlink, dired-warning 1291 dired-ignored, dired-directory, dired-symlink, dired-warning
1521 introduced for Dired mode instead of font-lock faces. 1292 introduced for Dired mode instead of font-lock faces.
1522 1293
1523 +++
1524 *** New Dired command `dired-compare-directories' marks files 1294 *** New Dired command `dired-compare-directories' marks files
1525 with different file attributes in two dired buffers. 1295 with different file attributes in two dired buffers.
1526 1296
1527 +++
1528 *** New Dired command `dired-do-touch' (bound to T) changes timestamps 1297 *** New Dired command `dired-do-touch' (bound to T) changes timestamps
1529 of marked files with the value entered in the minibuffer. 1298 of marked files with the value entered in the minibuffer.
1530 1299
1531 +++
1532 *** The Dired command `dired-goto-file' is now bound to j, not M-g. 1300 *** The Dired command `dired-goto-file' is now bound to j, not M-g.
1533 This is to avoid hiding the global key binding of M-g. 1301 This is to avoid hiding the global key binding of M-g.
1534 1302
1535 +++
1536 *** In Dired's ! command (dired-do-shell-command), `*' and `?' now 1303 *** In Dired's ! command (dired-do-shell-command), `*' and `?' now
1537 control substitution of the file names only when they are surrounded 1304 control substitution of the file names only when they are surrounded
1538 by whitespace. This means you can now use them as shell wildcards 1305 by whitespace. This means you can now use them as shell wildcards
1539 too. If you want to use just plain `*' as a wildcard, type `*""'; the 1306 too. If you want to use just plain `*' as a wildcard, type `*""'; the
1540 double quotes make no difference in the shell, but they prevent 1307 double quotes make no difference in the shell, but they prevent
1541 special treatment in `dired-do-shell-command'. 1308 special treatment in `dired-do-shell-command'.
1542 1309
1543 +++
1544 *** In Dired, the w command now stores the current line's file name 1310 *** In Dired, the w command now stores the current line's file name
1545 into the kill ring. With a zero prefix arg, it stores the absolute file name. 1311 into the kill ring. With a zero prefix arg, it stores the absolute file name.
1546 1312
1547 +++
1548 *** In Dired-x, Omitting files is now a minor mode, dired-omit-mode. 1313 *** In Dired-x, Omitting files is now a minor mode, dired-omit-mode.
1549 1314
1550 The mode toggling command is bound to M-o. A new command 1315 The mode toggling command is bound to M-o. A new command
1551 dired-mark-omitted, bound to * O, marks omitted files. The variable 1316 dired-mark-omitted, bound to * O, marks omitted files. The variable
1552 dired-omit-files-p is obsoleted, use the mode toggling function 1317 dired-omit-files-p is obsoleted, use the mode toggling function
1553 instead. 1318 instead.
1554 1319
1555 +++
1556 *** The variables dired-free-space-program and dired-free-space-args 1320 *** The variables dired-free-space-program and dired-free-space-args
1557 have been renamed to directory-free-space-program and 1321 have been renamed to directory-free-space-program and
1558 directory-free-space-args, and they now apply whenever Emacs puts a 1322 directory-free-space-args, and they now apply whenever Emacs puts a
1559 directory listing into a buffer. 1323 directory listing into a buffer.
1560 1324
1561 ** Comint changes: 1325 ** Comint changes:
1562 1326
1563 ---
1564 *** The comint prompt can now be made read-only, using the new user 1327 *** The comint prompt can now be made read-only, using the new user
1565 option `comint-prompt-read-only'. This is not enabled by default, 1328 option `comint-prompt-read-only'. This is not enabled by default,
1566 except in IELM buffers. The read-only status of IELM prompts can be 1329 except in IELM buffers. The read-only status of IELM prompts can be
1567 controlled with the new user option `ielm-prompt-read-only', which 1330 controlled with the new user option `ielm-prompt-read-only', which
1568 overrides `comint-prompt-read-only'. 1331 overrides `comint-prompt-read-only'.
1580 and that all prompts must stay at the beginning of a line. If this is 1343 and that all prompts must stay at the beginning of a line. If this is
1581 not the case, then `comint-kill-region' behaves just like 1344 not the case, then `comint-kill-region' behaves just like
1582 `kill-region' if read-only properties are involved: it copies the text 1345 `kill-region' if read-only properties are involved: it copies the text
1583 to the kill-ring, but does not delete it. 1346 to the kill-ring, but does not delete it.
1584 1347
1585 +++
1586 *** The new command `comint-insert-previous-argument' in comint-derived 1348 *** The new command `comint-insert-previous-argument' in comint-derived
1587 modes (shell-mode, etc.) inserts arguments from previous command lines, 1349 modes (shell-mode, etc.) inserts arguments from previous command lines,
1588 like bash's `ESC .' binding. It is bound by default to `C-c .', but 1350 like bash's `ESC .' binding. It is bound by default to `C-c .', but
1589 otherwise behaves quite similarly to the bash version. 1351 otherwise behaves quite similarly to the bash version.
1590 1352
1591 +++
1592 *** `comint-use-prompt-regexp-instead-of-fields' has been renamed 1353 *** `comint-use-prompt-regexp-instead-of-fields' has been renamed
1593 `comint-use-prompt-regexp'. The old name has been kept as an alias, 1354 `comint-use-prompt-regexp'. The old name has been kept as an alias,
1594 but declared obsolete. 1355 but declared obsolete.
1595 1356
1596 +++ 1357 *** The new INSIDE_EMACS environment variable is set to "t" in subshells
1597 *** The new INSIDE_EMACS environment variable is set to "t" in 1358 running inside Emacs. This supersedes the EMACS environment variable,
1598 subshells running inside Emacs. This supersedes the EMACS environment 1359 which will be removed in a future Emacs release. Programs that need
1599 variable, which will be removed in a future Emacs release. Programs 1360 to know whether they are started inside Emacs should check INSIDE_EMACS
1600 that need to know whether they are started inside Emacs should check 1361 instead of EMACS.
1601 INSIDE_EMACS instead of EMACS.
1602 1362
1603 ** M-x Compile changes: 1363 ** M-x Compile changes:
1604 1364
1605 ---
1606 *** M-x compile has become more robust and reliable 1365 *** M-x compile has become more robust and reliable
1607 1366
1608 Quite a few more kinds of messages are recognized. Messages that are 1367 Quite a few more kinds of messages are recognized. Messages that are
1609 recognized as warnings or informational come in orange or green, instead of 1368 recognized as warnings or informational come in orange or green, instead of
1610 red. Informational messages are by default skipped with `next-error' 1369 red. Informational messages are by default skipped with `next-error'
1620 `compilation-mode-font-lock-keywords' and it nicely handles all the checks 1379 `compilation-mode-font-lock-keywords' and it nicely handles all the checks
1621 that configure outputs and -o options so you see at a glance where you are. 1380 that configure outputs and -o options so you see at a glance where you are.
1622 1381
1623 The new file etc/compilation.txt gives examples of each type of message. 1382 The new file etc/compilation.txt gives examples of each type of message.
1624 1383
1625 +++
1626 *** New user option `compilation-environment'. 1384 *** New user option `compilation-environment'.
1627 This option allows you to specify environment variables for inferior 1385 This option allows you to specify environment variables for inferior
1628 compilation processes without affecting the environment that all 1386 compilation processes without affecting the environment that all
1629 subprocesses inherit. 1387 subprocesses inherit.
1630 1388
1631 +++
1632 *** New user option `compilation-disable-input'. 1389 *** New user option `compilation-disable-input'.
1633 If this is non-nil, send end-of-file as compilation process input. 1390 If this is non-nil, send end-of-file as compilation process input.
1634 1391
1635 +++
1636 *** New options `next-error-highlight' and `next-error-highlight-no-select' 1392 *** New options `next-error-highlight' and `next-error-highlight-no-select'
1637 specify the method of highlighting of the corresponding source line 1393 specify the method of highlighting of the corresponding source line
1638 in new face `next-error'. 1394 in new face `next-error'.
1639 1395
1640 +++
1641 *** A new minor mode `next-error-follow-minor-mode' can be used in 1396 *** A new minor mode `next-error-follow-minor-mode' can be used in
1642 compilation-mode, grep-mode, occur-mode, and diff-mode (i.e. all the 1397 compilation-mode, grep-mode, occur-mode, and diff-mode (i.e. all the
1643 modes that can use `next-error'). In this mode, cursor motion in the 1398 modes that can use `next-error'). In this mode, cursor motion in the
1644 buffer causes automatic display in another window of the corresponding 1399 buffer causes automatic display in another window of the corresponding
1645 matches, compilation errors, etc. This minor mode can be toggled with 1400 matches, compilation errors, etc. This minor mode can be toggled with
1646 C-c C-f. 1401 C-c C-f.
1647 1402
1648 +++
1649 *** When the left fringe is displayed, an arrow points to current message in 1403 *** When the left fringe is displayed, an arrow points to current message in
1650 the compilation buffer. 1404 the compilation buffer.
1651 1405
1652 +++
1653 *** The new variable `compilation-context-lines' controls lines of leading 1406 *** The new variable `compilation-context-lines' controls lines of leading
1654 context before the current message. If nil and the left fringe is displayed, 1407 context before the current message. If nil and the left fringe is displayed,
1655 it doesn't scroll the compilation output window. If there is no left fringe, 1408 it doesn't scroll the compilation output window. If there is no left fringe,
1656 no arrow is displayed and a value of nil means display the message at the top 1409 no arrow is displayed and a value of nil means display the message at the top
1657 of the window. 1410 of the window.
1658 1411
1659 +++
1660 *** The EMACS environment variable now defaults to Emacs's absolute
1661 file name, instead of to "t".
1662
1663 ** Occur mode changes: 1412 ** Occur mode changes:
1664 1413
1665 +++
1666 *** In the *Occur* buffer, `o' switches to it in another window, and 1414 *** In the *Occur* buffer, `o' switches to it in another window, and
1667 C-o displays the current line's occurrence in another window without 1415 C-o displays the current line's occurrence in another window without
1668 switching to it. 1416 switching to it.
1669 1417
1670 +++
1671 *** You can now use next-error (C-x `) and previous-error to advance to 1418 *** You can now use next-error (C-x `) and previous-error to advance to
1672 the next/previous matching line found by M-x occur. 1419 the next/previous matching line found by M-x occur.
1673 1420
1674 +++
1675 *** The new command `multi-occur' is just like `occur', except it can 1421 *** The new command `multi-occur' is just like `occur', except it can
1676 search multiple buffers. There is also a new command 1422 search multiple buffers. There is also a new command
1677 `multi-occur-in-matching-buffers' which allows you to specify the 1423 `multi-occur-in-matching-buffers' which allows you to specify the
1678 buffers to search by their filenames or buffer names. Internally, 1424 buffers to search by their filenames or buffer names. Internally,
1679 Occur mode has been rewritten, and now uses font-lock, among other 1425 Occur mode has been rewritten, and now uses font-lock, among other
1680 changes. 1426 changes.
1681 1427
1682 ** Grep changes: 1428 ** Grep changes:
1683 1429
1684 +++
1685 *** Grep has been decoupled from compilation mode setup. 1430 *** Grep has been decoupled from compilation mode setup.
1686 1431
1687 There's a new separate package grep.el, with its own submenu and 1432 There's a new separate package grep.el, with its own submenu and
1688 customization group. 1433 customization group.
1689 1434
1690 +++
1691 *** `grep-find' is now also available under the name `find-grep' where 1435 *** `grep-find' is now also available under the name `find-grep' where
1692 people knowing `find-grep-dired' would probably expect it. 1436 people knowing `find-grep-dired' would probably expect it.
1693 1437
1694 +++
1695 *** New commands `lgrep' (local grep) and `rgrep' (recursive grep) are 1438 *** New commands `lgrep' (local grep) and `rgrep' (recursive grep) are
1696 more user-friendly versions of `grep' and `grep-find', which prompt 1439 more user-friendly versions of `grep' and `grep-find', which prompt
1697 separately for the regular expression to match, the files to search, 1440 separately for the regular expression to match, the files to search,
1698 and the base directory for the search. Case sensitivitivy of the 1441 and the base directory for the search. Case sensitivity of the
1699 search is controlled by the current value of `case-fold-search'. 1442 search is controlled by the current value of `case-fold-search'.
1700 1443
1701 These commands build the shell commands based on the new variables 1444 These commands build the shell commands based on the new variables
1702 `grep-template' (lgrep) and `grep-find-template' (rgrep). 1445 `grep-template' (lgrep) and `grep-find-template' (rgrep).
1703 1446
1705 1448
1706 Subdirectories listed in `grep-find-ignored-directories' such as those 1449 Subdirectories listed in `grep-find-ignored-directories' such as those
1707 typically used by various version control systems, like CVS and arch, 1450 typically used by various version control systems, like CVS and arch,
1708 are automatically skipped by `rgrep'. 1451 are automatically skipped by `rgrep'.
1709 1452
1710 ---
1711 *** The grep commands provide highlighting support. 1453 *** The grep commands provide highlighting support.
1712 1454
1713 Hits are fontified in green, and hits in binary files in orange. Grep buffers 1455 Hits are fontified in green, and hits in binary files in orange. Grep buffers
1714 can be saved and automatically revisited. 1456 can be saved and automatically revisited.
1715 1457
1716 ---
1717 *** The new variables `grep-window-height' and `grep-scroll-output' override 1458 *** The new variables `grep-window-height' and `grep-scroll-output' override
1718 the corresponding compilation mode settings, for grep commands only. 1459 the corresponding compilation mode settings, for grep commands only.
1719 1460
1720 +++
1721 *** New option `grep-highlight-matches' highlights matches in *grep* 1461 *** New option `grep-highlight-matches' highlights matches in *grep*
1722 buffer. It uses a special feature of some grep programs which accept 1462 buffer. It uses a special feature of some grep programs which accept
1723 --color option to output markers around matches. When going to the next 1463 --color option to output markers around matches. When going to the next
1724 match with `next-error' the exact match is highlighted in the source 1464 match with `next-error' the exact match is highlighted in the source
1725 buffer. Otherwise, if `grep-highlight-matches' is nil, the whole 1465 buffer. Otherwise, if `grep-highlight-matches' is nil, the whole
1726 source line is highlighted. 1466 source line is highlighted.
1727 1467
1728 +++
1729 *** New key bindings in grep output window: 1468 *** New key bindings in grep output window:
1730 SPC and DEL scrolls window up and down. C-n and C-p moves to next and 1469 SPC and DEL scrolls window up and down. C-n and C-p moves to next and
1731 previous match in the grep window. RET jumps to the source line of 1470 previous match in the grep window. RET jumps to the source line of
1732 the current match. `n' and `p' shows next and previous match in 1471 the current match. `n' and `p' shows next and previous match in
1733 other window, but does not switch buffer. `{' and `}' jumps to the 1472 other window, but does not switch buffer. `{' and `}' jumps to the
1734 previous or next file in the grep output. TAB also jumps to the next 1473 previous or next file in the grep output. TAB also jumps to the next
1735 file. 1474 file.
1736 1475
1737 +++
1738 *** M-x grep now tries to avoid appending `/dev/null' to the command line 1476 *** M-x grep now tries to avoid appending `/dev/null' to the command line
1739 by using GNU grep `-H' option instead. M-x grep automatically 1477 by using GNU grep `-H' option instead. M-x grep automatically
1740 detects whether this is possible or not the first time it is invoked. 1478 detects whether this is possible or not the first time it is invoked.
1741 When `-H' is used, the grep command line supplied by the user is passed 1479 When `-H' is used, the grep command line supplied by the user is passed
1742 unchanged to the system to execute, which allows more complicated 1480 unchanged to the system to execute, which allows more complicated
1743 command lines to be used than was possible before. 1481 command lines to be used than was possible before.
1744 1482
1745 ** X Windows Support: 1483 ** X Windows Support:
1746 1484
1747 +++
1748 *** Emacs now supports drag and drop for X. Dropping a file on a window 1485 *** Emacs now supports drag and drop for X. Dropping a file on a window
1749 opens it, dropping text inserts the text. Dropping a file on a dired 1486 opens it, dropping text inserts the text. Dropping a file on a dired
1750 buffer copies or moves the file to that directory. 1487 buffer copies or moves the file to that directory.
1751 1488
1752 +++
1753 *** Under X11, it is possible to swap Alt and Meta (and Super and Hyper). 1489 *** Under X11, it is possible to swap Alt and Meta (and Super and Hyper).
1754 The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym', 1490 The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym',
1755 and `x-super-keysym' can be used to choose which keysyms Emacs should 1491 and `x-super-keysym' can be used to choose which keysyms Emacs should
1756 use for the modifiers. For example, the following two lines swap 1492 use for the modifiers. For example, the following two lines swap
1757 Meta and Alt: 1493 Meta and Alt:
1758 (setq x-alt-keysym 'meta) 1494 (setq x-alt-keysym 'meta)
1759 (setq x-meta-keysym 'alt) 1495 (setq x-meta-keysym 'alt)
1760 1496
1761 +++
1762 *** The X resource useXIM can be used to turn off use of XIM, which can 1497 *** The X resource useXIM can be used to turn off use of XIM, which can
1763 speed up Emacs with slow networking to the X server. 1498 speed up Emacs with slow networking to the X server.
1764 1499
1765 If the configure option `--without-xim' was used to turn off use of 1500 If the configure option `--without-xim' was used to turn off use of
1766 XIM by default, the X resource useXIM can be used to turn it on. 1501 XIM by default, the X resource useXIM can be used to turn it on.
1767 1502
1768 ---
1769 *** The new variable `x-select-request-type' controls how Emacs 1503 *** The new variable `x-select-request-type' controls how Emacs
1770 requests X selection. The default value is nil, which means that 1504 requests X selection. The default value is nil, which means that
1771 Emacs requests X selection with types COMPOUND_TEXT and UTF8_STRING, 1505 Emacs requests X selection with types COMPOUND_TEXT and UTF8_STRING,
1772 and use the more appropriately result. 1506 and use the more appropriately result.
1773 1507
1774 ---
1775 *** The scrollbar under LessTif or Motif has a smoother drag-scrolling. 1508 *** The scrollbar under LessTif or Motif has a smoother drag-scrolling.
1776 On the other hand, the size of the thumb does not represent the actual 1509 On the other hand, the size of the thumb does not represent the actual
1777 amount of text shown any more (only a crude approximation of it). 1510 amount of text shown any more (only a crude approximation of it).
1778 1511
1779 ** Xterm support: 1512 ** Xterm support:
1780 1513
1781 ---
1782 *** If you enable Xterm Mouse mode, Emacs will respond to mouse clicks 1514 *** If you enable Xterm Mouse mode, Emacs will respond to mouse clicks
1783 on the mode line, header line and display margin, when run in an xterm. 1515 on the mode line, header line and display margin, when run in an xterm.
1784 1516
1785 ---
1786 *** Improved key bindings support when running in an xterm. 1517 *** Improved key bindings support when running in an xterm.
1787 When Emacs is running in an xterm more key bindings are available. 1518 When Emacs is running in an xterm more key bindings are available.
1788 The following should work: 1519 The following should work:
1789 {C,S,C-S,A}-{right,left,up,down,prior,next,delete,insert,F1-12}. 1520 {C,S,C-S,A}-{right,left,up,down,prior,next,delete,insert,F1-12}.
1790 These key bindings work on xterm from X.org 6.8 (and later versions), 1521 These key bindings work on xterm from X.org 6.8 (and later versions),
1793 The various keys generated by xterm when the "modifyOtherKeys" 1524 The various keys generated by xterm when the "modifyOtherKeys"
1794 resource is set are also supported. 1525 resource is set are also supported.
1795 1526
1796 ** Character terminal color support changes: 1527 ** Character terminal color support changes:
1797 1528
1798 +++
1799 *** The new command-line option --color=MODE lets you specify a standard 1529 *** The new command-line option --color=MODE lets you specify a standard
1800 mode for a tty color support. It is meant to be used on character 1530 mode for a tty color support. It is meant to be used on character
1801 terminals whose capabilities are not set correctly in the terminal 1531 terminals whose capabilities are not set correctly in the terminal
1802 database, or with terminal emulators which support colors, but don't 1532 database, or with terminal emulators which support colors, but don't
1803 set the TERM environment variable to a name of a color-capable 1533 set the TERM environment variable to a name of a color-capable
1804 terminal. "emacs --color" uses the same color commands as GNU `ls' 1534 terminal. "emacs --color" uses the same color commands as GNU `ls'
1805 when invoked with "ls --color", so if your terminal can support colors 1535 when invoked with "ls --color", so if your terminal can support colors
1806 in "ls --color", it will support "emacs --color" as well. See the 1536 in "ls --color", it will support "emacs --color" as well. See the
1807 user manual for the possible values of the MODE parameter. 1537 user manual for the possible values of the MODE parameter.
1808 1538
1809 ---
1810 *** Emacs now supports several character terminals which provide more 1539 *** Emacs now supports several character terminals which provide more
1811 than 8 colors. For example, for `xterm', 16-color, 88-color, and 1540 than 8 colors. For example, for `xterm', 16-color, 88-color, and
1812 256-color modes are supported. Emacs automatically notes at startup 1541 256-color modes are supported. Emacs automatically notes at startup
1813 the extended number of colors, and defines the appropriate entries for 1542 the extended number of colors, and defines the appropriate entries for
1814 all of these colors. 1543 all of these colors.
1815 1544
1816 +++
1817 *** Emacs now uses the full range of available colors for the default 1545 *** Emacs now uses the full range of available colors for the default
1818 faces when running on a color terminal, including 16-, 88-, and 1546 faces when running on a color terminal, including 16-, 88-, and
1819 256-color xterms. This means that when you run "emacs -nw" on an 1547 256-color xterms. This means that when you run "emacs -nw" on an
1820 88-color or 256-color xterm, you will see essentially the same face 1548 88-color or 256-color xterm, you will see essentially the same face
1821 colors as on X. 1549 colors as on X.
1822 1550
1823 ---
1824 *** There's a new support for colors on `rxvt' terminal emulator. 1551 *** There's a new support for colors on `rxvt' terminal emulator.
1552
1553 ** ebnf2ps changes:
1554
1555 *** New option `ebnf-arrow-extra-width' which specify extra width for arrow
1556 shape drawing.
1557 The extra width is used to avoid that the arrowhead and the terminal border
1558 overlap. It depends on `ebnf-arrow-shape' and `ebnf-line-width'.
1559
1560 *** New option `ebnf-arrow-scale' which specify the arrow scale.
1561 Values lower than 1.0, shrink the arrow.
1562 Values greater than 1.0, expand the arrow.
1825 1563
1826 * New Modes and Packages in Emacs 22.1 1564 * New Modes and Packages in Emacs 22.1
1827 1565
1828 ---
1829 ** ERC is now part of the Emacs distribution. 1566 ** ERC is now part of the Emacs distribution.
1830 1567
1831 ERC is a powerful, modular, and extensible IRC client for Emacs. 1568 ERC is a powerful, modular, and extensible IRC client for Emacs.
1832 1569
1833 To see what modules are available, type 1570 To see what modules are available, type
1834 M-x customize-option erc-modules RET. 1571 M-x customize-option erc-modules RET.
1835 1572
1836 To start an IRC session with ERC, type M-x erc, and follow the prompts 1573 To start an IRC session with ERC, type M-x erc, and follow the prompts
1837 for server, port, and nick. 1574 for server, port, and nick.
1838 1575
1839 ---
1840 ** Rcirc is now part of the Emacs distribution. 1576 ** Rcirc is now part of the Emacs distribution.
1841 1577
1842 Rcirc is an Internet relay chat (IRC) client. It supports 1578 Rcirc is an Internet relay chat (IRC) client. It supports
1843 simultaneous connections to multiple IRC servers. Each discussion 1579 simultaneous connections to multiple IRC servers. Each discussion
1844 takes place in its own buffer. For each connection you can join 1580 takes place in its own buffer. For each connection you can join
1848 1584
1849 To start an IRC session using the default parameters, type M-x irc. 1585 To start an IRC session using the default parameters, type M-x irc.
1850 If you type C-u M-x irc, it prompts you for the server, nick, port and 1586 If you type C-u M-x irc, it prompts you for the server, nick, port and
1851 startup channel parameters before connecting. 1587 startup channel parameters before connecting.
1852 1588
1853 ---
1854 ** Newsticker is now part of the Emacs distribution. 1589 ** Newsticker is now part of the Emacs distribution.
1855 1590
1856 Newsticker asynchronously retrieves headlines (RSS) from a list of news 1591 Newsticker asynchronously retrieves headlines (RSS) from a list of news
1857 sites, prepares these headlines for reading, and allows for loading the 1592 sites, prepares these headlines for reading, and allows for loading the
1858 corresponding articles in a web browser. Its documentation is in a 1593 corresponding articles in a web browser. Its documentation is in a
1859 separate manual. 1594 separate manual.
1860 1595
1861 +++
1862 ** savehist saves minibuffer histories between sessions. 1596 ** savehist saves minibuffer histories between sessions.
1863 To use this feature, turn on savehist-mode in your `.emacs' file. 1597 To use this feature, turn on savehist-mode in your `.emacs' file.
1864 1598
1865 +++
1866 ** Filesets are collections of files. You can define a fileset in 1599 ** Filesets are collections of files. You can define a fileset in
1867 various ways, such as based on a directory tree or based on 1600 various ways, such as based on a directory tree or based on
1868 program files that include other program files. 1601 program files that include other program files.
1869 1602
1870 Once you have defined a fileset, you can perform various operations on 1603 Once you have defined a fileset, you can perform various operations on
1871 all the files in it, such as visiting them or searching and replacing 1604 all the files in it, such as visiting them or searching and replacing
1872 in them. 1605 in them.
1873 1606
1874 +++
1875 ** Calc is now part of the Emacs distribution. 1607 ** Calc is now part of the Emacs distribution.
1876 1608
1877 Calc is an advanced desk calculator and mathematical tool written in 1609 Calc is an advanced desk calculator and mathematical tool written in
1878 Emacs Lisp. The prefix for Calc has been changed to `C-x *' and Calc 1610 Emacs Lisp. The prefix for Calc has been changed to `C-x *' and Calc
1879 can be started with `C-x * *'. The Calc manual is separate from the 1611 can be started with `C-x * *'. The Calc manual is separate from the
1880 Emacs manual; within Emacs, type "C-h i m calc RET" to read the 1612 Emacs manual; within Emacs, type "C-h i m calc RET" to read the
1881 manual. A reference card is available in `etc/calccard.tex' and 1613 manual. A reference card is available in `etc/calccard.tex' and
1882 `etc/calccard.ps'. 1614 `etc/calccard.ps'.
1883 1615
1884 ---
1885 ** The new package ibuffer provides a powerful, completely 1616 ** The new package ibuffer provides a powerful, completely
1886 customizable replacement for buff-menu.el. 1617 customizable replacement for buff-menu.el.
1887 1618
1888 ---
1889 ** Ido mode is now part of the Emacs distribution. 1619 ** Ido mode is now part of the Emacs distribution.
1890 1620
1891 The ido (interactively do) package is an extension of the iswitchb 1621 The ido (interactively do) package is an extension of the iswitchb
1892 package to do interactive opening of files and directories in addition 1622 package to do interactive opening of files and directories in addition
1893 to interactive buffer switching. Ido is a superset of iswitchb (with 1623 to interactive buffer switching. Ido is a superset of iswitchb (with
1894 a few exceptions), so don't enable both packages. 1624 a few exceptions), so don't enable both packages.
1895 1625
1896 +++
1897 ** Image files are normally visited in Image mode, which lets you toggle 1626 ** Image files are normally visited in Image mode, which lets you toggle
1898 between viewing the image and viewing the text using C-c C-c. 1627 between viewing the image and viewing the text using C-c C-c.
1899 1628
1900 ---
1901 ** CUA mode is now part of the Emacs distribution. 1629 ** CUA mode is now part of the Emacs distribution.
1902 1630
1903 The new cua package provides CUA-like keybindings using C-x for 1631 The new cua package provides CUA-like keybindings using C-x for
1904 cut (kill), C-c for copy, C-v for paste (yank), and C-z for undo. 1632 cut (kill), C-c for copy, C-v for paste (yank), and C-z for undo.
1905 With cua, the region can be set and extended using shifted movement 1633 With cua, the region can be set and extended using shifted movement
1944 Note: This version of cua mode is not backwards compatible with older 1672 Note: This version of cua mode is not backwards compatible with older
1945 versions of cua.el and cua-mode.el. To ensure proper operation, you 1673 versions of cua.el and cua-mode.el. To ensure proper operation, you
1946 must remove older versions of cua.el or cua-mode.el as well as the 1674 must remove older versions of cua.el or cua-mode.el as well as the
1947 loading and customization of those packages from the .emacs file. 1675 loading and customization of those packages from the .emacs file.
1948 1676
1949 +++
1950 ** Org mode is now part of the Emacs distribution 1677 ** Org mode is now part of the Emacs distribution
1951 1678
1952 Org mode is a mode for keeping notes, maintaining ToDo lists, and 1679 Org mode is a mode for keeping notes, maintaining ToDo lists, and
1953 doing project planning with a fast and effective plain-text system. 1680 doing project planning with a fast and effective plain-text system.
1954 It also contains a plain-text table editor with spreadsheet-like 1681 It also contains a plain-text table editor with spreadsheet-like
1959 1686
1960 The documentation for org-mode is in a separate manual; within Emacs, 1687 The documentation for org-mode is in a separate manual; within Emacs,
1961 type "C-h i m org RET" to read that manual. A reference card is 1688 type "C-h i m org RET" to read that manual. A reference card is
1962 available in `etc/orgcard.tex' and `etc/orgcard.ps'. 1689 available in `etc/orgcard.tex' and `etc/orgcard.ps'.
1963 1690
1964 +++
1965 ** The new package dns-mode.el adds syntax highlighting of DNS master files. 1691 ** The new package dns-mode.el adds syntax highlighting of DNS master files.
1966 It is a modern replacement for zone-mode.el, which is now obsolete. 1692 It is a modern replacement for zone-mode.el, which is now obsolete.
1967 1693
1968 ---
1969 ** The new global minor mode `file-name-shadow-mode' modifies the way 1694 ** The new global minor mode `file-name-shadow-mode' modifies the way
1970 filenames being entered by the user in the minibuffer are displayed, so 1695 filenames being entered by the user in the minibuffer are displayed, so
1971 that it's clear when part of the entered filename will be ignored due to 1696 that it's clear when part of the entered filename will be ignored due to
1972 Emacs' filename parsing rules. The ignored portion can be made dim, 1697 Emacs' filename parsing rules. The ignored portion can be made dim,
1973 invisible, or otherwise less visually noticeable. The display method can 1698 invisible, or otherwise less visually noticeable. The display method can
1974 be displayed by customizing the variable `file-name-shadow-properties'. 1699 be displayed by customizing the variable `file-name-shadow-properties'.
1975 1700
1976 +++
1977 ** The new package flymake.el does on-the-fly syntax checking of program 1701 ** The new package flymake.el does on-the-fly syntax checking of program
1978 source files. See the Flymake's Info manual for more details. 1702 source files. See the Flymake's Info manual for more details.
1979 1703
1980 +++
1981 ** The new keypad setup package provides several common bindings for 1704 ** The new keypad setup package provides several common bindings for
1982 the numeric keypad which is available on most keyboards. The numeric 1705 the numeric keypad which is available on most keyboards. The numeric
1983 keypad typically has the digits 0 to 9, a decimal point, keys marked 1706 keypad typically has the digits 0 to 9, a decimal point, keys marked
1984 +, -, /, and *, an Enter key, and a NumLock toggle key. The keypad 1707 +, -, /, and *, an Enter key, and a NumLock toggle key. The keypad
1985 package only controls the use of the digit and decimal keys. 1708 package only controls the use of the digit and decimal keys.
2000 where the keys work like (shifted) arrow keys, home/end, etc., and 1723 where the keys work like (shifted) arrow keys, home/end, etc., and
2001 `Unspecified/User-defined' where the keypad keys (kp-0, kp-1, etc.) 1724 `Unspecified/User-defined' where the keypad keys (kp-0, kp-1, etc.)
2002 are left unspecified and can be bound individually through the global 1725 are left unspecified and can be bound individually through the global
2003 or local keymaps. 1726 or local keymaps.
2004 1727
2005 +++
2006 ** Emacs' keyboard macro facilities have been enhanced by the new 1728 ** Emacs' keyboard macro facilities have been enhanced by the new
2007 kmacro package. 1729 kmacro package.
2008 1730
2009 Keyboard macros are now defined and executed via the F3 and F4 keys: 1731 Keyboard macros are now defined and executed via the F3 and F4 keys:
2010 F3 starts a macro, F4 ends the macro, and pressing F4 again executes 1732 F3 starts a macro, F4 ends the macro, and pressing F4 again executes
2034 1756
2035 Keyboard macros can now be debugged and edited interactively. 1757 Keyboard macros can now be debugged and edited interactively.
2036 C-x C-k SPC steps through the last keyboard macro one key sequence 1758 C-x C-k SPC steps through the last keyboard macro one key sequence
2037 at a time, prompting for the actions to take. 1759 at a time, prompting for the actions to take.
2038 1760
2039 ---
2040 ** New minor mode, Visible mode, toggles invisibility in the current buffer. 1761 ** New minor mode, Visible mode, toggles invisibility in the current buffer.
2041 When enabled, it makes all invisible text visible. When disabled, it 1762 When enabled, it makes all invisible text visible. When disabled, it
2042 restores the previous value of `buffer-invisibility-spec'. 1763 restores the previous value of `buffer-invisibility-spec'.
2043 1764
2044 +++
2045 ** The wdired.el package allows you to use normal editing commands on Dired 1765 ** The wdired.el package allows you to use normal editing commands on Dired
2046 buffers to change filenames, permissions, etc... 1766 buffers to change filenames, permissions, etc...
2047 1767
2048 +++
2049 ** The new package longlines.el provides a minor mode for editing text 1768 ** The new package longlines.el provides a minor mode for editing text
2050 files composed of long lines, based on the `use-hard-newlines' 1769 files composed of long lines, based on the `use-hard-newlines'
2051 mechanism. The long lines are broken up by inserting soft newlines, 1770 mechanism. The long lines are broken up by inserting soft newlines,
2052 which are automatically removed when saving the file to disk or 1771 which are automatically removed when saving the file to disk or
2053 copying into the kill ring, clipboard, etc. By default, Longlines 1772 copying into the kill ring, clipboard, etc. By default, Longlines
2054 mode inserts soft newlines automatically during editing, a behavior 1773 mode inserts soft newlines automatically during editing, a behavior
2055 referred to as "soft word wrap" in other text editors. This is 1774 referred to as "soft word wrap" in other text editors. This is
2056 similar to Refill mode, but more reliable. To turn the word wrap 1775 similar to Refill mode, but more reliable. To turn the word wrap
2057 feature off, set `longlines-auto-wrap' to nil. 1776 feature off, set `longlines-auto-wrap' to nil.
2058 1777
2059 +++
2060 ** The printing package is now part of the Emacs distribution. 1778 ** The printing package is now part of the Emacs distribution.
2061 1779
2062 If you enable the printing package by including (require 'printing) in 1780 If you enable the printing package by including (require 'printing) in
2063 the .emacs file, the normal Print item on the File menu is replaced 1781 the .emacs file, the normal Print item on the File menu is replaced
2064 with a Print sub-menu which allows you to preview output through 1782 with a Print sub-menu which allows you to preview output through
2065 ghostview, use ghostscript to print (if you don't have a PostScript 1783 ghostview, use ghostscript to print (if you don't have a PostScript
2066 printer) or send directly to printer a PostScript code generated by 1784 printer) or send directly to printer a PostScript code generated by
2067 `ps-print' package. Use M-x pr-help for more information. 1785 `ps-print' package. Use M-x pr-help for more information.
2068 1786
2069 ---
2070 ** The minor mode Reveal mode makes text visible on the fly as you 1787 ** The minor mode Reveal mode makes text visible on the fly as you
2071 move your cursor into hidden regions of the buffer. 1788 move your cursor into hidden regions of the buffer.
2072 It should work with any package that uses overlays to hide parts 1789 It should work with any package that uses overlays to hide parts
2073 of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ... 1790 of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ...
2074 1791
2075 There is also Global Reveal mode which affects all buffers. 1792 There is also Global Reveal mode which affects all buffers.
2076 1793
2077 ---
2078 ** The ruler-mode.el library provides a minor mode for displaying an 1794 ** The ruler-mode.el library provides a minor mode for displaying an
2079 "active" ruler in the header line. You can use the mouse to visually 1795 "active" ruler in the header line. You can use the mouse to visually
2080 change the `fill-column', `window-margins' and `tab-stop-list' 1796 change the `fill-column', `window-margins' and `tab-stop-list'
2081 settings. 1797 settings.
2082 1798
2083 +++
2084 ** SES mode (ses-mode) is a new major mode for creating and editing 1799 ** SES mode (ses-mode) is a new major mode for creating and editing
2085 spreadsheet files. Besides the usual Emacs features (intuitive command 1800 spreadsheet files. Besides the usual Emacs features (intuitive command
2086 letters, undo, cell formulas in Lisp, plaintext files, etc.) it also offers 1801 letters, undo, cell formulas in Lisp, plaintext files, etc.) it also offers
2087 viral immunity and import/export of tab-separated values. 1802 viral immunity and import/export of tab-separated values.
2088 1803
2089 +++
2090 ** The new global minor mode `size-indication-mode' (off by default) 1804 ** The new global minor mode `size-indication-mode' (off by default)
2091 shows the size of accessible part of the buffer on the mode line. 1805 shows the size of accessible part of the buffer on the mode line.
2092 1806
2093 +++
2094 ** The new package table.el implements editable, WYSIWYG, embedded 1807 ** The new package table.el implements editable, WYSIWYG, embedded
2095 `text tables' in Emacs buffers. It simulates the effect of putting 1808 `text tables' in Emacs buffers. It simulates the effect of putting
2096 these tables in a special major mode. The package emulates WYSIWYG 1809 these tables in a special major mode. The package emulates WYSIWYG
2097 table editing available in modern word processors. The package also 1810 table editing available in modern word processors. The package also
2098 can generate a table source in typesetting and markup languages such 1811 can generate a table source in typesetting and markup languages such
2099 as latex and html from the visually laid out text table. 1812 as latex and html from the visually laid out text table.
2100 1813
2101 +++ 1814 ** The image-dired.el package allows you to easily view, tag and in
2102 ** The tumme.el package allows you to easily view, tag and in other ways 1815 other ways manipulate image files and their thumbnails, using dired as
2103 manipulate image files and their thumbnails, using dired as the main interface. 1816 the main interface. Image-Dired provides functionality to generate
2104 Tumme provides functionality to generate simple image galleries. 1817 simple image galleries.
2105 1818
2106 +++
2107 ** Tramp is now part of the distribution. 1819 ** Tramp is now part of the distribution.
2108 1820
2109 This package is similar to Ange-FTP: it allows you to edit remote 1821 This package is similar to Ange-FTP: it allows you to edit remote
2110 files. But whereas Ange-FTP uses FTP to access the remote host, 1822 files. But whereas Ange-FTP uses FTP to access the remote host,
2111 Tramp uses a shell connection. The shell connection is always used 1823 Tramp uses a shell connection. The shell connection is always used
2124 (setq tramp-default-method "ftp") 1836 (setq tramp-default-method "ftp")
2125 1837
2126 Removing Tramp, and re-enabling Ange-FTP, can be achieved by M-x 1838 Removing Tramp, and re-enabling Ange-FTP, can be achieved by M-x
2127 tramp-unload-tramp. 1839 tramp-unload-tramp.
2128 1840
2129 ---
2130 ** The URL package (which had been part of W3) is now part of Emacs. 1841 ** The URL package (which had been part of W3) is now part of Emacs.
2131 1842
2132 ---
2133 ** `cfengine-mode' is a major mode for editing GNU Cfengine 1843 ** `cfengine-mode' is a major mode for editing GNU Cfengine
2134 configuration files. 1844 configuration files.
2135 1845
2136 +++
2137 ** The new package conf-mode.el handles thousands of configuration files, with 1846 ** The new package conf-mode.el handles thousands of configuration files, with
2138 varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value, 1847 varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value,
2139 var : value, var value or keyword var value) and sections ([section] or 1848 var : value, var value or keyword var value) and sections ([section] or
2140 section { }). Many files under /etc/, or with suffixes like .cf through 1849 section { }). Many files under /etc/, or with suffixes like .cf through
2141 .config, .properties (Java), .desktop (KDE/Gnome), .ini and many others are 1850 .config, .properties (Java), .desktop (KDE/Gnome), .ini and many others are
2142 recognized. 1851 recognized.
2143 1852
2144 ---
2145 ** GDB-Script-mode is used for files like .gdbinit. 1853 ** GDB-Script-mode is used for files like .gdbinit.
2146 1854
2147 +++
2148 ** The new python.el package is used to edit Python and Jython programs. 1855 ** The new python.el package is used to edit Python and Jython programs.
2149 1856
2150 ---
2151 ** The TCL package tcl-mode.el was replaced by tcl.el. 1857 ** The TCL package tcl-mode.el was replaced by tcl.el.
2152 This was actually done in Emacs-21.1, and was not documented. 1858 This was actually done in Emacs-21.1, and was not documented.
2153 1859
2154 ---
2155 ** The new package scroll-lock.el provides the Scroll Lock minor mode 1860 ** The new package scroll-lock.el provides the Scroll Lock minor mode
2156 for pager-like scrolling. Keys which normally move point by line or 1861 for pager-like scrolling. Keys which normally move point by line or
2157 paragraph will scroll the buffer by the respective amount of lines 1862 paragraph will scroll the buffer by the respective amount of lines
2158 instead and point will be kept vertically fixed relative to window 1863 instead and point will be kept vertically fixed relative to window
2159 boundaries during scrolling. 1864 boundaries during scrolling.
2160 1865
2161 +++
2162 ** The file t-mouse.el is now part of Emacs and provides access to mouse 1866 ** The file t-mouse.el is now part of Emacs and provides access to mouse
2163 events from the console. It still requires gpm to work but has been updated 1867 events from the console. It still requires gpm to work but has been updated
2164 for Emacs 22. In particular, the mode-line is now position sensitive. 1868 for Emacs 22. In particular, the mode-line is now position sensitive.
2165 1869
2166 * Changes in Specialized Modes and Packages in Emacs 22.1: 1870 * Changes in Specialized Modes and Packages in Emacs 22.1:
2167 1871
2168 ** Changes in Shell Mode 1872 ** Changes in Shell Mode
2169 1873
2170 ---
2171 *** Shell output normally scrolls so that the input line is at the 1874 *** Shell output normally scrolls so that the input line is at the
2172 bottom of the window -- thus showing the maximum possible text. (This 1875 bottom of the window -- thus showing the maximum possible text. (This
2173 is similar to the way sequential output to a terminal works.) 1876 is similar to the way sequential output to a terminal works.)
2174 1877
2175 ** Changes in Dired 1878 ** Changes in Dired
2176 1879
2177 +++ 1880 *** Bindings for Image-Dired added
2178 *** Bindings for Tumme added
2179 Several new keybindings, all starting with the C-t prefix, have been 1881 Several new keybindings, all starting with the C-t prefix, have been
2180 added to Dired. They are all bound to commands in Tumme. As a starting 1882 added to Dired. They are all bound to commands in Image-Dired. As a
2181 point, mark some image files in a dired buffer and do C-t d to display 1883 starting point, mark some image files in a dired buffer and do C-t d
2182 thumbnails of them in a separate buffer. 1884 to display thumbnails of them in a separate buffer.
2183 1885
2184 ** Changes in Hi Lock 1886 ** Changes in Hi Lock
2185 1887
2186 +++
2187 *** hi-lock-mode now only affects a single buffer, and a new function 1888 *** hi-lock-mode now only affects a single buffer, and a new function
2188 `global-hi-lock-mode' enables Hi Lock in all buffers. By default, if 1889 `global-hi-lock-mode' enables Hi Lock in all buffers. By default, if
2189 hi-lock-mode is used in what appears to be the initialization file, a 1890 hi-lock-mode is used in what appears to be the initialization file, a
2190 warning message suggests to use global-hi-lock-mode instead. However, 1891 warning message suggests to use global-hi-lock-mode instead. However,
2191 if the new variable `hi-lock-archaic-interface-deduce' is non-nil, 1892 if the new variable `hi-lock-archaic-interface-deduce' is non-nil,
2192 using hi-lock-mode in an initialization file will turn on Hi Lock in all 1893 using hi-lock-mode in an initialization file will turn on Hi Lock in all
2193 buffers and no warning will be issued (for compatibility with the 1894 buffers and no warning will be issued (for compatibility with the
2194 behavior in older versions of Emacs). 1895 behavior in older versions of Emacs).
2195 1896
2196 ---
2197 ** Changes in Allout 1897 ** Changes in Allout
2198 1898
2199 *** Some previously rough topic-header format edge cases are reconciled. 1899 *** Some previously rough topic-header format edge cases are reconciled.
2200 Level 1 topics use the mode's comment format, and lines starting with the 1900 Level 1 topics use the mode's comment format, and lines starting with the
2201 asterisk - for instance, the comment close of some languages (eg, c's "*/" 1901 asterisk - for instance, the comment close of some languages (eg, c's "*/"
2202 or mathematica's "*)") - at the beginning of line are no longer are 1902 or mathematica's "*)") - at the beginning of line are no longer are
2203 interpreted as level 1 topics in those modes. 1903 interpreted as level 1 topics in those modes.
2204 1904
2205 *** Many or most commonly occuring "accidental" topics are disqualified. 1905 *** Many or most commonly occurring "accidental" topics are disqualified.
2206 Text in item bodies that looks like a low-depth topic is no longer mistaken 1906 Text in item bodies that looks like a low-depth topic is no longer mistaken
2207 for one unless its first offspring (or that of its next sibling with 1907 for one unless its first offspring (or that of its next sibling with
2208 offspring) is only one level deeper. 1908 offspring) is only one level deeper.
2209 1909
2210 For example, pasting some text with a bunch of leading asterisks into a 1910 For example, pasting some text with a bunch of leading asterisks into a
2290 have them automatically run at the end of module load by customizing 1990 have them automatically run at the end of module load by customizing
2291 the option `allout-run-unit-tests-on-load'. 1991 the option `allout-run-unit-tests-on-load'.
2292 - many, many other, more minor tweaks, fixes, and refinements. 1992 - many, many other, more minor tweaks, fixes, and refinements.
2293 - version number incremented to 2.2 1993 - version number incremented to 2.2
2294 1994
2295 +++ 1995 ** The variable `woman-topic-at-point' is renamed
2296 ** The variable `woman-topic-at-point' was renamed
2297 to `woman-use-topic-at-point' and behaves differently: if this 1996 to `woman-use-topic-at-point' and behaves differently: if this
2298 variable is non-nil, the `woman' command uses the word at point 1997 variable is non-nil, the `woman' command uses the word at point
2299 automatically, without asking for a confirmation. Otherwise, the word 1998 automatically, without asking for a confirmation. Otherwise, the word
2300 at point is suggested as default, but not inserted at the prompt. 1999 at point is suggested as default, but not inserted at the prompt.
2301 2000
2302 ---
2303 ** Changes to cmuscheme 2001 ** Changes to cmuscheme
2304 2002
2305 *** Emacs now offers to start Scheme if the user tries to 2003 *** Emacs now offers to start Scheme if the user tries to
2306 evaluate a Scheme expression but no Scheme subprocess is running. 2004 evaluate a Scheme expression but no Scheme subprocess is running.
2307 2005
2313 procedure calls (`scheme-trace-procedure') and to expand syntactic forms 2011 procedure calls (`scheme-trace-procedure') and to expand syntactic forms
2314 (`scheme-expand-current-form'). The commands actually sent to the Scheme 2012 (`scheme-expand-current-form'). The commands actually sent to the Scheme
2315 subprocess are controlled by the user options `scheme-trace-command', 2013 subprocess are controlled by the user options `scheme-trace-command',
2316 `scheme-untrace-command' and `scheme-expand-current-form'. 2014 `scheme-untrace-command' and `scheme-expand-current-form'.
2317 2015
2318 ---
2319 ** Changes in Makefile mode 2016 ** Changes in Makefile mode
2320 2017
2321 *** Makefile mode has submodes for automake, gmake, makepp, BSD make and imake. 2018 *** Makefile mode has submodes for automake, gmake, makepp, BSD make and imake.
2322 2019
2323 The former two couldn't be differentiated before, and the latter three 2020 The former two couldn't be differentiated before, and the latter three
2326 2023
2327 *** The variable `makefile-query-one-target-method' has been renamed 2024 *** The variable `makefile-query-one-target-method' has been renamed
2328 to `makefile-query-one-target-method-function'. The old name is still 2025 to `makefile-query-one-target-method-function'. The old name is still
2329 available as alias. 2026 available as alias.
2330 2027
2331 +++
2332 ** In Outline mode, `hide-body' no longer hides lines at the top 2028 ** In Outline mode, `hide-body' no longer hides lines at the top
2333 of the file that precede the first header line. 2029 of the file that precede the first header line.
2334 2030
2335 +++
2336 ** Telnet now prompts you for a port number with C-u M-x telnet. 2031 ** Telnet now prompts you for a port number with C-u M-x telnet.
2337 2032
2338 ---
2339 ** The terminal emulation code in term.el has been improved; it can 2033 ** The terminal emulation code in term.el has been improved; it can
2340 run most curses applications now. 2034 run most curses applications now.
2341 2035
2342 +++
2343 ** M-x diff uses Diff mode instead of Compilation mode. 2036 ** M-x diff uses Diff mode instead of Compilation mode.
2344 2037
2345 +++
2346 ** Diff mode key bindings changed. 2038 ** Diff mode key bindings changed.
2347 2039
2348 These are the new bindings: 2040 These are the new bindings:
2349 2041
2350 C-c C-e diff-ediff-patch (old M-A) 2042 C-c C-e diff-ediff-patch (old M-A)
2355 2047
2356 To convert unified to context format, use C-u C-c C-u. 2048 To convert unified to context format, use C-u C-c C-u.
2357 In addition, C-c C-u now operates on the region 2049 In addition, C-c C-u now operates on the region
2358 in Transient Mark mode when the mark is active. 2050 in Transient Mark mode when the mark is active.
2359 2051
2360 +++
2361 ** You can now customize `fill-nobreak-predicate' to control where 2052 ** You can now customize `fill-nobreak-predicate' to control where
2362 filling can break lines. The value is now normally a list of 2053 filling can break lines. The value is now normally a list of
2363 functions, but it can also be a single function, for compatibility. 2054 functions, but it can also be a single function, for compatibility.
2364 2055
2365 Emacs provide two predicates, `fill-single-word-nobreak-p' and 2056 Emacs provide two predicates, `fill-single-word-nobreak-p' and
2366 `fill-french-nobreak-p', for use as the value of 2057 `fill-french-nobreak-p', for use as the value of
2367 `fill-nobreak-predicate'. 2058 `fill-nobreak-predicate'.
2368 2059
2369 ---
2370 ** M-x view-file and commands that use it now avoid interfering 2060 ** M-x view-file and commands that use it now avoid interfering
2371 with special modes such as Tar mode. 2061 with special modes such as Tar mode.
2372 2062
2373 ---
2374 ** Commands `winner-redo' and `winner-undo', from winner.el, are now 2063 ** Commands `winner-redo' and `winner-undo', from winner.el, are now
2375 bound to C-c <left> and C-c <right>, respectively. This is an 2064 bound to C-c <left> and C-c <right>, respectively. This is an
2376 incompatible change. 2065 incompatible change.
2377 2066
2378 ---
2379 ** `global-whitespace-mode' is a new alias for `whitespace-global-mode'. 2067 ** `global-whitespace-mode' is a new alias for `whitespace-global-mode'.
2380 2068
2381 +++
2382 ** M-x compare-windows now can automatically skip non-matching text to 2069 ** M-x compare-windows now can automatically skip non-matching text to
2383 resync points in both windows. 2070 resync points in both windows.
2384 2071
2385 +++
2386 ** New user option `add-log-always-start-new-record'. 2072 ** New user option `add-log-always-start-new-record'.
2387 2073
2388 When this option is enabled, M-x add-change-log-entry always 2074 When this option is enabled, M-x add-change-log-entry always
2389 starts a new record regardless of when the last record is. 2075 starts a new record regardless of when the last record is.
2390 2076
2391 ---
2392 ** PO translation files are decoded according to their MIME headers 2077 ** PO translation files are decoded according to their MIME headers
2393 when Emacs visits them. 2078 when Emacs visits them.
2394 2079
2395 ** Info mode changes: 2080 ** Info mode changes:
2396 2081
2397 +++
2398 *** A numeric prefix argument of `info' selects an Info buffer 2082 *** A numeric prefix argument of `info' selects an Info buffer
2399 with the number appended to the `*info*' buffer name (e.g. "*info*<2>"). 2083 with the number appended to the `*info*' buffer name (e.g. "*info*<2>").
2400 2084
2401 +++
2402 *** isearch in Info uses Info-search and searches through multiple nodes. 2085 *** isearch in Info uses Info-search and searches through multiple nodes.
2403 2086
2404 Before leaving the initial Info node isearch fails once with the error 2087 Before leaving the initial Info node isearch fails once with the error
2405 message [initial node], and with subsequent C-s/C-r continues through 2088 message [initial node], and with subsequent C-s/C-r continues through
2406 other nodes. When isearch fails for the rest of the manual, it wraps 2089 other nodes. When isearch fails for the rest of the manual, it wraps
2407 around the whole manual to the top/final node. The user option 2090 around the whole manual to the top/final node. The user option
2408 `Info-isearch-search' controls whether to use Info-search for isearch, 2091 `Info-isearch-search' controls whether to use Info-search for isearch,
2409 or the default isearch search function that wraps around the current 2092 or the default isearch search function that wraps around the current
2410 Info node. 2093 Info node.
2411 2094
2412 ---
2413 *** New search commands: `Info-search-case-sensitively' (bound to S), 2095 *** New search commands: `Info-search-case-sensitively' (bound to S),
2414 `Info-search-backward', and `Info-search-next' which repeats the last 2096 `Info-search-backward', and `Info-search-next' which repeats the last
2415 search without prompting for a new search string. 2097 search without prompting for a new search string.
2416 2098
2417 +++
2418 *** New command `Info-history-forward' (bound to r and new toolbar icon) 2099 *** New command `Info-history-forward' (bound to r and new toolbar icon)
2419 moves forward in history to the node you returned from after using 2100 moves forward in history to the node you returned from after using
2420 `Info-history-back' (renamed from `Info-last'). 2101 `Info-history-back' (renamed from `Info-last').
2421 2102
2422 ---
2423 *** New command `Info-history' (bound to L) displays a menu of visited nodes. 2103 *** New command `Info-history' (bound to L) displays a menu of visited nodes.
2424 2104
2425 ---
2426 *** New command `Info-toc' (bound to T) creates a node with table of contents 2105 *** New command `Info-toc' (bound to T) creates a node with table of contents
2427 from the tree structure of menus of the current Info file. 2106 from the tree structure of menus of the current Info file.
2428 2107
2429 +++
2430 *** New command `info-apropos' searches the indices of the known 2108 *** New command `info-apropos' searches the indices of the known
2431 Info files on your system for a string, and builds a menu of the 2109 Info files on your system for a string, and builds a menu of the
2432 possible matches. 2110 possible matches.
2433 2111
2434 ---
2435 *** New command `Info-copy-current-node-name' (bound to w) copies 2112 *** New command `Info-copy-current-node-name' (bound to w) copies
2436 the current Info node name into the kill ring. With a zero prefix 2113 the current Info node name into the kill ring. With a zero prefix
2437 arg, puts the node name inside the `info' function call. 2114 arg, puts the node name inside the `info' function call.
2438 2115
2439 +++
2440 *** New face `info-xref-visited' distinguishes visited nodes from unvisited 2116 *** New face `info-xref-visited' distinguishes visited nodes from unvisited
2441 and a new option `Info-fontify-visited-nodes' to control this. 2117 and a new option `Info-fontify-visited-nodes' to control this.
2442 2118
2443 ---
2444 *** http and ftp links in Info are now operational: they look like cross 2119 *** http and ftp links in Info are now operational: they look like cross
2445 references and following them calls `browse-url'. 2120 references and following them calls `browse-url'.
2446 2121
2447 +++
2448 *** Info now hides node names in menus and cross references by default. 2122 *** Info now hides node names in menus and cross references by default.
2449 2123
2450 If you prefer the old behavior, you can set the new user option 2124 If you prefer the old behavior, you can set the new user option
2451 `Info-hide-note-references' to nil. 2125 `Info-hide-note-references' to nil.
2452 2126
2453 ---
2454 *** Images in Info pages are supported. 2127 *** Images in Info pages are supported.
2455 2128
2456 Info pages show embedded images, in Emacs frames with image support. 2129 Info pages show embedded images, in Emacs frames with image support.
2457 Info documentation that includes images, processed with makeinfo 2130 Info documentation that includes images, processed with makeinfo
2458 version 4.7 or newer, compiles to Info pages with embedded images. 2131 version 4.7 or newer, compiles to Info pages with embedded images.
2459 2132
2460 +++
2461 *** The default value for `Info-scroll-prefer-subnodes' is now nil. 2133 *** The default value for `Info-scroll-prefer-subnodes' is now nil.
2462 2134
2463 ---
2464 *** `Info-index' offers completion. 2135 *** `Info-index' offers completion.
2465 2136
2466 ** Lisp mode changes: 2137 ** Lisp mode changes:
2467 2138
2468 ---
2469 *** Lisp mode now uses `font-lock-doc-face' for doc strings. 2139 *** Lisp mode now uses `font-lock-doc-face' for doc strings.
2470 2140
2471 +++
2472 *** C-u C-M-q in Emacs Lisp mode pretty-prints the list after point. 2141 *** C-u C-M-q in Emacs Lisp mode pretty-prints the list after point.
2473 2142
2474 *** New features in evaluation commands 2143 *** New features in evaluation commands
2475 2144
2476 +++
2477 **** The function `eval-defun' (C-M-x) called on defface reinitializes 2145 **** The function `eval-defun' (C-M-x) called on defface reinitializes
2478 the face to the value specified in the defface expression. 2146 the face to the value specified in the defface expression.
2479 2147
2480 +++
2481 **** Typing C-x C-e twice prints the value of the integer result 2148 **** Typing C-x C-e twice prints the value of the integer result
2482 in additional formats (octal, hexadecimal, character) specified 2149 in additional formats (octal, hexadecimal, character) specified
2483 by the new function `eval-expression-print-format'. The same 2150 by the new function `eval-expression-print-format'. The same
2484 function also defines the result format for `eval-expression' (M-:), 2151 function also defines the result format for `eval-expression' (M-:),
2485 `eval-print-last-sexp' (C-j) and some edebug evaluation functions. 2152 `eval-print-last-sexp' (C-j) and some edebug evaluation functions.
2486 2153
2487 +++
2488 ** CC mode changes. 2154 ** CC mode changes.
2489 2155
2490 *** The CC Mode manual has been extensively revised. 2156 *** The CC Mode manual has been extensively revised.
2491 The information about using CC Mode has been separated from the larger 2157 The information about using CC Mode has been separated from the larger
2492 and more difficult chapters about configuration. 2158 and more difficult chapters about configuration.
2810 2476
2811 *** Added toggle for syntactic indentation. 2477 *** Added toggle for syntactic indentation.
2812 The function `c-toggle-syntactic-indentation' can be used to toggle 2478 The function `c-toggle-syntactic-indentation' can be used to toggle
2813 syntactic indentation. 2479 syntactic indentation.
2814 2480
2815 ---
2816 ** In sh-script, a continuation line is only indented if the backslash was 2481 ** In sh-script, a continuation line is only indented if the backslash was
2817 preceded by a SPC or a TAB. 2482 preceded by a SPC or a TAB.
2818 2483
2819 ---
2820 ** Perl mode has a new variable `perl-indent-continued-arguments'. 2484 ** Perl mode has a new variable `perl-indent-continued-arguments'.
2821 2485
2822 ---
2823 ** The old Octave mode bindings C-c f and C-c i have been changed 2486 ** The old Octave mode bindings C-c f and C-c i have been changed
2824 to C-c C-f and C-c C-i. The C-c C-i subcommands now have duplicate 2487 to C-c C-f and C-c C-i. The C-c C-i subcommands now have duplicate
2825 bindings on control characters--thus, C-c C-i C-b is the same as 2488 bindings on control characters--thus, C-c C-i C-b is the same as
2826 C-c C-i b, and so on. 2489 C-c C-i b, and so on.
2827 2490
2828 ** Fortran mode changes: 2491 ** Fortran mode changes:
2829 2492
2830 ---
2831 *** Fortran mode does more font-locking by default. Use level 3 2493 *** Fortran mode does more font-locking by default. Use level 3
2832 highlighting for the old default. 2494 highlighting for the old default.
2833 2495
2834 +++
2835 *** Fortran mode has a new variable `fortran-directive-re'. 2496 *** Fortran mode has a new variable `fortran-directive-re'.
2836 Adapt this to match the format of any compiler directives you use. 2497 Adapt this to match the format of any compiler directives you use.
2837 Lines that match are never indented, and are given distinctive font-locking. 2498 Lines that match are never indented, and are given distinctive font-locking.
2838 2499
2839 +++
2840 *** F90 mode and Fortran mode have new navigation commands 2500 *** F90 mode and Fortran mode have new navigation commands
2841 `f90-end-of-block', `f90-beginning-of-block', `f90-next-block', 2501 `f90-end-of-block', `f90-beginning-of-block', `f90-next-block',
2842 `f90-previous-block', `fortran-end-of-block', 2502 `f90-previous-block', `fortran-end-of-block',
2843 `fortran-beginning-of-block'. 2503 `fortran-beginning-of-block'.
2844 2504
2845 ---
2846 *** F90 mode and Fortran mode have support for `hs-minor-mode' (hideshow). 2505 *** F90 mode and Fortran mode have support for `hs-minor-mode' (hideshow).
2847 It cannot deal with every code format, but ought to handle a sizeable 2506 It cannot deal with every code format, but ought to handle a sizeable
2848 majority. 2507 majority.
2849 2508
2850 ---
2851 *** The new function `f90-backslash-not-special' can be used to change 2509 *** The new function `f90-backslash-not-special' can be used to change
2852 the syntax of backslashes in F90 buffers. 2510 the syntax of backslashes in F90 buffers.
2853 2511
2854 ---
2855 ** Reftex mode changes 2512 ** Reftex mode changes
2856 2513
2857 +++
2858 *** Changes to RefTeX's table of contents 2514 *** Changes to RefTeX's table of contents
2859 2515
2860 The new command keys "<" and ">" in the TOC buffer promote/demote the 2516 The new command keys "<" and ">" in the TOC buffer promote/demote the
2861 section at point or all sections in the current region, with full 2517 section at point or all sections in the current region, with full
2862 support for multifile documents. 2518 support for multifile documents.
2877 key `M-%'. 2533 key `M-%'.
2878 2534
2879 The new command `reftex-goto-label' jumps directly to a label 2535 The new command `reftex-goto-label' jumps directly to a label
2880 location. 2536 location.
2881 2537
2882 +++
2883 *** Changes related to citations and BibTeX database files 2538 *** Changes related to citations and BibTeX database files
2884 2539
2885 Commands that insert a citation now prompt for optional arguments when 2540 Commands that insert a citation now prompt for optional arguments when
2886 called with a prefix argument. Related new options are 2541 called with a prefix argument. Related new options are
2887 `reftex-cite-prompt-optional-args' and `reftex-cite-cleanup-optional-args'. 2542 `reftex-cite-prompt-optional-args' and `reftex-cite-cleanup-optional-args'.
2900 The macros which specify the bibliography file (like \bibliography) 2555 The macros which specify the bibliography file (like \bibliography)
2901 can be configured with the new option `reftex-bibliography-commands'. 2556 can be configured with the new option `reftex-bibliography-commands'.
2902 2557
2903 Support for jurabib has been added. 2558 Support for jurabib has been added.
2904 2559
2905 +++
2906 *** Global index matched may be verified with a user function 2560 *** Global index matched may be verified with a user function
2907 2561
2908 During global indexing, a user function can verify an index match. 2562 During global indexing, a user function can verify an index match.
2909 See new option `reftex-index-verify-function'. 2563 See new option `reftex-index-verify-function'.
2910 2564
2911 +++
2912 *** Parsing documents with many labels can be sped up. 2565 *** Parsing documents with many labels can be sped up.
2913 2566
2914 Operating in a document with thousands of labels can be sped up 2567 Operating in a document with thousands of labels can be sped up
2915 considerably by allowing RefTeX to derive the type of a label directly 2568 considerably by allowing RefTeX to derive the type of a label directly
2916 from the label prefix like `eq:' or `fig:'. The option 2569 from the label prefix like `eq:' or `fig:'. The option
2917 `reftex-trust-label-prefix' needs to be configured in order to enable 2570 `reftex-trust-label-prefix' needs to be configured in order to enable
2918 this feature. While the speed-up is significant, this may reduce the 2571 this feature. While the speed-up is significant, this may reduce the
2919 quality of the context offered by RefTeX to describe a label. 2572 quality of the context offered by RefTeX to describe a label.
2920 2573
2921 +++
2922 *** Miscellaneous changes 2574 *** Miscellaneous changes
2923 2575
2924 The macros which input a file in LaTeX (like \input, \include) can be 2576 The macros which input a file in LaTeX (like \input, \include) can be
2925 configured in the new option `reftex-include-file-commands'. 2577 configured in the new option `reftex-include-file-commands'.
2926 2578
2927 RefTeX supports global incremental search. 2579 RefTeX supports global incremental search.
2928 2580
2929 +++
2930 ** Prolog mode has a new variable `prolog-font-lock-keywords' 2581 ** Prolog mode has a new variable `prolog-font-lock-keywords'
2931 to support use of font-lock. 2582 to support use of font-lock.
2932 2583
2933 ** HTML/SGML changes: 2584 ** HTML/SGML changes:
2934 2585
2935 ---
2936 *** Emacs now tries to set up buffer coding systems for HTML/XML files 2586 *** Emacs now tries to set up buffer coding systems for HTML/XML files
2937 automatically. 2587 automatically.
2938 2588
2939 +++
2940 *** SGML mode has indentation and supports XML syntax. 2589 *** SGML mode has indentation and supports XML syntax.
2941 The new variable `sgml-xml-mode' tells SGML mode to use XML syntax. 2590 The new variable `sgml-xml-mode' tells SGML mode to use XML syntax.
2942 When this option is enabled, SGML tags are inserted in XML style, 2591 When this option is enabled, SGML tags are inserted in XML style,
2943 i.e., there is always a closing tag. 2592 i.e., there is always a closing tag.
2944 By default, its setting is inferred on a buffer-by-buffer basis 2593 By default, its setting is inferred on a buffer-by-buffer basis
2945 from the file name or buffer contents. 2594 from the file name or buffer contents.
2946 2595
2947 ---
2948 *** The variable `sgml-transformation' has been renamed to 2596 *** The variable `sgml-transformation' has been renamed to
2949 `sgml-transformation-function'. The old name is still available as 2597 `sgml-transformation-function'. The old name is still available as
2950 alias. 2598 alias.
2951 2599
2952 +++
2953 *** `xml-mode' is now an alias for `sgml-mode', which has XML support. 2600 *** `xml-mode' is now an alias for `sgml-mode', which has XML support.
2954 2601
2955 ** TeX modes: 2602 ** TeX modes:
2956 2603
2957 +++
2958 *** C-c C-c prompts for a command to run, and tries to offer a good default. 2604 *** C-c C-c prompts for a command to run, and tries to offer a good default.
2959 2605
2960 +++
2961 *** The user option `tex-start-options-string' has been replaced 2606 *** The user option `tex-start-options-string' has been replaced
2962 by two new user options: `tex-start-options', which should hold 2607 by two new user options: `tex-start-options', which should hold
2963 command-line options to feed to TeX, and `tex-start-commands' which should hold 2608 command-line options to feed to TeX, and `tex-start-commands' which should hold
2964 TeX commands to use at startup. 2609 TeX commands to use at startup.
2965 2610
2966 ---
2967 *** verbatim environments are now highlighted in courier by font-lock 2611 *** verbatim environments are now highlighted in courier by font-lock
2968 and super/sub-scripts are made into super/sub-scripts. 2612 and super/sub-scripts are made into super/sub-scripts.
2969 2613
2970 +++
2971 *** New major mode Doctex mode, for *.dtx files. 2614 *** New major mode Doctex mode, for *.dtx files.
2972 2615
2973 ---
2974 ** BibTeX mode: 2616 ** BibTeX mode:
2975 2617
2976 *** The new command `bibtex-url' browses a URL for the BibTeX entry at 2618 *** The new command `bibtex-url' browses a URL for the BibTeX entry at
2977 point (bound to C-c C-l and mouse-2, RET on clickable fields). 2619 point (bound to C-c C-l and mouse-2, RET on clickable fields).
2978 2620
3025 `bibtex-autokey-titleword-case-convert' have been renamed to 2667 `bibtex-autokey-titleword-case-convert' have been renamed to
3026 `bibtex-autokey-name-case-convert-function' and 2668 `bibtex-autokey-name-case-convert-function' and
3027 `bibtex-autokey-titleword-case-convert-function'. The old names are 2669 `bibtex-autokey-titleword-case-convert-function'. The old names are
3028 still available as aliases. 2670 still available as aliases.
3029 2671
3030 +++
3031 ** In Artist mode the variable `artist-text-renderer' has been 2672 ** In Artist mode the variable `artist-text-renderer' has been
3032 renamed to `artist-text-renderer-function'. The old name is still 2673 renamed to `artist-text-renderer-function'. The old name is still
3033 available as alias. 2674 available as alias.
3034 2675
3035 +++
3036 ** In Enriched mode, `set-left-margin' and `set-right-margin' are now 2676 ** In Enriched mode, `set-left-margin' and `set-right-margin' are now
3037 by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l' 2677 by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l'
3038 and `C-c C-r'. 2678 and `C-c C-r'.
3039 2679
3040 ** GUD changes: 2680 ** GUD changes:
3041 2681
3042 +++
3043 *** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program 2682 *** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program
3044 counter to the specified source line (the one where point is). 2683 counter to the specified source line (the one where point is).
3045 2684
3046 ---
3047 *** GUD mode has its own tool bar for controlling execution of the inferior 2685 *** GUD mode has its own tool bar for controlling execution of the inferior
3048 and other common debugger commands. 2686 and other common debugger commands.
3049 2687
3050 +++
3051 *** The new package gdb-ui.el provides an enhanced graphical interface to 2688 *** The new package gdb-ui.el provides an enhanced graphical interface to
3052 GDB. You can interact with GDB through the GUD buffer in the usual way, but 2689 GDB. You can interact with GDB through the GUD buffer in the usual way, but
3053 there are also further buffers which control the execution and describe the 2690 there are also further buffers which control the execution and describe the
3054 state of your program. It can separate the input/output of your program from 2691 state of your program. It can separate the input/output of your program from
3055 that of GDB and watches expressions in the speedbar. It also uses features of 2692 that of GDB and watches expressions in the speedbar. It also uses features of
3057 breakpoints. 2694 breakpoints.
3058 2695
3059 To use this package just type M-x gdb. See the Emacs manual if you want the 2696 To use this package just type M-x gdb. See the Emacs manual if you want the
3060 old behaviour. 2697 old behaviour.
3061 2698
3062 ---
3063 *** The variable tooltip-gud-tips-p has been removed. GUD tooltips can now be 2699 *** The variable tooltip-gud-tips-p has been removed. GUD tooltips can now be
3064 toggled independently of normal tooltips with the minor mode 2700 toggled independently of normal tooltips with the minor mode
3065 `gud-tooltip-mode'. 2701 `gud-tooltip-mode'.
3066 2702
3067 +++
3068 *** In graphical mode, with a C program, GUD Tooltips have been extended to 2703 *** In graphical mode, with a C program, GUD Tooltips have been extended to
3069 display the #define directive associated with an identifier when program is 2704 display the #define directive associated with an identifier when program is
3070 not executing. 2705 not executing.
3071 2706
3072 ---
3073 ** GUD mode improvements for jdb: 2707 ** GUD mode improvements for jdb:
3074 2708
3075 *** Search for source files using jdb classpath and class information. 2709 *** Search for source files using jdb classpath and class information.
3076 Fast startup since there is no need to scan all source files up front. 2710 Fast startup since there is no need to scan all source files up front.
3077 There is also no need to create and maintain lists of source 2711 There is also no need to create and maintain lists of source
3112 2746
3113 **** Do not allow debugger output history variable to grow without bounds. 2747 **** Do not allow debugger output history variable to grow without bounds.
3114 2748
3115 ** Auto-Revert changes: 2749 ** Auto-Revert changes:
3116 2750
3117 +++
3118 *** You can now use Auto Revert mode to `tail' a file. 2751 *** You can now use Auto Revert mode to `tail' a file.
3119 2752
3120 If point is at the end of a file buffer before reverting, Auto Revert 2753 If point is at the end of a file buffer before reverting, Auto Revert
3121 mode keeps it at the end after reverting. Similarly if point is 2754 mode keeps it at the end after reverting. Similarly if point is
3122 displayed at the end of a file buffer in any window, it stays at 2755 displayed at the end of a file buffer in any window, it stays at
3128 If you are sure that the file will only change by growing at the end, 2761 If you are sure that the file will only change by growing at the end,
3129 then you can tail the file more efficiently by using the new minor 2762 then you can tail the file more efficiently by using the new minor
3130 mode Auto Revert Tail mode. The function `auto-revert-tail-mode' 2763 mode Auto Revert Tail mode. The function `auto-revert-tail-mode'
3131 toggles this mode. 2764 toggles this mode.
3132 2765
3133 +++
3134 *** Auto Revert mode is now more careful to avoid excessive reverts and 2766 *** Auto Revert mode is now more careful to avoid excessive reverts and
3135 other potential problems when deciding which non-file buffers to 2767 other potential problems when deciding which non-file buffers to
3136 revert. This matters especially if Global Auto Revert mode is enabled 2768 revert. This matters especially if Global Auto Revert mode is enabled
3137 and `global-auto-revert-non-file-buffers' is non-nil. Auto Revert 2769 and `global-auto-revert-non-file-buffers' is non-nil. Auto Revert
3138 mode only reverts a non-file buffer if the buffer has a non-nil 2770 mode only reverts a non-file buffer if the buffer has a non-nil
3139 `revert-buffer-function' and a non-nil `buffer-stale-function', which 2771 `revert-buffer-function' and a non-nil `buffer-stale-function', which
3140 decides whether the buffer should be reverted. Currently, this means 2772 decides whether the buffer should be reverted. Currently, this means
3141 that auto reverting works for Dired buffers (although this may not 2773 that auto reverting works for Dired buffers (although this may not
3142 work properly on all operating systems) and for the Buffer Menu. 2774 work properly on all operating systems) and for the Buffer Menu.
3143 2775
3144 +++
3145 *** If the new user option `auto-revert-check-vc-info' is non-nil, Auto 2776 *** If the new user option `auto-revert-check-vc-info' is non-nil, Auto
3146 Revert mode reliably updates version control info (such as the version 2777 Revert mode reliably updates version control info (such as the version
3147 control number in the mode line), in all version controlled buffers in 2778 control number in the mode line), in all version controlled buffers in
3148 which it is active. If the option is nil, the default, then this info 2779 which it is active. If the option is nil, the default, then this info
3149 only gets updated whenever the buffer gets reverted. 2780 only gets updated whenever the buffer gets reverted.
3150 2781
3151 ---
3152 ** recentf changes. 2782 ** recentf changes.
3153 2783
3154 The recent file list is now automatically cleaned up when recentf mode is 2784 The recent file list is now automatically cleaned up when recentf mode is
3155 enabled. The new option `recentf-auto-cleanup' controls when to do 2785 enabled. The new option `recentf-auto-cleanup' controls when to do
3156 automatic cleanup. 2786 automatic cleanup.
3171 2801
3172 To follow naming convention, `recentf-menu-append-commands-flag' 2802 To follow naming convention, `recentf-menu-append-commands-flag'
3173 replaces the misnamed option `recentf-menu-append-commands-p'. The 2803 replaces the misnamed option `recentf-menu-append-commands-p'. The
3174 old name remains available as alias, but has been marked obsolete. 2804 old name remains available as alias, but has been marked obsolete.
3175 2805
3176 +++
3177 ** Desktop package 2806 ** Desktop package
3178 2807
3179 +++
3180 *** Desktop saving is now a minor mode, `desktop-save-mode'. 2808 *** Desktop saving is now a minor mode, `desktop-save-mode'.
3181 2809
3182 +++
3183 *** The variable `desktop-enable' is obsolete. 2810 *** The variable `desktop-enable' is obsolete.
3184 2811
3185 Customize `desktop-save-mode' to enable desktop saving. 2812 Customize `desktop-save-mode' to enable desktop saving.
3186 2813
3187 ---
3188 *** Buffers are saved in the desktop file in the same order as that in the 2814 *** Buffers are saved in the desktop file in the same order as that in the
3189 buffer list. 2815 buffer list.
3190 2816
3191 +++
3192 *** The desktop package can be customized to restore only some buffers 2817 *** The desktop package can be customized to restore only some buffers
3193 immediately, remaining buffers are restored lazily (when Emacs is 2818 immediately, remaining buffers are restored lazily (when Emacs is
3194 idle). 2819 idle).
3195 2820
3196 +++
3197 *** New commands: 2821 *** New commands:
3198 - desktop-revert reverts to the last loaded desktop. 2822 - desktop-revert reverts to the last loaded desktop.
3199 - desktop-change-dir kills current desktop and loads a new. 2823 - desktop-change-dir kills current desktop and loads a new.
3200 - desktop-save-in-desktop-dir saves desktop in the directory from which 2824 - desktop-save-in-desktop-dir saves desktop in the directory from which
3201 it was loaded. 2825 it was loaded.
3202 - desktop-lazy-complete runs the desktop load to completion. 2826 - desktop-lazy-complete runs the desktop load to completion.
3203 - desktop-lazy-abort aborts lazy loading of the desktop. 2827 - desktop-lazy-abort aborts lazy loading of the desktop.
3204 2828
3205 ---
3206 *** New customizable variables: 2829 *** New customizable variables:
3207 - desktop-save. Determines whether the desktop should be saved when it is 2830 - desktop-save. Determines whether the desktop should be saved when it is
3208 killed. 2831 killed.
3209 - desktop-file-name-format. Format in which desktop file names should be saved. 2832 - desktop-file-name-format. Format in which desktop file names should be saved.
3210 - desktop-path. List of directories in which to lookup the desktop file. 2833 - desktop-path. List of directories in which to lookup the desktop file.
3215 - desktop-restore-eager. Number of buffers to restore immediately. Remaining buffers are 2838 - desktop-restore-eager. Number of buffers to restore immediately. Remaining buffers are
3216 restored lazily (when Emacs is idle). 2839 restored lazily (when Emacs is idle).
3217 - desktop-lazy-verbose. Verbose reporting of lazily created buffers. 2840 - desktop-lazy-verbose. Verbose reporting of lazily created buffers.
3218 - desktop-lazy-idle-delay. Idle delay before starting to create buffers. 2841 - desktop-lazy-idle-delay. Idle delay before starting to create buffers.
3219 2842
3220 +++
3221 *** New command line option --no-desktop 2843 *** New command line option --no-desktop
3222 2844
3223 ---
3224 *** New hooks: 2845 *** New hooks:
3225 - desktop-after-read-hook run after a desktop is loaded. 2846 - desktop-after-read-hook run after a desktop is loaded.
3226 - desktop-no-desktop-file-hook run when no desktop file is found. 2847 - desktop-no-desktop-file-hook run when no desktop file is found.
3227 2848
3228 ---
3229 ** The saveplace.el package now filters out unreadable files. 2849 ** The saveplace.el package now filters out unreadable files.
3230 2850
3231 When you exit Emacs, the saved positions in visited files no longer 2851 When you exit Emacs, the saved positions in visited files no longer
3232 include files that aren't readable, e.g. files that don't exist. 2852 include files that aren't readable, e.g. files that don't exist.
3233 Customize the new option `save-place-forget-unreadable-files' to nil 2853 Customize the new option `save-place-forget-unreadable-files' to nil
3235 and `save-place-skip-check-regexp' allow further fine-tuning of this 2855 and `save-place-skip-check-regexp' allow further fine-tuning of this
3236 feature. 2856 feature.
3237 2857
3238 ** EDiff changes. 2858 ** EDiff changes.
3239 2859
3240 +++
3241 *** When comparing directories. 2860 *** When comparing directories.
3242 Typing D brings up a buffer that lists the differences between the contents of 2861 Typing D brings up a buffer that lists the differences between the contents of
3243 directories. Now it is possible to use this buffer to copy the missing files 2862 directories. Now it is possible to use this buffer to copy the missing files
3244 from one directory to another. 2863 from one directory to another.
3245 2864
3246 +++
3247 *** When comparing files or buffers. 2865 *** When comparing files or buffers.
3248 Typing the = key now offers to perform the word-by-word comparison of the 2866 Typing the = key now offers to perform the word-by-word comparison of the
3249 currently highlighted regions in an inferior Ediff session. If you answer 'n' 2867 currently highlighted regions in an inferior Ediff session. If you answer 'n'
3250 then it reverts to the old behavior and asks the user to select regions for 2868 then it reverts to the old behavior and asks the user to select regions for
3251 comparison. 2869 comparison.
3252 2870
3253 +++
3254 *** The new command `ediff-backup' compares a file with its most recent 2871 *** The new command `ediff-backup' compares a file with its most recent
3255 backup using `ediff'. If you specify the name of a backup file, 2872 backup using `ediff'. If you specify the name of a backup file,
3256 `ediff-backup' compares it with the file of which it is a backup. 2873 `ediff-backup' compares it with the file of which it is a backup.
3257 2874
3258 +++
3259 ** Etags changes. 2875 ** Etags changes.
3260 2876
3261 *** New regular expressions features 2877 *** New regular expressions features
3262 2878
3263 **** New syntax for regular expressions, multi-line regular expressions. 2879 **** New syntax for regular expressions, multi-line regular expressions.
3356 2972
3357 *** Ctags now allows duplicate tags 2973 *** Ctags now allows duplicate tags
3358 2974
3359 ** VC Changes 2975 ** VC Changes
3360 2976
3361 +++
3362 *** The key C-x C-q only changes the read-only state of the buffer 2977 *** The key C-x C-q only changes the read-only state of the buffer
3363 (toggle-read-only). It no longer checks files in or out. 2978 (toggle-read-only). It no longer checks files in or out.
3364 2979
3365 We made this change because we held a poll and found that many users 2980 We made this change because we held a poll and found that many users
3366 were unhappy with the previous behavior. If you do prefer this 2981 were unhappy with the previous behavior. If you do prefer this
3369 2984
3370 (global-set-key "\C-x\C-q" 'vc-toggle-read-only) 2985 (global-set-key "\C-x\C-q" 'vc-toggle-read-only)
3371 2986
3372 The function `vc-toggle-read-only' will continue to exist. 2987 The function `vc-toggle-read-only' will continue to exist.
3373 2988
3374 +++
3375 *** The new variable `vc-cvs-global-switches' specifies switches that 2989 *** The new variable `vc-cvs-global-switches' specifies switches that
3376 are passed to any CVS command invoked by VC. 2990 are passed to any CVS command invoked by VC.
3377 2991
3378 These switches are used as "global options" for CVS, which means they 2992 These switches are used as "global options" for CVS, which means they
3379 are inserted before the command name. For example, this allows you to 2993 are inserted before the command name. For example, this allows you to
3380 specify a compression level using the `-z#' option for CVS. 2994 specify a compression level using the `-z#' option for CVS.
3381 2995
3382 +++
3383 *** New backends for Subversion and Meta-CVS. 2996 *** New backends for Subversion and Meta-CVS.
3384 2997
3385 +++
3386 *** VC-Annotate mode enhancements 2998 *** VC-Annotate mode enhancements
3387 2999
3388 In VC-Annotate mode, you can now use the following key bindings for 3000 In VC-Annotate mode, you can now use the following key bindings for
3389 enhanced functionality to browse the annotations of past revisions, or 3001 enhanced functionality to browse the annotations of past revisions, or
3390 to view diffs or log entries directly from vc-annotate-mode: 3002 to view diffs or log entries directly from vc-annotate-mode:
3397 L: shows the log of the revision at line 3009 L: shows the log of the revision at line
3398 W: annotates the workfile (most up to date) version 3010 W: annotates the workfile (most up to date) version
3399 3011
3400 ** pcl-cvs changes: 3012 ** pcl-cvs changes:
3401 3013
3402 +++
3403 *** In pcl-cvs mode, there is a new `d y' command to view the diffs 3014 *** In pcl-cvs mode, there is a new `d y' command to view the diffs
3404 between the local version of the file and yesterday's head revision 3015 between the local version of the file and yesterday's head revision
3405 in the repository. 3016 in the repository.
3406 3017
3407 +++
3408 *** In pcl-cvs mode, there is a new `d r' command to view the changes 3018 *** In pcl-cvs mode, there is a new `d r' command to view the changes
3409 anyone has committed to the repository since you last executed 3019 anyone has committed to the repository since you last executed
3410 `checkout', `update' or `commit'. That means using cvs diff options 3020 `checkout', `update' or `commit'. That means using cvs diff options
3411 -rBASE -rHEAD. 3021 -rBASE -rHEAD.
3412 3022
3413 +++
3414 ** The new variable `mail-default-directory' specifies 3023 ** The new variable `mail-default-directory' specifies
3415 `default-directory' for mail buffers. This directory is used for 3024 `default-directory' for mail buffers. This directory is used for
3416 auto-save files of mail buffers. It defaults to "~/". 3025 auto-save files of mail buffers. It defaults to "~/".
3417 3026
3418 +++
3419 ** The mode line can indicate new mail in a directory or file. 3027 ** The mode line can indicate new mail in a directory or file.
3420 3028
3421 See the documentation of the user option 3029 See the documentation of the user option
3422 `display-time-mail-directory'. 3030 `display-time-mail-directory'.
3423 3031
3424 ** Rmail changes: 3032 ** Rmail changes:
3425 3033
3426 ---
3427 *** Rmail now displays 5-digit message ids in its summary buffer. 3034 *** Rmail now displays 5-digit message ids in its summary buffer.
3428 3035
3429 +++
3430 *** The new commands rmail-end-of-message and rmail-summary end-of-message, 3036 *** The new commands rmail-end-of-message and rmail-summary end-of-message,
3431 by default bound to `/', go to the end of the current mail message in 3037 by default bound to `/', go to the end of the current mail message in
3432 Rmail and Rmail summary buffers. 3038 Rmail and Rmail summary buffers.
3433 3039
3434 +++
3435 *** Support for `movemail' from GNU mailutils was added to Rmail. 3040 *** Support for `movemail' from GNU mailutils was added to Rmail.
3436 3041
3437 This version of `movemail' allows to read mail from a wide range of 3042 This version of `movemail' allows to read mail from a wide range of
3438 mailbox formats, including remote POP3 and IMAP4 mailboxes with or 3043 mailbox formats, including remote POP3 and IMAP4 mailboxes with or
3439 without TLS encryption. If GNU mailutils is installed on the system 3044 without TLS encryption. If GNU mailutils is installed on the system
3440 and its version of `movemail' can be found in exec-path, it will be 3045 and its version of `movemail' can be found in exec-path, it will be
3441 used instead of the native one. 3046 used instead of the native one.
3442 3047
3443 ** Gnus package 3048 ** Gnus package
3444 3049
3445 ---
3446 *** Gnus now includes Sieve and PGG 3050 *** Gnus now includes Sieve and PGG
3447 3051
3448 Sieve is a library for managing Sieve scripts. PGG is a library to handle 3052 Sieve is a library for managing Sieve scripts. PGG is a library to handle
3449 PGP/MIME. 3053 PGP/MIME.
3450 3054
3451 ---
3452 *** There are many news features, bug fixes and improvements. 3055 *** There are many news features, bug fixes and improvements.
3453 3056
3454 See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details. 3057 See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details.
3455 3058
3456 ---
3457 ** MH-E changes. 3059 ** MH-E changes.
3458 3060
3459 Upgraded to MH-E version 8.0.3. There have been major changes since 3061 Upgraded to MH-E version 8.0.3. There have been major changes since
3460 version 5.0.2; see MH-E-NEWS for details. 3062 version 5.0.2; see MH-E-NEWS for details.
3461 3063
3462 ** Calendar changes: 3064 ** Calendar changes:
3463 3065
3464 +++
3465 *** The meanings of C-x < and C-x > have been interchanged. 3066 *** The meanings of C-x < and C-x > have been interchanged.
3466 < means to scroll backward in time, and > means to scroll forward. 3067 < means to scroll backward in time, and > means to scroll forward.
3467 3068
3468 +++
3469 *** You can now use < and >, instead of C-x < and C-x >, to scroll 3069 *** You can now use < and >, instead of C-x < and C-x >, to scroll
3470 the calendar left or right. 3070 the calendar left or right.
3471 3071
3472 +++
3473 *** There is a new calendar package, icalendar.el, that can be used to 3072 *** There is a new calendar package, icalendar.el, that can be used to
3474 convert Emacs diary entries to/from the iCalendar format. 3073 convert Emacs diary entries to/from the iCalendar format.
3475 3074
3476 +++
3477 *** The new package cal-html.el writes HTML files with calendar and 3075 *** The new package cal-html.el writes HTML files with calendar and
3478 diary entries. 3076 diary entries.
3479 3077
3480 +++
3481 *** Diary sexp entries can have custom marking in the calendar. 3078 *** Diary sexp entries can have custom marking in the calendar.
3482 Diary sexp functions which only apply to certain days (such as 3079 Diary sexp functions which only apply to certain days (such as
3483 `diary-block' or `diary-cyclic') now take an optional parameter MARK, 3080 `diary-block' or `diary-cyclic') now take an optional parameter MARK,
3484 which is the name of a face or a single-character string indicating 3081 which is the name of a face or a single-character string indicating
3485 how to highlight the day in the calendar display. Specifying a 3082 how to highlight the day in the calendar display. Specifying a
3486 single-character string as @var{mark} places the character next to the 3083 single-character string as @var{mark} places the character next to the
3487 day in the calendar. Specifying a face highlights the day with that 3084 day in the calendar. Specifying a face highlights the day with that
3488 face. This lets you have different colors or markings for vacations, 3085 face. This lets you have different colors or markings for vacations,
3489 appointments, paydays or anything else using a sexp. 3086 appointments, paydays or anything else using a sexp.
3490 3087
3491 +++
3492 *** The new function `calendar-goto-day-of-year' (g D) prompts for a 3088 *** The new function `calendar-goto-day-of-year' (g D) prompts for a
3493 year and day number, and moves to that date. Negative day numbers 3089 year and day number, and moves to that date. Negative day numbers
3494 count backward from the end of the year. 3090 count backward from the end of the year.
3495 3091
3496 +++
3497 *** The new Calendar function `calendar-goto-iso-week' (g w) 3092 *** The new Calendar function `calendar-goto-iso-week' (g w)
3498 prompts for a year and a week number, and moves to the first 3093 prompts for a year and a week number, and moves to the first
3499 day of that ISO week. 3094 day of that ISO week.
3500 3095
3501 ---
3502 *** The new variable `calendar-minimum-window-height' affects the 3096 *** The new variable `calendar-minimum-window-height' affects the
3503 window generated by the function `generate-calendar-window'. 3097 window generated by the function `generate-calendar-window'.
3504 3098
3505 ---
3506 *** The functions `holiday-easter-etc' and `holiday-advent' now take 3099 *** The functions `holiday-easter-etc' and `holiday-advent' now take
3507 optional arguments, in order to only report on the specified holiday 3100 optional arguments, in order to only report on the specified holiday
3508 rather than all. This makes customization of variables such as 3101 rather than all. This makes customization of variables such as
3509 `christian-holidays' simpler. 3102 `christian-holidays' simpler.
3510 3103
3511 ---
3512 *** The function `simple-diary-display' now by default sets a header line. 3104 *** The function `simple-diary-display' now by default sets a header line.
3513 This can be controlled through the variables `diary-header-line-flag' 3105 This can be controlled through the variables `diary-header-line-flag'
3514 and `diary-header-line-format'. 3106 and `diary-header-line-format'.
3515 3107
3516 +++
3517 *** The procedure for activating appointment reminders has changed: 3108 *** The procedure for activating appointment reminders has changed:
3518 use the new function `appt-activate'. The new variable 3109 use the new function `appt-activate'. The new variable
3519 `appt-display-format' controls how reminders are displayed, replacing 3110 `appt-display-format' controls how reminders are displayed, replacing
3520 `appt-issue-message', `appt-visible', and `appt-msg-window'. 3111 `appt-issue-message', `appt-visible', and `appt-msg-window'.
3521 3112
3522 +++
3523 *** The new functions `diary-from-outlook', `diary-from-outlook-gnus', 3113 *** The new functions `diary-from-outlook', `diary-from-outlook-gnus',
3524 and `diary-from-outlook-rmail' can be used to import diary entries 3114 and `diary-from-outlook-rmail' can be used to import diary entries
3525 from Outlook-format appointments in mail messages. The variable 3115 from Outlook-format appointments in mail messages. The variable
3526 `diary-outlook-formats' can be customized to recognize additional 3116 `diary-outlook-formats' can be customized to recognize additional
3527 formats. 3117 formats.
3528 3118
3529 +++
3530 ** Speedbar changes: 3119 ** Speedbar changes:
3531 3120
3532 *** Speedbar items can now be selected by clicking mouse-1, based on 3121 *** Speedbar items can now be selected by clicking mouse-1, based on
3533 the `mouse-1-click-follows-link' mechanism. 3122 the `mouse-1-click-follows-link' mechanism.
3534 3123
3568 `dframe-activity-change-focus-flag' instead of 3157 `dframe-activity-change-focus-flag' instead of
3569 `speedbar-activity-change-focus-flag'. The variables 3158 `speedbar-activity-change-focus-flag'. The variables
3570 `speedbar-update-speed' and `speedbar-navigating-speed' are also 3159 `speedbar-update-speed' and `speedbar-navigating-speed' are also
3571 obsolete; use `dframe-update-speed' instead. 3160 obsolete; use `dframe-update-speed' instead.
3572 3161
3573 ---
3574 ** sql changes. 3162 ** sql changes.
3575 3163
3576 *** The variable `sql-product' controls the highlighting of different 3164 *** The variable `sql-product' controls the highlighting of different
3577 SQL dialects. This variable can be set globally via Customize, on a 3165 SQL dialects. This variable can be set globally via Customize, on a
3578 buffer-specific basis via local variable settings, or for the current 3166 buffer-specific basis via local variable settings, or for the current
3642 3230
3643 *** Added SQL->Start SQLi Session menu entry which calls the 3231 *** Added SQL->Start SQLi Session menu entry which calls the
3644 appropriate `sql-interactive-mode' wrapper for the current setting of 3232 appropriate `sql-interactive-mode' wrapper for the current setting of
3645 `sql-product'. 3233 `sql-product'.
3646 3234
3647 ---
3648 *** sql.el supports the SQLite interpreter--call 'sql-sqlite'. 3235 *** sql.el supports the SQLite interpreter--call 'sql-sqlite'.
3649 3236
3650 ** FFAP changes: 3237 ** FFAP changes:
3651 3238
3652 +++
3653 *** New ffap commands and keybindings: 3239 *** New ffap commands and keybindings:
3654 3240
3655 C-x C-r (`ffap-read-only'), 3241 C-x C-r (`ffap-read-only'),
3656 C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'), 3242 C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'),
3657 C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'), 3243 C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'),
3658 C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame'). 3244 C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame').
3659 3245
3660 ---
3661 *** FFAP accepts wildcards in a file name by default. 3246 *** FFAP accepts wildcards in a file name by default.
3662 3247
3663 C-x C-f passes the file name to `find-file' with non-nil WILDCARDS 3248 C-x C-f passes the file name to `find-file' with non-nil WILDCARDS
3664 argument, which visits multiple files, and C-x d passes it to `dired'. 3249 argument, which visits multiple files, and C-x d passes it to `dired'.
3665 3250
3666 ---
3667 ** Changes in Skeleton 3251 ** Changes in Skeleton
3668 3252
3669 *** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction. 3253 *** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction.
3670 3254
3671 `@' has reverted to only setting `skeleton-positions' and no longer 3255 `@' has reverted to only setting `skeleton-positions' and no longer
3678 `skeleton-pair-filter' have been renamed to 3262 `skeleton-pair-filter' have been renamed to
3679 `skeleton-transformation-function', `skeleton-filter-function', and 3263 `skeleton-transformation-function', `skeleton-filter-function', and
3680 `skeleton-pair-filter-function'. The old names are still available 3264 `skeleton-pair-filter-function'. The old names are still available
3681 as aliases. 3265 as aliases.
3682 3266
3683 ---
3684 ** Hideshow mode changes 3267 ** Hideshow mode changes
3685 3268
3686 *** New variable `hs-set-up-overlay' allows customization of the overlay 3269 *** New variable `hs-set-up-overlay' allows customization of the overlay
3687 used to effect hiding for hideshow minor mode. Integration with isearch 3270 used to effect hiding for hideshow minor mode. Integration with isearch
3688 handles the overlay property `display' specially, preserving it during 3271 handles the overlay property `display' specially, preserving it during
3690 3273
3691 *** New variable `hs-allow-nesting' non-nil means that hiding a block does 3274 *** New variable `hs-allow-nesting' non-nil means that hiding a block does
3692 not discard the hidden state of any "internal" blocks; when the parent 3275 not discard the hidden state of any "internal" blocks; when the parent
3693 block is later shown, the internal blocks remain hidden. Default is nil. 3276 block is later shown, the internal blocks remain hidden. Default is nil.
3694 3277
3695 +++
3696 ** `hide-ifdef-mode' now uses overlays rather than selective-display 3278 ** `hide-ifdef-mode' now uses overlays rather than selective-display
3697 to hide its text. This should be mostly transparent but slightly 3279 to hide its text. This should be mostly transparent but slightly
3698 changes the behavior of motion commands like C-e and C-p. 3280 changes the behavior of motion commands like C-e and C-p.
3699 3281
3700 ---
3701 ** `partial-completion-mode' now handles partial completion on directory names. 3282 ** `partial-completion-mode' now handles partial completion on directory names.
3702 3283
3703 ---
3704 ** The type-break package now allows `type-break-file-name' to be nil 3284 ** The type-break package now allows `type-break-file-name' to be nil
3705 and if so, doesn't store any data across sessions. This is handy if 3285 and if so, doesn't store any data across sessions. This is handy if
3706 you don't want the `.type-break' file in your home directory or are 3286 you don't want the `.type-break' file in your home directory or are
3707 annoyed by the need for interaction when you kill Emacs. 3287 annoyed by the need for interaction when you kill Emacs.
3708 3288
3709 ---
3710 ** `ps-print' can now print characters from the mule-unicode charsets. 3289 ** `ps-print' can now print characters from the mule-unicode charsets.
3711 3290
3712 Printing text with characters from the mule-unicode-* sets works with 3291 Printing text with characters from the mule-unicode-* sets works with
3713 `ps-print', provided that you have installed the appropriate BDF 3292 `ps-print', provided that you have installed the appropriate BDF
3714 fonts. See the file INSTALL for URLs where you can find these fonts. 3293 fonts. See the file INSTALL for URLs where you can find these fonts.
3715 3294
3716 ---
3717 ** New command `strokes-global-set-stroke-string'. 3295 ** New command `strokes-global-set-stroke-string'.
3718 This is like `strokes-global-set-stroke', but it allows you to bind 3296 This is like `strokes-global-set-stroke', but it allows you to bind
3719 the stroke directly to a string to insert. This is convenient for 3297 the stroke directly to a string to insert. This is convenient for
3720 using strokes as an input method. 3298 using strokes as an input method.
3721 3299
3722 ** Emacs server changes: 3300 ** Emacs server changes:
3723 3301
3724 +++
3725 *** You can have several Emacs servers on the same machine. 3302 *** You can have several Emacs servers on the same machine.
3726 3303
3727 % emacs --eval '(setq server-name "foo")' -f server-start & 3304 % emacs --eval '(setq server-name "foo")' -f server-start &
3728 % emacs --eval '(setq server-name "bar")' -f server-start & 3305 % emacs --eval '(setq server-name "bar")' -f server-start &
3729 % emacsclient -s foo file1 3306 % emacsclient -s foo file1
3730 % emacsclient -s bar file2 3307 % emacsclient -s bar file2
3731 3308
3732 +++
3733 *** The `emacsclient' command understands the options `--eval' and 3309 *** The `emacsclient' command understands the options `--eval' and
3734 `--display' which tell Emacs respectively to evaluate the given Lisp 3310 `--display' which tell Emacs respectively to evaluate the given Lisp
3735 expression and to use the given display when visiting files. 3311 expression and to use the given display when visiting files.
3736 3312
3737 +++
3738 *** User option `server-mode' can be used to start a server process. 3313 *** User option `server-mode' can be used to start a server process.
3739 3314
3740 ---
3741 ** LDAP support now defaults to ldapsearch from OpenLDAP version 2. 3315 ** LDAP support now defaults to ldapsearch from OpenLDAP version 2.
3742 3316
3743 +++
3744 ** You can now disable pc-selection-mode after enabling it. 3317 ** You can now disable pc-selection-mode after enabling it.
3745 3318
3746 M-x pc-selection-mode behaves like a proper minor mode, and with no 3319 M-x pc-selection-mode behaves like a proper minor mode, and with no
3747 argument it toggles the mode. Turning off PC-Selection mode restores 3320 argument it toggles the mode. Turning off PC-Selection mode restores
3748 the global key bindings that were replaced by turning on the mode. 3321 the global key bindings that were replaced by turning on the mode.
3749 3322
3750 ---
3751 ** `uniquify-strip-common-suffix' tells uniquify to prefer 3323 ** `uniquify-strip-common-suffix' tells uniquify to prefer
3752 `file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'. 3324 `file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'.
3753 3325
3754 ---
3755 ** Support for `magic cookie' standout modes has been removed. 3326 ** Support for `magic cookie' standout modes has been removed.
3756 3327
3757 Emacs still works on terminals that require magic cookies in order to 3328 Emacs still works on terminals that require magic cookies in order to
3758 use standout mode, but they can no longer display mode-lines in 3329 use standout mode, but they can no longer display mode-lines in
3759 inverse-video. 3330 inverse-video.
3760 3331
3761 ---
3762 ** The game `mpuz' is enhanced. 3332 ** The game `mpuz' is enhanced.
3763 3333
3764 `mpuz' now allows the 2nd factor not to have two identical digits. By 3334 `mpuz' now allows the 2nd factor not to have two identical digits. By
3765 default, all trivial operations involving whole lines are performed 3335 default, all trivial operations involving whole lines are performed
3766 automatically. The game uses faces for better visual feedback. 3336 automatically. The game uses faces for better visual feedback.
3767 3337
3768 ** battery.el changes: 3338 ** battery.el changes:
3769 3339
3770 ---
3771 *** display-battery-mode replaces display-battery. 3340 *** display-battery-mode replaces display-battery.
3772 3341
3773 ---
3774 *** battery.el now works on recent versions of OS X. 3342 *** battery.el now works on recent versions of OS X.
3775 3343
3776 ---
3777 ** calculator.el now has radix grouping mode. 3344 ** calculator.el now has radix grouping mode.
3778 3345
3779 To enable this, set `calculator-output-radix' non-nil. In this mode a 3346 To enable this, set `calculator-output-radix' non-nil. In this mode a
3780 separator character is used every few digits, making it easier to see 3347 separator character is used every few digits, making it easier to see
3781 byte boundaries etc. For more info, see the documentation of the 3348 byte boundaries etc. For more info, see the documentation of the
3782 variable `calculator-radix-grouping-mode'. 3349 variable `calculator-radix-grouping-mode'.
3783 3350
3784 ---
3785 ** fast-lock.el and lazy-lock.el are obsolete. Use jit-lock.el instead. 3351 ** fast-lock.el and lazy-lock.el are obsolete. Use jit-lock.el instead.
3786 3352
3787 ---
3788 ** iso-acc.el is now obsolete. Use one of the latin input methods instead. 3353 ** iso-acc.el is now obsolete. Use one of the latin input methods instead.
3789 3354
3790 ---
3791 ** zone-mode.el is now obsolete. Use dns-mode.el instead. 3355 ** zone-mode.el is now obsolete. Use dns-mode.el instead.
3792 3356
3793 ---
3794 ** cplus-md.el has been deleted. 3357 ** cplus-md.el has been deleted.
3795 3358
3796 ---
3797 ** Ewoc changes 3359 ** Ewoc changes
3798 3360
3799 *** The new function `ewoc-delete' deletes specified nodes. 3361 *** The new function `ewoc-delete' deletes specified nodes.
3800 3362
3801 *** `ewoc-create' now takes optional arg NOSEP, which inhibits insertion of 3363 *** `ewoc-create' now takes optional arg NOSEP, which inhibits insertion of
3814 (defun PP (data) (insert (format "%S\n" data))) 3376 (defun PP (data) (insert (format "%S\n" data)))
3815 (ewoc-create 'PP "start\n\n" "\n" t) 3377 (ewoc-create 'PP "start\n\n" "\n" t)
3816 3378
3817 ** Locate changes 3379 ** Locate changes
3818 3380
3819 ---
3820 *** By default, reverting the *Locate* buffer now just runs the last 3381 *** By default, reverting the *Locate* buffer now just runs the last
3821 `locate' command back over again without offering to update the locate 3382 `locate' command back over again without offering to update the locate
3822 database (which normally only works if you have root privileges). If 3383 database (which normally only works if you have root privileges). If
3823 you prefer the old behavior, set the new customizable option 3384 you prefer the old behavior, set the new customizable option
3824 `locate-update-when-revert' to t. 3385 `locate-update-when-revert' to t.
3825 3386
3826 3387
3827 * Changes in Emacs 22.1 on non-free operating systems 3388 * Changes in Emacs 22.1 on non-free operating systems
3828 3389
3829 +++
3830 ** The HOME directory defaults to Application Data under the user profile. 3390 ** The HOME directory defaults to Application Data under the user profile.
3831 3391
3832 If you used a previous version of Emacs without setting the HOME 3392 If you used a previous version of Emacs without setting the HOME
3833 environment variable and a `.emacs' was saved, then Emacs will continue 3393 environment variable and a `.emacs' was saved, then Emacs will continue
3834 using C:/ as the default HOME. But if you are installing Emacs afresh, 3394 using C:/ as the default HOME. But if you are installing Emacs afresh,
3839 3399
3840 This change means that users can now have their own `.emacs' files on 3400 This change means that users can now have their own `.emacs' files on
3841 shared computers, and the default HOME directory is less likely to be 3401 shared computers, and the default HOME directory is less likely to be
3842 read-only on computers that are administered by someone else. 3402 read-only on computers that are administered by someone else.
3843 3403
3844 +++
3845 ** Passing resources on the command line now works on MS Windows. 3404 ** Passing resources on the command line now works on MS Windows.
3846 3405
3847 You can use --xrm to pass resource settings to Emacs, overriding any 3406 You can use --xrm to pass resource settings to Emacs, overriding any
3848 existing values. For example: 3407 existing values. For example:
3849 3408
3850 emacs --xrm "Emacs.Background:red" --xrm "Emacs.Geometry:100x20" 3409 emacs --xrm "Emacs.Background:red" --xrm "Emacs.Geometry:100x20"
3851 3410
3852 will start up Emacs on an initial frame of 100x20 with red background, 3411 will start up Emacs on an initial frame of 100x20 with red background,
3853 irrespective of geometry or background setting on the Windows registry. 3412 irrespective of geometry or background setting on the Windows registry.
3854 3413
3855 ---
3856 ** On MS Windows, the "system caret" now follows the cursor. 3414 ** On MS Windows, the "system caret" now follows the cursor.
3857 3415
3858 This enables Emacs to work better with programs that need to track the 3416 This enables Emacs to work better with programs that need to track the
3859 cursor, for example screen magnifiers and text to speech programs. 3417 cursor, for example screen magnifiers and text to speech programs.
3860 When such a program is in use, the system caret is made visible 3418 When such a program is in use, the system caret is made visible
3861 instead of Emacs drawing its own cursor. This seems to be required by 3419 instead of Emacs drawing its own cursor. This seems to be required by
3862 some programs. The new variable w32-use-visible-system-caret allows 3420 some programs. The new variable w32-use-visible-system-caret allows
3863 the caret visibility to be manually toggled. 3421 the caret visibility to be manually toggled.
3864 3422
3865 ---
3866 ** Tooltips now work on MS Windows. 3423 ** Tooltips now work on MS Windows.
3867 3424
3868 See the Emacs 21.1 NEWS entry for tooltips for details. 3425 See the Emacs 21.1 NEWS entry for tooltips for details.
3869 3426
3870 ---
3871 ** Images are now supported on MS Windows. 3427 ** Images are now supported on MS Windows.
3872 3428
3873 PBM and XBM images are supported out of the box. Other image formats 3429 PBM and XBM images are supported out of the box. Other image formats
3874 depend on external libraries. All of these libraries have been ported 3430 depend on external libraries. All of these libraries have been ported
3875 to Windows, and can be found in both source and binary form at 3431 to Windows, and can be found in both source and binary form at
3876 http://gnuwin32.sourceforge.net/. Note that libpng also depends on 3432 http://gnuwin32.sourceforge.net/. Note that libpng also depends on
3877 zlib, and tiff depends on the version of jpeg that it was compiled 3433 zlib, and tiff depends on the version of jpeg that it was compiled
3878 against. For additional information, see nt/INSTALL. 3434 against. For additional information, see nt/INSTALL.
3879 3435
3880 ---
3881 ** Sound is now supported on MS Windows. 3436 ** Sound is now supported on MS Windows.
3882 3437
3883 WAV format is supported on all versions of Windows, other formats such 3438 WAV format is supported on all versions of Windows, other formats such
3884 as AU, AIFF and MP3 may be supported in the more recent versions of 3439 as AU, AIFF and MP3 may be supported in the more recent versions of
3885 Windows, or when other software provides hooks into the system level 3440 Windows, or when other software provides hooks into the system level
3886 sound support for those formats. 3441 sound support for those formats.
3887 3442
3888 ---
3889 ** Different shaped mouse pointers are supported on MS Windows. 3443 ** Different shaped mouse pointers are supported on MS Windows.
3890 3444
3891 The mouse pointer changes shape depending on what is under the pointer. 3445 The mouse pointer changes shape depending on what is under the pointer.
3892 3446
3893 ---
3894 ** Pointing devices with more than 3 buttons are now supported on MS Windows. 3447 ** Pointing devices with more than 3 buttons are now supported on MS Windows.
3895 3448
3896 The new variable `w32-pass-extra-mouse-buttons-to-system' controls 3449 The new variable `w32-pass-extra-mouse-buttons-to-system' controls
3897 whether Emacs should handle the extra buttons itself (the default), or 3450 whether Emacs should handle the extra buttons itself (the default), or
3898 pass them to Windows to be handled with system-wide functions. 3451 pass them to Windows to be handled with system-wide functions.
3899 3452
3900 ---
3901 ** Emacs takes note of colors defined in Control Panel on MS-Windows. 3453 ** Emacs takes note of colors defined in Control Panel on MS-Windows.
3902 3454
3903 The Control Panel defines some default colors for applications in much 3455 The Control Panel defines some default colors for applications in much
3904 the same way as wildcard X Resources do on X. Emacs now adds these 3456 the same way as wildcard X Resources do on X. Emacs now adds these
3905 colors to the colormap prefixed by System (eg SystemMenu for the 3457 colors to the colormap prefixed by System (eg SystemMenu for the
3906 default Menu background, SystemMenuText for the foreground), and uses 3458 default Menu background, SystemMenuText for the foreground), and uses
3907 some of them to initialize some of the default faces. 3459 some of them to initialize some of the default faces.
3908 `list-colors-display' shows the list of System color names, in case 3460 `list-colors-display' shows the list of System color names, in case
3909 you wish to use them in other faces. 3461 you wish to use them in other faces.
3910 3462
3911 ---
3912 ** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations. 3463 ** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations.
3913 3464
3914 Those systems use Unicode internally, so this allows Emacs to share 3465 Those systems use Unicode internally, so this allows Emacs to share
3915 multilingual text with other applications. On other versions of 3466 multilingual text with other applications. On other versions of
3916 MS Windows, Emacs now uses the appropriate locale coding-system, so 3467 MS Windows, Emacs now uses the appropriate locale coding-system, so
3917 the clipboard should work correctly for your local language without 3468 the clipboard should work correctly for your local language without
3918 any customizations. 3469 any customizations.
3919 3470
3920 ---
3921 ** Running in a console window in Windows now uses the console size. 3471 ** Running in a console window in Windows now uses the console size.
3922 3472
3923 Previous versions of Emacs erred on the side of having a usable Emacs 3473 Previous versions of Emacs erred on the side of having a usable Emacs
3924 through telnet, even though that was inconvenient if you use Emacs in 3474 through telnet, even though that was inconvenient if you use Emacs in
3925 a local console window with a scrollback buffer. The default value of 3475 a local console window with a scrollback buffer. The default value of
3929 that the console window dimensions that are reported are not sane, and 3479 that the console window dimensions that are reported are not sane, and
3930 defaults to 80x25. If you use such a telnet server regularly at a size 3480 defaults to 80x25. If you use such a telnet server regularly at a size
3931 other than 80x25, you can still manually set 3481 other than 80x25, you can still manually set
3932 w32-use-full-screen-buffer to t. 3482 w32-use-full-screen-buffer to t.
3933 3483
3934 ---
3935 ** On Mac OS, `keyboard-coding-system' changes based on the keyboard script. 3484 ** On Mac OS, `keyboard-coding-system' changes based on the keyboard script.
3936 3485
3937 ---
3938 ** The variable `mac-keyboard-text-encoding' and the constants 3486 ** The variable `mac-keyboard-text-encoding' and the constants
3939 `kTextEncodingMacRoman', `kTextEncodingISOLatin1', and 3487 `kTextEncodingMacRoman', `kTextEncodingISOLatin1', and
3940 `kTextEncodingISOLatin2' are obsolete. 3488 `kTextEncodingISOLatin2' are obsolete.
3941 3489
3942 +++
3943 ** The variable `mac-command-key-is-meta' is obsolete. Use 3490 ** The variable `mac-command-key-is-meta' is obsolete. Use
3944 `mac-command-modifier' and `mac-option-modifier' instead. 3491 `mac-command-modifier' and `mac-option-modifier' instead.
3945 3492
3946 * Incompatible Lisp Changes in Emacs 22.1 3493 * Incompatible Lisp Changes in Emacs 22.1
3947 3494
3948 +++
3949 ** The `read-file-name' function now returns a null string if the 3495 ** The `read-file-name' function now returns a null string if the
3950 user just types RET. 3496 user just types RET.
3951 3497
3952 +++
3953 ** The function find-operation-coding-system may be called with a cons 3498 ** The function find-operation-coding-system may be called with a cons
3954 (FILENAME . BUFFER) in the second argument if the first argument 3499 (FILENAME . BUFFER) in the second argument if the first argument
3955 OPERATION is `insert-file-contents', and thus a function registered in 3500 OPERATION is `insert-file-contents', and thus a function registered in
3956 `file-coding-system-alist' is also called with such an argument. 3501 `file-coding-system-alist' is also called with such an argument.
3957 3502
3958 ---
3959 ** The variables post-command-idle-hook and post-command-idle-delay have 3503 ** The variables post-command-idle-hook and post-command-idle-delay have
3960 been removed. Use run-with-idle-timer instead. 3504 been removed. Use run-with-idle-timer instead.
3961 3505
3962 +++
3963 ** `suppress-keymap' now works by remapping `self-insert-command' to 3506 ** `suppress-keymap' now works by remapping `self-insert-command' to
3964 the command `undefined'. (In earlier Emacs versions, it used 3507 the command `undefined'. (In earlier Emacs versions, it used
3965 `substitute-key-definition' to rebind self inserting characters to 3508 `substitute-key-definition' to rebind self inserting characters to
3966 `undefined'.) 3509 `undefined'.)
3967 3510
3968 +++
3969 ** Mode line display ignores text properties as well as the 3511 ** Mode line display ignores text properties as well as the
3970 :propertize and :eval forms in the value of a variable whose 3512 :propertize and :eval forms in the value of a variable whose
3971 `risky-local-variable' property is nil. 3513 `risky-local-variable' property is nil.
3972 3514
3973 ---
3974 The function `comint-send-input' now accepts 3 optional arguments: 3515 The function `comint-send-input' now accepts 3 optional arguments:
3975 3516
3976 (comint-send-input &optional no-newline artificial) 3517 (comint-send-input &optional no-newline artificial)
3977 3518
3978 Callers sending input not from the user should use bind the 3rd 3519 Callers sending input not from the user should use bind the 3rd
3979 argument `artificial' to a non-nil value, to prevent Emacs from 3520 argument `artificial' to a non-nil value, to prevent Emacs from
3980 deleting the part of subprocess output that matches the input. 3521 deleting the part of subprocess output that matches the input.
3981 3522
3982 ---
3983 ** Support for Mocklisp has been removed. 3523 ** Support for Mocklisp has been removed.
3984 3524
3985 +++
3986 ** The variable `memory-full' now remains t until 3525 ** The variable `memory-full' now remains t until
3987 there is no longer a shortage of memory. 3526 there is no longer a shortage of memory.
3988 3527
3989 +++
3990 ** When Emacs receives a USR1 or USR2 signal, this generates 3528 ** When Emacs receives a USR1 or USR2 signal, this generates
3991 input events: sigusr1 or sigusr2. Use special-event-map to 3529 input events: sigusr1 or sigusr2. Use special-event-map to
3992 handle these events. 3530 handle these events.
3993 3531
3994 +++
3995 ** A hex or octal escape in a string constant forces the string to 3532 ** A hex or octal escape in a string constant forces the string to
3996 be multibyte or unibyte, respectively. 3533 be multibyte or unibyte, respectively.
3997 3534
3998 +++
3999 ** The explicit method of creating a display table element by 3535 ** The explicit method of creating a display table element by
4000 combining a face number and a character code into a numeric 3536 combining a face number and a character code into a numeric
4001 glyph code is deprecated. 3537 glyph code is deprecated.
4002 3538
4003 Instead, the new functions `make-glyph-code', `glyph-char', and 3539 Instead, the new functions `make-glyph-code', `glyph-char', and
4007 3543
4008 * Lisp Changes in Emacs 22.1 3544 * Lisp Changes in Emacs 22.1
4009 3545
4010 ** General Lisp changes: 3546 ** General Lisp changes:
4011 3547
4012 +++
4013 *** The function `expt' handles negative exponents differently. 3548 *** The function `expt' handles negative exponents differently.
4014 The value for `(expt A B)', if both A and B are integers and B is 3549 The value for `(expt A B)', if both A and B are integers and B is
4015 negative, is now a float. For example: (expt 2 -2) => 0.25. 3550 negative, is now a float. For example: (expt 2 -2) => 0.25.
4016 3551
4017 +++
4018 *** The function `eql' is now available without requiring the CL package. 3552 *** The function `eql' is now available without requiring the CL package.
4019 3553
4020 +++
4021 *** The new function `memql' is like `memq', but uses `eql' for comparison, 3554 *** The new function `memql' is like `memq', but uses `eql' for comparison,
4022 that is, floats are compared by value and other elements with `eq'. 3555 that is, floats are compared by value and other elements with `eq'.
4023 3556
4024 +++
4025 *** `makehash' is now obsolete. Use `make-hash-table' instead. 3557 *** `makehash' is now obsolete. Use `make-hash-table' instead.
4026 3558
4027 +++
4028 *** `add-to-list' takes an optional third argument, APPEND. 3559 *** `add-to-list' takes an optional third argument, APPEND.
4029 3560
4030 If APPEND is non-nil, the new element gets added at the end of the 3561 If APPEND is non-nil, the new element gets added at the end of the
4031 list instead of at the beginning. This change actually occurred in 3562 list instead of at the beginning. This change actually occurred in
4032 Emacs 21.1, but was not documented then. 3563 Emacs 21.1, but was not documented then.
4033 3564
4034 +++
4035 *** New function `add-to-ordered-list' is like `add-to-list' but 3565 *** New function `add-to-ordered-list' is like `add-to-list' but
4036 associates a numeric ordering of each element added to the list. 3566 associates a numeric ordering of each element added to the list.
4037 3567
4038 +++
4039 *** New function `copy-tree' makes a copy of a tree. 3568 *** New function `copy-tree' makes a copy of a tree.
4040 3569
4041 It recursively copies through both CARs and CDRs. 3570 It recursively copies through both CARs and CDRs.
4042 3571
4043 +++
4044 *** New function `delete-dups' deletes `equal' duplicate elements from a list. 3572 *** New function `delete-dups' deletes `equal' duplicate elements from a list.
4045 3573
4046 It modifies the list destructively, like `delete'. Of several `equal' 3574 It modifies the list destructively, like `delete'. Of several `equal'
4047 occurrences of an element in the list, the one that's kept is the 3575 occurrences of an element in the list, the one that's kept is the
4048 first one. 3576 first one.
4049 3577
4050 +++
4051 *** New function `add-to-history' adds an element to a history list. 3578 *** New function `add-to-history' adds an element to a history list.
4052 3579
4053 Lisp packages should use this function to add elements to their 3580 Lisp packages should use this function to add elements to their
4054 history lists. 3581 history lists.
4055 3582
4056 If `history-delete-duplicates' is non-nil, it removes duplicates of 3583 If `history-delete-duplicates' is non-nil, it removes duplicates of
4057 the new element from the history list it updates. 3584 the new element from the history list it updates.
4058 3585
4059 +++
4060 *** New function `rassq-delete-all'. 3586 *** New function `rassq-delete-all'.
4061 3587
4062 (rassq-delete-all VALUE ALIST) deletes, from ALIST, each element whose 3588 (rassq-delete-all VALUE ALIST) deletes, from ALIST, each element whose
4063 CDR is `eq' to the specified value. 3589 CDR is `eq' to the specified value.
4064 3590
4065 +++
4066 *** The function `number-sequence' makes a list of equally-separated numbers. 3591 *** The function `number-sequence' makes a list of equally-separated numbers.
4067 3592
4068 For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). By 3593 For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). By
4069 default, the separation is 1, but you can specify a different 3594 default, the separation is 1, but you can specify a different
4070 separation as the third argument. (number-sequence 1.5 6 2) returns 3595 separation as the third argument. (number-sequence 1.5 6 2) returns
4071 (1.5 3.5 5.5). 3596 (1.5 3.5 5.5).
4072 3597
4073 +++
4074 *** New variables `most-positive-fixnum' and `most-negative-fixnum'. 3598 *** New variables `most-positive-fixnum' and `most-negative-fixnum'.
4075 3599
4076 They hold the largest and smallest possible integer values. 3600 They hold the largest and smallest possible integer values.
4077 3601
4078 +++
4079 *** Minor change in the function `format'. 3602 *** Minor change in the function `format'.
4080 3603
4081 Some flags that were accepted but not implemented (such as "*") are no 3604 Some flags that were accepted but not implemented (such as "*") are no
4082 longer accepted. 3605 longer accepted.
4083 3606
4084 +++
4085 *** Functions `get' and `plist-get' no longer give errors for bad plists. 3607 *** Functions `get' and `plist-get' no longer give errors for bad plists.
4086 3608
4087 They return nil for a malformed property list or if the list is 3609 They return nil for a malformed property list or if the list is
4088 cyclic. 3610 cyclic.
4089 3611
4090 +++
4091 *** New functions `lax-plist-get' and `lax-plist-put'. 3612 *** New functions `lax-plist-get' and `lax-plist-put'.
4092 3613
4093 They are like `plist-get' and `plist-put', except that they compare 3614 They are like `plist-get' and `plist-put', except that they compare
4094 the property name using `equal' rather than `eq'. 3615 the property name using `equal' rather than `eq'.
4095 3616
4096 +++
4097 *** New variable `print-continuous-numbering'. 3617 *** New variable `print-continuous-numbering'.
4098 3618
4099 When this is non-nil, successive calls to print functions use a single 3619 When this is non-nil, successive calls to print functions use a single
4100 numbering scheme for circular structure references. This is only 3620 numbering scheme for circular structure references. This is only
4101 relevant when `print-circle' is non-nil. 3621 relevant when `print-circle' is non-nil.
4102 3622
4103 When you bind `print-continuous-numbering' to t, you should 3623 When you bind `print-continuous-numbering' to t, you should
4104 also bind `print-number-table' to nil. 3624 also bind `print-number-table' to nil.
4105 3625
4106 +++
4107 *** New function `macroexpand-all' expands all macros in a form. 3626 *** New function `macroexpand-all' expands all macros in a form.
4108 3627
4109 It is similar to the Common-Lisp function of the same name. 3628 It is similar to the Common-Lisp function of the same name.
4110 One difference is that it guarantees to return the original argument 3629 One difference is that it guarantees to return the original argument
4111 if no expansion is done, which can be tested using `eq'. 3630 if no expansion is done, which can be tested using `eq'.
4112 3631
4113 +++
4114 *** The function `atan' now accepts an optional second argument. 3632 *** The function `atan' now accepts an optional second argument.
4115 3633
4116 When called with 2 arguments, as in `(atan Y X)', `atan' returns the 3634 When called with 2 arguments, as in `(atan Y X)', `atan' returns the
4117 angle in radians between the vector [X, Y] and the X axis. (This is 3635 angle in radians between the vector [X, Y] and the X axis. (This is
4118 equivalent to the standard C library function `atan2'.) 3636 equivalent to the standard C library function `atan2'.)
4119 3637
4120 +++
4121 *** A function or macro's doc string can now specify the calling pattern. 3638 *** A function or macro's doc string can now specify the calling pattern.
4122 3639
4123 You put this info in the doc string's last line. It should be 3640 You put this info in the doc string's last line. It should be
4124 formatted so as to match the regexp "\n\n(fn .*)\\'". If you don't 3641 formatted so as to match the regexp "\n\n(fn .*)\\'". If you don't
4125 specify this explicitly, Emacs determines it from the actual argument 3642 specify this explicitly, Emacs determines it from the actual argument
4126 names. Usually that default is right, but not always. 3643 names. Usually that default is right, but not always.
4127 3644
4128 +++
4129 *** New macro `with-local-quit' temporarily allows quitting. 3645 *** New macro `with-local-quit' temporarily allows quitting.
4130 3646
4131 A quit inside the body of `with-local-quit' is caught by the 3647 A quit inside the body of `with-local-quit' is caught by the
4132 `with-local-quit' form itself, but another quit will happen later once 3648 `with-local-quit' form itself, but another quit will happen later once
4133 the code that has inhibited quitting exits. 3649 the code that has inhibited quitting exits.
4134 3650
4135 This is for use around potentially blocking or long-running code 3651 This is for use around potentially blocking or long-running code
4136 inside timer functions and `post-command-hook' functions. 3652 inside timer functions and `post-command-hook' functions.
4137 3653
4138 +++
4139 *** New macro `define-obsolete-function-alias'. 3654 *** New macro `define-obsolete-function-alias'.
4140 3655
4141 This combines `defalias' and `make-obsolete'. 3656 This combines `defalias' and `make-obsolete'.
4142 3657
4143 +++
4144 *** New macro `with-case-table' 3658 *** New macro `with-case-table'
4145 3659
4146 This executes the body with the case table temporarily set to a given 3660 This executes the body with the case table temporarily set to a given
4147 case table. 3661 case table.
4148 3662
4149 +++
4150 *** New function `unsafep' determines whether a Lisp form is safe. 3663 *** New function `unsafep' determines whether a Lisp form is safe.
4151 3664
4152 It returns nil if the given Lisp form can't possibly do anything 3665 It returns nil if the given Lisp form can't possibly do anything
4153 dangerous; otherwise it returns a reason why the form might be unsafe 3666 dangerous; otherwise it returns a reason why the form might be unsafe
4154 (calls unknown function, alters global variable, etc.). 3667 (calls unknown function, alters global variable, etc.).
4155 3668
4156 +++
4157 *** New macro `eval-at-startup' specifies expressions to 3669 *** New macro `eval-at-startup' specifies expressions to
4158 evaluate when Emacs starts up. If this is done after startup, 3670 evaluate when Emacs starts up. If this is done after startup,
4159 it evaluates those expressions immediately. 3671 it evaluates those expressions immediately.
4160 3672
4161 This is useful in packages that can be preloaded. 3673 This is useful in packages that can be preloaded.
4162 3674
4163 +++
4164 *** `list-faces-display' takes an optional argument, REGEXP. 3675 *** `list-faces-display' takes an optional argument, REGEXP.
4165 3676
4166 If it is non-nil, the function lists only faces matching this regexp. 3677 If it is non-nil, the function lists only faces matching this regexp.
4167 3678
4168 +++
4169 *** New functions `string-or-null-p' and `booleanp'. 3679 *** New functions `string-or-null-p' and `booleanp'.
4170 3680
4171 `string-or-null-p' returns non-nil iff OBJECT is a string or nil. 3681 `string-or-null-p' returns non-nil iff OBJECT is a string or nil.
4172 `booleanp' returns non-nil iff OBJECT is t or nil. 3682 `booleanp' returns non-nil iff OBJECT is t or nil.
4173 3683
4174 +++
4175 *** New hook `command-error-function'. 3684 *** New hook `command-error-function'.
4176 3685
4177 By setting this variable to a function, you can control 3686 By setting this variable to a function, you can control
4178 how the editor command loop shows the user an error message. 3687 how the editor command loop shows the user an error message.
4179 3688
4180 +++ 3689 *** `debug-on-entry' accepts primitive functions that are not special forms.
4181 *** `debug-on-entry' accepts primitive functions that are not special forms
4182 now.
4183 3690
4184 ** Lisp code indentation features: 3691 ** Lisp code indentation features:
4185 3692
4186 +++
4187 *** The `defmacro' form can contain indentation and edebug declarations. 3693 *** The `defmacro' form can contain indentation and edebug declarations.
4188 3694
4189 These declarations specify how to indent the macro calls in Lisp mode 3695 These declarations specify how to indent the macro calls in Lisp mode
4190 and how to debug them with Edebug. You write them like this: 3696 and how to debug them with Edebug. You write them like this:
4191 3697
4200 (edebug DEBUG) 3706 (edebug DEBUG)
4201 Set NAME's `edebug-form-spec' property to DEBUG. (This is 3707 Set NAME's `edebug-form-spec' property to DEBUG. (This is
4202 equivalent to writing a `def-edebug-spec' for the macro, 3708 equivalent to writing a `def-edebug-spec' for the macro,
4203 but this is cleaner.) 3709 but this is cleaner.)
4204 3710
4205 ---
4206 *** cl-indent now allows customization of Indentation of backquoted forms. 3711 *** cl-indent now allows customization of Indentation of backquoted forms.
4207 3712
4208 See the new user option `lisp-backquote-indentation'. 3713 See the new user option `lisp-backquote-indentation'.
4209 3714
4210 ---
4211 *** cl-indent now handles indentation of simple and extended `loop' forms. 3715 *** cl-indent now handles indentation of simple and extended `loop' forms.
4212 3716
4213 The new user options `lisp-loop-keyword-indentation', 3717 The new user options `lisp-loop-keyword-indentation',
4214 `lisp-loop-forms-indentation', and `lisp-simple-loop-indentation' can 3718 `lisp-loop-forms-indentation', and `lisp-simple-loop-indentation' can
4215 be used to customize the indentation of keywords and forms in loop 3719 be used to customize the indentation of keywords and forms in loop
4216 forms. 3720 forms.
4217 3721
4218 +++
4219 ** Variable aliases: 3722 ** Variable aliases:
4220 3723
4221 *** New function: defvaralias ALIAS-VAR BASE-VAR [DOCSTRING] 3724 *** New function: defvaralias ALIAS-VAR BASE-VAR [DOCSTRING]
4222 3725
4223 This function defines the symbol ALIAS-VAR as a variable alias for 3726 This function defines the symbol ALIAS-VAR as a variable alias for
4235 defined as an alias, the function returns VARIABLE. 3738 defined as an alias, the function returns VARIABLE.
4236 3739
4237 It might be noteworthy that variables aliases work for all kinds of 3740 It might be noteworthy that variables aliases work for all kinds of
4238 variables, including buffer-local and frame-local variables. 3741 variables, including buffer-local and frame-local variables.
4239 3742
4240 +++
4241 *** The macro `define-obsolete-variable-alias' combines `defvaralias' and 3743 *** The macro `define-obsolete-variable-alias' combines `defvaralias' and
4242 `make-obsolete-variable'. 3744 `make-obsolete-variable'.
4243 3745
4244 ** defcustom changes: 3746 ** defcustom changes:
4245 3747
4246 +++
4247 *** The package-version keyword has been added to provide 3748 *** The package-version keyword has been added to provide
4248 `customize-changed-options' functionality to packages in the future. 3749 `customize-changed-options' functionality to packages in the future.
4249 Developers who make use of this keyword must also update the new 3750 Developers who make use of this keyword must also update the new
4250 variable `customize-package-emacs-version-alist'. 3751 variable `customize-package-emacs-version-alist'.
4251 3752
4252 +++
4253 *** The new customization type `float' requires a floating point number. 3753 *** The new customization type `float' requires a floating point number.
4254 3754
4255 ** String changes: 3755 ** String changes:
4256 3756
4257 +++
4258 *** The escape sequence \s is now interpreted as a SPACE character. 3757 *** The escape sequence \s is now interpreted as a SPACE character.
4259 3758
4260 Exception: In a character constant, if it is followed by a `-' in a 3759 Exception: In a character constant, if it is followed by a `-' in a
4261 character constant (e.g. ?\s-A), it is still interpreted as the super 3760 character constant (e.g. ?\s-A), it is still interpreted as the super
4262 modifier. In strings, \s is always interpreted as a space. 3761 modifier. In strings, \s is always interpreted as a space.
4263 3762
4264 +++
4265 *** A hex escape in a string constant forces the string to be multibyte. 3763 *** A hex escape in a string constant forces the string to be multibyte.
4266 3764
4267 +++
4268 *** An octal escape in a string constant forces the string to be unibyte. 3765 *** An octal escape in a string constant forces the string to be unibyte.
4269 3766
4270 +++
4271 *** `split-string' now includes null substrings in the returned list if 3767 *** `split-string' now includes null substrings in the returned list if
4272 the optional argument SEPARATORS is non-nil and there are matches for 3768 the optional argument SEPARATORS is non-nil and there are matches for
4273 SEPARATORS at the beginning or end of the string. If SEPARATORS is 3769 SEPARATORS at the beginning or end of the string. If SEPARATORS is
4274 nil, or if the new optional third argument OMIT-NULLS is non-nil, all 3770 nil, or if the new optional third argument OMIT-NULLS is non-nil, all
4275 empty matches are omitted from the returned list. 3771 empty matches are omitted from the returned list.
4276 3772
4277 +++
4278 *** New function `string-to-multibyte' converts a unibyte string to a 3773 *** New function `string-to-multibyte' converts a unibyte string to a
4279 multibyte string with the same individual character codes. 3774 multibyte string with the same individual character codes.
4280 3775
4281 +++
4282 *** New function `substring-no-properties' returns a substring without 3776 *** New function `substring-no-properties' returns a substring without
4283 text properties. 3777 text properties.
4284 3778
4285 +++
4286 *** The new function `assoc-string' replaces `assoc-ignore-case' and 3779 *** The new function `assoc-string' replaces `assoc-ignore-case' and
4287 `assoc-ignore-representation', which are still available, but have 3780 `assoc-ignore-representation', which are still available, but have
4288 been declared obsolete. 3781 been declared obsolete.
4289 3782
4290 +++
4291 *** New syntax: \uXXXX and \UXXXXXXXX specify Unicode code points in hex. 3783 *** New syntax: \uXXXX and \UXXXXXXXX specify Unicode code points in hex.
4292 Use "\u0428" to specify a string consisting of CYRILLIC CAPITAL LETTER SHA, 3784 Use "\u0428" to specify a string consisting of CYRILLIC CAPITAL LETTER SHA,
4293 or "\U0001D6E2" to specify one consisting of MATHEMATICAL ITALIC CAPITAL 3785 or "\U0001D6E2" to specify one consisting of MATHEMATICAL ITALIC CAPITAL
4294 ALPHA (the latter is greater than #xFFFF and thus needs the longer 3786 ALPHA (the latter is greater than #xFFFF and thus needs the longer
4295 syntax). Also available for characters. 3787 syntax). Also available for characters.
4296 3788
4297 +++
4298 ** Displaying warnings to the user. 3789 ** Displaying warnings to the user.
4299 3790
4300 See the functions `warn' and `display-warning', or the Lisp Manual. 3791 See the functions `warn' and `display-warning', or the Lisp Manual.
4301 If you want to be sure the warning will not be overlooked, this 3792 If you want to be sure the warning will not be overlooked, this
4302 facility is much better than using `message', since it displays 3793 facility is much better than using `message', since it displays
4303 warnings in a separate window. 3794 warnings in a separate window.
4304 3795
4305 +++
4306 ** Progress reporters. 3796 ** Progress reporters.
4307 3797
4308 These provide a simple and uniform way for commands to present 3798 These provide a simple and uniform way for commands to present
4309 progress messages for the user. 3799 progress messages for the user.
4310 3800
4312 `progress-reporter-update', `progress-reporter-force-update', 3802 `progress-reporter-update', `progress-reporter-force-update',
4313 `progress-reporter-done', and `dotimes-with-progress-reporter'. 3803 `progress-reporter-done', and `dotimes-with-progress-reporter'.
4314 3804
4315 ** Buffer positions: 3805 ** Buffer positions:
4316 3806
4317 +++
4318 *** Function `compute-motion' now calculates the usable window 3807 *** Function `compute-motion' now calculates the usable window
4319 width if the WIDTH argument is nil. If the TOPOS argument is nil, 3808 width if the WIDTH argument is nil. If the TOPOS argument is nil,
4320 the usable window height and width is used. 3809 the usable window height and width is used.
4321 3810
4322 +++
4323 *** The `line-move', `scroll-up', and `scroll-down' functions will now 3811 *** The `line-move', `scroll-up', and `scroll-down' functions will now
4324 modify the window vscroll to scroll through display rows that are 3812 modify the window vscroll to scroll through display rows that are
4325 taller that the height of the window, for example in the presence of 3813 taller that the height of the window, for example in the presence of
4326 large images. To disable this feature, bind the new variable 3814 large images. To disable this feature, bind the new variable
4327 `auto-window-vscroll' to nil. 3815 `auto-window-vscroll' to nil.
4328 3816
4329 +++
4330 *** The argument to `forward-word', `backward-word' is optional. 3817 *** The argument to `forward-word', `backward-word' is optional.
4331 3818
4332 It defaults to 1. 3819 It defaults to 1.
4333 3820
4334 +++
4335 *** Argument to `forward-to-indentation' and `backward-to-indentation' is optional. 3821 *** Argument to `forward-to-indentation' and `backward-to-indentation' is optional.
4336 3822
4337 It defaults to 1. 3823 It defaults to 1.
4338 3824
4339 +++
4340 *** New function `mouse-on-link-p' tests if a position is in a clickable link. 3825 *** New function `mouse-on-link-p' tests if a position is in a clickable link.
4341 3826
4342 This is the function used by the new `mouse-1-click-follows-link' 3827 This is the function used by the new `mouse-1-click-follows-link'
4343 functionality. 3828 functionality.
4344 3829
4345 +++
4346 *** New function `line-number-at-pos' returns the line number of a position. 3830 *** New function `line-number-at-pos' returns the line number of a position.
4347 3831
4348 It an optional buffer position argument that defaults to point. 3832 It an optional buffer position argument that defaults to point.
4349 3833
4350 +++
4351 *** `field-beginning' and `field-end' take new optional argument, LIMIT. 3834 *** `field-beginning' and `field-end' take new optional argument, LIMIT.
4352 3835
4353 This argument tells them not to search beyond LIMIT. Instead they 3836 This argument tells them not to search beyond LIMIT. Instead they
4354 give up and return LIMIT. 3837 give up and return LIMIT.
4355 3838
4356 +++
4357 *** Function `pos-visible-in-window-p' now returns the pixel coordinates 3839 *** Function `pos-visible-in-window-p' now returns the pixel coordinates
4358 and partial visibility state of the corresponding row, if the PARTIALLY 3840 and partial visibility state of the corresponding row, if the PARTIALLY
4359 arg is non-nil. 3841 arg is non-nil.
4360 3842
4361 +++
4362 *** New function `window-line-height' is an efficient way to get 3843 *** New function `window-line-height' is an efficient way to get
4363 information about a specific text line in a window provided that the 3844 information about a specific text line in a window provided that the
4364 window's display is up-to-date. 3845 window's display is up-to-date.
4365 3846
4366 +++
4367 *** New functions `posn-at-point' and `posn-at-x-y' return 3847 *** New functions `posn-at-point' and `posn-at-x-y' return
4368 click-event-style position information for a given visible buffer 3848 click-event-style position information for a given visible buffer
4369 position or for a given window pixel coordinate. 3849 position or for a given window pixel coordinate.
4370 3850
4371 ** Text modification: 3851 ** Text modification:
4372 3852
4373 +++
4374 *** The new function `buffer-chars-modified-tick' returns a buffer's 3853 *** The new function `buffer-chars-modified-tick' returns a buffer's
4375 tick counter for changes to characters. Each time text in that buffer 3854 tick counter for changes to characters. Each time text in that buffer
4376 is inserted or deleted, the character-change counter is updated to the 3855 is inserted or deleted, the character-change counter is updated to the
4377 tick counter (`buffer-modified-tick'). Text property changes leave it 3856 tick counter (`buffer-modified-tick'). Text property changes leave it
4378 unchanged. 3857 unchanged.
4379 3858
4380 +++
4381 *** The new function `insert-for-yank' normally works like `insert', but 3859 *** The new function `insert-for-yank' normally works like `insert', but
4382 removes the text properties in the `yank-excluded-properties' list 3860 removes the text properties in the `yank-excluded-properties' list
4383 and handles the `yank-handler' text property. 3861 and handles the `yank-handler' text property.
4384 3862
4385 +++
4386 *** The new function `insert-buffer-substring-as-yank' is like 3863 *** The new function `insert-buffer-substring-as-yank' is like
4387 `insert-for-yank' except that it gets the text from another buffer as 3864 `insert-for-yank' except that it gets the text from another buffer as
4388 in `insert-buffer-substring'. 3865 in `insert-buffer-substring'.
4389 3866
4390 +++
4391 *** The new function `insert-buffer-substring-no-properties' is like 3867 *** The new function `insert-buffer-substring-no-properties' is like
4392 `insert-buffer-substring', but removes all text properties from the 3868 `insert-buffer-substring', but removes all text properties from the
4393 inserted substring. 3869 inserted substring.
4394 3870
4395 +++
4396 *** The new function `filter-buffer-substring' extracts a buffer 3871 *** The new function `filter-buffer-substring' extracts a buffer
4397 substring, passes it through a set of filter functions, and returns 3872 substring, passes it through a set of filter functions, and returns
4398 the filtered substring. Use it instead of `buffer-substring' or 3873 the filtered substring. Use it instead of `buffer-substring' or
4399 `delete-and-extract-region' when copying text into a user-accessible 3874 `delete-and-extract-region' when copying text into a user-accessible
4400 data structure, such as the kill-ring, X clipboard, or a register. 3875 data structure, such as the kill-ring, X clipboard, or a register.
4402 The list of filter function is specified by the new variable 3877 The list of filter function is specified by the new variable
4403 `buffer-substring-filters'. For example, Longlines mode adds to 3878 `buffer-substring-filters'. For example, Longlines mode adds to
4404 `buffer-substring-filters' to remove soft newlines from the copied 3879 `buffer-substring-filters' to remove soft newlines from the copied
4405 text. 3880 text.
4406 3881
4407 +++
4408 *** Function `translate-region' accepts also a char-table as TABLE 3882 *** Function `translate-region' accepts also a char-table as TABLE
4409 argument. 3883 argument.
4410 3884
4411 +++
4412 *** The new translation table `translation-table-for-input' 3885 *** The new translation table `translation-table-for-input'
4413 is used for customizing self-insertion. The character to 3886 is used for customizing self-insertion. The character to
4414 be inserted is translated through it. 3887 be inserted is translated through it.
4415 3888
4416 ---
4417 *** Text clones. 3889 *** Text clones.
4418 3890
4419 The new function `text-clone-create'. Text clones are chunks of text 3891 The new function `text-clone-create'. Text clones are chunks of text
4420 that are kept identical by transparently propagating changes from one 3892 that are kept identical by transparently propagating changes from one
4421 clone to the other. 3893 clone to the other.
4422 3894
4423 ---
4424 *** The function `insert-string' is now obsolete. 3895 *** The function `insert-string' is now obsolete.
4425 3896
4426 ** Filling changes. 3897 ** Filling changes.
4427 3898
4428 +++
4429 *** In determining an adaptive fill prefix, Emacs now tries the function in 3899 *** In determining an adaptive fill prefix, Emacs now tries the function in
4430 `adaptive-fill-function' _before_ matching the buffer line against 3900 `adaptive-fill-function' _before_ matching the buffer line against
4431 `adaptive-fill-regexp' rather than _after_ it. 3901 `adaptive-fill-regexp' rather than _after_ it.
4432 3902
4433 +++
4434 ** Atomic change groups. 3903 ** Atomic change groups.
4435 3904
4436 To perform some changes in the current buffer "atomically" so that 3905 To perform some changes in the current buffer "atomically" so that
4437 they either all succeed or are all undone, use `atomic-change-group' 3906 they either all succeed or are all undone, use `atomic-change-group'
4438 around the code that makes changes. For instance: 3907 around the code that makes changes. For instance:
4488 change group you start for any given buffer should be the last one 3957 change group you start for any given buffer should be the last one
4489 finished. 3958 finished.
4490 3959
4491 ** Buffer-related changes: 3960 ** Buffer-related changes:
4492 3961
4493 ---
4494 *** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST. 3962 *** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST.
4495 3963
4496 If it is non-nil, it specifies which buffers to list. 3964 If it is non-nil, it specifies which buffers to list.
4497 3965
4498 +++
4499 *** `kill-buffer-hook' is now a permanent local. 3966 *** `kill-buffer-hook' is now a permanent local.
4500 3967
4501 +++
4502 *** The new function `buffer-local-value' returns the buffer-local 3968 *** The new function `buffer-local-value' returns the buffer-local
4503 binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not 3969 binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not
4504 have a buffer-local binding in buffer BUFFER, it returns the default 3970 have a buffer-local binding in buffer BUFFER, it returns the default
4505 value of VARIABLE instead. 3971 value of VARIABLE instead.
4506 3972
4507 ---
4508 *** The function `frame-or-buffer-changed-p' now lets you maintain 3973 *** The function `frame-or-buffer-changed-p' now lets you maintain
4509 various status records in parallel. 3974 various status records in parallel.
4510 3975
4511 It takes a variable (a symbol) as argument. If the variable is non-nil, 3976 It takes a variable (a symbol) as argument. If the variable is non-nil,
4512 then its value should be a vector installed previously by 3977 then its value should be a vector installed previously by
4522 3987
4523 If the variable is itself nil, then `frame-or-buffer-changed-p' uses, 3988 If the variable is itself nil, then `frame-or-buffer-changed-p' uses,
4524 for compatibility, an internal variable which exists only for this 3989 for compatibility, an internal variable which exists only for this
4525 purpose. 3990 purpose.
4526 3991
4527 +++
4528 *** The function `read-buffer' follows the convention for reading from 3992 *** The function `read-buffer' follows the convention for reading from
4529 the minibuffer with a default value: if DEF is non-nil, the minibuffer 3993 the minibuffer with a default value: if DEF is non-nil, the minibuffer
4530 prompt provided in PROMPT is edited to show the default value provided 3994 prompt provided in PROMPT is edited to show the default value provided
4531 in DEF before the terminal colon and space. 3995 in DEF before the terminal colon and space.
4532 3996
4533 ** Searching and matching changes: 3997 ** Searching and matching changes:
4534 3998
4535 +++
4536 *** New function `looking-back' checks whether a regular expression matches 3999 *** New function `looking-back' checks whether a regular expression matches
4537 the text before point. Specifying the LIMIT argument bounds how far 4000 the text before point. Specifying the LIMIT argument bounds how far
4538 back the match can start; this is a way to keep it from taking too long. 4001 back the match can start; this is a way to keep it from taking too long.
4539 4002
4540 +++
4541 *** The new variable `search-spaces-regexp' controls how to search 4003 *** The new variable `search-spaces-regexp' controls how to search
4542 for spaces in a regular expression. If it is non-nil, it should be a 4004 for spaces in a regular expression. If it is non-nil, it should be a
4543 regular expression, and any series of spaces stands for that regular 4005 regular expression, and any series of spaces stands for that regular
4544 expression. If it is nil, spaces stand for themselves. 4006 expression. If it is nil, spaces stand for themselves.
4545 4007
4546 Spaces inside of constructs such as `[..]' and inside loops such as 4008 Spaces inside of constructs such as `[..]' and inside loops such as
4547 `*', `+', and `?' are never replaced with `search-spaces-regexp'. 4009 `*', `+', and `?' are never replaced with `search-spaces-regexp'.
4548 4010
4549 +++
4550 *** New regular expression operators, `\_<' and `\_>'. 4011 *** New regular expression operators, `\_<' and `\_>'.
4551 4012
4552 These match the beginning and end of a symbol. A symbol is a 4013 These match the beginning and end of a symbol. A symbol is a
4553 non-empty sequence of either word or symbol constituent characters, as 4014 non-empty sequence of either word or symbol constituent characters, as
4554 specified by the syntax table. 4015 specified by the syntax table.
4555 4016
4556 ---
4557 *** rx.el has new corresponding `symbol-start' and `symbol-end' elements. 4017 *** rx.el has new corresponding `symbol-start' and `symbol-end' elements.
4558 4018
4559 +++
4560 *** `skip-chars-forward' and `skip-chars-backward' now handle 4019 *** `skip-chars-forward' and `skip-chars-backward' now handle
4561 character classes such as `[:alpha:]', along with individual 4020 character classes such as `[:alpha:]', along with individual
4562 characters and ranges. 4021 characters and ranges.
4563 4022
4564 ---
4565 *** In `replace-match', the replacement text no longer inherits 4023 *** In `replace-match', the replacement text no longer inherits
4566 properties from surrounding text. 4024 properties from surrounding text.
4567 4025
4568 +++
4569 *** The list returned by `(match-data t)' now has the buffer as a final 4026 *** The list returned by `(match-data t)' now has the buffer as a final
4570 element, if the last match was on a buffer. `set-match-data' 4027 element, if the last match was on a buffer. `set-match-data'
4571 accepts such a list for restoring the match state. 4028 accepts such a list for restoring the match state.
4572 4029
4573 +++
4574 *** Functions `match-data' and `set-match-data' now have an optional 4030 *** Functions `match-data' and `set-match-data' now have an optional
4575 argument `reseat'. When non-nil, all markers in the match data list 4031 argument `reseat'. When non-nil, all markers in the match data list
4576 passed to these functions will be reseated to point to nowhere. 4032 passed to these functions will be reseated to point to nowhere.
4577 4033
4578 +++
4579 *** The default value of `sentence-end' is now defined using the new 4034 *** The default value of `sentence-end' is now defined using the new
4580 variable `sentence-end-without-space', which contains such characters 4035 variable `sentence-end-without-space', which contains such characters
4581 that end a sentence without following spaces. 4036 that end a sentence without following spaces.
4582 4037
4583 The function `sentence-end' should be used to obtain the value of the 4038 The function `sentence-end' should be used to obtain the value of the
4586 `sentence-end-without-period', `sentence-end-double-space' and 4041 `sentence-end-without-period', `sentence-end-double-space' and
4587 `sentence-end-without-space'. 4042 `sentence-end-without-space'.
4588 4043
4589 ** Undo changes: 4044 ** Undo changes:
4590 4045
4591 +++
4592 *** `buffer-undo-list' allows programmable elements. 4046 *** `buffer-undo-list' allows programmable elements.
4593 4047
4594 These elements have the form (apply FUNNAME . ARGS), where FUNNAME is 4048 These elements have the form (apply FUNNAME . ARGS), where FUNNAME is
4595 a symbol other than t or nil. That stands for a high-level change 4049 a symbol other than t or nil. That stands for a high-level change
4596 that should be undone by evaluating (apply FUNNAME ARGS). 4050 that should be undone by evaluating (apply FUNNAME ARGS).
4597 4051
4598 These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS) 4052 These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS)
4599 which indicates that the change which took place was limited to the 4053 which indicates that the change which took place was limited to the
4600 range BEG...END and increased the buffer size by DELTA. 4054 range BEG...END and increased the buffer size by DELTA.
4601 4055
4602 +++
4603 *** If the buffer's undo list for the current command gets longer than 4056 *** If the buffer's undo list for the current command gets longer than
4604 `undo-outer-limit', garbage collection empties it. This is to prevent 4057 `undo-outer-limit', garbage collection empties it. This is to prevent
4605 it from using up the available memory and choking Emacs. 4058 it from using up the available memory and choking Emacs.
4606 4059
4607 +++
4608 ** New `yank-handler' text property can be used to control how 4060 ** New `yank-handler' text property can be used to control how
4609 previously killed text on the kill ring is reinserted. 4061 previously killed text on the kill ring is reinserted.
4610 4062
4611 The value of the `yank-handler' property must be a list with one to four 4063 The value of the `yank-handler' property must be a list with one to four
4612 elements with the following format: 4064 elements with the following format:
4647 string. The old behavior is available if you call 4099 string. The old behavior is available if you call
4648 `insert-for-yank-1' instead. 4100 `insert-for-yank-1' instead.
4649 4101
4650 ** Syntax table changes: 4102 ** Syntax table changes:
4651 4103
4652 +++
4653 *** The macro `with-syntax-table' no longer copies the syntax table. 4104 *** The macro `with-syntax-table' no longer copies the syntax table.
4654 4105
4655 +++
4656 *** The new function `syntax-after' returns the syntax code 4106 *** The new function `syntax-after' returns the syntax code
4657 of the character after a specified buffer position, taking account 4107 of the character after a specified buffer position, taking account
4658 of text properties as well as the character code. 4108 of text properties as well as the character code.
4659 4109
4660 +++
4661 *** `syntax-class' extracts the class of a syntax code (as returned 4110 *** `syntax-class' extracts the class of a syntax code (as returned
4662 by `syntax-after'). 4111 by `syntax-after').
4663 4112
4664 +++
4665 *** The new function `syntax-ppss' provides an efficient way to find the 4113 *** The new function `syntax-ppss' provides an efficient way to find the
4666 current syntactic context at point. 4114 current syntactic context at point.
4667 4115
4668 ** File operation changes: 4116 ** File operation changes:
4669 4117
4670 +++
4671 *** New vars `exec-suffixes' and `load-suffixes' used when 4118 *** New vars `exec-suffixes' and `load-suffixes' used when
4672 searching for an executable or an Emacs Lisp file. 4119 searching for an executable or an Emacs Lisp file.
4673 4120
4674 +++
4675 *** The new primitive `set-file-times' sets a file's access and 4121 *** The new primitive `set-file-times' sets a file's access and
4676 modification times. Magic file name handlers can handle this 4122 modification times. Magic file name handlers can handle this
4677 operation. 4123 operation.
4678 4124
4679 +++
4680 *** The new function `file-remote-p' tests a file name and returns 4125 *** The new function `file-remote-p' tests a file name and returns
4681 non-nil if it specifies a remote file (one that Emacs accesses using 4126 non-nil if it specifies a remote file (one that Emacs accesses using
4682 its own special methods and not directly through the file system). 4127 its own special methods and not directly through the file system).
4683 The value in that case is an identifier for the remote file system. 4128 The value in that case is an identifier for the remote file system.
4684 4129
4685 +++
4686 *** `buffer-auto-save-file-format' is the new name for what was 4130 *** `buffer-auto-save-file-format' is the new name for what was
4687 formerly called `auto-save-file-format'. It is now a permanent local. 4131 formerly called `auto-save-file-format'. It is now a permanent local.
4688 4132
4689 +++
4690 *** Functions `file-name-sans-extension' and `file-name-extension' now 4133 *** Functions `file-name-sans-extension' and `file-name-extension' now
4691 ignore the leading dots in file names, so that file names such as 4134 ignore the leading dots in file names, so that file names such as
4692 `.emacs' are treated as extensionless. 4135 `.emacs' are treated as extensionless.
4693 4136
4694 +++
4695 *** `visited-file-modtime' and `calendar-time-from-absolute' now return 4137 *** `visited-file-modtime' and `calendar-time-from-absolute' now return
4696 a list of two integers, instead of a cons. 4138 a list of two integers, instead of a cons.
4697 4139
4698 +++
4699 *** `file-chase-links' now takes an optional second argument LIMIT which 4140 *** `file-chase-links' now takes an optional second argument LIMIT which
4700 specifies the maximum number of links to chase through. If after that 4141 specifies the maximum number of links to chase through. If after that
4701 many iterations the file name obtained is still a symbolic link, 4142 many iterations the file name obtained is still a symbolic link,
4702 `file-chase-links' returns it anyway. 4143 `file-chase-links' returns it anyway.
4703 4144
4704 +++
4705 *** The new hook `before-save-hook' is invoked by `basic-save-buffer' 4145 *** The new hook `before-save-hook' is invoked by `basic-save-buffer'
4706 before saving buffers. This allows packages to perform various final 4146 before saving buffers. This allows packages to perform various final
4707 tasks. For example, it can be used by the copyright package to make 4147 tasks. For example, it can be used by the copyright package to make
4708 sure saved files have the current year in any copyright headers. 4148 sure saved files have the current year in any copyright headers.
4709 4149
4710 +++
4711 *** If `buffer-save-without-query' is non-nil in some buffer, 4150 *** If `buffer-save-without-query' is non-nil in some buffer,
4712 `save-some-buffers' will always save that buffer without asking (if 4151 `save-some-buffers' will always save that buffer without asking (if
4713 it's modified). 4152 it's modified).
4714 4153
4715 +++
4716 *** New function `locate-file' searches for a file in a list of directories. 4154 *** New function `locate-file' searches for a file in a list of directories.
4717 `locate-file' accepts a name of a file to search (a string), and two 4155 `locate-file' accepts a name of a file to search (a string), and two
4718 lists: a list of directories to search in and a list of suffixes to 4156 lists: a list of directories to search in and a list of suffixes to
4719 try; typical usage might use `exec-path' and `load-path' for the list 4157 try; typical usage might use `exec-path' and `load-path' for the list
4720 of directories, and `exec-suffixes' and `load-suffixes' for the list 4158 of directories, and `exec-suffixes' and `load-suffixes' for the list
4723 4161
4724 One advantage of using this function is that the list of suffixes in 4162 One advantage of using this function is that the list of suffixes in
4725 `exec-suffixes' is OS-dependant, so this function will find 4163 `exec-suffixes' is OS-dependant, so this function will find
4726 executables without polluting Lisp code with OS dependencies. 4164 executables without polluting Lisp code with OS dependencies.
4727 4165
4728 ---
4729 *** The precedence of file name handlers has been changed. 4166 *** The precedence of file name handlers has been changed.
4730 4167
4731 Instead of choosing the first handler that matches, 4168 Instead of choosing the first handler that matches,
4732 `find-file-name-handler' now gives precedence to a file name handler 4169 `find-file-name-handler' now gives precedence to a file name handler
4733 that matches nearest the end of the file name. More precisely, the 4170 that matches nearest the end of the file name. More precisely, the
4734 handler whose (match-beginning 0) is the largest is chosen. In case 4171 handler whose (match-beginning 0) is the largest is chosen. In case
4735 of ties, the old "first matched" rule applies. 4172 of ties, the old "first matched" rule applies.
4736 4173
4737 +++
4738 *** A file name handler can declare which operations it handles. 4174 *** A file name handler can declare which operations it handles.
4739 4175
4740 You do this by putting an `operation' property on the handler name 4176 You do this by putting an `operation' property on the handler name
4741 symbol. The property value should be a list of the operations that 4177 symbol. The property value should be a list of the operations that
4742 the handler really handles. It won't be called for any other 4178 the handler really handles. It won't be called for any other
4743 operations. 4179 operations.
4744 4180
4745 This is useful for autoloaded handlers, to prevent them from being 4181 This is useful for autoloaded handlers, to prevent them from being
4746 autoloaded when not really necessary. 4182 autoloaded when not really necessary.
4747 4183
4748 +++
4749 *** The function `make-auto-save-file-name' is now handled by file 4184 *** The function `make-auto-save-file-name' is now handled by file
4750 name handlers. This will be exploited for remote files mainly. 4185 name handlers. This will be exploited for remote files mainly.
4751 4186
4752 +++
4753 *** The function `file-name-completion' accepts an optional argument 4187 *** The function `file-name-completion' accepts an optional argument
4754 PREDICATE, and rejects completion candidates that don't satisfy PREDICATE. 4188 PREDICATE, and rejects completion candidates that don't satisfy PREDICATE.
4755 4189
4756 ** Input changes: 4190 ** Input changes:
4757 4191
4758 +++
4759 *** The functions `read-event', `read-char', and `read-char-exclusive' 4192 *** The functions `read-event', `read-char', and `read-char-exclusive'
4760 have a new optional argument SECONDS. If non-nil, this specifies a 4193 have a new optional argument SECONDS. If non-nil, this specifies a
4761 maximum time to wait for input, in seconds. If no input arrives after 4194 maximum time to wait for input, in seconds. If no input arrives after
4762 this time elapses, the functions stop waiting and return nil. 4195 this time elapses, the functions stop waiting and return nil.
4763 4196
4764 +++
4765 *** An interactive specification can now use the code letter `U' to get 4197 *** An interactive specification can now use the code letter `U' to get
4766 the up-event that was discarded in case the last key sequence read for a 4198 the up-event that was discarded in case the last key sequence read for a
4767 previous `k' or `K' argument was a down-event; otherwise nil is used. 4199 previous `k' or `K' argument was a down-event; otherwise nil is used.
4768 4200
4769 +++
4770 *** The new interactive-specification `G' reads a file name 4201 *** The new interactive-specification `G' reads a file name
4771 much like `F', but if the input is a directory name (even defaulted), 4202 much like `F', but if the input is a directory name (even defaulted),
4772 it returns just the directory name. 4203 it returns just the directory name.
4773 4204
4774 ---
4775 *** Functions `y-or-n-p', `read-char', `read-key-sequence' and the like, that 4205 *** Functions `y-or-n-p', `read-char', `read-key-sequence' and the like, that
4776 display a prompt but don't use the minibuffer, now display the prompt 4206 display a prompt but don't use the minibuffer, now display the prompt
4777 using the text properties (esp. the face) of the prompt string. 4207 using the text properties (esp. the face) of the prompt string.
4778 4208
4779 +++
4780 *** (while-no-input BODY...) runs BODY, but only so long as no input 4209 *** (while-no-input BODY...) runs BODY, but only so long as no input
4781 arrives. If the user types or clicks anything, BODY stops as if a 4210 arrives. If the user types or clicks anything, BODY stops as if a
4782 quit had occurred. `while-no-input' returns the value of BODY, if BODY 4211 quit had occurred. `while-no-input' returns the value of BODY, if BODY
4783 finishes. It returns nil if BODY was aborted by a quit, and t if 4212 finishes. It returns nil if BODY was aborted by a quit, and t if
4784 BODY was aborted by arrival of input. 4213 BODY was aborted by arrival of input.
4785 4214
4786 +++
4787 *** `recent-keys' now returns the last 300 keys. 4215 *** `recent-keys' now returns the last 300 keys.
4788 4216
4789 ** Minibuffer changes: 4217 ** Minibuffer changes:
4790 4218
4791 +++
4792 *** The new function `minibufferp' returns non-nil if its optional 4219 *** The new function `minibufferp' returns non-nil if its optional
4793 buffer argument is a minibuffer. If the argument is omitted, it 4220 buffer argument is a minibuffer. If the argument is omitted, it
4794 defaults to the current buffer. 4221 defaults to the current buffer.
4795 4222
4796 +++
4797 *** New function `minibuffer-selected-window' returns the window which 4223 *** New function `minibuffer-selected-window' returns the window which
4798 was selected when entering the minibuffer. 4224 was selected when entering the minibuffer.
4799 4225
4800 +++
4801 *** The `read-file-name' function now takes an additional argument which 4226 *** The `read-file-name' function now takes an additional argument which
4802 specifies a predicate which the file name read must satisfy. The 4227 specifies a predicate which the file name read must satisfy. The
4803 new variable `read-file-name-predicate' contains the predicate argument 4228 new variable `read-file-name-predicate' contains the predicate argument
4804 while reading the file name from the minibuffer; the predicate in this 4229 while reading the file name from the minibuffer; the predicate in this
4805 variable is used by read-file-name-internal to filter the completion list. 4230 variable is used by read-file-name-internal to filter the completion list.
4806 4231
4807 ---
4808 *** The new variable `read-file-name-function' can be used by Lisp code 4232 *** The new variable `read-file-name-function' can be used by Lisp code
4809 to override the built-in `read-file-name' function. 4233 to override the built-in `read-file-name' function.
4810 4234
4811 +++
4812 *** The new variable `read-file-name-completion-ignore-case' specifies 4235 *** The new variable `read-file-name-completion-ignore-case' specifies
4813 whether completion ignores case when reading a file name with the 4236 whether completion ignores case when reading a file name with the
4814 `read-file-name' function. 4237 `read-file-name' function.
4815 4238
4816 +++
4817 *** The new function `read-directory-name' is for reading a directory name. 4239 *** The new function `read-directory-name' is for reading a directory name.
4818 4240
4819 It is like `read-file-name' except that the defaulting works better 4241 It is like `read-file-name' except that the defaulting works better
4820 for directories, and completion inside it shows only directories. 4242 for directories, and completion inside it shows only directories.
4821 4243
4822 +++
4823 *** The new variable `history-add-new-input' specifies whether to add new 4244 *** The new variable `history-add-new-input' specifies whether to add new
4824 elements in history. If set to nil, minibuffer reading functions don't 4245 elements in history. If set to nil, minibuffer reading functions don't
4825 add new elements to the history list, so it is possible to do this 4246 add new elements to the history list, so it is possible to do this
4826 afterwards by calling `add-to-history' explicitly. 4247 afterwards by calling `add-to-history' explicitly.
4827 4248
4828 ** Completion changes: 4249 ** Completion changes:
4829 4250
4830 +++
4831 *** The new function `minibuffer-completion-contents' returns the contents 4251 *** The new function `minibuffer-completion-contents' returns the contents
4832 of the minibuffer just before point. That is what completion commands 4252 of the minibuffer just before point. That is what completion commands
4833 operate on. 4253 operate on.
4834 4254
4835 +++
4836 *** The functions `all-completions' and `try-completion' now accept lists 4255 *** The functions `all-completions' and `try-completion' now accept lists
4837 of strings as well as hash-tables additionally to alists, obarrays 4256 of strings as well as hash-tables additionally to alists, obarrays
4838 and functions. Furthermore, the function `test-completion' is now 4257 and functions. Furthermore, the function `test-completion' is now
4839 exported to Lisp. The keys in alists and hash tables can be either 4258 exported to Lisp. The keys in alists and hash tables can be either
4840 strings or symbols, which are automatically converted with to strings. 4259 strings or symbols, which are automatically converted with to strings.
4841 4260
4842 +++
4843 *** The new macro `dynamic-completion-table' supports using functions 4261 *** The new macro `dynamic-completion-table' supports using functions
4844 as a dynamic completion table. 4262 as a dynamic completion table.
4845 4263
4846 (dynamic-completion-table FUN) 4264 (dynamic-completion-table FUN)
4847 4265
4850 completions. This alist can be a full list of possible completions so that FUN 4268 completions. This alist can be a full list of possible completions so that FUN
4851 can ignore the value of its argument. If completion is performed in the 4269 can ignore the value of its argument. If completion is performed in the
4852 minibuffer, FUN will be called in the buffer from which the minibuffer was 4270 minibuffer, FUN will be called in the buffer from which the minibuffer was
4853 entered. `dynamic-completion-table' then computes the completion. 4271 entered. `dynamic-completion-table' then computes the completion.
4854 4272
4855 +++
4856 *** The new macro `lazy-completion-table' initializes a variable 4273 *** The new macro `lazy-completion-table' initializes a variable
4857 as a lazy completion table. 4274 as a lazy completion table.
4858 4275
4859 (lazy-completion-table VAR FUN) 4276 (lazy-completion-table VAR FUN)
4860 4277
4863 arguments. FUN must return the completion table that will be stored in VAR. 4280 arguments. FUN must return the completion table that will be stored in VAR.
4864 If completion is requested in the minibuffer, FUN will be called in the buffer 4281 If completion is requested in the minibuffer, FUN will be called in the buffer
4865 from which the minibuffer was entered. The return value of 4282 from which the minibuffer was entered. The return value of
4866 `lazy-completion-table' must be used to initialize the value of VAR. 4283 `lazy-completion-table' must be used to initialize the value of VAR.
4867 4284
4868 +++
4869 ** Enhancements to keymaps. 4285 ** Enhancements to keymaps.
4870 4286
4871 *** New keymaps for typing file names 4287 *** New keymaps for typing file names
4872 4288
4873 Two new keymaps, `minibuffer-local-filename-completion-map' and 4289 Two new keymaps, `minibuffer-local-filename-completion-map' and
4982 *** The definition of a key-binding passed to define-key can use XEmacs-style 4398 *** The definition of a key-binding passed to define-key can use XEmacs-style
4983 key-sequences, such as [(control a)]. 4399 key-sequences, such as [(control a)].
4984 4400
4985 ** Abbrev changes: 4401 ** Abbrev changes:
4986 4402
4987 +++
4988 *** The new function `copy-abbrev-table' copies an abbrev table. 4403 *** The new function `copy-abbrev-table' copies an abbrev table.
4989 4404
4990 It returns a new abbrev table that is a copy of a given abbrev table. 4405 It returns a new abbrev table that is a copy of a given abbrev table.
4991 4406
4992 +++
4993 *** `define-abbrev' now accepts an optional argument SYSTEM-FLAG. 4407 *** `define-abbrev' now accepts an optional argument SYSTEM-FLAG.
4994 4408
4995 If non-nil, this marks the abbrev as a "system" abbrev, which means 4409 If non-nil, this marks the abbrev as a "system" abbrev, which means
4996 that it won't be stored in the user's abbrevs file if he saves the 4410 that it won't be stored in the user's abbrevs file if he saves the
4997 abbrevs. Major modes that predefine some abbrevs should always 4411 abbrevs. Major modes that predefine some abbrevs should always
4998 specify this flag. 4412 specify this flag.
4999 4413
5000 +++
5001 ** Enhancements to process support 4414 ** Enhancements to process support
5002 4415
5003 *** Function `list-processes' now has an optional argument; if non-nil, 4416 *** Function `list-processes' now has an optional argument; if non-nil,
5004 it lists only the processes whose query-on-exit flag is set. 4417 it lists only the processes whose query-on-exit flag is set.
5005 4418
5062 buffer is multibyte, the output of the process is at first converted 4475 buffer is multibyte, the output of the process is at first converted
5063 to multibyte by `string-to-multibyte' then inserted in the buffer. 4476 to multibyte by `string-to-multibyte' then inserted in the buffer.
5064 Previously, it was converted to multibyte by `string-as-multibyte', 4477 Previously, it was converted to multibyte by `string-as-multibyte',
5065 which was not compatible with the behavior of file reading. 4478 which was not compatible with the behavior of file reading.
5066 4479
5067 +++
5068 ** Enhanced networking support. 4480 ** Enhanced networking support.
5069 4481
5070 *** The new `make-network-process' function makes network connections. 4482 *** The new `make-network-process' function makes network connections.
5071 It allows opening of stream and datagram connections to a server, as well as 4483 It allows opening of stream and datagram connections to a server, as well as
5072 create a stream or datagram server inside Emacs. 4484 create a stream or datagram server inside Emacs.
5134 connection is closed by the remote peer has been changed to 4546 connection is closed by the remote peer has been changed to
5135 "connection broken by remote peer". 4547 "connection broken by remote peer".
5136 4548
5137 ** Using window objects: 4549 ** Using window objects:
5138 4550
5139 +++
5140 *** New function `window-body-height'. 4551 *** New function `window-body-height'.
5141 4552
5142 This is like `window-height' but does not count the mode line or the 4553 This is like `window-height' but does not count the mode line or the
5143 header line. 4554 header line.
5144 4555
5145 +++
5146 *** You can now make a window as short as one line. 4556 *** You can now make a window as short as one line.
5147 4557
5148 A window that is just one line tall does not display either a mode 4558 A window that is just one line tall does not display either a mode
5149 line or a header line, even if the variables `mode-line-format' and 4559 line or a header line, even if the variables `mode-line-format' and
5150 `header-line-format' call for them. A window that is two lines tall 4560 `header-line-format' call for them. A window that is two lines tall
5151 cannot display both a mode line and a header line at once; if the 4561 cannot display both a mode line and a header line at once; if the
5152 variables call for both, only the mode line actually appears. 4562 variables call for both, only the mode line actually appears.
5153 4563
5154 +++
5155 *** The new function `window-inside-edges' returns the edges of the 4564 *** The new function `window-inside-edges' returns the edges of the
5156 actual text portion of the window, not including the scroll bar or 4565 actual text portion of the window, not including the scroll bar or
5157 divider line, the fringes, the display margins, the header line and 4566 divider line, the fringes, the display margins, the header line and
5158 the mode line. 4567 the mode line.
5159 4568
5160 +++
5161 *** The new functions `window-pixel-edges' and `window-inside-pixel-edges' 4569 *** The new functions `window-pixel-edges' and `window-inside-pixel-edges'
5162 return window edges in units of pixels, rather than columns and lines. 4570 return window edges in units of pixels, rather than columns and lines.
5163 4571
5164 +++
5165 *** The new macro `with-selected-window' temporarily switches the 4572 *** The new macro `with-selected-window' temporarily switches the
5166 selected window without impacting the order of `buffer-list'. 4573 selected window without impacting the order of `buffer-list'.
5167 It saves and restores the current buffer, too. 4574 It saves and restores the current buffer, too.
5168 4575
5169 +++
5170 *** `select-window' takes an optional second argument NORECORD. 4576 *** `select-window' takes an optional second argument NORECORD.
5171 4577
5172 This is like `switch-to-buffer'. 4578 This is like `switch-to-buffer'.
5173 4579
5174 +++
5175 *** `save-selected-window' now saves and restores the selected window 4580 *** `save-selected-window' now saves and restores the selected window
5176 of every frame. This way, it restores everything that can be changed 4581 of every frame. This way, it restores everything that can be changed
5177 by calling `select-window'. It also saves and restores the current 4582 by calling `select-window'. It also saves and restores the current
5178 buffer. 4583 buffer.
5179 4584
5180 +++
5181 *** `set-window-buffer' has an optional argument KEEP-MARGINS. 4585 *** `set-window-buffer' has an optional argument KEEP-MARGINS.
5182 4586
5183 If non-nil, that says to preserve the window's current margin, fringe, 4587 If non-nil, that says to preserve the window's current margin, fringe,
5184 and scroll-bar settings. 4588 and scroll-bar settings.
5185 4589
5186 +++
5187 *** The new function `window-tree' returns a frame's window tree. 4590 *** The new function `window-tree' returns a frame's window tree.
5188 4591
5189 +++
5190 *** The functions `get-lru-window' and `get-largest-window' take an optional 4592 *** The functions `get-lru-window' and `get-largest-window' take an optional
5191 argument `dedicated'. If non-nil, those functions do not ignore 4593 argument `dedicated'. If non-nil, those functions do not ignore
5192 dedicated windows. 4594 dedicated windows.
5193 4595
5194 +++
5195 *** The new function `adjust-window-trailing-edge' moves the right 4596 *** The new function `adjust-window-trailing-edge' moves the right
5196 or bottom edge of a window. It does not move other window edges. 4597 or bottom edge of a window. It does not move other window edges.
5197 4598
5198 +++
5199 ** Customizable fringe bitmaps 4599 ** Customizable fringe bitmaps
5200 4600
5201 *** New buffer-local variables `fringe-indicator-alist' and 4601 *** New buffer-local variables `fringe-indicator-alist' and
5202 `fringe-cursor-alist' maps between logical (internal) fringe indicator 4602 `fringe-cursor-alist' maps between logical (internal) fringe indicator
5203 and cursor symbols and the actual fringe bitmaps to be displayed. 4603 and cursor symbols and the actual fringe bitmaps to be displayed.
5229 *** New function `fringe-bitmaps-at-pos' returns the current fringe 4629 *** New function `fringe-bitmaps-at-pos' returns the current fringe
5230 bitmaps in the display line at a given buffer position. 4630 bitmaps in the display line at a given buffer position.
5231 4631
5232 ** Other window fringe features: 4632 ** Other window fringe features:
5233 4633
5234 +++
5235 *** Controlling the default left and right fringe widths. 4634 *** Controlling the default left and right fringe widths.
5236 4635
5237 The default left and right fringe widths for all windows of a frame 4636 The default left and right fringe widths for all windows of a frame
5238 can now be controlled by setting the `left-fringe' and `right-fringe' 4637 can now be controlled by setting the `left-fringe' and `right-fringe'
5239 frame parameters to an integer value specifying the width in pixels. 4638 frame parameters to an integer value specifying the width in pixels.
5249 Setting the width to nil (the default), restores the default fringe 4648 Setting the width to nil (the default), restores the default fringe
5250 width which is the minimum number of pixels necessary to display any 4649 width which is the minimum number of pixels necessary to display any
5251 of the currently defined fringe bitmaps. The width of the built-in 4650 of the currently defined fringe bitmaps. The width of the built-in
5252 fringe bitmaps is 8 pixels. 4651 fringe bitmaps is 8 pixels.
5253 4652
5254 +++
5255 *** Per-window fringe and scrollbar settings 4653 *** Per-window fringe and scrollbar settings
5256 4654
5257 **** Windows can now have their own individual fringe widths and 4655 **** Windows can now have their own individual fringe widths and
5258 position settings. 4656 position settings.
5259 4657
5283 the buffer in a window, or use `set-window-buffer' to force an update 4681 the buffer in a window, or use `set-window-buffer' to force an update
5284 of the display margins. 4682 of the display margins.
5285 4683
5286 ** Redisplay features: 4684 ** Redisplay features:
5287 4685
5288 +++
5289 *** `sit-for' can now be called with args (SECONDS &optional NODISP). 4686 *** `sit-for' can now be called with args (SECONDS &optional NODISP).
5290 4687
5291 +++
5292 *** Iconifying or deiconifying a frame no longer makes sit-for return. 4688 *** Iconifying or deiconifying a frame no longer makes sit-for return.
5293 4689
5294 +++
5295 *** New function `redisplay' causes an immediate redisplay if no input is 4690 *** New function `redisplay' causes an immediate redisplay if no input is
5296 available, equivalent to (sit-for 0). The call (redisplay t) forces 4691 available, equivalent to (sit-for 0). The call (redisplay t) forces
5297 an immediate redisplay even if input is pending. 4692 an immediate redisplay even if input is pending.
5298 4693
5299 +++
5300 *** New function `force-window-update' can initiate a full redisplay of 4694 *** New function `force-window-update' can initiate a full redisplay of
5301 one or all windows. Normally, this is not needed as changes in window 4695 one or all windows. Normally, this is not needed as changes in window
5302 contents are detected automatically. However, certain implicit 4696 contents are detected automatically. However, certain implicit
5303 changes to mode lines, header lines, or display properties may require 4697 changes to mode lines, header lines, or display properties may require
5304 forcing an explicit window update. 4698 forcing an explicit window update.
5305 4699
5306 +++
5307 *** (char-displayable-p CHAR) returns non-nil if Emacs ought to be able 4700 *** (char-displayable-p CHAR) returns non-nil if Emacs ought to be able
5308 to display CHAR. More precisely, if the selected frame's fontset has 4701 to display CHAR. More precisely, if the selected frame's fontset has
5309 a font to display the character set that CHAR belongs to. 4702 a font to display the character set that CHAR belongs to.
5310 4703
5311 Fontsets can specify a font on a per-character basis; when the fontset 4704 Fontsets can specify a font on a per-character basis; when the fontset
5312 does that, this value cannot be accurate. 4705 does that, this value cannot be accurate.
5313 4706
5314 +++
5315 *** You can define multiple overlay arrows via the new 4707 *** You can define multiple overlay arrows via the new
5316 variable `overlay-arrow-variable-list'. 4708 variable `overlay-arrow-variable-list'.
5317 4709
5318 It contains a list of variables which contain overlay arrow position 4710 It contains a list of variables which contain overlay arrow position
5319 markers, including the original `overlay-arrow-position' variable. 4711 markers, including the original `overlay-arrow-position' variable.
5323 string (for non-window terminals) or fringe bitmap (for window 4715 string (for non-window terminals) or fringe bitmap (for window
5324 systems) to display at the corresponding overlay arrow position. 4716 systems) to display at the corresponding overlay arrow position.
5325 If either property is not set, the default `overlay-arrow-string' or 4717 If either property is not set, the default `overlay-arrow-string' or
5326 'overlay-arrow-fringe-bitmap' will be used. 4718 'overlay-arrow-fringe-bitmap' will be used.
5327 4719
5328 +++
5329 *** New `line-height' and `line-spacing' properties for newline characters 4720 *** New `line-height' and `line-spacing' properties for newline characters
5330 4721
5331 A newline can now have `line-height' and `line-spacing' text or overlay 4722 A newline can now have `line-height' and `line-spacing' text or overlay
5332 properties that control the height of the corresponding display row. 4723 properties that control the height of the corresponding display row.
5333 4724
5364 the `line-spacing' variable. 4755 the `line-spacing' variable.
5365 4756
5366 If the `line-spacing' property is a float or cons, the line spacing 4757 If the `line-spacing' property is a float or cons, the line spacing
5367 is calculated as specified above for the `line-height' property. 4758 is calculated as specified above for the `line-height' property.
5368 4759
5369 +++
5370 *** The buffer local `line-spacing' variable can now have a float value, 4760 *** The buffer local `line-spacing' variable can now have a float value,
5371 which is used as a height relative to the default frame line height. 4761 which is used as a height relative to the default frame line height.
5372 4762
5373 +++
5374 *** Enhancements to stretch display properties 4763 *** Enhancements to stretch display properties
5375 4764
5376 The display property stretch specification form `(space PROPS)', where 4765 The display property stretch specification form `(space PROPS)', where
5377 PROPS is a property list, now allows pixel based width and height 4766 PROPS is a property list, now allows pixel based width and height
5378 specifications, as well as enhanced horizontal text alignment. 4767 specifications, as well as enhanced horizontal text alignment.
5425 height) of the specified image. 4814 height) of the specified image.
5426 4815
5427 The form `(+ EXPR ...)' adds up the value of the expressions. 4816 The form `(+ EXPR ...)' adds up the value of the expressions.
5428 The form `(- EXPR ...)' negates or subtracts the value of the expressions. 4817 The form `(- EXPR ...)' negates or subtracts the value of the expressions.
5429 4818
5430 +++
5431 *** Normally, the cursor is displayed at the end of any overlay and 4819 *** Normally, the cursor is displayed at the end of any overlay and
5432 text property string that may be present at the current window 4820 text property string that may be present at the current window
5433 position. The cursor can now be placed on any character of such 4821 position. The cursor can now be placed on any character of such
5434 strings by giving that character a non-nil `cursor' text property. 4822 strings by giving that character a non-nil `cursor' text property.
5435 4823
5436 +++
5437 *** The display space :width and :align-to text properties are now 4824 *** The display space :width and :align-to text properties are now
5438 supported on text terminals. 4825 supported on text terminals.
5439 4826
5440 +++
5441 *** Support for displaying image slices 4827 *** Support for displaying image slices
5442 4828
5443 **** New display property (slice X Y WIDTH HEIGHT) can be used with 4829 **** New display property (slice X Y WIDTH HEIGHT) can be used with
5444 an image property to display only a specific slice of the image. 4830 an image property to display only a specific slice of the image.
5445 4831
5447 specify image slice (X Y WIDTH HEIGHT). 4833 specify image slice (X Y WIDTH HEIGHT).
5448 4834
5449 **** New function `insert-sliced-image' inserts a given image as a 4835 **** New function `insert-sliced-image' inserts a given image as a
5450 specified number of evenly sized slices (rows x columns). 4836 specified number of evenly sized slices (rows x columns).
5451 4837
5452 +++
5453 *** Images can now have an associated image map via the :map property. 4838 *** Images can now have an associated image map via the :map property.
5454 4839
5455 An image map is an alist where each element has the format (AREA ID PLIST). 4840 An image map is an alist where each element has the format (AREA ID PLIST).
5456 An AREA is specified as either a rectangle, a circle, or a polygon: 4841 An AREA is specified as either a rectangle, a circle, or a polygon:
5457 A rectangle is a cons (rect . ((X0 . Y0) . (X1 . Y1))) specifying the 4842 A rectangle is a cons (rect . ((X0 . Y0) . (X1 . Y1))) specifying the
5470 4855
5471 When you click the mouse when the mouse pointer is over a hot-spot, 4856 When you click the mouse when the mouse pointer is over a hot-spot,
5472 an event is composed by combining the ID of the hot-spot with the 4857 an event is composed by combining the ID of the hot-spot with the
5473 mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'. 4858 mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'.
5474 4859
5475 +++
5476 *** The function `find-image' now searches in etc/images/ and etc/. 4860 *** The function `find-image' now searches in etc/images/ and etc/.
5477 The new variable `image-load-path' is a list of locations in which to 4861 The new variable `image-load-path' is a list of locations in which to
5478 search for image files. The default is to search in etc/images, then 4862 search for image files. The default is to search in etc/images, then
5479 in etc/, and finally in the directories specified by `load-path'. 4863 in etc/, and finally in the directories specified by `load-path'.
5480 Subdirectories of etc/ and etc/images are not recursively searched; if 4864 Subdirectories of etc/ and etc/images are not recursively searched; if
5484 (defimage foo-image '((:type xpm :file "foo/bar.xpm"))) 4868 (defimage foo-image '((:type xpm :file "foo/bar.xpm")))
5485 4869
5486 Note that all images formerly located in the lisp directory have been 4870 Note that all images formerly located in the lisp directory have been
5487 moved to etc/images. 4871 moved to etc/images.
5488 4872
5489 +++
5490 *** New function `image-load-path-for-library' returns a suitable 4873 *** New function `image-load-path-for-library' returns a suitable
5491 search path for images relative to library. This function is useful in 4874 search path for images relative to library. This function is useful in
5492 external packages to save users from having to update 4875 external packages to save users from having to update
5493 `image-load-path'. 4876 `image-load-path'.
5494 4877
5495 +++
5496 *** The new variable `max-image-size' defines the maximum size of 4878 *** The new variable `max-image-size' defines the maximum size of
5497 images that Emacs will load and display. 4879 images that Emacs will load and display.
5498 4880
5499 +++
5500 *** The new variable `display-mm-dimensions-alist' can be used to 4881 *** The new variable `display-mm-dimensions-alist' can be used to
5501 override incorrect graphical display dimensions returned by functions 4882 override incorrect graphical display dimensions returned by functions
5502 `display-mm-height' and `display-mm-width'. 4883 `display-mm-height' and `display-mm-width'.
5503 4884
5504 ** Mouse pointer features: 4885 ** Mouse pointer features:
5505 4886
5506 +++ (lispref)
5507 --- (man)
5508 *** The mouse pointer shape in void text areas (i.e. after the end of a 4887 *** The mouse pointer shape in void text areas (i.e. after the end of a
5509 line or below the last line in the buffer) of the text window is now 4888 line or below the last line in the buffer) of the text window is now
5510 controlled by the new variable `void-text-area-pointer'. The default 4889 controlled by the new variable `void-text-area-pointer'. The default
5511 is to use the `arrow' (non-text) pointer. Other choices are `text' 4890 is to use the `arrow' (non-text) pointer. Other choices are `text'
5512 (or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'. 4891 (or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'.
5513 4892
5514 +++
5515 *** The mouse pointer shape over an image can now be controlled by the 4893 *** The mouse pointer shape over an image can now be controlled by the
5516 :pointer image property. 4894 :pointer image property.
5517 4895
5518 +++
5519 *** The mouse pointer shape over ordinary text or images can now be 4896 *** The mouse pointer shape over ordinary text or images can now be
5520 controlled/overridden via the `pointer' text property. 4897 controlled/overridden via the `pointer' text property.
5521 4898
5522 ** Mouse event enhancements: 4899 ** Mouse event enhancements:
5523 4900
5524 +++
5525 *** Mouse events for clicks on window fringes now specify `left-fringe' 4901 *** Mouse events for clicks on window fringes now specify `left-fringe'
5526 or `right-fringe' as the area. 4902 or `right-fringe' as the area.
5527 4903
5528 +++
5529 *** All mouse events now include a buffer position regardless of where 4904 *** All mouse events now include a buffer position regardless of where
5530 you clicked. For mouse clicks in window margins and fringes, this is 4905 you clicked. For mouse clicks in window margins and fringes, this is
5531 a sensible buffer position corresponding to the surrounding text. 4906 a sensible buffer position corresponding to the surrounding text.
5532 4907
5533 +++
5534 *** `posn-point' now returns buffer position for non-text area events. 4908 *** `posn-point' now returns buffer position for non-text area events.
5535 4909
5536 +++
5537 *** Function `mouse-set-point' now works for events outside text area. 4910 *** Function `mouse-set-point' now works for events outside text area.
5538 4911
5539 +++
5540 *** New function `posn-area' returns window area clicked on (nil means 4912 *** New function `posn-area' returns window area clicked on (nil means
5541 text area). 4913 text area).
5542 4914
5543 +++
5544 *** Mouse events include actual glyph column and row for all event types 4915 *** Mouse events include actual glyph column and row for all event types
5545 and all areas. 4916 and all areas.
5546 4917
5547 +++
5548 *** New function `posn-actual-col-row' returns the actual glyph coordinates 4918 *** New function `posn-actual-col-row' returns the actual glyph coordinates
5549 of the mouse event position. 4919 of the mouse event position.
5550 4920
5551 +++
5552 *** Mouse events can now indicate an image object clicked on. 4921 *** Mouse events can now indicate an image object clicked on.
5553 4922
5554 +++
5555 *** Mouse events include relative X and Y pixel coordinates relative to 4923 *** Mouse events include relative X and Y pixel coordinates relative to
5556 the top left corner of the object (image or character) clicked on. 4924 the top left corner of the object (image or character) clicked on.
5557 4925
5558 +++
5559 *** Mouse events include the pixel width and height of the object 4926 *** Mouse events include the pixel width and height of the object
5560 (image or character) clicked on. 4927 (image or character) clicked on.
5561 4928
5562 +++
5563 *** New functions 'posn-object', 'posn-object-x-y', 'posn-object-width-height'. 4929 *** New functions 'posn-object', 'posn-object-x-y', 'posn-object-width-height'.
5564 4930
5565 These return the image or string object of a mouse click, the X and Y 4931 These return the image or string object of a mouse click, the X and Y
5566 pixel coordinates relative to the top left corner of that object, and 4932 pixel coordinates relative to the top left corner of that object, and
5567 the total width and height of that object. 4933 the total width and height of that object.
5568 4934
5569 ** Text property and overlay changes: 4935 ** Text property and overlay changes:
5570 4936
5571 +++
5572 *** Arguments for `remove-overlays' are now optional, so that you can 4937 *** Arguments for `remove-overlays' are now optional, so that you can
5573 remove all overlays in the buffer with just (remove-overlays). 4938 remove all overlays in the buffer with just (remove-overlays).
5574 4939
5575 +++
5576 *** New variable `char-property-alias-alist'. 4940 *** New variable `char-property-alias-alist'.
5577 4941
5578 This variable allows you to create alternative names for text 4942 This variable allows you to create alternative names for text
5579 properties. It works at the same level as `default-text-properties', 4943 properties. It works at the same level as `default-text-properties',
5580 although it applies to overlays as well. This variable was introduced 4944 although it applies to overlays as well. This variable was introduced
5581 to implement the `font-lock-face' property. 4945 to implement the `font-lock-face' property.
5582 4946
5583 +++
5584 *** New function `get-char-property-and-overlay' accepts the same 4947 *** New function `get-char-property-and-overlay' accepts the same
5585 arguments as `get-char-property' and returns a cons whose car is the 4948 arguments as `get-char-property' and returns a cons whose car is the
5586 return value of `get-char-property' called with those arguments and 4949 return value of `get-char-property' called with those arguments and
5587 whose cdr is the overlay in which the property was found, or nil if 4950 whose cdr is the overlay in which the property was found, or nil if
5588 it was found as a text property or not found at all. 4951 it was found as a text property or not found at all.
5589 4952
5590 +++
5591 *** The new function `remove-list-of-text-properties'. 4953 *** The new function `remove-list-of-text-properties'.
5592 4954
5593 It is like `remove-text-properties' except that it takes a list of 4955 It is like `remove-text-properties' except that it takes a list of
5594 property names as argument rather than a property list. 4956 property names as argument rather than a property list.
5595 4957
5596 ** Face changes 4958 ** Face changes
5597 4959
5598 +++
5599 *** The variable `facemenu-unlisted-faces' has been removed. 4960 *** The variable `facemenu-unlisted-faces' has been removed.
5600 Emacs has a lot more faces than in the past, and nearly all of them 4961 Emacs has a lot more faces than in the past, and nearly all of them
5601 needed to be excluded. The new variable `facemenu-listed-faces' lists 4962 needed to be excluded. The new variable `facemenu-listed-faces' lists
5602 the faces to include in the face menu. 4963 the faces to include in the face menu.
5603 4964
5604 +++
5605 *** The new face attribute condition `min-colors' can be used to tailor 4965 *** The new face attribute condition `min-colors' can be used to tailor
5606 the face color to the number of colors supported by a display, and 4966 the face color to the number of colors supported by a display, and
5607 define the foreground and background colors accordingly so that they 4967 define the foreground and background colors accordingly so that they
5608 look best on a terminal that supports at least this many colors. This 4968 look best on a terminal that supports at least this many colors. This
5609 is now the preferred method for defining default faces in a way that 4969 is now the preferred method for defining default faces in a way that
5610 makes a good use of the capabilities of the display. 4970 makes a good use of the capabilities of the display.
5611 4971
5612 +++
5613 *** New function `display-supports-face-attributes-p' can be used to test 4972 *** New function `display-supports-face-attributes-p' can be used to test
5614 whether a given set of face attributes is actually displayable. 4973 whether a given set of face attributes is actually displayable.
5615 4974
5616 A new predicate `supports' has also been added to the `defface' face 4975 A new predicate `supports' has also been added to the `defface' face
5617 specification language, which can be used to do this test for faces 4976 specification language, which can be used to do this test for faces
5618 defined with `defface'. 4977 defined with `defface'.
5619 4978
5620 ---
5621 *** The special treatment of faces whose names are of the form `fg:COLOR' 4979 *** The special treatment of faces whose names are of the form `fg:COLOR'
5622 or `bg:COLOR' has been removed. Lisp programs should use the 4980 or `bg:COLOR' has been removed. Lisp programs should use the
5623 `defface' facility for defining faces with specific colors, or use 4981 `defface' facility for defining faces with specific colors, or use
5624 the feature of specifying the face attributes :foreground and :background 4982 the feature of specifying the face attributes :foreground and :background
5625 directly in the `face' property instead of using a named face. 4983 directly in the `face' property instead of using a named face.
5626 4984
5627 +++
5628 *** The first face specification element in a defface can specify 4985 *** The first face specification element in a defface can specify
5629 `default' instead of frame classification. Then its attributes act as 4986 `default' instead of frame classification. Then its attributes act as
5630 defaults that apply to all the subsequent cases (and can be overridden 4987 defaults that apply to all the subsequent cases (and can be overridden
5631 by them). 4988 by them).
5632 4989
5633 +++
5634 *** The variable `face-font-rescale-alist' specifies how much larger 4990 *** The variable `face-font-rescale-alist' specifies how much larger
5635 (or smaller) font we should use. For instance, if the value is 4991 (or smaller) font we should use. For instance, if the value is
5636 '((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10 4992 '((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10
5637 point, we actually use a font of 13 point if the font matches 4993 point, we actually use a font of 13 point if the font matches
5638 SOME-FONTNAME-PATTERN. 4994 SOME-FONTNAME-PATTERN.
5639 4995
5640 ---
5641 *** The function `face-differs-from-default-p' now truly checks 4996 *** The function `face-differs-from-default-p' now truly checks
5642 whether the given face displays differently from the default face or 4997 whether the given face displays differently from the default face or
5643 not (previously it did only a very cursory check). 4998 not (previously it did only a very cursory check).
5644 4999
5645 +++
5646 *** `face-attribute', `face-foreground', `face-background', `face-stipple'. 5000 *** `face-attribute', `face-foreground', `face-background', `face-stipple'.
5647 5001
5648 These now accept a new optional argument, INHERIT, which controls how 5002 These now accept a new optional argument, INHERIT, which controls how
5649 face inheritance is used when determining the value of a face 5003 face inheritance is used when determining the value of a face
5650 attribute. 5004 attribute.
5651 5005
5652 +++
5653 *** New functions `face-attribute-relative-p' and `merge-face-attribute' 5006 *** New functions `face-attribute-relative-p' and `merge-face-attribute'
5654 help with handling relative face attributes. 5007 help with handling relative face attributes.
5655 5008
5656 +++
5657 *** The priority of faces in an :inherit attribute face list is reversed. 5009 *** The priority of faces in an :inherit attribute face list is reversed.
5658 5010
5659 If a face contains an :inherit attribute with a list of faces, earlier 5011 If a face contains an :inherit attribute with a list of faces, earlier
5660 faces in the list override later faces in the list; in previous 5012 faces in the list override later faces in the list; in previous
5661 releases of Emacs, the order was the opposite. This change was made 5013 releases of Emacs, the order was the opposite. This change was made
5662 so that :inherit face lists operate identically to face lists in text 5014 so that :inherit face lists operate identically to face lists in text
5663 `face' properties. 5015 `face' properties.
5664 5016
5665 ---
5666 *** On terminals, faces with the :inverse-video attribute are displayed 5017 *** On terminals, faces with the :inverse-video attribute are displayed
5667 with swapped foreground and background colors even when one of them is 5018 with swapped foreground and background colors even when one of them is
5668 not specified. In previous releases of Emacs, if either foreground 5019 not specified. In previous releases of Emacs, if either foreground
5669 or background color was unspecified, colors were not swapped. This 5020 or background color was unspecified, colors were not swapped. This
5670 was inconsistent with the face behavior under X. 5021 was inconsistent with the face behavior under X.
5671 5022
5672 ---
5673 *** `set-fontset-font', `fontset-info', `fontset-font' now operate on 5023 *** `set-fontset-font', `fontset-info', `fontset-font' now operate on
5674 the default fontset if the argument NAME is nil.. 5024 the default fontset if the argument NAME is nil..
5675 5025
5676 ** Font-Lock changes: 5026 ** Font-Lock changes:
5677 5027
5678 +++
5679 *** New special text property `font-lock-face'. 5028 *** New special text property `font-lock-face'.
5680 5029
5681 This property acts like the `face' property, but it is controlled by 5030 This property acts like the `face' property, but it is controlled by
5682 M-x font-lock-mode. It is not, strictly speaking, a builtin text 5031 M-x font-lock-mode. It is not, strictly speaking, a builtin text
5683 property. Instead, it is implemented inside font-core.el, using the 5032 property. Instead, it is implemented inside font-core.el, using the
5684 new variable `char-property-alias-alist'. 5033 new variable `char-property-alias-alist'.
5685 5034
5686 +++
5687 *** font-lock can manage arbitrary text-properties beside `face'. 5035 *** font-lock can manage arbitrary text-properties beside `face'.
5688 5036
5689 **** the FACENAME returned in `font-lock-keywords' can be a list of the 5037 **** the FACENAME returned in `font-lock-keywords' can be a list of the
5690 form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set other 5038 form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set other
5691 properties than `face'. 5039 properties than `face'.
5692 5040
5693 **** `font-lock-extra-managed-props' can be set to make sure those 5041 **** `font-lock-extra-managed-props' can be set to make sure those
5694 extra properties are automatically cleaned up by font-lock. 5042 extra properties are automatically cleaned up by font-lock.
5695 5043
5696 ---
5697 *** jit-lock obeys a new text-property `jit-lock-defer-multiline'. 5044 *** jit-lock obeys a new text-property `jit-lock-defer-multiline'.
5698 5045
5699 If a piece of text with that property gets contextually refontified 5046 If a piece of text with that property gets contextually refontified
5700 (see `jit-lock-defer-contextually'), then all of that text will 5047 (see `jit-lock-defer-contextually'), then all of that text will
5701 be refontified. This is useful when the syntax of a textual element 5048 be refontified. This is useful when the syntax of a textual element
5718 up to whole lines, or to extend the region to include all related lines 5065 up to whole lines, or to extend the region to include all related lines
5719 of multiline constructs so that such constructs get properly recognized. 5066 of multiline constructs so that such constructs get properly recognized.
5720 5067
5721 ** Major mode mechanism changes: 5068 ** Major mode mechanism changes:
5722 5069
5723 +++
5724 *** If new variable `auto-mode-case-fold' is set to a non-nil value, 5070 *** If new variable `auto-mode-case-fold' is set to a non-nil value,
5725 Emacs will perform a second case-insensitive search through 5071 Emacs will perform a second case-insensitive search through
5726 `auto-mode-alist' if the first case-sensitive search fails. 5072 `auto-mode-alist' if the first case-sensitive search fails. This
5727 This means that a file FILE.TXT is opened in text-mode, and a file PROG.PY 5073 means that a file FILE.TXT is opened in text-mode, and a file
5728 is opened in python-mode. Note however, that independent of this 5074 PROG.HTML is opened in html-mode. Note however, that independent of
5729 setting, *.C files are usually recognized as C++ files. 5075 this setting, *.C files are usually recognized as C++ files. It also
5730 It also has no effect on systems with case-insensitive file names. 5076 has no effect on systems with case-insensitive file names.
5731 5077
5732 +++
5733 *** New variable `magic-mode-alist' determines major mode for a file by 5078 *** New variable `magic-mode-alist' determines major mode for a file by
5734 looking at the file contents. It takes precedence over `auto-mode-alist'. 5079 looking at the file contents. It takes precedence over `auto-mode-alist'.
5735 5080
5736 +++
5737 *** An interpreter magic line (if present) takes precedence over the 5081 *** An interpreter magic line (if present) takes precedence over the
5738 file name when setting the major mode. 5082 file name when setting the major mode.
5739 5083
5740 +++
5741 *** XML or SGML major mode is selected when file starts with an `<?xml' 5084 *** XML or SGML major mode is selected when file starts with an `<?xml'
5742 or `<!DOCTYPE' declaration. 5085 or `<!DOCTYPE' declaration.
5743 5086
5744 +++
5745 *** Use the new function `run-mode-hooks' to run the major mode's mode hook. 5087 *** Use the new function `run-mode-hooks' to run the major mode's mode hook.
5746 5088
5747 +++
5748 *** All major mode functions should now run the new normal hook 5089 *** All major mode functions should now run the new normal hook
5749 `after-change-major-mode-hook', at their very end, after the mode 5090 `after-change-major-mode-hook', at their very end, after the mode
5750 hooks. `run-mode-hooks' does this automatically. 5091 hooks. `run-mode-hooks' does this automatically.
5751 5092
5752 ---
5753 *** If a major mode function has a non-nil `no-clone-indirect' 5093 *** If a major mode function has a non-nil `no-clone-indirect'
5754 property, `clone-indirect-buffer' signals an error if you use 5094 property, `clone-indirect-buffer' signals an error if you use
5755 it in that buffer. 5095 it in that buffer.
5756 5096
5757 +++
5758 *** Major modes can define `eldoc-documentation-function' 5097 *** Major modes can define `eldoc-documentation-function'
5759 locally to provide Eldoc functionality by some method appropriate to 5098 locally to provide Eldoc functionality by some method appropriate to
5760 the language. 5099 the language.
5761 5100
5762 +++
5763 *** `define-derived-mode' by default creates a new empty abbrev table. 5101 *** `define-derived-mode' by default creates a new empty abbrev table.
5764 It does not copy abbrevs from the parent mode's abbrev table. 5102 It does not copy abbrevs from the parent mode's abbrev table.
5765 5103
5766 +++
5767 *** The new function `run-mode-hooks' and the new macro `delay-mode-hooks' 5104 *** The new function `run-mode-hooks' and the new macro `delay-mode-hooks'
5768 are used by `define-derived-mode' to make sure the mode hook for the 5105 are used by `define-derived-mode' to make sure the mode hook for the
5769 parent mode is run at the end of the child mode. 5106 parent mode is run at the end of the child mode.
5770 5107
5771 ** Minor mode changes: 5108 ** Minor mode changes:
5772 5109
5773 +++
5774 *** `define-minor-mode' now accepts arbitrary additional keyword arguments 5110 *** `define-minor-mode' now accepts arbitrary additional keyword arguments
5775 and simply passes them to `defcustom', if applicable. 5111 and simply passes them to `defcustom', if applicable.
5776 5112
5777 +++
5778 *** `minor-mode-list' now holds a list of minor mode commands. 5113 *** `minor-mode-list' now holds a list of minor mode commands.
5779 5114
5780 +++ 5115 *** `define-globalized-minor-mode'.
5781 *** `define-global-minor-mode'.
5782 5116
5783 This is a new name for what was formerly called 5117 This is a new name for what was formerly called
5784 `easy-mmode-define-global-mode'. The old name remains as an alias. 5118 `easy-mmode-define-global-mode'. The old name remains as an alias.
5785 5119
5786 ** Command loop changes: 5120 ** Command loop changes:
5787 5121
5788 +++
5789 *** The new function `called-interactively-p' does what many people 5122 *** The new function `called-interactively-p' does what many people
5790 have mistakenly believed `interactive-p' to do: it returns t if the 5123 have mistakenly believed `interactive-p' to do: it returns t if the
5791 calling function was called through `call-interactively'. 5124 calling function was called through `call-interactively'.
5792 5125
5793 Only use this when you cannot solve the problem by adding a new 5126 Only use this when you cannot solve the problem by adding a new
5794 INTERACTIVE argument to the command. 5127 INTERACTIVE argument to the command.
5795 5128
5796 +++
5797 *** The function `commandp' takes an additional optional argument. 5129 *** The function `commandp' takes an additional optional argument.
5798 5130
5799 If it is non-nil, then `commandp' checks for a function that could be 5131 If it is non-nil, then `commandp' checks for a function that could be
5800 called with `call-interactively', and does not return t for keyboard 5132 called with `call-interactively', and does not return t for keyboard
5801 macros. 5133 macros.
5802 5134
5803 +++
5804 *** When a command returns, the command loop moves point out from 5135 *** When a command returns, the command loop moves point out from
5805 within invisible text, in the same way it moves out from within text 5136 within invisible text, in the same way it moves out from within text
5806 covered by an image or composition property. 5137 covered by an image or composition property.
5807 5138
5808 This makes it generally unnecessary to mark invisible text as intangible. 5139 This makes it generally unnecessary to mark invisible text as intangible.
5809 This is particularly good because the intangible property often has 5140 This is particularly good because the intangible property often has
5810 unexpected side-effects since the property applies to everything 5141 unexpected side-effects since the property applies to everything
5811 (including `goto-char', ...) whereas this new code is only run after 5142 (including `goto-char', ...) whereas this new code is only run after
5812 `post-command-hook' and thus does not care about intermediate states. 5143 `post-command-hook' and thus does not care about intermediate states.
5813 5144
5814 +++
5815 *** If a command sets `transient-mark-mode' to `only', that 5145 *** If a command sets `transient-mark-mode' to `only', that
5816 enables Transient Mark mode for the following command only. 5146 enables Transient Mark mode for the following command only.
5817 During that following command, the value of `transient-mark-mode' 5147 During that following command, the value of `transient-mark-mode'
5818 is `identity'. If it is still `identity' at the end of the command, 5148 is `identity'. If it is still `identity' at the end of the command,
5819 the next return to the command loop changes to nil. 5149 the next return to the command loop changes to nil.
5820 5150
5821 +++
5822 *** Both the variable and the function `disabled-command-hook' have 5151 *** Both the variable and the function `disabled-command-hook' have
5823 been renamed to `disabled-command-function'. The variable 5152 been renamed to `disabled-command-function'. The variable
5824 `disabled-command-hook' has been kept as an obsolete alias. 5153 `disabled-command-hook' has been kept as an obsolete alias.
5825 5154
5826 +++
5827 *** `emacsserver' now runs `pre-command-hook' and `post-command-hook' 5155 *** `emacsserver' now runs `pre-command-hook' and `post-command-hook'
5828 when it receives a request from emacsclient. 5156 when it receives a request from emacsclient.
5829 5157
5830 +++
5831 *** `current-idle-time' reports how long Emacs has been idle. 5158 *** `current-idle-time' reports how long Emacs has been idle.
5832 5159
5833 ** Lisp file loading changes: 5160 ** Lisp file loading changes:
5834 5161
5835 +++
5836 *** `load-history' can now have elements of the form (t . FUNNAME), 5162 *** `load-history' can now have elements of the form (t . FUNNAME),
5837 which means FUNNAME was previously defined as an autoload (before the 5163 which means FUNNAME was previously defined as an autoload (before the
5838 current file redefined it). 5164 current file redefined it).
5839 5165
5840 +++
5841 *** `load-history' now records (defun . FUNNAME) when a function is 5166 *** `load-history' now records (defun . FUNNAME) when a function is
5842 defined. For a variable, it records just the variable name. 5167 defined. For a variable, it records just the variable name.
5843 5168
5844 +++
5845 *** The function `symbol-file' can now search specifically for function, 5169 *** The function `symbol-file' can now search specifically for function,
5846 variable or face definitions. 5170 variable or face definitions.
5847 5171
5848 +++
5849 *** `provide' and `featurep' now accept an optional second argument 5172 *** `provide' and `featurep' now accept an optional second argument
5850 to test/provide subfeatures. Also `provide' now checks `after-load-alist' 5173 to test/provide subfeatures. Also `provide' now checks `after-load-alist'
5851 and runs any code associated with the provided feature. 5174 and runs any code associated with the provided feature.
5852 5175
5853 ---
5854 *** The variable `recursive-load-depth-limit' has been deleted. 5176 *** The variable `recursive-load-depth-limit' has been deleted.
5855 Emacs now signals an error if the same file is loaded with more 5177 Emacs now signals an error if the same file is loaded with more
5856 than 3 levels of nesting. 5178 than 3 levels of nesting.
5857 5179
5858 +++
5859 ** Byte compiler changes: 5180 ** Byte compiler changes:
5860 5181
5861 *** The byte compiler now displays the actual line and character 5182 *** The byte compiler now displays the actual line and character
5862 position of errors, where possible. Additionally, the form of its 5183 position of errors, where possible. Additionally, the form of its
5863 warning and error messages have been brought into line with GNU standards 5184 warning and error messages have been brought into line with GNU standards
5890 generally run in Emacs and vice versa, this optimization doesn't lose 5211 generally run in Emacs and vice versa, this optimization doesn't lose
5891 you anything. 5212 you anything.
5892 5213
5893 *** The local variable `no-byte-compile' in Lisp files is now obeyed. 5214 *** The local variable `no-byte-compile' in Lisp files is now obeyed.
5894 5215
5895 ---
5896 *** When a Lisp file uses CL functions at run-time, compiling the file 5216 *** When a Lisp file uses CL functions at run-time, compiling the file
5897 now issues warnings about these calls, unless the file performs 5217 now issues warnings about these calls, unless the file performs
5898 (require 'cl) when loaded. 5218 (require 'cl) when loaded.
5899 5219
5900 ** Frame operations: 5220 ** Frame operations:
5901 5221
5902 +++
5903 *** New functions `frame-current-scroll-bars' and `window-current-scroll-bars'. 5222 *** New functions `frame-current-scroll-bars' and `window-current-scroll-bars'.
5904 5223
5905 These functions return the current locations of the vertical and 5224 These functions return the current locations of the vertical and
5906 horizontal scroll bars in a frame or window. 5225 horizontal scroll bars in a frame or window.
5907 5226
5908 +++
5909 *** The new function `modify-all-frames-parameters' modifies parameters 5227 *** The new function `modify-all-frames-parameters' modifies parameters
5910 for all (existing and future) frames. 5228 for all (existing and future) frames.
5911 5229
5912 +++
5913 *** The new frame parameter `tty-color-mode' specifies the mode to use 5230 *** The new frame parameter `tty-color-mode' specifies the mode to use
5914 for color support on character terminal frames. Its value can be a 5231 for color support on character terminal frames. Its value can be a
5915 number of colors to support, or a symbol. See the Emacs Lisp 5232 number of colors to support, or a symbol. See the Emacs Lisp
5916 Reference manual for more detailed documentation. 5233 Reference manual for more detailed documentation.
5917 5234
5918 +++
5919 *** When using non-toolkit scroll bars with the default width, 5235 *** When using non-toolkit scroll bars with the default width,
5920 the `scroll-bar-width' frame parameter value is nil. 5236 the `scroll-bar-width' frame parameter value is nil.
5921 5237
5922 ** Mule changes: 5238 ** Mule changes:
5923 5239
5924 +++
5925 *** Already true in Emacs 21.1, but not emphasized clearly enough: 5240 *** Already true in Emacs 21.1, but not emphasized clearly enough:
5926 5241
5927 Multibyte buffers can now faithfully record all 256 character codes 5242 Multibyte buffers can now faithfully record all 256 character codes
5928 from 0 to 255. As a result, most of the past reasons to use unibyte 5243 from 0 to 255. As a result, most of the past reasons to use unibyte
5929 buffers no longer exist. We only know of three reasons to use them 5244 buffers no longer exist. We only know of three reasons to use them
5935 the time it takes to convert the format. 5250 the time it takes to convert the format.
5936 5251
5937 3. For binary files where format conversion would be pointless and 5252 3. For binary files where format conversion would be pointless and
5938 wasteful. 5253 wasteful.
5939 5254
5940 ---
5941 *** `set-buffer-file-coding-system' now takes an additional argument, 5255 *** `set-buffer-file-coding-system' now takes an additional argument,
5942 NOMODIFY. If it is non-nil, it means don't mark the buffer modified. 5256 NOMODIFY. If it is non-nil, it means don't mark the buffer modified.
5943 5257
5944 +++
5945 *** The new variable `auto-coding-functions' lets you specify functions 5258 *** The new variable `auto-coding-functions' lets you specify functions
5946 to examine a file being visited and deduce the proper coding system 5259 to examine a file being visited and deduce the proper coding system
5947 for it. (If the coding system is detected incorrectly for a specific 5260 for it. (If the coding system is detected incorrectly for a specific
5948 file, you can put a `coding:' tags to override it.) 5261 file, you can put a `coding:' tags to override it.)
5949 5262
5950 +++
5951 *** The new variable `ascii-case-table' stores the case table for the 5263 *** The new variable `ascii-case-table' stores the case table for the
5952 ascii character set. Language environments (such as Turkish) may 5264 ascii character set. Language environments (such as Turkish) may
5953 alter the case correspondences of ASCII characters. This variable 5265 alter the case correspondences of ASCII characters. This variable
5954 saves the original ASCII case table before any such changes. 5266 saves the original ASCII case table before any such changes.
5955 5267
5956 ---
5957 *** The new function `merge-coding-systems' fills in unspecified aspects 5268 *** The new function `merge-coding-systems' fills in unspecified aspects
5958 of one coding system from another coding system. 5269 of one coding system from another coding system.
5959 5270
5960 ---
5961 *** New coding system property `mime-text-unsuitable' indicates that 5271 *** New coding system property `mime-text-unsuitable' indicates that
5962 the coding system's `mime-charset' is not suitable for MIME text 5272 the coding system's `mime-charset' is not suitable for MIME text
5963 parts, e.g. utf-16. 5273 parts, e.g. utf-16.
5964 5274
5965 +++
5966 *** New function `decode-coding-inserted-region' decodes a region as if 5275 *** New function `decode-coding-inserted-region' decodes a region as if
5967 it is read from a file without decoding. 5276 it is read from a file without decoding.
5968 5277
5969 ---
5970 *** New CCL functions `lookup-character' and `lookup-integer' access 5278 *** New CCL functions `lookup-character' and `lookup-integer' access
5971 hash tables defined by the Lisp function `define-translation-hash-table'. 5279 hash tables defined by the Lisp function `define-translation-hash-table'.
5972 5280
5973 ---
5974 *** New function `quail-find-key' returns a list of keys to type in the 5281 *** New function `quail-find-key' returns a list of keys to type in the
5975 current input method to input a character. 5282 current input method to input a character.
5976 5283
5977 ** Mode line changes: 5284 ** Mode line changes:
5978 5285
5979 +++
5980 *** New function `format-mode-line'. 5286 *** New function `format-mode-line'.
5981 5287
5982 This returns the mode line or header line of the selected (or a 5288 This returns the mode line or header line of the selected (or a
5983 specified) window as a string with or without text properties. 5289 specified) window as a string with or without text properties.
5984 5290
5985 +++
5986 *** The new mode-line construct `(:propertize ELT PROPS...)' can be 5291 *** The new mode-line construct `(:propertize ELT PROPS...)' can be
5987 used to add text properties to mode-line elements. 5292 used to add text properties to mode-line elements.
5988 5293
5989 +++
5990 *** The new `%i' and `%I' constructs for `mode-line-format' can be used 5294 *** The new `%i' and `%I' constructs for `mode-line-format' can be used
5991 to display the size of the accessible part of the buffer on the mode 5295 to display the size of the accessible part of the buffer on the mode
5992 line. 5296 line.
5993 5297
5994 +++
5995 *** Mouse-face on mode-line (and header-line) is now supported. 5298 *** Mouse-face on mode-line (and header-line) is now supported.
5996 5299
5997 ** Menu manipulation changes: 5300 ** Menu manipulation changes:
5998 5301
5999 ---
6000 *** To manipulate the File menu using easy-menu, you must specify the 5302 *** To manipulate the File menu using easy-menu, you must specify the
6001 proper name "file". In previous Emacs versions, you had to specify 5303 proper name "file". In previous Emacs versions, you had to specify
6002 "files", even though the menu item itself was changed to say "File" 5304 "files", even though the menu item itself was changed to say "File"
6003 several versions ago. 5305 several versions ago.
6004 5306
6005 ---
6006 *** The dummy function keys made by easy-menu are now always lower case. 5307 *** The dummy function keys made by easy-menu are now always lower case.
6007 If you specify the menu item name "Ada", for instance, it uses `ada' 5308 If you specify the menu item name "Ada", for instance, it uses `ada'
6008 as the "key" bound by that key binding. 5309 as the "key" bound by that key binding.
6009 5310
6010 This is relevant only if Lisp code looks for the bindings that were 5311 This is relevant only if Lisp code looks for the bindings that were
6011 made with easy-menu. 5312 made with easy-menu.
6012 5313
6013 ---
6014 *** `easy-menu-define' now allows you to use nil for the symbol name 5314 *** `easy-menu-define' now allows you to use nil for the symbol name
6015 if you don't need to give the menu a name. If you install the menu 5315 if you don't need to give the menu a name. If you install the menu
6016 into other keymaps right away (MAPS is non-nil), it usually doesn't 5316 into other keymaps right away (MAPS is non-nil), it usually doesn't
6017 need to have a name. 5317 need to have a name.
6018 5318
6019 ** Operating system access: 5319 ** Operating system access:
6020 5320
6021 +++
6022 *** The new primitive `get-internal-run-time' returns the processor 5321 *** The new primitive `get-internal-run-time' returns the processor
6023 run time used by Emacs since start-up. 5322 run time used by Emacs since start-up.
6024 5323
6025 +++
6026 *** Functions `user-uid' and `user-real-uid' now return floats if the 5324 *** Functions `user-uid' and `user-real-uid' now return floats if the
6027 user UID doesn't fit in a Lisp integer. Function `user-full-name' 5325 user UID doesn't fit in a Lisp integer. Function `user-full-name'
6028 accepts a float as UID parameter. 5326 accepts a float as UID parameter.
6029 5327
6030 +++
6031 *** New function `locale-info' accesses locale information. 5328 *** New function `locale-info' accesses locale information.
6032 5329
6033 ---
6034 *** On MS Windows, locale-coding-system is used to interact with the OS. 5330 *** On MS Windows, locale-coding-system is used to interact with the OS.
6035 The Windows specific variable w32-system-coding-system, which was 5331 The Windows specific variable w32-system-coding-system, which was
6036 formerly used for that purpose is now an alias for locale-coding-system. 5332 formerly used for that purpose is now an alias for locale-coding-system.
6037 5333
6038 ---
6039 *** New function `redirect-debugging-output' can be used to redirect 5334 *** New function `redirect-debugging-output' can be used to redirect
6040 debugging output on the stderr file handle to a file. 5335 debugging output on the stderr file handle to a file.
6041 5336
6042 ** Miscellaneous: 5337 ** Miscellaneous:
6043 5338
6044 +++
6045 *** A number of hooks have been renamed to better follow the conventions: 5339 *** A number of hooks have been renamed to better follow the conventions:
6046 5340
6047 `find-file-hooks' to `find-file-hook', 5341 `find-file-hooks' to `find-file-hook',
6048 `find-file-not-found-hooks' to `find-file-not-found-functions', 5342 `find-file-not-found-hooks' to `find-file-not-found-functions',
6049 `write-file-hooks' to `write-file-functions', 5343 `write-file-hooks' to `write-file-functions',
6052 `x-sent-selection-hooks' to `x-sent-selection-functions', 5346 `x-sent-selection-hooks' to `x-sent-selection-functions',
6053 `delete-frame-hook' to `delete-frame-functions'. 5347 `delete-frame-hook' to `delete-frame-functions'.
6054 5348
6055 In each case the old name remains as an alias for the moment. 5349 In each case the old name remains as an alias for the moment.
6056 5350
6057 +++
6058 *** Variable `local-write-file-hooks' is marked obsolete. 5351 *** Variable `local-write-file-hooks' is marked obsolete.
6059 5352
6060 Use the LOCAL arg of `add-hook'. 5353 Use the LOCAL arg of `add-hook'.
6061 5354
6062 ---
6063 *** New function `x-send-client-message' sends a client message when 5355 *** New function `x-send-client-message' sends a client message when
6064 running under X. 5356 running under X.
6065 5357
6066 ** GC changes: 5358 ** GC changes:
6067 5359
6068 +++
6069 *** New variable `gc-cons-percentage' automatically grows the GC cons threshold 5360 *** New variable `gc-cons-percentage' automatically grows the GC cons threshold
6070 as the heap size increases. 5361 as the heap size increases.
6071 5362
6072 +++
6073 *** New variables `gc-elapsed' and `gcs-done' provide extra information 5363 *** New variables `gc-elapsed' and `gcs-done' provide extra information
6074 on garbage collection. 5364 on garbage collection.
6075 5365
6076 +++
6077 *** The normal hook `post-gc-hook' is run at the end of garbage collection. 5366 *** The normal hook `post-gc-hook' is run at the end of garbage collection.
6078 5367
6079 The hook is run with GC inhibited, so use it with care. 5368 The hook is run with GC inhibited, so use it with care.
6080 5369
6081 * New Packages for Lisp Programming in Emacs 22.1 5370 * New Packages for Lisp Programming in Emacs 22.1
6082 5371
6083 +++
6084 ** The new library button.el implements simple and fast `clickable 5372 ** The new library button.el implements simple and fast `clickable
6085 buttons' in Emacs buffers. Buttons are much lighter-weight than the 5373 buttons' in Emacs buffers. Buttons are much lighter-weight than the
6086 `widgets' implemented by widget.el, and can be used by lisp code that 5374 `widgets' implemented by widget.el, and can be used by lisp code that
6087 doesn't require the full power of widgets. Emacs uses buttons for 5375 doesn't require the full power of widgets. Emacs uses buttons for
6088 such things as help and apropos buffers. 5376 such things as help and apropos buffers.
6089 5377
6090 ---
6091 ** The new library tree-widget.el provides a widget to display a set 5378 ** The new library tree-widget.el provides a widget to display a set
6092 of hierarchical data as an outline. For example, the tree-widget is 5379 of hierarchical data as an outline. For example, the tree-widget is
6093 well suited to display a hierarchy of directories and files. 5380 well suited to display a hierarchy of directories and files.
6094 5381
6095 +++
6096 ** The new library bindat.el provides functions to unpack and pack 5382 ** The new library bindat.el provides functions to unpack and pack
6097 binary data structures, such as network packets, to and from Lisp 5383 binary data structures, such as network packets, to and from Lisp
6098 data structures. 5384 data structures.
6099 5385
6100 ---
6101 ** master-mode.el implements a minor mode for scrolling a slave 5386 ** master-mode.el implements a minor mode for scrolling a slave
6102 buffer without leaving your current buffer, the master buffer. 5387 buffer without leaving your current buffer, the master buffer.
6103 5388
6104 It can be used by sql.el, for example: the SQL buffer is the master 5389 It can be used by sql.el, for example: the SQL buffer is the master
6105 and its SQLi buffer is the slave. This allows you to scroll the SQLi 5390 and its SQLi buffer is the slave. This allows you to scroll the SQLi
6116 (master-set-slave sql-buffer)))) 5401 (master-set-slave sql-buffer))))
6117 (add-hook 'sql-set-sqli-hook 5402 (add-hook 'sql-set-sqli-hook
6118 (function (lambda () 5403 (function (lambda ()
6119 (master-set-slave sql-buffer)))) 5404 (master-set-slave sql-buffer))))
6120 5405
6121 +++
6122 ** The new library benchmark.el does timing measurements on Lisp code. 5406 ** The new library benchmark.el does timing measurements on Lisp code.
6123 5407
6124 This includes measuring garbage collection time. 5408 This includes measuring garbage collection time.
6125 5409
6126 +++
6127 ** The new library testcover.el does test coverage checking. 5410 ** The new library testcover.el does test coverage checking.
6128 5411
6129 This is so you can tell whether you've tested all paths in your Lisp 5412 This is so you can tell whether you've tested all paths in your Lisp
6130 code. It works with edebug. 5413 code. It works with edebug.
6131 5414