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