\f
* Installation Changes in Emacs 24.4
+---
** Emacs can now be compiled with ACL support.
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?
+configure option `--disable-acl'. See below for related features.
+---
** Emacs can now be compiled with file notification support.
This happens by default if a suitable system library is found at
build time. To prevent this, use the configure option
`--without-file-notification'. See below for file-notify features.
-FIXME? This feature is not available for the Nextstep port. (?)
+This feature is not available for the Nextstep port.
+
+---
+** Emacs can now be compiled with zlib support.
+This happens by default if zlib is present, which it normally is.
+To prevent this, use the configure option `--without-zlib'.
+This provides the function `zlib-decompress-region'; see below for details.
---
** The configure option `--without-compress-info' has been generalized,
** Directories passed to configure option `--enable-locallisppath' are
no longer created during installation.
-** Emacs can be compiled with zlib support.
-If this library is present (which it normally is on most systems), the
-function `zlib-decompress-region' becomes available, which can
-decompress gzip- and zlib-format compressed data.
-
---
** Emacs for NS (Mac OS X, GNUstep) can be built with ImageMagick support.
-This requires pkg-config to be available at configure time.
+This requires pkg-config to be available at build time.
\f
* Startup Changes in Emacs 24.4
\f
* Changes in Emacs 24.4
++++
+** New function `zlib-decompress-region', which decompresses gzip- and
+zlib-format compressed data using built-in zlib support, if available.
+
+++
** New option `gnutls-verify-error', if non-nil, means that Emacs
should reject SSL/TLS certificates that GnuTLS determines as invalid.
the *Messages* buffer should call the function `messages-buffer' to do
so and set up the mode.
-** Emacs now supports ACLs (access control lists).
++++
+** Emacs can now support ACLs (access control lists).
+This requires a suitable support library to be found at build time.
+On GNU/Linux, the POSIX ACL interface is used via libacl.
+On MS-Windows, the NT Security APIs are used to emulate the POSIX interface.
+
+++
*** Emacs preserves the ACL entries of files when backing up.
+++
*** New functions `file-acl' and `set-file-acl' get and set the ACL
-entries of a file. On GNU/Linux, the POSIX ACL interface is used via
-libacl. On MS-Windows, the NT Security APIs are used to emulate the
-POSIX ACL interfaces.
+entries of a file.
** Multi-monitor support has been added.
++++
*** New functions `display-monitor-attributes-list' and
`frame-monitor-attributes' can be used to obtain information about
each physical monitor on multi-monitor setups.
++++
*** The functions `display-pixel-width' and `display-pixel-height' now
behave consistently among the platforms: they return the pixel width
or height for all physical monitors associated with the given display
-as if they were on X11. To get information for each physical
+as if they were on X. To get information for each physical
monitor, use the new functions above. Similar notes also apply to
`x-display-pixel-width', `x-display-pixel-height', `display-mm-width',
`display-mm-height', `x-display-mm-width', and `x-display-mm-height'.
** In keymaps where SPC scrolls forward, S-SPC now scrolls backward.
This affects View mode, etc.
++++
+** The default value of `make-backup-file-name-function' is no longer nil.
+Instead it defaults to a function that does what the nil value used to.
+
** Help changes
+++
** Frame and window changes
++++
+*** The function `window-in-direction' introduced in Emacs 24.1 now
+takes additional arguments for specifying a reference point, wrapping
+selection around frame borders, and specifying ways to select the
+minibuffer window.
+
+++
*** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized',
bound to <f11> and M-<f10>, respectively.
*** 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 change frame sizes in units of pixels, rather than
text rows or columns. When maximizing a frame or making it fullscreen,
remaining extra pixels are no longer given to the minibuffer, the rightmost
is non-nil, all frame size changes happen pixelwise and set the
corresponding size hints for the window manager.
++++
*** Emacs can now change window sizes in units of pixels.
Mouse-dragging a mode line or window divider now changes the size of
adjacent windows pixelwise. If the new option `window-resize-pixelwise'
window sizes now have an additional argument that allows changes to apply,
or values to be returned, in pixels instead of lines/columns.
++++
+*** The functions `window-body-height' and `window-body-width' now never
+count partially visible lines or columns if called with a nil PIXELWISE
+argument.
+
++++
*** Emacs can now draw dividers between adjacent windows. To put
dividers between side-by-side/vertically stacked windows customize the
frame parameters `right-divider-width' and `bottom-divider-width' to
two are useful to provide a 3D effect, or to better distinguish dividers
from surrounding display objects.
++++
*** New functions are provided to return the pixel sizes of window
components, namely `window-scroll-bar-width', `window-mode-line-height'
`window-header-line-height', `window-right-divider-width' and
`window-bottom-divider-width'.
++++
*** The new function `window-text-pixel-size' returns the size of the
text of a window's buffer in pixels. This allows functions like
`fit-frame-to-buffer' and `fit-window-to-buffer' to accurately fit a
window to its buffer as it will be displayed.
-*** `fit-window-to-buffer' can now resize windows horizontally.
++++
+*** `fit-window-to-buffer' can now resize windows in both dimensions.
This behavior is controlled by the new option
-`fit-window-to-buffer-horizontally'.
+`fit-window-to-buffer-horizontally'. The new option
+`fit-frame-to-buffer' allows to fit the window's frame to its buffer.
-*** `fit-frame-to-buffer' can now fit frames in both directions.
-This behavior is controlled by the option `fit-frame-to-buffer' which
-tells in which direction(s) the frame shall be fit. The new options
-`fit-frame-to-buffer-margins' and `fit-frame-to-buffer-sizes' allow to
++++
+*** `fit-frame-to-buffer' now fits frames in both dimensions. The new
+options `fit-frame-to-buffer-margins' and `fit-frame-to-buffer-sizes'
control the size of the frame and its position on screen.
+---
*** Temp Buffer Resize Mode can now adjust height and width of windows
and frames. `temp-buffer-resize-mode' is now able to adjust the height
and the width of a window displaying a temporary buffer. The new option
and as such superfluous. After being reimplemented in Lisp, its
interactive form was mistakenly retained.
++++
*** The functions `window-size' and `window-total-size' now have an
optional argument to return a rounded size value.
++++
*** `window-state-put' now allows to put a window state into internal
windows too.
using the scroll bar (i.e. dragging the thumb down even when the end
of the buffer is visible).
++++
*** New basic action function `display-buffer-in-previous-window' has
`display-buffer' display a buffer in a window previously showing that
buffer.
++++
*** New basic action function `display-buffer-at-bottom' has
`display-buffer' choose or make a window at the bottom of the selected
frame.
++++
+*** New display action function `display-buffer-no-window' to not
+display the buffer in a window.
+
++++
+*** New display action alist entry `allow-no-window' to indicate the
+caller of `display-buffer' is ready to handle the case of not
+displaying the buffer in a window.
+
** Lisp evaluation changes
+++
*** `eval-defun' on an already defined defcustom calls the :set function,
** Indentation changes
++++
+*** `electric-indent-mode' is now enabled by default.
+Typing RET reindents the current line and indents the new line.
+`C-j' inserts a newline but does not indent. In some programming modes,
+additional characters are electric (eg `{').
+
++++
+*** New buffer-local `electric-indent-local-mode'.
+
+++
*** The behavior of `C-x TAB' (`indent-rigidly') has changed.
When invoked without a prefix argument, it now activates a transient
the text indentation in the region. Typing any other key resumes
normal editing behavior.
-*** `electric-indent-mode' is enabled by default.
-
+++
*** `tab-stop-list' is now implicitly extended to infinity by repeating
the last step. Its default value is changed to nil, which means a tab
+++
** Uniquify is enabled by default, with `post-forward-angle-brackets' style.
+In other words, if you visit two files that have the same base name,
+then rather than creating buffers basename and basename<2>,
+Emacs uses basename<dirA> and basename<dirB>. To change this,
+customize `uniquify-buffer-name-style'. Set it to nil for the old behavior.
++++
** New command `C-x SPC' (`rectangle-mark-mode') makes a rectangular region.
Most commands are still unaware of it, but kill/yank do work on the rectangle.
This searches the region for identical lines, and removes all but one
copy of each repeated line. The lines need not be sorted.
++++
+** `blink-matching-paren' now only highlights the matching open-paren
+by default, instead of moving cursor. Set this variable to `jump' to
+enable the old behavior.
+
\f
* Changes in Specialized Modes and Packages in Emacs 24.4
*** New Lisp debugger command `v' (`debugger-toggle-locals') toggles the
display of local variables of the current stack frame.
++++
*** 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).
*** EDE
++++
**** The cpp-root project now supports executing a compile command.
It can be set through the new :compile-command slot or the
buffer-local variable `compile-command'.
++++
**** Better selection of include directories for the 'linux' project.
Include directories now support out-of-tree build directories and
target architecture auto-detection.
+---
*** Semantic
**** Improved detection of used namespaces in current scope in C++.
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
-`desktop-restore-in-current-display', `desktop-restore-reuses-frames'
-and `desktop-restore-forces-onscreen' offer further customization.
++++
+*** Desktop now saves and restores the frame/window configuration.
+To disable this, set `desktop-restore-frames' to nil.
+See also related options `desktop-restore-reuses-frames',
+`desktop-restore-in-current-display', and `desktop-restore-forces-onscreen'.
+++
** New Dired minor mode `dired-hide-details-mode' toggles whether details,
-such as file ownership or permissions, are visible.
+such as file ownership or permissions, are visible in Dired buffers.
+See the new options `dired-hide-details-hide-symlink-targets' and
+`dired-hide-details-hide-information-lines' for customizing what to hide.
---
** You can enable ElDoc inside the `eval-expression' minibuffer with:
+++
** Octave mode
-*** Font locking for texinfo comments and new keywords.
+*** Font locking for Texinfo comments and new keywords.
*** Completion in Octave file buffers.
** Package
++++
+*** The package library now supports digital signing of packages.
+Maintainers of package archives should consider signing their packages
+to enhance security.
+
++++
+**** If the user option `package-check-signature' is non-nil,
+Emacs tries to check package signatures at install time.
+The value `allow-unsigned' allows installation of unsigned packages.
+
++++
+**** The user option `package-unsigned-archives' lists archives where
+Emacs will not try to check signatures.
+
++++
+*** New option `package-pinned-packages'. This is useful if you have multiple
+archives enabled, with more than one offering a package that you want.
+
+++
*** 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
+*** 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.
*** `C-x 8 RET' in Isearch mode reads a character by its Unicode name
and adds it to the search string.
++++
*** `M-s i' in Isearch mode toggles whether search matches invisible text.
++++
*** `query-replace' skips invisible text when `search-invisible' is nil,
and opens overlays with hidden text when `search-invisible' is `open'.
---
*** `sh-mode' now has its own setting for `add-log-current-defun-function'.
-** SMIE indentation can be customized via `smie-config'.
-Emacs can learn the appropriate indentation settings if you provide it
-with an indented sample file.
+** SMIE
+
++++
+*** You can customize the SMIE indentation of a mode via `smie-config'.
+The command `smie-config-guess' can help you derive the appropriate
+indentation settings, if you provide it with an indented sample file.
+Use `smie-config-save' to save the result.
+
++++
+*** You can customize the SMIE indentation of a file by adding an entry to
+the file's local variables of the form: `eval: (smie-config-local '(RULES))'.
+
++++
+*** New commands `smie-config-show-indent' and `smie-config-set-indent'.
---
** SQL mode
\f
* Incompatible Lisp Changes in Emacs 24.4
++++
+** Do not assume that the priority of all overlays will be numeric.
+(You should still only specify integer priorities on overlays you create.)
+If you need to sort arbitrary overlays into priority order, `overlays-at'
+can now optionally do this.
+
---
** `kill-region' has lost its `yank-handler' optional argument.
** The cars of the elements in `interpreter-mode-alist' are now
treated as regexps rather than literal strings.
+---
+** Overlay priority does not have to be nil or a non-negative integer.
+Overlay priority can be other kinds of Lisp objects. We didn't yet
+decide whether other types of values are stable enough, and therefore
+don't feel it's right to document them. For now, don't assume in your
+code that the values of overlay priority can only be either nil or an
+integer, always test them with an appropriate predicate to be one or
+the other.
+
\f
* Lisp Changes in Emacs 24.4
+++
** New functions `special-form-p' and `macrop'.
++++
** New macro `define-alternatives' can be used to define generic commands.
Generic commands are interactive functions whose implementation can be
selected among several alternatives, as a matter of user preference.
** Completion changes
-*** The separator for `completing-read-multiple' can now be a regexp.
-The default separator has been changed to allow surrounding spaces
+---
+*** The separator used by `completing-read-multiple' is now a regexp.
+The default `crm-separator' has been changed to allow surrounding spaces
around the comma.
-*** The `common-substring' arg of `display-completion-list' is obsolete.
-Either use `completion-all-completions', which returns highlighted
-strings (including for partial or substring completion), or call
-`completion-hilit-commonality' to add the highlight.
++++
+*** The `common-substring' argument of `display-completion-list',
+which has been documented as obsolete since Emacs 23.1, is now _really_
+obsolete, and no longer advertised. Instead either call
+`completion-hilit-commonality' to add the highlighting; or use
+`completion-all-completions', which returns highlighted strings.
++++
*** New function `completion-table-with-cache' is a wrapper for
`completion-table-dynamic' that caches the result of the last lookup.
++++
*** New function `completion-table-merge' to combine several
completion tables by merging their completions.
++++
** New minor modes `prettify-symbols-mode' and `global-prettify-symbols-mode'
-let you enable symbol prettification (replacing a string like "lambda" with
-the Greek lambda character).
+display specified symbols as composed characters. E.g., in Emacs Lisp mode,
+this replaces the string "lambda" with the Greek lambda character.
** Terminal changes
display or frame whenever a mouse is supported on that display or
frame.
-*** New hook `tty-setup-hook'.
-
-** Window Handling
-
-*** New display action function `display-buffer-no-window' to not
-display the buffer in a window.
++++
+*** New hook `tty-setup-hook', run at the end of initializing a text terminal.
-*** New display action alist entry `allow-no-window' to indicate the
-caller of `display-buffer' is ready to handle the case of not
-displaying the buffer in a window.
++++
+*** The hook `term-setup-hook' is obsolete. It is entirely equivalent
+to `emacs-startup-hook'. See also the new `tty-setup-hook'.
++++
** New hook `pre-redisplay-function'.
+++
*** `generic-make-keywords-list'
*** `get-upcase-table' (use `case-table-get-table' instead).
++++
** `with-wrapper-hook' is obsoleted by `add-function'.
The few hooks that used with-wrapper-hook are replaced as follows:
*** `abbrev-expand-function' obsoletes `abbrev-expand-functions'.
argument, with the same interpretation as the returned value of
`visited-file-modtime'.
-** Autorevert changes
+** Revert and Autorevert changes
+
++++
+*** The default values of `buffer-stale-function', `revert-buffer-function',
+and `revert-buffer-insert-file-contents-function' are no longer nil.
+Instead they default to functions that do what the nil value used to.
+
++++
+*** `buffer-stale-function' is now used for buffers visiting files too.
---
-*** If Emacs is compiled with file notification support, notifications
-are used instead of checking the time stamp of the files. You can
-disable this by setting the user option `auto-revert-use-notify' to
-nil. Alternatively, a regular expression of directories to be
-excluded from file notifications can be specified by
+*** If Emacs is compiled with file notification support, it uses notifications
+instead of checking file time stamps. To disable this, set the user option
+`auto-revert-use-notify' to nil. Alternatively, you can specify a regular
+expression matching directories to be excluded from file notifications via
`auto-revert-notify-exclude-dir-regexp'.
---
*** The new user option `auto-revert-remote-files' enables reversion
-of remote files when set to non-nil.
+of remote files, if set to non-nil.
** Face changes
++++
*** The function `face-spec-set' is now like `setq' for face specs.
Its third arg now accepts values specifying a face spec type (defface,
custom, or override spec), and the relevant spec is set accordingly.
*** New function `add-face-text-property', which can be used to
conveniently prepend/append new face properties.
+---
*** Face specs set via Custom themes now replace the `defface' spec
-rather than inheriting from it (as do face specs set via Customize).
+rather than inheriting from it. In other words, setting a face via a
+theme now behaves like setting it via Customize: you only need to
+specify the attributes that you want, you don't need to unset those
+that you don't want.
+---
*** New face characteristic (supports :underline (:style wave))
specifies whether or not the terminal can display a wavy line.
"Interlocking" in the Emacs User Manual for the details. To disable
file locking, customize `create-lockfiles' to nil.
++++
** New Core Text based font backend for Mac OS X 10.5 and newer.
+To use the old font backend, use the following on the command line:
+ % defaults write org.gnu.Emacs FontBackend ns
GNUstep and Mac OS X 10.4 use the old font backend.
-To use the old backend by default, do on the command line:
-% defaults write org.gnu.Emacs FontBackend ns
-** Improved fullscreen support on Mac OS X.
-Emacs supports both native (Mac OS X 10.7 and newer) and "old style" fullscreen.
-Customize `ns-use-native-fullscreen' to change the style.
-For Mac OS X 10.7 and newer, native is the default.
+---
+** Improved fullscreen support on Mac OS X 10.7 and newer, where the
+default fullscreen method is now "native" fullscreen. To use the
+old style fullscreen, customize `ns-use-native-fullscreen' to nil.
-** On Mac OS X 10.7 and newer, Emacs uses sRGB colorspace by default.
-Customize `ns-use-srgb-colorspace' to disable this. Note that this
-does not apply to images.
+---
+** On Mac OS X 10.7 and newer, Emacs can use sRGB colorspace, and does so
+by default. Customize `ns-use-srgb-colorspace' to go back to the old method.
+Note that this does not apply to images.
\f
* Installation Changes in Emacs 24.3
\f
Local variables:
+coding: utf-8
mode: outline
paragraph-separate: "[ \f]*$"
end: