comparison etc/NEWS @ 77350:7cc0a079620f

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