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