Document animated image API
[bpt/emacs.git] / etc / NEWS
index edb7f2c..f58ffcd 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1,6 +1,6 @@
 GNU Emacs NEWS -- history of user-visible changes.
 
-Copyright (C) 2010-2011  Free Software Foundation, Inc.
+Copyright (C) 2010-2012  Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
@@ -24,29 +24,35 @@ so we will look at it and add it to the manual.
 \f
 * Installation Changes in Emacs 24.1
 
-** Configure links against libselinux if it is found.
-You can disable this by using --without-selinux.
+---
+** Emacs can be compiled with Gtk+ 3.0 if you pass --with-x-toolkit=gtk3
+to configure.  Note that other libraries used by Emacs, RSVG and GConf,
+also depend on Gtk+.  You can disable them with --without-rsvg and
+--without-gconf.
 
 ---
-** By default, the installed Info and man pages are compressed.
-You can disable this by configuring --without-compress-info.
+** Emacs can be compiled with GnuTLS support.
+This happens by default if a suitably recent version of the library is
+found at build time.  To prevent this, use the configure option
+`--without-gnutls'.  See below for GnuTLS features.
 
 ---
-** There are new configure options:
---with-mmdf, --with-mail-unlink, --with-mailhost.
-These provide no new functionality, they just remove the need to edit
-lib-src/Makefile by hand in order to use the associated features.
+** Emacs can be compiled with SELinux support.
+This happens by default if a suitably recent version of the library is
+found at build time.  To prevent this, use the configure option
+`--without-selinux'.  See below for SELinux features.
 
 ---
-** Emacs can be compiled against Gtk+ 3.0 if you pass --with-x-toolkit=gtk3
-to configure.  Note that other libraries used by Emacs, RSVG and GConf,
-also depend on Gtk+.  You can disable them with --without-rsvg and
---without-gconf.
+** Emacs can be compiled with ImageMagick support.
+This happens by default if a suitably recent version of the library is
+found at build time.  To prevent this, use the configure option
+`--without-imagemagick'.  See below for ImageMagick features.
 
 ---
-** There is a new configure option --enable-use-lisp-union-type.
-This is only useful for Emacs developers to debug certain types of bugs.
-This is not a new feature; only the configure flag is new.
+** Emacs can be compiled with libxml2 support.
+This happens by default if a suitably recent version of the library is
+found at build time.  To prevent this, use the configure option
+`--without-xml2'.  See below for libxml2 features.
 
 ---
 ** There is a new configure option --with-wide-int.
@@ -55,14 +61,19 @@ On 32-bit hosts, this raises the limit on buffer sizes from about 512 MiB
 to about 2 GiB.
 
 ---
-** New translation of the Emacs Tutorial in Hebrew is available.
-Type `C-u C-h t' to choose it in case your language setup doesn't
-automatically select it.
+** By default, the installed Info and man pages are compressed.
+You can disable this by configuring --without-compress-info.
 
-** Emacs can be compiled with ImageMagick support.
-Emacs links to ImageMagick if version 6.2.8 or newer of the library is
-present at build time.  To inhibit ImageMagick, use the configure
-option `--without-imagemagick' .
+---
+** There are new configure options:
+--with-mmdf, --with-mail-unlink, --with-mailhost.
+These provide no new functionality, they just remove the need to edit
+lib-src/Makefile by hand in order to use the associated features.
+
+---
+** There is a new configure option --enable-use-lisp-union-type.
+This is only useful for Emacs developers to debug certain types of bugs.
+This is not a new feature; only the configure flag is new.
 
 ---
 ** The standalone programs digest-doc and sorted-doc are removed.
@@ -82,11 +93,9 @@ longer have any effect.  (They were declared obsolete in Emacs 23.)
 
 +++
 ** New command line option `--no-site-lisp' removes site-lisp directories
-from load-path.  -Q now implies this.
-
----
-** On Windows, Emacs now warns when the obsolete _emacs init file is used,
-and also when HOME is set to C:\ by default.
+from load-path.  -Q now implies this.  This option does not affect the
+EMACSLOADPATH environment variable (and hence has no effect for
+Nextstep builds.)
 
 \f
 * Changes in Emacs 24.1
@@ -97,10 +106,10 @@ and also when HOME is set to C:\ by default.
 ** Completion
 
 *** shell-mode uses pcomplete rules, with the standard completion UI.
-
++++
 *** Many packages have been changed to use `completion-at-point'
 rather than their own completion code.
-
++++
 *** `completion-at-point' now handles tags and semantic completion.
 ---
 *** Completion in a non-minibuffer now tries to detect the end of completion
@@ -116,7 +125,8 @@ and pops down the *Completions* buffer accordingly.
 
 ** Mail changes
 
-The default of `send-mail-function' is now `sendmail-query-once',
++++
+*** The default of `send-mail-function' is now `sendmail-query-once',
 which asks the user (once) whether to use the smtpmail package to send
 email, or to use the old defaults that rely on external mail
 facilities (`sendmail-send-it' on GNU/Linux and other Unix-like
@@ -133,7 +143,10 @@ That variable used to have the default value "~/.authinfo", in which
 case you won't see any difference.  But if you changed it to be a list
 of user names and passwords, that setting is now ignored; you will be
 prompted for the user name and the password, which will then be saved
-to ~/.authinfo.
+to ~/.authinfo.  (To control where and how the credentials are stored,
+see the auth-source manual.  You may want to change the auth-source
+preferences if you want to store the credentials encrypted, for
+instance.)
 
 You can also manually copy the credentials to your ~/.authinfo file.
 For example, if you had
@@ -147,20 +160,18 @@ then the equivalent line in ~/.authinfo would be
 
 **** The variable `smtpmail-starttls-credentials' has been removed.
 
-If you had that set, then then you need to put
+If you had that set, then you need to put
 
   machine smtp.whatever.foo port 25 key "~/.my_smtp_tls.key" cert "~/.my_smtp_tls.cert"
 
 in your ~/.authinfo file instead.
 
-*** sendmail changes
+*** Mail mode changes (this is the old Mail mode, not Message mode)
 +++
-You can now add MIME attachments to outgoing messages with the new
-command `mail-add-attachment'.
-
+**** New command `mail-add-attachment' for adding MIME attachments
 ---
-The command `mail-attach-file' was renamed to `mail-insert-file'; the
-old name is now an obsolete alias to the new name.
+**** The command `mail-attach-file' was renamed to `mail-insert-file'.
+The old name is now an obsolete alias to the new name.
 
 ** Emacs server and client changes
 +++
@@ -172,7 +183,7 @@ server should listen.
 *** New emacsclient argument --frame-parameters can be used to set the
 frame parameters of a newly-created graphical frame.
 +++
-*** If emacsclient shuts down as a result of Emacs signalling an
+*** If emacsclient shuts down as a result of Emacs signaling an
 error, its exit status is 1.
 +++
 *** New emacsclient argument --parent-id ID.
@@ -229,15 +240,20 @@ cannot be encoded by the `terminal-coding-system'.
 *** `nobreak-char-display' now also highlights Unicode hyphen chars
 (U+2010 and U+2011).
 
-** Improved GTK integration
+---
+*** New translation of the Emacs Tutorial in Hebrew is available.
+Type `C-u C-h t' to choose it in case your language setup doesn't
+automatically select it.
 
+** Improved GTK integration
++++
 *** GTK scroll-bars are now placed on the right by default.
 Use `set-scroll-bar-mode' to change this.
-
++++
 *** GTK tool bars can have just text, just images or images and text.
 Customize `tool-bar-style' to choose style.  On a Gnome desktop, the default
 is taken from the desktop settings.
-
+---
 *** GTK tool bars can be placed on the left/right or top/bottom of the frame.
 The frame-parameter tool-bar-position controls this.  It takes the values
 top, left, right or bottom.  The Options => Show/Hide menu has entries
@@ -253,6 +269,7 @@ off by customizing x-gtk-use-system-tooltips.
 ** New basic faces `error', `warning', `success' are available to
 highlight strings that indicate failure, caution or successful operation.
 
+---
 ** Lucid menus and dialogs can display antialiased fonts if Emacs is built
 with Xft.  To change font, use the X resource font, for example:
 Emacs.pane.menubar.font:  Courier-12
@@ -262,24 +279,23 @@ Emacs.pane.menubar.font:  Courier-12
 Also, the first dash (which does not indicate anything) is just
 displayed as a space.
 
++++
 ** Basic SELinux support has been added.
 This requires Emacs to be linked with libselinux at build time.
 
++++
 *** Emacs preserves the SELinux file context when backing up, and
 optionally when copying files. To this end, copy-file has an extra
 optional argument, and backup-buffer and friends include the SELinux
 context in their return values.
 
++++
 *** The new functions file-selinux-context and set-file-selinux-context
 get and set the SELinux context of a file.
-
+---
 *** Tramp offers handlers for file-selinux-context and set-file-selinux-context
 for remote machines which support SELinux.
 
-+++
-** The function format-time-string now supports the %N directive, for
-higher-resolution time stamps.
-
 ** Changes for exiting Emacs
 +++
 *** The function kill-emacs is now run upon receipt of the signals
@@ -295,24 +311,20 @@ consider if it is still appropriate to add it in the noninteractive case.
 (bound to C-v/[next] and M-v/[prior]) do not signal errors at top/bottom
 of buffer at first key-press (instead move to top/bottom of buffer)
 when `scroll-error-top-bottom' is non-nil.
-
 +++
 *** New variable `scroll-error-top-bottom' (see above).
-
++++
 *** New scrolling commands `scroll-up-line' and `scroll-down-line'
 scroll a line instead of full screen.
-
 +++
 *** New property `scroll-command' should be set on a command's symbol to
 define it as a scroll command affected by `scroll-preserve-screen-position'.
-
 +++
 *** If you customize `scroll-conservatively' to a value greater than 100,
 Emacs will never recenter point in the window when it scrolls due to
 cursor motion commands or commands that move point (e.f., `M-g M-g').
 Previously, you needed to use `most-positive-fixnum' as the value of
 `scroll-conservatively' to achieve the same effect.
-
 ---
 *** ``Aggressive'' scrolling now honors the scroll margins.
 If you customize `scroll-up-aggressively' or
@@ -346,14 +358,14 @@ automatically when Emacs starts up.  To disable this, set
 loaded, customize `package-load-list'.
 
 ** Custom Themes
-
++++
 *** `M-x customize-themes' lists Custom themes which can be enabled.
-
++++
 *** New option `custom-theme-load-path' is the load path for themes.
 Emacs no longer looks for custom themes in `load-path'.  The default
 is to search in `custom-theme-directory', followed by a built-in theme
 directory named "themes/" in `data-directory'.
-
++++
 *** New option `custom-safe-themes' records known-safe theme files.
 If a theme is not in this list, Emacs queries before loading it, and
 offers to save the theme to `custom-safe-themes' automatically.  By
@@ -368,17 +380,23 @@ the remote file-name cache is used for read access.
 Add an element (subdirs . nil) to the alist portion of any variables
 settings to indicate that the section should not apply to
 subdirectories.
-
++++
 *** Directory local variables can apply to some file-less buffers.
 Affected modes include dired, vc-dir, and log-edit.  For example,
 adding "(diff-mode . ((mode . whitespace)))" to .dir-locals.el will
 turn on `whitespace-mode' for *vc-diff* buffers.  Modes should call
 `hack-dir-local-variables-non-file-buffer' to support this.
-
 +++
 *** Using "mode: MINOR-MODE" to enable a minor mode is deprecated.
 Instead, use "eval: (minor-mode 1)".
 
++++
+*** The variable `inhibit-first-line-modes-regexps' has been renamed
+to `inhibit-local-variables-regexps'.  As the name suggests, it now
+applies to ALL file local variables, not just -*- mode ones.
+The associated `inhibit-first-line-modes-suffixes' has been renamed
+in the corresponding way.
+
 +++
 ** The variable `focus-follows-mouse' now always defaults to nil.
 
@@ -388,7 +406,7 @@ The elisp implementation sha1.el is removed. Feature sha1 is provided
 by default.
 
 ** Menu-bar changes
-
+---
 *** `menu-bar-select-buffer-function' lets you choose another operation
 instead of `switch-to-buffer' when selecting an item in the Buffers menu.
 
@@ -412,35 +430,35 @@ specified by `display-buffer-fallback-action'.
 display actions, taking precedence over `display-buffer-base-action'.
 
 +++
-*** New option `window-nest'.
-The new option `window-nest' allows to return the space obtained for
-resizing or creating a window more reliably to the window from which
-such space was obtained.
+*** New option `window-combination-limit'.
+The new option `window-combination-limit' allows to return the space
+obtained for resizing or creating a window more reliably to the window
+from which such space was obtained.
 
 +++
-*** New option `window-splits'.
-The new option `window-splits' allows to split a window that otherwise
-cannot be split because it's too small by stealing space from other
-windows in the same combination.
+*** New option `window-combination-resize'.
+The new option `window-combination-resize' allows to split a window that
+otherwise cannot be split because it's too small by stealing space from
+other windows in the same combination.  Subsequent resizing or deletion
+of the window will resize all windows in the same combination as well.
 
 +++
 *** New commands `maximize-window' and `minimize-window'.
-These maximize and minize the size of a window within its frame.
+These maximize and minimize the size of a window within its frame.
 
 +++
 *** New commands `switch-to-prev-buffer' and `switch-to-next-buffer'.
 These functions allow to navigate through the live buffers that have
 been shown in a specific window.
 
-+++
-*** New functions `window-state-get' and `window-state-put'.
-These functions allow to save and restore the state of an arbitrary
-frame or window as an Elisp object.
-
 ** The inactive minibuffer has its own major mode `minibuffer-inactive-mode'.
 This is handy for minibuffer-only frames, and is also used for the "mouse-1
 pops up *Messages*" feature, which can now easily be changed.
 
+---
+** `tooltip-use-echo-area' is obsolete.
+Rather than setting this to t, disable Tooltip mode instead.
+
 \f
 * Editing Changes in Emacs 24.1
 
@@ -448,7 +466,7 @@ pops up *Messages*" feature, which can now easily be changed.
 +++
 *** C-y in Isearch is now bound to isearch-yank-kill, instead of
 isearch-yank-line.
----
++++
 *** M-y in Isearch is now bound to isearch-yank-pop, instead of
 isearch-yank-kill.
 +++
@@ -460,6 +478,7 @@ isearch-yank-kill.
 *** `count-lines-region' is now an alias for `count-words-region',
 bound to M-=, which shows the number of lines, words, and characters.
 
++++
 ** The default value of `backup-by-copying-when-mismatch' is now t.
 
 +++
@@ -551,20 +570,30 @@ the lines in the current rectangle.  With a prefix argument, this
 prompts for a number to count from and for a format string.
 
 +++
-** The default value of redisplay-dont-change is now t
+** The default value of redisplay-dont-pause is now t
 This makes Emacs feel more responsive to editing commands that arrive
 at high rate, e.g. if you lean on some key, because stopping redisplay
 in the middle (when this variable is nil) forces more expensive
 updates later on, and Emacs appears to be unable to keep up.
 
++++
+** The behavior of <TAB> for active regions in Text mode has changed.
+In Text and related modes, typing <TAB> (`indent-for-tab-command')
+when the region is active causes Emacs to indent all the lines in the
+region, aligning them with the line previous to the first line in the
+region (or with the left margin if there is no previous line).
+
 \f
 * Changes in Specialized Modes and Packages in Emacs 24.1
 
++++
 ** Archive Mode has basic support for browsing and updating 7z archives.
 
++++
 ** browse-url has a new variable `browse-url-mailto-function'
 specifies how mailto: URLs are handled.  The default is `browse-url-mail'.
 
+---
 ** BibTeX mode
 
 *** BibTeX mode now supports biblatex.
@@ -620,7 +649,7 @@ view-diary-entries, list-diary-entries, show-all-diary-entries
 ** comint and modes derived from it use the generic completion code.
 
 ** Compilation mode
-
+---
 *** Compilation mode can be used without font-lock-mode.
 `compilation-parse-errors-function' is now obsolete.
 
@@ -628,17 +657,24 @@ view-diary-entries, list-diary-entries, show-all-diary-entries
 inserted by the compilation filter function, when calling
 compilation-filter-hook.
 
+*** `compilation-error-screen-columns' is obeyed in the editing buffer.
+So programming language modes can set it, whereas previously only the value
+in the *compilation* buffer was used.
+
 ** Customize
 
++++
 *** Customize buffers now contain a search field.
 The search is performed using `customize-apropos'.
 To turn off the search field, set custom-search-field to nil.
 
++++
 *** Custom options now start out hidden if at their default values.
 Use the arrow to the left of the option name to toggle visibility.
 
 *** custom-buffer-sort-alphabetically now defaults to t.
 
++++
 *** The color widget now has a "Choose" button, which allows you to
 choose a color via list-colors-display.
 
@@ -655,7 +691,7 @@ The new function dbus-register-service registers a service known name
 on a D-Bus without simultaneously registering a property or a method.
 
 ** Dired-x
-
+---
 *** dired-jump and dired-jump-other-window called with a prefix argument
 read a file name from the minibuffer instead of using buffer-file-name.
 
@@ -683,7 +719,7 @@ utf-8, and do the normal `undecided' decoding for the rest.
 exists, that is used instead.
 
 ** gdb-mi
-
++++
 *** GDB User Interface migrated to GDB Machine Interface and now
 supports multithread non-stop debugging and debugging of several
 threads simultaneously.
@@ -709,9 +745,16 @@ handy if you have many manuals in many Info buffers, and don't
 remember the name of the buffer visiting the manual you want to
 consult.
 
++++
+*** `e' is now bound to `end-of-buffer' rather than to `Info-edit'.
+This is for compatibility with the stand-alone Info reader program,
+and also because `Info-edit' is a rarely used command that is disabled
+by default.
+
++++
 ** The Landmark game is now invoked with `landmark', not `lm'.
 
-** MH-E has been upgraded to MH-E version 8.3.
+** MH-E has been upgraded to MH-E version 8.3.1.
 See MH-E-NEWS for details.
 
 ** Modula-2 mode provides auto-indentation.
@@ -727,18 +770,19 @@ more variants, including Mercury, and a lot more.
 *** The command `rmail-epa-decrypt' decrypts OpenPGP data
 in the Rmail incoming message.
 
-** Shell mode
+---
+*** The variable `rmail-message-filter' no longer has any effect.
+This change was made in Emacs 23.1 but was not advertised at the time.
+Try using `rmail-show-message-hook' instead.
 
+** Shell mode
++++
 *** Shell mode uses pcomplete rules, with the standard completion UI.
-
++++
 *** The `shell' command prompts for the shell path name if the default
 directory is a remote file name and neither the environment variable
 $ESHELL nor the variable `explicit-shell-file-name' is set.
 
-*** New variable `shell-dir-cookie-re'.
-If set to an appropriate regexp, Shell mode can track your cwd by
-reading it from your prompt.
-
 ---
 ** SQL Mode enhancements.
 
@@ -804,12 +848,12 @@ additional details about each column.
 *** latex-electric-env-pair-mode keeps \begin..\end matched on the fly.
 
 ** Tramp
-
+---
 *** There exists a new inline access method "ksu" (kerberized su).
-
+---
 *** The following access methods are discontinued: "ssh1_old",
 "ssh2_old", "scp1_old", "scp2_old", "imap", "imaps" and "fish".
-
+---
 *** The option `ange-ftp-binary-file-name-regexp' has changed its
 default value to "".
 
@@ -818,25 +862,29 @@ controlling the degree of parallelism.
 
 ** VC and related modes
 
++++
 *** Support for pulling on distributed version control systems.
-The vc-pull command runs a "pull" operation, if it is supported.
-This updates the current branch from upstream.  A prefix argument
-means to prompt the user for specifics, e.g. a pull location.
+`C-x v +' (`vc-pull') runs a "pull" operation, if it is supported, to
+update the current branch and working tree.  A prefix argument means
+to prompt the user for specifics, e.g. a pull location.
 
 **** `vc-update' is now an alias for `vc-pull'.
 
 **** Currently supported by Bzr, Git, and Mercurial.
 
++++
 *** Support for merging on distributed version control systems.
-The vc-merge command now runs a "merge" operation, if it is supported.
-This merges another branch into the current one.  This command prompts
-the user for specifics, e.g. a merge source.
+The vc-merge command now runs a "merge" operation, if it is supported,
+to merge changes from another branch into the current one.  It prompts
+for specifics, e.g. a merge source.
 
 **** Currently supported for Bzr, Git, and Mercurial.
 
++++
 *** New option `vc-revert-show-diff' controls whether `vc-revert'
 shows a diff while querying the user.  It defaults to t.
 
++++
 *** Log entries in some Log View buffers can be toggled to display a
 longer description by typing RET (log-view-toggle-entry-display).
 In the Log View buffers made by `C-x v L' (vc-print-root-log), you can
@@ -847,11 +895,17 @@ use this to display the full log entry for the revision at point.
 **** Packages using Log View mode can enable this functionality by
 binding `log-view-expanded-log-entry-function' to a suitable function.
 
++++
 *** New command `vc-ediff' allows visual comparison of two revisions
 of a file similar to `vc-diff', but using ediff backend.
 
 +++
-*** The option vc-initial-comment was removed in Emacs 23.2, but
+*** The option `vc-initial-comment' was removed in Emacs 23.2, but
+this was not advertised at the time.
+
++++
+*** `vc-toggle-read-only' is an obsolete alias for `toggle-read-only'.
+Since Emacs 23, it has done the same thing as `toggle-read-only', but
 this was not advertised at the time.
 
 ** FIXME: xdg-open for browse-url and reportbug, 2010/08.
@@ -878,11 +932,13 @@ They are superseded by shift-select-mode enabled by default in 23.1.
 ---
 *** `copyright-fix-years' can optionally convert consecutive years to ranges.
 
++++
 *** New command `nato-region' converts text to NATO phonetic alphabet.
 
 \f
 * New Modes and Packages in Emacs 24.1
 
++++
 ** Occur Edit mode applies edits made in *Occur* buffers to the
 original buffers.  It is bound to "e" in Occur mode.
 
@@ -941,13 +997,12 @@ coordinate in the POSITION list now counts from the top of the text
 area, excluding any header line.  Previously, it counted from the top
 of the header line.
 
-** Removed obsolete name `e' (use `float-e' instead).
-
 ** A backquote not followed by a space is now always treated as new-style.
 
-** Test for special mode-class was moved from view-file to view-buffer.
-FIXME: This only says what was changed, but not what are the
-programmer-visible consequences.
+---
+** view-buffer now treats special mode-class in the same way that
+view-file has since Emacs 22 (ie, it won't enable View mode if the
+major-mode is special).
 
 ** Passing a nil argument to a minor mode function now turns the mode
 ON unconditionally.
@@ -966,8 +1021,12 @@ similar to the ones created by shift-selection.  In previous Emacs
 versions, these regions were delineated by `mouse-drag-overlay', which
 has now been removed.
 
+---
 ** cl.el no longer provides `cl-19'.
 
+** The menu bar bindings's caches are not used any more.
+Use (where-is-internal <def> nil t) instead.
+
 ** The following obsolete functions and aliases were removed:
 comint-kill-output, decompose-composite-char, outline-visible,
 internal-find-face, internal-get-face, frame-update-faces,
@@ -978,10 +1037,12 @@ x-make-font-bold-italic, mldrag-drag-mode-line, mldrag-drag-vertical-line,
 iswitchb-default-keybindings, char-bytes, isearch-return-char,
 make-local-hook
 
++++
 ** The following obsolete variables and varaliases were removed:
-checkdoc-minor-keymap, vc-header-alist, directory-sep-char, and
-font-lock-defaults-alist.
+checkdoc-minor-keymap, vc-header-alist, directory-sep-char,
+font-lock-defaults-alist, and e (use float-e).
 
+---
 ** The following obsolete files were removed:
 sc.el, x-menu.el, rnews.el, rnewspost.el
 
@@ -992,8 +1053,8 @@ sc.el, x-menu.el, rnews.el, rnewspost.el
 
 ** Code can now use lexical scoping by default instead of dynamic scoping.
 The `lexical-binding' variable lets code use lexical scoping for local
-variables.  It is typically set via file-local variables, in which case it
-applies to all the code in that file.
+variables.  It is typically set via a file-local variable in the first
+line of the file, in which case it applies to all the code in that file.
 
 *** `eval' takes a new optional argument `lexical' to choose the new lexical
 binding instead of the old dynamic binding mode.
@@ -1031,33 +1092,31 @@ directionality are not known in advance, without disrupting the layout
 of the line.
 
 ** Window changes
-
 +++
 *** Window tree functions are accessible in Elisp.
 Functions are provided to return the parent, siblings or child windows
 of any window including internal windows (windows not associated with a
 buffer) in the window tree.
-
 +++
-*** Window manipulation can deal with internal windows.
+**** New function `window-valid-p' gives non-nil for live and internal
+windows.
++++
+**** Window manipulation can deal with internal windows.
 Many window handling functions like `split-window', `delete-window', or
 `delete-other-windows' as well as the window resizing functions can now
 act on any window including internal ones.
-
 +++
 *** window-total-height/-width vs window-body-height/-width.
 The function `window-height' has been renamed to `window-total-height'
 and `window-width' has been renamed to `window-body-width'.  The old
 names are provided as aliases.  Two new functions `window-total-width'
 and `window-body-height' are provided.
-
 +++
 *** Window parameters specific to window handling functions.
 For each window you can specify a parameter to override the default
 behavior of a number of functions like `split-window', `delete-window'
 and `delete-other-windows'.  The variable `ignore-window-parameters'
 allows to ignore processing such parameters.
-
 +++
 *** New semantics of third argument of `split-window'.
 The third argument of `split-window' has been renamed to SIDE and can be
@@ -1065,17 +1124,14 @@ set to any of the values 'below, 'right, 'above, or 'left to make the
 new window appear on the corresponding side of the window that shall be
 split.  Any other value of SIDE will cause `split-window' to split the
 window into two side-by-side windows as before.
-
 +++
 *** Window resizing functions.
 A new standard function for resizing windows called `window-resize' has
 been introduced.  This and all other functions for resizing windows no
 longer delete any windows when they become too small.
-
 +++
 *** Deleting the selected window now selects the most recently selected
 live window on that frame instead.
-
 +++
 *** `adjust-window-trailing-edge' adjustments.
 `adjust-window-trailing-edge' can now deal with fixed-size windows and
@@ -1083,7 +1139,6 @@ is able to resize other windows if a window adjacent to the trailing
 edge cannot be shrunk any more.  This makes its behavior more similar to
 that of Emacs 21 without compromising, however, its inability to delete
 windows which was introduced in Emacs 22.
-
 +++
 *** Window-local buffer lists.
 Windows now have local buffer lists.  This means that removing a buffer
@@ -1091,17 +1146,16 @@ from display in a window will preferably show the buffer previously
 shown in that window with its previous window-start and window-point
 positions.  This also means that the same buffer may be automatically
 shown twice even if it already appears in another window.
-
 +++
 *** `switch-to-buffer' has a new optional argument FORCE-SAME-WINDOW,
 which if non-nil requires the buffer to be displayed in the currently
 selected window, signaling an error otherwise.  If nil, another window
 can be used, e.g. if the selected one is strongly dedicated.
-
++++
 *** `split-window-vertically' and `split-window-horizontally' renamed
-to `split-window-above-each-other' and `split-window-side-by-side'
-respectively.  The old names are kept as aliases.
-
+to `split-window-below' and `split-window-right' respectively.
+The old names are kept as aliases.
++++
 *** Display actions
 
 **** The second arg to `display-buffer' and `pop-to-buffer' is now
@@ -1126,9 +1180,14 @@ state before the last buffer display operation in that window.
 
 +++
 *** The new option `frame-auto-hide-function' lets you choose between
-iconfying or deleting a frame when burying a buffer shown in a dedicated
+iconifying or deleting a frame when burying a buffer shown in a dedicated
 frame or quitting a window showing a buffer in a frame of its own.
 
++++
+*** New functions `window-state-get' and `window-state-put'.
+These functions allow to save and restore the state of an arbitrary
+frame or window as an Elisp object.
+
 ** Completion
 
 *** New variable completion-extra-properties used to specify extra properties
@@ -1170,13 +1229,21 @@ must also be supplied.
 ** pre/post-command-hook are not reset to nil upon error.
 Instead, the offending function is removed.
 
-** New low-level function run-hook-wrapped.
+** New hook types
+
+*** New function `run-hook-wrapped' for running an abnormal hook by
+passing the hook functions as arguments to a "wrapping" function.
++++
+*** New macro `with-wrapper-hook' for running an abnormal hook as a
+set of "wrapping" filters, similar to around advice.
 
-** `server-eval-at' is provided to allow evaluating forms on different
-Emacs server instances.
++++
+** The new function `server-eval-at' allows evaluation of Lisp forms on
+named Emacs server instances, using TCP sockets.
 
-** `call-process' allows a `(:file "file")' spec to redirect STDOUT to
-a file.
++++
+** `call-process' and `call-process-region' allow a `(:file "file")' spec
+to redirect STDOUT to a file.
 
 ---
 ** Variable `stack-trace-on-error' removed.
@@ -1184,9 +1251,15 @@ Also the debugger can now "continue" from an error, which means it will jump
 to the error handler as if the debugger had not been invoked instead of
 jumping all the way to the top-level.
 
++++
+** The function format-time-string now supports the %N directive, for
+higher-resolution time stamps.
+
++++
 ** New function `read-char-choice' reads a restricted set of characters,
 discarding any inputs not inside the set.
 
++++
 ** `image-library-alist' is renamed to `dynamic-library-alist'.
 The variable is now used to load all kind of supported dynamic libraries,
 not just image libraries.  The previous name is still available as an
@@ -1202,22 +1275,36 @@ syntax-propertize-via-font-lock to reuse old font-lock-syntactic-keywords
 as-is; and syntax-propertize-rules which provides a new way to specify
 syntactic rules.
 
++++
 ** New hook post-self-insert-hook run at the end of self-insert-command.
 
 +++
 ** Syntax tables support a new "comment style c" additionally to style b.
 
+---
 ** frame-local variables cannot be let-bound any more.
 
+** Major and minor mode changes
++++
+*** `prog-mode' is a new major mode from which programming modes
+should be derived.
+
++++
+**** `prog-mode-hook' can be used to enable features for programming
+modes, e.g. (add-hook 'prog-mode-hook 'flyspell-prog-mode) to enable
+on-the-fly spell checking for comments and strings.
+
 +++
-** prog-mode is a new major-mode meant to be the parent of programming mode.
-The prog-mode-hook it defines can be used to enable features for
-programming modes.  For example:
-(add-hook 'prog-mode-hook 'flyspell-prog-mode)
-enables on the fly spell checking for comments and strings for
-programming modes.
+*** New hook `change-major-mode-after-body-hook', run by
+`run-mode-hooks' just before any other mode hooks.
 
-** define-minor-mode accepts a new keyword :variable.
++++
+*** Enabled globalized minor modes can be disabled in specific major modes.
+If the global mode is global-FOO-mode, then run (FOO-mode -1) in the
+major mode's hook, where FOO-mode toggles the mode on a per-buffer basis.
+
++++
+*** `define-minor-mode' accepts a new keyword :variable.
 
 +++
 ** `delete-file' and `delete-directory' now accept optional arg TRASH.
@@ -1227,7 +1314,7 @@ argument is supplied (see Trash changes, above).
 
 ** `facemenu-read-color' is now an alias for `read-color'.
 The command `read-color' now requires a match for a color name or RGB
-triplet, instead of signalling an error if the user provides a invalid
+triplet, instead of signaling an error if the user provides a invalid
 input.
 
 ** Tool-bars can display separators.
@@ -1236,50 +1323,46 @@ i.e. via menu entries of the form `(menu-item "--")'.
 
 ** Image API
 
++++
 *** Animated images support (currently animated gifs only).
 
++++
 **** `image-animated-p' returns non-nil if an image can be animated.
 
++++
 **** `image-animate' animates a supplied image spec.
 
++++
 **** `image-animate-timer' returns the timer object for an image that
 is being animated.
 
 *** `image-extension-data' is renamed to `image-metadata'.
 
-*** If Emacs is compiled with ImageMagick support (see Startup
-Changes), the function `imagemagick-types' returns a list of image
-file extensions that your installation of ImageMagick supports.  The
+*** Emacs can be compiled with ImageMagick support.
+Then the function `imagemagick-types' returns a list of image file
+extensions that your installation of ImageMagick supports.  The
 function `imagemagick-register-types' enables ImageMagick support for
 these image types, minus those listed in `imagemagick-types-inhibit'.
 
 See the Emacs Lisp Reference Manual for more information.
 
 ** XML and HTML parsing
-
-*** If Emacs is compiled with libxml2 support (which is the default),
-two new Emacs Lisp-level functions are defined:
-`libxml-parse-html-region' (which will parse "real world" HTML)
-and `libxml-parse-xml-region' (which parses XML).  Both return an
-Emacs Lisp parse tree.
+If Emacs is compiled with libxml2 support, there are two new functions:
+`libxml-parse-html-region' (which parses "real world" HTML) and
+`libxml-parse-xml-region' (which parses XML).  Both return an Emacs
+Lisp parse tree.
 
 FIXME: These should be front-ended by xml.el.
 
 ** GnuTLS
 
-*** Emacs can be compiled with libgnutls support
-This is the default.  You will then be able to use the functionality
-in gnutls.el, namely the `open-gnutls-stream' and `gnutls-negotiate'
-functions.  It's easiest to use these functions through
-`open-network-stream' because it can upgrade connections through
-STARTTLS opportunistically or use plain SSL, depending on your needs.
-
-Only versions 2.8.x and higher or GnuTLS have been tested.
-
-*** gnutls-log-level
-Set `gnutls-log-level' higher than 0 to get debug output.  1 is for
-important messages, 2 is for debug data, and higher numbers are as per
-the GnuTLS logging conventions.  The output is in *Messages*.
+*** New library `gnutls.el'.
+This requires Emacs to have been built with GnuTLS support.
+The main functions are `open-gnutls-stream' and `gnutls-negotiate'.
+It's easiest to use these functions through `open-network-stream'
+because it can upgrade connections through STARTTLS opportunistically
+or use plain SSL, depending on your needs.  For debugging, set
+`gnutls-log-level' greater than 0.
 
 ** Isearch
 
@@ -1308,12 +1391,17 @@ as well as those in the -*- line.
 
 ** keymaps can inherit from multiple parents.
 
+** `debug-on-event' lets you debug Emacs when stuck because of inhibit-quit.
+
 +++
 ** New reader macro ## which stands for the empty symbol.
 This means that the empty symbol can now be read back.  Also, #: by itself
 (when not immediately followed by a possible symbol character) stands for
 an empty uninterned symbol.
 
++++
+** New math functions `isnan', `copysign', `frexp', `ldexp'.
+
 ** Obsolete functions and variables
 
 *** buffer-substring-filters is obsolete.
@@ -1328,20 +1416,25 @@ Use `filter-buffer-substring-functions' instead.
 \f
 * Changes in Emacs 24.1 on non-free operating systems
 
-** New configure.bat option --enable-checking builds Emacs with extra
-runtime checks.
+---
+** On MS Windows, Emacs warns when using the obsolete init file _emacs,
+and also when HOME is set to C:\ by default.
+
+** New configure.bat options
+
+*** --enable-checking builds Emacs with extra runtime checks.
 
-** New configure.bat option --distfiles to specify files to be
-included in binary distribution.
+*** --distfiles specifies files to be included in binary distribution.
 
-** New configure.bat option --without-gnutls to disable automatic
-GnuTLS detection.
+*** --without-gnutls disables automatic GnuTLS detection.
 
-** New configure.bat option --lib for general library linkage, works
-with the USER_LIBS build variable.
+*** --lib for general library linkage, works with the USER_LIBS build
+variable.
 
 ** New make target `dist' to create binary distribution for MS Windows.
 
+** Function `w32-default-color-map' is now obsolete.
+
 ** On Nextstep/OSX, the menu bar can be hidden by customizing
 ns-auto-hide-menu-bar.