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