Fix an argument of `copy-file'.
[bpt/emacs.git] / etc / NEWS
CommitLineData
29b7722a 1GNU Emacs NEWS -- history of user-visible changes.
5b87ad55 2
ab422c4d 3Copyright (C) 2010-2013 Free Software Foundation, Inc.
5b87ad55 4See the end of the file for license conditions.
a933dad1 5
893db5bc 6Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
9a21d88b
KS
7If possible, use M-x report-emacs-bug.
8
eb199145 9This file is about changes in Emacs version 24.
9a21d88b 10
eb199145
GM
11See files NEWS.23, NEWS.22, NEWS.21, NEWS.20, NEWS.19, NEWS.18,
12and NEWS.1-17 for changes in older Emacs versions.
9a21d88b
KS
13
14You can narrow news to a specific version by calling `view-emacs-news'
15with a prefix argument or by typing C-u C-h C-n.
3f7194ed 16
a1ed8b05 17Temporary note:
219afb88
GM
18+++ indicates that all necessary updates to the manuals in doc/ are complete.
19--- means no change in the manuals is needed.
20When you add a new item, use the appropriate mark if you know it applies,
21otherwise leave it unmarked.
a1ed8b05
GM
22
23\f
95a32efb 24* Installation Changes in Emacs 24.4
7c3d167f 25
70c8f5ca 26** Emacs can now be compiled with ACL support.
7c3d167f
RF
27This happens by default if a suitable support library is found at
28build time, like libacl on GNU/Linux. To prevent this, use the
ffdc270a 29configure option `--disable-acl'.
7c3d167f 30
70c8f5ca 31** Emacs can now be compiled with file notification support.
671d4bfc
GM
32This happens by default if a suitable system library is found at
33build time. To prevent this, use the configure option
34`--with-file-notification-no'. See below for file-notify features.
35FIXME? This feature is not available for the Nextstep port. (?)
2f23b3ab 36
70c8f5ca
CY
37** The configure option `--without-compress-info' has been generalized,
38and renamed to `--without-compress-install'. It now prevents compression
335142f9
GM
39of _any_ files during installation.
40
70c8f5ca 41** The configure option `--with-crt-dir' has been removed.
f1e496a5
EZ
42It is no longer needed, as the crt*.o files are no longer linked
43specially.
44
ae7bfbf5
JB
45** Directories passed to configure option `--enable-locallisppath' are
46no longer created during installation.
47
70c8f5ca
CY
48** Emacs can be compiled with zlib support.
49If this library is present (which it normally is on most systems), the
50function `zlib-decompress-region' becomes available, which can
51decompress gzip- and zlib-format compressed data.
313546eb 52
9524a13d
JD
53---
54** Emacs for NS (OSX, GNUStep) can be built with ImageMagick support.
55pkg-config is required to find ImageMagick libraries.
56
3fa2054e
JD
57** For OSX >= 10.5, the Core text based font backend from the Mac port is used.
58For GNUStep and OSX 10.4 the old backend is used.
59To use the old backend by default, do on the command line:
60% defaults write org.gnu.Emacs FontBackend ns
61
c57b2d76 62\f
95a32efb 63* Startup Changes in Emacs 24.4
c57b2d76 64
17e0445b
GM
65+++
66** When initializing `load-path', an empty element in the EMACSLOADPATH
67environment variable (either leading, e.g., ":/foo"; trailing, e.g.,
68"/foo:"; or embedded, e.g., "/foo::/bar") is replaced with the default
69load-path (the one that would have been used if EMACSLOADPATH was unset).
70This makes it easier to _extend_ the load-path via EMACSLOADPATH
71(previously, EMACSLOADPATH had to specify the complete load-path,
72including the defaults). (In older versions of Emacs, an empty element
73was replaced by ".", so use an explicit "." now if that is what you want.)
74
a0833f62
GM
75+++
76** The -L option, which normally prepends its argument to load-path,
2df10228
GM
77will instead append, if the argument begins with `:' (or `;' on MS Windows;
78i.e., `path-separator').
a0833f62 79
06a4f110
GM
80+++
81** If you use either site-load.el or site-init.el to customize the dumped
82Emacs executable, any changes to `load-path' that these files make
83will no longer be present after dumping. To affect a permanent change
84to `load-path', use the `--enable-locallisppath' option of `configure'.
85
70c8f5ca
CY
86+++
87** The user option `initial-buffer-choice' can now specify a function
88to set up the initial buffer.
89
c57b2d76 90\f
95a32efb 91* Changes in Emacs 24.4
c6c08d3f 92
0a12fca0
EZ
93+++
94** Emacs now supports menus on text-mode terminals.
95If the terminal supports a mouse, clicking on the menu bar, or on
96sensitive portions of the mode line or header line, will drop down the
97menu defined at that position. Likewise, clicking C-mouse-2 or
98C-mouse-2 or C-mouse-3 on the text area will pop up the menus defined
99for those locations.
100
101If the text terminal does not support a mouse, you can activate the
102first menu-bar menu by typing F10, which invokes `menu-bar-open'.
103
104If you want the previous behavior, whereby F10 invoked `tmm-menubar',
105customize the option `tty-menu-open-use-tmm' to a non-nil value.
106(Typing M-` will always invoke `tmm-menubar', even if
107`tty-menu-open-use-tmm' is nil.)
108
a34a0ac8 109+++
70c8f5ca
CY
110** The *Messages* buffer is created in `messages-buffer-mode',
111a new major mode, with read-only status. Any code that might create
112the *Messages* buffer should call the function `messages-buffer' to do
113so and set up the mode.
61a5bb85 114
70c8f5ca 115** Emacs now supports ACLs (access control lists).
7c3d167f
RF
116+++
117*** Emacs preserves the ACL entries of files when backing up.
118+++
119*** New functions `file-acl' and `set-file-acl' get and set the ACL
66447e07
EZ
120entries of a file. On GNU/Linux, the POSIX ACL interface is used via
121libacl. On MS-Windows, the NT Security APIs are used to emulate the
122POSIX ACL interfaces.
7c3d167f 123
4e3f9230
YM
124** Multi-monitor support has been added.
125
126*** New functions `display-monitor-attributes-list' and
127`frame-monitor-attributes' can be used to obtain information about
128each physical monitor on multi-monitor setups.
129
cf13177e
YM
130*** The functions `display-pixel-width' and `display-pixel-height' now
131behave consistently among the platforms: they return the pixel width
132or height for all physical monitors associated with the given display
133as just they were on X11. To get information for each physical
134monitor, use the new functions above. Similar notes also apply to
135`x-display-pixel-width', `x-display-pixel-height', `display-mm-width',
136`display-mm-height', `x-display-mm-width', and `x-display-mm-height'.
137
70c8f5ca
CY
138+++
139** The cursor stops blinking after 10 blinks (by default) on X and NS.
140You can change the default by customizing `blink-cursor-blinks'.
61e56e2c 141
70c8f5ca
CY
142+++
143** In keymaps where SPC scrolls forward, S-SPC now scrolls backward.
144This affects View mode, etc.
145
146** Help changes
f88ac3bb 147
98104aea 148+++
70c8f5ca
CY
149*** The command `apropos-variable' is renamed to `apropos-user-option'.
150`apropos-user-option' shows all user options while `apropos-variable'
151shows all variables. When called with a universal prefix argument,
152the two commands swap their behaviors. When `apropos-do-all' is
153non-nil, they output the same results.
18c26d81 154
70c8f5ca
CY
155+++
156*** The key `?' now describes prefix bindings, like `C-h'.
6585d561 157
70c8f5ca 158*** The command `quail-help' is deleted. Use `C-h C-\'
6950f152
KH
159(`describe-input-method') instead.
160
70c8f5ca 161** Frame and window changes
da9ea6d9 162
70c8f5ca
CY
163+++
164*** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized',
165bound to <f11> and M-<f10>, respectively.
0a749fa0 166
70c8f5ca
CY
167*** New command `frameset-to-register' is now bound to `C-x r f', replacing
168`frame-configuration-to-register'. It offers similar functionality,
169plus enhancements like the ability to restore deleted frames. The
170command `frame-configuration-to-register' still exists, but is unbound.
0a749fa0 171
dc20a9d2 172+++
70c8f5ca
CY
173*** New hooks `focus-in-hook', `focus-out-hook'.
174These are normal hooks run when an Emacs frame gains or loses input focus.
175
176---
177*** `split-window' is now a non-interactive function, not a command.
178As a command, it was a special case of `C-x 2' (`split-window-below'),
179and as such superfluous. After being reimplemented in Lisp, its
180interactive form was mistakenly retained.
4f0552c2 181
daef8ab1 182+++
70c8f5ca
CY
183*** New option `scroll-bar-adjust-thumb-portion'.
184Available only on X, this option allows to control over-scrolling
185using the scroll bar (i.e. dragging the thumb down even when the end
186of the buffer is visible).
187
188** Lisp evaluation changes
75a1e034 189+++
70c8f5ca
CY
190*** `eval-defun' on an already defined defcustom calls the :set function,
191if there is one.
192
193*** A zero prefix arg of `eval-last-sexp' (`C-x C-e'),
194`eval-expression' (`M-:') and `eval-print-last-sexp' (`C-j') inserts
195a list with no limit on its length and level (by using nil values of
196`print-length' and `print-level'), and inserts additional formats for
197integers (octal, hexadecimal, and character).
198
199---
200** `write-region-inhibit-fsync' now defaults to t in batch mode.
da048127 201
2cd12d28 202+++
70c8f5ca
CY
203** `cache-long-line-scans' has been renamed to `cache-long-scans'
204because it affects caching of paragraph scanning results as well.
4e36a6a6 205
70c8f5ca
CY
206---
207** The option `set-mark-default-inactive' has been deleted.
208This unfinished feature was introduced by accident in Emacs 23.1;
209simply disabling Transient Mark mode does the same thing.
210
211** The default value of `comment-use-global-state' is changed to t,
212and this variable has been marked obsolete.
213
214\f
215* Editing Changes in Emacs 24.4
216
217** Indentation changes
218
219+++
220*** The behavior of `C-x TAB' (`indent-rigidly') has changed.
221When invoked without a prefix argument, it now activates a transient
222mode in which typing <left>, <right>, <S-left>, and <S-right> adjusts
223the text indentation in the region. Typing any other key resumes
224normal editing behavior.
3472b6c6 225
70c8f5ca 226*** `electric-indent-mode' is enabled by default.
b7d5bd82 227
70c8f5ca 228*** `tab-stop-list' is now implicitly extended to infinity by repeating
3ccc2d28
XF
229the last step. Its default value is changed to nil which means a tab
230stop every `tab-width' columns.
b7d5bd82 231
70c8f5ca 232** Filling changes
0aa3616e 233
70c8f5ca
CY
234*** New command `cycle-spacing' cycles between spacing conventions:
235having just one space, no spaces, or reverting to the original
236spacing. Like `just-one-space', it can handle or ignore newlines and
237leave different number of spaces.
238
239*** `fill-single-char-nobreak-p' prevents fill from breaking a line after
240a 1-letter word, which is an error according to Polish and
241Czech typography rules. To globally enable this feature, evaluate:
242
243 (add-hook 'fill-nobreak-predicate 'fill-single-char-nobreak-p)
37f38bca 244
30aafaf5 245+++
70c8f5ca
CY
246** Uniquify is enabled by default with `post-forward-angle-brackets' style.
247
248** New command `C-x SPC' (`rectangle-mark-mode') makes a rectangular region.
249Most commands are still unaware of it, but kill/yank do work on the rectangle.
958614cf 250
4c672a0f
EZ
251+++
252** New option `visual-order-cursor-movement'.
253If this is non-nil, cursor motion with arrow keys will follow the
254visual order of characters on the screen: <left> always moves to the
255left, <right> always moves to the right, disregarding the surrounding
256bidirectional context.
257
70c8f5ca 258** Register changes
c8af480d 259
70c8f5ca 260*** All register commands can now show help with preview.
0b1619da 261
ced5cc29
XF
262+++
263*** New command `C-x C-k x' (`kmacro-to-register') stores keyboard
264macros in registers.
ac2f8659 265
70c8f5ca
CY
266*** New command `C-x r f' (`frameset-to-register').
267See Changes in Emacs 24.4, above.
268
269** New command `delete-duplicate-lines'.
270When its arg ADJACENT is non-nil (when called interactively with C-u
271C-u) it works like the utility `uniq'. Otherwise by default it
272deletes duplicate lines everywhere in the region without regard to
273adjacency. When its arg KEEP-BLANKS is non-nil (when called
274interactively with C-u C-u C-u), duplicate blank lines are preserved.
ac2f8659 275
4f0552c2 276\f
95a32efb 277* Changes in Specialized Modes and Packages in Emacs 24.4
4f0552c2 278
fba1763d 279** More packages look for ~/.emacs.d/<foo> additionally to ~/.<foo>.
940e5099
SM
280Affected files:
281~/.emacs.d/timelog replaces ~/.timelog
940e5099
SM
282~/.emacs.d/vip replaces ~/.vip
283~/.emacs.d/viper replaces ~/.viper
284~/.emacs.d/ido.last replaces ~/.ido.last
285~/.emacs.d/kkcrc replaces ~/.kkcrc
286~/.emacs.d/quickurls replaces ~/.quickurls
287~/.emacs.d/idlwave replaces ~/.idlwave
288~/.emacs.d/bdfcache.el replaces ~/.bdfcache.el
289~/.emacs.d/places replaces ~/.emacs-places
290~/.emacs.d/shadows replaces ~/.shadows
291~/.emacs.d/shadow_todo replaces ~/.shadow_todo
292~/.emacs.d/strokes replaces ~/.strokes
293~/.emacs.d/notes replaces ~/.notes
294~/.emacs.d/type-break replaces ~/.type-break
d29bf51c
SB
295Also the following files used by the now obsolete otodo-mode.el:
296~/.emacs.d/todo-do replaces ~/.todo-do
297~/.emacs.d/todo-done replaces ~/.todo-done
298~/.emacs.d/todo-top replaces ~/.todo-top
299
70c8f5ca 300** Backtrace and debugger
e56221d5 301
70c8f5ca
CY
302*** The Lisp debugger's `e' command now includes the lexical environment
303when evaluating the code in the context at point. Hence, it now lets
304you access lexical variables.
24da7273 305
c9832cd8
XF
306+++
307*** New command `v' (`debugger-toggle-locals') displays local vars.
b14abca9 308
70c8f5ca
CY
309*** New minor mode `jit-lock-debug-mode' lets you use the debuggers on
310code run via JIT Lock.
4b72c12b 311
19b748ad
TM
312** Battery
313
44b9b800 314---
19b748ad
TM
315*** Battery information via the BSD `apm' utility is now supported.
316
96673afe
JL
317** Buffer Menu
318
319*** `M-s a C-o' shows lines matching a regexp in marked buffers using Occur.
320
fd3a9a6b
GM
321** Calendar and Diary
322
8d3c54a0 323---
70c8f5ca
CY
324*** New faces `calendar-weekday-header', `calendar-weekend-header',
325and `calendar-month-header'.
3b5c03d3
GM
326
327*** New option `calendar-day-header-array'.
328
fd3a9a6b 329+++
f8780a05 330*** New variable `diary-from-outlook-function', used by the command
fd3a9a6b
GM
331`diary-from-outlook'.
332
70c8f5ca 333*** The variable `calendar-font-lock-keywords' is obsolete.
ba30c70f 334
0e70ce93
PE
335** Calc
336
337*** Calc by default now uses the Gregorian calendar for all dates, and
338uses January 1, 1 AD as its day number 1. Previously Calc used the
339Julian calendar for dates before September 14, 1752, and it used
340December 31, 1 BC as its day number 1; the new scheme is more
341consistent with Calendar's calendrical system and day numbering.
342
343*** The new variable `calc-gregorian-switch' lets you configure the
344date when Calc switches from the Julian to the Gregorian calendar.
345Nil, the default value, means to always use the Gregorian calendar.
346The value (YEAR MONTH DAY) means to start using the Gregorian calendar
347on the given date.
348
86e100a6
GM
349*** Support for ISO 8601 dates.
350
70c8f5ca
CY
351** CEDET
352
353*** EDE
354
355**** The cpp-root project now supports executing a compile command.
356It can be set through the new :compile-command slot or the
357buffer-local variable `compile-command'.
358
359**** Better selection of include directories for the 'linux' project.
360Include directories now support out-of-tree build directories and
361target architecture auto-detection.
362
363*** Semantic
364
365**** Improved detection of used namespaces in current scope in C++.
366
367**** Parsing of default values for variables and function arguments in C/C++.
368They are also displayed by the summarize feature in the modeline.
369
370**** Improved parsing of function pointers in C/C++.
371This also includes parsing of function pointers as function arguments.
372
373**** Parsing of C/C++ preprocessor macros which open new scope.
374For example, this enables parsing of macros which open new namespaces.
375
376**** Support for 'this' pointer in inline member functions in C++.
377
378** cl-lib
379
8d3c54a0 380*** New macro `cl-tagbody'.
70c8f5ca
CY
381
382+++
383*** letf is now just an alias for cl-letf.
384
385** CUA mode
386
387*** CUA mode was changed to make use of delete-selection-mode and
388shift-select-mode. So you can now enable it independently from
389transient-mark-mode, delete-selection-mode, and shift-select-mode.
390As a result, cua-highlight-region-shift-only is obsolete
391(you can disable transient-mark-mode to get the same result).
392
393*** CUA's rectangles can now be used via `cua-rectangle-mark-mode'.
394
395** Delete Selection mode can now be used without `transient-mark-mode'.
396
5db9dace
JL
397** Desktop
398
6c8e0ae6
JL
399*** `desktop-auto-save-timeout' defines the number of seconds idle time
400before auto-save of the desktop.
5db9dace 401
b958c0ad 402*** `desktop-restore-frames', enabled by default, allows saving and
6585d561 403restoring the frame/window configuration (frameset). Additional options
36bec1b6 404`desktop-restore-in-current-display', `desktop-restore-reuses-frames'
6585d561 405and `desktop-restore-forces-onscreen' offer further customization.
39c0e36f 406
a2a538b1
CS
407** Dired
408
409*** New minor mode `dired-hide-details-mode' hides details.
410
70c8f5ca 411** Eldoc Mode works properly in the minibuffer.
21859ebc 412
ed02dcfa
RS
413** EPA
414
415*** New option `epa-mail-aliases'.
416
417You can set this to a list of alias expansions for keys to use
418in `epa-mail-encrypt'.
419
420If one element of the variable's value is ("foo@bar.com" "foo@hello.org"),
421that means: when one of the recipients of the message being encrypted
422is `foo@bar.com', encrypt the message for `foo@hello.org' instead.
423
424If one element of the variable's value is ("foo@bar.com"),
425that means: when one of the recipients of the message being encrypted
426is `foo@bar.com', ignore that name as regards encryption.
427This is useful to avoid a query when you have no key for that name.
428
70c8f5ca
CY
429** ERC
430
431*** New option `erc-accidental-paste-threshold-seconds'.
432If set to a number, this can be used to avoid accidentally paste large
433amounts of data into the ERC input.
434
435+++
436** ERT
437
438*** New macro `skip-unless' allows skipping ERT tests.
439See the ERT manual for details.
440
441** Eshell
442
443+++
444*** `eshell' now supports visual subcommands and options
445Eshell has been able to handle "visual" commands (interactive,
446non-line oriented commands such as top that require display
447capabilities not provided by eshell) by running them in an Emacs
448terminal emulator. See `eshell-visual-commands'.
449
450This feature has been extended to subcommands and options that make a
451usually line-oriented command a visual command. Typical examples are
452"git log" and "git <command> --help" which display their output in a
453pager by default. See `eshell-visual-subcommands' and
454`eshell-visual-options'.
455
456---
457*** Added Eshell-Tramp module
458External su and sudo commands are now the default; the internal,
459Tramp-using variants can still be used by enabling the eshell-tramp
460module.
461
462** F90 mode
463---
464*** New option `f90-smart-end-names'.
465
466** Icomplete is a bit more like Ido.
8d3c54a0 467
70c8f5ca 468*** key bindings to navigate through and select the completions.
8d3c54a0 469
70c8f5ca 470*** The icomplete-separator is customizable, and its default has changed.
8d3c54a0 471
70c8f5ca 472*** Removed icomplete-show-key-bindings.
8d3c54a0 473
70c8f5ca
CY
474*** Icomplete-mode by defaults applies to all forms of minibuffer completion.
475(setq icomplete-with-completion-tables '(internal-complete-buffer))
476will revert to the old behavior.
477
478** Ido
8d3c54a0 479
70c8f5ca 480*** Ido has a manual now.
8d3c54a0 481
70c8f5ca 482*** `ido-use-virtual-buffers' takes a new value 'auto.
8d3c54a0 483
70c8f5ca
CY
484*** `ido-decorations' has been slightly extended to give a bit more control.
485
486** Image mode
487
8d3c54a0 488+++
70c8f5ca
CY
489*** New commands `n' (`image-next-file') and `p' (`image-previous-file')
490visit the next image file and the previous image file in the same
491directory, respectively.
492
493*** New commands to show specific frames of multi-frame images.
494`f' (`image-next-frame') and `b' (`image-previous-frame') visit the
495next or previous frame. `F' (`image-goto-frame') shows a specific frame.
496
497*** New commands to speed up, slow down, or reverse animation.
498---
499*** The command `image-mode-fit-frame' deletes other windows.
500When toggling, it restores the frame's previous window configuration.
501It also has an optional frame argument, which can be used by Lisp
502callers to fit the image to a frame other than the selected frame.
503
504** Hi-Lock
505
506*** New option `hi-lock-auto-select-face'. When non-nil, hi-lock commands
507will cycle through faces in `hi-lock-face-defaults' without prompting.
508
509+++
510*** New global command `M-s h .' (`highlight-symbol-at-point')
511highlights the symbol found near point without prompting,
512using the next face automatically.
513
514** Imenu
515
516*** New option `imenu-generic-skip-comments-and-strings'.
517
518** Info
519
520*** New face `info-index-match' is used to highlight matches in index
521entries displayed by `Info-index-next', `Info-virtual-index' and
522`info-apropos'.
523
524** JS Mode
525
526*** Better indentation of multiple-variable declarations.
527If declaration spans several lines, variables on the following lines
528are lined up to the first one.
529
530*** We now recognize and better indent continuations in array
531comprehensions.
532
533*** New option `js-switch-indent-offset`.
534
535** MH-E has been updated to MH-E version 8.5.
536See MH-E-NEWS for details.
537
538+++
539** Octave mode
540*** Font locking for texinfo comments and new keywords
541*** Completion in Octave file buffers
542*** Eldoc support
543*** Jump to definition
544*** Documentation lookup/search
545*** Code cleanup and various bug fixes
546
547** OPascal mode is the new name for Delphi mode.
548
549*** All delphi-* variables and functions have been renamed to opascal-*.
550*** `delphi-newline-always-indents' is not supported any more.
551Use `electric-indent-mode' instead.
552*** `delphi-tab' is gone, replaced by `indent-for-tab-command'.
553
554** Package
555
556*** The format of `archive-contents' files, generated by package
557repositories, has changed to allow a new (fifth) element in the data
558vectors, containing an associative list with extra properties.
559
560*** `describe-package' buffer uses the `:url' extra property to
561display a `Homepage' header, if it's present.
562
563** Prolog mode
7cc8ae06 564
70c8f5ca
CY
565*** `prolog-use-smie' has been removed, along with the non-SMIE
566indentation code.
1db9ceee 567
70c8f5ca 568** Remember
f2cbfd44 569
70c8f5ca
CY
570*** The new command `remember-notes' creates a buffer which is saved
571on `kill-emacs'.
3f0faa45 572
70c8f5ca
CY
573You may think of it as a *scratch* buffer whose content is preserved.
574In fact, it was designed as a replacement for *scratch* buffer and can
575be used that way by setting `initial-buffer-choice' to
576`remember-notes' and `remember-notes-buffer-name' to "*scratch*".
577Without the second change, *scratch* buffer will still be there for
578notes that do not need to be preserved.
20de6ab6 579
70c8f5ca
CY
580*** The Remember package can now store notes in separates files.
581You can use the new function `remember-store-in-files' within the
582`remember-handler-functions' option.
20de6ab6 583
70c8f5ca
CY
584See `remember-data-directory' and `remember-directory-file-name-format'
585for new options related to this function.
c0211c4e 586
70c8f5ca
CY
587** Rmail
588
589*** Customize `rmail-mbox-format' to influence some minor aspects of
590how Rmail displays non-MIME messages.
3a2ddc2d 591
2a43515a 592---
70c8f5ca
CY
593*** The `unrmail' command now converts from BABYL to mboxrd format,
594rather than mboxo. Customize `unrmail-mbox-format' to change this.
2a43515a 595
70c8f5ca 596** Ruby mode
e38e6780 597
70c8f5ca 598*** New option `ruby-encoding-magic-comment-style'.
e38e6780 599
70c8f5ca 600*** New option `ruby-custom-encoding-magic-comment-template'.
e5e4a942 601
70c8f5ca 602*** New mode menu.
e5e4a942 603
70c8f5ca
CY
604*** Improved syntax highlighting and indentation.
605
606*** Add more Ruby file types to `auto-mode-alist'.
607
608*** New option `ruby-align-to-stmt-keywords'.
e5e4a942 609
6cddebc1
DG
610*** New `electric-indent-mode' integration.
611
d289938a 612** Search and Replace
279f9b06 613
07e9eaa2 614+++
e5e4a942
JL
615*** New global command `M-s .' (`isearch-forward-symbol-at-point')
616starts a symbol (identifier) incremental search forward with the
617symbol found near point added to the search string initially.
618
279f9b06
JL
619*** `C-x 8 RET' in Isearch mode reads a character by its Unicode name
620and adds it to the search string.
621
2db59b1d
XF
622*** `M-s i' in Isearch mode toggles the variable `isearch-invisible'
623between nil and the value of the option `search-invisible' (or `open'
624when it's nil).
01dea85f 625
d289938a
JL
626*** `query-replace' skips invisible text when `search-invisible' is nil,
627and opens overlays with hidden text when `search-invisible' is `open'.
628
57b837ab 629+++
3ee4cd64
JL
630*** A negative prefix arg of replacement commands replaces backward.
631`M-- M-%' replaces a string backward, `M-- C-M-%' replaces a regexp
632backward, `M-s w words M-- M-%' replaces a sequence of words backward.
633
80fa505f
AM
634+++
635*** By default, prefix arguments do not now terminate Isearch mode.
636Set `isearch-allow-prefix' to nil to restore old behavior.
637
6e8cfc81
JL
638*** More Isearch commands accept prefix arguments, namely
639`isearch-printing-char', `isearch-quote-char', `isearch-yank-word',
640`isearch-yank-line'.
641
a22289f7
JL
642*** Word search now matches whitespace at the beginning/end
643of the search string if it contains leading/trailing whitespace.
644In an incremental word search or when using a non-nil LAX argument
645of `word-search-regexp', the lax matching can also match part of
646the first word (in addition to the lax matching of the last word).
647The same rules are now applied to the symbol search with the difference
648that it matches symbols, and non-symbol characters between symbols.
649
70c8f5ca
CY
650+++
651** SES
6827cac1 652
70c8f5ca 653*** New command `ses-rename-cell' allows assigning names to SES cells.
13a40633 654
70c8f5ca 655** Shell
13a40633 656
70c8f5ca
CY
657*** `explicit-bash-args' now always defaults to use --noediting.
658During initialization, Emacs no longer expends a process to decide
659whether it is safe to use Bash's --noediting option. These days
660--noediting is ubiquitous; it was introduced in 1996 in Bash version 2.
4f0552c2 661
70c8f5ca 662** Shell Script mode
8b62d742 663
70c8f5ca
CY
664*** `sh-mode' now has the mode own `add-log-current-defun-function'.
665You can pick the name of the function and the variables with `C-x 4 a'.
c38a186c 666
b345c561
XF
667*** The SMIE indentation engine is now used by default.
668
70c8f5ca
CY
669** SMIE indentation can be customized via `smie-config'.
670The customization can be guessed by Emacs by providing a sample indented
671file and letting SMIE learn from it.
672
673** Term mode
674
675*** New option `term-suppress-hard-newline'.
ad4de702 676
d29bf51c
SB
677** Todo mode has been rewritten and enhanced.
678New features include:
679- support for multiple todo files and archive files of done items;
680- renaming, reordering, moving, merging, and deleting categories;
681- sortable tabular summaries of categories and the types of items they contain;
adc5dbce 682- cross-category lists of items filtered by specific criteria;
d29bf51c
SB
683- more fine-grained interaction with the Emacs diary, by being able to decide
684 for each todo item whether it appears in the Fancy Diary display;
685- highly flexible new item insertion and item editing;
686- moving items between categories, storing done items in their category or in
687 archive files, undoing or unarchiving done items;
688- reprioritizing items by inputting a numerical priority;
689- extensive customizability of operation and display, including numerous faces.
8bcced1f 690The Todo mode user manual describes all commands and most user options.
d29bf51c
SB
691To support some of these features, a new file format is used, which is
692incompatible with the old format; however, you can convert old todo and done
693item files to the new format on initializing the first new todo file, or at any
694later time with the provided conversion command. The old version of
695todo-mode.el has been made obsolete and renamed otodo-mode.el.
696
70c8f5ca
CY
697** trace-function was largely rewritten.
698New features include:
699- no prompting for the destination buffer, unless a prefix-arg was used.
700- additionally to prompting for a destination buffer, when a prefix-arg is
701 used, the user can enter a "context", i.e. Lisp expression whose value at the
702 time the function is entered/exited will be printed along with the function
703 name and arguments. Useful to trace the value of (current-buffer) or
704 (point) when the function is invoked.
705
aefa2ead 706** Tramp
26280467 707
179923f7
MA
708*** The experimental url syntax for remote file names is withdrawn.
709
aefa2ead
MA
710+++
711*** New connection method "adb", which allows to access Android
19dc8b9e
MA
712devices by the Android Debug Bridge. The variable `tramp-adb-program'
713can be used to adapt the path of the "adb" program, if needed.
26280467 714
19dc8b9e
MA
715*** The connection methods "plink1", "ssh1", "ssh2", "scp1", "scp2",
716"scpc" and "rsyncc" are discontinued. The ssh option
717"ControlMaster=auto" is set automatically in all ssh-based methods,
718when possible.
26280467 719
ed7367b1
MA
720+++
721*** Handlers for `file-acl' and `set-file-acl' for remote machines
722which support POSIX ACLs.
aefa2ead 723
f1c7dee9
MA
724+++
725*** Handlers for `file-notify-add-watch' and `file-notify-rm-watch'
726for remote machines which support filesystem notifications.
727
70c8f5ca 728** VC and related modes
bb102690 729
7899adea 730+++
70c8f5ca
CY
731*** In VC directory mode, `D' displays diffs between VC-controlled
732whole tree revisions.
fa5265fc 733
7899adea 734+++
70c8f5ca
CY
735*** In VC directory mode, `L' lists the change log for the current VC
736controlled tree in a window.
fa5265fc 737
7899adea 738+++
70c8f5ca
CY
739*** In VC directory mode, `I' shows a log of changes that will be
740received with a pull operation.
fa5265fc 741
7899adea 742+++
70c8f5ca
CY
743*** `C-x v G' (globally) and `G' (in VC directory mode) ignores a file
744under current version control system. When called with a prefix
745argument, you can remove a file from the ignored file list.
fa5265fc 746
b345c561 747---
70c8f5ca
CY
748*** `cvs-append-to-ignore' has been renamed to `vc-cvs-append-to-ignore'
749because it is moved to vc-cvs.el.
fa5265fc 750
70c8f5ca 751** VHDL mode
fa5265fc 752
70c8f5ca 753*** New options: `vhdl-actual-generic-name', `vhdl-beautify-options'.
fa5265fc 754
70c8f5ca 755*** New commands: `vhdl-fix-statement-region', `vhdl-fix-statement-buffer'.
fa5265fc 756
70c8f5ca 757** Woman
fa5265fc 758
70c8f5ca
CY
759*** The commands `woman-default-faces' and `woman-monochrome-faces'
760are obsolete. Customize the `woman-*' faces instead.
fa5265fc 761
770de7cf
CY
762** Obsolete packages:
763
122a7e46
SM
764*** Iswitchb is made obsolete by icomplete-mode.
765
770de7cf
CY
766*** longlines.el is obsolete; use visual-line-mode instead.
767
27c8b6eb
GM
768+++
769*** sup-mouse.el.
770
ce3e7725
CY
771*** terminal.el is obsolete; use term.el instead.
772
d29bf51c
SB
773*** The previous version of todo-mode.el is obsolete and renamed otodo-mode.el.
774
30bce3f0
MA
775*** xesam.el.
776
4e16ddf4
GM
777+++
778*** yow.el is obsolete; use fortune.el or cookie1.el instead.
779
5313bbc7
GM
780---
781*** The Info-edit command is obsolete. Editing Info nodes by hand
782has not been relevant for some time.
783
4f0552c2 784\f
95a32efb 785* New Modes and Packages in Emacs 24.4
02f473a4 786
70c8f5ca
CY
787** New package `eww' is a built-in web browser.
788It is only available if Emacs is compiled with libxml2 support.
789
790** New minor mode `superword-mode', defined in subword.el
002668e1
TZ
791`superword-mode' overrides the default word motion commands to treat
792symbol_words as a single word, similar to what `subword-mode' does and
793using the same internal functions.
794
70c8f5ca 795** New package nadvice.el offers lighter-weight advice facilities.
231d8498
SM
796It is layered as:
797- add-function/remove-function which can be used to add/remove code on any
798 function-carrying place, such as process-filters or `<foo>-function' hooks.
799- advice-add/advice-remove to add/remove a piece of advice on a named function,
800 much like `defadvice' does.
801
70c8f5ca 802** New package frameset.el.
8cd4636c
JB
803It provides a set of operations to save a frameset (the state of all
804or a subset of the existing frames and windows, somewhat similar to a
805frame configuration), both in-session and persistently, and restore it
806at some point in the future.
807
fb830820 808+++
70c8f5ca
CY
809** New package filenotify.el provides an interface for file system
810notifications. It requires that Emacs be compiled with one of the
f1c7dee9
MA
811low-level libraries gfilenotify.c, inotify.c or w32notify.c.
812
c57b2d76 813\f
95a32efb 814* Incompatible Lisp Changes in Emacs 24.4
da03ef8a 815
3472b6c6
SM
816** `kill-region' lost its `yank-handler' optional argument.
817
ef566920
BR
818** `(input-pending-p)' no longer runs other timers which are ready to
819run. The new optional CHECK-TIMERS param allows for the prior behavior.
820
a104f656
SM
821** `defvar' and `defcustom' in a let-binding affect the "external" default.
822
db3b7db5
SM
823** The syntax of ?» and ?« is now punctuation instead of matched parens.
824Some languages match those as »...« and others as «...» so better stay neutral.
825
b345c561 826---
70c8f5ca
CY
827** In compiled Lisp files, the header no longer includes a timestamp.
828
0b31660d 829** The default file coding for Emacs Lisp files is now utf-8.
70c8f5ca
CY
830(See `file-coding-system-alist'.) In most cases, this change is
831transparent, but files that contain unusual characters without
832specifying an explicit coding system may fail to load with obscure
833errors. You should either convert them to utf-8 or add an explicit
834`coding:' cookie.
0b31660d 835
70c8f5ca 836** `overriding-terminal-local-map' no longer replaces the local keymaps.
bfa3acd6
SM
837It used to disable the minor mode, major mode, and text-property keymaps,
838whereas now it simply has higher precedence.
839
a0eb10b3 840** Default process filters and sentinels are not nil any more.
1aa8d505
SM
841Instead they default to a function which does what the nil value used to do.
842
25c09217
SM
843** `read-event' does not return decoded chars in ttys any more.
844Just as was the case in Emacs-22 and before, decoding of tty input according to
845keyboard-coding-system is not performed in read-event any more. But contrary
846to that past, it is still done before input-decode-map/function-key-map/...
847
99d0d6dc
SM
848** Removed inhibit-local-menu-bar-menus.
849
e02230bf
SM
850** frame-local variables that affect redisplay do not work any more.
851More specifically, the redisplay does not bother to check for a frame-local
852value when looking up variables.
853
eadf1faa
SM
854** nil and "unbound" are indistinguishable in symbol-function.
855`symbol-function' never signals `void-function' any more.
856`fboundp' returns non-nil if the symbol was `fset' to nil.
857
3c442f8b
SM
858** `defadvice' does not honor the `freeze' flag and cannot advise
859special-forms any more.
7db1bda8 860
da03ef8a
SM
861** `dolist' in lexical-binding mode does not bind VAR in RESULT any more.
862VAR was bound to nil which was not tremendously useful and just lead to
863spurious warnings about an unused var.
864
7c3d167f
RF
865** The return value of `backup-buffer' has changed.
866The second argument is no longer an SELinux context, instead it is an
867alist of extended attributes as returned by the new function
868`file-extended-attributes'. The attributes can be applied to another
869file using `set-file-extended-attributes'.
870
954b166e
PE
871** `visited-file-modtime' now returns -1 for nonexistent files.
872Formerly it returned a list (-1 LOW USEC PSEC), but this was ambiguous
873in the presence of files with negative time stamps.
1af4c220
GM
874
875** The cars of the elements in `interpreter-mode-alist' are now treated
2a08047a
GM
876as regexps rather than literal strings. Technically this is an
877incompatible change, but unless you are using interpreter-mode-alist
878for something (not just adding elements to it), it ought not to affect you.
1af4c220 879
c57b2d76 880\f
97a1cd9d 881* Lisp Changes in Emacs 24.4
57618ecf 882
b345c561 883+++
70c8f5ca
CY
884** New variable `enable-dir-local-variables'.
885Directory-local variables are ignored if this is set to nil. This may
886be useful for modes that want to ignore directory-locals while still
887respecting file-local variables.
888
889** New macro `define-alternatives' can be used to define generic commands.
890Generic commands are interactive functions whose implementation can be
891selected among several alternatives, as a matter of user preference.
892
05e8f1ae 893+++
70c8f5ca
CY
894** New function `get-pos-property'.
895
896** Minibuffer changes
897
898*** completing-read-multiple's separator can now be a regexp.
899The default separator is changed to allow surrounding spaces around the comma.
900
901*** New option `read-regexp-defaults-function' defines the function
902that provides the default value for commands that ask for a regexp:
903`rgrep', `lgrep' `occur', `multi-occur', `multi-occur-in-matching-buffers',
904`highlight-regexp', `highlight-lines-matching-regexp', `highlight-phrase'.
905This option can be customized to values that provide a default value
906from the regexp last history element or from the symbol found at point.
907
1f41ee56
GM
908** New option `load-prefer-newer', if non-nil, means that when both
909.el and .elc versions of a file exist, rather than `load' always
910choosing the .elc version, it will choose whichever is newer
911(unless you explicitly specify one or the other).
912
3472b6c6
SM
913** New hook `pre-redisplay-function'.
914
2b2d19f2 915+++
ac776dae
EZ
916** Functions that pop up menus and dialogs now work on all terminal types,
917including TTYs.
0a12fca0
EZ
918This includes `x-popup-menu', `x-popup-dialog', `message-box',
919`yes-or-no-p', etc.
920
ffe759eb
EZ
921The function `display-popup-menus-p' will now return non-nil for a
922display or frame whenever a mouse is supported on that display or
923frame.
924
8fc36a68 925+++
3e0b94e7
DC
926** New bool-vector set operation functions:
927*** `bool-vector-exclusive-or'
928*** `bool-vector-union'
929*** `bool-vector-intersection'
930*** `bool-vector-set-difference'
931*** `bool-vector-not'
25201ef0 932*** `bool-vector-subsetp'
ec2c4ee6
PE
933*** `bool-vector-count-consecutive'
934*** `bool-vector-count-population'
3e0b94e7 935
3fbba716 936+++
ebb99847
BR
937** Comparison functions =, <, >, <=, >= now take many arguments.
938
8c27f5ff
SM
939** The second argument of `eval' can now be a lexical-environment.
940
941** `with-demoted-errors' takes an additional argument `format'.
54bd972f
SM
942+++
943** New function `define-error'.
944
7fd72e2c
SM
945** New hook `tty-setup-hook'.
946
de0503df
SM
947+++
948** New macro with-eval-after-load. Like eval-after-load, but better behaved.
949
131e4695 950** New library subr-x.el for misc helper functions
bb962da2 951+++
7b530552 952*** `hash-table-keys'
bb962da2 953+++
7b530552 954*** `hash-table-values'
bb962da2 955
015b3b3e
BB
956*** `string-blank-p`
957*** `string-empty-p`
4301875e 958*** `string-join`
447bdcb8 959*** `string-reverse`
b55aea38
BB
960*** `string-trim-left'
961*** `string-trim-right'
962*** `string-trim'
3cbfb935
BB
963*** `string-remove-prefix'
964*** `string-remove-suffix'
7b530552 965
dd8791e9 966** Obsoleted functions:
89561f72 967*** `log10'
dd8791e9
SM
968*** `dont-compile'
969*** `lisp-complete-symbol'
970*** `field-complete'
971*** `minibuffer-completion-contents'
66fc57e3
JL
972*** `isearch-nonincremental-exit-minibuffer'
973*** `isearch-filter-visible'
e3eb1bb7 974*** `generic-make-keywords-list'
d3e9f3a8 975
d36ed1c8
SM
976** `with-wrapper-hook' is obsoleted by `add-function'.
977The few hooks that used with-wrapper-hook are replaced as follows:
978*** `abbrev-expand-function' obsoletes `abbrev-expand-functions'.
979*** `completion-in-region-function' obsoletes `completion-in-region-functions'.
980*** `filter-buffer-substring-function' obsoletes `filter-buffer-substring-functions'.
981
2bb3a748
BB
982** `byte-compile-interactive-only-functions' is now obsolete.
983It has been replaced by the symbol property 'interactive-only.
984
46291d11 985+++
77c92cb9
RS
986** `split-string' now takes an optional argument TRIM.
987The value, if non-nil, is a regexp that specifies what to trim from
988the start and end of each substring.
d36ed1c8 989
41ce6f70
BB
990** New function `string-suffix-p'.
991
f557c1b1
SM
992** `get-upcase-table' is obsoleted by the new `case-table-get-table'.
993
70c8f5ca
CY
994** File-handling changes
995
882b0b86 996+++
70c8f5ca 997*** Support for filesystem notifications.
81606b10
RS
998Emacs now supports notifications of filesystem changes, such as
999creation, modification, and deletion of files. This requires the
2f23b3ab
MA
1000`glib' API, or the 'inotify' API (on GNU/Linux systems only). On
1001MS-Windows systems, this is supported for Windows XP and newer
1002versions.
81606b10 1003
882b0b86 1004+++
70c8f5ca
CY
1005*** The 9th element returned by `file-attributes' is now unspecified.
1006Formerly, it was t if the file's gid would change if file were deleted
1007and recreated. This value has been inaccurate for years on many
1008platforms, and nobody seems to have noticed or cared.
1009
882b0b86 1010+++
70c8f5ca
CY
1011*** The 6th argument to `copy-file' has been renamed to
1012PRESERVE-EXTENDED-ATTRIBUTES as it now handles both SELinux context
1013and ACL entries.
1014
1015*** The function `file-ownership-preserved-p' now has an optional
1016argument GROUP which causes it check for file group too. This can be
1017used in place of the 9th element of `file-attributes'.
1018
1019
1020*** The function `set-visited-file-modtime' now accepts a 0 or -1
1021argument, with the same interpretation as the returned value of
1022`visited-file-modtime'.
1023
add89f61
MA
1024** Changes in autorevert.el
1025
1026---
1027*** If Emacs is compiled with file notification support, notifications
1028are used instead of checking the time stamp of the files. You can
1029disable this by setting the user option `auto-revert-use-notify' to
1030nil. Alternatively, a regular expression of directories to be
1031excluded from file notifications can be specified by
1032`auto-revert-notify-exclude-dir-regexp'.
1033
1034---
1035*** The new user option `auto-revert-remote-files' enables reversion
1036of remote files when set to non-nil.
1037
1c4f115d
CY
1038** Face changes
1039
02f473a4 1040*** The function `face-spec-set' is now analogous to `setq' for face specs.
1c4f115d
CY
1041Its third arg now accepts values specifying exactly which face spec to
1042set (defface, custom, or user spec), and it directly sets the relevant
1043property using the supplied face spec.
1044
70c8f5ca
CY
1045*** New function `add-face-text-property', which can be used to
1046conveniently prepend/append new face properties.
1047
1c4f115d
CY
1048*** Face specs set via Custom themes now replace the `defface' spec
1049rather than inheriting from it (as do face specs set via Customize).
1050
073ca75b
JL
1051*** New face characteristic (supports :underline (:style wave))
1052specifies whether or not the terminal can display a wavy line.
1053
3c334c14 1054*** New face spec attribute :distant-foreground
920d0654
XF
1055specifies foreground to use if background color is near the foreground
1056color that would otherwise have been used.
3c334c14 1057
f0c954fa
GM
1058** Image API
1059
1060+++
1061*** `image-animated-p' is now `image-multi-frame-p'.
1062It returns non-nil for any image that contains multiple frames,
1063whether or not it specifies a frame delay.
1064
1065+++
1066*** When animating images that do not specify a frame delay,
1067Emacs uses `image-default-frame-delay'.
1068
1069+++
1070*** New functions `image-current-frame' and `image-show-frame' for getting
1071and setting the current frame of a multi-frame image.
1072
3a2ddc2d
GM
1073*** You can change the speed of animated images.
1074
fa5265fc
DE
1075** EIEIO
1076
1077*** Namespace cleanup by obsolete-aliasing functions to use `eieio-' prefix.
1078**** object-name -> eieio-object-name
1079**** object-class -> eieio-object-class
1080**** object-class-fast -> eieio--object-class
1081**** object-name-string -> eieio-object-name-string
1082**** object-num-slots -> eieio--object-num-slots
1083**** object-set-name-string -> eieio-object-set-name-string
1084**** class-parent -> eieio-class-parent
1085**** class-parents -> eieio-class-parents
1086**** class-children -> eieio-class-children
1087**** class-num-slots -> eieio--class-num-slots
1088**** class-precedence-list -> eieio-class-precedence-list
1089**** All generated class-* and object-* field accessors are now
1090prefixed with `eieio-' as well.
1091
1092*** Obsoleted functions:
1093**** class-of
1094**** class-direct-subclasses
1095**** class-direct-superclasses
1096
1b796d6b
EZ
1097** Changes in encoding and decoding of text
1098
1099---
1100*** New coding-system `prefer-utf-8'.
1101This is like `undecided' but prefers UTF-8 on decoding if the text to
1102be decoded does not contain any invalid UTF-8 sequences. On encoding,
1103any non-ASCII characters are automatically encoded as UTF-8.
1104
1105---
1106*** New attributes of coding-systems whose type is `undecided'.
1107Two new attributes, `:inhibit-null-byte-detection' and
1108`:inhibit-iso-escape-detection', determine how to detect encoding of
1109text that includes null bytes and ISO-2022 escape sequences,
1110respectively. Each of these attributes can be either nil, zero, or
1111t. If it is t, decoding text ignores null bytes and, respectively,
1112ISO-2022 sequences. If it is nil, null bytes cause text to be decoded
1113with no-conversion and ISO-2022 sequences cause Emacs to assume the
1114text is encoded in one of the ISO-2022 encodings, such as
1115iso-2022-7bit. If the value is zero, Emacs consults the variables
1116inhibit-null-byte-detection and inhibit-iso-escape-detection, which
1117see.
1118The new attribute `:prefer-utf-8', if non-nil, causes Emacs to prefer
1119UTF-8 encoding and decoding, whenever possible.
1120
1121These attributes are only meaningful for coding-systems of type
1122`undecided'. (The type of a coding-system is determined by its
1123`:coding-type' attribute and can be accessed by calling the
1124`coding-system-type' function.)
1125
70c8f5ca
CY
1126** `time-to-seconds' is not obsolete any more.
1127
1128** New functions `special-form-p' and `macrop'.
954b166e 1129
57618ecf
SM
1130** Docstrings can be made dynamic by adding a `dynamic-docstring-function'
1131text-property on the first char.
1132
32e5c58c
SM
1133** The `defalias-fset-function' property lets you catch calls to defalias
1134and redirect them to your own function instead of `fset'.
1135
70743157 1136** The lock for 'DIR/FILE' is now 'DIR/.#FILE' and may be a regular file.
b5029e23
PE
1137When you edit DIR/FILE, Emacs normally creates a symbolic link
1138DIR/.#FILE as a lock that warns other instances of Emacs that DIR/FILE
1139is being edited. Formerly, if there was already a non-symlink file
1140named DIR/.#FILE, Emacs fell back on the lock names DIR/.#FILE.0
1141through DIR/.#FILE.9. These fallbacks have been removed, so that
1142Emacs now no longer locks DIR/FILE in that case.
1143
70743157
PE
1144On file systems that do not support symbolic links, the lock is now a
1145regular file with contents being what would have been in the symlink.
b5029e23 1146
97976f9f
PE
1147** New functions `group-gid' and `group-real-gid'.
1148
67982e2b
SM
1149** The `common-substring' argument of display-completion-list is obsolete.
1150Either use `completion-all-completions' which already returns highlighted
1151strings (including for partial or substring completion) or call
1152`completion-hilit-commonality' to add the highlight.
1153
8fa2654e
CS
1154** Changes to the Emacs Lisp Coding Conventions in Emacs 24.4
1155
1156*** The package descriptor and name of global variables, constants,
0a2da075 1157and functions should be separated by two hyphens if the symbol is not
8fa2654e
CS
1158meant to be used by other packages.
1159
c57b2d76 1160\f
97a1cd9d 1161* Changes in Emacs 24.4 on Non-Free Operating Systems
95a32efb 1162
7605d081
GM
1163** The procedure for building Emacs on MS-Windows has changed.
1164It is now built by running the same configure script as on all other
1165platforms. This requires the MSYS environment and MinGW development
1166tools. See the updated instructions in nt/INSTALL for details.
671d4bfc
GM
1167
1168Using the Posix configure script and Makefile's also means a change in
1169the directory structure of the Emacs installation on Windows. It is
1170now the same as on GNU and Unix systems. In particular, the auxiliary
1171programs, such as cmdproxy.exe and hexl.exe, are in
1172libexec/emacs/VERSION/i686-pc-mingw32 (where VERSION is the Emacs
1173version), version-independent site-lisp is in share/emacs/site-lisp,
1174version-specific Lisp files are in share/emacs/VERSION/lisp and in
1175share/emacs/VERSION/site-lisp, Info docs are in share/info, and data
1176files are in share/emacs/VERSION/etc. (Emacs knows about all these
1177directories and will find the files in there automatically; there's no
1178need to set any variables due to this change.)
1179
7df14908
EZ
1180+++
1181** Emacs on Windows 2000 and later can now access files and directories
1182whose names cannot be encoded in the current system codepage.
1183
1184The new variable `w32-unicode-filenames' controls this feature: if it
1185is t, Emacs uses Unicode APIs to pass file names to system calls,
1186which lifts the limitation of file names to the current locale.
1187
5248293f
GM
1188+++
1189** The "generate a backtrace on fatal error" feature now works on MS Windows.
1190The backtrace is written to the 'emacs_backtrace.txt' file in the
1191directory where Emacs was running.
1192
8549f9e8
EZ
1193+++
1194** The variable `buffer-file-type' is no longer supported.
1195Setting it has no effect, and %t in the mode-line format is ignored.
1196Likewise, `file-name-buffer-file-type-alist' is now obsolete, and
1197modifying it has no effect.
1198
343a2aef
EZ
1199---
1200** Lock files now work on MS-Windows.
1201This allows to avoid losing your edits if the same file is being
1202edited in another Emacs session or by another user. See the node
1203"Interlocking" in the Emacs User Manual for the details. To disable
1204file locking, customize `create-lockfiles' to nil.
1205
c57b2d76
GM
1206** Improved fullscreen support on Mac OS X.
1207Both native (>= OSX 10.7) and "old style" fullscreen are supported.
1208Customize `ns-use-native-fullscreen' to change style. For >= 10.7
1209native is the default.
1210
41cf3d11
JD
1211** OSX >= 10.7 can use sRGB colorspace.
1212Customize `ns-use-srgb-colorspace' to change style. nil is the default.
1213Note: This does not apply to images.
1214
95a32efb 1215\f
2a1e2476 1216* Installation Changes in Emacs 24.3
b8df54ff 1217
6bc66c10 1218** The default X toolkit is now Gtk+ version 3.
823b2fb6
GM
1219If you don't pass `--with-x-toolkit' to configure, or if you use
1220`--with-x-toolkit=gtk' or `--with-x-toolkit=yes', configure will try
1221to build with Gtk+ version 3, and if that fails, try Gtk+ version 2.
d71a6517 1222You can explicitly require a specific version by passing
823b2fb6 1223`--with-x-toolkit=gtk2' or `--with-x-toolkit=gtk3' to configure.
da3d2105 1224
6bc66c10 1225** New configure option `--enable-link-time-optimization', to utilize
da3d2105
DA
1226an appropriate feature provided by GCC since version 4.5.0.
1227
33cb2043
GM
1228** New configure option `--without-all' to disable most of the optional
1229features (image support, etc.) that are normally enabled by default.
b8df54ff 1230
33cb2043
GM
1231** New configure option `--enable-gcc-warnings' (for developing/debugging
1232Emacs). If building with GCC, this enables compile-time checks that
64420fcd
GM
1233warn/give errors about possibly-questionable C code. On a recent GNU
1234system there should be no warnings; on older and on non-GNU systems
1235the results may be useful to developers.
b8df54ff 1236
823b2fb6 1237** The configure option `--enable-use-lisp-union-type' has been
6bc66c10 1238renamed to `--enable-check-lisp-object-type', as the resulting
d71a6517
GM
1239Lisp_Object type no longer uses a union to implement the compile time
1240check that this option enables.
1241
823b2fb6 1242** The configure option `--disable-maintainer-mode' has been removed,
501390c5
PE
1243as it was confusingly-named and rarely useful.
1244
f14a4380
GM
1245** The configure options `--program-prefix', `--program-suffix', and
1246`--program-transform-name' apply to more than just the installed
1247binaries. Now they also affect the man pages, icons, and the
1248etc/emacs.desktop file; but not the info pages, since this would break
1249links between the various manuals.
1a9c6830 1250
823b2fb6
GM
1251** You can use `NO_BIN_LINK=t make install' to prevent the installation
1252overwriting "emacs" in the installation bin/ directory with a link
6bc66c10 1253to "emacs-VERSION".
823b2fb6 1254
a4a18b8b
GM
1255** Emacs uses libtinfo in preference to libncurses, if available.
1256
187e9b90
GM
1257** On FreeBSD and NetBSD, configure no longer adds /usr/local/lib and
1258/usr/pkg/lib to the linker search path. You must add them yourself if
1259you want them.
1260
6bc66c10 1261** The standalone scripts `rcs-checkin' and `vcdiff' have been removed
276d5f5d
GM
1262(from the bin and libexec directories, respectively). The former is
1263no longer relevant, the latter is replaced by lisp (in vc-sccs.el).
1264
a1ed8b05 1265\f
2a1e2476 1266* Startup Changes in Emacs 24.3
e5fcdb5e
GM
1267
1268** Emacs no longer searches for `leim-list.el' files beneath the standard
1269lisp/ directory. There should not be any there anyway. If you have
823b2fb6 1270been adding them there, put them somewhere else; e.g., site-lisp.
e5fcdb5e 1271
4107c81e
GM
1272** The `--no-site-lisp' command line option now works for Nextstep builds.
1273
a1ed8b05 1274\f
2a1e2476 1275* Changes in Emacs 24.3
a1ed8b05 1276
6bc66c10 1277** Help
c89926a5 1278
6bc66c10 1279*** `C-h f' (`describe-function') can now perform autoloading.
c89926a5
CY
1280When this command is called for an autoloaded function whose docstring
1281contains a key substitution construct, that function's library is
1282automatically loaded, so that the documentation can be shown
1283correctly. To disable this, set `help-enable-auto-load' to nil.
1284
1285*** `C-h f' now reports previously-autoloaded functions as "autoloaded",
1286even after their associated libraries have been loaded (and the
1287autoloads have been redefined as functions).
1288
6bc66c10 1289** ImageMagick
cd996018 1290
6bc66c10
GM
1291*** Images displayed via ImageMagick now support transparency and the
1292:background image specification property.
cd996018 1293
6bc66c10 1294*** When available, ImageMagick support is automatically enabled.
c505aaeb
CY
1295It is no longer necessary to call `imagemagick-register-types'
1296explicitly to install ImageMagick image types; that function is called
7d806bfe 1297automatically at startup, or when customizing an imagemagick- option.
2f940384 1298
c505aaeb 1299*** Setting `imagemagick-types-inhibit' to t now disables the use of
823b2fb6
GM
1300ImageMagick to view images. (You must call `imagemagick-register-types'
1301afterwards if you do not use customize to change this.)
2f940384 1302
7afbaca4 1303*** The new variable `imagemagick-enabled-types' also affects which
60b5f187
GM
1304ImageMagick types are treated as images. The function
1305`imagemagick-filter-types' returns the list of types that will be
1306treated as images.
c505aaeb 1307
f3f9606c
LMI
1308*** ImageMagick images now support the :max-width and :max-height
1309keywords.
1310
8259030d 1311*** Some data types aren't auto-detected by ImageMagick. Adding
c6b7ccaa
LMI
1312:format to `create-image' may help if the content type is in the
1313new variable `image-format-suffixes'.
8259030d 1314
6bc66c10
GM
1315** Minibuffer
1316
1317*** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the
1318next and previous path separator, respectively.
c505aaeb 1319
6bc66c10
GM
1320*** `minibuffer-electric-default-mode' can shorten "(default ...)" to "[...]"
1321in minibuffer prompts. Just set `minibuffer-eldef-shorten-default'
1322non-nil before enabling the mode.
1323
1324** Mode line
1325
1326*** New option `mode-line-default-help-echo' specifies the help text
1327(shown in a tooltip or in the echo area) for any part of the mode line
1328that does not have its own specialized help text.
1329
1330*** You can now click mouse-3 in the coding system indicator to invoke
1331`set-buffer-file-coding-system'.
1332
1333** Server and client
2f940384 1334
f938eda9
CY
1335*** emacsclient now obeys string values for `initial-buffer-choice',
1336if it is told to open a new frame without specifying any file to visit
1337or expression to evaluate.
db80bdc8 1338
f938eda9 1339*** New option `server-auth-key' specifies a shared server key.
f938eda9
CY
1340
1341** Emacs now generates backtraces on fatal errors.
1342On encountering a fatal error, Emacs now outputs a textual description
1343of the fatal signal, and a short backtrace on platforms like glibc
5248293f 1344that support backtraces.
2e2d2a13 1345
6bc66c10
GM
1346** `C-x C-q' is now bound to the new minor mode `read-only-mode'.
1347This minor mode replaces `toggle-read-only', which is now obsolete.
1348
1349** Most `y-or-n' prompts now allow you to scroll the selected window.
1350Typing `C-v' or `M-v' at a y-or-n prompt scrolls forward or backward
1351respectively, without exiting from the prompt.
1352
1353** In the Package Menu, newly-available packages are listed as "new",
1354and sorted above the other "available" packages by default.
1355
f938eda9
CY
1356** If your Emacs was built from a bzr checkout, the new variable
1357`emacs-bzr-version' contains information about the bzr revision used.
de6ff46d 1358
6bc66c10 1359** New option `create-lockfiles' specifies usage of lockfiles.
f938eda9
CY
1360It defaults to t. Changing it to nil inhibits the creation of lock
1361files (use this with caution).
dc0f75c8 1362
6bc66c10
GM
1363** New option `enable-remote-dir-locals', if non-nil, allows directory-local
1364variables on remote hosts.
21ffb35a 1365
f85f636a
CY
1366** The entry for PCL-CVS has been removed from the Tools menu.
1367The PCL-CVS commands are still available via the keyboard.
1368
6bc66c10
GM
1369** Using "unibyte: t" in Lisp source files is obsolete.
1370Use "coding: raw-text" instead.
1371
e78e7e48
CY
1372** In the buffer made by `M-x report-emacs-bug', the `C-c m' binding
1373has been changed to `C-c M-i' (`report-emacs-bug-insert-to-mailer').
1374The previous binding, introduced in Emacs 24.1, was a mistake, because
1375`C-c LETTER' bindings are reserved for user customizations.
1376
6bc66c10 1377** Internationalization
2f940384 1378
f938eda9 1379*** New language environment: Persian.
2f940384 1380
f938eda9
CY
1381*** New input method `vietnamese-vni'.
1382
6bc66c10 1383** Nextstep (GNUstep / Mac OS X) port
2f940384 1384
823b2fb6 1385*** Support for fullscreen and the frame parameter fullscreen.
2f940384 1386
1a9c6830
GM
1387*** A file dialog is used for open/save operations initiated from the
1388menu/toolbar.
1389
a1ed8b05 1390\f
2a1e2476 1391* Editing Changes in Emacs 24.3
c25df26e 1392
6bc66c10 1393** Search and Replace
d39d3c8e 1394
f938eda9
CY
1395*** Non-regexp Isearch now performs "lax" space matching.
1396Each sequence of spaces in the supplied search string may match any
1397sequence of one or more whitespace characters, as specified by the
1398variable `search-whitespace-regexp'. (This variable is also used by a
823b2fb6 1399similar existing feature for regexp Isearch.)
2f940384 1400
f938eda9
CY
1401*** New Isearch command `M-s SPC' toggles lax space matching.
1402This applies to both ordinary and regexp Isearch.
2f940384 1403
f938eda9
CY
1404*** New option `replace-lax-whitespace'.
1405If non-nil, `query-replace' uses flexible whitespace matching too.
1406The default is nil.
2f940384 1407
b9cb2387
JL
1408*** Global `M-s _' starts a symbol (identifier) incremental search,
1409and `M-s _' in Isearch toggles symbol search mode.
1410`M-s c' in Isearch toggles search case-sensitivity.
1411
6bc66c10 1412** Navigation commands
48de8b12 1413
6bc66c10
GM
1414*** New binding `M-g c' for `goto-char'.
1415
1416*** New binding `M-g TAB' for `move-to-column'.
1417
1418*** `M-g TAB' (`move-to-column') prompts for a column number if called
1419interactively with no prefix arg. Previously, it moved to column 1.
1420
1421** New option `yank-handled-properties' allows processing of text
1422properties on yanked text, in ways that are more general than just
1423removing them (as is done by `yank-excluded-properties').
48de8b12 1424
48de8b12
CY
1425** New option `delete-trailing-lines' specifies whether
1426M-x delete-trailing-whitespace should delete trailing lines at the end
1427of the buffer. It defaults to t.
1428
f938eda9 1429** `C-u M-=' now counts lines/words/characters in the entire buffer.
826b3235 1430
48de8b12
CY
1431** `C-x 8 RET' is now bound to `insert-char', which is now a command.
1432`ucs-insert' is now an obsolete alias for `insert-char'.
b2459884 1433
48de8b12
CY
1434** The `z' key no longer has a binding in most special modes.
1435It used to be bound to `kill-this-buffer', but `z' is too easy to
1436accidentally type.
f938eda9 1437
6bc66c10
GM
1438** New command `C-x r M-w' (`copy-rectangle-as-kill').
1439It copies the region-rectangle as the last rectangle kill.
f938eda9 1440
6bc66c10 1441** Registers
f938eda9 1442
823b2fb6 1443*** `C-x r +' is now overloaded to invoke `append-to-register'.
f938eda9 1444
f938eda9 1445*** New option `register-separator' specifies the register containing
823b2fb6
GM
1446the text to put between collected texts for use with
1447M-x append-to-register and M-x prepend-to-register.
f1f4dba0 1448
a1ed8b05 1449\f
2a1e2476 1450* Changes in Specialized Modes and Packages in Emacs 24.3
ae4969c2 1451
6bc66c10 1452** Common Lisp emulation (CL)
f938eda9 1453
89660017 1454*** CL's main entry is now (require 'cl-lib).
823b2fb6
GM
1455`cl-lib' is like the old `cl' except that it uses the namespace cleanly;
1456i.e., all its definitions have the "cl-" prefix (and internal definitions
1457use the "cl--" prefix).
7c1898a7 1458
823b2fb6
GM
1459If `cl' provided a feature under the name `foo', then `cl-lib'
1460provides it under the name `cl-foo' instead; with the exceptions of the
1461few `cl' definitions that had to use `foo*' to avoid conflicts with
1462pre-existing Elisp entities. These have been renamed to `cl-foo'
1463rather than `cl-foo*'.
7c1898a7 1464
92246540 1465The old `cl' is now deprecated and is mainly just a bunch of aliases that
823b2fb6 1466provide the old, non-prefixed names. Some exceptions are listed below:
7c1898a7 1467
89660017
SM
1468*** `cl-flet' is not like `flet' (which is deprecated).
1469Instead it obeys the behavior of Common-Lisp's `flet'.
e8693c96
GM
1470In particular, in cl-flet function definitions are lexically scoped,
1471whereas in flet the scoping is dynamic.
89660017
SM
1472
1473*** `cl-labels' is slightly different from `labels'.
823b2fb6
GM
1474The difference is that it relies on the `lexical-binding' machinery
1475(as opposed to the `lexical-let' machinery used previously) to capture
1476definitions in closures, so such closures will only work if `lexical-binding'
1477is in use.
89660017 1478
f94b04fc 1479*** `cl-letf' is not exactly like `letf'.
4ddedf94
GM
1480The only difference is in details that relate to some deprecated usage
1481of `symbol-function' in place forms.
f94b04fc 1482
89660017 1483*** `progv' was rewritten to use the `let' machinery.
823b2fb6
GM
1484A side effect is that variables without corresponding values are bound
1485to nil rather than being made unbound.
89660017 1486
9512f820
GM
1487*** The following methods of extending `setf' are obsolete
1488(use features from gv.el instead):
1489`define-modify-macro' (use `gv-letplace')
031b2ea7
GM
1490`defsetf' (use `gv-define-simple-setter' or `gv-define-setter')
1491`define-setf-expander' (use `gv-define-setter' or `gv-define-expander')
2b4da3ff 1492`get-setf-method' no longer exists (see "Incompatible Lisp Changes")
f94b04fc 1493
6bc66c10 1494** Diff mode
f938eda9 1495
6bc66c10
GM
1496*** Changes are now highlighted using the same color scheme as in
1497modern VCSes. Deletions are displayed in red (new faces
1498`diff-refine-removed' and `smerge-refined-removed', and new definition
1499of `diff-removed'), insertions in green (new faces `diff-refine-added'
1500and `smerge-refined-added', and new definition of `diff-added').
f938eda9 1501
6bc66c10
GM
1502*** The variable `diff-use-changed-face' defines whether to use the
1503face `diff-changed', or `diff-removed' and `diff-added' to highlight
1504changes in context diffs.
2f940384 1505
6bc66c10
GM
1506*** The new command `diff-delete-trailing-whitespace' removes trailing
1507whitespace introduced by a diff.
f938eda9 1508
6bc66c10
GM
1509** Ediff now uses the same color scheme as Diff mode.
1510
1511** Python mode
1512
1513A new version of python.el, which provides several new features, including:
1514per-buffer shells, better indentation, Python 3 support, and improved
1515shell-interaction compatible with iPython (and virtually any other
1516text based shell).
1517
1518*** Some user options have been replaced/renamed, including (old -> new):
1519**** python-indent -> python-indent-offset
1520**** python-guess-indent -> python-indent-guess-indent-offset
1521**** python-pdbtrack-do-tracking-p -> python-pdbtrack-activate
1522**** python-use-skeletons -> python-skeleton-autoinsert
1523
1524*** Some user options have been removed, including:
1525
1526**** `python-indent-string-contents': Strings are never indented.
1527
1528**** `python-honour-comment-indentation':
d5b1b1aa 1529Comments are always considered as indentation markers.
6bc66c10
GM
1530
1531**** `python-continuation-offset': Indentation is automatically
1532calculated in a pep8 compliant way depending on the context.
1533
1534**** `python-shell-prompt-alist', `python-shell-continuation-prompt-alist':
1535Have no direct mapping as the shell interaction is completely different.
1536
1537**** `python-python-command', `python-jython-command':
1538Replaced by `python-shell-interpreter'.
1539
1540**** `inferior-python-filter-regexp', `python-remove-cwd-from-path',
1541`python-pdbtrack-minor-mode-string', `python-source-modes':
1542No longer relevant.
1543
1544*** Some commands have been replaced (old -> new):
1545**** python-insert-class -> python-skeleton-class
1546**** python-insert-def -> python-skeleton-def
1547**** python-insert-for -> python-skeleton-for
1548**** python-insert-if -> python-skeleton-if
1549**** python-insert-try/except -> python-skeleton-try
1550**** python-insert-try/finally -> python-skeleton-try
1551**** python-insert-while -> python-skeleton-while
1552**** python-find-function -> python-nav-jump-to-defun
1553**** python-next-statement -> python-nav-forward-sentence
1554**** python-previous-statement -> python-nav-backward-sentence
1555**** python-beginning-of-defun-function -> python-nav-beginning-of-defun
1556**** python-end-of-defun-function -> python-nav-end-of-defun
1557**** python-send-buffer -> python-shell-send-buffer
1558**** python-send-defun -> python-shell-send-defun
1559**** python-send-region -> python-shell-send-region
1560**** python-send-region-and-go -> emulate with python-shell-send-region
1561and python-shell-switch-to-shell
1562**** python-send-string -> python-shell-send-string
1563**** python-switch-to-python -> python-shell-switch-to-shell
1564**** python-describe-symbol -> python-eldoc-at-point
e76f0800 1565
f938eda9
CY
1566** D-Bus
1567
f938eda9
CY
1568*** New variables `dbus-compiled-version' and `dbus-runtime-version'.
1569
f938eda9
CY
1570*** The D-Bus object manager interface is implemented.
1571
f938eda9
CY
1572*** Variables of type :(u)int32 and :(u)int64 accept floating points,
1573if their value does not fit into Emacs's integer range.
1574
823b2fb6
GM
1575*** The function `dbus-call-method' is now non-blocking.
1576It can be interrupted by `C-g'. `dbus-call-method-non-blocking' is obsolete.
f938eda9 1577
823b2fb6 1578*** Signals can also be sent as unicast messages.
f938eda9 1579
f938eda9 1580*** The argument list of `dbus-register-signal' has been extended,
6bc66c10 1581according to the new match rule types of D-Bus.
f938eda9 1582
f938eda9
CY
1583*** `dbus-init-bus' supports private connections.
1584
f938eda9
CY
1585*** There is a new function `dbus-setenv'.
1586
6bc66c10
GM
1587** `desktop-path' no longer includes the "." directory.
1588Desktop files are now located in ~/.emacs.d by default.
f938eda9
CY
1589
1590** Dired
2f940384 1591
f938eda9
CY
1592*** `dired-do-async-shell-command' executes each file sequentially
1593if the command ends in `;' (when operating on multiple files).
1594Otherwise, it executes the command on each file in parallel.
2f940384 1595
823b2fb6
GM
1596*** Typing `M-n' in the minibuffer of `dired-do-chmod', `dired-do-chgrp',
1597`dired-do-chown', and `dired-do-touch' yanks the attributes of the
f938eda9 1598file at point.
2f940384 1599
f938eda9 1600*** When the region is active, `m' (`dired-mark'), `u' (`dired-unmark'),
823b2fb6 1601`DEL' (`dired-unmark-backward'), and `d' (`dired-flag-file-deletion')
f938eda9 1602mark/unmark/flag all files in the active region.
2f940384 1603
88c45e34 1604*** The minibuffer default for `=' (`dired-diff') has changed.
f938eda9
CY
1605It is now the backup file for the file at point, if one exists.
1606In Transient Mark mode the default is the file at the active mark.
2f940384 1607
f938eda9
CY
1608*** `M-=' is no longer bound to `dired-backup-diff' in Dired buffers.
1609The global binding for `M-=', `count-words-region' is in effect.
1610
02969baf
GM
1611** ERC
1612
6e5e9b70
GM
1613*** New module "notifications", which can send a notification when you
1614receive a private message or your nickname is mentioned.
02969baf
GM
1615
1616*** ERC will look up server/channel names via auth-source and use any
1617channel keys found.
f938eda9 1618
274f5de6
GM
1619*** New option `erc-lurker-hide-list', similar to `erc-hide-list', but
1620only applies to messages sent by lurkers.
f925b109 1621
6bc66c10 1622** reStructuredText mode
f938eda9 1623
6bc66c10
GM
1624*** Keybindings (see `C-c C-h'), TAB indentation, filling and auto-filling,
1625fontification, comment handling, and customization have all been revised
1626and improved.
f938eda9 1627
6bc66c10 1628*** Support for `imenu' and `which-function-mode'.
f938eda9 1629
6bc66c10
GM
1630*** The reStructuredText syntax is more closely covered.
1631Sphinx support has been improved.
f938eda9 1632
6bc66c10 1633*** `rst-insert-list' inserts new list or continues existing lists.
f938eda9 1634
6bc66c10 1635*** A negative prefix argument always works for `rst-adjust'.
f938eda9 1636
6bc66c10 1637*** The window configuration is reset after displaying a TOC.
bc7be45d 1638
6bc66c10 1639*** The constant `rst-version' describes the rst.el package version.
358c19d9 1640
dba3cda3
GM
1641** Ruby mode
1642
1643*** Support for percent literals and recognition of regular expressions
1644in method calls without parentheses with more methods, including Cucumber
1645steps definitions.
1646
1647*** Improved syntax highlighting and indentation.
1648
1649*** New command `ruby-toggle-block', bound to `C-c {'.
1650
1651*** Some non-standard keybindings/commands have been removed:
1652
1653**** `ruby-electric-brace'; use `electric-indent-mode' instead.
1654
1655**** `ruby-mark-defun'; use `mark-defun'.
1656
1657**** `ruby-beginning-of-defun' and `ruby-end-of-defun' are replaced by
1658appropriate settings for the variables `beginning-of-defun-function'
1659and `end-of-defun-function'.
1660
1661**** Non-standard keybindings for `backward-kill-word', `comment-region',
1662`reindent-then-newline-and-indent' and `newline' have been removed.
1663
6bc66c10 1664** Shell Script mode
40d8bcb8 1665
6bc66c10 1666*** Pairing of parens/quotes uses `electric-pair-mode' instead of skeleton-pair.
40d8bcb8 1667
6bc66c10 1668*** `sh-electric-here-document-mode' now controls auto-insertion of here-docs.
40d8bcb8 1669
6bc66c10 1670*** `sh-use-smie' lets you choose a new indentation and navigation code.
40d8bcb8 1671
6bc66c10 1672** VHDL mode
40d8bcb8 1673
6bc66c10 1674*** The free software compiler GHDL is supported (and now the default).
40d8bcb8 1675
6bc66c10 1676*** Support for the VHDL-AMS packages has been added/updated.
40d8bcb8 1677
6bc66c10 1678*** Updated to the 2002 revision of the VHDL standard.
40d8bcb8 1679
6bc66c10 1680*** Accepts \r and \f as whitespace.
40d8bcb8 1681
6bc66c10 1682** Apropos
40d8bcb8 1683
6bc66c10
GM
1684*** The faces used by Apropos are now directly customizable.
1685These faces are named `apropos-symbol', `apropos-keybinding', and so on;
1686see the `apropos' Custom group for details.
d13c8be6 1687
6bc66c10
GM
1688*** The old options whose values specified faces to use have been removed
1689(i.e. `apropos-symbol-face', `apropos-keybinding-face', etc.).
d13c8be6 1690
6bc66c10 1691** Buffer Menu
d13c8be6 1692
6bc66c10 1693*** This package has been rewritten to use Tabulated List mode.
d13c8be6 1694
6bc66c10
GM
1695*** Option `Buffer-menu-buffer+size-width' is now obsolete.
1696Use `Buffer-menu-name-width' and `Buffer-menu-size-width' instead.
d13c8be6 1697
86e100a6
GM
1698** Calc
1699
1700*** Algebraic simplification mode is now the default.
1701To restrict to the limited simplifications given by the former
1702default simplification mode, use `m I'.
1703
6bc66c10 1704** Calendar
d13c8be6 1705
6bc66c10
GM
1706*** You can customize the header text that appears above each calendar month.
1707See the variable `calendar-month-header'.
d13c8be6 1708
6bc66c10 1709*** New LaTeX calendar style, produced by `cal-tex-cursor-week2-summary'.
ee97deee 1710
6bc66c10
GM
1711*** The calendars produced by cal-html include holidays.
1712Customize `cal-html-holidays' to change this.
8b0823d6 1713
0058cae2
GM
1714** CEDET
1715
1716*** The major modes from the parser generators "Bovine" and "Wisent"
1717are now properly integrated in Emacs. The file suffixes ".by" and ".wy"
1718are in `auto-mode-alist', and the corresponding manuals are included.
1719
1720*** EDE
1721
1722**** Menu support for the "Configuration" feature. This allows users to
1723choose the active configuration (such as debug or install) from the menu.
1724
1725**** New command `ede-set' to interactively set project-local variables.
1726
1727**** Support for compiling, debugging, and running in "generic" projects.
1728
1729**** Autoconf editing support for M4 macros with complex arguments.
1730
1731**** Compilation support for the "linux" project type.
1732
1733**** "simple" projects have been removed; use "generic" projects instead.
1734
1735*** Semantic
1736
1737**** Support for parsing #include statements inside a namespace in C/C++.
1738
1739**** Improved support for 'extern "C"' declarations in C/C++.
1740
1741**** The ability to ignore more common special C/C++ preprocessor symbols,
1742such as '__nonnull' and '__asm'. Add '__cplusplus' macro when parsing C++.
1743If available, include cdefs.h as an additional source of preprocessor symbols.
1744
1745**** Improved C/C++ function pointer parsing.
1746
1747**** In Python, support for converting imports to include file names.
1748
1749**** Ability to dynamically determine the Python load path.
1750
1751**** Support for the Python 'WITH' and 'AT' keywords.
1752
1753**** Improved tooltip completion.
1754
1755*** SRecode
1756
1757**** The SRecode manual is now included.
1758
1759**** Tag generation supports constructor/destructor settings and system
1760include differentiation.
1761
1762**** Addition of 'Framework' support: Frameworks are specified when a
1763particular kind of library (such as Android) is needed in a common language
1764mode (like Java).
1765
1766**** Support for nested templates and let variables override based on priority.
1767
1768**** Support for merging tables from multiple related modes, such as
1769default -> c++ -> arduino.
1770
6bc66c10 1771** Compile has a new option `compilation-always-kill'.
42917e79 1772
6bc66c10 1773** Customize
35d98877 1774
6bc66c10 1775*** `custom-reset-button-menu' now defaults to t.
35d98877 1776
6bc66c10
GM
1777*** Non-option variables are never matched in `customize-apropos' and
1778`customize-apropos-options' (i.e., the prefix argument does nothing for
1779these commands now).
782fbf2a 1780
f938eda9 1781** Term
782fbf2a 1782
823b2fb6
GM
1783*** The variables `term-default-fg-color' and `term-default-bg-color'
1784are now deprecated in favor of the customizable face `term'.
fc72b15c 1785
02969baf
GM
1786*** You can customize how to display ANSI terminal colors and styles
1787by customizing the corresponding `term-color-<COLOR>',
1788`term-color-underline' and `term-color-bold' faces.
cf20dee0 1789
05ecb497 1790** Tramp
2f940384 1791
02969baf 1792*** The syntax has been extended in order to allow ad-hoc proxy definitions.
05ecb497 1793
823b2fb6 1794*** Remote processes are now also supported on remote MS-Windows hosts.
05ecb497 1795
ce7b18ec 1796** URL
2f940384 1797
ce7b18ec
CY
1798*** Structs made by `url-generic-parse-url' have nil `attributes' slot.
1799Previously, this slot stored semicolon-separated attribute-value pairs
1800appended to some imap URLs, but this is not compatible with RFC 3986.
823b2fb6 1801So now the `filename' slot stores the entire path and query components,
ce7b18ec 1802and the `attributes' slot is always nil.
2f940384 1803
ce7b18ec
CY
1804*** New function `url-encode-url' for encoding a URI string.
1805The `url-retrieve' function now uses this to encode its URL argument,
1806in case that is not properly encoded.
1807
843571cb
LMI
1808*** New command `url-cookie-list' displays all the current cookies, and
1809allows deleting selected cookies.
1810
6bc66c10
GM
1811** notifications.el supports now version 1.2 of the Notifications API.
1812The function `notifications-get-capabilities' returns the supported
1813server properties.
f938eda9 1814
6bc66c10
GM
1815** Flymake uses fringe bitmaps to indicate errors and warnings.
1816See `flymake-fringe-indicator-position', `flymake-error-bitmap' and
1817`flymake-warning-bitmap'.
f938eda9 1818
6bc66c10
GM
1819** The FFAP option `ffap-url-unwrap-remote' can now be a list of strings,
1820specifying URL types that should be converted to remote file names at
1821the FFAP prompt. The default is now '("ftp").
f938eda9 1822
6bc66c10
GM
1823** New Ibuffer `derived-mode' filter, bound to `/ M'.
1824The old binding for `/ M' (filter by used-mode) is now bound to `/ m'.
f938eda9 1825
6bc66c10
GM
1826** New option `mouse-avoidance-banish-position' specifies where the
1827`banish' mouse avoidance setting moves the mouse.
ce7b18ec 1828
6bc66c10
GM
1829** In Perl mode, new option `perl-indent-parens-as-block' causes non-block
1830closing brackets to be aligned with the line of the opening bracket.
f938eda9 1831
6bc66c10 1832** In Proced mode, new command `proced-renice' renices marked processes.
f938eda9 1833
6bc66c10
GM
1834** New option `async-shell-command-buffer' specifies the buffer to use
1835for a new asynchronous `shell-command' when the default output buffer
1836`*Async Shell Command*' is already in use.
f938eda9 1837
6bc66c10
GM
1838** SQL mode has a new option `sql-db2-escape-newlines'.
1839If non-nil, newlines sent to the command interpreter will be escaped
1840by a backslash. The default does not escape the newlines and assumes
1841that the sql statement will be terminated by a semicolon.
f938eda9 1842
6bc66c10
GM
1843** New command `tabulated-list-sort', bound to `S' in Tabulated List mode
1844(and modes that derive from it), sorts the column at point, or the Nth
1845column if a numeric prefix argument is given.
f938eda9 1846
02969baf 1847** `which-func-modes' now defaults to t, so Which Function mode, when
05b621a6 1848enabled, applies to all applicable major modes.
f938eda9 1849
6bc66c10 1850** `winner-mode-hook' now runs when the mode is disabled, as well as when
823b2fb6 1851it is enabled.
f938eda9 1852
6bc66c10
GM
1853** Follow mode no longer works by using advice.
1854The option `follow-intercept-processes' has been removed.
1855
1856** `javascript-generic-mode' is now an obsolete alias for `js-mode'.
f938eda9 1857
d1069532
SM
1858** Hooks renamed to avoid obsolete "-hooks" suffix:
1859*** semantic-lex-reset-hooks -> semantic-lex-reset-functions
1860*** semantic-change-hooks -> semantic-change-functions
1861*** semantic-edits-new-change-hooks -> semantic-edits-new-change-functions
1862*** semantic-edits-delete-change-hooks -> semantic-edits-delete-change-functions
1863*** semantic-edits-reparse-change-hooks -> semantic-edits-reparse-change-functions
1864*** semanticdb-save-database-hooks -> semanticdb-save-database-functions
1865*** c-prepare-bug-report-hooks -> c-prepare-bug-report-hook
1866*** rcirc-sentinel-hooks -> rcirc-sentinel-functions
1867*** rcirc-receive-message-hooks -> rcirc-receive-message-functions
1868*** rcirc-activity-hooks -> rcirc-activity-functions
1869*** rcirc-print-hooks -> rcirc-print-functions
1870*** dbus-event-error-hooks -> dbus-event-error-functions
1871*** eieio-pre-method-execution-hooks -> eieio-pre-method-execution-functions
1872*** checkdoc-style-hooks -> checkdoc-style-functions
1873*** checkdoc-comment-style-hooks -> checkdoc-comment-style-functions
1874*** archive-extract-hooks -> archive-extract-hook
1875*** filesets-cache-fill-content-hooks -> filesets-cache-fill-content-hook
1876*** hfy-post-html-hooks -> hfy-post-html-hook
1877*** nndiary-request-create-group-hooks -> nndiary-request-create-group-functions
1878*** nndiary-request-update-info-hooks -> nndiary-request-update-info-functions
1879*** nndiary-request-accept-article-hooks -> nndiary-request-accept-article-functions
1880*** gnus-subscribe-newsgroup-hooks -> gnus-subscribe-newsgroup-functions
f938eda9 1881
6bc66c10 1882** Obsolete packages
2f940384 1883
797e6e88
SM
1884*** assoc.el
1885In most cases, assoc+member+push+delq work just as well.
1886And in any case it's just a terrible package: ugly semantics, terrible
1887inefficiency, and not namespace-clean.
3c74813a 1888*** bruce.el
b4617547 1889*** cust-print.el
daed4003 1890*** ledit.el
82f289a4 1891*** mailpost.el
d57de7fe 1892*** mouse-sel.el
3c74813a 1893*** patcomp.el
1a9c6830 1894
a1ed8b05 1895\f
2a1e2476 1896* Incompatible Lisp Changes in Emacs 24.3
b4d3bc10 1897
6bc66c10
GM
1898** Docstrings starting with `*' no longer indicate user options.
1899Only variables defined using `defcustom' are considered user options.
1900The function `user-variable-p' is now an obsolete alias for
1901`custom-variable-p'.
090cf9db 1902
6bc66c10
GM
1903** The return values of `defalias', `defun' and `defmacro' have changed,
1904and are now undefined. For backwards compatibility, `defun' and
1905`defmacro' currently return the name of the newly defined
1906function/macro, but this should not be relied upon.
090cf9db 1907
823b2fb6
GM
1908** `random' by default now returns a different random sequence in
1909every Emacs run. Use `(random S)', where S is a string, to set the
0e23ef9d
PE
1910random seed to a value based on S, in order to get a repeatable
1911sequence in later calls.
1912
d32e47af
LM
1913** If the NEWTEXT arg to `replace-match' contains a substring "\?",
1914that substring is inserted literally even if the LITERAL arg is
1915non-nil, instead of causing an error to be signaled.
1916
2cec368c
MR
1917** `select-window' now always makes the window's buffer current.
1918It does so even if the window was selected before.
1919
6bc66c10
GM
1920** The function `x-select-font' can return a font spec, instead of a
1921font name as a string. Whether it returns a font spec or a font name
1922depends on the graphical library.
bbf908bc 1923
eeddc531
CY
1924** `face-spec-set' no longer sets frame-specific attributes when the
1925third argument is a frame (that usage was obsolete since Emacs 22.2).
1926
6bc66c10 1927** `set-buffer-multibyte' now signals an error in narrowed buffers.
a59d531e 1928
ab7f1c43
GM
1929** The CL package's `get-setf-method' function no longer exists.
1930Generalized variables are now part of core Emacs Lisp, and implemented
1931differently to the way cl.el used to do it. It is not possible to
1932define a compatible replacement for `get-setf-method'. See the file
1933gv.el for internal details of the new implementation.
1934
6bc66c10
GM
1935** The arguments of `dbus-register-signal' are no longer just strings,
1936but keywords or keyword-string pairs. The old argument list will
1937still be supported for Emacs 24.x.
72b255c7 1938
6bc66c10 1939** Miscellaneous name changes
823b2fb6
GM
1940Some Lisp symbols have been renamed to correct their spelling,
1941or to be more consistent with standard Emacs terminology.
72b255c7 1942
72b255c7 1943*** Renamed functions
72b255c7
PE
1944**** hangul-input-method-inactivate -> hangul-input-method-deactivate
1945**** inactivate-input-method -> deactivate-input-method
1946**** quail-inactivate -> quail-deactivate
1947**** robin-inactivate -> robin-deactivate
1948**** viper-inactivate-input-method -> viper-deactivate-input-method
1949**** viper-inactivate-input-method-action ->
1950 viper-deactivate-input-method-action
1951**** ucs-input-inactivate -> ucs-input-deactivate
1952
1953*** Renamed hooks
1954The old hooks are still supported for backward compatibility, but they
1955are deprecated and will be removed eventually.
72b255c7
PE
1956**** input-method-inactivate-hook -> input-method-deactivate-hook
1957**** robin-inactivate-hook -> robin-deactivate-hook
1958**** quail-inactivate-hook -> quail-deactivate-hook
1959
6bc66c10 1960*** Renamed variables
72b255c7
PE
1961**** follow-deactive-menu -> follow-inactive-menu
1962**** inactivate-current-input-method-function ->
1963 deactivate-current-input-method-function
1964
02969baf
GM
1965** Some obsolete functions, variables, and faces have been removed:
1966*** `last-input-char', `last-command-char', `unread-command-char'
78f3273a
CY
1967*** `facemenu-unlisted-faces'
1968*** `rmail-decode-mime-charset'
a5f2b6ec
CY
1969*** `iswitchb-read-buffer'
1970*** `sc-version', `sc-submit-bug-report'
1971*** `set-char-table-default'
02969baf 1972*** `string-to-sequence' (use `string-to-list' or `string-to-vector')
a5f2b6ec 1973*** `compile-internal'
02969baf 1974*** `modeline'
59f7af81 1975*** `mode-line-inverse-video'
02969baf 1976*** `follow-mode-off-hook'
a5f2b6ec 1977*** `cvs-commit-buffer-require-final-newline'
63820c5c 1978(use `log-edit-require-final-newline' instead)
a5f2b6ec
CY
1979*** `cvs-changelog-full-paragraphs'
1980(use `log-edit-changelog-full-paragraphs' instead)
1981*** `cvs-diff-ignore-marks', `cvs-diff-buffer-name'
1982*** `vc-ignore-vc-files' (use `vc-handled-backends' instead)
1983*** `vc-master-templates' (use `vc-handled-backends' instead)
1984*** `vc-checkout-carefully'
78f3273a 1985
a1ed8b05 1986\f
93e0bed6 1987* Lisp Changes in Emacs 24.3
ef24141c 1988
2ee3d7f0 1989** CL-style generalized variables are now in core Elisp.
f938eda9 1990`setf' is autoloaded; `push' and `pop' accept generalized variables.
ebdbfb95
GM
1991You can define your own generalized variables using `gv-define-simple-setter',
1992`gv-define-setter', etc.
2ee3d7f0 1993
6bc66c10
GM
1994** Emacs tries to macroexpand interpreted (non-compiled) files during load.
1995This can significantly speed up execution of non-byte-compiled code,
1996but can also bump into previously unnoticed cyclic dependencies.
1997These are generally harmless: they will simply cause the macro calls
1998to be left for later expansion (as before), but will result in a
1999warning ("Eager macro-expansion skipped due to cycle") describing the cycle.
2000You may wish to restructure your code so this does not happen.
2001
2002** New sampling-based Elisp profiler.
2003Try M-x profiler-start, do some work, and then call M-x profiler-report.
2004When finished, use M-x profiler-stop. The sampling rate can be based on
2005CPU time or memory allocations.
2006
500fcedc
SM
2007** `defun' also accepts a (declare DECLS) form, like `defmacro'.
2008The interpretation of the DECLS is determined by `defun-declarations-alist'.
2009
6bc66c10
GM
2010** New macros `setq-local' and `defvar-local'.
2011
2012** Face underlining can now use a wave.
2f940384 2013
6bc66c10 2014** `read-regexp' has a new argument HISTORY; the first argument PROMPT
cd996018 2015of `read-regexp' accepts a string ending with a colon and space, and its
823b2fb6 2016second argument DEFAULTS can be a list of strings accessible via `M-n'
cd996018
CY
2017in the minibuffer ahead of other hard-coded useful regexp-related values.
2018More commands use `read-regexp' now to read their regexp arguments.
2019
f938eda9 2020** Completion
500fcedc 2021
f938eda9
CY
2022*** New function `completion-table-with-quoting' to handle completion
2023in the presence of quoting, such as file completion in shell buffers.
f95e9344 2024
f938eda9
CY
2025*** New function `completion-table-subvert' to use an existing completion
2026table, but with a different prefix.
2027
6bc66c10 2028** Debugger
f95e9344 2029
f938eda9
CY
2030*** New error type and new function `user-error'.
2031These do not trigger the debugger.
f95e9344 2032
57fc0fee
GM
2033*** New option `debugger-bury-or-kill', saying what to do with the
2034debugger buffer when exiting debug.
45b82ad0
SM
2035
2036*** Set `debug-on-message' to enter the debugger when a certain
2037message is displayed in the echo area. This can be useful when trying
2038to work out which code is doing something.
2f940384 2039
45b82ad0
SM
2040*** New var `inhibit-debugger', automatically set to prevent accidental
2041recursive invocations.
fa2bcf43 2042
6bc66c10 2043** Window handling
2f940384 2044
6bc66c10
GM
2045*** New command `fit-frame-to-buffer' adjusts the frame height to
2046fit the contents.
2f940384 2047
6bc66c10
GM
2048*** The command `fit-window-to-buffer' can adjust the frame height
2049if the new option `fit-frame-to-buffer' is non-nil.
8e17c9ba 2050
7fe37cfc
GM
2051*** New macro `with-temp-buffer-window', similar to
2052`with-output-to-temp-buffer'.
fa2bcf43 2053
8e17c9ba
MR
2054*** `temp-buffer-resize-mode' no longer resizes windows that have been
2055reused.
c5e28e39 2056
823b2fb6 2057*** New option `switch-to-buffer-preserve-window-point' to restore a
43bcfda6 2058window's point when switching buffers.
7c82753d 2059
9139632a
JL
2060*** New display action function `display-buffer-no-window' to not
2061display the buffer in a window.
2062
2063*** New display action alist entry `allow-no-window' to indicate the
f0cfa5fe 2064caller of `display-buffer' is ready to handle the case of not
9139632a 2065displaying the buffer in a window.
f0cfa5fe 2066
6bc66c10
GM
2067*** New display action alist entries `window-height' and `window-width'
2068specify the size of new windows created by `display-buffer'.
2069
2070*** New display action alist entry `pop-up-frame-parameters', if
2071non-nil, specifies frame parameters to give any newly-created frame.
7c82753d 2072
fa2bcf43
MR
2073*** New display action alist entry `inhibit-switch-frame', if non-nil,
2074tells display action functions to avoid changing which frame is
2075selected.
2f940384 2076
fa2bcf43
MR
2077*** New display action alist entry `previous-window', if non-nil,
2078specifies window to reuse in `display-buffer-in-previous-window'.
2f940384 2079
6bc66c10
GM
2080*** New display action functions `display-buffer-below-selected',
2081and `display-buffer-in-previous-window'.
2082
2083*** The functions `get-lru-window', `get-mru-window' and `get-largest-window'
2084now accept a third argument to avoid choosing the selected window.
2085
2086*** Additional values recognized for option `window-combination-limit'.
5938d519 2087
77f1f99c
CY
2088*** The following variables are obsolete, as they can be replaced by
2089appropriate entries in the `display-buffer-alist' function introduced
2090in Emacs 24.1:
823b2fb6 2091**** `dired-shrink-to-fit'
77f1f99c 2092**** `display-buffer-reuse-frames'
823b2fb6 2093**** `display-buffer-function'
77f1f99c 2094**** `special-display-buffer-names'
823b2fb6 2095**** `special-display-frame-alist'
77f1f99c 2096**** `special-display-function'
823b2fb6 2097**** `special-display-regexps'
77f1f99c 2098
ab0fa4e4 2099** Time
2f940384 2100
ab0fa4e4
PE
2101*** `current-time-string' no longer requires that its argument's year
2102must be in the range 1000..9999. It now works with any year supported
2103by the underlying C implementation.
2f940384 2104
f938eda9
CY
2105*** `current-time' now returns extended-format time stamps
2106(HIGH LOW USEC PSEC), where the new PSEC slot specifies picoseconds.
2107PSEC is typically a multiple of 1000 on current machines. Other
823b2fb6
GM
2108functions that use this format, such as `file-attributes' and
2109`format-time-string', have been changed accordingly. Old-format time
f938eda9 2110stamps are still accepted.
2f940384 2111
823b2fb6 2112*** The format of timers in `timer-list' and `timer-idle-list' is now
f938eda9
CY
2113[TRIGGERED-P HI-SECS LO-SECS USECS REPEAT-DELAY FUNCTION ARGS IDLE-DELAY PSECS].
2114The PSECS slot is new, and uses picosecond resolution. It can be
823b2fb6 2115accessed via the new `timer--psecs' accessor.
2f940384 2116
c4132fd4
PE
2117*** Last-modified time stamps in undo lists now are of the form
2118(t HI-SECS LO-SECS USECS PSECS) instead of (t HI-SECS . LO-SECS).
2119
0058cae2
GM
2120** EIEIO
2121
2122*** Improved security when handling persistent objects:
2123
2124**** `eieio-persistent-read' now features optional arguments for specifying
2125the class to load, as well as a flag stating whether subclasses are allowed;
2126if provided, other classes will be rejected by the reader. For
2127compatibility with existing code, if the class is omitted only a
2128warning is issued.
2129
2130**** New specialized reader for pulling in classes and signaling errors
2131without evaluation of suspicious code.
2132
2133**** All slots that contain objects must have a :type. Slots with lists
2134of objects must use a new type predicate for a list of an object type.
2135
2136*** Support for `find-function' and similar utilities, through the addition
2137of filename support to generated symbols.
2138
f938eda9 2139** Floating point functions now always return special values like NaN,
823b2fb6 2140instead of signaling errors, if given invalid args; e.g., (log -1.0).
f938eda9
CY
2141Previously, they returned NaNs on some platforms but signaled errors
2142on others. The affected functions are acos, asin, tan, exp, expt,
2143log, log10, sqrt, and mod.
2144
6bc66c10 2145** New fringe bitmap `exclamation-mark'.
f938eda9 2146
6bc66c10
GM
2147** Miscellaneous changes to special forms and macros
2148
2149*** `defun' and `defmacro' are now macros rather than special forms.
2150
2151*** `kbd' is now a function rather than a macro.
2152
2153** Miscellaneous new functions
2154
8cd22a08
CY
2155*** `set-transient-map' sets up a temporary keymap, active for one key
2156(and optionally more). This keymap takes precedence over other maps.
f938eda9 2157
847a0561 2158*** `autoloadp' tests if its argument is an autoloaded object.
2f940384 2159
847a0561 2160*** `autoload-do-load' performs the autoloading operation.
2f940384 2161
f938eda9 2162*** `buffer-narrowed-p' tests if the buffer is narrowed.
2f940384 2163
f938eda9 2164*** `file-name-base' returns a file name sans directory and extension.
2f940384 2165
f938eda9 2166*** `function-get' fetches a function property, following aliases.
c990426a 2167
f938eda9 2168*** `posnp' tests if an object is a `posn'.
f938eda9 2169
f938eda9 2170*** `system-users' returns the user names on the system.
547d6865 2171
f938eda9 2172*** `system-groups' returns the group names on the system.
f938eda9 2173
f938eda9 2174*** `tty-top-frame' returns the topmost frame of a text terminal.
c990426a 2175
f938eda9 2176** The following functions and variables are obsolete:
847a0561 2177*** `automount-dir-prefix' (use `directory-abbrev-alist')
f938eda9 2178*** `buffer-has-markers-at'
1a9c6830 2179*** `macro-declaration-function' (use `macro-declarations-alist')
847a0561 2180*** `window-system-version' (provides no useful information)
93cacb6d 2181*** `dired-pop-to-buffer' (use `dired-mark-pop-up')
0e2ae83d 2182*** `query-replace-interactive'
49238e7f 2183*** `font-list-limit' (has had no effect since Emacs < 23)
86aa551c 2184
adce950d 2185\f
93e0bed6 2186* Changes in Emacs 24.3 on Non-Free Operating Systems
9078ead6 2187
4e98ad15 2188** Cygwin builds can use the native MS Windows user interface.
823b2fb6 2189Pass `--with-w32' to configure. The default remains the X11 interface.
53a63be6 2190
1a9c6830 2191** Two new functions are available in Cygwin builds:
6e9f7997
DC
2192`cygwin-convert-file-name-from-windows' and
2193`cygwin-convert-file-name-to-windows'. These functions allow Lisp
2194code to access the Cygwin file-name mapping machinery to convert
2195between Cygwin and Windows-native file and directory names.
de6e3a60 2196
4e98ad15 2197** When invoked with the -nw switch to run on the Windows text-mode terminal,
1ab0c851 2198Emacs now supports `mouse-highlight', help-echo (in the echo area), and
4e98ad15
GM
2199`mouse-autoselect-window'.
2200
1a9c6830 2201** On MS Windows Vista and later Emacs now supports symbolic links.
4e98ad15 2202
823b2fb6 2203** On MS Windows, you can pass `--without-libxml2' to configure.bat to omit
4e98ad15
GM
2204support for libxml2, even if its presence is detected.
2205
4e98ad15
GM
2206** On Mac OS X, the Nextstep port requires OS X 10.4 or later.
2207
823b2fb6 2208** On Mac OS X, configure no longer automatically adds the Fink "/sw"
4e98ad15
GM
2209directories to the search path. You must add them yourself if you want them.
2210
2a1e2476
GM
2211\f
2212* Changes in Emacs 24.2
2213
5190da91 2214** This is mainly a bug-fix release.
6dad7178 2215
9078ead6 2216\f
eb199145 2217* Installation Changes in Emacs 24.1
09e18d03 2218
31fd3586
GM
2219** Emacs can be compiled with Gtk+ 3.0 if you pass --with-x-toolkit=gtk3
2220to configure. Note that other libraries used by Emacs, RSVG and GConf,
2221also depend on Gtk+. You can disable them with --without-rsvg and
2222--without-gconf.
338648ad 2223
31fd3586
GM
2224** Emacs can be compiled with GnuTLS support.
2225This happens by default if a suitably recent version of the library is
2226found at build time. To prevent this, use the configure option
2227`--without-gnutls'. See below for GnuTLS features.
338648ad 2228
31fd3586
GM
2229** Emacs can be compiled with SELinux support.
2230This happens by default if a suitably recent version of the library is
2231found at build time. To prevent this, use the configure option
2232`--without-selinux'. See below for SELinux features.
aded53ff 2233
31fd3586
GM
2234** Emacs can be compiled with ImageMagick support.
2235This happens by default if a suitably recent version of the library is
2236found at build time. To prevent this, use the configure option
2237`--without-imagemagick'. See below for ImageMagick features.
c1f10868 2238This feature is not available for the Nextstep or MS ports.
d9170db5 2239
043efd56
GM
2240** Emacs can be compiled with libxml2 support.
2241This happens by default if a suitably recent version of the library is
2242found at build time. To prevent this, use the configure option
2243`--without-xml2'. See below for libxml2 features.
2244
7d301ae6
CY
2245** By default, the installed Info and man pages are compressed.
2246You can disable this by configuring --without-compress-info.
2247
7d301ae6 2248** New configure option --with-wide-int.
81eafe29 2249With it, Emacs integers typically have 62 bits, even on 32-bit machines.
0a768890
PE
2250On 32-bit hosts, this raises the limit on buffer sizes from about 512 MiB
2251to about 2 GiB.
81eafe29 2252
7d301ae6 2253** New configure options: --with-mmdf, --with-mail-unlink, --with-mailhost.
31fd3586
GM
2254These provide no new functionality, they just remove the need to edit
2255lib-src/Makefile by hand in order to use the associated features.
2256
7d301ae6 2257** New configure option --enable-use-lisp-union-type.
31fd3586
GM
2258This is only useful for Emacs developers to debug certain types of bugs.
2259This is not a new feature; only the configure flag is new.
041d709f
CY
2260
2261** The standalone programs digest-doc and sorted-doc are removed.
2262Emacs now uses Lisp commands `doc-file-to-man' and `doc-file-to-info'.
2263
041d709f
CY
2264** The standalone program `fakemail' is removed.
2265If you need it, feedmail.el provides a superset of the functionality.
2266
0bfd685e 2267\f
eb199145 2268* Startup Changes in Emacs 24.1
4a263588 2269
198a7a97 2270** The --unibyte, --multibyte, --no-multibyte, and --no-unibyte
adbf62ff
GM
2271command line arguments, and the EMACS_UNIBYTE environment variable, no
2272longer have any effect. (They were declared obsolete in Emacs 23.)
198a7a97 2273
66b7b0fe 2274** New command line option `--no-site-lisp' removes site-lisp directories
1b5e5b0c
GM
2275from load-path. -Q now implies this. This option does not affect the
2276EMACSLOADPATH environment variable (and hence has no effect for
c8d59ba3 2277Nextstep builds).
66b7b0fe 2278
0bfd685e 2279\f
eb199145 2280* Changes in Emacs 24.1
7841339b 2281
a2a25d24 2282** Completion
fdeb32ec 2283
dfdb4cad
CY
2284*** Many packages now use the `completion-at-point' command,
2285rather than implementing separate completion commands.
2286
de0bde62 2287*** `completion-at-point' now handles tags and semantic completion.
dfdb4cad 2288
a2a25d24
SM
2289*** Completion in a non-minibuffer now tries to detect the end of completion
2290and pops down the *Completions* buffer accordingly.
dfdb4cad
CY
2291
2292*** New option `completion-cycle-threshold' allows completion cycling.
2293
2294*** New option `completion-category-overrides' for overriding the
2c719188 2295default completion style in certain circumstances.
dfdb4cad 2296
a2a25d24 2297*** New completion style `substring'.
dfdb4cad
CY
2298
2299*** Completion of buffer names uses `substring' completion by default.
2300
2301*** The option `widget-complete-field' has been removed.
620c53a6 2302
6870aaef 2303** Mail changes
dfdb4cad 2304
7d301ae6
CY
2305*** The first time you try sending mail, Emacs asks for a mail method.
2306This is implemented by a new default for `send-mail-function', which
2307is `sendmail-query-once'. This offers to use the smtpmail package, or
2308to use the old defaults relying on external mail facilities
2309(`sendmail-send-it' on GNU/Linux and other Unix-like systems, and
2310`mailclient-send-it' on Windows).
dfdb4cad 2311
e78e7e48
CY
2312*** Typing `C-c m' in the buffer made by `M-x report-emacs-bug'
2313transfers the report to your desktop's preferred mail client, if there
2314is one. This uses either the "xdg-email" utility, or Mac OS's "open"
2315command.
dfdb4cad 2316
7d301ae6
CY
2317*** See Changes in Specialized Modes and Packages for SMTPmail changes
2318and Mail mode changes
3f88cd72 2319
041d709f 2320** Emacs server and client changes
dfdb4cad 2321
7d301ae6 2322*** New option `server-port' specifies the port for TCP Emacs servers.
dfdb4cad 2323
041d709f 2324*** New emacsclient argument -q/--quiet suppresses some status messages.
dfdb4cad 2325
7d301ae6
CY
2326*** New emacsclient argument --frame-parameters specifies the frame
2327parameters of any newly-created graphical frame.
dfdb4cad
CY
2328
2329*** If emacsclient shuts down due to Emacs signaling an error,
2330its exit status is 1.
2331
041d709f
CY
2332*** New emacsclient argument --parent-id ID.
2333This opens a client frame in parent X window ID, via XEmbed, similar
2334to the --parent-id argument to Emacs.
2335
d0ce9f8c
MB
2336** Internationalization changes
2337
d0ce9f8c 2338*** Emacs now supports display and editing of bidirectional text.
7d301ae6
CY
2339Right-to-left (RTL) scripts, such as Arabic, Farsi, and Hebrew, are
2340displayed in the correct visual order as expected by users of those
dfdb4cad
CY
2341scripts. The display reordering is a "full bidirectionality" class
2342implementation of the Unicode Bidirectional Algorithm (UBA). Buffers
2343with no RTL text should look exactly the same as before.
f4b6ba46 2344
041d709f 2345**** New buffer-local variable `bidi-display-reordering'.
7d301ae6 2346To disable display reordering in a buffer, change this to nil.
d20e1419 2347
041d709f
CY
2348**** New buffer-local variable `bidi-paragraph-direction'.
2349If nil (the default), Emacs determines the base direction of each
dfdb4cad
CY
2350paragraph from its text, as specified by the UBA. Setting the value
2351to `right-to-left' or `left-to-right' forces a base direction on each
2352paragraph.
f4b6ba46 2353
7d301ae6
CY
2354Paragraphs with right-to-left base direction are displayed starting at
2355the right window edge.
f1816485 2356
dfdb4cad
CY
2357*** Enhanced support for characters with no glyphs in available fonts,
2358or, on text terminals, characters that cannot be encoded by the
2359terminal coding system. The new option `glyphless-char-display-control'
2360specifies how to display them: as a hexadecimal code in a box, a thin
23611-pixel space, an empty box, etc.
d0ce9f8c 2362
9702b7a1
GM
2363*** New input methods for Farsi and Bulgarian
2364(farsi-isiri-9147, farsi-transliterate-banan, bulgarian-alt-phonetic).
041d709f 2365
939db9ac
CY
2366*** `nobreak-char-display' now also highlights Unicode hyphen chars
2367(U+2010 and U+2011).
2368
7d301ae6 2369*** New Hebrew translation of the Emacs Tutorial.
31fd3586
GM
2370Type `C-u C-h t' to choose it in case your language setup doesn't
2371automatically select it.
2372
7d301ae6
CY
2373** An Emacs Lisp package manager is now included.
2374This is a convenient way to download and install additional packages,
2375from a package repository at http://elpa.gnu.org.
dfdb4cad 2376
7d301ae6
CY
2377*** M-x list-packages shows a list of packages, which can be
2378selected for installation.
dfdb4cad 2379
7d301ae6 2380*** New command `describe-package', bound to `C-h P'.
dfdb4cad 2381
7d301ae6
CY
2382*** By default, all installed packages are loaded automatically when
2383Emacs starts up. To disable this, set `package-enable-at-startup' to
2384nil. To specify the packages to load, customize `package-load-list'.
16a91140 2385
dfdb4cad
CY
2386** Custom theme changes
2387
7d301ae6
CY
2388*** New command `M-x customize-themes', which provides a convenient
2389interface for enabling and disabling Custom themes.
dfdb4cad 2390
7d301ae6 2391*** New option `custom-theme-load-path' is the load path for themes.
dfdb4cad
CY
2392Emacs no longer looks for Custom themes in `load-path'. The default
2393value of `custom-theme-load-path' says to look for themes in
2394`custom-theme-directory', followed by a subdirectory of
2395`data-directory' named "themes/", which contains a small selection of
2396built-in Custom themes.
2397
7d301ae6
CY
2398*** New option `custom-safe-themes' records known-safe theme files.
2399If a theme is not in this list, Emacs queries before loading it, and
2400offers to save the theme to `custom-safe-themes' automatically. By
2401default, all themes included in Emacs are treated as safe.
b7d65a5f 2402
7d301ae6 2403** Improved GTK integration
dfdb4cad 2404
7d301ae6 2405*** GTK scroll-bars are now placed on the right by default.
dfdb4cad
CY
2406The function `set-scroll-bar-mode' can change this.
2407
7d301ae6 2408*** GTK tool bars can have just text, just images or images and text.
dfdb4cad
CY
2409Customize `tool-bar-style' to choose the style. On a Gnome desktop,
2410the default is taken from desktop settings.
2411
2412*** GTK tool bars can be placed on any edge of the frame.
7d301ae6
CY
2413The frame-parameter tool-bar-position controls this. It takes the
2414values top, left, right or bottom. The Options => Show/Hide menu has
2415entries for this.
dfdb4cad 2416
7d301ae6
CY
2417*** The default colors for selected text (the `region' face) are taken
2418from the GTK theme when Emacs is built with GTK.
dfdb4cad 2419
7d301ae6
CY
2420*** Emacs uses GTK tooltips by default if built with GTK.
2421You can disable this by changing `x-gtk-use-system-tooltips' to nil.
a5bee597 2422
dfdb4cad
CY
2423** Graphical interface changes
2424
2425*** On graphical displays, the mode-line no longer ends in dashes.
2426Also, the first dash (which does not indicate anything) is just
2427displayed as a space.
2428
2429*** `menu-bar-select-buffer-function' lets you choose another operation
2430instead of `switch-to-buffer' when selecting an item in the Buffers menu.
2431
2432*** Lucid menus and dialogs can display antialiased fonts if Emacs is
2433built with Xft. These fonts can be set via X resources, for example:
2434Emacs.pane.menubar.font: Courier-12
2435
7d301ae6 2436** Exiting changes
dfdb4cad 2437
7d301ae6 2438*** Emacs now calls `kill-emacs' if it receives SIGTERM or SIGHUP,
dfdb4cad
CY
2439or if it receives a SIGINT signal in batch mode.
2440
7d301ae6
CY
2441*** `kill-emacs-hook' is now also run in batch mode.
2442Third-party code which adds to `kill-emacs-hook' should check if they
2443do the right thing in batch mode.
9c524fcb 2444
041d709f 2445** Scrolling changes
dfdb4cad 2446
041d709f 2447*** New scrolling commands `scroll-up-command' and `scroll-down-command'
0a19a6f8 2448(bound to C-v/[next] and M-v/[prior]) do not signal errors at top/bottom
7d301ae6 2449of buffer at first key-press (instead they move to top/bottom of buffer)
550f41cd 2450when `scroll-error-top-bottom' is non-nil.
dfdb4cad
CY
2451
2452*** New option `scroll-error-top-bottom' (see above).
2453
041d709f 2454*** New scrolling commands `scroll-up-line' and `scroll-down-line'
5a97d2da 2455scroll a line instead of full screen.
dfdb4cad 2456
041d709f 2457*** New property `scroll-command' should be set on a command's symbol to
b2957ea8 2458define it as a scroll command affected by `scroll-preserve-screen-position'.
dfdb4cad 2459
041d709f 2460*** If you customize `scroll-conservatively' to a value greater than 100,
d0f69533
EZ
2461Emacs will never recenter point in the window when it scrolls due to
2462cursor motion commands or commands that move point (e.f., `M-g M-g').
2463Previously, you needed to use `most-positive-fixnum' as the value of
2464`scroll-conservatively' to achieve the same effect.
dfdb4cad 2465
7d301ae6 2466*** "Aggressive" scrolling now honors the scroll margins.
d0f69533
EZ
2467If you customize `scroll-up-aggressively' or
2468`scroll-down-aggressively' and move point off the window, Emacs now
2469scrolls the window so as to avoid positioning point inside the scroll
2470margin.
2471
7d301ae6
CY
2472** Basic SELinux support has been added.
2473This requires Emacs to be linked with libselinux at build time.
f1a5d776 2474
dfdb4cad
CY
2475*** Emacs preserves the SELinux file context when backing up.
2476Also, the function `copy-file' has an extra optional argument for
2477preserving SELinux context, and the return value of `backup-buffer'
2478now includes the SELinux context.
f0bf7c8e 2479
dfdb4cad 2480*** New functions `file-selinux-context' and `set-file-selinux-context'
7d301ae6 2481get and set the SELinux context of a file.
44198b6e 2482
7d301ae6 2483** Trash changes
dfdb4cad 2484
7d301ae6
CY
2485*** `delete-by-moving-to-trash' now only affects commands that specify
2486trashing. This avoids inadvertently trashing temporary files.
dfdb4cad 2487
7d301ae6
CY
2488*** Calling `delete-file' or `delete-directory' with a prefix argument
2489now forces true deletion, regardless of `delete-by-moving-to-trash'.
278f6845 2490
041d709f 2491** File- and directory-local variable changes
dfdb4cad 2492
041d709f
CY
2493*** You can stop directory local vars from applying to subdirectories.
2494Add an element (subdirs . nil) to the alist portion of any variables
2495settings to indicate that the section should not apply to
2496subdirectories.
dfdb4cad 2497
041d709f
CY
2498*** Directory local variables can apply to some file-less buffers.
2499Affected modes include dired, vc-dir, and log-edit. For example,
2500adding "(diff-mode . ((mode . whitespace)))" to .dir-locals.el will
2501turn on `whitespace-mode' for *vc-diff* buffers. Modes should call
2502`hack-dir-local-variables-non-file-buffer' to support this.
dfdb4cad 2503
041d709f
CY
2504*** Using "mode: MINOR-MODE" to enable a minor mode is deprecated.
2505Instead, use "eval: (minor-mode 1)".
c136e5cd 2506
7b447e9b
GM
2507*** The variable `inhibit-first-line-modes-regexps' has been renamed
2508to `inhibit-local-variables-regexps'. As the name suggests, it now
dfdb4cad
CY
2509applies to ALL file local variables, not just -*- lines. The
2510associated `inhibit-first-line-modes-suffixes' has been renamed in the
2511corresponding way.
5d907d6c 2512
0a2132ba
CY
2513** Window changes
2514
91b65361
CY
2515*** The `quit-window' command now restores the last buffer displayed
2516in the quitted window.
2517
0a2132ba
CY
2518*** Resizing an Emacs frame now preserves proportional window sizes,
2519modulo restrictions like window minimum sizes and fixed-size windows.
2520
2521*** The behavior of `display-buffer' is now customizable in detail.
dfdb4cad 2522
0a2132ba
CY
2523**** New option `display-buffer-base-action' specifies a list of
2524user-determined display "actions" (functions and optional arguments
2525for choosing the displaying window).
2526
2527This takes precedence over the default display action, which is
2528specified by `display-buffer-fallback-action'.
2529
2530**** New option `display-buffer-alist' maps buffer name regexps to
2531display actions, taking precedence over `display-buffer-base-action'.
2532
a0c2d0ae
MR
2533*** New option `window-combination-limit'.
2534The new option `window-combination-limit' allows to return the space
2535obtained for resizing or creating a window more reliably to the window
2536from which such space was obtained.
0a2132ba 2537
a0c2d0ae
MR
2538*** New option `window-combination-resize'.
2539The new option `window-combination-resize' allows to split a window that
2540otherwise cannot be split because it's too small by stealing space from
2541other windows in the same combination. Subsequent resizing or deletion
2542of the window will resize all windows in the same combination as well.
0a2132ba 2543
91b65361
CY
2544*** New option `frame-auto-hide-function' lets you choose between
2545iconifying or deleting a frame when burying a buffer in a dedicated
2546frame, or quitting a window showing a buffer in a frame of its own.
2547
0a2132ba 2548*** New commands `maximize-window' and `minimize-window'.
53964682 2549These maximize and minimize the size of a window within its frame.
0a2132ba 2550
0a2132ba
CY
2551*** New commands `switch-to-prev-buffer' and `switch-to-next-buffer'.
2552These functions allow to navigate through the live buffers that have
2553been shown in a specific window.
2554
7d301ae6 2555** Minibuffer changes
dfdb4cad 2556
7d301ae6 2557*** The inactive minibuffer has its own major mode `minibuffer-inactive-mode'.
104dc9c6
GM
2558This is handy for minibuffer-only frames, and is also used for the feature
2559where mouse-1 pops up *Messages*"', which can now easily be changed.
041d709f 2560
7d301ae6 2561*** Minibuffers set `truncate-lines' to nil.
f66eca26 2562If you want to change the value to something else, you could use
7d301ae6
CY
2563for example `minibuffer-setup-hook'.
2564
7d301ae6
CY
2565** `auto-mode-case-fold' is now enabled by default.
2566
7d301ae6 2567** `backup-by-copying-when-mismatch' now defaults to t.
f66eca26 2568
dfdb4cad
CY
2569** New basic faces `error', `warning', `success'.
2570These are used to highlight text indicating failure, caution or
2571successful operation.
2572
2573** New option `list-colors-sort' defines the color sort order
2574for `list-colors-display'.
2575
2576** The variable `focus-follows-mouse' now always defaults to nil.
2577
0bfd685e 2578\f
eb199145 2579* Editing Changes in Emacs 24.1
b350bdf2 2580
892777ba 2581** Search changes
dfdb4cad
CY
2582
2583*** C-y in Isearch is now bound to `isearch-yank-kill', instead of
2584`isearch-yank-line'.
2585
2586*** M-y in Isearch is now bound to `isearch-yank-pop', instead of
2587`isearch-yank-kill'.
2588
2589*** M-s C-e in Isearch is now bound to `isearch-yank-line'.
2590
b2b0776e 2591** New commands `count-words-region' and `count-words'.
dfdb4cad 2592
10607bea
CY
2593*** M-= is bound to `count-words-region', not `count-lines-region'.
2594The `count-words-region' command, when called interactively, reports
2595the number of lines, words, and characters in the region. It is a
2596superset of the old `count-lines-region', which is now an obsolete
2597alias for it.
ea4f7750 2598
ec9da840 2599** The command `just-one-space' (M-SPC), if given a negative argument,
1c708c1a
CY
2600also deletes newlines around point.
2601
b9229673 2602** Deletion changes
dfdb4cad 2603
b9229673 2604*** New option `delete-active-region'.
ddb54206 2605If non-nil, [delete] and DEL delete the region if it is active and no
dfdb4cad 2606prefix argument is given. If set to `kill', those commands kill
ddb54206 2607instead.
dfdb4cad 2608
59ee0542 2609*** New command `delete-forward-char', bound to [delete].
42d9cffa
CY
2610This is meant for interactive use, and obeys `delete-active-region'.
2611The command `delete-char' does not obey `delete-active-region'.
dfdb4cad 2612
b9229673
CY
2613*** `delete-backward-char' is now a Lisp function.
2614Apart from obeying `delete-active-region', its behavior is unchanged.
7d301ae6
CY
2615However, the byte compiler now warns if it is called from Lisp; Lisp
2616callers should use delete-char with a negative argument instead.
dfdb4cad 2617
b9229673
CY
2618*** The option `mouse-region-delete-keys' has been deleted.
2619
f9d71b42
CY
2620** Selection changes.
2621
7d301ae6
CY
2622The default handling of clipboard and primary selections has been
2623changed to conform with modern X applications. In short, most
2624commands for killing and yanking text now use the clipboard, while
2625mouse commands use the primary selection.
b1ab31ae
CY
2626
2627In the following, we provide a list of these changes, followed by a
2628list of steps to get the old behavior back if you prefer that.
2629
b1ab31ae
CY
2630*** `select-active-regions' now defaults to t.
2631Merely selecting text (e.g. with drag-mouse-1) no longer puts it in
963578d3 2632the kill ring. The selected text is put in the primary selection, if
b1ab31ae
CY
2633the system possesses a separate primary selection facility (e.g. X).
2634
2635**** `select-active-regions' also accepts a new value, `only'.
2636This means to only set the primary selection for temporarily active
2637regions (usually made by mouse-dragging or shift-selection);
2638"ordinary" active regions, such as those made with C-SPC followed by
2639point motion, do not alter the primary selection.
2640
963578d3
CY
2641**** `mouse-drag-copy-region' now defaults to nil.
2642
b1ab31ae
CY
2643*** mouse-2 is now bound to `mouse-yank-primary'.
2644This pastes from the primary selection, ignoring the kill-ring.
2645Previously, mouse-2 was bound to `mouse-yank-at-click'.
dfdb4cad 2646
b1ab31ae 2647*** `x-select-enable-clipboard' now defaults to t on all platforms.
dfdb4cad 2648
b1ab31ae
CY
2649*** `x-select-enable-primary' now defaults to nil.
2650Thus, commands that kill text or copy it to the kill-ring (such as
2651M-w, C-w, and C-k) also use the clipboard---not the primary selection.
2652
2653**** The "Copy", "Cut", and "Paste" items in the "Edit" menu are now
dfdb4cad 2654exactly equivalent to M-w, C-w, and C-y respectively.
b1ab31ae
CY
2655
2656**** Note that on MS-Windows, `x-select-enable-clipboard' was already
2657non-nil by default, as Windows does not support the primary selection
2658between applications.
2659
2660*** To return to the previous behavior, do the following:
dfdb4cad 2661
104c2fe9 2662**** Change `select-active-regions' to nil.
b1ab31ae
CY
2663**** Change `mouse-drag-copy-region' to t.
2664**** Change `x-select-enable-primary' to t (on X only).
2665**** Change `x-select-enable-clipboard' to nil.
2666**** Bind `mouse-yank-at-click' to mouse-2.
f9d71b42 2667
084e6df3 2668*** Support for X cut buffers has been removed.
dfdb4cad 2669
3fd50d5c
CY
2670*** X clipboard managers are now supported.
2671To inhibit this, change `x-select-enable-clipboard-manager' to nil.
4b80f674 2672
dfdb4cad
CY
2673** New command `C-x r N' (`rectangle-number-lines') numbers the lines
2674in the current rectangle. With a prefix argument, this prompts for a
2675number to count from and for a format string.
99f053cf 2676
7d301ae6 2677** `redisplay-dont-pause' now defaults to t.
6bf7006f
EZ
2678This makes Emacs feel more responsive to editing commands that arrive
2679at high rate, e.g. if you lean on some key, because stopping redisplay
2680in the middle (when this variable is nil) forces more expensive
2681updates later on, and Emacs appears to be unable to keep up.
2682
e70b5064
CY
2683** The behavior of <TAB> for active regions in Text mode has changed.
2684In Text and related modes, typing <TAB> (`indent-for-tab-command')
2685when the region is active causes Emacs to indent all the lines in the
2686region, aligning them with the line previous to the first line in the
2687region (or with the left margin if there is no previous line).
2688
dfdb4cad
CY
2689** When `occur' is called with a prefix argument, matching strings are
2690collected into the `*Occur*' buffer without line numbers. If there
2691are parenthesized subexpressions in the specified regexp, `occur'
2692reads replacement text that may contain \\& and \\N whose convention
2693follows `replace-match'.
2694
9bae34bf 2695\f
eb199145 2696* Changes in Specialized Modes and Packages in Emacs 24.1
efeb796b 2697
041d709f 2698** Archive Mode has basic support for browsing and updating 7z archives.
d76674bb 2699
b7c3692a 2700** BibTeX mode
dfdb4cad 2701
2de69e00 2702*** BibTeX mode now supports biblatex.
7d301ae6
CY
2703Use the variable `bibtex-dialect' to select different BibTeX dialects.
2704`bibtex-entry-field-alist' is now an obsolete alias for
2705`bibtex-BibTeX-entry-alist'.
2706
dfdb4cad
CY
2707*** New command `bibtex-search-entries', bound to C-c C-a.
2708
b7c3692a 2709*** New `bibtex-entry-format' option `sort-fields', disabled by default.
dfdb4cad 2710
022fe7ce
RW
2711*** New variable `bibtex-search-entry-globally'.
2712
7d301ae6 2713** Browse-url
dfdb4cad 2714
7d301ae6 2715*** New option `browse-url-mailto-function' specifies how to handle "mailto:"s.
dfdb4cad 2716
7d301ae6
CY
2717*** The default browser used by the package is now the "xdg-open" program,
2718on platforms that support it. This calls your desktop's preferred browser.
2719
86e100a6
GM
2720** Calc
2721
2722*** Support for musical notes.
2723
2724*** Support for logarithmic units.
2725
2726*** No longer uses the tex prefix for TeX specific unit names when
2727using TeX or LaTeX mode.
2728
2729*** New option to highlight selections using faces.
2730
2731*** `calc-histogram' has the option of using a vector to determine the bins.
2732
2733*** New "O" option prefix.
2734
2735*** Use the "O" prefix to "d r" (`calc-radix') to turn on twos-complement mode.
2736
cf16af42
GM
2737** Calendar, Diary, and Appt
2738
7d301ae6 2739*** Diary entries can contain non-printing "comments".
548d0a63
GM
2740See the variable `diary-comment-start'.
2741
5006e634
GM
2742*** Appointments can specify their individual warning times.
2743See the variable `appt-warning-time-regexp'.
2744
0a2bb1a9
GM
2745*** The function specified by `appt-disp-window-function' may be passed
2746lists of arguments if multiple appointments are due at similar times.
2747If you are using a custom function for this, you should update it.
2748
7454f200
GM
2749*** New function `diary-hebrew-birthday'.
2750
e565dd37
GM
2751*** Elements of `calendar-day-abbrev-array' and `calendar-month-abbrev-array'
2752may no longer be nil, but must all be strings.
2753
7d301ae6
CY
2754*** The obsolete (since Emacs 22.1) method of enabling the appt
2755package by adding `appt-make-list' to `diary-hook' has been removed.
2756Use `appt-activate' instead.
cf16af42 2757
cf16af42
GM
2758*** Some appt variables (obsolete since Emacs 22.1) have been removed:
2759appt-issue-message (use the function appt-activate)
2760appt-visible/appt-msg-window (use the variable appt-display-format)
2761
cf16af42
GM
2762*** Some diary function aliases (obsolete since Emacs 22.1) have been removed:
2763view-diary-entries, list-diary-entries, show-all-diary-entries
2764
551b046f 2765** CC Mode
dfdb4cad 2766
551b046f 2767*** New feature to "guess" the style in an existing buffer.
7d301ae6 2768The main entry point is M-x c-guess.
041d709f 2769
551b046f
AM
2770*** Java Mode now supports Java 5.0 (Tiger) and 6 (Mustang).
2771
dfdb4cad 2772*** `c-beginning-of-defun' and `c-end-of-defun' now respect nested scopes.
551b046f
AM
2773Thus C-M-a will, by default, go to the beginning of the immediate function,
2774not the top level.
2775
dfdb4cad 2776*** "Macros with semicolons" can be registered for correct indentation.
551b046f
AM
2777Where such a macro ends a line (no semicolon) the next statement is no longer
2778parsed as a statement continuation.
2779
dfdb4cad 2780** Comint and modes derived from it use the standard completion code.
041d709f
CY
2781
2782** Compilation mode
dfdb4cad 2783
7d301ae6 2784*** Compilation mode can be used without Font Lock mode.
041d709f
CY
2785`compilation-parse-errors-function' is now obsolete.
2786
dfdb4cad 2787*** New variable `compilation-filter-start', which is bound while
7d301ae6
CY
2788`compilation-filter-hook' runs. It records the start position of the
2789text inserted by `compilation-filter'.
041d709f 2790
47a6a35f
GM
2791*** `compilation-error-screen-columns' and `compilation-first-column'
2792are obeyed in the editing buffer. So programming language modes can
7d301ae6
CY
2793set them, whereas previously only the value in the *Compilation*
2794buffer was used.
1dce7193 2795
52834b6b
CY
2796** Customize
2797
2798*** Customize buffers now contain a search field.
2799The search is performed using `customize-apropos'.
7d301ae6 2800To turn off the search field, set `custom-search-field' to nil.
52834b6b 2801
8d5dd370 2802*** Options in customize group buffers start out hidden if not customized.
52834b6b
CY
2803Use the arrow to the left of the option name to toggle visibility.
2804
2805*** custom-buffer-sort-alphabetically now defaults to t.
2806
2807*** The color widget now has a "Choose" button, which allows you to
7d301ae6 2808choose a color via `list-colors-display'.
52834b6b 2809
041d709f
CY
2810** D-Bus
2811
5da3be7f
GM
2812*** It is now possible to access buses other than the default system
2813or session bus.
041d709f 2814
7d301ae6 2815*** The `dbus-register-method' and `dbus-register-property' functions
5da3be7f 2816optionally do not register names.
041d709f 2817
7d301ae6 2818*** The new function `dbus-register-service' registers a known service
dfdb4cad 2819name on a D-Bus without also registering a property or a method.
041d709f 2820
f5d6548a 2821** Dired-x
425a25f1 2822
7d301ae6
CY
2823*** C-x C-j (`dired-jump') and C-x 4 C-j (`dired-jump-other-window'),
2824if called with a prefix argument, read a file name from the minibuffer
2825instead of using the current buffer.
f5d6548a 2826
7d301ae6 2827*** The "dired local variables" feature of Dired-x is obsolete.
817b48a7 2828The standard directory local variables feature replaces it.
8117868f 2829
041d709f 2830** ERC changes
7492acc9 2831
c4077254
GM
2832*** New options `erc-autojoin-timing' and `erc-autojoin-delay',
2833controlling attempts to autojoin a channel.
041d709f
CY
2834
2835*** New variable `erc-coding-system-precedence': If we use `undecided'
2836as the server coding system, this variable will then be consulted.
2837The default is to decode strings that can be decoded as utf-8 as
2838utf-8, and do the normal `undecided' decoding for the rest.
7492acc9 2839
041d709f 2840** Eshell changes
7492acc9 2841
05f77e38
GM
2842*** The default value of `eshell-directory-name' has changed
2843to be an "eshell" directory in `user-emacs-directory'.
2844The old "~/.eshell/" directory is still used if it exists, though.
041d709f
CY
2845
2846** gdb-mi
dfdb4cad
CY
2847
2848*** The M-x gdb command now uses the GDB Machine Interface protocol.
05f77e38
GM
2849It now supports multithread non-stop debugging and simultaneous
2850debugging of several threads.
7492acc9 2851
18af70d0
CY
2852** Image mode
2853
05f77e38
GM
2854*** RET (`image-toggle-animation') toggles animation, if applicable.
2855Animation plays once, unless the option `image-animate-loop' is non-nil.
18af70d0 2856
041d709f 2857** Info
723ee192 2858
7d301ae6 2859*** New command M-x info-display-manual displays a named Info manual.
2ebc3b94
GM
2860If that manual is already visited in some Info buffer, it displays
2861that buffer. (This is handy if you have many manuals in many *info*
2862buffers, and don't remember the name of the buffer visiting the manual
2863you want to consult.) Otherwise, it loads and displays the manual.
691cf4a0 2864
24ea72d3
EZ
2865*** `e' is now bound to `end-of-buffer' rather than to `Info-edit'.
2866This is for compatibility with the stand-alone Info reader program,
2867and also because `Info-edit' is a rarely used command that is disabled
2868by default.
2869
7d301ae6 2870** Mail mode changes (not Message mode)
dfdb4cad 2871
7d301ae6 2872*** New command M-x mail-add-attachment for adding MIME attachments
7d301ae6 2873
dfdb4cad
CY
2874*** The command M-x mail-attach-file was renamed to M-x mail-insert-file.
2875(Its name is misleading, since it has nothing to do with MIME
2876attachments.) The old name is now an obsolete alias to the new name.
2877
f2c3a9eb 2878** MH-E has been updated to MH-E version 8.3.1.
041d709f 2879See MH-E-NEWS for details.
37221432 2880
041d709f 2881** Modula-2 mode provides auto-indentation.
37221432 2882
041d709f 2883** mpc.el: Can use pseudo tags of the form tag1|tag2 as a union of two tags.
3c3d4f5b 2884
5d1ac394 2885** nXML mode no longer binds C-RET to `nxml-complete'.
dfdb4cad
CY
2886Completion is now performed via `completion-at-point', bound to C-M-i
2887or M-TAB. If `nxml-bind-meta-tab-to-complete-flag' is non-nil (the
2888default), this performs tag completion.
5d1ac394 2889
f2c3a9eb
CY
2890** Org mode has been updated to version 7.8.09.
2891See ORG-NEWS for details.
2892
041d709f 2893** Prolog mode has been completely revamped, with lots of additional
7d301ae6
CY
2894functionality such as more intelligent indentation, electricity,
2895support for more variants, including Mercury, and a lot more.
041d709f
CY
2896
2897** Rmail
2898
2899*** The command `rmail-epa-decrypt' decrypts OpenPGP data
2900in the Rmail incoming message.
2901
50419064
GM
2902*** The variable `rmail-message-filter' no longer has any effect.
2903This change was made in Emacs 23.1 but was not advertised at the time.
2904Try using `rmail-show-message-hook' instead.
2905
717a1362 2906** Shell mode
dfdb4cad
CY
2907
2908*** M-x shell prompts for the shell path name if the default directory
2909is a remote file name and neither the environment variable $ESHELL nor
2910the variable `explicit-shell-file-name' is set.
2911
2912*** TAB is now bound to the standard `completion-at-point' command,
2913which now implements the pcomplete rules for shell command completion.
717a1362 2914
7d301ae6
CY
2915** SMTPmail
2916
dfdb4cad 2917*** SMTPmail now uses encrypted connections (via STARTTLS) by default
7d301ae6
CY
2918if the mail server supports them. This uses either built-in GnuTLS
2919support, or the starttls.el library. Customize `smtpmail-stream-type'
2920to change this.
2921
7d301ae6
CY
2922*** The variable `smtpmail-auth-credentials' has been removed.
2923By default, the information is now stored in the file ~/.authinfo.
dfdb4cad
CY
2924This was the default value of smtpmail-auth-credentials. If you had
2925customized smtpmail-auth-credentials to a list of user names and
2926passwords, those settings are not used. During your first connection
2927to the smtp server, Emacs will prompt for the user name and password,
2928and offer to save them to ~/.authinfo. Or you can manually copy the
2929credentials to ~/.authinfo. For example, if you had
7d301ae6
CY
2930
2931 (setq smtpmail-auth-credentials
2932 '(("mail.example.org" 25 "jim" "s!cret")))
2933
2934then the equivalent line in ~/.authinfo would be
2935
2936 machine mail.example.org port 25 login jim password s!cret
2937
2938See the auth-source manual for more information, e.g. on encrypting
2939the credentials file.
2940
7d301ae6 2941*** The variable `smtpmail-starttls-credentials' has been removed.
dfdb4cad 2942If you had that set, you need to put
7d301ae6
CY
2943
2944 machine smtp.whatever.foo port 25 key "~/.my_smtp_tls.key" cert "~/.my_smtp_tls.cert"
2945
2946in your ~/.authinfo file instead.
2947
8ce192e3
LI
2948*** SMTPmail defaults to using the address in the From: header as the
2949SMTP MAIL FROM envelope. To override this, set `mail-envelope-from'
2950to the address you wish to use instead.
2951
34e8a2da 2952** SQL mode
041d709f 2953
34e8a2da
GM
2954*** New options `sql-port', `sql-connection-alist', `sql-send-terminator',
2955and `sql-oracle-scan-on'.
041d709f 2956
dfdb4cad 2957*** New options controlling prompting for login parameters.
34e8a2da
GM
2958Each supported product has a custom variable `sql-*-login-params',
2959which is a list of the parameters to be prompted for before a
2960connection is established.
041d709f
CY
2961
2962*** The command `sql-product-interactive' now takes a prefix argument,
34e8a2da 2963which causes it to prompt for an SQL product.
041d709f 2964
34e8a2da 2965*** Product-specific SQL interactive commands now take prefix arguments.
041d709f
CY
2966These commands (`sql-sqlite', `sql-postgres', `sql-mysql', etc.),
2967given a prefix argument, prompt for a name for the SQL interactive
2968buffer. This reduces the need for calling `sql-rename-buffer'.
2969
2970*** SQL interactive modes suppress command continuation prompts, and
2971replace tabs with spaces. The first change impacts multiple line SQL
2972statements entered with C-j between each line, statements yanked into
2973the buffer and statements sent with `sql-send-*' functions. The
34e8a2da
GM
2974second prevents the MySQL and Postgres interpreters from listing
2975object name completions when sent text via `sql-send-*' functions.
041d709f
CY
2976
2977*** New command `sql-connect' starts a predefined SQLi session,
2978using the login parameters from `sql-connection-alist'.
2979
2980*** New "Save Connection" menu item in SQLi buffers.
2981This gathers the login params specified for the SQLi session, if it
2982was not started by a connection, and saves them as a new connection.
2983
34e8a2da
GM
2984*** New commands for listing database objects and details:
2985sql-list-all and sql-list-table.
041d709f
CY
2986
2987*** An API for manipulating SQL product definitions has been added.
2988
2989** TeX modes
2990
2991*** latex-electric-env-pair-mode keeps \begin..\end matched on the fly.
412b9ee5 2992
459bba37 2993** Tramp
dfdb4cad 2994
7d301ae6 2995*** New inline access method "ksu" (kerberized su).
dfdb4cad 2996
459bba37 2997*** The following access methods are discontinued: "ssh1_old",
ea843702 2998"ssh2_old", "scp1_old", "scp2_old", "imap", "imaps" and "fish".
dfdb4cad 2999
b011fbfe
GM
3000*** The user option `remote-file-name-inhibit-cache' controls whether
3001remote file attributes are cached for better performance.
dfdb4cad 3002
58f74fe4
MA
3003*** The option `ange-ftp-binary-file-name-regexp' has changed its
3004default value to "".
dfdb4cad 3005
7d301ae6
CY
3006*** Handlers for `file-selinux-context' and `set-file-selinux-context'
3007for remote machines which support SELinux.
58f74fe4 3008
dfdb4cad 3009** New function `url-queue-retrieve', which behaves like url-retrieve,
a48ec60c
GM
3010but with limits (`url-queue-parallel-processes', `url-queue-timeout') on
3011the degree of parallelism.
177549d0 3012
0c32ce32
CY
3013** VC and related modes
3014
3015*** Support for pulling on distributed version control systems.
7d301ae6
CY
3016The command C-x v + (`vc-pull') runs a "pull" operation, if it is
3017supported (currently with Bzr, Git, and Mercurial), to update the
3018current branch and working tree. A prefix argument means to prompt
3019the user for specifics, e.g. a pull location.
0c32ce32 3020
dab3703d 3021*** `vc-update' is now an alias for `vc-pull'.
0c32ce32
CY
3022
3023*** Support for merging on distributed version control systems.
7d301ae6
CY
3024The command C-x v m (`vc-merge') now runs a "merge" operation, if it
3025is supported (currently with Bzr, Git, and Mercurial), to merge
3026changes from another branch into the current one. It prompts for
3027specifics, e.g. a merge source.
0c32ce32 3028
2afef60a 3029*** New option `vc-revert-show-diff' controls whether `vc-revert'
bbe43420 3030shows a diff while querying the user. It defaults to t.
2afef60a 3031
d4eb88c7
CY
3032*** Log entries in some Log View buffers can be toggled to display a
3033longer description by typing RET (log-view-toggle-entry-display).
dab3703d
GM
3034This is currently supported for Bzr, Git, and Mercurial (to support
3035another backend, define a `log-view-expanded-log-entry-function').
7d301ae6 3036In the Log View buffers made by C-x v L (`vc-print-root-log'), you can
d4eb88c7
CY
3037use this to display the full log entry for the revision at point.
3038
1c6c854e
CS
3039*** New command `vc-ediff' allows visual comparison of two revisions
3040of a file similar to `vc-diff', but using ediff backend.
3041
86c60681
CY
3042*** The option `vc-initial-comment' was removed in Emacs 23.2, but
3043this was not advertised at the time.
3044
86c60681
CY
3045*** `vc-toggle-read-only' is an obsolete alias for `toggle-read-only'.
3046Since Emacs 23, it has done the same thing as `toggle-read-only', but
80c6d77f
GM
3047this was not advertised at the time.
3048
041d709f
CY
3049** Obsolete modes
3050
23d70505
GM
3051*** abbrevlist.el
3052
f8ca9162 3053*** erc-hecomplete.el (use erc-pcomplete.el instead)
23d70505
GM
3054
3055*** partial-completion-mode (complete.el) is obsolete.
041d709f
CY
3056You can get a comparable behavior with:
3057(setq completion-styles '(partial-completion initials))
3058(setq completion-pcm-complete-word-inserts-delimiters t)
3059
23d70505
GM
3060*** pc-mode.el is obsolete (CUA mode is much more comprehensive).
3061
2c719188 3062*** pgg is obsolete (use EasyPG instead).
041d709f
CY
3063
3064*** sregex.el is obsolete, since rx.el is a strict superset.
3065
23d70505
GM
3066*** s-region.el and pc-select.el are obsolete.
3067They are superseded by shift-select-mode, enabled by default since 23.1.
3068
2c719188 3069*** vc-mcvs.el is obsolete (for lack of a maintainer).
ca5eed61 3070
0fe719e6
GM
3071** Miscellaneous
3072
05f77e38 3073*** The Landmark game is now invoked with `landmark', not `lm'.
c6ad2a4e 3074Its functions and variables have been similarly renamed.
05f77e38 3075
dfdb4cad 3076*** In `ido-file-completion-map', C-v is no longer bound to `ido-toggle-vc'.
05f77e38
GM
3077(This interfered with cua-mode.)
3078
9f678528
GM
3079*** f90.el has some support for Fortran 2008 syntax.
3080
0fe719e6
GM
3081*** `copyright-fix-years' can optionally convert consecutive years to ranges.
3082
5b3e6db8
GM
3083*** New command `nato-region' converts text to NATO phonetic alphabet.
3084
eb199145
GM
3085\f
3086* New Modes and Packages in Emacs 24.1
d445b3f8 3087
60e56523 3088** Occur Edit mode applies edits made in *Occur* buffers to the
8c0f49f0 3089original buffers. It is bound to "e" in Occur mode.
60e56523 3090
a075a2c5
GM
3091** New global minor mode electric-pair-mode.
3092When enabled, typing an open parenthesis automatically inserts the
3093matching closing one.
3094
3095** New global minor mode electric-indent-mode.
3096When enabled, typing certain characters triggers reindentation.
cd3308f3
GM
3097Major modes wishing to use this can set electric-indent-chars or
3098electric-indent-functions.
a075a2c5
GM
3099
3100** New global minor mode electric-layout-mode.
3101When enabled, typing certain characters automatically inserts newlines.
cd3308f3 3102Major modes wishing to use this can set electric-layout-rules.
3b843809 3103
a83ec3c9
CY
3104** tabulated-list.el provides a generic major mode for tabulated data,
3105from which other modes can be derived.
3106
d02c9bcd
SM
3107** pcase.el provides the ML-style pattern matching macro `pcase'.
3108
7725ebb7
MA
3109** secrets.el is an implementation of the Secret Service API, an
3110interface to password managers like GNOME Keyring or KDE Wallet. The
065f2743
MA
3111Secret Service API requires D-Bus for communication. The command
3112`secrets-show-secrets' offers a buffer with a visualization of the
3113secrets.
7725ebb7 3114
f9e78150
MA
3115** notifications.el provides an implementation of the Desktop
3116Notifications API. It requires D-Bus for communication.
3117
12fe5bcc
MA
3118** soap-client.el supports access to SOAP web services from Emacs.
3119soap-inspect.el is an interactive inspector for SOAP WSDL structures.
3120
ff1796f3 3121** New generic mode, xmodmap-generic-mode, for xmodmap files.
ad7d6ecb 3122
53bbe3ad 3123** New emacs-lock.el package.
7d301ae6
CY
3124The previous version has been moved to obsolete/old-emacs-lock.el.
3125Now, there is a proper minor mode `emacs-lock-mode'. Protection
3126against exiting Emacs and killing the buffer can be set separately.
3127The mechanism for automatically turning off protection for buffers
3128with dead inferior processes has been generalized.
53bbe3ad 3129
eb199145
GM
3130\f
3131* Incompatible Lisp Changes in Emacs 24.1
6dfcbe31 3132
7d301ae6
CY
3133** Passing a nil argument to a minor mode function call now ENABLES
3134the minor mode unconditionally. This is so that you can write e.g.
3135
dfdb4cad 3136 (add-hook 'text-mode-hook 'foo-mode)
7d301ae6 3137
dfdb4cad
CY
3138to enable foo-mode in Text mode buffers, removing the need for
3139`turn-on-foo-mode' style functions. This affects all mode commands
3140defined by `define-minor-mode'. If called interactively, the mode
3141command still toggles the minor mode.
7d301ae6 3142
d268b4fe
CY
3143** The return value of `backup-buffer' has changed.
3144It is now a list of three elements, where the second element is a list
3145describing the original file's SELinux context. If Emacs or the
f003f294 3146system lacks SELinux support, the context list is (nil nil nil nil).
7d301ae6 3147See "Basic SELinux support" above, under "Changes in Emacs 24.1".
d268b4fe 3148
dfdb4cad
CY
3149** `char-direction-table' and the `char-direction' function were deleted.
3150They were buggy and inferior to the new support of bidirectional
3151editing introduced in Emacs 24. If you need the bidirectional
3152properties of a character, use `get-char-code-property' with the last
3153argument `bidi-class'.
fa6996bc 3154
470d996d
TV
3155** `copy-directory' now copies the source directory as a subdirectory
3156of the target directory, if the latter is an existing directory. The
3157new optional arg COPY-CONTENTS, if non-nil, makes the function copy
3158the contents directly into a pre-existing target directory.
3159
9173a8fb
CY
3160** For mouse click input events in the text area, the Y pixel
3161coordinate in the POSITION list now counts from the top of the text
3162area, excluding any header line. Previously, it counted from the top
3163of the header line.
3164
7d301ae6
CY
3165** Support for "old-style" backquotes, obsolete for 10+ years, has
3166been further reduced. Now a backquote not followed by a space is
3167always treated as a "new-style" backquote. Please remove all
3168"old-style" backquotes from your code. If your code uses backquotes
3169as documented in the Elisp manual, and compiles without warning, then
3170you have nothing to do in this regard. Code not following the
3171appropriate conventions may fail to compile.
50ab02c5
CY
3172
3173The most common cause of trouble seems to be an old-style backquote
3174followed by a newline. Another cause of trouble is vector notation
3175for key sequence notation: instead of [(control ,)] and [(control ')],
3176you should write [(control ?,)] and [(control ?')], which will work in
7d301ae6 3177older Emacsen too.
288cf4e9 3178
520f2425
GM
3179** The macro `eval-at-startup' was removed in Emacs 23.2, but this
3180was not advertised at the time. The function `custom-initialize-delay'
3181replaced all known uses.
3182
7d301ae6
CY
3183** `view-buffer' now treats special mode-class in the same way that
3184`view-file' has since Emacs 22 (i.e. it won't enable View mode if the
3185major mode is special).
fd5c9dfa 3186
7d301ae6 3187** Menu and tool bar changes
6431f2e6 3188
7d301ae6 3189*** During startup, Emacs no longer adds entries for `menu-bar-lines'
0a19a6f8
JB
3190and `tool-bar-lines' to `default-frame-alist' and `initial-frame-alist'.
3191With these alist entries omitted, `make-frame' checks the value of the
3192variable `menu-bar-mode'/`tool-bar-mode' to determine whether to create
3193a menu-bar or tool-bar, respectively. If the alist entries are added,
3194they override the value of `menu-bar-mode'/`tool-bar-mode'.
6431f2e6 3195
7d301ae6
CY
3196*** The menu bar bindings's caches are not used any more.
3197Use (where-is-internal <def> nil t) instead.
3198
fe0aa820 3199** Regions created by mouse dragging are now normal active regions,
dfdb4cad 3200similar to those created by shift-selection (see Selection changes
7d301ae6
CY
3201above). In previous Emacs versions, these regions were delineated by
3202`mouse-drag-overlay'; that variable has been removed.
d6d8ee7a 3203
7d301ae6
CY
3204** The fourth argument of `filter-buffer-substring' has been removed.
3205If you want to remove text properties from the final result, simply
3206pass the result through substring-no-properties.
34c99998 3207
4583e796
GM
3208** cl.el no longer provides `cl-19'.
3209
7d301ae6
CY
3210** The following obsolete functions and aliases have been removed
3211(the appropriate new function is given in parentheses; "not needed"
3212means you can just remove all calls to the function in question):
3213
3214*** `comint-kill-output' (`comint-delete-output')
3215*** `decompose-composite-char' (`char-to-string')
3216*** `outline-visible' (`outline-invisible-p')
3217*** `internal-find-face' (`facep')
3218*** `internal-get-face' (`facep and check-face')
3219*** `frame-update-faces' (not needed)
3220*** `frame-update-face-colors' (`frame-set-background-mode')
3221*** `x-frob-font-weight' and `x-frob-font-slant' (`make-face-*' functions)
2c719188 3222*** `x-make-font-bold and x-make-font-demibold (`make-face-bold')
7d301ae6
CY
3223*** `x-make-font-italic' and `x-make-font-oblique' (`make-face-italic')
3224*** `x-make-font-bold-italic' (`make-face-bold-italic')
3225*** `x-make-font-unbold' (`make-face-unbold')
3226*** `x-make-font-unitalic' (`make-face-unitalic')
3227*** `mldrag-drag-mode-line' (`mouse-drag-mode-line')
3228*** `mldrag-drag-vertical-line' (`mouse-drag-vertical-line')
3229*** `iswitchb-default-keybindings' (`iswitchb-mode')
3230*** `char-bytes' (== 1)
3231*** `isearch-return-char' (`isearch-printing-char')
3232*** `make-local-hook' (not needed)
3233*** `set-screen-height' (`set-frame-height')
3234*** `set-screen-width' (`set-frame-width')
3235
7d301ae6
CY
3236** The following obsolete variables and varaliases have been removed
3237(the appropriate new variable is given in parentheses):
3238
3239*** `checkdoc-minor-keymap' (`checkdoc-minor-mode-map')
3240*** `vc-header-alist' (`vc-BACKEND-header')
3241*** `directory-sep-char' (== ?/)
3242*** `font-lock-defaults-alist' (`font-lock-defaults')
3243*** `e' (`float-e').
3226d6ca 3244
041d709f 3245** The following obsolete files were removed:
7b0e3048
GM
3246sc.el, x-menu.el, rnews.el, rnewspost.el
3247
7d301ae6
CY
3248** The format of the finder-inf.el file has changed, since the Finder
3249mechanism is now based on the package system. The variable
3250`finder-package-info' is replaced by `package--builtins' and
3251`finder-keywords-hash'.
33658d4e 3252
c2c79260
DE
3253** When generating autoloads, `update-directory-autoloads' no longer
3254assumes every inspected file is in your `load-path'. It instead
3255generates relative names according to the current `load-path'.
3256
eb199145 3257\f
93e0bed6 3258* Lisp Changes in Emacs 24.1
9097e8af 3259
041d709f 3260** Code can now use lexical scoping by default instead of dynamic scoping.
dfdb4cad 3261The `lexical-binding' variable enables lexical scoping for local
48da7392 3262variables. It is typically set via a file-local variable in the first
dfdb4cad
CY
3263line of the file, in which case it applies to all the code in that
3264file.
3265
041d709f
CY
3266*** `eval' takes a new optional argument `lexical' to choose the new lexical
3267binding instead of the old dynamic binding mode.
dfdb4cad 3268
041d709f
CY
3269*** Lexically scoped interpreted functions are represented with a new form
3270of function value which looks like (closure ENV ARGS &rest BODY).
3271
3272*** New macro `letrec' to define recursive local functions.
dfdb4cad
CY
3273
3274*** `defvar' and `defconst' now mark the variable as special (dynamic).
3275So do `defcustom' and other forms that call `defvar' as a subroutine.
3276
041d709f
CY
3277*** New function `special-variable-p' to check whether a variable is
3278declared as dynamically bound.
3279
88ed9e87
SM
3280*** The form ((lambda ...) ...) is deprecated.
3281
041d709f
CY
3282** An Emacs Lisp testing tool is now included.
3283Emacs Lisp developers can use this tool to write automated tests for
3284their code. See the ERT info manual for details.
3285
3286** Changes for bidirectional display and editing
f1816485 3287
041d709f 3288*** New function `current-bidi-paragraph-direction'.
7d301ae6 3289This returns the base direction of the paragraph at point.
041d709f 3290
041d709f 3291*** New function `bidi-string-mark-left-to-right'.
dfdb4cad
CY
3292Given a string containing characters from right-to-left scripts, this
3293function returns another string which can be safely inserted into a
3294buffer, such that any following text will be always displayed to the
7d301ae6
CY
3295right of that string. (This works by appending an invisible Unicode
3296"LEFT-TO-RIGHT MARK" character if the argument string might need it.)
041d709f 3297
7d301ae6 3298This is useful when the buffer has overall left-to-right paragraph
dfdb4cad
CY
3299direction and you need to insert a string whose contents are not known
3300in advance, without disrupting the layout of the line.
041d709f 3301
bee0fcef 3302** Window changes
dfdb4cad 3303
c4682d18
MR
3304*** Window tree functions are accessible in Elisp.
3305Functions are provided to return the parent, siblings or child windows
3306of any window including internal windows (windows not associated with a
3307buffer) in the window tree.
dfdb4cad 3308
24300f5f
CY
3309**** New function `window-valid-p' gives non-nil for live and internal
3310windows.
dfdb4cad 3311
24300f5f 3312**** Window manipulation can deal with internal windows.
c4682d18
MR
3313Many window handling functions like `split-window', `delete-window', or
3314`delete-other-windows' as well as the window resizing functions can now
3315act on any window including internal ones.
dfdb4cad 3316
c4682d18
MR
3317*** window-total-height/-width vs window-body-height/-width.
3318The function `window-height' has been renamed to `window-total-height'
3319and `window-width' has been renamed to `window-body-width'. The old
3320names are provided as aliases. Two new functions `window-total-width'
3321and `window-body-height' are provided.
dfdb4cad 3322
c4682d18
MR
3323*** Window parameters specific to window handling functions.
3324For each window you can specify a parameter to override the default
3325behavior of a number of functions like `split-window', `delete-window'
ed6235ea
MR
3326and `delete-other-windows'. The variable `ignore-window-parameters'
3327allows to ignore processing such parameters.
dfdb4cad 3328
c4682d18 3329*** New semantics of third argument of `split-window'.
c4682d18
MR
3330The third argument of `split-window' has been renamed to SIDE and can be
3331set to any of the values 'below, 'right, 'above, or 'left to make the
3332new window appear on the corresponding side of the window that shall be
3333split. Any other value of SIDE will cause `split-window' to split the
3334window into two side-by-side windows as before.
dfdb4cad 3335
c4682d18 3336*** Window resizing functions.
487ffd7a 3337A new standard function for resizing windows called `window-resize' has
c4682d18
MR
3338been introduced. This and all other functions for resizing windows no
3339longer delete any windows when they become too small.
dfdb4cad 3340
b3c0dbfd
MR
3341*** Deleting the selected window now selects the most recently selected
3342live window on that frame instead.
dfdb4cad 3343
c4682d18
MR
3344*** `adjust-window-trailing-edge' adjustments.
3345`adjust-window-trailing-edge' can now deal with fixed-size windows and
3346is able to resize other windows if a window adjacent to the trailing
3347edge cannot be shrunk any more. This makes its behavior more similar to
3348that of Emacs 21 without compromising, however, its inability to delete
3349windows which was introduced in Emacs 22.
dfdb4cad 3350
c4682d18
MR
3351*** Window-local buffer lists.
3352Windows now have local buffer lists. This means that removing a buffer
3353from display in a window will preferably show the buffer previously
3354shown in that window with its previous window-start and window-point
3355positions. This also means that the same buffer may be automatically
3356shown twice even if it already appears in another window.
dfdb4cad 3357
bee0fcef
CY
3358*** `switch-to-buffer' has a new optional argument FORCE-SAME-WINDOW,
3359which if non-nil requires the buffer to be displayed in the currently
3360selected window, signaling an error otherwise. If nil, another window
3361can be used, e.g. if the selected one is strongly dedicated.
dfdb4cad 3362
0a2132ba 3363*** `split-window-vertically' and `split-window-horizontally' renamed
2d197ffb
CY
3364to `split-window-below' and `split-window-right' respectively.
3365The old names are kept as aliases.
dfdb4cad 3366
0a2132ba
CY
3367*** Display actions
3368
3369**** The second arg to `display-buffer' and `pop-to-buffer' is now
3370named ACTION, and takes a display action of the same form as
3371`display-buffer-base-action' (see Changes, above). A non-nil,
3372non-list value is treated specially, as the old meaning.
3373
3374**** New variable `display-buffer-overriding-action'.
3375
3376**** The procedure of `display-buffer' etc. to choose a window is
3377determined by combining `display-buffer-overriding-action',
3378`display-buffer-alist', the ACTION arg, `display-buffer-base-action',
3379and `display-buffer-fallback-action'. The second and fourth of these
3380are user-customizable variables.
3381
3382See the docstring of `display-buffer' for details.
bee0fcef 3383
20d2304d
CY
3384*** New functions `window-state-get' and `window-state-put'.
3385These functions allow to save and restore the state of an arbitrary
3386frame or window as an Elisp object.
3387
a2a25d24 3388** Completion
041d709f 3389
7d301ae6
CY
3390*** New variable `completion-extra-properties' used to specify extra
3391properties of the current completion:
a2a25d24
SM
3392- :annotate-function, same as the old completion-annotate-function.
3393- :exit-function, function to call after completion took place.
3394
7d301ae6
CY
3395*** Functions on `completion-at-point-functions' can return any of the
3396properties valid for `completion-extra-properties'.
a2a25d24 3397
7d301ae6 3398*** `completion-annotate-function' is obsolete.
a2a25d24 3399
620c53a6
SM
3400*** New `metadata' method for completion tables. The metadata thus returned
3401can specify various details of the data returned by `all-completions':
3402- `category' is the kind of objects returned (e.g., `buffer', `file', ...),
3403 used to select a style in completion-category-overrides.
3404- `annotation-function' to add annotations in *Completions*.
3405- `display-sort-function' to specify how to sort entries in *Completions*.
3406- `cycle-sort-function' to specify how to sort entries when cycling.
3407
7d301ae6
CY
3408*** `minibuffer-local-filename-must-match-map' is not used any more.
3409Instead, the bindings in `minibuffer-local-filename-completion-map'
3410are combined with `minibuffer-local-must-match-map'.
de09aa52
CY
3411
3412*** New variable `completing-read-function' allows overriding the
3413behavior of `completing-read'.
3414
f042970d 3415** `glyphless-char-display' can now distinguish between graphical and
16a43933
CY
3416text terminal display, via a char-table entry that is a cons cell.
3417
7d301ae6 3418** `pre-command-hook'/`post-command-hook' are not reset to nil on error.
f6d62986
SM
3419Instead, the offending function is removed.
3420
b1f6fa26
CY
3421** New hook types
3422
3423*** New function `run-hook-wrapped' for running an abnormal hook by
3424passing the hook functions as arguments to a "wrapping" function.
e7bc51d0 3425Like `run-hook-with-args-until-success', it stops at the first
5385447f 3426non-nil return value.
e7bc51d0 3427
b1f6fa26
CY
3428*** New macro `with-wrapper-hook' for running an abnormal hook as a
3429set of "wrapping" filters, similar to around advice.
54521c99
GM
3430(A version of this macro was actually added in Emacs 23.2 but was not
3431advertised at the time.)
f6d62986 3432
0b19b281 3433** Debugger changes
dfdb4cad 3434
0b19b281 3435*** New macro `condition-case-unless-debug' (this was actually added in
1be3ca5a 3436Emacs 23.1 as condition-case-no-debug, but not advertised)
dfdb4cad 3437
0b19b281 3438*** The macro `with-demoted-errors' was added in Emacs 23.1, but not advertised.
dfdb4cad 3439
0b19b281 3440*** Variable `stack-trace-on-error' removed.
dfdb4cad 3441
0b19b281
CY
3442*** The debugger can now "continue" from an error, which means it will
3443jump to the error handler as if the debugger had not been invoked
3444instead of jumping all the way to the top-level.
dfdb4cad 3445
0b19b281
CY
3446*** Set `debug-on-event' to enter the debugger on events like SIGUSR1.
3447This can be useful when `inhibit-quit' is set.
d6b1d521 3448
953cebf5 3449** The new function `server-eval-at' allows evaluation of Lisp forms on
37576acd 3450named Emacs server instances.
7deebf1b 3451
1b9f60cc
GM
3452** `call-process' and `call-process-region' allow a `(:file "file")' spec
3453to redirect STDOUT to a file.
7deebf1b 3454
7d301ae6
CY
3455** The function `format-time-string' now supports the %N directive,
3456for higher-resolution time stamps.
da97a9e6 3457
0b19b281 3458** New input reading functions
dfdb4cad 3459
0b19b281
CY
3460*** New function `read-char-choice' reads a restricted set of
3461characters, discarding any inputs not inside the set.
dfdb4cad 3462
0b19b281
CY
3463*** The command `read-color' now requires a match for a color name
3464or RGB triplet, instead of signaling an error if the user provides
3465invalid input.
dfdb4cad 3466
0b19b281 3467**** `facemenu-read-color' is now an alias for `read-color'.
3ef01959 3468
2e288d54
JB
3469** `image-library-alist' is renamed to `dynamic-library-alist'.
3470The variable is now used to load all kind of supported dynamic libraries,
3471not just image libraries. The previous name is still available as an
3472obsolete alias.
3473
0b19b281 3474** Syntax parsing changes
dfdb4cad 3475
0b19b281 3476*** New variable `syntax-propertize-function'.
04e2ce72 3477This replaces `font-lock-syntactic-keywords' which is now obsolete.
cf38dd42
SM
3478This allows syntax-table properties to be set independently from font-lock:
3479just call syntax-propertize to make sure the text is propertized.
3480Together with this new variable come a new hook
3481syntax-propertize-extend-region-functions, as well as two helper functions:
3482syntax-propertize-via-font-lock to reuse old font-lock-syntactic-keywords
3483as-is; and syntax-propertize-rules which provides a new way to specify
3484syntactic rules.
dfdb4cad 3485
0b19b281 3486*** Syntax tables support a new "comment style c" additionally to style b.
a2e5caf7 3487
7d301ae6 3488** New hook `post-self-insert-hook', run after `self-insert-command'.
041d709f 3489
4e2db1fe 3490** frame-local variables cannot be let-bound any more.
041d709f 3491
15de15c6 3492** Major and minor mode changes
dfdb4cad 3493
0b19b281
CY
3494*** `set-auto-mode' now respects mode: local variables at the end of files,
3495as well as those in the -*- line.
dfdb4cad 3496
15de15c6
CY
3497*** `prog-mode' is a new major mode from which programming modes
3498should be derived.
dfdb4cad 3499
15de15c6
CY
3500**** `prog-mode-hook' can be used to enable features for programming
3501modes, e.g. (add-hook 'prog-mode-hook 'flyspell-prog-mode) to enable
3502on-the-fly spell checking for comments and strings.
dfdb4cad 3503
14dd22d2
JB
3504**** New minor modes `prettify-symbols-mode' and
3505`global-prettify-symbols-mode' let the user enable symbol
3506prettification (replacing a string like "lambda" with the Greek lambda
3507character).
398b4366 3508
15de15c6
CY
3509*** New hook `change-major-mode-after-body-hook', run by
3510`run-mode-hooks' just before any other mode hooks.
dfdb4cad 3511
7a9a2fc6
GM
3512*** Enabled globalized minor modes can be disabled in specific major modes.
3513If the global mode is global-FOO-mode, then run (FOO-mode -1) in the
3514major mode's hook, where FOO-mode toggles the mode on a per-buffer basis.
dfdb4cad 3515
feb8a83a 3516*** `define-minor-mode' accepts new keywords :variable, :after-hook.
f44379e7 3517
7d301ae6
CY
3518** File-handling changes
3519
7d301ae6 3520*** `delete-file' and `delete-directory' now accept optional arg TRASH.
f1a5d776
CY
3521Trashing is performed if TRASH and `delete-by-moving-to-trash' are
3522both non-nil. Interactively, TRASH defaults to t, unless a prefix
3523argument is supplied (see Trash changes, above).
53967e09 3524
7d301ae6 3525*** New file predicates: `file-equal-p', `file-in-directory-p'.
ec70a47d 3526
4039c786
CY
3527** Tool-bars can display separators.
3528Tool-bar separators are handled like menu separators in menu-bar maps,
94975270 3529i.e. via menu entries of the form `(menu-item "--")'.
9317e499 3530
00fe2df1
JL
3531** Image API
3532
18af70d0
CY
3533*** Animated images support (currently animated gifs only).
3534
3535**** `image-animated-p' returns non-nil if an image can be animated.
3536
3537**** `image-animate' animates a supplied image spec.
3538
3539**** `image-animate-timer' returns the timer object for an image that
3540is being animated.
00fe2df1 3541
7cb76fe0
GM
3542*** `image-extension-data' has been renamed to `image-metadata'.
3543The old name is an obsolete alias to the new one.
1546c559 3544
b4ac6e8c
GM
3545*** Image mode can view any image type that ImageMagick supports.
3546This requires Emacs to be built with ImageMagick support.
7d301ae6
CY
3547
3548**** New function `imagemagick-types', defined if ImageMagick support
3549is enabled, returns a list of image file extensions that your
3550ImageMagick installation supports.
3551
3552**** New function `imagemagick-register-types' enables ImageMagick
3553image types in Image mode and in `create-image' and other helper
3554functions.
3555
3556**** New option `imagemagick-types-inhibit' excludes certain
3557ImageMagick image types from `imagemagick-register-types'.
3558
7d301ae6
CY
3559**** With ImageMagick support, there are extra Image mode commands to
3560resize and rotate images: `image-transform-fit-to-height',
3561`image-transform-fit-to-width', `image-transform-set-rotation', and
3562`image-transform-set-scale'.
041d709f 3563
7d301ae6
CY
3564** `compose-mail' now accepts an optional 8th arg, RETURN-ACTION, and
3565passes it to the mail user agent function. This argument specifies an
3566action for returning to the caller after finishing with the mail. For
3567example, this is used by Rmail to optionally delete a mail window.
b4ac6e8c 3568
71c17aec 3569** XML and HTML parsing
483ab230
CY
3570If Emacs is compiled with libxml2 support, there are two new
3571functions: `libxml-parse-html-region' (which parses "real world" HTML)
3572and `libxml-parse-xml-region' (which parses XML). Both return an
3573Emacs Lisp parse tree.
4b9832a6 3574
7d301ae6 3575** Networking and encryption changes
e2574f2c 3576
7d301ae6
CY
3577*** `open-network-stream' can now be used to open an encrypted stream.
3578It now accepts an optional `:type' parameter for initiating a TLS
3579connection, directly or via STARTTLS. To do STARTTLS, additional
3580parameters (`:end-of-command', `:success', `:capabilities-command')
3581must also be supplied.
3582
3583*** New library gnutls.el.
dfdb4cad
CY
3584The new function `gnutls-available-p' returns non-nil if Emacs is
3585built with GnuTLS support. The main entry points are
3586`open-gnutls-stream' and `gnutls-negotiate'. It's easiest to use
3587these functions through `open-network-stream', because that can
7d301ae6
CY
3588upgrade connections through STARTTLS opportunistically or use plain
3589SSL, depending on your needs. For debugging, set `gnutls-log-level'
3590greater than 0.
3591
7d301ae6
CY
3592*** New primitive `secure-hash' that supports many secure hash algorithms:
3593md5, sha1, sha2, sha224, sha256, sha384, and sha512. The lisp library
3594sha1.el has been removed. The `sha1' feature is provided by default.
71c17aec 3595
a6020335
MH
3596** Isearch
3597
3598*** New hook `isearch-update-post-hook' that runs in `isearch-update'.
3599
9326ba26
CY
3600** Progress reporters can now "spin".
3601The MIN-VALUE and MAX-VALUE arguments of `make-progress-reporter' can
3602now be nil, or omitted. This makes a "non-numeric" reporter. Each
3603time you call `progress-reporter-update' on that progress reporter,
3604with a nil or omitted VALUE argument, the reporter message is
3605displayed with a "spinning bar".
3606
3e214b50
JB
3607** New variable `revert-buffer-in-progress-p' is true while a buffer is
3608being reverted, even if the buffer has a local `revert-buffer-function'.
3609
001bf877
GM
3610** New variables `delayed-warnings-list' and `delayed-warnings-hook'.
3611If delayed-warnings-list is non-nil, the command loop calls
7d301ae6
CY
3612`delayed-warnings-hook' after `post-command-hook'. At present, this
3613is only used by Emacs on some platforms to display warnings during
3614startup, which might otherwise not be noticed. This uses the
3615functions `display-delayed-warnings' and `collapse-delayed-warnings'.
001bf877 3616
6420d28b
CY
3617** rx.el has a new `group-n' construct for explicitly numbered groups.
3618
dac86404
GM
3619** New function `make-composed-keymap' that constructs a new keymap
3620from multiple input maps. You can use this to make a keymap that
3621inherits from multiple maps, eg:
3622 (set-keymap-parent newmap (make-composed-keymap othermap parent))
43dc9f5b 3623
c8f6ec5c
GM
3624** New function `string-prefix-p'.
3625(This was actually added in Emacs 23.2 but was not advertised at the time.)
3626
27f7ef2f 3627** New reader macro ## that stands for the empty symbol.
43dc9f5b
AS
3628This means that the empty symbol can now be read back. Also, #: by itself
3629(when not immediately followed by a possible symbol character) stands for
3630an empty uninterned symbol.
041d709f 3631
fead402d
CY
3632** New math functions `isnan', `copysign', `frexp', `ldexp'.
3633
7d301ae6 3634** The following functions and variables are obsolete:
041d709f 3635
05f77e38
GM
3636*** `tooltip-use-echo-area' is obsolete.
3637Rather than setting this to t, disable Tooltip mode instead.
3638
041d709f
CY
3639*** buffer-substring-filters is obsolete.
3640Use `filter-buffer-substring-functions' instead.
3641
3642*** `byte-compile-disable-print-circle' is obsolete.
3643
3644*** `deferred-action-list' and `deferred-action-function' are obsolete.
f160676e
GM
3645Use `post-command-hook' instead.
3646
67e729a5
CY
3647*** `font-lock-maximum-size' is obsolete.
3648
eb199145 3649\f
93e0bed6 3650* Changes in Emacs 24.1 on Non-Free Operating Systems
d53a60a6 3651
7a22e700 3652** On MS Windows, Emacs warns when using the obsolete init file _emacs,
a2f0118c
GM
3653and also when HOME is set to C:\ by default.
3654
7a22e700 3655** New configure.bat options
04779484 3656
7a22e700 3657*** --enable-checking builds Emacs with extra runtime checks.
e3aef5c6 3658
7a22e700 3659*** --distfiles specifies files to be included in binary distribution.
e2574f2c 3660
7a22e700
OK
3661*** --without-gnutls disables automatic GnuTLS detection.
3662
a0d363f4 3663*** --lib for general library linkage, works with the USER_LIBS build variable.
e2574f2c 3664
0a19a6f8 3665** New make target `dist' to create binary distribution for MS Windows.
e3aef5c6 3666
1f5e1a16
GM
3667** The Lisp function `w32-default-color-map' is now obsolete.
3668(It is only used internally in the Emacs C code.)
5430d399 3669
1f5e1a16
GM
3670** Customize ns-auto-hide-menu-bar to have the menu-bar hidden, but
3671reappear on mouse-over. (Requires OS X 10.6 or later.)
04e2ce72 3672
ad7c802c
CY
3673** On Mac OS X, dragging a file into Emacs visits the file, like on
3674other platforms, rather than inserting its contents into the buffer.
3675
05197f40 3676\f
a933dad1 3677----------------------------------------------------------------------
5b87ad55 3678This file is part of GNU Emacs.
a933dad1 3679
ab73e885 3680GNU Emacs is free software: you can redistribute it and/or modify
5b87ad55 3681it under the terms of the GNU General Public License as published by
ab73e885
GM
3682the Free Software Foundation, either version 3 of the License, or
3683(at your option) any later version.
5b87ad55
GM
3684
3685GNU Emacs is distributed in the hope that it will be useful,
3686but WITHOUT ANY WARRANTY; without even the implied warranty of
3687MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3688GNU General Public License for more details.
a933dad1 3689
5b87ad55 3690You should have received a copy of the GNU General Public License
ab73e885 3691along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
a933dad1 3692
05197f40 3693\f
a933dad1
DL
3694Local variables:
3695mode: outline
3696paragraph-separate: "[ \f]*$"
3697end: