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