* etc/NEWS: Fix typos
[bpt/emacs.git] / etc / NEWS
index 53fb6e6..d1fec74 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1,6 +1,6 @@
 GNU Emacs NEWS -- history of user-visible changes.
 
-Copyright (C) 2010-2013 Free Software Foundation, Inc.
+Copyright (C) 2010-2014 Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
@@ -15,49 +15,48 @@ You can narrow news to a specific version by calling `view-emacs-news'
 with a prefix argument or by typing C-u C-h C-n.
 
 Temporary note:
-+++ indicates that all necessary updates to the manuals in doc/ are complete.
++++ indicates that all necessary documentation updates are complete.
+    (This means all relevant manuals in doc/ AND lisp doc-strings.)
 --- means no change in the manuals is needed.
-When you add a new item, use the appropriate mark if you know it applies,
+When you add a new item, use the appropriate mark if you are sure it applies,
 otherwise leave it unmarked.
 
 \f
 * Installation Changes in Emacs 24.4
 
-** Emacs can be compiled with ACL support.
+** 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'.
 
-** Emacs can be compiled with file notification support.
+** 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
 `--with-file-notification-no'.  See below for file-notify features.
 FIXME?  This feature is not available for the Nextstep port. (?)
 
-** The configure option `without-compress-info' has been generalized,
-and renamed to `without-compress-install'.  It now prevents compression
+---
+** The configure option `--without-compress-info' has been generalized,
+and renamed to `--without-compress-install'.  It now prevents compression
 of _any_ files during installation.
 
-** The configure option --with-crt-dir has been removed.
+---
+** The configure option `--with-crt-dir' has been removed.
 It is no longer needed, as the crt*.o files are no longer linked
 specially.
 
+---
 ** 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 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 (OSX, GNUStep) can be built with ImageMagick support.
-pkg-config is required to find ImageMagick libraries.
-
-** For OSX >= 10.5, the Core text based font backend from the Mac port is used.
-For GNUStep and OSX 10.4 the old backend is used.
-To use the old backend by default, do on the command line:
-% defaults write org.gnu.Emacs FontBackend ns
+** Emacs for NS (Mac OS X, GNUstep) can be built with ImageMagick support.
+This requires pkg-config to be available at configure time.
 
 \f
 * Startup Changes in Emacs 24.4
@@ -83,9 +82,19 @@ Emacs executable, any changes to `load-path' that these files make
 will no longer be present after dumping.  To affect a permanent change
 to `load-path', use the `--enable-locallisppath' option of `configure'.
 
++++
+** The user option `initial-buffer-choice' can now specify a function
+to set up the initial buffer.
+
 \f
 * Changes in Emacs 24.4
 
++++
+** New option `gnutls-verify-error', if non-nil, means that Emacs
+should reject SSL/TLS certificates that GnuTLS determines as invalid.
+(This option defaults to nil at present, but this is expected to change
+in a future release.)
+
 +++
 ** Emacs now supports menus on text-mode terminals.
 If the terminal supports a mouse, clicking on the menu bar, or on
@@ -103,148 +112,187 @@ customize the option `tty-menu-open-use-tmm' to a non-nil value.
 `tty-menu-open-use-tmm' is nil.)
 
 +++
-** Key ? also describes prefix bindings like C-h.
+** The *Messages* buffer is created in `messages-buffer-mode',
+a new major mode, with read-only status.  Any code that might create
+the *Messages* buffer should call the function `messages-buffer' to do
+so and set up the mode.
 
+** Emacs now supports ACLs (access control lists).
 +++
-** `cache-long-line-scans' has been renamed to `cache-long-scans'
-because it affects caching of paragraph scanning results as well.
+*** 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.
+
+** 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
+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'.
 
 +++
-** `apropos-variable' is now `apropos-user-option'
+** The cursor stops blinking after 10 blinks (by default) on X and NS.
+You can change the default by customizing `blink-cursor-blinks'.
+
++++
+** In keymaps where SPC scrolls forward, S-SPC now scrolls backward.
+This affects View mode, etc.
+
+** Help changes
+
++++
+*** The command `apropos-variable' is renamed to `apropos-user-option'.
 `apropos-user-option' shows all user options while `apropos-variable'
 shows all variables.  When called with a universal prefix argument,
 the two commands swap their behaviors.  When `apropos-do-all' is
 non-nil, they output the same results.
 
 +++
-** `eval-defun' on an already defined defcustom calls the :set function,
-if there is one.
+*** The key `?' now describes prefix bindings, like `C-h'.
 
-** A zero prefix arg of `eval-last-sexp' (`C-x C-e'),
-`eval-expression' (`M-:') and `eval-print-last-sexp' (`C-j') inserts
-a list with no limit on its length and level (by using nil values of
-`print-length' and `print-level'), and inserts additional formats for
-integers (octal, hexadecimal, and character).
-
-** If the new variable `enable-dir-local-variables' is nil,
-directory local variables are ignored.  May be useful for some modes
-that want to ignore directory-locals while still respecting file-locals.
+*** 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
+implementations together with links to the source.  The old commands
+`describe-class', `describe-constructor' and `describe-generic' were
+removed.
 
 ---
-** 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 function `quail-help' is no longer an interactive command.
+Use `C-h C-\' (`describe-input-method') instead.
 
-+++
-** `initial-buffer-choice' can now specify a function to set up the
-initial buffer.
+** ImageMagick
 
 +++
-** The *Messages* buffer is created in a new major mode `messages-buffer-mode',
-and read-only.  Code that might create the *Messages* buffer should
-call the function `messages-buffer' to do so and set the mode.
+*** ImageMagick images now support the :max-width and :max-height keywords.
 
-** `remember-notes' creates a buffer whose content is saved on kill-emacs.
-You may 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, *scratch* buffer will still be there for notes that do not
-need to be preserved.
++++
+*** When using `create-image' with image data, you can pass a :format
+attribute (via the property-list argument) in order to help
+ImageMagick detect the image type.  The value should be a MIME
+content-type that is found in the new variable `image-format-suffixes'.
 
----
-** `write-region-inhibit-fsync' now defaults to t in batch mode.
+** Frame and window changes
 
-** ACL support has been added.
 +++
-*** Emacs preserves the ACL entries of files when backing up.
+*** 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 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.
+*** New hooks `focus-in-hook', `focus-out-hook'.
+These are normal hooks run when an Emacs frame gains or loses input focus.
 
-** New option `scroll-bar-adjust-thumb-portion'.
+---
+*** `split-window' is now a non-interactive function, not a command.
+As a command, it was a special case of `C-x 2' (`split-window-below'),
+and as such superfluous.  After being reimplemented in Lisp, its
+interactive form was mistakenly retained.
+
++++
+*** New option `scroll-bar-adjust-thumb-portion'.
 Available only on X, this option allows to control over-scrolling
 using the scroll bar (i.e. dragging the thumb down even when the end
 of the buffer is visible).
 
+** Lisp evaluation changes
 +++
-** New function `add-face-text-property' has been added, which can be
-used to conveniently prepend/append new face attributes to text.
-
-** In compiled Lisp files, the header no longer includes a timestamp.
-
-** 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.
+*** `eval-defun' on an already defined defcustom calls the :set function,
+if there is one.
 
-*** 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 just they were on X11.  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'.
++++
+*** The commands `eval-expression' (`M-:'), `eval-last-sexp' (`C-x C-e'),
+and `eval-print-last-sexp' (`C-j' in Lisp Interaction mode) can take a
+zero prefix argument.  This disables truncation of lists in the output,
+equivalent to setting `(eval-expression-)print-length' and
+`(eval-expression-)print-limit' to nil.  Additionally, it causes integers
+to be printed in other formats (octal, hexadecimal, and character).
 
-** 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.
+---
+** `write-region-inhibit-fsync' now defaults to t in batch mode.
 
-** New hooks `focus-in-hook', `focus-out-hook'.
-These are normal hooks run when an Emacs frame gains or loses input focus.
++++
+** `cache-long-line-scans' has been renamed to `cache-long-scans'
+because it affects caching of paragraph scanning results as well.
+Also, it is now enabled by default.
 
-** The blink cursor stops blinking after 10 blinks (default) on X and NS.
-You can change the default by customizing the variable blink-cursor-blinks.
-Also timers for blinking are stopped when no blinking is done, so Emacs does
-not consume CPU cycles.
+---
+** 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.
 
-** New command `frameset-to-register' is now bound to `C-x r f', replacing
-`frame-configuration-to-register'.  It offers similar functionality, plus
-some enhancements, like the ability to restore deleted frames.  Command
-`frame-configuration-to-register' is still available, but unbound.
+** The default value of `comment-use-global-state' is now t,
+and this variable has been marked obsolete.
 
-** The command `quail-help' is deleted.  Use `C-h C-\'
-(`describe-input-method') instead.
+---
+** `emacs-bzr-version' has been renamed to `emacs-repository-version',
+and works for git too, if you fetch the repository notes.
 
-** The default value of `comment-use-global-state' is changed to t,
-and this variable has been marked obsolete.
+** New user options:
 
-** `fill-single-char-nobreak-p' prevents fill from breaking a line after
-a 1-letter word, which is an error according to Polish and
-Czech typography rules.  To globally enable this feature, evaluate:
+*** `read-regexp-defaults-function' defines a function to read regexps,
+used 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.
 
-  (add-hook 'fill-nobreak-predicate 'fill-single-char-nobreak-p)
++++
+*** `load-prefer-newer' affects how the `load' function chooses the
+file to load.  If this is non-nil, then when both .el and .elc
+versions of a file exist, and the caller did not explicitly specify
+which one to load, then the newer file is loaded.  The default, nil,
+means to always load the .elc file.
 
 \f
 * Editing Changes in Emacs 24.4
 
-** `electric-indent-mode' is enabled by default.
+** Indentation changes
 
-** Uniquify is enabled by default with post-forward-angle-brackets style.
-
-** Command `rectangle-mark-mode' bound to C-x SPC makes a rectangular region.
-Most commands are still unaware of it, but kill/yank do work on the rectangle.
++++
+*** The behavior of `C-x TAB' (`indent-rigidly') has changed.
+When invoked without a prefix argument, it now activates a transient
+mode in which typing <left>, <right>, <S-left>, and <S-right> adjusts
+the text indentation in the region.  Typing any other key resumes
+normal editing behavior.
 
-** C-x TAB enters a transient interactive mode.
-You can then use the left/right cursor keys to move the block of text.
+*** `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
+*** `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
 stop every `tab-width' columns.
 
-** `split-window' is no longer a command, just a non-interactive function.
-As a command it was a special case of `split-window-below', and as such
-superfluous.  After being reimplemented in Lisp, its interactive form
-was mistakenly retained.
+** Filling changes
 
-** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized',
-bound to <f11> and M-<f10>, respectively.
+*** New command `cycle-spacing' cycles between spacing conventions:
+having just one space, no spaces, or reverting to the original
+spacing.  Like `just-one-space', it can handle or ignore newlines and
+leave different number of spaces.
 
-** In keymaps where SPC scrolls, S-SPC now scrolls in the reverse direction.
-Eg View mode, etc.
+*** `fill-single-char-nobreak-p' prevents fill from breaking a line after
+a 1-letter word, which is an error according to Polish and
+Czech typography rules.  To globally enable this feature, evaluate:
+
+  (add-hook 'fill-nobreak-predicate 'fill-single-char-nobreak-p)
+
++++
+** Uniquify is enabled by default, with `post-forward-angle-brackets' style.
+
+** 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.
 
 +++
 ** New option `visual-order-cursor-movement'.
@@ -253,58 +301,27 @@ visual order of characters on the screen: <left> always moves to the
 left, <right> always moves to the right, disregarding the surrounding
 bidirectional context.
 
-** All register commands can now show help with preview.
+** Register changes
 
-** New command `kmacro-to-register' to store keyboard macros in registers.
+*** All register commands can now show help with preview.
 
-** Shell Script mode
++++
+*** New command `C-x C-k x' (`kmacro-to-register') stores keyboard
+macros in registers.
 
-*** `sh-mode' now has the mode own `add-log-current-defun-function'.
-You can pick the name of the function and the variables with `C-x 4 a'.
+*** New command `C-x r f' (`frameset-to-register').
+See Changes in Emacs 24.4, above.
+
+** New command `delete-duplicate-lines'.
+When its arg ADJACENT is non-nil (when called interactively with C-u
+C-u) it works like the utility `uniq'.  Otherwise by default it
+deletes duplicate lines everywhere in the region without regard to
+adjacency.  When its arg KEEP-BLANKS is non-nil (when called
+interactively with C-u C-u C-u), duplicate blank lines are preserved.
 
 \f
 * Changes in Specialized Modes and Packages in Emacs 24.4
 
-** CUA-mode
-*** CUA-mode was changed to make use of delete-selection-mode and
-shift-select-mode.  So you can now enable it independently from
-transient-mark-mode, delete-selection-mode, and shift-select-mode.
-As a result, cua-highlight-region-shift-only is obsolete
-(you can disable transient-mark-mode to get the same result).
-*** CUA's rectangles can now be used via `cua-rectangle-mark-mode'.
-
-** `delete-selection-mode' can be used without transient-mark-mode.
-
-** prolog-use-smie has been removed, along with the non-SMIE indentation code.
-
-** SMIE indentation can be customized via `smie-config'.
-The customization can be guessed by Emacs by providing a sample indented
-file and letting SMIE learn from it.
-
-** sh-script now uses its SMIE indentation algorithm by default.
-
-** `eshell' now supports visual subcommands and options
-Eshell has been able to handle "visual" commands (interactive,
-non-line oriented commands such as top that require display
-capabilities not provided by eshell) by running them in an Emacs
-terminal emulator.  See `eshell-visual-commands'.
-
-This feature has been extended to subcommands and options that make a
-usually line-oriented command a visual command.  Typical examples are
-"git log" and "git <command> --help" which display their output in a
-pager by default.  See `eshell-visual-subcommands' and
-`eshell-visual-options'.
-
-** If your Emacs is compiled with libxml2 support, you can use the new
-built-in web browser `eww'.
-
-** `remember' 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.
-
 ** More packages look for ~/.emacs.d/<foo> additionally to ~/.<foo>.
 Affected files:
 ~/.emacs.d/timelog     replaces  ~/.timelog
@@ -326,28 +343,21 @@ Also the following files used by the now obsolete otodo-mode.el:
 ~/.emacs.d/todo-done   replaces  ~/.todo-done
 ~/.emacs.d/todo-top    replaces  ~/.todo-top
 
+** Backtrace and debugger
 
-** Delphi mode is now called OPascal mode.
-*** All delphi-* variables and functions have been renamed to opascal-*.
-*** `delphi-newline-always-indents' is not supported any more.
-Use `electric-indent-mode' instead.
-*** `delphi-tab' is gone, replaced by `indent-for-tab-command'.
+*** 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.
 
-** Eldoc Mode works properly in the minibuffer.
-
-** jit-lock-debug-mode lets you use the debuggers on code run via jit-lock.
-
-** completing-read-multiple's separator can now be a regexp.
-The default separator is changed to allow surrounding spaces around the comma.
++++
+*** New command `v' (`debugger-toggle-locals') displays local vars.
 
-** The backtrace debugger and local variables:
-*** The debugger's `e' command evaluates the code in the context at point.
-This includes using the lexical environment at point, which means that
-`e' now lets you access lexical variables as well.
-*** The backtrace debugger can display local vars with `v'.
+*** New minor mode `jit-lock-debug-mode' lets you use the debuggers on
+code run via JIT Lock.
 
 ** Battery
 
+---
 *** Battery information via the BSD `apm' utility is now supported.
 
 ** Buffer Menu
@@ -356,41 +366,19 @@ This includes using the lexical environment at point, which means that
 
 ** Calendar and Diary
 
-*** New faces: `calendar-weekday-header', `calendar-weekend-header',
-`calendar-month-header'.
+---
+*** New faces `calendar-weekday-header', `calendar-weekend-header',
+and `calendar-month-header'.
 
++++
 *** New option `calendar-day-header-array'.
 
-*** The variable `calendar-font-lock-keywords' is obsolete.
-
 +++
 *** New variable `diary-from-outlook-function', used by the command
 `diary-from-outlook'.
 
-** VC and related modes
-
-*** In VC directory mode, `D' displays diffs between VC-controlled
-whole tree revisions.
-
-*** In VC directory mode, `L' lists the change log for the current VC
-controlled tree in a window.
-
-*** In VC directory mode, `I' shows a log of changes that will be
-received with a pull operation.
-
-*** `C-x v G' (globally) and `G' (in VC directory mode) ignores a file
-under current version control system.  When called with a prefix
-argument, you can remove a file from the ignored file list.
-
-*** `cvs-append-to-ignore' has been renamed to `vc-cvs-append-to-ignore'
-because it is moved to vc-cvs.el.
-
-** cl-lib
-
-*** New macro cl-tagbody.
-
-+++
-*** letf is now just an alias for cl-letf.
+---
+*** The variable `calendar-font-lock-keywords' is obsolete.
 
 ** Calc
 
@@ -408,6 +396,61 @@ on the given date.
 
 *** Support for ISO 8601 dates.
 
+** CEDET
+
+*** 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++.
+
+**** Parsing of default values for variables and function arguments in C/C++.
+They are also displayed by the summarize feature in the modeline.
+
+**** Improved parsing of function pointers in C/C++.
+This also includes parsing of function pointers as function arguments.
+
+**** Parsing of C/C++ preprocessor macros which open new scope.
+For example, this enables parsing of macros which open new namespaces.
+
+**** Support for 'this' pointer in inline member functions in C++.
+
+** cl-lib
+
+*** New macro `cl-tagbody'.
+
++++
+*** letf is now just an alias for cl-letf.
+
+** CUA mode
+
+*** CUA mode now uses `delete-selection-mode' and `shift-select-mode'.
+Hence, you can now enable it independently from `transient-mark-mode',
+`delete-selection-mode', and `shift-select-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'.
+
+** CFEngine mode
+
+*** Support for completion, ElDoc, and Flycheck has been added.
+
+*** The current CFEngine syntax is parsed from "cf-promises -s json".
+There is a fallback syntax available if you don't have cf-promises or
+if it doesn't support that option.
+
+** Delete Selection mode can now be used without `transient-mark-mode'.
+
 ** Desktop
 
 *** `desktop-auto-save-timeout' defines the number of seconds idle time
@@ -418,20 +461,46 @@ 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.
 
++++
 ** Dired
 
 *** New minor mode `dired-hide-details-mode' hides details.
 
-** ERC
+** Eldoc Mode works properly in the minibuffer.
 
-*** New option `erc-accidental-paste-threshold-seconds'.
-If set to a number, this can be used to avoid accidentally paste large
-amounts of data into the ERC input.
+** 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
+balanced as before.
+
+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.
 
 ** EPA
 
 *** New option `epa-mail-aliases'.
-
 You can set this to a list of alias expansions for keys to use
 in `epa-mail-encrypt'.
 
@@ -444,42 +513,78 @@ that means: when one of the recipients of the message being encrypted
 is `foo@bar.com', ignore that name as regards encryption.
 This is useful to avoid a query when you have no key for that name.
 
+** ERC
+
+*** New option `erc-accidental-paste-threshold-seconds'.
+If set to a number, this can be used to avoid accidentally pasting large
+amounts of data into the ERC input.
+
++++
+** New ERT macro `skip-unless' allows skipping ERT tests.
+See the ERT manual for details.
+
+** Eshell
+
++++
+*** `eshell' now supports visual subcommands and options.
+Eshell has been able to handle "visual" commands (interactive,
+non-line oriented commands such as top that require display
+capabilities not provided by eshell) by running them in an Emacs
+terminal emulator.  See `eshell-visual-commands'.
+
+This feature has been extended to subcommands and options that make a
+usually line-oriented command a visual command.  Typical examples are
+"git log" and "git <command> --help", which display their output in a
+pager by default.  See `eshell-visual-subcommands' and
+`eshell-visual-options'.
+
+---
+*** New Eshell-Tramp module.
+External su and sudo commands are now the default; the internal,
+Tramp-using variants can still be used by enabling the eshell-tramp
+module.
+
+** F90 mode
 ---
-** New F90 mode option `f90-smart-end-names'.
+*** New option `f90-smart-end-names'.
 
 ** Icomplete is a bit more like Ido.
-*** key bindings to navigate through and select the completions.
+
+*** Key bindings to navigate through and select the completions.
+
 *** The icomplete-separator is customizable, and its default has changed.
-*** Removed icomplete-show-key-bindings.
+
+*** Removed `icomplete-show-key-bindings'.
+
 *** 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.
 
-+++
-** New features for Octave mode:
-*** Font locking for texinfo comments and new keywords
-*** Completion in Octave file buffers
-*** Eldoc support
-*** Jump to definition
-*** Documentation lookup/search
-*** Code cleanup and various bug fixes
-
 ** Ido
+
 *** Ido has a manual now.
+
 *** `ido-use-virtual-buffers' takes a new value 'auto.
+
 *** `ido-decorations' has been slightly extended to give a bit more control.
 
 ** Image mode
 
++++
 *** New commands `n' (`image-next-file') and `p' (`image-previous-file')
 visit the next image file and the previous image file in the same
 directory, respectively.
 
++++
 *** New commands to show specific frames of multi-frame images.
 `f' (`image-next-frame') and `b' (`image-previous-frame') visit the
 next or previous frame.  `F' (`image-goto-frame') shows a specific frame.
 
++++
 *** New commands to speed up, slow down, or reverse animation.
+`a +' (`image-increase-speed') and `a -' (`image-decrease-speed') to
+speed up and slow down the animation.  `a r' (`image-reverse-speed')
+to reverse it and `a 0' (`image-reset-speed') to reset it.
 
 ---
 *** The command `image-mode-fit-frame' deletes other windows.
@@ -487,28 +592,126 @@ When toggling, it restores the frame's previous window configuration.
 It also has an optional frame argument, which can be used by Lisp
 callers to fit the image to a frame other than the selected frame.
 
-** Info
+** 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 without prompting,
+using the next face automatically.
+
+** New Imenu option `imenu-generic-skip-comments-and-strings'.
+
+---
+** New Info face `info-index-match', used to highlight matches in index
+entries displayed by `Info-index-next', `Info-virtual-index' and
+`info-apropos'.
+
+** JS Mode
+
+*** Better indentation of multiple-variable declarations.
+If declaration spans several lines, variables on the following lines
+are lined up to the first one.
+
+*** We now recognize and better indent continuations in array
+comprehensions.
+
+*** New option `js-switch-indent-offset`.
+
+** MH-E has been updated to MH-E version 8.5.
+See MH-E-NEWS for details.
+
++++
+** Octave mode
+
+*** Font locking for texinfo comments and new keywords.
+
+*** Completion in Octave file buffers.
+
+*** Eldoc support.
+
+*** Jump to definition.
+
+*** Documentation lookup/search.
+
+** OPascal mode is the new name for Delphi mode.
+
+*** All delphi-* variables and functions have been renamed to opascal-*.
+
+*** `delphi-newline-always-indents' is not supported any more.
+Use `electric-indent-mode' instead.
+
+*** `delphi-tab' is gone, replaced by `indent-for-tab-command'.
+
+** Package
+
+*** 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.
+
+---
+** In Prolog mode, `prolog-use-smie' has been removed,
+along with the non-SMIE indentation code.
+
+** 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 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.
+
+** Rmail
+
+*** Customize `rmail-mbox-format' to influence some minor aspects of
+how Rmail displays non-MIME messages.
+
+---
+*** The `unrmail' command now converts from BABYL to mboxrd format,
+rather than mboxo.  Customize `unrmail-mbox-format' to change this.
+
+** Ruby mode
+
+*** New option `ruby-encoding-magic-comment-style'.
+
+*** New option `ruby-custom-encoding-magic-comment-template'.
 
-*** New face `info-index-match' is used to highlight matches in index
-entries displayed by `Info-index-next', `Info-virtual-index' and
-`info-apropos'.
+*** Improved syntax highlighting and indentation.
 
-** Hi-Lock
+*** More Ruby file types have been added to `auto-mode-alist'.
 
-*** 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 option `ruby-align-to-stmt-keywords'.
 
-+++
-*** New global command `M-s h .' (`highlight-symbol-at-point')
-highlights the symbol found near point without prompting,
-using the next face automatically.
+*** New `electric-indent-mode' integration.
 
 ** Search and Replace
 
++++
 *** New global command `M-s .' (`isearch-forward-symbol-at-point')
 starts a symbol (identifier) incremental search forward with the
 symbol found near point added to the search string initially.
 
++++
 *** `C-x 8 RET' in Isearch mode reads a character by its Unicode name
 and adds it to the search string.
 
@@ -519,6 +722,7 @@ when it's nil).
 *** `query-replace' skips invisible text when `search-invisible' is nil,
 and opens overlays with hidden text when `search-invisible' is `open'.
 
++++
 *** A negative prefix arg of replacement commands replaces backward.
 `M-- M-%' replaces a string backward, `M-- C-M-%' replaces a regexp
 backward, `M-s w words M-- M-%' replaces a sequence of words backward.
@@ -527,10 +731,12 @@ backward, `M-s w words M-- M-%' replaces a sequence of words backward.
 *** By default, prefix arguments do not now terminate Isearch mode.
 Set `isearch-allow-prefix' to nil to restore old behavior.
 
++++
 *** More Isearch commands accept prefix arguments, namely
 `isearch-printing-char', `isearch-quote-char', `isearch-yank-word',
 `isearch-yank-line'.
 
++++
 *** Word search now matches whitespace at the beginning/end
 of the search string if it contains leading/trailing whitespace.
 In an incremental word search or when using a non-nil LAX argument
@@ -539,64 +745,67 @@ the first word (in addition to the lax matching of the last word).
 The same rules are now applied to the symbol search with the difference
 that it matches symbols, and non-symbol characters between symbols.
 
-** MH-E has been updated to MH-E version 8.5.
-See MH-E-NEWS for details.
++++
+** New SES command `ses-rename-cell' allows assigning names to SES cells.
 
 ---
-** The unrmail command converts from BABYL to mboxrd rather than mboxo.
-Customize `unrmail-mbox-format' to change this.
+** The shell.el option `explicit-bash-args' includes --noediting by default.
+All non-ancient Bash versions support this option.
 
----
-** Similarly, customize `rmail-mbox-format' to influence some minor aspects
-of how Rmail displays non-MIME messages.
-
-+++
-** New function `ses-rename-cell' to give SES cells arbitrary names.
-
-** trace-function was largely rewritten.
-New features include:
-- no prompting for the destination buffer, unless a prefix-arg was used.
-- additionally to prompting for a destination buffer, when a prefix-arg is
-  used, the user can enter a "context", i.e. Lisp expression whose value at the
-  time the function is entered/exited will be printed along with the function
-  name and arguments.  Useful to trace the value of (current-buffer) or
-  (point) when the function is invoked.
-
-** New command `delete-duplicate-lines' has new types of operation:
-When its arg ADJACENT is non-nil (when called interactively with C-u C-u)
-it works like the utility `uniq'.  Otherwise by default it deletes
-duplicate lines everywhere in the region without regard to adjacency.
-When its arg KEEP-BLANKS is non-nil (when called interactively with
-C-u C-u C-u), duplicate blank lines are preserved.
-
-** New `cycle-spacing' command allows cycling between having just one
-space, no spaces, or reverting to the original spacing.  Like
-`just-one-space' command it can handle or ignore newlines and
-leave different number of spaces.
+** Shell Script mode
 
+*** `sh-mode' now has its own setting for `add-log-current-defun-function'.
+
+*** The SMIE indentation engine is now used by default.
+
+** SMIE indentation can be customized via `smie-config'.
+Emacs can learn the appropriate indentation settings if you provide it
+with an indented sample file.
+
+** New Term mode option `term-suppress-hard-newline'.
+
++++
 ** Todo mode has been rewritten and enhanced.
-New features include:
-- support for multiple todo files and archive files of done items;
-- renaming, reordering, moving, merging, and deleting categories;
-- sortable tabular summaries of categories and the types of items they contain;
-- cross-category lists of items filtered by specific criteria;
-- more fine-grained interaction with the Emacs diary, by being able to decide
-  for each todo item whether it appears in the Fancy Diary display;
-- highly flexible new item insertion and item editing;
-- moving items between categories, storing done items in their category or in
-  archive files, undoing or unarchiving done items;
-- reprioritizing items by inputting a numerical priority;
-- extensive customizability of operation and display, including numerous faces.
-The Todo mode user manual describes all commands and most user options.
-To support some of these features, a new file format is used, which is
-incompatible with the old format; however, you can convert old todo and done
-item files to the new format on initializing the first new todo file, or at any
-later time with the provided conversion command.  The old version of
-todo-mode.el has been made obsolete and renamed otodo-mode.el.
+The Todo mode user manual describes all commands and most user
+options.  To support some of these features, a new file format is
+used, which is incompatible with the old format; however, you can
+convert old todo and done item files to the new format on initializing
+the first new todo file, or at any later time with the provided
+conversion command.  The previous version of todo-mode.el has been
+renamed to otodo-mode.el and is now obsolete.  New features include:
+
+*** Support for multiple todo files and archive files of done items.
+
+*** Renaming, reordering, moving, merging, and deleting categories.
+
+*** Sortable tabular summaries of categories and the item types they contain.
+
+*** Cross-category lists of items filtered by specific criteria.
+
+*** More fine-grained interaction with the Emacs diary, by being able to
+decide for each todo item whether it appears in the Fancy Diary display.
+
+*** Highly flexible new item insertion and item editing.
+
+*** Moving items between categories, storing done items in their category
+or in archive files, undoing or unarchiving done items.
+
+*** Reprioritizing items by inputting a numerical priority.
+
+*** Extensive customizability of operation and display, including many faces.
+
+** trace-function
+
+*** No prompting for the destination buffer, unless a prefix argument is used.
+
+*** With a prefix argument, you can enter a "context"; i.e., a Lisp
+expression whose value at the time the function is entered/exited will
+be printed along with the function name and arguments.  For example,
+you can use this to trace the value of current-buffer or point.
 
 ** Tramp
 
-*** The experimental url syntax for remote file names is withdrawn.
+*** The experimental url syntax for remote file names has been removed.
 
 +++
 *** New connection method "adb", which allows to access Android
@@ -616,61 +825,43 @@ which support POSIX ACLs.
 *** Handlers for `file-notify-add-watch' and `file-notify-rm-watch'
 for remote machines which support filesystem notifications.
 
-** VHDL mode
-
-*** New options: `vhdl-actual-generic-name', `vhdl-beautify-options'.
-
-*** New commands: `vhdl-fix-statement-region', `vhdl-fix-statement-buffer'.
-
-** Woman
-
-*** The commands `woman-default-faces' and `woman-monochrome-faces'
-are obsolete.  Customize the `woman-*' faces instead.
-
-** Eshell
-
-*** Added Eshell-Tramp module
-External su and sudo commands are now the default; the internal,
-Tramp-using variants can still be used by enabling the eshell-tramp
-module.
-
-** Package
-
-*** 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.
-
-** New term.el option `term-suppress-hard-newline'.
+** New command `url-cookie-list' displays all the current cookies, and
+allows deleting selected cookies.
 
-** CEDET
+** VC and related modes
 
-*** EDE
++++
+*** In VC directory mode, `D' displays diffs between VC-controlled
+whole tree revisions.
 
-**** 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'.
++++
+*** In VC directory mode, `L' lists the change log for the current VC
+controlled tree in a window.
 
-**** Better selection of include directories for the 'linux' project.
-Include directories now support out-of-tree build directories and
-target architecture auto-detection.
++++
+*** In VC directory mode, `I' shows a log of changes that will be
+received with a pull operation.
 
-*** Semantic
++++
+*** `C-x v G' (globally) and `G' (in VC directory mode) ignores a file
+under current version control system.  When called with a prefix
+argument, you can remove a file from the ignored file list.
 
-**** Improved detection of used namespaces in current scope in C++.
+---
+*** `cvs-append-to-ignore' has been renamed to `vc-cvs-append-to-ignore'
+because it is moved to vc-cvs.el.
 
-**** Parsing of default values for variables and function arguments in C/C++.
-They are also displayed by the summarize feature in the modeline.
+** VHDL mode
 
-**** Improved parsing of function pointers in C/C++.
-This also includes parsing of function pointers as function arguments.
+---
+*** New options: `vhdl-actual-generic-name', `vhdl-beautify-options'.
 
-**** Parsing of C/C++ preprocessor macros which open new scope.
-For example, this enables parsing of macros which open new namespaces.
+---
+*** New commands: `vhdl-fix-statement-region', `vhdl-fix-statement-buffer'.
 
-**** Support for 'this' pointer in inline member functions in C++.
+---
+** The Woman commands `woman-default-faces' and `woman-monochrome-faces'
+are obsolete.  Customize the `woman-*' faces instead.
 
 ** Obsolete packages:
 
@@ -681,11 +872,14 @@ For example, this enables parsing of macros which open new namespaces.
 +++
 *** sup-mouse.el.
 
+---
 *** terminal.el is obsolete; use term.el instead.
 
+---
 *** The previous version of todo-mode.el is obsolete and renamed otodo-mode.el.
 
-*** xesam.el.
+---
+*** xesam.el is obsolete, because the XESAM project has been canceled.
 
 +++
 *** yow.el is obsolete; use fortune.el or cookie1.el instead.
@@ -694,156 +888,192 @@ For example, this enables parsing of macros which open new namespaces.
 *** The Info-edit command is obsolete.  Editing Info nodes by hand
 has not been relevant for some time.
 
-** Shell
-
-*** `explicit-bash-args' now always defaults to use --noediting.
-During initialization, Emacs no longer expends a process to decide
-whether it is safe to use Bash's --noediting option.  These days
---noediting is ubiquitous; it was introduced in 1996 in Bash version 2.
+\f
+* New Modes and Packages in Emacs 24.4
 
 +++
-** There is a new macro `skip-unless' for skipping ERT tests.  See the manual.
-
-** Imenu
-
-*** New option `imenu-generic-skip-comments-and-strings'.
-
-** Ruby mode
-
-*** New option `ruby-encoding-magic-comment-style'.
-
-*** New option `ruby-custom-encoding-magic-comment-template'.
-
-*** New mode menu.
-
-*** Improved syntax highlighting and indentation.
-
-*** Add more Ruby file types to `auto-mode-alist'.
-
-*** New option `ruby-align-to-stmt-keywords'.
+** New package `eww' is a built-in web browser.
+It is only available if Emacs is compiled with libxml2 support.
 
-** JS Mode
-
-*** Better indentation of multiple-variable declarations.
-If declaration spans several lines, variables on the following lines
-are lined up to the first one.
-
-*** We now recognize and better indent continuations in array
-comprehensions.
+** 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.
 
-*** New option `js-switch-indent-offset`.
-
-\f
-* New Modes and Packages in Emacs 24.4
++++
+** New package nadvice.el offers lighter-weight advice facilities.
+It is layered as:
 
-** New `superword-mode' in subword.el
-`superword-mode' overrides the default word motion commands to treat
-symbol_words as a single word, similar to what `subword-mode' does and
-using the same internal functions.
+*** add-function/remove-function, which can be used to add/remove code on any
+function-carrying place, such as process-filters or `<foo>-function' hooks.
 
-** New nadvice.el package offering lighter-weight advice facilities.
-It is layered as:
-- add-function/remove-function which can be used to add/remove code on any
-  function-carrying place, such as process-filters or `<foo>-function' hooks.
-- advice-add/advice-remove to add/remove a piece of advice on a named function,
-  much like `defadvice' does.
+*** advice-add/advice-remove to add/remove a piece of advice on a named
+function,much like `defadvice' does.
 
-** New frameset.el package.
+** New package frameset.el.
 It provides a set of operations to save a frameset (the state of all
 or a subset of the existing frames and windows, somewhat similar to a
 frame configuration), both in-session and persistently, and restore it
 at some point in the future.
 
 +++
-** The package filenotify.el provides an interface for file system
-notifications.  It requires, that Emacs is compiled with one of the
+** New package filenotify.el provides an interface for file system
+notifications.  It requires that Emacs be compiled with one of the
 low-level libraries gfilenotify.c, inotify.c or w32notify.c.
 
 \f
 * Incompatible Lisp Changes in Emacs 24.4
 
-** `kill-region' lost its `yank-handler' optional argument.
+---
+** `kill-region' has lost its `yank-handler' optional argument.
 
-** `(input-pending-p)' no longer runs other timers which are ready to
-run.  The new optional CHECK-TIMERS param allows for the prior behavior.
++++
+** `(input-pending-p)' no longer runs other timers that are ready to run.
+The new optional CHECK-TIMERS parameter allows for the prior behavior.
 
++++
 ** `defvar' and `defcustom' in a let-binding affect the "external" default.
 
-** The syntax of ?» and ?« is now punctuation instead of matched parens.
-Some languages match those as »...« and others as «...» so better stay neutral.
+---
+** The syntax of ?» and ?« is now punctuation instead of matched parens.
+Some languages match those as Â»...«, and others as Â«...», so it is
+better for Emacs to stay neutral by default.
+
+---
+** In compiled Lisp files, the header no longer includes a timestamp.
 
++++
 ** The default file coding for Emacs Lisp files is now utf-8.
-(See file-coding-system-alist.)  In most cases, this change is transparent, but
-files that contain unusual characters without specifying an explicit coding
-system may fail to load with obscure errors.
-You should either convert them to utf-8 or add an explicit `coding:' cookie.
+(See `file-coding-system-alist'.)  In most cases, this change is
+transparent, but files that contain unusual characters without
+specifying an explicit coding system may fail to load with obscure
+errors.  You should either convert them to utf-8 or add an explicit
+`coding:' cookie.
 
-** overriding-terminal-local-map does not replace the local keymaps any more.
++++
+** `overriding-terminal-local-map' no longer replaces the local keymaps.
 It used to disable the minor mode, major mode, and text-property keymaps,
 whereas now it simply has higher precedence.
 
 ** Default process filters and sentinels are not nil any more.
-Instead they default to a function which does what the nil value used to do.
+Instead they default to a function that does what the nil value used to do.
 
++++
 ** `read-event' does not return decoded chars in ttys any more.
-Just as was the case in Emacs-22 and before, decoding of tty input according to
-keyboard-coding-system is not performed in read-event any more.  But contrary
-to that past, it is still done before input-decode-map/function-key-map/...
+As was the case in Emacs 22 and before, the decoding of terminal
+input, according to `keyboard-coding-system', is not performed in
+`read-event' any more.  But unlike in Emacs 22, this decoding is still
+done before input-decode-map, function-key-map, etc.
 
-** Removed inhibit-local-menu-bar-menus.
+---
+** The option `inhibit-local-menu-bar-menus' has been removed.
 
-** frame-local variables that affect redisplay do not work any more.
-More specifically, the redisplay does not bother to check for a frame-local
+---
+** Frame-local variables that affect redisplay do not work any more.
+More specifically, redisplay does not bother to check for a frame-local
 value when looking up variables.
 
-** nil and "unbound" are indistinguishable in symbol-function.
-`symbol-function' never signals `void-function' any more.
-`fboundp' returns non-nil if the symbol was `fset' to nil.
++++
+** nil and "unbound" are indistinguishable in `symbol-function'.
+`symbol-function' does not signal a `void-function' error any more.
+To determine if a symbol's function definition is void, use `fboundp'.
 
++++
 ** `defadvice' does not honor the `freeze' flag and cannot advise
 special-forms any more.
 
-** `dolist' in lexical-binding mode does not bind VAR in RESULT any more.
-VAR was bound to nil which was not tremendously useful and just lead to
-spurious warnings about an unused var.
+---
+** `dolist' no longer binds VAR while evaluating the RESULT form,
+when lexical binding is enabled.  Previously, VAR was bound to nil,
+which often led to spurious unused-variable warnings.
 
++++
 ** The return value of `backup-buffer' has changed.
 The second argument is no longer an SELinux context, instead it is an
 alist of extended attributes as returned by the new function
 `file-extended-attributes'.  The attributes can be applied to another
 file using `set-file-extended-attributes'.
 
++++
+** By default `copy-file' no longer copies file permission bits to an
+existing destination; and it sets the file permission bits of a newly
+created destination to those of the source, masked by the default file
+permissions.  To copy the file permission bits, pass t as the
+PRESERVE-PERMISSIONS argument of `copy-file'.
+
++++
 ** `visited-file-modtime' now returns -1 for nonexistent files.
 Formerly it returned a list (-1 LOW USEC PSEC), but this was ambiguous
 in the presence of files with negative time stamps.
 
-** The cars of the elements in `interpreter-mode-alist' are now treated
-as regexps rather than literal strings.  Technically this is an
-incompatible change, but unless you are using interpreter-mode-alist
-for something (not just adding elements to it), it ought not to affect you.
++++
+** The cars of the elements in `interpreter-mode-alist' are now
+treated as regexps rather than literal strings.
 
 \f
 * Lisp Changes in Emacs 24.4
 
-** New option `load-prefer-newer', if non-nil, means that when both
-.el and .elc versions of a file exist, rather than `load' always
-choosing the .elc version, it will choose whichever is newer
-(unless you explicitly specify one or the other).
++++
+** The second argument of `eval' can now specify a lexical environment.
 
-** New function get-pos-property.
++++
+** New functions `special-form-p' and `macrop'.
 
-** New hook `pre-redisplay-function'.
+** 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.
+
+** The `defalias-fset-function' property lets you catch `defalias'
+calls, and redirect them to your own function, instead of `fset'.
+
++++
+** New variable `enable-dir-local-variables'.
+Directory-local variables are ignored if this is nil.  This may be
+useful for modes that want to ignore directory-locals while still
+respecting file-local variables.
+
++++
+** New function `get-pos-property'.
+
+** Completion changes
+
+*** The separator for `completing-read-multiple' can now be a regexp.
+The default 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.
+
+** 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).
+
+** Terminal changes
 
 +++
-** Functions that pop up menus and dialogs now work on all terminal types,
-including TTYs.
-This includes `x-popup-menu', `x-popup-dialog', `message-box',
-`yes-or-no-p', etc.
+*** Functions to pop up menus and dialogs now work on all terminals,
+including TTYs.  This includes `x-popup-menu', `x-popup-dialog',
+`message-box', `yes-or-no-p', etc.
 
 The function `display-popup-menus-p' will now return non-nil for a
 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 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.
+
+** New hook `pre-redisplay-function'.
+
++++
 ** New bool-vector set operation functions:
 *** `bool-vector-exclusive-or'
 *** `bool-vector-union'
@@ -854,20 +1084,23 @@ frame.
 *** `bool-vector-count-consecutive'
 *** `bool-vector-count-population'
 
-** Comparison functions =, <, >, <=, >= now take many arguments.
++++
+** Comparison functions =, <, >, <=, >= can now take many arguments.
 
-** The second argument of `eval' can now be a lexical-environment.
+** Error-handling changes
 
-** `with-demoted-errors' takes an additional argument `format'.
 +++
-** New function `define-error'.
+*** New function `define-error'.
 
-** New hook `tty-setup-hook'.
++++
+*** `with-demoted-errors' takes an additional argument `format'.
 
 +++
-** New macro with-eval-after-load.  Like eval-after-load, but better behaved.
+** New macro `with-eval-after-load'.
+This is like the old `eval-after-load', but better behaved.
 
-** New library helpers.el for misc helper functions
+---
+** New library subr-x.el with miscellaneous small utility functions
 *** `hash-table-keys'
 *** `hash-table-values'
 *** `string-blank-p`
@@ -877,7 +1110,10 @@ frame.
 *** `string-trim-left'
 *** `string-trim-right'
 *** `string-trim'
+*** `string-remove-prefix'
+*** `string-remove-suffix'
 
++++
 ** Obsoleted functions:
 *** `log10'
 *** `dont-compile'
@@ -887,6 +1123,7 @@ frame.
 *** `isearch-nonincremental-exit-minibuffer'
 *** `isearch-filter-visible'
 *** `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:
@@ -894,25 +1131,51 @@ The few hooks that used with-wrapper-hook are replaced as follows:
 *** `completion-in-region-function' obsoletes `completion-in-region-functions'.
 *** `filter-buffer-substring-function' obsoletes `filter-buffer-substring-functions'.
 
++++
 ** `byte-compile-interactive-only-functions' is now obsolete.
-It has been replaced by the symbol property 'interactive-only.
+To specify that a command should only be called interactively, give it
+a non-nil `interactive-only' property.
 
++++
 ** `split-string' now takes an optional argument TRIM.
 The value, if non-nil, is a regexp that specifies what to trim from
 the start and end of each substring.
 
++++
 ** New function `string-suffix-p'.
 
-** `get-upcase-table' is obsoleted by the new `case-table-get-table'.
+** File-handling changes
 
-** Support for filesystem notifications.
++++
+*** Support for filesystem notifications.
 Emacs now supports notifications of filesystem changes, such as
 creation, modification, and deletion of files.  This requires the
 `glib' API, or the 'inotify' API (on GNU/Linux systems only).  On
 MS-Windows systems, this is supported for Windows XP and newer
 versions.
 
-** Changes in autorevert.el
++++
+*** The 9th element returned by `file-attributes' is now unspecified.
+Formerly, it was t if the file's gid would change if file were deleted
+and recreated.  This value has been inaccurate for years on many
+platforms, and nobody seems to have noticed or cared.
+
++++
+*** The 6th argument to `copy-file' has been renamed to
+PRESERVE-PERMISSIONS as it now handles ACL entries and the traditional
+Unix file permission bits as well as SELinux context.
+
++++
+*** The function `file-ownership-preserved-p' now has an optional
+argument GROUP which causes it check for file group too.  This can be
+used in place of the 9th element of `file-attributes'.
+
+---
+*** The function `set-visited-file-modtime' now accepts a 0 or -1
+argument, with the same interpretation as the returned value of
+`visited-file-modtime'.
+
+** Autorevert changes
 
 ---
 *** If Emacs is compiled with file notification support, notifications
@@ -928,10 +1191,13 @@ of remote files when set to non-nil.
 
 ** Face changes
 
-*** The function `face-spec-set' is now analogous to `setq' for face specs.
-Its third arg now accepts values specifying exactly which face spec to
-set (defface, custom, or user spec), and it directly sets the relevant
-property using the supplied face spec.
+*** 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).
@@ -939,6 +1205,7 @@ rather than inheriting from it (as do face specs set via Customize).
 *** New face characteristic (supports :underline (:style wave))
 specifies whether or not the terminal can display a wavy line.
 
++++
 *** New face spec attribute :distant-foreground
 specifies foreground to use if background color is near the foreground
 color that would otherwise have been used.
@@ -951,36 +1218,34 @@ It returns non-nil for any image that contains multiple frames,
 whether or not it specifies a frame delay.
 
 +++
-*** When animating images that do not specify a frame delay,
-Emacs uses `image-default-frame-delay'.
+*** New variable `image-default-frame-delay' gives the frame delay for
+animated images which do not specify a frame delay.
 
 +++
 *** New functions `image-current-frame' and `image-show-frame' for getting
 and setting the current frame of a multi-frame image.
 
-*** You can change the speed of animated images.
-
 ** EIEIO
 
++++
 *** Namespace cleanup by obsolete-aliasing functions to use `eieio-' prefix.
 **** object-name -> eieio-object-name
 **** object-class -> eieio-object-class
 **** object-class-fast -> eieio--object-class
+**** object-class-name -> eieio-object-class-name
 **** object-name-string -> eieio-object-name-string
 **** object-num-slots -> eieio--object-num-slots
 **** object-set-name-string -> eieio-object-set-name-string
+**** class-of -> eieio-object-class
+**** class-name -> eieio-class-name
 **** class-parent -> eieio-class-parent
 **** class-parents -> eieio-class-parents
+**** class-parents-fast -> eieio-class-parents-fast
 **** class-children -> eieio-class-children
 **** class-num-slots -> eieio--class-num-slots
 **** class-precedence-list -> eieio-class-precedence-list
-**** All generated class-* and object-* field accessors are now
-prefixed with `eieio-' as well.
-
-*** Obsoleted functions:
-**** class-of
-**** class-direct-subclasses
-**** class-direct-superclasses
+**** class-direct-subclasses -> eieio-class-children
+**** class-direct-superclasses -> eieio-class-parents
 
 ** Changes in encoding and decoding of text
 
@@ -1011,50 +1276,28 @@ These attributes are only meaningful for coding-systems of type
 `:coding-type' attribute and can be accessed by calling the
 `coding-system-type' function.)
 
-** The function `set-visited-file-modtime' now accepts a 0 or -1 argument
-with the same interpretation as the returned value of `visited-file-modtime'.
-
-** time-to-seconds is not obsolete any more.
-** New functions special-form-p and macrop.
-** Docstrings can be made dynamic by adding a `dynamic-docstring-function'
-text-property on the first char.
+---
+** The `time-to-seconds' alias to `float-time' is no longer marked obsolete.
 
-** The `defalias-fset-function' property lets you catch calls to defalias
-and redirect them to your own function instead of `fset'.
++++
+** New functions `group-gid' and `group-real-gid'.
 
-** The lock for 'DIR/FILE' is now 'DIR/.#FILE' and may be a regular file.
-When you edit DIR/FILE, Emacs normally creates a symbolic link
-DIR/.#FILE as a lock that warns other instances of Emacs that DIR/FILE
-is being edited.  Formerly, if there was already a non-symlink file
-named DIR/.#FILE, Emacs fell back on the lock names DIR/.#FILE.0
-through DIR/.#FILE.9.  These fallbacks have been removed, so that
-Emacs now no longer locks DIR/FILE in that case.
+---
+** The spelling of the rx.el category `chinese-two-byte' has been
+corrected (the first 'e' was missing).
 
+---
+** Minor internal changes to the details of lock files.
+The lock for DIR/FILE is now _always_ DIR/.#FILE.
+If DIR/.#FILE already exists and is not an Emacs lock file,
+Emacs makes no attempt to lock DIR/FILE.  (Previously, it fell back to
+numbered lock files DIR/.#FILE.0...).
 On file systems that do not support symbolic links, the lock is now a
 regular file with contents being what would have been in the symlink.
 
-** The 9th element returned by `file-attributes' is now unspecified.
-Formerly, it was t if the file's gid would change if file were deleted
-and recreated.  This value has been inaccurate for years on many
-platforms, and nobody seems to have noticed or cared.
-
-** The function `file-ownership-preserved-p' now has an optional
-argument GROUP which causes it check for file group too.  This can be
-used in place of the 9th element of `file-attributes'.
-
-** New functions `group-gid' and `group-real-gid'.
-
-** The 6th argument to `copy-file' has been renamed to
-`preserve-extended-attributes' as it now handles both SELinux context
-and ACL entries.
-
-** The `common-substring' argument of display-completion-list is obsolete.
-Either use `completion-all-completions' which already returns highlighted
-strings (including for partial or substring completion) or call
-`completion-hilit-commonality' to add the highlight.
-
 ** Changes to the Emacs Lisp Coding Conventions in Emacs 24.4
 
++++
 *** The package descriptor and name of global variables, constants,
 and functions should be separated by two hyphens if the symbol is not
 meant to be used by other packages.
@@ -1062,6 +1305,7 @@ meant to be used by other packages.
 \f
 * Changes in Emacs 24.4 on Non-Free Operating Systems
 
+---
 ** The procedure for building Emacs on MS-Windows has changed.
 It is now built by running the same configure script as on all other
 platforms.  This requires the MSYS environment and MinGW development
@@ -1100,15 +1344,24 @@ modifying it has no effect.
 
 ---
 ** Lock files now work on MS-Windows.
-This allows to avoid losing your edits if the same file is being
+This helps to prevent losing your edits if the same file is being
 edited in another Emacs session or by another user.  See the node
 "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.
+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.
-Both native (>= OSX 10.7) and "old style" fullscreen are supported.
-Customize `ns-use-native-fullscreen' to change style.  For >= 10.7
-native is the default.
+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.
+
+** 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.
 
 \f
 * Installation Changes in Emacs 24.3
@@ -1203,13 +1456,6 @@ ImageMagick types are treated as images.  The function
 `imagemagick-filter-types' returns the list of types that will be
 treated as images.
 
-*** ImageMagick images now support the :max-width and :max-height
-keywords.
-
-*** Some data types aren't auto-detected by ImageMagick.  Adding
-:format to `create-image' may help if the content type is in the
-new variable `image-format-suffixes'.
-
 ** Minibuffer
 
 *** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the
@@ -1251,7 +1497,7 @@ respectively, without exiting from the prompt.
 ** In the Package Menu, newly-available packages are listed as "new",
 and sorted above the other "available" packages by default.
 
-** If your Emacs was built from a bzr checkout, the new variable
+** If your Emacs was built from a repository checkout, the new variable
 `emacs-bzr-version' contains information about the bzr revision used.
 
 ** New option `create-lockfiles' specifies usage of lockfiles.
@@ -1703,9 +1949,6 @@ and the `attributes' slot is always nil.
 The `url-retrieve' function now uses this to encode its URL argument,
 in case that is not properly encoded.
 
-*** New command `url-cookie-list' displays all the current cookies, and
-allows deleting selected cookies.
-
 ** notifications.el supports now version 1.2 of the Notifications API.
 The function `notifications-get-capabilities' returns the supported
 server properties.
@@ -1955,13 +2198,6 @@ reused.
 *** New option `switch-to-buffer-preserve-window-point' to restore a
 window's point when switching buffers.
 
-*** 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.
-
 *** New display action alist entries `window-height' and `window-width'
 specify the size of new windows created by `display-buffer'.
 
@@ -3399,11 +3635,6 @@ should be derived.
 modes, e.g. (add-hook 'prog-mode-hook 'flyspell-prog-mode) to enable
 on-the-fly spell checking for comments and strings.
 
-**** New minor modes `prettify-symbols-mode' and
-`global-prettify-symbols-mode' let the user enable symbol
-prettification (replacing a string like "lambda" with the Greek lambda
-character).
-
 *** New hook `change-major-mode-after-body-hook', run by
 `run-mode-hooks' just before any other mode hooks.