** The configure option `--with-pkg-config-prog' has been removed.
Use './configure PKG_CONFIG=/full/name/of/pkg-config' if you need to.
----
-** Building Emacs for MS-Windows requires at least Windows XP
-or Windows Server 2003. The built binaries still run on all versions
-of Windows starting with Windows 9X.
+** The configure option '--enable-silent-rules' and the command
+'make V=0' now do a better job of suppressing chatter.
\f
* Startup Changes in Emacs 24.5
\f
* Changes in Emacs 24.5
+** New var `truncate-string-ellipsis' to choose how to indicate truncation.
+
---
** The default value of `history-length' has increased to 100.
main features that Emacs was compiled with. This is mainly intended
for use in Emacs bug reports.
++++
+** A password is now hidden also when typed in batch mode. Another
+hiding character but the default `.' can be used by let-binding the
+variable `read-hide-char'.
+
+** The new functions `string-collate-lessp' and `string-collate-equalp'
+preserve the collation order as defined by the system's locale(1)
+environment. For the time being this is implemented for modern POSIX
+systems and for MS-Windows, for other systems they fall back to their
+counterparts `string-lessp' and `string-equal'.
+
+*** The ls-lisp package uses `string-collate-lessp' to sort file names.
+If you want the old, locale-independent sorting, customize the new
+option `ls-lisp-use-string-collate' to a nil value.
+
+*** The MS-Windows specific variable `w32-collate-ignore-punctuation',
+if set to a non-nil value, causes the above 2 functions to ignore
+symbol and punctuation characters when collating strings. This
+emulates the behavior of modern Posix platforms when the locale's
+codeset is "UTF-8" (as in "en_US.UTF-8"). This is needed because
+MS-Windows doesn't support UTF-8 as codeset in its locales.
+
\f
* Editing Changes in Emacs 24.5
-Emacs now supports "bracketed paste mode" when running on a terminal
+** Emacs now supports "bracketed paste mode" when running on a terminal
that supports it. This facility allows Emacs to understand pasted
-chunks of text as strings to be inserted instead of interpreting each
-character in the pasted text as actual user input, resulting in a
-paste experience similar to that under a window system and significant
+chunks of text as strings to be inserted, instead of interpreting each
+character in the pasted text as actual user input. This results in a
+paste experience similar to that under a window system, and significant
performance improvements when pasting large amounts of text.
\f
* Changes in Specialized Modes and Packages in Emacs 24.5
-** font-lock
-*** New functions font-lock-ensure and font-lock-flush that should be used
-instead of font-lock-fontify-buffer when called from Elisp.
+** Lisp mode
+*** Strings after `:documentation' are highlighted as docstrings.
----
-** The Rmail commands d, C-d and u now handle repeat counts
-to delete or undelete multiple messages.
+** Rectangle editing
+*** Rectangle Mark mode can have corners past EOL or in the middle of a TAB.
+*** C-x C-x in rectangle-mark-mode now cycles through the four corners.
+*** `string-rectangle' provides on-the-fly preview of the result.
+
++++
+** Macro `pcase' now supports vector qpattern.
+
+** New font-lock functions font-lock-ensure and font-lock-flush, which
+should be used instead of font-lock-fontify-buffer when called from Elisp.
+
+** Macro `minibuffer-with-setup-hook' takes (:append FUN) to mean
+appending FUN to `minibuffer-setup-hook'.
** Calendar and diary
+++
*** New commands to insert diary entries with Chinese dates:
`diary-chinese-insert-anniversary-entry' `diary-chinese-insert-entry'
-`diary-chinese-insert-monthly-entry'
-`diary-chinese-insert-yearly-entry'
+`diary-chinese-insert-monthly-entry', `diary-chinese-insert-yearly-entry'.
+++
-*** Calendar can list and mark diary entries with Chinese dates:
-`diary-chinese-list-entries' and `diary-chinese-mark-entries'.
+*** Calendar can list and mark diary entries with Chinese dates.
+See `diary-chinese-list-entries' and `diary-chinese-mark-entries'.
+
+** New ERT function `ert-summarize-tests-batch-and-exit'.
+
+---
+** The Rmail commands d, C-d and u now handle repeat counts to delete or
+undelete multiple messages.
+
+** SES now supports local printer functions; see `ses-define-local-printer'.
** In sh-mode, you can now use `sh-shell' as a file-local variable to
specify the type of shell in use (bash, csh, etc).
When `url-handler-mode' is enabled, file operations for these
protocols as well as for "telnet" and "ftp" are passed to Tramp.
+** Tramp
+
+*** New connection method "nc", which allows to access dumb busyboxes.
+
+** VC and related modes
+
+*** New option `vc-annotate-background-mode' controls whether
+the color range from `vc-annotate-color-map' is applied to the
+background or to the foreground.
+
+** Calculator: decimal display mode uses "," groups, so it's more
+fitting for use in money calculations; factorial works with
+non-integer inputs.
+
+** HideIfDef mode now support full C/C++ expressions, argumented macro expansions
+, interactive macro evaluation and automatic scanning of #defined symbols.
+
+*** New custom variable `hide-ifdef-header-regexp' to define C/C++ header file
+name patterns. Default case-insensitive .h, .hh, .hpp and .hxx.
+*** New custom variable `hide-ifdef-expand-reinclusion-protection' to prevent
+reinclusion protected header files from being fully hidden.
+*** New custom variable `hide-ifdef-exclude-define-regexp' to define symbol
+name patterns (e.x. all "FOR_DOXYGEN_ONLY_*") to be excluded.
+
+** TeX mode
+
+*** New custom variable `tex-print-file-extension' to help users who
+use PDF instead of DVI.
+
** Obsolete packages
---
*** gulp.el
----
-*** vi.el, vip.el (try M-x viper instead)
-
---
*** crisp.el, tpu-edt.el, ws-mode.el
These emulations of old editors are believed to be no longer relevant
- contact emacs-devel@gnu.org if you disagree.
+---
+*** vi.el, vip.el (try M-x viper instead)
+
\f
* New Modes and Packages in Emacs 24.5
\f
* Incompatible Lisp Changes in Emacs 24.5
-** window-configurations do not record the buffers's marks any more.
+** window-configurations no longer record the buffers's marks.
-** inhibit-modification-hooks now also inhibits lock-file checks as well as
+** inhibit-modification-hooks now also inhibits lock-file checks, as well as
active region handling.
** deactivate-mark is now buffer-local.
-** cl-the now asserts that its argument is of the given type.
+** `cl-the' now asserts that its argument is of the given type.
+++
** Mouse click events on mode line or header line no longer include
\f
* Lisp Changes in Emacs 24.5
+*** call-process-shell-command and process-file-shell-command
+don't take "&rest args" an more.
+
** New function `funcall-interactively', which works like `funcall'
but makes `called-interactively-p' treat the function as (you guessed it)
called interactively.
+++
** New properties that can be specified with `declare':
-*** (interactive-only INSTEAD), tells to use INSTEAD for non-interactive use.
+*** (interactive-only INSTEAD), says to use INSTEAD for non-interactive use.
*** (pure VAL), if VAL is non-nil, indicates the function is pure.
*** (side-effect-free VAL), if VAL is non-nil, indicates the function does not
have side effects.
** Functions `rmail-delete-forward' and `rmail-delete-backward' take an
optional repeat-count argument.
+** Function `sort' can deal with vectors.
+
+---
+** New utilities in subr-x.el:
+*** New macros `if-let' and `when-let' allow defining bindings and to
+ execute code depending whether all values are true.
+*** New macros `thread-first' and `thread-last' allow threading a form
+ as the first or last argument of subsequent forms.
+
+\f
+* Changes in Frames and Windows Code in Emacs 24.5
+
+** Emacs can now draw horizontal scroll bars on some platforms that
+provide toolkit scroll bars, namely Gtk, Lucid, Motif and Windows.
+Horizontal scroll bars are turned off by default.
+*** New function `horizontal-scroll-bars-available-p' telling whether
+ horizontal scroll bars are available on the underlying system.
+*** New mode `horizontal-scroll-bar-mode' to toggle horizontal scroll
+ bars on all existing and future frames.
+*** New frame parameters `horizontal-scroll-bars' and
+ `scroll-bar-height' to set horizontal scroll bars and their height
+ for individual frames and in `default-frame-alist'.
+*** New function `frame-scroll-bar-height' to return the height of
+ horizontal scroll bars on a specific frame.
+*** `set-window-scroll-bars' now accepts five parameters where the last
+ two specify height and type of the window's horizontal scroll bar.
+
+** The height of a frame's menu and tool bar are no more counted in the
+frame's text height. This means that the text height stands only for
+the height of the frame's root window plus that of the echo area (if
+present). This was already the behavior for frames with external tool
+and menu bars (like in the Gtk builds) but has now been extended to all
+builds.
+
+** Frames now do not necessarily preserve the number of columns or lines
+they display when setting default font, menu bar, fringe width, or
+scroll bars. In particular, maximized and fullscreen frames are
+conceptually never resized if such settings change. For fullheight and
+fullwidth frames, the behavior may depend on the toolkit used.
+*** New option `frame-inhibit-implied-resize' if non-nil, means that
+ setting default font, menu bar, fringe width, or scroll bars of a
+ specific frame does not resize that frame in order to preserve the
+ number of columns or lines it displays.
\f
* Changes in Emacs 24.5 on Non-Free Operating Systems
+---
+** Building Emacs for MS-Windows requires at least Windows XP
+or Windows Server 2003. The built binaries still run on all versions
+of Windows starting with Windows 9X.
+
\f
* Installation Changes in Emacs 24.4
*** The function `quail-help' is no longer an interactive command.
Use `C-h C-\' (`describe-input-method') instead.
-** ImageMagick
-
-*** ImageMagick images now support the :max-width and :max-height keywords.
-
-*** When using `create-image' with image data, you can pass a :format
-attribute (via the property-list argument) in order to help
-ImageMagick detect the image type. The value should be a MIME
-content-type that is found in the new variable `image-format-suffixes'.
-
-** Frame and window changes
+** Frame and window handling
*** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized',
bound to <f11> and M-<f10>, respectively.
caller of `display-buffer' is ready to handle the case of not displaying
the buffer in a window.
-** Lisp evaluation changes
+** Lisp evaluation
*** `eval-defun' on an already defined defcustom calls the :set function,
if there is one.
\f
* Editing Changes in Emacs 24.4
-** Indentation changes
+** Indentation
*** `electric-indent-mode' is now enabled by default.
Typing RET reindents the current line and indents the new line.
*** New option `hi-lock-auto-select-face'. When non-nil, hi-lock commands
will cycle through faces in `hi-lock-face-defaults' without prompting.
-** Icomplete
-Icomplete is now more similar to Ido.
+** Icomplete is now more similar to Ido.
*** Icomplete by default now applies to all forms of minibuffer completion.
The variable `icomplete-with-completion-tables' (now a user option)
** In Prolog mode, `prolog-use-smie' has been removed,
along with the non-SMIE indentation code.
+** Python mode
+
+*** Out of the box support for CPython, iPython and readline based shells.
+**** `python-shell-completion-module-string-code' is no longer used.
+
+*** Automatic shell prompt detection. New user options:
+**** `python-shell-interpreter-interactive-arg'.
+**** `python-shell-prompt-detect-enabled'.
+**** `python-shell-prompt-detect-failure-warning'.
+**** `python-shell-prompt-input-regexps'.
+**** `python-shell-prompt-output-regexps'.
+
+*** Python shell support for remote hosts via tramp.
+
+*** Correct display of line numbers for code sent to the Python shell.
+
** Remember
*** The new command `remember-notes' creates a buffer that is saved on exit.
\f
* New Modes and Packages in Emacs 24.4
-** New package `eww' is a built-in web browser.
-(It is only available if Emacs is compiled with libxml2 support.)
+** New package eww.el provides a built-in web browser.
+This requires Emacs to have been compiled with libxml2 support.
** New package nadvice.el offers lighter-weight advice facilities.
It is layered as:
*** `advice-add'/`advice-remove' to add/remove a piece of advice on a named
function, much like `defadvice' does.
-** New package frameset.el.
-It provides a set of operations to save a frameset (the state of all
-or a subset of the existing frames and windows, somewhat similar to a
-frame configuration), both in-session and persistently, and restore it
-at some point in the future.
+** New package frameset.el 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.
** New package filenotify.el provides an interface for file system
notifications. It requires that Emacs be compiled with one of the
display specified symbols as composed characters. E.g., in Emacs Lisp mode,
this replaces the string "lambda" with the Greek lambda character.
-** New minor mode `superword-mode'.
-This overrides the default word motion commands to treat "symbol_words"
-as a single word, similar to what `subword-mode' does.
+** New minor mode `superword-mode', which overrides the default word motion
+commands to treat "symbol_words" as a single word, similar to what
+`subword-mode' does.
\f
* Incompatible Lisp Changes in Emacs 24.4
Some languages match those as »...«, and others as «...», so it is
better for Emacs to stay neutral by default.
-** `read-event' does not return decoded chars in ttys any more.
-As was the case in Emacs 22 and before, the decoding of terminal
-input, according to `keyboard-coding-system', is not performed in
-`read-event' any more. But unlike in Emacs 22, this decoding is still
-done before `input-decode-map', `function-key-map', etc.
+** `read-event' does not always decode chars in ttys any more. As was the case
+in Emacs 22 and before, `read-event' (and `read-char') by default read raw
+bytes from the terminal. If you want to read decoded chars instead (as was
+always the case in Emacs-23, for example), pass a non-nil
+`inherit-input-method' argument.
** In `symbol-function', nil and "unbound" are indistinguishable.
`symbol-function' does not signal a `void-function' error any more.
*** New functions `image-current-frame' and `image-show-frame' for getting
and setting the current frame of a multi-frame image.
+** ImageMagick
+
+*** ImageMagick images now support the :max-width and :max-height keywords.
+
+*** When using `create-image' with image data, you can pass a :format
+attribute (via the property-list argument) in order to help
+ImageMagick detect the image type. The value should be a MIME
+content-type that is found in the new variable `image-format-suffixes'.
+
** Revert and Autorevert
*** If Emacs is compiled with file notification support, it uses notifications
"Interlocking" in the Emacs User Manual for the details. To disable
file locking, customize `create-lockfiles' to nil.
-** The "generate a backtrace on fatal error" feature now works on MS Windows.
+** 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
directory where Emacs was running.
+** The `network-interface-list' and `network-interface-info' functions
+are now available on MS-Windows.
+
** The variable `buffer-file-type' is no longer supported.
Setting it has no effect, and %t in the mode-line format is ignored.
Likewise, `file-name-buffer-file-type-alist' is now obsolete, and