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