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