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