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.
-\f
-* Changes in Emacs 25.2
-This is a bug-fix release with (almost) no new features.
-
----
-** 'find-library', 'help-function-def' and 'help-variable-def' now run
-'find-function-after-hook'.
-
-+++
-** New basic face 'fixed-pitch-serif', for a fixed-width font with serifs.
-The 'Info-quoted' and 'tex-verbatim' faces now default to inheriting
-from it.
-
----
-** New variable 'use-default-font-for-symbols' for backward compatibility.
-This variable allows to get back pre-Emacs 25 behavior whereby the
-font for displaying symbol and punctuation characters was always
-selected according to your fontset setup. Emacs 25 by default tries
-to use the default face's font for such characters, disregarding the
-fontsets if the default font supports these characters. Set this
-variable to nil to disable the new behavior and get back the old
-behavior.
-
-+++
-** 'electric-quote-mode' is no longer suppressed in a buffer whose
-whose coding system cannot represent curved quote characters.
-Instead, users can deal with the unrepresentable characters in the
-usual way when they save the buffer.
-
----
-** New variable 'inhibit-compacting-font-caches'.
-Set this variable to a non-nil value to speed up display of characters
-using large fonts, at the price of a larger memory footprint of the
-Emacs session.
+Temporary note:
++++ 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 are sure it applies,
+ +++
+ ** The version number of CC Mode has been changed from 5.33 to
+ 5.32.99, although the software itself hasn't changed. This aims to
+ reduce confusion with the standalone CC Mode 5.33 (available from
+ http://cc-mode.sourceforge.net), which is a more mature version than
+ the one in Emacs 25.2.
+
\f
-* Installation Changes in Emacs 25.1
-
-** Building Emacs now requires C99 or later.
-
-** Building Emacs now requires GNU make, version 3.81 or later.
-
-** New configure option --with-cairo.
-This builds Emacs with Cairo drawing. As a side effect, it provides
-support for built-in printing, when Emacs was built with GTK+.
-The Emacs Cairo drawing is experimental and still has some known
-display problems. We encourage more testing of this build and
-reporting any problems you find, but it is not recommended for
-production.
-
-** New configure option --with-modules.
-This enables support for loading dynamic modules; see below.
-
-** By default, Emacs no longer works on IRIX. We expect that Emacs
-users are not affected by this, as SGI stopped supporting IRIX in
-December 2013. If you are affected, please send a bug report. You
-should be able to work around the problem either by porting the Emacs
-undumping code to GCC under IRIX, or by configuring --with-wide-int,
-or by sticking with Emacs 24.4.
-
-** The Emacs garbage collector assumes GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS.
-The GC_MAKE_GCPROS_NOOPS stack-marking variant has been the default
-since Emacs 24.4, and the other variants were undocumented and were
-obstacles to maintenance and development. GC_MARK_STACK and its
-related symbols have been removed from the C internals.
-
-** 'configure' now prefers gnustep-config when configuring GNUstep.
-If gnustep-config is not available, the old heuristics are used.
-
-** 'configure' now prefers inotify to gfile for file notification,
-unless gfile is explicitly requested via --with-file-notification='gfile'.
+* Installation Changes in Emacs 26.1
-** 'configure' detects the kqueue file notification library on *BSD
-and macOS machines.
+** By default libgnutls is now required when building Emacs.
+Use 'configure --with-gnutls=no' to build even when GnuTLS is missing.
-** The configure option '--with-pkg-config-prog' has been removed.
-Use './configure PKG_CONFIG=/full/name/of/pkg-config' if you need to.
+** GnuTLS version 2.12.2 or later is now required, instead of merely
+version 2.6.6 or later.
-** The configure option '--with-mmdf' has been removed.
-It was no longer useful, as it relied on libraries that are no longer
-supported, and its presence led to confusion during configuration.
-This affects only the 'movemail' utility; Emacs itself can still
-process MMDF-format files as before.
+** The new option 'configure --enable-gcc-warnings=warn-only' causes
+GCC to issue warnings without stopping the build. This behavior is
+now the default in developer builds. As before, use
+'--disable-gcc-warnings' to suppress GCC's warnings, and
+'--enable-gcc-warnings' to stop the build if GCC issues warnings.
-** The configure option '--enable-silent-rules' is now the default,
-and silent rules are now quieter. To get the old behavior where
-'make' chatters a lot, configure with '--disable-silent-rules' or
-build with 'make V=1'.
-
-** The configure option '--with-gameuser' now allows you to specify a
-group instead of a user if its argument is prefixed by ':' (a colon).
-This will cause the game score files in "${localstatedir}/games/emacs"
-to be owned by that group, and the helper program for updating them to
-be installed setgid. The option now defaults to the 'games' group.
-
-** The 'grep-changelog' script (and its manual page) are no longer included.
-It has no particular connection to Emacs and has not changed in years,
-so if you want to use it, you can always take a copy from an older Emacs.
-
-** Emacs 25 comes with a new set of icons.
-Various resolutions are available as etc/images/icons/hicolor/*/apps/emacs.png.
-The old Emacs logo icons are available as 'emacs23.png' in the same location.
++++
+** The Emacs server now has socket-launching support. This allows
+socket based activation, where an external process like systemd can
+invoke the Emacs server process upon a socket connection event and
+hand the socket over to Emacs. Emacs uses this socket to service
+emacsclient commands. This new functionality can be disabled with the
+configure option '--disable-libsystemd'.
-** New make target 'check-expensive' to run additional tests.
-This includes all tests which run via "make check", plus additional
-tests which take more time to perform.
++++
+** A systemd user unit file is provided. Use it in the standard way:
+systemctl --user enable emacs
+(If your Emacs is installed in a non-standard location, you may
+need to copy the emacs.service file to eg ~/.config/systemd/user/)
+
+** New configure option '--disable-build-details' attempts to build an
+Emacs that is more likely to be reproducible; that is, if you build
+and install Emacs twice, the second Emacs is a copy of the first.
+Deterministic builds omit the build date from the output of the
+emacs-version and erc-cmd-SV functions, and the leave the following
+variables nil: emacs-build-system, emacs-build-time,
+erc-emacs-build-time.
+
+** Emacs no longer works on IRIX. We expect that Emacs users are not
+affected by this, as SGI stopped supporting IRIX in December 2013.
\f
-* Startup Changes in Emacs 25.1
+* Startup Changes in Emacs 26.1
-** When Emacs is given a file as a command line argument and
-'initial-buffer-choice' is non-nil, display both the file and
-'initial-buffer-choice'. When Emacs is given more than one file and
-'initial-buffer-choice' is non-nil, show 'initial-buffer-choice'
-and '*Buffer List*'. This makes Emacs convenient to use from the
-command line when 'initial-buffer-choice' is non-nil.
-
-** The value of 'initial-scratch-message' is now treated as a doc string
-and can contain escape sequences for command keys, quotes, and the like.
-
-** The default height of GUI frames was enlarged.
-This is so there's enough space in the initial window to display the
-optional text about recovering crashes sessions, without losing the
-splash image display.
-
-\f
-* Changes in Emacs 25.1
-
-** Xwidgets: a new feature for embedding native widgets inside Emacs buffers.
-If you have gtk3 and webkitgtk3 installed, and Emacs was built with
-xwidget support, you can access the embedded webkit browser with 'M-x
-xwidget-webkit-browse-url'. This opens a new buffer with the embedded
-browser. The buffer will have a new mode, 'xwidget-webkit-mode'
-(similar to 'image-mode'), which supports the webkit widget.
-
-*** New functions for xwidget-webkit mode 'xwidget-webkit-insert-string',
-'xwidget-webkit-adjust-size-dispatch', 'xwidget-webkit-back',
-'xwidget-webkit-browse-url', 'xwidget-webkit-reload',
-'xwidget-webkit-current-url', 'xwidget-webkit-scroll-backward',
-'xwidget-webkit-scroll-forward', 'xwidget-webkit-scroll-down',
-'xwidget-webkit-scroll-up'.
-
-** Emacs can now load shared/dynamic libraries (modules).
-A dynamic Emacs module is a shared library that provides additional
-functionality for use in Emacs Lisp programs, just like a package
-written in Emacs Lisp would. The functions 'load', 'require',
-'load-file', etc. were extended to load such modules, as they do with
-Emacs Lisp packages. The new variable 'module-file-suffix' holds the
-system-dependent value of the file-name extension ('.so' on Posix
-hosts) of the module files.
-
-A module should export a C-callable function named
-'emacs_module_init', which Emacs will call as part of the call to
-'load' or 'require' which loads the module. It should also export a
-symbol named 'plugin_is_GPL_compatible' to indicate that its code is
-released under the GPL or compatible license; Emacs will refuse to
-load modules that don't export such a symbol.
-
-If a module needs to call Emacs functions, it should do so through the
-API defined and documented in the header file 'emacs-module.h'. Note
-that any module that provides Lisp-callable functions will have to use
-Emacs functions such as 'fset' and 'funcall', in order to register its
-functions with the Emacs Lisp interpreter.
-
-Modules can create 'user-ptr' Lisp objects that embed pointers to C
-structs defined by the module. This is useful for keeping around
-complex data structures created by a module, to be passed back to the
-module's functions. User-ptr objects can also have associated
-"finalizers" -- functions to be run when the object is GC'ed; this is
-useful for freeing any resources allocated for the underlying data
-structure, such as memory, open file descriptors, etc. A new
-predicate 'user-ptrp' returns non-nil if its argument is a 'user-ptr'
-object.
-
-Loadable modules in Emacs are an experimental feature, and subject to
-change in future releases. For that reason, their support is disabled
-by default, and must be enabled by using the '--with-modules' option
-at configure time.
-
-** Network security (TLS/SSL certificate validity and the like) is
-added via the new Network Security Manager (NSM) and controlled via
-the 'network-security-level' variable.
-
-** 'C-h l' now also lists the commands that were run.
-
-** 'x-select-enable-clipboard' is renamed 'select-enable-clipboard'
-and 'x-select-enable-primary' is renamed 'select-enable-primary'.
-Additionally they both now apply to all systems (macOS, GNUstep,
-MS-Windows, you name it), with the proviso that on some systems (e.g.,
-MS-Windows) 'select-enable-primary' is ineffective since the system
-doesn't have the equivalent of a primary selection.
-
-** New option 'switch-to-buffer-in-dedicated-window' allows you to
-customize how 'switch-to-buffer' proceeds interactively when the
-selected window is strongly dedicated to its buffer.
-
-** The option 'even-window-heights' has been renamed to
-'even-window-sizes' and now handles window widths as well.
-
-** 'terpri' gets an optional arg ENSURE to conditionally output a newline.
-
-** 'insert-register' now leaves point after the inserted text
-when called interactively. A prefix argument toggles this behavior.
-
-** The new variable 'term-file-aliases' replaces some files from lisp/term.
-The function 'tty-run-terminal-initialization' consults this variable
-when deciding what terminal-specific initialization code to run.
-
-** New variable 'system-configuration-features', listing some of the
-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 Emacs pseudo-random number generator can be securely seeded.
-On systems where Emacs can access the system entropy or some other
-cryptographically secure random stream, it now uses that when 'random'
-is called with its argument t. This allows cryptographically strong
-random values; in particular, the Emacs server now uses this facility
-to produce its authentication key.
-
-** New input methods: 'tamil-dvorak', 'programmer-dvorak' and 'probhat'.
+** New option '--new-daemon'. This is the same as '--daemon', except
+it runs in the foreground and does not fork. This is intended for
+modern init systems such as systemd, which manage many of the traditional
+aspects of daemon behavior themselves. '--old-daemon' is now an alias
+for '--daemon'.
\f
-* Editing Changes in Emacs 25.1
+* Changes in Emacs 26.1
-** 'M-x' suggests shorthands and ignores obsolete commands for completion.
-
-** Changes in undo
-
-*** Successive single-char deletions are collapsed in the undo-log just like
-successive char insertions. Which commands invoke this behavior is
-controlled by the new 'undo-auto-amalgamate' function. See the node
-"Undo" in the ELisp manual for more details.
++++
+** The new function 'mapbacktrace' applies a function to all frames of
+the current stack trace.
-*** The heuristic used to insert 'undo-boundary' after each command
-has changed, so that if a command causes changes in more than just the
-current buffer, Emacs now calls 'undo-boundary' in every buffer
-affected by the command.
++++
+** Emacs now provides a limited form of concurrency with Lisp threads.
+Concurrency in Emacs Lisp is "mostly cooperative", meaning that
+Emacs will only switch execution between threads at well-defined
+times: when Emacs waits for input, during blocking operations related
+to threads (such as mutex locking), or when the current thread
+explicitly yields. Global variables are shared among all threads, but
+a 'let' binding is thread-local. Each thread also has its own current
+buffer and its own match data.
+
+See the chapter "Threads" in the ELisp manual for full documentation
+of these facilities.
-** New command 'comment-line' bound to 'C-x C-;'.
++++
+** The new function 'file-name-case-insensitive-p' tests whether a
+given file is on a case-insensitive filesystem.
-** New and improved facilities for inserting Unicode characters
++++
+** The new user variable 'electric-quote-chars' provides a list
+of curved quotes for 'electric-quote-mode', allowing user to choose
+the types of quotes to be used.
-*** Unicode names entered via 'C-x 8 RET' now use substring completion
-by default.
++++
+** The new user variable 'dired-omit-case-fold' allows the user to
+customize the case-sensitivity of dired-omit-mode. It defaults to
+the same sensitivity as that of the filesystem for the corresponding
+dired buffer.
-*** 'C-x 8' now has shorthands for several chars, such as U+2010
-(HYPHEN), U+2011 (NON-BREAKING HYPHEN), and U+2012 (FIGURE DASH). As
-before, you can type 'C-x 8 C-h' to list shorthands.
++++
+** Emacs now uses double buffering to reduce flicker when editing and
+resizing graphical Emacs frames on the X Window System. This support
+requires the DOUBLE-BUFFER extension, which major X servers have
+supported for many years.
-*** New minor mode 'electric-quote-mode' for using curved quotes as you
-type. See also the new variable 'text-quoting-style'.
+---
+The group 'wp', whose label was "text", is now deprecated.
+Use the new group 'text', which inherits from 'wp', instead.
-** New minor mode 'global-eldoc-mode' is enabled by default.
++++
+** The new function 'call-shell-region' executes a command in an
+inferior shell with the buffer region as input.
-** Emacs now uses "bracketed paste mode" on text terminals that support it.
-Bracketed paste mode causes text terminals to wrap pasted text in special
-escape sequences that allow Emacs to tell the difference between text
-you type and text you paste from other applications. Emacs then
-avoids interpreting each character in the pasted text as it does with
-keyboard input, which results in a paste experience similar to that
-under a window system, and significant performance improvements when
-pasting large amounts of text.
++++
+** The new user option 'shell-command-dont-erase-buffer' controls
+if the output buffer is erased between shell commands; if non-nil,
+the output buffer is not erased; this variable also controls where
+to set the point in the output buffer: beginning of the output,
+end of the buffer or save the point.
+When 'shell-command-dont-erase-buffer' is nil, the default value,
+the behavior of 'shell-command', 'shell-command-on-region' and
+'async-shell-command' is as usual.
-Bracketed paste mode is disabled by default, so Emacs automatically
-enables it at startup if the terminal supports it.
++++
+** The new user option 'mouse-select-region-move-to-beginning'
+controls the position of point when double-clicking mouse-1 on the end
+of a parenthetical grouping or string-delimiter: the default value nil
+keeps point at the end of the region, setting it to non-nil moves
+point to the beginning of the region.
-** Emacs now supports the latest version of the UBA.
-The Emacs implementation of the Unicode Bidirectional Algorithm (UBA)
-was updated to support all the latest additions and changes introduced
-in Unicode Standard versions 6.3, 7.0, and the latest Unicode 8.0.
-This includes full support for directional isolates and the
-Bidirectional Parentheses Algorithm (BPA) specified by these Unicode
-standards.
++++
+** The new user option 'confirm-kill-processes' allows the user to
+skip a confirmation prompt for killing subprocesses when exiting
+Emacs. When set to t (the default), Emacs will prompt for
+confirmation before killing subprocesses on exit, which is the same
+behavior as before.
-** You can access 'mouse-buffer-menu' ('C-down-mouse-1') using 'C-f10'.
+---
+** 'find-library-name' will now fall back on looking at 'load-history'
+to try to locate libraries that have been loaded with an explicit path
+outside 'load-path'.
-** New buffer-local 'electric-pair-local-mode'.
++++
+** Faces in 'minibuffer-prompt-properties' no longer overwrite properties
+in the text in functions like 'read-from-minibuffer', but instead are
+added to the end of the face list. This allows users to say things
+like '(read-from-minibuffer (propertize "Enter something: " 'face 'bold))'.
-** New variable 'fast-but-imprecise-scrolling' inhibits
-fontification during full screen scrolling operations, giving less
-hesitant operation during auto-repeat of 'C-v', 'M-v' at the cost of
-possible inaccuracies in the end position.
++++
+** The new variable 'extended-command-suggest-shorter' has been added
+to control whether to suggest shorter 'M-x' commands or not.
-** New documentation command 'describe-symbol'.
-Works for functions, variables, faces, etc. It is bound to 'C-h o' by
-default.
+---
+** icomplete now respects 'completion-ignored-extensions'.
-** New function 'custom-prompt-customize-unsaved-options' checks for
-unsaved customizations and prompts user to customize (if found). It
-is intended for adding to 'kill-emacs-query-functions'.
++++
+** Non-breaking hyphens are now displayed with the 'nobreak-hyphen'
+face instead of the 'escape-glyph' face.
-** The old 'C-x w' bindings in 'hi-lock-mode' are officially deprecated
-in favor of the global 'M-s h' bindings introduced in Emacs 23.1.
-They'll disappear soon.
++++
+** Approximations to quotes are now displayed with the new 'homoglyph'
+face instead of the 'escape-glyph' face.
-\f
-* Changes in Specialized Modes and Packages in Emacs 25.1
+---
+** 'C-x h' ('mark-whole-buffer') will now avoid marking the prompt
+part of minibuffers.
-** Checkdoc
+---
+** 'find-library' now takes a prefix argument to pop to a different
+window.
-*** New command 'checkdoc-package-keywords' checks if the
-current package keywords are recognized. Set the new option
-'checkdoc-package-keywords-flag' to non-nil to make
-'checkdoc-current-buffer' call this function automatically.
+---
+** 'process-attributes' on Darwin systems now returns more information.
-*** New function 'checkdoc-file' checks for style errors.
-It's meant for use together with 'compile':
-emacs -batch --eval "(checkdoc-file \"subr.el\")"
++++
+** Several accessors for the value returned by 'file-attributes'
+have been added. They are: 'file-attribute-type',
+'file-attribute-link-number', 'file-attribute-user-id',
+'file-attribute-group-id', 'file-attribute-access-time',
+'file-attribute-modification-time',
+'file-attribute-status-change-time', 'file-attribute-size',
+'file-attribute-modes', 'file-attribute-inode-number',
+'file-attribute-device-number' and 'file-attribute-collect'.
-** Desktop
++++
+** The new function 'buffer-hash' computes a fast, non-consing hash of
+a buffer's contents.
-*** The desktop format version has been upgraded from 206 to 208.
-Although Emacs 25.1 can read a version 206 desktop, earlier Emacsen
-cannot read a version 208 desktop. To upgrade your desktop file, you
-must explicitly request the upgrade, by 'C-u M-x desktop-save'. You are
-recommended to do this as soon as you have firmly upgraded to Emacs
-25.1 (or later). Should you ever need to downgrade your desktop file
-to version 206, you can do this with 'C-u C-u M-x desktop-save'.
+---
+** 'fill-paragraph' no longer marks the buffer as changed unless it
+actually changed something.
-*** 'desktop-restore-in-current-display' now defaults to t, not nil.
-That is, Emacs by default now restores frames into the current display.
+---
+** The locale language name 'ca' is now mapped to the language
+environment 'Catalan', which has been added.
-** New function 'bookmark-set-no-overwrite' bound to 'C-x r M'.
-It raises an error if a bookmark of that name already exists,
-unlike 'bookmark-set' which silently updates an existing bookmark.
+---
+** 'align-regexp' has a separate history for its interactive argument.
+'align-regexp' no longer shares its history with all other
+history-less functions that use 'read-string'.
-** Gnus
++++
+** The networking code has been reworked so that it's more
+asynchronous than it was (when specifying :nowait t in
+'make-network-process'). How asynchronous it is varies based on the
+capabilities of the system, but on a typical GNU/Linux system the DNS
+resolution, the connection, and (for TLS streams) the TLS negotiation
+are all done without blocking the main Emacs thread. To get
+asynchronous TLS, the TLS boot parameters have to be passed in (see
+the manual for details).
+
+Certain process oriented functions (like 'process-datagram-address')
+will block until socket setup has been performed. The recommended way
+to deal with asynchronous sockets is to avoid interacting with them
+until they have changed status to "run". This is most easily done
+from a process sentinel.
+
+** 'make-network-process' and 'open-network-stream' sometimes allowed
+:service to be an integer string (e.g., :service "993") and sometimes
+required an integer (e.g., :service 993). This difference has been
+eliminated, and integer strings work everywhere.
+
+** It is possible to disable attempted recovery on fatal signals.
+
+Two new variables support disabling attempts to recover from stack
+overflow and to avoid automatic auto-save when Emacs is delivered a
+fatal signal. 'attempt-stack-overflow-recovery', if set to 'nil',
+will disable attempts to recover from C stack overflows; Emacs will
+then crash as with any other fatal signal.
+'attempt-orderly-shutdown-on-fatal-signal', if set to 'nil', will
+disable attempts to auto-save the session and shut down in an orderly
+fashion when Emacs receives a fatal signal; instead, Emacs will
+terminate immediately. Both variables are non-'nil' by default.
+These variables are for users who would like to avoid the small
+probability of data corruption due to techniques Emacs uses to recover
+in these situations.
-*** New user options 'mm-html-inhibit-images' and 'mm-html-blocked-images'
-now control how mm-* functions fetch and display images in an HTML
-message. Gnus still uses 'gnus-inhibit-images' and 'gnus-blocked-images'
-for that purpose, i.e., binds mm-html- variables with those gnus-
-variables, but other packages do not have to bind gnus- variables now.
++++
+** File local and directory local variables are now initialized each
+time the major mode is set, not just when the file is first visited.
+These local variables will thus not vanish on setting a major mode.
-*** 'mm-inline-text-html-with-images' has been removed.
-Use 'mm-html-inhibit-images' instead. Note that the value is opposite
-in meaning.
++++
+** A second dir-local file (.dir-locals-2.el) is now accepted.
+See the variable 'dir-locals-file-2' for more information.
-** IMAP
++++
+** Connection-local variables can be used to specify local variables
+with a value depending on the connected remote server. For details,
+see the node "Connection Local Variables" in the ELisp manual.
-*** 'imap-ssl-program' has been removed, and imap.el uses the internal
-GnuTLS encryption functions if possible.
+---
+** International domain names (IDNA) are now encoded via the new
+puny.el library, so that one can visit web sites with non-ASCII URLs.
-** JSON
++++
+** The new 'timer-list' command lists all active timers in a buffer,
+where you can cancel them with the 'c' command.
-*** 'json-encode-string' now only escapes the characters it has to.
-Which means that the encoded strings can contain non-ASCII characters.
++++
+** The new function 'read-multiple-choice' prompts for multiple-choice
+questions, with a handy way to display help texts.
-*** 'json-pretty-print' and 'json-pretty-print-buffer' now maintain
-the ordering of object keys by default.
++++
+** 'switch-to-buffer-preserve-window-point' now defaults to t.
-*** New commands 'json-pretty-print-ordered' and
-'json-pretty-print-buffer-ordered' pretty prints JSON objects with
-object keys sorted alphabetically.
++++
+** The new variable 'debugger-stack-frame-as-list' allows displaying
+all call stack frames in a Lisp backtrace buffer as lists. Both
+debug.el and edebug.el have been updated to heed to this variable.
-** Prettify Symbols mode
++++
+** The new variable 'x-ctrl-keysym' has been added to the existing
+roster of X keysyms. It can be used in combination with another
+variable of this kind to swap modifiers in Emacs.
-*** Prettify Symbols mode supports custom composition predicates. By
-overriding the default 'prettify-symbols-compose-predicate', modes can
-specify in which contexts a symbol may be displayed as some Unicode
-character. 'prettify-symbols-default-compose-p' is the default which
-is suitable for most programming languages such as C or Lisp (but not
-(La)TeX).
+---
+** New input methods: 'cyrillic-tuvan', 'polish-prefix'.
-*** Symbols can be unprettified while point is inside them.
-New variable 'prettify-symbols-unprettify-at-point' configures this.
++++
+** File name quoting by adding the prefix "/:" is now possible for the
+local part of a remote file name. Thus, if you have a directory named
+"/~" on the remote host "foo", you can prevent it from being
+substituted by a home directory by writing it as "/foo:/:/~/file".
-** Enhanced xterm support
+\f
+* Editing Changes in Emacs 26.1
-*** The new variable 'xterm-screen-extra-capabilities' for configuring xterm.
-This variable tells Emacs which advanced capabilities are available in
-the xterm terminal emulator used to display Emacs text-mode frames.
-The default is to check each capability, and use it if available.
-(This variable was introduced in Emacs 24.1, but was not announced in
-its NEWS.)
++++
+** New bindings for 'query-replace-map'.
+'undo', undo the last replacement; bound to 'u'.
+'undo-all', undo all replacements; bound to 'U'.
-*** Killing text now also sets the CLIPBOARD/PRIMARY selection
-in the surrounding GUI (using the OSC-52 escape sequence). This only works
-if your xterm supports it and enables the 'allowWindowOps' options (disabled
-by default at least in Debian, for security reasons).
+** 'delete-trailing-whitespace' deletes whitespace after form feed.
+In modes where form feed was treated as a whitespace character,
+'delete-trailing-whitespace' would keep lines containing it unchanged.
+It now deletes whitespace after the last form feed thus behaving the
+same as in modes where the character is not whitespace.
-Similarly, you can yank the CLIPBOARD/PRIMARY selection (using the OSC-52
-escape sequence) if your xterm has the feature enabled but for that you
-additionally need to add 'getSelection' to 'xterm-extra-capabilities'.
+** No more prompt about changed file when the file's content is unchanged.
+Instead of only checking the modification time, Emacs now also checks
+the file's actual content before prompting the user.
-*** 'xterm-mouse-mode' now supports mouse-tracking (if your xterm supports it).
+\f
+* Changes in Specialized Modes and Packages in Emacs 26.1
-** The way to turn on and off 'save-place' mode has changed.
-It is no longer sufficient to load the saveplace library and set
-'save-place' non-nil. Instead, use the two new minor modes:
-'save-place-mode' turns on saving last place in every file, and
-'save-place-local-mode' does that only for the file in whose buffer it
-is invoked. The 'save-place' variable is now an obsolete alias for
-'save-place-mode', which replaces it, and 'toggle-save-place' is an
-obsolete alias for the new 'save-place-local-mode' command.
+** TeX: Add luatex and xetex as alternatives to pdftex
-** ERC
+** Electric-Buffer-menu
-*** ERC can now hide message types by network or channel.
-'erc-hide-list' will hide all messages of the specified type, while
-'erc-network-hide-list' and 'erc-channel-hide-list' will only hide the
-specified message types for the respective specified targets.
++++
+*** Key 'U' is bound to 'Buffer-menu-unmark-all' and key 'M-DEL' is
+bound to 'Buffer-menu-unmark-all-buffers'.
-*** Reconnection is now asynchronous.
+** bs
-*** Nick completion is now case-insensitive again after inadvertently
-being made case-sensitive in Emacs 24.2.
+---
+*** Two new commands 'bs-unmark-all', bound to 'U', and
+'bs-unmark-previous', bound to <backspace>.
-** MPC
+** Buffer-menu
-*** New commands, key binds, and menu items.
++++
+*** Two new commands 'Buffer-menu-unmark-all', bound to 'U' and
+'Buffer-menu-unmark-all-buffers', bound to 'M-DEL'.
-**** '<' and '>' for navigating previous and next tracks in playlist
+** Ibuffer
-**** New play/pause command 'mpc-toggle-play' bound to 's'
+---
+*** New filter commands `ibuffer-filter-by-basename',
+`ibuffer-filter-by-file-extension', `ibuffer-filter-by-directory',
+`ibuffer-filter-by-starred-name', `ibuffer-filter-by-modified'
+and `ibuffer-filter-by-visiting-file'; bound respectively
+to '/b', '/.', '//', '/*', '/i' and '/v'.
-**** 'g' bound to new command 'mpc-seek-current' will navigate current
-track.
+---
+*** Two new commands 'ibuffer-filter-chosen-by-completion'
+and `ibuffer-and-filter', the second bound to '/&'.
-**** New commands 'mpc-toggle-{consume,repeat,single,shuffle}' for
-toggling playback modes.
+---
+*** The commands `ibuffer-pop-filter', `ibuffer-pop-filter-group',
+`ibuffer-or-filter' and `ibuffer-filter-disable' have the alternative
+bindings '/<up>', '/S-<up>', '/|' and '/DEL', respectively.
-*** Now supports connecting to a UNIX domain socket.
+---
+*** The data format specifying filters has been extended to allow
+explicit logical 'and', and a more flexible form for logical 'not'.
+See 'ibuffer-filtering-qualifiers' doc string for full details.
-*** Looks at more image file names to use as album art.
-Case-insensitively tries for .folder.png (freedesktop) and folder.jpg
-(XP) in addition to cover.jpg.
+---
+*** A new command 'ibuffer-copy-buffername-as-kill'; bound
+to 'B'.
-*** Searches in more locations for MPD configuration files.
-MPD supports the XDG base directory specification since version 0.17.6.
+---
+*** New command 'ibuffer-change-marks'; bound to '* c'.
-** Midnight-mode
+---
+*** A new command 'ibuffer-mark-by-locked' to mark
+all locked buffers; bound to '% L'.
-*** 'midnight-mode' is now a proper minor mode.
+---
+*** A new option 'ibuffer-locked-char' to indicate
+locked buffers; Ibuffer shows a new column displaying
+'ibuffer-locked-char' for locked buffers.
-*** clean-buffer-*-regexps can now specify buffers via predicate functions.
+---
+*** A new command 'ibuffer-unmark-all-marks' to unmark
+all buffers without asking confirmation; bound to
+'U'; 'ibuffer-do-replace-regexp' bound to 'r'.
-** package.el
+---
+*** A new command 'ibuffer-mark-by-content-regexp' to mark buffers
+whose content matches a regexp; bound to '% g'.
-*** New "external" package status.
-An external package is any installed package that's not built-in and
-not from 'package-user-dir', which usually means it's from an entry in
-'package-directory-list'. They are treated much like built-in
-packages, in that they cannot be deleted through the package menu and
-are not considered for upgrades.
+---
+*** Two new options 'ibuffer-never-search-content-name' and
+'ibuffer-never-search-content-mode' used by
+'ibuffer-mark-by-content-regexp'.
-The effect is that a user can manually place a specific version of a
-package inside 'package-directory-list' and the package menu will
-always respect that.
+** Browse-URL
-*** If a package is available on multiple archives and one has higher
-priority (as per 'package-archive-priorities') only that one is
-listed. This can be configured with 'package-menu-hide-low-priority'.
+*** Support for opening links to man pages in Man or WoMan mode.
-*** 'package-menu-toggle-hiding' now toggles the hiding of packages.
-This includes the above-mentioned low-priority packages, as well as
-available packages whose version is lower than the currently installed
-version (which were previously impossible to display).
-This allows users to downgrade a package if a lower version is
-available.
+** Comint
-*** When filtering the package menu, keywords starting with "arc:" or
-"status:" represent package archive or status, respectively, instead
-of actual keywords.
+---
+*** New user option 'comint-move-point-for-matching-input' to control
+where to place point after C-c M-r and C-c M-s.
-*** Most functions which involve downloading information now take an
-ASYNC argument. If it is non-nil, package.el performs the download(s)
-asynchronously.
+** Compilation mode
-*** New variable 'package-menu-async' controls whether the
-package-menu uses asynchronous downloads.
+---
+*** Messages from CMake are now recognized.
-*** 'package-install-from-buffer' and 'package-install-file' work on directories.
-This follows the same rules as installing from a .tar file, except the
--pkg file is optional.
+** Dired
-*** Packages which are dependencies of other packages cannot be deleted.
-The FORCE argument to 'package-delete' overrides this.
++++
+*** A new option 'dired-always-read-filesystem' default to nil.
+If non-nil, buffers visiting files are reverted before search them;
+for instance, in 'dired-mark-files-containing-regexp' a non-nil value
+of this option means the file is revisited in a temporary buffer;
+this temporary buffer is the actual buffer searched: the original buffer
+visiting the file is not modified.
-*** New custom variable 'package-selected-packages' tracks packages
-which were installed by the user (as opposed to installed as
-dependencies). This variable can also be manually customized.
++++
+*** In wdired, when editing files to contain slash characters,
+the resulting directories are automatically created. Whether to do
+this is controlled by the 'wdired-create-parent-directories' variable.
-*** New command 'package-install-selected-packages' installs all
-packages from 'package-selected-packages' which are currently missing.
++++
+*** 'W' is now bound to 'browse-url-of-dired-file', and is useful for
+viewing HTML files and the like.
-*** 'package-install' function now takes a DONT-SELECT argument. If
-this function is called interactively or if DONT-SELECT is nil, add the
-package being installed to 'package-selected-packages'.
+** Edebug
-*** New command 'package-autoremove' removes all packages which were
-installed strictly as dependencies but are no longer needed.
+*** Edebug can be prevented from pausing 1 second after reaching a
+breakpoint (e.g. with "f" and "o") by customizing the new option
+'edebug-sit-on-break'.
-** Shell
+** Eshell
-When you invoke 'shell' interactively, the '*shell*' buffer will now
-display in a new window. However, you can customize this behavior via
-the 'display-buffer-alist' variable. For example, to get
-the old behavior -- '*shell*' buffer displays in current window -- use
-(add-to-list 'display-buffer-alist
- '("^\\*shell\\*$" . (display-buffer-same-window))).
-
-** EIEIO
-*** The ':protection' slot option is not obeyed any more.
-*** The 'newname' argument to constructors is optional&deprecated.
-If you need your objects to be named, do it by inheriting from 'eieio-named'.
-*** The <class>-list-p and <class>-child-p functions are declared obsolete.
-*** The <class> variables are declared obsolete.
-*** The <initarg> variables are declared obsolete.
-*** defgeneric and defmethod are declared obsolete.
-Use the equivalent facilities from cl-generic.el instead.
-*** 'constructor' is now an obsolete alias for 'make-instance'.
-*** 'pcase' accepts a new UPattern 'eieio'.
-
-** ido
-
-*** New command 'ido-bury-buffer-at-head' bound to 'C-S-b'.
-Bury the buffer at the head of 'ido-matches', analogous to how 'C-k'
-kills the buffer at head.
-
-*** A prefix argument to 'ido-restrict-to-matches' will reverse its
-meaning, and the list is restricted to those elements that do not
-match the current input.
-
-** Minibuffer
-
-*** You can use <UP> and <DOWN> arrow keys to move through history by lines.
-The new commands 'next-line-or-history-element' and
-'previous-line-or-history-element', bound to <UP> and <DOWN> in the
-minibuffer, allow by-line movement through minibuffer history,
-similarly to an ordinary buffer. Only when point moves over
-the bottom/top of the minibuffer it goes to the next/previous history
-element. 'M-p' and 'M-n' still move directly to previous/next history
-item as before.
-
-** Search and Replace
-
-*** 'isearch' and 'query-replace' can now perform character folding in matches.
-This is analogous to case folding, but instead of disregarding case
-variants, it disregards wider classes of distinctions between similar
-characters. (Case folding is a special case of character folding.)
-This means many characters in the search string will match entire
-groups of characters instead of just themselves.
-
-For instance, the ASCII double quote character " will match all
-variants of double quotes, and the letter 'a' will match all of its
-accented cousins, even those composed of multiple characters, as well
-as many other symbols like U+249C (PARENTHESIZED LATIN SMALL LETTER
-A).
-
-Character folding is enabled by customizing 'search-default-mode' to
-the value 'char-fold-to-regexp'. You can also toggle character
-folding in the middle of a search by typing 'M-s ''.
-
-'query-replace' honors character folding if the new variable
-'replace-char-fold' is customized to a non-nil value.
-
-*** New user option 'search-default-mode'.
-This option specifies the default mode for Isearch. The default
-value, nil specifies that Isearch does literal searches (however,
-'case-fold-search' and 'isearch-lax-whitespace' may still be applied,
-as in previous Emacs versions).
-
-*** New function 'char-fold-to-regexp' can be used
-by searching commands to produce a regexp matching anything that
-char-folds into STRING.
-
-*** The new 'M-s M-w' key binding uses eww to search the web for the
-text in the region. The search engine to use for this is specified by
-the customizable variable 'eww-search-prefix'.
-
-*** 'query-replace' history is enhanced.
-When 'query-replace' reads the FROM string from the minibuffer, typing
-'M-p' will now show previous replacements as "FROM SEP TO", where FROM
-and TO are the original text and its replacement, and SEP is an arrow
-string defined by the new variable 'query-replace-from-to-separator'.
-To select a prior replacement, type 'M-p' until the desired
-replacement appears in the minibuffer, and then exit the minibuffer by
-typing RET.
-
-** Calc
-*** If 'quick-calc' is called with a prefix argument, insert the
-result of the calculation into the current buffer.
-
-** In Edebug, you can now set the initial mode with 'C-x C-a C-m'.
-With this you can tell Edebug not to stop at the start of the first
-instrumented function.
-
-** ElDoc
-
-*** New minor mode 'global-eldoc-mode'.
-It is turned on by default, and affects '*scratch*' and other buffers
-whose major mode supports Emacs Lisp.
-
-*** 'eldoc-documentation-function' now defaults to 'ignore'.
-
-*** 'describe-char-eldoc' displays information about character at point,
-and can be used as a default value of 'eldoc-documentation-function'. It is
-useful when, for example, one needs to distinguish various spaces - e.g.,
-U+00A0 (NO-BREAK SPACE), U+2002 (EN SPACE), and U+2009 (THIN SPACE) - while
-using mono-spaced font.
+*** 'eshell-input-filter's value is now a named function
+'eshell-input-filter-default', and has a new custom option
+'eshell-input-filter-initial-space' to ignore adding commands prefixed
+with blank space to eshell history.
** eww