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