Add `superword-mode'
[bpt/emacs.git] / etc / NEWS
CommitLineData
29b7722a 1GNU Emacs NEWS -- history of user-visible changes.
5b87ad55 2
ab422c4d 3Copyright (C) 2010-2013 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
95a32efb 24* Installation Changes in Emacs 24.4
7c3d167f
RF
25
26** Emacs can be compiled with POSIX ACL support.
27This happens by default if a suitable support library is found at
28build time, like libacl on GNU/Linux. To prevent this, use the
29configure option `--without-acl'.
30
aec32f66
PE
31** The configure option --with-crt-dir has been removed.
32It is no longer needed, as the crt*.o files are no longer linked specially.
33
c57b2d76 34\f
95a32efb 35* Startup Changes in Emacs 24.4
c57b2d76
GM
36
37\f
95a32efb 38* Changes in Emacs 24.4
c6c08d3f 39
61a5bb85
BG
40+++
41** `apropos-variable' is now `apropos-user-option'
42`apropos-user-option' shows all user options while `apropos-variable'
43shows all variables. When called with a universal prefix argument,
44the two commands swap their behaviors. When `apropos-do-all' is
45non-nil, they output the same results.
46
c6c08d3f
GM
47+++
48** `eval-defun' on an already defined defcustom calls the :set function,
49if there is one.
50
97a1cd9d
GM
51** If the new variable `enable-dir-local-variables' is nil,
52directory local variables are ignored. May be useful for some modes
53that want to ignore directory-locals while still respecting file-locals.
54
5dea55d2
CY
55** The option `set-mark-default-inactive' has been deleted.
56This unfinished feature was introduced by accident in Emacs 23.1;
57simply disabling Transient Mark mode does the same thing.
58
dc646358
CK
59** `initial-buffer-choice' can now specify a function to set up the
60initial buffer.
61
7c3d167f
RF
62** ACL support has been added.
63+++
64*** Emacs preserves the ACL entries of files when backing up.
65+++
66*** New functions `file-acl' and `set-file-acl' get and set the ACL
66447e07
EZ
67entries of a file. On GNU/Linux, the POSIX ACL interface is used via
68libacl. On MS-Windows, the NT Security APIs are used to emulate the
69POSIX ACL interfaces.
7c3d167f 70
99548339 71** New option `scroll-bar-adjust-thumb-portion'.
a219080b
EZ
72Available only on X, this option allows to control over-scrolling
73using the scroll bar (i.e. dragging the thumb down even when the end
74of the buffer is visible).
99548339 75
c57b2d76 76\f
95a32efb 77* Editing Changes in Emacs 24.4
4f0552c2 78
a45b7647
JL
79** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized',
80bound to <f11> and M-<f10>, respectively.
37f38bca 81
958614cf
GM
82** In keymaps where SPC scrolls, S-SPC now scrolls in the reverse direction.
83Eg View mode, etc.
84
4f0552c2 85\f
95a32efb 86* Changes in Specialized Modes and Packages in Emacs 24.4
4f0552c2 87
940e5099
SM
88** More packages look for ~/.emacs.d/<foo> additionally to ~/.<foo>.
89Affected files:
90~/.emacs.d/timelog replaces ~/.timelog
91~/.emacs.d/todo-do replaces ~/.todo-do
92~/.emacs.d/todo-done replaces ~/.todo-done
93~/.emacs.d/todo-top replaces ~/.todo-top
94~/.emacs.d/vip replaces ~/.vip
95~/.emacs.d/viper replaces ~/.viper
96~/.emacs.d/ido.last replaces ~/.ido.last
97~/.emacs.d/kkcrc replaces ~/.kkcrc
98~/.emacs.d/quickurls replaces ~/.quickurls
99~/.emacs.d/idlwave replaces ~/.idlwave
100~/.emacs.d/bdfcache.el replaces ~/.bdfcache.el
101~/.emacs.d/places replaces ~/.emacs-places
102~/.emacs.d/shadows replaces ~/.shadows
103~/.emacs.d/shadow_todo replaces ~/.shadow_todo
104~/.emacs.d/strokes replaces ~/.strokes
105~/.emacs.d/notes replaces ~/.notes
106~/.emacs.d/type-break replaces ~/.type-break
e56221d5 107
c4f268a1
SM
108** Delphi mode is now called OPascal mode.
109*** All delphi-* variables and functions have been renamed to opascal-*.
110*** `delphi-newline-always-indents' is not supported any more
111use `electric-indent-mode' instead.
112*** `delphi-tab' is gone, replaced by `indent-for-tab-command'.
113
e5b5a34d
SM
114** jit-lock-debug-mode lets you use the debuggers on code run via jit-lock.
115
b14abca9
RW
116** completing-read-multiple's separator can now be a regexp.
117The default separator is changed to allow surrounding spaces around the comma.
118
19b748ad
TM
119** Battery
120
121*** Battery information via the BSD `apm' utility is now supported.
122
ba30c70f
GM
123** cl-lib
124
125*** New macro cl-tagbody.
126
127+++
128*** letf is now just an alias for cl-letf.
129
0e70ce93
PE
130** Calc
131
132*** Calc by default now uses the Gregorian calendar for all dates, and
133uses January 1, 1 AD as its day number 1. Previously Calc used the
134Julian calendar for dates before September 14, 1752, and it used
135December 31, 1 BC as its day number 1; the new scheme is more
136consistent with Calendar's calendrical system and day numbering.
137
138*** The new variable `calc-gregorian-switch' lets you configure the
139date when Calc switches from the Julian to the Gregorian calendar.
140Nil, the default value, means to always use the Gregorian calendar.
141The value (YEAR MONTH DAY) means to start using the Gregorian calendar
142on the given date.
143
86e100a6
GM
144*** Support for ISO 8601 dates.
145
a2a538b1
CS
146** Dired
147
148*** New minor mode `dired-hide-details-mode' hides details.
149
21859ebc
EH
150** ERC
151
152*** New option `erc-accidental-paste-threshold-seconds'.
153If set to a number, this can be used to avoid accidentally paste large
154amounts of data into the ERC input.
155
156** Icomplete is a bit more like IDO.
157*** key bindings to navigate through and select the completions.
158*** The icomplete-separator is customizable, and its default has changed.
159*** Removed icomplete-show-key-bindings.
160
2a43515a 161** Image mode
20de6ab6
CW
162
163*** New commands `n' (`image-next-file') and `p' (`image-previous-file')
164visit the next image file and the previous image file in the same
165directory, respectively.
166
c0211c4e
GM
167*** New commands to show specific frames of multi-frame images.
168`f' (`image-next-frame') and `b' (`image-previous-frame') visit the
169next or previous frame. `F' (`image-goto-frame') shows a specific frame.
170
2a43515a
CY
171---
172*** The command `image-mode-fit-frame' deletes other windows.
173When toggling, it restores the frame's previous window configuration.
174It also has an optional frame argument, which can be used by Lisp
175callers to fit the image to a frame other than the selected frame.
176
e38e6780
JL
177** Info
178
179*** New face `info-index-match' is used to highlight matches in index
180entries displayed by `Info-index-next', `Info-virtual-index' and
181`info-apropos'.
182
279f9b06
JL
183** Isearch
184
185*** `C-x 8 RET' in Isearch mode reads a character by its Unicode name
186and adds it to the search string.
187
5a3cbc03 188** MH-E has been updated to MH-E version 8.5.
6827cac1
BW
189See MH-E-NEWS for details.
190
13a40633
GM
191---
192** The unrmail command converts from BABYL to mboxrd rather than mboxo.
193Customize `unrmail-mbox-format' to change this.
194
195---
196** Similarly, customize `rmail-mbox-format' to influence some minor aspects
197of how Rmail displays non-MIME messages.
198
4f0552c2
GM
199+++
200** New function `ses-rename-cell' to give SES cells arbitrary names.
201
8b62d742
SM
202** trace-function was largely rewritten.
203New features include:
204- no prompting for the destination buffer, unless a prefix-arg was used.
205- additionally to prompting for a destination buffer, when a prefix-arg is
206 used, the user can enter a "context", i.e. Lisp expression whose value at the
207 time the function is entered/exited will be printed along with the function
208 name and arguments. Useful to trace the value of (current-buffer) or
209 (point) when the function is invoked.
210
c38a186c
JL
211** New command `delete-duplicate-lines' has two types of operation:
212when its arg ADJACENT is non-nil (when called interactively with C-u C-u)
213it works like the utility `uniq'. Otherwise by default it deletes
214duplicate lines everywhere in the region without regard to adjacency.
215
ad4de702
MN
216** New `cycle-spacing' command allows cycling between having just one
217space, no spaces, or reverting to the original spacing. Like
218`just-one-space' command it can handle or ignore newlines and
219leave different number of spaces.
220
aefa2ead 221** Tramp
26280467 222
aefa2ead
MA
223+++
224*** New connection method "adb", which allows to access Android
19dc8b9e
MA
225devices by the Android Debug Bridge. The variable `tramp-adb-program'
226can be used to adapt the path of the "adb" program, if needed.
26280467 227
19dc8b9e
MA
228*** The connection methods "plink1", "ssh1", "ssh2", "scp1", "scp2",
229"scpc" and "rsyncc" are discontinued. The ssh option
230"ControlMaster=auto" is set automatically in all ssh-based methods,
231when possible.
26280467 232
ed7367b1
MA
233+++
234*** Handlers for `file-acl' and `set-file-acl' for remote machines
235which support POSIX ACLs.
aefa2ead 236
433212bf
CY
237** Woman
238
239*** The commands `woman-default-faces' and `woman-monochrome-faces'
240are obsolete. Customize the `woman-* faces instead.
241
770de7cf
CY
242** Obsolete packages:
243
244*** longlines.el is obsolete; use visual-line-mode instead.
245
ce3e7725
CY
246*** terminal.el is obsolete; use term.el instead.
247
4e16ddf4
GM
248+++
249*** yow.el is obsolete; use fortune.el or cookie1.el instead.
250
5313bbc7
GM
251---
252*** The Info-edit command is obsolete. Editing Info nodes by hand
253has not been relevant for some time.
254
4f0552c2 255\f
95a32efb 256* New Modes and Packages in Emacs 24.4
002668e1
TZ
257** New `superword-mode' in subword.el
258`superword-mode' overrides the default word motion commands to treat
259symbol_words as a single word, similar to what `subword-mode' does and
260using the same internal functions.
261
231d8498
SM
262** New nadvice.el package offering lighter-weight advice facilities.
263It is layered as:
264- add-function/remove-function which can be used to add/remove code on any
265 function-carrying place, such as process-filters or `<foo>-function' hooks.
266- advice-add/advice-remove to add/remove a piece of advice on a named function,
267 much like `defadvice' does.
268
c57b2d76 269\f
95a32efb 270* Incompatible Lisp Changes in Emacs 24.4
da03ef8a 271
25c09217
SM
272** `read-event' does not return decoded chars in ttys any more.
273Just as was the case in Emacs-22 and before, decoding of tty input according to
274keyboard-coding-system is not performed in read-event any more. But contrary
275to that past, it is still done before input-decode-map/function-key-map/...
276
99d0d6dc
SM
277** Removed inhibit-local-menu-bar-menus.
278
e02230bf
SM
279** frame-local variables that affect redisplay do not work any more.
280More specifically, the redisplay does not bother to check for a frame-local
281value when looking up variables.
282
eadf1faa
SM
283** nil and "unbound" are indistinguishable in symbol-function.
284`symbol-function' never signals `void-function' any more.
285`fboundp' returns non-nil if the symbol was `fset' to nil.
286
3c442f8b
SM
287** `defadvice' does not honor the `freeze' flag and cannot advise
288special-forms any more.
7db1bda8 289
da03ef8a
SM
290** `dolist' in lexical-binding mode does not bind VAR in RESULT any more.
291VAR was bound to nil which was not tremendously useful and just lead to
292spurious warnings about an unused var.
293
7c3d167f
RF
294** The return value of `backup-buffer' has changed.
295The second argument is no longer an SELinux context, instead it is an
296alist of extended attributes as returned by the new function
297`file-extended-attributes'. The attributes can be applied to another
298file using `set-file-extended-attributes'.
299
c57b2d76 300\f
97a1cd9d 301* Lisp Changes in Emacs 24.4
57618ecf 302
d3e9f3a8
SM
303** `dont-compile' is declared obsolete.
304
81606b10
RS
305** Support for filesystem notifications.
306Emacs now supports notifications of filesystem changes, such as
307creation, modification, and deletion of files. This requires the
f282b9f7
EZ
308'inotify' API on GNU/Linux systems. On MS-Windows systems, this is
309supported for Windows XP and newer versions.
81606b10 310
add89f61
MA
311** Changes in autorevert.el
312
313---
314*** If Emacs is compiled with file notification support, notifications
315are used instead of checking the time stamp of the files. You can
316disable this by setting the user option `auto-revert-use-notify' to
317nil. Alternatively, a regular expression of directories to be
318excluded from file notifications can be specified by
319`auto-revert-notify-exclude-dir-regexp'.
320
321---
322*** The new user option `auto-revert-remote-files' enables reversion
323of remote files when set to non-nil.
324
1c4f115d
CY
325** Face changes
326
327*** The `face-spec-set' is now analogous to `setq' for face specs.
328Its third arg now accepts values specifying exactly which face spec to
329set (defface, custom, or user spec), and it directly sets the relevant
330property using the supplied face spec.
331
332*** Face specs set via Custom themes now replace the `defface' spec
333rather than inheriting from it (as do face specs set via Customize).
334
073ca75b
JL
335*** New face characteristic (supports :underline (:style wave))
336specifies whether or not the terminal can display a wavy line.
337
f0c954fa
GM
338** Image API
339
340+++
341*** `image-animated-p' is now `image-multi-frame-p'.
342It returns non-nil for any image that contains multiple frames,
343whether or not it specifies a frame delay.
344
345+++
346*** When animating images that do not specify a frame delay,
347Emacs uses `image-default-frame-delay'.
348
349+++
350*** New functions `image-current-frame' and `image-show-frame' for getting
351and setting the current frame of a multi-frame image.
352
855b17af 353** time-to-seconds is not obsolete any more.
231d8498 354** New function special-form-p.
57618ecf
SM
355** Docstrings can be made dynamic by adding a `dynamic-docstring-function'
356text-property on the first char.
357
32e5c58c
SM
358** The `defalias-fset-function' property lets you catch calls to defalias
359and redirect them to your own function instead of `fset'.
360
70743157 361** The lock for 'DIR/FILE' is now 'DIR/.#FILE' and may be a regular file.
b5029e23
PE
362When you edit DIR/FILE, Emacs normally creates a symbolic link
363DIR/.#FILE as a lock that warns other instances of Emacs that DIR/FILE
364is being edited. Formerly, if there was already a non-symlink file
365named DIR/.#FILE, Emacs fell back on the lock names DIR/.#FILE.0
366through DIR/.#FILE.9. These fallbacks have been removed, so that
367Emacs now no longer locks DIR/FILE in that case.
368
70743157
PE
369On file systems that do not support symbolic links, the lock is now a
370regular file with contents being what would have been in the symlink.
b5029e23 371
97976f9f
PE
372** The 9th element returned by `file-attributes' is now unspecified.
373Formerly, it was t if the file's gid would change if file were deleted
374and recreated. This value has been inaccurate for years on many
375platforms, and nobody seems to have noticed or cared.
376
377** The function `file-ownership-preserved-p' now has an optional
378argument GROUP which causes it check for file group too. This can be
379used in place of the 9th element of `file-attributes'.
380
381** New functions `group-gid' and `group-real-gid'.
382
7c3d167f
RF
383** The 6th argument to `copy-file' has been renamed to
384`preserve-extended-attributes' as it now handles both SELinux context
385and ACL entries.
386
c57b2d76 387\f
97a1cd9d 388* Changes in Emacs 24.4 on Non-Free Operating Systems
95a32efb 389
5248293f
GM
390+++
391** The "generate a backtrace on fatal error" feature now works on MS Windows.
392The backtrace is written to the 'emacs_backtrace.txt' file in the
393directory where Emacs was running.
394
8549f9e8
EZ
395+++
396** The variable `buffer-file-type' is no longer supported.
397Setting it has no effect, and %t in the mode-line format is ignored.
398Likewise, `file-name-buffer-file-type-alist' is now obsolete, and
399modifying it has no effect.
400
343a2aef
EZ
401---
402** Lock files now work on MS-Windows.
403This allows to avoid losing your edits if the same file is being
404edited in another Emacs session or by another user. See the node
405"Interlocking" in the Emacs User Manual for the details. To disable
406file locking, customize `create-lockfiles' to nil.
407
c57b2d76
GM
408** Improved fullscreen support on Mac OS X.
409Both native (>= OSX 10.7) and "old style" fullscreen are supported.
410Customize `ns-use-native-fullscreen' to change style. For >= 10.7
411native is the default.
412
95a32efb 413\f
2a1e2476 414* Installation Changes in Emacs 24.3
b8df54ff 415
6bc66c10 416** The default X toolkit is now Gtk+ version 3.
823b2fb6
GM
417If you don't pass `--with-x-toolkit' to configure, or if you use
418`--with-x-toolkit=gtk' or `--with-x-toolkit=yes', configure will try
419to build with Gtk+ version 3, and if that fails, try Gtk+ version 2.
d71a6517 420You can explicitly require a specific version by passing
823b2fb6 421`--with-x-toolkit=gtk2' or `--with-x-toolkit=gtk3' to configure.
da3d2105 422
6bc66c10 423** New configure option `--enable-link-time-optimization', to utilize
da3d2105
DA
424an appropriate feature provided by GCC since version 4.5.0.
425
33cb2043
GM
426** New configure option `--without-all' to disable most of the optional
427features (image support, etc.) that are normally enabled by default.
b8df54ff 428
33cb2043
GM
429** New configure option `--enable-gcc-warnings' (for developing/debugging
430Emacs). If building with GCC, this enables compile-time checks that
64420fcd
GM
431warn/give errors about possibly-questionable C code. On a recent GNU
432system there should be no warnings; on older and on non-GNU systems
433the results may be useful to developers.
b8df54ff 434
823b2fb6 435** The configure option `--enable-use-lisp-union-type' has been
6bc66c10 436renamed to `--enable-check-lisp-object-type', as the resulting
d71a6517
GM
437Lisp_Object type no longer uses a union to implement the compile time
438check that this option enables.
439
823b2fb6 440** The configure option `--disable-maintainer-mode' has been removed,
501390c5
PE
441as it was confusingly-named and rarely useful.
442
f14a4380
GM
443** The configure options `--program-prefix', `--program-suffix', and
444`--program-transform-name' apply to more than just the installed
445binaries. Now they also affect the man pages, icons, and the
446etc/emacs.desktop file; but not the info pages, since this would break
447links between the various manuals.
1a9c6830 448
823b2fb6
GM
449** You can use `NO_BIN_LINK=t make install' to prevent the installation
450overwriting "emacs" in the installation bin/ directory with a link
6bc66c10 451to "emacs-VERSION".
823b2fb6 452
a4a18b8b
GM
453** Emacs uses libtinfo in preference to libncurses, if available.
454
187e9b90
GM
455** On FreeBSD and NetBSD, configure no longer adds /usr/local/lib and
456/usr/pkg/lib to the linker search path. You must add them yourself if
457you want them.
458
6bc66c10 459** The standalone scripts `rcs-checkin' and `vcdiff' have been removed
276d5f5d
GM
460(from the bin and libexec directories, respectively). The former is
461no longer relevant, the latter is replaced by lisp (in vc-sccs.el).
462
a1ed8b05 463\f
2a1e2476 464* Startup Changes in Emacs 24.3
e5fcdb5e
GM
465
466** Emacs no longer searches for `leim-list.el' files beneath the standard
467lisp/ directory. There should not be any there anyway. If you have
823b2fb6 468been adding them there, put them somewhere else; e.g., site-lisp.
e5fcdb5e 469
4107c81e
GM
470** The `--no-site-lisp' command line option now works for Nextstep builds.
471
a1ed8b05 472\f
2a1e2476 473* Changes in Emacs 24.3
a1ed8b05 474
6bc66c10 475** Help
c89926a5 476
6bc66c10 477*** `C-h f' (`describe-function') can now perform autoloading.
c89926a5
CY
478When this command is called for an autoloaded function whose docstring
479contains a key substitution construct, that function's library is
480automatically loaded, so that the documentation can be shown
481correctly. To disable this, set `help-enable-auto-load' to nil.
482
483*** `C-h f' now reports previously-autoloaded functions as "autoloaded",
484even after their associated libraries have been loaded (and the
485autoloads have been redefined as functions).
486
6bc66c10 487** ImageMagick
cd996018 488
6bc66c10
GM
489*** Images displayed via ImageMagick now support transparency and the
490:background image specification property.
cd996018 491
6bc66c10 492*** When available, ImageMagick support is automatically enabled.
c505aaeb
CY
493It is no longer necessary to call `imagemagick-register-types'
494explicitly to install ImageMagick image types; that function is called
7d806bfe 495automatically at startup, or when customizing an imagemagick- option.
2f940384 496
c505aaeb 497*** Setting `imagemagick-types-inhibit' to t now disables the use of
823b2fb6
GM
498ImageMagick to view images. (You must call `imagemagick-register-types'
499afterwards if you do not use customize to change this.)
2f940384 500
7afbaca4 501*** The new variable `imagemagick-enabled-types' also affects which
60b5f187
GM
502ImageMagick types are treated as images. The function
503`imagemagick-filter-types' returns the list of types that will be
504treated as images.
c505aaeb 505
6bc66c10
GM
506** Minibuffer
507
508*** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the
509next and previous path separator, respectively.
c505aaeb 510
6bc66c10
GM
511*** `minibuffer-electric-default-mode' can shorten "(default ...)" to "[...]"
512in minibuffer prompts. Just set `minibuffer-eldef-shorten-default'
513non-nil before enabling the mode.
514
515** Mode line
516
517*** New option `mode-line-default-help-echo' specifies the help text
518(shown in a tooltip or in the echo area) for any part of the mode line
519that does not have its own specialized help text.
520
521*** You can now click mouse-3 in the coding system indicator to invoke
522`set-buffer-file-coding-system'.
523
524** Server and client
2f940384 525
f938eda9
CY
526*** emacsclient now obeys string values for `initial-buffer-choice',
527if it is told to open a new frame without specifying any file to visit
528or expression to evaluate.
db80bdc8 529
f938eda9 530*** New option `server-auth-key' specifies a shared server key.
f938eda9
CY
531
532** Emacs now generates backtraces on fatal errors.
533On encountering a fatal error, Emacs now outputs a textual description
534of the fatal signal, and a short backtrace on platforms like glibc
5248293f 535that support backtraces.
2e2d2a13 536
6bc66c10
GM
537** `C-x C-q' is now bound to the new minor mode `read-only-mode'.
538This minor mode replaces `toggle-read-only', which is now obsolete.
539
540** Most `y-or-n' prompts now allow you to scroll the selected window.
541Typing `C-v' or `M-v' at a y-or-n prompt scrolls forward or backward
542respectively, without exiting from the prompt.
543
544** In the Package Menu, newly-available packages are listed as "new",
545and sorted above the other "available" packages by default.
546
f938eda9
CY
547** If your Emacs was built from a bzr checkout, the new variable
548`emacs-bzr-version' contains information about the bzr revision used.
de6ff46d 549
6bc66c10 550** New option `create-lockfiles' specifies usage of lockfiles.
f938eda9
CY
551It defaults to t. Changing it to nil inhibits the creation of lock
552files (use this with caution).
dc0f75c8 553
6bc66c10
GM
554** New option `enable-remote-dir-locals', if non-nil, allows directory-local
555variables on remote hosts.
21ffb35a 556
f85f636a
CY
557** The entry for PCL-CVS has been removed from the Tools menu.
558The PCL-CVS commands are still available via the keyboard.
559
6bc66c10
GM
560** Using "unibyte: t" in Lisp source files is obsolete.
561Use "coding: raw-text" instead.
562
e78e7e48
CY
563** In the buffer made by `M-x report-emacs-bug', the `C-c m' binding
564has been changed to `C-c M-i' (`report-emacs-bug-insert-to-mailer').
565The previous binding, introduced in Emacs 24.1, was a mistake, because
566`C-c LETTER' bindings are reserved for user customizations.
567
6bc66c10 568** Internationalization
2f940384 569
f938eda9 570*** New language environment: Persian.
2f940384 571
f938eda9
CY
572*** New input method `vietnamese-vni'.
573
6bc66c10 574** Nextstep (GNUstep / Mac OS X) port
2f940384 575
823b2fb6 576*** Support for fullscreen and the frame parameter fullscreen.
2f940384 577
1a9c6830
GM
578*** A file dialog is used for open/save operations initiated from the
579menu/toolbar.
580
a1ed8b05 581\f
2a1e2476 582* Editing Changes in Emacs 24.3
c25df26e 583
6bc66c10 584** Search and Replace
d39d3c8e 585
f938eda9
CY
586*** Non-regexp Isearch now performs "lax" space matching.
587Each sequence of spaces in the supplied search string may match any
588sequence of one or more whitespace characters, as specified by the
589variable `search-whitespace-regexp'. (This variable is also used by a
823b2fb6 590similar existing feature for regexp Isearch.)
2f940384 591
f938eda9
CY
592*** New Isearch command `M-s SPC' toggles lax space matching.
593This applies to both ordinary and regexp Isearch.
2f940384 594
f938eda9
CY
595*** New option `replace-lax-whitespace'.
596If non-nil, `query-replace' uses flexible whitespace matching too.
597The default is nil.
2f940384 598
b9cb2387
JL
599*** Global `M-s _' starts a symbol (identifier) incremental search,
600and `M-s _' in Isearch toggles symbol search mode.
601`M-s c' in Isearch toggles search case-sensitivity.
602
6bc66c10 603** Navigation commands
48de8b12 604
6bc66c10
GM
605*** New binding `M-g c' for `goto-char'.
606
607*** New binding `M-g TAB' for `move-to-column'.
608
609*** `M-g TAB' (`move-to-column') prompts for a column number if called
610interactively with no prefix arg. Previously, it moved to column 1.
611
612** New option `yank-handled-properties' allows processing of text
613properties on yanked text, in ways that are more general than just
614removing them (as is done by `yank-excluded-properties').
48de8b12 615
48de8b12
CY
616** New option `delete-trailing-lines' specifies whether
617M-x delete-trailing-whitespace should delete trailing lines at the end
618of the buffer. It defaults to t.
619
f938eda9 620** `C-u M-=' now counts lines/words/characters in the entire buffer.
826b3235 621
48de8b12
CY
622** `C-x 8 RET' is now bound to `insert-char', which is now a command.
623`ucs-insert' is now an obsolete alias for `insert-char'.
b2459884 624
48de8b12
CY
625** The `z' key no longer has a binding in most special modes.
626It used to be bound to `kill-this-buffer', but `z' is too easy to
627accidentally type.
f938eda9 628
6bc66c10
GM
629** New command `C-x r M-w' (`copy-rectangle-as-kill').
630It copies the region-rectangle as the last rectangle kill.
f938eda9 631
6bc66c10 632** Registers
f938eda9 633
823b2fb6 634*** `C-x r +' is now overloaded to invoke `append-to-register'.
f938eda9 635
f938eda9 636*** New option `register-separator' specifies the register containing
823b2fb6
GM
637the text to put between collected texts for use with
638M-x append-to-register and M-x prepend-to-register.
f1f4dba0 639
a1ed8b05 640\f
2a1e2476 641* Changes in Specialized Modes and Packages in Emacs 24.3
ae4969c2 642
6bc66c10 643** Common Lisp emulation (CL)
f938eda9 644
89660017 645*** CL's main entry is now (require 'cl-lib).
823b2fb6
GM
646`cl-lib' is like the old `cl' except that it uses the namespace cleanly;
647i.e., all its definitions have the "cl-" prefix (and internal definitions
648use the "cl--" prefix).
7c1898a7 649
823b2fb6
GM
650If `cl' provided a feature under the name `foo', then `cl-lib'
651provides it under the name `cl-foo' instead; with the exceptions of the
652few `cl' definitions that had to use `foo*' to avoid conflicts with
653pre-existing Elisp entities. These have been renamed to `cl-foo'
654rather than `cl-foo*'.
7c1898a7 655
92246540 656The old `cl' is now deprecated and is mainly just a bunch of aliases that
823b2fb6 657provide the old, non-prefixed names. Some exceptions are listed below:
7c1898a7 658
89660017
SM
659*** `cl-flet' is not like `flet' (which is deprecated).
660Instead it obeys the behavior of Common-Lisp's `flet'.
e8693c96
GM
661In particular, in cl-flet function definitions are lexically scoped,
662whereas in flet the scoping is dynamic.
89660017
SM
663
664*** `cl-labels' is slightly different from `labels'.
823b2fb6
GM
665The difference is that it relies on the `lexical-binding' machinery
666(as opposed to the `lexical-let' machinery used previously) to capture
667definitions in closures, so such closures will only work if `lexical-binding'
668is in use.
89660017 669
f94b04fc 670*** `cl-letf' is not exactly like `letf'.
4ddedf94
GM
671The only difference is in details that relate to some deprecated usage
672of `symbol-function' in place forms.
f94b04fc 673
89660017 674*** `progv' was rewritten to use the `let' machinery.
823b2fb6
GM
675A side effect is that variables without corresponding values are bound
676to nil rather than being made unbound.
89660017 677
9512f820
GM
678*** The following methods of extending `setf' are obsolete
679(use features from gv.el instead):
680`define-modify-macro' (use `gv-letplace')
031b2ea7
GM
681`defsetf' (use `gv-define-simple-setter' or `gv-define-setter')
682`define-setf-expander' (use `gv-define-setter' or `gv-define-expander')
2b4da3ff 683`get-setf-method' no longer exists (see "Incompatible Lisp Changes")
f94b04fc 684
6bc66c10 685** Diff mode
f938eda9 686
6bc66c10
GM
687*** Changes are now highlighted using the same color scheme as in
688modern VCSes. Deletions are displayed in red (new faces
689`diff-refine-removed' and `smerge-refined-removed', and new definition
690of `diff-removed'), insertions in green (new faces `diff-refine-added'
691and `smerge-refined-added', and new definition of `diff-added').
f938eda9 692
6bc66c10
GM
693*** The variable `diff-use-changed-face' defines whether to use the
694face `diff-changed', or `diff-removed' and `diff-added' to highlight
695changes in context diffs.
2f940384 696
6bc66c10
GM
697*** The new command `diff-delete-trailing-whitespace' removes trailing
698whitespace introduced by a diff.
f938eda9 699
6bc66c10
GM
700** Ediff now uses the same color scheme as Diff mode.
701
702** Python mode
703
704A new version of python.el, which provides several new features, including:
705per-buffer shells, better indentation, Python 3 support, and improved
706shell-interaction compatible with iPython (and virtually any other
707text based shell).
708
709*** Some user options have been replaced/renamed, including (old -> new):
710**** python-indent -> python-indent-offset
711**** python-guess-indent -> python-indent-guess-indent-offset
712**** python-pdbtrack-do-tracking-p -> python-pdbtrack-activate
713**** python-use-skeletons -> python-skeleton-autoinsert
714
715*** Some user options have been removed, including:
716
717**** `python-indent-string-contents': Strings are never indented.
718
719**** `python-honour-comment-indentation':
d5b1b1aa 720Comments are always considered as indentation markers.
6bc66c10
GM
721
722**** `python-continuation-offset': Indentation is automatically
723calculated in a pep8 compliant way depending on the context.
724
725**** `python-shell-prompt-alist', `python-shell-continuation-prompt-alist':
726Have no direct mapping as the shell interaction is completely different.
727
728**** `python-python-command', `python-jython-command':
729Replaced by `python-shell-interpreter'.
730
731**** `inferior-python-filter-regexp', `python-remove-cwd-from-path',
732`python-pdbtrack-minor-mode-string', `python-source-modes':
733No longer relevant.
734
735*** Some commands have been replaced (old -> new):
736**** python-insert-class -> python-skeleton-class
737**** python-insert-def -> python-skeleton-def
738**** python-insert-for -> python-skeleton-for
739**** python-insert-if -> python-skeleton-if
740**** python-insert-try/except -> python-skeleton-try
741**** python-insert-try/finally -> python-skeleton-try
742**** python-insert-while -> python-skeleton-while
743**** python-find-function -> python-nav-jump-to-defun
744**** python-next-statement -> python-nav-forward-sentence
745**** python-previous-statement -> python-nav-backward-sentence
746**** python-beginning-of-defun-function -> python-nav-beginning-of-defun
747**** python-end-of-defun-function -> python-nav-end-of-defun
748**** python-send-buffer -> python-shell-send-buffer
749**** python-send-defun -> python-shell-send-defun
750**** python-send-region -> python-shell-send-region
751**** python-send-region-and-go -> emulate with python-shell-send-region
752and python-shell-switch-to-shell
753**** python-send-string -> python-shell-send-string
754**** python-switch-to-python -> python-shell-switch-to-shell
755**** python-describe-symbol -> python-eldoc-at-point
e76f0800 756
f938eda9
CY
757** D-Bus
758
f938eda9
CY
759*** New variables `dbus-compiled-version' and `dbus-runtime-version'.
760
f938eda9
CY
761*** The D-Bus object manager interface is implemented.
762
f938eda9
CY
763*** Variables of type :(u)int32 and :(u)int64 accept floating points,
764if their value does not fit into Emacs's integer range.
765
823b2fb6
GM
766*** The function `dbus-call-method' is now non-blocking.
767It can be interrupted by `C-g'. `dbus-call-method-non-blocking' is obsolete.
f938eda9 768
823b2fb6 769*** Signals can also be sent as unicast messages.
f938eda9 770
f938eda9 771*** The argument list of `dbus-register-signal' has been extended,
6bc66c10 772according to the new match rule types of D-Bus.
f938eda9 773
f938eda9
CY
774*** `dbus-init-bus' supports private connections.
775
f938eda9
CY
776*** There is a new function `dbus-setenv'.
777
6bc66c10
GM
778** `desktop-path' no longer includes the "." directory.
779Desktop files are now located in ~/.emacs.d by default.
f938eda9
CY
780
781** Dired
2f940384 782
f938eda9
CY
783*** `dired-do-async-shell-command' executes each file sequentially
784if the command ends in `;' (when operating on multiple files).
785Otherwise, it executes the command on each file in parallel.
2f940384 786
823b2fb6
GM
787*** Typing `M-n' in the minibuffer of `dired-do-chmod', `dired-do-chgrp',
788`dired-do-chown', and `dired-do-touch' yanks the attributes of the
f938eda9 789file at point.
2f940384 790
f938eda9 791*** When the region is active, `m' (`dired-mark'), `u' (`dired-unmark'),
823b2fb6 792`DEL' (`dired-unmark-backward'), and `d' (`dired-flag-file-deletion')
f938eda9 793mark/unmark/flag all files in the active region.
2f940384 794
f938eda9
CY
795*** The minibuffer default for `=' (`dired-diff) has changed.
796It is now the backup file for the file at point, if one exists.
797In Transient Mark mode the default is the file at the active mark.
2f940384 798
f938eda9
CY
799*** `M-=' is no longer bound to `dired-backup-diff' in Dired buffers.
800The global binding for `M-=', `count-words-region' is in effect.
801
02969baf
GM
802** ERC
803
6e5e9b70
GM
804*** New module "notifications", which can send a notification when you
805receive a private message or your nickname is mentioned.
02969baf
GM
806
807*** ERC will look up server/channel names via auth-source and use any
808channel keys found.
f938eda9 809
274f5de6
GM
810*** New option `erc-lurker-hide-list', similar to `erc-hide-list', but
811only applies to messages sent by lurkers.
f925b109 812
6bc66c10 813** reStructuredText mode
f938eda9 814
6bc66c10
GM
815*** Keybindings (see `C-c C-h'), TAB indentation, filling and auto-filling,
816fontification, comment handling, and customization have all been revised
817and improved.
f938eda9 818
6bc66c10 819*** Support for `imenu' and `which-function-mode'.
f938eda9 820
6bc66c10
GM
821*** The reStructuredText syntax is more closely covered.
822Sphinx support has been improved.
f938eda9 823
6bc66c10 824*** `rst-insert-list' inserts new list or continues existing lists.
f938eda9 825
6bc66c10 826*** A negative prefix argument always works for `rst-adjust'.
f938eda9 827
6bc66c10 828*** The window configuration is reset after displaying a TOC.
bc7be45d 829
6bc66c10 830*** The constant `rst-version' describes the rst.el package version.
358c19d9 831
dba3cda3
GM
832** Ruby mode
833
834*** Support for percent literals and recognition of regular expressions
835in method calls without parentheses with more methods, including Cucumber
836steps definitions.
837
838*** Improved syntax highlighting and indentation.
839
840*** New command `ruby-toggle-block', bound to `C-c {'.
841
842*** Some non-standard keybindings/commands have been removed:
843
844**** `ruby-electric-brace'; use `electric-indent-mode' instead.
845
846**** `ruby-mark-defun'; use `mark-defun'.
847
848**** `ruby-beginning-of-defun' and `ruby-end-of-defun' are replaced by
849appropriate settings for the variables `beginning-of-defun-function'
850and `end-of-defun-function'.
851
852**** Non-standard keybindings for `backward-kill-word', `comment-region',
853`reindent-then-newline-and-indent' and `newline' have been removed.
854
6bc66c10 855** Shell Script mode
40d8bcb8 856
6bc66c10 857*** Pairing of parens/quotes uses `electric-pair-mode' instead of skeleton-pair.
40d8bcb8 858
6bc66c10 859*** `sh-electric-here-document-mode' now controls auto-insertion of here-docs.
40d8bcb8 860
6bc66c10 861*** `sh-use-smie' lets you choose a new indentation and navigation code.
40d8bcb8 862
6bc66c10 863** VHDL mode
40d8bcb8 864
6bc66c10 865*** The free software compiler GHDL is supported (and now the default).
40d8bcb8 866
6bc66c10 867*** Support for the VHDL-AMS packages has been added/updated.
40d8bcb8 868
6bc66c10 869*** Updated to the 2002 revision of the VHDL standard.
40d8bcb8 870
6bc66c10 871*** Accepts \r and \f as whitespace.
40d8bcb8 872
6bc66c10 873** Apropos
40d8bcb8 874
6bc66c10
GM
875*** The faces used by Apropos are now directly customizable.
876These faces are named `apropos-symbol', `apropos-keybinding', and so on;
877see the `apropos' Custom group for details.
d13c8be6 878
6bc66c10
GM
879*** The old options whose values specified faces to use have been removed
880(i.e. `apropos-symbol-face', `apropos-keybinding-face', etc.).
d13c8be6 881
6bc66c10 882** Buffer Menu
d13c8be6 883
6bc66c10 884*** This package has been rewritten to use Tabulated List mode.
d13c8be6 885
6bc66c10
GM
886*** Option `Buffer-menu-buffer+size-width' is now obsolete.
887Use `Buffer-menu-name-width' and `Buffer-menu-size-width' instead.
d13c8be6 888
86e100a6
GM
889** Calc
890
891*** Algebraic simplification mode is now the default.
892To restrict to the limited simplifications given by the former
893default simplification mode, use `m I'.
894
6bc66c10 895** Calendar
d13c8be6 896
6bc66c10
GM
897*** You can customize the header text that appears above each calendar month.
898See the variable `calendar-month-header'.
d13c8be6 899
6bc66c10 900*** New LaTeX calendar style, produced by `cal-tex-cursor-week2-summary'.
ee97deee 901
6bc66c10
GM
902*** The calendars produced by cal-html include holidays.
903Customize `cal-html-holidays' to change this.
8b0823d6 904
0058cae2
GM
905** CEDET
906
907*** The major modes from the parser generators "Bovine" and "Wisent"
908are now properly integrated in Emacs. The file suffixes ".by" and ".wy"
909are in `auto-mode-alist', and the corresponding manuals are included.
910
911*** EDE
912
913**** Menu support for the "Configuration" feature. This allows users to
914choose the active configuration (such as debug or install) from the menu.
915
916**** New command `ede-set' to interactively set project-local variables.
917
918**** Support for compiling, debugging, and running in "generic" projects.
919
920**** Autoconf editing support for M4 macros with complex arguments.
921
922**** Compilation support for the "linux" project type.
923
924**** "simple" projects have been removed; use "generic" projects instead.
925
926*** Semantic
927
928**** Support for parsing #include statements inside a namespace in C/C++.
929
930**** Improved support for 'extern "C"' declarations in C/C++.
931
932**** The ability to ignore more common special C/C++ preprocessor symbols,
933such as '__nonnull' and '__asm'. Add '__cplusplus' macro when parsing C++.
934If available, include cdefs.h as an additional source of preprocessor symbols.
935
936**** Improved C/C++ function pointer parsing.
937
938**** In Python, support for converting imports to include file names.
939
940**** Ability to dynamically determine the Python load path.
941
942**** Support for the Python 'WITH' and 'AT' keywords.
943
944**** Improved tooltip completion.
945
946*** SRecode
947
948**** The SRecode manual is now included.
949
950**** Tag generation supports constructor/destructor settings and system
951include differentiation.
952
953**** Addition of 'Framework' support: Frameworks are specified when a
954particular kind of library (such as Android) is needed in a common language
955mode (like Java).
956
957**** Support for nested templates and let variables override based on priority.
958
959**** Support for merging tables from multiple related modes, such as
960default -> c++ -> arduino.
961
6bc66c10 962** Compile has a new option `compilation-always-kill'.
42917e79 963
6bc66c10 964** Customize
35d98877 965
6bc66c10 966*** `custom-reset-button-menu' now defaults to t.
35d98877 967
6bc66c10
GM
968*** Non-option variables are never matched in `customize-apropos' and
969`customize-apropos-options' (i.e., the prefix argument does nothing for
970these commands now).
782fbf2a 971
f938eda9 972** Term
782fbf2a 973
823b2fb6
GM
974*** The variables `term-default-fg-color' and `term-default-bg-color'
975are now deprecated in favor of the customizable face `term'.
fc72b15c 976
02969baf
GM
977*** You can customize how to display ANSI terminal colors and styles
978by customizing the corresponding `term-color-<COLOR>',
979`term-color-underline' and `term-color-bold' faces.
cf20dee0 980
05ecb497 981** Tramp
2f940384 982
02969baf 983*** The syntax has been extended in order to allow ad-hoc proxy definitions.
05ecb497 984
823b2fb6 985*** Remote processes are now also supported on remote MS-Windows hosts.
05ecb497 986
ce7b18ec 987** URL
2f940384 988
ce7b18ec
CY
989*** Structs made by `url-generic-parse-url' have nil `attributes' slot.
990Previously, this slot stored semicolon-separated attribute-value pairs
991appended to some imap URLs, but this is not compatible with RFC 3986.
823b2fb6 992So now the `filename' slot stores the entire path and query components,
ce7b18ec 993and the `attributes' slot is always nil.
2f940384 994
ce7b18ec
CY
995*** New function `url-encode-url' for encoding a URI string.
996The `url-retrieve' function now uses this to encode its URL argument,
997in case that is not properly encoded.
998
6bc66c10
GM
999** notifications.el supports now version 1.2 of the Notifications API.
1000The function `notifications-get-capabilities' returns the supported
1001server properties.
f938eda9 1002
6bc66c10
GM
1003** Flymake uses fringe bitmaps to indicate errors and warnings.
1004See `flymake-fringe-indicator-position', `flymake-error-bitmap' and
1005`flymake-warning-bitmap'.
f938eda9 1006
6bc66c10
GM
1007** The FFAP option `ffap-url-unwrap-remote' can now be a list of strings,
1008specifying URL types that should be converted to remote file names at
1009the FFAP prompt. The default is now '("ftp").
f938eda9 1010
6bc66c10
GM
1011** New Ibuffer `derived-mode' filter, bound to `/ M'.
1012The old binding for `/ M' (filter by used-mode) is now bound to `/ m'.
f938eda9 1013
6bc66c10
GM
1014** New option `mouse-avoidance-banish-position' specifies where the
1015`banish' mouse avoidance setting moves the mouse.
ce7b18ec 1016
6bc66c10
GM
1017** In Perl mode, new option `perl-indent-parens-as-block' causes non-block
1018closing brackets to be aligned with the line of the opening bracket.
f938eda9 1019
6bc66c10 1020** In Proced mode, new command `proced-renice' renices marked processes.
f938eda9 1021
6bc66c10
GM
1022** New option `async-shell-command-buffer' specifies the buffer to use
1023for a new asynchronous `shell-command' when the default output buffer
1024`*Async Shell Command*' is already in use.
f938eda9 1025
6bc66c10
GM
1026** SQL mode has a new option `sql-db2-escape-newlines'.
1027If non-nil, newlines sent to the command interpreter will be escaped
1028by a backslash. The default does not escape the newlines and assumes
1029that the sql statement will be terminated by a semicolon.
f938eda9 1030
6bc66c10
GM
1031** New command `tabulated-list-sort', bound to `S' in Tabulated List mode
1032(and modes that derive from it), sorts the column at point, or the Nth
1033column if a numeric prefix argument is given.
f938eda9 1034
02969baf 1035** `which-func-modes' now defaults to t, so Which Function mode, when
05b621a6 1036enabled, applies to all applicable major modes.
f938eda9 1037
6bc66c10 1038** `winner-mode-hook' now runs when the mode is disabled, as well as when
823b2fb6 1039it is enabled.
f938eda9 1040
6bc66c10
GM
1041** Follow mode no longer works by using advice.
1042The option `follow-intercept-processes' has been removed.
1043
1044** `javascript-generic-mode' is now an obsolete alias for `js-mode'.
f938eda9 1045
d1069532
SM
1046** Hooks renamed to avoid obsolete "-hooks" suffix:
1047*** semantic-lex-reset-hooks -> semantic-lex-reset-functions
1048*** semantic-change-hooks -> semantic-change-functions
1049*** semantic-edits-new-change-hooks -> semantic-edits-new-change-functions
1050*** semantic-edits-delete-change-hooks -> semantic-edits-delete-change-functions
1051*** semantic-edits-reparse-change-hooks -> semantic-edits-reparse-change-functions
1052*** semanticdb-save-database-hooks -> semanticdb-save-database-functions
1053*** c-prepare-bug-report-hooks -> c-prepare-bug-report-hook
1054*** rcirc-sentinel-hooks -> rcirc-sentinel-functions
1055*** rcirc-receive-message-hooks -> rcirc-receive-message-functions
1056*** rcirc-activity-hooks -> rcirc-activity-functions
1057*** rcirc-print-hooks -> rcirc-print-functions
1058*** dbus-event-error-hooks -> dbus-event-error-functions
1059*** eieio-pre-method-execution-hooks -> eieio-pre-method-execution-functions
1060*** checkdoc-style-hooks -> checkdoc-style-functions
1061*** checkdoc-comment-style-hooks -> checkdoc-comment-style-functions
1062*** archive-extract-hooks -> archive-extract-hook
1063*** filesets-cache-fill-content-hooks -> filesets-cache-fill-content-hook
1064*** hfy-post-html-hooks -> hfy-post-html-hook
1065*** nndiary-request-create-group-hooks -> nndiary-request-create-group-functions
1066*** nndiary-request-update-info-hooks -> nndiary-request-update-info-functions
1067*** nndiary-request-accept-article-hooks -> nndiary-request-accept-article-functions
1068*** gnus-subscribe-newsgroup-hooks -> gnus-subscribe-newsgroup-functions
f938eda9 1069
6bc66c10 1070** Obsolete packages
2f940384 1071
797e6e88
SM
1072*** assoc.el
1073In most cases, assoc+member+push+delq work just as well.
1074And in any case it's just a terrible package: ugly semantics, terrible
1075inefficiency, and not namespace-clean.
3c74813a 1076*** bruce.el
b4617547 1077*** cust-print.el
daed4003 1078*** ledit.el
82f289a4 1079*** mailpost.el
d57de7fe 1080*** mouse-sel.el
3c74813a 1081*** patcomp.el
1a9c6830 1082
a1ed8b05 1083\f
2a1e2476 1084* Incompatible Lisp Changes in Emacs 24.3
b4d3bc10 1085
6bc66c10
GM
1086** Docstrings starting with `*' no longer indicate user options.
1087Only variables defined using `defcustom' are considered user options.
1088The function `user-variable-p' is now an obsolete alias for
1089`custom-variable-p'.
090cf9db 1090
6bc66c10
GM
1091** The return values of `defalias', `defun' and `defmacro' have changed,
1092and are now undefined. For backwards compatibility, `defun' and
1093`defmacro' currently return the name of the newly defined
1094function/macro, but this should not be relied upon.
090cf9db 1095
823b2fb6
GM
1096** `random' by default now returns a different random sequence in
1097every Emacs run. Use `(random S)', where S is a string, to set the
0e23ef9d
PE
1098random seed to a value based on S, in order to get a repeatable
1099sequence in later calls.
1100
d32e47af
LM
1101** If the NEWTEXT arg to `replace-match' contains a substring "\?",
1102that substring is inserted literally even if the LITERAL arg is
1103non-nil, instead of causing an error to be signaled.
1104
2cec368c
MR
1105** `select-window' now always makes the window's buffer current.
1106It does so even if the window was selected before.
1107
6bc66c10
GM
1108** The function `x-select-font' can return a font spec, instead of a
1109font name as a string. Whether it returns a font spec or a font name
1110depends on the graphical library.
bbf908bc 1111
eeddc531
CY
1112** `face-spec-set' no longer sets frame-specific attributes when the
1113third argument is a frame (that usage was obsolete since Emacs 22.2).
1114
6bc66c10 1115** `set-buffer-multibyte' now signals an error in narrowed buffers.
a59d531e 1116
ab7f1c43
GM
1117** The CL package's `get-setf-method' function no longer exists.
1118Generalized variables are now part of core Emacs Lisp, and implemented
1119differently to the way cl.el used to do it. It is not possible to
1120define a compatible replacement for `get-setf-method'. See the file
1121gv.el for internal details of the new implementation.
1122
6bc66c10
GM
1123** The arguments of `dbus-register-signal' are no longer just strings,
1124but keywords or keyword-string pairs. The old argument list will
1125still be supported for Emacs 24.x.
72b255c7 1126
6bc66c10 1127** Miscellaneous name changes
823b2fb6
GM
1128Some Lisp symbols have been renamed to correct their spelling,
1129or to be more consistent with standard Emacs terminology.
72b255c7 1130
72b255c7 1131*** Renamed functions
72b255c7
PE
1132**** hangul-input-method-inactivate -> hangul-input-method-deactivate
1133**** inactivate-input-method -> deactivate-input-method
1134**** quail-inactivate -> quail-deactivate
1135**** robin-inactivate -> robin-deactivate
1136**** viper-inactivate-input-method -> viper-deactivate-input-method
1137**** viper-inactivate-input-method-action ->
1138 viper-deactivate-input-method-action
1139**** ucs-input-inactivate -> ucs-input-deactivate
1140
1141*** Renamed hooks
1142The old hooks are still supported for backward compatibility, but they
1143are deprecated and will be removed eventually.
72b255c7
PE
1144**** input-method-inactivate-hook -> input-method-deactivate-hook
1145**** robin-inactivate-hook -> robin-deactivate-hook
1146**** quail-inactivate-hook -> quail-deactivate-hook
1147
6bc66c10 1148*** Renamed variables
72b255c7
PE
1149**** follow-deactive-menu -> follow-inactive-menu
1150**** inactivate-current-input-method-function ->
1151 deactivate-current-input-method-function
1152
02969baf
GM
1153** Some obsolete functions, variables, and faces have been removed:
1154*** `last-input-char', `last-command-char', `unread-command-char'
78f3273a
CY
1155*** `facemenu-unlisted-faces'
1156*** `rmail-decode-mime-charset'
a5f2b6ec
CY
1157*** `iswitchb-read-buffer'
1158*** `sc-version', `sc-submit-bug-report'
1159*** `set-char-table-default'
02969baf 1160*** `string-to-sequence' (use `string-to-list' or `string-to-vector')
a5f2b6ec 1161*** `compile-internal'
02969baf 1162*** `modeline'
59f7af81 1163*** `mode-line-inverse-video'
02969baf 1164*** `follow-mode-off-hook'
a5f2b6ec 1165*** `cvs-commit-buffer-require-final-newline'
63820c5c 1166(use `log-edit-require-final-newline' instead)
a5f2b6ec
CY
1167*** `cvs-changelog-full-paragraphs'
1168(use `log-edit-changelog-full-paragraphs' instead)
1169*** `cvs-diff-ignore-marks', `cvs-diff-buffer-name'
1170*** `vc-ignore-vc-files' (use `vc-handled-backends' instead)
1171*** `vc-master-templates' (use `vc-handled-backends' instead)
1172*** `vc-checkout-carefully'
78f3273a 1173
a1ed8b05 1174\f
93e0bed6 1175* Lisp Changes in Emacs 24.3
ef24141c 1176
2ee3d7f0 1177** CL-style generalized variables are now in core Elisp.
f938eda9 1178`setf' is autoloaded; `push' and `pop' accept generalized variables.
ebdbfb95
GM
1179You can define your own generalized variables using `gv-define-simple-setter',
1180`gv-define-setter', etc.
2ee3d7f0 1181
6bc66c10
GM
1182** Emacs tries to macroexpand interpreted (non-compiled) files during load.
1183This can significantly speed up execution of non-byte-compiled code,
1184but can also bump into previously unnoticed cyclic dependencies.
1185These are generally harmless: they will simply cause the macro calls
1186to be left for later expansion (as before), but will result in a
1187warning ("Eager macro-expansion skipped due to cycle") describing the cycle.
1188You may wish to restructure your code so this does not happen.
1189
1190** New sampling-based Elisp profiler.
1191Try M-x profiler-start, do some work, and then call M-x profiler-report.
1192When finished, use M-x profiler-stop. The sampling rate can be based on
1193CPU time or memory allocations.
1194
500fcedc
SM
1195** `defun' also accepts a (declare DECLS) form, like `defmacro'.
1196The interpretation of the DECLS is determined by `defun-declarations-alist'.
1197
6bc66c10
GM
1198** New macros `setq-local' and `defvar-local'.
1199
1200** Face underlining can now use a wave.
2f940384 1201
6bc66c10 1202** `read-regexp' has a new argument HISTORY; the first argument PROMPT
cd996018 1203of `read-regexp' accepts a string ending with a colon and space, and its
823b2fb6 1204second argument DEFAULTS can be a list of strings accessible via `M-n'
cd996018
CY
1205in the minibuffer ahead of other hard-coded useful regexp-related values.
1206More commands use `read-regexp' now to read their regexp arguments.
1207
f938eda9 1208** Completion
500fcedc 1209
f938eda9
CY
1210*** New function `completion-table-with-quoting' to handle completion
1211in the presence of quoting, such as file completion in shell buffers.
f95e9344 1212
f938eda9
CY
1213*** New function `completion-table-subvert' to use an existing completion
1214table, but with a different prefix.
1215
6bc66c10 1216** Debugger
f95e9344 1217
f938eda9
CY
1218*** New error type and new function `user-error'.
1219These do not trigger the debugger.
f95e9344 1220
57fc0fee
GM
1221*** New option `debugger-bury-or-kill', saying what to do with the
1222debugger buffer when exiting debug.
45b82ad0
SM
1223
1224*** Set `debug-on-message' to enter the debugger when a certain
1225message is displayed in the echo area. This can be useful when trying
1226to work out which code is doing something.
2f940384 1227
45b82ad0
SM
1228*** New var `inhibit-debugger', automatically set to prevent accidental
1229recursive invocations.
fa2bcf43 1230
6bc66c10 1231** Window handling
2f940384 1232
6bc66c10
GM
1233*** New command `fit-frame-to-buffer' adjusts the frame height to
1234fit the contents.
2f940384 1235
6bc66c10
GM
1236*** The command `fit-window-to-buffer' can adjust the frame height
1237if the new option `fit-frame-to-buffer' is non-nil.
8e17c9ba 1238
7fe37cfc
GM
1239*** New macro `with-temp-buffer-window', similar to
1240`with-output-to-temp-buffer'.
fa2bcf43 1241
8e17c9ba
MR
1242*** `temp-buffer-resize-mode' no longer resizes windows that have been
1243reused.
c5e28e39 1244
823b2fb6 1245*** New option `switch-to-buffer-preserve-window-point' to restore a
43bcfda6 1246window's point when switching buffers.
7c82753d 1247
6bc66c10
GM
1248*** New display action alist entries `window-height' and `window-width'
1249specify the size of new windows created by `display-buffer'.
1250
1251*** New display action alist entry `pop-up-frame-parameters', if
1252non-nil, specifies frame parameters to give any newly-created frame.
7c82753d 1253
fa2bcf43
MR
1254*** New display action alist entry `inhibit-switch-frame', if non-nil,
1255tells display action functions to avoid changing which frame is
1256selected.
2f940384 1257
fa2bcf43
MR
1258*** New display action alist entry `previous-window', if non-nil,
1259specifies window to reuse in `display-buffer-in-previous-window'.
2f940384 1260
6bc66c10
GM
1261*** New display action functions `display-buffer-below-selected',
1262and `display-buffer-in-previous-window'.
1263
1264*** The functions `get-lru-window', `get-mru-window' and `get-largest-window'
1265now accept a third argument to avoid choosing the selected window.
1266
1267*** Additional values recognized for option `window-combination-limit'.
5938d519 1268
77f1f99c
CY
1269*** The following variables are obsolete, as they can be replaced by
1270appropriate entries in the `display-buffer-alist' function introduced
1271in Emacs 24.1:
823b2fb6 1272**** `dired-shrink-to-fit'
77f1f99c 1273**** `display-buffer-reuse-frames'
823b2fb6 1274**** `display-buffer-function'
77f1f99c 1275**** `special-display-buffer-names'
823b2fb6 1276**** `special-display-frame-alist'
77f1f99c 1277**** `special-display-function'
823b2fb6 1278**** `special-display-regexps'
77f1f99c 1279
ab0fa4e4 1280** Time
2f940384 1281
ab0fa4e4
PE
1282*** `current-time-string' no longer requires that its argument's year
1283must be in the range 1000..9999. It now works with any year supported
1284by the underlying C implementation.
2f940384 1285
f938eda9
CY
1286*** `current-time' now returns extended-format time stamps
1287(HIGH LOW USEC PSEC), where the new PSEC slot specifies picoseconds.
1288PSEC is typically a multiple of 1000 on current machines. Other
823b2fb6
GM
1289functions that use this format, such as `file-attributes' and
1290`format-time-string', have been changed accordingly. Old-format time
f938eda9 1291stamps are still accepted.
2f940384 1292
823b2fb6 1293*** The format of timers in `timer-list' and `timer-idle-list' is now
f938eda9
CY
1294[TRIGGERED-P HI-SECS LO-SECS USECS REPEAT-DELAY FUNCTION ARGS IDLE-DELAY PSECS].
1295The PSECS slot is new, and uses picosecond resolution. It can be
823b2fb6 1296accessed via the new `timer--psecs' accessor.
2f940384 1297
c4132fd4
PE
1298*** Last-modified time stamps in undo lists now are of the form
1299(t HI-SECS LO-SECS USECS PSECS) instead of (t HI-SECS . LO-SECS).
1300
0058cae2
GM
1301** EIEIO
1302
1303*** Improved security when handling persistent objects:
1304
1305**** `eieio-persistent-read' now features optional arguments for specifying
1306the class to load, as well as a flag stating whether subclasses are allowed;
1307if provided, other classes will be rejected by the reader. For
1308compatibility with existing code, if the class is omitted only a
1309warning is issued.
1310
1311**** New specialized reader for pulling in classes and signaling errors
1312without evaluation of suspicious code.
1313
1314**** All slots that contain objects must have a :type. Slots with lists
1315of objects must use a new type predicate for a list of an object type.
1316
1317*** Support for `find-function' and similar utilities, through the addition
1318of filename support to generated symbols.
1319
f938eda9 1320** Floating point functions now always return special values like NaN,
823b2fb6 1321instead of signaling errors, if given invalid args; e.g., (log -1.0).
f938eda9
CY
1322Previously, they returned NaNs on some platforms but signaled errors
1323on others. The affected functions are acos, asin, tan, exp, expt,
1324log, log10, sqrt, and mod.
1325
6bc66c10 1326** New fringe bitmap `exclamation-mark'.
f938eda9 1327
6bc66c10
GM
1328** Miscellaneous changes to special forms and macros
1329
1330*** `defun' and `defmacro' are now macros rather than special forms.
1331
1332*** `kbd' is now a function rather than a macro.
1333
1334** Miscellaneous new functions
1335
1336*** `set-temporary-overlay-map' sets up a temporary keymap that
1337takes precedence over most other maps for a short while (normally one key).
f938eda9 1338
847a0561 1339*** `autoloadp' tests if its argument is an autoloaded object.
2f940384 1340
847a0561 1341*** `autoload-do-load' performs the autoloading operation.
2f940384 1342
f938eda9 1343*** `buffer-narrowed-p' tests if the buffer is narrowed.
2f940384 1344
f938eda9 1345*** `file-name-base' returns a file name sans directory and extension.
2f940384 1346
f938eda9 1347*** `function-get' fetches a function property, following aliases.
c990426a 1348
f938eda9 1349*** `posnp' tests if an object is a `posn'.
f938eda9 1350
f938eda9 1351*** `system-users' returns the user names on the system.
547d6865 1352
f938eda9 1353*** `system-groups' returns the group names on the system.
f938eda9 1354
f938eda9 1355*** `tty-top-frame' returns the topmost frame of a text terminal.
c990426a 1356
f938eda9 1357** The following functions and variables are obsolete:
847a0561 1358*** `automount-dir-prefix' (use `directory-abbrev-alist')
f938eda9 1359*** `buffer-has-markers-at'
1a9c6830 1360*** `macro-declaration-function' (use `macro-declarations-alist')
847a0561 1361*** `window-system-version' (provides no useful information)
93cacb6d 1362*** `dired-pop-to-buffer' (use `dired-mark-pop-up')
0e2ae83d 1363*** `query-replace-interactive'
49238e7f 1364*** `font-list-limit' (has had no effect since Emacs < 23)
86aa551c 1365
adce950d 1366\f
93e0bed6 1367* Changes in Emacs 24.3 on Non-Free Operating Systems
9078ead6 1368
4e98ad15 1369** Cygwin builds can use the native MS Windows user interface.
823b2fb6 1370Pass `--with-w32' to configure. The default remains the X11 interface.
53a63be6 1371
1a9c6830 1372** Two new functions are available in Cygwin builds:
6e9f7997
DC
1373`cygwin-convert-file-name-from-windows' and
1374`cygwin-convert-file-name-to-windows'. These functions allow Lisp
1375code to access the Cygwin file-name mapping machinery to convert
1376between Cygwin and Windows-native file and directory names.
de6e3a60 1377
4e98ad15 1378** When invoked with the -nw switch to run on the Windows text-mode terminal,
1ab0c851 1379Emacs now supports `mouse-highlight', help-echo (in the echo area), and
4e98ad15
GM
1380`mouse-autoselect-window'.
1381
1a9c6830 1382** On MS Windows Vista and later Emacs now supports symbolic links.
4e98ad15 1383
823b2fb6 1384** On MS Windows, you can pass `--without-libxml2' to configure.bat to omit
4e98ad15
GM
1385support for libxml2, even if its presence is detected.
1386
4e98ad15
GM
1387** On Mac OS X, the Nextstep port requires OS X 10.4 or later.
1388
823b2fb6 1389** On Mac OS X, configure no longer automatically adds the Fink "/sw"
4e98ad15
GM
1390directories to the search path. You must add them yourself if you want them.
1391
2a1e2476
GM
1392\f
1393* Changes in Emacs 24.2
1394
5190da91 1395** This is mainly a bug-fix release.
6dad7178 1396
9078ead6 1397\f
eb199145 1398* Installation Changes in Emacs 24.1
09e18d03 1399
31fd3586
GM
1400** Emacs can be compiled with Gtk+ 3.0 if you pass --with-x-toolkit=gtk3
1401to configure. Note that other libraries used by Emacs, RSVG and GConf,
1402also depend on Gtk+. You can disable them with --without-rsvg and
1403--without-gconf.
338648ad 1404
31fd3586
GM
1405** Emacs can be compiled with GnuTLS support.
1406This happens by default if a suitably recent version of the library is
1407found at build time. To prevent this, use the configure option
1408`--without-gnutls'. See below for GnuTLS features.
338648ad 1409
31fd3586
GM
1410** Emacs can be compiled with SELinux support.
1411This happens by default if a suitably recent version of the library is
1412found at build time. To prevent this, use the configure option
1413`--without-selinux'. See below for SELinux features.
aded53ff 1414
31fd3586
GM
1415** Emacs can be compiled with ImageMagick support.
1416This happens by default if a suitably recent version of the library is
1417found at build time. To prevent this, use the configure option
1418`--without-imagemagick'. See below for ImageMagick features.
c1f10868 1419This feature is not available for the Nextstep or MS ports.
d9170db5 1420
043efd56
GM
1421** Emacs can be compiled with libxml2 support.
1422This happens by default if a suitably recent version of the library is
1423found at build time. To prevent this, use the configure option
1424`--without-xml2'. See below for libxml2 features.
1425
7d301ae6
CY
1426** By default, the installed Info and man pages are compressed.
1427You can disable this by configuring --without-compress-info.
1428
7d301ae6 1429** New configure option --with-wide-int.
81eafe29 1430With it, Emacs integers typically have 62 bits, even on 32-bit machines.
0a768890
PE
1431On 32-bit hosts, this raises the limit on buffer sizes from about 512 MiB
1432to about 2 GiB.
81eafe29 1433
7d301ae6 1434** New configure options: --with-mmdf, --with-mail-unlink, --with-mailhost.
31fd3586
GM
1435These provide no new functionality, they just remove the need to edit
1436lib-src/Makefile by hand in order to use the associated features.
1437
7d301ae6 1438** New configure option --enable-use-lisp-union-type.
31fd3586
GM
1439This is only useful for Emacs developers to debug certain types of bugs.
1440This is not a new feature; only the configure flag is new.
041d709f
CY
1441
1442** The standalone programs digest-doc and sorted-doc are removed.
1443Emacs now uses Lisp commands `doc-file-to-man' and `doc-file-to-info'.
1444
041d709f
CY
1445** The standalone program `fakemail' is removed.
1446If you need it, feedmail.el provides a superset of the functionality.
1447
0bfd685e 1448\f
eb199145 1449* Startup Changes in Emacs 24.1
4a263588 1450
198a7a97 1451** The --unibyte, --multibyte, --no-multibyte, and --no-unibyte
adbf62ff
GM
1452command line arguments, and the EMACS_UNIBYTE environment variable, no
1453longer have any effect. (They were declared obsolete in Emacs 23.)
198a7a97 1454
66b7b0fe 1455** New command line option `--no-site-lisp' removes site-lisp directories
1b5e5b0c
GM
1456from load-path. -Q now implies this. This option does not affect the
1457EMACSLOADPATH environment variable (and hence has no effect for
c8d59ba3 1458Nextstep builds).
66b7b0fe 1459
0bfd685e 1460\f
eb199145 1461* Changes in Emacs 24.1
7841339b 1462
a2a25d24 1463** Completion
fdeb32ec 1464
dfdb4cad
CY
1465*** Many packages now use the `completion-at-point' command,
1466rather than implementing separate completion commands.
1467
de0bde62 1468*** `completion-at-point' now handles tags and semantic completion.
dfdb4cad 1469
a2a25d24
SM
1470*** Completion in a non-minibuffer now tries to detect the end of completion
1471and pops down the *Completions* buffer accordingly.
dfdb4cad
CY
1472
1473*** New option `completion-cycle-threshold' allows completion cycling.
1474
1475*** New option `completion-category-overrides' for overriding the
2c719188 1476default completion style in certain circumstances.
dfdb4cad 1477
a2a25d24 1478*** New completion style `substring'.
dfdb4cad
CY
1479
1480*** Completion of buffer names uses `substring' completion by default.
1481
1482*** The option `widget-complete-field' has been removed.
620c53a6 1483
6870aaef 1484** Mail changes
dfdb4cad 1485
7d301ae6
CY
1486*** The first time you try sending mail, Emacs asks for a mail method.
1487This is implemented by a new default for `send-mail-function', which
1488is `sendmail-query-once'. This offers to use the smtpmail package, or
1489to use the old defaults relying on external mail facilities
1490(`sendmail-send-it' on GNU/Linux and other Unix-like systems, and
1491`mailclient-send-it' on Windows).
dfdb4cad 1492
e78e7e48
CY
1493*** Typing `C-c m' in the buffer made by `M-x report-emacs-bug'
1494transfers the report to your desktop's preferred mail client, if there
1495is one. This uses either the "xdg-email" utility, or Mac OS's "open"
1496command.
dfdb4cad 1497
7d301ae6
CY
1498*** See Changes in Specialized Modes and Packages for SMTPmail changes
1499and Mail mode changes
3f88cd72 1500
041d709f 1501** Emacs server and client changes
dfdb4cad 1502
7d301ae6 1503*** New option `server-port' specifies the port for TCP Emacs servers.
dfdb4cad 1504
041d709f 1505*** New emacsclient argument -q/--quiet suppresses some status messages.
dfdb4cad 1506
7d301ae6
CY
1507*** New emacsclient argument --frame-parameters specifies the frame
1508parameters of any newly-created graphical frame.
dfdb4cad
CY
1509
1510*** If emacsclient shuts down due to Emacs signaling an error,
1511its exit status is 1.
1512
041d709f
CY
1513*** New emacsclient argument --parent-id ID.
1514This opens a client frame in parent X window ID, via XEmbed, similar
1515to the --parent-id argument to Emacs.
1516
d0ce9f8c
MB
1517** Internationalization changes
1518
d0ce9f8c 1519*** Emacs now supports display and editing of bidirectional text.
7d301ae6
CY
1520Right-to-left (RTL) scripts, such as Arabic, Farsi, and Hebrew, are
1521displayed in the correct visual order as expected by users of those
dfdb4cad
CY
1522scripts. The display reordering is a "full bidirectionality" class
1523implementation of the Unicode Bidirectional Algorithm (UBA). Buffers
1524with no RTL text should look exactly the same as before.
f4b6ba46 1525
041d709f 1526**** New buffer-local variable `bidi-display-reordering'.
7d301ae6 1527To disable display reordering in a buffer, change this to nil.
d20e1419 1528
041d709f
CY
1529**** New buffer-local variable `bidi-paragraph-direction'.
1530If nil (the default), Emacs determines the base direction of each
dfdb4cad
CY
1531paragraph from its text, as specified by the UBA. Setting the value
1532to `right-to-left' or `left-to-right' forces a base direction on each
1533paragraph.
f4b6ba46 1534
7d301ae6
CY
1535Paragraphs with right-to-left base direction are displayed starting at
1536the right window edge.
f1816485 1537
dfdb4cad
CY
1538*** Enhanced support for characters with no glyphs in available fonts,
1539or, on text terminals, characters that cannot be encoded by the
1540terminal coding system. The new option `glyphless-char-display-control'
1541specifies how to display them: as a hexadecimal code in a box, a thin
15421-pixel space, an empty box, etc.
d0ce9f8c 1543
9702b7a1
GM
1544*** New input methods for Farsi and Bulgarian
1545(farsi-isiri-9147, farsi-transliterate-banan, bulgarian-alt-phonetic).
041d709f 1546
939db9ac
CY
1547*** `nobreak-char-display' now also highlights Unicode hyphen chars
1548(U+2010 and U+2011).
1549
7d301ae6 1550*** New Hebrew translation of the Emacs Tutorial.
31fd3586
GM
1551Type `C-u C-h t' to choose it in case your language setup doesn't
1552automatically select it.
1553
7d301ae6
CY
1554** An Emacs Lisp package manager is now included.
1555This is a convenient way to download and install additional packages,
1556from a package repository at http://elpa.gnu.org.
dfdb4cad 1557
7d301ae6
CY
1558*** M-x list-packages shows a list of packages, which can be
1559selected for installation.
dfdb4cad 1560
7d301ae6 1561*** New command `describe-package', bound to `C-h P'.
dfdb4cad 1562
7d301ae6
CY
1563*** By default, all installed packages are loaded automatically when
1564Emacs starts up. To disable this, set `package-enable-at-startup' to
1565nil. To specify the packages to load, customize `package-load-list'.
16a91140 1566
dfdb4cad
CY
1567** Custom theme changes
1568
7d301ae6
CY
1569*** New command `M-x customize-themes', which provides a convenient
1570interface for enabling and disabling Custom themes.
dfdb4cad 1571
7d301ae6 1572*** New option `custom-theme-load-path' is the load path for themes.
dfdb4cad
CY
1573Emacs no longer looks for Custom themes in `load-path'. The default
1574value of `custom-theme-load-path' says to look for themes in
1575`custom-theme-directory', followed by a subdirectory of
1576`data-directory' named "themes/", which contains a small selection of
1577built-in Custom themes.
1578
7d301ae6
CY
1579*** New option `custom-safe-themes' records known-safe theme files.
1580If a theme is not in this list, Emacs queries before loading it, and
1581offers to save the theme to `custom-safe-themes' automatically. By
1582default, all themes included in Emacs are treated as safe.
b7d65a5f 1583
7d301ae6 1584** Improved GTK integration
dfdb4cad 1585
7d301ae6 1586*** GTK scroll-bars are now placed on the right by default.
dfdb4cad
CY
1587The function `set-scroll-bar-mode' can change this.
1588
7d301ae6 1589*** GTK tool bars can have just text, just images or images and text.
dfdb4cad
CY
1590Customize `tool-bar-style' to choose the style. On a Gnome desktop,
1591the default is taken from desktop settings.
1592
1593*** GTK tool bars can be placed on any edge of the frame.
7d301ae6
CY
1594The frame-parameter tool-bar-position controls this. It takes the
1595values top, left, right or bottom. The Options => Show/Hide menu has
1596entries for this.
dfdb4cad 1597
7d301ae6
CY
1598*** The default colors for selected text (the `region' face) are taken
1599from the GTK theme when Emacs is built with GTK.
dfdb4cad 1600
7d301ae6
CY
1601*** Emacs uses GTK tooltips by default if built with GTK.
1602You can disable this by changing `x-gtk-use-system-tooltips' to nil.
a5bee597 1603
dfdb4cad
CY
1604** Graphical interface changes
1605
1606*** On graphical displays, the mode-line no longer ends in dashes.
1607Also, the first dash (which does not indicate anything) is just
1608displayed as a space.
1609
1610*** `menu-bar-select-buffer-function' lets you choose another operation
1611instead of `switch-to-buffer' when selecting an item in the Buffers menu.
1612
1613*** Lucid menus and dialogs can display antialiased fonts if Emacs is
1614built with Xft. These fonts can be set via X resources, for example:
1615Emacs.pane.menubar.font: Courier-12
1616
7d301ae6 1617** Exiting changes
dfdb4cad 1618
7d301ae6 1619*** Emacs now calls `kill-emacs' if it receives SIGTERM or SIGHUP,
dfdb4cad
CY
1620or if it receives a SIGINT signal in batch mode.
1621
7d301ae6
CY
1622*** `kill-emacs-hook' is now also run in batch mode.
1623Third-party code which adds to `kill-emacs-hook' should check if they
1624do the right thing in batch mode.
9c524fcb 1625
041d709f 1626** Scrolling changes
dfdb4cad 1627
041d709f 1628*** New scrolling commands `scroll-up-command' and `scroll-down-command'
0a19a6f8 1629(bound to C-v/[next] and M-v/[prior]) do not signal errors at top/bottom
7d301ae6 1630of buffer at first key-press (instead they move to top/bottom of buffer)
550f41cd 1631when `scroll-error-top-bottom' is non-nil.
dfdb4cad
CY
1632
1633*** New option `scroll-error-top-bottom' (see above).
1634
041d709f 1635*** New scrolling commands `scroll-up-line' and `scroll-down-line'
5a97d2da 1636scroll a line instead of full screen.
dfdb4cad 1637
041d709f 1638*** New property `scroll-command' should be set on a command's symbol to
b2957ea8 1639define it as a scroll command affected by `scroll-preserve-screen-position'.
dfdb4cad 1640
041d709f 1641*** If you customize `scroll-conservatively' to a value greater than 100,
d0f69533
EZ
1642Emacs will never recenter point in the window when it scrolls due to
1643cursor motion commands or commands that move point (e.f., `M-g M-g').
1644Previously, you needed to use `most-positive-fixnum' as the value of
1645`scroll-conservatively' to achieve the same effect.
dfdb4cad 1646
7d301ae6 1647*** "Aggressive" scrolling now honors the scroll margins.
d0f69533
EZ
1648If you customize `scroll-up-aggressively' or
1649`scroll-down-aggressively' and move point off the window, Emacs now
1650scrolls the window so as to avoid positioning point inside the scroll
1651margin.
1652
7d301ae6
CY
1653** Basic SELinux support has been added.
1654This requires Emacs to be linked with libselinux at build time.
f1a5d776 1655
dfdb4cad
CY
1656*** Emacs preserves the SELinux file context when backing up.
1657Also, the function `copy-file' has an extra optional argument for
1658preserving SELinux context, and the return value of `backup-buffer'
1659now includes the SELinux context.
f0bf7c8e 1660
dfdb4cad 1661*** New functions `file-selinux-context' and `set-file-selinux-context'
7d301ae6 1662get and set the SELinux context of a file.
44198b6e 1663
7d301ae6 1664** Trash changes
dfdb4cad 1665
7d301ae6
CY
1666*** `delete-by-moving-to-trash' now only affects commands that specify
1667trashing. This avoids inadvertently trashing temporary files.
dfdb4cad 1668
7d301ae6
CY
1669*** Calling `delete-file' or `delete-directory' with a prefix argument
1670now forces true deletion, regardless of `delete-by-moving-to-trash'.
278f6845 1671
041d709f 1672** File- and directory-local variable changes
dfdb4cad 1673
041d709f
CY
1674*** You can stop directory local vars from applying to subdirectories.
1675Add an element (subdirs . nil) to the alist portion of any variables
1676settings to indicate that the section should not apply to
1677subdirectories.
dfdb4cad 1678
041d709f
CY
1679*** Directory local variables can apply to some file-less buffers.
1680Affected modes include dired, vc-dir, and log-edit. For example,
1681adding "(diff-mode . ((mode . whitespace)))" to .dir-locals.el will
1682turn on `whitespace-mode' for *vc-diff* buffers. Modes should call
1683`hack-dir-local-variables-non-file-buffer' to support this.
dfdb4cad 1684
041d709f
CY
1685*** Using "mode: MINOR-MODE" to enable a minor mode is deprecated.
1686Instead, use "eval: (minor-mode 1)".
c136e5cd 1687
7b447e9b
GM
1688*** The variable `inhibit-first-line-modes-regexps' has been renamed
1689to `inhibit-local-variables-regexps'. As the name suggests, it now
dfdb4cad
CY
1690applies to ALL file local variables, not just -*- lines. The
1691associated `inhibit-first-line-modes-suffixes' has been renamed in the
1692corresponding way.
5d907d6c 1693
0a2132ba
CY
1694** Window changes
1695
91b65361
CY
1696*** The `quit-window' command now restores the last buffer displayed
1697in the quitted window.
1698
0a2132ba
CY
1699*** Resizing an Emacs frame now preserves proportional window sizes,
1700modulo restrictions like window minimum sizes and fixed-size windows.
1701
1702*** The behavior of `display-buffer' is now customizable in detail.
dfdb4cad 1703
0a2132ba
CY
1704**** New option `display-buffer-base-action' specifies a list of
1705user-determined display "actions" (functions and optional arguments
1706for choosing the displaying window).
1707
1708This takes precedence over the default display action, which is
1709specified by `display-buffer-fallback-action'.
1710
1711**** New option `display-buffer-alist' maps buffer name regexps to
1712display actions, taking precedence over `display-buffer-base-action'.
1713
a0c2d0ae
MR
1714*** New option `window-combination-limit'.
1715The new option `window-combination-limit' allows to return the space
1716obtained for resizing or creating a window more reliably to the window
1717from which such space was obtained.
0a2132ba 1718
a0c2d0ae
MR
1719*** New option `window-combination-resize'.
1720The new option `window-combination-resize' allows to split a window that
1721otherwise cannot be split because it's too small by stealing space from
1722other windows in the same combination. Subsequent resizing or deletion
1723of the window will resize all windows in the same combination as well.
0a2132ba 1724
91b65361
CY
1725*** New option `frame-auto-hide-function' lets you choose between
1726iconifying or deleting a frame when burying a buffer in a dedicated
1727frame, or quitting a window showing a buffer in a frame of its own.
1728
0a2132ba 1729*** New commands `maximize-window' and `minimize-window'.
53964682 1730These maximize and minimize the size of a window within its frame.
0a2132ba 1731
0a2132ba
CY
1732*** New commands `switch-to-prev-buffer' and `switch-to-next-buffer'.
1733These functions allow to navigate through the live buffers that have
1734been shown in a specific window.
1735
7d301ae6 1736** Minibuffer changes
dfdb4cad 1737
7d301ae6 1738*** The inactive minibuffer has its own major mode `minibuffer-inactive-mode'.
104dc9c6
GM
1739This is handy for minibuffer-only frames, and is also used for the feature
1740where mouse-1 pops up *Messages*"', which can now easily be changed.
041d709f 1741
7d301ae6 1742*** Minibuffers set `truncate-lines' to nil.
f66eca26 1743If you want to change the value to something else, you could use
7d301ae6
CY
1744for example `minibuffer-setup-hook'.
1745
7d301ae6
CY
1746** `auto-mode-case-fold' is now enabled by default.
1747
7d301ae6 1748** `backup-by-copying-when-mismatch' now defaults to t.
f66eca26 1749
dfdb4cad
CY
1750** New basic faces `error', `warning', `success'.
1751These are used to highlight text indicating failure, caution or
1752successful operation.
1753
1754** New option `list-colors-sort' defines the color sort order
1755for `list-colors-display'.
1756
1757** The variable `focus-follows-mouse' now always defaults to nil.
1758
0bfd685e 1759\f
eb199145 1760* Editing Changes in Emacs 24.1
b350bdf2 1761
892777ba 1762** Search changes
dfdb4cad
CY
1763
1764*** C-y in Isearch is now bound to `isearch-yank-kill', instead of
1765`isearch-yank-line'.
1766
1767*** M-y in Isearch is now bound to `isearch-yank-pop', instead of
1768`isearch-yank-kill'.
1769
1770*** M-s C-e in Isearch is now bound to `isearch-yank-line'.
1771
b2b0776e 1772** New commands `count-words-region' and `count-words'.
dfdb4cad 1773
10607bea
CY
1774*** M-= is bound to `count-words-region', not `count-lines-region'.
1775The `count-words-region' command, when called interactively, reports
1776the number of lines, words, and characters in the region. It is a
1777superset of the old `count-lines-region', which is now an obsolete
1778alias for it.
ea4f7750 1779
ec9da840 1780** The command `just-one-space' (M-SPC), if given a negative argument,
1c708c1a
CY
1781also deletes newlines around point.
1782
b9229673 1783** Deletion changes
dfdb4cad 1784
b9229673 1785*** New option `delete-active-region'.
ddb54206 1786If non-nil, [delete] and DEL delete the region if it is active and no
dfdb4cad 1787prefix argument is given. If set to `kill', those commands kill
ddb54206 1788instead.
dfdb4cad 1789
59ee0542 1790*** New command `delete-forward-char', bound to [delete].
42d9cffa
CY
1791This is meant for interactive use, and obeys `delete-active-region'.
1792The command `delete-char' does not obey `delete-active-region'.
dfdb4cad 1793
b9229673
CY
1794*** `delete-backward-char' is now a Lisp function.
1795Apart from obeying `delete-active-region', its behavior is unchanged.
7d301ae6
CY
1796However, the byte compiler now warns if it is called from Lisp; Lisp
1797callers should use delete-char with a negative argument instead.
dfdb4cad 1798
b9229673
CY
1799*** The option `mouse-region-delete-keys' has been deleted.
1800
f9d71b42
CY
1801** Selection changes.
1802
7d301ae6
CY
1803The default handling of clipboard and primary selections has been
1804changed to conform with modern X applications. In short, most
1805commands for killing and yanking text now use the clipboard, while
1806mouse commands use the primary selection.
b1ab31ae
CY
1807
1808In the following, we provide a list of these changes, followed by a
1809list of steps to get the old behavior back if you prefer that.
1810
b1ab31ae
CY
1811*** `select-active-regions' now defaults to t.
1812Merely selecting text (e.g. with drag-mouse-1) no longer puts it in
963578d3 1813the kill ring. The selected text is put in the primary selection, if
b1ab31ae
CY
1814the system possesses a separate primary selection facility (e.g. X).
1815
1816**** `select-active-regions' also accepts a new value, `only'.
1817This means to only set the primary selection for temporarily active
1818regions (usually made by mouse-dragging or shift-selection);
1819"ordinary" active regions, such as those made with C-SPC followed by
1820point motion, do not alter the primary selection.
1821
963578d3
CY
1822**** `mouse-drag-copy-region' now defaults to nil.
1823
b1ab31ae
CY
1824*** mouse-2 is now bound to `mouse-yank-primary'.
1825This pastes from the primary selection, ignoring the kill-ring.
1826Previously, mouse-2 was bound to `mouse-yank-at-click'.
dfdb4cad 1827
b1ab31ae 1828*** `x-select-enable-clipboard' now defaults to t on all platforms.
dfdb4cad 1829
b1ab31ae
CY
1830*** `x-select-enable-primary' now defaults to nil.
1831Thus, commands that kill text or copy it to the kill-ring (such as
1832M-w, C-w, and C-k) also use the clipboard---not the primary selection.
1833
1834**** The "Copy", "Cut", and "Paste" items in the "Edit" menu are now
dfdb4cad 1835exactly equivalent to M-w, C-w, and C-y respectively.
b1ab31ae
CY
1836
1837**** Note that on MS-Windows, `x-select-enable-clipboard' was already
1838non-nil by default, as Windows does not support the primary selection
1839between applications.
1840
1841*** To return to the previous behavior, do the following:
dfdb4cad 1842
104c2fe9 1843**** Change `select-active-regions' to nil.
b1ab31ae
CY
1844**** Change `mouse-drag-copy-region' to t.
1845**** Change `x-select-enable-primary' to t (on X only).
1846**** Change `x-select-enable-clipboard' to nil.
1847**** Bind `mouse-yank-at-click' to mouse-2.
f9d71b42 1848
084e6df3 1849*** Support for X cut buffers has been removed.
dfdb4cad 1850
3fd50d5c
CY
1851*** X clipboard managers are now supported.
1852To inhibit this, change `x-select-enable-clipboard-manager' to nil.
4b80f674 1853
dfdb4cad
CY
1854** New command `C-x r N' (`rectangle-number-lines') numbers the lines
1855in the current rectangle. With a prefix argument, this prompts for a
1856number to count from and for a format string.
99f053cf 1857
7d301ae6 1858** `redisplay-dont-pause' now defaults to t.
6bf7006f
EZ
1859This makes Emacs feel more responsive to editing commands that arrive
1860at high rate, e.g. if you lean on some key, because stopping redisplay
1861in the middle (when this variable is nil) forces more expensive
1862updates later on, and Emacs appears to be unable to keep up.
1863
e70b5064
CY
1864** The behavior of <TAB> for active regions in Text mode has changed.
1865In Text and related modes, typing <TAB> (`indent-for-tab-command')
1866when the region is active causes Emacs to indent all the lines in the
1867region, aligning them with the line previous to the first line in the
1868region (or with the left margin if there is no previous line).
1869
dfdb4cad
CY
1870** When `occur' is called with a prefix argument, matching strings are
1871collected into the `*Occur*' buffer without line numbers. If there
1872are parenthesized subexpressions in the specified regexp, `occur'
1873reads replacement text that may contain \\& and \\N whose convention
1874follows `replace-match'.
1875
9bae34bf 1876\f
eb199145 1877* Changes in Specialized Modes and Packages in Emacs 24.1
efeb796b 1878
041d709f 1879** Archive Mode has basic support for browsing and updating 7z archives.
d76674bb 1880
b7c3692a 1881** BibTeX mode
dfdb4cad 1882
2de69e00 1883*** BibTeX mode now supports biblatex.
7d301ae6
CY
1884Use the variable `bibtex-dialect' to select different BibTeX dialects.
1885`bibtex-entry-field-alist' is now an obsolete alias for
1886`bibtex-BibTeX-entry-alist'.
1887
dfdb4cad
CY
1888*** New command `bibtex-search-entries', bound to C-c C-a.
1889
b7c3692a 1890*** New `bibtex-entry-format' option `sort-fields', disabled by default.
dfdb4cad 1891
022fe7ce
RW
1892*** New variable `bibtex-search-entry-globally'.
1893
7d301ae6 1894** Browse-url
dfdb4cad 1895
7d301ae6 1896*** New option `browse-url-mailto-function' specifies how to handle "mailto:"s.
dfdb4cad 1897
7d301ae6
CY
1898*** The default browser used by the package is now the "xdg-open" program,
1899on platforms that support it. This calls your desktop's preferred browser.
1900
86e100a6
GM
1901** Calc
1902
1903*** Support for musical notes.
1904
1905*** Support for logarithmic units.
1906
1907*** No longer uses the tex prefix for TeX specific unit names when
1908using TeX or LaTeX mode.
1909
1910*** New option to highlight selections using faces.
1911
1912*** `calc-histogram' has the option of using a vector to determine the bins.
1913
1914*** New "O" option prefix.
1915
1916*** Use the "O" prefix to "d r" (`calc-radix') to turn on twos-complement mode.
1917
cf16af42
GM
1918** Calendar, Diary, and Appt
1919
7d301ae6 1920*** Diary entries can contain non-printing "comments".
548d0a63
GM
1921See the variable `diary-comment-start'.
1922
5006e634
GM
1923*** Appointments can specify their individual warning times.
1924See the variable `appt-warning-time-regexp'.
1925
0a2bb1a9
GM
1926*** The function specified by `appt-disp-window-function' may be passed
1927lists of arguments if multiple appointments are due at similar times.
1928If you are using a custom function for this, you should update it.
1929
7454f200
GM
1930*** New function `diary-hebrew-birthday'.
1931
e565dd37
GM
1932*** Elements of `calendar-day-abbrev-array' and `calendar-month-abbrev-array'
1933may no longer be nil, but must all be strings.
1934
7d301ae6
CY
1935*** The obsolete (since Emacs 22.1) method of enabling the appt
1936package by adding `appt-make-list' to `diary-hook' has been removed.
1937Use `appt-activate' instead.
cf16af42 1938
cf16af42
GM
1939*** Some appt variables (obsolete since Emacs 22.1) have been removed:
1940appt-issue-message (use the function appt-activate)
1941appt-visible/appt-msg-window (use the variable appt-display-format)
1942
cf16af42
GM
1943*** Some diary function aliases (obsolete since Emacs 22.1) have been removed:
1944view-diary-entries, list-diary-entries, show-all-diary-entries
1945
551b046f 1946** CC Mode
dfdb4cad 1947
551b046f 1948*** New feature to "guess" the style in an existing buffer.
7d301ae6 1949The main entry point is M-x c-guess.
041d709f 1950
551b046f
AM
1951*** Java Mode now supports Java 5.0 (Tiger) and 6 (Mustang).
1952
dfdb4cad 1953*** `c-beginning-of-defun' and `c-end-of-defun' now respect nested scopes.
551b046f
AM
1954Thus C-M-a will, by default, go to the beginning of the immediate function,
1955not the top level.
1956
dfdb4cad 1957*** "Macros with semicolons" can be registered for correct indentation.
551b046f
AM
1958Where such a macro ends a line (no semicolon) the next statement is no longer
1959parsed as a statement continuation.
1960
dfdb4cad 1961** Comint and modes derived from it use the standard completion code.
041d709f
CY
1962
1963** Compilation mode
dfdb4cad 1964
7d301ae6 1965*** Compilation mode can be used without Font Lock mode.
041d709f
CY
1966`compilation-parse-errors-function' is now obsolete.
1967
dfdb4cad 1968*** New variable `compilation-filter-start', which is bound while
7d301ae6
CY
1969`compilation-filter-hook' runs. It records the start position of the
1970text inserted by `compilation-filter'.
041d709f 1971
47a6a35f
GM
1972*** `compilation-error-screen-columns' and `compilation-first-column'
1973are obeyed in the editing buffer. So programming language modes can
7d301ae6
CY
1974set them, whereas previously only the value in the *Compilation*
1975buffer was used.
1dce7193 1976
52834b6b
CY
1977** Customize
1978
1979*** Customize buffers now contain a search field.
1980The search is performed using `customize-apropos'.
7d301ae6 1981To turn off the search field, set `custom-search-field' to nil.
52834b6b 1982
8d5dd370 1983*** Options in customize group buffers start out hidden if not customized.
52834b6b
CY
1984Use the arrow to the left of the option name to toggle visibility.
1985
1986*** custom-buffer-sort-alphabetically now defaults to t.
1987
1988*** The color widget now has a "Choose" button, which allows you to
7d301ae6 1989choose a color via `list-colors-display'.
52834b6b 1990
041d709f
CY
1991** D-Bus
1992
5da3be7f
GM
1993*** It is now possible to access buses other than the default system
1994or session bus.
041d709f 1995
7d301ae6 1996*** The `dbus-register-method' and `dbus-register-property' functions
5da3be7f 1997optionally do not register names.
041d709f 1998
7d301ae6 1999*** The new function `dbus-register-service' registers a known service
dfdb4cad 2000name on a D-Bus without also registering a property or a method.
041d709f 2001
f5d6548a 2002** Dired-x
425a25f1 2003
7d301ae6
CY
2004*** C-x C-j (`dired-jump') and C-x 4 C-j (`dired-jump-other-window'),
2005if called with a prefix argument, read a file name from the minibuffer
2006instead of using the current buffer.
f5d6548a 2007
7d301ae6 2008*** The "dired local variables" feature of Dired-x is obsolete.
817b48a7 2009The standard directory local variables feature replaces it.
8117868f 2010
041d709f 2011** ERC changes
7492acc9 2012
c4077254
GM
2013*** New options `erc-autojoin-timing' and `erc-autojoin-delay',
2014controlling attempts to autojoin a channel.
041d709f
CY
2015
2016*** New variable `erc-coding-system-precedence': If we use `undecided'
2017as the server coding system, this variable will then be consulted.
2018The default is to decode strings that can be decoded as utf-8 as
2019utf-8, and do the normal `undecided' decoding for the rest.
7492acc9 2020
041d709f 2021** Eshell changes
7492acc9 2022
05f77e38
GM
2023*** The default value of `eshell-directory-name' has changed
2024to be an "eshell" directory in `user-emacs-directory'.
2025The old "~/.eshell/" directory is still used if it exists, though.
041d709f
CY
2026
2027** gdb-mi
dfdb4cad
CY
2028
2029*** The M-x gdb command now uses the GDB Machine Interface protocol.
05f77e38
GM
2030It now supports multithread non-stop debugging and simultaneous
2031debugging of several threads.
7492acc9 2032
18af70d0
CY
2033** Image mode
2034
05f77e38
GM
2035*** RET (`image-toggle-animation') toggles animation, if applicable.
2036Animation plays once, unless the option `image-animate-loop' is non-nil.
18af70d0 2037
041d709f 2038** Info
723ee192 2039
7d301ae6 2040*** New command M-x info-display-manual displays a named Info manual.
2ebc3b94
GM
2041If that manual is already visited in some Info buffer, it displays
2042that buffer. (This is handy if you have many manuals in many *info*
2043buffers, and don't remember the name of the buffer visiting the manual
2044you want to consult.) Otherwise, it loads and displays the manual.
691cf4a0 2045
24ea72d3
EZ
2046*** `e' is now bound to `end-of-buffer' rather than to `Info-edit'.
2047This is for compatibility with the stand-alone Info reader program,
2048and also because `Info-edit' is a rarely used command that is disabled
2049by default.
2050
7d301ae6 2051** Mail mode changes (not Message mode)
dfdb4cad 2052
7d301ae6 2053*** New command M-x mail-add-attachment for adding MIME attachments
7d301ae6 2054
dfdb4cad
CY
2055*** The command M-x mail-attach-file was renamed to M-x mail-insert-file.
2056(Its name is misleading, since it has nothing to do with MIME
2057attachments.) The old name is now an obsolete alias to the new name.
2058
f2c3a9eb 2059** MH-E has been updated to MH-E version 8.3.1.
041d709f 2060See MH-E-NEWS for details.
37221432 2061
041d709f 2062** Modula-2 mode provides auto-indentation.
37221432 2063
041d709f 2064** mpc.el: Can use pseudo tags of the form tag1|tag2 as a union of two tags.
3c3d4f5b 2065
5d1ac394 2066** nXML mode no longer binds C-RET to `nxml-complete'.
dfdb4cad
CY
2067Completion is now performed via `completion-at-point', bound to C-M-i
2068or M-TAB. If `nxml-bind-meta-tab-to-complete-flag' is non-nil (the
2069default), this performs tag completion.
5d1ac394 2070
f2c3a9eb
CY
2071** Org mode has been updated to version 7.8.09.
2072See ORG-NEWS for details.
2073
041d709f 2074** Prolog mode has been completely revamped, with lots of additional
7d301ae6
CY
2075functionality such as more intelligent indentation, electricity,
2076support for more variants, including Mercury, and a lot more.
041d709f
CY
2077
2078** Rmail
2079
2080*** The command `rmail-epa-decrypt' decrypts OpenPGP data
2081in the Rmail incoming message.
2082
50419064
GM
2083*** The variable `rmail-message-filter' no longer has any effect.
2084This change was made in Emacs 23.1 but was not advertised at the time.
2085Try using `rmail-show-message-hook' instead.
2086
717a1362 2087** Shell mode
dfdb4cad
CY
2088
2089*** M-x shell prompts for the shell path name if the default directory
2090is a remote file name and neither the environment variable $ESHELL nor
2091the variable `explicit-shell-file-name' is set.
2092
2093*** TAB is now bound to the standard `completion-at-point' command,
2094which now implements the pcomplete rules for shell command completion.
717a1362 2095
7d301ae6
CY
2096** SMTPmail
2097
dfdb4cad 2098*** SMTPmail now uses encrypted connections (via STARTTLS) by default
7d301ae6
CY
2099if the mail server supports them. This uses either built-in GnuTLS
2100support, or the starttls.el library. Customize `smtpmail-stream-type'
2101to change this.
2102
7d301ae6
CY
2103*** The variable `smtpmail-auth-credentials' has been removed.
2104By default, the information is now stored in the file ~/.authinfo.
dfdb4cad
CY
2105This was the default value of smtpmail-auth-credentials. If you had
2106customized smtpmail-auth-credentials to a list of user names and
2107passwords, those settings are not used. During your first connection
2108to the smtp server, Emacs will prompt for the user name and password,
2109and offer to save them to ~/.authinfo. Or you can manually copy the
2110credentials to ~/.authinfo. For example, if you had
7d301ae6
CY
2111
2112 (setq smtpmail-auth-credentials
2113 '(("mail.example.org" 25 "jim" "s!cret")))
2114
2115then the equivalent line in ~/.authinfo would be
2116
2117 machine mail.example.org port 25 login jim password s!cret
2118
2119See the auth-source manual for more information, e.g. on encrypting
2120the credentials file.
2121
7d301ae6 2122*** The variable `smtpmail-starttls-credentials' has been removed.
dfdb4cad 2123If you had that set, you need to put
7d301ae6
CY
2124
2125 machine smtp.whatever.foo port 25 key "~/.my_smtp_tls.key" cert "~/.my_smtp_tls.cert"
2126
2127in your ~/.authinfo file instead.
2128
8ce192e3
LI
2129*** SMTPmail defaults to using the address in the From: header as the
2130SMTP MAIL FROM envelope. To override this, set `mail-envelope-from'
2131to the address you wish to use instead.
2132
34e8a2da 2133** SQL mode
041d709f 2134
34e8a2da
GM
2135*** New options `sql-port', `sql-connection-alist', `sql-send-terminator',
2136and `sql-oracle-scan-on'.
041d709f 2137
dfdb4cad 2138*** New options controlling prompting for login parameters.
34e8a2da
GM
2139Each supported product has a custom variable `sql-*-login-params',
2140which is a list of the parameters to be prompted for before a
2141connection is established.
041d709f
CY
2142
2143*** The command `sql-product-interactive' now takes a prefix argument,
34e8a2da 2144which causes it to prompt for an SQL product.
041d709f 2145
34e8a2da 2146*** Product-specific SQL interactive commands now take prefix arguments.
041d709f
CY
2147These commands (`sql-sqlite', `sql-postgres', `sql-mysql', etc.),
2148given a prefix argument, prompt for a name for the SQL interactive
2149buffer. This reduces the need for calling `sql-rename-buffer'.
2150
2151*** SQL interactive modes suppress command continuation prompts, and
2152replace tabs with spaces. The first change impacts multiple line SQL
2153statements entered with C-j between each line, statements yanked into
2154the buffer and statements sent with `sql-send-*' functions. The
34e8a2da
GM
2155second prevents the MySQL and Postgres interpreters from listing
2156object name completions when sent text via `sql-send-*' functions.
041d709f
CY
2157
2158*** New command `sql-connect' starts a predefined SQLi session,
2159using the login parameters from `sql-connection-alist'.
2160
2161*** New "Save Connection" menu item in SQLi buffers.
2162This gathers the login params specified for the SQLi session, if it
2163was not started by a connection, and saves them as a new connection.
2164
34e8a2da
GM
2165*** New commands for listing database objects and details:
2166sql-list-all and sql-list-table.
041d709f
CY
2167
2168*** An API for manipulating SQL product definitions has been added.
2169
2170** TeX modes
2171
2172*** latex-electric-env-pair-mode keeps \begin..\end matched on the fly.
412b9ee5 2173
459bba37 2174** Tramp
dfdb4cad 2175
7d301ae6 2176*** New inline access method "ksu" (kerberized su).
dfdb4cad 2177
459bba37 2178*** The following access methods are discontinued: "ssh1_old",
ea843702 2179"ssh2_old", "scp1_old", "scp2_old", "imap", "imaps" and "fish".
dfdb4cad 2180
b011fbfe
GM
2181*** The user option `remote-file-name-inhibit-cache' controls whether
2182remote file attributes are cached for better performance.
dfdb4cad 2183
58f74fe4
MA
2184*** The option `ange-ftp-binary-file-name-regexp' has changed its
2185default value to "".
dfdb4cad 2186
7d301ae6
CY
2187*** Handlers for `file-selinux-context' and `set-file-selinux-context'
2188for remote machines which support SELinux.
58f74fe4 2189
dfdb4cad 2190** New function `url-queue-retrieve', which behaves like url-retrieve,
a48ec60c
GM
2191but with limits (`url-queue-parallel-processes', `url-queue-timeout') on
2192the degree of parallelism.
177549d0 2193
0c32ce32
CY
2194** VC and related modes
2195
2196*** Support for pulling on distributed version control systems.
7d301ae6
CY
2197The command C-x v + (`vc-pull') runs a "pull" operation, if it is
2198supported (currently with Bzr, Git, and Mercurial), to update the
2199current branch and working tree. A prefix argument means to prompt
2200the user for specifics, e.g. a pull location.
0c32ce32 2201
dab3703d 2202*** `vc-update' is now an alias for `vc-pull'.
0c32ce32
CY
2203
2204*** Support for merging on distributed version control systems.
7d301ae6
CY
2205The command C-x v m (`vc-merge') now runs a "merge" operation, if it
2206is supported (currently with Bzr, Git, and Mercurial), to merge
2207changes from another branch into the current one. It prompts for
2208specifics, e.g. a merge source.
0c32ce32 2209
2afef60a 2210*** New option `vc-revert-show-diff' controls whether `vc-revert'
bbe43420 2211shows a diff while querying the user. It defaults to t.
2afef60a 2212
d4eb88c7
CY
2213*** Log entries in some Log View buffers can be toggled to display a
2214longer description by typing RET (log-view-toggle-entry-display).
dab3703d
GM
2215This is currently supported for Bzr, Git, and Mercurial (to support
2216another backend, define a `log-view-expanded-log-entry-function').
7d301ae6 2217In the Log View buffers made by C-x v L (`vc-print-root-log'), you can
d4eb88c7
CY
2218use this to display the full log entry for the revision at point.
2219
1c6c854e
CS
2220*** New command `vc-ediff' allows visual comparison of two revisions
2221of a file similar to `vc-diff', but using ediff backend.
2222
86c60681
CY
2223*** The option `vc-initial-comment' was removed in Emacs 23.2, but
2224this was not advertised at the time.
2225
86c60681
CY
2226*** `vc-toggle-read-only' is an obsolete alias for `toggle-read-only'.
2227Since Emacs 23, it has done the same thing as `toggle-read-only', but
80c6d77f
GM
2228this was not advertised at the time.
2229
041d709f
CY
2230** Obsolete modes
2231
23d70505
GM
2232*** abbrevlist.el
2233
f8ca9162 2234*** erc-hecomplete.el (use erc-pcomplete.el instead)
23d70505
GM
2235
2236*** partial-completion-mode (complete.el) is obsolete.
041d709f
CY
2237You can get a comparable behavior with:
2238(setq completion-styles '(partial-completion initials))
2239(setq completion-pcm-complete-word-inserts-delimiters t)
2240
23d70505
GM
2241*** pc-mode.el is obsolete (CUA mode is much more comprehensive).
2242
2c719188 2243*** pgg is obsolete (use EasyPG instead).
041d709f
CY
2244
2245*** sregex.el is obsolete, since rx.el is a strict superset.
2246
23d70505
GM
2247*** s-region.el and pc-select.el are obsolete.
2248They are superseded by shift-select-mode, enabled by default since 23.1.
2249
2c719188 2250*** vc-mcvs.el is obsolete (for lack of a maintainer).
ca5eed61 2251
0fe719e6
GM
2252** Miscellaneous
2253
05f77e38 2254*** The Landmark game is now invoked with `landmark', not `lm'.
c6ad2a4e 2255Its functions and variables have been similarly renamed.
05f77e38 2256
dfdb4cad 2257*** In `ido-file-completion-map', C-v is no longer bound to `ido-toggle-vc'.
05f77e38
GM
2258(This interfered with cua-mode.)
2259
9f678528
GM
2260*** f90.el has some support for Fortran 2008 syntax.
2261
0fe719e6
GM
2262*** `copyright-fix-years' can optionally convert consecutive years to ranges.
2263
5b3e6db8
GM
2264*** New command `nato-region' converts text to NATO phonetic alphabet.
2265
eb199145
GM
2266\f
2267* New Modes and Packages in Emacs 24.1
d445b3f8 2268
60e56523 2269** Occur Edit mode applies edits made in *Occur* buffers to the
8c0f49f0 2270original buffers. It is bound to "e" in Occur mode.
60e56523 2271
a075a2c5
GM
2272** New global minor mode electric-pair-mode.
2273When enabled, typing an open parenthesis automatically inserts the
2274matching closing one.
2275
2276** New global minor mode electric-indent-mode.
2277When enabled, typing certain characters triggers reindentation.
cd3308f3
GM
2278Major modes wishing to use this can set electric-indent-chars or
2279electric-indent-functions.
a075a2c5
GM
2280
2281** New global minor mode electric-layout-mode.
2282When enabled, typing certain characters automatically inserts newlines.
cd3308f3 2283Major modes wishing to use this can set electric-layout-rules.
3b843809 2284
a83ec3c9
CY
2285** tabulated-list.el provides a generic major mode for tabulated data,
2286from which other modes can be derived.
2287
d02c9bcd
SM
2288** pcase.el provides the ML-style pattern matching macro `pcase'.
2289
7725ebb7
MA
2290** secrets.el is an implementation of the Secret Service API, an
2291interface to password managers like GNOME Keyring or KDE Wallet. The
065f2743
MA
2292Secret Service API requires D-Bus for communication. The command
2293`secrets-show-secrets' offers a buffer with a visualization of the
2294secrets.
7725ebb7 2295
f9e78150
MA
2296** notifications.el provides an implementation of the Desktop
2297Notifications API. It requires D-Bus for communication.
2298
12fe5bcc
MA
2299** soap-client.el supports access to SOAP web services from Emacs.
2300soap-inspect.el is an interactive inspector for SOAP WSDL structures.
2301
ff1796f3 2302** New generic mode, xmodmap-generic-mode, for xmodmap files.
ad7d6ecb 2303
53bbe3ad 2304** New emacs-lock.el package.
7d301ae6
CY
2305The previous version has been moved to obsolete/old-emacs-lock.el.
2306Now, there is a proper minor mode `emacs-lock-mode'. Protection
2307against exiting Emacs and killing the buffer can be set separately.
2308The mechanism for automatically turning off protection for buffers
2309with dead inferior processes has been generalized.
53bbe3ad 2310
eb199145
GM
2311\f
2312* Incompatible Lisp Changes in Emacs 24.1
6dfcbe31 2313
7d301ae6
CY
2314** Passing a nil argument to a minor mode function call now ENABLES
2315the minor mode unconditionally. This is so that you can write e.g.
2316
dfdb4cad 2317 (add-hook 'text-mode-hook 'foo-mode)
7d301ae6 2318
dfdb4cad
CY
2319to enable foo-mode in Text mode buffers, removing the need for
2320`turn-on-foo-mode' style functions. This affects all mode commands
2321defined by `define-minor-mode'. If called interactively, the mode
2322command still toggles the minor mode.
7d301ae6 2323
d268b4fe
CY
2324** The return value of `backup-buffer' has changed.
2325It is now a list of three elements, where the second element is a list
2326describing the original file's SELinux context. If Emacs or the
f003f294 2327system lacks SELinux support, the context list is (nil nil nil nil).
7d301ae6 2328See "Basic SELinux support" above, under "Changes in Emacs 24.1".
d268b4fe 2329
dfdb4cad
CY
2330** `char-direction-table' and the `char-direction' function were deleted.
2331They were buggy and inferior to the new support of bidirectional
2332editing introduced in Emacs 24. If you need the bidirectional
2333properties of a character, use `get-char-code-property' with the last
2334argument `bidi-class'.
fa6996bc 2335
470d996d
TV
2336** `copy-directory' now copies the source directory as a subdirectory
2337of the target directory, if the latter is an existing directory. The
2338new optional arg COPY-CONTENTS, if non-nil, makes the function copy
2339the contents directly into a pre-existing target directory.
2340
9173a8fb
CY
2341** For mouse click input events in the text area, the Y pixel
2342coordinate in the POSITION list now counts from the top of the text
2343area, excluding any header line. Previously, it counted from the top
2344of the header line.
2345
7d301ae6
CY
2346** Support for "old-style" backquotes, obsolete for 10+ years, has
2347been further reduced. Now a backquote not followed by a space is
2348always treated as a "new-style" backquote. Please remove all
2349"old-style" backquotes from your code. If your code uses backquotes
2350as documented in the Elisp manual, and compiles without warning, then
2351you have nothing to do in this regard. Code not following the
2352appropriate conventions may fail to compile.
50ab02c5
CY
2353
2354The most common cause of trouble seems to be an old-style backquote
2355followed by a newline. Another cause of trouble is vector notation
2356for key sequence notation: instead of [(control ,)] and [(control ')],
2357you should write [(control ?,)] and [(control ?')], which will work in
7d301ae6 2358older Emacsen too.
288cf4e9 2359
520f2425
GM
2360** The macro `eval-at-startup' was removed in Emacs 23.2, but this
2361was not advertised at the time. The function `custom-initialize-delay'
2362replaced all known uses.
2363
7d301ae6
CY
2364** `view-buffer' now treats special mode-class in the same way that
2365`view-file' has since Emacs 22 (i.e. it won't enable View mode if the
2366major mode is special).
fd5c9dfa 2367
7d301ae6 2368** Menu and tool bar changes
6431f2e6 2369
7d301ae6 2370*** During startup, Emacs no longer adds entries for `menu-bar-lines'
0a19a6f8
JB
2371and `tool-bar-lines' to `default-frame-alist' and `initial-frame-alist'.
2372With these alist entries omitted, `make-frame' checks the value of the
2373variable `menu-bar-mode'/`tool-bar-mode' to determine whether to create
2374a menu-bar or tool-bar, respectively. If the alist entries are added,
2375they override the value of `menu-bar-mode'/`tool-bar-mode'.
6431f2e6 2376
7d301ae6
CY
2377*** The menu bar bindings's caches are not used any more.
2378Use (where-is-internal <def> nil t) instead.
2379
fe0aa820 2380** Regions created by mouse dragging are now normal active regions,
dfdb4cad 2381similar to those created by shift-selection (see Selection changes
7d301ae6
CY
2382above). In previous Emacs versions, these regions were delineated by
2383`mouse-drag-overlay'; that variable has been removed.
d6d8ee7a 2384
7d301ae6
CY
2385** The fourth argument of `filter-buffer-substring' has been removed.
2386If you want to remove text properties from the final result, simply
2387pass the result through substring-no-properties.
34c99998 2388
4583e796
GM
2389** cl.el no longer provides `cl-19'.
2390
7d301ae6
CY
2391** The following obsolete functions and aliases have been removed
2392(the appropriate new function is given in parentheses; "not needed"
2393means you can just remove all calls to the function in question):
2394
2395*** `comint-kill-output' (`comint-delete-output')
2396*** `decompose-composite-char' (`char-to-string')
2397*** `outline-visible' (`outline-invisible-p')
2398*** `internal-find-face' (`facep')
2399*** `internal-get-face' (`facep and check-face')
2400*** `frame-update-faces' (not needed)
2401*** `frame-update-face-colors' (`frame-set-background-mode')
2402*** `x-frob-font-weight' and `x-frob-font-slant' (`make-face-*' functions)
2c719188 2403*** `x-make-font-bold and x-make-font-demibold (`make-face-bold')
7d301ae6
CY
2404*** `x-make-font-italic' and `x-make-font-oblique' (`make-face-italic')
2405*** `x-make-font-bold-italic' (`make-face-bold-italic')
2406*** `x-make-font-unbold' (`make-face-unbold')
2407*** `x-make-font-unitalic' (`make-face-unitalic')
2408*** `mldrag-drag-mode-line' (`mouse-drag-mode-line')
2409*** `mldrag-drag-vertical-line' (`mouse-drag-vertical-line')
2410*** `iswitchb-default-keybindings' (`iswitchb-mode')
2411*** `char-bytes' (== 1)
2412*** `isearch-return-char' (`isearch-printing-char')
2413*** `make-local-hook' (not needed)
2414*** `set-screen-height' (`set-frame-height')
2415*** `set-screen-width' (`set-frame-width')
2416
7d301ae6
CY
2417** The following obsolete variables and varaliases have been removed
2418(the appropriate new variable is given in parentheses):
2419
2420*** `checkdoc-minor-keymap' (`checkdoc-minor-mode-map')
2421*** `vc-header-alist' (`vc-BACKEND-header')
2422*** `directory-sep-char' (== ?/)
2423*** `font-lock-defaults-alist' (`font-lock-defaults')
2424*** `e' (`float-e').
3226d6ca 2425
041d709f 2426** The following obsolete files were removed:
7b0e3048
GM
2427sc.el, x-menu.el, rnews.el, rnewspost.el
2428
7d301ae6
CY
2429** The format of the finder-inf.el file has changed, since the Finder
2430mechanism is now based on the package system. The variable
2431`finder-package-info' is replaced by `package--builtins' and
2432`finder-keywords-hash'.
33658d4e 2433
c2c79260
DE
2434** When generating autoloads, `update-directory-autoloads' no longer
2435assumes every inspected file is in your `load-path'. It instead
2436generates relative names according to the current `load-path'.
2437
eb199145 2438\f
93e0bed6 2439* Lisp Changes in Emacs 24.1
9097e8af 2440
041d709f 2441** Code can now use lexical scoping by default instead of dynamic scoping.
dfdb4cad 2442The `lexical-binding' variable enables lexical scoping for local
48da7392 2443variables. It is typically set via a file-local variable in the first
dfdb4cad
CY
2444line of the file, in which case it applies to all the code in that
2445file.
2446
041d709f
CY
2447*** `eval' takes a new optional argument `lexical' to choose the new lexical
2448binding instead of the old dynamic binding mode.
dfdb4cad 2449
041d709f
CY
2450*** Lexically scoped interpreted functions are represented with a new form
2451of function value which looks like (closure ENV ARGS &rest BODY).
2452
2453*** New macro `letrec' to define recursive local functions.
dfdb4cad
CY
2454
2455*** `defvar' and `defconst' now mark the variable as special (dynamic).
2456So do `defcustom' and other forms that call `defvar' as a subroutine.
2457
041d709f
CY
2458*** New function `special-variable-p' to check whether a variable is
2459declared as dynamically bound.
2460
88ed9e87
SM
2461*** The form ((lambda ...) ...) is deprecated.
2462
041d709f
CY
2463** An Emacs Lisp testing tool is now included.
2464Emacs Lisp developers can use this tool to write automated tests for
2465their code. See the ERT info manual for details.
2466
2467** Changes for bidirectional display and editing
f1816485 2468
041d709f 2469*** New function `current-bidi-paragraph-direction'.
7d301ae6 2470This returns the base direction of the paragraph at point.
041d709f 2471
041d709f 2472*** New function `bidi-string-mark-left-to-right'.
dfdb4cad
CY
2473Given a string containing characters from right-to-left scripts, this
2474function returns another string which can be safely inserted into a
2475buffer, such that any following text will be always displayed to the
7d301ae6
CY
2476right of that string. (This works by appending an invisible Unicode
2477"LEFT-TO-RIGHT MARK" character if the argument string might need it.)
041d709f 2478
7d301ae6 2479This is useful when the buffer has overall left-to-right paragraph
dfdb4cad
CY
2480direction and you need to insert a string whose contents are not known
2481in advance, without disrupting the layout of the line.
041d709f 2482
bee0fcef 2483** Window changes
dfdb4cad 2484
c4682d18
MR
2485*** Window tree functions are accessible in Elisp.
2486Functions are provided to return the parent, siblings or child windows
2487of any window including internal windows (windows not associated with a
2488buffer) in the window tree.
dfdb4cad 2489
24300f5f
CY
2490**** New function `window-valid-p' gives non-nil for live and internal
2491windows.
dfdb4cad 2492
24300f5f 2493**** Window manipulation can deal with internal windows.
c4682d18
MR
2494Many window handling functions like `split-window', `delete-window', or
2495`delete-other-windows' as well as the window resizing functions can now
2496act on any window including internal ones.
dfdb4cad 2497
c4682d18
MR
2498*** window-total-height/-width vs window-body-height/-width.
2499The function `window-height' has been renamed to `window-total-height'
2500and `window-width' has been renamed to `window-body-width'. The old
2501names are provided as aliases. Two new functions `window-total-width'
2502and `window-body-height' are provided.
dfdb4cad 2503
c4682d18
MR
2504*** Window parameters specific to window handling functions.
2505For each window you can specify a parameter to override the default
2506behavior of a number of functions like `split-window', `delete-window'
ed6235ea
MR
2507and `delete-other-windows'. The variable `ignore-window-parameters'
2508allows to ignore processing such parameters.
dfdb4cad 2509
c4682d18 2510*** New semantics of third argument of `split-window'.
c4682d18
MR
2511The third argument of `split-window' has been renamed to SIDE and can be
2512set to any of the values 'below, 'right, 'above, or 'left to make the
2513new window appear on the corresponding side of the window that shall be
2514split. Any other value of SIDE will cause `split-window' to split the
2515window into two side-by-side windows as before.
dfdb4cad 2516
c4682d18 2517*** Window resizing functions.
487ffd7a 2518A new standard function for resizing windows called `window-resize' has
c4682d18
MR
2519been introduced. This and all other functions for resizing windows no
2520longer delete any windows when they become too small.
dfdb4cad 2521
b3c0dbfd
MR
2522*** Deleting the selected window now selects the most recently selected
2523live window on that frame instead.
dfdb4cad 2524
c4682d18
MR
2525*** `adjust-window-trailing-edge' adjustments.
2526`adjust-window-trailing-edge' can now deal with fixed-size windows and
2527is able to resize other windows if a window adjacent to the trailing
2528edge cannot be shrunk any more. This makes its behavior more similar to
2529that of Emacs 21 without compromising, however, its inability to delete
2530windows which was introduced in Emacs 22.
dfdb4cad 2531
c4682d18
MR
2532*** Window-local buffer lists.
2533Windows now have local buffer lists. This means that removing a buffer
2534from display in a window will preferably show the buffer previously
2535shown in that window with its previous window-start and window-point
2536positions. This also means that the same buffer may be automatically
2537shown twice even if it already appears in another window.
dfdb4cad 2538
bee0fcef
CY
2539*** `switch-to-buffer' has a new optional argument FORCE-SAME-WINDOW,
2540which if non-nil requires the buffer to be displayed in the currently
2541selected window, signaling an error otherwise. If nil, another window
2542can be used, e.g. if the selected one is strongly dedicated.
dfdb4cad 2543
0a2132ba 2544*** `split-window-vertically' and `split-window-horizontally' renamed
2d197ffb
CY
2545to `split-window-below' and `split-window-right' respectively.
2546The old names are kept as aliases.
dfdb4cad 2547
0a2132ba
CY
2548*** Display actions
2549
2550**** The second arg to `display-buffer' and `pop-to-buffer' is now
2551named ACTION, and takes a display action of the same form as
2552`display-buffer-base-action' (see Changes, above). A non-nil,
2553non-list value is treated specially, as the old meaning.
2554
2555**** New variable `display-buffer-overriding-action'.
2556
2557**** The procedure of `display-buffer' etc. to choose a window is
2558determined by combining `display-buffer-overriding-action',
2559`display-buffer-alist', the ACTION arg, `display-buffer-base-action',
2560and `display-buffer-fallback-action'. The second and fourth of these
2561are user-customizable variables.
2562
2563See the docstring of `display-buffer' for details.
bee0fcef 2564
20d2304d
CY
2565*** New functions `window-state-get' and `window-state-put'.
2566These functions allow to save and restore the state of an arbitrary
2567frame or window as an Elisp object.
2568
a2a25d24 2569** Completion
041d709f 2570
7d301ae6
CY
2571*** New variable `completion-extra-properties' used to specify extra
2572properties of the current completion:
a2a25d24
SM
2573- :annotate-function, same as the old completion-annotate-function.
2574- :exit-function, function to call after completion took place.
2575
7d301ae6
CY
2576*** Functions on `completion-at-point-functions' can return any of the
2577properties valid for `completion-extra-properties'.
a2a25d24 2578
7d301ae6 2579*** `completion-annotate-function' is obsolete.
a2a25d24 2580
620c53a6
SM
2581*** New `metadata' method for completion tables. The metadata thus returned
2582can specify various details of the data returned by `all-completions':
2583- `category' is the kind of objects returned (e.g., `buffer', `file', ...),
2584 used to select a style in completion-category-overrides.
2585- `annotation-function' to add annotations in *Completions*.
2586- `display-sort-function' to specify how to sort entries in *Completions*.
2587- `cycle-sort-function' to specify how to sort entries when cycling.
2588
7d301ae6
CY
2589*** `minibuffer-local-filename-must-match-map' is not used any more.
2590Instead, the bindings in `minibuffer-local-filename-completion-map'
2591are combined with `minibuffer-local-must-match-map'.
de09aa52
CY
2592
2593*** New variable `completing-read-function' allows overriding the
2594behavior of `completing-read'.
2595
f042970d 2596** `glyphless-char-display' can now distinguish between graphical and
16a43933
CY
2597text terminal display, via a char-table entry that is a cons cell.
2598
7d301ae6 2599** `pre-command-hook'/`post-command-hook' are not reset to nil on error.
f6d62986
SM
2600Instead, the offending function is removed.
2601
b1f6fa26
CY
2602** New hook types
2603
2604*** New function `run-hook-wrapped' for running an abnormal hook by
2605passing the hook functions as arguments to a "wrapping" function.
e7bc51d0 2606Like `run-hook-with-args-until-success', it stops at the first
5385447f 2607non-nil return value.
e7bc51d0 2608
b1f6fa26
CY
2609*** New macro `with-wrapper-hook' for running an abnormal hook as a
2610set of "wrapping" filters, similar to around advice.
54521c99
GM
2611(A version of this macro was actually added in Emacs 23.2 but was not
2612advertised at the time.)
f6d62986 2613
0b19b281 2614** Debugger changes
dfdb4cad 2615
0b19b281 2616*** New macro `condition-case-unless-debug' (this was actually added in
1be3ca5a 2617Emacs 23.1 as condition-case-no-debug, but not advertised)
dfdb4cad 2618
0b19b281 2619*** The macro `with-demoted-errors' was added in Emacs 23.1, but not advertised.
dfdb4cad 2620
0b19b281 2621*** Variable `stack-trace-on-error' removed.
dfdb4cad 2622
0b19b281
CY
2623*** The debugger can now "continue" from an error, which means it will
2624jump to the error handler as if the debugger had not been invoked
2625instead of jumping all the way to the top-level.
dfdb4cad 2626
0b19b281
CY
2627*** Set `debug-on-event' to enter the debugger on events like SIGUSR1.
2628This can be useful when `inhibit-quit' is set.
d6b1d521 2629
953cebf5 2630** The new function `server-eval-at' allows evaluation of Lisp forms on
37576acd 2631named Emacs server instances.
7deebf1b 2632
1b9f60cc
GM
2633** `call-process' and `call-process-region' allow a `(:file "file")' spec
2634to redirect STDOUT to a file.
7deebf1b 2635
7d301ae6
CY
2636** The function `format-time-string' now supports the %N directive,
2637for higher-resolution time stamps.
da97a9e6 2638
0b19b281 2639** New input reading functions
dfdb4cad 2640
0b19b281
CY
2641*** New function `read-char-choice' reads a restricted set of
2642characters, discarding any inputs not inside the set.
dfdb4cad 2643
0b19b281
CY
2644*** The command `read-color' now requires a match for a color name
2645or RGB triplet, instead of signaling an error if the user provides
2646invalid input.
dfdb4cad 2647
0b19b281 2648**** `facemenu-read-color' is now an alias for `read-color'.
3ef01959 2649
2e288d54
JB
2650** `image-library-alist' is renamed to `dynamic-library-alist'.
2651The variable is now used to load all kind of supported dynamic libraries,
2652not just image libraries. The previous name is still available as an
2653obsolete alias.
2654
0b19b281 2655** Syntax parsing changes
dfdb4cad 2656
0b19b281 2657*** New variable `syntax-propertize-function'.
04e2ce72 2658This replaces `font-lock-syntactic-keywords' which is now obsolete.
cf38dd42
SM
2659This allows syntax-table properties to be set independently from font-lock:
2660just call syntax-propertize to make sure the text is propertized.
2661Together with this new variable come a new hook
2662syntax-propertize-extend-region-functions, as well as two helper functions:
2663syntax-propertize-via-font-lock to reuse old font-lock-syntactic-keywords
2664as-is; and syntax-propertize-rules which provides a new way to specify
2665syntactic rules.
dfdb4cad 2666
0b19b281 2667*** Syntax tables support a new "comment style c" additionally to style b.
a2e5caf7 2668
7d301ae6 2669** New hook `post-self-insert-hook', run after `self-insert-command'.
041d709f 2670
4e2db1fe 2671** frame-local variables cannot be let-bound any more.
041d709f 2672
15de15c6 2673** Major and minor mode changes
dfdb4cad 2674
0b19b281
CY
2675*** `set-auto-mode' now respects mode: local variables at the end of files,
2676as well as those in the -*- line.
dfdb4cad 2677
15de15c6
CY
2678*** `prog-mode' is a new major mode from which programming modes
2679should be derived.
dfdb4cad 2680
15de15c6
CY
2681**** `prog-mode-hook' can be used to enable features for programming
2682modes, e.g. (add-hook 'prog-mode-hook 'flyspell-prog-mode) to enable
2683on-the-fly spell checking for comments and strings.
dfdb4cad 2684
15de15c6
CY
2685*** New hook `change-major-mode-after-body-hook', run by
2686`run-mode-hooks' just before any other mode hooks.
dfdb4cad 2687
7a9a2fc6
GM
2688*** Enabled globalized minor modes can be disabled in specific major modes.
2689If the global mode is global-FOO-mode, then run (FOO-mode -1) in the
2690major mode's hook, where FOO-mode toggles the mode on a per-buffer basis.
dfdb4cad 2691
feb8a83a 2692*** `define-minor-mode' accepts new keywords :variable, :after-hook.
f44379e7 2693
7d301ae6
CY
2694** File-handling changes
2695
7d301ae6 2696*** `delete-file' and `delete-directory' now accept optional arg TRASH.
f1a5d776
CY
2697Trashing is performed if TRASH and `delete-by-moving-to-trash' are
2698both non-nil. Interactively, TRASH defaults to t, unless a prefix
2699argument is supplied (see Trash changes, above).
53967e09 2700
7d301ae6 2701*** New file predicates: `file-equal-p', `file-in-directory-p'.
ec70a47d 2702
4039c786
CY
2703** Tool-bars can display separators.
2704Tool-bar separators are handled like menu separators in menu-bar maps,
94975270 2705i.e. via menu entries of the form `(menu-item "--")'.
9317e499 2706
00fe2df1
JL
2707** Image API
2708
18af70d0
CY
2709*** Animated images support (currently animated gifs only).
2710
2711**** `image-animated-p' returns non-nil if an image can be animated.
2712
2713**** `image-animate' animates a supplied image spec.
2714
2715**** `image-animate-timer' returns the timer object for an image that
2716is being animated.
00fe2df1 2717
7cb76fe0
GM
2718*** `image-extension-data' has been renamed to `image-metadata'.
2719The old name is an obsolete alias to the new one.
1546c559 2720
b4ac6e8c
GM
2721*** Image mode can view any image type that ImageMagick supports.
2722This requires Emacs to be built with ImageMagick support.
7d301ae6
CY
2723
2724**** New function `imagemagick-types', defined if ImageMagick support
2725is enabled, returns a list of image file extensions that your
2726ImageMagick installation supports.
2727
2728**** New function `imagemagick-register-types' enables ImageMagick
2729image types in Image mode and in `create-image' and other helper
2730functions.
2731
2732**** New option `imagemagick-types-inhibit' excludes certain
2733ImageMagick image types from `imagemagick-register-types'.
2734
7d301ae6
CY
2735**** With ImageMagick support, there are extra Image mode commands to
2736resize and rotate images: `image-transform-fit-to-height',
2737`image-transform-fit-to-width', `image-transform-set-rotation', and
2738`image-transform-set-scale'.
041d709f 2739
7d301ae6
CY
2740** `compose-mail' now accepts an optional 8th arg, RETURN-ACTION, and
2741passes it to the mail user agent function. This argument specifies an
2742action for returning to the caller after finishing with the mail. For
2743example, this is used by Rmail to optionally delete a mail window.
b4ac6e8c 2744
71c17aec 2745** XML and HTML parsing
483ab230
CY
2746If Emacs is compiled with libxml2 support, there are two new
2747functions: `libxml-parse-html-region' (which parses "real world" HTML)
2748and `libxml-parse-xml-region' (which parses XML). Both return an
2749Emacs Lisp parse tree.
4b9832a6 2750
7d301ae6 2751** Networking and encryption changes
e2574f2c 2752
7d301ae6
CY
2753*** `open-network-stream' can now be used to open an encrypted stream.
2754It now accepts an optional `:type' parameter for initiating a TLS
2755connection, directly or via STARTTLS. To do STARTTLS, additional
2756parameters (`:end-of-command', `:success', `:capabilities-command')
2757must also be supplied.
2758
2759*** New library gnutls.el.
dfdb4cad
CY
2760The new function `gnutls-available-p' returns non-nil if Emacs is
2761built with GnuTLS support. The main entry points are
2762`open-gnutls-stream' and `gnutls-negotiate'. It's easiest to use
2763these functions through `open-network-stream', because that can
7d301ae6
CY
2764upgrade connections through STARTTLS opportunistically or use plain
2765SSL, depending on your needs. For debugging, set `gnutls-log-level'
2766greater than 0.
2767
7d301ae6
CY
2768*** New primitive `secure-hash' that supports many secure hash algorithms:
2769md5, sha1, sha2, sha224, sha256, sha384, and sha512. The lisp library
2770sha1.el has been removed. The `sha1' feature is provided by default.
71c17aec 2771
a6020335
MH
2772** Isearch
2773
2774*** New hook `isearch-update-post-hook' that runs in `isearch-update'.
2775
9326ba26
CY
2776** Progress reporters can now "spin".
2777The MIN-VALUE and MAX-VALUE arguments of `make-progress-reporter' can
2778now be nil, or omitted. This makes a "non-numeric" reporter. Each
2779time you call `progress-reporter-update' on that progress reporter,
2780with a nil or omitted VALUE argument, the reporter message is
2781displayed with a "spinning bar".
2782
3e214b50
JB
2783** New variable `revert-buffer-in-progress-p' is true while a buffer is
2784being reverted, even if the buffer has a local `revert-buffer-function'.
2785
001bf877
GM
2786** New variables `delayed-warnings-list' and `delayed-warnings-hook'.
2787If delayed-warnings-list is non-nil, the command loop calls
7d301ae6
CY
2788`delayed-warnings-hook' after `post-command-hook'. At present, this
2789is only used by Emacs on some platforms to display warnings during
2790startup, which might otherwise not be noticed. This uses the
2791functions `display-delayed-warnings' and `collapse-delayed-warnings'.
001bf877 2792
6420d28b
CY
2793** rx.el has a new `group-n' construct for explicitly numbered groups.
2794
dac86404
GM
2795** New function `make-composed-keymap' that constructs a new keymap
2796from multiple input maps. You can use this to make a keymap that
2797inherits from multiple maps, eg:
2798 (set-keymap-parent newmap (make-composed-keymap othermap parent))
43dc9f5b 2799
c8f6ec5c
GM
2800** New function `string-prefix-p'.
2801(This was actually added in Emacs 23.2 but was not advertised at the time.)
2802
27f7ef2f 2803** New reader macro ## that stands for the empty symbol.
43dc9f5b
AS
2804This means that the empty symbol can now be read back. Also, #: by itself
2805(when not immediately followed by a possible symbol character) stands for
2806an empty uninterned symbol.
041d709f 2807
fead402d
CY
2808** New math functions `isnan', `copysign', `frexp', `ldexp'.
2809
7d301ae6 2810** The following functions and variables are obsolete:
041d709f 2811
05f77e38
GM
2812*** `tooltip-use-echo-area' is obsolete.
2813Rather than setting this to t, disable Tooltip mode instead.
2814
041d709f
CY
2815*** buffer-substring-filters is obsolete.
2816Use `filter-buffer-substring-functions' instead.
2817
2818*** `byte-compile-disable-print-circle' is obsolete.
2819
2820*** `deferred-action-list' and `deferred-action-function' are obsolete.
f160676e
GM
2821Use `post-command-hook' instead.
2822
67e729a5
CY
2823*** `font-lock-maximum-size' is obsolete.
2824
eb199145 2825\f
93e0bed6 2826* Changes in Emacs 24.1 on Non-Free Operating Systems
d53a60a6 2827
7a22e700 2828** On MS Windows, Emacs warns when using the obsolete init file _emacs,
a2f0118c
GM
2829and also when HOME is set to C:\ by default.
2830
7a22e700 2831** New configure.bat options
04779484 2832
7a22e700 2833*** --enable-checking builds Emacs with extra runtime checks.
e3aef5c6 2834
7a22e700 2835*** --distfiles specifies files to be included in binary distribution.
e2574f2c 2836
7a22e700
OK
2837*** --without-gnutls disables automatic GnuTLS detection.
2838
a0d363f4 2839*** --lib for general library linkage, works with the USER_LIBS build variable.
e2574f2c 2840
0a19a6f8 2841** New make target `dist' to create binary distribution for MS Windows.
e3aef5c6 2842
1f5e1a16
GM
2843** The Lisp function `w32-default-color-map' is now obsolete.
2844(It is only used internally in the Emacs C code.)
5430d399 2845
1f5e1a16
GM
2846** Customize ns-auto-hide-menu-bar to have the menu-bar hidden, but
2847reappear on mouse-over. (Requires OS X 10.6 or later.)
04e2ce72 2848
ad7c802c
CY
2849** On Mac OS X, dragging a file into Emacs visits the file, like on
2850other platforms, rather than inserting its contents into the buffer.
2851
05197f40 2852\f
a933dad1 2853----------------------------------------------------------------------
5b87ad55 2854This file is part of GNU Emacs.
a933dad1 2855
ab73e885 2856GNU Emacs is free software: you can redistribute it and/or modify
5b87ad55 2857it under the terms of the GNU General Public License as published by
ab73e885
GM
2858the Free Software Foundation, either version 3 of the License, or
2859(at your option) any later version.
5b87ad55
GM
2860
2861GNU Emacs is distributed in the hope that it will be useful,
2862but WITHOUT ANY WARRANTY; without even the implied warranty of
2863MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2864GNU General Public License for more details.
a933dad1 2865
5b87ad55 2866You should have received a copy of the GNU General Public License
ab73e885 2867along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
a933dad1 2868
05197f40 2869\f
a933dad1
DL
2870Local variables:
2871mode: outline
2872paragraph-separate: "[ \f]*$"
2873end: