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