]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge from origin/emacs-25
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 1 Jan 2017 09:02:47 +0000 (01:02 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 1 Jan 2017 09:02:47 +0000 (01:02 -0800)
697167b ; Improve wording of previous change in variables.texi
d7973e8 Document 'default-toplevel-value' and 'set-default-toplevel-v...
8b71826 Don't modify minibuffer variables globally
5b5e036 Revert to pre-25.1 behavior in ffap
19994a1 * lisp/ffap.el: Fix obsolete comment referencing ffap-bug.
3ace730 Attempt to fix 64-bit AIX build
f69bd79 Clarify usage of 'ediff-cleanup-hook' (Bug#24675)
c04ac8a Document that variable binding order is unspecified
272554a * lisp/desktop.el (desktop-buffers-not-to-save): Doc fix.
08de101 Fix M-x hints on Mac port
86a297a Work around reporting a dpi change in apply_xft_settings
cf1f985 ; lisp/skeleton.el (skeleton-insert): Fix typo in last change
9e1209d Amend the version number of CC Mode 5.33 -> 5.32.99.  Don't m...
88cdf14 Improve skeleton docstrings

1  2 
doc/lispref/variables.texi
doc/misc/cl.texi
etc/NEWS
lisp/desktop.el
lisp/ffap.el
lisp/files.el
lisp/progmodes/cc-defs.el
lisp/simple.el

Simple merge
Simple merge
diff --cc etc/NEWS
index e2ada7c1be33232f5787ad1bb6faa8de45334560,38975a7fa1e56a9b5319a3ff749af1077b6607ab..5eb295ff02e10d85307dc623cfe2947511a0bb75
+++ b/etc/NEWS
@@@ -15,422 -15,618 +15,429 @@@ NEWS.19, NEWS.18, and NEWS.1-17 for cha
  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
  
diff --cc lisp/desktop.el
Simple merge
diff --cc lisp/ffap.el
Simple merge
diff --cc lisp/files.el
Simple merge
Simple merge
diff --cc lisp/simple.el
Simple merge