aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChong Yidong2012-04-05 12:29:22 +0800
committerChong Yidong2012-04-05 12:29:22 +0800
commitdfdb4cadb8e49f1f226c8b0651558f4bf51a669c (patch)
treee774e5c61c570e6ecd034d2015be463b58effc48
parent6cac07d8ab677e8cf2f5552880c9bf0118fba01d (diff)
downloademacs-dfdb4cadb8e49f1f226c8b0651558f4bf51a669c.tar.gz
emacs-dfdb4cadb8e49f1f226c8b0651558f4bf51a669c.zip
NEWS copyedits. Remove +++/--- lines.
-rw-r--r--etc/NEWS682
1 files changed, 237 insertions, 445 deletions
diff --git a/etc/NEWS b/etc/NEWS
index 306dbad212b..3dc19285d02 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -14,84 +14,64 @@ and NEWS.1-17 for changes in older Emacs versions.
14You can narrow news to a specific version by calling `view-emacs-news' 14You can narrow news to a specific version by calling `view-emacs-news'
15with a prefix argument or by typing C-u C-h C-n. 15with a prefix argument or by typing C-u C-h C-n.
16 16
17
18Temporary note:
19 +++ indicates that the appropriate manual has already been updated.
20 --- means no change in the manuals is called for.
21When you add a new item, please add it without either +++ or ---
22so we will look at it and add it to the manual.
23
24 17
25* Installation Changes in Emacs 24.1 18* Installation Changes in Emacs 24.1
26 19
27---
28** Emacs can be compiled with Gtk+ 3.0 if you pass --with-x-toolkit=gtk3 20** Emacs can be compiled with Gtk+ 3.0 if you pass --with-x-toolkit=gtk3
29to configure. Note that other libraries used by Emacs, RSVG and GConf, 21to configure. Note that other libraries used by Emacs, RSVG and GConf,
30also depend on Gtk+. You can disable them with --without-rsvg and 22also depend on Gtk+. You can disable them with --without-rsvg and
31--without-gconf. 23--without-gconf.
32 24
33---
34** Emacs can be compiled with GnuTLS support. 25** Emacs can be compiled with GnuTLS support.
35This happens by default if a suitably recent version of the library is 26This happens by default if a suitably recent version of the library is
36found at build time. To prevent this, use the configure option 27found at build time. To prevent this, use the configure option
37`--without-gnutls'. See below for GnuTLS features. 28`--without-gnutls'. See below for GnuTLS features.
38 29
39---
40** Emacs can be compiled with SELinux support. 30** Emacs can be compiled with SELinux support.
41This happens by default if a suitably recent version of the library is 31This happens by default if a suitably recent version of the library is
42found at build time. To prevent this, use the configure option 32found at build time. To prevent this, use the configure option
43`--without-selinux'. See below for SELinux features. 33`--without-selinux'. See below for SELinux features.
44 34
45---
46** Emacs can be compiled with ImageMagick support. 35** Emacs can be compiled with ImageMagick support.
47This happens by default if a suitably recent version of the library is 36This happens by default if a suitably recent version of the library is
48found at build time. To prevent this, use the configure option 37found at build time. To prevent this, use the configure option
49`--without-imagemagick'. See below for ImageMagick features. 38`--without-imagemagick'. See below for ImageMagick features.
50This feature is not available for the Nextstep or MS ports. 39This feature is not available for the Nextstep or MS ports.
51 40
52---
53** Emacs can be compiled with libxml2 support. 41** Emacs can be compiled with libxml2 support.
54This happens by default if a suitably recent version of the library is 42This happens by default if a suitably recent version of the library is
55found at build time. To prevent this, use the configure option 43found at build time. To prevent this, use the configure option
56`--without-xml2'. See below for libxml2 features. 44`--without-xml2'. See below for libxml2 features.
57 45
58---
59** By default, the installed Info and man pages are compressed. 46** By default, the installed Info and man pages are compressed.
60You can disable this by configuring --without-compress-info. 47You can disable this by configuring --without-compress-info.
61 48
62---
63** New configure option --with-wide-int. 49** New configure option --with-wide-int.
64With it, Emacs integers typically have 62 bits, even on 32-bit machines. 50With it, Emacs integers typically have 62 bits, even on 32-bit machines.
65On 32-bit hosts, this raises the limit on buffer sizes from about 512 MiB 51On 32-bit hosts, this raises the limit on buffer sizes from about 512 MiB
66to about 2 GiB. 52to about 2 GiB.
67 53
68---
69** New configure options: --with-mmdf, --with-mail-unlink, --with-mailhost. 54** New configure options: --with-mmdf, --with-mail-unlink, --with-mailhost.
70These provide no new functionality, they just remove the need to edit 55These provide no new functionality, they just remove the need to edit
71lib-src/Makefile by hand in order to use the associated features. 56lib-src/Makefile by hand in order to use the associated features.
72 57
73---
74** New configure option --enable-use-lisp-union-type. 58** New configure option --enable-use-lisp-union-type.
75This is only useful for Emacs developers to debug certain types of bugs. 59This is only useful for Emacs developers to debug certain types of bugs.
76This is not a new feature; only the configure flag is new. 60This is not a new feature; only the configure flag is new.
77 61
78---
79** The standalone programs digest-doc and sorted-doc are removed. 62** The standalone programs digest-doc and sorted-doc are removed.
80Emacs now uses Lisp commands `doc-file-to-man' and `doc-file-to-info'. 63Emacs now uses Lisp commands `doc-file-to-man' and `doc-file-to-info'.
81 64
82---
83** The standalone program `fakemail' is removed. 65** The standalone program `fakemail' is removed.
84If you need it, feedmail.el provides a superset of the functionality. 66If you need it, feedmail.el provides a superset of the functionality.
85 67
86 68
87* Startup Changes in Emacs 24.1 69* Startup Changes in Emacs 24.1
88 70
89---
90** The --unibyte, --multibyte, --no-multibyte, and --no-unibyte 71** The --unibyte, --multibyte, --no-multibyte, and --no-unibyte
91command line arguments, and the EMACS_UNIBYTE environment variable, no 72command line arguments, and the EMACS_UNIBYTE environment variable, no
92longer have any effect. (They were declared obsolete in Emacs 23.) 73longer have any effect. (They were declared obsolete in Emacs 23.)
93 74
94+++
95** New command line option `--no-site-lisp' removes site-lisp directories 75** New command line option `--no-site-lisp' removes site-lisp directories
96from load-path. -Q now implies this. This option does not affect the 76from load-path. -Q now implies this. This option does not affect the
97EMACSLOADPATH environment variable (and hence has no effect for 77EMACSLOADPATH environment variable (and hence has no effect for
@@ -103,101 +83,90 @@ Nextstep builds).
103** Completion 83** Completion
104 84
105*** Shell mode uses pcomplete rules, with the standard completion UI. 85*** Shell mode uses pcomplete rules, with the standard completion UI.
106+++ 86
107*** Many packages have been changed to use `completion-at-point' 87*** Many packages now use the `completion-at-point' command,
108rather than their own completion code. 88rather than implementing separate completion commands.
109+++ 89
110*** `completion-at-point' now handles tags and semantic completion. 90*** `completion-at-point' now handles tags and semantic completion.
111--- 91
112*** Completion in a non-minibuffer now tries to detect the end of completion 92*** Completion in a non-minibuffer now tries to detect the end of completion
113and pops down the *Completions* buffer accordingly. 93and pops down the *Completions* buffer accordingly.
114+++ 94
115*** Completion can cycle, depending on `completion-cycle-threshold'. 95*** New option `completion-cycle-threshold' allows completion cycling.
116+++ 96
97*** New option `completion-category-overrides' for overriding the
98default completion style in certain cirucmstances.
99
117*** New completion style `substring'. 100*** New completion style `substring'.
118+++ 101
119*** Completion style can be set per-category `completion-category-overrides'. 102*** Completion of buffer names uses `substring' completion by default.
120+++ 103
121*** Completion of buffers now uses substring completion by default. 104*** The option `widget-complete-field' has been removed.
122---
123*** The `widget-complete-field' option has been removed.
124 105
125** Mail changes 106** Mail changes
126+++ 107
127*** The first time you try sending mail, Emacs asks for a mail method. 108*** The first time you try sending mail, Emacs asks for a mail method.
128This is implemented by a new default for `send-mail-function', which 109This is implemented by a new default for `send-mail-function', which
129is `sendmail-query-once'. This offers to use the smtpmail package, or 110is `sendmail-query-once'. This offers to use the smtpmail package, or
130to use the old defaults relying on external mail facilities 111to use the old defaults relying on external mail facilities
131(`sendmail-send-it' on GNU/Linux and other Unix-like systems, and 112(`sendmail-send-it' on GNU/Linux and other Unix-like systems, and
132`mailclient-send-it' on Windows). 113`mailclient-send-it' on Windows).
133+++ 114
134*** Typing C-c m in the buffer made by M-x report-emacs-bug transfers 115*** Typing C-c m in the buffer made by M-x report-emacs-bug transfers
135the report to your desktop's preferred mail client, if there is one. 116the report to your desktop's preferred mail client, if there is one.
136This uses either the "xdg-email" utility, or Mac OS's "open" command. 117This uses either the "xdg-email" utility, or Mac OS's "open" command.
137--- 118
138*** See Changes in Specialized Modes and Packages for SMTPmail changes 119*** See Changes in Specialized Modes and Packages for SMTPmail changes
139and Mail mode changes 120and Mail mode changes
140 121
141** Emacs server and client changes 122** Emacs server and client changes
142+++ 123
143*** New option `server-port' specifies the port for TCP Emacs servers. 124*** New option `server-port' specifies the port for TCP Emacs servers.
144+++ 125
145*** New emacsclient argument -q/--quiet suppresses some status messages. 126*** New emacsclient argument -q/--quiet suppresses some status messages.
146+++ 127
147*** New emacsclient argument --frame-parameters specifies the frame 128*** New emacsclient argument --frame-parameters specifies the frame
148parameters of any newly-created graphical frame. 129parameters of any newly-created graphical frame.
149+++ 130
150*** If emacsclient shuts down as a result of Emacs signaling an 131*** If emacsclient shuts down due to Emacs signaling an error,
151error, its exit status is 1. 132its exit status is 1.
152+++ 133
153*** New emacsclient argument --parent-id ID. 134*** New emacsclient argument --parent-id ID.
154This opens a client frame in parent X window ID, via XEmbed, similar 135This opens a client frame in parent X window ID, via XEmbed, similar
155to the --parent-id argument to Emacs. 136to the --parent-id argument to Emacs.
156 137
157** Internationalization changes 138** Internationalization changes
158 139
159+++
160*** Emacs now supports display and editing of bidirectional text. 140*** Emacs now supports display and editing of bidirectional text.
161Right-to-left (RTL) scripts, such as Arabic, Farsi, and Hebrew, are 141Right-to-left (RTL) scripts, such as Arabic, Farsi, and Hebrew, are
162displayed in the correct visual order as expected by users of those 142displayed in the correct visual order as expected by users of those
163scripts. This display reordering is a "full bidirectionality" class 143scripts. The display reordering is a "full bidirectionality" class
164implementation of the Unicode Bidirectional Algorithm. Buffers with 144implementation of the Unicode Bidirectional Algorithm (UBA). Buffers
165no RTL text should look exactly the same as before. 145with no RTL text should look exactly the same as before.
166 146
167+++
168**** New buffer-local variable `bidi-display-reordering'. 147**** New buffer-local variable `bidi-display-reordering'.
169To disable display reordering in a buffer, change this to nil. 148To disable display reordering in a buffer, change this to nil.
170 149
171+++
172**** New buffer-local variable `bidi-paragraph-direction'. 150**** New buffer-local variable `bidi-paragraph-direction'.
173If nil (the default), Emacs determines the base direction of each 151If nil (the default), Emacs determines the base direction of each
174paragraph from its text, as specified by the Unicode Bidirectional 152paragraph from its text, as specified by the UBA. Setting the value
175Algorithm. Setting the value to `right-to-left' or `left-to-right' 153to `right-to-left' or `left-to-right' forces a base direction on each
176forces a base direction on each paragraph. 154paragraph.
177 155
178Paragraphs with right-to-left base direction are displayed starting at 156Paragraphs with right-to-left base direction are displayed starting at
179the right window edge. 157the right window edge.
180 158
181+++ 159*** Enhanced support for characters with no glyphs in available fonts,
182*** Enhanced support for characters with no glyphs in available fonts. 160or, on text terminals, characters that cannot be encoded by the
183If a character has no glyphs in any of the available fonts, Emacs 161terminal coding system. The new option `glyphless-char-display-control'
184normally displays it either as a hexadecimal code in a box or as a 162specifies how to display them: as a hexadecimal code in a box, a thin
185thin 1-pixel space. In addition to these two methods, Emacs can 1631-pixel space, an empty box, etc.
186display these characters as empty box, as an acronym, or not display
187them at all. To change how these characters are displayed, customize
188the variable `glyphless-char-display-control'.
189 164
190On character terminals, these methods are used for characters that
191cannot be encoded by the `terminal-coding-system'.
192
193---
194*** New input methods: farsi, farsi-translit, bulgarian-alt-phonetic. 165*** New input methods: farsi, farsi-translit, bulgarian-alt-phonetic.
195 166
196+++
197*** `nobreak-char-display' now also highlights Unicode hyphen chars 167*** `nobreak-char-display' now also highlights Unicode hyphen chars
198(U+2010 and U+2011). 168(U+2010 and U+2011).
199 169
200---
201*** New Hebrew translation of the Emacs Tutorial. 170*** New Hebrew translation of the Emacs Tutorial.
202Type `C-u C-h t' to choose it in case your language setup doesn't 171Type `C-u C-h t' to choose it in case your language setup doesn't
203automatically select it. 172automatically select it.
@@ -205,165 +174,150 @@ automatically select it.
205** An Emacs Lisp package manager is now included. 174** An Emacs Lisp package manager is now included.
206This is a convenient way to download and install additional packages, 175This is a convenient way to download and install additional packages,
207from a package repository at http://elpa.gnu.org. 176from a package repository at http://elpa.gnu.org.
208+++ 177
209*** M-x list-packages shows a list of packages, which can be 178*** M-x list-packages shows a list of packages, which can be
210selected for installation. 179selected for installation.
211+++ 180
212*** New command `describe-package', bound to `C-h P'. 181*** New command `describe-package', bound to `C-h P'.
213+++ 182
214*** By default, all installed packages are loaded automatically when 183*** By default, all installed packages are loaded automatically when
215Emacs starts up. To disable this, set `package-enable-at-startup' to 184Emacs starts up. To disable this, set `package-enable-at-startup' to
216nil. To specify the packages to load, customize `package-load-list'. 185nil. To specify the packages to load, customize `package-load-list'.
217 186
218** Custom Themes 187** Custom theme changes
219+++ 188
220*** New command `M-x customize-themes', which provides a convenient 189*** New command `M-x customize-themes', which provides a convenient
221interface for enabling and disabling Custom themes. 190interface for enabling and disabling Custom themes.
222+++ 191
223*** New option `custom-theme-load-path' is the load path for themes. 192*** New option `custom-theme-load-path' is the load path for themes.
224Emacs no longer looks for custom themes in `load-path'. The default 193Emacs no longer looks for Custom themes in `load-path'. The default
225is to search in `custom-theme-directory', followed by a built-in theme 194value of `custom-theme-load-path' says to look for themes in
226directory named "themes/" in `data-directory'. 195`custom-theme-directory', followed by a subdirectory of
227+++ 196`data-directory' named "themes/", which contains a small selection of
197built-in Custom themes.
198
228*** New option `custom-safe-themes' records known-safe theme files. 199*** New option `custom-safe-themes' records known-safe theme files.
229If a theme is not in this list, Emacs queries before loading it, and 200If a theme is not in this list, Emacs queries before loading it, and
230offers to save the theme to `custom-safe-themes' automatically. By 201offers to save the theme to `custom-safe-themes' automatically. By
231default, all themes included in Emacs are treated as safe. 202default, all themes included in Emacs are treated as safe.
232 203
233** Improved GTK integration 204** Improved GTK integration
234+++ 205
235*** GTK scroll-bars are now placed on the right by default. 206*** GTK scroll-bars are now placed on the right by default.
236Use `set-scroll-bar-mode' to change this. 207The function `set-scroll-bar-mode' can change this.
237+++ 208
238*** GTK tool bars can have just text, just images or images and text. 209*** GTK tool bars can have just text, just images or images and text.
239Customize `tool-bar-style' to choose style. On a Gnome desktop, the 210Customize `tool-bar-style' to choose the style. On a Gnome desktop,
240default is taken from desktop settings. 211the default is taken from desktop settings.
241--- 212
242*** GTK tool bars can be placed on the left/right or top/bottom of the frame. 213*** GTK tool bars can be placed on any edge of the frame.
243The frame-parameter tool-bar-position controls this. It takes the 214The frame-parameter tool-bar-position controls this. It takes the
244values top, left, right or bottom. The Options => Show/Hide menu has 215values top, left, right or bottom. The Options => Show/Hide menu has
245entries for this. 216entries for this.
246+++ 217
247*** The default colors for selected text (the `region' face) are taken 218*** The default colors for selected text (the `region' face) are taken
248from the GTK theme when Emacs is built with GTK. 219from the GTK theme when Emacs is built with GTK.
249+++ 220
250*** Emacs uses GTK tooltips by default if built with GTK. 221*** Emacs uses GTK tooltips by default if built with GTK.
251You can disable this by changing `x-gtk-use-system-tooltips' to nil. 222You can disable this by changing `x-gtk-use-system-tooltips' to nil.
252 223
224** Graphical interface changes
225
226*** On graphical displays, the mode-line no longer ends in dashes.
227Also, the first dash (which does not indicate anything) is just
228displayed as a space.
229
230*** `menu-bar-select-buffer-function' lets you choose another operation
231instead of `switch-to-buffer' when selecting an item in the Buffers menu.
232
233*** Lucid menus and dialogs can display antialiased fonts if Emacs is
234built with Xft. These fonts can be set via X resources, for example:
235Emacs.pane.menubar.font: Courier-12
236
253** Exiting changes 237** Exiting changes
254+++ 238
255*** Emacs now calls `kill-emacs' if it receives SIGTERM or SIGHUP, 239*** Emacs now calls `kill-emacs' if it receives SIGTERM or SIGHUP,
256and also if it receives a SIGINT signal in batch mode. 240or if it receives a SIGINT signal in batch mode.
257+++ 241
258*** `kill-emacs-hook' is now also run in batch mode. 242*** `kill-emacs-hook' is now also run in batch mode.
259Third-party code which adds to `kill-emacs-hook' should check if they 243Third-party code which adds to `kill-emacs-hook' should check if they
260do the right thing in batch mode. 244do the right thing in batch mode.
261 245
262** Scrolling changes 246** Scrolling changes
263+++ 247
264*** New scrolling commands `scroll-up-command' and `scroll-down-command' 248*** New scrolling commands `scroll-up-command' and `scroll-down-command'
265(bound to C-v/[next] and M-v/[prior]) do not signal errors at top/bottom 249(bound to C-v/[next] and M-v/[prior]) do not signal errors at top/bottom
266of buffer at first key-press (instead they move to top/bottom of buffer) 250of buffer at first key-press (instead they move to top/bottom of buffer)
267when `scroll-error-top-bottom' is non-nil. 251when `scroll-error-top-bottom' is non-nil.
268+++ 252
269*** New variable `scroll-error-top-bottom' (see above). 253*** New option `scroll-error-top-bottom' (see above).
270+++ 254
271*** New scrolling commands `scroll-up-line' and `scroll-down-line' 255*** New scrolling commands `scroll-up-line' and `scroll-down-line'
272scroll a line instead of full screen. 256scroll a line instead of full screen.
273+++ 257
274*** New property `scroll-command' should be set on a command's symbol to 258*** New property `scroll-command' should be set on a command's symbol to
275define it as a scroll command affected by `scroll-preserve-screen-position'. 259define it as a scroll command affected by `scroll-preserve-screen-position'.
276+++ 260
277*** If you customize `scroll-conservatively' to a value greater than 100, 261*** If you customize `scroll-conservatively' to a value greater than 100,
278Emacs will never recenter point in the window when it scrolls due to 262Emacs will never recenter point in the window when it scrolls due to
279cursor motion commands or commands that move point (e.f., `M-g M-g'). 263cursor motion commands or commands that move point (e.f., `M-g M-g').
280Previously, you needed to use `most-positive-fixnum' as the value of 264Previously, you needed to use `most-positive-fixnum' as the value of
281`scroll-conservatively' to achieve the same effect. 265`scroll-conservatively' to achieve the same effect.
282--- 266
283*** "Aggressive" scrolling now honors the scroll margins. 267*** "Aggressive" scrolling now honors the scroll margins.
284If you customize `scroll-up-aggressively' or 268If you customize `scroll-up-aggressively' or
285`scroll-down-aggressively' and move point off the window, Emacs now 269`scroll-down-aggressively' and move point off the window, Emacs now
286scrolls the window so as to avoid positioning point inside the scroll 270scrolls the window so as to avoid positioning point inside the scroll
287margin. 271margin.
288 272
289+++
290** Basic SELinux support has been added. 273** Basic SELinux support has been added.
291This requires Emacs to be linked with libselinux at build time. 274This requires Emacs to be linked with libselinux at build time.
292 275
293+++ 276*** Emacs preserves the SELinux file context when backing up.
294*** Emacs preserves the SELinux file context when backing up, and 277Also, the function `copy-file' has an extra optional argument for
295optionally when copying files. The function `copy-file' has an extra 278preserving SELinux context, and the return value of `backup-buffer'
296optional argument for preserving SELinux context, and the return value 279now includes the SELinux context.
297of `backup-buffer' now includes the SELinux context.
298 280
299+++ 281*** New functions `file-selinux-context' and `set-file-selinux-context'
300*** The new functions file-selinux-context and set-file-selinux-context
301get and set the SELinux context of a file. 282get and set the SELinux context of a file.
302 283
303** Trash changes 284** Trash changes
304+++ 285
305*** `delete-by-moving-to-trash' now only affects commands that specify 286*** `delete-by-moving-to-trash' now only affects commands that specify
306trashing. This avoids inadvertently trashing temporary files. 287trashing. This avoids inadvertently trashing temporary files.
307+++ 288
308*** Calling `delete-file' or `delete-directory' with a prefix argument 289*** Calling `delete-file' or `delete-directory' with a prefix argument
309now forces true deletion, regardless of `delete-by-moving-to-trash'. 290now forces true deletion, regardless of `delete-by-moving-to-trash'.
310 291
311** File- and directory-local variable changes 292** File- and directory-local variable changes
312+++ 293
313*** You can stop directory local vars from applying to subdirectories. 294*** You can stop directory local vars from applying to subdirectories.
314Add an element (subdirs . nil) to the alist portion of any variables 295Add an element (subdirs . nil) to the alist portion of any variables
315settings to indicate that the section should not apply to 296settings to indicate that the section should not apply to
316subdirectories. 297subdirectories.
317+++ 298
318*** Directory local variables can apply to some file-less buffers. 299*** Directory local variables can apply to some file-less buffers.
319Affected modes include dired, vc-dir, and log-edit. For example, 300Affected modes include dired, vc-dir, and log-edit. For example,
320adding "(diff-mode . ((mode . whitespace)))" to .dir-locals.el will 301adding "(diff-mode . ((mode . whitespace)))" to .dir-locals.el will
321turn on `whitespace-mode' for *vc-diff* buffers. Modes should call 302turn on `whitespace-mode' for *vc-diff* buffers. Modes should call
322`hack-dir-local-variables-non-file-buffer' to support this. 303`hack-dir-local-variables-non-file-buffer' to support this.
323+++ 304
324*** Using "mode: MINOR-MODE" to enable a minor mode is deprecated. 305*** Using "mode: MINOR-MODE" to enable a minor mode is deprecated.
325Instead, use "eval: (minor-mode 1)". 306Instead, use "eval: (minor-mode 1)".
326 307
327+++
328*** The variable `inhibit-first-line-modes-regexps' has been renamed 308*** The variable `inhibit-first-line-modes-regexps' has been renamed
329to `inhibit-local-variables-regexps'. As the name suggests, it now 309to `inhibit-local-variables-regexps'. As the name suggests, it now
330applies to ALL file local variables, not just -*- mode ones. 310applies to ALL file local variables, not just -*- lines. The
331The associated `inhibit-first-line-modes-suffixes' has been renamed 311associated `inhibit-first-line-modes-suffixes' has been renamed in the
332in the corresponding way. 312corresponding way.
333
334** Graphical interface changes
335+++
336*** On graphical displays, the mode-line no longer ends in dashes.
337Also, the first dash (which does not indicate anything) is just
338displayed as a space.
339---
340*** `menu-bar-select-buffer-function' lets you choose another operation
341instead of `switch-to-buffer' when selecting an item in the Buffers menu.
342---
343*** Lucid menus and dialogs can display antialiased fonts if Emacs is
344built with Xft. These fonts can be set via X resources, for example:
345Emacs.pane.menubar.font: Courier-12
346
347+++
348** New basic faces `error', `warning', `success'.
349These are used to highlight text indicating failure, caution or
350successful operation.
351
352+++
353** New option `list-colors-sort' defines the color sort order
354for `list-colors-display'.
355
356+++
357** The variable `focus-follows-mouse' now always defaults to nil.
358 313
359** Window changes 314** Window changes
360 315
361+++
362*** Resizing an Emacs frame now preserves proportional window sizes, 316*** Resizing an Emacs frame now preserves proportional window sizes,
363modulo restrictions like window minimum sizes and fixed-size windows. 317modulo restrictions like window minimum sizes and fixed-size windows.
364 318
365*** The behavior of `display-buffer' is now customizable in detail. 319*** The behavior of `display-buffer' is now customizable in detail.
366+++ 320
367**** New option `display-buffer-base-action' specifies a list of 321**** New option `display-buffer-base-action' specifies a list of
368user-determined display "actions" (functions and optional arguments 322user-determined display "actions" (functions and optional arguments
369for choosing the displaying window). 323for choosing the displaying window).
@@ -371,91 +325,90 @@ for choosing the displaying window).
371This takes precedence over the default display action, which is 325This takes precedence over the default display action, which is
372specified by `display-buffer-fallback-action'. 326specified by `display-buffer-fallback-action'.
373 327
374+++
375**** New option `display-buffer-alist' maps buffer name regexps to 328**** New option `display-buffer-alist' maps buffer name regexps to
376display actions, taking precedence over `display-buffer-base-action'. 329display actions, taking precedence over `display-buffer-base-action'.
377 330
378+++
379*** New option `window-combination-limit'. 331*** New option `window-combination-limit'.
380The new option `window-combination-limit' allows to return the space 332The new option `window-combination-limit' allows to return the space
381obtained for resizing or creating a window more reliably to the window 333obtained for resizing or creating a window more reliably to the window
382from which such space was obtained. 334from which such space was obtained.
383 335
384+++
385*** New option `window-combination-resize'. 336*** New option `window-combination-resize'.
386The new option `window-combination-resize' allows to split a window that 337The new option `window-combination-resize' allows to split a window that
387otherwise cannot be split because it's too small by stealing space from 338otherwise cannot be split because it's too small by stealing space from
388other windows in the same combination. Subsequent resizing or deletion 339other windows in the same combination. Subsequent resizing or deletion
389of the window will resize all windows in the same combination as well. 340of the window will resize all windows in the same combination as well.
390 341
391+++
392*** New commands `maximize-window' and `minimize-window'. 342*** New commands `maximize-window' and `minimize-window'.
393These maximize and minimize the size of a window within its frame. 343These maximize and minimize the size of a window within its frame.
394 344
395+++
396*** New commands `switch-to-prev-buffer' and `switch-to-next-buffer'. 345*** New commands `switch-to-prev-buffer' and `switch-to-next-buffer'.
397These functions allow to navigate through the live buffers that have 346These functions allow to navigate through the live buffers that have
398been shown in a specific window. 347been shown in a specific window.
399 348
400** Minibuffer changes 349** Minibuffer changes
401+++ 350
402*** The inactive minibuffer has its own major mode `minibuffer-inactive-mode'. 351*** The inactive minibuffer has its own major mode `minibuffer-inactive-mode'.
403This is handy for minibuffer-only frames, and is also used for the feature 352This is handy for minibuffer-only frames, and is also used for the feature
404where mouse-1 pops up *Messages*"', which can now easily be changed. 353where mouse-1 pops up *Messages*"', which can now easily be changed.
405 354
406---
407*** Minibuffers set `truncate-lines' to nil. 355*** Minibuffers set `truncate-lines' to nil.
408If you want to change the value to something else, you could use 356If you want to change the value to something else, you could use
409for example `minibuffer-setup-hook'. 357for example `minibuffer-setup-hook'.
410 358
411+++
412** `auto-mode-case-fold' is now enabled by default. 359** `auto-mode-case-fold' is now enabled by default.
413 360
414+++
415** `backup-by-copying-when-mismatch' now defaults to t. 361** `backup-by-copying-when-mismatch' now defaults to t.
416 362
363** New basic faces `error', `warning', `success'.
364These are used to highlight text indicating failure, caution or
365successful operation.
366
367** New option `list-colors-sort' defines the color sort order
368for `list-colors-display'.
369
370** The variable `focus-follows-mouse' now always defaults to nil.
371
417 372
418* Editing Changes in Emacs 24.1 373* Editing Changes in Emacs 24.1
419 374
420** Search changes 375** Search changes
421+++ 376
422*** C-y in Isearch is now bound to isearch-yank-kill, instead of 377*** C-y in Isearch is now bound to `isearch-yank-kill', instead of
423isearch-yank-line. 378`isearch-yank-line'.
424+++ 379
425*** M-y in Isearch is now bound to isearch-yank-pop, instead of 380*** M-y in Isearch is now bound to `isearch-yank-pop', instead of
426isearch-yank-kill. 381`isearch-yank-kill'.
427+++ 382
428*** M-s C-e in Isearch is now bound to isearch-yank-line. 383*** M-s C-e in Isearch is now bound to `isearch-yank-line'.
429 384
430+++
431** New commands `count-words-region' and `count-words'. 385** New commands `count-words-region' and `count-words'.
432+++ 386
433*** M-= is bound to `count-words-region', not `count-lines-region'. 387*** M-= is bound to `count-words-region', not `count-lines-region'.
434The `count-words-region' command, when called interactively, reports 388The `count-words-region' command, when called interactively, reports
435the number of lines, words, and characters in the region. It is a 389the number of lines, words, and characters in the region. It is a
436superset of the old `count-lines-region', which is now an obsolete 390superset of the old `count-lines-region', which is now an obsolete
437alias for it. 391alias for it.
438 392
439+++
440** The command `just-one-space' (M-SPC), if given a negative argument, 393** The command `just-one-space' (M-SPC), if given a negative argument,
441also deletes newlines around point. 394also deletes newlines around point.
442 395
443** Deletion changes 396** Deletion changes
444+++ 397
445*** New option `delete-active-region'. 398*** New option `delete-active-region'.
446If non-nil, [delete] and DEL delete the region if it is active and no 399If non-nil, [delete] and DEL delete the region if it is active and no
447prefix argument is given. If set to `kill', these commands kill 400prefix argument is given. If set to `kill', those commands kill
448instead. 401instead.
449+++ 402
450*** New command `delete-forward-char', bound to [delete]. 403*** New command `delete-forward-char', bound to [delete].
451This is meant for interactive use, and obeys `delete-active-region'. 404This is meant for interactive use, and obeys `delete-active-region'.
452The command `delete-char' does not obey `delete-active-region'. 405The command `delete-char' does not obey `delete-active-region'.
453--- 406
454*** `delete-backward-char' is now a Lisp function. 407*** `delete-backward-char' is now a Lisp function.
455Apart from obeying `delete-active-region', its behavior is unchanged. 408Apart from obeying `delete-active-region', its behavior is unchanged.
456However, the byte compiler now warns if it is called from Lisp; Lisp 409However, the byte compiler now warns if it is called from Lisp; Lisp
457callers should use delete-char with a negative argument instead. 410callers should use delete-char with a negative argument instead.
458--- 411
459*** The option `mouse-region-delete-keys' has been deleted. 412*** The option `mouse-region-delete-keys' has been deleted.
460 413
461** Selection changes. 414** Selection changes.
@@ -468,166 +421,150 @@ mouse commands use the primary selection.
468In the following, we provide a list of these changes, followed by a 421In the following, we provide a list of these changes, followed by a
469list of steps to get the old behavior back if you prefer that. 422list of steps to get the old behavior back if you prefer that.
470 423
471+++
472*** `select-active-regions' now defaults to t. 424*** `select-active-regions' now defaults to t.
473Merely selecting text (e.g. with drag-mouse-1) no longer puts it in 425Merely selecting text (e.g. with drag-mouse-1) no longer puts it in
474the kill ring. The selected text is put in the primary selection, if 426the kill ring. The selected text is put in the primary selection, if
475the system possesses a separate primary selection facility (e.g. X). 427the system possesses a separate primary selection facility (e.g. X).
476 428
477+++
478**** `select-active-regions' also accepts a new value, `only'. 429**** `select-active-regions' also accepts a new value, `only'.
479This means to only set the primary selection for temporarily active 430This means to only set the primary selection for temporarily active
480regions (usually made by mouse-dragging or shift-selection); 431regions (usually made by mouse-dragging or shift-selection);
481"ordinary" active regions, such as those made with C-SPC followed by 432"ordinary" active regions, such as those made with C-SPC followed by
482point motion, do not alter the primary selection. 433point motion, do not alter the primary selection.
483 434
484---
485**** `mouse-drag-copy-region' now defaults to nil. 435**** `mouse-drag-copy-region' now defaults to nil.
486 436
487+++
488*** mouse-2 is now bound to `mouse-yank-primary'. 437*** mouse-2 is now bound to `mouse-yank-primary'.
489This pastes from the primary selection, ignoring the kill-ring. 438This pastes from the primary selection, ignoring the kill-ring.
490Previously, mouse-2 was bound to `mouse-yank-at-click'. 439Previously, mouse-2 was bound to `mouse-yank-at-click'.
491+++ 440
492*** `x-select-enable-clipboard' now defaults to t on all platforms. 441*** `x-select-enable-clipboard' now defaults to t on all platforms.
493+++ 442
494*** `x-select-enable-primary' now defaults to nil. 443*** `x-select-enable-primary' now defaults to nil.
495Thus, commands that kill text or copy it to the kill-ring (such as 444Thus, commands that kill text or copy it to the kill-ring (such as
496M-w, C-w, and C-k) also use the clipboard---not the primary selection. 445M-w, C-w, and C-k) also use the clipboard---not the primary selection.
497 446
498---
499**** The "Copy", "Cut", and "Paste" items in the "Edit" menu are now 447**** The "Copy", "Cut", and "Paste" items in the "Edit" menu are now
500exactly equivalent to, respectively M-w, C-w, and C-y. 448exactly equivalent to M-w, C-w, and C-y respectively.
501 449
502---
503**** Note that on MS-Windows, `x-select-enable-clipboard' was already 450**** Note that on MS-Windows, `x-select-enable-clipboard' was already
504non-nil by default, as Windows does not support the primary selection 451non-nil by default, as Windows does not support the primary selection
505between applications. 452between applications.
506 453
507---
508*** To return to the previous behavior, do the following: 454*** To return to the previous behavior, do the following:
455
509**** Change `select-active-regions' to nil. 456**** Change `select-active-regions' to nil.
510**** Change `mouse-drag-copy-region' to t. 457**** Change `mouse-drag-copy-region' to t.
511**** Change `x-select-enable-primary' to t (on X only). 458**** Change `x-select-enable-primary' to t (on X only).
512**** Change `x-select-enable-clipboard' to nil. 459**** Change `x-select-enable-clipboard' to nil.
513**** Bind `mouse-yank-at-click' to mouse-2. 460**** Bind `mouse-yank-at-click' to mouse-2.
514 461
515+++
516*** Support for X cut buffers has been removed. 462*** Support for X cut buffers has been removed.
517+++ 463
518*** X clipboard managers are now supported. 464*** X clipboard managers are now supported.
519To inhibit this, change `x-select-enable-clipboard-manager' to nil. 465To inhibit this, change `x-select-enable-clipboard-manager' to nil.
520 466
521+++ 467** New command `C-x r N' (`rectangle-number-lines') numbers the lines
522** New command `rectangle-number-lines', bound to `C-x r N', numbers 468in the current rectangle. With a prefix argument, this prompts for a
523the lines in the current rectangle. With a prefix argument, this 469number to count from and for a format string.
524prompts for a number to count from and for a format string.
525 470
526+++
527** `redisplay-dont-pause' now defaults to t. 471** `redisplay-dont-pause' now defaults to t.
528This makes Emacs feel more responsive to editing commands that arrive 472This makes Emacs feel more responsive to editing commands that arrive
529at high rate, e.g. if you lean on some key, because stopping redisplay 473at high rate, e.g. if you lean on some key, because stopping redisplay
530in the middle (when this variable is nil) forces more expensive 474in the middle (when this variable is nil) forces more expensive
531updates later on, and Emacs appears to be unable to keep up. 475updates later on, and Emacs appears to be unable to keep up.
532 476
533+++
534** The behavior of <TAB> for active regions in Text mode has changed. 477** The behavior of <TAB> for active regions in Text mode has changed.
535In Text and related modes, typing <TAB> (`indent-for-tab-command') 478In Text and related modes, typing <TAB> (`indent-for-tab-command')
536when the region is active causes Emacs to indent all the lines in the 479when the region is active causes Emacs to indent all the lines in the
537region, aligning them with the line previous to the first line in the 480region, aligning them with the line previous to the first line in the
538region (or with the left margin if there is no previous line). 481region (or with the left margin if there is no previous line).
539 482
483** When `occur' is called with a prefix argument, matching strings are
484collected into the `*Occur*' buffer without line numbers. If there
485are parenthesized subexpressions in the specified regexp, `occur'
486reads replacement text that may contain \\& and \\N whose convention
487follows `replace-match'.
488
540 489
541* Changes in Specialized Modes and Packages in Emacs 24.1 490* Changes in Specialized Modes and Packages in Emacs 24.1
542 491
543+++
544** Archive Mode has basic support for browsing and updating 7z archives. 492** Archive Mode has basic support for browsing and updating 7z archives.
545 493
546** BibTeX mode 494** BibTeX mode
547--- 495
548*** BibTeX mode now supports biblatex. 496*** BibTeX mode now supports biblatex.
549Use the variable `bibtex-dialect' to select different BibTeX dialects. 497Use the variable `bibtex-dialect' to select different BibTeX dialects.
550`bibtex-entry-field-alist' is now an obsolete alias for 498`bibtex-entry-field-alist' is now an obsolete alias for
551`bibtex-BibTeX-entry-alist'. 499`bibtex-BibTeX-entry-alist'.
552 500
553--- 501*** New command `bibtex-search-entries', bound to C-c C-a.
554*** New command `bibtex-search-entries' bound to C-c C-a. 502
555---
556*** New `bibtex-entry-format' option `sort-fields', disabled by default. 503*** New `bibtex-entry-format' option `sort-fields', disabled by default.
557--- 504
558*** New variable `bibtex-search-entry-globally'. 505*** New variable `bibtex-search-entry-globally'.
559 506
560** Browse-url 507** Browse-url
561+++ 508
562*** New option `browse-url-mailto-function' specifies how to handle "mailto:"s. 509*** New option `browse-url-mailto-function' specifies how to handle "mailto:"s.
563--- 510
564*** The default browser used by the package is now the "xdg-open" program, 511*** The default browser used by the package is now the "xdg-open" program,
565on platforms that support it. This calls your desktop's preferred browser. 512on platforms that support it. This calls your desktop's preferred browser.
566 513
567** Calendar, Diary, and Appt 514** Calendar, Diary, and Appt
568 515
569+++
570*** Diary entries can contain non-printing "comments". 516*** Diary entries can contain non-printing "comments".
571See the variable `diary-comment-start'. 517See the variable `diary-comment-start'.
572 518
573+++
574*** Appointments can specify their individual warning times. 519*** Appointments can specify their individual warning times.
575See the variable `appt-warning-time-regexp'. 520See the variable `appt-warning-time-regexp'.
576 521
577---
578*** The function specified by `appt-disp-window-function' may be passed 522*** The function specified by `appt-disp-window-function' may be passed
579lists of arguments if multiple appointments are due at similar times. 523lists of arguments if multiple appointments are due at similar times.
580If you are using a custom function for this, you should update it. 524If you are using a custom function for this, you should update it.
581 525
582+++
583*** New function `diary-hebrew-birthday'. 526*** New function `diary-hebrew-birthday'.
584 527
585---
586*** Elements of `calendar-day-abbrev-array' and `calendar-month-abbrev-array' 528*** Elements of `calendar-day-abbrev-array' and `calendar-month-abbrev-array'
587may no longer be nil, but must all be strings. 529may no longer be nil, but must all be strings.
588 530
589---
590*** The obsolete (since Emacs 22.1) method of enabling the appt 531*** The obsolete (since Emacs 22.1) method of enabling the appt
591package by adding `appt-make-list' to `diary-hook' has been removed. 532package by adding `appt-make-list' to `diary-hook' has been removed.
592Use `appt-activate' instead. 533Use `appt-activate' instead.
593 534
594---
595*** Some appt variables (obsolete since Emacs 22.1) have been removed: 535*** Some appt variables (obsolete since Emacs 22.1) have been removed:
596appt-issue-message (use the function appt-activate) 536appt-issue-message (use the function appt-activate)
597appt-visible/appt-msg-window (use the variable appt-display-format) 537appt-visible/appt-msg-window (use the variable appt-display-format)
598 538
599---
600*** Some diary function aliases (obsolete since Emacs 22.1) have been removed: 539*** Some diary function aliases (obsolete since Emacs 22.1) have been removed:
601view-diary-entries, list-diary-entries, show-all-diary-entries 540view-diary-entries, list-diary-entries, show-all-diary-entries
602 541
603+++
604** CC Mode 542** CC Mode
543
605*** New feature to "guess" the style in an existing buffer. 544*** New feature to "guess" the style in an existing buffer.
606The main entry point is M-x c-guess. 545The main entry point is M-x c-guess.
607 546
608*** Java Mode now supports Java 5.0 (Tiger) and 6 (Mustang). 547*** Java Mode now supports Java 5.0 (Tiger) and 6 (Mustang).
609 548
610*** c-beginning-of-defun and c-end-of-defun now respect nested scopes: 549*** `c-beginning-of-defun' and `c-end-of-defun' now respect nested scopes.
611Thus C-M-a will, by default, go to the beginning of the immediate function, 550Thus C-M-a will, by default, go to the beginning of the immediate function,
612not the top level. 551not the top level.
613 552
614*** "Macros with semicolon" can be registered, for correct indentation. 553*** "Macros with semicolons" can be registered for correct indentation.
615Where such a macro ends a line (no semicolon) the next statement is no longer 554Where such a macro ends a line (no semicolon) the next statement is no longer
616parsed as a statement continuation. 555parsed as a statement continuation.
617 556
618** comint and modes derived from it use the generic completion code. 557** Comint and modes derived from it use the standard completion code.
619 558
620** Compilation mode 559** Compilation mode
621--- 560
622*** Compilation mode can be used without Font Lock mode. 561*** Compilation mode can be used without Font Lock mode.
623`compilation-parse-errors-function' is now obsolete. 562`compilation-parse-errors-function' is now obsolete.
624 563
625--- 564*** New variable `compilation-filter-start', which is bound while
626*** New variable `compilation-filter-start', bound while
627`compilation-filter-hook' runs. It records the start position of the 565`compilation-filter-hook' runs. It records the start position of the
628text inserted by `compilation-filter'. 566text inserted by `compilation-filter'.
629 567
630---
631*** `compilation-error-screen-columns' and `compilation-first-column' 568*** `compilation-error-screen-columns' and `compilation-first-column'
632are obeyed in the editing buffer. So programming language modes can 569are obeyed in the editing buffer. So programming language modes can
633set them, whereas previously only the value in the *Compilation* 570set them, whereas previously only the value in the *Compilation*
@@ -635,51 +572,40 @@ buffer was used.
635 572
636** Customize 573** Customize
637 574
638+++
639*** Customize buffers now contain a search field. 575*** Customize buffers now contain a search field.
640The search is performed using `customize-apropos'. 576The search is performed using `customize-apropos'.
641To turn off the search field, set `custom-search-field' to nil. 577To turn off the search field, set `custom-search-field' to nil.
642 578
643+++
644*** Custom options now start out hidden if at their default values. 579*** Custom options now start out hidden if at their default values.
645Use the arrow to the left of the option name to toggle visibility. 580Use the arrow to the left of the option name to toggle visibility.
646 581
647---
648*** custom-buffer-sort-alphabetically now defaults to t. 582*** custom-buffer-sort-alphabetically now defaults to t.
649 583
650+++
651*** The color widget now has a "Choose" button, which allows you to 584*** The color widget now has a "Choose" button, which allows you to
652choose a color via `list-colors-display'. 585choose a color via `list-colors-display'.
653 586
654** D-Bus 587** D-Bus
655 588
656+++
657*** It is now possible to access buses other than the default system 589*** It is now possible to access buses other than the default system
658or session bus. 590or session bus.
659 591
660+++
661*** The `dbus-register-method' and `dbus-register-property' functions 592*** The `dbus-register-method' and `dbus-register-property' functions
662optionally do not register names. 593optionally do not register names.
663 594
664+++
665*** The new function `dbus-register-service' registers a known service 595*** The new function `dbus-register-service' registers a known service
666name on a D-Bus without simultaneously registering a property or a 596name on a D-Bus without also registering a property or a method.
667method.
668 597
669** Dired-x 598** Dired-x
670 599
671---
672*** C-x C-j (`dired-jump') and C-x 4 C-j (`dired-jump-other-window'), 600*** C-x C-j (`dired-jump') and C-x 4 C-j (`dired-jump-other-window'),
673if called with a prefix argument, read a file name from the minibuffer 601if called with a prefix argument, read a file name from the minibuffer
674instead of using the current buffer. 602instead of using the current buffer.
675 603
676+++
677*** The "dired local variables" feature of Dired-x is obsolete. 604*** The "dired local variables" feature of Dired-x is obsolete.
678The standard directory local variables feature replaces it. 605The standard directory local variables feature replaces it.
679 606
680** ERC changes 607** ERC changes
681 608
682---
683*** New options `erc-autojoin-timing' and `erc-autojoin-delay', 609*** New options `erc-autojoin-timing' and `erc-autojoin-delay',
684controlling attempts to autojoin a channel. 610controlling attempts to autojoin a channel.
685 611
@@ -690,104 +616,91 @@ utf-8, and do the normal `undecided' decoding for the rest.
690 616
691** Eshell changes 617** Eshell changes
692 618
693---
694*** The default value of `eshell-directory-name' has changed 619*** The default value of `eshell-directory-name' has changed
695to be an "eshell" directory in `user-emacs-directory'. 620to be an "eshell" directory in `user-emacs-directory'.
696The old "~/.eshell/" directory is still used if it exists, though. 621The old "~/.eshell/" directory is still used if it exists, though.
697 622
698** gdb-mi 623** gdb-mi
699+++ 624
700*** The GDB User Interface has been migrated to GDB Machine Interface. 625*** The M-x gdb command now uses the GDB Machine Interface protocol.
701It now supports multithread non-stop debugging and simultaneous 626It now supports multithread non-stop debugging and simultaneous
702debugging of several threads. 627debugging of several threads.
703 628
704** Image mode 629** Image mode
705 630
706+++
707*** RET (`image-toggle-animation') toggles animation, if applicable. 631*** RET (`image-toggle-animation') toggles animation, if applicable.
708Animation plays once, unless the option `image-animate-loop' is non-nil. 632Animation plays once, unless the option `image-animate-loop' is non-nil.
709 633
710** Info 634** Info
711 635
712+++
713*** New command M-x info-display-manual displays a named Info manual. 636*** New command M-x info-display-manual displays a named Info manual.
714If that manual is already visited in some Info buffer, it displays 637If that manual is already visited in some Info buffer, it displays
715that buffer. (This is handy if you have many manuals in many *info* 638that buffer. (This is handy if you have many manuals in many *info*
716buffers, and don't remember the name of the buffer visiting the manual 639buffers, and don't remember the name of the buffer visiting the manual
717you want to consult.) Otherwise, it loads and displays the manual. 640you want to consult.) Otherwise, it loads and displays the manual.
718 641
719+++
720*** `e' is now bound to `end-of-buffer' rather than to `Info-edit'. 642*** `e' is now bound to `end-of-buffer' rather than to `Info-edit'.
721This is for compatibility with the stand-alone Info reader program, 643This is for compatibility with the stand-alone Info reader program,
722and also because `Info-edit' is a rarely used command that is disabled 644and also because `Info-edit' is a rarely used command that is disabled
723by default. 645by default.
724 646
725** Mail mode changes (not Message mode) 647** Mail mode changes (not Message mode)
726+++ 648
727*** New command M-x mail-add-attachment for adding MIME attachments 649*** New command M-x mail-add-attachment for adding MIME attachments
728---
729*** The command `mail-attach-file' was renamed to `mail-insert-file'
730(its name is misleading, since it has nothing to do with MIME
731attachments). The old name is now an obsolete alias to the new name.
732 650
733+++ 651*** The command M-x mail-attach-file was renamed to M-x mail-insert-file.
652(Its name is misleading, since it has nothing to do with MIME
653attachments.) The old name is now an obsolete alias to the new name.
654
734** MH-E has been upgraded to MH-E version 8.3.1. 655** MH-E has been upgraded to MH-E version 8.3.1.
735See MH-E-NEWS for details. 656See MH-E-NEWS for details.
736 657
737---
738** Modula-2 mode provides auto-indentation. 658** Modula-2 mode provides auto-indentation.
739 659
740---
741** mpc.el: Can use pseudo tags of the form tag1|tag2 as a union of two tags. 660** mpc.el: Can use pseudo tags of the form tag1|tag2 as a union of two tags.
742 661
743+++
744** nXML mode no longer binds C-RET to `nxml-complete'. 662** nXML mode no longer binds C-RET to `nxml-complete'.
745Completion is now performed via `completion-at-point', bound to M-TAB. 663Completion is now performed via `completion-at-point', bound to C-M-i
746If `nxml-bind-meta-tab-to-complete-flag' is non-nil (the default), 664or M-TAB. If `nxml-bind-meta-tab-to-complete-flag' is non-nil (the
747this performs tag completion. 665default), this performs tag completion.
748 666
749---
750** Prolog mode has been completely revamped, with lots of additional 667** Prolog mode has been completely revamped, with lots of additional
751functionality such as more intelligent indentation, electricity, 668functionality such as more intelligent indentation, electricity,
752support for more variants, including Mercury, and a lot more. 669support for more variants, including Mercury, and a lot more.
753 670
754** Rmail 671** Rmail
755 672
756+++
757*** The command `rmail-epa-decrypt' decrypts OpenPGP data 673*** The command `rmail-epa-decrypt' decrypts OpenPGP data
758in the Rmail incoming message. 674in the Rmail incoming message.
759 675
760---
761*** The variable `rmail-message-filter' no longer has any effect. 676*** The variable `rmail-message-filter' no longer has any effect.
762This change was made in Emacs 23.1 but was not advertised at the time. 677This change was made in Emacs 23.1 but was not advertised at the time.
763Try using `rmail-show-message-hook' instead. 678Try using `rmail-show-message-hook' instead.
764 679
765** Shell mode 680** Shell mode
766+++ 681
767*** Shell mode uses pcomplete rules, with the standard completion UI. 682*** M-x shell prompts for the shell path name if the default directory
768+++ 683is a remote file name and neither the environment variable $ESHELL nor
769*** The `shell' command prompts for the shell path name if the default 684the variable `explicit-shell-file-name' is set.
770directory is a remote file name and neither the environment variable 685
771$ESHELL nor the variable `explicit-shell-file-name' is set. 686*** TAB is now bound to the standard `completion-at-point' command,
687which now implements the pcomplete rules for shell command completion.
772 688
773** SMTPmail 689** SMTPmail
774 690
775+++ 691*** SMTPmail now uses encrypted connections (via STARTTLS) by default
776*** smtpmail now uses encrypted connections (via STARTTLS) by default
777if the mail server supports them. This uses either built-in GnuTLS 692if the mail server supports them. This uses either built-in GnuTLS
778support, or the starttls.el library. Customize `smtpmail-stream-type' 693support, or the starttls.el library. Customize `smtpmail-stream-type'
779to change this. 694to change this.
780 695
781+++
782*** The variable `smtpmail-auth-credentials' has been removed. 696*** The variable `smtpmail-auth-credentials' has been removed.
783By default, the information is now stored in the file ~/.authinfo. 697By default, the information is now stored in the file ~/.authinfo.
784This was the default value of smtpmail-auth-credentials. 698This was the default value of smtpmail-auth-credentials. If you had
785If you had customized smtpmail-auth-credentials to a list of user 699customized smtpmail-auth-credentials to a list of user names and
786names and passwords, those settings will not be used. Your first 700passwords, those settings are not used. During your first connection
787connection to the smtp server will prompt for the user name and password, 701to the smtp server, Emacs will prompt for the user name and password,
788and then offer to save them to the ~/.authinfo file. Or you can 702and offer to save them to ~/.authinfo. Or you can manually copy the
789manually copy the credentials to your ~/.authinfo files. For example, 703credentials to ~/.authinfo. For example, if you had
790if you had
791 704
792 (setq smtpmail-auth-credentials 705 (setq smtpmail-auth-credentials
793 '(("mail.example.org" 25 "jim" "s!cret"))) 706 '(("mail.example.org" 25 "jim" "s!cret")))
@@ -799,39 +712,31 @@ then the equivalent line in ~/.authinfo would be
799See the auth-source manual for more information, e.g. on encrypting 712See the auth-source manual for more information, e.g. on encrypting
800the credentials file. 713the credentials file.
801 714
802+++
803*** The variable `smtpmail-starttls-credentials' has been removed. 715*** The variable `smtpmail-starttls-credentials' has been removed.
804 716If you had that set, you need to put
805If you had that set, then you need to put
806 717
807 machine smtp.whatever.foo port 25 key "~/.my_smtp_tls.key" cert "~/.my_smtp_tls.cert" 718 machine smtp.whatever.foo port 25 key "~/.my_smtp_tls.key" cert "~/.my_smtp_tls.cert"
808 719
809in your ~/.authinfo file instead. 720in your ~/.authinfo file instead.
810 721
811---
812** SQL mode 722** SQL mode
813 723
814---
815*** New options `sql-port', `sql-connection-alist', `sql-send-terminator', 724*** New options `sql-port', `sql-connection-alist', `sql-send-terminator',
816and `sql-oracle-scan-on'. 725and `sql-oracle-scan-on'.
817 726
818--- 727*** New options controlling prompting for login parameters.
819*** New custom variables control prompting for login parameters.
820Each supported product has a custom variable `sql-*-login-params', 728Each supported product has a custom variable `sql-*-login-params',
821which is a list of the parameters to be prompted for before a 729which is a list of the parameters to be prompted for before a
822connection is established. 730connection is established.
823 731
824---
825*** The command `sql-product-interactive' now takes a prefix argument, 732*** The command `sql-product-interactive' now takes a prefix argument,
826which causes it to prompt for an SQL product. 733which causes it to prompt for an SQL product.
827 734
828---
829*** Product-specific SQL interactive commands now take prefix arguments. 735*** Product-specific SQL interactive commands now take prefix arguments.
830These commands (`sql-sqlite', `sql-postgres', `sql-mysql', etc.), 736These commands (`sql-sqlite', `sql-postgres', `sql-mysql', etc.),
831given a prefix argument, prompt for a name for the SQL interactive 737given a prefix argument, prompt for a name for the SQL interactive
832buffer. This reduces the need for calling `sql-rename-buffer'. 738buffer. This reduces the need for calling `sql-rename-buffer'.
833 739
834---
835*** SQL interactive modes suppress command continuation prompts, and 740*** SQL interactive modes suppress command continuation prompts, and
836replace tabs with spaces. The first change impacts multiple line SQL 741replace tabs with spaces. The first change impacts multiple line SQL
837statements entered with C-j between each line, statements yanked into 742statements entered with C-j between each line, statements yanked into
@@ -839,72 +744,61 @@ the buffer and statements sent with `sql-send-*' functions. The
839second prevents the MySQL and Postgres interpreters from listing 744second prevents the MySQL and Postgres interpreters from listing
840object name completions when sent text via `sql-send-*' functions. 745object name completions when sent text via `sql-send-*' functions.
841 746
842---
843*** New command `sql-connect' starts a predefined SQLi session, 747*** New command `sql-connect' starts a predefined SQLi session,
844using the login parameters from `sql-connection-alist'. 748using the login parameters from `sql-connection-alist'.
845 749
846---
847*** New "Save Connection" menu item in SQLi buffers. 750*** New "Save Connection" menu item in SQLi buffers.
848This gathers the login params specified for the SQLi session, if it 751This gathers the login params specified for the SQLi session, if it
849was not started by a connection, and saves them as a new connection. 752was not started by a connection, and saves them as a new connection.
850 753
851---
852*** New commands for listing database objects and details: 754*** New commands for listing database objects and details:
853sql-list-all and sql-list-table. 755sql-list-all and sql-list-table.
854 756
855---
856*** An API for manipulating SQL product definitions has been added. 757*** An API for manipulating SQL product definitions has been added.
857 758
858** TeX modes 759** TeX modes
859 760
860+++
861*** latex-electric-env-pair-mode keeps \begin..\end matched on the fly. 761*** latex-electric-env-pair-mode keeps \begin..\end matched on the fly.
862 762
863** Tramp 763** Tramp
864--- 764
865*** New inline access method "ksu" (kerberized su). 765*** New inline access method "ksu" (kerberized su).
866--- 766
867*** The following access methods are discontinued: "ssh1_old", 767*** The following access methods are discontinued: "ssh1_old",
868"ssh2_old", "scp1_old", "scp2_old", "imap", "imaps" and "fish". 768"ssh2_old", "scp1_old", "scp2_old", "imap", "imaps" and "fish".
869+++ 769
870*** The user option `remote-file-name-inhibit-cache' controls whether 770*** The user option `remote-file-name-inhibit-cache' controls whether
871remote file attributes are cached for better performance. 771remote file attributes are cached for better performance.
872--- 772
873*** The option `ange-ftp-binary-file-name-regexp' has changed its 773*** The option `ange-ftp-binary-file-name-regexp' has changed its
874default value to "". 774default value to "".
875--- 775
876*** Handlers for `file-selinux-context' and `set-file-selinux-context' 776*** Handlers for `file-selinux-context' and `set-file-selinux-context'
877for remote machines which support SELinux. 777for remote machines which support SELinux.
878 778
879+++ 779** New function `url-queue-retrieve', which behaves like url-retrieve,
880** New function, `url-queue-retrieve', which behaves like url-retrieve,
881but with limits (`url-queue-parallel-processes', `url-queue-timeout') on 780but with limits (`url-queue-parallel-processes', `url-queue-timeout') on
882the degree of parallelism. 781the degree of parallelism.
883 782
884** VC and related modes 783** VC and related modes
885 784
886+++
887*** Support for pulling on distributed version control systems. 785*** Support for pulling on distributed version control systems.
888The command C-x v + (`vc-pull') runs a "pull" operation, if it is 786The command C-x v + (`vc-pull') runs a "pull" operation, if it is
889supported (currently with Bzr, Git, and Mercurial), to update the 787supported (currently with Bzr, Git, and Mercurial), to update the
890current branch and working tree. A prefix argument means to prompt 788current branch and working tree. A prefix argument means to prompt
891the user for specifics, e.g. a pull location. 789the user for specifics, e.g. a pull location.
892 790
893---
894*** `vc-update' is now an alias for `vc-pull'. 791*** `vc-update' is now an alias for `vc-pull'.
895 792
896+++
897*** Support for merging on distributed version control systems. 793*** Support for merging on distributed version control systems.
898The command C-x v m (`vc-merge') now runs a "merge" operation, if it 794The command C-x v m (`vc-merge') now runs a "merge" operation, if it
899is supported (currently with Bzr, Git, and Mercurial), to merge 795is supported (currently with Bzr, Git, and Mercurial), to merge
900changes from another branch into the current one. It prompts for 796changes from another branch into the current one. It prompts for
901specifics, e.g. a merge source. 797specifics, e.g. a merge source.
902 798
903+++
904*** New option `vc-revert-show-diff' controls whether `vc-revert' 799*** New option `vc-revert-show-diff' controls whether `vc-revert'
905shows a diff while querying the user. It defaults to t. 800shows a diff while querying the user. It defaults to t.
906 801
907+++
908*** Log entries in some Log View buffers can be toggled to display a 802*** Log entries in some Log View buffers can be toggled to display a
909longer description by typing RET (log-view-toggle-entry-display). 803longer description by typing RET (log-view-toggle-entry-display).
910This is currently supported for Bzr, Git, and Mercurial (to support 804This is currently supported for Bzr, Git, and Mercurial (to support
@@ -912,25 +806,20 @@ another backend, define a `log-view-expanded-log-entry-function').
912In the Log View buffers made by C-x v L (`vc-print-root-log'), you can 806In the Log View buffers made by C-x v L (`vc-print-root-log'), you can
913use this to display the full log entry for the revision at point. 807use this to display the full log entry for the revision at point.
914 808
915+++
916*** New command `vc-ediff' allows visual comparison of two revisions 809*** New command `vc-ediff' allows visual comparison of two revisions
917of a file similar to `vc-diff', but using ediff backend. 810of a file similar to `vc-diff', but using ediff backend.
918 811
919+++
920*** The option `vc-initial-comment' was removed in Emacs 23.2, but 812*** The option `vc-initial-comment' was removed in Emacs 23.2, but
921this was not advertised at the time. 813this was not advertised at the time.
922 814
923+++
924*** `vc-toggle-read-only' is an obsolete alias for `toggle-read-only'. 815*** `vc-toggle-read-only' is an obsolete alias for `toggle-read-only'.
925Since Emacs 23, it has done the same thing as `toggle-read-only', but 816Since Emacs 23, it has done the same thing as `toggle-read-only', but
926this was not advertised at the time. 817this was not advertised at the time.
927 818
928** Obsolete modes 819** Obsolete modes
929 820
930---
931*** abbrevlist.el 821*** abbrevlist.el
932 822
933---
934*** erc-hecomplete.el (use erc-pcomplete.el instead) 823*** erc-hecomplete.el (use erc-pcomplete.el instead)
935 824
936*** partial-completion-mode (complete.el) is obsolete. 825*** partial-completion-mode (complete.el) is obsolete.
@@ -938,95 +827,69 @@ You can get a comparable behavior with:
938(setq completion-styles '(partial-completion initials)) 827(setq completion-styles '(partial-completion initials))
939(setq completion-pcm-complete-word-inserts-delimiters t) 828(setq completion-pcm-complete-word-inserts-delimiters t)
940 829
941---
942*** pc-mode.el is obsolete (CUA mode is much more comprehensive). 830*** pc-mode.el is obsolete (CUA mode is much more comprehensive).
943 831
944+++
945*** pgg is obsolete (use EasyPG instead) 832*** pgg is obsolete (use EasyPG instead)
946 833
947---
948*** sregex.el is obsolete, since rx.el is a strict superset. 834*** sregex.el is obsolete, since rx.el is a strict superset.
949 835
950---
951*** s-region.el and pc-select.el are obsolete. 836*** s-region.el and pc-select.el are obsolete.
952They are superseded by shift-select-mode, enabled by default since 23.1. 837They are superseded by shift-select-mode, enabled by default since 23.1.
953 838
954+++
955*** vc-mcvs.el is obsolete (for lack of a maintainer) 839*** vc-mcvs.el is obsolete (for lack of a maintainer)
956 840
957** Miscellaneous 841** Miscellaneous
958 842
959+++
960*** The Landmark game is now invoked with `landmark', not `lm'. 843*** The Landmark game is now invoked with `landmark', not `lm'.
961Its functions and variables have been similarly renamed. 844Its functions and variables have been similarly renamed.
962 845
963--- 846*** In `ido-file-completion-map', C-v is no longer bound to `ido-toggle-vc'.
964*** In `ido-file-completion-map', C-v is no longer bound to ido-toggle-vc.
965(This interfered with cua-mode.) 847(This interfered with cua-mode.)
966 848
967+++
968*** f90.el has some support for Fortran 2008 syntax. 849*** f90.el has some support for Fortran 2008 syntax.
969 850
970---
971*** `copyright-fix-years' can optionally convert consecutive years to ranges. 851*** `copyright-fix-years' can optionally convert consecutive years to ranges.
972 852
973+++
974*** New command `nato-region' converts text to NATO phonetic alphabet. 853*** New command `nato-region' converts text to NATO phonetic alphabet.
975 854
976 855
977* New Modes and Packages in Emacs 24.1 856* New Modes and Packages in Emacs 24.1
978 857
979+++
980** Occur Edit mode applies edits made in *Occur* buffers to the 858** Occur Edit mode applies edits made in *Occur* buffers to the
981original buffers. It is bound to "e" in Occur mode. 859original buffers. It is bound to "e" in Occur mode.
982 860
983** When `occur' is called with the prefix argument `C-u'
984the matching strings are collected into the `*Occur*' buffer
985without line numbers. If there are parenthesized subexpressions
986in the specified regexp, `occur' reads replacement text that
987may contain \\& and \\N whose convention follows `replace-match'.
988
989+++
990** New global minor mode electric-pair-mode. 861** New global minor mode electric-pair-mode.
991When enabled, typing an open parenthesis automatically inserts the 862When enabled, typing an open parenthesis automatically inserts the
992matching closing one. 863matching closing one.
993 864
994+++
995** New global minor mode electric-indent-mode. 865** New global minor mode electric-indent-mode.
996When enabled, typing certain characters triggers reindentation. 866When enabled, typing certain characters triggers reindentation.
997Major modes wishing to use this can set electric-indent-chars or 867Major modes wishing to use this can set electric-indent-chars or
998electric-indent-functions. 868electric-indent-functions.
999 869
1000+++
1001** New global minor mode electric-layout-mode. 870** New global minor mode electric-layout-mode.
1002When enabled, typing certain characters automatically inserts newlines. 871When enabled, typing certain characters automatically inserts newlines.
1003Major modes wishing to use this can set electric-layout-rules. 872Major modes wishing to use this can set electric-layout-rules.
1004 873
1005+++
1006** tabulated-list.el provides a generic major mode for tabulated data, 874** tabulated-list.el provides a generic major mode for tabulated data,
1007from which other modes can be derived. 875from which other modes can be derived.
1008 876
1009** pcase.el provides the ML-style pattern matching macro `pcase'. 877** pcase.el provides the ML-style pattern matching macro `pcase'.
1010 878
1011+++
1012** secrets.el is an implementation of the Secret Service API, an 879** secrets.el is an implementation of the Secret Service API, an
1013interface to password managers like GNOME Keyring or KDE Wallet. The 880interface to password managers like GNOME Keyring or KDE Wallet. The
1014Secret Service API requires D-Bus for communication. The command 881Secret Service API requires D-Bus for communication. The command
1015`secrets-show-secrets' offers a buffer with a visualization of the 882`secrets-show-secrets' offers a buffer with a visualization of the
1016secrets. 883secrets.
1017 884
1018+++
1019** notifications.el provides an implementation of the Desktop 885** notifications.el provides an implementation of the Desktop
1020Notifications API. It requires D-Bus for communication. 886Notifications API. It requires D-Bus for communication.
1021 887
1022---
1023** soap-client.el supports access to SOAP web services from Emacs. 888** soap-client.el supports access to SOAP web services from Emacs.
1024soap-inspect.el is an interactive inspector for SOAP WSDL structures. 889soap-inspect.el is an interactive inspector for SOAP WSDL structures.
1025 890
1026---
1027** New generic mode, xmodmap-generic-mode, for xmodmap files. 891** New generic mode, xmodmap-generic-mode, for xmodmap files.
1028 892
1029---
1030** New emacs-lock.el package. 893** New emacs-lock.el package.
1031The previous version has been moved to obsolete/old-emacs-lock.el. 894The previous version has been moved to obsolete/old-emacs-lock.el.
1032Now, there is a proper minor mode `emacs-lock-mode'. Protection 895Now, there is a proper minor mode `emacs-lock-mode'. Protection
@@ -1037,44 +900,38 @@ with dead inferior processes has been generalized.
1037 900
1038* Incompatible Lisp Changes in Emacs 24.1 901* Incompatible Lisp Changes in Emacs 24.1
1039 902
1040+++
1041** Passing a nil argument to a minor mode function call now ENABLES 903** Passing a nil argument to a minor mode function call now ENABLES
1042the minor mode unconditionally. This is so that you can write e.g. 904the minor mode unconditionally. This is so that you can write e.g.
1043 905
1044 (add-hook 'text-mode-hook 'foo-minor-mode) 906 (add-hook 'text-mode-hook 'foo-mode)
1045 907
1046to enable foo-minor-mode in Text mode buffers, removing the need for 908to enable foo-mode in Text mode buffers, removing the need for
1047`turn-on-foo-minor-mode' style functions. This affects all mode 909`turn-on-foo-mode' style functions. This affects all mode commands
1048commands defined by `define-minor-mode'. If called interactively, the 910defined by `define-minor-mode'. If called interactively, the mode
1049mode command still toggles the minor mode. 911command still toggles the minor mode.
1050 912
1051+++
1052** The return value of `backup-buffer' has changed. 913** The return value of `backup-buffer' has changed.
1053It is now a list of three elements, where the second element is a list 914It is now a list of three elements, where the second element is a list
1054describing the original file's SELinux context. If Emacs or the 915describing the original file's SELinux context. If Emacs or the
1055system lacks SELinux support, the context list is (nil nil nil nil). 916system lacks SELinux support, the context list is (nil nil nil nil).
1056See "Basic SELinux support" above, under "Changes in Emacs 24.1". 917See "Basic SELinux support" above, under "Changes in Emacs 24.1".
1057 918
1058--- 919** `char-direction-table' and the `char-direction' function were deleted.
1059** `char-direction-table' and the associated function `char-direction' 920They were buggy and inferior to the new support of bidirectional
1060were deleted. They were buggy and inferior to the new support of 921editing introduced in Emacs 24. If you need the bidirectional
1061bidirectional editing introduced in Emacs 24. If you need the 922properties of a character, use `get-char-code-property' with the last
1062bidirectional properties of a character, use `get-char-code-property' 923argument `bidi-class'.
1063with the last argument `bidi-class'.
1064 924
1065+++
1066** `copy-directory' now copies the source directory as a subdirectory 925** `copy-directory' now copies the source directory as a subdirectory
1067of the target directory, if the latter is an existing directory. The 926of the target directory, if the latter is an existing directory. The
1068new optional arg COPY-CONTENTS, if non-nil, makes the function copy 927new optional arg COPY-CONTENTS, if non-nil, makes the function copy
1069the contents directly into a pre-existing target directory. 928the contents directly into a pre-existing target directory.
1070 929
1071+++
1072** For mouse click input events in the text area, the Y pixel 930** For mouse click input events in the text area, the Y pixel
1073coordinate in the POSITION list now counts from the top of the text 931coordinate in the POSITION list now counts from the top of the text
1074area, excluding any header line. Previously, it counted from the top 932area, excluding any header line. Previously, it counted from the top
1075of the header line. 933of the header line.
1076 934
1077---
1078** Support for "old-style" backquotes, obsolete for 10+ years, has 935** Support for "old-style" backquotes, obsolete for 10+ years, has
1079been further reduced. Now a backquote not followed by a space is 936been further reduced. Now a backquote not followed by a space is
1080always treated as a "new-style" backquote. Please remove all 937always treated as a "new-style" backquote. Please remove all
@@ -1089,19 +946,16 @@ for key sequence notation: instead of [(control ,)] and [(control ')],
1089you should write [(control ?,)] and [(control ?')], which will work in 946you should write [(control ?,)] and [(control ?')], which will work in
1090older Emacsen too. 947older Emacsen too.
1091 948
1092+++
1093** The macro `eval-at-startup' was removed in Emacs 23.2, but this 949** The macro `eval-at-startup' was removed in Emacs 23.2, but this
1094was not advertised at the time. The function `custom-initialize-delay' 950was not advertised at the time. The function `custom-initialize-delay'
1095replaced all known uses. 951replaced all known uses.
1096 952
1097---
1098** `view-buffer' now treats special mode-class in the same way that 953** `view-buffer' now treats special mode-class in the same way that
1099`view-file' has since Emacs 22 (i.e. it won't enable View mode if the 954`view-file' has since Emacs 22 (i.e. it won't enable View mode if the
1100major mode is special). 955major mode is special).
1101 956
1102** Menu and tool bar changes 957** Menu and tool bar changes
1103 958
1104+++
1105*** During startup, Emacs no longer adds entries for `menu-bar-lines' 959*** During startup, Emacs no longer adds entries for `menu-bar-lines'
1106and `tool-bar-lines' to `default-frame-alist' and `initial-frame-alist'. 960and `tool-bar-lines' to `default-frame-alist' and `initial-frame-alist'.
1107With these alist entries omitted, `make-frame' checks the value of the 961With these alist entries omitted, `make-frame' checks the value of the
@@ -1109,25 +963,20 @@ variable `menu-bar-mode'/`tool-bar-mode' to determine whether to create
1109a menu-bar or tool-bar, respectively. If the alist entries are added, 963a menu-bar or tool-bar, respectively. If the alist entries are added,
1110they override the value of `menu-bar-mode'/`tool-bar-mode'. 964they override the value of `menu-bar-mode'/`tool-bar-mode'.
1111 965
1112+++
1113*** The menu bar bindings's caches are not used any more. 966*** The menu bar bindings's caches are not used any more.
1114Use (where-is-internal <def> nil t) instead. 967Use (where-is-internal <def> nil t) instead.
1115 968
1116+++
1117** Regions created by mouse dragging are now normal active regions, 969** Regions created by mouse dragging are now normal active regions,
1118similar to the ones created by shift-selection (see Selection changes 970similar to those created by shift-selection (see Selection changes
1119above). In previous Emacs versions, these regions were delineated by 971above). In previous Emacs versions, these regions were delineated by
1120`mouse-drag-overlay'; that variable has been removed. 972`mouse-drag-overlay'; that variable has been removed.
1121 973
1122+++
1123** The fourth argument of `filter-buffer-substring' has been removed. 974** The fourth argument of `filter-buffer-substring' has been removed.
1124If you want to remove text properties from the final result, simply 975If you want to remove text properties from the final result, simply
1125pass the result through substring-no-properties. 976pass the result through substring-no-properties.
1126 977
1127---
1128** cl.el no longer provides `cl-19'. 978** cl.el no longer provides `cl-19'.
1129 979
1130+++
1131** The following obsolete functions and aliases have been removed 980** The following obsolete functions and aliases have been removed
1132(the appropriate new function is given in parentheses; "not needed" 981(the appropriate new function is given in parentheses; "not needed"
1133means you can just remove all calls to the function in question): 982means you can just remove all calls to the function in question):
@@ -1154,7 +1003,6 @@ means you can just remove all calls to the function in question):
1154*** `set-screen-height' (`set-frame-height') 1003*** `set-screen-height' (`set-frame-height')
1155*** `set-screen-width' (`set-frame-width') 1004*** `set-screen-width' (`set-frame-width')
1156 1005
1157+++
1158** The following obsolete variables and varaliases have been removed 1006** The following obsolete variables and varaliases have been removed
1159(the appropriate new variable is given in parentheses): 1007(the appropriate new variable is given in parentheses):
1160 1008
@@ -1164,17 +1012,14 @@ means you can just remove all calls to the function in question):
1164*** `font-lock-defaults-alist' (`font-lock-defaults') 1012*** `font-lock-defaults-alist' (`font-lock-defaults')
1165*** `e' (`float-e'). 1013*** `e' (`float-e').
1166 1014
1167---
1168** The following obsolete files were removed: 1015** The following obsolete files were removed:
1169sc.el, x-menu.el, rnews.el, rnewspost.el 1016sc.el, x-menu.el, rnews.el, rnewspost.el
1170 1017
1171---
1172** The format of the finder-inf.el file has changed, since the Finder 1018** The format of the finder-inf.el file has changed, since the Finder
1173mechanism is now based on the package system. The variable 1019mechanism is now based on the package system. The variable
1174`finder-package-info' is replaced by `package--builtins' and 1020`finder-package-info' is replaced by `package--builtins' and
1175`finder-keywords-hash'. 1021`finder-keywords-hash'.
1176 1022
1177---
1178** When generating autoloads, `update-directory-autoloads' no longer 1023** When generating autoloads, `update-directory-autoloads' no longer
1179assumes every inspected file is in your `load-path'. It instead 1024assumes every inspected file is in your `load-path'. It instead
1180generates relative names according to the current `load-path'. 1025generates relative names according to the current `load-path'.
@@ -1182,112 +1027,111 @@ generates relative names according to the current `load-path'.
1182 1027
1183* Lisp changes in Emacs 24.1 1028* Lisp changes in Emacs 24.1
1184 1029
1185+++
1186** Code can now use lexical scoping by default instead of dynamic scoping. 1030** Code can now use lexical scoping by default instead of dynamic scoping.
1187The `lexical-binding' variable lets code use lexical scoping for local 1031The `lexical-binding' variable enables lexical scoping for local
1188variables. It is typically set via a file-local variable in the first 1032variables. It is typically set via a file-local variable in the first
1189line of the file, in which case it applies to all the code in that file. 1033line of the file, in which case it applies to all the code in that
1190+++ 1034file.
1035
1191*** `eval' takes a new optional argument `lexical' to choose the new lexical 1036*** `eval' takes a new optional argument `lexical' to choose the new lexical
1192binding instead of the old dynamic binding mode. 1037binding instead of the old dynamic binding mode.
1193+++ 1038
1194*** Lexically scoped interpreted functions are represented with a new form 1039*** Lexically scoped interpreted functions are represented with a new form
1195of function value which looks like (closure ENV ARGS &rest BODY). 1040of function value which looks like (closure ENV ARGS &rest BODY).
1196 1041
1197*** New macro `letrec' to define recursive local functions. 1042*** New macro `letrec' to define recursive local functions.
1198+++ 1043
1044*** `defvar' and `defconst' now mark the variable as special (dynamic).
1045So do `defcustom' and other forms that call `defvar' as a subroutine.
1046
1199*** New function `special-variable-p' to check whether a variable is 1047*** New function `special-variable-p' to check whether a variable is
1200declared as dynamically bound. 1048declared as dynamically bound.
1201 1049
1202+++
1203** An Emacs Lisp testing tool is now included. 1050** An Emacs Lisp testing tool is now included.
1204Emacs Lisp developers can use this tool to write automated tests for 1051Emacs Lisp developers can use this tool to write automated tests for
1205their code. See the ERT info manual for details. 1052their code. See the ERT info manual for details.
1206 1053
1207** Changes for bidirectional display and editing 1054** Changes for bidirectional display and editing
1208 1055
1209+++
1210*** New function `current-bidi-paragraph-direction'. 1056*** New function `current-bidi-paragraph-direction'.
1211This returns the base direction of the paragraph at point. 1057This returns the base direction of the paragraph at point.
1212 1058
1213+++
1214*** New function `bidi-string-mark-left-to-right'. 1059*** New function `bidi-string-mark-left-to-right'.
1215Given a string containing characters from right-to-left (RTL) scripts, 1060Given a string containing characters from right-to-left scripts, this
1216this function returns another string which can be safely inserted into 1061function returns another string which can be safely inserted into a
1217a buffer, such that any following text will be always displayed to the 1062buffer, such that any following text will be always displayed to the
1218right of that string. (This works by appending an invisible Unicode 1063right of that string. (This works by appending an invisible Unicode
1219"LEFT-TO-RIGHT MARK" character if the argument string might need it.) 1064"LEFT-TO-RIGHT MARK" character if the argument string might need it.)
1220 1065
1221This is useful when the buffer has overall left-to-right paragraph 1066This is useful when the buffer has overall left-to-right paragraph
1222direction and you need to insert a string whose contents and 1067direction and you need to insert a string whose contents are not known
1223directionality are not known in advance, without disrupting the layout 1068in advance, without disrupting the layout of the line.
1224of the line.
1225 1069
1226** Window changes 1070** Window changes
1227+++ 1071
1228*** Window tree functions are accessible in Elisp. 1072*** Window tree functions are accessible in Elisp.
1229Functions are provided to return the parent, siblings or child windows 1073Functions are provided to return the parent, siblings or child windows
1230of any window including internal windows (windows not associated with a 1074of any window including internal windows (windows not associated with a
1231buffer) in the window tree. 1075buffer) in the window tree.
1232+++ 1076
1233**** New function `window-valid-p' gives non-nil for live and internal 1077**** New function `window-valid-p' gives non-nil for live and internal
1234windows. 1078windows.
1235+++ 1079
1236**** Window manipulation can deal with internal windows. 1080**** Window manipulation can deal with internal windows.
1237Many window handling functions like `split-window', `delete-window', or 1081Many window handling functions like `split-window', `delete-window', or
1238`delete-other-windows' as well as the window resizing functions can now 1082`delete-other-windows' as well as the window resizing functions can now
1239act on any window including internal ones. 1083act on any window including internal ones.
1240+++ 1084
1241*** window-total-height/-width vs window-body-height/-width. 1085*** window-total-height/-width vs window-body-height/-width.
1242The function `window-height' has been renamed to `window-total-height' 1086The function `window-height' has been renamed to `window-total-height'
1243and `window-width' has been renamed to `window-body-width'. The old 1087and `window-width' has been renamed to `window-body-width'. The old
1244names are provided as aliases. Two new functions `window-total-width' 1088names are provided as aliases. Two new functions `window-total-width'
1245and `window-body-height' are provided. 1089and `window-body-height' are provided.
1246+++ 1090
1247*** Window parameters specific to window handling functions. 1091*** Window parameters specific to window handling functions.
1248For each window you can specify a parameter to override the default 1092For each window you can specify a parameter to override the default
1249behavior of a number of functions like `split-window', `delete-window' 1093behavior of a number of functions like `split-window', `delete-window'
1250and `delete-other-windows'. The variable `ignore-window-parameters' 1094and `delete-other-windows'. The variable `ignore-window-parameters'
1251allows to ignore processing such parameters. 1095allows to ignore processing such parameters.
1252+++ 1096
1253*** New semantics of third argument of `split-window'. 1097*** New semantics of third argument of `split-window'.
1254The third argument of `split-window' has been renamed to SIDE and can be 1098The third argument of `split-window' has been renamed to SIDE and can be
1255set to any of the values 'below, 'right, 'above, or 'left to make the 1099set to any of the values 'below, 'right, 'above, or 'left to make the
1256new window appear on the corresponding side of the window that shall be 1100new window appear on the corresponding side of the window that shall be
1257split. Any other value of SIDE will cause `split-window' to split the 1101split. Any other value of SIDE will cause `split-window' to split the
1258window into two side-by-side windows as before. 1102window into two side-by-side windows as before.
1259+++ 1103
1260*** Window resizing functions. 1104*** Window resizing functions.
1261A new standard function for resizing windows called `window-resize' has 1105A new standard function for resizing windows called `window-resize' has
1262been introduced. This and all other functions for resizing windows no 1106been introduced. This and all other functions for resizing windows no
1263longer delete any windows when they become too small. 1107longer delete any windows when they become too small.
1264+++ 1108
1265*** Deleting the selected window now selects the most recently selected 1109*** Deleting the selected window now selects the most recently selected
1266live window on that frame instead. 1110live window on that frame instead.
1267+++ 1111
1268*** `adjust-window-trailing-edge' adjustments. 1112*** `adjust-window-trailing-edge' adjustments.
1269`adjust-window-trailing-edge' can now deal with fixed-size windows and 1113`adjust-window-trailing-edge' can now deal with fixed-size windows and
1270is able to resize other windows if a window adjacent to the trailing 1114is able to resize other windows if a window adjacent to the trailing
1271edge cannot be shrunk any more. This makes its behavior more similar to 1115edge cannot be shrunk any more. This makes its behavior more similar to
1272that of Emacs 21 without compromising, however, its inability to delete 1116that of Emacs 21 without compromising, however, its inability to delete
1273windows which was introduced in Emacs 22. 1117windows which was introduced in Emacs 22.
1274+++ 1118
1275*** Window-local buffer lists. 1119*** Window-local buffer lists.
1276Windows now have local buffer lists. This means that removing a buffer 1120Windows now have local buffer lists. This means that removing a buffer
1277from display in a window will preferably show the buffer previously 1121from display in a window will preferably show the buffer previously
1278shown in that window with its previous window-start and window-point 1122shown in that window with its previous window-start and window-point
1279positions. This also means that the same buffer may be automatically 1123positions. This also means that the same buffer may be automatically
1280shown twice even if it already appears in another window. 1124shown twice even if it already appears in another window.
1281+++ 1125
1282*** `switch-to-buffer' has a new optional argument FORCE-SAME-WINDOW, 1126*** `switch-to-buffer' has a new optional argument FORCE-SAME-WINDOW,
1283which if non-nil requires the buffer to be displayed in the currently 1127which if non-nil requires the buffer to be displayed in the currently
1284selected window, signaling an error otherwise. If nil, another window 1128selected window, signaling an error otherwise. If nil, another window
1285can be used, e.g. if the selected one is strongly dedicated. 1129can be used, e.g. if the selected one is strongly dedicated.
1286+++ 1130
1287*** `split-window-vertically' and `split-window-horizontally' renamed 1131*** `split-window-vertically' and `split-window-horizontally' renamed
1288to `split-window-below' and `split-window-right' respectively. 1132to `split-window-below' and `split-window-right' respectively.
1289The old names are kept as aliases. 1133The old names are kept as aliases.
1290+++ 1134
1291*** Display actions 1135*** Display actions
1292 1136
1293**** The second arg to `display-buffer' and `pop-to-buffer' is now 1137**** The second arg to `display-buffer' and `pop-to-buffer' is now
@@ -1305,17 +1149,14 @@ are user-customizable variables.
1305 1149
1306See the docstring of `display-buffer' for details. 1150See the docstring of `display-buffer' for details.
1307 1151
1308+++
1309*** New behavior of `quit-window'. 1152*** New behavior of `quit-window'.
1310The behavior of `quit-window' has been changed in order to restore the 1153The behavior of `quit-window' has been changed in order to restore the
1311state before the last buffer display operation in that window. 1154state before the last buffer display operation in that window.
1312 1155
1313+++
1314*** The new option `frame-auto-hide-function' lets you choose between 1156*** The new option `frame-auto-hide-function' lets you choose between
1315iconifying or deleting a frame when burying a buffer shown in a dedicated 1157iconifying or deleting a frame when burying a buffer shown in a dedicated
1316frame or quitting a window showing a buffer in a frame of its own. 1158frame or quitting a window showing a buffer in a frame of its own.
1317 1159
1318+++
1319*** New functions `window-state-get' and `window-state-put'. 1160*** New functions `window-state-get' and `window-state-put'.
1320These functions allow to save and restore the state of an arbitrary 1161These functions allow to save and restore the state of an arbitrary
1321frame or window as an Elisp object. 1162frame or window as an Elisp object.
@@ -1330,7 +1171,6 @@ properties of the current completion:
1330*** Functions on `completion-at-point-functions' can return any of the 1171*** Functions on `completion-at-point-functions' can return any of the
1331properties valid for `completion-extra-properties'. 1172properties valid for `completion-extra-properties'.
1332 1173
1333+++
1334*** `completion-annotate-function' is obsolete. 1174*** `completion-annotate-function' is obsolete.
1335 1175
1336*** New `metadata' method for completion tables. The metadata thus returned 1176*** New `metadata' method for completion tables. The metadata thus returned
@@ -1348,75 +1188,67 @@ are combined with `minibuffer-local-must-match-map'.
1348*** New variable `completing-read-function' allows overriding the 1188*** New variable `completing-read-function' allows overriding the
1349behavior of `completing-read'. 1189behavior of `completing-read'.
1350 1190
1351+++
1352** `glyphless-char-display' can now distinguish between graphical and 1191** `glyphless-char-display' can now distinguish between graphical and
1353text terminal display, via a char-table entry that is a cons cell. 1192text terminal display, via a char-table entry that is a cons cell.
1354 1193
1355+++
1356** `pre-command-hook'/`post-command-hook' are not reset to nil on error. 1194** `pre-command-hook'/`post-command-hook' are not reset to nil on error.
1357Instead, the offending function is removed. 1195Instead, the offending function is removed.
1358 1196
1359** New hook types 1197** New hook types
1360 1198
1361+++
1362*** New function `run-hook-wrapped' for running an abnormal hook by 1199*** New function `run-hook-wrapped' for running an abnormal hook by
1363passing the hook functions as arguments to a "wrapping" function. 1200passing the hook functions as arguments to a "wrapping" function.
1364Like `run-hook-with-args-until-success', it stops at the first 1201Like `run-hook-with-args-until-success', it stops at the first
1365non-nil return value. 1202non-nil return value.
1366 1203
1367+++
1368*** New macro `with-wrapper-hook' for running an abnormal hook as a 1204*** New macro `with-wrapper-hook' for running an abnormal hook as a
1369set of "wrapping" filters, similar to around advice. 1205set of "wrapping" filters, similar to around advice.
1370(A version of this macro was actually added in Emacs 23.2 but was not 1206(A version of this macro was actually added in Emacs 23.2 but was not
1371advertised at the time.) 1207advertised at the time.)
1372 1208
1373** Debugger changes 1209** Debugger changes
1374+++ 1210
1375*** New macro `condition-case-unless-debug' (this was actually added in 1211*** New macro `condition-case-unless-debug' (this was actually added in
1376Emacs 23.1 as condition-case-no-debug, but not advertised) 1212Emacs 23.1 as condition-case-no-debug, but not advertised)
1377+++ 1213
1378*** The macro `with-demoted-errors' was added in Emacs 23.1, but not advertised. 1214*** The macro `with-demoted-errors' was added in Emacs 23.1, but not advertised.
1379--- 1215
1380*** Variable `stack-trace-on-error' removed. 1216*** Variable `stack-trace-on-error' removed.
1381+++ 1217
1382*** The debugger can now "continue" from an error, which means it will 1218*** The debugger can now "continue" from an error, which means it will
1383jump to the error handler as if the debugger had not been invoked 1219jump to the error handler as if the debugger had not been invoked
1384instead of jumping all the way to the top-level. 1220instead of jumping all the way to the top-level.
1385+++ 1221
1386*** Set `debug-on-event' to enter the debugger on events like SIGUSR1. 1222*** Set `debug-on-event' to enter the debugger on events like SIGUSR1.
1387This can be useful when `inhibit-quit' is set. 1223This can be useful when `inhibit-quit' is set.
1388 1224
1389+++
1390** The new function `server-eval-at' allows evaluation of Lisp forms on 1225** The new function `server-eval-at' allows evaluation of Lisp forms on
1391named Emacs server instances. 1226named Emacs server instances.
1392 1227
1393+++
1394** `call-process' and `call-process-region' allow a `(:file "file")' spec 1228** `call-process' and `call-process-region' allow a `(:file "file")' spec
1395to redirect STDOUT to a file. 1229to redirect STDOUT to a file.
1396 1230
1397+++
1398** The function `format-time-string' now supports the %N directive, 1231** The function `format-time-string' now supports the %N directive,
1399for higher-resolution time stamps. 1232for higher-resolution time stamps.
1400 1233
1401** New input reading functions 1234** New input reading functions
1402+++ 1235
1403*** New function `read-char-choice' reads a restricted set of 1236*** New function `read-char-choice' reads a restricted set of
1404characters, discarding any inputs not inside the set. 1237characters, discarding any inputs not inside the set.
1405+++ 1238
1406*** The command `read-color' now requires a match for a color name 1239*** The command `read-color' now requires a match for a color name
1407or RGB triplet, instead of signaling an error if the user provides 1240or RGB triplet, instead of signaling an error if the user provides
1408invalid input. 1241invalid input.
1409--- 1242
1410**** `facemenu-read-color' is now an alias for `read-color'. 1243**** `facemenu-read-color' is now an alias for `read-color'.
1411 1244
1412+++
1413** `image-library-alist' is renamed to `dynamic-library-alist'. 1245** `image-library-alist' is renamed to `dynamic-library-alist'.
1414The variable is now used to load all kind of supported dynamic libraries, 1246The variable is now used to load all kind of supported dynamic libraries,
1415not just image libraries. The previous name is still available as an 1247not just image libraries. The previous name is still available as an
1416obsolete alias. 1248obsolete alias.
1417 1249
1418** Syntax parsing changes 1250** Syntax parsing changes
1419+++ 1251
1420*** New variable `syntax-propertize-function'. 1252*** New variable `syntax-propertize-function'.
1421This replaces `font-lock-syntactic-keywords' which is now obsolete. 1253This replaces `font-lock-syntactic-keywords' which is now obsolete.
1422This allows syntax-table properties to be set independently from font-lock: 1254This allows syntax-table properties to be set independently from font-lock:
@@ -1426,72 +1258,61 @@ syntax-propertize-extend-region-functions, as well as two helper functions:
1426syntax-propertize-via-font-lock to reuse old font-lock-syntactic-keywords 1258syntax-propertize-via-font-lock to reuse old font-lock-syntactic-keywords
1427as-is; and syntax-propertize-rules which provides a new way to specify 1259as-is; and syntax-propertize-rules which provides a new way to specify
1428syntactic rules. 1260syntactic rules.
1429+++ 1261
1430*** Syntax tables support a new "comment style c" additionally to style b. 1262*** Syntax tables support a new "comment style c" additionally to style b.
1431 1263
1432+++
1433** New hook `post-self-insert-hook', run after `self-insert-command'. 1264** New hook `post-self-insert-hook', run after `self-insert-command'.
1434 1265
1435---
1436** frame-local variables cannot be let-bound any more. 1266** frame-local variables cannot be let-bound any more.
1437 1267
1438** Major and minor mode changes 1268** Major and minor mode changes
1439+++ 1269
1440*** `set-auto-mode' now respects mode: local variables at the end of files, 1270*** `set-auto-mode' now respects mode: local variables at the end of files,
1441as well as those in the -*- line. 1271as well as those in the -*- line.
1442+++ 1272
1443*** `prog-mode' is a new major mode from which programming modes 1273*** `prog-mode' is a new major mode from which programming modes
1444should be derived. 1274should be derived.
1445+++ 1275
1446**** `prog-mode-hook' can be used to enable features for programming 1276**** `prog-mode-hook' can be used to enable features for programming
1447modes, e.g. (add-hook 'prog-mode-hook 'flyspell-prog-mode) to enable 1277modes, e.g. (add-hook 'prog-mode-hook 'flyspell-prog-mode) to enable
1448on-the-fly spell checking for comments and strings. 1278on-the-fly spell checking for comments and strings.
1449+++ 1279
1450*** New hook `change-major-mode-after-body-hook', run by 1280*** New hook `change-major-mode-after-body-hook', run by
1451`run-mode-hooks' just before any other mode hooks. 1281`run-mode-hooks' just before any other mode hooks.
1452+++ 1282
1453*** Enabled globalized minor modes can be disabled in specific major modes. 1283*** Enabled globalized minor modes can be disabled in specific major modes.
1454If the global mode is global-FOO-mode, then run (FOO-mode -1) in the 1284If the global mode is global-FOO-mode, then run (FOO-mode -1) in the
1455major mode's hook, where FOO-mode toggles the mode on a per-buffer basis. 1285major mode's hook, where FOO-mode toggles the mode on a per-buffer basis.
1456+++ 1286
1457*** `define-minor-mode' accepts new keywords :variable, :after-hook. 1287*** `define-minor-mode' accepts new keywords :variable, :after-hook.
1458 1288
1459** File-handling changes 1289** File-handling changes
1460 1290
1461+++
1462*** `delete-file' and `delete-directory' now accept optional arg TRASH. 1291*** `delete-file' and `delete-directory' now accept optional arg TRASH.
1463Trashing is performed if TRASH and `delete-by-moving-to-trash' are 1292Trashing is performed if TRASH and `delete-by-moving-to-trash' are
1464both non-nil. Interactively, TRASH defaults to t, unless a prefix 1293both non-nil. Interactively, TRASH defaults to t, unless a prefix
1465argument is supplied (see Trash changes, above). 1294argument is supplied (see Trash changes, above).
1466 1295
1467+++
1468*** New file predicates: `file-equal-p', `file-in-directory-p'. 1296*** New file predicates: `file-equal-p', `file-in-directory-p'.
1469 1297
1470+++
1471** Tool-bars can display separators. 1298** Tool-bars can display separators.
1472Tool-bar separators are handled like menu separators in menu-bar maps, 1299Tool-bar separators are handled like menu separators in menu-bar maps,
1473i.e. via menu entries of the form `(menu-item "--")'. 1300i.e. via menu entries of the form `(menu-item "--")'.
1474 1301
1475** Image API 1302** Image API
1476 1303
1477+++
1478*** Animated images support (currently animated gifs only). 1304*** Animated images support (currently animated gifs only).
1479 1305
1480+++
1481**** `image-animated-p' returns non-nil if an image can be animated. 1306**** `image-animated-p' returns non-nil if an image can be animated.
1482 1307
1483+++
1484**** `image-animate' animates a supplied image spec. 1308**** `image-animate' animates a supplied image spec.
1485 1309
1486+++
1487**** `image-animate-timer' returns the timer object for an image that 1310**** `image-animate-timer' returns the timer object for an image that
1488is being animated. 1311is being animated.
1489 1312
1490---
1491*** `image-extension-data' has been renamed to `image-metadata'. 1313*** `image-extension-data' has been renamed to `image-metadata'.
1492The old name is an obsolete alias to the new one. 1314The old name is an obsolete alias to the new one.
1493 1315
1494+++
1495*** Image mode can view any image type that ImageMagick supports. 1316*** Image mode can view any image type that ImageMagick supports.
1496This requires Emacs to be built with ImageMagick support. 1317This requires Emacs to be built with ImageMagick support.
1497 1318
@@ -1506,19 +1327,16 @@ functions.
1506**** New option `imagemagick-types-inhibit' excludes certain 1327**** New option `imagemagick-types-inhibit' excludes certain
1507ImageMagick image types from `imagemagick-register-types'. 1328ImageMagick image types from `imagemagick-register-types'.
1508 1329
1509---
1510**** With ImageMagick support, there are extra Image mode commands to 1330**** With ImageMagick support, there are extra Image mode commands to
1511resize and rotate images: `image-transform-fit-to-height', 1331resize and rotate images: `image-transform-fit-to-height',
1512`image-transform-fit-to-width', `image-transform-set-rotation', and 1332`image-transform-fit-to-width', `image-transform-set-rotation', and
1513`image-transform-set-scale'. 1333`image-transform-set-scale'.
1514 1334
1515---
1516** `compose-mail' now accepts an optional 8th arg, RETURN-ACTION, and 1335** `compose-mail' now accepts an optional 8th arg, RETURN-ACTION, and
1517passes it to the mail user agent function. This argument specifies an 1336passes it to the mail user agent function. This argument specifies an
1518action for returning to the caller after finishing with the mail. For 1337action for returning to the caller after finishing with the mail. For
1519example, this is used by Rmail to optionally delete a mail window. 1338example, this is used by Rmail to optionally delete a mail window.
1520 1339
1521+++
1522** XML and HTML parsing 1340** XML and HTML parsing
1523If Emacs is compiled with libxml2 support, there are two new 1341If Emacs is compiled with libxml2 support, there are two new
1524functions: `libxml-parse-html-region' (which parses "real world" HTML) 1342functions: `libxml-parse-html-region' (which parses "real world" HTML)
@@ -1527,7 +1345,6 @@ Emacs Lisp parse tree.
1527 1345
1528** Networking and encryption changes 1346** Networking and encryption changes
1529 1347
1530+++
1531*** `open-network-stream' can now be used to open an encrypted stream. 1348*** `open-network-stream' can now be used to open an encrypted stream.
1532It now accepts an optional `:type' parameter for initiating a TLS 1349It now accepts an optional `:type' parameter for initiating a TLS
1533connection, directly or via STARTTLS. To do STARTTLS, additional 1350connection, directly or via STARTTLS. To do STARTTLS, additional
@@ -1535,26 +1352,22 @@ parameters (`:end-of-command', `:success', `:capabilities-command')
1535must also be supplied. 1352must also be supplied.
1536 1353
1537*** New library gnutls.el. 1354*** New library gnutls.el.
1538 1355The new function `gnutls-available-p' returns non-nil if Emacs is
1539If Emacs is built with GnuTLS support, the function 1356built with GnuTLS support. The main entry points are
1540`gnutls-available-p' is defined and returns non-nil. The main entry 1357`open-gnutls-stream' and `gnutls-negotiate'. It's easiest to use
1541points are `open-gnutls-stream' and `gnutls-negotiate'. It's easiest 1358these functions through `open-network-stream', because that can
1542to use these functions through `open-network-stream', because that can
1543upgrade connections through STARTTLS opportunistically or use plain 1359upgrade connections through STARTTLS opportunistically or use plain
1544SSL, depending on your needs. For debugging, set `gnutls-log-level' 1360SSL, depending on your needs. For debugging, set `gnutls-log-level'
1545greater than 0. 1361greater than 0.
1546 1362
1547+++
1548*** New primitive `secure-hash' that supports many secure hash algorithms: 1363*** New primitive `secure-hash' that supports many secure hash algorithms:
1549md5, sha1, sha2, sha224, sha256, sha384, and sha512. The lisp library 1364md5, sha1, sha2, sha224, sha256, sha384, and sha512. The lisp library
1550sha1.el has been removed. The `sha1' feature is provided by default. 1365sha1.el has been removed. The `sha1' feature is provided by default.
1551 1366
1552** Isearch 1367** Isearch
1553 1368
1554---
1555*** New hook `isearch-update-post-hook' that runs in `isearch-update'. 1369*** New hook `isearch-update-post-hook' that runs in `isearch-update'.
1556 1370
1557+++
1558** Progress reporters can now "spin". 1371** Progress reporters can now "spin".
1559The MIN-VALUE and MAX-VALUE arguments of `make-progress-reporter' can 1372The MIN-VALUE and MAX-VALUE arguments of `make-progress-reporter' can
1560now be nil, or omitted. This makes a "non-numeric" reporter. Each 1373now be nil, or omitted. This makes a "non-numeric" reporter. Each
@@ -1562,11 +1375,9 @@ time you call `progress-reporter-update' on that progress reporter,
1562with a nil or omitted VALUE argument, the reporter message is 1375with a nil or omitted VALUE argument, the reporter message is
1563displayed with a "spinning bar". 1376displayed with a "spinning bar".
1564 1377
1565+++
1566** New variable `revert-buffer-in-progress-p' is true while a buffer is 1378** New variable `revert-buffer-in-progress-p' is true while a buffer is
1567being reverted, even if the buffer has a local `revert-buffer-function'. 1379being reverted, even if the buffer has a local `revert-buffer-function'.
1568 1380
1569+++
1570** New variables `delayed-warnings-list' and `delayed-warnings-hook'. 1381** New variables `delayed-warnings-list' and `delayed-warnings-hook'.
1571If delayed-warnings-list is non-nil, the command loop calls 1382If delayed-warnings-list is non-nil, the command loop calls
1572`delayed-warnings-hook' after `post-command-hook'. At present, this 1383`delayed-warnings-hook' after `post-command-hook'. At present, this
@@ -1574,81 +1385,62 @@ is only used by Emacs on some platforms to display warnings during
1574startup, which might otherwise not be noticed. This uses the 1385startup, which might otherwise not be noticed. This uses the
1575functions `display-delayed-warnings' and `collapse-delayed-warnings'. 1386functions `display-delayed-warnings' and `collapse-delayed-warnings'.
1576 1387
1577---
1578** rx.el has a new `group-n' construct for explicitly numbered groups. 1388** rx.el has a new `group-n' construct for explicitly numbered groups.
1579 1389
1580+++
1581** New function `make-composed-keymap' that constructs a new keymap 1390** New function `make-composed-keymap' that constructs a new keymap
1582from multiple input maps. You can use this to make a keymap that 1391from multiple input maps. You can use this to make a keymap that
1583inherits from multiple maps, eg: 1392inherits from multiple maps, eg:
1584 (set-keymap-parent newmap (make-composed-keymap othermap parent)) 1393 (set-keymap-parent newmap (make-composed-keymap othermap parent))
1585 1394
1586+++
1587** New function `string-prefix-p'. 1395** New function `string-prefix-p'.
1588(This was actually added in Emacs 23.2 but was not advertised at the time.) 1396(This was actually added in Emacs 23.2 but was not advertised at the time.)
1589 1397
1590+++
1591** New reader macro ## that stands for the empty symbol. 1398** New reader macro ## that stands for the empty symbol.
1592This means that the empty symbol can now be read back. Also, #: by itself 1399This means that the empty symbol can now be read back. Also, #: by itself
1593(when not immediately followed by a possible symbol character) stands for 1400(when not immediately followed by a possible symbol character) stands for
1594an empty uninterned symbol. 1401an empty uninterned symbol.
1595 1402
1596+++
1597** New math functions `isnan', `copysign', `frexp', `ldexp'. 1403** New math functions `isnan', `copysign', `frexp', `ldexp'.
1598 1404
1599** The following functions and variables are obsolete: 1405** The following functions and variables are obsolete:
1600 1406
1601---
1602*** `tooltip-use-echo-area' is obsolete. 1407*** `tooltip-use-echo-area' is obsolete.
1603Rather than setting this to t, disable Tooltip mode instead. 1408Rather than setting this to t, disable Tooltip mode instead.
1604 1409
1605+++
1606*** buffer-substring-filters is obsolete. 1410*** buffer-substring-filters is obsolete.
1607Use `filter-buffer-substring-functions' instead. 1411Use `filter-buffer-substring-functions' instead.
1608 1412
1609---
1610*** `byte-compile-disable-print-circle' is obsolete. 1413*** `byte-compile-disable-print-circle' is obsolete.
1611 1414
1612---
1613*** `deferred-action-list' and `deferred-action-function' are obsolete. 1415*** `deferred-action-list' and `deferred-action-function' are obsolete.
1614Use `post-command-hook' instead. 1416Use `post-command-hook' instead.
1615 1417
1616+++
1617*** `font-lock-maximum-size' is obsolete. 1418*** `font-lock-maximum-size' is obsolete.
1618 1419
1619 1420
1620* Changes in Emacs 24.1 on non-free operating systems 1421* Changes in Emacs 24.1 on non-free operating systems
1621 1422
1622---
1623** On MS Windows, Emacs warns when using the obsolete init file _emacs, 1423** On MS Windows, Emacs warns when using the obsolete init file _emacs,
1624and also when HOME is set to C:\ by default. 1424and also when HOME is set to C:\ by default.
1625 1425
1626** New configure.bat options 1426** New configure.bat options
1627 1427
1628+++
1629*** --enable-checking builds Emacs with extra runtime checks. 1428*** --enable-checking builds Emacs with extra runtime checks.
1630 1429
1631+++
1632*** --distfiles specifies files to be included in binary distribution. 1430*** --distfiles specifies files to be included in binary distribution.
1633 1431
1634+++
1635*** --without-gnutls disables automatic GnuTLS detection. 1432*** --without-gnutls disables automatic GnuTLS detection.
1636 1433
1637+++
1638*** --lib for general library linkage, works with the USER_LIBS build variable. 1434*** --lib for general library linkage, works with the USER_LIBS build variable.
1639 1435
1640+++
1641** New make target `dist' to create binary distribution for MS Windows. 1436** New make target `dist' to create binary distribution for MS Windows.
1642 1437
1643---
1644** The Lisp function `w32-default-color-map' is now obsolete. 1438** The Lisp function `w32-default-color-map' is now obsolete.
1645(It is only used internally in the Emacs C code.) 1439(It is only used internally in the Emacs C code.)
1646 1440
1647+++
1648** Customize ns-auto-hide-menu-bar to have the menu-bar hidden, but 1441** Customize ns-auto-hide-menu-bar to have the menu-bar hidden, but
1649reappear on mouse-over. (Requires OS X 10.6 or later.) 1442reappear on mouse-over. (Requires OS X 10.6 or later.)
1650 1443
1651+++
1652** On Mac OS X, dragging a file into Emacs visits the file, like on 1444** On Mac OS X, dragging a file into Emacs visits the file, like on
1653other platforms, rather than inserting its contents into the buffer. 1445other platforms, rather than inserting its contents into the buffer.
1654 1446