Some doc for defalias-fset-function
[bpt/emacs.git] / etc / NEWS
index 2e49a8f..c8f1c7f 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -15,9 +15,10 @@ 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
@@ -27,11 +28,12 @@ otherwise leave it unmarked.
 This happens by default if a suitable support library is found at
 build time, like libacl on GNU/Linux.  To prevent this, use the
 configure option `--disable-acl'.
+FIXME?  Should be --without-acl?
 
 ** Emacs can now be compiled with file notification support.
 This happens by default if a suitable system library is found at
 build time.  To prevent this, use the configure option
-`--with-file-notification-no'.  See below for file-notify features.
+`--without-file-notification'.  See below for file-notify features.
 FIXME?  This feature is not available for the Nextstep port. (?)
 
 ---
@@ -41,8 +43,7 @@ of _any_ files during installation.
 
 ---
 ** The configure option `--with-crt-dir' has been removed.
-It is no longer needed, as the crt*.o files are no longer linked
-specially.
+It is no longer needed, as the crt*.o files are no longer linked specially.
 
 ---
 ** Directories passed to configure option `--enable-locallisppath' are
@@ -107,8 +108,8 @@ first menu-bar menu by typing F10, which invokes `menu-bar-open'.
 
 If you want the previous behavior, whereby F10 invoked `tmm-menubar',
 customize the option `tty-menu-open-use-tmm' to a non-nil value.
-(Typing M-` will always invoke `tmm-menubar', even if
-`tty-menu-open-use-tmm' is nil.)
+(Typing M-` always invokes `tmm-menubar', even if `tty-menu-open-use-tmm'
+is nil.)
 
 +++
 ** The *Messages* buffer is created in `messages-buffer-mode',
@@ -134,7 +135,7 @@ 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 just they were on X11.  To get information for each physical
+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'.
@@ -159,6 +160,7 @@ non-nil, they output the same results.
 +++
 *** The key `?' now describes prefix bindings, like `C-h'.
 
+---
 *** The command `describe-function' has been extended for EIEIO.
 Running it on constructors will show a full description of the
 generated class.  For generic functions, it will show all
@@ -187,15 +189,21 @@ content-type that is found in the new variable `image-format-suffixes'.
 *** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized',
 bound to <f11> and M-<f10>, respectively.
 
-*** New command `frameset-to-register' is now bound to `C-x r f', replacing
-`frame-configuration-to-register'.  It offers similar functionality,
-plus enhancements like the ability to restore deleted frames.  The
-command `frame-configuration-to-register' still exists, but is unbound.
-
 +++
 *** New hooks `focus-in-hook', `focus-out-hook'.
 These are normal hooks run when an Emacs frame gains or loses input focus.
 
+---
+*** Emacs can now draw dividers between adjacent windows.
+To put dividers between side-by-side/vertically stacked windows
+customize the frame parameter `right-divider-width'/`bottom-divider-width'
+to some positive integer.  You can drag dividers with the mouse
+(they show a corresponding cursor when the mouse hovers over them).
+You can change the appearance of dividers by customizing the faces
+`window-divider', `window-divider-first-pixel', and
+`window-divider-last-pixel'.  The last two are useful to provide a 3D
+effect, or to better distinguish dividers from surrounding display objects.
+
 ---
 *** `split-window' is now a non-interactive function, not a command.
 As a command, it was a special case of `C-x 2' (`split-window-below'),
@@ -213,42 +221,42 @@ of the buffer is visible).
 *** `eval-defun' on an already defined defcustom calls the :set function,
 if there is one.
 
-*** 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).
++++
+*** 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-level' to nil.  Additionally, it causes integers
+to be printed in other formats (octal, hexadecimal, and character).
+
+---
+*** New hook `eval-expression-minibuffer-setup-hook' run by
+`eval-expression' on entering the minibuffer.
 
 ---
 ** `write-region-inhibit-fsync' now defaults to t in batch mode.
 
 +++
-** `cache-long-line-scans' has been renamed to `cache-long-scans'
+** `cache-long-line-scans' is now non-nil, and renamed to `cache-long-scans',
 because it affects caching of paragraph scanning results as well.
-Also, it is now enabled by default.
+There is no reason to set this to nil except for debugging purposes.
 
 ---
 ** The option `set-mark-default-inactive' has been deleted.
 This unfinished feature was introduced by accident in Emacs 23.1;
 simply disabling Transient Mark mode does the same thing.
 
+---
 ** The default value of `comment-use-global-state' is now t,
 and this variable has been marked obsolete.
 
 ---
-** `emacs-bzr-version' has been renamed to `emacs-repository-version'.
-
-** New user options:
-
-*** `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.
+** `emacs-bzr-version' has been renamed to `emacs-repository-version',
+and works for git too, if you fetch the repository notes.
 
 +++
-*** `load-prefer-newer', affects how the `load' function chooses the
-file to load.  If this is non-nil, then when both .el and .elc
+** New option `load-prefer-newer' affects how the `load' function chooses
+the file to load.  If this is non-nil, then when both .el and .elc
 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.
@@ -267,22 +275,20 @@ normal editing behavior.
 
 *** `electric-indent-mode' is enabled by default.
 
++++
 *** `tab-stop-list' is now implicitly extended to infinity by repeating
 the last step.  Its default value is changed to nil, which means a tab
 stop every `tab-width' columns.
 
-** Filling changes
-
-*** 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.
-
-*** `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:
++++
+** New command `cycle-spacing' acts like a smarter `just-one-space'.
+When called in succession, it cycles between spacing conventions:
+one space, no spaces, original spacing.
 
-  (add-hook 'fill-nobreak-predicate 'fill-single-char-nobreak-p)
++++
+** The new function `fill-single-char-nobreak-p' can stop fill from breaking
+a line after a one-letter word, which is an error in some typographical
+conventions.  To use it, add it to the `fill-nobreak-predicate' hook.
 
 +++
 ** Uniquify is enabled by default, with `post-forward-angle-brackets' style.
@@ -299,25 +305,32 @@ bidirectional context.
 
 ** Register changes
 
-*** All register commands can now show help with preview.
++++
+*** All interactive commands that read a register (`copy-to-register', etc.)
+now display a temporary window after `register-preview-delay' seconds
+that summarizes existing registers.  To disable this, set that option to nil.
+Interactive commands that read registers and want to make use of this
+should use `register-read-with-preview' to read register names.
+
+*** New command `frameset-to-register' bound to `C-x r f', replacing
+`frame-configuration-to-register'.  It offers similar functionality,
+plus enhancements like the ability to restore deleted frames.
+(`frame-configuration-to-register' still exists, but no longer has a
+key binding.)
 
 +++
 *** New command `C-x C-k x' (`kmacro-to-register') stores keyboard
 macros in registers.
 
-*** New command `C-x r f' (`frameset-to-register').
-See Changes in Emacs 24.4, above.
-
++++
 ** New command `delete-duplicate-lines'.
-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.
+This searches the region for identical lines, and removes all but one
+copy of each repeated line.  The lines need not be sorted.
 
 \f
 * Changes in Specialized Modes and Packages in Emacs 24.4
 
++++
 ** More packages look for ~/.emacs.d/<foo> additionally to ~/.<foo>.
 Affected files:
 ~/.emacs.d/timelog     replaces  ~/.timelog
@@ -326,7 +339,7 @@ Affected files:
 ~/.emacs.d/ido.last    replaces  ~/.ido.last
 ~/.emacs.d/kkcrc       replaces  ~/.kkcrc
 ~/.emacs.d/quickurls   replaces  ~/.quickurls
-~/.emacs.d/idlwave     replaces  ~/.idlwave
+~/.emacs.d/idlwave/    replaces  ~/.idlwave/
 ~/.emacs.d/bdfcache.el replaces  ~/.bdfcache.el
 ~/.emacs.d/places      replaces  ~/.emacs-places
 ~/.emacs.d/shadows     replaces  ~/.shadows
@@ -341,24 +354,22 @@ Also the following files used by the now obsolete otodo-mode.el:
 
 ** Backtrace and debugger
 
-*** The Lisp debugger's `e' command now includes the lexical environment
-when evaluating the code in the context at point.  Hence, it now lets
-you access lexical variables.
-
 +++
-*** New command `v' (`debugger-toggle-locals') displays local vars.
-
-*** New minor mode `jit-lock-debug-mode' lets you use the debuggers on
-code run via JIT Lock.
+*** New Lisp debugger command `v' (`debugger-toggle-locals') toggles the
+display of local variables of the current stack frame.
 
-** Battery
+*** The Lisp debugger's `e' command (`debugger-eval-expression') now includes
+the lexical environment when evaluating the code in the context at point
+(and so allows you to access lexical variables).
 
 ---
-*** Battery information via the BSD `apm' utility is now supported.
+*** New minor mode `jit-lock-debug-mode' helps you debug code run via JIT Lock.
 
-** Buffer Menu
+---
+** Battery information can now be retrieved from BSD's `apm' utility.
 
-*** `M-s a C-o' shows lines matching a regexp in marked buffers using Occur.
+---
+** In the Buffer Menu, `M-s a C-o' shows matches for a regexp in marked buffers.
 
 ** Calendar and Diary
 
@@ -378,18 +389,18 @@ and `calendar-month-header'.
 
 ** Calc
 
++++
 *** Calc by default now uses the Gregorian calendar for all dates, and
 uses January 1, 1 AD as its day number 1.  Previously Calc used the
 Julian calendar for dates before September 14, 1752, and it used
 December 31, 1 BC as its day number 1; the new scheme is more
 consistent with Calendar's calendrical system and day numbering.
 
-*** The new variable `calc-gregorian-switch' lets you configure the
-date when Calc switches from the Julian to the Gregorian calendar.
-Nil, the default value, means to always use the Gregorian calendar.
-The value (YEAR MONTH DAY) means to start using the Gregorian calendar
-on the given date.
++++
+*** The new option `calc-gregorian-switch' lets you configure if
+(and when) Calc switches from the Julian to the Gregorian calendar.
 
++++
 *** Support for ISO 8601 dates.
 
 ** CEDET
@@ -409,48 +420,59 @@ target architecture auto-detection.
 **** 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.
+They are also displayed by the summarize feature in the mode line.
 
 **** 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.
+**** Parsing of C/C++ preprocessor macros that open new scope.
+For example, this enables parsing of macros that open new namespaces.
 
 **** Support for 'this' pointer in inline member functions in C++.
 
 ** cl-lib
 
++++
 *** New macro `cl-tagbody'.
+This executes statements while allowing for control transfer to labels.
 
 +++
 *** 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'.
+Hence, you can now enable it independently from those modes, and from
+`transient-mark-mode'.
 
+---
 *** `cua-highlight-region-shift-only' is now obsolete.
 You can disable `transient-mark-mode' to get the same result.
 
-*** CUA's rectangles can now be used via `cua-rectangle-mark-mode'.
++++
+*** CUA's rectangles can now be used without CUA by calling the command
+`cua-rectangle-mark-mode'.
 
 ** CFEngine mode
 
+---
 *** 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.
+if your version doesn't support that option.  See option `cfengine-cf-promises'.
 
-** Delete Selection mode can now be used without `transient-mark-mode'.
+---
+** Delete Selection mode can now be used without Transient Mark mode.
 
 ** Desktop
 
-*** `desktop-auto-save-timeout' defines the number of seconds idle time
-before auto-save of the desktop.
++++
+*** `desktop-save-mode' by default now auto-saves an existing desktop file
+after `desktop-auto-save-timeout'.  To disable this, customize that option
+to nil (or zero).
 
 *** `desktop-restore-frames', enabled by default, allows saving and
 restoring the frame/window configuration (frameset).  Additional options
@@ -458,14 +480,17 @@ restoring the frame/window configuration (frameset).  Additional options
 and `desktop-restore-forces-onscreen' offer further customization.
 
 +++
-** Dired
-
-*** New minor mode `dired-hide-details-mode' hides details.
+** New Dired minor mode `dired-hide-details-mode' toggles whether details,
+such as file ownership or permissions, are visible.
 
-** Eldoc Mode works properly in the minibuffer.
+---
+** You can enable ElDoc inside the `eval-expression' minibuffer with:
+  (add-hook 'eval-expression-minibuffer-setup-hook 'eldoc-mode)
+The results display in the mode line.
 
 ** 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
@@ -474,44 +499,37 @@ 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'.
-
-If one element of the variable's value is ("foo@bar.com" "foo@hello.org"),
-that means: when one of the recipients of the message being encrypted
-is `foo@bar.com', encrypt the message for `foo@hello.org' instead.
-
-If one element of the variable's value is ("foo@bar.com"),
-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 EPA option `epa-mail-aliases'.
+You can set this to a list of email address aliases that `epa-mail-encrypt'
+should use to find keys.
 
-*** New option `erc-accidental-paste-threshold-seconds'.
+---
+** New ERC 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.
 
@@ -540,29 +558,46 @@ 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 option `f90-smart-end-names'.
+** New F90 mode option `f90-smart-end-names'.
 
-** Icomplete is a bit more like Ido.
+** Icomplete
+Icomplete is now more similar to Ido.
 
-*** Key bindings to navigate through and select the completions.
+---
+*** Icomplete by default now applies to all forms of minibuffer completion.
+The variable `icomplete-with-completion-tables' (now a user option)
+controls this.  To restore the old behavior, set it back to
+'(internal-complete-buffer).
 
-*** The icomplete-separator is customizable, and its default has changed.
++++
+*** You can navigate through and select completions using the keys
+from `icomplete-minibuffer-map'.
 
-*** Removed `icomplete-show-key-bindings'.
+---
+*** The string that separates potential completions is now a customizable
+option (`icomplete-separator').  The default is " | " rather than ",".
+
+---
+*** New face `icomplete-first-match'; and new options
+`icomplete-hide-common-prefix' and `icomplete-show-matches-on-no-input'.
 
-*** Icomplete-mode by defaults applies to all forms of minibuffer completion.
-(setq icomplete-with-completion-tables '(internal-complete-buffer))
-will revert to the old behavior.
+---
+*** The option `icomplete-show-key-bindings' has been removed.
 
 ** Ido
 
-*** Ido has a manual now.
++++
+*** An Ido user manual is now included.
 
-*** `ido-use-virtual-buffers' takes a new value 'auto.
+---
+*** The option `ido-use-virtual-buffers' can now take the value `auto'.
+This means to use virtual buffers if the current ido input does not match
+an existing buffer.
 
-*** `ido-decorations' has been slightly extended to give a bit more control.
+---
+*** The variable `ido-decorations' can optionally have two new elements,
+which are the brackets to use around the sole remaining completion.
 
 ** Image mode
 
@@ -590,34 +625,42 @@ callers to fit the image to a frame other than the selected frame.
 
 ** Hi-Lock
 
-*** New option `hi-lock-auto-select-face'.  When non-nil, hi-lock commands
-will cycle through faces in `hi-lock-face-defaults' without prompting.
++++
+*** New global command `M-s h .' (`highlight-symbol-at-point') highlights
+the symbol found near point.
 
 +++
-*** New global command `M-s h .' (`highlight-symbol-at-point')
-highlights the symbol found near point without prompting,
-using the next face automatically.
+*** New option `hi-lock-auto-select-face'.  When non-nil, hi-lock commands
+will cycle through faces in `hi-lock-face-defaults' without prompting.
 
 ** New Imenu option `imenu-generic-skip-comments-and-strings'.
 
+** Info
+
 ---
-** New Info face `info-index-match', used to highlight matches in index
+*** New Info face `info-index-match', used to highlight matches in index
 entries displayed by `Info-index-next', `Info-virtual-index' and
 `info-apropos'.
 
+---
+*** The Info-edit command is obsolete.  Editing Info nodes by hand
+has not been relevant for some time.
+
 ** JS Mode
 
+---
+*** New option `js-switch-indent-offset'.
+
+---
 *** Better indentation of multiple-variable declarations.
-If declaration spans several lines, variables on the following lines
+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`.
+---
+*** Recognition and better indentation of continuations in array comprehensions.
 
-** MH-E has been updated to MH-E version 8.5.
-See MH-E-NEWS for details.
++++
+** MH-E has been updated to version 8.5 - see separate MH-E-NEWS file.
 
 +++
 ** Octave mode
@@ -626,36 +669,43 @@ See MH-E-NEWS for details.
 
 *** Completion in Octave file buffers.
 
-*** Eldoc support.
+*** ElDoc support.
 
 *** Jump to definition.
 
 *** Documentation lookup/search.
 
-** OPascal mode is the new name for Delphi mode.
++++
+** OPascal mode is the new name for Delphi mode
 
+---
 *** All delphi-* variables and functions have been renamed to opascal-*.
+Obsolete aliases exist for those likely to have been used externally.
 
-*** `delphi-newline-always-indents' is not supported any more.
+---
+*** The option `delphi-newline-always-indents' has been removed.
 Use `electric-indent-mode' instead.
 
-*** `delphi-tab' is gone, replaced by `indent-for-tab-command'.
+---
+*** The TAB key runs the standard `indent-for-tab-command', not `delphi-tab'.
 
 ** Package
 
++++
+*** In the `list-packages' buffer, you can use `f' (`package-menu-filter')
+to filter the list of packages by a keyword.
+
++++
+*** In the `describe-package' buffer, there are now buttons listing the 
+keywords related to the package.  Click on a button to see other packages
+related to that keyword.
+
+---
 *** The format of `archive-contents' files, generated by package
 repositories, has changed to allow a new (fifth) element in the data
 vectors, containing an associative list with extra properties.
-
-*** `describe-package' buffer uses the `:url' extra property to
-display a `Homepage' header, if it's present.
-
-*** In the buffer produced by `describe-package', there are now buttons
-listing the keywords related to that package.  You can click on them
-to see other packages related to any given keyword.
-
-*** In the *Packages* buffer, `f' or the Package->Filter menu filters
-the packages by a keyword.
+(For example, `describe-package' uses the `:url' extra property to
+display a "Homepage" header.)
 
 ---
 ** In Prolog mode, `prolog-use-smie' has been removed,
@@ -663,19 +713,15 @@ 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 new command `remember-notes' creates a buffer that is saved on exit.
+You can use it as a more permanent *scratch* buffer.
 
-*** The Remember package can now store notes in separates files.
-You can use the new function `remember-store-in-files' within the
-`remember-handler-functions' option.  See `remember-data-directory'
-and `remember-directory-file-name-format' for new options related to
-this function.
++++
+*** Remember can now store notes in separate files.
+To use this, add `remember-store-in-files' to the `remember-handler-functions'
+option.  The files are saved in `remember-data-directory' using
+names specified by `remember-directory-file-name-format'.
 
 ** Rmail
 
@@ -688,17 +734,26 @@ rather than mboxo.  Customize `unrmail-mbox-format' to change this.
 
 ** Ruby mode
 
-*** New option `ruby-encoding-magic-comment-style'.
+---
+*** Improved syntax highlighting and indentation.
 
-*** New option `ruby-custom-encoding-magic-comment-template'.
+---
+*** New `electric-indent-mode' integration.
 
-*** Improved syntax highlighting and indentation.
+---
+*** New option `ruby-encoding-magic-comment-style'.
 
-*** More Ruby file types have been added to `auto-mode-alist'.
+---
+*** New option `ruby-custom-encoding-magic-comment-template'.
 
+---
 *** New option `ruby-align-to-stmt-keywords'.
 
-*** New `electric-indent-mode' integration.
+---
+*** New option `ruby-align-chained-calls'.
+
+---
+*** More Ruby file types have been added to `auto-mode-alist'.
 
 ** Search and Replace
 
@@ -742,7 +797,7 @@ The same rules are now applied to the symbol search with the difference
 that it matches symbols, and non-symbol characters between symbols.
 
 +++
-** New SES command `ses-rename-cell' allows assigning names to SES cells.
+** New SES command `ses-rename-cell' allows assignment of names to SES cells.
 
 ---
 ** The shell.el option `explicit-bash-args' includes --noediting by default.
@@ -750,49 +805,78 @@ All non-ancient Bash versions support this option.
 
 ** 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 - see `sh-use-smie'.
 
-*** The SMIE indentation engine is now used by default.
+---
+*** `sh-mode' now has its own setting for `add-log-current-defun-function'.
 
 ** SMIE indentation can be customized via `smie-config'.
 Emacs can learn the appropriate indentation settings if you provide it
 with an indented sample file.
 
+---
+** SQL
+Improved login monitoring and appropriate response to login failures.
+Includes `sql-login-delay' to define maximum wait for a connection.
+
+*** Oracle support
+SQL*Plus script placeholders are properly highlighted and identified
+in `sql-placeholders-filter' correctly.  When SQL*Plus is started,
+options specified in `sql-oracle-options' are passed before the logon
+parameter, as SQL*Plus expects.  The default setting for
+`sql-oracle-options' has been altered to pass the `-L' option to limit
+the number of logon attempts per invocation.
+
+---
 ** New Term mode option `term-suppress-hard-newline'.
 
++++
 ** 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 previous version of todo-mode.el has been
-renamed to otodo-mode.el and is now obsolete.
+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.
 
-** trace-function
+*** Highly flexible new item insertion and item editing.
 
-*** No prompting for the destination buffer, unless a prefix argument is used.
+*** Moving items between categories, storing done items in their category
+or in archive files, undoing or unarchiving done items.
 
-*** 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.
+*** Reprioritizing items by inputting a numerical priority.
+
+*** Extensive customizability of operation and display, including many faces.
+
+** Trace
+
+---
+*** `trace-function' and `trace-function-background' no longer prompt for
+the output buffer.  Unless you use a prefix argument, they output to
+`trace-buffer'.
+
+---
+*** With a prefix argument, `trace-function' and `trace-function-background'
+will prompt for a "context".  This is a Lisp expression, whose value at the
+time the function is entered/exited is printed along with the function's
+name and arguments.
 
 ** Tramp
 
++++
 *** The experimental url syntax for remote file names has been removed.
 
 +++
@@ -800,10 +884,11 @@ you can use this to trace the value of current-buffer or point.
 devices by the Android Debug Bridge.  The variable `tramp-adb-program'
 can be used to adapt the path of the "adb" program, if needed.
 
++++
 *** The connection methods "plink1", "ssh1", "ssh2", "scp1", "scp2",
 "scpc" and "rsyncc" are discontinued.  The ssh option
 "ControlMaster=auto" is set automatically in all ssh-based methods,
-when possible.
+when possible.  See `tramp-use-ssh-controlmaster-options'.
 
 +++
 *** Handlers for `file-acl' and `set-file-acl' for remote machines
@@ -813,8 +898,9 @@ which support POSIX ACLs.
 *** Handlers for `file-notify-add-watch' and `file-notify-rm-watch'
 for remote machines which support filesystem notifications.
 
-** New command `url-cookie-list' displays all the current cookies, and
-allows deleting selected cookies.
++++
+** New URL command `url-cookie-list' displays the current cookies,
+and allows you to interactively remove cookies.
 
 ** VC and related modes
 
@@ -835,10 +921,6 @@ received with a pull operation.
 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.
-
 ** VHDL mode
 
 ---
@@ -847,30 +929,35 @@ because it is moved to vc-cvs.el.
 ---
 *** New commands: `vhdl-fix-statement-region', `vhdl-fix-statement-buffer'.
 
+---
 ** The Woman commands `woman-default-faces' and `woman-monochrome-faces'
 are obsolete.  Customize the `woman-*' faces instead.
 
-** Obsolete packages:
+** Obsolete packages
 
-*** Iswitchb is made obsolete by icomplete-mode.
++++
+*** iswitchb.el; use icomplete-mode.
+
+---
+*** longlines.el; use visual-line-mode.
 
-*** longlines.el is obsolete; use visual-line-mode instead.
+---
+*** meese.el.
 
 +++
 *** sup-mouse.el.
 
-*** terminal.el is obsolete; use term.el instead.
+---
+*** terminal.el; use term.el instead.
 
-*** The previous version of todo-mode.el is obsolete and renamed otodo-mode.el.
+---
+*** the old version of todo-mode.el (renamed to otodo-mode.el).
 
-*** xesam.el is obsolete, because the XESAM project has been canceled.
+---
+*** xesam.el (owing to the cancellation of the XESAM project).
 
 +++
-*** yow.el is obsolete; use fortune.el or cookie1.el instead.
-
----
-*** The Info-edit command is obsolete.  Editing Info nodes by hand
-has not been relevant for some time.
+*** yow.el; use fortune.el or cookie1.el instead.
 
 \f
 * New Modes and Packages in Emacs 24.4
@@ -879,6 +966,7 @@ has not been relevant for some time.
 ** New package `eww' is a built-in web browser.
 It is only available if Emacs is compiled with libxml2 support.
 
++++
 ** New minor mode `superword-mode'.
 This overrides the default word motion commands to treat "symbol_words"
 as a single word, similar to what `subword-mode' does.
@@ -891,7 +979,7 @@ It is layered as:
 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.
+function, much like `defadvice' does.
 
 ** New package frameset.el.
 It provides a set of operations to save a frameset (the state of all
@@ -1006,8 +1094,10 @@ treated as regexps rather than literal strings.
 Generic commands are interactive functions whose implementation can be
 selected among several alternatives, as a matter of user preference.
 
-** The `defalias-fset-function' property lets you catch `defalias'
-calls, and redirect them to your own function, instead of `fset'.
++++
+** If you give a symbol a `defalias-fset-function' property, `defalias'
+on that symbol will use the associated value as a function to call
+in place of `fset'.
 
 +++
 ** New variable `enable-dir-local-variables'.
@@ -1018,6 +1108,10 @@ respecting file-local variables.
 +++
 ** New function `get-pos-property'.
 
++++
+** `read-regexp' now uses the new variable `read-regexp-defaults-function'
+as a function to call to provide default values.
+
 ** Completion changes
 
 *** The separator for `completing-read-multiple' can now be a regexp.
@@ -1029,6 +1123,12 @@ 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 function `completion-table-with-cache' is a wrapper for
+`completion-table-dynamic' that caches the result of the last lookup.
+
+*** New function `completion-table-merge' to combine several
+completion tables by merging their completions.
+
 ** New minor modes `prettify-symbols-mode' and `global-prettify-symbols-mode'
 let you enable symbol prettification (replacing a string like "lambda" with
 the Greek lambda character).
@@ -1058,7 +1158,7 @@ displaying the buffer in a window.
 ** New hook `pre-redisplay-function'.
 
 +++
-** New bool-vector set operation functions:
+** New bool-vector set operation functions
 *** `bool-vector-exclusive-or'
 *** `bool-vector-union'
 *** `bool-vector-intersection'
@@ -1076,6 +1176,7 @@ displaying the buffer in a window.
 +++
 *** New function `define-error'.
 
++++
 *** `with-demoted-errors' takes an additional argument `format'.
 
 +++
@@ -1086,10 +1187,10 @@ This is like the old `eval-after-load', but better behaved.
 ** New library subr-x.el with miscellaneous small utility functions
 *** `hash-table-keys'
 *** `hash-table-values'
-*** `string-blank-p`
-*** `string-empty-p`
-*** `string-join`
-*** `string-reverse`
+*** `string-blank-p'
+*** `string-empty-p'
+*** `string-join'
+*** `string-reverse'
 *** `string-trim-left'
 *** `string-trim-right'
 *** `string-trim'
@@ -1097,7 +1198,7 @@ This is like the old `eval-after-load', but better behaved.
 *** `string-remove-suffix'
 
 +++
-** Obsoleted functions:
+** Obsoleted functions
 *** `log10'
 *** `dont-compile'
 *** `lisp-complete-symbol'
@@ -1259,18 +1360,8 @@ These attributes are only meaningful for coding-systems of type
 `:coding-type' attribute and can be accessed by calling the
 `coding-system-type' function.)
 
-** `time-to-seconds' is not obsolete any more.
-
-** 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.
-
-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 `time-to-seconds' alias to `float-time' is no longer marked obsolete.
 
 +++
 ** New functions `group-gid' and `group-real-gid'.
@@ -1279,6 +1370,15 @@ regular file with contents being what would have been in the symlink.
 ** 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.
+
 ** Changes to the Emacs Lisp Coding Conventions in Emacs 24.4
 
 +++
@@ -1289,6 +1389,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
@@ -1327,7 +1428,7 @@ 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.
@@ -1813,7 +1914,8 @@ These faces are named `apropos-symbol', `apropos-keybinding', and so on;
 see the `apropos' Custom group for details.
 
 *** The old options whose values specified faces to use have been removed
-(i.e. `apropos-symbol-face', `apropos-keybinding-face', etc.).
+(i.e. `apropos-symbol-face', `apropos-keybinding-face', `apropos-label-face',
+`apropos-match-face' and `apropos-property-face'.).
 
 ** Buffer Menu
 
@@ -3336,7 +3438,7 @@ means you can just remove all calls to the function in question):
 *** `frame-update-faces' (not needed)
 *** `frame-update-face-colors' (`frame-set-background-mode')
 *** `x-frob-font-weight' and `x-frob-font-slant' (`make-face-*' functions)
-*** `x-make-font-bold and x-make-font-demibold (`make-face-bold')
+*** `x-make-font-bold' and `x-make-font-demibold' (`make-face-bold')
 *** `x-make-font-italic' and `x-make-font-oblique' (`make-face-italic')
 *** `x-make-font-bold-italic' (`make-face-bold-italic')
 *** `x-make-font-unbold' (`make-face-unbold')