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