comparison etc/NEWS @ 103493:af33c0ccf0aa

Remove +++ and --- lines; minor copyedits.
author Chong Yidong <cyd@stupidchicken.com>
date Fri, 19 Jun 2009 17:09:32 +0000
parents 8f7555e94264
children fe679d9c8eb9
comparison
equal deleted inserted replaced
103492:df491d775083 103493:af33c0ccf0aa
11 See files NEWS.22, NEWS.21, NEWS.20, NEWS.19, NEWS.18, and NEWS.1-17 11 See files NEWS.22, NEWS.21, NEWS.20, NEWS.19, NEWS.18, and NEWS.1-17
12 for changes in older Emacs versions. 12 for changes in older Emacs versions.
13 13
14 You can narrow news to a specific version by calling `view-emacs-news' 14 You can narrow news to a specific version by calling `view-emacs-news'
15 with a prefix argument or by typing C-u C-h C-n. 15 with a prefix argument or by typing C-u C-h C-n.
16
17 Temporary note:
18 +++ indicates that the appropriate manual has already been updated.
19 --- means no change in the manuals is called for.
20 When you add a new item, please add it without either +++ or ---
21 so we will look at it and add it to the manual.
22 16
23 17
24 * Installation Changes in Emacs 23.1 18 * Installation Changes in Emacs 23.1
25 19
26 ** The default X toolkit is now Gtk+, rather than Lucid. 20 ** The default X toolkit is now Gtk+, rather than Lucid.
28 default toolkit, but you can use --with-x-toolkit=gtk if necessary. 22 default toolkit, but you can use --with-x-toolkit=gtk if necessary.
29 23
30 ** New font code. 24 ** New font code.
31 Fonts are handled by new code capable of dealing with multiple font 25 Fonts are handled by new code capable of dealing with multiple font
32 backends. This uses the freetype and fontconfig libraries. 26 backends. This uses the freetype and fontconfig libraries.
33 +++ 27
34 *** Emacs now accepts font names supplied in the fontconfig format 28 *** Emacs now accepts font names supplied in the fontconfig format
35 (e.g. "monospace-12:bold") and GTK format (e.g. "Monospace Bold 12"). 29 (e.g. "monospace-12:bold") and GTK format (e.g. "Monospace Bold 12").
36 30
37 *** Added support for local fonts (fonts installed on the machine 31 *** Added support for local fonts (fonts installed on the machine
38 where Emacs is running). 32 where Emacs is running).
43 OpenType fonts. 37 OpenType fonts.
44 38
45 *** Added support for the m17n library for text shaping. 39 *** Added support for the m17n library for text shaping.
46 40
47 ** Changes to image support 41 ** Changes to image support
48 --- 42
49 *** configure now checks for libgif before libungif when searching for 43 *** configure now checks for libgif before libungif when searching for
50 a GIF library. 44 a GIF library.
51 +++ 45
52 *** Emacs now supports the SVG image format through librsvg2. 46 *** Emacs now supports the SVG image format through librsvg2.
53 47
54 *** Emacs now supports multi-page TIFF images. 48 *** Emacs now supports multi-page TIFF images.
55 49
56 ** New NeXTSTEP-based port 50 ** New NeXTSTEP-based port
68 ** The new configuration option "--with-dbus" enables D-Bus language 62 ** The new configuration option "--with-dbus" enables D-Bus language
69 bindings for Emacs. 63 bindings for Emacs.
70 64
71 ** Support for many obsolete platforms has been removed. 65 ** Support for many obsolete platforms has been removed.
72 See the list at the end of etc/MACHINES for details. 66 See the list at the end of etc/MACHINES for details.
73 --- 67
74 *** Support for systems without alloca has been removed. 68 *** Support for systems without alloca has been removed.
75 --- 69
76 *** Support for Sun windows has been removed. 70 *** Support for Sun windows has been removed.
77 --- 71
78 *** The `emacstool' utility has been removed. 72 *** The `emacstool' utility has been removed.
79 73
80 ** The following platforms will be removed in a future Emacs version: 74 ** The following platforms will be removed in a future Emacs version:
81 If you are still using Emacs on one of these platforms, please email 75 If you are still using Emacs on one of these platforms, please email
82 emacs-devel@gnu.org to inform the Emacs developers. 76 emacs-devel@gnu.org to inform the Emacs developers.
95 *** Unixware on non-x86 machines. 89 *** Unixware on non-x86 machines.
96 90
97 *** Platforms not supporting shared libraries (i.e., requiring the 91 *** Platforms not supporting shared libraries (i.e., requiring the
98 NO_SHARED_LIBS compilation flag). 92 NO_SHARED_LIBS compilation flag).
99 93
100 ---
101 ** The configure options `--with-gcc', `--without-gcc' have been removed. 94 ** The configure options `--with-gcc', `--without-gcc' have been removed.
102 Configure will use gcc by default. Set the CC environment variable if 95 Configure will use gcc by default. Set the CC environment variable if
103 you need control over which C compiler is used. 96 you need control over which C compiler is used.
104 97
105 ** The refcards are now shipped as PDF files. 98 ** The refcards are now shipped as PDF files.
106 99
107 ---
108 ** The manuals are now licensed under the GNU Free Documentation License v1.3, 100 ** The manuals are now licensed under the GNU Free Documentation License v1.3,
109 or any later version. 101 or any later version.
110 102
111 ---
112 ** Emacs 23 comes with a new set of default icons. 103 ** Emacs 23 comes with a new set of default icons.
113 Various resolutions are available as etc/images/icons/hicolor/*/apps/emacs.png. 104 Various resolutions are available as etc/images/icons/hicolor/*/apps/emacs.png.
114 The Emacs 22 icon is available as `emacs22.png' in the same location. 105 The Emacs 22 icon is available as `emacs22.png' in the same location.
115 106
116 * Changes in Emacs 23.1 107 * Changes in Emacs 23.1
117 108
118 ** Improved X Window System support 109 ** Improved X Window System support
119 +++ 110
120 *** Emacs now supports using both X displays and ttys in one session. 111 *** Emacs now supports using both X displays and ttys in one session.
121 With an Emacs server active (M-x server-start), `emacsclient -t' 112 With an Emacs server active (M-x server-start), `emacsclient -t'
122 creates a tty frame connected to the running emacs server. You can 113 creates a tty frame connected to the running emacs server. You can
123 use any number of different ttys. `emacsclient -c' creates a new X11 114 use any number of different ttys. `emacsclient -c' creates a new X11
124 frame on the current $DISPLAY (or a tty frame if $DISPLAY is not set). 115 frame on the current $DISPLAY (or a tty frame if $DISPLAY is not set).
125 There may be problems if a display exits unexpectedly and Emacs is compiled 116 There may be problems if a display exits unexpectedly and Emacs is compiled
126 with Gtk+, see etc/PROBLEMS. 117 with Gtk+, see etc/PROBLEMS.
127 118
128 You can test for the presence of this feature in your Lisp code by 119 You can test for the presence of this feature in your Lisp code by
129 testing for the `multi-tty' feature. 120 testing for the `multi-tty' feature.
130 +++ 121
131 *** Emacs can now start in background, as a daemon when using the 122 *** Emacs starts in the background, as a daemon, when given the
132 --daemon command line argument. It disconnects from the terminal and 123 --daemon command line argument. It disconnects from the terminal and
133 starts the server. Clients can connect and create graphical or 124 starts the server. Clients can connect and create graphical or
134 terminal frames using emacsclient. 125 terminal frames using emacsclient.
135 +++ 126
136 **** emacsclient starts emacs in daemon mode and connects to it when 127 **** emacsclient starts emacs in daemon mode and connects to it when
137 --alternate-editor="" is used (or when the evironment variable 128 --alternate-editor="" is used (or when the evironment variable
138 ALTERNATE_EDITOR is set to "") and emacsclient cannot connect to an 129 ALTERNATE_EDITOR is set to "") and emacsclient cannot connect to an
139 emacs server. 130 emacs server.
140 131
144 *** Emacs now supports the XEmbed specification. 135 *** Emacs now supports the XEmbed specification.
145 You can embed Emacs in another application on X11. The new command line 136 You can embed Emacs in another application on X11. The new command line
146 option --parent-id is used to pass the parent window id to Emacs. See 137 option --parent-id is used to pass the parent window id to Emacs. See
147 http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html 138 http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html
148 for details about XEmbed. 139 for details about XEmbed.
149 +++ 140
150 *** Emacs can now set the frame opacity. 141 *** Emacs can now set the frame opacity.
151 The opacity of a frame can be controlled by setting the `alpha' frame 142 The opacity of a frame can be controlled by setting the `alpha' frame
152 parameter. This only takes effect on a compositing window manager for 143 parameter. This only takes effect on a compositing window manager for
153 the X Window System, such as Compiz, Beryl and Compiz Fusion, on Mac 144 the X Window System, such as Compiz, Beryl and Compiz Fusion, on Mac
154 OS X, or on Windows 2000 and later versions of Windows. 145 OS X, or on Windows 2000 and later versions of Windows.
160 151
161 The variable `frame-alpha-lower-limit' defines a lower bound for the 152 The variable `frame-alpha-lower-limit' defines a lower bound for the
162 opacity; the default is 20. 153 opacity; the default is 20.
163 154
164 ** Internationalization changes 155 ** Internationalization changes
165 +++ 156
166 *** The Emacs character set is now a superset of Unicode. 157 *** The Emacs character set is now a superset of Unicode.
167 (It has about four times the code space, which should be plenty). 158 (It has about four times the code space, which should be plenty).
168 159
169 The internal encoding used for buffers and strings is now 160 The internal encoding used for buffers and strings is now
170 Unicode-based and called `utf-8-emacs'. This encoding is backwards 161 Unicode-based and called `utf-8-emacs' (`emacs-internal' is an alias
171 compatible with Unicode's UTF-8 encoding. The encoding 162 for this). This encoding is backward-compatible with Unicode's UTF-8
172 `emacs-internal' is an alias for this. The internal encoding 163 encoding. The internal encoding previously used by Emacs,
173 previously used by Emacs, `emacs-mule', is still available. 164 `emacs-mule', is still available for reading and writing files.
174 165
175 During byte-compilation, Emacs 23 uses `utf-8-emacs' to write files. 166 During byte-compilation, Emacs 23 uses `utf-8-emacs' to write files.
176 As a result, byte-compiled files containing non-ASCII characters can't 167 As a result, byte-compiled files containing non-ASCII characters can't
177 be read by earlier versions of Emacs. Files compiled by Emacs 20, 21, 168 be read by earlier versions of Emacs. Files compiled by Emacs 20, 21,
178 or 22 are loaded correctly as emacs-mule (whether or not they contain 169 or 22 are loaded correctly as `emacs-mule' (whether or not they
179 multibyte characters). This takes somewhat more time, so it may be 170 contain multibyte characters). This takes somewhat more time, so it
180 worth recompiling existing .elc files which don't need to be shared 171 may be worth recompiling existing .elc files which don't need to be
181 with older Emacsen. 172 shared with older Emacsen.
182 173
183 *** There are new coding systems/aliases; see M-x list-coding-systems. 174 *** There are new coding systems/aliases; see M-x list-coding-systems.
184 175
185 *** There is a new charset implementation with many new charsets. 176 *** There is a new charset implementation with many new charsets.
186 See M-x list-character-sets. New charsets can be defined conveniently 177 See M-x list-character-sets. New charsets can be defined conveniently
187 as tables of unicodes. 178 as tables of unicodes.
188 179
189 **** The dimension of a charset is now 1, 2, 3, or 4, and the size of
190 each dimension is no longer limited to 94 or 96.
191
192 **** A dynamic charset priority list is used to infer the charset of
193 characters for display.
194 +++
195 *** There are new language environments for Chinese-GBK, 180 *** There are new language environments for Chinese-GBK,
196 Chinese-GB18030, Khmer, Bengali, Punjabi, Gujarati, Oriya, Telugu, 181 Chinese-GB18030, Khmer, Bengali, Punjabi, Gujarati, Oriya, Telugu,
197 Sinhala, and TaiViet. 182 Sinhala, and TaiViet.
198 +++ 183
199 *** The minor modes unify-8859-on-encoding-mode and 184 *** The minor modes unify-8859-on-encoding-mode and
200 unify-8859-on-decoding-mode are obsolete. 185 unify-8859-on-decoding-mode are obsolete.
201 +++ 186
202 *** `ucs-insert' is bound to `C-x 8 RET' and in addition to hex numbers 187 *** `ucs-insert' is bound to `C-x 8 RET' and in addition to hex numbers
203 accepts numbers in hash notation (e.g. #o21430 for octal, or #10r8984 for 188 accepts numbers in hash notation (e.g. #o21430 for octal, or #10r8984 for
204 decimal). It also accepts Unicode character names with completion. 189 decimal). It also accepts Unicode character names with completion.
205 --- 190
206 *** The `cyrillic-translit' input method supports many new characters. 191 *** The `cyrillic-translit' input method supports many new characters.
207 Common typographical characters available from Unicode were added to 192 Common typographical characters available from Unicode were added to
208 `cyrillic-translit': punctuation marks, accented characters, fractions, 193 `cyrillic-translit': punctuation marks, accented characters, fractions,
209 and others. 194 and others.
210 195
212 Windows. The new command `serial-term' starts an interactive terminal 197 Windows. The new command `serial-term' starts an interactive terminal
213 on a serial port. The serial port can be configured at runtime with 198 on a serial port. The serial port can be configured at runtime with
214 the mode-line mouse menu. 199 the mode-line mouse menu.
215 200
216 ** Menu Bar changes 201 ** Menu Bar changes
217 --- 202
218 *** In the Options menu, the "Set Default Font" item applies the 203 *** In the Options menu, the "Set Default Font" item applies the
219 selected font to the `default' face on all frames, not just the 204 selected font to the `default' face on all frames, not just the
220 current frame. Furthermore, if Emacs is compiled with both GTK and 205 current frame. Furthermore, if Emacs is compiled with both GTK and
221 Fontconfig support, the "Set Default Font" item uses the GTK font 206 Fontconfig support, the "Set Default Font" item uses the GTK font
222 selection dialog instead of an Emacs pop-up menu. 207 selection dialog instead of an Emacs pop-up menu.
223 --- 208
224 *** The font setting chosen by "Set Default Font" is saved if the 209 *** The font setting chosen by "Set Default Font" is saved if the
225 "Save Options" item is used. 210 "Save Options" item is used.
226 211
227 *** The Tools menu contains a new Encryption/Decryption submenu. 212 *** The Tools menu contains a new Encryption/Decryption submenu.
228 This contains commands provided by EasyPG, the newly-included 213 This contains commands provided by EasyPG, the newly-included
229 interface to GnuPG (see New Modes and Packages). 214 interface to GnuPG (see New Modes and Packages).
230 --- 215
231 *** In the Options menu, the "Truncate Long Lines in the Buffer" entry 216 *** In the Options menu, the "Truncate Long Lines in the Buffer" entry
232 has been replaced with a submenu offering three different ways to 217 has been replaced with a submenu offering three different ways to
233 handle long lines: truncation, continuation at the window edge, and 218 handle long lines: truncation, continuation at the window edge, and
234 the new word wrapping behavior (see Editing Changes, below). 219 the new word wrapping behavior (see Editing Changes, below).
235 --- 220
236 *** Improvements to menus for major and minor modes 221 *** Improvements to menus for major and minor modes
237 More major and minor modes now have a mode specific menu, and existing 222 More major and minor modes now have a mode specific menu, and existing
238 mode menus have been improved to include more functionality. 223 mode menus have been improved to include more functionality.
239 224
240 ** Mode-line changes 225 ** Mode-line changes
241 +++ 226
242 *** The mode-line displays a `@', instead of `-', if the 227 *** The mode-line displays a `@', instead of `-', if the
243 default-directory for the current buffer is on a remote machine. 228 default-directory for the current buffer is on a remote machine.
244 --- 229
245 *** The mode-line displays a mode menu when mouse-1 is clicked on a 230 *** The mode-line displays a mode menu when mouse-1 is clicked on a
246 minor mode, in the same way as it already did for major modes. 231 minor mode, in the same way as it already did for major modes.
247 --- 232
248 *** The `mode-line-emphasis' face is used to highlight certain 233 *** The `mode-line-emphasis' face is used to highlight certain
249 mode-line information (e.g. waiting for a VC command to finish). 234 mode-line information (e.g. waiting for a VC command to finish).
250 --- 235
251 *** The mode-line tooltips have been improved to provide more details. 236 *** The mode-line tooltips have been improved to provide more details.
252 +++ 237
253 *** The VC, line/colum number and minor mode indicators on the mode 238 *** The VC, line/colum number and minor mode indicators on the mode
254 line are now interactive: mouse-1 can be used on them to pop up a menu. 239 line are now interactive: mouse-1 can be used on them to pop up a menu.
255 240
256 +++
257 ** File deletion can make use of the Recycle Bin or system Trash folder. 241 ** File deletion can make use of the Recycle Bin or system Trash folder.
258 Set `delete-by-moving-to-trash' non-nil to use this. Deleted files 242 Set `delete-by-moving-to-trash' non-nil to use this. Deleted files
259 and directories will then be sent to the Recycle Bin on Windows, and 243 and directories will then be sent to the Recycle Bin on Windows, and
260 to `trash-directory' on other systems. 244 to `trash-directory' on other systems.
261 245
262 +++
263 ** Directory-local variables can now be defined. 246 ** Directory-local variables can now be defined.
264 By default, Emacs looks in .dir-locals.el for directory-local 247 By default, Emacs looks in .dir-locals.el for directory-local
265 variables. For more information, see `dir-locals-set-directory-class' 248 variables. For more information, see `dir-locals-set-directory-class'
266 and `dir-locals-set-class-variables'. 249 and `dir-locals-set-class-variables'.
267 250
273 ** `where-is-preferred-modifier' can specify your favorite modifier. 256 ** `where-is-preferred-modifier' can specify your favorite modifier.
274 257
275 258
276 * Startup Changes in Emacs 23.1 259 * Startup Changes in Emacs 23.1
277 260
278 +++
279 ** The option `inhibit-startup-screen' (with aliases to old names 261 ** The option `inhibit-startup-screen' (with aliases to old names
280 `inhibit-splash-screen' and `inhibit-startup-message') doesn't inhibit 262 `inhibit-splash-screen' and `inhibit-startup-message') doesn't inhibit
281 display of the initial message in the *scratch* buffer. If you don't 263 display of the initial message in the *scratch* buffer. If you don't
282 want to display the initial message in the *scratch* buffer at startup, 264 want to display the initial message in the *scratch* buffer at startup,
283 you can set the option `initial-scratch-message' to nil. 265 you can set the option `initial-scratch-message' to nil.
284 266
285 +++
286 ** New user option `initial-buffer-choice' specifies what to display 267 ** New user option `initial-buffer-choice' specifies what to display
287 after starting Emacs: startup screen, *scratch* buffer, visiting a 268 after starting Emacs: startup screen, *scratch* buffer, visiting a
288 file or directory. 269 file or directory.
289 270
290 +++
291 ** New alias `argv' for `command-line-args-left' 271 ** New alias `argv' for `command-line-args-left'
292 This is a convenience alias, so that one can write `(pop argv)' 272 This is a convenience alias, so that one can write `(pop argv)'
293 inside of --eval command line arguments in order to access 273 inside of --eval command line arguments in order to access
294 following arguments. 274 following arguments.
295 275
296 +++
297 ** The abbrev file is no longer read at startup in batch mode. 276 ** The abbrev file is no longer read at startup in batch mode.
298 277
299 +++
300 ** Emacs now supports invocation by an X session manager. 278 ** Emacs now supports invocation by an X session manager.
301 It can save a session and restore it later. See the documentation of 279 It can save a session and restore it later. See the documentation of
302 the functions `emacs-session-save' and `emacs-session-restore'. 280 the functions `emacs-session-save' and `emacs-session-restore'.
303 (Actually, this feature was introduced with Emacs 22, but it was not 281 (Actually, this feature was introduced with Emacs 22, but it was not
304 documented.) 282 documented.)
305 283
306 * Incompatible Editing Changes in Emacs 23.1 284 * Incompatible Editing Changes in Emacs 23.1
307 285
308 +++
309 ** In Dired, `dired-flag-garbage-files' is rebound from `&' to `%&' 286 ** In Dired, `dired-flag-garbage-files' is rebound from `&' to `%&'
310 on the regexp command prefix map. 287 on the regexp command prefix map.
311 288
312 +++
313 ** In Dired-x, all command guesses for ! are now added to the default 289 ** In Dired-x, all command guesses for ! are now added to the default
314 list accessible by M-n instead of pushing all guesses temporarily into 290 list accessible by M-n instead of pushing all guesses temporarily into
315 the history list. 291 the history list.
316 292
317 +++
318 ** In Isearch mode, a special case of typing `C-w' at the beginning of 293 ** In Isearch mode, a special case of typing `C-w' at the beginning of
319 the minibuffer that toggles word search (i.e. using key sequences 294 the minibuffer that toggles word search (i.e. using key sequences
320 `C-s RET C-w' or `C-s M-e C-w') is obsolete. You can use the global key 295 `C-s RET C-w' or `C-s M-e C-w') is obsolete. You can use the global key
321 `M-s w' to start word search, or type `M-s w' in Isearch mode to 296 `M-s w' to start word search, or type `M-s w' in Isearch mode to
322 toggle word search. To start nonincremental word search you can now use 297 toggle word search. To start nonincremental word search you can now use
323 `M-s w RET' and `M-s w C-r RET' instead of `C-s RET C-w' and `C-r RET C-w'. 298 `M-s w RET' and `M-s w C-r RET' instead of `C-s RET C-w' and `C-r RET C-w'.
324 299
325 +++
326 ** In Info, `Info-search' is unbound from `M-s' to allow using `M-s w' 300 ** In Info, `Info-search' is unbound from `M-s' to allow using `M-s w'
327 for word search as well as other search commands from the global prefix 301 for word search as well as other search commands from the global prefix
328 key `M-s'. `Info-search' is still bound to `s', and also incremental 302 key `M-s'. `Info-search' is still bound to `s', and also incremental
329 search commands `C-s', `C-M-s', `C-r', `C-M-r' are available for searching 303 search commands `C-s', `C-M-s', `C-r', `C-M-r' are available for searching
330 through multiple Info nodes, together with their nonincremental versions 304 through multiple Info nodes, together with their nonincremental versions
331 `C-s RET', `C-r RET', `C-M-s RET', `C-M-r RET', `M-s w RET'. 305 `C-s RET', `C-r RET', `C-M-s RET', `C-M-r RET', `M-s w RET'.
332 306
333 --- 307 ** In Text mode, `center-line' and `center-paragraph' are rebound from
334 ** In Text mode, `center-line' and `center-paragraph' are rebound 308 `M-s' and `M-S' to global keys `M-o M-s' and `M-o M-S' on the global
335 from `M-s' and `M-S' to global keys `M-o M-s' and `M-o M-S' on the 309 prefix map `M-o', which is intended for such formatting commands.
336 global prefix map `M-o' intended for such formatting commands. 310
337
338 ---
339 ** The following input methods were removed in Emacs 22.2, but this was 311 ** The following input methods were removed in Emacs 22.2, but this was
340 not advertised: danish-alt-postfix, esperanto-alt-postfix, 312 not advertised: danish-alt-postfix, esperanto-alt-postfix,
341 finnish-alt-postfix, german-alt-postfix, icelandic-alt-postfix, 313 finnish-alt-postfix, german-alt-postfix, icelandic-alt-postfix,
342 norwegian-alt-postfix, scandinavian-alt-postfix, spanish-alt-postfix, 314 norwegian-alt-postfix, scandinavian-alt-postfix, spanish-alt-postfix,
343 and swedish-alt-postfix. Use the versions without "alt-", which are 315 and swedish-alt-postfix. Use the versions without "alt-", which are
344 identical. 316 identical.
345 317
346 +++
347 ** If a function in write-region-annotate-functions returns with a
348 different buffer current, Emacs no longer kills that buffer
349 automatically. This behavior existed in previous versions of Emacs,
350 but was undocumented. To kill a buffer after write-region, give the
351 variable `write-region-post-annotation-function' a buffer-local value
352 of `kill-buffer'.
353
354 318
355 * Editing Changes in Emacs 23.1 319 * Editing Changes in Emacs 23.1
356 320
357 +++
358 ** The C-n and C-p line-motion commands now move by screen lines, 321 ** The C-n and C-p line-motion commands now move by screen lines,
359 taking continued lines and variable-width characters into account. 322 taking continued lines and variable-width characters into account.
360 Setting `line-move-visual' to nil reverts this to the previous 323 Setting `line-move-visual' to nil reverts this to the previous
361 behavior (motion by logical lines based on buffer contents alone). 324 behavior (i.e., motion by logical lines based on buffer contents
362 325 alone).
363 +++ 326
364 ** C-x C-c now invokes `save-buffers-kill-terminal', and C-z now 327 ** C-x C-c now invokes `save-buffers-kill-terminal', and C-z now
365 invokes `suspend-frame'. This change is for compatibility with the 328 invokes `suspend-frame'. These changes are for compatibility with the
366 new multi-tty support (see `Improved X Window System support' above). 329 new multi-tty support (see `Improved X Window System support' above).
367 330
368 ** Mark changes 331 ** Mark changes
369 +++ 332
370 *** Transient Mark mode is now on by default. 333 *** Transient Mark mode is now on by default.
371 +++ 334
372 *** mark-even-if-inactive now defaults to t 335 *** mark-even-if-inactive now defaults to t
373 +++ 336
374 *** When Transient Mark mode is on, C-SPC C-SPC pushes a mark without 337 *** When Transient Mark mode is on, C-SPC C-SPC pushes a mark without
375 activating it. 338 activating it.
376 +++ 339
377 *** When Transient Mark mode is on, M-q now fills the region if the 340 *** When Transient Mark mode is on, M-q now fills the region if the
378 region is active. Otherwise, it fills the current paragraph. 341 region is active. Otherwise, it fills the current paragraph.
379 +++ 342
380 *** When Transient Mark mode is on, M-$ now checks spelling of the 343 *** When Transient Mark mode is on, M-$ now checks spelling of the
381 region if the region is active. Otherwise, it checks spelling of the 344 region if the region is active. Otherwise, it checks spelling of the
382 word at point. 345 word at point.
383 +++ 346
384 *** When Transient Mark mode is on, TAB now indents the region if the 347 *** When Transient Mark mode is on, TAB now indents the region if the
385 region is active. 348 region is active.
386 +++ 349
387 *** `use-empty-active-region' controls whether an empty active region 350 *** The variable `use-empty-active-region' controls whether an empty
388 in Transient Mark mode should make commands operate on that empty 351 active region in Transient Mark mode should make commands operate on
389 region. 352 that empty region.
390 353
391 ** Temporarily active regions 354 ** Temporarily active regions
392 +++ 355
393 *** The new variable shift-select-mode, non-nil by default, controls 356 *** The new variable shift-select-mode, non-nil by default, controls
394 shift-selection. When Shift Select mode is on, shift-translated 357 shift-selection. When Shift Select mode is on, shift-translated
395 motion keys (e.g. S-left and S-down) activate and extend a temporary 358 motion keys (e.g. S-left and S-down) activate and extend a temporary
396 region, similar to mouse-selection. 359 region, similar to mouse-selection.
397 +++ 360
398 *** Temporarily active regions, created using shift-selection or 361 *** Temporarily active regions, created using shift-selection or
399 mouse-selection, are not necessarily deactivated in the next command. 362 mouse-selection, are not necessarily deactivated in the next command.
400 They are only deactivated after point motion commands that are not 363 They are only deactivated after point motion commands that are not
401 shift-translated, or after commands that would ordinarily deactivate 364 shift-translated, or after commands that would ordinarily deactivate
402 the mark in Transient Mark mode (e.g., any command that modifies the 365 the mark in Transient Mark mode (e.g., any command that modifies the
403 buffer). 366 buffer).
404 367
405 ** Minibuffer and completion changes 368 ** Minibuffer and completion changes
406 +++ 369
407 *** Emacs may ask for confirmation before opening a non-existent file 370 *** Emacs may ask for confirmation before opening a non-existent file
408 or buffer. By default, Emacs requests confirmation if you type RET 371 or buffer. By default, Emacs requests confirmation if you type RET
409 immediately after TAB, and the resulting input is not an existing file 372 immediately after TAB, and the resulting input is not an existing file
410 or buffer; this usually happens when the minibuffer input did not 373 or buffer; this usually happens when the minibuffer input did not
411 complete far enough and you entered RET by mistake. In that case, 374 complete far enough and you entered RET by mistake. In that case,
414 377
415 The new variable confirm-nonexistent-file-or-buffer determines whether 378 The new variable confirm-nonexistent-file-or-buffer determines whether
416 Emacs asks for confirmation. The default value is `after-completion'. 379 Emacs asks for confirmation. The default value is `after-completion'.
417 If you change it to t, Emacs always asks for confirmation; if you 380 If you change it to t, Emacs always asks for confirmation; if you
418 change it to nil, Emacs never asks for confirmation. 381 change it to nil, Emacs never asks for confirmation.
419 +++ 382
420 *** The rules for performing completion have been changed. 383 *** The rules for performing completion have been changed.
421 When generating completion alternatives, Emacs now takes the 384 When generating completion alternatives, Emacs now takes the
422 minibuffer text after point, if any, into account: this text is 385 minibuffer text after point, if any, into account: this text is
423 treated as a substring of the remaining part of the completion 386 treated as a substring of the remaining part of the completion
424 alternative (i.e., the part not matched by the minibuffer text before 387 alternative (i.e., the part not matched by the minibuffer text before
427 alternatives are found, we fall back on the Emacs 22 rules for 390 alternatives are found, we fall back on the Emacs 22 rules for
428 performing completion. 391 performing completion.
429 392
430 The new variable `completion-styles' can be customized to choose your 393 The new variable `completion-styles' can be customized to choose your
431 favorite completion style. 394 favorite completion style.
432 +++ 395
433 *** When M-n in the minibuffer reaches the end of the list of defaults, 396 *** When M-n in the minibuffer reaches the end of the list of defaults,
434 it adds the completion list to the end, so next M-n continues putting 397 it adds the completion list to the end, so next M-n continues putting
435 completion items to the minibuffer. The same principle applies to 398 completion items to the minibuffer. The same principle applies to
436 incremental search commands as well: C-s or C-M-s starts searching 399 incremental search commands as well: C-s or C-M-s starts searching
437 the default values and after the end of defaults they continue 400 the default values and after the end of defaults they continue
438 searching minibuffer completion items. 401 searching minibuffer completion items.
439 --- 402
440 *** Minibuffer input of shell commands now comes with completion. 403 *** Minibuffer input of shell commands now comes with completion.
441 +++ 404
442 *** In the `C-x d' (Dired) prompt, typing M-n gives the visited file 405 *** In the `C-x d' (Dired) prompt, typing M-n gives the visited file
443 name of the current buffer. 406 name of the current buffer.
444 407
445 *** In the M-! (shell-command) prompt, M-n provides some default commands. 408 *** In the M-! (shell-command) prompt, M-n provides some default commands.
446 These are guessed using the file extension of the current file, based 409 These are guessed using the file extension of the current file, based
450 413
451 *** A list of regexp default values is available via M-n for `occur', 414 *** A list of regexp default values is available via M-n for `occur',
452 `keep-lines', `flush-lines' and `how-many'. This list includes the active 415 `keep-lines', `flush-lines' and `how-many'. This list includes the active
453 region in transient-mark-mode, the word under the cursor, the last Isearch 416 region in transient-mark-mode, the word under the cursor, the last Isearch
454 regexp, the last Isearch string and the last replacement regexp. 417 regexp, the last Isearch string and the last replacement regexp.
455 --- 418
456 *** When enable-recursive-minibuffers is non-nil, operations which use 419 *** When enable-recursive-minibuffers is non-nil, operations which use
457 switch-to-buffer (such as C-x b and C-x C-f) do not fail any more when 420 switch-to-buffer (such as C-x b and C-x C-f) do not fail any more when
458 used in a minibuffer or a dedicated window. Instead, they fallback on 421 used in a minibuffer or a dedicated window. Instead, they fallback on
459 using pop-to-buffer, which will use some other window. This change 422 using pop-to-buffer, which will use some other window. This change
460 has no effect when enable-recursive-minibuffers is nil (the default). 423 has no effect when enable-recursive-minibuffers is nil (the default).
461 +++ 424
462 *** Isearch started in the minibuffer searches in the minibuffer history. 425 *** Isearch started in the minibuffer searches in the minibuffer history.
463 Reverse Isearch commands (C-r, C-M-r) search in previous minibuffer 426 Reverse Isearch commands (C-r, C-M-r) search in previous minibuffer
464 history elements, and forward Isearch commands (C-s, C-M-s) search in 427 history elements, and forward Isearch commands (C-s, C-M-s) search in
465 next history elements. When the reverse search reaches the first history 428 next history elements. When the reverse search reaches the first history
466 element, it wraps to the last history element, and the forward search 429 element, it wraps to the last history element, and the forward search
467 wraps to the first history element. When the search is terminated, the 430 wraps to the first history element. When the search is terminated, the
468 history element containing the search string becomes the current. 431 history element containing the search string becomes the current.
469 +++ 432
470 *** The variable read-file-name-completion-ignore-case overrides 433 *** The variable read-file-name-completion-ignore-case overrides
471 completion-ignore-case for file name completion. 434 completion-ignore-case for file name completion.
472 +++ 435
473 *** The variable read-buffer-completion-ignore-case overrides 436 *** The variable read-buffer-completion-ignore-case overrides
474 completion-ignore-case for buffer name completion. 437 completion-ignore-case for buffer name completion.
475 --- 438
476 *** The new command `minibuffer-force-complete' chooses one of the 439 *** The new command `minibuffer-force-complete' chooses one of the
477 possible completions, rather than stopping at the common prefix. 440 possible completions, rather than stopping at the common prefix.
478 +++ 441
479 *** If `completion-auto-help' is `lazy', Emacs shows the completions 442 *** If `completion-auto-help' is `lazy', Emacs shows the completions
480 buffer only on the second attempt to complete. This was already 443 buffer only on the second attempt to complete. This was already
481 supported in `partial-completion-mode'. 444 supported in `partial-completion-mode'.
482 445
483 ** Face changes 446 ** Face changes
484 +++ 447
485 *** S-down-mouse-1 now pops up a menu for changing the font and text 448 *** S-down-mouse-1 now pops up a menu for changing the font and text
486 size of the default face in the current buffer. The face is changed 449 size of the default face in the current buffer. The face is changed
487 via face remapping (see Lisp changes, below). 450 via face remapping (see Lisp changes, below).
488 +++ 451
489 *** New commands to change the default face size in the current buffer. 452 *** New commands to change the default face size in the current buffer.
490 To increase it, type `C-x C-+' or `C-x C-='. To decrease it, type 453 To increase it, type `C-x C-+' or `C-x C-='. To decrease it, type
491 `C-x C--'. To restore the default (global) face size, type `C-x C-0'. 454 `C-x C--'. To restore the default (global) face size, type `C-x C-0'.
492 These work via Text Scale mode, a new minor mode. 455 These work via Text Scale mode, a new minor mode.
493 456
499 *** The commands buffer-face-mode and buffer-face-set can be used to 462 *** The commands buffer-face-mode and buffer-face-set can be used to
500 remap the default face in the current buffer. See "Buffer Face mode", 463 remap the default face in the current buffer. See "Buffer Face mode",
501 under New Modes and Packages. 464 under New Modes and Packages.
502 465
503 ** Primary selection changes 466 ** Primary selection changes
504 +++ 467
505 *** If `select-active-regions' is t, setting the mark automatically 468 *** If `select-active-regions' is t, setting the mark automatically
506 makes the new region into the primary selection (for interaction with 469 makes the new region into the primary selection (for interaction with
507 other window applications). If you enable this, you might want to 470 other window applications). If you enable this, you might want to
508 bind `mouse-yank-primary' to Mouse-2. 471 bind `mouse-yank-primary' to Mouse-2.
509 +++ 472
510 *** You can disable kill ring commands from accessing the primary 473 *** You can disable kill ring commands from accessing the primary
511 selection by setting `x-select-enable-primary' to nil. 474 selection by setting `x-select-enable-primary' to nil.
512 475
513 ---
514 ** Continuation lines can now be wrapped at word boundaries 476 ** Continuation lines can now be wrapped at word boundaries
515 (word-wrapping). This is controlled by the new per-buffer variable 477 (word-wrapping). This is controlled by the new per-buffer variable
516 `word-wrap'. Word wrapping does not take place if continuation lines 478 `word-wrap'. Word wrapping does not take place if continuation lines
517 are not shown, e.g. if truncate-lines is non-nil. The most convenient 479 are not shown, e.g. if truncate-lines is non-nil. The most convenient
518 way to enable word-wrapping is using the new minor mode Visual Line 480 way to enable word-wrapping is using the new minor mode Visual Line
519 mode; in addition to setting `word-wrap' to t, this rebinds some 481 mode; in addition to setting `word-wrap' to t, this rebinds some
520 editing commands to work on screen lines rather than text lines. See 482 editing commands to work on screen lines rather than text lines. See
521 New Modes and Packages, below. 483 New Modes and Packages, below.
522 484
523 ** Window management changes 485 ** Window management changes
524 +++ 486
525 *** truncate-partial-width-windows now accepts integer values, which 487 *** truncate-partial-width-windows now accepts integer values, which
526 specify a minimum window width for partial-width windows, below which 488 specify a minimum window width for partial-width windows, below which
527 lines are truncated. The default has been changed to 50. 489 lines are truncated. The default has been changed to 50.
528 490
529 *** The new command balance-windows-area balances windows both 491 *** The new command balance-windows-area balances windows both
530 vertically and horizontally. 492 vertically and horizontally.
531 --- 493
532 *** pop-to-buffer now always sets input focus when the popped-to window 494 *** pop-to-buffer now always sets input focus when the popped-to window
533 is on a different frame. 495 is on a different frame.
534 496
535 ** Miscellaneous changes: 497 ** Miscellaneous changes:
536 +++ 498
537 *** C-l is bound to the new command recenter-top-bottom, rather than recenter. 499 *** C-l is bound to the new command recenter-top-bottom, rather than recenter.
538 This moves the current line to window center, top and bottom on 500 This moves the current line to window center, top and bottom on
539 successive invocations. 501 successive invocations.
540 +++ 502
541 *** scroll-preserve-screen-position also preserves the column position. 503 *** scroll-preserve-screen-position also preserves the column position.
542 +++ 504
543 *** If `yank-pop-change-selection' is t, rotating the kill ring also 505 *** If `yank-pop-change-selection' is t, rotating the kill ring also
544 updates the selection or clipboard to the current yank, just as M-w 506 updates the selection or clipboard to the current yank, just as M-w
545 would do so with the text it copies to the kill ring. 507 would do so with the text it copies to the kill ring.
546 +++ 508
547 *** C-M-% now shows replacement as it would look in the buffer, with 509 *** C-M-% now shows replacement as it would look in the buffer, with
548 `\N' and `\&' substituted according to the match. Old behavior can be 510 `\N' and `\&' substituted according to the match. Old behavior can be
549 restored by customizing `query-replace-show-replacement'. 511 restored by customizing `query-replace-show-replacement'.
550 512
551 *** The command shell prompts for the default directory, when it is 513 *** The command shell prompts for the default directory, when it is
552 called with a prefix and the default directory is a remote file name. 514 called with a prefix and the default directory is a remote file name.
553 This is because some file name handlers (like ange-ftp) are not able to 515 This is because some file name handlers (like ange-ftp) are not able to
554 run processes remotely. 516 run processes remotely.
555 +++ 517
556 *** The new command kill-matching-buffers kills buffers whose name 518 *** The new command kill-matching-buffers kills buffers whose name
557 matches a regexp. 519 matches a regexp.
558 --- 520
559 *** The value of comment-style now defaults to `indent'. 521 *** The value of comment-style now defaults to `indent'.
560 Thefore, comment-start markers are inserted at the current indentation 522 Thefore, comment-start markers are inserted at the current indentation
561 of the region to comment, rather than the leftmost column. 523 of the region to comment, rather than the leftmost column.
562 --- 524
563 *** The new commands `pp-macroexpand-expression' and 525 *** The new commands `pp-macroexpand-expression' and
564 `pp-macroexpand-last-sexp' pretty-print macro expansions. 526 `pp-macroexpand-last-sexp' pretty-print macro expansions.
565 +++ 527
566 *** The new command `set-file-modes' allows to set file's mode bits. 528 *** The new command `set-file-modes' allows to set file's mode bits.
567 The mode bits can be specified in symbolic notation, like with GNU 529 The mode bits can be specified in symbolic notation, like with GNU
568 Coreutils, in addition to an octal number. `chmod' is a new 530 Coreutils, in addition to an octal number. `chmod' is a new
569 convenience alias for this function. 531 convenience alias for this function.
570 532
571 *** `next-error-recenter' specifies how next-error should recenter the 533 *** `next-error-recenter' specifies how next-error should recenter the
572 visited source file. Its value can be a number (for example, 0 for 534 visited source file. Its value can be a number (for example, 0 for
573 top line, -1 for bottom line), or nil for no recentering. 535 top line, -1 for bottom line), or nil for no recentering.
574 +++ 536
575 *** When typing in a password in the echo area, C-y yanks the current 537 *** When typing in a password in the echo area, C-y yanks the current
576 kill into the password. 538 kill into the password.
577 --- 539
578 *** Tooltip frame parameters `font' and `color' in `tooltip-frame-parameters' 540 *** Tooltip frame parameters `font' and `color' in `tooltip-frame-parameters'
579 are ignored. Customize the `tooltip' face instead. 541 are ignored. Customize the `tooltip' face instead.
580 +++ 542
581 *** `mkdir' is a new convenience alias for `make-directory'. 543 *** `mkdir' is a new convenience alias for `make-directory'.
582 544
583 * New Modes and Packages in Emacs 23.1 545 * New Modes and Packages in Emacs 23.1
584 546
585 ** Auto Composition Mode is a minor mode that composes characters 547 ** Auto Composition Mode is a minor mode that composes characters
593 the face to remap to. The command `buffer-face-set' prompts for a 555 the face to remap to. The command `buffer-face-set' prompts for a
594 face name, sets `buffer-face-mode-face' to it, and enables 556 face name, sets `buffer-face-mode-face' to it, and enables
595 buffer-face-mode. See "Face changes", under Editing Changes, for a 557 buffer-face-mode. See "Face changes", under Editing Changes, for a
596 description of face remapping. 558 description of face remapping.
597 559
598 ---
599 ** butterfly flips the desired bit on the drive platter. 560 ** butterfly flips the desired bit on the drive platter.
600 See http://xkcd.com/378/ 561 See http://xkcd.com/378/
601 562
602 ** bug-reference.el provides clickable links to bug reports. 563 ** bug-reference.el provides clickable links to bug reports.
603 564
604 ** dbus.el provides D-Bus language bindings. 565 ** dbus.el provides D-Bus language bindings.
605 D-Bus is an inter-process communication mechanism for applications 566 D-Bus is an inter-process communication mechanism for applications
606 residing on the same host. See the manual for details. 567 residing on the same host. See the manual for details.
607 568
608 +++
609 ** DocView mode allows viewing of PDF, PostScript and DVI documents. 569 ** DocView mode allows viewing of PDF, PostScript and DVI documents.
610 One can also search for a regular expression in the document. For 570 One can also search for a regular expression in the document. For
611 details, see the commentary in doc-view.el. 571 details, see the commentary in doc-view.el.
612 572
613 PDF and DVI files are now opened in Doc View mode by default. 573 PDF and DVI files are now opened in Doc View mode by default.
621 details, see the EasyPG Assistant User's Manual. 581 details, see the EasyPG Assistant User's Manual.
622 582
623 ** json.el is a library for parsing and generating JSON 583 ** json.el is a library for parsing and generating JSON
624 (JavaScript Object Notation), a lightweight data-interchange format. 584 (JavaScript Object Notation), a lightweight data-interchange format.
625 585
626 +++
627 ** linum.el is a new minor mode to display line numbers for the 586 ** linum.el is a new minor mode to display line numbers for the
628 current buffer. 587 current buffer.
629 588
630 ** mairix.el is an interface to mairix, a free tool for indexing and 589 ** mairix.el is an interface to mairix, a free tool for indexing and
631 searching locally stored mail. It allows you to query mairix and 590 searching locally stored mail. It allows you to query mairix and
633 is an existing Gnus back end, nnmairix.el, which should be used with 592 is an existing Gnus back end, nnmairix.el, which should be used with
634 Maildir/MH setups. 593 Maildir/MH setups.
635 594
636 ** minibuffer-depth-indicate-mode shows the minibuffer depth in the prompt. 595 ** minibuffer-depth-indicate-mode shows the minibuffer depth in the prompt.
637 596
638 +++
639 ** nXML Mode 597 ** nXML Mode
640 This is a new mode for editing XML documents. It allows a schema to 598 This is a new mode for editing XML documents. It allows a schema to
641 be associated with the XML document being edited, using Relax NG as 599 be associated with the XML document being edited, using Relax NG as
642 the schema language. The schema is used to provide two key features: 600 the schema language. The schema is used to provide two key features:
643 601
659 Notes can be saved to a Diary file. For details, see the Remember 617 Notes can be saved to a Diary file. For details, see the Remember
660 Manual. 618 Manual.
661 619
662 ** RST mode is a major mode for editing reStructuredText files. 620 ** RST mode is a major mode for editing reStructuredText files.
663 621
664 +++
665 ** Ruby mode is a major mode for Ruby files. 622 ** Ruby mode is a major mode for Ruby files.
666 623
667 +++
668 ** Visual Line mode provides support for editing by visual lines. 624 ** Visual Line mode provides support for editing by visual lines.
669 It turns on word-wrapping in the current buffer, and rebinds C-a, C-e, 625 It turns on word-wrapping in the current buffer, and rebinds C-a, C-e,
670 and C-k to commands that operate by visual lines instead of logical 626 and C-k to commands that operate by visual lines instead of logical
671 lines. This is a more reliable replacement for longlines-mode. 627 lines. This is a more reliable replacement for longlines-mode.
672 This can also be turned on using the menu bar, via 628 This can also be turned on using the menu bar, via
693 649
694 650
695 * Changes in Specialized Modes and Packages in Emacs 23.1 651 * Changes in Specialized Modes and Packages in Emacs 23.1
696 652
697 ** Abbrev has been rewritten in Elisp and extended with more flexibility. 653 ** Abbrev has been rewritten in Elisp and extended with more flexibility.
698 +++ 654
699 *** New functions: abbrev-get, abbrev-put, abbrev-table-get, abbrev-table-put, 655 *** New functions: abbrev-get, abbrev-put, abbrev-table-get, abbrev-table-put,
700 abbrev-table-p, abbrev-insert, abbrev-table-menu. 656 abbrev-table-p, abbrev-insert, abbrev-table-menu.
701 +++ 657
702 *** Special hook `abbrev-expand-functions' obsoletes `pre-abbrev-expand-hook'. 658 *** Special hook `abbrev-expand-functions' obsoletes `pre-abbrev-expand-hook'.
703 +++ 659
704 *** `make-abbrev-table', `define-abbrev', `define-abbrev-table' all take 660 *** `make-abbrev-table', `define-abbrev', `define-abbrev-table' all take
705 extra arguments for arbitrary properties. 661 extra arguments for arbitrary properties.
706 +++ 662
707 *** New variable `abbrev-minor-mode-table-alist'. 663 *** New variable `abbrev-minor-mode-table-alist'.
708 +++ 664
709 *** `local-abbrev-table' can hold a list of abbrev-tables. 665 *** `local-abbrev-table' can hold a list of abbrev-tables.
710 +++ 666
711 *** Abbrevs have now the following special properties: 667 *** Abbrevs have now the following special properties:
712 `:count', `:system', `:enable-function', `:case-fixed'. 668 `:count', `:system', `:enable-function', `:case-fixed'.
713 +++ 669
714 *** Abbrev-tables have now the following special properties: 670 *** Abbrev-tables have now the following special properties:
715 `:parents', `:case-fixed', `:enable-function', `:regexp', 671 `:parents', `:case-fixed', `:enable-function', `:regexp',
716 `abbrev-table-modiff'. 672 `abbrev-table-modiff'.
717 673
718 ** Apropos 674 ** Apropos
675
719 *** `apropos-library' describes the elements defined in a given library. 676 *** `apropos-library' describes the elements defined in a given library.
677
720 *** Set `apropos-compact-layout' is you want a more compact (but wider) layout. 678 *** Set `apropos-compact-layout' is you want a more compact (but wider) layout.
721 679
722 +++
723 ** Archive Mode has basic support to browse Rar archives. 680 ** Archive Mode has basic support to browse Rar archives.
724 Note, however, that the free version of the unrar command only handles 681 Note, however, that the free version of the unrar command only handles
725 versions 1 and 2 of the Rar format. 682 versions 1 and 2 of the Rar format.
726 683
727 ---
728 ** BibTeX mode 684 ** BibTeX mode
729 685
730 *** New command `bibtex-initialize' (re)initializes BibTeX buffers. 686 *** New command `bibtex-initialize' (re)initializes BibTeX buffers.
731 687
732 *** New `bibtex-entry-format' options `whitespace', `braces', and 688 *** New `bibtex-entry-format' options `whitespace', `braces', and
737 693
738 *** Command `bibtex-url' allows multiple URLs per entry. 694 *** Command `bibtex-url' allows multiple URLs per entry.
739 695
740 ** Calendar and diary 696 ** Calendar and diary
741 697
742 +++
743 *** There is a new date style, `iso', essentially year/month/day. 698 *** There is a new date style, `iso', essentially year/month/day.
744 The variable `european-calendar-style' is obsolete - use `calendar-date-style'. 699 The variable `european-calendar-style' is obsolete - use `calendar-date-style'.
745 Similarly, the commands `american-calendar' and `european-calendar' 700 Similarly, the commands `american-calendar' and `european-calendar'
746 should be replaced by `calendar-set-date-style'. 701 should be replaced by `calendar-set-date-style'.
747 702
748 +++
749 *** The calendar namespace has been rationalized. 703 *** The calendar namespace has been rationalized.
750 All functions and variables now begin with a `calendar-', `diary-', or 704 All functions and variables now begin with a `calendar-', `diary-', or
751 `holiday-' prefix. The various calendar systems have secondary 705 `holiday-' prefix. The various calendar systems have secondary
752 prefixes, eg `calendar-french-'. The old names you are likely to use 706 prefixes, eg `calendar-french-'. The old names you are likely to use
753 directly still exist, for the time being, as aliases, but please start 707 directly still exist, for the time being, as aliases, but please start
754 using the new names. 708 using the new names.
755 709
756 +++
757 *** The whitespace in the calendar layout can be customized. 710 *** The whitespace in the calendar layout can be customized.
758 See the variables: 711 See the variables:
759 calendar-left-margin, calendar-intermonth-spacing, calendar-column-width, 712 calendar-left-margin, calendar-intermonth-spacing, calendar-column-width,
760 calendar-day-header-width, and calendar-day-digit-width. 713 calendar-day-header-width, and calendar-day-digit-width.
761 714
762 +++
763 *** Text (e.g. ISO weeks) can be displayed between the calendar months. 715 *** Text (e.g. ISO weeks) can be displayed between the calendar months.
764 See the variables calendar-intermonth-header and calendar-intermonth-text. 716 See the variables calendar-intermonth-header and calendar-intermonth-text.
765 717
766 +++
767 *** The function `holiday-chinese' computes holidays on the Chinese calendar. 718 *** The function `holiday-chinese' computes holidays on the Chinese calendar.
768 It has been used to add items to the list `holiday-oriental-holidays'. 719 It has been used to add items to the list `holiday-oriental-holidays'.
769 720
770 ---
771 *** `diary-remind' accepts a negative number -DAYS as a shorthand for 721 *** `diary-remind' accepts a negative number -DAYS as a shorthand for
772 the list (1 2 ... DAYS). 722 the list (1 2 ... DAYS).
773 723
774 ** Change Log mode 724 ** Change Log mode
775 725
778 728
779 *** The new command C-c C-c (change-log-goto-source) goes to the 729 *** The new command C-c C-c (change-log-goto-source) goes to the
780 source code associated with a log entry. 730 source code associated with a log entry.
781 731
782 ** Compile and grep modes 732 ** Compile and grep modes
783 --- 733
784 *** The mode-line entry for the *compilation* and *grep* buffer is color coded. 734 *** The mode-line entry for the *compilation* and *grep* buffer is color coded.
785 It has different colors for to show that: (a) the command is still 735 It has different colors for to show that: (a) the command is still
786 running, (b) successful completion, (c) error. 736 running, (b) successful completion, (c) error.
787 +++ 737
788 *** compilation-auto-jump-to-first-error tells `compile' to jump to 738 *** compilation-auto-jump-to-first-error tells `compile' to jump to
789 the first error encountered during compilations. 739 the first error encountered during compilations.
790 +++ 740
791 *** compilation-scroll-output accepts a new value, `first-error', which 741 *** compilation-scroll-output accepts a new value, `first-error', which
792 says to stop auto scrolling at the first error that occurs. 742 says to stop auto scrolling at the first error that occurs.
793 --- 743
794 *** The `cc' alias for C++ files in `grep-file-aliases' has been 744 *** The `cc' alias for C++ files in `grep-file-aliases' has been
795 improved. `hh' can be used to match C++ header files and `cchh' both 745 improved. `hh' can be used to match C++ header files and `cchh' both
796 C++ sources and headers. 746 C++ sources and headers.
797 747
798 ** Copyright 748 ** Copyright
803 753
804 *** Copyrights can be at the end of the buffer. 754 *** Copyrights can be at the end of the buffer.
805 This is controlled by `copyright-at-end-flag' (used by, e.g., change-log-mode). 755 This is controlled by `copyright-at-end-flag' (used by, e.g., change-log-mode).
806 756
807 ** Custom 757 ** Custom
808 +++ 758
809 *** defcustom accepts new keyword arguments, `:safe' and `:risky', which 759 *** defcustom accepts new keyword arguments, `:safe' and `:risky', which
810 set a variable's `safe-local-variable' and `risky-local-variable' property. 760 set a variable's `safe-local-variable' and `risky-local-variable' property.
811 761
812 ** Diff mode 762 ** Diff mode
813 +++ 763
814 *** diff-refine-hunk highlights word-level details of changes in a diff hunk. 764 *** diff-refine-hunk highlights word-level details of changes in a diff hunk.
815 It's used automatically as you move through hunks, see 765 It's used automatically as you move through hunks, see
816 diff-auto-refine-mode. It is bound to `C-c C-b'. 766 diff-auto-refine-mode. It is bound to `C-c C-b'.
817 +++ 767
818 *** diff-add-change-log-entries-other-window iterates through the diff 768 *** diff-add-change-log-entries-other-window iterates through the diff
819 buffer and tries to create ChangeLog entries for each change. 769 buffer and tries to create ChangeLog entries for each change.
820 It is bound to `C-x 4 A'. 770 It is bound to `C-x 4 A'.
821 +++ 771
822 *** Turning on `whitespace-mode' in a diff buffer will show trailing 772 *** Turning on `whitespace-mode' in a diff buffer will show trailing
823 whitespace problems in the modified lines. 773 whitespace problems in the modified lines.
824 774
825 ** Dired 775 ** Dired
826 +++ 776
827 *** In Dired, C-x C-q now runs the command wdired-change-to-wdired-mode, 777 *** In Dired, C-x C-q now runs the command wdired-change-to-wdired-mode,
828 and C-x C-q in wdired-mode exits it with asking a question about 778 and C-x C-q in wdired-mode exits it with asking a question about
829 saving changes. 779 saving changes.
830 +++ 780
831 *** `&' runs the command `dired-do-async-shell-command' that executes 781 *** `&' runs the command `dired-do-async-shell-command' that executes
832 the command asynchronously without the need to manually add ampersand 782 the command asynchronously without the need to manually add ampersand
833 to the end of the command. Its output appears in the buffer `*Async Shell 783 to the end of the command. Its output appears in the buffer `*Async Shell
834 Command*'. 784 Command*'.
835 +++ 785
836 *** `M-s f C-s' and `M-s f M-C-s' run Isearch that matches only at file names. 786 *** `M-s f C-s' and `M-s f M-C-s' run Isearch that matches only at file names.
837 When a new user option `dired-isearch-filenames' is t, then even ordinary 787 When a new user option `dired-isearch-filenames' is t, then even ordinary
838 Isearch started with `C-s' and `C-M-s' matches only at file names in the 788 Isearch started with `C-s' and `C-M-s' matches only at file names in the
839 Dired buffer. When `dired-isearch-filenames' is `dwim' then activation of 789 Dired buffer. When `dired-isearch-filenames' is `dwim' then activation of
840 file name Isearch depends on the position of point - if point is on a file 790 file name Isearch depends on the position of point - if point is on a file
841 name initially, then Isearch matches only file names, otherwise it matches 791 name initially, then Isearch matches only file names, otherwise it matches
842 everywhere in the Dired buffer. You can toggle file names matching on or 792 everywhere in the Dired buffer. You can toggle file names matching on or
843 off by typing `M-s f' in Isearch mode. 793 off by typing `M-s f' in Isearch mode.
844 +++ 794
845 *** `M-s a C-s' and `M-s a M-C-s' run multi-file Isearch on the marked files. 795 *** `M-s a C-s' and `M-s a M-C-s' run multi-file Isearch on the marked files.
846 They visit the first marked file in the sequence and display the usual Isearch 796 They visit the first marked file in the sequence and display the usual Isearch
847 prompt for a string or a regexp where all Isearch commands are available. 797 prompt for a string or a regexp where all Isearch commands are available.
848 --- 798
849 *** `Q' in Dired provides two new keys for multi-file replacement. 799 *** `Q' in Dired provides two new keys for multi-file replacement.
850 The upper case key `Y' replaces all remaining matches in all remaining files 800 The upper case key `Y' replaces all remaining matches in all remaining files
851 with no more questions. The upper case key `N' stops doing replacements 801 with no more questions. The upper case key `N' stops doing replacements
852 in the current file and skips to the next file. These multi-file keys 802 in the current file and skips to the next file. These multi-file keys
853 are available for all commands that use `tags-query-replace' 803 are available for all commands that use `tags-query-replace'
854 including `dired-do-query-replace-regexp', `vc-dir-query-replace-regexp', 804 including `dired-do-query-replace-regexp', `vc-dir-query-replace-regexp',
855 `reftex-query-replace-document'. 805 `reftex-query-replace-document'.
856 806
857 ** Fortran 807 ** Fortran
858 +++ 808
859 *** The line length of fixed-form Fortran is not fixed at 72 any more. 809 *** The line length of fixed-form Fortran is not fixed at 72 any more.
860 Customize the variable `fortran-line-length' to change it. 810 Customize the variable `fortran-line-length' to change it.
861 811
862 +++
863 *** In Fortran mode, M-; is now bound to the standard comment-dwim, 812 *** In Fortran mode, M-; is now bound to the standard comment-dwim,
864 rather than fortran-indent-comment. 813 rather than fortran-indent-comment.
865 814
866 +++
867 *** (The increasingly misnamed) F90 mode supports Fortran 2003 syntax. 815 *** (The increasingly misnamed) F90 mode supports Fortran 2003 syntax.
868 816
869 ** Gnus 817 ** Gnus
870 818
871 *** The Gnus package has been updated 819 *** The Gnus package has been updated
881 Gnus can use `auth-source' for POP and IMAP passwords. Also see that 829 Gnus can use `auth-source' for POP and IMAP passwords. Also see that
882 `smtpmail' and `url' support `auth-source' for SMTP and HTTP/HTTPS/RSS 830 `smtpmail' and `url' support `auth-source' for SMTP and HTTP/HTTPS/RSS
883 authentication respectively. 831 authentication respectively.
884 832
885 ** Help mode 833 ** Help mode
886 +++ 834
887 *** New macro `with-help-window' should set up help windows better 835 *** New macro `with-help-window' should set up help windows better
888 than `with-output-to-temp-buffer' with `print-help-return-message'. 836 than `with-output-to-temp-buffer' with `print-help-return-message'.
889 837
890 *** New option `help-window-select' permits to customize whether help 838 *** New option `help-window-select' permits to customize whether help
891 window shall be automatically selected when invoking help. 839 window shall be automatically selected when invoking help.
892 840
893 *** New variable `help-window-point-marker' permits one to specify a new 841 *** New variable `help-window-point-marker' permits one to specify a new
894 position for point in help window (for example in `view-lossage'). 842 position for point in help window (for example in `view-lossage').
895 843
896 ** Isearch 844 ** Isearch
897 +++ 845
898 *** New command `isearch-forward-word' bound globally to `M-s w' starts 846 *** New command `isearch-forward-word' bound globally to `M-s w' starts
899 incremental word search. New command `isearch-toggle-word' bound to the 847 incremental word search. New command `isearch-toggle-word' bound to the
900 same key `M-s w' in Isearch mode toggles word searching on or off 848 same key `M-s w' in Isearch mode toggles word searching on or off
901 while Isearch is active. 849 while Isearch is active.
902 850
903 *** New command `isearch-highlight-regexp' bound to `M-s h r' in Isearch 851 *** New command `isearch-highlight-regexp' bound to `M-s h r' in Isearch
904 mode runs `highlight-regexp' (`hi-lock-face-buffer') with the current 852 mode runs `highlight-regexp' (`hi-lock-face-buffer') with the current
905 search string as its regexp argument. The same key `M-s h r' and 853 search string as its regexp argument. The same key `M-s h r' and
906 other keys on the `M-s h' prefix are bound globally to the command 854 other keys on the `M-s h' prefix are bound globally to the command
907 `highlight-regexp' and other hi-lock commands. 855 `highlight-regexp' and other hi-lock commands.
908 +++ 856
909 *** New command `isearch-occur' bound to `M-s o' in Isearch mode 857 *** New command `isearch-occur' bound to `M-s o' in Isearch mode
910 runs `occur' with the current search string. The same key `M-s o' 858 runs `occur' with the current search string. The same key `M-s o'
911 is bound globally to the command `occur'. 859 is bound globally to the command `occur'.
912 --- 860
913 *** Isearch can now search through multiple ChangeLog files. 861 *** Isearch can now search through multiple ChangeLog files.
914 When running Isearch in a ChangeLog file, if the search fails, 862 When running Isearch in a ChangeLog file, if the search fails,
915 then another C-s tries searching the previous ChangeLog, 863 then another C-s tries searching the previous ChangeLog,
916 if there is one (e.g. going from ChangeLog to ChangeLog.12). 864 if there is one (e.g. going from ChangeLog to ChangeLog.12).
917 This is enabled if multi-isearch-search is non-nil. 865 This is enabled if multi-isearch-search is non-nil.
918 866
919 *** Two new commands to start Isearch on a list of marked buffers 867 *** Two new commands to start Isearch on a list of marked buffers
920 for buff-menu.el and ibuffer.el are bound to the keys `M-s a C-s' and 868 for buff-menu.el and ibuffer.el are bound to the keys `M-s a C-s' and
921 `M-s a M-C-s'. 869 `M-s a M-C-s'.
922 +++ 870
923 *** The part of an Isearch that failed to match is highlighted in 871 *** The part of an Isearch that failed to match is highlighted in
924 `isearch-fail' face. 872 `isearch-fail' face.
925 873
926 *** `C-h C-h' in Isearch mode displays isearch-specific Help screen, 874 *** `C-h C-h' in Isearch mode displays isearch-specific Help screen,
927 `C-h b' displays all Isearch key bindings, `C-h k' displays the full 875 `C-h b' displays all Isearch key bindings, `C-h k' displays the full
928 documentation of the given Isearch key sequence, `C-h m' displays 876 documentation of the given Isearch key sequence, `C-h m' displays
929 documentation of Isearch mode. All the rest Help commands exit Isearch mode 877 documentation of Isearch mode. All the rest Help commands exit Isearch mode
930 and execute their global definitions. 878 and execute their global definitions.
931 +++ 879
932 *** When started in the minibuffer, Isearch searches in the minibuffer 880 *** When started in the minibuffer, Isearch searches in the minibuffer
933 history. See `Minibuffer changes', above. 881 history. See `Minibuffer changes', above.
934 882
935 +++
936 ** MH-E 883 ** MH-E
937 884
938 *** Upgraded to MH-E version 8.2. See MH-E-NEWS for details. 885 *** Upgraded to MH-E version 8.2. See MH-E-NEWS for details.
939 886
940 ** Python 887 ** Python
952 remote files, if there is no established connection to the 899 remote files, if there is no established connection to the
953 corresponding remote host. 900 corresponding remote host.
954 901
955 ** Rmail 902 ** Rmail
956 903
957 +++
958 *** Rmail no longer converts the messages to Babyl format. 904 *** Rmail no longer converts the messages to Babyl format.
959 Instead, it uses UNIX mbox format, both on disk and in Rmail buffers, 905 Instead, it uses UNIX mbox format, both on disk and in Rmail buffers,
960 and does conversion and decoding when a message is displayed. 906 and does conversion and decoding when a message is displayed.
961 907
962 The first time you visit an Rmail file in Babyl format, Rmail 908 The first time you visit an Rmail file in Babyl format, Rmail
992 938
993 `rmail-apply-in-message' is a general purpose function that calls a 939 `rmail-apply-in-message' is a general purpose function that calls a
994 function (with arguments) which you specify on the full text of a given 940 function (with arguments) which you specify on the full text of a given
995 message. To further narrow to just the headers, search forward for "\n\n". 941 message. To further narrow to just the headers, search forward for "\n\n".
996 942
997 +++
998 *** The new command `rmail-mime' displays MIME messages. 943 *** The new command `rmail-mime' displays MIME messages.
999 It is bound to `v' in Rmail buffers and summaries. It displays plain 944 It is bound to `v' in Rmail buffers and summaries. It displays plain
1000 text and multipart messages in a temporary buffer, and offers buttons 945 text and multipart messages in a temporary buffer, and offers buttons
1001 to save attachments. 946 to save attachments.
1002 947
1003 ---
1004 *** The command `rmail-redecode-body' no longer accepts the optional arg RAW. 948 *** The command `rmail-redecode-body' no longer accepts the optional arg RAW.
1005 Since Rmail now holds messages in their original undecoded form in a 949 Since Rmail now holds messages in their original undecoded form in a
1006 separate buffer, `rmail-redecode-body' no longer encodes the original 950 separate buffer, `rmail-redecode-body' no longer encodes the original
1007 message, and therefore there should be no need to avoid encoding it. 951 message, and therefore there should be no need to avoid encoding it.
1008 952
1009 +++
1010 *** The o command is now `rmail-output'. It is an all-purpose command 953 *** The o command is now `rmail-output'. It is an all-purpose command
1011 for copying messages from Rmail and appending them to files. It 954 for copying messages from Rmail and appending them to files. It
1012 handles Babyl-format files as well as mbox-format files, and it 955 handles Babyl-format files as well as mbox-format files, and it
1013 handles both kinds properly when they are visited in Emacs. It always 956 handles both kinds properly when they are visited in Emacs. It always
1014 copies the full headers of the message. 957 copies the full headers of the message.
1015 958
1016 +++
1017 *** The C-o command is now `rmail-output-as-seen'. It uses 959 *** The C-o command is now `rmail-output-as-seen'. It uses
1018 the message as displayed, appending it to an mbox file. 960 the message as displayed, appending it to an mbox file.
1019 961
1020 ---
1021 *** The modified status of the Rmail buffer is reported in the mode-line. 962 *** The modified status of the Rmail buffer is reported in the mode-line.
1022 Previously, this information was hidden. 963 Previously, this information was hidden.
1023 964
1024 ** TeX modes 965 ** TeX modes
1025 --- 966
1026 *** New option latex-indent-within-escaped-parens 967 *** New option latex-indent-within-escaped-parens
1027 permits to customize indentation of LaTeX environments delimited 968 permits to customize indentation of LaTeX environments delimited
1028 by escaped parens. 969 by escaped parens.
1029 970
1030 ** T-mouse Mode 971 ** T-mouse Mode
1031 --- 972
1032 *** If the gpm mouse server is running and t-mouse-mode is enabled, 973 *** If the gpm mouse server is running and t-mouse-mode is enabled,
1033 Emacs uses a Unix socket in a GNU/Linux console to talk to server, 974 Emacs uses a Unix socket in a GNU/Linux console to talk to server,
1034 rather than faking events using the client program mev. This C level 975 rather than faking events using the client program mev. This C level
1035 approach provides mouse highlighting and help echoing in the 976 approach provides mouse highlighting and help echoing in the
1036 minibuffer. 977 minibuffer.
1037 978
1038 +++
1039 ** Tramp 979 ** Tramp
1040 980
1041 *** New connection methods. 981 *** New connection methods.
1042 The new methods "plinkx", "plink2", "psftp", "sftp" and "fish" have 982 The new methods "plinkx", "plink2", "psftp", "sftp" and "fish" have
1043 been introduced. There are also new so-called gateway methods 983 been introduced. There are also new so-called gateway methods
1071 *** Passwords can be read from an authentification file. 1011 *** Passwords can be read from an authentification file.
1072 Tramp uses the package `auth-source' to read passwords from a file, if 1012 Tramp uses the package `auth-source' to read passwords from a file, if
1073 necessary. 1013 necessary.
1074 1014
1075 ** VC and related modes 1015 ** VC and related modes
1076 +++ 1016
1077 *** VC now supports applying VC operations to a set of files at a time. 1017 *** VC now supports applying VC operations to a set of files at a time.
1078 This enables VC to work much more effectively with changeset-oriented 1018 This enables VC to work much more effectively with changeset-oriented
1079 version-control systems such as Subversion, GNU Arch, Mercurial, Git 1019 version-control systems such as Subversion, GNU Arch, Mercurial, Git
1080 and Bzr. VC will now pass a multiple-file commit to these systems as 1020 and Bzr. VC will now pass a multiple-file commit to these systems as
1081 a single changeset. 1021 a single changeset.
1082 +++ 1022
1083 *** vc-dir is a new command that displays file names and their VC 1023 *** vc-dir is a new command that displays file names and their VC
1084 status. It allows to apply various VC operations to a file, a 1024 status. It allows to apply various VC operations to a file, a
1085 directory or a set of files/directories. 1025 directory or a set of files/directories.
1086 +++ 1026
1087 *** VC switches are no longer appended, rather the first non-nil value is used. 1027 *** VC switches are no longer appended, rather the first non-nil value is used.
1088 (This was for the most part true in Emacs 22, but was not advertised). 1028 (This was for the most part true in Emacs 22, but was not advertised).
1089 This is because there is an increasing variety of VC systems, and they 1029 This is because there is an increasing variety of VC systems, and they
1090 do not all accept the same "common" options. For example, a CVS diff 1030 do not all accept the same "common" options. For example, a CVS diff
1091 command used to append the values of `vc-cvs-diff-switches', 1031 command used to append the values of `vc-cvs-diff-switches',
1092 `vc-diff-switches', and `diff-switches'. Now the first non-nil value 1032 `vc-diff-switches', and `diff-switches'. Now the first non-nil value
1093 from that sequence is used. The special value `t' means "no switches". 1033 from that sequence is used. The special value `t' means "no switches".
1094 +++ 1034
1095 *** Clicking on the VC mode-line entry now pops the VC menu. 1035 *** Clicking on the VC mode-line entry now pops the VC menu.
1096 +++ 1036
1097 *** The VC mode-line entry now has a tooltip that explains the VC file status. 1037 *** The VC mode-line entry now has a tooltip that explains the VC file status.
1098 1038
1099 *** In VC Annotate mode, the key bindings have changed to use lower 1039 *** In VC Annotate mode, the key bindings have changed to use lower
1100 case keys instead of the upper case keys used in the past. 1040 case keys instead of the upper case keys used in the past.
1101 +++ 1041
1102 *** In VC Annotate mode, for VC systems that support changesets, you can 1042 *** In VC Annotate mode, for VC systems that support changesets, you can
1103 see the diff for the whole changeset (not only for the current file) 1043 see the diff for the whole changeset (not only for the current file)
1104 by typing the D key. Using the "Show changeset diff of revision at 1044 by typing the D key. Using the "Show changeset diff of revision at
1105 line" menu entry does the same thing. 1045 line" menu entry does the same thing.
1106 +++ 1046
1107 *** In VC Annotate mode, you can type v to toggle the annotation visibility. 1047 *** In VC Annotate mode, you can type v to toggle the annotation visibility.
1108 +++ 1048
1109 *** In VC Annotate mode, you can type f to show the file revision on 1049 *** In VC Annotate mode, you can type f to show the file revision on
1110 the current line. 1050 the current line.
1111 --- 1051
1112 *** Asynchronous VC commands display [Waiting...] in the mode-line 1052 *** Asynchronous VC commands display [Waiting...] in the mode-line
1113 of the corresponding buffer as long as the asynchronous process is 1053 of the corresponding buffer as long as the asynchronous process is
1114 active. 1054 active.
1115 +++ 1055
1116 *** Log entries can be modified using the key "e" in log-view. 1056 *** Log entries can be modified using the key "e" in log-view.
1117 For now only CVS, RCS, SCCS and SVN support this functionality. 1057 For now only CVS, RCS, SCCS and SVN support this functionality.
1118 This is done by the `modify-change-comment' backend function. 1058 This is done by the `modify-change-comment' backend function.
1119 +++ 1059
1120 *** In log-view-mode, for VC systems that support changesets, you can 1060 *** In log-view-mode, for VC systems that support changesets, you can
1121 see the diff for the whole changeset (not only for the current file) 1061 see the diff for the whole changeset (not only for the current file)
1122 by typing the D key or using the "Changeset Diff" menu entry. 1062 by typing the D key or using the "Changeset Diff" menu entry.
1123 +++ 1063
1124 *** In Log Edit mode, C-c C-d now shows the diff for the files involved. 1064 *** In Log Edit mode, C-c C-d now shows the diff for the files involved.
1125 1065
1126 *** vc-git supports the "git grep" command. 1066 *** vc-git supports the "git grep" command.
1127 +++ 1067
1128 *** VC Support for Meta-CVS has been removed for lack of a maintainer able 1068 *** VC Support for Meta-CVS has been removed for lack of a maintainer able
1129 to update it to the new VC. 1069 to update it to the new VC.
1130 1070
1131 ** Miscellaneous 1071 ** Miscellaneous
1132 1072
1133 *** comint-mode uses `start-file-process' now (see Lisp Changes). 1073 *** comint-mode uses `start-file-process' now (see Lisp Changes).
1134 If `default-directory' is a remote file name, subprocesses are started 1074 If `default-directory' is a remote file name, subprocesses are started
1135 on the corresponding remote system. 1075 on the corresponding remote system.
1136 --- 1076
1137 *** Eldoc highlights the function argument under point 1077 *** Eldoc highlights the function argument under point
1138 with the face `eldoc-highlight-function-argument'. 1078 with the face `eldoc-highlight-function-argument'.
1139 +++ 1079
1140 *** In Etags, the --members option is now the default. 1080 *** In Etags, the --members option is now the default.
1141 Use --no-members if you want the old default behavior of not tagging 1081 Use --no-members if you want the old default behavior of not tagging
1142 struct members in C, members variables in C++ and variables in PHP. 1082 struct members in C, members variables in C++ and variables in PHP.
1143 +++ 1083
1144 *** The `gdb' command only works with the graphical interface now. 1084 *** The `gdb' command only works with the graphical interface now.
1145 Use `gud-gdb' if you want the (old) text command mode. 1085 Use `gud-gdb' if you want the (old) text command mode.
1146 1086
1147 *** goto-address.el provides two new minor modes, goto-address-mode and 1087 *** goto-address.el provides two new minor modes, goto-address-mode and
1148 goto-address-prog-mode, which buttonize URLS and email addresses. 1088 goto-address-prog-mode, which buttonize URLS and email addresses.
1149 1089
1150 *** The new command `eshell/info' runs info in an eshell buffer. 1090 *** The new command `eshell/info' runs info in an eshell buffer.
1151 1091
1152 *** The new variable `ffap-rfc-directories' specifies a list of local 1092 *** The new variable `ffap-rfc-directories' specifies a list of local
1153 directories in which `ffap-rfc' will first search for RFCs. 1093 directories in which `ffap-rfc' will first search for RFCs.
1154 +++ 1094
1155 *** hide-ifdef-mode allows shadowing ifdef-blocks instead of hiding them. 1095 *** hide-ifdef-mode allows shadowing ifdef-blocks instead of hiding them.
1156 See option `hide-ifdef-shadow' and function `hide-ifdef-toggle-shadowing'. 1096 See option `hide-ifdef-shadow' and function `hide-ifdef-toggle-shadowing'.
1157 1097
1158 *** `icomplete-prospects-height' now supercedes `icomplete-prospects-length'. 1098 *** `icomplete-prospects-height' now supercedes `icomplete-prospects-length'.
1159 1099
1182 tex-font-script-display, tex-suscript-height-ratio, and 1122 tex-font-script-display, tex-suscript-height-ratio, and
1183 tex-suscript-height-minimum. 1123 tex-suscript-height-minimum.
1184 1124
1185 *** view-remove-frame-by-deleting is now by default t 1125 *** view-remove-frame-by-deleting is now by default t
1186 since users found iconification of view-mode frames distracting. 1126 since users found iconification of view-mode frames distracting.
1187 --- 1127
1188 *** WoMan tries to add locale-specific manual page directories to the 1128 *** WoMan tries to add locale-specific manual page directories to the
1189 search path. This can be disabled by setting `woman-locale' to nil. 1129 search path. This can be disabled by setting `woman-locale' to nil.
1190 1130
1191 1131
1192 * Changes in Emacs 23.1 on non-free operating systems 1132 * Changes in Emacs 23.1 on non-free operating systems
1195 The default value of `completion-ignore-case' is now nil on 1135 The default value of `completion-ignore-case' is now nil on
1196 MS-Windows, the same as it is for other operating systems. The 1136 MS-Windows, the same as it is for other operating systems. The
1197 variable doesn't apply to reading a file name -- in that case Emacs 1137 variable doesn't apply to reading a file name -- in that case Emacs
1198 heeds `read-file-name-completion-ignore-case' instead. 1138 heeds `read-file-name-completion-ignore-case' instead.
1199 1139
1200 ---
1201 ** IPv6 is supported on MS-Windows. 1140 ** IPv6 is supported on MS-Windows.
1202 Emacs now supports IPv6 on Windows XP and later, and earlier versions 1141 Emacs now supports IPv6 on Windows XP and later, and earlier versions
1203 of Windows with third party IPv6 stacks installed. In Emacs 22, IPv6 was 1142 of Windows with third party IPv6 stacks installed. In Emacs 22, IPv6 was
1204 supported on other platforms, but not on Windows due to using the winsock 1143 supported on other platforms, but not on Windows due to using the winsock
1205 1.1 header file, even though Emacs was linking to the winsock 2 library. 1144 1.1 header file, even though Emacs was linking to the winsock 2 library.
1206 1145
1207 ---
1208 ** Busy cursor (hourglass) now displays on MS-Windows. 1146 ** Busy cursor (hourglass) now displays on MS-Windows.
1209 When Emacs is busy, an hourglass mouse cursor is displayed on Windows. 1147 When Emacs is busy, an hourglass mouse cursor is displayed on Windows.
1210 In Emacs 22 only X supported the busy cursor. 1148 In Emacs 22 only X supported the busy cursor.
1211 1149
1212 ---
1213 ** Battery status is available on MS-Windows 1150 ** Battery status is available on MS-Windows
1214 Emacs can now display the battery status in the mode-line when enabled with 1151 Emacs can now display the battery status in the mode-line when enabled with
1215 display-battery-mode or from the Options menu. More verbose battery 1152 display-battery-mode or from the Options menu. More verbose battery
1216 information is also available with the command `battery'. In Emacs 22 1153 information is also available with the command `battery'. In Emacs 22
1217 battery status was supported only on GNU/Linux and Mac. 1154 battery status was supported only on GNU/Linux and Mac.
1240 freetype library, giving access to a wider range of font formats. 1177 freetype library, giving access to a wider range of font formats.
1241 1178
1242 1179
1243 * Incompatible Lisp Changes in Emacs 23.1 1180 * Incompatible Lisp Changes in Emacs 23.1
1244 1181
1245 +++
1246 ** Variables cannot be both buffer-local and frame-local any more. 1182 ** Variables cannot be both buffer-local and frame-local any more.
1247 1183
1248 +++
1249 ** `functionp' returns nil for special forms. 1184 ** `functionp' returns nil for special forms.
1250 I.e., it only returns t for objects that can be passed to `funcall'. 1185 I.e., it only returns t for objects that can be passed to `funcall'.
1251 1186
1252 +++
1253 ** The behavior of map-char-table has changed. It may call the 1187 ** The behavior of map-char-table has changed. It may call the
1254 specified function with a cons (FROM . TO) as a key if characters in 1188 specified function with a cons (FROM . TO) as a key if characters in
1255 that range have the same value. 1189 that range have the same value.
1256 1190
1257 ** Process changes 1191 ** Process changes
1258 +++ 1192
1259 *** The function `dired-call-process' has been removed. 1193 *** The function `dired-call-process' has been removed.
1260 +++ 1194
1261 *** The multibyteness of process filters is now determined by the 1195 *** The multibyteness of process filters is now determined by the
1262 coding-system used for decoding. The functions 1196 coding-system used for decoding. The functions
1263 `process-filter-multibyte-p' and `set-process-filter-multibyte' are 1197 `process-filter-multibyte-p' and `set-process-filter-multibyte' are
1264 obsolete. 1198 obsolete.
1265 1199
1266 ---
1267 ** The variable `byte-compile-warnings' can now be a list starting with `not', 1200 ** The variable `byte-compile-warnings' can now be a list starting with `not',
1268 meaning to disable the specified warnings. The meaning of this list 1201 meaning to disable the specified warnings. The meaning of this list
1269 may therefore be the reverse of what you expect (of course, this is 1202 may therefore be the reverse of what you expect (of course, this is
1270 only an issue if you make use of the new `not' syntax). Rather than 1203 only an issue if you make use of the new `not' syntax). Rather than
1271 checking/manipulating elements directly, use the new functions 1204 checking/manipulating elements directly, use the new functions
1272 `byte-compile-warning-enabled-p', `byte-compile-disable-warning', and 1205 `byte-compile-warning-enabled-p', `byte-compile-disable-warning', and
1273 `byte-compile-enable-warning.' 1206 `byte-compile-enable-warning.'
1274 1207
1275 +++
1276 ** `mode-name' is no longer guaranteed to be a string. 1208 ** `mode-name' is no longer guaranteed to be a string.
1277 Use `(format-mode-line mode-name)' to ensure a string value. 1209 Use `(format-mode-line mode-name)' to ensure a string value.
1278 1210
1279 +++
1280 ** The function x-font-family-list has been removed. 1211 ** The function x-font-family-list has been removed.
1281 Use the new function font-family-list (see Lisp Changes, below). 1212 Use the new function font-family-list (see Lisp Changes, below).
1282 1213
1283 ** Internationalization changes 1214 ** Internationalization changes
1284 1215
1285 *** The value of the function `charset-id' is now always 0. 1216 *** The value of the function `charset-id' is now always 0.
1286 +++ 1217
1287 *** The functions `register-char-codings' and `coding-system-spec' 1218 *** The functions `register-char-codings' and `coding-system-spec'
1288 have been removed. 1219 have been removed.
1289 +++ 1220
1290 *** The cpXXX coding systems are now supported automatically. 1221 *** The cpXXX coding systems are now supported automatically.
1291 The functions cp-...-codepage, which you had to use in Emacs 22 to 1222 The functions cp-...-codepage, which you had to use in Emacs 22 to
1292 enable support for these coding systems, have been deleted. 1223 enable support for these coding systems, have been deleted.
1293 --- 1224
1294 *** The following features have been removed. They were used for 1225 *** The following features have been removed. They were used for
1295 displaying various scripts with specific fonts, and are no longer 1226 displaying various scripts with specific fonts, and are no longer
1296 needed now that OpenType font support is available: 1227 needed now that OpenType font support is available:
1297 1228
1298 **** `devanagari' and `devan-util', and all associated devanagari-* and 1229 **** `devanagari' and `devan-util', and all associated devanagari-* and
1313 1244
1314 *** The meaning of FONTSET argument of `print-fontset' is changed. 1245 *** The meaning of FONTSET argument of `print-fontset' is changed.
1315 Now, nil is for the fontset of the selected frame and t is for the 1246 Now, nil is for the fontset of the selected frame and t is for the
1316 default fontset. 1247 default fontset.
1317 1248
1318 --- 1249 ** If a function in write-region-annotate-functions returns with a
1250 different buffer current, Emacs no longer kills that buffer
1251 automatically. This behavior existed in previous versions of Emacs,
1252 but was undocumented. To kill a buffer after write-region, give the
1253 variable `write-region-post-annotation-function' a buffer-local value
1254 of `kill-buffer'.
1255
1319 ** The variable temp-file-name-pattern has been removed. 1256 ** The variable temp-file-name-pattern has been removed.
1320 This variable was only used by call-process-region, which now uses 1257 This variable was only used by call-process-region, which now uses
1321 temporary-file-directory instead. 1258 temporary-file-directory instead.
1322 1259
1323 +++
1324 ** The COUNT and SYSTEM-FLAG arguments to define-abbrev have been 1260 ** The COUNT and SYSTEM-FLAG arguments to define-abbrev have been
1325 removed. The function now takes extra arguments for specifying 1261 removed. The function now takes extra arguments for specifying
1326 arbitrary abbrev properties. 1262 arbitrary abbrev properties.
1327 1263
1328 ** end-of-defun-function is now guaranteed to work only when called 1264 ** end-of-defun-function is now guaranteed to work only when called
1331 whitespace after calling it. 1267 whitespace after calling it.
1332 1268
1333 1269
1334 * Lisp Changes in Emacs 23.1 1270 * Lisp Changes in Emacs 23.1
1335 1271
1336 +++
1337 ** The new variable `generate-autoload-cookie' controls the magic comment 1272 ** The new variable `generate-autoload-cookie' controls the magic comment
1338 string used by `update-file-autoloads' to find autoloaded forms. The 1273 string used by `update-file-autoloads' to find autoloaded forms. The
1339 variable `generated-autoload-file' similarly controls the name of the 1274 variable `generated-autoload-file' similarly controls the name of the
1340 file where `update-file-autoloads' writes the calls to `autoload'. 1275 file where `update-file-autoloads' writes the calls to `autoload'.
1341 The default values are ";;;###autoload" and `loaddefs.el', 1276 The default values are ";;;###autoload" and `loaddefs.el',
1342 respectively. 1277 respectively.
1343 1278
1344 +++
1345 ** New primitives `list-system-processes' and `process-attributes' 1279 ** New primitives `list-system-processes' and `process-attributes'
1346 let Lisp programs access the processes that are running on the local 1280 let Lisp programs access the processes that are running on the local
1347 machine. See the doc strings of these functions for more details. 1281 machine. See the doc strings of these functions for more details.
1348 Not all platforms support accessing this information; on those that 1282 Not all platforms support accessing this information; on those that
1349 don't, these primitives will return nil. 1283 don't, these primitives will return nil.
1350 1284
1351 +++
1352 ** New variable `user-emacs-directory'. 1285 ** New variable `user-emacs-directory'.
1353 Use this instead of "~/.emacs.d". 1286 Use this instead of "~/.emacs.d".
1354 1287
1355 +++
1356 ** If a local hook function has a non-nil `permanent-local-hook' 1288 ** If a local hook function has a non-nil `permanent-local-hook'
1357 property, `kill-all-local-variables' does not remove it from the local 1289 property, `kill-all-local-variables' does not remove it from the local
1358 value of the hook variable; it remains even if you change major modes. 1290 value of the hook variable; it remains even if you change major modes.
1359 1291
1360 +++
1361 ** `frame-inherited-parameters' lets new frames inherit parameters from 1292 ** `frame-inherited-parameters' lets new frames inherit parameters from
1362 the selected frame. 1293 the selected frame.
1363 1294
1364 +++
1365 ** New keymap `input-decode-map' overrides like key-translation-map, but 1295 ** New keymap `input-decode-map' overrides like key-translation-map, but
1366 applies before function-key-map. Also it is terminal-local contrary to 1296 applies before function-key-map. Also it is terminal-local contrary to
1367 key-translation-map. Terminal-specific key-sequences are generally added to 1297 key-translation-map. Terminal-specific key-sequences are generally added to
1368 this map rather than to function-key-map now. 1298 this map rather than to function-key-map now.
1369 1299
1370 +++
1371 ** `ignore-errors' is now a standard macro (does not require the CL package). 1300 ** `ignore-errors' is now a standard macro (does not require the CL package).
1372 1301
1373 +++
1374 ** `interprogram-paste-function' can now return one string or a list 1302 ** `interprogram-paste-function' can now return one string or a list
1375 of strings. In the latter case, Emacs puts the second and following 1303 of strings. In the latter case, Emacs puts the second and following
1376 strings on the kill ring. 1304 strings on the kill ring.
1377 1305
1378 +++
1379 ** In `condition-case', a handler can specify "let the debugger run first". 1306 ** In `condition-case', a handler can specify "let the debugger run first".
1380 You do this by writing `debug' in the list of conditions to be handled, 1307 You do this by writing `debug' in the list of conditions to be handled,
1381 like this: 1308 like this:
1382 1309
1383 (condition-case nil 1310 (condition-case nil
1384 (foo bar) 1311 (foo bar)
1385 ((debug error) nil)) 1312 ((debug error) nil))
1386 1313
1387 +++
1388 ** clone-indirect-buffer now runs the clone-indirect-buffer-hook. 1314 ** clone-indirect-buffer now runs the clone-indirect-buffer-hook.
1389 1315
1390 +++
1391 ** `beginning-of-defun-function' now takes one argument, the count given to 1316 ** `beginning-of-defun-function' now takes one argument, the count given to
1392 `beginning-of-defun'. (N.B. `end-of-defun-function' doesn't take any 1317 `beginning-of-defun'. (N.B. `end-of-defun-function' doesn't take any
1393 arguments.) 1318 arguments.)
1394 1319
1395 +++
1396 ** `file-remote-p' has new optional parameters IDENTIFICATION and CONNECTED. 1320 ** `file-remote-p' has new optional parameters IDENTIFICATION and CONNECTED.
1397 IDENTIFICATION specifies which part of the remote identifier has to be 1321 IDENTIFICATION specifies which part of the remote identifier has to be
1398 returned. With CONNECTED passed non-nil, it is checked whether a 1322 returned. With CONNECTED passed non-nil, it is checked whether a
1399 remote connection has been established already. 1323 remote connection has been established already.
1400 1324
1401 +++
1402 ** The new macro `declare-function' suppresses compiler warnings about 1325 ** The new macro `declare-function' suppresses compiler warnings about
1403 undefined functions. 1326 undefined functions.
1404 1327
1405 ** Changes to interactive function handling 1328 ** Changes to interactive function handling
1406 1329
1407 +++
1408 *** The new interactive spec code ^ says to first call 1330 *** The new interactive spec code ^ says to first call
1409 handle-shift-selection if shift-select-mode is non-nil, before reading 1331 handle-shift-selection if shift-select-mode is non-nil, before reading
1410 the command arguments. This is used for shift-selection (see above). 1332 the command arguments. This is used for shift-selection (see above).
1411 1333
1412 +++
1413 *** Built-in functions can now have an interactive specification that 1334 *** Built-in functions can now have an interactive specification that
1414 is not a prompt string. If the `intspec' parameter of a `DEFUN' 1335 is not a prompt string. If the `intspec' parameter of a `DEFUN'
1415 starts with a `(', the string is evaluated as a Lisp form. 1336 starts with a `(', the string is evaluated as a Lisp form.
1416 1337
1417 +++
1418 *** The interactive-form of a function can be added post-facto via the 1338 *** The interactive-form of a function can be added post-facto via the
1419 `interactive-form' symbol property. Mostly useful to add complex 1339 `interactive-form' symbol property. Mostly useful to add complex
1420 interactive forms to subroutines. 1340 interactive forms to subroutines.
1421 1341
1422 ** Region changes 1342 ** Region changes
1423 1343
1424 +++
1425 *** Commands should use `use-region-p' to test whether there is 1344 *** Commands should use `use-region-p' to test whether there is
1426 an active region that they should operate on. 1345 an active region that they should operate on.
1427 1346
1428 *** `region-active-p' returns non-nil when Transient Mark mode is 1347 *** `region-active-p' returns non-nil when Transient Mark mode is
1429 enabled and the mark is active. Most commands that act specially on 1348 enabled and the mark is active. Most commands that act specially on
1430 the active region in Transient Mark mode should use `use-region-p' 1349 the active region in Transient Mark mode should use `use-region-p'
1431 instead of `region-active-p', because `use-region-p' obeys the new 1350 instead of `region-active-p', because `use-region-p' obeys the new
1432 user option `use-empty-active-region' (see Editing Changes, above). 1351 user option `use-empty-active-region' (see Editing Changes, above).
1433 1352
1434 +++
1435 *** If a command sets `transient-mark-mode' to (only . OLDVAL), that 1353 *** If a command sets `transient-mark-mode' to (only . OLDVAL), that
1436 means to activate transient-mark-mode temporarily, until the next 1354 means to activate transient-mark-mode temporarily, until the next
1437 unshifted point motion command or mark deactivation. Afterwards, 1355 unshifted point motion command or mark deactivation. Afterwards,
1438 reset transient-mark-mode to the value OLDVAL. The values `only' and 1356 reset transient-mark-mode to the value OLDVAL. The values `only' and
1439 `identity', introduced in Emacs 22, are now deprecated. 1357 `identity', introduced in Emacs 22, are now deprecated.
1440 1358
1441 ** Emacs session information 1359 ** Emacs session information
1442 1360
1443 +++
1444 *** The new variables `before-init-time' and `after-init-time' record the 1361 *** The new variables `before-init-time' and `after-init-time' record the
1445 value of `current-time' before and after Emacs loads the init files. 1362 value of `current-time' before and after Emacs loads the init files.
1446 1363
1447 +++
1448 *** The new function `emacs-uptime' returns the uptime of an Emacs instance. 1364 *** The new function `emacs-uptime' returns the uptime of an Emacs instance.
1449 1365
1450 +++
1451 *** The new function `emacs-init-time' returns the duration of the 1366 *** The new function `emacs-init-time' returns the duration of the
1452 Emacs initialization. 1367 Emacs initialization.
1453 1368
1454 ** Changes affecting display-buffer 1369 ** Changes affecting display-buffer
1455 +++ 1370
1456 *** display-buffer tries to be smarter when splitting windows. 1371 *** display-buffer tries to be smarter when splitting windows.
1457 The new option split-window-preferred-function lets you specify your own 1372 The new option split-window-preferred-function lets you specify your own
1458 function to pop up new windows. Its default value split-window-sensibly 1373 function to pop up new windows. Its default value split-window-sensibly
1459 can split a window either vertically or horizontally, whichever seems 1374 can split a window either vertically or horizontally, whichever seems
1460 more suitable in the current configuration. You can tune the behavior 1375 more suitable in the current configuration. You can tune the behavior
1463 to inhibit splitting in one direction. Setting split-width-threshold to 1378 to inhibit splitting in one direction. Setting split-width-threshold to
1464 nil inhibits horizontal splitting and gets you the behavior of Emacs 22 1379 nil inhibits horizontal splitting and gets you the behavior of Emacs 22
1465 in this respect. In any case, display-buffer may now split the largest 1380 in this respect. In any case, display-buffer may now split the largest
1466 window vertically even when it is not as wide as the containing frame. 1381 window vertically even when it is not as wide as the containing frame.
1467 1382
1468 +++
1469 *** If pop-up-frames has the value `graphic-only', display-buffer only 1383 *** If pop-up-frames has the value `graphic-only', display-buffer only
1470 makes a separate frame on graphic displays. 1384 makes a separate frame on graphic displays.
1471 1385
1472 +++
1473 *** select-frame and set-frame-selected-window have a new optional 1386 *** select-frame and set-frame-selected-window have a new optional
1474 argument NORECORD. If non-nil, this will avoid messing with the order 1387 argument NORECORD. If non-nil, this will avoid messing with the order
1475 of recently selected windows and the buffer list. 1388 of recently selected windows and the buffer list.
1476 1389
1477 ** Window parameters can now be defined. 1390 ** Window parameters can now be defined.
1478 These are analogous to frame parameters, but are associated with 1391 These are analogous to frame parameters, but are associated with
1479 individual windows. 1392 individual windows.
1480 +++ 1393
1481 *** The new functions window-parameters, window-parameter, and 1394 *** The new functions window-parameters, window-parameter, and
1482 set-window-parameter are used to query and set window parameters. 1395 set-window-parameter are used to query and set window parameters.
1483 1396
1484 ** Minibuffer and completion changes 1397 ** Minibuffer and completion changes
1485 +++ 1398
1486 *** A list of default values can be specified for the DEFAULT argument of 1399 *** A list of default values can be specified for the DEFAULT argument of
1487 functions `read-from-minibuffer', `read-string', `read-command', 1400 functions `read-from-minibuffer', `read-string', `read-command',
1488 `read-variable', `read-buffer', `completing-read'. Elements of this list 1401 `read-variable', `read-buffer', `completing-read'. Elements of this list
1489 are available for inserting into the minibuffer by typing `M-n'. 1402 are available for inserting into the minibuffer by typing `M-n'.
1490 For empty input these functions return the first element of this list. 1403 For empty input these functions return the first element of this list.
1491 1404
1492 +++
1493 *** New function `read-regexp' uses the regexp history and some useful 1405 *** New function `read-regexp' uses the regexp history and some useful
1494 regexp defaults (string at point, last Isearch/replacement regexp/string) 1406 regexp defaults (string at point, last Isearch/replacement regexp/string)
1495 via M-n when reading a regexp in the minibuffer. 1407 via M-n when reading a regexp in the minibuffer.
1496 1408
1497 +++
1498 *** minibuffer-local-must-match-filename-map is now named 1409 *** minibuffer-local-must-match-filename-map is now named
1499 minibuffer-local-filename-must-match-map. 1410 minibuffer-local-filename-must-match-map.
1500 1411
1501 +++
1502 *** The `require-match' argument to `completing-read' accepts the new 1412 *** The `require-match' argument to `completing-read' accepts the new
1503 values `confirm-only' and `confirm-after-completion'. 1413 values `confirm-only' and `confirm-after-completion'.
1504 1414
1505 ** Search and replacement changes 1415 ** Search and replacement changes
1506 +++ 1416
1507 *** The regexp form \(?<num>:<regexp>\) specifies the group number explicitly. 1417 *** The regexp form \(?<num>:<regexp>\) specifies the group number explicitly.
1508 +++ 1418
1509 *** New function `match-substitute-replacement' returns the result of 1419 *** New function `match-substitute-replacement' returns the result of
1510 `replace-match' without actually using it in the buffer. 1420 `replace-match' without actually using it in the buffer.
1511 1421
1512 +++
1513 *** The new variable `replace-search-function' determines the function 1422 *** The new variable `replace-search-function' determines the function
1514 to use for searching in query-replace and replace-string. The 1423 to use for searching in query-replace and replace-string. The
1515 function it specifies is called by `perform-replace' when its 4th 1424 function it specifies is called by `perform-replace' when its 4th
1516 argument is nil. 1425 argument is nil.
1517 1426
1518 +++
1519 *** The new variable `replace-re-search-function' determines the 1427 *** The new variable `replace-re-search-function' determines the
1520 function to use for searching in `query-replace-regexp', 1428 function to use for searching in `query-replace-regexp',
1521 `replace-regexp', `query-replace-regexp-eval', and 1429 `replace-regexp', `query-replace-regexp-eval', and
1522 `map-query-replace-regexp'. The function it specifies is called by 1430 `map-query-replace-regexp'. The function it specifies is called by
1523 `perform-replace' when its 4th argument is non-nil. 1431 `perform-replace' when its 4th argument is non-nil.
1524 1432
1525 +++
1526 *** New keymap `search-map' bound to `M-s' provides global bindings 1433 *** New keymap `search-map' bound to `M-s' provides global bindings
1527 for search related commands. 1434 for search related commands.
1528 1435
1529 +++
1530 *** New keymap `multi-query-replace-map' contains additonal keys bound 1436 *** New keymap `multi-query-replace-map' contains additonal keys bound
1531 to `automatic-all' and `exit-current' for multi-buffer interactive replacement. 1437 to `automatic-all' and `exit-current' for multi-buffer interactive replacement.
1532 1438
1533 ---
1534 *** The variable `inhibit-changing-match-data', if non-nil, prevents 1439 *** The variable `inhibit-changing-match-data', if non-nil, prevents
1535 the search and match primitives from changing the match data. 1440 the search and match primitives from changing the match data.
1536 1441
1537 +++
1538 *** New functions `word-search-forward-lax' and `word-search-backward-lax'. 1442 *** New functions `word-search-forward-lax' and `word-search-backward-lax'.
1539 These are like `word-search-forward and `word-search-backward', except 1443 These are like `word-search-forward and `word-search-backward', except
1540 that the end of the search string need not match a word boundary, 1444 that the end of the search string need not match a word boundary,
1541 unless it ends in whitespace. 1445 unless it ends in whitespace.
1542 1446
1543 ** File handling changes 1447 ** File handling changes
1544 1448
1545 +++
1546 *** set-file-modes is now interactive and can take the mode value in 1449 *** set-file-modes is now interactive and can take the mode value in
1547 symbolic notation thanks to auxiliary functions. 1450 symbolic notation thanks to auxiliary functions.
1548 +++ 1451
1549 *** file-local-variables-alist stores an alist of file-local 1452 *** file-local-variables-alist stores an alist of file-local
1550 variables defined in the current buffer. 1453 variables defined in the current buffer.
1551 1454
1552 ** Face-remapping 1455 ** Face-remapping
1553 +++ 1456
1554 *** Each face can be remapped to a different face definition using the 1457 *** Each face can be remapped to a different face definition using the
1555 variable `face-remapping-alist'. This is an alist that maps faces to 1458 variable `face-remapping-alist'. This is an alist that maps faces to
1556 replacement definitions (which can be face names, lists of face names, 1459 replacement definitions (which can be face names, lists of face names,
1557 or attribute/value plists. If this variable is buffer-local, the 1460 or attribute/value plists. If this variable is buffer-local, the
1558 remapping occurs only in that buffer. 1461 remapping occurs only in that buffer.
1561 size in the current buffer. This feature is used by the Buffer Face 1464 size in the current buffer. This feature is used by the Buffer Face
1562 menu and the new `C-x C-+', `C-x C--', and `C-x C-0' commands (see 1465 menu and the new `C-x C-+', `C-x C--', and `C-x C-0' commands (see
1563 Editing Changes, above). 1466 Editing Changes, above).
1564 1467
1565 *** New functions: 1468 *** New functions:
1566 +++ 1469
1567 **** `face-remap-add-relative' adds a face remapping entry to the 1470 **** `face-remap-add-relative' adds a face remapping entry to the
1568 current buffer. 1471 current buffer.
1569 +++ 1472
1570 **** ``face-remap-remove-relative' removes a face remapping entry from 1473 **** ``face-remap-remove-relative' removes a face remapping entry from
1571 the current buffer. 1474 the current buffer.
1572 +++ 1475
1573 **** `face-remap-reset-base' restores a face to its global definition. 1476 **** `face-remap-reset-base' restores a face to its global definition.
1574 +++ 1477
1575 **** `face-remap-set-base' sets the base remapping of a face. 1478 **** `face-remap-set-base' sets the base remapping of a face.
1576 1479
1577 ** Process changes 1480 ** Process changes
1578 +++ 1481
1579 *** The new function `start-file-process' is similar to `start-process', 1482 *** The new function `start-file-process' is similar to `start-process',
1580 but obeys file handlers. The file handler is chosen based on 1483 but obeys file handlers. The file handler is chosen based on
1581 `default-directory'. The functions `start-file-process-shell-command' 1484 `default-directory'. The functions `start-file-process-shell-command'
1582 and `process-file-shell-command' are also new; they call internally 1485 and `process-file-shell-command' are also new; they call internally
1583 `start-file-process' and `process-file', respectively. 1486 `start-file-process' and `process-file', respectively.
1584 1487
1585 +++
1586 *** The new function `process-lines' executes an external program and 1488 *** The new function `process-lines' executes an external program and
1587 returns its output as a list of lines. 1489 returns its output as a list of lines.
1588 1490
1589 ** Character code, representation, and charset changes. 1491 ** Character code, representation, and charset changes.
1590 1492
1591 +++ 1493 *** In multibyte buffers and strings, characters are represented by
1592 The character code space is now 0x0..0x3FFFFF with no gap. 1494 UTF-8 byte sequences. The character code space is now 0x0..0x3FFFFF
1593 Characters of code 0x0..0x10FFFF are Unicode characters of the same code points. 1495 with no gap; code points 0x0..0x10FFFF are Unicode characters of the
1594 Characters of code 0x3FFF80..0x3FFFFF are raw 8-bit bytes. 1496 same code points, while code points 0x3FFF80..0x3FFFFF are raw 8-bit
1595 1497 bytes.
1596 +++ 1498
1597 Generic characters no longer exist. 1499 *** Generic characters no longer exist.
1598 1500
1599 +++ 1501 *** The concept of a charset has changed. A single character may
1600 In buffers and strings, characters are represented by UTF-8 byte 1502 belong to multiple charsets (e.g. a-grave, U+00E0, belongs to charsets
1601 sequences in a multibyte buffer/string.
1602
1603 +++
1604 The concept of a charset has changed. A single character may belong
1605 to multiple charsets (e.g. a-grave, U+00E0, belongs to charsets
1606 unicode, iso-8859-1, iso-8859-3, etc). 1503 unicode, iso-8859-1, iso-8859-3, etc).
1607 1504
1608 --- 1505 **** The dimension of a charset is now 1, 2, 3, or 4, and the size of
1506 each dimension is no longer limited to 94 or 96.
1507
1508 **** A dynamic charset priority list is used to infer the charset of
1509 characters for display.
1510
1609 *** The functions `split-char' and `make-char' now accept up to 4 1511 *** The functions `split-char' and `make-char' now accept up to 4
1610 positional codes instead of just 2. 1512 positional codes instead of just 2.
1611 1513
1612 +++
1613 *** The functions `encode-char' and `decode-char' now accept any character sets. 1514 *** The functions `encode-char' and `decode-char' now accept any character sets.
1614 1515
1615 ---
1616 *** The function `define-charset' now accepts a completely different 1516 *** The function `define-charset' now accepts a completely different
1617 form of arguments (old-style arguments still work). 1517 form of arguments (old-style arguments still work).
1618 1518
1619 +++
1620 *** The value of the function `char-charset' depends on the current 1519 *** The value of the function `char-charset' depends on the current
1621 priorities of charsets. 1520 priorities of charsets.
1622 1521
1623 +++
1624 *** The function get-char-code-property now accepts many Unicode base 1522 *** The function get-char-code-property now accepts many Unicode base
1625 character properties. They are `name', `general-category', 1523 character properties. They are `name', `general-category',
1626 `canonical-combining-class', `bidi-class', `decomposition', 1524 `canonical-combining-class', `bidi-class', `decomposition',
1627 `decimal-digit-value', `digit-value', `numeric-value', `mirrored', 1525 `decimal-digit-value', `digit-value', `numeric-value', `mirrored',
1628 `old-name', `iso-10646-comment', `uppercase', `lowercase', and 1526 `old-name', `iso-10646-comment', `uppercase', `lowercase', and
1629 `titlecase'. 1527 `titlecase'.
1630 1528
1631 +++
1632 *** The functions `modify-syntax-entry' and `modify-category-entry' now 1529 *** The functions `modify-syntax-entry' and `modify-category-entry' now
1633 accept a cons of characters as the first argument, and modify all 1530 accept a cons of characters as the first argument, and modify all
1634 entries in that range of characters. 1531 entries in that range of characters.
1635 1532
1636 +++
1637 *** Use of `translation-table-for-input' for character code unification 1533 *** Use of `translation-table-for-input' for character code unification
1638 is now obsolete, since Emacs 23.1 and later uses Unicode as basis for 1534 is now obsolete, since Emacs 23.1 and later uses Unicode as basis for
1639 internal representation of characters. 1535 internal representation of characters.
1640 1536
1641 *** New functions: 1537 *** New functions:
1642 1538
1643 +++
1644 **** `characterp' returns t if and only if the argument is a character. 1539 **** `characterp' returns t if and only if the argument is a character.
1645 This replaces `char-valid-p', which is now obsolete. 1540 This replaces `char-valid-p', which is now obsolete.
1646 1541
1647 +++
1648 **** `max-char' returns the maximum character code (currently #x3FFFFF). 1542 **** `max-char' returns the maximum character code (currently #x3FFFFF).
1649 1543
1650 ---
1651 **** `define-charset-alias' defines an alias of a charset. 1544 **** `define-charset-alias' defines an alias of a charset.
1652 1545
1653 +++
1654 **** `set-charset-priority' sets priorities of charsets. 1546 **** `set-charset-priority' sets priorities of charsets.
1655 1547
1656 +++
1657 **** `charset-priority-list' returns a prioritized list of charsets. 1548 **** `charset-priority-list' returns a prioritized list of charsets.
1658 1549
1659 +++
1660 **** `unibyte-string' makes a unibyte string from bytes. 1550 **** `unibyte-string' makes a unibyte string from bytes.
1661 1551
1662 ---
1663 **** `define-char-code-property' defines a character code property. 1552 **** `define-char-code-property' defines a character code property.
1664 1553
1665 +++
1666 **** `char-code-property-description' returns the description string of 1554 **** `char-code-property-description' returns the description string of
1667 a character code property. 1555 a character code property.
1668 1556
1669 *** New variables: 1557 *** New variables:
1670 1558
1671 **** `find-word-boundary-function-table' is a char-table of functions to 1559 **** `find-word-boundary-function-table' is a char-table of functions to
1672 search for a word boundary. 1560 search for a word boundary.
1673 1561
1674 +++
1675 **** `char-script-table' is a char-table of script names. 1562 **** `char-script-table' is a char-table of script names.
1676 1563
1677 +++
1678 **** `char-width-table' is a char-table of character widths. 1564 **** `char-width-table' is a char-table of character widths.
1679 1565
1680 ---
1681 **** `print-charset-text-property' controls how to handle `charset' text 1566 **** `print-charset-text-property' controls how to handle `charset' text
1682 property on printing a string. 1567 property on printing a string.
1683 1568
1684 +++
1685 **** `printable-chars' is a char-table of printable characters. 1569 **** `printable-chars' is a char-table of printable characters.
1686 1570
1687 ** Code conversion changes 1571 ** Code conversion changes
1688 1572
1689 ---
1690 *** The new function `define-coding-system' should be used to define a 1573 *** The new function `define-coding-system' should be used to define a
1691 coding system instead of `make-coding-system' (which is now obsolete). 1574 coding system instead of `make-coding-system' (which is now obsolete).
1692 1575
1693 +++
1694 *** The functions `encode-coding-region' and `decode-coding-region' 1576 *** The functions `encode-coding-region' and `decode-coding-region'
1695 have an optional 4th argument to specify where the result of 1577 have an optional 4th argument to specify where the result of
1696 conversion should go. 1578 conversion should go.
1697 1579
1698 +++
1699 *** The functions `encode-coding-string' and `decode-coding-string' 1580 *** The functions `encode-coding-string' and `decode-coding-string'
1700 have an optional 4th argument specifying a buffer to store the result 1581 have an optional 4th argument specifying a buffer to store the result
1701 of conversion. 1582 of conversion.
1702 1583
1703 +++
1704 *** The new variable `inhibit-null-byte-detection' controls whether to 1584 *** The new variable `inhibit-null-byte-detection' controls whether to
1705 consider text with null bytes as binary data. By default, it is 1585 consider text with null bytes as binary data. By default, it is
1706 `nil', and Emacs uses `no-conversion' for any text containing null 1586 `nil', and Emacs uses `no-conversion' for any text containing null
1707 bytes. 1587 bytes.
1708 1588
1709 ---
1710 *** The functions `set-coding-priority' and `make-coding-system' are obsolete. 1589 *** The functions `set-coding-priority' and `make-coding-system' are obsolete.
1711 1590
1712 *** New functions: 1591 *** New functions:
1713 1592
1714 +++
1715 **** `with-coding-priority' executes Lisp code using the specified 1593 **** `with-coding-priority' executes Lisp code using the specified
1716 coding system priority order. 1594 coding system priority order.
1717 1595
1718 +++
1719 **** `check-coding-systems-region' checks if the text in the region is 1596 **** `check-coding-systems-region' checks if the text in the region is
1720 encodable by the specified coding systems. 1597 encodable by the specified coding systems.
1721 1598
1722 +++
1723 **** `coding-system-aliases' returns a list of aliases of a coding system. 1599 **** `coding-system-aliases' returns a list of aliases of a coding system.
1724 1600
1725 +++
1726 **** `coding-system-charset-list' returns a list of charsets supported 1601 **** `coding-system-charset-list' returns a list of charsets supported
1727 by a coding system. 1602 by a coding system.
1728 1603
1729 +++
1730 **** `coding-system-priority-list' returns a list of coding systems 1604 **** `coding-system-priority-list' returns a list of coding systems
1731 ordered by their priorities. 1605 ordered by their priorities.
1732 1606
1733 +++
1734 **** `set-coding-system-priority' sets priorities of coding systems. 1607 **** `set-coding-system-priority' sets priorities of coding systems.
1735 1608
1736 **** `coding-system-from-name' returns a coding system matching with 1609 **** `coding-system-from-name' returns a coding system matching with
1737 the argument name. 1610 the argument name.
1738 1611
1749 *** The new function `robin-modify-package' modifies an existing Robin package. 1622 *** The new function `robin-modify-package' modifies an existing Robin package.
1750 1623
1751 *** The new function `robin-use-package' starts using a Robin package 1624 *** The new function `robin-use-package' starts using a Robin package
1752 as an input method. 1625 as an input method.
1753 1626
1754 +++
1755 *** The new function `string-to-unibyte' is like `string-as-unibyte' 1627 *** The new function `string-to-unibyte' is like `string-as-unibyte'
1756 but signals an error if STRING contains a non-ASCII, non-eight-bit 1628 but signals an error if STRING contains a non-ASCII, non-eight-bit
1757 character. 1629 character.
1758 1630
1759 ** Changes related to the new font backend 1631 ** Changes related to the new font backend
1760 +++ 1632
1761 *** Which font backends to use can be specified by the X resource 1633 *** Which font backends to use can be specified by the X resource
1762 "FontBackend". For instance, to use both X core fonts and Xft fonts: 1634 "FontBackend". For instance, to use both X core fonts and Xft fonts:
1763 1635
1764 Emacs.FontBackend: x,xft 1636 Emacs.FontBackend: x,xft
1765 1637
1766 If this resource is not set, Emacs tries to use all font backends 1638 If this resource is not set, Emacs tries to use all font backends
1767 available on your graphic device. 1639 available on your graphic device.
1768 +++ 1640
1769 *** New frame parameter `font-backend' specifies a list of 1641 *** New frame parameter `font-backend' specifies a list of
1770 font-backends supported by the frame's graphic device. On X, they are 1642 font-backends supported by the frame's graphic device. On X, they are
1771 currently `x' and `xft'. 1643 currently `x' and `xft'.
1772 1644
1773 *** The function `set-fontset-font' now accepts a script name as the 1645 *** The function `set-fontset-font' now accepts a script name as the
1774 second argument, and has an optional 5th argument to control how to 1646 second argument, and has an optional 5th argument to control how to
1775 set the font. 1647 set the font.
1776 1648
1777 *** New functions: 1649 *** New functions:
1778 +++ 1650
1779 **** `fontp' checks if the argument is a font-spec or font-entity. 1651 **** `fontp' checks if the argument is a font-spec or font-entity.
1780 +++ 1652
1781 **** `font-spec' creates a new font-spec object. 1653 **** `font-spec' creates a new font-spec object.
1782 +++ 1654
1783 **** `font-get' returns a font property value. 1655 **** `font-get' returns a font property value.
1784 +++ 1656
1785 **** `font-put' sets a font property value. 1657 **** `font-put' sets a font property value.
1786 +++ 1658
1787 **** `font-face-attributes' returns a plist of face attributes set by a font. 1659 **** `font-face-attributes' returns a plist of face attributes set by a font.
1788 +++ 1660
1789 **** `list-fonts' returns a list of font-entities matching a font spec. 1661 **** `list-fonts' returns a list of font-entities matching a font spec.
1790 +++ 1662
1791 **** `find-font' returns the font-entity best matching the given font spec. 1663 **** `find-font' returns the font-entity best matching the given font spec.
1792 +++ 1664
1793 **** `font-family-list' returns a list of family names of available fonts. 1665 **** `font-family-list' returns a list of family names of available fonts.
1794 +++ 1666
1795 **** `font-xlfd-name' returns an XLFD name of a given font spec, font 1667 **** `font-xlfd-name' returns an XLFD name of a given font spec, font
1796 entity, or font object. 1668 entity, or font object.
1797 --- 1669
1798 **** `clear-font-cache' clears all font caches. 1670 **** `clear-font-cache' clears all font caches.
1799 1671
1800 ** Changes related to multiple-terminal (multi-tty) support 1672 ** Changes related to multiple-terminal (multi-tty) support
1801 1673
1802 ---
1803 *** $TERM is now set to `dumb' for subprocesses. If you want to know the 1674 *** $TERM is now set to `dumb' for subprocesses. If you want to know the
1804 $TERM inherited by Emacs you will have to look inside initial-environment. 1675 $TERM inherited by Emacs you will have to look inside initial-environment.
1805 1676
1806 ---
1807 *** $DISPLAY is now dynamically inherited from the frame's `display'. 1677 *** $DISPLAY is now dynamically inherited from the frame's `display'.
1808 1678
1809 +++
1810 *** The `window-system' variable is now frame-local. The new 1679 *** The `window-system' variable is now frame-local. The new
1811 `initial-window-system' variable contains the `window-system' value 1680 `initial-window-system' variable contains the `window-system' value
1812 for the first frame. `window-system' is also now a function that 1681 for the first frame. `window-system' is also now a function that
1813 takes a frame argument. 1682 takes a frame argument.
1814 1683
1815 +++
1816 *** The `keyboard-translate-table' variable and the terminal and 1684 *** The `keyboard-translate-table' variable and the terminal and
1817 keyboard coding systems are now terminal-local. 1685 keyboard coding systems are now terminal-local.
1818 1686
1819 ---
1820 *** You can specify a terminal device (`tty' parameter) and a terminal 1687 *** You can specify a terminal device (`tty' parameter) and a terminal
1821 type (`tty-type' parameter) to `make-terminal-frame'. 1688 type (`tty-type' parameter) to `make-terminal-frame'.
1822 1689
1823 ---
1824 *** The function `make-frame-on-display' now works during a tty 1690 *** The function `make-frame-on-display' now works during a tty
1825 session. 1691 session.
1826 1692
1827 +++
1828 *** A new `terminal' data type. 1693 *** A new `terminal' data type.
1829 The functions `get-device-terminal', `terminal-parameters', 1694 The functions `get-device-terminal', `terminal-parameters',
1830 `terminal-parameter', `set-terminal-parameter' use this data type. 1695 `terminal-parameter', `set-terminal-parameter' use this data type.
1831 1696
1832 +++
1833 *** Function key sequences are now mapped using `local-function-key-map', 1697 *** Function key sequences are now mapped using `local-function-key-map',
1834 a new variable. This inherits from the global variable function-key-map, 1698 a new variable. This inherits from the global variable function-key-map,
1835 which is not used directly any more. 1699 which is not used directly any more.
1836 1700
1837 *** New hooks: 1701 *** New hooks:
1838 1702
1839 +++
1840 **** before-hack-local-variables-hook is called after setting new 1703 **** before-hack-local-variables-hook is called after setting new
1841 variable file-local-variables-alist, and before actually applying the 1704 variable file-local-variables-alist, and before actually applying the
1842 file-local variables. 1705 file-local variables.
1843 1706
1844 +++
1845 **** `suspend-tty-functions' and `resume-tty-functions' are called 1707 **** `suspend-tty-functions' and `resume-tty-functions' are called
1846 after a tty frame has been suspended or resumed, respectively. The 1708 after a tty frame has been suspended or resumed, respectively. The
1847 functions are called with the terminal id of the frame being 1709 functions are called with the terminal id of the frame being
1848 suspended/resumed as a parameter. 1710 suspended/resumed as a parameter.
1849 1711
1850 +++
1851 **** The special hook `delete-terminal-functions' is called before 1712 **** The special hook `delete-terminal-functions' is called before
1852 deleting a terminal. 1713 deleting a terminal.
1853 1714
1854 *** New functions: 1715 *** New functions:
1855 1716
1856 +++
1857 **** `delete-terminal' 1717 **** `delete-terminal'
1858 1718
1859 +++
1860 **** `suspend-tty' 1719 **** `suspend-tty'
1861 1720
1862 +++
1863 **** `resume-tty'. 1721 **** `resume-tty'.
1864 1722
1865 +++
1866 *** `initial-environment' holds the environment inherited from Emacs's parent. 1723 *** `initial-environment' holds the environment inherited from Emacs's parent.
1867 1724
1868 ** Redisplay changes 1725 ** Redisplay changes
1869 +++ 1726
1870 *** For underlined characters, the distance between the underline and 1727 *** For underlined characters, the distance between the underline and
1871 the baseline is controlled by a new variable, `underline-minimum-offset'. 1728 the baseline is controlled by a new variable, `underline-minimum-offset'.
1872 +++ 1729
1873 *** You can now pass the value of the `invisible' property to 1730 *** You can now pass the value of the `invisible' property to
1874 invisible-p to check whether it would cause the text to be invisible. 1731 invisible-p to check whether it would cause the text to be invisible.
1875 This is convenient when checking invisibility of text with no buffer 1732 This is convenient when checking invisibility of text with no buffer
1876 position (e.g. in before/after-strings). 1733 position (e.g. in before/after-strings).
1877 +++ 1734
1878 *** `clear-image-cache' can be told to flush only images of a specific file. 1735 *** `clear-image-cache' can be told to flush only images of a specific file.
1879 +++ 1736
1880 *** `vertical-motion' can now be given a goal column. 1737 *** `vertical-motion' can now be given a goal column.
1881 It now accepts a cons cell (COLS . LINES) in its first argument, which 1738 It now accepts a cons cell (COLS . LINES) in its first argument, which
1882 says to stop, where possible, at a pixel x-position equal to COLS 1739 says to stop, where possible, at a pixel x-position equal to COLS
1883 times the default column width. 1740 times the default column width.
1884 +++ 1741
1885 *** redisplay-end-trigger-functions, set-window-redisplay-end-trigger, 1742 *** redisplay-end-trigger-functions, set-window-redisplay-end-trigger,
1886 and window-redisplay-end-trigger are obsolete. Use `jit-lock-register' 1743 and window-redisplay-end-trigger are obsolete. Use `jit-lock-register'
1887 instead. 1744 instead.
1888 +++ 1745
1889 *** The new variables `wrap-prefix' and `line-prefix' specify display 1746 *** The new variables `wrap-prefix' and `line-prefix' specify display
1890 specs which are appended at display-time to every continuation line 1747 specs which are appended at display-time to every continuation line
1891 and non-continuation line, respectively. In addition, Emacs 1748 and non-continuation line, respectively. In addition, Emacs
1892 recognizes the `wrap-prefix' and `line-prefix' text or overlay 1749 recognizes the `wrap-prefix' and `line-prefix' text or overlay
1893 properties; these have the same effects as the variables of the same 1750 properties; these have the same effects as the variables of the same
1895 1752
1896 ** The Lisp interpreter now treats non-breaking space as whitespace. 1753 ** The Lisp interpreter now treats non-breaking space as whitespace.
1897 1754
1898 ** Miscellaneous new functions 1755 ** Miscellaneous new functions
1899 1756
1900 +++
1901 *** `apply-partially' performs a "curried" application of a function. 1757 *** `apply-partially' performs a "curried" application of a function.
1902 1758
1903 +++
1904 *** `buffer-swap-text' swaps text between two buffers. This can be 1759 *** `buffer-swap-text' swaps text between two buffers. This can be
1905 useful for modes such as tar-mode, archive-mode, RMAIL. 1760 useful for modes such as tar-mode, archive-mode, RMAIL.
1906 1761
1907 +++
1908 *** `combine-and-quote-strings' produces a single string from a list of strings 1762 *** `combine-and-quote-strings' produces a single string from a list of strings
1909 sticking a separator string in between each pair, and quoting those 1763 sticking a separator string in between each pair, and quoting those
1910 strings that include the separator as their substring. Useful for 1764 strings that include the separator as their substring. Useful for
1911 consing shell command lines from the individual arguments. 1765 consing shell command lines from the individual arguments.
1912 1766
1913 ---
1914 *** `custom-note-var-changed' tells Custom to treat the change in a 1767 *** `custom-note-var-changed' tells Custom to treat the change in a
1915 certain variable as having been made within Custom. 1768 certain variable as having been made within Custom.
1916 1769
1917 +++
1918 *** `face-all-attributes' returns an alist describing all the basic 1770 *** `face-all-attributes' returns an alist describing all the basic
1919 attributes of a given face. 1771 attributes of a given face.
1920 1772
1921 +++
1922 *** `format-seconds' converts a number of seconds into a readable 1773 *** `format-seconds' converts a number of seconds into a readable
1923 string of days, hours, etc. 1774 string of days, hours, etc.
1924 1775
1925 +++
1926 *** `image-refresh' refreshes all images associated with a given image 1776 *** `image-refresh' refreshes all images associated with a given image
1927 specification. 1777 specification.
1928 1778
1929 *** `locate-user-emacs-file' helps packages to select the appropriate 1779 *** `locate-user-emacs-file' helps packages to select the appropriate
1930 place to save user-specific files. It defaults to `user-emacs-directory' 1780 place to save user-specific files. It defaults to `user-emacs-directory'
1931 unless the file already exists at $HOME. 1781 unless the file already exists at $HOME.
1932 1782
1933 +++
1934 *** `read-color' reads a color name using the minibuffer. 1783 *** `read-color' reads a color name using the minibuffer.
1935 1784
1936 +++
1937 *** `read-shell-command' does what its name says, with completion. It 1785 *** `read-shell-command' does what its name says, with completion. It
1938 uses the minibuffer-local-shell-command-map for that. 1786 uses the minibuffer-local-shell-command-map for that.
1939 1787
1940 +++
1941 *** `split-string-and-unquote' splits a string into a list of substrings 1788 *** `split-string-and-unquote' splits a string into a list of substrings
1942 on the boundaries of a given delimiter, and unquotes the substrings that 1789 on the boundaries of a given delimiter, and unquotes the substrings that
1943 are quoted. Useful for taking apart shell commands. 1790 are quoted. Useful for taking apart shell commands.
1944 1791
1945 +++
1946 *** The two new functions `looking-at-p' and `string-match-p' can do 1792 *** The two new functions `looking-at-p' and `string-match-p' can do
1947 the same matching as `looking-at' and `string-match' without changing 1793 the same matching as `looking-at' and `string-match' without changing
1948 the match data. 1794 the match data.
1949 1795
1950 +++
1951 *** The two new functions `make-serial-process' and 1796 *** The two new functions `make-serial-process' and
1952 `serial-process-configure' provide a Lisp interface to the new serial 1797 `serial-process-configure' provide a Lisp interface to the new serial
1953 port support (see Emacs changes, above). 1798 port support (see Emacs changes, above).
1954 1799
1955 ** Miscellaneous new variables 1800 ** Miscellaneous new variables
1956 1801
1957 +++
1958 *** `read-circle', if nil, disables the reading of recursive Lisp 1802 *** `read-circle', if nil, disables the reading of recursive Lisp
1959 structures using the #N= and #N# syntax. 1803 structures using the #N= and #N# syntax.
1960 1804
1961 +++
1962 *** `this-command-keys-shift-translated' is non-nil if the key 1805 *** `this-command-keys-shift-translated' is non-nil if the key
1963 sequence invoking the current command was found by shift-translation. 1806 sequence invoking the current command was found by shift-translation.
1964 1807
1965 *** `window-point-insertion-type' determines the insertion-type of the 1808 *** `window-point-insertion-type' determines the insertion-type of the
1966 marker used for window-point. 1809 marker used for window-point.
1967 1810
1968 ---
1969 *** bookmark provides `bookmark-make-record-function' so special major 1811 *** bookmark provides `bookmark-make-record-function' so special major
1970 modes like Info can teach bookmark.el how to save and restore the 1812 modes like Info can teach bookmark.el how to save and restore the
1971 relevant data. 1813 relevant data.
1972 1814
1973 +++
1974 *** `fill-forward-paragraph-function' specifies which function the 1815 *** `fill-forward-paragraph-function' specifies which function the
1975 filling code should use to find paragraph boundaries. 1816 filling code should use to find paragraph boundaries.
1976 1817
1977 1818
1978 * New Packages for Lisp Programming in Emacs 23.1 1819 * New Packages for Lisp Programming in Emacs 23.1
1979 1820
1980 ** The new package avl-tree.el deals with the AVL tree data structure. 1821 ** The new package avl-tree.el deals with the AVL tree data structure.
1981 1822
1982 +++
1983 ** The new package check-declare.el verifies the accuracy of 1823 ** The new package check-declare.el verifies the accuracy of
1984 declare-function macros (see Lisp Changes, above). 1824 declare-function macros (see Lisp Changes, above).
1985 1825
1986 ** find-cmd.el can build `find' commands using lisp syntax. 1826 ** find-cmd.el can build `find' commands using lisp syntax.
1987 1827
1991 of multiple buffers. Top-level commands `multi-isearch-buffers', 1831 of multiple buffers. Top-level commands `multi-isearch-buffers',
1992 `multi-isearch-buffers-regexp', `multi-isearch-files' and 1832 `multi-isearch-buffers-regexp', `multi-isearch-files' and
1993 `multi-isearch-files-regexp' accept a single argument that specifies 1833 `multi-isearch-files-regexp' accept a single argument that specifies
1994 a list of buffers/files to search for a string/regexp. 1834 a list of buffers/files to search for a string/regexp.
1995 1835
1996 +++
1997 ** The new major mode `special-mode' is intended as a parent for 1836 ** The new major mode `special-mode' is intended as a parent for
1998 major modes such as those that set the "'mode-class 'special" property. 1837 major modes such as those that set the "'mode-class 'special" property.
1999 1838
2000 1839
2001 ---------------------------------------------------------------------- 1840 ----------------------------------------------------------------------