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