This happens by default if a suitable support library is found at
build time, like libacl on GNU/Linux. To prevent this, use the
configure option `--disable-acl'.
+FIXME? Should be --without-acl?
** Emacs can now be compiled with file notification support.
This happens by default if a suitable system library is found at
+++
*** The key `?' now describes prefix bindings, like `C-h'.
+---
*** The command `describe-function' has been extended for EIEIO.
Running it on constructors will show a full description of the
generated class. For generic functions, it will show all
*** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized',
bound to <f11> and M-<f10>, respectively.
-*** New command `frameset-to-register' is now bound to `C-x r f', replacing
-`frame-configuration-to-register'. It offers similar functionality,
-plus enhancements like the ability to restore deleted frames. The
-command `frame-configuration-to-register' still exists, but is unbound.
-
+++
*** New hooks `focus-in-hook', `focus-out-hook'.
These are normal hooks run when an Emacs frame gains or loses input focus.
---
-*** Emacs can now draw dividers between adjacent windows. To put
-dividers between side-by-side windows customize the frame parameter
-right-divider-width to some positive integer. To put dividers between
-vertically stacked windows set the frame parameter bottom-divider-width
-to some positive integer. Dividers can be dragged with the mouse and
-show a corresponding cursor when the mouse hovers over them. The
-appearance of dividers can be changed by customizing the basic faces
-window-divider, window-divider-first-pixel and window-divider-last-pixel
-where the latter two are useful to provide a 3D effect or to better set
-dividers apart from surrounding display objects.
+*** Emacs can now draw dividers between adjacent windows.
+To put dividers between side-by-side/vertically stacked windows
+customize the frame parameter `right-divider-width'/`bottom-divider-width'
+to some positive integer. You can drag dividers with the mouse
+(they show a corresponding cursor when the mouse hovers over them).
+You can change the appearance of dividers by customizing the faces
+`window-divider', `window-divider-first-pixel', and
+`window-divider-last-pixel'. The last two are useful to provide a 3D
+effect, or to better distinguish dividers from surrounding display objects.
---
*** `split-window' is now a non-interactive function, not a command.
`(eval-expression-)print-level' to nil. Additionally, it causes integers
to be printed in other formats (octal, hexadecimal, and character).
+---
*** New hook `eval-expression-minibuffer-setup-hook' run by
`eval-expression' on entering the minibuffer.
** `write-region-inhibit-fsync' now defaults to t in batch mode.
+++
-** `cache-long-line-scans' has been renamed to `cache-long-scans'
+** `cache-long-line-scans' is now non-nil, and renamed to `cache-long-scans',
because it affects caching of paragraph scanning results as well.
-Also, it is now enabled by default.
+There is no reason to set this to nil except for debugging purposes.
---
** The option `set-mark-default-inactive' has been deleted.
This unfinished feature was introduced by accident in Emacs 23.1;
simply disabling Transient Mark mode does the same thing.
+---
** The default value of `comment-use-global-state' is now t,
and this variable has been marked obsolete.
** `emacs-bzr-version' has been renamed to `emacs-repository-version',
and works for git too, if you fetch the repository notes.
-** `read-regexp-defaults-function' defines a function to provide default
-values for reading regexps by commands like `rgrep', `lgrep' `occur',
-`highlight-regexp', etc. You can customize this to specify a function
-that provides a default value from the regexp last history element,
-or from the symbol found at point.
-
+++
** New option `load-prefer-newer' affects how the `load' function chooses
the file to load. If this is non-nil, then when both .el and .elc
Interactive commands that read registers and want to make use of this
should use `register-read-with-preview' to read register names.
+*** New command `frameset-to-register' bound to `C-x r f', replacing
+`frame-configuration-to-register'. It offers similar functionality,
+plus enhancements like the ability to restore deleted frames.
+(`frame-configuration-to-register' still exists, but no longer has a
+key binding.)
+
+++
*** New command `C-x C-k x' (`kmacro-to-register') stores keyboard
macros in registers.
-*** New command `C-x r f' (`frameset-to-register').
-See Changes in Emacs 24.4, above.
-
+++
** New command `delete-duplicate-lines'.
This searches the region for identical lines, and removes all but one
** Backtrace and debugger
-*** The Lisp debugger's `e' command now includes the lexical environment
-when evaluating the code in the context at point. Hence, it now lets
-you access lexical variables.
-
+++
-*** New command `v' (`debugger-toggle-locals') displays local vars.
+*** New Lisp debugger command `v' (`debugger-toggle-locals') toggles the
+display of local variables of the current stack frame.
-*** New minor mode `jit-lock-debug-mode' lets you use the debuggers on
-code run via JIT Lock.
+*** The Lisp debugger's `e' command (`debugger-eval-expression') now includes
+the lexical environment when evaluating the code in the context at point
+(and so allows you to access lexical variables).
+
+---
+*** New minor mode `jit-lock-debug-mode' helps you debug code run via JIT Lock.
---
** Battery information can now be retrieved from BSD's `apm' utility.
** CUA mode
++++
*** CUA mode now uses `delete-selection-mode' and `shift-select-mode'.
Hence, you can now enable it independently from those modes, and from
`transient-mark-mode'.
*** `cua-highlight-region-shift-only' is now obsolete.
You can disable `transient-mark-mode' to get the same result.
-*** CUA's rectangles can now be used via `cua-rectangle-mark-mode'.
++++
+*** CUA's rectangles can now be used without CUA by calling the command
+`cua-rectangle-mark-mode'.
** CFEngine mode
** Desktop
-*** `desktop-auto-save-timeout' defines the number of seconds idle time
-before auto-save of the desktop.
++++
+*** `desktop-save-mode' by default now auto-saves an existing desktop file
+after `desktop-auto-save-timeout'. To disable this, customize that option
+to nil (or zero).
*** `desktop-restore-frames', enabled by default, allows saving and
restoring the frame/window configuration (frameset). Additional options
** Electric Pair mode
++++
*** New option `electric-pair-preserve-balance', enabled by default.
If non-nil, pairing/skipping only kicks in when that help the balance
of parentheses and quotes, i.e. the buffer should end up at least as
You can further control this behavior by adjusting the predicates
stored in `electric-pair-inhibit-predicate' and `electric-pair-skip-self'.
++++
*** New option `electric-pair-delete-adjacent-pairs', enabled by default.
In `electric-pair-mode', the commands `backward-delete-char' and
`backward-delete-char-untabify' are now bound to electric variants
that delete the closer when invoked between adjacent pairs.
++++
*** New option `electric-pair-open-newline-between-pairs', enabled by default.
In `electric-pair-mode', inserting a newline between adjacent pairs
opens an extra newline after point, which is indented if
`electric-indent-mode' is also set.
++++
*** New option `electric-pair-skip-whitespace', enabled by default.
This controls if skipping over closing delimiters should jump over any
whitespace slack. Setting it to `chomp' makes it delete this
whitespace. See also the variable `electric-pair-skip-whitespace-chars'.
+---
*** New variables control the pairing in strings and comments.
You can customize `electric-pair-text-pairs' and
`electric-pair-text-syntax-table' to tweak pairing behavior inside
strings and comments.
++++
** New EPA option `epa-mail-aliases'.
-You can set this to a list of email address aliases for keys to use
-in `epa-mail-encrypt'.
+You can set this to a list of email address aliases that `epa-mail-encrypt'
+should use to find keys.
---
** New ERC option `erc-accidental-paste-threshold-seconds'.
---
** New F90 mode option `f90-smart-end-names'.
-** Icomplete is a bit more like Ido.
+** Icomplete
+Icomplete is now more similar to Ido.
+
+---
+*** Icomplete by default now applies to all forms of minibuffer completion.
+The variable `icomplete-with-completion-tables' (now a user option)
+controls this. To restore the old behavior, set it back to
+'(internal-complete-buffer).
-*** Key bindings to navigate through and select the completions.
++++
+*** You can navigate through and select completions using the keys
+from `icomplete-minibuffer-map'.
-*** The icomplete-separator is customizable, and its default has changed.
+---
+*** The string that separates potential completions is now a customizable
+option (`icomplete-separator'). The default is " | " rather than ",".
-*** Removed `icomplete-show-key-bindings'.
+---
+*** New face `icomplete-first-match'; and new options
+`icomplete-hide-common-prefix' and `icomplete-show-matches-on-no-input'.
-*** Icomplete-mode by defaults applies to all forms of minibuffer completion.
-(setq icomplete-with-completion-tables '(internal-complete-buffer))
-will revert to the old behavior.
+---
+*** The option `icomplete-show-key-bindings' has been removed.
** Ido
** Hi-Lock
-*** New option `hi-lock-auto-select-face'. When non-nil, hi-lock commands
-will cycle through faces in `hi-lock-face-defaults' without prompting.
++++
+*** New global command `M-s h .' (`highlight-symbol-at-point') highlights
+the symbol found near point.
+++
-*** New global command `M-s h .' (`highlight-symbol-at-point')
-highlights the symbol found near point without prompting,
-using the next face automatically.
+*** New option `hi-lock-auto-select-face'. When non-nil, hi-lock commands
+will cycle through faces in `hi-lock-face-defaults' without prompting.
** New Imenu option `imenu-generic-skip-comments-and-strings'.
+** Info
+
---
-** New Info face `info-index-match', used to highlight matches in index
+*** New Info face `info-index-match', used to highlight matches in index
entries displayed by `Info-index-next', `Info-virtual-index' and
`info-apropos'.
+---
+*** The Info-edit command is obsolete. Editing Info nodes by hand
+has not been relevant for some time.
+
** JS Mode
---
** Package
++++
+*** In the `list-packages' buffer, you can use `f' (`package-menu-filter')
+to filter the list of packages by a keyword.
+
++++
+*** In the `describe-package' buffer, there are now buttons listing the
+keywords related to the package. Click on a button to see other packages
+related to that keyword.
+
+---
*** The format of `archive-contents' files, generated by package
repositories, has changed to allow a new (fifth) element in the data
vectors, containing an associative list with extra properties.
-
-*** `describe-package' buffer uses the `:url' extra property to
-display a `Homepage' header, if it's present.
-
-*** In the buffer produced by `describe-package', there are now buttons
-listing the keywords related to that package. You can click on them
-to see other packages related to any given keyword.
-
-*** In the *Packages* buffer, `f' or the Package->Filter menu filters
-the packages by a keyword.
+(For example, `describe-package' uses the `:url' extra property to
+display a "Homepage" header.)
---
** In Prolog mode, `prolog-use-smie' has been removed,
** Remember
-*** The new command `remember-notes' creates a buffer that is saved on
-`kill-emacs'. You can think of it as a *scratch* buffer whose content
-is preserved. In fact, it was designed as a replacement for *scratch*
-buffer and can be used that way by setting `initial-buffer-choice' to
-`remember-notes' and `remember-notes-buffer-name' to "*scratch*".
-Without the second change, the *scratch* buffer will still be there
-for notes that do not need to be preserved.
++++
+*** The new command `remember-notes' creates a buffer that is saved on exit.
+You can use it as a more permanent *scratch* buffer.
-*** The Remember package can now store notes in separates files.
-You can use the new function `remember-store-in-files' within the
-`remember-handler-functions' option. See `remember-data-directory'
-and `remember-directory-file-name-format' for new options related to
-this function.
++++
+*** Remember can now store notes in separate files.
+To use this, add `remember-store-in-files' to the `remember-handler-functions'
+option. The files are saved in `remember-data-directory' using
+names specified by `remember-directory-file-name-format'.
** Rmail
Emacs can learn the appropriate indentation settings if you provide it
with an indented sample file.
+---
+** SQL
+Improved login monitoring and appropriate response to login failures.
+Includes `sql-login-delay' to define maximum wait for a connection.
+
+*** Oracle support
+SQL*Plus script placeholders are properly highlighted and identified
+in `sql-placeholders-filter' correctly. When SQL*Plus is started,
+options specified in `sql-oracle-options' are passed before the logon
+parameter, as SQL*Plus expects. The default setting for
+`sql-oracle-options' has been altered to pass the `-L' option to limit
+the number of logon attempts per invocation.
+
---
** New Term mode option `term-suppress-hard-newline'.
** Obsolete packages
-*** Iswitchb is made obsolete by icomplete-mode.
++++
+*** iswitchb.el; use icomplete-mode.
+
+---
+*** longlines.el; use visual-line-mode.
-*** longlines.el is obsolete; use visual-line-mode instead.
+---
+*** meese.el.
+++
*** sup-mouse.el.
---
-*** terminal.el is obsolete; use term.el instead.
+*** terminal.el; use term.el instead.
---
-*** The previous version of todo-mode.el is obsolete and renamed otodo-mode.el.
+*** the old version of todo-mode.el (renamed to otodo-mode.el).
---
-*** xesam.el is obsolete, because the XESAM project has been canceled.
+*** xesam.el (owing to the cancellation of the XESAM project).
+++
-*** yow.el is obsolete; use fortune.el or cookie1.el instead.
-
----
-*** The Info-edit command is obsolete. Editing Info nodes by hand
-has not been relevant for some time.
+*** yow.el; use fortune.el or cookie1.el instead.
\f
* New Modes and Packages in Emacs 24.4
** New package `eww' is a built-in web browser.
It is only available if Emacs is compiled with libxml2 support.
++++
** New minor mode `superword-mode'.
This overrides the default word motion commands to treat "symbol_words"
as a single word, similar to what `subword-mode' does.
Generic commands are interactive functions whose implementation can be
selected among several alternatives, as a matter of user preference.
-** The `defalias-fset-function' property lets you catch `defalias'
-calls, and redirect them to your own function, instead of `fset'.
++++
+** If you give a symbol a `defalias-fset-function' property, `defalias'
+on that symbol will use the associated value as a function to call
+in place of `fset'.
+++
** New variable `enable-dir-local-variables'.
+++
** New function `get-pos-property'.
++++
+** `read-regexp' now uses the new variable `read-regexp-defaults-function'
+as a function to call to provide default values.
+
** Completion changes
*** The separator for `completing-read-multiple' can now be a regexp.
see the `apropos' Custom group for details.
*** The old options whose values specified faces to use have been removed
-(i.e. `apropos-symbol-face', `apropos-keybinding-face', etc.).
+(i.e. `apropos-symbol-face', `apropos-keybinding-face', `apropos-label-face',
+`apropos-match-face' and `apropos-property-face'.).
** Buffer Menu