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