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