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