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