with a prefix argument or by typing C-u C-h C-n.
Temporary note:
-+++ indicates that the appropriate manual has already been updated.
---- means no change in the manuals is called for.
-When you add a new item, please add it without either +++ or ---
-so we will look at it and add it to the manual.
++++ indicates that all necessary updates to the manuals in doc/ are complete.
+--- means no change in the manuals is needed.
+When you add a new item, use the appropriate mark if you know it applies,
+otherwise leave it unmarked.
\f
* Installation Changes in Emacs 24.4
configure option `--disable-acl'.
** Emacs can be compiled with file notification support.
-The configure option `--with-file-notification=LIB' enables file
-notification support in Emacs. This option's value should be `yes',
-`no', `gfile', `inotify' or `w32'. `yes' is a synonym for `w32' on
-MS-Windows, and for `gfile' otherwise. The default value is `yes'.
+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 --with-crt-dir has been removed.
It is no longer needed, as the crt*.o files are no longer linked
specially.
-** Emacs for MS-Windows can now be built by running the configure script
-using the MSYS environment and MinGW development tools.
-This is from now on the preferred method of building Emacs on
-MS-Windows. The Windows-specific configure.bat and makefile.w32-in
-files are deprecated. See the file nt/INSTALL.MSYS for detailed
-instructions.
+** Directories passed to configure option `--enable-locallisppath' are
+no longer created during installation.
-Using the Posix configure script and Makefile's also means a change in
-the directory structure of the Emacs installation on Windows. It is
-now the same as on GNU and Unix systems. In particular, the auxiliary
-programs, such as cmdproxy.exe and hexl.exe, are in
-libexec/emacs/VERSION/i686-pc-mingw32 (where VERSION is the Emacs
-version), version-independent site-lisp is in share/emacs/site-lisp,
-version-specific Lisp files are in share/emacs/VERSION/lisp and in
-share/emacs/VERSION/site-lisp, Info docs are in share/info, and data
-files are in share/emacs/VERSION/etc. (Emacs knows about all these
-directories and will find the files in there automatically; there's no
-need to set any variables due to this change.)
+---
+** Emacs for NS (OSX, GNUStep) can be built with ImageMagick support.
+pkg-config is required to find ImageMagick libraries.
\f
* Startup Changes in Emacs 24.4
** `initial-buffer-choice' can now specify a function to set up the
initial buffer.
+** `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.
+
** `write-region-inhibit-fsync' now defaults to t in batch mode.
** ACL support has been added.
using the scroll bar (i.e. dragging the thumb down even when the end
of the buffer is visible).
+** 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.
`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 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'.
+
+** New macro `alternatives-define' 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 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.
+
\f
* Editing Changes in Emacs 24.4
** In keymaps where SPC scrolls, S-SPC now scrolls in the reverse direction.
Eg View mode, etc.
++++
+** New option `visual-order-cursor-movement'.
+If this is non-nil, cursor motion with arrow keys will follow the
+visual order of characters on the screen: <left> always moves to the
+left, <right> always moves to the right, disregarding the surrounding
+bidirectional context.
+
** New command `kmacro-to-register' to store keyboard macros in registers.
** Shell Script mode
\f
* Changes in Specialized Modes and Packages in Emacs 24.4
+** 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.
+
** `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
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.
-** `ido-decorations' has been slightly extended to give a bit more control.
** More packages look for ~/.emacs.d/<foo> additionally to ~/.<foo>.
Affected files:
~/.emacs.d/timelog replaces ~/.timelog
-~/.emacs.d/todo-do replaces ~/.todo-do
-~/.emacs.d/todo-done replaces ~/.todo-done
-~/.emacs.d/todo-top replaces ~/.todo-top
~/.emacs.d/vip replaces ~/.vip
~/.emacs.d/viper replaces ~/.viper
~/.emacs.d/ido.last replaces ~/.ido.last
~/.emacs.d/strokes replaces ~/.strokes
~/.emacs.d/notes replaces ~/.notes
~/.emacs.d/type-break replaces ~/.type-break
+Also the following files used by the now obsolete otodo-mode.el:
+~/.emacs.d/todo-do replaces ~/.todo-do
+~/.emacs.d/todo-done replaces ~/.todo-done
+~/.emacs.d/todo-top replaces ~/.todo-top
+
** Delphi mode is now called OPascal mode.
*** All delphi-* variables and functions have been renamed to opascal-*.
*** Battery information via the BSD `apm' utility is now supported.
+** Buffer Menu
+
+*** `M-s a C-o' shows lines matching a regexp in marked buffers using Occur.
+
** Calendar and Diary
+++
*** 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.
+
+*** `C-x v G' (globally) and `G' (in VC directory mode) ignores a
+file under current version control system.
+
** cl-lib
*** New macro cl-tagbody.
*** `desktop-auto-save-timeout' defines the number of seconds between
auto-saves of the desktop.
+*** `desktop-restore-frames', enabled by default, allows saving and
+restoring the window/frame configuration. Additional options
+`desktop-restore-in-current-display', `desktop-restore-reuses-frames'
+and `desktop-restore-forces-onscreen' allow further customization.
+
** Dired
*** New minor mode `dired-hide-details-mode' hides details.
If set to a number, this can be used to avoid accidentally paste large
amounts of data into the ERC input.
+** 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.
+
---
** New F90 mode option `f90-smart-end-names'.
*** The icomplete-separator is customizable, and its default has changed.
*** Removed icomplete-show-key-bindings.
+** 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')
`just-one-space' command it can handle or ignore newlines and
leave different number of spaces.
+** 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.
+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.
+
** Tramp
+++
*** Handlers for `file-acl' and `set-file-acl' for remote machines
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'.
** Woman
*** The commands `woman-default-faces' and `woman-monochrome-faces'
-are obsolete. Customize the `woman-* faces instead.
+are obsolete. Customize the `woman-*' faces instead.
** Eshell
-*** Added Eshell-TRAMP module
+*** 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
+Tramp-using variants can still be used by enabling the eshell-tramp
module.
** New term.el option `term-suppress-hard-newline'.
*** terminal.el is obsolete; use term.el instead.
+*** The previous version of todo-mode.el is obsolete and renamed otodo-mode.el.
+
*** xesam.el.
+++
*** 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
- advice-add/advice-remove to add/remove a piece of advice on a named function,
much like `defadvice' does.
+** New frameset.el package.
+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
+low-level libraries gfilenotify.c, inotify.c or w32notify.c.
+
\f
* Incompatible Lisp Changes in Emacs 24.4
+** `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.
`file-extended-attributes'. The attributes can be applied to another
file using `set-file-extended-attributes'.
+** `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.
\f
* Lisp Changes in Emacs 24.4
+** New hook `tty-setup-hook'.
+
+++
** New macro with-eval-after-load. Like eval-after-load, but better behaved.
** Obsoleted functions:
+*** `log10'
*** `dont-compile'
*** `lisp-complete-symbol'
*** `field-complete'
*** `completion-in-region-function' obsoletes `completion-in-region-functions'.
*** `filter-buffer-substring-function' obsoletes `filter-buffer-substring-functions'.
+** `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.
** `get-upcase-table' is obsoleted by the new `case-table-get-table'.
*** New functions `image-current-frame' and `image-show-frame' for getting
and setting the current frame of a multi-frame image.
+** Changes in encoding and decoding of text
+
+---
+*** New coding-system `prefer-utf-8'.
+This is like `undecided' but prefers UTF-8 on decoding if the text to
+be decoded does not contain any invalid UTF-8 sequences. On encoding,
+any non-ASCII characters are automatically encoded as UTF-8.
+
+---
+*** New attributes of coding-systems whose type is `undecided'.
+Two new attributes, `:inhibit-null-byte-detection' and
+`:inhibit-iso-escape-detection', determine how to detect encoding of
+text that includes null bytes and ISO-2022 escape sequences,
+respectively. Each of these attributes can be either nil, zero, or
+t. If it is t, decoding text ignores null bytes and, respectively,
+ISO-2022 sequences. If it is nil, null bytes cause text to be decoded
+with no-conversion and ISO-2022 sequences cause Emacs to assume the
+text is encoded in one of the ISO-2022 encodings, such as
+iso-2022-7bit. If the value is zero, Emacs consults the variables
+inhibit-null-byte-detection and inhibit-iso-escape-detection, which
+see.
+The new attribute `:prefer-utf-8', if non-nil, causes Emacs to prefer
+UTF-8 encoding and decoding, whenever possible.
+
+These attributes are only meaningful for coding-systems of type
+`undecided'. (The type of a coding-system is determined by its
+`: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 function special-form-p.
** Docstrings can be made dynamic by adding a `dynamic-docstring-function'
\f
* Changes in Emacs 24.4 on Non-Free Operating Systems
+** Emacs for MS-Windows can now be built by running the configure script
+using the MSYS environment and MinGW development tools.
+This is from now on the preferred method of building Emacs on
+MS-Windows. The Windows-specific configure.bat and makefile.w32-in
+files are deprecated. See the file nt/INSTALL.MSYS for detailed
+instructions.
+
+Using the Posix configure script and Makefile's also means a change in
+the directory structure of the Emacs installation on Windows. It is
+now the same as on GNU and Unix systems. In particular, the auxiliary
+programs, such as cmdproxy.exe and hexl.exe, are in
+libexec/emacs/VERSION/i686-pc-mingw32 (where VERSION is the Emacs
+version), version-independent site-lisp is in share/emacs/site-lisp,
+version-specific Lisp files are in share/emacs/VERSION/lisp and in
+share/emacs/VERSION/site-lisp, Info docs are in share/info, and data
+files are in share/emacs/VERSION/etc. (Emacs knows about all these
+directories and will find the files in there automatically; there's no
+need to set any variables due to this change.)
+
+++
** The "generate a backtrace on fatal error" feature now works on MS Windows.
The backtrace is written to the 'emacs_backtrace.txt' file in the
`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.
+
** Minibuffer
*** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the
`DEL' (`dired-unmark-backward'), and `d' (`dired-flag-file-deletion')
mark/unmark/flag all files in the active region.
-*** The minibuffer default for `=' (`dired-diff) has changed.
+*** The minibuffer default for `=' (`dired-diff') has changed.
It is now the backup file for the file at point, if one exists.
In Transient Mark mode the default is the file at the active mark.
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.
modes, e.g. (add-hook 'prog-mode-hook 'flyspell-prog-mode) to enable
on-the-fly spell checking for comments and strings.
-**** New option, `prog-prettify-symbols' lets the user control symbol
-prettify (replacing a string like "lambda" with the Greek lambda
-character). The mode derived from `prog-mode' must call
-`prog-prettify-install' with its own custom alist, which can be empty.
+**** 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.