emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-26 a9b7297 2/2: Merge branch 'emacs-26' of git.sv.gn


From: Kenichi Handa
Subject: [Emacs-diffs] emacs-26 a9b7297 2/2: Merge branch 'emacs-26' of git.sv.gnu.org:/srv/git/emacs into emacs-26
Date: Sat, 7 Oct 2017 22:58:25 -0400 (EDT)

branch: emacs-26
commit a9b72976deec9b266950865581a626ec8f7b74f4
Merge: 64baaff c194fb6
Author: K. Handa <address@hidden>
Commit: K. Handa <address@hidden>

    Merge branch 'emacs-26' of git.sv.gnu.org:/srv/git/emacs into emacs-26
---
 ChangeLog.3                             | 28146 +++++++++++++++++++++++++++++-
 Makefile.in                             |     2 +-
 admin/authors.el                        |     7 +-
 doc/misc/flymake.texi                   |    12 +-
 doc/misc/org.texi                       |    19 +-
 etc/NEWS                                |    18 +-
 etc/refcards/orgcard.tex                |     2 +-
 lisp/emacs-lisp/cl-generic.el           |    13 +-
 lisp/emacs-lisp/cl-macs.el              |     6 +-
 lisp/emacs-lisp/edebug.el               |    27 +-
 lisp/emacs-lisp/generator.el            |     9 +-
 lisp/emacs-lisp/pcase.el                |     2 +-
 lisp/emacs-lisp/{subr-x.el => rmc.el}   |   233 +-
 lisp/emacs-lisp/subr-x.el               |   170 -
 lisp/emacs-lisp/tabulated-list.el       |    11 +-
 lisp/frame.el                           |     6 +-
 lisp/gnus/message.el                    |     3 +-
 lisp/net/nsm.el                         |     2 +-
 lisp/net/shr.el                         |    27 +-
 lisp/net/tramp-gvfs.el                  |    37 +-
 lisp/org/ob-hledger.el                  |     2 +-
 lisp/org/ob-lob.el                      |    14 +-
 lisp/org/org-clock.el                   |     1 +
 lisp/org/org-colview.el                 |     3 +-
 lisp/org/org-table.el                   |     8 +-
 lisp/org/org-version.el                 |     4 +-
 lisp/org/org.el                         |    28 +-
 lisp/org/ox-html.el                     |    23 +-
 lisp/org/ox-publish.el                  |     4 +-
 lisp/progmodes/cc-fonts.el              |   149 +-
 lisp/progmodes/cc-langs.el              |    11 +
 lisp/progmodes/elisp-mode.el            |   120 +-
 lisp/progmodes/flymake-proc.el          |     7 +-
 lisp/progmodes/flymake.el               |    86 +-
 lisp/progmodes/python.el                |     8 +-
 lisp/ses.el                             |     3 +-
 lisp/subr.el                            |     3 +-
 lisp/xt-mouse.el                        |     6 +-
 src/dispnew.c                           |    22 +-
 src/editfns.c                           |    14 +-
 src/gnutls.c                            |     1 -
 src/nsterm.m                            |     3 +
 src/process.c                           |     1 -
 src/sysdep.c                            |    13 +-
 test/lisp/emacs-lisp/generator-tests.el |    10 +
 45 files changed, 28543 insertions(+), 753 deletions(-)

diff --git a/ChangeLog.3 b/ChangeLog.3
index c65cf94..33d04f7 100644
--- a/ChangeLog.3
+++ b/ChangeLog.3
@@ -1,3 +1,28147 @@
+2017-10-05  Nicolas Petton  <address@hidden>
+
+       Update authors.el
+
+       * admin/authors.el (authors-renamed-files-alist)
+       (authors-valid-file-names): Additions.
+
+2017-10-05  Gemini Lasswell  <address@hidden>
+
+       Fix dynamic binding wrapper in iter-lambda (bug#25965)
+
+       * lisp/emacs-lisp/generator.el (cps--make-dynamic-binding-wrapper):
+       Remove extra evaluation of form.
+       * test/lisp/emacs-lisp/generator-tests.el
+       (cps-iter-lambda-with-dynamic-binding): New test.
+
+2017-10-05  Rasmus  <address@hidden>
+
+       Update Org to v9.1.2
+
+       Please note this is a bugfix release.  See etc/ORG-NEWS for details.
+
+2017-10-05  Alan Mackenzie  <address@hidden>
+
+       Fix irregularities with CC Mode fontification, particularly with "known 
types"
+
+       * lisp/progmodes/cc-fonts.el (c-font-lock-declarators): Introduce a new
+       optional parameter, template-class.  In "class <X = Y>", fontify "Y" as 
a
+       type.
+       (c-font-lock-single-decl): New variable template-class, set to non-nil 
when we
+       have a construct like the above.  Pass this as argument to
+       c-font-lock-declarators.
+       (c-font-lock-cut-off-declarators): Check more rigorously that a 
declaration
+       being processed starts before the function's starting position.
+       (c-complex-decl-matchers): Remove the redundant clause which fontified 
"types
+       preceded by, e.g., "struct"".
+
+       * lisp/progmodes/cc-langs.el (c-template-typename-kwds)
+       (c-template-typename-key): New lang defconsts and defvar.
+
+2017-10-05  Eli Zaretskii  <address@hidden>
+
+       Fix breakage due to recent change in tabulated-list-print-entry
+
+       * lisp/emacs-lisp/tabulated-list.el (tabulated-list-printer):
+       Update the doc string.
+       (tabulated-list-print-entry): Revert to using only 2 arguments.
+       Update the doc string.
+       (tabulated-list-entry-lnum-width): New defvar.
+       (tabulated-list-print): Compute the width of line-number display
+       once, then store that value in tabulated-list-entry-lnum-width,
+       for tabulated-list-printer to use.  (Bug#28704)
+
+2017-10-05  Gemini Lasswell  <address@hidden>
+
+       * lisp/ses.el (ses-print-cell): Fix alignment of text cells.  
(Bug#27653)
+
+2017-10-05  Alexander Gramiak  <address@hidden>
+
+       Set xterm click count to 1 even with no last click
+
+       * lisp/xt-mouse.el (xterm-mouse-event): Move the check for
+       the last click so that click-count is initialized properly.
+       Handle the value of t for double-click-time.
+       (Bug#28658)
+
+2017-10-05  Vasilij Schneidermann  <address@hidden>
+
+       Support indirection for all shr-tag-* calls
+
+       The 'shr-external-rendering-functions' variable was previously only
+       honored in the shr-descend function, now all direct calls to the
+       shr-tag-* functions have been replaced by a call to
+       'shr-indirect-call' which tries using an alternative rendering
+       function first.
+
+       * lisp/net/shr.el (shr-indirect-call): New helper function.
+       (shr-descend, shr-tag-object, shr-tag-video):
+       (shr-collect-extra-strings-in-table): Fix callers to call via
+       shr-indirect-call.  (Bug#28402)
+
+2017-10-05  Eli Zaretskii  <address@hidden>
+
+       Speed up list-packages when 'visual' line numbers are displayed
+
+       * lisp/emacs-lisp/tabulated-list.el (tabulated-list-printer):
+       Update the doc string.
+       (tabulated-list-print-entry): Accept an additional optional
+       argument INDENT.  Update the doc string.
+       (tabulated-list-print): Compute the width of line-number display
+       once, then call tabulated-list-printer with that value as 3rd
+       argument.  (Bug#28704)
+
+2017-10-05  João Távora  <address@hidden>
+
+       Misc. minor adjustments to Flymake
+
+       - Add a half-decent minor-mode menu;
+       - Fix "waiting for backends" mode line message;
+       - Adjust the flymake-diag-region API;
+       - Autoload the flymake-log macro;
+       - Auto-disable the legacy backend in more situations;
+       - Fix a couple of warnings in legacy backend.
+
+       * lisp/progmodes/flymake-proc.el
+       (flymake-proc--diagnostics-for-pattern): Use new
+       flymake-diag-region.
+
+       * lisp/progmodes/flymake-proc.el
+       (flymake-proc-legacy-flymake): Do error when no
+       buffer-file-name or not writable.
+       (flymake-proc-legacy-flymake)
+       (flymake-proc-simple-cleanup): Don't reference flymake-last-change-time
+
+       * lisp/progmodes/flymake.el (flymake-diag-region):
+       Autoload.  Take buffer as first argument.
+
+       * lisp/progmodes/flymake.el (flymake-switch-to-log-buffer):
+       New command.
+       (flymake-menu): Add a simple menu.
+       (flymake--mode-line-format): Use menu.  Fix message.  Switch to
+       log buffer when clicking exceptional warnings.
+
+2017-10-05  Johan Bockgård  <address@hidden>
+
+       Fix search for ~/.Xdefaults-HOSTNAME
+
+       * src/xrdb.c (get_environ_db): Fix typo when handling
+       ~/.Xdefaults-HOSTNAME (Bug#28708).
+
+2017-10-04  Paul Eggert  <address@hidden>
+
+       Speed up (format "%s" STRING) and the like
+
+       Although the Lisp manual said that ‘format’ returns a
+       newly-allocated string, this was not true for a few cases like
+       (format "%s" ""), and fixing the documentation to allow reuse of
+       arguments lets us improve performance in common cases like
+       (format "foo") and (format "%s" "foo") (Bug#28625).
+       * doc/lispref/strings.texi (Formatting Strings):
+       * etc/NEWS:
+       Say that the result of ‘format’ might not be newly allocated.
+       * src/callint.c (Fcall_interactively):
+       * src/dbusbind.c (XD_OBJECT_TO_STRING):
+       * src/editfns.c (Fmessage, Fmessage_box):
+       * src/xdisp.c (vadd_to_log, Ftrace_to_stderr):
+       Just use Fformat or Fformat_message, as that’s simpler and no
+       longer makes unnecessary copies.
+       * src/editfns.c (styled_format): Remove last argument, as it
+       is no longer needed: all callers now want it to behave as if it
+       were true.  All remaining callers changed.  Make this function
+       static again.  Simplify the function now that we no longer
+       need to worry about whether the optimization is allowed.
+
+2017-10-04  Alan Mackenzie  <address@hidden>
+
+       Fontify untyped function declarations in C Mode correctly.
+
+       Also correct two bugs where deleting WS at a BOL could leave an untyped
+       function declaration unfontified.
+
+       * lisp/progmodes/cc-engine.el (c-find-decl-spots): Don't set the flag
+       "top-level" when we're in a macro.
+       (c-forward-decl-or-cast-1): Recognize top-level "foo(bar)" or "foo()" 
in C
+       Mode as a implicitly typed function declaration.
+       (c-just-after-func-arglist-p): Don't get confused by "defined (foo)" 
inside a
+       macro.  It's not a function plus arglist.
+
+       * lisp/progmodes/cc-langs.el (c-cpp-expr-functions-key): New defconst 
and
+       defvar.
+
+       * lisp/progmodes/cc-mode.el (c-fl-decl-end): After 
c-forward-declarator, move
+       over any following parenthesis expression (i.e. parameter list).
+       (c-change-expand-fl-region): When c-new-END is at a BOL, include that 
line in
+       the returned region, to cope with deletions at column 0.
+
+2017-10-04  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-tramp-file-p): Use `string-match-p'.
+
+       Reported by Clément Pit-Claudel <address@hidden>.
+
+2017-10-04  Eli Zaretskii  <address@hidden>
+
+       Avoid crashes on C-g when several threads wait for input
+
+       * src/thread.h (m_getcjmp): New member of 'struct thread_state'.
+       (getcjmp): Define to current thread's 'm_getcjmp'.
+       * src/thread.c (maybe_reacquire_global_lock): Switch to main
+       thread, since this is called from a SIGINT handler, which always
+       runs in the context of the main thread.
+       * src/lisp.h (sys_jmp_buf, sys_setjmp, sys_longjmp): Move the
+       definitions before thread.h is included, as thread.h now uses
+       sys_jmp_buf.
+       * src/keyboard.c (getcjmp): Remove declaration.
+       (read_char): Don't call maybe_reacquire_global_lock here.
+       (handle_interrupt): Call maybe_reacquire_global_lock here, if
+       invoked from the SIGINT handler, to make sure
+       quit_throw_to_read_char runs with main thread's Lisp bindings and
+       uses the main thread's jmp_buf buffer.  (Bug#28630)
+
+2017-10-04  Paul Eggert  <address@hidden>
+
+       Warn if --without-pop is now the default
+
+       * configure.ac (with_pop): Set to no-by-default if defaulting to "no".
+       Warn about the change if defaulting to "no".  Update URLs.
+
+2017-10-04  Paul Eggert  <address@hidden>
+
+       --with-pop is now the default only on MS-Windows
+
+       Problem reported by N. Jackson (Bug#28597).
+       This improves an earlier suggestion by Robert Pluim (Bug#28597#47).
+       * INSTALL, configure.ac, etc/NEWS:
+       Make --with-pop the default only on native MS-Windows.
+
+2017-10-03  Michael Albinus  <address@hidden>
+
+       Add support for `file-system-info' in Tramp
+
+       * lisp/net/tramp.el (tramp-file-name-for-operation):
+       Add `file-system-info'.
+
+       * lisp/net/tramp-adb.el (tramp-adb-handle-file-system-info): New defun.
+       (tramp-adb-file-name-handler-alist): Use it.
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-file-system-attributes)
+       (tramp-gvfs-file-system-attributes-regexp): New defconst.
+       (tramp-gvfs-handle-file-system-info): New defun.
+       (tramp-gvfs-file-name-handler-alist): Use it.
+       (tramp-gvfs-get-directory-attributes): Fix property name.
+       (tramp-gvfs-get-root-attributes): Support also file system attributes.
+
+       * lisp/net/tramp-sh.el (tramp-sh-handle-file-system-info): New defun.
+       (tramp-sh-file-name-handler-alist): Use it.
+       (tramp-sh-handle-insert-directory): Insert size information.
+       (tramp-get-remote-df): New defun.
+
+       * lisp/net/tramp-smb.el (tramp-smb-handle-file-system-info): New defun.
+       (tramp-smb-file-name-handler-alist): Use it.
+       (tramp-smb-handle-insert-directory): Insert size information.
+
+       * test/lisp/net/tramp-tests.el (tramp-test37-file-system-info):
+       New test.
+       (tramp-test38-asynchronous-requests)
+       (tramp-test39-recursive-load, tramp-test40-remote-load-path)
+       (tramp-test41-unload): Rename.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Merge branch 'scratch/flymake-refactor-clean-for-emacs-26' into emacs-26
+
+2017-10-03  João Távora  <address@hidden>
+
+       Start rewriting Flymake manual
+
+       Missing the parts pertaining to the new customization API.
+
+       * doc/misc/flymake.texi (Overview of Flymake): Rewrite a bit.
+       (Installing Flymake): Delete most of this.
+       (Running the syntax check): Mention flymake-start.
+       (Navigating to error lines): Rewrite.
+       (Viewing error messages): Commente out.
+       (Syntax check statuses, Troubleshooting): Rewrite a bit.
+       (Customizable variables): New section under "Using
+       Flymake".  Don't mention any proc variables here.
+       (Configuring Flymake): Delete
+       (Proc backend): New chapter
+       (Proc customization variables): New chapter.
+
+       * doc/misc/flymake.texi (Overview of Flymake): Rewrite a bit.
+       (Installing Flymake): Mostly scratch. Flymake comes with Emacs.
+       (Running the syntax check): Simplify.
+       (Viewing error messages): Dekete,
+       (Syntax check statuses): Rewrite.
+       (Troubleshooting): Simplify.
+       (Customizable variables): Rewrite.
+       (Extending Flymake): New chapter, empty for now.
+       (The legacy Proc backend): New chapter.
+       (Proc customizable variables)
+       (Adding support for a new syntax check tool)
+       (Implementation overview)
+       (Making a temporary copy)
+       (Locating a master file)
+       (Getting the include directories)
+       (Locating the buildfile)
+       (Starting the syntax check process)
+       (Parsing the output)
+       (Interaction with other modes)
+       (Example---Configuring a tool called via make)
+       (Example---Configuring a tool called directly): Rewrite a bit.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Minimal tweak as an attempt to future-proof Flymake API
+
+       Discussed with Stefan that this should allow Flymake to request more
+       from backends in the future, while also allowing backends to report
+       more accurately.
+
+       * lisp/progmodes/elisp-mode.el (elisp-flymake-checkdoc)
+       (elisp-flymake-byte-compile): Adjust to new API.
+
+       * lisp/progmodes/flymake-proc.el ()
+       (flymake-proc-legacy-flymake): Adjust to new API.
+
+       * lisp/progmodes/flymake.el (flymake-diagnostic-functions):
+       Review API again.
+       (flymake--handle-report): Allow other keys.  Change ACTION to
+       REPORT-ACTION.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Integrate Flymake elisp checkers into elisp-mode.el directly
+
+       * lisp/progmodes/elisp-mode.el (emacs-lisp-mode): Use
+       elisp-flymake-checkdoc and elisp-flymake-byte-compile.
+       (elisp-flymake--checkdoc-1, elisp-flymake-checkdoc)
+       (elisp-flymake--byte-compile-done)
+       (elisp-flymake--byte-compile-process)
+       (elisp-flymake-byte-compile): Rename from flymake-elisp
+       counterparts in deleted flymake-elisp.el
+       (elisp-flymake--batch-compile-for-flymake): New helper.
+       (checkdoc-create-error-function)
+       (checkdoc-autofix-flag)
+       (checkdoc-generate-compile-warnings-flag)
+       (checkdoc-diagnostic-buffer): Forward declare.
+
+       * lisp/progmodes/flymake-elisp.el: Delete.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Hook Flymake onto proper checkdoc and byte-compile interfaces
+
+       The interfaces in bytecomp.el and checkdoc.el are mostly boilerplate,
+       with little knowledge of actual internals or thought given to the
+       usefulness of said interfaces in contexts other than Flymake's.
+
+       * lisp/emacs-lisp/bytecomp.el
+       (byte-compile-log-warning-function): New variable.
+       (byte-compile-log-warning): Use it.
+       (byte-compile--log-warning-for-byte-compile): New function.
+
+       * lisp/emacs-lisp/checkdoc.el
+       (checkdoc-create-error-function): New variable.
+       (checkdoc-create-error): Use it.
+       (checkdoc--create-error-for-checkdoc): New function.xo
+
+       * lisp/progmodes/flymake-elisp.el (flymake-elisp--checkdoc-1):
+       Use checkdoc-create-error-function.
+       (flymake-elisp--batch-byte-compile): Use
+       byte-compile-log-warning-function.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Tweak Flymake autoloads and dependencies
+
+       * lisp/progmodes/elisp-mode.el (emacs-lisp-mode): Add to
+       flymake-diagnostic-functions here.
+
+       * lisp/progmodes/flymake-elisp.el[top]: Don't add to
+       emacs-lisp-mode-hook.  Don't call flymake-elisp-setup-backends in
+       every buffer.  (flymake-elisp-checkdoc) (flymake-elisp-byte-compile):
+       Autoload.  (flymake-elisp-setup-backends): Remove.
+
+       * lisp/progmodes/flymake.el: Add some top-level comments.
+       (flymake-make-diagnostic)
+       (flymake-mode, flymake-mode-on, flymake-mode-off): Add autoloads
+
+       Where to fixup this shit?
+
+2017-10-03  João Távora  <address@hidden>
+
+       Capitalize "Flymake" in docstrings and comments
+
+       * lisp/progmodes/flymake-elisp.el (flymake-elisp-checkdoc)
+       (flymake-elisp-setup-backends): Capitalize "Flymake"
+
+       * lisp/progmodes/flymake-proc.el:
+       (flymake-proc-reformat-err-line-patterns-from-compile-el)
+       (flymake-proc--panic, flymake-proc-legacy-flymake)
+       (flymake-start-syntax-check, flymake-proc-compile)
+       (define-obsolete-variable-alias): Capitalize "Flymake"
+
+       * lisp/progmodes/flymake.el (flymake-fringe-indicator-position)
+       (flymake-make-diagnostic, flymake-delete-own-overlays)
+       (flymake-diagnostic-functions)
+       (flymake-diagnostic-types-alist, flymake-is-running)
+       (flymake-make-report-fn, flymake-mode-on, flymake-mode-off)
+       (flymake-goto-next-error, flymake-goto-prev-error): Capitalize "Flymake"
+
+2017-10-03  João Távora  <address@hidden>
+
+       Flymake backends can report multiple times per check
+
+       Rewrote a significant part of the Flymake backend API.  Flymake now
+       ignores the return value of backend functions: a function can either
+       returns or errors.  If it doesn't error, a backend is no longer
+       constrained to call REPORT-FN exactly once.  It may do so any number
+       of times, cumulatively reporting diagnostics.  Flymake keeps track of
+       outdated REPORT-FN instances and disconsiders obsolete reports.
+       Backends should avoid reporting obsolete data by cancelling any
+       ongoing processing at every renewed call to the backend function.
+
+       Consolidated flymake.el internal data structures to require less
+       buffer-local variables.  Adjusted Flymake's mode-line indicator to the
+       new semantics.
+
+       Adapted and simplified the implementation of elisp and legacy
+       backends, fixing potential race conditions when calling backends in
+       rapid succession.
+
+       Added a new test for a backend that calls REPORT-FN multiple
+       times.  Simplify test infrastructure.
+
+       * lisp/progmodes/flymake-elisp.el (flymake-elisp-checkdoc)
+       (flymake-elisp-byte-compile): Error instead of returning nil
+       if not in emacs-lisp-mode.
+       (flymake-elisp--byte-compile-process): New buffer-local variable.
+       (flymake-elisp-byte-compile): Mark (and kill) previous process
+       obsolete process before starting a new one.  Don't report if
+       obsolete process.
+
+       * lisp/progmodes/flymake-proc.el
+       (flymake-proc--current-process): New buffer-local variable.
+       (flymake-proc--processes): Remove.
+       (flymake-proc--process-filter): Don't bind
+       flymake-proc--report-fn.
+       (flymake-proc--process-sentinel): Rewrite.  Don't report if
+       obsolete process.
+       (flymake-proc-legacy-flymake): Rewrite.  Mark (and kill)
+       previous process obsolete process before starting a new
+       one.  Integrate flymake-proc--start-syntax-check-process
+       helper.
+       (flymake-proc--start-syntax-check-process): Delete.
+       (flymake-proc-stop-all-syntax-checks): Don't use
+       flymake-proc--processes, iterate buffers.
+       (flymake-proc-compile):
+
+       * lisp/progmodes/flymake.el (subr-x): Require it
+       explicitly.
+       (flymake-diagnostic-functions): Reword docstring.
+       (flymake--running-backends, flymake--disabled-backends)
+       (flymake--diagnostics-table): Delete.
+       (flymake--backend-state): New buffer-local variable and new defstruct.
+       (flymake--with-backend-state, flymake--collect)
+       (flymake-running-backends, flymake-disabled-backends)
+       (flymake-reporting-backends): New helpers.
+       (flymake-is-running): Use flymake-running-backends.
+       (flymake--handle-report): Rewrite.
+       (flymake-make-report-fn): Ensure REPORT-FN runs in the correct
+       buffer or not at all.
+       (flymake--disable-backend, flymake--run-backend): Rewrite.
+       (flymake-start): Rewrite.
+       (flymake-mode): Set flymake--backend-state.
+       (flymake--mode-line-format): Rewrite.
+
+       * test/lisp/progmodes/flymake-tests.el
+       (flymake-tests--wait-for-backends): New helper.
+       (flymake-tests--call-with-fixture): Use it.
+       (included-c-header-files): Fix whitespace.
+       (flymake-tests--diagnose-words): New helper.
+       (dummy-backends): Rewrite for new semantics.  Use cl-letf.
+       (flymake-tests--assert-set): Use quote.
+       (recurrent-backend): New test.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Flymake uses proper idle timers
+
+       Also, flymake-no-changes-timeout can be set to nil to disable
+       automatic periodic checks.  But even in that situation the idle timer
+       still runs at a reduced rate to detect changes in the variable and
+       revert that decision.
+
+       * lisp/progmodes/flymake.el (flymake-no-changes-timeout): Improve doc.
+       (flymake-last-change-time): Delete.
+       (flymake--schedule-timer-maybe): New helper.
+       (flymake-after-change-function): Use it.
+       (flymake-on-timer-event): Delete
+       (flymake-mode): Don't scheduler timer.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Flymake variable flymake-diagnostic-functions now a special hook
+
+       * lisp/progmodes/flymake-proc.el: Use add-hook to affect
+       flymake-diagnostic-functions.
+
+       * lisp/progmodes/flymake-elisp.el
+       (flymake-elisp-setup-backends): Use add-hook.
+
+       * lisp/progmodes/flymake.el (flymake-diagnostic-functions):
+       Revise docstring.
+       (flymake-start): Use run-hook-wrapped.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Batch of minor Flymake cleanup actions agreed to with Stefan
+
+       Discussed with Stefan, in no particular order
+
+       - Remove aliases for symbols thought to be internal to flymake-proc.el
+       - Don’t need :group in defcustom and defface in flymake.el
+       - Fix docstring of flymake-make-diagnostic
+       - Fix docstring of flymake-diagnostic-functions to clarify keywords.
+       - Mark overlays with just the property ’flymake, not ’flymake-overlay
+       - Tune flymake-overlays for performance
+       - Make flymake-mode-on and flymake-mode-off obsolete
+       - Don’t use hash-table-keys unless necessary.
+       - Copyright notice in flymake-elisp.
+
+       Added some more
+
+       - Clarify docstring of flymake-goto-next-error
+       - Clarify a comment in flymake--run-backend complaining about 
ert-deftest.
+       - Prevent compilation warnings in flymake-proc.el
+       - Remove doctring from obsolete aliases
+
+       Now the changelog:
+
+       * lisp/progmodes/flymake-elisp.el: Proper copyright notice.
+
+       * lisp/progmodes/flymake-proc.el (flymake-warning-re)
+       (flymake-proc-diagnostic-type-pred)
+       (flymake-proc-default-guess)
+       (flymake-proc--get-file-name-mode-and-masks): Move up to
+       beginning of file to shoosh compiler warnings
+       (define-obsolete-variable-alias): Delete many obsolete aliases.
+
+       * lisp/progmodes/flymake.el (flymake-error-bitmap)
+       (flymake-warning-bitmap, flymake-note-bitmap)
+       (flymake-fringe-indicator-position)
+       (flymake-start-syntax-check-on-newline)
+       (flymake-no-changes-timeout, flymake-gui-warnings-enabled)
+       (flymake-start-syntax-check-on-find-file, flymake-log-level)
+       (flymake-wrap-around, flymake-error, flymake-warning)
+       (flymake-note): Don't need :group in these defcustom and defface.
+       (flymake--run-backend): Clarify comment
+       (flymake-mode-map): Remove.
+       (flymake-make-diagnostic): Fix docstring.
+       (flymake--highlight-line, flymake--overlays): Identify flymake
+       overlays with just ’flymake.
+       (flymake--overlays): Reverse order of invocation for
+       cl-remove-if-not and cl-sort.
+       (flymake-mode-on)
+       (flymake-mode-off): Make obsolete.
+       (flymake-goto-next-error, flymake-goto-prev-error): Fix docstring.
+       (flymake-diagnostic-functions): Clarify keyword arguments in
+       docstring.
+
+       Maybe squash in that one where I remove many obsoletes
+
+2017-10-03  João Távora  <address@hidden>
+
+       Explicitly add a(n empty) keymap for Flymake
+
+       Too early to decide what will be in it, if anything.  Though "M-n" and
+       "M-p" would be great.
+
+       * lisp/progmodes/flymake-ui.el (flymake-mode-map): New variable
+
+2017-10-03  João Távora  <address@hidden>
+
+       Flymake uses some new fringe bitmaps
+
+       Also fix behaviour whereby flymake wouldn't react to a change in the
+       variable.
+
+       * lisp/progmodes/flymake-ui.el (flymake-error-bitmap)
+       (flymake-warning-bitmap): Update bitmaps.
+       (flymake-note-bitmap): New defcustom.
+       (flymake-double-exclamation-mark): New bitmap.
+       (flymake-error, flymake-warning, flymake-note)
+       (flymake--highlight-line): 'bitmap property must be a symbol.
+       Also set default face to flymake-error.
+       (flymake--fringe-overlay-spec): Bitmap property can be a
+       variable symbol.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Remove old flymake-display-err-menu-for-current-line, it's useless
+
+       See https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00949.html
+
+       * lisp/progmodes/flymake-ui.el
+       (flymake-popup-current-error-menu): Remove.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Treat Flymake errors as just another type of diagnostic
+
+       * lisp/progmodes/flymake.el (flymake--diag-errorp): Remove.
+       (flymake--handle-report, flymake-popup-current-error-menu):
+       Don't use it.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Fix three Flymake bugs when checking C header files
+
+       The first of these problems is longstanding: if an error-less B.h is
+       included from error-ridden A.h, flymake's legacy parser will panic
+       (and disable itself) since it sees a non-zero exit for a clean file.
+       To fix this, recommend returning 'true' in the documentation for the
+       check-syntax target.
+
+       Another problem was introduced by the parser rewrite.  For error
+       patterns spanning more than one line, point may be left in the middle
+       of a line and thus render other patterns useless.  Those patterns were
+       written for the old line-by-line parser.  To make them useful again,
+       move to the beginning of line in those situations.
+
+       The third problem was also longstanding and happened on newer GCC's:
+       The "In file included from" prefix confused
+       flymake-proc-get-real-file-name.  Fix this.
+
+       Also updated flymake--diag-region to fallback to highlighting a full
+       line less often.
+
+       Add automatic tests to check this.
+
+       * lisp/progmodes/flymake-proc.el
+       (flymake-proc--diagnostics-for-pattern): Fix bug when patterns
+       accidentally spans more than one line.  Don't create
+       diagnostics without error messages.
+       (flymake-proc-real-file-name-considering-includes): New
+       helper.
+       (flymake-proc-allowed-file-name-masks): Use it.
+
+       * lisp/progmodes/flymake.el (flymake-diag-region): Make COL
+       argument explicitly optional.  Only fall back to full line in extreme
+       cases.
+
+       * test/lisp/progmodes/flymake-tests.el
+       (included-c-header-files): New test.
+       (different-diagnostic-types): Update.
+
+       * test/lisp/progmodes/flymake-resources/Makefile
+       (check-syntax): Always return success (0) error code.
+       (CC_OPTS): Add -Wextra
+
+       * test/lisp/progmodes/flymake-resources/errors-and-warnings.c
+       (main): Rewrite comments.
+
+       * test/lisp/progmodes/flymake-resources/errors-and-warnings.c:
+       Include some dummy header files.
+
+       * test/lisp/progmodes/flymake-resources/no-problems.h: New file.
+
+       * test/lisp/progmodes/flymake-resources/some-problems.h: New file.
+
+       * doc/misc/flymake.texi (Example---Configuring a tool called
+       via make): Recommend adding "|| true" to the check-syntax target.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Add interactive flymake-start function
+
+       * lisp/progmodes/flymake.el (flymake-on-timer-event)
+       (flymake-after-change-function, flymake-mode): Call
+       flymake-start.
+       (flymake-start): Rename from flymake--start-syntax-check.
+
+2017-10-03  João Távora  <address@hidden>
+
+       A couple of Flymake backends for emacs-lisp-mode
+
+       Loading flymake-elisp.el doesn't setup flymake-mode to turn on
+       automatically, but it affects emacs-lisp-mode-hook so that
+       flymake-diagnostic-functions is setup with a suitable buffer-local
+       value.  The variable flymake-diagnostic-funtions in every live
+       emacs-lisp-mode buffer is also adjusted.
+
+       * lisp/progmodes/flymake.el (top): Require flymake-elisp.
+
+       * lisp/progmodes/flymake-elisp.el: New file.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Fancy Flymake mode-line construct displays status
+
+       Imitates compilation-mode's mode-line a bit, and uses its faces.
+
+       * lisp/progmodes/flymake.el
+       (flymake-error, flymake-warning, flymake-note): Add
+       mode-line-face to these flymake error types.
+       (flymake-note): Notes don't need a noisy fringe bitmap.
+       (flymake-lighter): Delete.
+       (flymake--update-lighter): Delete.
+       (flymake--mode-line-format): New function and variable.
+       (flymake--diagnostics-table): New buffer-local variable.
+       (flymake--handle-report): Don't update "lighters".  Affect
+       flymake--diagnostics-table.
+       (flymake--run-backend): Init flymake--diagnostics-table for backend.
+       (flymake-mode): Use flymake--mode-line-format.
+       (flymake-mode): Don't update lighter.
+       (flymake--highlight-line): Be more careful when overriding a
+       nil default overlay property.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Tweak Flymake commands flymake-goto-[next/prev]-error
+
+       Add filters, useful for backends like the upcoming
+       flymake-elisp-checkdoc backend, for example, which litters everything
+       with low-priority notes.
+
+       Also re-implement wraparound for flymake-goto-next-error. Manual
+       mentions this, so it's probably a good idea to keep it.  Added a new
+       customization variable flymake-wrap-around to control it.
+
+       * lisp/progmodes/flymake.el (flymake-goto-prev-error)
+       (flymake-goto-next-error): Accept FILTER argument.
+       (flymake-wrap-around): New variable.
+       (flymake-goto-next-error): Wrap around according to flymake-wrap-around.
+
+       * test/lisp/progmodes/flymake-tests.el
+       (different-diagnostic-types, dummy-backends): Pass FILTER to
+       flymake-goto-prev-error.
+       (different-diagnostic-types)
+       (dummy-backends): Use flymake-wrap-around.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Flymake's flymake-proc.el backend slightly easier to debug
+
+       Misc cleanup in flymake-proc.el
+
+       Improve description of what this file contains.
+
+       Better name for the backend function.  Fix the case where it is run
+       interactively.
+
+       Keep the output buffer alive iff the external process panics.
+
+       * lisp/progmodes/flymake-proc.el
+       (flymake-proc-legacy-flymake): Rename from
+       flymake-proc-start-syntax-check.  Allow running interactively.
+       (flymake-start-syntax-check): Obsolete alias for
+       flymake-proc-legacy-flymake.
+       (flymake-proc-start-syntax-check): Delete.
+       (flymake-diagnostic-functions): Include flymake-proc-legacy-flymake
+       (flymake-proc--process-sentinel): Keep output buffer alive.
+       Clarify with comments.
+       (flymake-proc--diagnostics-for-pattern)
+       (flymake-proc--process-sentinel)
+       (flymake-proc--safe-delete-directory)
+       (flymake-proc--start-syntax-check-process): Use 
condition-case-unless-debug.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Simplify Flymake logging and erroring
+
+       Use display-warning and a dedicated *Flymake log* buffer.
+
+       To ease readability, flymake log messages are now prefixed with a
+       common prefix and the buffer that originated them.
+
+       Some situations of over-zealous logging are fixed.
+
+       Use byte-compiler info, if available, to determine whence the
+       flymake-related log message is coming.
+
+       * lisp/progmodes/flymake-proc.el
+       (flymake-proc--diagnostics-for-pattern): Improve log message.
+       (flymake-proc--panic): Always flymake-log an error
+       (flymake-proc--safe-delete-file)
+       (flymake-proc--safe-delete-directory):
+       Downgrade warning
+       (flymake-proc-start-syntax-check): Simplify slightly.
+       (flymake-proc--start-syntax-check-process): Simplify.
+       (flymake-proc--init-find-buildfile-dir)
+       (flymake-proc--init-create-temp-source-and-master-buffer-copy):
+       No need to warn twice.
+
+       * lisp/progmodes/flymake.el (flymake-log): Convert to macro.
+       (flymake--log-1): New helper.
+       (flymake-log-level): Deprecate.
+       (flymake-error): New helper.
+       (flymake-ler-make-ler, flymake--handle-report, flymake-mode):
+       Use flymake-error.
+       (flymake-on-timer-event)
+       (flymake--handle-report, flymake--disable-backend)
+       (flymake--run-backend, flymake-start, flymake-mode-on)
+       (flymake-mode-off, flymake-after-change-function)
+       (flymake-after-save-hook, flymake-find-file-hook): Adjust
+       flymake-log calls.
+
+       * test/lisp/progmodes/flymake-tests.el
+       (flymake-tests--call-with-fixture): Only log errors.
+
+2017-10-03  Philipp Stephani  <address@hidden>
+
+       Work around deprecation of gtk_style_context_get_background_color
+
+       * src/gtkutil.c (xg_check_special_colors): Replace call to
+       gtk_style_context_get_background_color with its definition.
+
+2017-10-03  João Távora  <address@hidden>
+
+       New Flymake API variable flymake-diagnostic-functions
+
+       Lay groundwork for multiple active backends in the same buffer.
+
+       Backends are lisp functions called when flymake-mode sees fit.  They
+       are responsible for examining the current buffer and telling
+       flymake.el, via return value, if they can syntax check it.
+       Backends should return quickly and inexpensively, but they are also
+       passed a REPORT-FN argument which they may or may not call
+       asynchronously after performing more expensive work.
+
+       REPORT-FN's calling convention stipulates that a backend calls it with
+       a list of diagnostics as argument, or, alternatively, with a symbol
+       denoting an exceptional situation, usually some panic resulting from a
+       misconfigured backend.  In keeping with legacy behaviour,
+       flymake.el's response to a panic is to disable the issuing backend.
+
+       The flymake--diag object representing a diagnostic now also keeps
+       information about its source backend.  Among other uses, this allows
+       flymake to selectively cleanup overlays based on which backend is
+       updating its diagnostics.
+
+       * lisp/progmodes/flymake-proc.el (flymake-proc--report-fn):
+       New dynamic variable.
+       (flymake-proc--process): New variable.
+       (flymake-can-syntax-check-buffer): Remove.
+       (flymake-proc--process-sentinel): Simplify.  Use
+       unwind-protect.  Affect flymake-proc--processes here.
+       Bind flymake-proc--report-fn.
+       (flymake-proc--process-filter): Bind flymake-proc--report-fn.
+       (flymake-proc--post-syntax-check): Delete
+       (flymake-proc-start-syntax-check): Take mandatory
+       report-fn.  Rewrite.  Bind flymake-proc--report-fn.
+       (flymake-proc--process-sentinel): Rewrite and simplify.
+       (flymake-proc--panic): New helper.
+       (flymake-proc--start-syntax-check-process): Record report-fn
+       in process.  Use flymake-proc--panic.
+       (flymake-proc-stop-all-syntax-checks): Use mapc.  Don't affect
+       flymake-proc--processes here.  Record interruption reason.
+       (flymake-proc--init-find-buildfile-dir)
+       (flymake-proc--init-create-temp-source-and-master-buffer-copy):
+       Use flymake-proc--panic.
+       (flymake-diagnostic-functions): Add
+       flymake-proc-start-syntax-check.
+       (flymake-proc-compile): Call
+       flymake-proc-stop-all-syntax-checks with a reason.
+
+       * lisp/progmodes/flymake.el (flymake-backends): Delete.
+       (flymake-check-was-interrupted): Delete.
+       (flymake--diag): Add backend slot.
+       (flymake-delete-own-overlays): Take optional filter arg.
+       (flymake-diagnostic-functions): New user-visible variable.
+       (flymake--running-backends, flymake--disabled-backends): New
+       buffer-local variables.
+       (flymake-is-running): Now a function, not a variable.
+       (flymake-mode-line, flymake-mode-line-e-w)
+       (flymake-mode-line-status): Delete.
+       (flymake-lighter):  flymake's minor-mode "lighter".
+       (flymake-report): Delete.
+       (flymake--backend): Delete.
+       (flymake--can-syntax-check-buffer): Delete.
+       (flymake--handle-report, flymake--disable-backend)
+       (flymake--run-backend, flymake--run-backend):  New helpers.
+       (flymake-make-report-fn): Make a lambda.
+       (flymake--start-syntax-check): Iterate
+       flymake-diagnostic-functions.
+       (flymake-mode): Use flymake-lighter.  Simplify.  Initialize
+       flymake--running-backends and flymake--disabled-backends.
+       (flymake-find-file-hook): Simplify.
+
+       * test/lisp/progmodes/flymake-tests.el
+       (flymake-tests--call-with-fixture): Use flymake-is-running the
+       function.  Check if flymake-mode already active before activating it.
+       Add a thorough test for flymake multiple backends
+
+       * lisp/progmodes/flymake.el (flymake--start-syntax-check):
+       Don't use condition-case-unless-debug, use condition-case
+
+       * test/lisp/progmodes/flymake-tests.el
+       (flymake-tests--assert-set): New helper macro.
+       (dummy-backends): New test.
+
+2017-10-03  João Távora  <address@hidden>
+
+       More Flymake cleanup before advancing to backend redesign
+
+       Diagnostics are reported for buffers, not necessarily files.  It’s the
+       backend’s responsibility to compute the buffer where the diagnostic is
+       applicable.  For now, this has to match the buffer where flymake-mode
+       is active and which is at the origin of the backend call.
+
+       flymake.el knows nothing about line/column diagnostics (except for
+       backward-compatible flymake-ler-make-ler, which must yet be tested).
+       It’s also the backend’s reponsibility to compute a BEG and END
+       positions for the diagnostic in the relevant buffer.
+
+       * lisp/progmodes/flymake-proc.el
+       (flymake-proc--diagnostics-for-pattern): Convert LINE/COL to
+       region here.  Check file buffer here.
+       (flymake-proc--process-sentinel): Don’t kill output buffer if
+       high enough log level.
+
+       * lisp/progmodes/flymake.el (flymake-diag-region): Make this a utility
+       function.  (flymake--highlight-line): Diagnostic has region now.
+       (flymake-popup-current-error-menu): Don’t add file and line numbers to
+       already this silly menu.  (flymake--fix-line-numbers): Remove.
+       (flymake-report): No need to fix diagnostics here.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Protect Flymake's eager checks against commands like fill-paragraph
+
+       If flymake-start-syntax-check-on-newline is t, check should start as
+       soon as a newline is seen by after-change-functions.  But don't rush
+       it: since the buffer state might not be final, we might end up with
+       invalid diagnostic regions after some commands silently insert and
+       delete newlines (looking at you, fill-paragraph).
+
+       * lisp/progmodes/flymake.el (flymake-after-change-function): Pass
+       `deferred' to flymake--start-syntax-check.
+       (flymake--start-syntax-check): Take optional `deferred' arg.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Flymake highlights GCC info/notes as detected by flymake-proc.el
+
+       * lisp/progmodes/flymake-proc.el
+       (flymake-proc--diagnostics-for-pattern): Rewrite (using cl-loop) to
+       honour more sophisticated flymake-proc-diagnostic-type-pred.
+       (flymake-warning-re): Is now an obsolete alias for
+       flymake-proc-diagnostic-type-pred.
+       (flymake-proc-diagnostic-type-pred): Rename and augment from
+       flymake-proc-warning-predicate.  (flymake-proc-warning-predicate):
+       Delete.
+
+       * lisp/progmodes/flymake.el (flymake-note): New face.
+       (flymake-diagnostic-types-alist): Simplify.
+       (flymake-note): New overlay category.
+       (flymake--lookup-type-property): Only lookup single keys, not lists.
+       (flymake--diag-errorp): Rewrite.
+       (flymake--highlight-line): Use flymake--lookup-type-property.
+
+       * test/lisp/progmodes/flymake-tests.el
+       (different-diagnostic-types): Rename from errors-and-warnings.
+       Check notes.
+       (flymake-tests--call-with-fixture): Use
+       flymake-proc-diagnostic-type-pred.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Flymake checks file names before considering diagnostics
+
+       The error patterns for gcc picked up errors for the Makefile itself,
+       for example.  These shouldn't count as actual errors.
+
+       * lisp/progmodes/flymake.el (flymake-report): Check
+       matching file names.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Echo Flymake error messages when navigating errors interactively
+
+       Perhaps binding M-n and M-p to flymake-goto-next-error and
+       flymake-goto-prev-error also wouldn't be a bad idea.
+
+       * lisp/progmodes/flymake.el (flymake-goto-next-error): Use
+       target overlay's help-echo.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Add a new Flymake test for multiple errors and warnings
+
+       * test/lisp/progmodes/flymake-tests.el
+       (flymake-tests--call-with-fixture): Save excursion.
+       (errors-and-warnings): New test.
+
+       * test/lisp/progmodes/flymake-resources/errors-and-warnings.c:
+       New test fixture.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Flymake warning face easier to distinguish
+
+       A orange wavy underline is very hard to tell from a red wavy
+       underline.
+
+       * lisp/progmodes/flymake.el (flymake-warning): Change color to
+       "deep sky blue"
+
+2017-10-03  João Távora  <address@hidden>
+
+       Flymake's flymake-proc.el parses column numbers from gcc/javac errors
+
+       Column numbers are not a great way of marking diagnostic regions, but
+       that's probably all that can be expected from the flymake-proc.el
+       backend.  For now, try (end-of-thing 'sexp) to discover the
+       diagnostic's end position.
+
+       * lisp/progmodes/flymake-proc.el ()
+       (flymake-proc-err-line-patterns): Also parse column numbers,
+       if available, for gcc/javac warnings.
+
+2017-10-03  João Távora  <address@hidden>
+
+       New Flymake variable flymake-diagnostic-types-alist and much cleanup
+
+       A new user-visible variable is introduced where different diagnostic
+       types can be categorized.  Flymake backends can also contribute to
+       this variable.  Anything that doesn’t match an existing error type
+       is considered.
+
+       The variable’s alists are used to propertize the overlays pertaining
+       to each error type.  The user can override the built-in properties by
+       either by modifying the alist, or by modifying the properties of a
+       special "category" symbol, named by the `flymake-category' entry in
+       the alist.
+
+       The `flymake-category' entry is especially useful for, say, the author
+       of foo-flymake-backend, who issues diagnostics of type :foo-note, that
+       should behave like notes, except with no fringe bitmap:
+
+          (add-to-list 'flymake-diagnostic-types-alist
+                       '(:foo-note
+                         . ((flymake-category . flymake-note)
+                            (bitmap . nil))))
+
+       For essential properties like `severity', `priority', etc, a default
+       value is produced.  Some properties like `evaporate' cannot be
+       overriden.
+
+       * lisp/progmodes/flymake.el (flymake--diag): Rename from
+       flymake-ler.
+       (flymake-ler-make): Obsolete alias for flymake-diagnostic-make
+       (flymake-ler-errorp): Rewrite using flymake--severity.
+       (flymake--place-overlay): Delete.
+       (flymake--overlays): Now a cl-defun with &key args.  Document.
+       Use `overlays-at' if BEG is non-nil and END is nil.
+       (flymake--lookup-type-property): New helper.
+       (flymake--highlight-line): Rewrite.
+       (flymake-diagnostic-types-alist): New API variable.
+       (flymake--diag-region)
+       (flymake--severity, flymake--face)
+       (flymake--fringe-overlay-spec): New helper.
+       (flymake-popup-current-error-menu): Use new flymake-overlays.
+       (flymake-popup-current-error-menu, flymake-report): Use
+       flymake--diag-errorp.
+       (flymake--fix-line-numbers): Use flymake--diag-line.
+       (flymake-goto-next-error): Pass :key to flymake-overlays
+
+       * lisp/progmodes/flymake-proc.el
+       (flymake-proc--diagnostics-for-pattern): Use flymake-diagnostic-make.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Refactor Flymake tests in preparation for more tests
+
+       Introduce a slightly more generic fixture macro.
+
+       Also make flymake-tests.el friendlier to interactive runs, by not
+       killing buffers visited by the user.
+
+       * test/lisp/progmodes/flymake-tests.el
+       (flymake-tests--call-with-fixture): New helper from
+       flymake-tests--current-face.  Don't kill file buffers already
+       being visited before the test starts.
+       (flymake-tests--with-flymake): New macro.
+       (flymake-tests--current-face): Delete.
+       (warning-predicate-rx-gcc, warning-predicate-function-gcc)
+       (warning-predicate-rx-perl, warning-predicate-function-perl):
+       Use flymake-test--with-flymake.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Allow running Flymake tests from interactive sessions
+
+       * test/lisp/progmodes/flymake-tests.el (flymake-tests-data-directory):
+       Expand to reasonable value if no
+       EMACS_TEST_DIRECTORY. (flymake-tests--current-face): Work around
+       "weirdness" of bug 17647 with read-event.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Flymake diagnostics now apply to arbitrary buffer regions
+
+       Make Flymake UI some 150 lines lighter
+
+       Strip away much of the original implementation's complexity in
+       manipulating objects representing diagnostics as well as creating and
+       navigating overlays.
+
+       Lay some groundwork for a more flexible approach that allows for
+       different classes of diagnostics, not necessarily line-based.
+       Importantly, one overlay per diagnostic is created, whereas the
+       original implementation had one per line, and on it it concatenated
+       the results of errors and warnings.
+
+       This means that currently, an error and warning on the same line are
+       problematic and the warning might be overlooked but this will soon be
+       fixed by setting appropriate priorities.
+
+       Since diagnostics can highlight arbitrary regions, not just lines, the
+       faces were renamed.
+
+       Tests pass and backward compatibility with interactive functions is
+       maintained, but probably any third-party extension or customization
+       relying on more than a trivial set of flymake.el internals has stopped
+       working.
+
+       * lisp/progmodes/flymake-proc.el
+       (flymake-proc--diagnostics-for-pattern): Use new flymake-ler-make
+       constructor syntax.
+
+       * lisp/progmodes/flymake.el (flymake-ins-after)
+       (flymake-set-at, flymake-er-make-er, flymake-er-get-line)
+       (flymake-er-get-line-err-info-list, flymake-ler-set-file)
+       (flymake-ler-set-full-file, flymake-ler-set-line)
+       (flymake-get-line-err-count, flymake-get-err-count)
+       (flymake-highlight-err-lines, flymake-overlay-p)
+       (flymake-make-overlay, flymake-region-has-flymake-overlays)
+       (flymake-find-err-info)
+       (flymake-line-err-info-is-less-or-equal)
+       (flymake-add-line-err-info, flymake-add-err-info)
+       (flymake-get-first-err-line-no)
+       (flymake-get-last-err-line-no, flymake-get-next-err-line-no)
+       (flymake-get-prev-err-line-no, flymake-skip-whitespace)
+       (flymake-goto-line, flymake-goto-next-error)
+       (flymake-goto-prev-error, flymake-patch-err-text): Delete
+       functions no longer used.
+       (flymake-goto-next-error, flymake-goto-prev-error): Rewrite.
+       (flymake-report): Rewrite.
+       (flymake-popup-current-error-menu): Rewrite.
+       (flymake--highlight-line): Rename from
+       flymake-highlight-line.  Call `flymake--place-overlay.
+       (flymake--place-overlay): New function.
+       (flymake-ler-errorp): New predicate.
+       (flymake-ler): Simplify.
+       (flymake-error): Rename from
+       flymake-errline.
+       (flymake-warning): Rename from flymake-warnline.
+       (flymake-warnline, flymake-errline): Obsoletion aliases.
+
+       * test/lisp/progmodes/flymake-tests.el (warning-predicate-rx-gcc)
+       (warning-predicate-function-gcc, warning-predicate-rx-perl)
+       (warning-predicate-function-perl): Use face `flymake-warning'.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Move symbols in flymake-proc.el to separate namespace
+
+       Every symbol in this flymake now starts with the prefix flymake-proc-.
+
+       Make obsolete aliases for (almost?) every symbol.
+
+       Furthermore, many flymake-proc.el symbols are prefixed with
+       "flymake-proc--", that is they were considered internal.
+
+       Some customization variables, interactive functions, and other symbols
+       considered useful to user customizations or third-party libraries are
+       considered "public" or "external" and so use a "flymake-proc-" prefix.
+
+       * lisp/progmodes/flymake-proc.el: Every symbol renamed.
+
+       * test/lisp/progmodes/flymake-tests.el
+       (flymake-tests--current-face): Use
+       flymake-proc-warning-predicate, not flymake-warning-predicate.
+
+       * lisp/progmodes/flymake-proc.el
+       (flymake-proc--get-project-include-dirs-function)
+       (flymake-proc--get-project-include-dirs-imp)
+       (flymake-proc--get-include-dirs-dot) (flymake-proc--get-tex-args)
+       (flymake-proc--find-make-buildfile)
+       (flymake-proc--get-syntax-check-program-args)
+       (flymake-proc--init-create-temp-source-and-master-buffer-copy)
+       (flymake-proc--init-find-buildfile-dir)
+       (flymake-proc--get-full-nonpatched-file-name)
+       (flymake-proc--get-full-patched-file-name) (flymake-proc--base-dir,
+       flymake-proc--temp-master-file-name) (flymake-proc--master-file-name)
+       (flymake-proc--temp-source-file-name)
+       (flymake-proc--delete-temp-directory) (flymake-proc--kill-process)
+       (flymake-proc--start-syntax-check-process)
+       (flymake-proc--compilation-is-running)
+       (flymake-proc--safe-delete-directory) (flymake-proc--safe-delete-file)
+       (flymake-proc--get-program-dir) (flymake-proc--restore-formatting)
+       (flymake-proc--clear-project-include-dirs-cache)
+       (flymake-proc--project-include-dirs-cache)
+       (flymake-proc--get-system-include-dirs)
+       (flymake-proc--get-project-include-dirs)
+       (flymake-proc--add-project-include-dirs-to-cache)
+       (flymake-proc--get-project-include-dirs-from-cache)
+       (flymake-proc--post-syntax-check) (flymake-proc--process-sentinel)
+       (flymake-proc--process-filter) (flymake-proc--create-master-file)
+       (flymake-proc--find-buffer-for-file)
+       (flymake-proc--copy-buffer-to-temp-buffer)
+       (flymake-proc--read-file-to-temp-buffer)
+       (flymake-proc--save-buffer-in-file) (flymake-proc--replace-region,
+       flymake-proc--check-include)
+       (flymake-proc--check-patch-master-file-buffer)
+       (flymake-proc--master-file-compare)
+       (flymake-proc--find-possible-master-files)
+       (flymake-proc--included-file-name, flymake-proc--same-files)
+       (flymake-proc--fix-file-name, flymake-proc--find-buildfile)
+       (flymake-proc--clear-buildfile-cache)
+       (flymake-proc--add-buildfile-to-cache)
+       (flymake-proc--get-buildfile-from-cache)
+       (flymake-proc--find-buildfile-cache)
+       (flymake-proc--get-real-file-name-function)
+       (flymake-proc--get-cleanup-function) (flymake-proc--get-init-function)
+       (flymake-proc--get-file-name-mode-and-masks)
+       (flymake-proc--processes): Rename to internal symbol from
+       flymake-proc- version.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Completely rewrite Flymake's subprocess output processing
+
+       Instead of parsing and matching regexps line-by-line, insert
+       subprocess output in a separate buffer and parse using
+       `search-forward-regexp'.  This eventually enables multi-line error
+       patterns and simplifies code all around.  Store per-check information
+       in the subprocess using `process-get' and `process-put'.  Treat error
+       messages, warnings, etc. more generically as "diagnostics".  Create
+       these objects as soon as possible, reusing existing `flymake-ler'
+       structure.  Fix some whitespace.
+
+       * lisp/progmodes/flymake.el (cl-lib): Require also when
+       loading.
+       (flymake--fix-line-numbers): Rename from
+       flymake-fix-line-numbers.  Simplify.
+       (flymake-report): Call flymake--fix-line-numbers.  Rearrange
+       plain diagnostics list into alist format expected by
+       flymake-highlight-err-lines.
+
+       * lisp/progmodes/flymake-proc.el (flymake-process-filter): Insert
+       process output and parse in dedicated output buffer.
+       (flymake-proc--diagnostics-for-pattern): New helper function.
+       (flymake-process-sentinel): Call flymake-post-syntax-check with
+       collected diagnostics.  Kill output buffer.
+       (flymake-post-syntax-check): Receive diagnostics as third argument.
+       (flymake-parse-output-and-residual, flymake-new-err-info)
+       (flymake-parse-residual, flymake-parse-err-lines)
+       (flymake-split-output, flymake-proc-parse-line)
+       (flymake-output-residual): Delete.
+       (flymake-start-syntax-check-process): Use make-process.  Setup
+       dedicated an output buffer
+
+2017-10-03  João Távora  <address@hidden>
+
+       Flymake provides flymake-report re-entry point for backends
+
+       * lisp/progmodes/flymake-proc.el (flymake-post-syntax-check):
+       Simplify.  Call flymake-report.
+
+       * lisp/progmodes/flymake.el (flymake-report): New function.
+
+2017-10-03  João Távora  <address@hidden>
+
+       Split Flymake into flymake.el into flymake-proc.el (again!)
+
+       After deciding that this work would continue on master only, which
+       caused two commits named
+
+          Revert "Split flymake.el into flymake-proc.el and flymake-ui.el"
+
+       and
+
+          Revert "Add flymake-backends defcustom"
+
+       to be added to the emacs-26 branch, further discussion reversed that
+       decision.
+
+          See:
+
+            
https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg01020.html
+            
https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg01030.html
+
+       This means that those two commits MUST be merged to master AFTER ALL.
+
+       flymke-proc.el contains the main syntax-checking backend, while
+       flymake.el keeps mostly the UI part.
+
+       * lisp/progmodes/flymake-proc.el: New file.  Require flymake.
+
+       * lisp/progmodes/flymake.el: Require flymake-proc.el at the end.
+
+2017-10-03  Nicolas Petton  <address@hidden>
+
+       Update authors.el
+
+       * admin/authors.el (authors-ignored-files, authors-valid-file-names)
+       (authors-renamed-files-alist): Additions.
+
+2017-10-03  Noam Postavsky  <address@hidden>
+
+       Give more helpful messages for python completion setup failures
+
+       * lisp/progmodes/python.el (python-shell-completion-native-setup): In
+       case the completion setup failed with some exception, print out the
+       exception type and message.  If libedit is detected, raise an
+       exception, since this is known to fail.
+
+2017-10-02  Eli Zaretskii  <address@hidden>
+
+       Fix the --without-x build
+
+       * src/frame.c (Ficonify_frame) [HAVE_WINDOW_SYSTEM]: Use
+       frame_parent only in GUI builds to avoid compilation errors in
+       --without-x builds.  (Bug#28611)
+
+2017-10-02  Paul Eggert  <address@hidden>
+
+       Fix customization of zoneinfo-style-world-list
+
+       A customizable variable's initial value cannot depend on that of
+       another customizable variable, since the variables are initialized
+       in other than textual order.  Problem reported by N. Jackson
+       (Bug#24291).
+       * lisp/time.el (display-time-world-list): Default to t,
+       a special value that expands to zoneinfo-style-word-list
+       if that works, and to legacy-style-word-list otherwise.
+       (time--display-world-list): New function.
+       (display-time-world, display-time-world-timer): Use it.
+
+2017-10-02  Alan Mackenzie  <address@hidden>
+
+       Fix a CC Mode brace stack cache bug.
+
+       * lisp/progmodes/cc-engine.el (c-update-brace-stack): Call
+       c-beginning-of-current-token after a failing search operation, to 
ensure we
+       don't cache a point inside a token.
+
+2017-10-02  Paul Eggert  <address@hidden>
+
+       * etc/PROBLEMS: Document Bug#26638.
+
+2017-10-02  Paul Eggert  <address@hidden>
+
+       Prefer HTTPS to HTTP for gnu.org
+
+       This fixes some URLs I omitted from my previous pass,
+       notably those in lists.gnu.org.  Although lists.gnu.org
+       does not yet support TLS 1.1, TLS 1.0 is better than nothing.
+       * lisp/erc/erc.el (erc-official-location):
+       * lisp/mail/emacsbug.el (report-emacs-bug):
+       Use https:, not http:.
+
+2017-10-02  Paul Eggert  <address@hidden>
+
+       Merge from Gnulib
+
+       This is mostly to change http: to https: in licenses.
+       * COPYING, build-aux/config.guess, build-aux/config.sub:
+       * doc/emacs/doclicense.texi, doc/emacs/gpl.texi:
+       * doc/lispintro/doclicense.texi, doc/lispref/doclicense.texi:
+       * doc/lispref/gpl.texi, doc/misc/doclicense.texi:
+       * doc/misc/gpl.texi, etc/COPYING, leim/COPYING:
+       * lib-src/COPYING, lib/COPYING, lisp/COPYING, lwlib/COPYING:
+       * msdos/COPYING, nt/COPYING, src/COPYING:
+       Copy from Gnulib.
+
+2017-10-01  Simen Heggestøyl  <address@hidden>
+
+       Keep eww buffer current when looking up CSS on MDN
+
+       * lisp/textmodes/css-mode.el (css-lookup-symbol): Keep the eww buffer
+       current when looking up CSS documentation on MDN.  This fixes a bug
+       where the eww buffer's content sometimes get mangled when switching
+       buffers mid-render.
+
+2017-10-01  Charles A. Roelli  <address@hidden>
+
+       Workaround for faulty localtime() under macOS 10.6
+
+       * lisp/org/org-clock.el (org-clock--oldest-date): Only execute
+       'decode-time' on times later than year -2**31 under macOS 10.6.
+       See Bug#27706.
+
+2017-10-01  Alan Mackenzie  <address@hidden>
+
+       Doc amendment for syntax-ppss.
+
+       * doc/elisp/syntax.texi (Position Parse): Note, twice, that syntax-ppss 
is
+       equivalent to parse-partial-sexp from the beginning of THE VISIBLE PART 
OF the
+       buffer.  Final part of the fix for bug #22983.
+
+2017-10-01  Charles A. Roelli  <address@hidden>
+
+       Remove incorrect NEWS entry about 'find-library'
+
+       * etc/NEWS (Changes in Emacs 26.1): Remove an entry about
+       'find-library' taking a prefix argument to pop to a different
+       window.  This behavior was added in "Allow a prefix argument to
+       find-library to pop to a different window" (commit e1f2d14a), and
+       then removed in "New commands: find-library-other-window,
+       find-library-other-frame" (commit 021430f4).
+
+2017-10-01  Alan Mackenzie  <address@hidden>
+
+       Remove inadvertent changes to syntax.texi in last commit.
+
+       * doc/lispref/syntax.texi (Position Parse): revert changes.
+
+2017-10-01  Alan Mackenzie  <address@hidden>
+
+       Amend documentation for text-quoting-style becoming a user option.
+
+       * doc/lispref/control.texi (Signaling Errors):
+       * doc/lispref/display.texi (Displaying Messages):
+       * doc/lispref/strings.texi (Formatting Strings):
+       Edit for brevity, farming out the details to the new
+       Text Quoting Style node.
+       * doc/lispref/help.texi (Text Quoting Style): New section.
+       Move detailed discussion of text-quoting-style here.
+       Add discussion about how to output grave accent and apostrophe in
+       documentation and messages.  Adjust xrefs to point to this section
+       when appropriate.
+       * etc/NEWS: text-quoting-style semantics have not changed.
+
+2017-10-01  Alan Mackenzie  <address@hidden>
+
+       Make the value nil in text-quoting-style mean what it does in Emacs 25.
+
+       This is a partial reversion of yesterday's commit by the same author, 
which
+       changed the meaning of nil and introduced the new value t.
+
+       * src/doc.c (text_quoting_style, text-quoting-style)
+       (internal--text-quoting-flag): Revert yesterday's changes.
+
+       * lisp/cus-start.el: (top level): Amend the entry for 
text-quoting-style.
+
+       * etc/NEWS: Amend the entry for text-quoting-style.
+
+       * doc/lispref/control.texi (Signalling Errors)
+       * doc/lispref/display.texi (Displaying Messages)
+       * doc/lispref/strings.texi (Formatting Strings): Bind 
text-quoting-style to
+       grave rather than nil to inhibit translation of quotes.
+
+       * doc/lispref/help.texi (Keys in Documentation): Revert the description 
of the
+       proposed new default, t.
+
+2017-10-01  Alan Mackenzie  <address@hidden>
+
+       Make text-quoting-style customizable.  Introduce t and new meaning for 
nil.
+
+       A value of nil for text-quoting-style now means "no translation".  t 
means
+       "Use curved quotes if displayable".
+
+       * src/doc.c (text-quoting-style (function)): modify for new semantics.
+       (text-quoting-style (variable)): Amend the doc string, set the default 
value
+       to t.
+
+       * lisp/cus-start.el: (top level): Create a customize entry for
+       text-quoting-style in group display.
+
+       * etc/NEWS: Amend the entry for text-quoting-style.
+
+       * doc/emacs/display.texi (Text Display): Describe the translation of 
ASCII
+       quotes to curved quotes, and how to influence or inhibit it.
+
+       * doc/lispref/control.texi (Signalling Errors)
+       * doc/lispref/display.texi (Displaying Messages)
+       * doc/lispref/strings.texi (Formatting Strings): Describe binding
+       text-quoting-style to nil to inhibit unwanted quote translation.
+
+       * doc/lispref/help.texi (Keys in Documentation): Change 
text-quoting-style
+       from a variable to a user option.  Describe its changed set of values.  
State
+       that it can be customized freely.
+
+2017-10-01  Michael Albinus  <address@hidden>
+
+       eshell.texi improvements
+
+       * doc/misc/eshell.texi (Built-ins): eshell/sudo is a compiled
+       Lisp function in `em-tramp.el'.  Mention also $*, $1, $2, ...
+       (Aliases): Add $*, $1, $2, ... to the variable index.
+
+2017-08-15  Alan Third  <address@hidden>
+
+       Fix ns-win.el on GNUstep
+
+       * lisp/term/ns-win.el: Appkit version check only works on macOS, so
+       don't try it when not using Cocoa.
+
+2017-10-01  Martin Rudalics  <address@hidden>
+
+       Fix reference style in org.texi
+
+       * doc/misc/org.texi (A Texinfo example): Fix reference style.
+
+2017-10-01  Martin Rudalics  <address@hidden>
+
+       Improve handling of iconification of child frames (Bug#28611)
+
+       * src/frame.c (Ficonify_frame): Handle `iconify-child-frame' option.
+       (syms_of_frame): New symbols Qiconify_top_level and Qmake_invisible.
+       (iconify_child_frame): New option.
+       * lisp/cus-start.el (iconify-child-frame): Add customization
+       properties.
+       * doc/lispref/frames.texi (Child Frames): Describe new option
+       `iconify-child-frame'.  Don't index "top-level frame" twice.
+
+2017-10-01  Noam Postavsky  <address@hidden>
+
+       Revert "Don't lose arguments to eshell aliases (Bug#27954)"
+
+       It broke the established argument handling methods provided by eshell
+       aliases (Bug#28568).
+       * doc/misc/eshell.texi (Aliases): Fix example, call out use of
+       arguments in aliases.
+       * lisp/eshell/em-alias.el (eshell-maybe-replace-by-alias): Ignore
+       ARGS.
+
+2017-10-01  Noam Postavsky  <address@hidden>
+
+       Make "unsafe directory" error message more informative (Bug#865)
+
+       * lisp/server.el (server-ensure-safe-dir): Produce a description for
+       each "unsafe" condition.
+
+2017-10-01  Eric Abrahamsen  <address@hidden>
+
+       Fix slot typecheck in eieio-persistent
+
+       * lisp/emacs-lisp/eieio-base.el (eieio-persistent-slot-type-is-class-p):
+         An `or' form can specify multiple potential classes (or null) as
+         valid types for a slot, but previously only the final element of the
+         `or' was actually checked. Now returns all valid classes in the `or'
+         form.
+         (eieio-persistent-validate/fix-slot-value): Check if proposed value
+         matches any of the valid classes.
+       * test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el
+         (eieio-test-multiple-class-slot): Test this behavior.
+
+2017-09-30  Dmitry Gutov  <address@hidden>
+
+       Fix semantic-ia-fast-jump
+
+       * lisp/cedet/semantic/ia.el (semantic-ia--fast-jump-helper):
+       Use `pop-to-buffer-same-window' (bug#28645).
+
+2017-09-30  Kaushal Modi  <address@hidden>
+
+       Bind vc-region-history
+
+       * lisp/vc/vc-hooks.el (vc-prefix-map):
+       Bind `vc-region-history' to 'C-x v h', which was earlier bound to
+       `vc-insert-headers' (Bug#27644).
+       * doc/emacs/maintaining.texi (VC Change Log): Mention the new binding.
+       * doc/emacs/vc1-xtra.texi (Version Headers): Remove the association of
+       'C-x v h' with `vc-insert-headers'.
+       (http://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00957.html)
+
+2017-09-30  Allen Li  <address@hidden>  (tiny change)
+
+       Exit macro definition on undefined keys
+
+       * lisp/subr.el (undefined): Error out of kmacro definition, if any.
+       (Bug#28008)
+
+2017-09-30  Tim Landscheidt  <address@hidden>  (tiny change)
+
+       Reset bidi-paragraph-direction on article rendering
+
+       * lisp/gnus/gnus-art.el (gnus-request-article-this-buffer): Reset
+       bidi-paragraph-direction on article rendering.  (Bug#28454)
+
+2017-09-30  Eli Zaretskii  <address@hidden>
+
+       Fix url-http use of url-current-object
+
+       * lisp/url/url-http.el (url-http): Bind url-current-object before
+       calling url-http-find-free-connection.  (Bug#28515)
+
+2017-09-30  Andy Moreton  <address@hidden>
+
+       Avoid assertions in vc-hg.el on MS-Windows
+
+       * lisp/vc/vc-hg.el (vc-hg--pcre-to-elisp-re)
+       (vc-hg--slurp-hgignore, vc-hg--read-repo-requirements)
+       (vc-hg-state-fast): Use file-name-absolute-p and directory-name-p
+       instead of relying on Unix file-name syntax.  This avoids
+       assertion violations on MS-Windows.
+
+2017-09-30  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of 'copy-sequence'
+
+       * src/fns.c (Fcopy_sequence):
+       * doc/lispref/sequences.texi (Sequence Functions): Mention the
+       exception when copying an empty sequence.  (Bug#28627)
+
+2017-09-30  Eli Zaretskii  <address@hidden>
+
+       Minor update of ack.texi
+
+       * doc/emacs/ack.texi (Acknowledgments): Update Eli Zaretskii's
+       contributions.
+
+2017-09-30  N. Jackson  <address@hidden>  (tiny change)
+
+       * doc/emacs/emacs.texi (Acknowledgments): Add more contributors.
+
+2017-09-30  Eli Zaretskii  <address@hidden>
+
+       Improve indexing of multi-file/buffer Isearch commands
+
+       * doc/emacs/maintaining.texi (Identifier Search): Change wording
+       of index entries to make them different from those for multi-file
+       isearch commands.  (Bug#28584)
+       * doc/emacs/search.texi (Other Repeating Search): Index the
+       multi-* commands.  (Bug#28584)  Rearrange the indexing to keep
+       each index entry close to its subject.
+
+2017-09-30  Mark Oteiza  <address@hidden>
+
+       Add CAM02 JCh and CAM02-UCS J'a'b' conversions
+
+       * src/lcms.c (rad2deg, parse_jch_list, parse_jab_list, xyz_to_jch):
+       (jch_to_xyz, jch_to_jab, jab_to_jch): New functions.
+       (lcms-jch->xyz, lcms-jch->xyz, lcms-jch->jab, lcms-jab->jch): New Lisp
+       functions.
+       (lcms-cam02-ucs): Refactor.
+       (syms_of_lcms2): Declare new functions.
+       * test/src/lcms-tests.el (lcms-roundtrip, lcms-ciecam02-gold):
+       (lcms-jmh->cam02-ucs-silver): New tests.
+       * etc/NEWS: Mention new functions.
+
+2017-09-30  Eli Zaretskii  <address@hidden>
+
+       Fix uses of @kindex in the Emacs manual
+
+       * doc/emacs/programs.texi (Expressions, Semantic, Hungry Delete):
+       * doc/emacs/mark.texi (Global Mark Ring)
+       (Disabled Transient Mark):
+       * doc/emacs/buffers.texi (Select Buffer):
+       * doc/emacs/mule.texi (File Name Coding): Fix @kindex entries
+       which used @key.  Reported by Marcin Borkowski <address@hidden>.
+
+2017-09-30  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-09-28 string: code style
+       2017-09-25 sys_types: update URL
+       2017-09-23 install-sh: do not assume / = //
+       2017-09-21 mktime: port to OpenVMS
+       * build-aux/install-sh, m4/mktime.m4, m4/string_h.m4:
+       * m4/sys_types_h.m4: Copy from Gnulib.
+       * lib/gnulib.mk.in: Regenerate.
+
+2017-09-30  Paul Eggert  <address@hidden>
+
+       Prefer HTTPS to HTTP for gnu.org
+
+       This catches some URLs I missed in my previous scan,
+       or perhaps were added after the scan.
+
+2017-09-30  Noam Postavsky  <address@hidden>
+
+       Wait for frame visibility with timeout in w32term too
+
+       * src/w32term.c (syms_of_w32term) [x-wait-for-event-timeout]: New
+       variable.
+       (x_make_frame_visible): Wait for frame to become visible according to
+       its value.
+       (input_signal_count): Remove.
+
+2017-09-30  Noam Postavsky  <address@hidden>
+
+       Bring back the busy wait after x_make_frame_visible (Bug#25521)
+
+       But wait specfically for a MapNotify event, and only for a
+       configurable amount of time.
+       * src/xterm.c (syms_of_xterm) [x-wait-for-event-timeout]: New
+       variable.
+       (x_wait_for_event): Use it instead of hardcoding the wait to 0.1s.
+       (x_make_frame_visible): Call x_wait_for_event at the end.
+       * etc/NEWS: Announce x_wait_for_event.
+
+2017-09-29  Eli Zaretskii  <address@hidden>
+
+       Fix last doc string change in simple.el
+
+       * lisp/simple.el (shell-command-saved-pos)
+       (region-extract-function, region-bounds): Doc fixes.  (Bug#28609)
+
+2017-09-29  Eli Zaretskii  <address@hidden>
+
+       Revert "bug#28609: simple.el"
+
+       This reverts commit a75ab3b3fb8ab69ef38a94403d061f88f3b5b63e.
+
+2017-09-29  Devon Sean McCullough  <address@hidden>
+
+       bug#28609: simple.el
+
+       Correct grammar; also, call a pair a pair.
+
+       (cherry picked from commit 25ef543a97a80718cc4eb33734d393420a43f41e)
+
+2017-09-29  Rasmus  <address@hidden>
+
+       Merge branch 'emacs-26' into scratch/org-mode-merge
+
+2017-09-29  Noam Postavsky  <address@hidden>
+
+       Fix ert backtrace saving for non-`signal'ed errors (Bug#28333)
+
+       * lisp/emacs-lisp/ert.el (ert--run-test-debugger): Take the frames
+       above the `debugger' frame, rather than assuming there will be a
+       `signal' frame.
+
+2017-09-28  Alan Third  <address@hidden>
+
+       Revert "Fix build on macOS (bug#28571)"
+
+       This reverts commit fec63089d53d2196b0348086aeed70277fbc02c0.
+
+       Prematurely pushed.
+
+2017-09-28  Alan Third  <address@hidden>
+
+       Fix build on macOS (bug#28571)
+
+       * src/conf_post.h (HAVE_FUTIMENS, HAVE_FUTIMESAT, HAVE_UTIMENSAT)
+       [DARWIN_OS]: Undefine.
+
+2017-09-28  Simen Heggestøyl  <address@hidden>
+
+       Add tests for `css-current-defun-name'
+
+       * test/lisp/textmodes/css-mode-tests.el (css-test-current-defun-name)
+       (css-test-current-defun-name-nested)
+       (css-test-current-defun-name-complex): New tests for
+       `css-current-defun-name'.
+
+2017-09-28  Martin Rudalics  <address@hidden>
+
+       In w32fullscreen_hook don't add decorations to undecorated frames
+
+       * src/w32term.c (w32fullscreen_hook): Do not add (or try to
+       remove) decorations for undecorated frames.
+
+2017-09-28  João Távora  <address@hidden>
+
+       Revert "Split flymake.el into flymake-proc.el and flymake-ui.el"
+
+       In other words, re-coalesce the two files,
+       lisp/progmodes/flymake-proc.el and lisp/progmodes/flymake-ui.el, back
+       into a single one, lisp/progmodes/flymake.el.
+
+       The changesets "Prefer HTTPS to FTP and HTTP in documentation" and
+       "allow nil init in flymake-allowed-file-name-masks to disable flymake"
+       are kept in place in the new lisp/progmodes/flymake.el.
+
+       This reverts Git commit eb34f7f5a29e7bf62326ecb6e693f28878be28cd.
+
+       Don't merge this back to master as development happening there builds
+       upon this work. See also
+       https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00932.html.
+
+2017-09-28  João Távora  <address@hidden>
+
+       Revert "Add flymake-backends defcustom"
+
+       This reverts Git commit 13993c46a21495167517f76d2e36b6c09ac5e89e.
+
+       Don't merge this back to master as development happening there builds
+       upon this work. See also
+       https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00932.html
+
+2017-09-27  Paul Eggert  <address@hidden>
+
+       * src/editfns.c (styled_format): Fix typo in previous change.
+
+2017-09-27  Paul Eggert  <address@hidden>
+
+       Avoid some unnecessary copying in Fformat etc.
+
+       This patch is just for performance; it should not affect behavior.
+       On my platform, it made the microbenchmark (format "%S" load-path)
+       run about 45% faster.  It should also speed up calls like (message
+       "%s" STRING).
+       * src/callint.c (Fcall_interactively):
+       * src/dbusbind.c (XD_OBJECT_TO_STRING):
+       * src/editfns.c (Fmessage, Fmessage_box):
+       * src/xdisp.c (vadd_to_log, Ftrace_to_stderr):
+       Use styled_format instead of Fformat or Fformat_message,
+       to avoid unnecessary copying.
+       * src/editfns.c (styled_format): New arg NEW_RESULT.
+       All uses changed.  Reuse an input string if it has the
+       right value and if !NEW_RESULT.
+       * src/lisp.h (style_format): New decl.
+
+2017-09-26  John Wiegley  <address@hidden>
+
+       lisp/simple.el: Indicate when a list of pairs is meant in a docstring
+
+2017-09-26  Devon Sean McCullough  <address@hidden>
+
+       bug#28609: simple.el
+
+       Correct grammar; also, call a pair a pair.
+
+2017-09-26  Dmitry Gutov  <address@hidden>
+
+       Use a separate syntax-ppss cache for narrowed buffers
+
+       * lisp/emacs-lisp/syntax.el (syntax-ppss-wide):
+       New variable, to contain the data from `syntax-ppss-last' and
+       `syntax-ppss-cache'.
+       (syntax-ppss-cache, syntax-ppss-last): Remove.
+       (syntax-ppss-narrow, syntax-ppss-narrow-start): New variables.
+       (syntax-ppss-flush-cache): Flush both caches.
+       (syntax-ppss--data): Return the appropriate last result and
+       buffer cache for the current restriction.
+       (syntax-ppss, syntax-ppss-debug): Use it (bug#22983).
+
+2017-09-26  Joerg Behrmann  <address@hidden>  (tiny change)
+
+       Improve python3-compatibility of fallback completion (Bug#28499)
+
+       * lisp/progmodes/python.el (python-eldoc-setup-code): Use
+       inspect.getfullargspec instead of inspect.getargspec to avoid a
+       deprecation warning on every usage of eldoc in python-mode.
+
+2017-09-26  Noam Postavsky  <address@hidden>
+
+       Fix subr-x-tests when running from elc
+
+       * test/lisp/emacs-lisp/subr-x-tests.el (subr-x-and-let*-test-group-1):
+       Use `eval' around the `should-error' cases.
+
+2017-09-26  Noam Postavsky  <address@hidden>
+
+       * lisp/eshell/esh-util.el (eshell-condition-case): Add debug 
declaration.
+
+2017-09-26  Noam Postavsky  <address@hidden>
+
+       Make sh-indentation into an alias for sh-basic-offset (Bug#21751)
+
+       * lisp/progmodes/sh-script.el (sh-indentation): Redefine as obsolete
+       variable alias for `sh-basic-offset'.
+       (sh-mode, sh-smie--indent-continuation)
+       (sh-smie-rc-rules, sh-basic-indent-line): Replace `sh-indentation'
+       with `sh-basic-offset'.
+
+2017-09-26  Noam Postavsky  <address@hidden>
+
+       Fix loading of smie-config rules (Bug#24848)
+
+       * lisp/emacs-lisp/smie.el (smie-config--setter): Use `set-default'
+       instead of `setq-default'.
+       (smie-config): Use `custom-initialize-set' instead of
+       `custom-initialize-default' as the :initialize argument.
+
+       * lisp/progmodes/sh-script.el (sh-learn-buffer-indent): Mention that
+       we call `smie-config-guess' so that the user will have a chance to
+       find the correct docstring to consult.  Remove hedging comments
+       regarding use of abnormal hooks.
+
+2017-09-26  Dmitry Gutov  <address@hidden>
+
+       Reset default-directory inside *xref-grep* buffer
+
+       * lisp/progmodes/xref.el (xref-collect-matches):
+       Reset default-directory, too. (Bug#28575)
+
+2017-09-25  Michael Albinus  <address@hidden>
+
+       * test/lisp/tramp-tests.el (tramp-test21-file-links): Special code for 
smb.
+
+2017-09-25  Mark Oteiza  <address@hidden>
+
+       Loosen strict parsing requirement for desktop files
+
+       There are other desktop-looking files, for instance those having to do
+       with MIME typess, that would benefit from being able to be read by this
+       function.  It helps to have some flexibility.
+       * lisp/xdg.el (xdg-desktop-read-file): Remove an error condition.
+       * test/lisp/xdg-tests.el: Remove a test.
+
+2017-09-25  Mark Oteiza  <address@hidden>
+
+       * lisp/xdg.el (xdg-thumb-uri): Fix doc string.
+
+2017-09-25  Martin Rudalics  <address@hidden>
+
+       Fix documentation of `make-frame' and related variables and hooks
+
+       * lisp/frame.el (before-make-frame-hook)
+       (after-make-frame-functions, frame-inherited-parameters)
+       (make-frame): Fix doc-strings.
+       * doc/lispref/frames.texi (Creating Frames): Fix description
+       of `make-frame' and related variables and hooks.
+
+2017-09-24  Eric Abrahamsen  <address@hidden>
+
+       Accept new `always' value for option `buffer-offer-save'
+
+       Also revert ee512e9a82
+
+       * lisp/files.el (buffer-offer-save): In addition to nil and t, now
+         allows a third symbol value, `always'. A buffer where this option is
+         set to `always' will always be offered for save by
+         `save-some-buffers'.
+         (save-some-buffers): Check the exact value of this buffer-local
+         variable. No longer check the buffer name, or the value of
+         `write-contents-functions'.
+       * doc/lispref/buffers.texi (Killing Buffers): Note change in manual.
+       * doc/lispref/files.texi (Saving Buffers): Remove note about buffer
+         names.
+       * etc/NEWS: Mention in NEWS.
+
+2017-09-24  Alan Third  <address@hidden>
+
+       Improve new NS scrolling variable names
+
+       * src/nsterm.m (ns-use-system-mwheel-acceleration): Replace with
+       'ns-use-mwheel-acceleration'.
+       (ns-touchpad-scroll-line-height): Replace with
+       'ns-mwheel-line-height'.
+       (ns-touchpad-use-momentum): Replace with 'ns-use-mwheel-momentum'.
+       * etc/NEWS: Change variable names.
+
+2017-09-24  Philipp Stephani  <address@hidden>
+
+       Document 'replace-buffer-contents' in the manual.
+
+       * doc/lispref/text.texi (Replacing): New node.
+
+2017-09-23  Alan Third  <address@hidden>
+
+       Fix undecorated frame resizing issues on NS (bug#28512)
+
+       * src/nsterm.m (EmacsView::updateFrameSize): Don't wait for the
+       toolbar on undecorated frames.
+       (EmacsView::initFrameFromEmacs): Group window flags correctly.
+
+2017-09-23  Eli Zaretskii  <address@hidden>
+
+       Fix doc string of 'dired-listing-switches'
+
+       * lisp/dired.el (dired-listing-switches): Fix the quoting
+       example.  (Bug#28569)
+
+2017-09-23  Eli Zaretskii  <address@hidden>
+
+       Documentation improvements for 'display-line-numbers'
+
+       * doc/emacs/display.texi (Display Custom): Document a few more
+       options for display-line-numbers.  (Bug#28533)  Fix a typo.
+
+2017-09-22  Eli Zaretskii  <address@hidden>
+
+       Fix last change in bat-mode.el
+
+       * lisp/progmodes/bat-mode.el (bat-font-lock-keywords): Fix last
+       change.  (Bug#28311)
+
+2017-09-22  Eli Zaretskii  <address@hidden>
+
+       Fix restoring in GUI sessions desktop saved in TTY sessions
+
+       * lisp/frameset.el (frameset-filter-font-param): New function.
+       (frameset-persistent-filter-alist): Use it for processing the
+       'font' frame parameter.  (Bug#17352)
+
+2017-09-22  Eli Zaretskii  <address@hidden>
+
+       Improve syntax highlighting in bat-mode
+
+       * lisp/progmodes/bat-mode.el (bat-font-lock-keywords): Improve
+       font-locking of environment variables.  Suggested by Achim Gratz
+       <address@hidden>.  (Bug#28311)  (Bug#18405)
+
+2017-09-22  Eli Zaretskii  <address@hidden>
+
+       Document the 'list-FOO' convention
+
+       * doc/lispref/tips.texi (Coding Conventions): Document the
+       list-FOO convention.
+
+2017-09-22  Mark Oteiza  <address@hidden>
+
+       Expose viewing conditions in CAM02-UCS metric
+
+       Also add tests from the colorspacious library.  Finally, catch an
+       errant calculation, where degrees were not being converted to radians.
+       * src/lcms.c (deg2rad, default_viewing_conditions):
+       (parse_viewing_conditions): New functions.
+       (lcms-cam02-ucs): Add comments pointing to references used.  Expand
+       the docstring and explain viewing conditions.  JCh hue is given in
+       degrees and needs to be converted to radians.
+       (lcms-d65-xyz): Remove.  No need to duplicate this in Lisp or make the
+       API needlessly impure.
+       * test/src/lcms-tests.el: Reword commentary.
+       (lcms-rgb255->xyz): New function.
+       (lcms-cri-cam02-ucs): Fix let-binding.
+       (lcms-dE-cam02-ucs-silver): New test, assimilated from colorspacious.
+
+2017-09-21  Alan Third  <address@hidden>
+
+       Revert "Set frame size to actual requested size (bug#18215)"
+
+       This reverts commit d31cd79b40dbd5459b16505a4ee4340210499277.
+
+       See bug#28536. I misunderstood bug#18215. It wasn't a bug.
+
+2017-09-21  Gemini Lasswell  <address@hidden>
+
+       Add tests for Edebug
+
+       * tests/lisp/emacs-lisp/edeug-tests.el: New file.
+       * tests/lisp/emacs-lisp/edebug-resources/edebug-test-code.el: New file.
+
+2017-09-21  Gemini Lasswell  <address@hidden>
+
+       Catch more messages in ert-with-message-capture
+
+       * lisp/emacs-lisp/ert-x.el (ert-with-message-capture): Capture
+       messages from prin1, princ and print.
+       (ert--make-message-advice): New function.
+       (ert--make-print-advice): New function.
+
+2017-09-21  Tak Kunihiro  <address@hidden>
+
+       Support setting region from secondary selection and vice versa
+
+       * lisp/mouse.el (secondary-selection-exist-p): New function to
+       allow callers to tell existence of the secondary selection
+       in current buffer.
+       (secondary-selection-to-region): New function to set
+       beginning and end of the region from those of the secondary
+       selection.
+       (secondary-selection-from-region): New function to set
+       beginning and end of the secondary selection from those of
+       the region.  (Bug#27530)
+
+       * etc/NEWS: Mention the new functions.
+
+2017-09-20  Paul Eggert  <address@hidden>
+
+       Fix new copy-directory bug with empty dirs
+
+       Problem reported by Afdam Plaice (Bug#28520) and by Eli Zaretskii
+       (Bug#28483#34).  This is another bug that I introduced in my
+       recent copy-directory changes.
+       * lisp/files.el (copy-directory): Work with empty subdirectories, too.
+       * test/lisp/files-tests.el (files-tests--copy-directory):
+       Test for this bug.
+
+2017-09-20  Eli Zaretskii  <address@hidden>
+
+       * doc/lispref/strings.texi (Formatting Strings): Improve indexing.
+
+2017-09-20  Eli Zaretskii  <address@hidden>
+
+       Fix 2 testsuite tests for MS-Windows
+
+       * test/lisp/ibuffer-tests.el (test-buffer-list): Don't try to
+       create files with "*" in their names.
+       * test/src/editfns-tests.el (format-time-string-with-zone): Adapt
+       results to MS-Windows build.  Reported by Fabrice Popineau
+       <address@hidden>.
+
+2017-09-20  Mark Oteiza  <address@hidden>
+
+       Rename timer-list to list-timers
+
+       * doc/emacs/anti.texi (Antinews):
+       * doc/lispref/os.texi (Timers):
+       * etc/NEWS:
+       * lisp/emacs-lisp/timer-list.el:
+       (timer-list-mode): Rename timer-list to list-timers.
+
+2017-09-19  Alan Third  <address@hidden>
+
+       Provide native touchpad scrolling on macOS
+
+       * etc/NEWS: Describe changes.
+       * lisp/term/ns-win.el (mouse-wheel-scroll-amount,
+       mouse-wheel-progressive-speed): Set to smarter values for macOS
+       touchpads.
+       * src/nsterm.m (emacsView::mouseDown): Use precise scrolling deltas to
+       calculate scrolling for touchpads and mouse wheels.
+       (syms_of_nsterm): Add variables 'ns-use-system-mwheel-acceleration',
+       'ns-touchpad-scroll-line-height' and 'ns-touchpad-use-momentum'.
+       * src/keyboard.c (make_lispy_event): Pass on .arg when relevant.
+       * src/termhooks.h (event_kind): Update comments re. WHEEL_EVENT.
+       * lisp/mwheel.el (mwheel-scroll): Use line count.
+       * lisp/subr.el (event-line-count): New function.
+
+2017-09-19  Eli Zaretskii  <address@hidden>
+
+       Fix MinGW64 build broken by recent MinGW64 import libraries
+
+       * configure.ac (W32_LIBS): Put -lusp10 before -lgdi32, as latest
+       MinGW64 import libraries require that.  (Bug#28493)
+
+       * src/Makefile.in: Adjust commentary to the new order of w32
+       libraries.
+
+2017-09-19  Eli Zaretskii  <address@hidden>
+
+       Fix crashes in 'move-point-visually' in minibuffer windows
+
+       * src/xdisp.c (Fmove_point_visually): Fix off-by-one error in
+       comparing against the last valid glyph_row of a window glyph
+       matrix.  (Bug#28505)
+
+2017-09-19  Eli Zaretskii  <address@hidden>
+
+       * src/emacs.c (usage_message): Don't mention 'find-file'.
+
+2017-09-19  Eli Zaretskii  <address@hidden>
+
+       Fix a minor inaccuracy in the Emacs manual
+
+       * doc/emacs/cmdargs.texi (Action Arguments): Don't mention
+       'find-file', as the implementation has changed.  Reported by
+       Everton J. Carpes <address@hidden> in
+       http://lists.gnu.org/archive/html/help-gnu-emacs/2017-09/msg00146.html.
+
+2017-09-19  Eli Zaretskii  <address@hidden>
+
+       Fix errors in flyspell-post-command-hook
+
+       * lisp/textmodes/ispell.el (ispell-get-decoded-string): Handle the
+       case of a nil Nth element of the language dictionary slot.  This
+       avoids errors in 'flyspell-post-command-hook' when switching
+       dictionaries with some spell-checkers.  (Bug#28501)
+
+2017-09-19  Michael Albinus  <address@hidden>
+
+       Work on Tramp's file-truename
+
+       * lisp/net/tramp-sh.el (tramp-perl-file-truename):
+       Check also for symlinks.
+       (tramp-sh-handle-file-truename): Move check for a symlink
+       cycle to the end.  Do not blame symlinks which look like a
+       remote file name.
+
+       * lisp/net/tramp.el (tramp-handle-file-truename): Expand result.
+
+2017-09-19  Paul Eggert  <address@hidden>
+
+       Fix bug with make-directory on MS-Windows root
+
+       * lisp/files.el (files--ensure-directory): Treat any error, not
+       just file-already-exists, as an opportunity to check whether DIR
+       is already a directory (Bug#28508).
+
+2017-09-19  Tom Tromey  <address@hidden>
+
+       Fix log-view-diff-common when point is after last entry
+
+       Bug#28466
+       * lisp/vc/log-view.el (log-view-diff-common): If point is after last
+       entry, look at the previous revision.
+
+2017-09-18  Ken Brown  <address@hidden>
+
+       Adapt fileio-tests--symlink-failure to Cygwin
+
+       * test/src/fileio-tests.el (fileio-tests--symlink-failure)
+       [CYGWIN]: Skip the case of a symlink target starting with '\';
+       this is treated specially on Cygwin.
+
+2017-09-18  Eric Abrahamsen  <address@hidden>
+
+       Ignore buffers whose name begins with a space in save-some-buffers
+
+       * lisp/files.el (save-some-buffers): Consider these buffers
+         "internal", and don't prompt the user to save them.
+       * doc/lispref/files.texi: Document.
+
+2017-09-18  Michael Albinus  <address@hidden>
+
+       Improve tramp-interrupt-process robustness
+
+       * lisp/net/tramp.el (tramp-interrupt-process): Wait, until the
+       process has disappeared.
+
+2017-09-18  Michael Albinus  <address@hidden>
+
+       Minor Tramp doc update
+
+       * doc/misc/tramp.texi (Frequently Asked Questions):
+       Mention `vc-handled-backends'.
+
+2017-09-18  Mark Oteiza  <address@hidden>
+
+       Fix gensym
+
+       * lisp/subr.el (gensym): Actually implement the default prefix.
+       * test/lisp/subr-tests.el (subr-tests--gensym): New test.
+
+2017-09-18  Rasmus  <address@hidden>
+
+       Update Org to v9.1.1
+
+       Please see etc/ORG-NEWS for major changes.
+
+2017-09-18  Michael Albinus  <address@hidden>
+
+       Cleanup in files-tests.el
+
+       * test/lisp/files-tests.el (files-tests--make-directory)
+       (files-tests--copy-directory): Cleanup temporary directories.
+
+2017-09-18  Paul Eggert  <address@hidden>
+
+       Remove old cl-assert calls in 'newline'
+
+       * lisp/simple.el (newline): Remove cl-assert calls
+       that didn't seem to be helping us debug Bug#18913,
+       and that caused problems as reported in Bug#28280.
+       Suggested by Glenn Morris (Bug#28280#8).
+
+2017-09-18  Paul Eggert  <address@hidden>
+
+       Avoid crash with C-g C-g in GC
+
+       Problem reported by Richard Stallman (Bug#17406).
+       Based on fix suggested by Eli Zaretskii (Bug#28279#16).
+       * src/term.c (tty_send_additional_strings):
+       Use only safe accessors, to avoid crash when C-g C-g in GC.
+
+2017-09-18  Paul Eggert  <address@hidden>
+
+       Fix format-time-string %Z bug with negative tz
+
+       * src/editfns.c (tzlookup): Fix sign error in %Z when a purely
+       numeric zone is negative (Bug#28746).
+       * test/src/editfns-tests.el (format-time-string-with-zone):
+       Add test for this bug.
+
+2017-09-18  Paul Eggert  <address@hidden>
+
+       message-citation-line-format %Z is now tz name
+
+       * etc/NEWS:
+       * lisp/gnus/message.el (message-citation-line-format):
+       Fix doc to match new behavior (Bug#28476).
+
+2017-09-18  Mark Oteiza  <address@hidden>
+
+       Use doc-view or pdf-tools on any window-system
+
+       * lisp/net/mailcap.el (mailcap-mime-data): Simply check for
+       window-system.
+
+2017-09-18  Paul Eggert  <address@hidden>
+
+       Fix bug with min and max and NaNs
+
+       * src/data.c (minmax_driver): Fix bug with (min 0 NaN), which
+       mistakenly yielded 0.  Also, pacify GCC in a better way.
+       * test/src/data-tests.el (data-tests-min): Test for the bug.
+
+2017-09-17  Paul Eggert  <address@hidden>
+
+       Fix recently-introduced copy-directory bug
+
+       Problem reported by Andrew Christianson (Bug#28451):
+       * lisp/files.el (copy-directory): If COPY-CONTENTS, make the
+       destination directory if it does not exist, even if it is a
+       directory name.  Simplify, and omit unnecessary test for an
+       already-existing non-directory target, since make-directory
+       diagnoses that for us now.
+       * test/lisp/files-tests.el (files-tests--copy-directory):
+       Test for this bug.
+
+2017-09-17  Paul Eggert  <address@hidden>
+
+       Merge from Gnulib
+
+       This incorporates:
+       2017-09-16 manywarnings: port to GCC on 64-bit MS-Windows
+       2017-09-13 all: Replace many more http URLs by https URLs
+       * build-aux/config.guess, build-aux/config.sub:
+       * build-aux/gitlog-to-changelog, doc/misc/texinfo.tex:
+       * lib/allocator.h, lib/count-leading-zeros.h:
+       * lib/count-trailing-zeros.h, lib/dup2.c, lib/filevercmp.c:
+       * lib/fstatat.c, lib/fsync.c, lib/ftoastr.c, lib/ftoastr.h:
+       * lib/intprops.h, lib/signal.in.h, lib/stdio-impl.h, lib/stdio.in.h:
+       * lib/unistd.in.h, lib/utimens.c, m4/alloca.m4, m4/extern-inline.m4:
+       * m4/fstatat.m4, m4/gnulib-common.m4, m4/manywarnings.m4:
+       * m4/std-gnu11.m4, m4/sys_types_h.m4, m4/vararrays.m4:
+       Copy from Gnulib.
+       * lib/gnulib.mk.in: Regenerate.
+
+2017-09-17  Michael Albinus  <address@hidden>
+
+       Fix compatibility problem in Tramp
+
+       * lisp/net/tramp.el (tramp-interrupt-process): Better error handling.
+
+       * lisp/net/tramp-compat.el (default-toplevel-value): Move up.
+       (top): Do not call `tramp-change-syntax' anymore.
+       (tramp-compat-directory-name-p): New defalias.
+
+       * lisp/net/tramp-adb.el (tramp-adb-handle-copy-file):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-copy-directory):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
+       (tramp-smb-handle-copy-file): Use it.
+
+       * test/lisp/net/tramp-tests.el (tramp-test28-interrupt-process):
+       Modify test.
+
+2017-09-17  Eli Zaretskii  <address@hidden>
+
+       Avoid GCC 7 compilation warning in eval.c
+
+       * src/eval.c (push_handler_nosignal): Use CACHEABLE to work around
+       GCC compilation warning.  Suggested by Paul Eggert <address@hidden>
+       in http://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00492.html.
+
+2017-09-17  Michael Albinus  <address@hidden>
+
+       Adapt Tramp version.  Do not merge
+
+       * doc/misc/trampver.texi:
+       * lisp/net/trampver.el: Change version to "2.3.3.26.1".
+       (customize-package-emacs-version-alist): Add Tramp version
+       integrated in Emacs 26.1.
+
+2017-09-17  Tom Tromey  <address@hidden>
+
+       Search for Syntax section when viewing MDN
+
+       * lisp/textmodes/css-mode.el (css--mdn-after-render): Also search for
+       "Syntax" section.
+
+2017-09-17  Tom Tromey  <address@hidden>
+
+       Allow smerge-keep-current to work for empty hunks
+
+       Bug#25555
+       * lisp/vc/smerge-mode.el (smerge-get-current): Allow point to be at
+       match-end.
+       * test/lisp/vc/smerge-mode-tests.el: New file.
+
+2017-09-17  Tom Tromey  <address@hidden>
+
+       Call vc-setup-buffer in vc-git-log-{in,out}going
+
+       Bug#28427:
+       * lisp/vc/vc-git.el (vc-git-log-incoming, vc-git-log-outgoing): Call
+       vc-setup-buffer.
+
+2017-09-17  Stefan Monnier  <address@hidden>
+
+       Fix last change to textmodes/page-ext.el
+
+       * lisp/textmodes/page-ext.el (pages-directory): Make buffer writable
+       while we build it (bug#28431).
+
+2017-09-16  Glenn Morris  <address@hidden>
+
+       * test/src/lcms-tests.el (lcms-cri-cam02-ucs): Skip if lcms2 not 
present.
+
+2017-09-16  Glenn Morris  <address@hidden>
+
+       * test/src/lcms-tests.el (lcms-whitepoint): Skip if lcms2 not present.
+
+       (cherry picked from commit 8081df26911c63aadfce4ee8f6a7223d814baeaf)
+
+2017-09-16  Eli Zaretskii  <address@hidden>
+
+       Fix compilation warning in etags.c
+
+       * lib-src/etags.c (etags_mktmp) [DOS_NT]: Don't dereference a NULL
+       pointer.  Reported by Richard Copley <address@hidden>.
+
+2017-09-16  Mark Oteiza  <address@hidden>
+
+       Add lisp variable lcms-d65-xyz
+
+       This serves as the default optional argument for functions in this
+       library.
+       * src/lcms.c (lcms-d65-xyz): New variable.
+       (lcms-cam02-ucs): Use it.  Use better word in docstring.  Fix bug
+       color1 -> color2.
+       * test/src/lcms-tests.el: Add some tests for lcms-cri-cam02-ucs.
+       (lcms-colorspacious-d65): New variable.
+
+2017-09-16  Gemini Lasswell  <address@hidden>
+
+       * lisp/emacs-lisp/cl-macs.el (cl-letf): Fix Edebug spec (bug#24765)
+
+2017-09-16  Andy Moreton  <address@hidden>
+
+       Avoid MinGW64 compiler warnings in unexw32.c
+
+       * src/unexw32.c (pDWP) [MINGW_W64]: Define to "16llx" only for the
+       64-bit build.
+
+2017-09-16  Eli Zaretskii  <address@hidden>
+
+       Start emacs-26 release branch
+
+       * configure.ac:
+       * nt/README.W32:
+       * README:
+       * msdos/sed2v2.inp: Increment Emacs version to 26.0.60.
+
+       * lisp/cus-edit.el (customize-changed-options-previous-release):
+       Update value to "25.3".
+
+2017-09-16  Alan Mackenzie  <address@hidden>
+
+       Cope better with C++ and Objective-C protection keywords in class 
declarations
+
+       This fix fixes the fontification of a method inside a class at the time 
it is
+       typed, when there is a protection keyword clause preceding it.
+
+       * lisp/progmodes/cc-engine.el (c-forward-keyword-clause): Handle 
protection
+       keywords.
+       (c-looking-at-decl-block): Avoid scanning forward over protection 
keyword
+       clauses too eagerly.
+
+       * lisp/progmodes/cc-langs.el (c-protection-key 
c-post-protection-token): New
+       lang defconsts and defvars.
+
+       * lisp/progmodes/cc-mode.el (c-fl-decl-start): When we encounter a 
protection
+       keyword following a semicolon or brace, move forward over it before 
attempting
+       to parse a type.
+
+2017-09-16  Eli Zaretskii  <address@hidden>
+
+       Fix order of sorted overlays returned by 'overlays-at'
+
+       * src/buffer.c (Foverlays_at): If SORTED is non-nil, reverse the
+       list of results, to have their order as per the documentation.
+       (Bug#28390)
+
+       * etc/NEWS: Mention the change in the behavior of overlays-at.
+
+2017-09-16  Eli Zaretskii  <address@hidden>
+
+       Disable execution of unsafe Lisp by Enriched Text mode
+
+       * src/xdisp.c (handle_display_spec): If the display property is
+       wrapped in 'disable-eval' form, disable Lisp evaluation while
+       processing this property.
+       (handle_single_display_spec): Accept new argument ENABLE_EVAL_P.
+       If that argument is false, don't evaluate Lisp while processing
+       display properties.
+
+       * lisp/textmodes/enriched.el
+       (enriched-allow-eval-in-display-props): New defcustom.
+       (enriched-decode-display-prop): If
+       enriched-allow-eval-in-display-props is nil, wrap the display
+       property with 'disable-eval' to disable Lisp evaluation when the
+       display property is processed for display.  (Bug#28350)
+       * lisp/gnus/mm-view.el (mm-inline-text): Re-enable processing of
+       enriched text.
+
+       * doc/lispref/display.texi (Display Property): Document the
+       'disable-eval' wrapping of 'display' properties.
+       * doc/emacs/text.texi (Enriched Properties): Document
+       'enriched-allow-eval-in-display-props'.
+
+       * etc/NEWS: Describe the security issues with Enriched Text mode
+       and their solution.
+
+2017-09-16  Eli Zaretskii  <address@hidden>
+
+       Avoid MinGW64 compilation warning in w32.c
+
+       * src/w32.c (sys_strerror): Provide a prototype for MinGW64.
+
+2017-09-16  Eli Zaretskii  <address@hidden>
+
+       Fix MS-Windows build broken by recent changes in lcms.c
+
+       * src/lcms.c [WINDOWSNT]: Define types for cmsWhitePointFromTemp
+       and cmsxyY2XYZ function pointers.
+       (init_lcms_functions) [WINDOWSNT]: Load cmsWhitePointFromTemp and
+       cmsxyY2XYZ from liblcms2.
+       (cmsWhitePointFromTemp, cmsxyY2XYZ) [WINDOWSNT]: Redirect to the
+       corresponding function pointers.
+       (Flcms_temp_to_white_point): Minor stylistic changes.  Doc fix.
+       (syms_of_lcms2): Defsubr Slcms_temp_to_white_point.
+
+2017-09-16  Eli Zaretskii  <address@hidden>
+
+       Avoid GCC 7 compilation warning in data.c
+
+       * src/data.c (minmax_driver): Use UNINIT to avoid compilation
+       warnings.  Reported by Fabrice Popineau
+       <address@hidden>.
+
+2017-09-16  Mark Oteiza  <address@hidden>
+
+       Add lcms-temp->white-point and initial tests
+
+       * src/lcms.c (lcms-temp->white-point): New function.
+       * test/src/lcms-tests.el: New file.
+
+2017-09-16  Mark Oteiza  <address@hidden>
+
+       Use cl-print in timer list
+
+       * lisp/emacs-lisp/timer-list.el (timer-list): Use cl-print
+       for handling functions.
+       (timer-list-mode): Capitalize major mode name.  Set bidi direction
+       as in tabulated-list-mode.
+
+2017-09-15  Vincent Belaïche  <address@hidden>
+
+       Make landscape layout with geometry package rather than a PostScript 
special.
+
+       * lisp/calendar/cal-tex.el (cal-tex-preamble): Make 12pt the
+       default class option.
+       (cal-tex-year, cal-tex-cursor-month-landscape): Pass landscape
+       request to `cal-tex-insert-preamble' function call within the
+       class option string.
+       (cal-tex-cursor-month): Don't pass any longer "12pt" argument
+       to `cal-tex-insert-preamble' function, as it is default.
+       (cal-tex-insert-preamble): Suppress landscape and size
+       argument, and replace them by a class-options string
+       argument. Do not insert any longer "\special{landscape}" in
+       case of landscape layout, as the job is made by the geometry
+       package.
+
+2017-09-15  Mark Oteiza  <address@hidden>
+
+       * lisp/json.el (json-read-keyword): Revert previous change to catch EOL.
+
+2017-09-15  Eli Zaretskii  <address@hidden>
+
+       One more attempt to avoid GCC 7 warnings in dispnew.c
+
+       * src/dispnew.c (adjust_glyph_matrix): Use eassume instead of
+       eassert, to avoid compilation warnings about NULL pointer
+       dereferences.
+
+2017-09-15  Mark Oteiza  <address@hidden>
+
+       Fix color-distance docstring
+
+       Also feed the translated color to the metric argument.
+       * src/xfaces.c (color-distance): Reword docstring to be more helpful.
+       Avoid duplicating effort in lcms2 by passing the translated 16 bit RGB
+       instead of the function's color arguments.
+
+2017-09-15  Michael Albinus  <address@hidden>
+
+       Improve Tramp behaviour according to bug#27986
+
+       * lisp/net/tramp-adb.el (tramp-adb-handle-copy-file):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-copy-directory):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
+       (tramp-smb-handle-copy-file): Check, that NEWNAME is a
+       directory name when existing.  Use `file-name-as-directory'
+       where appropriate.
+
+2017-09-15  Mark Oteiza  <address@hidden>
+
+       More JSON optimization
+
+       Last I checked, inlining json-skip-whitespace didn't make much
+       difference.  However, changing defsubsts to define-inline results
+       in roughly 15% reduction in read time on a 200K file.
+       * lisp/json.el (json-advance, json-peek, json-pop):
+       (json-skip-whitespace): Inline with define-inline.
+       (json-read-keyword): Don't use whitespace syntax.
+       (json-add-to-object): Simpler condition.
+
+2017-09-15  Eli Zaretskii  <address@hidden>
+
+       Avoid crashes due to invalid error forms from sentinels/filters
+
+       * src/process.c (exec_sentinel_error_handler): Make sure the error
+       form passed to cmd_error_internal is a cons cell.  (Bug#28430)
+
+2017-09-15  Eli Zaretskii  <address@hidden>
+
+       Avoid compilation warnings with GCC 7 on MS-Windows
+
+       * src/w32term.c (w32_setup_relief_color, construct_mouse_click)
+       (w32_read_socket): Initialize variables to shut up bogus
+       compilation warnings from GCC 7.
+       * src/unexw32.c (COPY_CHUNK, COPY_PROC_CHUNK): Cast to DWORD_PTR
+       to avoid compiler warnings about printing signed values using %x
+       format spec.
+       * src/dispnew.c (adjust_glyph_matrix): Add eassert to avoid
+       compiler warning about possible NULL pointer dereference.
+       * src/lisp.h (pI): Tweak the definition some more for MinGW64.
+
+2017-09-15  Martin Rudalics  <address@hidden>
+
+       Define gnutls_rnd for WINDOWSNT and HAVE_GNUTLS3 case only
+
+       * src/fns.c (gnutls_rnd): Define for WINDOWSNT and HAVE_GNUTLS3
+       case only to avoid unused macros warning otherwise.
+
+2017-09-15  Martin Rudalics  <address@hidden>
+
+       In w32heap.c bump up DUMPED_HEAP_SIZE
+
+       * src/w32heap.c (DUMPED_HEAP_SIZE): Bump up DUMPED_HEAP_SIZE
+       to 13*1024*1024 for 32-bit non-wide-integer builds.
+
+2017-09-15  Mark Oteiza  <address@hidden>
+
+       Bind n,p in timer-list
+
+       * lisp/emacs-lisp/timer-list.el (timer-list-mode-map): Bind n and p
+       to next- and previous-line, respectively.
+
+2017-09-14  Glenn Morris  <address@hidden>
+
+       * lisp/net/tls.el (tls-program): Fix :version.
+
+2017-09-14  Eli Zaretskii  <address@hidden>
+
+       * configure.ac (--with-lcms2, --without-lcms2): New options.
+
+2017-09-14  Eli Zaretskii  <address@hidden>
+
+       Avoid 64-bit compilation warnings in unexw32.c
+
+       * src/unexw32.c (pDWP): New macro.
+       (COPY_CHUNK, COPY_PROC_CHUNK): Declare 'count' as DWORD_PTR.  Use
+       pDWP for printing values that can be either 32-bit or 64-bit wide.
+
+2017-09-14  Eli Zaretskii  <address@hidden>
+
+       Fix warnings about formats in printf-like functions on MS-Windows
+
+       * src/lisp.h (pI) [__MINGW32__]: Provide definition that will
+       hopefully DTRT with both MinGW64 and mingw.org's MinGW.  See
+       http://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00171.html
+       for the details.
+       * src/conf_post.h (PRINTF_ARCHETYPE) [MINGW_W64]: Separate
+       definition specific to MinGW64.
+       (PRINTF_ARCHETYPE) [__MINGW32__]: For mingw.org's MinGW, use
+       __mingw_printf__ in ANSI-compatible mode.
+
+2017-09-14  Eli Zaretskii  <address@hidden>
+
+       Support lcms2 in MS-Windows builds
+
+       * lisp/term/w32-win.el (dynamic-library-alist): Include
+       association for the lcms2 library.
+
+       * src/lcms.c [WINDOWSNT]: Include windows.h and w32.h.  Use
+       DEF_DLL_FN to define pointers to dynamically loaded lcms2
+       functions.
+       (cmsCIE2000DeltaE, cmsCIECAM02Init, cmsCIECAM02Forward)
+       (cmsCIECAM02Done): New macros.
+       (init_lcms_functions, Flcms2_available_p): New functions.
+       (Flcms_cie_de2000, Flcms_cam02_ucs) [WINDOWSNT]: Call
+       init_lcms_functions.
+       (syms_of_lcms2): Defsubr lcms2-available-p.
+       * src/w32fns.c (syms_of_w32fns): DEFSYM Qlcms2.
+
+       * configure.ac: Include lcms2 in the final report and in
+       emacs_config_features.
+
+       * nt/INSTALL:
+       * nt/INSTALL.W64: Update with the information about lcms2 library.
+
+2017-09-14  Paul Eggert  <address@hidden>
+
+       Port renameat_noreplace to openSUSE 12.3
+
+       Problem reported by M. Nomiya in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00363.html
+       * src/sysdep.c (renameat_noreplace):
+       Call renameat2 only if CYGWIN.
+
+2017-09-14  Paul Eggert  <address@hidden>
+
+       Prefer HTTPS to FTP and HTTP in documentation
+
+       Most of this change is to boilerplate commentary such as license URLs.
+       This change was prompted by ftp://ftp.gnu.org's going-away party,
+       planned for November.  Change these FTP URLs to https://ftp.gnu.org
+       instead.  Make similar changes for URLs to other organizations moving
+       away from FTP.  Also, change HTTP to HTTPS for URLs to gnu.org and
+       fsf.org when this works, as this will further help defend against
+       man-in-the-middle attacks (for this part I omitted the MS-DOS and
+       MS-Windows sources and the test tarballs to keep the workload down).
+       HTTPS is not fully working to lists.gnu.org so I left those URLs alone
+       for now.
+
+2017-09-14  Paul Eggert  <address@hidden>
+
+       Prefer HTTPS to HTTP for gnu.org
+
+       This patch just changes code files; a followup companion patch
+       (much larger) will affect the commentary.  This part is
+       separated out to make it easier to review.
+       * .dir-locals.el (change-log-mode):
+       * lisp/org/org-info.el (org-info-other-documents)
+       (org-info-map-html-url):
+       * lisp/org/ox-html.el (org-html-creator-string):
+       * lisp/startup.el (fancy-startup-text, fancy-about-text)
+       (fancy-splash-head):
+       * test/lisp/ffap-tests.el (ffap-other-window--bug-25352):
+       * test/lisp/thingatpt-tests.el (thing-at-point-test-data):
+       Use HTTPS instead of HTTP.
+
+2017-09-13  Simen Heggestøyl  <address@hidden>
+
+       Add tests for color.el
+
+       * lisp/color.el (color-name-to-rgb, color-complement): Clarify in
+       docstrings that RGB triplets should use four digits per component.
+       (color-rgb-to-hsl): Break line to avoid "Hidden behind deeper element"
+       warning.
+
+       * test/lisp/color-tests.el: New file.
+
+2017-09-13  Lars Ingebrigtsen  <address@hidden>
+
+       Make gnutls-verify-error work again with url-retrieve-synchronously
+
+       * lisp/url/url-gw.el (url-open-stream): Only use :nowait if
+       we're doing async connections (bug#26835).
+
+       * lisp/url/url-parse.el (url): Add an asynchronous slot.
+
+       * lisp/url/url.el (url-asynchronous): New variable.
+       (url-retrieve-internal): Store the value.
+       (url-retrieve-synchronously): Bind the variable.
+
+2017-09-13  Michael Albinus  <address@hidden>
+
+       Improve backward compatibility of tramp-tests
+
+       * test/lisp/net/tramp-tests.el (seq): Don't require.
+       (tramp--test-emacs26-p): New defun.
+       (tramp-test10-write-region, tramp-test11-copy-file)
+       (tramp-test12-rename-file, tramp-test15-copy-directory)
+       (tramp-test21-file-links): Use it.
+       (tramp-test16-file-expand-wildcards): Use `copy-sequence'.
+
+2017-09-13  Michael Albinus  <address@hidden>
+
+       * lisp/net/trampver.el (customize-package-emacs-version-alist):
+
+       Add Tramp version integrated in Emacs 25.3.
+
+2017-09-13  Mark Oteiza  <address@hidden>
+
+       Add clarification to if-let* docstring
+
+       Also make its behaviour consistent with and-let* in that empty bindings
+       results in success, not failure.
+       * lisp/emacs-lisp/subr-x.el: Edit docstring, change else to then.
+
+2017-09-13  Lars Ingebrigtsen  <address@hidden>
+
+       Make fully qualified domain names more fully qualified
+
+       * lisp/gnus/message.el (message-make-fqdn): Don't try to use a
+       system-name without any periods as a fully qualified domain name.
+
+2017-09-13  Paul Eggert  <address@hidden>
+
+       Remove unused file lib/getopt_.h
+
+       * lib/getopt_.h: Remove.  It was renamed to lib/getopt.in.h etc.
+       on 2011-01-08, but I forgot to remove the old file.
+
+2017-09-13  Mark Oteiza  <address@hidden>
+
+       Remove "baroque" use of prefix argument from gensym
+
+       'cl-gensym' was simply moved here, but let us take an opportunity to
+       shed some historical baggage.
+       * lisp/subr.el (gensym): Remove special treatment of PREFIX as a
+       number.  Use "g" as prefix to differentiate from cl-gensym defaults.
+       * doc/lispref/symbols.texi (Creating Symbols): Update accordingly.
+       * lisp/emacs-lisp/cl-macs.el (cl--gensym-counter, cl-gensym): Restore.
+
+2017-09-13  Mark Oteiza  <address@hidden>
+
+       Provide an lcms2 feature
+
+       * src/lcms.c (syms_of_lcms2): Provide "lcms2".
+
+2017-09-13  Mark Oteiza  <address@hidden>
+
+       Add lcms2 interface
+
+       configure.ac: Add boilerplate for configuring and detecting liblcms2.
+       etc/NEWS: Mention new configure option and color-distance change.
+       src/Makefile.in: Add references to lcms.c and liblcms.
+       src/emacs.c: Define lcms2 symbols.
+       src/lcms.c: New file.
+       src/lisp.h: Add declaration for lcms2.
+       src/xfaces.c: Add optional METRIC argument.
+
+2017-09-13  Mark Oteiza  <address@hidden>
+
+       Add other D series white points and some simple conversions
+
+       * lisp/color.el (color-d75-xyz, color-d55-xyz, color-d50-xyz): New
+       constants.
+       (color-xyz-to-xyy, color-xyy-to-xyz, color-lab-to-lch):
+       (color-lch-to-lab): New functions.
+
+2017-09-13  Mark Oteiza  <address@hidden>
+
+       Permit non-integral color gradients
+
+       * lisp/color.el (color-gradient): Float the step-number.
+
+2017-09-13  Katsumi Yamaoka  <address@hidden>
+
+       Protect against malformed MIME messages that cause inf-loop (bugfix)
+
+       * lisp/gnus/gnus-art.el (gnus-article-mime-handles):
+       Protect against malformed MIME messages that cause inf-loop.
+
+2017-09-13  Paul Eggert  <address@hidden>
+
+       Merge from Gnulib
+
+       This incorporates:
+       2017-09-13 all: prefer https: URLs
+       This just changes http: to https: in comments,
+       in files copied from Gnulib.
+
+2017-09-13  Dmitry Gutov  <address@hidden>
+
+       Call vc-resynch-buffer in vc-git-resolve-when-done
+
+       * lisp/vc/vc-git.el (vc-git-resolve-when-done):
+       Call vc-resynch-buffer on the current file (bug#28121).
+       Move its autoload to before this function.
+
+2017-09-13  Eric Abrahamsen  <address@hidden>
+
+       Allow write-contents-functions to short-circuit buffer save
+
+       Bug#28412
+
+       * lisp/files.el (basic-save-buffer): Re-arrange function so that
+         write-contents-functions are run earlier. If they return non-nil,
+         consider the buffer saved without requiring the buffer to be
+         visiting a file.
+         (save-some-buffers): This function should consider any buffer with a
+         buffer-local value for write-contents-functions eligible for
+         saving.
+       * test/lisp/files-tests.el (files-test-no-file-write-contents): New
+         test.
+       * doc/lispref/files.texi (Saving Buffers): Mention in docs.
+       * etc/NEWS: And in NEWS.
+
+2017-09-12  Paul Eggert  <address@hidden>
+
+       * etc/NEWS.25: Copy from emacs-25 etc/NEWS.
+
+2017-09-12  Paul Eggert  <address@hidden>
+
+       Less chatter for ’make info/dir’
+
+       * Makefile.in (${srcdir}/info/dir): Tweak shell command so
+       that an ordinary make says just "GEN info/dir" rather than
+       also having a seemingly-unrelated mv line.
+
+2017-09-12  Paul Eggert  <address@hidden>
+
+       Tweak Gnus doc re gnus-copy-file
+
+       * doc/misc/gnus.texi (Saving Articles):
+       Document behavior with directory name targets (Bug#27986).
+       Problem reported by Katsumi Yamaoka in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00216.html
+
+2017-09-12  Mark Oteiza  <address@hidden>
+
+       Update uses of if-let and when-let
+
+       * lisp/dom.el (dom-previous-sibling):
+       * lisp/emacs-lisp/package.el (package--with-work-buffer):
+       (package--sort-deps-in-alist, package--sort-by-dependence):
+       (package-install-from-archive, package-install):
+       (package-menu-execute, package-menu--populate-new-package-list):
+       * lisp/filenotify.el (file-notify--rm-descriptor):
+       (file-notify--event-watched-file, file-notify--event-file-name):
+       (file-notify--event-file1-name, file-notify-rm-watch):
+       (file-notify-valid-p):
+       * lisp/gnus/message.el (message-toggle-image-thumbnails):
+       * lisp/gnus/nnimap.el (nnimap-request-move-article):
+       * lisp/ibuf-ext.el (ibuffer-repair-saved-filters):
+       * lisp/mpc.el (mpc-format):
+       * lisp/net/eww.el (eww-tag-meta, eww-process-text-input):
+       (eww-save-history):
+       * lisp/net/shr.el (shr-tag-base, shr-tag-object, shr-make-table-1):
+       * lisp/progmodes/prog-mode.el (prettify-symbols--post-command-hook):
+       * lisp/svg.el (svg-remove):
+       * lisp/textmodes/css-mode.el (css--named-color):
+       (css--colon-inside-funcall):
+       * lisp/textmodes/sgml-mode.el (html-current-buffer-classes):
+       (html-current-buffer-ids): Use if-let* and when-let* instead.
+
+2017-09-12  Mark Oteiza  <address@hidden>
+
+       Implement and-let*
+
+       This also includes changes to if-let and when-let.  The single tuple
+       special case is ambiguous, and binding a symbol to nil is not as
+       useful as binding it to its value outside the lexical scope of the
+       binding.  (Bug#28254)
+       * etc/NEWS: Mention.
+       * lisp/emacs-lisp/subr-x.el (internal--listify):
+       (internal--build-binding-value-form): Extend to account for
+       solitary symbols and (EXPR) items in binding varlist.
+       (if-let*, when-let*): Nix single tuple case and incumbent
+       bind-symbol-to-nil behavior.
+       (and-let*): New macro.
+       (if-let, when-let): Mark obsolete.  Redefine in terms of if-let*, so
+       they implicitly gain the new features without breaking existing code.
+       * test/lisp/emacs-lisp/subr-x-tests.el: Adjust tests for: lack of
+       single-tuple special case, lack of binding solitary symbols to nil,
+       and the introduction of uninterned symbols for (EXPR) bindings.  Add
+       SRFI-2 test suite adapted to Elisp.
+
+2017-09-12  Eli Zaretskii  <address@hidden>
+
+       Fix minor typos in the Emacs manual
+
+       * doc/emacs/text.texi (Org Organizer):
+       * doc/emacs/ack.texi (Acknowledgments): Fix spelling of Org nodes.
+
+2017-09-12  Paul Eggert  <address@hidden>
+
+       Merge Emacs 25.3 fixes
+
+       The security patches released for Emacs 25.3 were less drastic
+       than what we had immediately put into master.  Adjust master to
+       match 25.3 (Bug#28350).
+       * lisp/textmodes/enriched.el (enriched-translations):
+       Re-enable FUNCTION and display translations that are safe.
+       (enriched-handle-display-prop): Bring back.
+       (enriched-decode-display-prop): Bring back, but disable
+       the unsafe part.
+
+2017-09-12  Alan Mackenzie  <address@hidden>
+
+       Don't match C++ template delims starting within a token.  FIxes bug 
#28418.
+
+       * lisp/progmodes/cc-engine.el (c-restore-<>-properties): After failing 
an
+       attempted match from the start of a token (in particular, "<<"), move 
to the
+       next token rather than the nex character before searching for the next 
"<".
+
+2017-09-12  Mark Oteiza  <address@hidden>
+
+       Move gensym to core Elisp
+
+       * doc/lispref/symbols.texi (Creating Symbols): Mention gensym right
+       after make-symbol.
+       * etc/NEWS: Mention.
+       * lisp/emacs-lisp/cl-macs.el (cl--gensym-counter): Alias to
+       gensym-counter.
+       (cl-gensym): Alias to gensym.
+       * lisp/emacs-lisp/cl.el: Remove gensym from list of aliases.
+       * lisp/emacs-lisp/edebug.el (edebug-make-enter-wrapper):
+       * lisp/emacs-lisp/ert-x.el (ert-with-message-capture):
+       (ert--expand-should-1, ert--expand-should):
+       (ert--should-error-handle-error):
+       * lisp/emacs-lisp/generator.el (cps--gensym):
+       * lisp/emacs-lisp/gv.el (setf):
+       * lisp/emacs-lisp/inline.el (inline--do-letlisteval):
+       * lisp/emacs-lisp/pcase.el (pcase--make-docstring, pcase-dolist):
+       (pcase--funcall, pcase--u1): Use gensym.
+       * lisp/subr.el (gensym-counter): New variable.
+       (gensym): New function, assimilated from cl-lib.
+
+2017-09-12  Mark Oteiza  <address@hidden>
+
+       Fix cl-gentemp
+
+       * lisp/emacs-lisp/cl-macs.el (cl--gentemp-counter): New variable.
+       (cl-gentemp): Use it.  Change prefix to "T".
+
+2017-09-12  Sam Steingold  <address@hidden>
+
+       gnus-score-file-name: Do not append empty suffix.
+
+2017-09-12  Michael Albinus  <address@hidden>
+
+       Extend tramp-tests according to bug#27986
+
+       * test/lisp/net/tramp-tests.el (tramp-test11-copy-file)
+       (tramp-test12-rename-file, tramp-test15-copy-directory)
+       (tramp-test21-file-links): Extend tests.
+       (tramp-test13-make-directory, tramp-test14-delete-directory):
+       Specifiy error symbol in `should-error'.
+
+2017-09-12  Mark Oteiza  <address@hidden>
+
+       Add cl-print method for hash tables
+
+       * lisp/emacs-lisp/cl-print.el (cl-print-object): New method.
+
+2017-09-12  Mark Oteiza  <address@hidden>
+
+       Add docstrings to cl-print entry points
+
+       * lisp/emacs-lisp/cl-print.el (cl-print-compiled): Fix docstring.
+       (cl-prin1, cl-prin1-to-string): Add docstrings.
+
+2017-09-12  Glenn Morris  <address@hidden>
+
+       Improve reproducibility of generated leim-list.el
+
+       * lisp/international/quail.el (quail-update-leim-list-file):
+       Sort the quail directory listing, for more stable output.
+
+2017-09-11  Mark Oteiza  <address@hidden>
+
+       Include sxhash of object with printed bytecode
+
+       This printing, while succint, is rather opaque.  At least give an
+       immediate clue of whether different byte code printouts are for the
+       same or different byte code objects.
+       * lisp/emacs-lisp/cl-print.el (cl-print-object): Add object sxhash to
+       printed token "#<bytecode>".
+
+2017-09-11  Eli Zaretskii  <address@hidden>
+
+       Update documentation of 'max-lisp-eval-depth'
+
+       * doc/lispref/eval.texi (Eval): Update the documented default
+       value of 'max-lisp-eval-depth'.
+
+2017-09-11  Eli Zaretskii  <address@hidden>
+
+       Another place to produce debugging output in etags
+
+       * lib-src/etags.c (Ruby_functions): One more place to print
+       debugging output under --debug.
+
+2017-09-11  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of etags-related features
+
+       * doc/emacs/maintaining.texi (Looking Up Identifiers): Document
+       'xref-prompt-for-identifier'.  (Bug#28403)
+       (Etags Regexps): Document \D back references in etags regexps.
+
+2017-09-11  Alan Third  <address@hidden>
+
+       Fix macOS compatibility versions for vibrant dark theme (bug#28415)
+
+       * src/nsterm.m (ns_set_appearance, EmacsView::initFrameFromEmacs):
+       Change macOS compatibility from 10.9 to 10.10.
+
+2017-09-11  Michael Albinus  <address@hidden>
+
+       Further optimization in Tramp's file name decomposition
+
+       * lisp/net/tramp.el (tramp-syntax): Recompute all file name
+       components.  Call `custom-set-variables' after loading.
+       (tramp-build-prefix-format, tramp-build-prefix-regexp)
+       (tramp-build-method-regexp)
+       (tramp-build-postfix-method-format)
+       (tramp-build-postfix-method-regexp)
+       (tramp-build-prefix-ipv6-format)
+       (tramp-build-prefix-ipv6-regexp)
+       (tramp-build-postfix-ipv6-format)
+       (tramp-build-postfix-ipv6-regexp)
+       (tramp-build-postfix-host-format)
+       (tramp-build-postfix-host-regexp)
+       (tramp-build-file-name-regexp)
+       (tramp-build-completion-file-name-regexp): New defuns.
+       (tramp-prefix-format, tramp-prefix-regexp)
+       (tramp-method-regexp, tramp-postfix-method-format)
+       (tramp-postfix-method-regexp, tramp-prefix-ipv6-format)
+       (tramp-prefix-ipv6-regexp, tramp-postfix-ipv6-format)
+       (tramp-postfix-ipv6-regexp, tramp-postfix-host-format)
+       (tramp-postfix-host-regexp)
+       (tramp-remote-file-name-spec-regexp)
+       (tramp-file-name-structure, tramp-file-name-regexp)
+       (tramp-completion-file-name-regexp): Convert defuns into defvars.
+       (tramp-prefix-regexp-alist)
+       (tramp-postfix-method-regexp-alist)
+       (tramp-prefix-ipv6-regexp-alist)
+       (tramp-postfix-ipv6-regexp-alist)
+       (tramp-postfix-host-regexp-alist)
+       (tramp-remote-file-name-spec-regexp-alist): Remove.
+       (tramp-build-remote-file-name-spec-regexp)
+       (tramp-build-file-name-structure): Simplify.
+       (tramp-completion-file-name-regexp-alist): New defconst.
+       (tramp-tramp-file-p, tramp-dissect-file-name)
+       (tramp-make-tramp-file-name)
+       (tramp-completion-make-tramp-file-name)
+       (tramp-rfn-eshadow-update-overlay-regexp)
+       (tramp-register-file-name-handlers)
+       (tramp-completion-handle-file-name-all-completions)
+       (tramp-completion-dissect-file-name, tramp-clear-passwd):
+       * lisp/net/tramp-ftp.el (tramp-ftp-file-name-handler):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-vc-registered)
+       (tramp-compute-multi-hops): Use variables but functions for
+       file name components.
+
+       * test/lisp/net/tramp-tests.el (tramp-test24-file-name-completion):
+       Use variables but functions for file name components.
+
+2017-09-11  Paul Eggert  <address@hidden>
+
+       Port tramp-tests to new copy-directory behavior
+
+       * test/lisp/net/tramp-tests.el (tramp-test15-copy-directory):
+       Use directory name as arg for copy-directory when we want
+       the special behavior.
+
+2017-09-11  Paul Eggert  <address@hidden>
+
+       Adjust thumbs to new rename-file behavior
+
+       * etc/NEWS: Mention this.
+       * lisp/thumbs.el (thumbs-rename-images): Treat the destination
+       as special only if it is a directory name.  When there is
+       a marked list, turn the destination into a directory name
+       if it is not already.
+
+2017-09-11  Paul Eggert  <address@hidden>
+
+       Adjust ob-tangle to new copy-file behavior
+
+       * lisp/org/ob-tangle.el (org-babel-tangle-publish):
+       Port to new copy-file behavior.
+
+2017-09-11  Paul Eggert  <address@hidden>
+
+       Make gnus-copy-file act like copy-file etc.
+
+       * etc/NEWS: Mention this.
+       * lisp/gnus/gnus-util.el (gnus-copy-file): Treat the destination
+       as special only if it is a directory name.
+
+2017-09-11  Paul Eggert  <address@hidden>
+
+       Make write-file act like copy-file etc.
+
+       Change write-file to be consistent with the new behavior
+       of copy-file, etc.
+       * etc/NEWS: Mention this.
+       * lisp/files.el (write-file): Treat the destination as special
+       only if it is a directory name.
+
+2017-09-11  Paul Eggert  <address@hidden>
+
+       Make copy-directory act like copy-file etc.
+
+       Do the special dance with the destination only if it is a
+       directory name, for consistency with copy-file etc. (Bug#27986).
+       * doc/emacs/files.texi (Copying and Naming):
+       * doc/lispref/files.texi (Create/Delete Dirs):
+       * etc/NEWS: Document this.
+       * lisp/files.el (copy-directory): Treat NEWNAME as special
+       only if it is a directory name.
+
+2017-09-11  Paul Eggert  <address@hidden>
+
+       Fix some make-directory bugs
+
+       * lisp/files.el (files--ensure-directory): New function.
+       (make-directory): Use it to avoid bugs when (make-directory FOO t)
+       is invoked on a non-directory, or on a directory hierarchy that
+       is being built by some other process while Emacs is running.
+       * test/lisp/files-tests.el (files-tests--make-directory): New test.
+
+2017-09-11  Paul Eggert  <address@hidden>
+
+       Fix race with rename-file etc. with dir NEWNAME
+
+       This changes the behavior of rename-file etc. slightly.
+       The old behavior mostly disagreed with the documentation, and had
+       a race condition bug that could allow attackers to modify victims'
+       write-protected directories (Bug#27986).
+       * doc/lispref/files.texi (Changing Files): Document that in
+       rename-file etc., NEWFILE is special if it is a directory name.
+       * etc/NEWS: Document the change in behavior.
+       * src/fileio.c (directory_like): Remove.  All uses removed.
+       (expand_cp_target): Test only whether NEWNAME is a directory name,
+       not whether it is currently a directory.  This avoids a race.
+       (Fcopy_file, Frename_file, Fadd_name_to_file, Fmake_symbolic_link):
+       Document behavior if NEWNAME is a directory name.
+       (Frename_file): Simplify now that the destdir behavior occurs
+       only when NEWNAME is a directory name.
+       * test/lisp/net/tramp-tests.el (tramp-test11-copy-file)
+       (tramp-test12-rename-file, tramp--test-check-files):
+       Adjust tests to match new behavior.
+
+2017-09-10  Eli Zaretskii  <address@hidden>
+
+       Extend --debug printouts in etags
+
+       * lib-src/etags.c (regex_tag_multiline, readline): Under
+       "--debug", print tags found via regexps.
+
+2017-09-10  Eli Zaretskii  <address@hidden>
+
+       Add --debug option to etags
+
+       * lib-src/etags.c (make_tag): Print found tags under --debug.
+       (longopts): Add --debug.
+
+2017-09-10  Paul Eggert  <address@hidden>
+
+       Spelling fixes
+
+       * lisp/progmodes/cc-langs.el:
+       (c-ambiguous-overloadable-or-identifier-prefixes): Rename from
+       c-ambiguous-overloadable-or-identifier-prefices.  Caller changed.
+
+2017-09-10  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-09-08 stddef: Avoid conflict with system-defined max_align_t
+       2017-08-24 warnings: fix compilation with old autoconf
+       2017-08-23 glob: merge from glibc with Zanella glob changes
+       2017-08-17 random: Fix test compilation failure on Cygwin 1.5.25
+       * doc/misc/texinfo.tex, lib/flexmember.h, lib/stddef.in.h:
+       * lib/stdlib.in.h, m4/manywarnings.m4, m4/stdlib_h.m4:
+       * m4/warnings.m4:
+       Copy from Gnulib.
+       * lib/gnulib.mk.in: Regenerate.
+
+2017-09-10  Ken Brown  <address@hidden>
+
+       Implement renameat_noreplace on recent Cygwin
+
+       * src/sysdep.c [CYGWIN]: Include cygwin/fs.h.
+       (renameat_noreplace) [RENAME_NOREPLACE]: Use renameat2.
+       (Bug#27986)
+
+2017-09-10  Eli Zaretskii  <address@hidden>
+
+       Avoid warnings about file names in autoloads on MS-Windows
+
+       * configure.ac (srcdir) [mingw32]: Downcase the drive letter, to
+       avoid warnings from find-file-noselect when making autoloads.  For
+       the details, see
+       http://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00049.html.
+
+2017-09-10  Mark Oteiza  <address@hidden>
+
+       Avoid looking at localized strings
+
+       * lisp/xdg.el (xdg-desktop-read-group): Add condition to catch
+       localized strings.
+       * test/lisp/xdg-tests.el (xdg-desktop-parsing): Add test to ensure
+       parsing l10n strings doesn't error but is essentially a no-op.
+
+2017-09-10  Paul Eggert  <address@hidden>
+
+       * etc/NEWS.25: Document 25.3 changes.
+
+2017-09-10  Lars Ingebrigtsen  <address@hidden>
+
+       Remove unsafe enriched mode translations
+
+       * lisp/gnus/mm-view.el (mm-inline-text):
+       Do not worry about enriched or richtext type.
+       * lisp/textmodes/enriched.el (enriched-translations):
+       Remove translations for FUNCTION, display (Bug#28350).
+       (enriched-handle-display-prop, enriched-decode-display-prop): Remove.
+
+2017-09-09  Paul Eggert  <address@hidden>
+
+       Be more consistent about "directory name" in manual
+
+       This clarifies the documentation, partly in response to the
+       discussion in Bug#27986.
+
+2017-09-09  Eli Zaretskii  <address@hidden>
+
+       Remove more compilation warnings in MinGW64 build
+
+       * src/w32.c (faccessat, map_w32_filename):
+       * src/w32fns.c (w32_wnd_proc):
+       * src/w32term.c (w32_horizontal_scroll_bar_handle_click)
+       (w32_scroll_bar_handle_click): Use FALLTHROUGH to avoid compiler
+       warnings with GCC 7 and later.
+
+2017-09-09  Paul Eggert  <address@hidden>
+
+       Improve --enable-gcc-warnings for MinGW64
+
+       This partially reverts my 2016-05-30 patch.  Apparently MinGW64
+       still requires pacifications that GCC 7.1.1 x86-64 (Fedora 26)
+       does not.  Also, pacify tparam.c, which isn’t used on Fedora.
+       * lib-src/etags.c (process_file_name, TeX_commands):
+       * src/buffer.c (fix_overlays_before):
+       * src/data.c (Fmake_variable_buffer_local, cons_to_unsigned)
+       (cons_to_signed):
+       * src/editfns.c (Ftranslate_region_internal):
+       Prefer UNINIT to some stray value, as this simplifies
+       code-reading later.
+       * src/eval.c (CACHEABLE): New macro.
+       (internal_lisp_condition_case): Use it.
+       * src/tparam.c (tparam1): Use FALLTHROUGH to pacify GCC.
+
+2017-09-09  Eli Zaretskii  <address@hidden>
+
+       Fix font-lock in Compilation mode
+
+       * lisp/progmodes/compile.el (compilation-face): Restore function
+       lost during recent changes.  (Bug#28349)
+
+2017-09-09  Mark Oteiza  <address@hidden>
+
+       Add function to read all entries in a group
+
+       Use that to extend xdg-desktop-read-file.  Also fix a bug where all
+       entries in all groups were read and returned by xdg-desktop-read-file.
+       * lisp/xdg.el (xdg-desktop-read-group): New function.
+       (xdg-desktop-read-file): Use it.
+       * test/data/xdg/malformed.desktop: New file.
+       * test/data/xdg/test.desktop: Add another section.
+       * test/lisp/xdg-tests.el (xdg-desktop-parsing): Test presence of a key
+       in another group.  Test reading a prescribed group.  Test detecting a
+       malformed key=value.
+
+2017-09-09  Gemini Lasswell  <address@hidden>
+
+       Reduce Tramp's memory usage
+
+       Construct Tramp syntax strings and regular expressions once instead
+       of every time they are used, and store them in alists keyed by Tramp
+       syntax.
+       * tramp.el (tramp-build-remote-file-name-spec-regexp)
+       (tramp-build-file-name-structure): New functions.
+       (tramp-prefix-format-alist, tramp-prefix-regexp-alist)
+       (tramp-method-regexp-alist)
+       (tramp-postfix-method-format-alist)
+       (tramp-postfix-method-regexp-alist)
+       (tramp-prefix-ipv6-format-alist, tramp-prefix-ipv6-regexp-alist)
+       (tramp-postfix-ipv6-format-alist)
+       (tramp-postfix-ipv6-regexp-alist)
+       (tramp-postfix-host-format-alist)
+       (tramp-postfix-host-regexp-alist)
+       (tramp-remote-file-name-spec-regexp-alist)
+       (tramp-file-name-structure-alist): New constants.
+       (tramp-lookup-syntax): New function.
+       (tramp-prefix-format, tramp-prefix-regexp, tramp-method-regexp)
+       (tramp-postfix-method-format, tramp-postfix-method-regexp)
+       (tramp-prefix-ipv6-format, tramp-prefix-ipv6-regexp)
+       (tramp-postfix-ipv6-format, tramp-postfix-ipv6-regexp)
+       (tramp-postfix-host-format, tramp-postfix-host-regexp)
+       (tramp-remote-file-name-spec-regexp, tramp-file-name-structure):
+       Use it.
+
+2017-09-09  Eli Zaretskii  <address@hidden>
+
+       Fix compilation warnings in MinGW64 build using GCC 7
+
+       Reported by Richard Copley <address@hidden>.
+       * src/w32heap.c (init_heap): Declare enable_lfh only for
+       mingw.org's MinGW build.
+
+       * src/w32console.c (w32con_write_glyphs):
+       * src/unexw32.c (get_section_info, COPY_CHUNK, unexec): Fix some
+       mismatches of data type vs format spec.
+
+       * src/w32fns.c (compute_tip_xy):
+       * src/w32proc.c (stop_timer_thread):
+       * src/w32notify.c (remove_watch):
+       * src/eval.c (internal_lisp_condition_case):
+       * src/editfns.c (Ftranslate_region_internal):
+       * src/data.c (Fmake_variable_buffer_local, cons_to_unsigned)
+       (cons_to_signed):
+       * src/buffer.c (fix_overlays_before): Initialize variables to
+       avoid compiler warnings.
+
+       * lib-src/etags.c (TeX_commands, process_file_name): Initialize
+       variables to avoid compilation warnings.
+
+2017-09-09  Eli Zaretskii  <address@hidden>
+
+       Avoid infloop when scrolling under scroll-preserve-screen-position
+
+       * src/window.c (window_scroll_pixel_based): If screen position is
+       to be preserved, make sure its recorded Y coordinate is outside
+       the scroll margin.  (Bug#28342)
+
+2017-09-09  Michael Albinus  <address@hidden>
+
+       Clarification in tramp-texi
+
+       * doc/misc/tramp.texi (Connection caching): Two connections are
+       regarded as different now when they differ in the port number only.
+
+2017-09-09  Miles Bader  <address@hidden>
+
+       * admin/quick-install-emacs: Tweak configure.ac parsing
+
+2017-09-09  Miles Bader  <address@hidden>
+
+       Use text-property buttons in rcirc-markup-urls
+
+       * lisp/net/rcirc.el (rcirc-markup-urls): Use `make-text-button'
+       instead of `make-button'; the former is much more efficient in large
+       buffers, and for the purposes of rcirc, changes no functionality.
+
+2017-09-08  Eli Zaretskii  <address@hidden>
+
+       Fix line-pixel-height for lines of variable height
+
+       * src/xdisp.c (Fline_pixel_height): Start moving from the
+       beginning of the screen line, to capture the full metrics of the
+       line.  (Bug#28391)
+
+2017-09-08  Alex Branham  <address@hidden>  (tiny change)
+
+       New variable 'dired-confirm-killing-deleted-buffers'
+
+       * lisp/dired-x.el (dired-clean-confirm-killing-deleted-buffers):
+       New variable.
+       * lisp/dired.el (dired-clean-up-after-deletion): Kill buffers
+       visiting deleted files without confirming if
+       dired-clean-confirm-killing-deleted-buffers is nil.  (Bug#28373)
+       * etc/NEWS: Document the change.
+
+2017-09-08  Alfred M. Szmidt  <address@hidden>  (tiny change)
+
+       Support SVN files with svn:externals property
+
+       * lisp/vc/vc-svn.el (vc-svn-parse-status): Don't ignore files
+       marked with the svn:externals property.
+
+2017-09-08  Alfred M. Szmidt  <address@hidden>  (tiny change)
+
+       List locally removed files in vc-dir with SVN back-end
+
+       * lisp/vc/vc-svn.el (vc-svn-after-dir-status): List files marked
+       with ?! as needs-update.
+
+2017-09-08  Ken Olum  <address@hidden>
+
+       Fix Rmail editing with reapplying encoding to message body
+
+       * lisp/mail/rmailedit.el (rmail-cease-edit):  If no
+       content-type in edited headers, look for one in original
+       headers and add it to edited headers.  (Bug #26918)
+       Use a marker to track start of new body, so that
+       content-transfer-encoding gets applied only to body.  (Bug #27353).
+       Ensure blank line at end of message after encoding, not
+       before.
+
+2017-09-08  Eli Zaretskii  <address@hidden>
+
+       Document last change in dired.el
+
+       * etc/NEWS (Dired): Document the last change in dired.el.
+       (Bug#27435)
+
+2017-09-08  Tak Kunihiro  <address@hidden>
+
+       Make mouse clicks in Dired more customizable
+
+       * lisp/dired.el (dired-mouse-find-file): Allow callers to
+       specify functions to visit file/directory.
+       (dired-mouse-find-file-other-window)
+       (dired-mouse-find-file-other-frame): New functions to visit
+       files in another window/frame.  (Bug#27435)
+
+2017-09-08  Eli Zaretskii  <address@hidden>
+
+       Avoid compiler warnings on MS-Windows with GCC 6 and 7
+
+       * src/w32font.c (SUBRANGE): Use unsigned arithmetic for
+       bit-shifting, to avoid compiler warnings.
+       (w32font_text_extents): Tell GCC NGLYPHS is non-negative, to avoid
+       a warning.  For details of the warning, see
+       http://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00093.html.
+       * src/term.c (keys) [WINDOWSNT]: Don't define, as it is not used
+       in that build.
+       * src/sound.c (sound_perror): Ifdef away on WINDOWSNT, as this
+       function is not used in that build.
+
+       * configure.ac: Disable -Wsuggest-attribute=format on MS-Windows.
+
+2017-09-08  Eli Zaretskii  <address@hidden>
+
+       Fix 'directory-file-name' on DOS_NT systems as well
+
+       * src/fileio.c (directory_file_name) [DOS_NT]: Fix the DOS_NT case
+       to be consistent with last change.
+
+       * test/src/fileio-tests.el (fileio-tests--odd-symlink-chars):
+       Disable on MS-Windows.
+       (fileio-tests--directory-file-name-dos-nt)
+       (fileio-tests--file-name-as-directory-dos-nt): New tests.
+
+2017-09-08  Wilson Snyder  <address@hidden>
+
+       Fix various verilog-mode.el issues.
+
+       * lisp/progmodes/verilog-mode.el (verilog-expand-dirnames): Fix 
expanding
+       "*/*", msg2284. Reported by Jonathan Ferguson.
+       (ignore-errors): Fix ignore-errors error on Emacs 22.3, bug1177. 
Reported
+       by Victor Lau.
+       (verilog-getopt, verilog-getopt-file) (verilog-library-flags,
+       verilog-substitute-file-name-path): Support -F in verilog getopt files,
+       bug1171. Reported by George Cuan.
+       (verilog-do-indent): Fix misindenting symbols starting with t,
+       bug1169. Reported by Hoai Tran.
+       (verilog-read-auto-template-middle): Fix slow template matching on
+       AUTOINST. Reported by Jeffrey Huynh.
+       (verilog-pretty-expr): The extra whitespace addition before "=" 
operators
+       is now done only if the whole assignment block contains the 2-character
+       "<=" operator.  Remove the unused argument _myre.  Use `unless',
+       `save-excursion' and `when' functions where possible.  Internal 
variables
+       refactored for clarity.  Follow elisp convention for closing 
parentheses.
+       By Kaushal Modi.
+       (verilog-get-lineup-indent-2): Update docstring.  Internal variables
+       refactored for clarity.  Earlier EDPOS argument was expected to be a
+       marker; it is now renamed to END and is now expected to be a position.
+       Use `when' instead of `if'.  By Kaushal Modi.
+       (electric-verilog-terminate-line): Remove the unused second argument 
from
+       `verilog-pretty-expr' call.  By Kaushal Modi.
+       (verilog-calc-1): Fix indentation of a virtual class definition after a
+       typedef class, bug1080.  By Kaushal Modi.
+
+2017-09-08  Katsumi Yamaoka  <address@hidden>
+
+       Don't use summary window to visit group buffer (bugfix)
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-jump-to-group): Make sure that
+       the window to open the group buffer doesn't visit the summary buffer.
+       This fixes a bug: `gnus-summary-next-article' sometimes causes an error
+       by trying to select nonexistent summary window.
+
+2017-09-08  Paul Eggert  <address@hidden>
+
+       Fix bug: (directory-file-name "///") returned "//"
+
+       * src/fileio.c (directory_file_name): For "///" and longer,
+       return "/", not "//", as per POSIX.
+       * test/src/fileio-tests.el (fileio-tests--directory-file-name)
+       (fileio-tests--file-name-as-directory): New tests.
+
+2017-09-08  Paul Eggert  <address@hidden>
+
+       Remove obsolete vc-mistrust-permissions doc
+
+       * doc/emacs/vc1-xtra.texi (RCS and SCCS): Remove documentation
+       for vc-mistrust-permissions, which no longer exists.
+
+2017-09-07  Alan Third  <address@hidden>
+
+       Set frame size to actual requested size (bug#18215)
+
+       * src/nsterm.m (x_set_window_size): Don't use
+       FRAME_TEXT_TO_PIXEL_WIDTH or FRAME_TEXT_TO_PIXEL_HEIGHT.
+
+2017-09-07  Paul Eggert  <address@hidden>
+
+       autogen.sh: omit bogus chatter if no .git
+
+       Problem reported by Angelo Graziosi in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00045.html
+       * autogen.sh (git_config): Do not execut 'git' if $do_git fails.
+
+2017-09-07  Glenn Morris  <address@hidden>
+
+       Skip emacsclient tests if --enable-profiling was used
+
+       * test/lib-src/emacsclient-tests.el
+       (emacsclient-test-call-emacsclient): Make it a macro.
+       Handle "Profiling timer expired" return from emacsclient.  (Bug#28319)
+       (emacsclient-test-alternate-editor-allows-arguments)
+       (emacsclient-test-alternate-editor-allows-quotes): Update for above.
+
+2017-09-06  Eli Zaretskii  <address@hidden>
+
+       Fix a minor markup problem in ELisp manual
+
+       * doc/lispref/functions.texi (Mapping Functions): Fix the order of
+       @example and @group.  For the details, see
+       http://lists.gnu.org/archive/html/bug-texinfo/2017-09/msg00007.html.
+
+2017-09-06  Mark Oteiza  <address@hidden>
+
+       Add XDG desktop file parsing and tests
+
+       * lisp/xdg.el: Add support for Desktop Entry Specification.
+       (xdg--user-dirs-parse-line): Check if file is readable.
+       (xdg-desktop-group-regexp, xdg-desktop-entry-regexp): New variables.
+       (xdg--desktop-parse-line, xdg-desktop-read-file, xdg-desktop-strings):
+       New functions.
+       * test/lisp/xdg-tests.el:
+       * test/data/xdg/test.desktop:
+       * test/data/xdg/wrong.desktop: New files.
+
+2017-09-06  Glenn Morris  <address@hidden>
+
+       Allow for adjusting line length of test backtraces
+
+       * test/Makefile.in (TEST_BACKTRACE_LINE_LENGTH): New option.
+       (%.log): Respect backtrace line length.
+
+2017-09-06  Glenn Morris  <address@hidden>
+
+       Allow customizing line length of ert backtraces in batch mode
+
+       * lisp/emacs-lisp/ert.el (ert-batch-backtrace-right-margin):
+       Make it a user option.
+       (ert-run-tests-batch): Handle ert-batch-backtrace-right-margin nil.
+
+2017-09-06  Glenn Morris  <address@hidden>
+
+       Minor emacsclient-tests simplification
+
+       * test/lib-src/emacsclient-tests.el (emacsclient-test-emacs):
+       Simplify.  Also work when running installed.
+
+2017-09-06  Alan Third  <address@hidden>
+
+       Revert "Force screen update after drawing cursor glyph (bug#23774)"
+
+       This reverts commit 1b492fa5456e2b6face8d0856f11d17e432693b0.
+
+       See bug#28358
+
+2017-09-05  Mark Oteiza  <address@hidden>
+
+       Refactor some loops in mailcap.el
+
+       * lisp/net/mailcap.el (mailcap-mime-types):
+       (mailcap-file-default-commands): Convert nested maps to loops.
+
+2017-09-05  Glenn Morris  <address@hidden>
+
+       emacsclient-tests: remove some debug statements
+
+       * test/lib-src/emacsclient-tests.el
+       (emacsclient-test-call-emacsclient): Remove debug statements.
+
+2017-09-05  Simen Heggestøyl  <address@hidden>
+
+       Handle non-zero exit status from psql more gracefully
+
+       * lisp/progmodes/sql.el (sql-postgres-list-databases): Handle non-zero
+       exit statuses from `psql -ltX' more gracefully by returning nil.
+
+       * test/lisp/progmodes/sql-tests.el
+       (sql-tests-postgres-list-databases-error): New test.
+
+2017-09-05  Eli Zaretskii  <address@hidden>
+
+       Avoid losing Ctrl-C keystrokes in compilation mode on MS-Windows
+
+       * src/w32proc.c (sys_kill): Preserve the up/down state of the
+       Ctrl key across the simulated Ctrl-C keystroke.  (Bug#28348)
+
+2017-09-05  Andreas Schwab  <address@hidden>
+
+       * src/image.c (Fimagemagick_types): Doc fix.
+
+2017-09-05  Mark Oteiza  <address@hidden>
+
+       Move soundex.el test to a proper test
+
+       * test/lisp/soundex-tests.el: New file.
+       * lisp/soundex.el: Use lexical-binding.  Remove commented test.
+
+2017-09-05  Mark Oteiza  <address@hidden>
+
+       Add tests for mailcap.el
+
+       * test/data/mailcap/mime.types: New file.
+       * test/lisp/net/mailcap-tests.el: New file.
+
+2017-09-05  Michael Albinus  <address@hidden>
+
+       Doc precisment about remote link targets
+
+       * doc/lispref/files.texi (Truenames): Explain handling of
+       targets of `file-truename' and `make-symbolic-link', which
+       look like a remote file name.
+
+       * etc/NEWS: Precise examples for symlinks which look like
+       remote file names.  MUSTBENEW of `write-region' is not
+       propagated to file name handlers.
+
+2017-09-05  John Wiegley  <address@hidden>
+
+       Remove an opinionated section on "What Eshell is not"
+
+       I don't find this information to accurately reflect possible use cases
+       for Eshell; plus, it doesn't offer much in the way of information,
+       just opinion.
+
+2017-09-05  Ken Brown  <address@hidden>
+
+       Fix configure test for Xpm
+
+       Problem reported by Ashish Shukla in
+       https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00020.html.
+       * configure.ac (HAVE_XPM) [HAVE_X11]: Include X11/xpm.h instead of
+       noX/xpm.h in configure test.
+
+2017-09-04  Paul Eggert  <address@hidden>
+
+       Revert recent float→double Motif change
+
+       Problem reported by Martin Rudalics in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00014.html
+       * src/xterm.c (xm_scroll_callback, xaw_jump_callback)
+       (x_set_toolkit_scroll_bar_thumb)
+       (x_set_toolkit_horizontal_scroll_bar_thumb):
+       Go back to using ‘float’ temporaries rather than ‘double’.
+       Although quite possibly this masks an underlying bug,
+       we lack time to look into that now.
+
+2017-09-04  Glenn Morris  <address@hidden>
+
+       emacsclient-tests: add some debug statements
+
+       * test/lib-src/emacsclient-tests.el
+       (emacsclient-test-call-emacsclient): Add debug statements.
+
+2017-09-04  Michael Albinus  <address@hidden>
+
+       Work on Tramp's (symbolic) links
+
+       * doc/misc/tramp.texi (Traces and Profiles): Mention the
+       backtrace when tramp-verbose is greater than or equal to 10.
+
+       * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
+       Use `tramp-handle-add-name-to-file'.
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist): Use
+       `tramp-handle-add-name-to-file' and `tramp-handle-file-truename'.
+
+       * lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link): Improve.
+
+       * lisp/net/tramp-smb.el (tramp-smb-errors):
+       Add "NT_STATUS_CONNECTION_DISCONNECTED" and
+       "NT_STATUS_OBJECT_PATH_SYNTAX_BAD".
+       (tramp-smb-file-name-handler-alist): Use `tramp-handle-file-truename'.
+       (tramp-smb-do-file-attributes-with-stat): Return non-nil only
+       if one of the attributes is non-nil.
+       (tramp-smb-handle-file-local-copy): Use `file-truename'.
+       (tramp-smb-handle-file-truename): Move to tramp.el.
+       (tramp-smb-handle-insert-directory): Show symlinks.
+       (tramp-smb-handle-make-symbolic-link): Improve.
+       (tramp-smb-read-file-entry): Handle extended file modes in Samba.
+
+       * lisp/net/tramp.el (tramp-handle-add-name-to-file)
+       (tramp-handle-file-truename): New defuns.
+
+       * test/lisp/net/tramp-tests.el (tramp-test21-file-links): Extend test.
+       (tramp--test-check-files): Make check for "smb".
+
+2017-09-04  Mark Oteiza  <address@hidden>
+
+       Embed JSON readtable into json-read
+
+       Also unroll dispatch into a cond.
+       * lisp/json.el (json-readtable): Remove.
+       (json-readtable-dispatch): New macro.  Assimilate json-readtable.
+       (json-read): Use the macro.
+
+2017-09-04  Mark Oteiza  <address@hidden>
+
+       Hexify strings in EWW search queries
+
+       Previously, inputting "cats & dogs" would lose dogs because the
+       ampersand signifies a query parameter.  Instead, hexify each word while
+       preserving quotes with split-string.
+       * lisp/net/eww.el (eww--dwim-expand-url): Join hexified words together
+       with + separators, instead of replacing whitespace with +.
+
+2017-09-03  Glenn Morris  <address@hidden>
+
+       emacsclient-tests: call-process may return non-integer
+
+       * test/lib-src/emacsclient-tests.el
+       (emacsclient-test-alternate-editor-allows-arguments)
+       (emacsclient-test-alternate-editor-allows-quotes):
+       Handle non-integer return from call-process.
+
+2017-09-03  Eli Zaretskii  <address@hidden>
+
+       * lisp/simple.el (visual-line-mode): Doc fix.  (Bug#28337)
+
+2017-09-03  Alan Third  <address@hidden>
+
+       Force screen update after drawing cursor glyph (bug#23774)
+
+       * src/nsterm.m (ns_draw_window_cursor): Force a screen update after
+       drawing the glyph over the cursor.
+
+2017-09-03  Alan Mackenzie  <address@hidden>
+
+       Correct the fontification of quote marks after buffer changes in CC 
Mode.
+
+       * lisp/progmodes/cc-defs.el
+       (c-search-forward-char-property-with-value-on-char): New macro.
+
+       * lisp/progmodes/cc-mode.el (c-parse-quotes-before-change)
+       (c-parse-quotes-after-change): Rewrite the functions, simplifying
+       considerably, and removing unnecessary optimisations.  Invalidate two 
caches
+       after manipulating text properties.
+
+2017-09-03  Alan Mackenzie  <address@hidden>
+
+       Fix fontification of "operator~" in C++ Mode.
+
+       * lisp/progmodes/cc-langs.el 
(c-ambiguous-overloadable-or-identifier-prefices)
+       (c-ambiguous-overloadable-or-identifier-prefix-re): New 
c-lang-defconsts/vars.
+
+       * lisp/progmodes/cc-engine.el (c-forward-name): Do not try to parse "~" 
(and
+       two other symbols) as a cast without good evidence.  Prefer an 
overloaded
+       operator in ambiguous cases.
+
+2017-09-03  Martin Rudalics  <address@hidden>
+
+       In delete_frame do not delete terminal for any toolkit build
+
+       * src/frame.c (delete_frame): Neither delete terminal for
+       non-GTK toolkit builds (Bug#5802, Bug#21509, Bug#23499,
+       Bug#27816).
+
+2017-09-02  Philipp Stephani  <address@hidden>
+
+       Improve error messages for improper plists (Bug#27726)
+
+       * src/fns.c (Fplist_put, Flax_plist_get, Flax_plist_put)
+       (Fplist_member, syms_of_fns): Use ‘plistp’ as pseudo-predicate for
+       improper plists instead of ‘listp.’
+
+       * test/src/fns-tests.el (plist-get/odd-number-of-elements)
+       (lax-plist-get/odd-number-of-elements)
+       (plist-put/odd-number-of-elements)
+       (lax-plist-put/odd-number-of-elements)
+       (plist-member/improper-list): Add unit tests.
+
+2017-09-02  Eli Zaretskii  <address@hidden>
+
+       Fix decrypting in plstore.el on MS-Windows
+
+       * lisp/plstore.el (plstore-open): Bind coding-system-for-read to
+       raw-text, instead of using insert-file-contents-literally.
+       (Bug#28114)
+
+2017-09-02  Eli Zaretskii  <address@hidden>
+
+       * src/fileio.c (Fexpand_file_name): Doc fix.  (Bug#27982)
+
+2017-09-02  Eli Zaretskii  <address@hidden>
+
+       Rewrite Antinews for Emacs 26
+
+       * doc/lispref/anti.texi (Antinews): Rewrite for Emacs 26.
+       * doc/lispref/elisp.texi (Top): Update the top-level menu's
+       Antinews entry.
+       * doc/emacs/anti.texi (Antinews): Rewrite for Emacs 26.
+       * doc/emacs/emacs.texi (Top): Update the top-level menu's Antinews
+       entry.
+
+       * etc/NEWS: Rearrange some entries in a more reasonable order.
+
+2017-09-02  Reuben Thomas  <address@hidden>
+
+       Fix a mis-binding in a test
+
+       * test/lisp/progmodes/python-tests.el
+       (python-shell-calculate-process-environment-3): Fix binding of
+       process-environment.  A level of parens was missing.
+
+       This was found after Glenn Morris noticed a similar problem with the
+       patch for Bug#28319.
+
+2017-09-02  Reuben Thomas  <address@hidden>
+
+       Fix a mis-binding and a bad defun name in a test (Bug#28319)
+
+       test/lib-src/emacs-client-tests.el (call-emacsclient): Rename
+       emacsclient-test-call-emacsclient.
+       (emacsclient-test-alternate-editor-allows-arguments)
+       (emacsclient-test-alternate-editor-allows-quotes): Fix let-binding of
+       process-environment.
+
+       Thanks to Glenn Morris for noticing these errors.
+
+2017-09-02  Glenn Morris  <address@hidden>
+
+       * test/Makefile.in (check-no-automated-subdir): Silence by default.
+
+       * test/Makefile.in (ELFILES): Sort, for a reproducible order.
+
+2017-09-01  Mark Oteiza  <address@hidden>
+
+       Turn off checkdoc complaint about default argument order
+
+       * etc/NEWS: Mention change.
+       * lisp/emacs-lisp/checkdoc.el (checkdoc-arguments-in-order-flag):
+       Disable by default, note version.
+
+2017-09-01  Reuben Thomas  <address@hidden>
+
+       Stop emacsclient tests hanging (Bug#28319)
+
+       * test/lib-src/emacsclient-tests.el
+       (emacsclient-test-alternate-editor-allows-arguments): Use a
+       non-existent file to communicate with server, so that any existing
+       default server will not be hijacked (in fact, the test does
+       not need a server).
+       (emacsclient-test-alternate-editor-allows-quotes): Likewise.
+
+2017-09-01  Stefan Monnier  <address@hidden>
+
+       * lisp/obsolete/html2text.el: Don't require CL
+
+       (html2text-clean-anchor): Mark unused arg.
+
+2017-09-01  Katsumi Yamaoka  <address@hidden>
+
+       Don't remove undisplayers from inlined MIME parts (bugfix)
+
+       * lisp/gnus/gnus-art.el (gnus-mime-buttonize-attachments-in-header):
+       Don't remove undisplayers from inlined MIME parts (bugfix);
+       Simplify criterion that finds attachments.
+
+2017-08-31  Mark Oteiza  <address@hidden>
+
+       Make ucs-names a hash table (Bug#28302)
+
+       * etc/NEWS: Mention the type change.
+       * lisp/descr-text.el (describe-char): Use gethash to access ucs-names.
+       Hardcode BEL's name into the function instead of needlessly mapping
+       over the hash table in the spirit of rassoc.
+       * lisp/international/mule-cmds.el (ucs-names): Fix variable and
+       function docstrings.  Initialize a hash table for ucs-names--the
+       number of entries is 42845 here.  Switch to hash-table
+       getters/setters.
+       (mule--ucs-names-annotation): Use hash-table getter.
+       (char-from-name): Upcase the string if ignore-case is truthy.
+       * lisp/leim/quail/latin-ltx.el: Use maphash instead of dolist.
+
+2017-08-31  Alan Third  <address@hidden>
+
+       Remove unneeded version checks (bug#28222)
+
+       * src/macfont.h (CGContextSetFontSmoothingStyle): Remove version
+       check.
+       * src/macfont.m (macfont_draw): Remove version check, and test for
+       existence of CGContextSetFontSmoothingStyle.
+
+2017-08-31  Alan Mackenzie  <address@hidden>
+
+       Fix a glitch in CC Mode's syntactic whitespace cache.
+
+       * lisp/progmodes/cc-engine.el (c-forward-sws): Deal correctly with a 
block
+       comment close at the end of a macro.
+
+2017-08-31  Alan Mackenzie  <address@hidden>
+
+       Correct the fontification of C++ Mode enclosed declarations.
+
+       * lisp/progmodes/cc-fonts.el (c-font-lock-enclosing-decls): abolish the
+       spurious check that the character before the start of an enclosed 
declaration
+       must be ; or }.  It might also be {.
+
+2017-08-31  Martin Rudalics  <address@hidden>
+
+       In xterm.c fix some recently introduced compiler warnings
+
+       * src/xterm.c (xaw_jump_callback)
+       (x_set_toolkit_scroll_bar_thumb): Fix some recently introduced
+       -Wdouble-promotion warnings.
+
+2017-08-31  Martin Rudalics  <address@hidden>
+
+       Restrict fix of Bug#24963 and Bug#25887 to GTK builds
+
+       * src/xterm.c (handle_one_xevent): Restrict earlier fix of
+       Bug#24963 and Bug#25887 to avoid that a non-GTK Emacs won't
+       react to state changes received via ConfigureNotify.
+
+2017-08-31  Katsumi Yamaoka  <address@hidden>
+
+       Respect directory a user enters (bug#28299)
+
+       * lisp/gnus/mm-decode.el (mm-save-part):
+       Respect directory a user enters (bug#28299).
+
+2017-08-31  Samuel Freilich  <address@hidden>
+
+       Do not split line before width of fill-prefix
+
+       When auto-filling a paragraph, don't split a line before the width of 
the
+       fill-prefix, creating a subsequent line that is as long or longer 
(Bug#20774).
+       * lisp/simple.el (do-auto-fill): Only consider break-points that are 
later in
+       the line than the width of the fill-prefix.  This is a more general 
solution
+       than the previous logic, which only skipped over the exact fill-prefix. 
 The
+       fill-prefix doesn't necessarily match the prefix of the first line of a
+       paragraph in adaptive-fill-mode.
+
+2017-08-31  Noam Postavsky  <address@hidden>
+
+       Support lazy loading for autogenerated usage docstrings too (Bug#27748)
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defmumble):
+       Consider any documentation that ended up in code as a docstring (e.g.,
+       autogenerated (fn ARG1 ARG2) type things), not just what the user
+       passed.
+
+2017-08-31  Noam Postavsky  <address@hidden>
+
+       Drop docstrings from cl-defsubst produced inline bodies (Bug#27748)
+
+       * lisp/emacs-lisp/cl-macs.el (cl-defsubst): Use macroexp-parse-progn
+       to drop the docstring.  Add a simple docstring to the compiler-macro.
+
+2017-08-30  Paul Eggert  <address@hidden>
+
+       Quote file-truename symlink to "../foo:bar:"
+
+       Problem reported by Michael Albinus (Bug#28264#19).
+       * lisp/files.el (files--splice-dirname-file): Fix bug where
+       a relative symlink to "../foo:bar:" did not quote the result.
+
+2017-08-30  Reuben Thomas  <address@hidden>
+
+       Add support for arguments in emacsclient's ALTERNATE_EDITOR (Bug #25082)
+
+       * lib-src/emacsclient.c (fail): Parse ALTERNATE_EDITOR, or
+       corresponding command-line argument, into quote- or space-separated
+       tokens.  If a token starts with a quote, then it naturally is expected
+       to end with a quote; escaping is not supported. This is enough to cope
+       with the typical case of requiring the initial path to be quoted,
+       common on Windows where it may contain spaces.
+       * etc/NEWS: Document.
+       * doc/emacs/misc.texi: Likewise.
+       * doc/man/emacsclient.1: Tweak to remove the implication that only an
+       editor can be specified (the manual already mentions a “command”).
+       Fix a small error where “EDITOR” is referred to rather than
+       “ALTERNATE_EDITOR”.
+       * test/lib-src/emacsclient-tests.el: Add tests.
+
+2017-08-30  Stefan Monnier  <address@hidden>
+
+       * lisp/man.el (Man-softhyphen-to-minus): Avoid string-as-multibyte.
+
+2017-08-30  Devon Sean McCullough  <address@hidden>  (tiny change)
+
+       Correct "hide others" shortcut on macOS (bug#28215)
+
+       * lisp/term/ns-win.el: Fix shortcut for ns-do-hide-others.
+
+2017-08-30  Eli Zaretskii  <address@hidden>
+
+       Sync NEWS with the documentation
+
+       * etc/NEWS: Mark entries according to documentation.
+
+       * doc/lispref/functions.texi (Mapping Functions): Document 'mapcan'.
+
+2017-08-30  Michael Albinus  <address@hidden>
+
+       Improve symlinks for Tramp
+
+       * lisp/files.el (files--splice-dirname-file): Quote whole file.
+
+       * lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link):
+       Do not expand TARGET, it could be remote.
+       (tramp-sh-handle-file-truename): Check for cyclic symlink also
+       in case of readlink.  Quote result if it looks remote.
+       (tramp-sh-handle-file-local-copy): Use `file-truename'.
+
+       * test/lisp/net/tramp-tests.el (tramp-test08-file-local-copy)
+       (tramp-test09-insert-file-contents): Test also file missing.
+       (tramp-test21-file-links): Extend test.
+
+2017-08-30  Martin Rudalics  <address@hidden>
+
+       Preserve display's foreground color when clearing internal borders 
(Bug#28278)
+
+       * src/xterm.c (x_after_update_window_line): Preserve display's
+       foreground color when clearing internal borders (Bug#28278).
+
+2017-08-30  Noam Postavsky  <address@hidden>
+
+       Use cl-print for all values printed by `describe-variable'
+
+       * lisp/help-fns.el (describe-variable): Use cl-prin1 for original and
+       global values too.
+
+2017-08-30  Noam Postavsky  <address@hidden>
+
+       Minor simplification for byte-compile-constant-push
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-constant): Move the meat
+       of the code from here...
+       (byte-compile-constant-push): ... to here.  No need to bind
+       byte-compile--for-effect anymore.
+
+2017-08-30  Paul Eggert  <address@hidden>
+
+       Prefer file-name-quote to concat "/:"
+
+       Suggested by Michael Albinus (Bug#28264#13).
+       * lisp/files.el (files--splice-dirname-file): Use file-name-quote
+       rather than attempting to do it by hand.
+
+2017-08-30  Paul Eggert  <address@hidden>
+
+       * configure.ac: fix typo in previous change
+
+2017-08-29  Paul Eggert  <address@hidden>
+
+       Be more conservative in link time optimization doc
+
+       While testing --enable-link-time-optimization with GCC 7.1.1
+       I ran into a serious GCC code-generation bug which makes me
+       think that --enable-link-time-optimization should be
+       discouraged for typical installs (Bug#28213).  See:
+       https://bugzilla.redhat.com/show_bug.cgi?id=1486455
+
+2017-08-29  Paul Eggert  <address@hidden>
+
+       Make garbage collection more conservative
+
+       Check for a pointer anywhere within the object, as opposed to just
+       the start of the object.  This is needed for gcc -Os -flto on
+       x86-64 (Bug#28213).  This change means that the garbage collector
+       is more conservative, and will incorrectly keep objects that it
+       does not need to, but that is better than incorrectly discarding
+       objects that should be kept.
+       * src/alloc.c (ADVANCE, VINDEX): Now functions, not macros;
+       this is easier to debug.
+       (setup_on_free_list): Rename from SETUP_ON_FREE_LIST.
+       Now a function with two args, not a macro with three.
+       All callers changed.
+       (live_string_holding, live_cons_holding, live_symbol_holding)
+       (live_misc_holding, live_vector_holding, live_buffer_holding):
+       New functions, which check for any object containing the addressed
+       byte, not just for an object at the given address.
+       (live_string_p, live_cons_p, live_symbol_p, live_misc_p)
+       (live_vector_p, live_buffer_p):
+       Redefine in terms of the new functions.
+       (live_float_p): Refactor slightly to match the new functions.
+       (mark_maybe_object, mark_maybe_pointer): Use the new functions.
+       Don’t bother checking mark bits, as mark_object already does that,
+       and omitting the checks here simplifies the code.  Although
+       mark_maybe_object can continue to insist that tagged pointers
+       still address the start of the object, mark_maybe_pointer now is
+       more conservative and checks for pointers anywhere into an object.
+
+2017-08-29  Paul Eggert  <address@hidden>
+
+       Improve stack-top heuristic
+
+       This is needed for gcc -Os -flto on x86-64; otherwise, GC misses part
+       of the stack when scanning for heap roots, causing Emacs to crash
+       later (Bug#28213).  The problem is that Emacs's hack for getting an
+       address near the stack top does not work when link-time optimization
+       moves stack variables around.
+       * configure.ac (HAVE___BUILTIN_FRAME_ADDRESS): New macro.
+       * lib-src/make-docfile.c (DEFUN_noinline): New constant.
+       (write_globals, scan_c_stream): Support noinline.
+       * src/alloc.c (NEAR_STACK_TOP): New macro.
+       (SET_STACK_TOP_ADDRESS): Use it.
+       (flush_stack_call_func, Fgarbage_collect): Now noinline.
+
+2017-08-29  Paul Eggert  <address@hidden>
+
+       Align stack bottom properly.
+
+       This is needed for gcc -Os -flto on x86-64 (Bug#28213).
+       * src/emacs.c (main): Align stack-bottom variable as a pointer,
+       since mark_memory requires this.
+
+2017-08-29  Eli Zaretskii  <address@hidden>
+
+       Avoid spinning waiting for git-gui.exe on Windows
+
+       * src/w32proc.c (waitpid): If GetExitCodeProcess returns
+       STILL_ACTIVE, and we were called with WNOHANG, pretend that the
+       process exited.  (Bug#28268)
+
+2017-08-29  Eli Zaretskii  <address@hidden>
+
+       Document '--module-assertions'
+
+       * doc/emacs/cmdargs.texi (Initial Options): Document the
+       '--module-assertions' command-line option.
+       * doc/lispref/loading.texi (Dynamic Modules): Add a
+       cross-reference to the description of '--module-assertions'.
+
+       * etc/NEWS: Update the NEWS entry for --module-assertions.
+
+2017-08-29  Alan Third  <address@hidden>
+
+       Add news entry about new macOS features
+
+       * etc/NEWS: Add entry about ns-appearance, ns-transparent-titlebar and
+       ns-use-thin-smoothing.
+
+2017-08-29  Alan Third  <address@hidden>
+
+       Fix cross macOS version building (bug#28222)
+
+       * src/macfont.h (CGContextSetFontSmoothingStyle): Function
+       declaration.
+       * src/macfont.m (macfont_draw): Limit new code to macOS 10.8 and up.
+
+2017-08-29  Ben Bonfil  <address@hidden>  (tiny change)
+
+       Enable thin font smoothing in macOS (bug#28222)
+
+       * src/nsterm.m (syms_of_nsterm): Define var ns-use-thin-smoothing.
+       * src/macfont.m (macfont_draw): Use font smoothing.
+
+2017-08-29  Eli Zaretskii  <address@hidden>
+
+       Minor improvement in documentation of display-line-numbers
+
+       * doc/emacs/display.texi (Display Custom): Document the
+       display-line-numbers-mode and related options.
+
+2017-08-29  Eli Zaretskii  <address@hidden>
+
+       Avoid aborting in 'waitpid' on MS-Windows
+
+       * src/w32proc.c (waitpid): Don't allow quitting if called with
+       WNOHANG in OPTIONS.  (Bug#28268)
+
+2017-08-29  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/sh-script.el: Test "in-string" of the right char!
+
+       (sh-syntax-propertize-function): Fix off-by-one error.
+       Fixes bug#23526.
+
+2017-08-29  Rasmus  <address@hidden>
+
+       Update Org to v9.0.10
+
+       Please see etc/ORG-NEWS for major changes. Note, this is a bugfix
+       release.
+
+2017-08-29  Paul Eggert  <address@hidden>
+
+       Silence false alarms for symlinks to sources
+
+       Problem reported by Glenn Morris (Bug#28264).
+       * lisp/files.el (files--splice-dirname-file): New function.
+       (file-truename, file-chase-links): Use it.
+
+2017-08-29  Paul Eggert  <address@hidden>
+
+       Simplify remove_slash_colon
+
+       * src/process.c (remove_slash_colon): Simplify
+       and avoid a special case for "/:" by itself.
+
+2017-08-28  Tassilo Horn  <address@hidden>
+
+       Remove font family from minibuffer-prompt face
+
+       * etc/themes/tsdh-light-theme.el (tsdh-light): Remove font family from
+       minibuffer-prompt face.
+
+2017-08-28  Michael Albinus  <address@hidden>
+
+       Further fixes in tramp-smb.el
+
+       * lisp/net/tramp-smb.el (tramp-smb-handle-file-truename): New defun.
+       (tramp-smb-file-name-handler-alist): Use it.
+       (tramp-smb-handle-make-symbolic-link): Unquote target.
+
+       * test/lisp/net/tramp-tests.el
+       (tramp--test-ignore-make-symbolic-link-error): New defmacro.
+       (tramp-test18-file-attributes, tramp-test21-file-links)
+       (tramp--test-check-files): Use it.
+
+2017-08-28  Paul Eggert  <address@hidden>
+
+       Don’t assume -g3 in .gdbinit
+
+       * src/.gdbinit (EMACS_INT_WIDTH, USE_LSB_TAG):
+       Use reasonable defaults if not in the symbol table.
+
+2017-08-28  Robert Pluim  <address@hidden>  (tiny change)
+
+       Use string-match to check for dotfiles in ido
+
+       * lisp/ido.el (ido-make-file-list): Use string-match to check
+       for dotfiles instead of substring, as when using tramp
+       simplified syntax ido-temp-list may contain empty strings.
+
+2017-08-28  Mark Oteiza  <address@hidden>
+
+       Font-lock FDO desktop files correctly
+
+       Single and double quotes do not have a special meaning in
+       desktop files.
+       https://standards.freedesktop.org/desktop-entry-spec/latest/
+       * etc/NEWS: Mention new mode.
+       * lisp/files.el (auto-mode-alist): Split out an entry for handling
+       the .desktop extension with conf-desktop-mode.
+       * lisp/textmodes/conf-mode.el (conf-desktop-font-lock-keywords): New
+       variable with rules for booleans and format specifiers.
+       (conf-unix-mode): Remove desktop file entry example from docstring.
+       (conf-desktop-mode): New derived major mode.
+
+2017-08-27  Tom Tromey  <address@hidden>
+
+       Fix auto-fill bug in js-mode
+
+       * lisp/progmodes/js.el (js-do-auto-fill): New function.
+       (js-mode): Set normal-auto-fill-function.
+       * test/lisp/progmodes/js-tests.el (js-mode-fill-comment-bug): New
+       test.
+
+2017-08-27  Noam Postavsky  <address@hidden>
+
+       Disable completion while entering python multiline statements
+
+       The "legacy" completion mechanism sends newlines to the running python
+       process to get the list of completions, which confuses things if the
+       user is in the middle of entering a multiline statement (Bug#28051).
+       It's better to disable completion in this case.
+       * lisp/progmodes/python.el (python-shell--block-prompt): New variable.
+       (python-shell-prompt-set-calculated-regexps): Set it.
+       (python-shell-completion-at-point): Return 'ignore' as the completion
+       function when the current prompt is a block prompt.
+
+2017-08-27  Michael Albinus  <address@hidden>
+
+       Tramp cleanup
+
+       * lisp/net/tramp-sh.el (tramp-sh-extra-args): Remove compat code.
+       (tramp-sh-handle-make-symbolic-link): More robust check for
+       TARGET remoteness.
+
+       * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory):
+       Disable copying by tar temporarily, it doesn't work reliably.
+       (tramp-smb-do-file-attributes-with-stat): Resolve symlink.
+       (tramp-smb-handle-make-symbolic-link): Fix implementation.
+
+       * lisp/net/tramp.el (tramp-handle-file-symlink-p): Simplify.
+
+       * test/lisp/net/tramp-tests.el (tramp-test21-file-links):
+       Extend test.
+
+2017-08-27  Glenn Morris  <address@hidden>
+
+       Fix previous xterm.h change for non-gtk builds
+
+       * src/xterm.h (GTK_CHECK_VERSION) [!USE_GTK]: Define it.
+
+2017-08-27  Philipp Stephani  <address@hidden>
+
+       Fix GdkSettings-related deprecation warnings
+
+       * src/gtkutil.c (xg_initialize): Don’t set deprecated and ignored
+       gtk-menu-bar-accel setting in new versions of GTK+.  Use g_object_set
+       instead of deprecated gtk_settngs_set_string_property otherwise.
+
+2017-08-27  Philipp Stephani  <address@hidden>
+
+       Always use gtk_window_move in new versions
+
+       * src/gtkutil.c (my_log_handler): Don’t define in new versions of
+       GTK+.
+       (xg_set_geometry): Always use gtk_window_move in new versions of GTK+.
+
+       * src/xterm.c (syms_of_xterm): Document that x-gtk-use-window-move
+       is ignored.
+
+       * lisp/subr.el (x-gtk-use-window-move): Make obsolete.
+
+2017-08-27  Charles A. Roelli  <address@hidden>
+
+       Fix 'diff-goto-source' when buffer is narrowed (Bug#21262)
+
+       * lisp/vc/diff-mode.el (diff-find-file-name): Save the current
+       narrowing, and widen the buffer before searching for the name of the
+       file corresponding to the diff.
+
+       With thanks to Noam Postavsky.
+
+2017-08-27  Philipp Stephani  <address@hidden>
+
+       Remove use of a deprecated GTK+ function in new versions
+
+       * src/gtkutil.c (xg_make_tool_item): Use gtk_widget_set_focus_on_click
+       if available
+
+2017-08-27  Philipp Stephani  <address@hidden>
+
+       Stop using deprecated GdkScreen monitor functions in newer GDK
+
+       * src/xfns.c (Fx_display_monitor_attributes_list): Use GdkMonitor
+       objects instead of the deprecated GdkScreen functions in GDK 3.22+
+
+2017-08-27  Philipp Stephani  <address@hidden>
+
+       Use GdkSeat in new GDK versions
+
+       * src/gtkutil.c (xg_event_is_for_scrollbar): Use GdkSeat instead of
+       GdkDeviceManager in GDK 3.20+
+
+2017-08-27  Philipp Stephani  <address@hidden>
+
+       * src/xterm.c (XTflash): Don’t use gdk_cairo_create in GDK 3.22+
+
+2017-08-27  Philipp Stephani  <address@hidden>
+
+       Remove call of deprecated GDK function
+
+       * src/xterm.h (XSync): Don’t call gdk_window_process_all_updates in
+       GDK 3.22 or later.
+
+2017-08-27  Alan Mackenzie  <address@hidden>
+
+       Amend the CC Mode macro cache to cope with changes at the macro start
+
+       Fixes bug #28233.
+
+       * lisp/progmodes/cc-engine.el (c-invalidate-macro-cache): Fix an 
off-by-1
+       error.
+
+2017-08-27  Paul Eggert  <address@hidden>
+
+       Fix over-protection of byte-compiled files
+
+       Problem reported by Sven Joachim (Bug#28244).
+       Also, fix similar problem for autoload files.
+       * lisp/emacs-lisp/autoload.el (autoload--save-buffer):
+       Set temp file modes to the buffer-file-name file modes (or 666
+       if not available) as adjusted by umask.
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-file):
+       Set temp file modes to 666 as adjusted by umask.
+
+2017-08-27  Tom Tromey  <address@hidden>
+
+       Refine conf-toml-mode font-lock
+
+       Bug#28218
+       * lisp/textmodes/conf-mode.el (conf-toml-font-lock-keywords): Use
+       conf-toml-recognize-section.  Use \s- in variable regexp.
+       (conf-toml-recognize-section): New function.
+
+2017-08-27  Paul Eggert  <address@hidden>
+
+       Do not munge contents of local symbolic links
+
+       This lets Emacs deal with arbitrary local symlinks without
+       mishandling their contents (Bug#28156).  For example,
+       (progn (shell-command "ln -fs '~' 'x'") (rename-file "x" "/tmp/x"))
+       now consistently creates a symbolic link from '/tmp/x' to '~'.
+       Formerly, it did that only if the working directory was on the
+       same filesystem as /tmp; otherwise, it expanded the '~' to
+       the user's home directory.
+       * lisp/dired.el (dired-get-filename): Use files--name-absolute-system-p
+       instead of rolling our own code.
+       * lisp/files.el (files--name-absolute-system-p): New function.
+       (file-truename, file-chase-links): Use it to avoid mishandling
+       symlink contents that begin with ~.
+       (copy-directory, move-file-to-trash):
+       Use concat rather than expand-file-name, to avoid mishandling
+       symlink contents that begin with ~.
+       * src/fileio.c (Fmake_symbolic_link): Do not expand leading "~" in the
+       target unless interactive.  Strip leading "/:" if interactive.
+       (emacs_readlinkat): Do not prepend "/:" to the link target if
+       it starts with "/" and contains ":" before NUL.
+       * test/src/fileio-tests.el (try-link): Rename from try-char,
+       and accept a string instead of a char.  All uses changed.
+       (fileio-tests--symlink-failure): Also test leading ~, and "/:",
+       to test the new behavior.
+
+2017-08-27  Reuben Thomas  <address@hidden>
+
+       Remove invalid regexp for shell builtins for wksh
+
+       * lisp/progmodes/sh-script.el (sh-builtins): Shell built-ins have to
+       be literal strings, so remove a regexp for wksh. In any case, it’s a
+       defunct proprietary shell.
+
+2017-08-26  Paul Eggert  <address@hidden>
+
+       Improve doc for file-name-absolute-p.
+
+2017-08-26  Michael Albinus  <address@hidden>
+
+       Fix Tramp part of Bug#28156
+
+       * lisp/files.el (file-name-non-special): Use `file-name-quote'
+       instead prefixing "/:", the file could already be quoted.
+
+       * lisp/net/tramp.el (tramp-error): Handle null arguments.
+       (tramp-handle-make-symbolic-link):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link)
+       (tramp-sh-handle-add-name-to-file):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-add-name-to-file)
+       (tramp-smb-handle-make-symbolic-link): Adapt implementation to
+       stronger semantics in Emacs.  (Bug#28156)
+
+       * test/lisp/net/tramp-tests.el (tramp-test21-file-links):
+       Extend test.
+
+2017-08-26  Eli Zaretskii  <address@hidden>
+
+       Fix bugs merged with bug#25428
+
+       * lisp/simple.el (auto-fill-mode, visual-line-mode): Doc fix.
+       (Bug#13926)  (Bug#25434)  (Bug#25435)
+
+2017-08-26  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of Info virtual files and nodes
+
+       * lisp/info.el (Info-virtual-files, Info-virtual-nodes): Doc fix.
+       (Bug#28237)
+
+2017-08-26  Eli Zaretskii  <address@hidden>
+
+       * lisp/delsel.el (delete-selection-mode): Doc fix.  (Bug#25428)
+
+2017-08-26  Grégory Mounié  <address@hidden>  (tiny change)
+
+       Support multi-lingual detection of SEE ALSO man sections
+
+       * lisp/man.el (Man-see-also-regexp): Add support for SEE ALSO
+       section detection in several langages: French, German, Spanish,
+       Portugese, Italian, Polish, Turkish, Japanese, Chinese.  (Bug#28142)
+
+2017-08-26  Paul Eggert  <address@hidden>
+
+       Improve expand-file-name doc
+
+       * doc/lispref/files.texi (Relative File Names, Directory Names)
+       (File Name Expansion):
+       * doc/lispref/minibuf.texi (Reading File Names):
+       Document expand-file-name behavior with ~ more clearly
+       and accurately.
+       * doc/misc/org.texi (Batch execution): Simplify example
+       script so that it does not need expand-file-name and thus
+       will not mishandle file names with leading ~.
+
+2017-08-26  Jefferson Carpenter  <address@hidden>  (tiny change)
+
+       Support all perl variable declarators and prefixes (Bug#27613)
+
+       * lisp/progmodes/perl-mode.el (perl-imenu-generic-expression)
+       (perl-font-lock-keywords-2): Match declators 'anon', 'argument', 'has',
+       'local', 'state', 'supersede', 'let', and 'temp'.
+
+2017-08-25  Paul Eggert  <address@hidden>
+
+       Fix file-attributes race on GNU hosts
+
+       * doc/lispref/files.texi (File Attributes):
+       Document file-attributes atomicity.
+       * etc/NEWS: Document the fix.
+       * src/dired.c (file_attributes): New args DIRNAME and FILENAME,
+       for diagnostics.  All callers changed.  On platforms like
+       GNU/Linux that support O_PATH, fix a race condition in
+       file-attributes and similar functions, so that these functions do
+       not return nonsense if a directory entry is replaced while getting
+       its attributes.  On non-GNU platforms, do a better (though not
+       perfect) job of detecting the race, and return nil if detected.
+
+2017-08-25  Paul Eggert  <address@hidden>
+
+       Simplify expand_and_dir_to_file
+
+       * src/fileio.c (expand_and_dir_to_file): Simplify by omitting 2nd
+       argument, since in practice it always has the default value.  All
+       callers changed.  Prefer C99 style decls in nearby code.
+
+2017-08-25  Eli Zaretskii  <address@hidden>
+
+       Fix file-name completion on network shares
+
+       * src/w32.c (faccessat): Don't assume that F_OK is non-zero.
+       (Bug#28207)
+
+2017-08-25  Reuben Thomas  <address@hidden>
+
+       Fix a FIXME with an exegetical comment
+
+       * lisp/progmodes/sh-script.el (sh-builtins): Explain why we have a
+       regexp for wksh builtins.
+
+2017-08-25  Reuben Thomas  <address@hidden>
+
+       Minor docstring language fix
+
+       * lisp/progmodes/sh-script.el (sh-show-indent): Remove spurious “the”.
+
+2017-08-25  Reuben Thomas  <address@hidden>
+
+       Remove old commented code from sh-script.el
+
+       * lisp/progmodes/sh-script.el (sh-abbrevs): Remove commented function
+       and variable, commented since 2001.
+
+2017-08-25  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/package.el: Don't let failure stop us
+
+       (package-activate-1): Don't throw an error for missing deps.
+       (package-unpack): Don't bother compiling if activation failed.
+       (package-initialize): Report failures but keep activating other 
packages.
+
+2017-08-25  Paul Eggert  <address@hidden>
+
+       Prefer ‘double’ for FP temps in xterm.c
+
+       * src/xterm.c (xm_scroll_callback, xaw_jump_callback)
+       (x_set_toolkit_scroll_bar_thumb)
+       (x_set_toolkit_horizontal_scroll_bar_thumb): Prefer ‘double’ to
+       ‘float’ for individual local floating-point temporaries.
+
+2017-08-24  Reuben Thomas  <address@hidden>
+
+       Avoid using string-to-multibyte in ispell.el
+
+       * lisp/textmodes/ispell.el (ispell-get-decoded-string): Use
+       decode-coding-string instead. Note that decode-coding-string returns a
+       string that satisfies multibyte-string-p even if its input is pure
+       ASCII and the third argument is t, so the result of
+       ispell-get-decoded-string is always a multibyte string.
+
+2017-08-24  Tino Calancha  <address@hidden>
+
+       Store the regexp just when there are matches
+
+       * lisp/hi-lock.el (hi-lock-set-pattern): When font-lock-mode is
+       disabled and there are no matches do not store REGEXP
+       in hi-lock-interactive-patterns.
+
+2017-08-24  Tino Calancha  <address@hidden>
+
+       Keep face available if there are no matches
+
+       If font-lock-mode is disabled in the current buffer, and
+       there are no matches for REGEXP, then keep FACE available
+       for a next search.
+       * lisp/hi-lock.el (hi-lock-set-pattern): Add FACE into
+       hi-lock--unused-faces if font-lock-mode is disabled and
+       there are no matches.
+       * test/lisp/hi-lock-tests.el (hi-lock-test-set-pattern): Add test.
+
+2017-08-24  Michael Albinus  <address@hidden>
+
+       Minor improvements for tramp-interrupt-process, documentation
+
+       * doc/lispref/processes.texi (Signals to Processes):
+       * etc/NEWS: Document interrupt-process-functions.
+
+       * lisp/net/tramp.el (tramp-interrupt-process): Test also for
+       `process-live-p'.
+
+       * src/process.c (Vinterrupt_process_functions): Fix docstring.
+
+       * test/lisp/net/tramp-tests.el (tramp-test28-interrupt-process):
+       Extend test.
+
+2017-08-24  Reuben Thomas  <address@hidden>
+
+       Fix a comment whitespace typo.
+
+       src/fileio.c: A double space was added after "..", used in a code
+       example. Make it a single space.
+
+2017-08-24  Reuben Thomas  <address@hidden>
+
+       Remove old commented code and obsolete comments
+
+       * lisp/files.el (locate-dominating-files): Remove old commented
+       implementation from 9 years ago.  Since the current version
+       appears (at least to me) not just more efficient but clearer than the
+       version removed, also delete a comment in the new version referring to
+       the old version. Remove old commented heuristic code,
+       and explanatory comments.
+
+2017-08-24  Reuben Thomas  <address@hidden>
+
+       Remove old duplicate commented code
+
+       * lisp/files.el (file-relative-name): Remove old commented version,
+       replaced 14 years ago in commit 753ad9889.
+
+2017-08-24  Tom Tromey  <address@hidden>
+
+       Add conf-toml-mode
+
+       * etc/NEWS: Mention conf-toml-mode.
+       * lisp/files.el (auto-mode-alist): Add entry for .toml.
+       * lisp/textmodes/conf-mode.el (conf-toml-mode-syntax-table)
+       (conf-toml-font-lock-keywords): New defvars.
+       (conf-toml-mode): New mode.
+
+2017-08-23  Alan Third  <address@hidden>
+
+       Use lisp type in log message (bug#28176)
+
+       * src/nsimage.m (ns_load_image): Use make_number on index.
+
+2017-08-23  Alan Third  <address@hidden>
+
+       Fix PNGs on macOS (bug#28176)
+
+       * src/nsimage.m (ns_load_image): Remove index check.
+       (EmacsImage::getAnimatedBitmapImageRep): New function.
+       (EmacsImage::getMetadata): Use getAnimatedBitmapImageRep.
+       (EmacsImage::setFrame): Use getAnimatedBitmapImageRep and check index
+       is valid.
+
+2017-08-23  Alan Third  <address@hidden>
+
+       Add ability to change macOS WM theme (bug#27973)
+
+       * src/frame.c (make_frame, frame_parms, syms_of_frame)
+       [NS_IMPL_COCOA]: Add ns-appearance and ns-transparent-titlebar
+       options.
+       * src/frame.h (ns_appearance_type) [NS_IMPL_COCOA]: Add enum to
+       represent NSAppearance options.
+       (struct frame) [NS_IMPL_COCOA]: Add ns_appearance and
+       ns_transparent_titlebar frame parameters.
+       * src/nsfns.m (ns_frame_parm_handlers) [NS_IMPL_COCOA]: Add
+       ns_set_appearance and ns_set_transparent_titlebar handlers.
+       (Sx_create_frame): Handle ns-appearance and ns-transparent-titlebar
+       frame parameters.
+       (Qdark): Add new symbol for use with ns-appearance.
+       * src/nsterm.h (ns_set_appearance, ns_set_transparent_titlebar)
+       [NS_IMPL_COCOA]: Add prototypes.
+       * src/nsterm.m (ns_set_appearance, ns_set_transparent_titlebar)
+       [NS_IMPL_COCOA]: New functions.
+       (initFrameFromEmacs) [NS_IMPL_COCOA]: Handle ns-appearance and
+       ns-transparent-titlebar frame parameters.
+       * doc/lispref/frames.texi (Window Management Parameters): Document
+       ns-apperance and ns-transparent-titlebar.
+
+2017-08-22  Alan Mackenzie  <address@hidden>
+
+       When looking for the end of a declarator, prevent macros fouling up the 
search
+
+       The practical implication of this bug was a random jit-lock chunk 
remaining
+       entirely unfontified.
+
+       * lisp/progmodes/cc-mode (c-fl-decl-end): If point starts inside a 
macro,
+       restrict two forward searches to the end of that macro.
+
+2017-08-22  Michael Albinus  <address@hidden>
+
+       Test `file-expand-wildcards' for Tramp
+
+       * lisp/net/tramp-compat.el (tramp-advice-file-expand-wildcards):
+       Remove, not needed anymore.
+
+       * test/lisp/net/tramp-tests.el (top): Require seq.el.
+       (tramp-test16-directory-files): Simplify.
+       (tramp-test16-file-expand-wildcards): New test.
+       (tramp-test28-interrupt-process): Skip for older Emacsen.
+
+2017-08-22  Alexander Gramiak  <address@hidden>
+
+       Add tests for cl-macs.el (Bug#27559)
+
+       * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-test-loop): Remove
+       duplicate.
+       (cl-loop-destructuring-with): Move to cl-macs-tests.el.
+       * test/lisp/emacs-lisp/cl-macs-tests.el: New file.
+
+2017-08-22  Noam Postavsky  <address@hidden>
+
+       Optimize skkdic conversion (Bug#28043)
+
+       The primary speedup comes from the optimizing lookup-nested-alist and
+       set-nested-alist for the case where the key is a string.  This brings
+       the time down to less than half the original.
+
+       * lisp/international/mule-util.el (lookup-nested-alist)
+       (set-nested-alist): Use `assq' instead of `assoc' when KEYSEQ is a
+       string.
+
+       * lisp/international/ja-dic-cnv.el (skkdic-collect-okuri-nasi)
+       (skkdic-convert-okuri-nasi): Use progress-reporter functions instead
+       of calculating ratio of work done inline.
+
+       (skkdic-reduced-candidates): Call `char-category-set' on the first
+       character of the string directly, instead of using a regexp for the
+       character category.
+       (skkdic--japanese-category-set): New constant.
+       (skkdic-collect-okuri-nasi): Just set
+       `skkdic-okuri-nasi-entries-count' at once at the end rather than
+       updating it throughout the loop.
+
+       (skkdic-convert-postfix skkdic-convert-prefix)
+       skkdic-get-candidate-list, skkdic-collect-okuri-nasi)
+       (skkdic-extract-conversion-data): Use `match-string-no-properties'
+       instead of `match-string'.
+
+2017-08-22  Reuben Thomas  <address@hidden>
+
+       Treat tests in lib-src like tests in src
+
+       * test/Makefile.in (test_template): Depend on a .c source file for a
+       test under lib-src, as for src.  (Thanks, Glenn Morris for pointing me
+       in the right direction.)
+
+2017-08-22  Paul Eggert  <address@hidden>
+
+       Port /bin/sh scripts to Solaris 10
+
+       Its /bin/sh builtin ‘test’ command does not support -e.
+       * autogen.sh, build-aux/git-hooks/pre-commit:
+       * build-aux/gitlog-to-emacslog, make-dist:
+       Use test -r, not test -e.
+
+2017-08-21  Eli Zaretskii  <address@hidden>
+
+       Avoid losing the buffer restriction in flyspell-mode
+
+       * src/intervals.c (get_local_map): Don't allow C-g to quit as long
+       as we have the buffer widened, to make sure the restriction is
+       preserved.  (Bug#28161)
+
+2017-08-21  Sven Joachim  <address@hidden>
+
+       Fix the 'versionclean' target in src/Makefile
+
+       * src/Makefile.in (versionclean): Don't accidentally remove
+       emacs-module.h.  (Bug#28169)
+
+2017-08-21  Michael Albinus  <address@hidden>
+
+       Implement `interrupt-process-functions'
+
+       * lisp/net/tramp.el (tramp-interrupt-process): Rename from
+       `tramp-advice-interrupt-process'.  Adapt according to changed API.
+       (top): Add it to `interrupt-process-functions'.
+
+       * src/process.c (Finternal_default_interrupt_process): New defun.
+       (Finterrupt_process): Change implementation, based on
+       Vinterrupt_process_functions.
+       (Vinterrupt_process_functions): New defvar.
+
+       * test/lisp/net/tramp-tests.el (tramp-test40-unload): Do not
+       test removal of advice.
+
+2017-08-21  Eli Zaretskii  <address@hidden>
+
+       Avoid floating-point exceptions while drawing underwave
+
+       * src/w32term.c (x_get_scale_factor):
+       * src/xterm.c (x_get_scale_factor): Don't let the scale factors
+       become less than 1.  Reported by Yuri D'Elia <address@hidden> in
+       http://lists.gnu.org/archive/html/emacs-devel/2017-08/msg00459.html.
+
+2017-08-21  Sam Steingold  <address@hidden>
+
+       mark flymake-mode as safe local variable when the value is nil
+
+2017-08-21  Sam Steingold  <address@hidden>
+
+       allow nil init in flymake-allowed-file-name-masks to disable flymake
+
+       (flymake-allowed-file-name-masks): Update doc and :type.
+       (flymake-get-file-name-mode-and-masks): Handle nil init.
+
+2017-08-20  Dmitry Gutov  <address@hidden>
+
+       Remove the workaround for bug#20719
+
+       * lisp/cedet/semantic/symref/grep.el
+       (semantic-symref-grep-use-template): Remove the workaround for
+       bug#20719, it's been fixed for a while now.
+
+2017-08-20  Dmitry Gutov  <address@hidden>
+
+       Fix byte-compilation warnings in semantic/symref/grep
+
+       * lisp/cedet/semantic/symref/grep.el (greppattern): Remove.
+       (grepflags): Rename to semantic-symref-grep-flags.
+       (semantic-symref-grep-expand-keywords): Update accordingly.
+       (semantic-symref-grep-use-template): Remove the last two
+       arguments to make sure they don't shadow the (not renamed)
+       global variables.
+       (semantic-symref-perform-search)
+       (semantic-symref-parse-tool-output-one-line): Use slot names
+       instead of keywords, like the byte-compiler wants us to.
+
+2017-08-20  Dmitry Gutov  <address@hidden>
+
+       Simplify eldoc-message
+
+       * lisp/emacs-lisp/eldoc.el (eldoc-message): Simplify.
+       Don't use ARGS because no callers pass them.  Discussed in bug#27230.
+
+2017-08-20  Noam Postavsky  <address@hidden>
+
+       Work around w32-python-2.x bug to fix prompt detection (Bug#21376)
+
+       * lisp/progmodes/python.el (python-shell-prompt-detect): Don't put
+       carriage returns into the temporary file when running in unbuffered
+       mode, the w32 build of python 2.7 chokes on them.
+
+2017-08-20  Reuben Thomas  <address@hidden>
+
+       Add missing require
+
+       * lisp/textmodes/ispell.el: Require subr-x. (Thanks, Eli Zaretskii.)
+
+2017-08-20  Michael Albinus  <address@hidden>
+
+       Implement `interrupt-process' for remote processes (Bug#28066)
+
+       * lisp/net/tramp-sh.el (tramp-sh-handle-start-file-process):
+       Support sending signals remotely.
+       (tramp-open-connection-setup-interactive-shell):
+       Trace "remote-tty" connection property.
+
+       * lisp/net/tramp.el (tramp-advice-interrupt-process): New defun.
+       (top): Add advice to `interrupt-process'.  (Bug#28066)
+
+       * test/lisp/net/tramp-tests.el (tramp-test28-interrupt-process):
+       New test.
+       (tramp-test29-shell-command)
+       (tramp-test30-environment-variables)
+       (tramp-test30-environment-variables-and-port-numbers)
+       (tramp-test31-explicit-shell-file-name)
+       (tramp-test32-vc-registered)
+       (tramp-test33-make-auto-save-file-name)
+       (tramp-test34-make-nearby-temp-file)
+       (tramp-test35-special-characters)
+       (tramp-test35-special-characters-with-stat)
+       (tramp-test35-special-characters-with-perl)
+       (tramp-test35-special-characters-with-ls, tramp-test36-utf8)
+       (tramp-test36-utf8-with-stat, tramp-test36-utf8-with-perl)
+       (tramp-test36-utf8-with-ls)
+       (tramp-test37-asynchronous-requests)
+       (tramp-test38-recursive-load, tramp-test39-remote-load-path)
+       (tramp-test40-unload): Rename.
+       (tramp-test40-unload): Test also removal of advice.
+
+2017-08-20  Reuben Thomas  <address@hidden>
+
+       Document Enchant support
+
+       * doc/emacs/fixit.texi: Mention Enchant.
+       * doc/misc/efaq.texi: Likewise.
+       * etc/NEWS: Add an item on Enchant support.
+
+2017-08-20  Reuben Thomas  <address@hidden>
+
+       Remove old comments and a redundant FIXME
+
+       * lisp/textmodes/ispell.el (ispell-process-line): Remove some old
+       commented code, a redundant FIXME, and outdated usage instructions.
+
+2017-08-20  Reuben Thomas  <address@hidden>
+
+       Add Enchant support to ispell.el (Bug#17742)
+
+       * lisp/textmodes/ispell.el (ispell-program-name): Add “enchant”.
+       (ispell-really-enchant): Add variable.
+       (ispell-check-version): If using Enchant, check it’s new enough (at
+       least 1.6.1).  (Like the ispell check, this is absolute: cannot work
+       without.)
+       (ispell-enchant-dictionary-alist): Add variable.
+       (ispell-find-enchant-dictionaries): Add function, based on
+       ispell-find-aspell-dictionaries.
+       (ispell-set-spellchecker-params): Allow dictionary auto-detection for
+       Enchant, and call ispell-find-enchant-dictionaries to find them.  Use
+       old ispell name to locale mapping code for Enchant too.
+       (ispell-send-replacement): Make it work with Enchant.
+
+2017-08-20  Noam Postavsky  <address@hidden>
+
+       * lisp/term.el (term-mode): Use `window-text-height' (Bug#5615).
+
+2017-08-20  Noam Postavsky  <address@hidden>
+
+       Stop printing '4' in .elc files after 'define-symbol-prop' calls
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-define-symbol-prop):
+       Return nil in case we have compiled the form, to prevent a redundant
+       constant from getting added to the compiled output.
+
+2017-08-20  Paul Eggert  <address@hidden>
+
+       Change recent symlink tests to just test ASCII
+
+       * test/src/fileio-tests.el (fileio-tests--symlink-failure):
+       Be less ambitious about testing non-ASCII chars and encoding
+       errors, as there are too many portability issues.
+
+2017-08-20  Paul Eggert  <address@hidden>
+
+       Don’t adjust CRLF in file names
+
+       * doc/misc/gnus.texi (Non-ASCII Group Names):
+       * etc/NEWS:
+       * test/lisp/net/tramp-tests.el (tramp--test-utf8):
+       Use utf-8-unix, not utf-8, for default-file-name-coding-system, so
+       that CRLF in file names is left alone.
+       * lisp/international/mule-cmds.el (set-default-coding-systems):
+       Do not alter CRLF in file name coding systems.
+       (prefer-coding-system): Ignore differences in CRLF processing when
+       checking whether we used the user-specified file name coding system.
+       * test/src/fileio-tests.el: New file.
+
+2017-08-19  Eli Zaretskii  <address@hidden>
+
+       Make list-processes support display-line-numbers
+
+       * lisp/simple.el (process-menu-mode): Move the call to
+       tabulated-list-init-header from here...
+       (list-processes--refresh): ...to here.  (Bug#27895)
+
+2017-08-19  Eli Zaretskii  <address@hidden>
+
+       Improve support of display-line-numbers in package.el
+
+       * lisp/emacs-lisp/package.el (package-menu--refresh): Redisplay
+       the header.  (Bug#27895)
+       * lisp/emacs-lisp/tabulated-list.el
+       (tabulated-list-line-number-width): Fix the case when
+       display-line-numbers is nil.
+
+2017-08-19  Eli Zaretskii  <address@hidden>
+
+       Improve support of display-line-numbers in tabulated-list-mode
+
+       * lisp/emacs-lisp/tabulated-list.el
+       (tabulated-list-line-number-width): New function.
+       (tabulated-list-init-header, tabulated-list-print-entry): Use it.
+       (Bug#27895)
+
+2017-08-19  Martin Rudalics  <address@hidden>
+
+       Fix one more issue reported by Alex (Bug#27999)
+
+       * doc/lispref/windows.texi (Preserving Window Sizes)
+       (Window Parameters): Use the term `window-preserved-size'
+       instead of `preserved-size' (Bug#27999).
+
+2017-08-19  Martin Rudalics  <address@hidden>
+
+       Rename `no-delete-other-window' to `no-delete-other-windows'
+
+2017-08-19  Martin Rudalics  <address@hidden>
+
+       Fix two side window problems noted by Alex (Bug#27999)
+
+       * lisp/window.el (display-buffer-in-side-window): Fix doc-string
+       typo.
+       (delete-other-windows): Rename the `no-delete-other-window'
+       parameter to `no-delete-other-windows' (see the discussion in
+       Bug#27999 for the rationale of this change).
+       * doc/lispref/windows.texi (Deleting Windows)
+       (Frame Layouts with Side Windows, Window Parameters): Rename
+       `no-delete-other-window' to `no-delete-other-windows'.
+
+2017-08-19  Alex Schroeder  <address@hidden>
+
+       Use define-minor-mode for rcirc-omit-mode
+
+2017-08-19  Paul Eggert  <address@hidden>
+
+       Clarify behavior of symlinks and directories
+
+       * doc/lispref/files.texi (Saving Buffers): Document how functions
+       like rename-file work with symlinks and directories.  This patch
+       attempts to document the current behavior better, in preparation
+       for possibly changing it.  See Bug#27986.
+
+2017-08-19  Paul Eggert  <address@hidden>
+
+       Fix recently-introduced file descriptor leak
+
+       * src/fileio.c (Fmake_temp_file_internal):
+       Don’t leak a file descriptor if write_region signals an error.
+
+2017-08-19  Paul Eggert  <address@hidden>
+
+       Improve make-temp-file performance on local files
+
+       * lisp/files.el (make-temp-file): Let make-temp-file-internal do
+       the work of inserting the text.
+       * src/fileio.c (Fmake_temp_file_internal): New arg TEXT.
+       All callers changed.
+
+2017-08-19  Noam Postavsky  <address@hidden>
+
+       Don't lose arguments to eshell aliases (Bug#27954)
+
+       * lisp/eshell/em-alias.el (eshell-maybe-replace-by-alias): Use ARGS.
+
+2017-08-19  Ted Zlatanov  <address@hidden>
+
+       * lisp/files.el (make-temp-file): Fix directory use case.
+
+2017-08-19  Ted Zlatanov  <address@hidden>
+
+       Fix and document make-temp-file optional text parameter
+
+       * lisp/files.el (make-temp-file): Fix initial TEXT parameter.
+       (files--make-magic-temp-file): Support optional TEXT parameter.
+       * etc/NEWS: Document it.
+       * doc/lispref/files.texi: Document it.
+       * test/lisp/auth-source-tests.el: Minor reformat.
+
+2017-08-19  Ted Zlatanov  <address@hidden>
+
+       * test/lisp/auth-source-tests.el: Avoid `string-join' to be simple.
+
+       * test/lisp/auth-source-tests.el: Minor cleanups to use CL.
+
+2017-08-19  João Távora  <address@hidden>
+
+       Fix default value of electric-pair-pairs and electric-pair-text-pairs
+
+       (Bug#24901)
+
+       A previous change, titled "Add support for curly quotation marks to
+       electric-pair-mode", attempted to add these characters to the default
+       value of these variables.  But it did so in a quoted list, preventing
+       evaluation of the relevant expressions and resulting in an invalid
+       format.
+
+       * lisp/elec-pair.el (electric-pair-pairs, electric-pair-text-pairs):
+       Use backquote and comma.
+
+2017-08-19  Noam Postavsky  <address@hidden>
+
+       * lisp/elec-pair.el (electric-pair-text-pairs): Don't autoload 
(Bug#24901).
+
+       * lisp/progmodes/elisp-mode.el (emacs-lisp-mode): Require `elec-pair'
+       explicitly in the interactive case.
+
+2017-08-19  Mats Lidell  <address@hidden>
+
+       * etc/tutorials/TUTORIAL.sv: synced with TUTORIAL
+
+2017-08-19  Ted Zlatanov  <address@hidden>
+
+       Add auth-source tests and codify its API better
+
+       The auth-source behavior was unclear in some API use cases, so these
+       extra tests codify and test it. For details see
+       https://github.com/DamienCassou/auth-password-store/issues/29
+
+       * lisp/files.el (make-temp-file): Add new initial TEXT parameter.
+       * test/lisp/auth-source-tests.el (auth-source-test-searches): Add
+         auth-source tests and simplify them with the new `make-temp-file'.
+
+2017-08-18  Eli Zaretskii  <address@hidden>
+
+       Don't call the same hook twice due to obsolete aliases
+
+       * lisp/international/robin.el (robin-activate):
+       * lisp/international/quail.el (quail-activate):
+       * lisp/international/mule-cmds.el (deactivate-input-method):
+       * lisp/emulation/viper-init.el (viper-deactivate-input-method):
+       Don't call the same hook twice, when the obsolete and the
+       advertised symbols are aliased.  (Bug#28118)
+
+2017-08-18  Felipe Ochoa  <address@hidden>  (tiny change)
+
+       A new face for show-paren in expression mode
+
+       * lisp/faces.el (show-paren-match-expression): Define the new face.
+       * lisp/paren.el (show-paren-function): Apply the different face
+       when in expression mode.  (Bug#28047)
+
+2017-08-18  Eli Zaretskii  <address@hidden>
+
+       Non-ASCII support for man page section and header names
+
+       * lisp/man.el (Man-name-regexp, Man-page-header-regexp)
+       (Man-heading-regexp): Replace ASCII character classes by
+       equivalent classes that allow non-ASCII characters.  Suggested by
+       Grégory Mounié <address@hidden>.  (Bug#27978)
+
+2017-08-18  Eli Zaretskii  <address@hidden>
+
+       Implement HiDPI support for underwave on MS-Windows
+
+       * src/w32term.c (x_get_scale_factor): New function.
+       (w32_draw_underwave): Use it.
+       * src/xterm.c (x_draw_underwave): Offset the wave starting point
+       to make it identical with original code.
+
+2017-08-18  Stephen Pegoraro  <address@hidden>  (tiny change)
+
+       Support HiDPI displays for wave style underlines
+
+       * src/xterm.c (x_draw_underwave): Compute height, length and thickness
+       based on scale factor.
+       (x_get_scale_factor): New function.
+
+2017-08-18  Bastien  <address@hidden>
+
+       Delete library-of-babel.org
+
+       * etc/org/library-of-babel.org: Delete file.
+
+2017-08-18  Glenn Morris  <address@hidden>
+
+       * doc/emacs/files.texi (Copying and Naming): Avoid confusing texi2pdf.
+
+2017-08-18  Noam Postavsky  <address@hidden>
+
+       Remove custom version parsing from epg-config.el (Bug#27963)
+
+       * lisp/epg-config.el (epg-config--compare-version)
+       (epg-config--parse-version): Remove.
+       (epg-check-configuration): Use `version<=' instead.
+
+2017-08-18  Mark Oteiza  <address@hidden>
+
+       Treat control characters in JSON strings as invalid
+
+       * lisp/json.el (json-peek): Reduce to following-char.
+       (json-pop, json-read): Zero (null char) means end of file.
+       (json-read-escaped-char): Delimit URL properly.
+       (json-read-string): Signal error for ASCII control characters.
+       * test/lisp/json-tests.el (test-json-peek): Check for zero instead of
+       :json-eof symbol.
+       (test-json-read-string): New test for control characters in JSON
+       strings.
+
+2017-08-17  Eli Zaretskii  <address@hidden>
+
+       Support Posix semantics of 'rename' on MS-Windows
+
+       * src/w32.c (sys_rename_replace): Support Posix semantics of
+       'rename': return an error if OLD is a directory while NEW is not,
+       or vice versa.
+
+2017-08-17  Eli Zaretskii  <address@hidden>
+
+       * src/w32.c (sys_rename_replace): Support renaming a directory.
+
+2017-08-17  Eli Zaretskii  <address@hidden>
+
+       Fix the MS-Windows build
+
+       * nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_open): Omit Gnulib module
+       'open'.
+
+       * lib-src/etags.c (O_CLOEXEC) [WINDOWSNT]: Restore definition.
+
+2017-08-17  João Távora  <address@hidden>
+
+       Add flymake-backends defcustom
+
+       * lisp/progmodes/flymake-proc.el (flymake-proc-can-syntax-check-buffer):
+       Rename from flymake-can-syntax-check-file.  Suitable for adding to
+       flymake-backends.
+       (flymake-proc-start-syntax-check): Rename from
+       flymake-start-syntax-check.  Don't check again if buffer can be
+       checked.
+       (add-to-list flymake-backends): Hook only flymake-ui.el
+
+       * lisp/progmodes/flymake-ui.el (flymake-backends): New
+       defcustom.
+       (flymake-on-timer-event, flymake-after-change-function)
+       (flymake-after-save-hook, flymake-find-file-hook): Call new
+       flymake--start-syntax-check-buffer and
+       flymake--can-syntax-check-buffer.
+       (flymake-mode): Call flymake--can-syntax-check-buffer and set
+       flymake-backend.
+       (flymake--backend): New buffer-local variable.
+
+2017-08-17  João Távora  <address@hidden>
+
+       Split flymake.el into flymake-proc.el and flymake-ui.el
+
+       flymake.el is now a stub that requires both files.
+
+       * lisp/progmodes/flymake-proc.el: New file.
+
+       * lisp/progmodes/flymake-ui.el: New file.
+
+       * lisp/progmodes/flymake.el: Split into flymake-ui.el and
+         flymake-proc.el.  Require both files.
+
+2017-08-17  Michael Albinus  <address@hidden>
+
+       Set `default-directory' for watchdog in tramp-test.el
+
+       * test/lisp/net/tramp-tests.el (tramp-test36-asynchronous-requests):
+       Set `default-directory' for watchdog.
+
+2017-08-17  Andreas Schwab  <address@hidden>
+
+       * lisp/term/konsole.el: New file.
+
+2017-08-17  Noam Postavsky  <address@hidden>
+
+       * lisp/woman.el (woman-push, woman-pop): Remove.  (Bug#27962)
+
+       (woman2-RS): Use plain `push' instead of `woman-push'.
+       (woman2-RE): Conditionally `pop' instead of `woman-pop'.
+
+2017-08-16  Paul Eggert  <address@hidden>
+
+       Merge from Gnulib; use ‘open’ for O_CLOEXEC
+
+       This incorporates:
+       2017-08-15 renameat: ensure declaration in <stdio.h> on NetBSD
+       2017-08-15 extensions: enable NetBSD specific extensions
+       2017-08-14 open: support O_CLOEXEC
+       2017-08-13 reallocarray: new module
+       * admin/merge-gnulib (AVOIDED_MODULES): Remove ‘open’, since
+       it now supports O_CLOEXEC and this simplifies Emacs.
+       * build-aux/config.guess, lib/fcntl.in.h, lib/stdio.in.h:
+       * lib/stdlib.in.h, m4/extensions.m4, m4/stdlib_h.m4:
+       Copy from Gnulib.
+       * lib/cloexec.c, lib/cloexec.h, lib/open.c:
+       * m4/mode_t.m4, m4/open-cloexec.m4, m4/open.m4:
+       New files, copied from Gnulib.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * lib-src/etags.c (O_CLOEXEC) [WINDOWSNT]:
+       Remove, as Gnulib does this for us.
+       * src/filelock.c (create_lock_file):
+       * src/sysdep.c (emacs_open, emacs_pipe):
+       Don’t worry about O_CLOEXEC == 0, as Gnulib no longer sets it to 0.
+
+2017-08-16  Alan Third  <address@hidden>
+           Charles A. Roelli  <address@hidden>
+
+       Allow use of run-time OS version checks on macOS (bug#27810)
+
+       * src/nsterm.h (NSWindowTabbingMode): Define in pre-Sierra macOS.
+       (MAC_OS_X_VERSION_10_6, MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8,
+       MAC_OS_X_VERSION_10_9, MAC_OS_X_VERSION_10_12, HAVE_NATIVE_FS): Remove
+       defines.
+       (NSWindowStyleMaskFullScreen,
+       NSWindowCollectionBehaviorFullScreenPrimary,
+       NSApplicationPresentationFullScreen,
+       NSApplicationPresentationAutoHideToolbar): Define in macOS 10.6.
+       * src/nsterm.m (colorForEmacsRed, colorUsingDefaultColorSpace,
+       check_native_fs, ns_read_socket, ns_select, runAlertPanel,
+       initFrameFromEmacs, windowDidMiniaturize, windowDidEnterFullScreen,
+       windowDidExitFullScreen, isFullscreen, updateCollectionBehavior,
+       toggleFullScreen, constrainFrameRect, scrollerWidth, syms_of_nsterm):
+       Allow use of run-time checks and replace version check macros.
+       * src/nsfns.m (ns_screen_name): Use run-time OS version checks.
+       * src/macfont.m (macfont_draw): Use run-time OS version checks.
+       * src/nsmenu.m (menuWillOpen): Use run-time OS version checks.
+
+2017-08-16  Alan Third  <address@hidden>
+
+       Add multiframe image support to NS port (bug#21714)
+
+       * src/nsimage.m (ns_load_image): Handle multiple frames.
+       (EmacsImage::getMetadata, EmacsImage::setFrame): New functions.
+       * src/nsterm.h (EmacsImage::getMetadata, EmacsImage::setFrame): New
+       function prototypes.
+
+2017-08-16  Tino Calancha  <address@hidden>
+
+       files-tests.el: Remove unused lexical variable
+
+       * test/lisp/files-tests.el (file-test--do-local-variables-test);
+       Remove unused var 'files-test-queried'.
+
+2017-08-16  Michael Albinus  <address@hidden>
+
+       * doc/emacs/files.texi (Copying and Naming): Mention
+
+       restrictions to add-name-to-file and make-symbolic-link on
+       remote systems.
+
+2017-08-16  Michael Albinus  <address@hidden>
+
+       * lisp/net/ange-ftp.el (ange-ftp-skip-msgs): Further support ftp-ssl.
+
+2017-08-16  Noam Postavsky  <address@hidden>
+
+       Add tests for previous commit
+
+       * test/lisp/progmodes/elisp-mode-tests.el
+       (elisp-mode-tests--face-propertized-string): New function.
+       (elisp--highlight-function-argument-indexed)
+       (elisp--highlight-function-argument-keyed-1)
+       (elisp--highlight-function-argument-keyed-2): New tests.
+
+2017-08-16  Thierry Volpiatto  <address@hidden>
+
+       Fix eldoc highlighting for &key args (Bug#27272)
+
+       * lisp/progmodes/elisp-mode.el (elisp--highlight-function-argument):
+       Only switch to keyword-based searching if INDEX point beyond `&key' in
+       the argument list.  All arguments prior to the `&key' are position
+       based.  Additionally, be more strict about what is a keyword when
+       searching for the current keyword.
+
+2017-08-15  Paul Eggert  <address@hidden>
+
+       Do not assume regular Git .git/hooks dir
+
+       Apparently Gitlab doesn’t create .git/hooks, like regular Git does.
+       Problem reported by Ted Zlatanov in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-08/msg00380.html
+       * autogen.sh (git_sample_hook_src): New function.  Use it to work
+       even if .git/hooks or its samples do not exist.
+
+2017-08-15  Paul Eggert  <address@hidden>
+
+       New manual section "Copying and Naming"
+
+       * doc/emacs/files.texi (Copying and Naming):
+       New section, split off from Misc File Ops and containing the
+       operations that copy, name or rename files.  This fixes some
+       confusion caused by the incorrect phrase "The same rule applies
+       to all the remaining commands in this section" in the old manual.
+       This change does not affect the confusion about directories (see
+       Bug#27986 for ongoing discussion).
+
+2017-08-15  Eli Zaretskii  <address@hidden>
+
+       Fix the MS-Windows build
+
+       * src/fileio.c (Frename_file): Don't use ENOTSUP if it is equal to
+       ENOSYS.  (Bug#28097)  (Bug#27986)
+
+2017-08-15  Ted Zlatanov  <address@hidden>
+
+       * .gitlab-ci.yml: run "autogen.sh autoconf" to avoid Git.
+
+       * .gitlab-ci.yml: add Git to the installed packages.
+
+2017-08-15  Simen Heggestøyl  <address@hidden>
+
+       Support indentation of detached Less CSS rulesets
+
+       * lisp/textmodes/css-mode.el (css-smie-rules): Provide better support
+       for indentation of detached rulesets passed to Less mixins.
+
+       * test/manual/indent/less-css-mode.less: New file.
+
+2017-08-15  Simen Heggestøyl  <address@hidden>
+
+       Fixes and tweaks for the new Less CSS mode
+
+       * etc/NEWS: Add an entry for the new mode.
+
+       * lisp/textmodes/less-css-mode.el (less-css): Tweak docstring.
+       (less-css-lessc-command): Tweak docstring. Don't mark it as
+       safe. Don't autoload.
+       (less-css-compile-at-save, less-css-lessc-options)
+       (less-css-output-directory): Tweak docstrings. Don't autoload.
+       (less-css-output-file-name): Tweak docstring. Don't mark it as safe.
+       (less-css-input-file-name): Tweak docstring. Don't autoload.
+       (less-css-compile-maybe): Use `when' for one-armed `if'.
+       (less-css--output-path): Tweak docstring.
+       (less-css--maybe-shell-quote-command): Remove function.
+       (less-css-compile): Don't autoload. Tweak docstring and message. Fix
+       compiler warning. Use `string-join' instead of `mapconcat'.
+       (less-css-font-lock-keywords): Use `font-lock-variable-name-face' for
+       variables.
+       (less-css-mode-syntax-table, less-css-mode-map): New variables.
+       (less-css-mode): Change status line mode name from "LESS" to
+       "Less". Tweak docstring. Move syntax table definitions to
+       `less-css-mode-syntax-table'.
+       (less-css-indent-line): Remove function.
+
+2017-08-15  Steve Purcell  <address@hidden>
+
+       New major mode: Less CSS mode
+
+       * lisp/textmodes/less-css-mode.el: New file.
+
+2017-08-15  Tino Calancha  <address@hidden>
+
+       archive-int-to-mode: Fix order of testing S_ISUID, S_ISGID bits
+
+       * lisp/arc-mode.el (archive-int-to-mode):
+       Swap order of 2048 and 1024 tests (Bug#28092).
+       * test/lisp/arc-mode-tests.el (arc-mode-test-archive-int-to-mode):
+       Update test.
+
+2017-08-15  Paul Eggert  <address@hidden>
+
+       Improve rename-file port to macOS
+
+       * src/fileio.c (Frename_file): On macOS, renameat_noreplace can
+       fail with errno == ENOTSUP on file systems where it is not
+       supported, according to the Apple documentation.
+
+2017-08-15  Noam Postavsky  <address@hidden>
+
+       Speed up ./configure with more caching (Bug#27960)
+
+       * configure.ac: Cache the 'GTK compiles', 'GSettings is in gio',
+       'LN_S', '-znocombreloc', 'sysinfo', 'gcc autodepends', '-b link',
+       'Xkb', 'Xpm preprocessor', 'tputs library' 'GLib', 'signals via
+       characters', and 'Windows API header' checks.  Remove pause after
+       warning about GTK bug.
+
+2017-08-15  Paul Eggert  <address@hidden>
+
+       Improve rename-file behavior on macOS
+
+       Problem reported by Philipp Stephani (Bug#27986).
+       * src/fileio.c (Frename_file):
+       Worry about file name case sensitivity only if CYGWIN or DOS_NT.
+       * src/sysdep.c (renameat_noreplace): Use renameatx_np on macOS,
+       since this provides the necessary atomicity guarantees.
+
+2017-08-14  Glenn Morris  <address@hidden>
+
+       Clean up temp files after some tests
+
+       * test/lisp/emacs-lisp/bytecomp-tests.el
+       (bytecomp-tests--with-temp-file): Also delete .elc file if present.
+       * test/lisp/progmodes/etags-tests.el
+       (etags-buffer-local-tags-table-list): Delete temp file at end.
+
+2017-08-14  Eli Zaretskii  <address@hidden>
+
+       Implement renameat_noreplace for MS-Windows
+
+       * src/sysdep.c (renameat_noreplace) [WINDOWSNT]: Implement minimal
+       emulation for MS-Windows.  (Bug#27986)
+
+2017-08-14  Eli Zaretskii  <address@hidden>
+
+       Fix 'rename' on MS-Windows
+
+       * src/w32.c (sys_rename_replace): Use the FORCE argument only if
+       the primitive rename errors out with EEXIST.
+
+2017-08-14  Michael Albinus  <address@hidden>
+
+       * lisp/net/ange-ftp.el (ange-ftp-skip-msgs): Support ftp-ssl.
+
+2017-08-14  Mark Oteiza  <address@hidden>
+
+       Tiny JSON performance improvement
+
+       Get rid of some needless uses of apply.  Measuring with
+         (benchmark-run 10 (json-read-file "test.json"))
+       showed 1.5-2.5% reduction of execution time.
+       * lisp/json.el (json-peek): Nix let-binding.
+       (json-read-string): Use concat for making a string from chars.
+       (json-read-array): Use cond and more appropriate conversion instead
+       of blindly applying.
+
+2017-08-13  Paul Eggert  <address@hidden>
+
+       Be consistent in spelling 'ok-if-already-exists'.
+
+2017-08-13  Alexander Gramiak  <address@hidden>
+
+       Use 'header-line-highlight' face in proced and erc
+
+       * lisp/erc/erc-list.el (erc-list-button):
+       * lisp/proced.el (proced-format): Use the 'header-line-highlight
+       face.  (Bug#28033)
+
+2017-08-13  Ulf Jasper  <address@hidden>
+
+       Remove feeds with dead uris from newsticker--raw-url-list-defaults
+
+       * lisp/net/newst-backend.el (newsticker--raw-url-list-defaults):
+         Remove feeds with dead uris.
+
+2017-08-13  Eli Zaretskii  <address@hidden>
+
+       Fix vertical cursor motion when cursor is on the fringe
+
+       * lisp/simple.el (line-move-visual): Fix an off-by-one error in
+       setting temporary-goal-column when newline overflows into the
+       fringe.  Support that use case in R2L paragraphs as well.
+
+2017-08-13  Eli Zaretskii  <address@hidden>
+
+       Fix vertical cursor motion across too wide images
+
+       * src/indent.c (Fvertical_motion): If lines are truncated and we
+       end up beyond the right margin of the window, don't assume we are
+       in the next screen line, unless VPOS actually says so.  (Bug#28071)
+
+2017-08-13  Tino Calancha  <address@hidden>
+
+       Add test suites for arc-mode and tar-mode
+
+       * test/lisp/arc-mode-tests.el (arc-mode-test-archive-int-to-mode)
+       * test/lisp/tar-mode-tests.el (tar-mode-test-tar-grind-file-mode):
+       New tests.
+
+2017-08-13  Tino Calancha  <address@hidden>
+
+       * lisp/tar-mode.el (tar-grind-file-mode): Fix docstring
+
+2017-08-13  Ulf Jasper  <address@hidden>
+
+       Fix uri of Emacs Wiki
+
+       * lisp/net/newst-backend.el (newsticker--raw-url-list-defaults): Fix
+         uri of Emacs Wiki.  (Bug#27981)
+
+2017-08-13  Paul Eggert  <address@hidden>
+
+       Fix make-temp-file bug with ""/"."/".." prefix
+
+       The bug with "." and ".." has been present for a while; I
+       introduced the bug with "" earlier today in my patch for Bug#28023.
+       * lisp/files.el (make-temp-file): Do not use expand-file-name if
+       PREFIX is empty or "." or "..", as it does the wrong thing.
+       Compute absolute-prefix here ...
+       (files--make-magic-temp-file): ... instead of here ...
+       * src/fileio.c (Fmake_temp_file_internal): ... or here.
+
+       * lisp/files.el (make-temp-file): If the prefix is empty, append
+       "/" to the absolute prefix so that the new files are children
+       rather than siblings of temporary-file-directory.  This fixes a
+       bug introduced in the previous change.
+       * test/lisp/files-tests.el (files-test-make-temp-file-empty-prefix):
+       New test, for the bug.
+
+2017-08-13  Paul Eggert  <address@hidden>
+
+       Improve make-temp-file performance on local files
+
+       For the motivation behind this patch, please see Bug#28023 and:
+       http://emacshorrors.com/posts/make-temp-name.html
+       Although, given the recent changes to Tramp, the related security
+       problem in make-temp-file is already fixed, make-temp-file still has
+       several unnecessary system calls.  In the typical case on GNU/Linux,
+       this patch replaces 8 syscalls (symlink, open, close, readlinkat, uname,
+       getpid, unlink, umask) by 2 (open, close).
+       * admin/merge-gnulib (GNULIB_MODULES): Add tempname, now
+       that Emacs is using it directly.
+       * configure.ac (AUTO_DEPEND): Remove AC_SYS_LONG_FILE_NAMES;
+       no longer needed.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * lisp/files.el (files--make-magic-temp-file): Rename from
+       make-temp-file.
+       (make-temp-file): Use make-temp-file-internal for
+       non-magic file names.
+       * src/fileio.c: Include tempname.h.
+       (make_temp_name_tbl, make_temp_name_count)
+       (make_temp_name_count_initialized_p, make_temp_name): Remove.
+       (Fmake_temp_file_internal): New function.
+       (Fmake_temp_name): Use it.
+       * src/filelock.c (get_boot_time): Use Fmake_temp_file_internal
+       instead of make_temp_name.
+
+2017-08-12  Paul Eggert  <address@hidden>
+
+       Document internal-use naming conventions
+
+       * doc/lispref/functions.texi (Function Names):
+       * doc/lispref/variables.texi (Tips for Defining):
+       Document naming conventions for internal-use functions and vars.
+       See Bug#28023#59.
+
+2017-08-12  Paul Eggert  <address@hidden>
+
+       Simplify re and document 'autoconf.sh all'
+
+       * GNUmakefile (ALL_IF_GIT): Remove; no longer needed, now that
+       ./autogen.sh defaults to "all".  All uses removed.
+       * README: Mention autoconf.sh's effect on Git configuration.
+
+2017-08-12  Paul Eggert  <address@hidden>
+
+       Default autogen.sh to 'all'
+
+       This addresses a problem noted by RMS in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-08/msg00052.html
+       * autogen.sh (do_git): Set to true if this script is invoked
+       with no arguments and there is a .git subdirectory.
+
+2017-08-12  Paul Eggert  <address@hidden>
+
+       Adjust jka-compr to recent Tramp changes.
+
+       * lisp/jka-compr.el (jka-compr-write-region):
+       Two new args LOCKNAME and MUSTBENEW.
+
+2017-08-12  Eli Zaretskii  <address@hidden>
+
+       Improve doc strings of 2 functions in simple.el
+
+       * lisp/simple.el (beginning-of-visual-line)
+       (move-beginning-of-line): Doc fix.  Reported by
+       Justin Burkett <address@hidden>.
+
+2017-08-12  Eli Zaretskii  <address@hidden>
+
+       Fix completion on directory names on MS-DOS/MS-Windows
+
+       * src/msdos.c (faccessat):
+       * src/w32.c (faccessat): Support relative file names, and add D_OK
+       to 'mode' if the argument is a directory.  This unbreaks file-name
+       completion when the completion result is a directory.
+
+2017-08-12  Michael Albinus  <address@hidden>
+
+       Implement EXCL of write-region for Tramp
+
+       * lisp/net/ange-ftp.el (ange-ftp-write-region):
+       * lisp/net/tramp-adb.el (tramp-adb-handle-write-region)
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-write-region):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-write-region)
+       * lisp/net/tramp-smb.el (tramp-smb-handle-write-region):
+       Implement MUSTBENEW.
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file)
+       * lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link)
+       (tramp-sh-handle-add-name-to-file)
+       (tramp-do-copy-or-rename-file)
+       * lisp/net/tramp-smb.el (tramp-smb-handle-make-symbolic-link):
+       Adapt error message for `file-already-exists'.
+
+       * src/lisp.h:
+       * src/eval.c (call8): New function.
+
+       * src/fileio.c (write_region): Pass also lockname and
+       mustbenew to the file name handler.
+
+       * test/lisp/net/tramp-tests.el (tramp-test10-write-region):
+       Add tests for MUSTBENEW.
+
+2017-08-12  Eli Zaretskii  <address@hidden>
+
+       Adapt Proced display to display-line-numbers
+
+       * lisp/proced.el (proced-header-line): Account for the width taken
+       by display-line-numbers.  (Bug#27895)
+
+2017-08-12  Eli Zaretskii  <address@hidden>
+
+       Adapt tabulated list when display-line-number is turned on
+
+       * lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode): Add
+       a hook to revert the display when display-line-numbers is turned
+       on.  (Bug#27895)
+
+2017-08-12  Eli Zaretskii  <address@hidden>
+
+       Use Gnulib 'tempname' on MS-Windows
+
+       * lib-src/ntlib.h (mkdir, open): Remove redefinitions.  They are
+       now in nt/inc/ms-w32.h.
+       * lib-src/ntlib.c (sys_mkdir, sys_open): New functions.
+       (mkostemp): Remove.
+
+       * src/w32.c (mkostemp): Remove.
+       (sys_mkdir): Accept a second (unused) argument.
+       * src/fileio.c (Fmake_directory_internal): Remove the WINDOWSNT
+       specific call to mkdir.  (Bug#28023)
+
+       * nt/inc/ms-w32.h (mkdir): Remove from "#ifdef emacs" and redefine
+       to accept 2 arguments.
+       (open): Remove from "#ifdef emacs".
+       * nt/mingw-cfg.site (ac_cv_func_mkostemp): Remove.
+       * nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_mkostemp)
+       (OMIT_GNULIB_MODULE_tempname): Remove.
+
+2017-08-12  Alexander Gramiak  <address@hidden>
+
+       Add new face 'header-line-highlight'
+
+       * lisp/faces.el: Define the face.
+       * lisp/emacs-lisp/tabulated-list.el (tabulated-list-init-header):
+       * lisp/info.el (Info-fontify-node): Use the new face.
+       * doc/emacs/display.texi (Standard Faces):
+       * etc/NEWS: Document the new face.  (Bug#28033)
+
+2017-08-12  Arash Esbati  <address@hidden>
+
+       Make a case-sensitive match for strings
+
+       * lisp/textmodes/reftex.el (reftex-typekey-check): Temporarily
+       let-bind `case-fold-search' to nil in order to be case-sensitive
+       when matching a string.  (Bug#27518)
+
+2017-08-11  Stephen Berman  <address@hidden>
+
+       Fix a minor todo-mode regression
+
+       * lisp/calendar/todo-mode.el (todo-get-overlay): Wrap in
+       save-excursion.  This fixes a regression introduced by the fix
+       for bug#27609, whereby trying to raise the priority of the
+       first item or lower the priority of the last item, which
+       should be noops, moves point to the item's start.  Clarify
+       comment.
+
+       * test/lisp/calendar/todo-mode-tests.el
+       (todo-test-raise-lower-priority): Add test cases for trying to
+       raise first item and lower last item.
+       (with-todo-test): Clear abbreviated-home-dir, since we change HOME.
+       (todo-test-toggle-item-header02): Remove ":expected-result
+       :failed" and tests of point after todo-next-item, since the
+       effect when using Todo mode is not reproducible in the test
+       environment.  Add commentary about this.
+
+2017-08-11  Paul Eggert  <address@hidden>
+
+       Improve performance for rename-file etc.
+
+       Although this does not fix Bug#27986, it is a step forward.
+       I plan to propose a more-significant patch later.
+       * lisp/files.el (directory-name-p): Move from here ...
+       * src/fileio.c (Fdirectory_name_p): ... to here.
+       (directory_like, cp_like_target): New static functions.
+       (Fcopy_file, Frename_file, Fadd_name_to_file)
+       (Fmake_symbolic_link):
+       Use them, to avoid directory-testing syscalls on file names that
+       must be directories if they exist.  Omit unnecessary
+       initializations and CHECK_STRING calls.
+       (Frename_file): Don't call file_name_case_insensitive_p
+       twice on the same file.  Compare both file names expanded, instead
+       of the old name expanded and the new one unexpanded.
+
+2017-08-11  Noam Postavsky  <address@hidden>
+
+       Respect buffer-local value of tags-table-list (Bug#27772)
+
+       * lisp/progmodes/etags.el (visit-tags-table-buffer): Save the current
+       buffer around the `tags-table-including' calls so as to get buffer
+       local variables from the right buffer later.
+       * test/lisp/progmodes/etags-tests.el (etags-visit-tags-table-buffer):
+       New test.
+       * test/lisp/progmodes/etags-tests.el (etags-tests--test-dir): New
+       constant.
+       (etags-bug-158, etags-bug-23164): Use it so that when running the test
+       interactively, setting EMACS_TEST_DIRECTORY is not needed.
+
+2017-08-10  Tom Tromey  <address@hidden>
+
+       Fix auto-filling regression
+
+       Bug#28003
+       * lisp/newcomment.el (comment-indent-new-line): Check
+       comment-auto-fill-only-comments.  Reverts earlier change.
+       * lisp/simple.el (internal-auto-fill): Call auto-fill-function, not
+       do-auto-fill.
+
+2017-08-09  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-08-09 tempname: do not depend on secure_getenv
+       2017-08-08 extensions: add _OPENBSD_SOURCE
+       2017-08-06 manywarnings: Add support for C++
+       2017-08-06 warnings, manywarnings: Add support for multiple languages
+       * admin/merge-gnulib: Don't use m4/manywarnings-c++.m4.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * lib/secure_getenv.c, m4/secure_getenv.m4: Remove.
+       * lib/tempname.c, m4/extensions.m4, m4/manywarnings.m4, m4/warnings.m4:
+       Copy from gnulib.
+
+2017-08-09  Eli Zaretskii  <address@hidden>
+
+       Fix crashing emacs-module tests on MS-Windows
+
+       * src/w32fns.c (syms_of_w32fns) <w32-disable-abort-dialog>: New
+       variable.
+       (emacs_abort): If w32-disable-abort-dialog is non-nil, abort right
+       away, without displaying the Abort dialog, which waits for the user.
+
+       * test/src/emacs-module-tests.el (module--test-assertion): Run the
+       inferior Emacs with the w32 abort dialog disabled.  Expect the
+       status of the aborted Emacs sub-process to be 3 on MS-Windows and
+       2 on MS-DOS.
+
+2017-08-09  Tino Calancha  <address@hidden>
+
+       dired-delete-file:  Dont't ask for empty dirs
+
+       * lisp/dired.el (dired--yes-no-all-quit-help): New defun.
+       (dired-delete-file): Use it.  Dont't ask for empty dirs (Bug#27940).
+
+       * test/lisp/dired-tests.el (dired-test-with-temp-dirs):
+       New auxiliar macro.
+       (dired-test-bug27940): Add new test.
+
+2017-08-09  Tino Calancha  <address@hidden>
+
+       Ask files for deletion in buffer order: top first, botton later
+
+       * lisp/dired.el (dired-do-flagged-delete, dired-do-delete):
+       Call `nreverse' t invert the output of `dired-map-over-marks'.
+
+2017-08-09  Alexander Gramiak  <address@hidden>
+
+       Use help-mode xrefs in describe-font
+
+       * lisp/international/mule-diag.el (describe-font): Use help-setup-xref
+       (Bug#27890).
+
+2017-08-09  Katsumi Yamaoka  <address@hidden>
+
+       Don't try to jump to non-existent part (bug#28013)
+
+       * lisp/gnus/gnus-art.el (gnus-article-edit-part): Don't try to jump to
+       the next part if there is the only one part in the article (bug#28013).
+
+2017-08-08  Mark Oteiza  <address@hidden>
+
+       Replace some uses of eval
+
+       There are a number of places where eval is used unnecessarily to get
+       or set the value of a symbol.
+       * lisp/calendar/calendar.el (diary-date-forms): Use default-value in
+       custom setter.
+       * lisp/desktop.el (desktop-clear): Use set-default instead.
+       * lisp/international/ogonek.el (ogonek-read-encoding): Use
+       symbol-value.
+
+2017-08-08  Mark Oteiza  <address@hidden>
+
+       Convert uses of looking-at in viper-ex to following-char
+
+       * lisp/emulation/viper-ex.el (viper-get-ex-token): Bind
+       (following-char) and use it in the subsequent cond's clauses.
+       (viper-ex, ex-quit, viper-get-ex-file): Use following-char instead.
+       Convert single branch ifs to when
+
+2017-08-08  Mark Oteiza  <address@hidden>
+
+       Some cleanup in message.el
+
+       * lisp/gnus/message.el (message-cross-post-insert-note):
+       (message-strip-forbidden-properties): Mark unused args.
+       (message-canlock-generate): Remove extinct variable
+       sha1-maximum-internal-length.
+       (message-make-mail-followup-to): Use loop's thereis clause.
+
+2017-08-08  Paul Eggert  <address@hidden>
+
+       Document make-temp-name magic limitations
+
+       * doc/lispref/files.texi (Unique File Names):
+       * src/fileio.c (Fmake_temp_name): Document that make-temp-name
+       does not guarantee uniqueness on magic file names.
+
+2017-08-08  Tom Tromey  <address@hidden>
+
+       Show number of errors in compilation-mode mode-line
+
+       Bug#25354
+       * lisp/progmodes/compile.el (compilation-num-errors-found): Provide
+       default value.
+       (compilation-num-warnings-found, compilation-num-infos-found): New
+       defvars.
+       (compilation-mode-line-errors): New defconst.
+       (compilation-face): Remove.
+       (compilation-type, compilation--note-type): New functions.
+       (compilation-parse-errors): Call compilation--note-type.
+       (compilation-start): Include compilation-mode-line-errors in
+       mode-line-process.
+       (compilation-setup): Initialize compilation-num-* variables to 0.
+       (compilation-handle-exit): Include compilation-mode-line-errors in
+       mode-line-process.
+       * doc/emacs/building.texi (Compilation): Document new feature.
+
+2017-08-08  Mark Oteiza  <address@hidden>
+
+       Do some cleanup in mailcap.el
+
+       * lisp/net/mailcap.el: Use lexical-binding.
+       (mailcap--set-user-mime-data, mailcap-possible-viewers): Use pcase
+       destructuring.
+       (mailcap-mime-data): Remove some entries for ancient functions.
+       (mailcap-parse-mailcaps, mailcap-mime-info): Nix single-branch ifs.
+       (mailcap-parse-mimetype-file): Just use append.
+       (mailcap-command-p): Remove unused function.
+
+2017-08-08  Tino Calancha  <address@hidden>
+
+       query-replace: Undo replacements performed with 'comma
+
+       During a `query-replace', the char ',' replaces the character
+       at point and doesn't move point;  right after, the char 'u'
+       must undo such replacement (Bug#27268).
+       * lisp/replace.el (replace--push-stack):
+       New macro extracted from `perform-replace'.
+       (perform-replace): Use it.
+       * test/lisp/replace-tests.el (query-replace--undo): Add test.
+
+2017-08-08  Noam Postavsky  <address@hidden>
+
+       Don't define gv expanders in compiler's runtime (Bug#27016)
+
+       This prevents definitions being compiled from leaking into the current
+       Emacs doing the compilation.
+       * lisp/emacs-lisp/gv.el (gv-define-expander): Use function-put instead
+       of `put' with `eval-and-compile'.
+       * test/lisp/emacs-lisp/gv-tests.el: New tests.
+
+2017-08-08  Noam Postavsky  <address@hidden>
+
+       Let the cl-typep effects of defclass work during compilation (Bug#27718)
+
+       * lisp/emacs-lisp/eieio.el (defclass): Use `define-symbol-prop'
+       instead of `put'.
+       * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
+       (eieio-tests--dummy-function): Remove.
+       (eieio-test-25-slot-tests, eieio-test-23-inheritance-check): Don't
+       expect to fail if compiled.
+
+2017-08-08  Stefan Monnier  <address@hidden>
+           Noam Postavsky  <address@hidden>
+
+       Let `define-symbol-prop' take effect during compilation
+
+       * src/fns.c (syms_of_fns): New variable `overriding-plist-environment'.
+       (Fget): Consult it.
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-close-variables): Let-bind
+       it to nil.
+       (byte-compile-define-symbol-prop): New function, handles compilation
+       of top-level `define-symbol-prop' and `function-put' calls by putting
+       the symbol setting into `overriding-plist-environment'.
+
+2017-08-08  Gemini Lasswell  <address@hidden>
+
+       Add a test of handling of circular values to testcover-tests
+
+       * test/lisp/emacs-lisp-testcover-resources/testcases.el
+       (testcover-testcase-cyc1): New function.
+       (testcover-tests-circular-lists-bug-24402): New test.
+
+2017-08-08  Noam Postavsky  <address@hidden>
+
+       Don't error on circular values in testcover
+
+       * lisp/emacs-lisp/testcover.el (testcover-after, testcover-1value):
+       Consider circular lists to be non-equal instead of signaling error.
+
+2017-08-08  Alexander Gramiak  <address@hidden>
+
+       Catch argument and macroexpansion errors in ert
+
+       This kludge catches errors caused by evaluating arguments in ert's
+       should, should-not, and should-error macros; it also catches
+       macroexpansion errors inside of the above macros (Bug#24402).
+
+       * lisp/emacs-lisp/ert.el: (ert--should-signal-hook): New function.
+       (ert--expand-should-1): Catch macroexpansion errors.
+       * test/lisp/emacs-lisp/ert-tests.el (ert-test-should-error-argument)
+       (ert-test-should-error-macroexpansion): Tests for argument and
+       expansion errors.
+
+2017-08-07  Reuben Thomas  <address@hidden>
+
+       Revert "Add Enchant support to ispell.el (Bug#17742)"
+
+       This reverts commit 7136e6723d87b51ae3089f5ceef6b14621bfaf87.
+
+2017-08-07  Reuben Thomas  <address@hidden>
+
+       Revert "Add support for arguments in ALTERNATE_EDITOR to emacsclient"
+
+       This reverts commit 28f1fe97daa13e13714e6c43c9a6fbb0c0e99a26.
+
+2017-08-07  Reuben Thomas  <address@hidden>
+
+       Add support for arguments in ALTERNATE_EDITOR to emacsclient
+
+       * lib-src/emacsclient.c (fail): Parse ALTERNATE_EDITOR, or
+       corresponding command-line argument, into space-separated tokens.
+       * etc/NEWS: Document.
+       * test/lib-src/emacsclient-tests.el: Add a test.
+
+2017-08-07  Reuben Thomas  <address@hidden>
+
+       Add Enchant support to ispell.el (Bug#17742)
+
+       * lisp/textmodes/ispell.el (ispell-program-name): Add “enchant”.
+       (ispell-really-enchant): Add variable.
+       (ispell-check-version): If using Enchant, check it’s new enough (at
+       least 1.6.1).  (Like the ispell check, this is absolute: cannot work
+       without.)
+       (ispell-enchant-dictionary-alist): Add variable.
+       (ispell-find-enchant-dictionaries): Add function, based on
+       ispell-find-aspell-dictionaries.
+       (ispell-set-spellchecker-params): Allow dictionary auto-detection for
+       Enchant, and call ispell-find-enchant-dictionaries to find them.  Use
+       old ispell name to locale mapping code for Enchant too.
+       (ispell-send-replacement): Make it work with Enchant.
+
+2017-08-07  Reuben Thomas  <address@hidden>
+
+       Allow async command output buffer to be shown only on output
+
+       * lisp/simple.el (async-shell-command-display-buffer): Add
+       defcustom.
+       (shell-command): Use the new defcustom to determine whether to show
+       the buffer immediately, or add a process filter that shows it only
+       when there is some output.
+       * etc/NEWS: Document the new variable.
+       * doc/emacs/misc.texi: Likewise.
+
+       Thanks to Juri Linkov and Eli Zaretskii for advice and guidance.
+
+2017-08-07  Eli Zaretskii  <address@hidden>
+
+       Fix infinite recursion under prettify-symbols-mode and linum-mode
+
+       * src/xdisp.c (get_overlay_strings_1)
+       (handle_single_display_spec, push_prefix_prop): Invalidate the
+       composition information before starting to iterate on a string.
+       Otherwise we might think in set_iterator_to_next that we are
+       delivering characters from a composition, and do all kinds of
+       nonsensical things, like over-step the string end.  (Bug#27761)
+
+2017-08-07  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/gnus-bcklg.el (gnus-backlog-request-article): Fix thinko.
+
+2017-08-07  Martin Rudalics  <address@hidden>
+
+       Fix doc-string of `delete-other-windows'
+
+       * lisp/window.el (delete-other-windows): Fix doc-string.
+
+2017-08-07  Paul Eggert  <address@hidden>
+
+       Fix a couple more make-temp-file races
+
+       * lisp/files.el (basic-save-buffer-2, move-file-to-trash):
+       Use make-temp-name, not make-temp-file with retry.
+       (basic-save-buffer-2): Use condition-case, instead of
+       unwind-protect with a success flag.
+
+2017-08-07  Noam Postavsky  <address@hidden>
+
+       Merge null and without-null regexp alists (Bug#27840, Bug#27873)
+
+       * lisp/progmodes/grep.el (grep-mode-font-lock-keywords): Allow for NUL
+       characters following filename in grep context lines.
+       (grep--regexp-alist-column, grep--regexp-alist-bin-matcher)
+       (grep-with-null-regexp-alist, grep-fallback-regexp-alist): Remove.
+       (grep-regexp-alist): Recombine their contents here.
+       (grep-mode):
+       * lisp/cedet/semantic/symref/grep.el
+       (semantic-symref-parse-tool-output-one-line):
+       * lisp/progmodes/xref.el (xref-collect-matches): Use the variable
+       `grep-regexp-alist' rather than the function.
+
+2017-08-07  Paul Eggert  <address@hidden>
+
+       Fix some crashes on self-modifying Elisp code
+
+       Prompted by a problem report by Alex in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-08/msg00143.html
+       * src/eval.c (For, Fprogn, Fsetq, FletX, eval_sub):
+       Compute XCDR (x) near XCAR (x); although this doesn't fix any bugs,
+       it is likely to run a bit faster with typical hardware caches.
+       (Fif): Use Fcdr instead of XCDR, to avoid crashing on
+       self-modifying S-expressions.
+       (Fsetq, Flet, eval_sub): Count the number of arguments as we go
+       instead of trusting an Flength prepass, to avoid problems when the
+       code is self-modifying.
+       (Fquote, Ffunction, Fdefvar, Fdefconst): Prefer !NILP to CONSP
+       where either will do.  This is mostly to document the fact that
+       the value must be a proper list.  It's also a tiny bit faster on
+       typical machines nowadays.
+       (Fdefconst, FletX): Prefer XCAR+XCDR to Fcar+Fcdr when either will do.
+       (eval_sub): Check that the args are a list as opposed to some
+       other object that has a length. This prevents e.g. (if . "string")
+       from making Emacs dump core in some cases.
+       * test/src/eval-tests.el (eval-tests--if-dot-string)
+       (eval-tests--let-with-circular-defs, eval-tests--mutating-cond):
+       New tests.
+
+2017-08-06  Eli Zaretskii  <address@hidden>
+
+       * etc/tutorials/TUTORIAL.he: Update to match recent changes to TUTORIAL.
+
+2017-08-06  Tino Calancha  <address@hidden>
+
+       Minor tweak in a dired test
+
+       * test/lisp/dired-tests.el (dired-test-bug27968):
+       Ensure the new header has different length than the original one.
+
+2017-08-06  Tino Calancha  <address@hidden>
+
+       dired-delete-file: Do not TAB complete the user answer
+
+       This action might delete directories containing valuable information.
+       Before previous commit, we prompted users with `yes-or-no-p'
+       which doesn't TAB complete the user answer.  Let's play safe and
+       keep requiring full answers.
+       * emacs-master/lisp/dired.el (dired-delete-file): Use `read-string'
+       instead of `completing-read' to read the user answers.
+
+2017-08-06  Tino Calancha  <address@hidden>
+
+       dired-do-delete: Allow to delete dirs recursively without prompts
+
+       * lisp/dired.el (dired-delete-file): Accept 2 additional answers:
+       'all', to delete all directories recursively and no prompt anymore.
+       'quit', to cancel directory deletions (Bug#27940).
+       Show help message when user inputs 'help'.
+       (dired-do-flagged-delete): Bind locally dired-recursive-deletes
+       so that we can overwrite its global value.
+       Wrapp the loop within a catch '--delete-cancel to catch when
+       the user abort the directtry deletion.
+       * doc/emacs/dired.texi (Dired Deletion): Update manual.
+       * etc/NEWS (Changes in Specialized Modes and Packages in Emacs 26.1):
+       Announce this change.
+
+2017-08-06  Paul Eggert  <address@hidden>
+
+       Fix a couple of make-temp-file races
+
+       * lisp/emacs-lisp/autoload.el (autoload--save-buffer):
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-file):
+       Use make-temp-file, not make-temp-name, to avoid an unlikely race
+       that could lose data.  Remove the deletion hook as quickly as
+       possible after the file is renamed; though a race still remains
+       here, it is smaller than before.
+
+2017-08-06  Tino Calancha  <address@hidden>
+
+       Dired w/ eshell-ls: Handle shell wildcards in file name
+
+       * lisp/eshell/em-ls.el (eshell-ls--insert-directory):
+       Use eshell-extended-glob (Bug#27844).
+       * test/lisp/dired-tests.el (dired-test-bug27844): Add test.
+
+2017-08-06  Tino Calancha  <address@hidden>
+
+       dired-revert: save line numbers instead of positions
+
+       Positions might change if the length of one dired header line
+       changes; this happen, for instance, if we add new files.
+       Instead, line numbers are invariant under shrinks/enlargements
+       of the file header.
+       https://lists.gnu.org/archive/html/emacs-devel/2017-07/msg01092.html
+       * lisp/dired.el (dired-save-positions): Save the line numbers at point.
+       (dired-restore-positions): Use forward-line to restore the original
+       position (Bug#27968).
+       * test/lisp/dired-tests.el (dired-test-bug27968): Add test.
+
+2017-08-06  Tom Tromey  <address@hidden>
+
+       Respect comment-auto-fill-only-comments
+
+       Respect comment-auto-fill-only-comments when auto-filling and a
+       comment syntax is defined.
+
+       * lisp/newcomment.el (comment-indent-new-line): Do not check
+       comment-auto-fill-only-comments.
+       * lisp/simple.el (internal-auto-fill): New defun.
+       * src/cmds.c (internal_self_insert): Call Qinternal_auto_fill, not
+       auto_fill_function.
+       (syms_of_cmds): Define Qinternal_auto_fill.
+
+2017-08-05  Richard Stallman  <address@hidden>
+
+       * etc/tutorials/TUTORIAL: Update.
+
+2017-08-05  Eli Zaretskii  <address@hidden>
+
+       Unify CNS11643-15 in a way that avoids segfaults
+
+       * lisp/international/mule-conf.el: Redo unification of
+       cns11643-15.  (Bug#27964)
+       (chinese-cns11643-15): Add the missing :unify-map attribute.
+
+2017-08-05  Eli Zaretskii  <address@hidden>
+
+       Avoid segfaults while producing Punct.el
+
+       * lisp/international/mule-conf.el: Undo unification of
+       cns11643-15, as that causes segfaults during bootstrap.
+       (Bug#27964)
+
+2017-08-05  Eli Zaretskii  <address@hidden>
+
+       Make header line in some modes be sensitive to display-line-numbers
+
+       * lisp/ruler-mode.el (ruler-mode-ruler, ruler-mode-window-col):
+       * lisp/emacs-lisp/tabulated-list.el (tabulated-list-init-header)
+       (tabulated-list-print-entry): Account for the width taken by
+       line-number display.  (Bug#27895)
+
+2017-08-05  Eli Zaretskii  <address@hidden>
+
+       Fix a bug in 'generate-new-buffer-name'
+
+       * src/buffer.c (Fgenerate_new_buffer_name): Test IGNORE for being
+       nil before calling string-equal, since the latter will compare
+       "nil and 'nil' as equal.  (Bug#27966)
+
+       * test/src/buffer-tests.el
+       (test-generate-new-buffer-name-bug27966): New test.
+
+2017-08-05  Eli Zaretskii  <address@hidden>
+
+       Unify CNS11643-15
+
+       * lisp/international/mule-conf.el (chinese-cns11643-15): Add a
+       unify-charset form for it.  (Bug#27964)
+
+2017-08-05  Eli Zaretskii  <address@hidden>
+
+       Improve test of error message when Emacs cannot be suspended
+
+       * lisp/term/x-win.el (x-win-suspend-error):
+       * lisp/term/ns-win.el (ns-suspend-error): Improve the error
+       message.  (Bug#27901)
+
+2017-08-05  Alexander Gramiak  <address@hidden>
+
+       Make "C-h o" show faces as well as variables
+
+       * lisp/faces.el (describe-face): Return (buffer-string).  Reorder
+       the placement of variables/faces in describe-symbol, to put more
+       emphasis on the variable entry rather than the face.  (Bug#24543)
+
+2017-08-05  Eli Zaretskii  <address@hidden>
+
+       Fix files-tests.el for MS-Windows
+
+       * test/lisp/files-tests.el
+       (files-tests--file-name-non-special--subprocess): Fix this test
+       for MS-Windows.
+
+2017-08-05  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of 'region-extract-function'
+
+       * lisp/simple.el (region-extract-function): Rename the argument to
+       METHOD.  Doc fix.  (Bug#27927)
+
+2017-08-05  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-08-04 manywarnings: port to 64-bit GCC builds of Emacs
+       2017-08-01 manywarnings: port to 32-bit GCC bug
+       * lib/gnulib.mk.in: Regenerate.
+       * m4/manywarnings.m4: Copy from gnulib.
+
+2017-08-05  Paul Eggert  <address@hidden>
+
+       Port recent rename changes to Ubuntu 14.04
+
+       * src/sysdep.c (renameat_noreplace) [!RENAME_NOREPLACE]:
+       Don’t use syscall.  Problem reported by Tino Calancha (Bug#27946#10).
+
+2017-08-05  Tino Calancha  <address@hidden>
+
+       insert-directory-wildcard-in-dir-p: Tweak regexp
+
+       This function must return non-nil for a wildcard like '/*/*.txt'.
+       * lisp/files.el (insert-directory-wildcard-in-dir-p): Adjust regexp.
+       * test/lisp/files-tests.el 
(files-tests--insert-directory-wildcard-in-dir-p):
+       Add test.
+
+2017-08-04  Toby S. Cubitt  <address@hidden>
+
+       Implement iterator generator for avl-trees.
+
+       * lisp/emacs-lisp/avl-tree.el (avl-tree-iter): New iter-defun.
+
+2017-08-04  Tino Calancha  <address@hidden>
+
+       ls-lisp: Drop eshell dependencies
+
+       Use 'file-expand-wildcards' instead of 'eshell-extended-glob' to
+       expand the wildcards.
+       Suggested by Fabrice Popineau in:
+       https://lists.gnu.org/archive/html/emacs-devel/2017-08/msg00108.html
+       * lisp/ls-lisp.el (ls-lisp--dired): Use file-expand-wildcards.
+
+2017-08-04  Tino Calancha  <address@hidden>
+
+       Fix dired-test-bug27631 on MS-Windows
+
+       Skip the test if Dired use 'ls' emulation with lisp.  The same
+       bug is tested in their respective test suites: ls-lisp-tests.el
+       and em-ls-tests.el.
+       * test/lisp/dired-tests.el (dired-test-bug27631): Skip test if 'ls-lisp'
+       or 'eshell' features are enabled.
+
+2017-08-04  Eli Zaretskii  <address@hidden>
+
+       Fix dired-test-bug25609 on MS-Windows
+
+       * test/lisp/dired-tests.el (dired-test-bug25609): On MS-Windows,
+       pass temporary files through file-truename, to avoid bogus
+       failures due to file-name comparison as strings.
+
+2017-08-04  Tino Calancha  <address@hidden>
+
+       Fix 2 tests that fail in MS-Windows
+
+       https://lists.gnu.org/archive/html/emacs-devel/2017-08/msg00018.html
+       * test/lisp/vc/ediff-ptch-tests.el (ediff-ptch-test-bug26084):
+       Add comments to explain the test logic.
+       Pass '--binary' option to 'patch' program in windows environments.
+       Check explicitely that a backup is created before compare file contents.
+
+       * test/lisp/dired-tests.el (dired-test-bug25609):
+       Declare variable 'dired-dwim-target' right before the test.
+       Add comments to explain the test logic.
+       Ensure, before test the bug condition, that we are displaying the
+       2 dired buffers created in this test, and no other dired buffer
+       is shown.
+
+2017-08-04  Stefan Monnier  <address@hidden>
+
+       * lisp/shell.el (explicit-shell-file-name): Mention shell-file-name
+
+       * lisp/files.el (insert-directory): Don't hardcode "-c".
+       * lisp/term.el (term, ansi-term): Use shell-file-name.
+
+2017-08-04  Paul Eggert  <address@hidden>
+
+       Fix version numbers for some GnuTLS features
+
+       Problem reported by Glenn Morris (Bug#27708#58).
+       * src/gnutls.c (HAVE_GNUTLS_X509_SYSTEM_TRUST):
+       New macro.  Use it instead of low-level version number checks.
+       (HAVE_GNUTLS_AEAD): Move here from gnutls.h, and rename from
+       HAVE_GNUTLS3_AEAD.  All uses changed.  Indent preprocessor lines.
+       * src/gnutls.h (HAVE_GNUTLS3_CIPHER, HAVE_GNUTLS3_DIGEST)
+       (HAVE_GNUTLS3_HMAC): Remove, since these were available
+       before GnuTLS 3.0.0 and the code checks them only if HAVE_GNUTLS3
+       is defined.  Remove all uses; this simplifies the code a bit.
+
+2017-08-04  Paul Eggert  <address@hidden>
+
+       Port recent rename changes to RHEL 7 + NFS
+
+       Problem reported by Ted Zlatanov in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-08/msg00082.html
+       * src/fileio.c (Frename_file): On RHEL 7 + NFS, renameat2 can fail
+       with errno == EINVAL when it is not supported.  So treat that case
+       like errno == ENOSYS.  Also, when ok_if_already_exists is neither
+       nil nor an integer, just call plain rename; this avoids an extra
+       syscall to renameat2 when the latter fails with errno == EINVAL or
+       ENOSYS or ENOENT.
+
+2017-08-03  Paul Eggert  <address@hidden>
+
+       Port GnuTLS usage to Ubuntu 16.04.2 LTS
+
+       * src/gnutls.h (HAVE_GNUTLS3_AEAD): Define only if GnuTLS 3.5.1 or
+       later, as opposed to the old 3.4.0 or later.
+
+2017-08-03  Paul Eggert  <address@hidden>
+
+       Simplify configuration of HAVE_GNUTLS3 etc.
+
+       There's only one GnuTLS, so configuring these symbols at
+       'configure' time is overkill.  Simplify things by moving their
+       configuration to src/gnutls.h (Bug#27708).
+       * configure.ac (HAVE_GNUTLS3, HAVE_GNUTLS3_HMAC, HAVE_GNUTLS3_AEAD)
+       (HAVE_GNUTLS3_CIPHER, HAVE_GNUTLS3_DIGEST): Move these definitions
+       from here ...
+       * src/gnutls.h: ... to here, and simplify.
+
+2017-08-03  Paul Eggert  <address@hidden>
+
+       Default to --with-mailutils if it is installed
+
+       * configure.ac (with_mailutils): Default to 'yes' if GNU Mailutils
+       is installed.  See:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-08/msg00054.html
+
+2017-08-02  Paul Eggert  <address@hidden>
+
+       Clarify when autogen.sh should run only autoconf
+
+       * Makefile.in (configure, bootstrap): Run ‘./autogen.sh autoconf’,
+       not plain ‘./autogen.sh’, to make it clear that only
+       autoconf-related tools should be run here.
+
+2017-08-02  Toon Claes  <address@hidden>
+
+       .gitlab-ci.yml: Use stretch Debian image instead of unstable
+
+2017-08-02  Stephen Berman  <address@hidden>
+
+       Add debugging messages to a Dired test
+
+       * test/lisp/dired-tests.el (dired-test-bug27243-01): Log
+       positions saved and restored by dired-revert to try and find
+       out why the test fails on Hydra.
+
+2017-08-02  Tino Calancha  <address@hidden>
+
+       ls-lisp: Autoload call instead of cookie
+
+       * lisp/ls-lisp.el (eshell-extended-glob): autoload call instead of 
cookie.
+
+2017-08-02  Paul Eggert  <address@hidden>
+
+       When renaming a file, ask only if EEXIST or ENOSYS
+
+       * src/fileio.c (Frename_file): Avoid calling Ffile_directory_p
+       more than once on FILE.  Use renameat_noreplace, so that we can
+       ask the user (and unlink and retry) only if this fails with errno
+       == EEXIST or ENOSYS.  This avoids the need to ask the user for
+       permission to do an operation that will fail anyway.  Simplify
+       computation of ok_if_already_exists for subsidiary functions.
+       * src/filelock.c (rename_lock_file): Prefer renameat_noreplace
+       if it works, as this avoids the need to link and unlink.
+       * src/lisp.h (renameat_noreplace): New decl.
+       * src/sysdep.c [HAVE_LINUX_FS_H]: Include linux/fs.h and sys/syscall.h.
+       (renameat_noreplace): New function.
+
+2017-08-02  Paul Eggert  <address@hidden>
+
+       When creating a link, ask only if EEXIST
+
+       * src/fileio.c (Fadd_name_to_file, Fmake_symbolic_link):
+       Ask the user (and unlink and retry) only if link creation fails
+       with errno == EEXIST.  This avoids the need to ask the user for
+       permission to do an operation that will fail anyway.
+
+2017-08-02  Tino Calancha  <address@hidden>
+
+       dired-align-file: Inherit text properties in inserted spaces
+
+       * lisp/dired.el (dired-align-file): Inherit text
+       properties in inserted spaces (Bug#27899).
+       * test/lisp/dired-tests.el (dired-test-bug27899): Add test.
+
+2017-08-02  Tino Calancha  <address@hidden>
+
+       Don't assume /bin/sh as the 'sh' location in the local host
+
+       * lisp/dired.el (dired-insert-directory): Use executable-find in
+       a local host.
+
+2017-08-02  Tino Calancha  <address@hidden>
+
+       Move dired tests using ls emulation to different files
+
+       Suggested in:
+       https://lists.gnu.org/archive/html/emacs-devel/2017-08/msg00018.html
+       * test/lisp/dired-tests.el (dired-test-bug27693)
+       (dired-test-bug27762, dired-test-bug27817)
+       (dired-test-bug27631, dired-test-bug27843): Delete those
+       parts requiring either ls-lisp or eshell-ls.
+
+       * test/lisp/ls-lisp-tests.el (ls-lisp-test-bug27762)
+       (ls-lisp-test-bug27631, ls-lisp-test-bug27693):
+       Add all dired tests using ls-lisp here.
+
+       * test/lisp/eshell/em-ls-tests.el (em-ls-test-bug27631)
+       (em-ls-test-bug27817, em-ls-test-bug27843): New test file.  Add
+       all dired tests using eshell-ls here.
+
+2017-08-02  Tino Calancha  <address@hidden>
+
+       * test/lisp/ls-lisp-tests.el: Rename it from ls-lisp.el
+
+2017-08-02  Katsumi Yamaoka  <address@hidden>
+
+       * lisp/gnus/mm-uu.el (mm-uu-org-src-code-block-extract):
+       Say the handle is already decoded.
+       cf. <address@hidden> in the info-gnus-english list.
+
+2017-08-02  Paul Eggert  <address@hidden>
+
+       Don’t worry about unlink if errno == ENOENT
+
+       * src/fileio.c (Fdelete_file):
+       * src/keyboard.c (Fopen_dribble_file): Do not report failure to
+       remove a file if unlink fails with errno == ENOENT.  This can
+       happen even if Emacs is the only program removing the file, in
+       case an NFS cache overflows.  The file does not exist if errno ==
+       ENOENT, so it is OK to proceed.
+
+2017-08-01  Tino Calancha  <address@hidden>
+
+       Fix misalignment in Dired when dired-directory is a cons
+
+       * lisp/dired.el (dired--need-align-p, dired--align-all-files):
+       New defuns.
+       (dired-internal-noselect): Call dired--align-all-files when
+       dired-directory is a cons (Bug#27762).
+       * test/lisp/dired-tests.el (dired-test-bug27762): Test should pass.
+
+2017-08-01  Eli Zaretskii  <address@hidden>
+
+       Fix some dired-tests.el on MS-Windows
+
+       * test/lisp/dired-tests.el (dired-test-bug27243-01)
+       (dired-test-bug27243-02): On MS-Windows, pass test-dir through
+       file-truename, to avoid bogus failures due to file-name comparison
+       as strings.
+
+2017-08-01  Tino Calancha  <address@hidden>
+
+       Insert subdir content if dir-or-list is a string w/o wildcards
+
+       * lisp/eshell/em-ls.el (eshell-ls--insert-directory):
+       Append '("-d") into 'eshell-ls-dired-initial-args'
+       if 'dired-directory' is a cons or there are wildcars (Bug#27843).
+       * test/lisp/dired-tests.el (dired-test-bug27843): Add test.
+
+2017-08-01  Stephen Berman  <address@hidden>
+
+       Update todo-mode defcustoms in a less hideous way
+
+       * lisp/calendar/todo-mode.el (todo-reevaluate-filelist-defcustoms)
+       (todo-reevaluate-default-file-defcustom)
+       (todo-reevaluate-category-completions-files-defcustom)
+       (todo-reevaluate-filter-files-defcustom): Delete these functions.
+       (todo-update-filelist-defcustoms): New function.  This replaces
+       todo-reevaluate-filelist-defcustoms, using the 'custom-type'
+       property instead of re-evaluating the defcustoms.
+       (todo-add-file, todo-rename-file, todo-delete-file)
+       (todo-delete-category, todo-move-category)
+       (todo-convert-legacy-files, todo-check-file): Replace call of
+       todo-reevaluate-filelist-defcustoms by
+       todo-update-filelist-defcustoms.
+       (todo-show, todo-category-completions): Replace call of
+       todo-reevaluate-* function by use of 'custom-type' property.
+
+2017-08-01  Tino Calancha  <address@hidden>
+
+       Add more should form calls in a failing dired test
+
+       Some dired tests fail intermittently in hydra.  Add few
+       more should form calls for debugging.
+       See:
+       https://lists.gnu.org/archive/html/emacs-devel/2017-07/msg01092.html
+       * test/lisp/dired-tests.el (dired-test-bug27243-01): Add few more should
+       forms for debugging.
+
+2017-08-01  Michael Albinus  <address@hidden>
+
+       Follow SAUNA recommendations for display-line-numbers-type
+
+       * lisp/display-line-numbers.el (display-line-numbers-type): Do not 
autoload.
+
+       * lisp/menu-bar.el (display-line-numbers-type): Declare.
+
+2017-07-31  Paul Eggert  <address@hidden>
+
+       Avoid most stat calls when completing file names
+
+       * admin/merge-gnulib (GNULIB_MODULES): Add d-type.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * m4/d-type.m4: New file, copied from gnulib.
+       * src/dired.c (DT_UNKNOWN, DT_DIR, DT_LINK)
+       [!HAVE_STRUCT_DIRENT_D_TYPE]: New constants.
+       (dirent_type): New function.
+       (file_name_completion): Use it, to avoid unnecessary calls to
+       stat-like functions on GNU/Linux and other platforms with d_type.
+       (file_name_completion_stat): Just follow the link; there is no
+       need to try first with AT_SYMLINK_NOFOLLOW since the directory
+       entry was already checked to exist.
+
+2017-07-31  Tino Calancha  <address@hidden>
+
+       dired-tests: Unload tested features after test them
+
+       Some tests are for Dired with ls-lisp or eshell-ls.
+       Requiring these features add an advice on `dired' and
+       might affect other tests.
+       Do not require these features at the top of the file; require
+       then inside the tests and unload then at the end.
+       * test/lisp/dired-tests.el (dired-test-bug27693)
+       (dired-test-bug7131, dired-test-bug27817, dired-test-bug27631):
+       require ls-lisp and/or eshell-ls inside the test; unload the
+       features at the end.
+
+2017-07-31  Michael Albinus  <address@hidden>
+
+       Small adaptions for directory wildcards
+
+       * lisp/dired.el (dired-insert-directory): Remove "--dired"
+       when there are wildcards, and the directory is remote.
+
+       * test/lisp/net/tramp-tests.el (tramp--test-make-temp-name):
+       Adapt docstring.
+       (tramp-test17-dired-with-wildcards): Skip for all methods but
+       those from tamp-sh.p.
+
+2017-07-31  Tino Calancha  <address@hidden>
+
+       * lisp/dired (dired-trivial-filenames): Use \` and \' to match string 
bounds
+
+2017-07-31  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-07-30 Don't interpret EOVERFLOW to mean nonexistence
+       * lib/tempname.c: Copy from gnulib.
+
+2017-07-30  Tino Calancha  <address@hidden>
+
+       ls-lisp: Do not require em-glob at top of the file
+
+       Require em-glob inside 'ls-lisp--dired'.  This is necessary to
+       not break the Emacs build.
+       See following thread for details:
+       https://lists.gnu.org/archive/html/emacs-devel/2017-07/msg01083.html
+       * lisp/ls-lisp.el (dired-goto-next-file)
+       (dired-read-dir-and-switches, eshell-extended-glob):
+       Add function declarations.
+       * lisp/eshell/em-ls.el (dired-goto-next-file): Fix function declaration.
+
+2017-07-30  Michael Albinus  <address@hidden>
+
+       * lisp/dired.el (dired-insert-directory): Move `file-remote-p' check up.
+
+       * test/lisp/net/tramp-tests.el (tramp-test17-dired-with-wildcards): New 
test.
+
+2017-07-30  Simen Heggestøyl  <address@hidden>
+
+       Change default CSS property face
+
+       * lisp/textmodes/css-mode.el (css-property): Inherit from
+       `font-lock-keyword-face' instead of `font-lock-variable-name-face' to
+       distinguish CSS properties from variables.
+
+2017-07-30  Tino Calancha  <address@hidden>
+
+       Dired: Handle posix wildcards in directory part
+
+       Allow Dired to handle calls like
+       \(dired \"~/foo/*/*.el\"), that is, with wildcards within
+       the directory part of the file argument (Bug#27631).
+       * lisp/files.el (insert-directory-wildcard-in-dir-p): New predicate.
+       (insert-directory-clean): New defun extracted from insert-directory.
+       (insert-directory)
+       * lisp/dired.el (dired-internal-noselect)
+       (dired-insert-directory): Use the new predicate; when it's true,
+       handle the directory wildcards with a shell call.
+       * lisp/eshell/em-ls.el (eshell-ls-use-in-dired): Add/remove both 
advices.
+       (eshell-ls-unload-hook): New defun.  Use it in
+       eshell-ls-unload-hook instead of an anonymous function.
+       (eshell-ls--dired)
+       * lisp/ls-lisp.el (ls-lisp--dired):
+       Advice dired to handle wildcards in the directory part with both
+       eshell-ls and ls-lisp.
+       * etc/NEWS: Announce it.
+       * doc/emacs/dired.texi (Dired Enter): Update manual.
+       * test/lisp/dired-tests.el (dired-test-bug27631): Add test.
+
+2017-07-29  Tino Calancha  <address@hidden>
+
+       * lisp/find-lisp.el: Enable lexical binding
+
+       * lisp/find-dired.el: Enable lexical binding
+
+2017-07-29  Mark Oteiza  <address@hidden>
+
+       * lisp/kmacro.el: Use lexical binding.
+
+2017-07-29  Mark Oteiza  <address@hidden>
+
+       Use lexical-binding in dired-aux.el
+
+       * lisp/dired.el: Use lexical binding.
+       (dired-do-shell-command): Remove unused bindings.
+
+2017-07-29  Mark Oteiza  <address@hidden>
+
+       * lisp/ido.el: Use lexical binding.
+
+       * lisp/whitespace.el: Use lexical binding.
+
+2017-07-29  Stephen Berman  <address@hidden>
+
+       artist.el: Avoid error with keyboard command invocation
+
+       * lisp/textmodes/artist.el (artist-mouse-choose-operation):
+       Call x-popup-menu with t instead of last-nonmenu-event as the
+       value of the position argument; this allows invoking the
+       command from the keyboard without raising an error (bug#27819).
+
+2017-07-29  Stephen Berman  <address@hidden>
+
+       Preserve point under 'dired-auto-revert-buffer' (third case)
+
+       * lisp/files.el (find-file): Use pop-to-buffer-same-window
+       instead of switch-to-buffer.  This preserves Dired window
+       point when dired-auto-revert-buffer is non-nil.  (Bug#27243)
+
+       * test/lisp/dired-tests.el (dired-test-bug27243-01)
+       (dired-test-bug27243-02, dired-test-bug27243-03): New tests.
+       The first two replace a previous test that combined them; that
+       test intermittently fails in the Hydra build system, so maybe
+       separating the two cases will help locate the point of
+       failure.  The third test involves find-file but is here
+       because it, like the others, is testing the effect of
+       dired-auto-revert-buffer.
+
+2017-07-29  Allen Li  <address@hidden>  (tiny change)
+
+       Do not unset user key remaps in dired-x
+
+       * lisp/dired-x.el (dired-x-bind-find-file): Don't map any keys if user
+       sets dired-x-hands-off-my-keys.  (Bug#27828)
+
+2017-07-29  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of 'occur'
+
+       * doc/emacs/search.texi (Other Repeating Search):
+       * lisp/replace.el (occur): Make the documentation of 'occur' be
+       more accurate when matches overlap.  (Bug#27818)
+
+2017-07-29  Eli Zaretskii  <address@hidden>
+
+       Minor copyedits of comments in faces.el
+
+       * lisp/faces.el (face-font-family-alternatives): More info about
+       requirements from "Monospace Serif".
+
+2017-07-29  Paul Eggert  <address@hidden>
+
+       Do not worry about paxctl on newer NetBSD
+
+       Problem reported privately by Thomas Klausner.
+       * configure.ac (emacs_uname_r): New var.  Use it to avoid paxctl
+       on newer NetBSD platforms, where it is not needed.  Also use it to
+       simplify Cygwin diagnostic.
+
+2017-07-29  Eli Zaretskii  <address@hidden>
+
+       Clarify documentation of ':inherit' face attribute
+
+       * doc/lispref/display.texi (Face Attributes): Document the special
+       treatment of 'unspecified' in the ':inherit' attribute.
+
+2017-07-28  Stefan Monnier  <address@hidden>
+
+       * lisp/password-cache.el (password-data): Use a hash-table
+
+       * lisp/auth-source.el (auth-source-magic): Remove.
+       (auth-source-forget+, auth-source-forget-all-cached): Adjust to new
+       format of password-data.
+       (auth-source-format-cache-entry): Just use a cons.
+
+       (password-cache-remove, password-cache-add, password-reset)
+       (password-read-from-cache, password-in-cache-p): Adjust accordingly.
+
+       (Bug#26699)
+
+2017-07-28  Stefan Monnier  <address@hidden>
+
+       * lisp/subr.el (define-symbol-prop): New function
+
+       (symbol-file): Make it find symbol property definitions.
+
+       * lisp/emacs-lisp/pcase.el (pcase-defmacro):
+       * lisp/emacs-lisp/ert.el (ert-set-test): Use it instead of `put'.
+       (ert-describe-test): Adjust call to symbol-file accordingly.
+
+2017-07-28  Stefan Monnier  <address@hidden>
+
+       * lisp/subr.el (method-files): Move function to cl-generic.el
+
+       * lisp/emacs-lisp/cl-generic.el (cl-generic-p): New function.
+       (cl--generic-method-files): New function, moved from subr.el.
+       * lisp/emacs-lisp/edebug.el (edebug-instrument-function): Use them.
+       * test/lisp/emacs-lisp/cl-generic-tests.el:
+       * test/lisp/subr-tests.el: Move and adjust method-files tests 
accordingly.
+
+2017-07-28  Eli Zaretskii  <address@hidden>
+
+       Preserve this-command-keys across recursive-edit invocations
+
+       * src/minibuf.c (read_minibuf, read_minibuf_unwind): Save and
+       restore this-command-keys, to preserve it across recursive-edit.
+       (Bug#27470)
+
+2017-07-28  Eli Zaretskii  <address@hidden>
+
+       Improve doc string of 'locate-dominating-file'
+
+       * lisp/files.el (locate-dominating-file): Doc fix.  (Bug#27798)
+
+2017-07-28  Drew Adams  <address@hidden>
+
+       New commands 'apropos-local-variable', 'apropos-local-value'
+
+       * lisp/apropos.el (apropos-local-variable, apropos-local-value):
+       New functions.  (Bug#27424)
+
+       * doc/emacs/help.texi (Apropos): Document 'apropos-local-variable'
+       and 'apropos-local-value'.
+       * etc/NEWS: Mention the new commands.
+
+2017-07-28  Stefan Monnier  <address@hidden>
+
+       * lisp/loadhist.el (unload-feature): Remove ad-hoc ELP code
+
+       * lisp/emacs-lisp/elp.el (loadhist-unload-element): Un-instrument 
functions.
+
+2017-07-27  Alan Mackenzie  <address@hidden>
+
+       Fix C++ class initializers not always being fontified at mode start.
+
+       The problem here happened when an "outer list" of declarations moved 
beyond an
+       "inner list" containing class initializers.  These weren't being 
checked for
+       by the code.
+
+       Also, fix places in c-get-fontification-context where point is 
undefined.
+
+       * lisp/progmodes/cc-fonts.el (c-get-fontification-context): when 
argument
+       not-front-decl is set, test for class initializers.  Also, anchor point 
in
+       places where it is moved and is otherwise undefined.
+
+2017-07-27  Alan Mackenzie  <address@hidden>
+
+       Fix variables in C++ "for" statement not always being fontified.
+
+       The error happened when there was a comma inside template delimiters.
+
+       * lisp/progmodes/cc-fonts.el (c-get-fontification-context): In "for"
+       statements, recognise template delimiters containing "," and "&".
+
+2017-07-27  Michael Albinus  <address@hidden>
+
+       Add watchdog process to tramp-test36-asynchronous-requests
+
+       * test/lisp/net/tramp-tests.el (tramp--test-timeout-handler):
+       New defun.
+       (tramp-test36-asynchronous-requests): Use a watchdog process,
+       listening for SIGUSR1.
+
+2017-07-27  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Fix declarator being cut off from terminator by end of 
jit-lock chunk
+
+       If a declarator is so cut off, extend the fontification chunk to 
include it.
+
+       * lisp/progmodes/cc-mode.el (c-fl-decl-end): New function.
+       (c-change-expand-fl-region, c-context-expand-fl-region): Use the new 
function.
+
+2017-07-27  Stefan Monnier  <address@hidden>
+
+       * lisp/vc/smerge-mode.el: Avoid N² blow up in degenerate cases
+
+       (smerge--refine-long-words): New var.
+       (smerge--refine-chopup-region): Use it.
+
+2017-07-27  Stefan Monnier  <address@hidden>
+
+       * lisp/url/url-cookie.el: Use lexical-binding
+
+       (url-cookie-host-can-set-p): Remove unused var `last'.
+       Use string-suffix-p.
+       (url-cookie-list): De morgan.
+       (url-cookie-quit): Remove.
+       (url-cookie-mode): Inherit from special-mode.
+       (url-cookie-mode-map): Simplify accordingly.
+
+2017-07-27  Stefan Monnier  <address@hidden>
+
+       * lisp/calendar/todo-mode.el (todo-print-buffer-function): Rework 
docstring.
+
+       * lisp/ruler-mode.el (ruler-mode-ruler): Document problem.
+
+2017-07-27  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-generic.el (cl-generic-define-method):
+
+       Record this as the function's definition site if it's the first def.
+
+2017-07-26  Glenn Morris  <address@hidden>
+
+       * doc/lispref/loading.texi (When to Autoload): New section.
+
+2017-07-26  Glenn Morris  <address@hidden>
+
+       Stop using unibyte buffers for ert backtraces
+
+       * lisp/emacs-lisp/ert.el
+       (ert-results-pop-to-backtrace-for-test-at-point):
+       Set multibyte true, not false.  This copies a
+       debugger-setup-buffer change from 2009-08-30, and stops the
+       "Backtrace for" header line containing ^X and ^Y.
+
+2017-07-26  Dmitry Gutov  <address@hidden>
+
+       Fix semantic-symref-parse-tool-output-one-line after 644cdd1aa0
+
+       * lisp/cedet/semantic/symref/grep.el
+       (semantic-symref-grep--line-re): Delete.
+       (semantic-symref-parse-tool-output-one-line):
+       Use regexp and group numbers from (grep-regexp-alist).
+
+2017-07-26  Grégoire Jadi  <address@hidden>
+
+       Fix cl-defmethod indentation
+
+       * lisp/emacs-lisp/cl-generic.el (cl-defmethod):
+       Declare (indent defun).  Fixes bug#23994.
+
+2017-07-26  Martin Rudalics  <address@hidden>
+
+       Fix two customization types in frame.el
+
+       * lisp/frame.el (window-divider-default-bottom-width)
+       (window-divider-default-right-width): Fix customization types.
+
+2017-07-26  Tino Calancha  <address@hidden>
+
+       Dired: Support eshell-ls from the beginning if the user wants to
+
+       * lisp/dired.el (dired-insert-directory): Check for eshell-ls
+       as well (Bug#27817).
+       * test/lisp/dired-tests.el (dired-test-bug27817): Add test.
+
+2017-07-26  Mark Oteiza  <address@hidden>
+
+       * lisp/progmodes/sh-script.el (sh-mode): Recognize mkshrc.
+
+2017-07-25  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/eieio-compat.el (eieio--defgeneric-init-form):
+
+       Adjust to change in cl-generic-ensure-function.
+
+2017-07-25  Tino Calancha  <address@hidden>
+
+       ls-lisp: Add an unload function and enable lexical binding
+
+       Enable lexical binding.
+       * lisp/ls-lisp.el (ls-lisp-unload-function): New defun.
+       * test/lisp/ls-lisp.el (ls-lisp-unload): Add test.
+
+2017-07-25  Tino Calancha  <address@hidden>
+
+       register-read-with-preview: Quit if user input C-g or ESC
+
+       * lisp/register.el (register-read-with-preview):
+       Quit if user input C-g or ESC (bug#27634).
+       * doc/emacs/regs.texi (Registers): Update manual.
+       * test/lisp/register-tests.el (register-test-bug27634): Add test.
+
+2017-07-25  Mark Oteiza  <address@hidden>
+
+       Recognize MirBSD Korn shell rc file
+
+       * lisp/files.el (auto-mode-alist): Add .mkshrc to the list.
+
+2017-07-25  Glenn Morris  <address@hidden>
+
+       * configure.ac: Be explicit about ImageMagick version in summary.
+
+2017-07-25  Andreas Schwab  <address@hidden>
+
+       Properly align global lispsym
+
+       * lib-src/make-docfile.c (close_emacs_globals): Wrap struct
+       Lisp_Symbols inside struct.
+       * src/alloc.c (sweep_symbols): Update use of lispsym.
+       * src/lisp.h (builtin_lisp_symbol): Likewise.
+
+2017-07-25  Paul Eggert  <address@hidden>
+
+       Do not use ImageMagick 7 and later
+
+       Suggested by Glenn Morris (Bug#25967#15).
+       * configure.ac (IMAGEMAGICK_MODULE): Reject 7 and later.
+
+2017-07-25  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/perl-mode.el: Add support for indented here docs
+
+       * lisp/progmodes/perl-mode.el (perl-syntax-propertize-function):
+       Recognize the new <<~ syntax for indented here docs.
+       (perl-syntax-propertize-special-constructs): Adjust search of the
+       end of here docs accordingly.
+
+       * test/manual/indent/perl.perl: Add test for indented here docs.
+
+2017-07-24  Stefan Monnier  <address@hidden>
+
+       (loadhist-unload-element): Move ERT and cl-generic methods
+
+       * lisp/loadhist.el (loadhist-unload-element): Don't define cl-generic
+       and ert methods here.
+       (loadhist-unload-element) <(head define-type)>: Remove unused var 
`slots'.
+
+       * lisp/emacs-lisp/cl-generic.el (loadhist-unload-element): Define
+       unload method for cl-defmethod.
+       (cl-generic-ensure-function): Remove redundant `defalias'.
+
+       * lisp/emacs-lisp/ert.el (ert-set-test): Move the current-load-list
+       setting here...
+       (ert-deftest): ...from here.
+       (loadhist-unload-element): Define unload method for ert-deftest.
+
+2017-07-24  Michael Albinus  <address@hidden>
+
+       Fix Bug#27371
+
+       * lisp/loadhist.el (loadhist-unload-element): Declare for
+       different entry types of `load-history'.
+       (loadhist--restore-autoload): New variable.
+       (loadhist--unload-function): New defun.
+       (unload-feature): Use `loadhist-unload-element'.  Recommended by
+       Stefan Monnier.  (Bug#27371)
+
+       * test/lisp/net/tramp-tests.el (tramp-test39-unload):
+       Check, that the `tramp-file-name' structure has been unloaded.
+
+2017-07-24  Grégoire Jadi  <address@hidden>
+
+       Ensure that we parse images right in shr.el
+
+       * lisp/net/shr.el (shr-image-fetched): Go back to the
+       beginning of the buffer before trying to parse the image
+       fetched.
+
+2017-07-24  Paul Eggert  <address@hidden>
+
+       Update .gitignore for Valgrind and no Automake
+
+       * .gitignore: Remove .deps/ since we no longer use Automake.
+       Add vgcore.*[0-9], for debugging Emacs with Valgrind+GDB.
+
+2017-07-24  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-07-23 Rename module 'strftime' to 'nstrftime'
+       * admin/merge-gnulib (GNULIB_MODULES): Add nstrftime, remove strftime.
+       * build-aux/config.guess: Copy from gnulib.
+       * lib/nstrftime.c: Rename from lib/strftime.c.
+       * m4/nstrftime.m4: Rename from m4/strftime.m4.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+
+2017-07-23  Philipp Stephani  <address@hidden>
+
+       Add 'rx' pattern for pcase.
+
+       * lisp/emacs-lisp/rx.el (rx): New pcase macro.
+       * test/lisp/emacs-lisp/rx-tests.el (rx-pcase): Add unit test.
+
+2017-07-23  Mark Oteiza  <address@hidden>
+
+       Use a named function for global minor mode turn-on argument
+
+       * lisp/display-line-numbers.el (turn-on-display-line-numbers-mode):
+       New function.
+       (global-display-line-numbers-mode): Use it.
+
+2017-07-23  Charles A. Roelli  <address@hidden>
+
+       Enable GUI Emacs without 'make install' on macOS (Bug #27645)
+
+       * nextstep/INSTALL: Correct it, and mention that Emacs can be run
+       from 'src/emacs'.
+
+       * src/nsterm.m (applicationDidFinishLaunching:): When Emacs is
+       launched outside of a macOS application bundle, change its
+       activation policy from the default 'prohibited' to 'regular'.
+
+2017-07-23  Alan Mackenzie  <address@hidden>
+
+       Convert CC Mode's c-found-types from an obarray to a hash table.
+
+       * lisp/progmodes/cc-engine.el (c-clear-found-types): create a hash table
+       rather than an obarray.
+       (c-copy-found-types): Remove.
+       (c-add-type, c-unfind-type, c-check-type, c-list-found-types): Amend to 
use
+       the new hash table.
+       (c-forward-<>-arglist): Use copy-hash-table rather than 
c-copy-found-types.
+
+2017-07-23  Lars Ingebrigtsen  <address@hidden>
+
+       Fix image/svg+xml display in shr
+
+       * lisp/net/shr.el (shr-put-image): Display svg images as svg
+       (bug#27799).  I suspect the previous change was checked in by
+       accident in conjuction with some other svg changes.
+
+2017-07-23  Michael Albinus  <address@hidden>
+
+       * lisp/display-line-numbers.el (display-line-numbers-type): Autoload it.
+
+2017-07-23  Glenn Morris  <address@hidden>
+
+       Don't automatically enable Gconf if Gsettings was found
+
+       * configure.ac (HAVE_GCONF) [HAVE_GSETTINGS]:
+       Don't test for Gconf unless specifically requested.
+       Gconf was deprecated in favor of Gsettings several years ago.
+
+2017-07-23  Glenn Morris  <address@hidden>
+
+       * configure.ac (MODULES_SUFFIX): Always give it a value.
+
+       This prevents a Makefile thinko like "rm *${MODULE_SUFFIX}".
+
+2017-07-23  Glenn Morris  <address@hidden>
+
+       * doc/emacs/frames.texi (Fonts): Mention Gsettings.
+
+2017-07-22  Michael Albinus  <address@hidden>
+
+       Add line numbers display to the Options menu
+
+       * lisp/menu-bar.el (toggle-display-line-numbers): Remove.
+       (menu-bar-display-line-numbers-mode): New defun.
+       (menu-bar-showhide-line-numbers-menu): New defvar.
+       (menu-bar-showhide-menu): Use `menu-bar-showhide-line-numbers-menu'
+
+2017-07-22  Noam Postavsky  <address@hidden>
+
+       Signal error for symbol names with strange quotes (Bug#2967)
+
+       * src/lread.c (read1): Signal an error when a symbol starts with a
+       non-escaped quote-like character.
+       * test/src/lread-tests.el (lread-tests--funny-quote-symbols): New
+       test.
+       * etc/NEWS: Announce change.
+
+2017-07-22  Noam Postavsky  <address@hidden>
+
+       Revert "Let delete-selection-mode work with popup-menu commands 
(Bug#27569)"
+
+       It turns out that this change is not needed, and it leaves several
+       command loops settings not done.
+
+       https://lists.gnu.org/archive/html/emacs-devel/2017-07/msg00757.html
+       https://lists.gnu.org/archive/html/emacs-devel/2017-07/msg00840.html
+
+2017-07-22  Alexander Gramiak  <address@hidden>
+
+       Add a minor mode interface for display-line-numbers
+
+       * lisp/cus-start.el: Use the new display-line-numbers group.
+       * lisp/display-line-numbers.el: New file.
+
+       * doc/emacs/custom.texi (Init Rebinding): Re-add entry that used to
+       belong to linum-mode.
+       * doc/emacs/modes.texi (Minor Modes): Summarize the mode.
+       * etc/NEWS: Document display-line-numbers-mode and its customization
+       variables, and mention that display-line-numbers-width is
+       buffer-local.
+
+       * src/xdisp.c (syms_of_xdisp) <display-line-numbers-width>: Fix a
+       typo.
+
+2017-07-22  vividsnow  <address@hidden>  (tiny change)
+
+       Support indented HERE-DOCs in cperl-mode
+
+       * lisp/progmodes/cperl-mode.el (cperl-find-pods-heres): Support
+       indented here-docs.  (Bug#27254) (Bug#27697)
+
+2017-07-22  Eli Zaretskii  <address@hidden>
+
+       Document the support for "scrollBar" X resource
+
+       * doc/emacs/xresources.texi (Table of Resources): Document the new
+       'scrollBar' setting.
+       * etc/NEWS: Document the new 'scrollBar' setting.
+
+2017-07-22  Matthew Bauer  <address@hidden>  (tiny change)
+
+       Add 'scroll-bar-mode' to settings in 'x-apply-session-resources'
+
+       * lisp/startup.el (x-apply-session-resources): Add scroll-bar-mode
+       settings.
+
+2017-07-22  Alexander Kuleshov  <address@hidden>
+
+       Update ld-script mode (bug#27629)
+
+       * lisp/progmodes/ld-script.el: (ld-script-keywords): New commands
+       NOCROSSREFS_TO and HIDDEN added.  Fix documentation sections
+       numbers for PROVIDE/PROVIDE_HIDDEN commands.
+       (ld-script-builtins): New builtin function LOG2CEIL added.
+
+2017-07-22  Eli Zaretskii  <address@hidden>
+
+       Index 'rectangle' in the ELisp manual
+
+       * doc/lispref/text.texi (Registers): Index the "rectangle" value.
+       (Bug#27541)
+
+2017-07-22  Eli Zaretskii  <address@hidden>
+
+       * lisp/subr.el (add-to-history): Doc fix.  (Bug#27494)
+
+2017-07-22  Eli Zaretskii  <address@hidden>
+
+       Doc fixes for kmacro.el functions
+
+       * lisp/kmacro.el (kmacro-start-macro, kmacro-call-macro)
+       (kmacro-end-and-call-macro): Don't use "permanent name", as that
+       could be misinterpreted.  (Bug#27492)
+
+2017-07-22  Charles A. Roelli  <address@hidden>
+
+       ElDoc: add docstrings and minor refactoring
+
+       * lisp/emacs-lisp/eldoc.el (eldoc-edit-message-commands): Add
+       docstring.
+       (turn-on-eldoc-mode): Fix capitalization.
+       (eldoc--supported-p): Add docstring.
+       (eldoc-schedule-timer): Add docstring and use
+       'eldoc--supported-p'.
+       (eldoc-message): Add docstring and make calling convention
+       clearer.
+       (eldoc--message-command-p):
+       (eldoc-pre-command-refresh-echo-area):
+       (eldoc-display-message-p):
+       (eldoc-display-message-no-interference-p):
+       (eldoc-print-current-symbol-info):
+       (eldoc-docstring-format-sym-doc):
+       (eldoc-add-command, eldoc-add-command-completions):
+       (eldoc-remove-command, eldoc-remove-command-completions):
+       Add docstring.  (Bug#27230)
+
+2017-07-22  Fabrice Bauzac  <address@hidden>  (tiny change)
+
+       Mention 'C-M-i' as key binding for 'ispell-complete-word'
+
+       * doc/emacs/fixit.texi (Spelling): ispell-complete-word
+       can also be invoked by C-M-i.  (Bug#27349)
+
+2017-07-22  Fabrice Bauzac  <address@hidden>  (tiny change)
+
+       Fix the eww-search-words description in the Emacs manual
+
+       * doc/emacs/search.texi (Word Search):
+       Include the key binding for eww-search-words in the manual.
+       Fix the spelling of the 'eww-search-words' command.
+
+2017-07-22  Andrew L. Moore  <address@hidden>
+
+       Introduce defcustom 'executable-prefix-env'
+
+       * lisp/progmodes/executable.el (executable-prefix): Update the doc
+       string.
+       (executable-prefix-env): New defcustom.
+       (executable-set-magic): Use executable-prefix-env.
+
+       * etc/NEWS: Document the new variable.
+
+2017-07-22  Glenn Morris  <address@hidden>
+
+       * test/lisp/ibuffer-tests.el: Delete temporary files.
+
+2017-07-21  Glenn Morris  <address@hidden>
+
+       Further attempt to avoid hang in network-stream-tests
+
+       * test/lisp/net/network-stream-tests.el (connect-to-tls-ipv6-nowait):
+       Limit the time we wait for the external process.
+
+2017-07-21  Glenn Morris  <address@hidden>
+
+       Stop skipping many ibuffer tests by default
+
+       * test/lisp/ibuffer-tests.el (ibuffer-0autoload):
+       Rename so it sorts first.
+       (ibuffer-save-filters, ibuffer-filter-inclusion-1)
+       (ibuffer-filter-inclusion-2, ibuffer-filter-inclusion-3)
+       (ibuffer-filter-inclusion-4, ibuffer-filter-inclusion-5)
+       (ibuffer-filter-inclusion-6, ibuffer-filter-inclusion-7)
+       (ibuffer-filter-inclusion-8, ibuffer-decompose-filter)
+       (ibuffer-and-filter, ibuffer-or-filter, ibuffer-format-qualifier)
+       (ibuffer-unary-operand): Require ibuf-ext so tests not skipped.
+
+2017-07-21  Stefan Monnier  <address@hidden>
+
+       Use lexical-binding in todo-mode.el
+
+       Adjust code accordingly and make various minor improvements.
+
+       * lisp/calendar/todo-mode.el: Enable lexical-binding.
+       (dayname, monthname, day, month, year): Make forward defvars
+       of these keywords from macros defined in calendar.el; wrap
+       them in with-no-warnings.
+       (todo-files, todo-files-function, todo-date-pattern)
+       (todo-mode-line-function, todo-show, todo-forward-category)
+       (todo-edit-item--header, todo-set-category-number)
+       (todo-adjusted-category-label-length)
+       (todo-total-item-counts, todo-filter-items)
+       (todo-print-buffer-function, todo-convert-legacy-date-time)
+       (todo-category-number, todo-category-completions)
+       (todo-read-file-name, todo-read-category)
+       (todo-validate-name, todo-read-date)
+       (todo-set-show-current-file, todo-modes-set-1)
+       (todo-modes-set-2, todo-modes-set-3, todo-mode):
+       Use #' instead of ' to quote functions.
+       (todo-files): Use \' instead of $ in regexp.
+       (todo--files-type-list): New function.
+       (todo-default-todo-file, todo-category-completions-files)
+       (todo-filter-files, todo-multiple-filter-files)
+       (todo-reevaluate-default-file-defcustom)
+       (todo-reevaluate-category-completions-files-defcustom)
+       (todo-reevaluate-filter-files-defcustom): Use it.
+       (todo-show, todo-rename-file, todo-move-category)
+       (todo-edit-item--text, todo-edit-quit, todo-edit-item--header)
+       (todo-item-undone, todo-unarchive-items, todo-search)
+       (todo-filter-items, todo-filter-items-1, todo-find-item)
+       (todo-category-select, todo-read-date)
+       (todo-nondiary-marker-matcher, todo-date-string-matcher)
+       (todo-diary-expired-matcher, todo-convert-legacy-files)
+       (todo-read-category): Reformat to avoid code hiding behind a
+       more deeply embedded element.
+       (todo-forward-category, todo-set-category-number):
+       Use 'funcall' instead of 'apply'.
+       (todo-toggle-mark-item, todo-edit-item--diary-inclusion)
+       (todo-edit-category-diary-inclusion)
+       (todo-insert-sort-button, todo-insert-category-line)
+       (todo-multiple-filter-files): Mark unused local variables.
+       (todo-edit-item--header, todo-move-item, todo-print-buffer)
+       (todo-edit-item--header, todo-move-item, todo-check-file)
+       (todo-edit-item--next-key): Remove unused local variables.
+       (todo-insert-sort-button, todo-insert-category-line):
+       Use a closure instead of a backquoted lambda.
+       (todo-update-categories-display, todo-print-buffer): Simplify code.
+       (todo-print-buffer-function): Document calling convention.
+       (todo-category-completions): Use cl-pushnew instead of add-to-list.
+       (todo-mode-map, todo-archive-mode-map)
+       (todo-categories-mode-map, todo-filtered-items-mode-map):
+       Remove superfluous call of suppress-keymap, since it's already
+       in the parent special-mode-map.
+
+2017-07-21  Tino Calancha  <address@hidden>
+
+       dired: Revert buffer when DIRNAME is a cons
+
+       * lisp/dired.el (dired-internal-noselect): Revert buffer if DIR-OR-LIST
+       is a cons, or dired-directory is a cons and DIR-OR-LIST a string 
(Bug#7131).
+       Update the comments.
+       * test/lisp/dired-tests.el (dired-test-bug7131): Test should pass.
+
+2017-07-21  Tino Calancha  <address@hidden>
+
+       Handle when dired-directory is a cons in some Dired functions
+
+       * lisp/dired-aux.el (dired-rename-subdir-1)
+       * lisp/dired-x.el (dired-mark-omitted):
+       Handle when dired-directory is a cons.
+
+2017-07-21  Noam Postavsky  <address@hidden>
+
+       Make eshell-next-prompt more reliable (Bug#27405)
+
+       * lisp/eshell/em-prompt.el (eshell-next-prompt): Search for
+       `eshell-prompt-regexp' (and `read-only' text-property if
+       `eshell-highlight-prompt' is set) rather than trying to use
+       `forward-paragraph'.
+       (eshell-previous-prompt): Don't count prompt on current line.
+
+2017-07-21  Paul Eggert  <address@hidden>
+
+       Simplify recent gnutls.c changes
+
+       * src/gnutls.c (clear_storage) [HAVE_GNUTLS3_AEAD]: Remove.
+       All uses replaced by calls to explicit_bzero; that’s clear enough.
+       (gnutls_symmetric_aead) [HAVE_GNUTLS3_AEAD]: Simplify by
+       coalescing duplicate actions.  There is no need to invoke
+       SAFE_FREE before calling ‘error’.
+
+2017-07-20  Michael Albinus  <address@hidden>
+
+       Stylistic changes in tramp-cache.el
+
+       * test/lisp/net/tramp-cache.el (tramp-get-file-property)
+       (tramp-set-file-property): Use `bound-and-true-p'.  Add
+       counter variables to `tramp-cache-unload-hook'.
+
+2017-07-20  Glenn Morris  <address@hidden>
+
+       * admin/notes/hydra: Small updates.
+
+2017-07-20  Glenn Morris  <address@hidden>
+
+       Make tramp unloading handle debug counter variables
+
+       * lisp/net/tramp-cache.el (tramp-get-file-property)
+       (tramp-set-file-property): Add counter variables to tramp-unload-hook.
+
+2017-07-20  Eli Zaretskii  <address@hidden>
+
+       Fix hscrolling calculations when display-line-numbers is set
+
+       * src/xdisp.c (move_it_in_display_line_to): Account for line
+       numbers in hscrolled lines.  (Bug#27756)
+
+2017-07-20  Katsumi Yamaoka  <address@hidden>
+
+       Fix the bogus change made 13 years ago (bug#27084)
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-toggle-header):
+       Fix the way to test if there is no visible header (bug#27084).
+
+2017-07-20  Noam Postavsky  <address@hidden>
+
+       Use grep's --null option (Bug#6843)
+
+       * lisp/progmodes/grep.el (grep-use-null-filename-separator): New option.
+       (grep--regexp-alist-column, grep--regexp-alist-bin-matcher)
+       (grep-with-null-regexp-alist, grep-fallback-regexp-alist): New
+       constants, replacing `grep-regexp-alist'.
+       (grep-regex-alist): Mark the variable obsolete, add a new function of
+       the same name to replace it.
+       (grep-compute-defaults): Compute default for
+       `grep-use-null-filename-separator'.
+       (grep-mode): Set compilation-error-regexp-alist (buffer locally) to the
+       value of `grep-with-null-regexp-alist' or `grep-fallback-regexp-alist'
+       according to `grep-use-null-filename-separator'.
+       * lisp/progmodes/xref.el (xref-collect-matches): Call
+       `grep-regex-alist' instead of the obsolete variable.  Don't hardcode
+       grep-regexp-alist match groups.
+       * etc/NEWS: Announce new use of --null.  Move 'grep-save-buffers'
+       item under "Grep" heading as well.
+
+2017-07-19  Philipp Stephani  <address@hidden>
+
+       * src/gnutls.c (clear_storage): Define only if needed.
+
+2017-07-19  Stephen Berman  <address@hidden>
+
+       Adjust todo-quit to recent change in dired
+
+       * lisp/calendar/todo-mode.el (todo-quit): Use quit-window instead of
+       bury-buffer to exit todo-mode.  This restores the desired behavior
+       of not immediately returning to the exited todo-mode buffer on
+       quitting another buffer, which a dired bug fix had changed (see
+       http://lists.gnu.org/archive/html/emacs-devel/2017-07/msg00739.html).
+
+2017-07-19  Tino Calancha  <address@hidden>
+
+       Add test for bugs 7131, 27762
+
+       Require 'ls-lisp' at top of the file.
+       * test/lisp/dired-tests.el (dired-test-bug7131, dired-test-bug27762):
+       New tests.
+       (dired-test-bug27693): Delete Dired buffer at the end.
+
+2017-07-18  Michael Albinus  <address@hidden>
+
+       * admin/notes/hydra: Mention environment variable EMACS_HYDRA_CI.
+
+2017-07-18  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/nadvice.el (advice--defalias-fset): Strip advices
+
+       This tries to make sure that (defalias F (symbol-function F)) stays a 
no-op.
+
+2017-07-18  Glenn Morris  <address@hidden>
+
+       Use a more specific test for running on hydra.nixos.org
+
+       * lisp/emacs-lisp/ert.el (ert-summarize-tests-batch-and-exit):
+       * test/Makefile.in (WRITE_LOG):
+       * test/lisp/filenotify-tests.el:
+       * test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el
+       (eieio-test-method-order-list-6):
+       * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
+       (eieio-test-37-obsolete-name-in-constructor):
+       * test/lisp/net/tramp-tests.el: Replace NIX_STORE with EMACS_HYDRA_CI.
+
+2017-07-18  Eli Zaretskii  <address@hidden>
+
+       Avoid infloop due to Eshell's "smart" redisplay
+
+       * src/xdisp.c (pos_visible_p): Save and restore the window's
+       mode-line and header-line height.  (Bug#27752)
+
+2017-07-18  Stefan Monnier  <address@hidden>
+
+       * emacs-lisp/cl-lib.el (cl--old-struct-type-of): Accept `[]'
+
+2017-07-18  Eli Zaretskii  <address@hidden>
+
+       Fix indentation when display-line-numbers is non-nil
+
+       * src/xdisp.c (x_produce_glyphs): Fix a typo in deciding whether
+       to go one more tab stop to display a TAB.  (Bug#27743)
+
+2017-07-18  Lars Ingebrigtsen  <address@hidden>
+
+       Don't use gtk_widget_get_scale_factor on old GTK3 versions
+
+       * src/gtkutil.c (xg_get_scale): gtk_widget_get_scale_factor is
+       only present since GTK 3.10.
+
+2017-07-18  Noam Postavsky  <address@hidden>
+
+       Let delete-selection-mode work with popup-menu commands (Bug#27569)
+
+       * lisp/menu-bar.el (popup-menu): Run `pre-command-hook' with
+       `this-command' set to the selected command.
+
+2017-07-18  Paul Eggert  <address@hidden>
+
+       Port gnutls.c to older (buggier?) GnuTLS
+
+       Problem reported for GnuTLS 3.2.1 by Glenn Morris in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-07/msg00716.html
+       http://lists.gnu.org/archive/html/emacs-devel/2017-07/msg00742.html
+       Although I don't see how this bug can occur with vanilla GnuTLS 3.2.1,
+       perhaps hydra was using a modified GnuTLS.
+       * src/gnutls.c (Fgnutls_ciphers): Don't assume GNUTLS_CIPHER_NULL
+       is at the end of the list returned by gnutls_cipher_list,
+       or that the earlier ciphers all have non-null names.
+
+2017-07-17  Vincent Belaïche  <address@hidden>
+
+       Fix relocation with named cell referred to by a one-symbol formula.
+
+       * lisp/ses.el (ses-replace-name-in-formula): Fix bug for it to
+       work also with one symbol formulas.
+
+       * test/lisp/ses-tests.el
+       (ses-tests-renaming-cell-with-one-symbol-formula): Add new
+       test for renaming with relocating a one symbol formula.
+
+2017-07-17  Vincent Belaïche  <address@hidden>
+
+       Fix symbol completion and document it.
+
+       * doc/misc/ses.texi (Configuring what printer function
+       applies): Add description of keys for completing local printer
+       symbols and listing local printers in a help buffer.
+       (Formulas): Add decription for key to list the named cell
+       symbols in a help buffer.
+
+       * lisp/ses.el (ses-completion-keys): New constant.
+       (ses--completion-table): New defvar.
+       (ses--list-orig-buffer): New defvar.
+       (ses-mode-edit-map): Fixed for symbol completion, plus add
+       help functions to list named cells or local printers.
+       (ses-edit-cell-complete-symbol)
+       (ses--edit-cell-completion-at-point-function): New defuns for
+       completion during formula edition.
+       (ses-edit-cell): Redefine dynamically edit keymap for
+       completion keys to point at the right function.
+       (ses-read-printer-complete-symbol)
+       (ses--read-printer-completion-at-point-function): New defuns
+       for completion during printer edition.
+       (ses-read-printer): Redefine dynamically edit keymap for
+       completion keys to point at the right function.
+       (ses-list-local-printers): New defun.
+       (ses-list-named-cells): New defun.
+
+2017-07-17  Lars Ingebrigtsen  <address@hidden>
+
+       Move comments around
+
+2017-07-17  Lars Ingebrigtsen  <address@hidden>
+
+       Make scaling work (?) on pre-GTK3 systems
+
+       * src/gtkutil.c (xg_get_gdk_scale): Reinstate function.
+       (xg_get_scale): Use it on non-GTK3 systems.
+
+2017-07-17  Lars Ingebrigtsen  <address@hidden>
+
+       Always return the GDK scale
+
+       * src/gtkutil.c (xg_get_scale): Return the GDK scale always.
+
+2017-07-17  Lars Ingebrigtsen  <address@hidden>
+
+       Remove usage of the GDK_SCALE variable
+
+       * src/gtkutil.c (xg_get_gdk_scale): Remove.
+       (xg_get_default_scrollbar_height)
+       (xg_get_default_scrollbar_width): Pass in a frame to check for
+       scaling.
+       (xg_frame_set_char_size): Use the API for querying scale
+       instead of looking at the GDK_SCALE variable.
+       (xg_get_default_scrollbar_width): Ditto.
+       (xg_get_default_scrollbar_height): Ditto.
+       (xg_update_scrollbar_pos): Ditto.
+
+       * src/xfns.c (x_set_scroll_bar_default_height): Pass in the
+       frame to get the width.
+
+2017-07-17  Lars Ingebrigtsen  <address@hidden>
+
+       Get positions of menus and tooltips right on HiDPI
+
+       * src/gtkutil.c (xg_get_scale): New function.
+       (xg_show_tooltip): Use it.
+
+       * src/xmenu.c (create_and_show_popup_menu): Put menus in the
+       right place.
+
+2017-07-17  Eli Zaretskii  <address@hidden>
+
+       Allow user control on what starts and ends a paragraph for bidi
+
+       * src/buffer.h (struct buffer): New members
+       bidi_paragraph_separate_re_ and bidi_paragraph_start_re_.
+       * src/buffer.c (bset_bidi_paragraph_start_re)
+       (bset_bidi_paragraph_separate_re): New setters/
+       (Fbuffer_swap_text): Swap the values of bidi-paragraph-start-re and
+       bidi-paragraph-separate-re.
+       (init_buffer_once): Init the values of bidi-paragraph-start-re and
+       bidi-paragraph-separate-re.
+       (syms_of_buffer) <bidi-paragraph-start-re, bidi-paragraph-separate-re>:
+       New per-buffer variables.
+       * src/bidi.c (bidi_at_paragraph_end, bidi_find_paragraph_start):
+       Support bidi-paragraph-start-re and bidi-paragraph-separate-re.
+       (bidi_move_to_visually_next): Handle correctly the case when the
+       separator matches an empty string.  (Bug#27526)
+
+       * doc/emacs/mule.texi (Bidirectional Editing):
+       * doc/lispref/display.texi (Bidirectional Display): Document
+       bidi-paragraph-start-re and bidi-paragraph-separate-re.
+
+       * etc/NEWS: Mention bidi-paragraph-start-re and
+       bidi-paragraph-separate-re.
+
+2017-07-17  Tino Calancha  <address@hidden>
+
+       * lisp/emacs-lisp/map.el (map-put): Fix redundancy in docstring.
+
+2017-07-17  Tino Calancha  <address@hidden>
+
+       alist-get: Add optional arg TESTFN
+
+       If TESTFN is non-nil, then it is the predicate to lookup
+       the alist.  Otherwise, use 'eq' (Bug#27584).
+       * lisp/subr.el (alist-get): Add optional arg FULL.
+       * lisp/emacs-lisp/map.el (map-elt, map-put): Add optional arg TESTFN.
+       * lisp/emacs-lisp/gv.el (alist-get): Update expander.
+       * doc/lispref/lists.texi (Association Lists): Update manual.
+       * etc/NEWS: Announce the changes.
+       * test/lisp/emacs-lisp/map-tests.el (test-map-put-testfn-alist)
+       (test-map-elt-testfn): New tests.
+
+2017-07-17  Michael Albinus  <address@hidden>
+
+       Fix `tramp-test39-unload'
+
+       * test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case-p)
+       (tramp--test-instrument-test-case): Rename.  Adapt all callees.
+       (tramp-test36-asynchronous-requests): Bind `timer-max-repeats'.
+       (tramp-test39-unload): Expect it to pass.  Ignore buffer-local
+       variables and autoload functions; they are not removed.  Check
+       also for `-function(s)'.
+
+2017-07-17  Stephen Berman  <address@hidden>
+
+       Preserve point under 'dired-auto-revert-buffer' (second case)
+
+       * lisp/dired.el (dired): Use pop-to-buffer-same-window instead
+       of switch-to-buffer.  This preserves Dired window point when
+       dired-auto-revert-buffer is non-nil.  (Bug#27243)
+
+       * test/lisp/dired-tests.el (dired-test-bug27243): New test.
+
+2017-07-17  Martin Rudalics  <address@hidden>
+
+       Have Fgnutls_available_p return Qnil when GNUTLS is undefined
+
+       * src/gnutls.c (Fgnutls_available_p): Return Qnil when GNUTLS is
+       undefined to allow --with-gnutls=no builds to proceed.
+
+2017-07-17  Paul Eggert  <address@hidden>
+
+       * src/gnutls.c: Restore some comments.
+
+2017-07-17  Paul Eggert  <address@hidden>
+
+       Use memset, not bzero
+
+       * src/ftcrfont.c (ftcrfont_glyph_extents): Use memset instead
+       of the (less-portable) bzero.
+
+2017-07-17  Paul Eggert  <address@hidden>
+
+       Use explicit_bzero to clear GnuTLS keys
+
+       * admin/merge-gnulib (GNULIB_MODULES): Add explicit_bzero.
+       * lib/explicit_bzero.c, m4/explicit_bzero.m4: New files.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * src/gnutls.c (clear_storage): New function.
+       (gnutls_symmetric_aead): Use it instead of memset.
+
+2017-07-17  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-07-16 explicit_bzero: new module
+       2017-07-15 getdtablesize: Add minimal support for OpenVMS.
+       * lib/getdtablesize.c, lib/string.in.h, m4/getdtablesize.m4:
+       * m4/string_h.m4:
+       Copy from Gnulib.
+       * lib/gnulib.mk.in: Regenerate.
+
+2017-07-17  Dieter Deyke  <address@hidden>
+
+       Fix vc-src-dir-status-files
+
+       * lisp/vc/vc-src.el (vc-src-dir-status-files): Fix broken
+       copy-paste from b1a765b3 (bug#27641).
+
+2017-07-16  Wilfred Hughes  <address@hidden>
+
+       Fix mismatched parens
+
+       * etc/NEWS.21: Remove excess parenthesis in code example
+
+2017-07-16  Alan Third  <address@hidden>
+
+       Add missing declare-function for new function
+
+       * lisp/frame.el: Add declare function for
+       ns-mouse-absolute-pixel-position.
+
+2017-07-16  R. Bernstein  <address@hidden>
+
+       Realgud for tango themes
+
+2017-07-16  Noam Postavsky  <address@hidden>
+
+       Fix test when running from test/lisp/subr-tests.elc
+
+       * test/lisp/subr-tests.el (subr-test-backtrace-simple-tests): Don't
+       assume a lambda expression will be `equal' to its quoted form.  That's
+       not true if the lambda expression has been compiled.
+
+2017-07-15  Alan Third  <address@hidden>
+
+       Fix some frame handling issues on NS
+
+       * lisp/frame.el (mouse-absolute-pixel-position): Use new NS function.
+       * src/nsfns.m (Sns_mouse_absolute_pixel_position): New function.
+       * src/nsterm.m (x_make_frame_visible): Re-establish parent-child
+       relationship if it's broken.
+
+2017-07-15  Tino Calancha  <address@hidden>
+
+       ls-lisp: Fix file size format
+
+       * lisp/ls-lisp.el (ls-lisp-filesize-d-fmt, ls-lisp-filesize-f-fmt)
+       (ls-lisp-filesize-b-fmt): Add space in front (Bug#27693).
+       * test/lisp/dired-tests.el (dired-test-bug27693): Add test.
+
+2017-07-15  Eli Zaretskii  <address@hidden>
+
+       Avoid link errors with older versions of GnuTLS
+
+       * src/gnutls.c (Fgnutls_ciphers, gnutls_symmetric_aead)
+       (Fgnutls_macs, Fgnutls_digests): Conditionally compile code that
+       calls GnuTLS functions which might be unavailable in older
+       versions of GnuTLS.
+
+2017-07-15  Eli Zaretskii  <address@hidden>
+
+       Improve comments in faces.el
+
+       * lisp/faces.el (face-font-family-alternatives): Improve
+       commentary.
+
+2017-07-15  Eli Zaretskii  <address@hidden>
+
+       Improve some GnuTL error messages
+
+       * src/gnutls.c (gnutls_symmetric_aead, gnutls_symmetric):
+       * src/fns.c (Fsecure_hash_algorithms): Fix error messages.
+
+2017-07-15  Eli Zaretskii  <address@hidden>
+
+       Fix the Elisp manual wrt GnuTL cryptography
+
+       * doc/lispref/elisp.texi (Top): Update the master menu.
+       * doc/lispref/text.texi (GnuTLS Cryptography): Add a @menu, to
+       avoid errors in makeinfo.
+
+2017-07-15  Eli Zaretskii  <address@hidden>
+
+       Fix compilation of gnutls.c with older GnuTLS
+
+       * src/gnutrls.c (syms_of_gnutls): Condition some defsubr's
+       on HAVE_GNUTLS3, to avoid compilation errors when GnuTLS
+       v3.X is not available.  Reported by Colin Baxter <address@hidden>.
+
+2017-07-15  rocky  <address@hidden>
+
+       Realgud for two more light themes
+
+2017-07-15  Eli Zaretskii  <address@hidden>
+
+       Rearrange MS-Windows code that dynamically loads GnuTLS functions
+
+       * src/gnutls.c [WINDOWSNT]: Reorganize definitions and loading
+       of functions using the same preprocessing directives as in the code.
+
+2017-07-15  Eli Zaretskii  <address@hidden>
+
+       Fix the MS-Windows build broken in gnutls.c
+
+       * src/gnutls.c (Fgnutls_available_p) [WINDOWSNT]: Move the DLL
+       loading code to after 'capabilities' has been calculated.  Remove
+       redundant comments.
+
+2017-07-15  Lars Ingebrigtsen  <address@hidden>
+
+       src/image.c (compute_image_size): Remove superfluous checks.
+
+       * src/image.c (compute_image_size): Remove superfluous checks.
+
+2017-07-15  Lars Ingebrigtsen  <address@hidden>
+
+       Make combinations of :width/:max-height image specs work reliably
+
+       * doc/lispref/display.texi (ImageMagick Images): Document
+       :width/:max-height combinations (etc) (bug #25583).
+
+       * src/image.c (compute_image_size): Handle :width/:max-height
+       (etc) combinations consistently (by letting "max" win and
+       preserve ratio).
+
+       * test/manual/image-size-tests.el (image-size-tests): Add
+       tests for :width/:max-height (etc) combinations.
+
+2017-07-15  Glenn Morris  <address@hidden>
+
+       Fix recent theme changes
+
+       * etc/themes/manoj-dark-theme.el, etc/themes/tsdh-dark-theme.el:
+       Fix typos in recent changes.
+
+2017-07-15  Paul Eggert  <address@hidden>
+
+       GnuTLS integer-overflow and style fixes
+
+       This tweaks the recently-added GnuTLS improvements so that
+       they avoid some integer-overflow problems and follow typical
+       Emacs style a bit better.
+       * configure.ac (HAVE_GNUTLS3_HMAC, HAVE_GNUTLS3_AEAD)
+       (HAVE_GNUTLS3_CIPHER): Use AC_CACHE_CHECK so that the
+       configure-time results are displayed.
+       * src/fns.c (extract_data_from_object): Return char *, not char
+       const *, since one gnutls caller wants a non-const pointer.  Use
+       CONSP rather than !NILP when testing for conses.  Use CAR_SAFE
+       instead of rolling our own code.  Prefer signed types to unsigned
+       when either will do.  Report problems for lengths out of range,
+       instead of silently mishandling them.
+       * src/gnutls.c (emacs_gnutls_strerror): New function, to simplify
+       callers.  All callers of gnutls_sterror changed.
+       (Fgnutls_boot): Check for integers out of range rather than
+       silently truncating them.
+       (gnutls_symmetric_aead): Check for integer overflow in size
+       calculations.
+       (gnutls_symmetric_aead, Fgnutls_macs, Fgnutls_digests):
+       Prefer signed to unsigned integers where either will do.
+       (gnutls_symmetric_aead, gnutls_symmetric):
+       Work even if ptrdiff_t is wider than ‘long’.
+       (gnutls_symmetric, Fgnutls_hash_mac, Fgnutls_hash_digest):
+       Check for integer overflow in algorithm selection.
+
+2017-07-14  Noam Postavsky  <address@hidden>
+
+       * .gitlab-ci.yml: Don't install a C++ compiler.  Suppress apt 
interaction.
+
+2017-07-14  Eli Zaretskii  <address@hidden>
+
+       Fix the MS-Windows build due to added GnuTLS functions
+
+       * src/gnutls.c [WINDOWSNT]: Add DEF_DLL_FN for new functions.
+       (init_gnutls_functions) [WINDOWSNT]: Add LOAD_DLL_FN for new
+       functions.  Add #define redirections for new functions.
+       (gnutls_symmetric_aead): Fix format specs to be more portable when
+       printing ptrdiff_t arguments.
+       * src/fns.c (gnutls_rnd) [WINDOWSNT]: Redirect to w32_gnutls_rnd
+       wrapper.
+       * src/gnutls.h [WINDOWSNT]: Add prototype for w32_gnutls_rnd.
+
+       * test/lisp/net/gnutls-tests.el (gnutls-tests-tested-macs)
+       (gnutls-tests-tested-digests, gnutls-tests-tested-ciphers): Call
+       gnutls-available-p, otherwise GnuTLS functions might not be loaded
+       from the DLL on MS-Windows.
+
+2017-07-14  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/bytecomp.el: Fix bug#14860.
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile--function-signature): New 
fun.
+       Dig into advice wrappers to find the "real" signature.
+       (byte-compile-callargs-warn, byte-compile-arglist-warn): Use it.
+       (byte-compile-arglist-signature): Don't bother with "new-style" 
arglists,
+       since bytecode functions are now handled in 
byte-compile--function-signature.
+
+       * lisp/files.el (create-file-buffer, insert-directory):
+       Remove workaround introduced for (bug#14860).
+
+       * lisp/help-fns.el (help-fns--analyse-function): `nadvice` is preloaded.
+
+       * lisp/help.el (help-function-arglist):
+       Dig into advice wrappers to find the "real" signature.
+
+2017-07-14  Ted Zlatanov  <address@hidden>
+
+       GnuTLS HMAC and symmetric cipher support
+
+           * etc/NEWS: Add news for new feature.
+
+           * doc/lispref/text.texi (GnuTLS Cryptography): Add
+           documentation.
+
+           * configure.ac: Add macros HAVE_GNUTLS3_DIGEST,
+           HAVE_GNUTLS3_CIPHER, HAVE_GNUTLS3_AEAD, HAVE_GNUTLS3_HMAC.
+
+           * src/fns.c (Fsecure_hash_algorithms): Add function to list
+           supported `secure-hash' algorithms.
+           (extract_data_from_object): Add data extraction function that
+           can operate on buffers and strings.
+           (secure_hash): Use it.
+           (Fsecure_hash): Mention `secure-hash-algorithms'.
+
+           * src/gnutls.h: Include gnutls/crypto.h.
+
+           * src/gnutls.c (Fgnutls_ciphers, gnutls_symmetric_aead)
+           (gnutls_symmetric, Fgnutls_symmetric_encrypt, 
Fgnutls_symmetric_decrypt)
+           (Fgnutls_macs, Fgnutls_digests, Fgnutls_hash_mac, 
Fgnutls_hash_digest)
+           (Fgnutls_available_p): Implement GnuTLS cryptographic integration.
+
+           * test/lisp/net/gnutls-tests.el: Add tests.
+
+2017-07-14  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-lib.el (cl--random-time): Remove as well
+
+       It's also defined in cl-extra.el.
+
+2017-07-14  Paul Eggert  <address@hidden>
+
+       Do not convert ij and IJ to compatibility chars
+
+       * lisp/leim/quail/latin-alt.el: Omit lines for ij and IJ in Dutch.
+       Problem reported by James Cloos (Bug#518#10).
+
+2017-07-14  Toon Claes  <address@hidden>
+
+       Remove Turkish ligatures from Dutch input method
+
+       * lisp/leim/quail/latin-alt.el: Remove Turkish ligatures (Bug#518).
+
+2017-07-14  Paul Eggert  <address@hidden>
+
+       Improve stack-overflow heuristic on GNU/Linux
+
+       Problem reported by Steve Kemp (Bug#27585).
+       * src/eval.c (near_C_stack_top): Remove.  All uses replaced
+       by current_thread->stack_top.
+       (record_in_backtrace): Set current_thread->stack_top.
+       This is for when the Lisp interpreter calls itself.
+       * src/lread.c (read1): Set current_thread->stack_top.
+       This is for recursive s-expression reads.
+       * src/print.c (print_object): Set current_thread->stack_top.
+       This is for recursive s-expression printing.
+       * src/thread.c (mark_one_thread): Get stack top first.
+       * src/thread.h (struct thread_state.stack_top): Now void *, not char *.
+
+2017-07-14  Paul Eggert  <address@hidden>
+
+       Remove duplicate cl--random-state definition
+
+       * lisp/emacs-lisp/cl-lib.el (cl--random-state): Remove.
+       This variable is now defined in cl-extra.el (Bug#27617).
+
+2017-07-14  Michael Albinus  <address@hidden>
+
+       Adjust timer in tramp-test36-asynchronous-requests
+
+       * test/lisp/net/tramp-tests.el (tramp-test36-asynchronous-requests):
+       Adjust timer if it takes too much time.
+
+2017-07-14  Eli Zaretskii  <address@hidden>
+
+       Always display rmail progress report under user control
+
+       * lisp/mail/rmail.el (rmail-show-message-1): Delete the second
+       copy of '(message "Showing message %d..." msg)'.  (Bug#27535)
+
+2017-07-14  Eli Zaretskii  <address@hidden>
+
+       Avoid byte-compilation warnings for advised functions
+
+       * lisp/files.el (insert-directory, create-file-buffer): Add an
+       advertised-calling-convention form to shut up byte-compilation
+       warnings.  (Bug#14860)
+
+2017-07-14  Eli Zaretskii  <address@hidden>
+
+       Add assertion related to display-line-numbers
+
+       * src/xdisp.c (maybe_produce_line_number): Add assertion for the
+       condition regarding IT->glyph_row->used[TEXT_AREA] expected by the
+       code.  (Bug#27668)
+
+2017-07-14  Eli Zaretskii  <address@hidden>
+
+       Prevent display corruption when display-line-numbers is set
+
+       * src/xdisp.c (try_window_reusing_current_matrix): If giving up
+       due to display-line-numbers, clear the window's desired glyph
+       matrix before returning, as the following call to try_window will
+       call display_line, which expects rows of the desired matrix
+       cleared.  (Bug#27668)
+
+2017-07-14  Eli Zaretskii  <address@hidden>
+
+       Revert "Use fixed-pitch font for display-line-numbers"
+
+       This reverts commit d014a5e15c1110af77e7a96f06ccd0f0cafb099f.
+       * lisp/faces.el (line-number): Don't use a fixed-pitch font, by
+       popular demand.  For relevant discussions, see
+
+        http://lists.gnu.org/archive/html/emacs-devel/2017-07/msg00433.html
+        http://lists.gnu.org/archive/html/emacs-devel/2017-07/msg00445.html
+
+2017-07-14  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-07-13 Improve cross-compilation guesses for native Windows
+       2017-07-11 More systematic m4 quoting and indentation
+       2017-07-10 Make sure $host and $host_os are defined when used
+       2017-07-03 stdioext: Port to OpenVMS
+       2017-06-24 xalloc-oversized: port to icc
+       * doc/misc/texinfo.tex, lib/fpending.c, lib/stdio-impl.h:
+       * lib/xalloc-oversized.h, m4/dirfd.m4, m4/gettimeofday.m4:
+       * m4/lstat.m4, m4/mktime.m4, m4/pselect.m4, m4/putenv.m4:
+       * m4/stdint.m4, m4/strtoimax.m4, m4/utimes.m4:
+       Copy from Gnulib.
+
+2017-07-13  Alan Mackenzie  <address@hidden>
+
+       C++ Mode.  Fix anomaly occurring when a ">" is deleted then reinserted.
+
+       This fontification anomaly happened because after deleting the ">",
+       c-forward-<>-arglist parses the preceding identifier as a putative type 
but
+       stores it in c-found-types before it becomes clear it is not an 
unambiguous
+       type.  c-forward-<>-arglist fails, leaving the spurious type id in
+       c-found-types.  Fix this by "binding" c-found-types "to itself" in
+       c-forward-<>-arglist, and restoring the original value when that 
function call
+       fails.
+
+       * lisp/progmodes/cc-engine.el (c-copy-found-types): New function.
+       (c-forward-<>-arglist): Record the original value of c-found-types at 
the
+       beginning of the function, and restore it at the end on failure.
+
+       * lisp/progmodes/cc-mode.el (c-unfind-coalesced-tokens): Rewrite more
+       accurately.
+
+2017-07-13  Vincent Belaïche  <address@hidden>
+
+       Add tests for SES, and fix one more cell renaming bug.
+
+       * lisp/ses.el (ses-relocate-all): In case of insertion, do not
+       relocate value for named cells as they keep the same symbol.
+       (ses-rename-cell): Set new cell name symbol to cell value --- do not
+       rely on recalculating.  Push cells with updated data --- cell name,
+       cell reference list, or cell formula --- to deferred write list.
+
+       * test/lisp/ses-tests.el: New file, with 7 tests for SES.
+
+2017-07-12  Alan Mackenzie  <address@hidden>
+
+       Fix some bugs in c-defun-name.  This fixes bug #25623.
+
+       * lisp/progmodes/cc-cmds.el (c-defun-name): Fix some bugs to do with 
structs,
+       etc.
+
+2017-07-12  Vasilij Schneidermann  <address@hidden>
+
+       Make prog-mode-map the parent of c-mode-base-map.  Fixes bug #26658.
+
+       * lisp/progmodes/cc-mode.el (top level): Make prog-mode-map the parent 
of
+       c-mode-base-map if possible.
+
+2017-07-12  Alan Mackenzie  <address@hidden>
+
+       CC Mode: create and use c-set-keymap-parent.
+
+       * lisp/progmodes/cc-defs.el (c-set-keymap-parent): New macro.
+
+       * lisp/progmodes/cc-mode.el (top-level): Remove cc-bytecomp-defun for
+       set-keymap-parents.
+       (c-make-inherited-keymap): Use c-set-keymap-parent in place of inline 
code.
+
+2017-07-12  Martin Rudalics  <address@hidden>
+
+       Minor tweaks of new line number display variables
+
+       * src/xdisp.c (Vdisplay_line_numbers): Tweak doc-string.
+       (Vdisplay_line_number_width): Rename to
+       Vdisplay_line_numbers_width.
+       (maybe_produce_line_number): Comply with above rename.
+       * lisp/cus-start.el (standard):
+       * lisp/frame.el (top-level):
+       * etc/NEWS: Comply with renaming of
+       `display-line-number-width' to `display-line-numbers-width'.
+
+2017-07-12  Eli Zaretskii  <address@hidden>
+
+       Avoid assertion violations in close_infile_unwind
+
+       * src/lread.c (close_infile_unwind): A temporary band-aid solution
+       for bug#27642: allow 'infile' be NULL.
+
+2017-07-11  Eli Zaretskii  <address@hidden>
+
+       Use fixed-pitch font for display-line-numbers
+
+       * lisp/faces.el (line-number): Use a fixed-pitch font by default,
+       even if the default face uses a variable-pitch font.  Reported by
+       James Cloos <address@hidden>.
+
+2017-07-11  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of display-line-numbers
+
+       * src/xdisp.c (syms_of_xdisp) <display-line-numbers>: Improve the
+       doc string.  Suggested by Alex <address@hidden>.
+
+2017-07-11  Nicolas Petton  <address@hidden>
+
+       Add an optional testfn parameter to assoc
+
+       * src/fns.c (assoc): New optional testfn parameter used for comparison
+       when provided.
+       * test/src/fns-tests.el (test-assoc-testfn): Add tests for the new
+       'testfn' parameter.
+       * src/buffer.c:
+       * src/coding.c:
+       * src/dbusbind.c:
+       * src/font.c:
+       * src/fontset.c:
+       * src/gfilenotify.c:
+       * src/image.c:
+       * src/keymap.c:
+       * src/process.c:
+       * src/w32fns.c:
+       * src/w32font.c:
+       * src/w32notify.c:
+       * src/w32term.c:
+       * src/xdisp.c:
+       * src/xfont.c: Add a third argument to Fassoc calls.
+       * etc/NEWS:
+       * doc/lispref/lists.texi: Document the new 'testfn' parameter.
+
+2017-07-10  Michael Albinus  <address@hidden>
+
+       Use `with-demoted-errors' in Tramp
+
+       * lisp/net/tramp.el (tramp-with-demoted-errors): New defmacro.
+
+       * lisp/net/tramp-sh.el (tramp-sh-handle-vc-registered): Use it.
+
+2017-07-10  Michael Albinus  <address@hidden>
+
+       Add Quick Start Guide to Tramp manual
+
+       * doc/misc/tramp.texi: Use consequently "@value{tramp}" and
+       "MS Windows".
+       (Quick Start Guide): New node.
+
+       * doc/misc/trampver.texi:
+       * lisp/net/trampver.el: Change version to "2.3.3-pre".
+
+2017-07-10  Glenn Morris  <address@hidden>
+
+       Fix failing module tests on GNU/Linux
+
+       * test/src/emacs-module-tests.el
+       (module--test-assertions--load-non-live-object)
+       (module--test-assertions--call-emacs-from-gc):
+       Avoid test failures due to backtraces.
+
+2017-07-10  Paul Eggert  <address@hidden>
+
+       Fix core dump in substitute-object-in-subtree
+
+       Without this fix, (substitute-object-in-subtree #0=(#0# 'a) 'a)
+       would dump core, since the C code would recurse indefinitely through
+       the infinite structure.  This patch adds an argument to the function,
+       and renames it to lread--substitute-object-in-subtree as the function
+       is not general-purpose and should not be relied on by outside code.
+       See Bug#23660.
+       * src/intervals.c (traverse_intervals_noorder): ARG is now void *,
+       not Lisp_Object, so that callers need not cons unnecessarily.
+       All callers changed.  Also, remove related #if-0 code that was
+       “temporary” in the early 1990s and has not been compilable for
+       some time.
+       * src/lread.c (struct subst): New type, for substitution closure data.
+       (seen_list): Remove this static var, as this info is now part of
+       struct subst.  All uses removed.
+       (Flread__substitute_object_in_subtree): Rename from
+       Fsubstitute_object_in_subtree, and give it a 3rd arg so that it
+       doesn’t dump core when called from the top level with an
+       already-cyclic structure.  All callers changed.
+       (SUBSTITUTE): Remove.  All callers expanded and then simplified.
+       (substitute_object_recurse): Take a single argument SUBST rather
+       than a pair OBJECT and PLACEHOLDER, so that its address can be
+       passed around as part of a closure; this avoids the need for an
+       AUTO_CONS call.  All callers changed.  If the COMPLETED component
+       is t, treat every subobject as potentially circular.
+       (substitute_in_interval): Take a struct subst * rather than a
+       Lisp_Object, for the closure data.  All callers changed.
+       * test/src/lread-tests.el (lread-lread--substitute-object-in-subtree):
+       New test, to check that the core dump does not reoccur.
+
+2017-07-10  Philipp Stephani  <address@hidden>
+
+       Minor simplification of module_free_global_ref
+
+       * src/emacs-module.c (module_free_global_ref): Remove unused variable
+       'hashcode'.  Inline variable 'value' that's only used once.
+
+2017-07-10  Philipp Stephani  <address@hidden>
+
+       Re-add a useful assertion
+
+       * src/emacs-module.c (module_free_global_ref): Re-add assertion that
+       the reference count is zero.  This assertion was removed in commit
+       8afaa1321f8088bfb877fe4b6676e8517adb0bb7, but it's not included in the
+       test performed by XFASTINT before, because the previous reference
+       count could have been zero already in the case of a buggy
+       implementation.  This assertion might have detected Bug#27587.
+
+2017-07-10  Valentin Gatien-Baron  <address@hidden>  (tiny change)
+
+       Fix bug in module_free_global_ref (Bug#27587)
+
+       * src/emacs-module.c (module_free_global_ref): Actually remove entry
+       from hash table.
+
+2017-07-09  Philipp Stephani  <address@hidden>
+
+       Further improve electric quote support for Markdown (Bug#24709)
+
+       Markdown sets both 'comment-start' and 'comment-use-syntax' to non-nil
+       values.  Therefore 'electric-quote-mode' recognized it as a
+       programming mode.  Fix this by first checking whether the current
+       major mode is derived from 'text-mode'.
+
+       * lisp/electric.el (electric-quote-post-self-insert-function): Treat
+       'text-mode' as stronger signal than comment syntax.
+
+       * test/lisp/electric-tests.el (electric-quote-markdown-in-text)
+       (electric-quote-markdown-in-code): Adapt unit tests.
+
+2017-07-09  Philipp Stephani  <address@hidden>
+
+       Remove pointless code in 'electric-quote-mode'
+
+       * lisp/electric.el (electric-quote-post-self-insert-function): Remove
+       pointless form.
+
+2017-07-09  Philipp Stephani  <address@hidden>
+
+       Refactor 'electric-quote-mode'
+
+       * lisp/electric.el (electric-quote-post-self-insert-function): Remove
+       local variable 'start', which was misnamed and only used once.
+
+2017-07-09  Saulius Menkevičius  <address@hidden>  (tiny change)
+
+       Avoid crashes on MS-Windows starting 64-bit .NET executables
+
+       * src/w32proc.c (w32_executable_type): Don't assume that the
+       import directory in a DLL will always be non-NULL.  (Bug#27527)
+
+2017-07-09  Eli Zaretskii  <address@hidden>
+
+       Avoid compilation warning in files.el
+
+       * lisp/files.el (auto-save-visited-file-name): Avoid obsoletion
+       warning due to its use in auto-save-visited-mode.
+
+2017-07-09  Eli Zaretskii  <address@hidden>
+
+       Improve indexing of VC-related stuff in the Emacs manual
+
+       * doc/emacs/maintaining.texi (Version Control): Add a "VC" index
+       entry.  (Bug#27627)
+
+2017-07-09  Eli Zaretskii  <address@hidden>
+
+       Speed up display of line numbers for very large buffers
+
+       * src/xdisp.c (maybe_produce_line_number): Speed up line counting
+       using values cached by mode-line display of line numbers.
+       (Bug#27622)
+
+2017-07-09  Alexander Kuleshov  <address@hidden>
+
+       Define internal_border_parts for window systems only (Bug#27615)
+
+       * src/keyboard.c: (internal_border_parts): Define only
+       when HAVE_WINDOW_SYSTEM is enabled.  (Bug#27615)
+
+2017-07-09  R. Bernstein  <address@hidden>
+
+       Add realgud faces faces to whiteboard...
+
+       Adjust wheatgrass to use underline for enabled/disabled breakpoints
+
+2017-07-08  Noam Postavsky  <address@hidden>
+
+       Optimize UCS normalization tests
+
+       Brings the the time for `ucs-normalize-part1' from 200s down to 130s.
+       * test/lisp/international/ucs-normalize-tests.el
+       (ucs-normalize-tests--parse-column): Use character instead of string
+       of length 1 for terminator.  Convert return value into string since
+       all callers need that form anyway.
+       (ucs-normalize-tests--normalization-equal-p): Rename from
+       ucs-normalize-tests--normalize.  Use dedicated buffer instead of
+       messing with narrowing.  Take string to compare against and insert it
+       into buffer so that compare-buffer-substrings can be used instead of
+       allocating a new string from buffer contents.
+       (ucs-normalize-tests--normalization-chareq-p): New macro, specialized
+       for comparing single character.
+       (ucs-normalize-tests--rule1-holds-p)
+       (ucs-normalize-tests--rule2-holds-p): Turn into defsubst.
+       (ucs-normalize-tests--rule1-failing-for-partX): Use `eq' instead of
+       `='.
+
+2017-07-08  Noam Postavsky  <address@hidden>
+
+       Update failing lines for UCS normalize tests
+
+       * test/lisp/international/ucs-normalize-tests.el
+       (ucs-normalize-tests--failing-lines-part2): Update for new
+       admin/unidata/NormalizationTest.txt version.
+
+2017-07-08  Noam Postavsky  <address@hidden>
+
+       Semi-automate the procedure for updating UCS normalize test bad lines
+
+       * test/lisp/international/ucs-normalize-tests.el: Remove incorrect
+       commentary describing a manual procedure for producing the updated
+       failing lines, it did not actually work.  Replace it with pointer to
+       new function which prints the updated values.
+       (ucs-normalize-tests--rule1-holds-p): Renamed from
+       ucs-normalize-tests--invariants-hold-p.
+       (ucs-normalize-tests--rule2-holds-p): Renamed from
+       ucs-normalize-tests--invariants-rule2-hold-p.
+       (ucs-normalize-tests--rule1-failing-for-partX): Renamed from
+       ucs-normalize-tests--invariants-failing-for-part.
+       (ucs-normalize-tests--rule1-failing-for-lines): Renamed from
+       ucs-normalize-tests--invariants-failing-for-lines.
+       (ucs-normalize-tests--part2-rule1-failed-lines): New variable.
+       (ucs-normalize-part2): Set it.
+       (ucs-normalize-part1): Always run through to end of test before
+       checking for failures.
+       (ucs-normalize-tests--insert-failing-lines)
+       (ucs-normalize-check-failing-lines): New functions, used to update
+       the *--failing-lines-part* variables.
+
+2017-07-08  Paul Eggert  <address@hidden>
+
+       * lisp/cus-start.el (standard): Spelling fix.
+
+2017-07-08  Philipp Stephani  <address@hidden>
+
+       Module assertions: check for garbage collections
+
+       It's technically possible to write a user pointer finalizer that calls
+       into Emacs module functions.  This would be disastrous because it
+       would allow arbitrary Lisp code to run during garbage collection.
+       Therefore extend the module assertions to check for this case.
+
+       * src/emacs-module.c (module_assert_thread): Also check whether a
+       garbage collection is in progress.
+
+       * test/data/emacs-module/mod-test.c (invalid_finalizer)
+       (Fmod_test_invalid_finalizer): New test module functions.
+       (emacs_module_init): Register new test function.
+
+       * test/src/emacs-module-tests.el (module--test-assertion)
+       (module--with-temp-directory): New helper macros.
+       (module--test-assertions--load-non-live-object): Rename existing
+       unit test, use helper macros.
+       (module--test-assertions--call-emacs-from-gc): New unit test.
+
+2017-07-08  Eli Zaretskii  <address@hidden>
+
+       Capitalize the menu entry for display-line-numbers
+
+       * lisp/menu-bar.el (menu-bar-showhide-menu): Capitalize menu item
+       for display-line-numbers.  Suggested by Martin Rudalics
+       <address@hidden>.
+
+2017-07-08  Eli Zaretskii  <address@hidden>
+
+       Update Unicode data and files to Unicode 10.0
+
+       * admin/notes/unicode:
+       * admin/unidata/README:
+       * admin/unidata/BidiBrackets.txt:
+       * admin/unidata/BidiMirroring.txt:
+       * admin/unidata/Blocks.txt:
+       * admin/unidata/IVD_Sequences.txt:
+       * admin/unidata/NormalizationTest.txt:
+       * admin/unidata/SpecialCasing.txt:
+       * admin/unidata/UnicodeData.txt:
+       * lisp/international/characters.el:
+       * lisp/international/fontset.el (script-representative-chars):
+       * lisp/international/mule-cmds.el (ucs-names): Update per Unicode 10.0.
+
+2017-07-08  Alexander Gramiak  <address@hidden>
+
+       Support '=' in Scheme and Lisp tags in 'etags'
+
+       * lib-src/etags.c (get_lispy_tag): New function.
+       (L_getit, Scheme_functions): Use get_lispy_tag (Bug#5624).
+       * test/manual/etags/CTAGS.good:
+       * test/manual/etags/ETAGS.good_1:
+       * test/manual/etags/ETAGS.good_2:
+       * test/manual/etags/ETAGS.good_3:
+       * test/manual/etags/ETAGS.good_4:
+       * test/manual/etags/ETAGS.good_5:
+       * test/manual/etags/ETAGS.good_6:
+       * test/manual/etags/Makefile:
+       * test/manual/etags/el-src/TAGTEST.EL: Update tests.
+       * test/manual/etags/scm-src/test.scm: New tests for Scheme.
+
+2017-07-08  Alexander Kuleshov  <address@hidden>
+
+       Avoid compiler warnings in xdisp.c debugging code
+
+       * src/xdisp.c (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
+       Use pD directives for ptrdiff_t values instead of pI, to avoid
+       compilation warnings on 64-bit hosts.  (Bug#27597)
+
+2017-07-08  Eli Zaretskii  <address@hidden>
+
+       Commentary enhancement in frame.el
+
+       * lisp/frame.el: Explain how to test whether a variable needs to
+       be added to the list of those which are watched for buffer
+       redisplay.
+
+2017-07-08  Eli Zaretskii  <address@hidden>
+
+       Support display of line numbers natively
+
+       This merges branch 'line-numbers'.
+       * src/buffer.c (disable_line_numbers_overlay_at_eob): New
+       function.
+       * src/lisp.h (disable_line_numbers_overlay_at_eob): Add prototype.
+       * src/dispextern.h (struct it): New members pt_lnum, lnum,
+       lnum_bytepos, lnum_width, and lnum_pixel_width.
+       * src/indent.c (line_number_display_width): New function,
+       refactored from line-number width calculations in vertical-motion.
+       (Fvertical_motion): Call line_number_display_width when the width
+       of line-number display is needed.
+       (Fline_number_display_width): New defun.
+       (syms_of_indent): Defsubr it.
+       * src/indent.c (Fvertical_motion): Help C-n/C-p estimate correctly
+       the width used up by line numbers by looking near the window-start
+       point.  If window-start is outside of the accessible portion,
+       temporarily widen the buffer.
+       * src/term.c (produce_glyphs): Adjust tab stops for the horizontal
+       space taken by the line-number display.
+       * src/xdisp.c (display_count_lines_logically)
+       (display_count_lines_visually, maybe_produce_line_number)
+       (should_produce_line_number, row_text_area_empty): New functions.
+       (try_window_reusing_current_matrix): Don't use this method when
+       display-line-numbers is in effect.
+       (try_window_id, try_cursor_movement): Disable these optimizations
+       when the line-number-current-line face is different from
+       line-number face and for relative line numbers.
+       (try_window_id, redisplay_window, try_cursor_movement): For
+       visual line-number display, disable the same redisplay
+       optimizations as for relative.
+       (x_produce_glyphs): Adjust tab stops for the horizontal
+       space taken by the line-number display.
+       (hscroll_window_tree): Adjust hscroll calculations to line-number
+       display.
+       (DISP_INFINITY): Renamed from INFINITY to avoid clashes with
+       math.h; all users changed.
+       (set_cursor_from_row): Fix calculation of cursor X coordinate in
+       R2L rows with display-produced glyphs at the beginning.
+       (display_line): Use should_produce_line_number to determine
+       whether a line number should be produced for each glyph row, and
+       maybe_produce_line_number to produce line numbers.
+       Don't display line numbers in the minibuffer and in tooltip
+       frames.
+       Call row_text_area_empty to verify that a glyph
+       row's text area is devoid of any glyphs that came from a buffer or
+       a string.  This fixes a bug with empty-lines indication
+       disappearing when line numbers or line-prefix are displayed.
+       (syms_of_xdisp) <display-line-numbers, display-line-numbers-widen>
+       <display-line-number-width>: New buffer-local variables.
+       <display-line-numbers-current-absolute>: New variable.
+
+       * lisp/cus-start.el (standard): Provide customization forms for
+       display-line-numbers and its sub-features.
+       * lisp/faces.el (line-number, line-number-current-line): New faces.
+       * lisp/frame.el: Add display-line-numbers, display-line-numbers-widen,
+       display-line-numbers-current-absolute, and
+       display-line-number-width to the list of variables that should
+       trigger redisplay of the current buffer.
+       * lisp/menu-bar.el (menu-bar-showhide-menu): Add menu-bar item to
+       turn display-line-numbers on and off.
+       (toggle-display-line-numbers): New function.
+       * lisp/simple.el (last--line-number-width): New internal variable.
+       (line-move-visual): Use it to adjust temporary-goal-column when
+       line-number display changes its width.
+
+       * doc/emacs/basic.texi (Position Info): Add cross-reference to
+       "Display Custom", for line-number display.
+       * doc/emacs/custom.texi (Init Rebinding):
+       * doc/emacs/modes.texi (Minor Modes): Remove references to
+       linum-mode.
+       * doc/emacs/display.texi (Display Custom): Describe the
+       line-number display.
+       * doc/lispref/display.texi (Size of Displayed Text): Document
+       line-number-display-width.
+
+       * etc/NEWS: Document display-line-numbers and its customizations.
+
+2017-07-08  Paul Eggert  <address@hidden>
+
+       Fix more ungetc bugs with encoding errors
+
+       * src/lread.c (infile): New variable, replacing ...
+       (instream): ... this.  All uses changed.
+       (readbyte_from_stdio): New function, which deals with lookahead.
+       (readbyte_from_file, Fget_file_char): Use it.
+       (Fget_file_char): When misused, signal an error instead of
+       relying on undefined behavior.
+       (close_infile_unwind): New function.
+       (Fload): Use it.
+       (readevalloop): 2nd arg is now struct infile *, not FILE *.
+       All callers changed.
+       (read1): Handle lookahead when copying doc strings with
+       encoding errors.
+
+2017-07-08  Paul Eggert  <address@hidden>
+
+       Avoid ungetc when loading charset maps from files
+
+       * src/charset.c (read_hex): New args LOOKAHEAD and TERMINATOR,
+       replacing the old EOF.  All callers changed.  This avoids the
+       need to call ungetc.
+
+2017-07-08  Paul Eggert  <address@hidden>
+
+       Fix ungetc bug when reading an encoding error
+
+       * src/lread.c (readchar, read_emacs_mule_char): Fix off-by-one
+       error when reading an encoding error from a file, e.g., a symbol
+       in an .elc file whose name is "\360\220\200\360".
+
+2017-07-07  Stefan Monnier  <address@hidden>
+
+       * lisp/wid-edit.el (widget-color--choose-action): Use a closure
+
+       * lisp/window.el (display-buffer--special-action): Use a closure.
+
+2017-07-07  Stephen Berman  <address@hidden>
+
+       Add new todo-mode.el tests
+
+       * test/lisp/calendar/todo-mode-tests.el (with-todo-test):
+       Declare an Edebug spec.  Restore pre-test-run state of test files.
+       (todo-test--show, todo-test--move-item)
+       (todo-test--insert-item): New functions.
+       (todo-test-get-archive): Remove, as subsumed by
+       todo-test--show.  Adjust all callers.
+       (todo-test--is-current-buffer): Rename from
+       todo-test-is-current-buffer and adjust uses.
+       (todo-test-item-highlighting): Use todo-test--show.
+       (todo-test-revert-buffer01, todo-test-revert-buffer02)
+       (todo-test-raise-lower-priority)
+       (todo-test-todo-mark-unmark-category, todo-test-move-item01)
+       (todo-test-move-item02, todo-test-move-item03)
+       (todo-test-move-item04, todo-test-move-item05)
+       (todo-test-toggle-item-header01)
+       (todo-test-toggle-item-header02)
+       (todo-test-toggle-item-header03)
+       (todo-test-toggle-item-header04)
+       (todo-test-toggle-item-header05)
+       (todo-test-toggle-item-header06)
+       (todo-test-toggle-item-header07): New tests.
+
+       * test/lisp/calendar/todo-mode-resources/todo-test-1.toda:
+       * test/lisp/calendar/todo-mode-resources/todo-test-1.todo:
+       Modify to accommodate new tests.
+
+2017-07-07  Stephen Berman  <address@hidden>
+
+       todo-mode.el: Fix handling of hidden item headers (bug#27609)
+
+       * lisp/calendar/todo-mode.el (todo--item-headers-hidden): New variable.
+       (todo-toggle-item-header): Use it.  Make this command a noop
+       if the file has no items.
+       (todo-move-item, todo-item-done): Instead of concatenating the
+       items to move into one string, make a list of them to
+       facilitate handling hidden headers.  Adjust insertion accordingly.
+       (todo-archive-done-item): Handle hidden headers in archive file.
+       (todo-unarchive-items): Handle hidden headers in todo file.
+       (todo-backward-item): Use todo--item-headers-hidden and handle
+       moving backward work when item date-time headers are hidden.
+       (todo-remove-item): Delete date-time header overlay.
+       (todo-get-overlay, todo-insert-with-overlays): Make them work
+       with hidden date-time headers.
+       (todo-modes-set-2): Make todo--item-headers-hidden buffer local.
+
+2017-07-07  Stephen Berman  <address@hidden>
+
+       Fix several todo-mode bugs found while debugging bug#27609
+
+       * lisp/calendar/todo-mode.el (todo-toggle-mark-item): Calculate
+       current category only once.
+       (todo-mark-category): Update number of marked items to avoid
+       spurious duplication in todo-categories-with-marks alist and
+       corruption of the todo-categories alist.  Handle empty line
+       when there are no todo items and done items are shown.
+       (todo-set-item-priority): Make noop if called from
+       todo-raise-item-priority or todo-lower-item-priority when
+       point is on a done todo item or an empty line.
+       (todo-move-item): Use markers instead of integer positions to
+       correctly handle deleting the now moved items from the source
+       category (without markers an infinite loop arises when moving
+       marked item to a preceding category).
+       (todo-unarchive-items): Put point on the (first) restored done
+       item, instead of leaving it at the end of the done items
+       separator string.
+       (todo-revert-buffer): Ensure buffer remains read-only after
+       reverting.
+
+2017-07-07  Eli Zaretskii  <address@hidden>
+
+       Exclude blank columns from value of line-number-display-width
+
+       * src/indent.c (Fline_number_display_width): Don't add 2 to the
+       number of columns we return, to make this consistent with
+       display-line-number-width.
+
+2017-07-07  Eli Zaretskii  <address@hidden>
+
+       Fix vertical-motion across the place where line-number width changes
+
+       * src/indent.c (line_number_display_width): New function,
+       refactored from line-number width calculations in vertical-motion.
+       (Fvertical_motion): Call line_number_display_width when the width
+       of line-number display is needed.
+       (Fline_number_display_width): New defun.
+       (syms_of_indent): Defsubr it.
+
+       * doc/lispref/display.texi (Size of Displayed Text): Document
+       line-number-display-width.
+
+       * etc/NEWS: Mention line-number-display-width.
+
+       * lisp/simple.el (last--line-number-width): New internal variable.
+       (line-move-visual): Use it to adjust temporary-goal-column when
+       line-number display changes its width.
+
+2017-07-07  Martin Rudalics  <address@hidden>
+
+       Remove Vwindow_text_change_functions and related code
+
+       Vwindow_text_change_functions had been provided for implementing
+       line numbers but apparently was never functional or in use.
+
+       * src/xdisp.c (redisplay_window): Remove handling of
+       Vwindow_text_change_functions.
+       (syms_of_xdisp): Remove Qwindow_text_change_functions.
+       (Vwindow_text_change_functions): Remove variable.
+       * doc/lispref/hooks.texi (Standard Hooks): Remove entry for
+       `window-text-change-functions'.
+
+2017-07-07  Mark Oteiza  <address@hidden>
+
+       Convert more uses of looking-at to following-char
+
+       More followup to Karl Fogel's commit a84da83c1.
+       * lisp/dired-aux.el (dired-add-entry, dired-subdir-hidden-p):
+       * lisp/dired-x.el (dired-mark-unmarked-files, dired-mark-sexp):
+       * lisp/help-fns.el (doc-file-to-man, doc-file-to-info):
+       * lisp/proced.el (proced-toggle-marks):
+       * lisp/progmodes/f90.el (f90-indent-line):
+       * lisp/ses.el (ses-load):
+       * lisp/tar-mode.el (tar-expunge): Replace instances of looking-at with
+       char comparisons using following-char.
+
+2017-07-07  Noam Postavsky  <address@hidden>
+
+       Don't skip epg tests (Bug#23561)
+
+       * test/lisp/epg-tests.el (with-epg-tests): Ignore REQUIRE-PASSPHRASE
+       parameter, since we supply the passphrase via pinentry-program for all
+       GPG versions (as of 2017-02-28 "Fix epg-tests with dummy-pinentry
+       program (Bug#23619)").
+       (epg-tests-program-alist-for-passphrase-callback): Remove.
+
+2017-07-06  Eli Zaretskii  <address@hidden>
+
+       Implement line numbers that disregard narrowing
+
+       * src/xdisp.c (display_count_lines_logically): New function,
+       counts line numbers disregarding narrowing.  Suggested by Andy
+       Moreton <address@hidden>.
+       (maybe_produce_line_number): Call display_count_lines_logically
+       instead of display_count_lines.  Adapt BEGV, ZV, etc. to
+       display-line-numbers-widen.
+       (syms_of_xdisp) <display-line-numbers-widen>: New buffer-local
+       variable.
+
+       * lisp/cus-start.el (standard): Provide a customization form for
+       display-line-numbers-widen.
+       * lisp/frame.el: Add display-line-numbers-widen,
+       display-line-numbers-current-absolute, and
+       display-line-number-width to the list of variables that should
+       trigger redisplay of the current buffer.
+
+       * doc/emacs/display.texi (Display Custom): Document
+       display-line-numbers-widen.
+
+2017-07-06  Noam Postavsky  <address@hidden>
+
+       Fix lisp-comment-indent for single-semicolon case
+
+       * lisp/emacs-lisp/lisp-mode.el (lisp-comment-indent): Only check for
+       open paren if we're looking at multiple comment characters.
+       * test/lisp/emacs-lisp/lisp-mode-tests.el (lisp-comment-indent-1)
+       (lisp-comment-indent-2): New tests.
+
+2017-07-06  Paul Eggert  <address@hidden>
+
+       Spelling fixes
+
+       * lisp/org/org-table.el (org-table-sort-lines):
+       Fix misspelling in prompt.
+       * lisp/org/ox-ascii.el (org-ascii--describe-datum):
+       Fix misspelling in call to org-element-lineage.
+
+2017-07-06  Noam Postavsky  <address@hidden>
+
+       Don't put whitespace between open paren and comment in Lisp modes 
(Bug#19740)
+
+       * lisp/emacs-lisp/lisp-mode.el (lisp-comment-indent): If current
+       line's code ends in open paren, set comment indentation exactly to
+       column following it.
+       (lisp-mode-variables): Set `comment-indent-function' to
+       `lisp-comment-indent'.
+
+2017-07-06  Noam Postavsky  <address@hidden>
+
+       Allow comment-indent-functions to specify exact indentation (Bug#385)
+
+       * lisp/newcomment.el (comment-choose-indent): Interpret a cons of two
+       integers as indicating a range of acceptable indentation.
+       (comment-indent): Don't apply `comment-inline-offset',
+       `comment-choose-indent' already does that.
+       (comment-indent-function):
+       * doc/emacs/programs.texi (Options for Comments): Document new
+       acceptable return values.
+       * etc/NEWS: Announce it.
+
+2017-07-06  Paul Eggert  <address@hidden>
+
+       Check for integer overflow in xbm images
+
+       * src/image.c (XBM_TK_OVERFLOW): New constant.
+       (xbm_scan): Check for integer overflow instead of relying on
+       undefined behavior.  Check that octal digits are actually octal.
+
+2017-07-06  Paul Eggert  <address@hidden>
+
+       Convert hex digits more systematically
+
+       This makes the code a bit smaller and presumably faster, as
+       it substitutes a single lookup for conditional jumps.
+       * src/character.c (hexdigit): New constant.
+       (syms_of_character) [HEXDIGIT_IS_CONST]: Initialize it.
+       * src/character.h (HEXDIGIT_CONST, HEXDIGIT_IS_CONST): New macros.
+       (hexdigit): New decl.
+       (char_hexdigit): New inline function.
+       * src/charset.c: Do not include c-ctype.h.
+       * src/charset.c (read_hex):
+       * src/editfns.c (styled_format):
+       * src/image.c (xbm_scan):
+       * src/lread.c (read_escape):
+       * src/regex.c (ISXDIGIT) [emacs]:
+       Use char_hexdigit insted of doing it by hand.
+
+2017-07-06  Paul Eggert  <address@hidden>
+
+       Don’t use -Woverride-init
+
+       I have some further changes in mind that would also need to
+       disable the -Woverride-init warnings.  In practice these warnings
+       seem to be more trouble than they’re worth, so disable them in the
+       cc command line.
+       * configure.ac: Disable -Woverride-init here ...
+       * src/bytecode.c: ... rather than here.
+
+2017-07-05  Glenn Morris  <address@hidden>
+
+       * lisp/progmodes/python.el (auto-mode-alist): Add .pyi.  (Bug#27847)
+
+       * lisp/org/ox-html.el (org-html-infojs-template): Update copyright.
+
+2017-07-05  Glenn Morris  <address@hidden>
+
+       Small fix for bug-reference.el
+
+       * lisp/progmodes/bug-reference.el (bug-reference-bug-regexp):
+       Autoload safety property.  (Bug#27481)
+
+2017-07-05  Michael Albinus  <address@hidden>
+
+       Suppress timers in Tramp
+
+       * lisp/net/tramp.el (tramp-file-name-handler): Don't trigger timers.
+
+       * test/lisp/net/tramp-tests.el
+       (tramp-test36-asynchronous-requests): Trigger timers.
+       (tramp-test37-recursive-load, tramp-test38-remote-load-path):
+       Set `default-directory' to a trustworthy value.
+
+2017-07-05  rocky  <address@hidden>
+
+       Add realgud face definitions
+
+       Add realgud faces to tdsh-dark-theme
+
+2017-07-05  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/cc-awk.el: Mark unused args
+
+       * lisp/progmodes/cc-bytecomp.el: Mark unused args
+
+2017-07-05  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/cc-defs.el (lookup-syntax-properties): Move ...
+
+       ... before first use
+
+2017-07-05  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/cc-vars.el: Mark unused args
+
+2017-07-05  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/cc-langs.el: Mark unused args
+
+       (c-primary-expr-regexp): Remove unused vars ambiguous-prefix-ops and
+       unambiguous-prefix-ops.
+
+2017-07-05  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/cc-engine.el: Mark unused args
+
+       (c-beginning-of-statement-1, c-guess-basic-syntax):
+       Remove unused var c-in-literal-cache.
+       (c-debug-sws-msg): Silence byte-compiler, even if we don't use the arg.
+       (c-append-to-state-cache): Remove unused var `bra+1s'.
+       (c-remove-stale-state-cache): Remove unused var `pps-point-state'.
+       (c-invalidate-state-cache-1): Remove unused var `pa'.
+       (c-forward-decl-or-cast-1): Change comments so they don't look like
+       outline headers.
+       (c-restricted-<>-arglists, c-parse-and-markup-<>-arglists):
+       Declare before first use.
+       (c-forward-decl-or-cast-1): Remove unused var `backup-kwd-sym'.
+       (c-backward-over-enum-header): Remove unused var `up-sexp-pos'.
+
+2017-07-05  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/cc-cmds.el: Remove unused vars
+
+       (c-syntactic-context): Declare as dynbound.
+       (c-beginning-of-defun, c-end-of-defun): Remove unused var `start'.
+
+2017-07-05  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/cc-guess.el: Remove unused var
+
+       (c-guess-view-reorder-offsets-alist-in-style): Remove redundantly bound
+       and computed variable `guessed-syntactic-symbols'.
+
+2017-07-05  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/cc-align.el: Mark unused arguments
+
+2017-07-05  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/cc-mode.el: Mark unused arguments
+
+       (c-parse-quotes-before-change, c-parse-quotes-after-change):
+       Remove unused vars.
+
+2017-07-05  Noam Postavsky  <address@hidden>
+
+       Mention `ffap-url-unwrap-local' in find-file-at-point's docstring 
(Bug#27564)
+
+       * lisp/ffap.el (find-file-at-point): Mention `ffap-url-unwrap-local'
+       and `ffap-url-unwrap-remote'.
+
+2017-07-05  Noam Postavsky  <address@hidden>
+
+       Fix infloop in uncomment-region-default (Bug#27112)
+
+       When `comment-continue' has only blanks, `comment-padright' produces a
+       regexp that matches the empty string, so `uncomment-region-default'
+       will loop infinitely.
+       * lisp/newcomment.el (comment-padright): Only return a regexp if STR
+       has nonblank characters.
+
+2017-07-04  Eli Zaretskii  <address@hidden>
+
+       Fix display of current line number in visual mode
+
+       * src/xdisp.c (maybe_produce_line_number): Fix visual-mode display
+       of current line when line-number-current-line face was customized.
+       Reported by Filipe Silva <address@hidden>.
+
+2017-07-03  Philipp Stephani  <address@hidden>
+
+       Use hook instead of face list to inhibit electric quoting
+
+       This is more flexible and doesn't couple electric quoting to font
+       locking.
+       Give that 'electric-quote-code-faces' was just introduced, remove it
+       without formal deprecation.
+
+       * lisp/electric.el (electric-quote-inhibit-functions): New abnormal
+       hook variable.
+       (electric-quote-post-self-insert-function): Run the hook.  Remove
+       use of old 'electric-quote-code-faces' variable.
+
+       * test/lisp/electric-tests.el (electric-quote-markdown-in-text)
+       (electric-quote-markdown-in-code): Adapt unit tests.
+
+2017-07-03  Ingo Lohmar  <address@hidden>
+
+       Offer non-aligned indentation in lists in js-mode (Bug#27503)
+
+       * lisp/progmodes/js.el (js--proper-indentation):
+       New customization option 'js-indent-align-list-continuation'.
+       Affects argument lists as well as arrays and object properties.
+       * test/manual/indent/js-indent-align-list-continuation-nil.js:
+       Test the change.
+
+2017-07-03  Eli Zaretskii  <address@hidden>
+
+       Avoid errors in vertical-motion when buffer is narrowed
+
+       * src/indent.c (Fvertical_motion): If need to start from
+       window-start, and it is outside of the accessible portion,
+       temporarily widen the buffer.  This avoids errors in evil-mode.
+       Reported by James Nguyen <address@hidden>.
+
+2017-07-03  Michael Albinus  <address@hidden>
+
+       (Re-)activate remote tests of filenotify-tests.el
+
+       * test/lisp/filenotify-tests.el
+       (file-notify-test-remote-temporary-file-directory):
+       Declare default host for mock method.  Offer home directory
+       for mock method if it doesn't exist.
+       (file-notify-test09-watched-file-in-watched-dir-remote):
+       Remove, it doesn't work reliably.
+
+2017-07-03  Noam Postavsky  <address@hidden>
+
+       Reset ansi escape context before printing eshell prompt (Bug#27407)
+
+       * lisp/eshell/em-prompt.el (eshell-emit-prompt): Reset
+       `ansi-color-context-region'.
+
+2017-07-03  Noam Postavsky  <address@hidden>
+
+       Let ansi-color overlay hooks work in eshell (Bug#27407)
+
+       * lisp/ansi-color.el (ansi-color-make-extent): Add
+       `ansi-color-freeze-overlay' to `insert-behind-hooks' as well.
+       * lisp/eshell/esh-mode.el (eshell-output-filter): Let-bind
+       `inhibit-modification-hooks' to nil while inserting the string.
+
+2017-07-03  Noam Postavsky  <address@hidden>
+
+       Fix and simplify ansi escape detection (Bug#21381)
+
+       * lisp/ansi-color.el (ansi-color-regexp, ansi-color-drop-regexp):
+       Remove.
+       (ansi-color-control-seq-regexp): New constant, matches all escape
+       sequences.
+       (ansi-color-filter-apply, ansi-color-apply)
+       (ansi-color-filter-region, ansi-color-apply-on-region): Use it instead
+       of matching color sequences separately from ignored sequences.
+       Differentiate color sequences simply by checking the last character.
+
+2017-07-03  Damien Cassou  <address@hidden>
+
+       Add absolute optional parameter to line-number-at-pos (Bug#26417)
+
+       * lisp/simple.el (line-number-at-pos): Add a second optional
+         argument 'absolute'.
+       * test/list/simple-tests.el: Add tests for 'line-number-at-pos'.
+
+2017-07-03  R. Bernstein  <address@hidden>
+
+       Add realgud faces
+
+2017-07-03  Michael Albinus  <address@hidden>
+
+       Fix tramp-tests.el for hydra
+
+       * test/Makefile.in: Remove instrumentation for tramp-tests.
+
+       * test/lisp/net/tramp-tests.el (tramp-test36-asynchronous-requests):
+       Remove instrumentation.  Wrap with a timeout.  Give hydra
+       another timer value.  Set `default-directory' in timer.
+
+2017-07-03  Bastien  <address@hidden>
+
+       Merge branch 'master' into scratch/org-mode-merge
+
+       Merge branch 'master' into scratch/org-mode-merge
+
+2017-07-03  Tino Calancha  <address@hidden>
+
+       dired-do-shell-command: Fix check for wildcards
+
+       * lisp/dired-aux.el (dired-do-shell-command): Replace just '?', '*'
+       and '`?' i.e., keep the whitespaces.
+       * test/lisp/dired-aux-tests.el (dired-test-bug27496): Add test.
+
+2017-07-02  Noam Postavsky  <address@hidden>
+
+       Split shr-copy-url dwim behavior into separate functions (Bug#26826)
+
+       * lisp/net/shr.el (shr-url-at-point, shr-probe-url)
+       (shr-probe-and-copy-url, shr-maybe-probe-and-copy-url): New functions,
+       split out from `shr-copy-url'.
+       (shr-copy-url): Only copy the url, don't fetch it.
+       (shr-map): Bind 'w' and 'u' to `shr-maybe-probe-and-copy-url', which
+       has the same behavior as the old `shr-copy-url'.
+       * etc/NEWS: Announce changes.
+
+2017-07-02  Alex Branham  <address@hidden>  (tiny change)
+
+       Make eww-search-words prompt for query if nothing selected
+
+       * lisp/net/eww.el (eww-search-words): Make eww-search-words prompt the
+       user for a search query if the region is inactive or if the region is
+       just whitespace.
+
+2017-07-02  Noam Postavsky  <address@hidden>
+
+       * lisp/emacs-lisp/cl-print.el (cl-print-compiled-button): t by default.
+
+       * lisp/emacs-lisp/debug.el (debugger-insert-backtrace):
+       * lisp/help-fns.el (describe-variable): No need to let-bind
+       `cl-print-compiled-button' to t anymore.
+
+2017-07-02  Philipp Stephani  <address@hidden>
+
+       Electric quotes: Improve support for Markdown mode (Bug#24709)
+
+       Introduce a new user option 'electric-quote-context-sensitive'.  If
+       non-nil, have ' insert an opening quote if sensible.
+
+       Also introduce a new variable 'electric-quote-code-faces'.  Major
+       modes such as 'markdown-mode' can add faces to this list to treat text
+       as inline code and disable electric quoting.
+
+       * lisp/electric.el (electric-quote-context-sensitive): New user
+       option.
+       (electric-quote-code-faces): New variable.
+       (electric-quote-post-self-insert-function): Treat ' as ` if
+       desired and applicable; disable electric quoting for given faces.
+
+       * test/lisp/electric-tests.el (electric-quote-opening-single)
+       (electric-quote-closing-single, electric-quote-opening-double)
+       (electric-quote-closing-double)
+       (electric-quote-context-sensitive-backtick)
+       (electric-quote-context-sensitive-bob-single)
+       (electric-quote-context-sensitive-bob-double)
+       (electric-quote-context-sensitive-bol-single)
+       (electric-quote-context-sensitive-bol-double)
+       (electric-quote-context-sensitive-after-space-single)
+       (electric-quote-context-sensitive-after-space-double)
+       (electric-quote-context-sensitive-after-letter-single)
+       (electric-quote-context-sensitive-after-letter-double)
+       (electric-quote-context-sensitive-after-paren-single)
+       (electric-quote-context-sensitive-after-paren-double)
+       (electric-quote-markdown-in-text)
+       (electric-quote-markdown-in-code): New unit tests.
+
+2017-07-02  Michael Albinus  <address@hidden>
+
+       * doc/misc/tramp.texi: Replace ftp:// and http:// URLs by https://.
+
+2017-07-02  Eli Zaretskii  <address@hidden>
+
+       Avoid off-by-one errors in column C-n/C-p calculations
+
+       * src/indent.c (Fvertical_motion): Help C-n/C-p estimate correctly
+       the width used up by line numbers by looking near the window-start
+       point.
+
+2017-07-02  Tino Calancha  <address@hidden>
+
+       Ask confirmation for all suspicious wildcards
+
+       * lisp/dired-aux.el (dired-do-shell-command): Check that all
+       the wildcards are right.  Otherwise, ask for confirmation (Bug#27496).
+
+2017-07-02  Tino Calancha  <address@hidden>
+
+       Extend dired-do-shell-command substitutions
+
+       Substitute "`?`" inside command with the current file name.
+       See details in:
+       https://lists.gnu.org/archive/html/emacs-devel/2017-06/msg00618.html
+       * lisp/dired-aux.el (dired-quark-subst-regexp, dired-star-subst-regexp):
+       Mark as obsolete.
+       (dired-isolated-string-re): New defun.
+       (dired--star-or-qmark-p): New predicate.
+       (dired-do-shell-command): Use dired--star-or-qmark-p.  Substitute "`?`"
+       with the current file name.
+       * doc/emacs/dired.texi (Shell Commands in Dired): Update manual.
+
+2017-07-02  Alan Mackenzie  <address@hidden>
+
+       Fix bug in yesterday's CC Mode commit.
+
+       * lisp/progmodes/cc-mode.el (c-quoted-number-head-before-point): Check a
+       search has succeded before using the match data.
+       (c-quoted-number-head-before-point, c-quoted-number-head-after-point):
+       Specify that the position of the extremity of the head or tail is in the
+       match data.
+
+2017-07-02  Philipp Stephani  <address@hidden>
+
+       Remove FIXME comments about sentinel values
+
+       These FIXMEs can't be addressed because they would require breaking
+       changes to the module API.  Furthermore, other module functions don't
+       return sentinel values as well, so users generally have to call
+       non_local_exit_check anyway.
+
+       * src/emacs-module.c (module_set_user_ptr)
+       (module_set_user_finalizer, module_vec_set, module_vec_size): Remove
+       FIXME comments.
+
+2017-07-02  Philipp Stephani  <address@hidden>
+
+       Adapt Lisp reference to reader changes
+
+       The reader now warns about some unescaped character literals, but
+       still allows them for compatibility reasons.  Slightly adapt the
+       manual to forbid them officially.
+
+       * doc/lispref/objects.texi (Basic Char Syntax): Document that
+       backslashes are now required before some characters.
+
+2017-07-02  Michael Albinus  <address@hidden>
+
+       Fix Bug#27502
+
+       * lisp/autorevert.el (auto-revert-find-file-function): New defun.
+       (find-file-hook): Use it.  (Bug#27502)
+       (auto-revert-remove-current-buffer): New defun.
+       (auto-revert-mode, auto-revert-buffers): Use it.
+
+2017-07-02  Noam Postavsky  <address@hidden>
+
+       Let test summary go through even if some logs were not generated
+
+       * lisp/emacs-lisp/ert.el (ert-summarize-tests-batch-and-exit): Check
+       for existence of log files before reading.
+
+2017-07-01  Philipp Stephani  <address@hidden>
+
+       * src/module-env-25.h (copy_string_contents): Fix comment.
+
+2017-07-01  Philipp Stephani  <address@hidden>
+
+       Also mark module init function as noexcept if possible
+
+       * src/emacs-module.h.in (emacs_module_init): Mark as noexcept if
+       possible.
+
+2017-07-01  Philipp Stephani  <address@hidden>
+
+       Improve C++98 compatibility
+
+       * src/emacs-module.h.in (emacs_funcall_exit): Lose trailing comma.
+       C++98 doesn't allow trailing commas in enumerations.
+
+2017-07-01  Eli Zaretskii  <address@hidden>
+
+       Minor copyedits of manuals regarding bidi conformance
+
+       * doc/emacs/mule.texi (Bidirectional Editing):
+       * doc/lispref/display.texi (Bidirectional Display): Update the
+       bidi conformance text.
+
+2017-07-01  Alan Mackenzie  <address@hidden>
+
+       Make C++ digit separators work.  Amend the handling of single quotes 
generally
+
+       Single quotes, even in strings and comments, are now marked with the
+       "punctuation" syntax-table property, except where they are validly 
bounding a
+       character literal.  They are font locked with font-lock-warning-face 
except
+       where they are valid.  This is done in C, C++, ObjC, and Java Modes.
+
+       * lisp/progmodes/cc-defs.el 
(c-clear-char-property-with-value-on-char-function)
+       (c-clear-char-property-with-value-on-char, 
c-put-char-properties-on-char): New
+       functions/macros.
+
+       * lisp/progmodes/cc-fonts.el (c-font-lock-invalid-single-quotes): New 
function.
+       (c-basic-matchers-before): invoke c-font-lock-invalid-single-quotes.
+
+       * lisp/progmodes/cc-langs.el (c-get-state-before-change-functions): 
Remove
+       c-before-after-change-digit-quote from wherever it occurs.  Insert
+       c-parse-quotes-before-change into the entries for the languages where 
it is
+       needed.
+       (c-before-font-lock-functions): Remove 
c-before-after-change-digit-quote from
+       wherever it occurs.  Insert c-parse-quotes-after-change into the 
entries for
+       the languages which need it.
+       (c-has-quoted-numbers): New lang-defconst/-defvar.
+
+       * lisp/progmodes/cc-mode.el (c-before-after-change-digit-quote): Remove.
+       (c-maybe-quoted-number-head, c-maybe-quoted-number-tail)
+       (c-maybe-quoted-number): New defconsts.
+       (c-quoted-number-head-before-point, c-quoted-number-tail-after-point)
+       (c-quoted-number-straddling-point, c-parse-quotes-before-change)
+       (c-parse-quotes-after-change): New functions.
+
+2017-07-01  Noam Postavsky  <address@hidden>
+
+       Ignore mouse-movement for describe-key-briefly (Bug#12204)
+
+       * lisp/help.el (help-read-key-sequence): Add optional argument ot
+       ignore `mouse-movement' events.
+       (describe-key-briefly): Use it.
+       * doc/emacs/help.texi (Key Help):
+       * etc/NEWS: Mention that mouse movement is ignored.
+
+2017-07-01  Noam Postavsky  <address@hidden>
+
+       Refactor key describing commands
+
+       * lisp/help.el (help-read-key-sequence, help--analyze-key): New
+       functions, extracted from `describe-key' and `describe-key-briefly'.
+       (describe-key, describe-key-briefly): Use them.
+
+2017-07-01  Eli Zaretskii  <address@hidden>
+
+       Improve display of tabs with line numbers
+
+       * src/xdisp.c (x_produce_glyphs): Improve calculation of next tab
+       stop in hscrolled lines.  Prevent aborts in compute_line_metrics.
+
+2017-07-01  Alan Third  <address@hidden>
+
+       Fix threads on NS (bug#25265)
+
+       src/nsterm.h (ns_select): Compiler doesn't like sigmask being const.
+       (ns_run_loop_break) [HAVE_PTHREAD]: New function.
+       src/nsterm.m (ns_select): Call thread_select from within ns_select.
+       (ns_run_loop_break) [HAVE_PTHREAD]: New function.
+       (ns_send_appdefined): Don't wait for main thread when sending app
+       defined event.
+       src/process.c (wait_reading_process_output): Call thread_select from
+       within ns_select.
+       src/systhread.c (sys_cond_broadcast) [HAVE_NS]: Break ns_select out of
+       its event loop using ns_run_loop_break.
+
+2017-07-01  Eli Zaretskii  <address@hidden>
+
+       Avoid slow redisplay under 'visual' mode of line numbers
+
+       * src/xdisp.c (display_count_lines_visually): Avoid very slow
+       redisplay when this function is invoked very far from point.
+       Reported by Alex <address@hidden>.
+
+2017-07-01  Noam Postavsky  <address@hidden>
+
+       * lisp/help-fns.el (describe-variable): Let-bind 
cl-print-compiled-button.
+
+2017-07-01  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-extra.el (cl--random-state): New defstruct
+
+       (cl--random-state, cl--random-time): Move from cl-lib.el.
+       (cl-random): Use struct accessors.
+       (cl-random-state-p): Remove, provided by the defstruct.
+       (cl-make-random-state): Rewrite to struct constructor.
+
+2017-07-01  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/debug.el (debugger-list-functions): Remove obsolete 
msg
+
+2017-06-30  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of faces related to display-line-numbers
+
+       * lisp/faces.el (line-number, line-number-current-line): Warn
+       against using non-monospaced fonts.
+
+2017-06-30  Eli Zaretskii  <address@hidden>
+
+       Fix relative-number display with non-nil display-line-number-width
+
+       * src/xdisp.c (maybe_produce_line_number): Don't treat a zero
+       value of display-line-number-width as acceptable.
+       Handle the case of 'relative' with display-line-number-width
+       non-nil and smaller than the absolute line number requires.
+       Reported by Alex <address@hidden>.
+
+2017-06-30  Michael Albinus  <address@hidden>
+
+       Release Tramp 2.3.2
+
+       * doc/misc/tramp.texi (Android shell setup): Show default file name.
+       Structure section.
+
+       * doc/misc/trampver.texi:
+       * lisp/net/trampver.el: Change version to "2.3.2".
+
+       * test/lisp/net/tramp-tests.el (tramp-test-temporary-file-directory):
+       Offer home directory for mock method if it doesn't exist.
+
+2017-06-30  Eli Zaretskii  <address@hidden>
+
+       Add documentation for display-line-numbers
+
+       * doc/emacs/custom.texi (Init Rebinding):
+       * doc/emacs/modes.texi (Minor Modes): Remove references to
+       linum-mode.
+       * doc/emacs/display.texi (Display Custom): Describe the
+       line-number display.
+       (Optional Mode Line): Fix the index entry to not conflict with
+       that in "Display Custom".
+       * doc/emacs/basic.texi (Position Info): Add cross-reference to
+       "Display Custom", for line-number display.
+
+       * src/xdisp.c (syms_of_xdisp): <display-line-numbers>: Mention
+       display-line-numbers-disable in the doc string.
+
+       * lisp/cus-start.el (standard): Fix lst change.
+
+2017-06-30  Eli Zaretskii  <address@hidden>
+
+       Support displaying zero as the number of the current line
+
+       * src/xdisp.c (syms_of_xdisp)
+       <display-line-numbers-current-absolute>: New variable.
+       <display-line-numbers>: Doc fix.
+       (maybe_produce_line_number): Support nil value of
+       display-line-numbers-current-absolute.
+
+       * lisp/cus-start.el (standard): Add customization form for
+       display-line-numbers-current-absolute.
+
+       * etc/NEWS: Document recently introduced features.
+
+2017-06-30  Eli Zaretskii  <address@hidden>
+
+       Speed up the visual-mode relative line numbers
+
+       * src/xdisp.c (display_count_lines_visually): Introduce a
+       shortcut: if a relative line number was already calculated for
+       this iterator object, just increase it instead of the
+       expensive call to move_it_to.  Argument list changed to pass a
+       pointer to the iterator object.
+       (maybe_produce_line_number): Adjust for change in signature of
+       display_count_lines_visually.  Record the relative line number and
+       the corresponding byte position in the iterator object also in the
+       'visual' mode.
+
+2017-06-30  Eli Zaretskii  <address@hidden>
+
+       Fix hscrolling with line numbers on TTY frames
+
+       * src/xdisp.c (hscroll_window_tree): Correct the X offset
+       calculations on TTY frames.
+       * src/term.c (produce_glyphs): Use it->lnum_pixel_width instead of
+       a kludge using it->lnum_width.
+
+2017-06-30  Eli Zaretskii  <address@hidden>
+
+       Fix TAB display when the line-number face uses a smaller/larger font
+
+       * src/dispextern.h (struct it): New member lnum_pixel_width.
+       * src/xdisp.c (maybe_produce_line_number): Compute the width of
+       the line-number display in pixels.
+       (x_produce_glyphs): Use it->lnum_pixel_width instead of a kludge
+       that used it->lnum_width and made assumptions about pixel width.
+
+2017-06-30  Noam Postavsky  <address@hidden>
+
+       Escape NUL bytes in X selections (Bug#6991)
+
+       * lisp/term/w32-win.el (w32--set-selection):
+       * lisp/select.el (xselect--encode-string): Replace NUL bytes with
+       "\0".
+       * doc/emacs/killing.texi: Document new behavior.
+       * etc/NEWS (times): Announce it.
+
+2017-06-30  Noam Postavsky  <address@hidden>
+
+       Hide byte code in backtraces (Bug#6991)
+
+       * lisp/emacs-lisp/debug.el (debugger-print-function): New defcustom,
+       defaulting to `cl-print'.
+       (debugger-insert-backtrace, debugger-setup-buffer): Use it instead of
+       `prin1'.
+       * etc/NEWS: Announce it.
+
+2017-06-30  Noam Postavsky  <address@hidden>
+
+       Don't redundantly cl-print arglist in function docstring again
+
+       * lisp/emacs-lisp/cl-print.el (cl-print-object): Don't print arglist
+       part of docstring.
+       * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-1): Update
+       test accordingly.
+
+2017-06-30  Noam Postavsky  <address@hidden>
+
+       Escape control characters in backtraces (Bug#6991)
+
+       * src/print.c (syms_of_print): Add new variable,
+       print-escape-control-characters.
+       (print_object): Print control characters with octal escape codes when
+       print-escape-control-characters is true.
+       * lisp/subr.el (backtrace):
+       * lisp/emacs-lisp/debug.el (debugger-setup-buffer): Bind
+       `print-escape-control-characters' to t.
+
+2017-06-30  Noam Postavsky  <address@hidden>
+
+       Improve ert backtrace recording
+
+       Change ert to use the new `backtrace-frames' function instead of
+       collecting frames one by one with `backtrace-frame'.  Additionally,
+       collect frames starting from `signal' instead the somewhat arbitrary
+       "6 from the bottom".  Skipping 6 frames would skip the expression that
+       actually caused the signal that triggered the debugger.  Possibly 6
+       was chosen because in the case of a failed test, the triggering frame
+       is an `ert-fail' call, which is not so interesting.  But in case of a
+       test throwing an error, this drops the `error' call which is too much.
+
+       * lisp/emacs-lisp/debug.el (debugger-make-xrefs): Remove.
+       * lisp/emacs-lisp/ert.el (ert--make-xrefs-region): Bring in relevant
+       code from `debugger-make-xrefs'.
+       (ert--print-backtrace): Add DO-XREFS parameter, delegate to
+       `debugger-insert-backtrace'.
+       (ert--run-test-debugger): Record the backtrace frames starting from
+       the instigating `signal' call.
+       (ert-run-tests-batch): Pass nil for `ert--print-backtrace's new
+       DO-XREFS parameter.
+       (ert-results-pop-to-backtrace-for-test-at-point): Pass t as DO-XREFS
+       to `ert--print-backtrace' and remove call to `debugger-make-xrefs'.
+       * test/lisp/emacs-lisp/ert-tests.el (ert-test-record-backtrace): Check
+       the backtrace list instead of comparing its string representation.
+       Expect `signal' to be the first frame.
+
+2017-06-30  Noam Postavsky  <address@hidden>
+
+       Operate on frame list instead of printed backtrace
+
+       * lisp/emacs-lisp/debug.el (debugger-insert-backtrace): New function,
+       prints the given backtrace frames.
+       (debugger-setup-buffer): Use it instead of editing the backtrace
+       buffer text.
+
+2017-06-29  Eli Zaretskii  <address@hidden>
+
+       Minor fixes
+
+       * src/xdisp.c (maybe_produce_line_number): Fix bug that caused
+       line numbers to be displayed in empty lines beyond ZV.
+       (x_produce_glyphs): Start fixing TAB display in truncated lines.
+
+2017-06-29  Michael Albinus  <address@hidden>
+
+       Improve timer handling when Tramp accepts output
+
+       * lisp/net/tramp-compat.el: Avoid compiler warning.
+
+       * lisp/net/tramp-sh.el (tramp-sh-file-name-handler):
+       Remove lock machinery.
+
+       * lisp/net/tramp.el (tramp-locked, tramp-locker): Move up.
+       (tramp-file-name-handler): Add lock machinery from
+       `tramp-sh-file-name-handler'.  Allow timers to run.
+       (tramp-accept-process-output): Remove nasty workaround.
+       Suppress timers.
+
+       * test/lisp/net/tramp-tests.el (shell-command-sentinel):
+       Suppress run in tests.
+       (tramp--instrument-test-case-p): New defvar.
+       (tramp--instrument-test-case): Use it in order to allow nested calls.
+       (tramp--test-message, tramp--test-backtrace): New defsubst,
+       will be used for occasional test instrumentation.
+       (tramp-test00-availability, tramp-test31-vc-registered): Use them.
+       (tramp-test28-shell-command)
+       (tramp--test-shell-command-to-string-asynchronously): Suppress
+       nasty messages.  Don't overwrite sentinel.
+       (tramp-test36-asynchronous-requests): Rewrite major parts.
+       Expect :passed.
+
+2017-06-28  Stefan Monnier  <address@hidden>
+
+       * lisp/url/url-history.el: Use lexical-binding
+
+       (url-completion-function): Mark as obsolete.
+       Mark unused args accordingly.
+
+2017-06-28  Noam Postavsky  <address@hidden>
+
+       Don't assume url structs are vectors (Bug#27333)
+
+       * lisp/url/url-history.el (url-history-update-url): Use `url-p'
+       instead of `vectorp'.
+
+2017-06-28  Mark Oteiza  <address@hidden>
+
+       Replace with dolist some uses of while
+
+       * lisp/calc/calc-units.el (calc-permanent-units):
+       (math-compare-unit-names, math-simplify-units-quotient):
+       (math-build-units-table-buffer): Use dolist to replace extra bindings
+       and some while loops.
+
+2017-06-28  Noam Postavsky  <address@hidden>
+
+       Make tcl-auto-fill-mode obsolete (Bug#10772)
+
+       * lisp/progmodes/tcl.el (tcl-auto-fill-mode): Declare obsolete.
+       * etc/NEWS: Announce it.
+
+2017-06-28  Noam Postavsky  <address@hidden>
+
+       Don't read eshell/which output from *Help* buffer (Bug#26894)
+
+       * lisp/help-fns.el (help-fns--analyse-function)
+       (help-fns-function-description-header): New functions, extracted from
+       describe-function-1.
+       (describe-function-1): Use them.
+       * lisp/eshell/esh-cmd.el (eshell/which): Use
+       `help-fns-function-description-header' instead of
+       `describe-function-1'.
+
+2017-06-27  Eli Zaretskii  <address@hidden>
+
+       Support default-text-properties
+
+       * src/xdisp.c (should_produce_line_number): Call get-char-property
+       at ZV as well, to support default-text-properties.
+
+2017-06-27  Eli Zaretskii  <address@hidden>
+
+       Avoid segfaults when some display vector is an empty string
+
+       * src/xdisp.c (next_element_from_display_vector): Don't try
+       accessing the dpvec[] array if its size is zero.  (Bug#27504)
+
+2017-06-26  Eli Zaretskii  <address@hidden>
+
+       Initial support for visually-relative line numbers
+
+       Works very slowly.
+
+       * src/xdisp.c (display_count_lines_visually): New function.
+       (maybe_produce_line_number): Support 'visual' mode of line-number
+       display.
+       * src/xdisp.c (maybe_produce_line_number): Update IT's metrics
+       also when glyph_row is NULL.  This is important for move_it_*
+       functions.
+       (syms_of_xdisp) <display-line-number-width>: Now buffer-local.
+       (try_window_id, redisplay_window, try_cursor_movement): For
+       'visual' line-number display, disable the same redisplay
+       optimizations as for 'relative'.
+
+       * lisp/cus-start.el (standard): Add new value for the
+       customization form of display-line-numbers.
+
+2017-06-26  Eli Zaretskii  <address@hidden>
+
+       Update IT's metrics while simulating display
+
+       * src/xdisp.c (maybe_produce_line_number): Update IT's metrics
+       also when glyph_row is NULL.  This is important for move_it_*
+       functions.
+
+2017-06-26  Teemu Likonen  <address@hidden>
+
+       Fix bug in handling GnuPG's TRUST_MARGINAL status
+
+       * lisp/epg.el (epg--status-TRUST_MARGINAL): Change symbol `marginal'
+       to `good'.
+
+2017-06-26  Tino Calancha  <address@hidden>
+
+       Prefer `when' instead of 1-branch `if'
+
+       * lisp/dired-aux.el (dired-do-shell-command): Store condition value
+       in local variable ok.
+       Use `when' instead of 1-branch `if'.
+
+2017-06-26  Tino Calancha  <address@hidden>
+
+       Use #' instead of (function ...)
+
+       * lisp/dired-aux.el (dired-do-chxxx, dired-clean-directory)
+       (dired-mark-confirm, dired-query, dired-byte-compile)
+       (dired-load, dired-update-file-line, dired-after-subdir-garbage)
+       (dired-relist-file, dired-rename-subdir, dired-do-create-files)
+       (dired-mark-read-file-name, dired-do-copy, dired-do-symlink)
+       (dired-do-hardlink, dired-do-rename, dired-do-rename-regexp)
+       (dired-do-copy-regexp, dired-do-hardlink-regexp)
+       (dired-do-symlink-regexp, dired-create-files-non-directory)
+       (dired-upcase, dired-downcase)
+
+       * lisp/dired.el (dired-mode, dired-copy-filename-as-kill)
+       (dired-internal-do-deletions, dired-internal-do-deletions):
+       Prefer #' instead of (function ...).
+
+2017-06-26  Tino Calancha  <address@hidden>
+
+       Don't quote lambda forms
+
+       * lisp/dired.el (dired-re-maybe-mark, dired-map-over-marks)
+       (dired-mark, dired-desktop-buffer-misc-data)
+
+       * lisp/dired-aux.el (dired-do-create-files, 
dired-do-create-files-regexp)
+       (dired-create-files-non-directory, dired-insert-subdir-validate)
+       (dired-alist-sort, dired-do-shell-command): Don't quote lambda forms.
+
+2017-06-26  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/cc-fonts.el: Remove/mark unused vars
+
+       (c-font-lock-declarators): Remove unused vars `id-end', `paren-depth',
+       and `brackets-after-id'.
+       (c-font-lock-objc-methods): Mark unused args.
+
+2017-06-25  Paul Eggert  <address@hidden>
+
+       Omit null-pointer test in intervals.h FRAME
+
+       * src/intervals.h (ROOT_INTERVAL_P, ONLY_INTERVAL_P)
+       (INTERVAL_LAST_POS): Omit unnecessary parens.
+       (LENGTH): Omit test for null pointer.  The argument is never null.
+       The unnecessary test causes GCC 7.1.0 to assume that the argument
+       might be null, and therefore to issue false alarms when the
+       argument is dereferenced in other expressions.
+
+2017-06-25  Paul Eggert  <address@hidden>
+
+       Parenthesize frame.h macro definitions
+
+       * src/frame.h (FRAME_TOOL_BAR_POSITION)
+       (FRAME_VERTICAL_SCROLL_BAR_TYPE, FRAME_HAS_VERTICAL_SCROLL_BARS)
+       (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT)
+       (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT)
+       (FRAME_OVERRIDE_REDIRECT, FRAME_UNDECORATED, FRAME_PARENT_FRAME)
+       (FRAME_SKIP_TASKBAR, FRAME_NO_FOCUS_ON_MAP)
+       (FRAME_NO_ACCEPT_FOCUS, FRAME_NO_SPECIAL_GLYPHS, FRAME_Z_GROUP)
+       (FRAME_Z_GROUP_NONE, FRAME_Z_GROUP_ABOVE, FRAME_Z_GROUP_BELOW)
+       (FRAME_HAS_HORIZONTAL_SCROLL_BARS): Parenthesize macro definiens
+       to allow arbitrary expression arguments.
+
+2017-06-25  Paul Eggert  <address@hidden>
+
+       Port recent frame changes to GCC 7
+
+       * src/frame.c (keep_ratio): New arg P.  Caller changed.  Since it
+       is non-null, it avoids a GCC 7 warning that FRAME_PARENT_FRAME
+       might return null.  This also avoids a run-time test.
+
+2017-06-25  Eli Zaretskii  <address@hidden>
+
+       Minor aesthetic fix of last change.
+
+2017-06-25  Eli Zaretskii  <address@hidden>
+
+       Allow to disable display of line numbers beyond EOB
+
+       * src/buffer.c (disable_line_numbers_overlay_at_eob): New
+       function.
+       * src/lisp.h (disable_line_numbers_overlay_at_eob): Add prototype.
+       * src/xdisp.c (should_produce_line_number): When at ZV, call
+       disable_line_numbers_overlay_at_eob to determine whether line
+       numbers should be displayed beyond ZV.
+
+2017-06-25  Michael Albinus  <address@hidden>
+
+       Fix Android 6/7 problems in Tramp
+
+       * lisp/net/tramp-adb.el (tramp-adb-ls-toolbox-regexp): Fix link part.
+       (tramp-adb-handle-directory-files-and-attributes)
+       (tramp-adb-handle-file-name-all-completions): Insert "."  and
+       ".." only when needed.
+       (tramp-adb-get-ls-command): Force one column output for toybox.
+
+2017-06-25  Stefan-W. Hahn  <address@hidden>  (tiny change)
+
+       * lisp/subr.el (setq-local): Add debug declaration (Bug#27408).
+
+2017-06-25  Eli Zaretskii  <address@hidden>
+
+       Fix line number display for overlay/display strings with newlines
+
+       * src/xdisp.c (maybe_produce_line_number): Fix the condition for
+       producing space glyphs instead of a line number to include the
+       case of display strings and overlays.
+
+2017-06-25  Alan Mackenzie  <address@hidden>
+
+       Make CC Mode load cl-lib rather than cl in Emacs 26.
+
+       * lisp/progmodes/cc-cmds.el (c-declaration-limits): Remove unused local
+       variable.
+
+       * lisp/progmodes/cc-defs.el (c--mapcan-status): Remove.
+       (c--cl-library): New variable.
+       (Top level): Amend the form which requires library cl or cl-lib.
+       (c--mapcan, c--set-difference, c--intersection, c--macroexpand-all)
+       (c--delete-duplicate): Amend to use c--cl-library instead of
+       c--mapcan-status.
+
+       * lisp/progmodes/cc-engine.el (c-syntactic-skip-backward)
+       (c-back-over-compound-identifier): Remove unused local variables.
+
+       * lisp/progmodes/cc-fonts.el (c-font-lock-declarations): Remove an 
unused
+       local variable.
+
+       * lisp/progmodes/cc-langs.el (Top level): Amend to use c--cl-library 
instead
+       of c--mapcan-status.
+
+       * lisp/progmodes/cc-styles.el (Top level): Add a cc-bytecomp-defun to 
try to
+       silence a compiler warning.
+
+2017-06-25  Martin Rudalics  <address@hidden>
+
+       Provide additional support for child frames
+
+       Provide mouse dragging and resizing of frames.  Allow resizing
+       frames proportionally.  Provide additional functionality for
+       child frames.  Minor bug fixes.
+
+       * lisp/frame.el (frame-border-width, frame-pixel-width)
+       (frame-pixel-height): Alias to `frame-internal-border-width',
+       `frame-native-width' and `frame-native-height'.
+       (frame-inner-width, frame-inner-height, frame-outer-width)
+       (frame-outer-height): New functions.
+       * lisp/minibuffer.el (completion-auto-help): Fix typo.
+       * lisp/mouse.el (mouse-drag-line, mouse-drag-mode-line)
+       (mouse-drag-header-line): Allow moving a frame by dragging the
+       mode line of its bottommost window (on a minibuffer-less frame)
+       or the header line of its topmost window.
+       (mouse-drag-vertical-line): Mention argument in doc-string.
+       (mouse-resize-frame, mouse-drag-frame, mouse-drag-left-edge)
+       (mouse-drag-top-left-corner, mouse-drag-top-edge)
+       (mouse-drag-top-right-corner, mouse-drag-right-edge)
+       (mouse-drag-bottom-right-corner, mouse-drag-bottom-edge)
+       (mouse-drag-bottom-left-corner): New functions for resizing a
+       frame by dragging its internal border together with
+       corresponding key bindings.
+       * lisp/tooltip.el (tooltip-frame-parameters): Add
+       'no-special-glyphs' to default parameters and update version
+       tag.
+       * lisp/window.el (frame-auto-hide-function): Add choice to make
+       frame invisible and update version tag.
+       (window--delete): Handle 'auto-hide-function' frame parameter.
+       (window--maybe-raise-frame): Respect 'no-focus-on-map' and
+       'no-accept-focus' frame parameters.
+       (display-buffer--action-function-custom-type): Add
+       `display-buffer-in-child-frame'.
+       (display-buffer): Mention `display-buffer-in-child-frame' in
+       doc-string.
+       (display-buffer-in-child-frame): New action function for
+       `display-buffer'.
+       (window--sanitize-margin): Return zero when MARGIN cannot be
+       sanitized.
+       (fit-frame-to-buffer): Major rewrite to handle child frames and
+       'fit-frame-to-buffer-sizes' and 'fit-frame-to-buffer-margins'
+       frame parameters.
+       (window-largest-empty-rectangle--maximums-1)
+       (window-largest-empty-rectangle--maximums)
+       (window-largest-empty-rectangle--disjoint-maximums)
+       (window-largest-empty-rectangle): New functions.
+
+       * src/dispextern.h (WINDOW_WANTS_MODELINE_P)
+       (WINDOW_WANTS_HEADER_LINE_P): Remove.  Functionality is now
+       provided by corresponding functions window_wants_modeline and
+       window_wants_header_line in window.c.  Adjust users.
+       * src/dispnew.c (adjust_glyph_matrix)
+       (buffer_posn_from_coords): Use window_wants_modeline and
+       window_wants_header_line instead of WINDOW_WANTS_MODELINE_P and
+       WINDOW_WANTS_HEADER_LINE_P.
+       * src/frame.c (keep_ratio): New function.
+       (adjust_frame_size): Call keep_ratio for each of F's child
+       frames.
+       (make_frame): Initialize no_special_glyphs slot.
+       (frame_internal_border_part): New function.
+       (Fframe_pixel_width, Fframe_pixel_height, Fborder_width): Rename
+       to Fframe_native_width, Fframe_native_height mand
+       Fframe_internal_border_width.
+       (frame_parm_table): Add Qno_special_glyphs entry.
+       (frame_float_type): New enumeration type.
+       (frame_float): New function to handle frame size and position
+       ratios.
+       (x_set_frame_parameters): Handle size and position ratios.
+       (x_set_no_special_glyphs): New function
+       (x_figure_window_size): Handle size and position ratios.
+       (syms_of_frame): Add Qdisplay_monitor_attributes_list,
+       Qno_special_glyphs, Qframe_edges, Qkeep_ratio, Qwidth_only,
+       Qheight_only, Qleft_only and Qtop_only.
+       * src/frame.h (internal_border_part): New enumeration type.
+       (struct frame): New slot no_special_glyphs.
+       (FRAME_NO_SPECIAL_GLYPHS): New macro.
+       * src/gtkutil.c (xg_frame_restack): Return immediately for
+       GTK versions before 2.18.0.
+       * src/keyboard.c (internal_border_parts): New array constant.
+       (make_lispy_position): For frames with border dragging enabled
+       return internal border part.
+       (syms_of_keyboard): New symbols Qdrag_internal_border,
+       Qleft_edge, Qtop_left_corner, Qtop_edge, Qtop_right_corner,
+       Qright_edge, Qbottom_right_corner, Qbottom_edge and
+       Qbottom_left_corner.
+       * src/minibuf.c (read_minibuf_unwind): When exiting the
+       minibuffer deal with frames that have the 'minibuffer-exit'
+       parameter set.
+       (syms_of_minibuf): New symbol Qminibuffer_exit.
+       * src/nsfns.m (frame_parm_handler): Add entry for
+       x_set_no_special_glyphs.
+       (Fx_create_frame): Handle 'no-special-glyphs' parameter.
+       Intitialize new cursor types for dragging frame borders.
+       * src/nsterm.h (struct ns_output): Add new cursor types for
+       dragging frame borders.
+       * src/w32fns.c (w32_frame_parm_handlers): Add entry for
+       x_set_no_special_glyphs.
+       (Fx_create_frame): Handle 'no-special-glyphs' parameter.
+       Intitialize new cursor types for dragging frame borders.
+       * src/w32term.h (struct w32_output): Add new cursor types for
+       dragging frame borders.
+       * src/window.c (coordinates_in_window)
+       (Fwindow_line_height, window_internal_height): Use
+       window_wants_modeline and window_wants_header_line instead of
+       WINDOW_WANTS_MODELINE_P and WINDOW_WANTS_HEADER_LINE_P.
+       (Fwindow_lines_pixel_dimensions): New function.
+       (window_parameter): New function.
+       (Fwindow_parameter): Call window_parameter.
+       (window_wants_mode_line, window_wants_header_line): New
+       functions replacing the macros WINDOW_WANTS_MODELINE_P and
+       WINDOW_WANTS_HEADER_LINE_P from dispextern.h.
+       (syms_of_window): New symbols Qmode_line_format and
+       Qheader_line_format.
+       * src/window.h: Reorganize and re-comment macros.  Use
+       window_wants_modeline and window_wants_header_line instead of
+       WINDOW_WANTS_MODELINE_P and WINDOW_WANTS_HEADER_LINE_P.
+       (MINI_NON_ONLY_WINDOW_P, MINI_ONLY_WINDOW_P): Minor rewrite.
+       (WINDOW_BUFFER): New macro.
+       (WINDOW_BOX_LEFT_EDGE_COL, WINDOW_BOX_RIGHT_EDGE_COL): Remove.
+       * src/xdisp.c (window_text_bottom_y, window_box_height)
+       (window_box, start_display)
+       (compute_window_start_on_continuation_line)
+       (try_cursor_movement, redisplay_window)
+       (try_window_reusing_current_matrix, try_window_id)
+       (display_line, expose_window): Use window_wants_modeline and
+       window_wants_header_line instead of WINDOW_WANTS_MODELINE_P and
+       WINDOW_WANTS_HEADER_LINE_P.
+       (pos_visible_p, display_mode_lines): Respect W's
+       'mode-line-format' and 'header-line-format' window parameters.
+       (init_iterator): Use window_wants_modeline and
+       window_wants_header_line instead of WINDOW_WANTS_MODELINE_P and
+       WINDOW_WANTS_HEADER_LINE_P.  For tip frames respect
+       no_special_glyphs value.
+       (note_mouse_highlight): Set frame border cursors when on
+       internal border.
+       (x_draw_right_divider, x_draw_bottom_divider): Try to improve
+       drawing of window dividers.
+       * src/xfns.c (mouse_cursor): Add entries for border parts.
+       (mouse_cursor_types): Add entries for cursor types to drag
+       frame borders.
+       (INSTALL_CURSOR): Add entries for new cursor types to drag
+       frame borders.
+       (Fx_create_frame): Handle 'no-special-glyphs' parameter.
+       (x_frame_parm_handlers): Add entry for
+       x_set_no_special_glyphs.
+       (Vx_window_left_edge_shape, Vx_window_top_left_corner_shape)
+       (Vx_window_top_edge_shape, Vx_window_top_right_corner_shape)
+       (Vx_window_right_edge_shape)
+       (Vx_window_bottom_right_corner_shape)
+       (Vx_window_bottom_edge_shape)
+       (Vx_window_bottom_left_corner_shape): New variables.
+       (x_frame_restack): Call xg_frame_restack only for GTK versions
+       starting with 2.18.0.
+       * src/xterm.c (x_free_frame_resources): Remove new cursors for
+       dragging frame borders.
+       * src/xterm.h (struct x_output): Add new cursor types for
+       dragging frame borders.
+
+       * doc/lispref/display.texi (Size of Displayed Text): Document
+       `window-lines-pixel-dimensions'.
+       * doc/lispref/elisp.texi (Top): Add entry for "Mouse Dragging
+       Parameters".
+       * doc/lispref/frames.texi (Frame Size): Replace
+       frame-pixel-width/-height by frame-native-width/-height.  Add
+       frame-inner-width/-height and frame-outer-width/-height docs.
+       (Position Parameters): Describe specifying position as ratios.
+       Clarify remark about positions relative to bottom/ridge display
+       edge.
+       (Size Parameters): Describe specifying sizes as ratios.
+       Describe 'fit-frame-to-buffer-margins' and
+       'fit-frame-to-buffer-sizes' parameters.
+       (Layout Parameters): Describe 'no-special-glyphs' parameter.
+       (Frame Interaction Parameters): Describe 'auto-hide-function',
+       'minibuffer-exit' and 'keep-ratio' parameters.
+       (Mouse Dragging Parameters): New section describing
+       'drag-internal-border', 'drag-with-header-line',
+       'drag-with-mode-line', 'snap-width', 'top-visible' and
+       'bottom-visible' parameters.
+       (Management Parameters): Mention that `override-redirect' has
+       no effect on MS Windows.
+       (Font and Color Parameters): Mention child frames for `alpha'
+       parameter.
+       (Child Frames): Rewrite section with description and cross
+       references to new frame parameters added.
+       * doc/lispref/modes.texi (Mode Line Basics): Mention
+       'mode-line-format' and 'header-line-format' window parameters.
+       * doc/lispref/windows.texi (Resizing Windows): Mention effect
+       of `fit-frame-to-buffer-margins' for child frames.
+       (Display Action Functions): New action function
+       `display-buffer-in-child-frame'.
+       (Quitting Windows): Mention `make-frame-invisible' as optional
+       value of `frame-auto-hide-function' and `auto-hide-function'
+       frame paameter.
+       (Coordinates and Windows): Describe new function
+       `window-largest-empty-rectangle'.
+       (Window Parameters): Describe new parameters 'mode-line-format'
+       and 'header-line-format'.  Index all window parameters described
+       in this section.
+
+2017-06-25  Paul Eggert  <address@hidden>
+
+       Adjust lm-verify to accept current notices
+
+       Problem reported by Mike Kupfer in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-06/msg00512.html
+       * lisp/emacs-lisp/lisp-mnt.el (lm-crack-copyright):
+       Do not require later lines in a copyright notice to have more
+       indentation than earlier lines.
+
+2017-06-24  Eli Zaretskii  <address@hidden>
+
+       Minor change in NEWS.
+
+       Improve documentation in NEWS.
+
+2017-06-24  Eli Zaretskii  <address@hidden>
+
+       Move additional hscrolling code into a suitable 'if'
+
+       * src/xdisp.c (hscroll_window_tree): Make additional calculations
+       regarding glyphs produced for line numbers conditional on
+       line-number display.
+
+2017-06-24  Eli Zaretskii  <address@hidden>
+
+       Partial fix of hscroll of truncated lines with line numbers
+
+       * src/xdisp.c (x_produce_glyphs, hscroll_window_tree): Adjust
+       hscroll calculations to line-number display.
+       * src/term.c (produce_glyphs): Adjust tab stop to window's
+       hscroll.  These two changes fix horizontal scrolling when line
+       numbers are displayed.  But there's still a bug: the horizontal
+       shift of lines that begin with a TAB is different from the rest.
+       * src/xdisp.c (move_it_in_display_line_to): Call
+       should_produce_line_number to determine whether a line number
+       should be produced for this screen line.
+
+2017-06-24  Noam Postavsky  <address@hidden>
+
+       Don't change byte-compile-delete-errors at runtime (Bug#27340)
+
+       * lisp/emacs-lisp/eieio-core.el: Confine `cl-declaim' calls to compile
+       time.
+
+2017-06-24  Eli Zaretskii  <address@hidden>
+
+       Allow Lisp program to disable line-number display for specific lines
+
+       * etc/NEWS: Update the documentation.
+
+       * src/xdisp.c (syms_of_xdisp) <display-line-numbers-disable>: New
+       symbol.
+       (should_produce_line_number): New function.
+       (display_line): Use should_produce_line_number to determine
+       whether a line number should be produced for each glyph row.
+
+2017-06-24  Stefan Monnier  <address@hidden>
+
+       * lisp/net/html2text.el: Move to obsolete/.
+
+2017-06-24  Eli Zaretskii  <address@hidden>
+
+       Support a separate face for displaying the current line's number
+
+       * lisp/faces.el (line-number-current-line): New face.
+
+       * src/xdisp.c (syms_of_xdisp) <line-number-current-line>: New
+       symbol.
+       (try_window_id, try_cursor_movement): Disable these optimizations
+       when the line-number-current-line face is different from
+       line-number face.
+       (maybe_produce_line_number): Display the current line in the
+       line-number-current-line face, if it's different from line-number.
+
+2017-06-24  Eli Zaretskii  <address@hidden>
+
+       Change display of current line in relative mode
+
+       * src/xdisp.c (maybe_produce_line_number): In relative mode
+       display the current line number as its absolute value, not as zero.
+
+2017-06-24  Eli Zaretskii  <address@hidden>
+
+       Rename display-line-width
+
+       * etc/NEWS:
+       * src/xdisp.c (syms_of_xdisp, maybe_produce_line_number):
+       * lisp/cus-start.el: Rename display-line-width to
+       display-line-number-width.
+
+2017-06-24  Eli Zaretskii  <address@hidden>
+
+       Fix tab stops when line numbers are displayed
+
+       * src/xdisp.c (x_produce_glyphs):
+       * src/term.c (produce_glyphs): Adjust tab stops for the horizontal
+       space taken by the line-number display.
+
+2017-06-24  Eli Zaretskii  <address@hidden>
+
+       Fix crashes on TTY frames due to negative lnum_width.
+
+       Don't display line numbers in the minibuffer and in tooltip frames.
+
+2017-06-24  Eli Zaretskii  <address@hidden>
+
+       Fix problems with line-number updates in Follow mode
+
+       * src/xdisp.c (redisplay_window): If forced window-start requires
+       to move a window's point, and the window is under relative
+       line-number display, force another round of redisplay to update
+       the relative line numbers.  This fixes follow-mode "redisplay" of
+       its window group.
+
+       * lisp/frame.el: Add display-line-numbers to the list of variables
+       that should trigger redisplay of the current buffer.
+
+2017-06-24  Eli Zaretskii  <address@hidden>
+
+       Fix display of line numbers with fonts larger than the default
+
+       * src/xdisp.c (maybe_produce_line_number): Update the metrics in
+       IT, not in IT->glyph_row, since the latter gets overwritten in
+       display_line.  Fixes display of line numbers when the font used
+       for them is larger than that of the default face.
+
+2017-06-23  Eli Zaretskii  <address@hidden>
+
+       Fix background color beyond EOB and cursor display
+
+       * src/xdisp.c:  (maybe_produce_line_number): Use the default face
+       for background of the blank glyphs in the line-number area which
+       are drawn beyond EOB.
+       (display_line): Reset the glyph row's displays_text_p flag only on
+       empty lines that don't display line numbers.  This fixes cursor
+       display beyond EOB.  Fix the bidi information in the glyphs
+       produced for line numbers.  Set the avoid_cursor_p flag of glyphs
+       produced for line numbers.
+
+2017-06-23  Eli Zaretskii  <address@hidden>
+
+       Fix display of indicate-empty-lines when line numbers are displayed
+
+       * src/xdisp.c (row_text_area_empty): New function.
+       (display_line): Call row_text_area_empty to verify that a glyph
+       row's text area is devoid of any glyphs that came from a buffer or
+       a string.  This fixes a bug with empty-lines indication
+       disappearing when line numbers or line-prefix are displayed.
+       (display_line): Delete the argument FORCE; all callers changed.
+       Remove the condition for actually producing the glyphs for the
+       line number, as even if the number didn't change we need to
+       produce empty space.
+
+2017-06-23  Vincent Belaïche  <address@hidden>
+
+       Fix symbol relocation when the relocated cell is renamed.
+
+       * lisp/ses.el (ses-sym-rowcol):  Check that the renamed cell
+       hashmap has been instantiated before getting data from it.  When
+       editing several spreadsheets, and you have spreadsheet #1 with a
+       cell named `foo', and no renamed cell in spreadsheet #2, then if
+       you make a formula with `foo' in spreadsheet #2, not doing this
+       check will make an error.
+       (ses-cell-set-formula): Robustify versus incorrect cell references
+       given in the user provided formula.  An explicit error message is
+       provided after the action when the user gives an incorrect cell
+       reference, but the formula edition is not changed.  This means that
+       if the incorrect reference is to a cell that is created someday,
+       then this new cell will not have the edited cell in its reference
+       list.  Fixing this can still be done by editing again the first
+       cell formula.
+       (ses-relocate-symbol): Do not create symbol of referred-to cell
+       when this is a renamed cell.
+
+2017-06-23  Rasmus  <address@hidden>
+
+       Synchronize with the "emacs-sync" branch from Org
+
+2017-06-22  Paul Eggert  <address@hidden>
+
+       Remove getc_unlocked configure-time check
+
+       * configure.ac (getc_unlocked): Remove check, as unlocked-io now
+       does this for us.
+
+2017-06-22  Paul Eggert  <address@hidden>
+
+       Use unlocked stdio more systematically
+
+       This can improve performance significantly on stdio-bottlenecked code.
+       E.g., make-docfile is 3x faster on my Fedora 25 x86-64 desktop.
+       * admin/merge-gnulib (GNULIB_MODULES): Add unlocked-io.
+       * lib-src/ebrowse.c, lib-src/emacsclient.c, lib-src/etags.c:
+       * lib-src/hexl.c, lib-src/make-docfile.c, lib-src/movemail.c:
+       * lib-src/profile.c, lib-src/update-game-score.c:
+       Include unlocked-io.h instead of stdio.h, since these programs are
+       single-threaded.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * lib/unlocked-io.h, m4/unlocked-io.m4: New files, copied from Gnulib.
+       * src/charset.c, src/cm.c, src/emacs.c, src/image.c, src/keyboard.c:
+       * src/lread.c, src/term.c:
+       Include sysstdio.h, possibly instead of stdio.h, to define
+       the unlocked functions if the system does not provide them.
+       * src/charset.c, src/lread.c (getc_unlocked):
+       Remove, since sysstdio.h now defines it if needed.
+       * src/cm.c (cmputc, cmcheckmagic):
+       * src/dispnew.c (update_frame, update_frame_with_menu)
+       (update_frame_1, Fsend_string_to_terminal, Fding, bitch_at_user):
+       * src/emacs.c (main, Fdump_emacs):
+       * src/fileio.c (Fdo_auto_save, Fset_binary_mode):
+       * src/image.c (slurp_file, png_read_from_file, png_load_body)
+       (our_stdio_fill_input_buffer):
+       * src/keyboard.c (record_char, kbd_buffer_get_event, handle_interrupt):
+       * src/lread.c (readbyte_from_file):
+       * src/minibuf.c (read_minibuf_noninteractive):
+       * src/print.c (printchar_to_stream, strout)
+       (Fredirect_debugging_output):
+       * src/sysdep.c (reset_sys_modes, procfs_ttyname)
+       (procfs_get_total_memory):
+       * src/term.c (tty_ring_bell, tty_send_additional_strings)
+       (tty_set_terminal_modes, tty_reset_terminal_modes)
+       (tty_update_end, tty_clear_end_of_line, tty_write_glyphs)
+       (tty_write_glyphs_with_face, tty_insert_glyphs)
+       (tty_menu_activate):
+       * src/xfaces.c (Fx_load_color_file):
+       Use unlocked stdio when it should be safe.
+       * src/sysstdio.h (clearerr_unlocked, feof_unlocked, ferror_unlocked)
+       (fflush_unlocked, fgets_unlocked, fputc_unlocked, fputs_unlocked)
+       (fread_unlocked, fwrite_unlocked, getc_unlocked, getchar_unlocked)
+       (putc_unlocked, putchar_unloced): Provide substitutes if not declared.
+
+2017-06-22  Glenn Morris  <address@hidden>
+
+       * lisp/net/shr.el (shr-fill-text): Actually fill the text.  (Bug#27399)
+
+2017-06-22  Michal Nazarewicz  <address@hidden>
+
+       unidata: don’t check special casing in unidata-check  (bug#26656)
+
+       * admin/unidata/unidata-gen.el (unidata-check): Do not test special
+       casing mapping of characters since that mapping is not constructed from
+       the unidata.txt file.
+       Also, check for integer decoder and cons char earlier so that less
+       unnecessary processing is performed.
+
+2017-06-22  Stefan Monnier  <address@hidden>
+
+       * lisp/descr-text.el (describe-char): Avoid string-*-multibyte
+
+       Avoid string-to-multibyte and string-as-unibyte.
+       Don't make *Help* unibyte just because the char was in a unibyte buffer.
+
+2017-06-22  Rasmus  <address@hidden>
+
+       Add Org schemas.xml contents to Emacs schemas.xml
+
+       Entries from the Org version of schemas.xml have been added to
+       the Emacs version of schemas.xml.
+
+2017-06-22  Rasmus  <address@hidden>
+
+       Update Org to v9.0.9
+
+       Please see etc/ORG-NEWS for details.
+
+2017-06-22  Vincent Belaïche  <address@hidden>
+
+       Do not hard code A1 cell reference, as it may be renamed.
+
+       * lisp/ses.el (ses-recalculate-all): `A1' -> `(ses-cell-symbol 0 0)'
+
+2017-06-22  Martin Rudalics  <address@hidden>
+
+       Fix make_hash_table calls in lread.c
+
+       * src/lread.c (readevalloop, read_internal_start): Fix
+       make_hash_table calls to make build succeed.
+
+2017-06-22  Ken Raeburn  <address@hidden>
+
+       Merge several Lisp reader speedups.
+
+2017-06-22  Ken Raeburn  <address@hidden>
+
+       Create less garbage to collect while reading symbols.
+
+       * src/lread.c (read1): When interning a symbol, only create a new
+       string object for the name if we're going to use it for a new symbol
+       object.
+
+2017-06-22  Ken Raeburn  <address@hidden>
+
+       Replace read_objects assoc list with two hash tables.
+
+       For larger input files with lots of shared data structures, an
+       association list is too slow.
+
+       * src/lread.c (read_objects_map, read_objects_completed): New
+       variables, replacing read_objects.
+       (readevalloop): Initialize them with hash tables before starting a
+       top-level read, if they're not already empty hash tables, and reset
+       them to Qnil afterwards if something was added to the hash tables.
+       (read_internal_start): Likewise.
+       (read1): Store first the placeholder and later the newly read object
+       into read_objects_map under the specified object number.  If the new
+       object can contain a reference to itself, store it in
+       read_objects_completed.
+       (substitute_objects_recurse): Check read_objects_completed instead of
+       read_objects for the known possibly-recursive objects.
+       (syms_of_lread): Update initializations.
+
+2017-06-22  Ken Raeburn  <address@hidden>
+
+       Use getc_unlocked.
+
+       * configure.ac: Check for getc_unlocked.
+       * src/charset.c (read_hex, load_charset_map_from_file): Use
+       getc_unlocked instead of getc.
+       (getc_unlocked) [!HAVE_GETC_UNLOCKED]: Fall back to getc.
+       * src/lread.c (readbyte_from_file, Fget_file_char, read1,
+       getc_unlocked): Likewise.
+
+2017-06-22  Stefan Monnier  <address@hidden>
+
+       Reduce lread substitutions.
+
+       * src/lread.c (read1): After reading an object using the "#n=" syntax,
+       if the read object is a cons cell, instead of recursively substituting
+       the placeholder with the new object, mutate the placeholder cons cell
+       itself to have the correct car and cdr values.
+
+2017-06-22  Ken Raeburn  <address@hidden>
+
+       Short-circuit substitutions for some simple types.
+
+       Values that don't contain other values cannot be circular, so checking
+       for circular objects is a waste of cycles.
+
+       * src/lread.c (substitute_object_recurse): If the subtree being
+       examined is a symbol, number, or property-less string, just return
+       it.
+
+2017-06-22  Paul Eggert  <address@hidden>
+
+       Limit style_format to MAX_ALLOCA
+
+       * src/editfns.c (styled_format): Subtract initial buffer size
+       from sa_avail, since it is nontrivial.
+
+2017-06-22  Paul Eggert  <address@hidden>
+
+       Limit bidi_find_bracket_pairs to MAX_ALLOCA
+
+       * src/bidi.c (MAX_BPA_STACK): Now a constant, not a macro.
+       Shrink it to allow for the two struct bidi_it objects in
+       the same frame.
+       (PUSH_BPA_STACK): Avoid integer overflow with enormous bidi cache.
+       (bidi_find_bracket_pairs): Use compile-time check instead of runtime.
+
+2017-06-22  Paul Eggert  <address@hidden>
+
+       Limit insert-file-contents to MAX_ALLOCA
+
+       * src/fileio.c (READ_BUF_SIZE): Don’t allocate more than
+       MAX_ALLOCA bytes in a single stack array.
+
+2017-06-21  Paul Eggert  <address@hidden>
+
+       Remove malloc_find_address relic
+
+       * src/gmalloc.c (register_heapinfo, _malloc_internal_nolock):
+       Omit unnecessary initialization.
+
+2017-06-21  Paul Eggert  <address@hidden>
+
+       Fix temacs hybrid_malloc core dump
+
+       Without this patch, ./temacs would dump core sometimes on Fedora
+       25 x86-64.  The problem was that the hybrid allocator assumed that
+       all pointers into bss_sbrk_buffer are allocated via gmalloc.  This
+       assumption is not true on Fedora, because the standard memory
+       allocator calls gdefault_morecore, which means its blocks are
+       interleaved with our blocks.  Usually the code happened to work,
+       because our data structures agreed with the glibc data structures,
+       but this was merely luck due to a shared pedigree, and as glibc
+       mutates our luck has run out.
+       * src/gmalloc.c (ALLOCATED_BEFORE_DUMPING) [HYBRID_MALLOC]:
+       Remove; no longer needed.
+       (BLOCK): Use unsigned division, as that does the right thing near zero.
+       (register_heapinfo, __malloc_internal_nolock, __free_internal_nolock)
+       (_realloc_internal_nolock):
+       Big blocks now have type -1, not 0, as 0 now means the block is
+       not ours.
+       (morecore_nolock): Omit now-unnecessary casts to size_t.
+       (allocated_via_gmalloc) [HYBRID_MALLOC]: New function.
+       (hybrid_free, hybrid_realloc) [HYBRID_MALLOC]: Use it, to
+       avoid calling the wrong free or realloc function in some cases.
+
+2017-06-21  Katsumi Yamaoka  <address@hidden>
+
+       Make gnus-article-date-user work
+
+       * lisp/gnus/gnus-art.el (article-date-ut):
+       Work for unfolded multi-line Date header.
+       (article-transform-date):
+       Refactor; add header name if it is missing in user-defined date line.
+       (article-date-user): Fix name of date type.
+
+2017-06-21  Noam Postavsky  <address@hidden>
+
+       Keep order of completion candidates (Bug#25995, Bug#24676)
+
+       * lisp/minibuffer.el (completion-pcm--filename-try-filter)
+       (completion-pcm--all-completions): Use nreverse to undo the reversing
+       caused by using push in the loop.
+
+2017-06-21  Glenn Morris  <address@hidden>
+
+       * src/lread.c (syms_of_lread) <load-history>: Doc fix.
+
+2017-06-21  Alex Gramiak  <address@hidden>
+
+       Mark prolog indent variables as safe (bug#27369)
+
+       * lisp/progmodes/prolog.el (prolog-indent-width)
+       (prolog-left-indent-regexp, prolog-paren-indent-p)
+       (prolog-paren-indent): Add :safe property.
+
+2017-06-20  Simen Heggestøyl  <address@hidden>
+
+       Remove `:options' from `css-electric-keys'
+
+       * lisp/textmodes/css-mode.el (css-electric-keys): Remove `:options`
+       since it just duplicates the default value.
+
+2017-06-20  Paul Eggert  <address@hidden>
+
+       Fix crash when built by GNU Gold linker on x86
+
+       Problem reported by Andrés Musetti (Bug#27248).
+       * src/widget.c (emacsFrameClassRec): Do not initialize superclass here.
+       (emacsFrameClass): Now a function (which initializes the
+       superclass) instead of a variable.  All uses changed.
+
+2017-06-20  Paul Eggert  <address@hidden>
+
+       Simplify autogen.sh version checking
+
+       * autogen.sh (get_version): Simplify and make more reliable
+       by using expr rather than echo | sed.  Check exit status of program.
+       Run program in subshell in case it cannot be executed.
+       (check_version): Check exit status of command rather than its output.
+       Check return status of get_version.
+
+2017-06-20  Katsumi Yamaoka  <address@hidden>
+
+       Delete old Date header in a simple way
+
+       * lisp/gnus/gnus-art.el (article-date-ut): Don't rely on text prop
+       when searching the old Date header boundary in order to delete it.
+
+2017-06-20  Bastien  <address@hidden>
+
+       Revert "Don't bind org-agenda key to an anonymous function"
+
+       This reverts commit 49c0ff29c2e0243ba35ec17e3e3af49369be43db.
+
+2017-06-20  Katsumi Yamaoka  <address@hidden>
+
+       Bind enable-local-variables to nil globally (fix dbe3e41)
+
+       * lisp/gnus/mm-view.el (mm-display-inline-fontify):
+       Bind enable-local-variables to nil globally instead of making it
+       buffer-local; remove let-bind of local-enable-local-variables.
+       cf. <address@hidden> in the emacs-devel list.
+
+2017-06-20  Glenn Morris  <address@hidden>
+
+       kill-matching-buffers to optionally not confirm
+
+       * lisp/files.el (kill-matching-buffers):
+       Add option to not confirm killing.  (Bug#27286)
+
+2017-06-20  Glenn Morris  <address@hidden>
+
+       * lisp/files.el (local-enable-local-variables): Doc fix.
+
+2017-06-20  Glenn Morris  <address@hidden>
+
+       autogen.sh: try to check for tool being present but broken
+
+       * autogen.sh (get_version): Check return status of "--version".
+       (check_version): Try to distinguish between a missing tool
+       and a broken one.  (Bug#27288)
+
+2017-06-19  Glenn Morris  <address@hidden>
+
+       Avoid a custom-variable-type error (bug#27363)
+
+       * lisp/cus-edit.el (custom-variable-type):
+       Avoid an error due to plist-put becoming stricter of late.
+
+2017-06-19  Glenn Morris  <address@hidden>
+
+       Don't put deleted packages in the trash (bug#14967)
+
+       * lisp/emacs-lisp/package.el (package-delete):
+       Don't pay attention to delete-by-moving-to-trash.
+
+2017-06-19  Nicolas Petton  <address@hidden>
+
+       Revert "Add current-line in simple.el"
+
+       This reverts commit ae98cdf9431604d0f722f1db217ca06debfbb7b6.
+
+2017-06-19  Damien Cassou  <address@hidden>
+
+       Add current-line in simple.el
+
+       * lisp/simple.el (current-line): New function.
+       * test/list/simple-tests.el: Add tests for current-line.
+
+2017-06-19  Katsumi Yamaoka  <address@hidden>
+
+       Don't try to eval local variables in Gnus article
+
+       * lisp/gnus/mm-view.el (mm-display-inline-fontify): Disable local vars.
+
+2017-06-18  Paul Eggert  <address@hidden>
+
+       Fix emacs-module.h cleaning
+
+       * src/Makefile.in (clean): Do not remove emacs-module.h.in.
+       (bootstrap-clean): Remove emacs-module.h.
+
+2017-06-18  Andreas Schwab  <address@hidden>
+
+       * url/url-util.el (url-get-url-at-point): Add missing group in
+       regex.
+
+2017-06-18  Paul Eggert  <address@hidden>
+
+       * lib/gettext.h: Merge from gnulib.
+
+2017-06-18  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This (and my previous patch) incorporate:
+       2017-06-17 diffseq: port to GCC 7 with --enable-gcc-warnings
+       2017-06-15 gettext-h: Update comment
+       * lib/diffseq.h: Copy from gnulib.
+
+2017-06-17  Noam Postavsky  <address@hidden>
+
+       * test/Makefile.in: Don't suppress test failure for single tests.
+
+2017-06-17  Philipp Stephani  <address@hidden>
+
+       emacs-module.h: Create emacs_env_26
+
+       This was part of the original design of the module
+       API 
(https://lists.gnu.org/archive/html/emacs-devel/2015-02/msg00960.html),
+       but I didn't take it into account when adding the should_quit
+       function.
+
+       Instead of duplicating the environment fields or using the C
+       preprocessor, use configure to build emacs-module.h.
+
+       * configure.ac: Expand emacs-module.h template.
+
+2017-06-17  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of replace-buffer-contents
+
+       * etc/NEWS (replace-buffer-contents): Fix formatting.
+
+       * src/editfns.c (Freplace_buffer_contents): Doc fix.
+
+2017-06-17  Eli Zaretskii  <address@hidden>
+
+       Finish up native display of line numbers
+
+       * src/xdisp.c (maybe_produce_line_number): Produce a blank before
+       the number, for R2L rows.  Increment 'g' in the loop even if
+       glyph_row is NULL.  Accept 2nd argument FORCE and produce the
+       line-number glyphs if it is non-zero.
+       (move_it_in_display_line_to): Account for the space taken by the
+       line-number glyphs.  Call maybe_produce_line_number with 2nd
+       argument non-zero.
+       (set_cursor_from_row): Fix calculation of cursor X coordinate in
+       R2L rows with display-produced glyphs at the beginning.
+       (syms_of_xdisp) <line-number>: New face symbol.
+       <relative, display-line-width>: New symbols.
+       (maybe_produce_line_number): Use the line-number face for
+       displaying line numbers.  Support relative line-number display.
+       Support user-defined width for displaying line numbers.
+       (try_cursor_movement, try_window_id): Disable these optimizations
+       when displaying relative line numbers.
+       * src/dispextern.h (struct it): New member 'pt_lnum'.
+
+       * lisp/faces.el (line-number): New face.
+       * lisp/cus-start.el (standard): Provide customization forms for
+       display-line-numbers and display-line-width.
+       * lisp/menu-bar.el (menu-bar-showhide-menu): Add menu-bar item to
+       turn display-line-numbers on and off.
+
+       * etc/NEWS: Document the new feature.
+
+2017-06-17  Philipp Stephani  <address@hidden>
+
+       Allow local variables section to begin with a square bracket
+
+       Fixes Bug#27391.
+
+       * lisp/international/mule.el (find-auto-coding): Fix regular
+       expression for "Local Variables" section.
+
+       * test/lisp/international/mule-tests.el (find-auto-coding--bug27391):
+       Add unit test.
+
+2017-06-17  Philipp Stephani  <address@hidden>
+
+       Remove unnecessary point motion
+
+       * src/editfns.c (Freplace_buffer_contents): Remove unnecessary point
+       motion.
+
+2017-06-17  Philipp Stephani  <address@hidden>
+
+       Add command to replace buffer contents
+
+       Add a new command 'replace-buffer-contents' that uses the Myers diff
+       algorithm to non-destructively replace the accessible portion of the
+       current buffer.  The Myers algorithm is implemented in Gnulib.
+
+       * src/editfns.c (Freplace_buffer_contents): New command.
+       (set_bit, bit_is_set, buffer_chars_equal): New helper functions.
+       (syms_of_editfns): Define new command.
+
+       * test/src/editfns-tests.el (replace-buffer-contents-1)
+       (replace-buffer-contents-2): New unit tests.
+
+       * src/buffer.h (BUF_FETCH_CHAR_AS_MULTIBYTE): New helper macro.
+
+       * admin/merge-gnulib (GNULIB_MODULES): Add diffseq.h and minmax.h.
+
+2017-06-17  Andreas Schwab  <address@hidden>
+
+       * international/characters.el: Update list of zero and full width
+       characters according to Unicode 9.0.0.
+
+2017-06-17  Simen Heggestøyl  <address@hidden>
+
+       Complete CSS property values less eagerly (Bug#27392)
+
+       * lisp/textmodes/css-mode.el (css--complete-property-value): Be less
+       eager by looking for a colon after the property which values are being
+       completed for.
+
+       * test/lisp/textmodes/css-mode-tests.el (css-test-complete-property):
+       Add a test case ensuring that properties that are prefixes of other
+       properties don't hinder further completion.
+
+2017-06-17  Noam Postavsky  <address@hidden>
+
+       Handle integer indices for eshell variables (Bug#26055)
+
+       * lisp/eshell/esh-var.el (eshell-index-value): Convert index to number
+       if it's been marked as one, just like `eshell-lisp-command' does.
+
+2017-06-17  Mark Oteiza  <address@hidden>
+
+       Don't bind org-agenda key to an anonymous function
+
+       * lisp/org/org-agenda.el: Bind "g" to named command.
+       (org-agenda-redo-all): New command.  Extend the previous functionality
+       through a prefix argument.
+
+2017-06-17  Dmitry Gutov  <address@hidden>
+
+       Add test for the fix in the parent commit
+
+       * test/src/undo-tests.el (undo-test-skip-invalidated-markers):
+       New test, for the fix in the parent commit.
+
+2017-06-17  Nitish Chandra  <address@hidden>  (tiny change)
+
+       primitive-undo: Update only the currently valid markers
+
+       * lisp/simple.el (primitive-undo):
+       Update only the currently valid markers (bug#25599).
+
+2017-06-16  Eli Zaretskii  <address@hidden>
+
+       Initial version of native display of line numbers
+
+       * src/xdisp.c (syms_of_xdisp) <display-line-numbers>: New
+       buffer-local variable.
+       Include <math.h>.
+       (maybe_produce_line_number): New function.
+       (DISP_INFINITY): Rename from INFINITY, since math.h defines INFINITY.
+       (try_window_reusing_current_matrix): Don't use this method when
+       display-line-numbers is in effect.
+       * src/dispextern.h (struct it): New members 'lnum'.
+
+2017-06-16  Philipp Stephani  <address@hidden>
+
+       Correctly detect URLs surrounded by parentheses in comments
+
+       * lisp/thingatpt.el (thing-at-point--bounds-of-well-formed-url):
+       Make parentheses match work inside comments.
+
+       * test/lisp/thingatpt-tests.el (thing-at-point-url-in-comment): Add
+       unit test.
+
+2017-06-16  Michael Albinus  <address@hidden>
+
+       Fix load-path issue when it contains remote directories
+
+       * lisp/net/tramp.el (tramp-file-name-handler): Use `autoloadp'.
+       (tramp-use-absolute-autoload-file-names): New defun.  Call it
+       after loading tramp.el.
+
+       * test/lisp/net/tramp-tests.el (tramp-test38-remote-load-path):
+       New test.
+       (tramp-test39-unload): Rename.
+
+2017-06-16  Alan Mackenzie  <address@hidden>
+
+       Ensure C++ initializer lists don't get fontified.
+
+       * lisp/progmodes/cc-cmds.el (c-block-comment-flag): Move declaration to 
solve
+       compiler warning.
+
+       * lisp/progmodes/cc-fonts.el (c-get-fontification-context): Add an extra
+       clause to handle C++ member initialization lists.
+       (c-font-lock-single-decl): New function, extracted from
+       c-font-lock-declarations.
+       (c-font-lock-declarations): Call c-font-lock-single-decl in place of 
inline
+       code.
+       (c-font-lock-cut-off-declarators): Make more rigorous by calling
+       c-get-fontification-context, c-forward-decl-or-cast-1, and
+       c-font-lock-single-decl in place of rather approximate code.
+
+2017-06-16  Alan Mackenzie  <address@hidden>
+
+       Fix hang in CC Mode when ":" is typed after identifier at EOB.
+
+       * list/progmodes/cc-engine.el (c-forward-declarator): Fix coding error
+       confusing ":" and EOB.
+
+2017-06-15  Alan Mackenzie  <address@hidden>
+
+       Create a toggle between block and line comments in CC Mode.
+
+       Also (unrelated change) initialize the modes' keymaps at each loading.
+
+       * lisp/progmodes/cc-cmds.el (c-update-modeline): amend for the new 
information
+       on the modeline.
+       (c-block-comment-flag): New variable.
+       (c-toggle-comment-style): New function.
+
+       * lisp/progmodes/cc-langs.el (c-block-comment-starter)
+       (c-line-comment-starter): Make them c-lang-defvars.
+       (c-block-comment-is-default): New c-lang-defvar.
+       (comment-start, comment-end): Make the default values dependent on
+       c-block-comment-is-default.
+
+       * lisp/progmodes/cc-mode.el (c-mode-base-map): Define C-c C-k in this 
map.
+       (c-basic-common-init): Initialize c-block-comment-flag.
+       (c-mode-map, c++-mode-map, objc-mode-map, java-mode-map, idl-mode-map)
+       (pike-mode-map, awk-mode-map): Make entries in these key maps each time 
the
+       mode is loaded rather than just once per Emacs session.
+
+       * doc/misc/cc-mode.texi (Comment Commands): Introduce the notion of 
comment
+       style.
+       (Minor Modes): Define comment style.  Describe how comment style 
influences
+       the information displayed on the modeline.  Document 
c-toggle-comment-style.
+       (FAQ): Add a question about toggling the comment style.
+
+2017-06-15  Paul Eggert  <address@hidden>
+
+       Pacify clang without munging C source
+
+       * configure.ac (WARN_CFLAGS): With Clang, use
+       -Wno-tautological-compare regardless of --enable-gcc-warnings.
+       (WERROR_CFLAGS): Simplify assignments, and guarantee it’s always set.
+       * lib/strftime.c: Copy from gnulib, reverting Clang-specific
+       change which I hope is no longer needed.
+       * src/emacs.c (main): Revert rlim_t change, as rlim_t is signed on
+       some older non-POSIX hosts.
+
+2017-06-15  Paul Eggert  <address@hidden>
+
+       No need to complicate make-docfile.c for Clang
+
+       * lib-src/make-docfile.c (put_filename): Undo recent change.
+       The Clang false alarm occurs only with CFLAGS=-save-temps and
+       we needn’t worry about pacifying unusual compiler configurations.
+
+2017-06-15  Paul Eggert  <address@hidden>
+
+       Port './configure CC=clang' to Fedora 25
+
+       * configure.ac (HAVE_IMAGEMAGICK): Disable if even a
+       standard function like MagickRelinquishMemory does not link.
+
+2017-06-15  Paul Eggert  <address@hidden>
+
+       Don’t worry about __STDC_VERSION__ in emacs-module
+
+       * src/emacs-module.h: Remove __STDC_VERSION__ check.  In the past
+       we’ve found that some compilers do not define this symbol even
+       when they work well enough.  If necessary features like stdbool.h
+       are missing the compiler will complain eventually anyway.
+
+2017-06-14  Paul Eggert  <address@hidden>
+
+       Port cleanup check to Oracle Studio 12.5
+
+       * src/conf_post.h (__has_attribute_cleanup): Resurrect.
+       * src/emacs-module.c: Verify __has_attribute (cleanup), but in an
+       #if this time.
+
+2017-06-14  Bastien  <address@hidden>
+
+       Fix misformatted changelog entry
+
+2017-06-14  Eli Zaretskii  <address@hidden>
+
+       Avoid compiler warning in image.c on MS-Windows
+
+       * src/image.c (x_create_x_image_and_pixmap) [HAVE_NTGUI]: Avoid
+       compilation warning under -Warray-bounds by temporarily disabling
+       the -Warray-bounds option.
+
+2017-06-14  Michael Albinus  <address@hidden>
+
+       Fix Bug#27315
+
+       * lisp/net/tramp-cache.el (tramp-cache-read-persistent-data):
+       New defvar.
+       (top): Use it.
+
+       * lisp/net/tramp.el (tramp-handle-file-name-case-insensitive-p):
+       Check for connected, not for connectable.  (Bug#27315)
+       (tramp-process-actions):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
+       Use `tramp-cache-read-persistent-data'.
+
+       * test/lisp/net/tramp-tests.el (top): Set also
+       `tramp-cache-read-persistent-data'.
+
+2017-06-14  Noam Postavsky  <address@hidden>
+
+       Give a fixed default value for icomplete-prospects-height (Bug#26939)
+
+       * lisp/icomplete.el (icomplete-prospects-height): Default to 2.
+       (icomplete-prospects-length): Remove.
+       * etc/NEWS: Announce removal.
+
+2017-06-14  Philipp Stephani  <address@hidden>
+
+       Remove some tautological comparisons involving rlim_t
+
+       Clang on macOS warns about these with -Wtautological-compare.  POSIX
+       guarantees that rlim_t is
+       unsigned (cf.
+       
http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/resource.h.html),
+       so these resource limits can never be negative.
+
+       * src/emacs.c (main): Remove tautological comparisons.
+
+2017-06-14  Philipp Stephani  <address@hidden>
+
+       Use --module-assertions if modules are available
+
+       Using --module-assertions helps us find bugs in the test module.  But
+       we can use it only if Emacs was compiled with module support.
+
+       * test/Makefile.in (MODULES_EMACSOPT): New variable.
+       (emacs): Use it.
+
+2017-06-14  Philipp Stephani  <address@hidden>
+
+       Define --module-assertions only of modules are available
+
+       Fixes Bug#27352.
+
+       * src/emacs.c (usage_message, standard_args): Define
+       --module-assertions only if Emacs has been compiled with module
+       support.
+
+2017-06-14  Katsumi Yamaoka  <address@hidden>
+
+       gnus-article-read-summary-keys: Don't move point for WDD and WDW 
commands
+
+       * lisp/gnus/gnus-art.el (gnus-article-read-summary-keys):
+       No need to restore window config for WDD and WDW commands.
+
+2017-06-14  Thomas Fitzsimmons  <address@hidden>
+
+       lisp/net/soap-client.el: Bump version to 3.1.3
+
+       * lisp/net/soap-client.el: Bump version to 3.1.3.
+       (soap-name-p): Fix checkdoc issue.
+
+2017-06-14  Alex Harsanyi  <address@hidden>
+
+       Fix an HTTP encoding error in soap-client.el
+
+       * lisp/net/soap-client.el (soap-invoke-internal): Make
+       SOAPAction header a UTF-8 encoded string.
+
+2017-06-14  Paul Eggert  <address@hidden>
+
+       Port cleanup attribute to Oracle Studio 12.5
+
+       * INSTALL (--with-modules): List cleanup attribute as prereq.
+       * src/conf_post.h (__has_attribute_cleanup): Remove; no longer needed.
+       * src/emacs-module.c (MODULE_SETJMP_1): Don’t attempt to verify
+       (__has_attribute (cleanup)), as Oracle Studio 12.5 supports
+       __has_attribute only inside preprocessor expressions.  The C
+       compiler should check the cleanup attribute in the next line anyway.
+       (module_reset_handlerlist): Remove an unnecessary ‘const’
+       that causes Oracle Studio 12.5 to refuse to compile.
+
+2017-06-14  Glenn Morris  <address@hidden>
+
+       Fix running tests in without-modules builds
+
+       * test/Makefile.in (EMACSOPT): Remove option that is only defined
+       with-modules.  emacs-module-tests.el passes it where needed.
+
+2017-06-13  Glenn Morris  <address@hidden>
+
+       * test/Makefile.in (src/emacs-module-tests.log): Out-of-tree fix.
+
+2017-06-13  Philipp Stephani  <address@hidden>
+
+       Inline test module Makefile into main test Makefile
+
+       The test/data/emacs-module/Makefile only built a single target, and
+       inlining it into test/Makefile simplifies dependency tracking and
+       reduces code duplication.
+
+       * configure.ac: Don't build test/data/emacs-module/Makefile.
+
+       * Makefile.in ($(test_module)): Inline compilation.
+       (clean): Also clean test module outputs.
+
+2017-06-13  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-sh.el (tramp-set-file-uid-gid): Do not handle locally 
on w32.
+
+2017-06-13  Michael Albinus  <address@hidden>
+
+       Minor tweaks in Tramp manual
+
+       * doc/misc/trampver.texi: Add prefixwithspace flag.
+
+       * doc/misc/tramp.texi (Password handling): Harmonize example.
+       (File name completion): Use prefixwithspace flag.
+       (Frequently Asked Questions): Explain `tramp-histfile-override'.
+
+2017-06-13  Philipp Stephani  <address@hidden>
+
+       Silence two Clang warnings by introducing additional local variables
+
+       * lib/strftime.c (libc_hidden_def):
+       * lib-src/make-docfile.c (put_filename): Introduce local variables to
+       silence Clang warnings.
+
+2017-06-13  Noam Postavsky  <address@hidden>
+
+       Fix wrong indentation after string literal (Bug#27306)
+
+       * lisp/emacs-lisp/lisp-mode.el (lisp-indent-state)
+       (lisp-indent-calc-next): Remove `depth' field, use (car ppss) instead.
+       * test/lisp/emacs-lisp/lisp-mode-tests.el
+       (lisp-indent-region-after-string-literal): New test.
+
+2017-06-13  Philipp Stephani  <address@hidden>
+
+       Fix version checks for emacs-module.h
+
+       We don't need C11 or C++11 because stdbool.h is in C99, and for C++ we
+       don't need it at all.
+
+2017-06-13  Noam Postavsky  <address@hidden>
+
+       Buttonize #<bytecode> part of printed functions (Bug#25226)
+
+       * lisp/emacs-lisp/cl-print.el: Autoload `disassemble-1'.
+       (cl-print-compiled-button): New variable.
+       (help-byte-code): New button type, calls `disassemble' in its action.
+       (cl-print-object): Use it if `cl-print-compiled-button' is
+       non-nil.
+
+2017-06-12  Philipp Stephani  <address@hidden>
+
+       Print module structure sizes when initializing test module
+
+       * test/data/emacs-module/mod-test.c (emacs_module_init): Print
+       compile-time and runtime sizes of module structures to ease debugging
+
+2017-06-12  Glenn Morris  <address@hidden>
+
+       Small portability fix for emacs-module.h (bug#27346)
+
+       * src/emacs-module.h (EMACS_ATTRIBUTE_NONNULL) [!__has_attribute]:
+       Avoid 'error: missing binary operator before token "("'.
+
+2017-06-12  Glenn Morris  <address@hidden>
+
+       Give a more informative failure in module assertion test
+
+       * test/src/emacs-module-tests.el (module--test-assertions):
+       Rephrase final check to give a more informative failure.
+
+2017-06-12  Philipp Stephani  <address@hidden>
+
+       Fix off-by-one error
+
+       * test/data/emacs-module/mod-test.c (emacs_module_init): Fix
+       off-by-one error.
+
+2017-06-12  Glenn Morris  <address@hidden>
+
+       Clean up after module assertion tests
+
+       * test/src/emacs-module-tests.el (module--test-assertions):
+       Use a temporary directory to contain any core dumps.
+
+2017-06-12  Glenn Morris  <address@hidden>
+
+       Small improvement for module assertion test
+
+       * test/src/emacs-module-tests.el (module--test-assertions):
+       Don't rely on the precise form of an "Abort" message.
+
+2017-06-12  Glenn Morris  <address@hidden>
+
+       Improve previous test/data/emacs-module/Makefile change
+
+       * test/data/emacs-module/Makefile.in (clean):
+       Avoid doing unpleasant things if run in a build without modules.
+
+2017-06-12  Glenn Morris  <address@hidden>
+
+       Small improvements for test/data/emacs-module/Makefile
+
+       * test/data/emacs-module/Makefile.in (%.o):
+       Fix emacs-module dependency.
+       (SECONDARY): Stop make automatically deleting *.o.
+       (clean): New rule.
+
+2017-06-12  Glenn Morris  <address@hidden>
+
+       * make-dist: Skip some more generated files in test/.
+
+2017-06-12  Alan Third  <address@hidden>
+
+       Note how fullscreen differs on the NS port
+
+       doc/lispref/frames.texi (Size Parameters):
+       doc/emacs/frames.texi (Tool Bars): Add a description of how macOS
+       hides the tool-bar and menu-bar in fullscreen.
+
+2017-06-12  Alan Third  <address@hidden>
+
+       Add no-focus-on-map to NS build (bug#25408)
+
+       * src/nsfns.m (ns_frame_parm_handlers): Add x_set_no_focus_on_map.
+       (x-create-frame): Check for no-focus-on-map.
+       * src/nsterm.h (x_set_no_focus_on_map): New function.
+       * src/nsterm.m (x_set_no_focus_on_map): New function.
+       (ns_raise_frame): Add parameter for specifying whether to focus the
+       frame.
+       (ns_frame_raise_lower):
+       (x_make_frame_visible): Handle new parameter for ns_raise_frame.
+
+2017-06-12  Paul Eggert  <address@hidden>
+
+       _Noreturn not noreturn
+
+       _Noreturn is more portable to non-C11 platforms.  See:
+       
https://www.gnu.org/software/gnulib/manual/html_node/stdnoreturn_002eh.html
+       * src/emacs-module.c: Use _Noreturn, not noreturn.  No need to
+       include <stdnoreturn.h>.  Reindent to fit in 80 columns.
+
+2017-06-12  Glenn Morris  <address@hidden>
+
+       Update make-dist for recent test/ changes
+
+       * make-dist: No longer distribute test/data/emacs-module/Makefile.
+
+2017-06-12  Michael Albinus  <address@hidden>
+
+       Handle port and domain in Tramp's password cache
+
+       * doc/misc/tramp.texi (Password handling): Explain port and
+       domain handling in authinfo.
+
+       * lisp/net/tramp.el (tramp-process-actions, tramp-clear-passwd):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handler-askpassword):
+       * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
+       (tramp-maybe-open-connection):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
+       (tramp-smb-handle-file-acl, tramp-smb-handle-set-file-acl)
+       (tramp-smb-maybe-open-connection): Handle also domain and port.
+
+2017-06-12  Eli Zaretskii  <address@hidden>
+
+       Avoid compilation warnings with pre-C99 libc
+
+       * src/emacs-module.c (module_free_global_ref)
+       (module_assert_runtime, module_assert_env, value_to_lisp): Use 'pD'
+       instead of C99 't' format descriptor.
+
+2017-06-12  Philipp Stephani  <address@hidden>
+
+       Flush all output streams before aborting
+
+       Maybe the stdout buffer still contains something interesting that
+       should be flushed.
+
+       * src/emacs-module.c (module_abort): Flush all output streams before
+       aborting.
+
+2017-06-12  Philipp Stephani  <address@hidden>
+
+       Remove an assertion that doesn't test Emacs invariants
+
+       * src/emacs-module.c (module_copy_string_contents): Remove an
+       assertion that doesn't test Emacs invariants.
+
+2017-06-12  Philipp Stephani  <address@hidden>
+
+       Test module: add necessary version checks
+
+       * test/data/emacs-module/mod-test.c (emacs_module_init): Add necessary
+       version checks.
+
+2017-06-12  Philipp Stephani  <address@hidden>
+
+       Use additional CFLAGS from configure
+
+2017-06-12  Philipp Stephani  <address@hidden>
+
+       Use Autoconf to generate the test module Makefile
+
+       This makes it easier to pass compilation flags around.
+
+       * configure.ac: Also build test module Makefile.
+
+       * test/data/emacs-module/Makefile.in: New makefile template.
+
+       * test/Makefile.in ($(test_module)): No longer necessary to pass
+       @MODULES_SUFFIX@ around.
+
+       * .gitignore: Test module Makefile can now be ignored.
+
+2017-06-12  Philipp Stephani  <address@hidden>
+
+       Also compile test module as C11
+
+       * test/data/emacs-module/Makefile (CFLAGS): Compile test module as C11
+
+2017-06-12  Philipp Stephani  <address@hidden>
+
+       Implement module assertions for users
+
+       Add a new command-line option '-module-assertions' that users can
+       enable developing or debugging a module.  If this option is present,
+       Emacs performs additional checks to verify that modules fulfill their
+       requirements.  These checks are expensive and crash Emacs if modules
+       are invalid, so disable them by default.
+
+       This is a command-line option instead of an ordinary variable because
+       changing it while Emacs is running would cause data structure
+       imbalances.
+
+       * src/emacs.c (main): New command line option '-module-assertions'.
+
+       * src/emacs-module.c (module_assert_main_thread)
+       (module_assert_runtime, module_assert_env, module_assert_value):
+       New functions to assert module requirements.
+       (syms_of_module): New uninterned variable 'module-runtimes'.
+       (init_module_assertions, in_main_thread, module_abort): New helper
+       functions.
+       (initialize_environment): Initialize value list.  If assertions are
+       enabled, use a heap-allocated environment object.
+       (finalize_environment): Add assertion that environment list is never
+       empty.
+       (finalize_runtime_unwind): Pop module runtime object stack.
+       (value_to_lisp): Assert that the value is valid.
+       (lisp_to_value): Record new value if assertions are enabled.
+       (mark_modules): Mark allocated object list.
+       (MODULE_FUNCTION_BEGIN_NO_CATCH)
+       (module_non_local_exit_check, module_non_local_exit_clear)
+       (module_non_local_exit_get, module_non_local_exit_signal)
+       (module_non_local_exit_throw): Assert thread and environment.
+       (module_get_environment): Assert thread and runtime.
+       (module_make_function, module_funcall, module_intern)
+       (module_funcall, module_make_integer, module_make_float)
+       (module_make_string, module_make_user_ptr, module_vec_get)
+       (funcall_module, Fmodule_load): Adapt callers.
+       (module_make_global_ref): If assertions are enabled, use the global
+       environment to store global values.
+       (module_free_global_ref): Remove value from global value list.
+
+       * test/Makefile.in (EMACSOPT): Enable module assertions when testing
+       modules.
+
+       * test/data/emacs-module/mod-test.c (Fmod_test_invalid_store)
+       (Fmod_test_invalid_load): New functions to test module assertions.
+       (emacs_module_init): Bind the new functions.
+
+       * test/src/emacs-module-tests.el (mod-test-emacs): New constant for
+       the Emacs binary file.
+       (mod-test-file): New constant for the test module file name.
+       (module--test-assertions): New unit test.
+
+2017-06-12  Philipp Stephani  <address@hidden>
+
+       emacs-module: Use __attribute__((nonnull))
+
+       Annotate all parameters with __attribute__((nonnull)) that may not be
+       NULL.
+
+2017-06-12  Philipp Stephani  <address@hidden>
+
+       Explicitly require C11 or C++11 in emacs-module.h
+
+       We already implicitly require them by including stdbool.h.  Just make
+       the error message a bit clearer, and remove an unnecessary version
+       comparison.
+
+2017-06-12  Philipp Stephani  <address@hidden>
+
+       Add missing 'require' forms to prevent compiler warnings.
+
+       * lisp/eshell/esh-ext.el (esh-arg, esh-proc): Add missing
+       requirements.
+
+2017-06-12  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-06-11 getopt-posix: port to glibc 2.25.90
+       2017-06-04 same-inode: port better to VMS 8.2 and later
+       * doc/misc/texinfo.tex, lib/getopt-pfx-core.h, lib/getopt-pfx-ext.h:
+       * m4/sys_types_h.m4: Copy from gnulib.
+
+2017-06-12  Paul Eggert  <address@hidden>
+
+       Remove Lisp_Misc_Float
+
+       * src/data.c (Ftype_of): Do not worry about Lisp_Misc_Float.
+       * src/lisp.h (Lisp_Misc_Float): Remove.  This placeholder has been
+       unused for two decades; if we ever want to change floats to be a
+       misc type we can bring it back then.
+
+2017-06-12  Paul Eggert  <address@hidden>
+
+       Make two symbols private to emacs-module.c
+
+       * src/lisp.h (allocate_module_function, XSET_MODULE_FUNCTION):
+       Move from here ...
+       * src/emacs-module.c: ... to here.
+
+2017-06-12  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-25
+
+       da62c1532e4 (origin/emacs-25) Improve the documentation of filesets
+
+2017-06-12  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-25
+
+       e80f6a210b0 Describe problems with Microsoft Intellipoint
+       a73ec1edb07 More accurate documentation of the ':box' face attribute
+
+2017-06-12  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-25
+
+       eaa00584ceb Improve documentation of 'gnutls-verify-error'
+       908498cc01b ; etc/PROBLEMS: Describe GTK-related crashes on elementar...
+       741daec617e ; Describe the problem with ksh when resizing shell window
+
+2017-06-11  Michael Albinus  <address@hidden>
+
+       Some further improvements for tramp-gvfs.el
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name)
+       (tramp-gvfs-get-file-attributes)
+       (tramp-gvfs-maybe-open-connection): Handle davs? properly.
+       (tramp-gvfs-handler-askquestion): Improve `yes-or-no-p' prompt.
+       Show question also in batch mode.  Cache result.
+
+       * test/lisp/net/tramp-tests.el (tramp-test24-file-name-completion):
+       Support completion for host names and ports.
+
+2017-06-11  Simen Heggestøyl  <address@hidden>
+
+       Fix highlighting of CSS selectors with double hyphens
+
+       * lisp/textmodes/css-mode.el (css--font-lock-keywords): Fix
+       highlighting of selectors that contain double hyphens.  They would be
+       mistaken for a variable.
+
+2017-06-11  Philipp Stephani  <address@hidden>
+
+       Support threads in modules
+
+       Rather than checking for the main thread, check for the current
+       thread.
+
+       * emacs-module.c (check_thread): New function.
+       (MODULE_FUNCTION_BEGIN_NO_CATCH, module_get_environment)
+       (module_non_local_exit_check, module_non_local_exit_clear)
+       (module_non_local_exit_get, module_non_local_exit_signal)
+       (module_non_local_exit_throw, module_is_not_nil, module_eq): Use it.
+
+2017-06-11  Philipp Stephani  <address@hidden>
+
+       Allow non-local exits in module initializers
+
+       Previously signals, throws, and quits from module initialization
+       functions were ignored.  These function aren't special, and better
+       errors can be reported using signals than with the initialization
+       return code, so allow non-local exits.
+
+       * src/emacs-module.c (module_signal_or_throw): New helper function.
+       (Fmodule_load, funcall_module): Use it.
+       (Fmodule_load): Also allow quitting.
+
+2017-06-11  Noam Postavsky  <address@hidden>
+
+       Let eshell/sudo handle absolute command names (Bug#27167)
+
+       * lisp/eshell/esh-ext.el (eshell-find-interpreter): Don't change
+       absolute paths into relative ones.
+
+2017-06-10  Alan Third  <address@hidden>
+
+       Don't wait for toolbar in NS native fullscreen
+
+       * src/nsterm.m (EmacsView:updateFrameSize): Don't short-circuit the
+       function when in fullscreen.
+
+2017-06-10  Alexander Gramiak  <address@hidden>
+
+       Fix the placement of GTK menus on multi-monitor systems
+
+       menu_position_func did not properly use the current monitor's
+       resolution.  Also see commit '2016-02-06 22:12:53 +0100'.
+
+       * lisp/frame.el (frame-monitor-attribute, frame-monitor-geometry)
+       (frame-monitor-workarea): New functions.
+
+       * src/xmenu.c (menu_position_func): Take into account the workarea of
+       the monitor that contains the mouse.  (Bug#23568)
+
+2017-06-10  Eli Zaretskii  <address@hidden>
+
+       Clarify documentation of 'face-spec-set'
+
+       * lisp/faces.el (face-spec-set): Clarify the description of
+       SPEC-TYPE in the doc string.
+
+       * doc/lispref/display.texi (Defining Faces): Clarify the
+       description of 'face-spec-set's SPEC-TYPE argument.  (Bug#27246)
+
+2017-06-10  Michael Albinus  <address@hidden>
+
+       Fix domain port and handling in tramp-gvfs.el
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-byte-array-to-string):
+       Return nil if BYTE-ARRAY is nil.
+       (tramp-gvfs-url-file-name, tramp-gvfs-handler-mounted-unmounted)
+       (tramp-gvfs-connection-mounted-p, tramp-gvfs-mount-spec):
+       Fix domain and port handling.
+
+       * lisp/net/tramp.el (tramp-handle-file-name-case-insensitive-p):
+       Ignore errors.
+
+2017-06-10  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of 'face-spec-set-2'
+
+       * lisp/faces.el (face-spec-recalc, face-spec-set-2): Rename 'spec'
+       to 'face-attrs'.
+       (face-spec-choose, face-spec-set-2): Doc fix.  (Bug#27238)
+
+2017-06-10  Eli Zaretskii  <address@hidden>
+
+       Fix handling of Python/Guile commands with arguments in gdb-mi.el
+
+       * lisp/progmodes/gdb-mi.el (gdb-python-guile-commands-regexp): New
+       variable.
+       (gdb-control-commands-regexp): Use it.
+       (gdb-send): Don't increment gdb-control-level if the command
+       matches gdb-python-guile-commands-regexp and has non-empty
+       arguments.  Reported by David Boles <address@hidden> in
+       http://lists.gnu.org/archive/html/emacs-devel/2017-06/msg00009.html.
+
+2017-06-10  Eli Zaretskii  <address@hidden>
+
+       Preserve point in Dired windows under 'dired-auto-revert-buffer'
+
+       * lisp/dired.el (dired-find-file): When dired-auto-revert-buffer
+       is non-nil, bind switch-to-buffer-preserve-window-point to nil
+       while calling find-file.  (Bug#27243)
+
+2017-06-09  Philipp Stephani  <address@hidden>
+
+       Give test files a -tests.el suffix
+
+       Rename a couple of test files that have the same name as the library
+       they test.  This harmonizes the naming pattern and makes it possible
+       to have the tests directories in the load path.
+
+2017-06-09  Philipp Stephani  <address@hidden>
+
+       Fix another compiler warning on macOS
+
+       * src/image.c (x_query_frame_background_color): Don't define if we
+       have NextStep but no image support.
+
+2017-06-09  Philipp Stephani  <address@hidden>
+
+       Add garbage collection support for module environments
+
+       * src/emacs-module.c (mark_modules): New function.
+       (initialize_environment): Properly initialize Lisp objects.
+       * src/alloc.c (garbage_collect_1): Call it.
+
+2017-06-08  Glenn Morris  <address@hidden>
+
+       Make autogen.sh report relevant environment variables
+
+       * autogen.sh (check_version):
+       Indicate if using an environment variable.
+
+2017-06-08  Noam Postavsky  <address@hidden>
+
+       Split variable macro env from function env
+
+       * lisp/emacs-lisp/cl-macs.el (cl--sm-macroexpand): Remove.
+       (cl-symbol-macrolet): Instead of adding each binding directly into the
+       main environment with a special key format, put all symbol macro
+       bindings into a single entry in the main environment under
+       `:cl-symbol-macros'.
+       (cl--sm-macroexpand): Look up symbol bindings in the
+       `:cl-symbol-macros' entry of the environment.
+
+2017-06-07  Glenn Morris  <address@hidden>
+
+       * make-dist: Directory modules/mod-test no longer exists.
+
+2017-06-07  Glenn Morris  <address@hidden>
+
+       More authors.el updates
+
+       * admin/authors.el (authors-ignored-files, authors-valid-file-names)
+       (authors-renamed-files-alist): Additions.
+
+2017-06-07  Glenn Morris  <address@hidden>
+
+       * make-dist: Check a release has a ChangeLog with a release notice.
+
+       * make-dist: Use existing ChangeLog if present.
+
+2017-06-07  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-sh.el (tramp-maybe-open-connection): Fix port handling.
+
+2017-06-07  Lars Ingebrigtsen  <address@hidden>
+
+       (url-cookie-host-can-set-p): Protect against zero-length domains
+
+       * lisp/url/url-cookie.el (url-cookie-host-can-set-p): Protect
+       against zero-length domains.
+
+       Backtrace of a real-world site that triggers a bug:
+
+       Debugger entered--Lisp error: (args-out-of-range "" 0)
+         url-cookie-host-can-set-p("www.washingtonpost.com" "")
+         url-cookie-handle-set-cookie("utm_term=0;Expires=Thursday,
+         01-January-1970 00:00:00 GMT; path=/; domain=")
+         url-http-handle-cookies()
+
+2017-06-06  Glenn Morris  <address@hidden>
+
+       More authors.el updates
+
+       * admin/authors.el (authors-obsolete-files-regexps)
+       (authors-valid-file-names, authors-renamed-files-alist)
+       (authors-renamed-files-regexps): Additions.
+
+2017-06-06  Glenn Morris  <address@hidden>
+
+       More small authors.el updates
+
+       * admin/authors.el (authors-aliases): Fix recent addition.
+       (authors-obsolete-files-regexps, authors-no-scan-regexps)
+       (authors-ignored-files, authors-valid-file-names)
+       (authors-renamed-files-alist): Additions.
+
+2017-06-06  Glenn Morris  <address@hidden>
+
+       Make authors.el report names that were ignored
+
+       * admin/authors.el (authors-ignored-names): New.
+       (authors-canonical-author-name): Add file and position arguments.
+       Record ignored authors.
+       (authors-scan-change-log, authors-scan-el):
+       Pass file and position to authors-canonical-author-name.
+       (authors): Also print authors that were ignored.
+
+2017-06-06  Glenn Morris  <address@hidden>
+
+       * admin/authors.el (authors-aliases): Additions.
+
+2017-06-06  Tino Calancha  <address@hidden>
+
+       * test/lisp/subr-tests.el (subr-tests-bug22027): Add test.
+
+2017-06-06  Noam Postavsky  <address@hidden>
+
+       * lisp/subr.el (read-passwd): Don't delete return value (Bug#22027).
+
+2017-06-06  Dmitry Gutov  <address@hidden>
+
+       Enable ElDoc messages after the newline command
+
+       * lisp/emacs-lisp/eldoc.el:
+       Add "newline" to the eldoc-add-command-completions call (bug#27228).
+
+2017-06-06  Dmitry Gutov  <address@hidden>
+
+       Enable eldoc-mode explicitly inside read--expression
+
+       * lisp/simple.el (read--expression): Call eldoc-mode (bug#27202).
+
+2017-06-06  Andy Moreton  <address@hidden>
+
+       Fix check for package-unsigned-archives during retrieval
+
+       * lisp/emacs-lisp/package.el (package--download-one-archive):
+       Fix check for package-unsigned-archives.
+
+2017-06-05  Noah Friedman  <address@hidden>
+
+       Merge etc/emacs-buffer.gdb from emacs-25 to master.
+
+2017-06-05  Philipp Stephani  <address@hidden>
+
+       Fix undefined behavior in mapbacktrace
+
+       * src/eval.c (Fmapbacktrace): Don't assume that PDL is still valid.
+
+2017-06-05  Eli Zaretskii  <address@hidden>
+
+       Fix emacs-module-tests on MS-Windows
+
+       * src/print.c (print_vectorlike): Make sure module function's
+       address prints with a leading "0x".  This fixes emacs-module-tests
+       on MS-Windows.  Fix whitespace.
+       * src/dynlib.c (dynlib_addr): Remove unused variable.  Update
+       commentary.
+
+2017-06-05  Philipp Stephani  <address@hidden>
+
+       Use unwind protection to clean up data structures in modules
+
+       Reuse existing functionality and simplify the code a bit.
+
+       * src/emacs-module.c (Fmodule_load): Use unwind protection to clean up
+       runtime object.
+       (funcall_module): Use unwind protection to clean up environment
+       object.
+       (finalize_environment): Simplify signature.
+       (finalize_environment_unwind, finalize_runtime_unwind): New functions.
+
+2017-06-05  Michael Albinus  <address@hidden>
+
+       Some minor tweaks in tramp-tests.el
+
+       * test/lisp/net/tramp-tests.el (tramp-test05-expand-file-name-relative):
+       Let it pass for all gfvs based methods.
+       (tramp-test24-file-name-completion): Run method and host
+       completion for all syntaxes only when expensive tests are enabled.
+       Do not check host completion for gvfs based methods.
+       (tramp--test-gvfs-p): Add optional METHOD argument.
+       (tramp--test-afp-or-smb-p): Remove.
+
+2017-06-05  Michael Albinus  <address@hidden>
+
+       Fix error in Tramp rsync method
+
+       * lisp/net/tramp-sh.el (tramp-methods) <rsync>: Add "-c" argument.
+       Otherwise, `tramp-test10-write-region' could fail.
+
+2017-06-05  Philipp Stephani  <address@hidden>
+
+       Inline module_has_cleanup
+
+       This constant is only used once, and we fail compilation anyway if
+       it's false.
+
+       * src/emacs-module.c (MODULE_SETJMP_1): Inline __has_attribute.
+
+2017-06-05  Philipp Stephani  <address@hidden>
+
+       Add missing dependency to test module source file
+
+2017-06-05  Paul Eggert  <address@hidden>
+
+       Omit space that broke ‘make check’
+
+       * src/print.c (print_vectorlike): Omit stray space.
+
+2017-06-05  Paul Eggert  <address@hidden>
+
+       Remove easserts etc. from emacs-module.c
+
+       Most of these seem to run afoul of the comment "Do NOT use
+       'eassert' for checking validity of user code in the module."
+       * src/emacs-module.c (MODULE_FUNCTION_BEGIN_NO_CATCH)
+       (module_non_local_exit_check, module_non_local_exit_clear)
+       (module_non_local_exit_get, module_non_local_exit_signal)
+       (module_non_local_exit_throw, module_make_string):
+       Remove unnecessary easserts that pointers are nonnull.
+       Hardware checks this for us nowadays, and the checks
+       just clutter up the code.
+       (module_extract_integer): Remove unnecessary verify that
+       a C signed integer is in the range INTMAX_MIN..INTMAX_MAX.
+       The C standard guarantees this.
+       (module_copy_string_contents): Remove unnecessary eassert
+       that Lisp strings are null-terminated.
+       (module_function_arity): Remove unnecessary easserts that
+       function arities are in range.
+
+2017-06-05  Paul Eggert  <address@hidden>
+
+       Remove unnecessary checking in emacs-module.c
+
+       * src/emacs-module.c (module_copy_string_contents):
+       Remove checking, as string lengths are always nonnegative and less
+       than STRING_BYTES_BOUND, and this is checked elsewhere.
+       (module_make_string): Check length against STRING_BYTES_BOUND, a
+       tighter bound than MOST_POSITIVE_FIXNUM.  (funcall_module): Don't
+       assume that an out-of-range integer is nonnegative.
+
+2017-06-05  Paul Eggert  <address@hidden>
+
+       SCHARS and STRING_BYTES are nonnegative
+
+       Tell the compiler that SCHARS and STRING_BYTES are nonnegative, in
+       the hopes that this will optimize a bit better.  Also, check this
+       at runtime if ENABLE_CHECKING.
+       * src/lisp.h (SCHARS, STRING_BYTES):
+       eassume that these functions return nonnegative values.
+       (STRING_SET_CHARS) [ENABLE_CHECKING]:
+       eassert that newsize is nonnegative.
+
+2017-06-05  Noam Postavsky  <address@hidden>
+
+       * lisp/desktop.el (desktop-clear): Skip the daemon's frame (Bug#26912).
+
+2017-06-04  Philipp Stephani  <address@hidden>
+
+       Remove an unused error symbol
+
+       * src/emacs-module.c (syms_of_module): Remove unused error symbol
+       'invalid-module-call'.
+
+2017-06-04  Philipp Stephani  <address@hidden>
+
+       Support quitting in modules
+
+       The idea is that modules should call env->should_quit from time to
+       time and return as quickly as possible if it returns true.
+
+       * src/emacs-module.c (module_should_quit): New module function.
+       (initialize_environment): Use it.
+       (funcall_module): Process potential pending quit.
+
+       * src/eval.c (maybe_quit): Add reference to module_should_quit.
+
+2017-06-04  Philipp Stephani  <address@hidden>
+
+       Use more specific errors for module load failure
+
+       * src/emacs-module.c (syms_of_module): Add more specific error
+       symbols.
+       (Fmodule_load): Use them.
+
+2017-06-04  Philipp Stephani  <address@hidden>
+
+       Remove an unneeded assertion
+
+       * src/emacs-module.c (module_copy_string_contents): Remove unneeded
+       assertion.  If this assertion triggers, we raise an error anyway.
+
+2017-06-04  Philipp Stephani  <address@hidden>
+
+       Guard against signed integer overflows
+
+       * src/emacs-module.c (module_extract_integer)
+       (module_copy_string_contents, module_make_string): Guard against
+       signed integer overflows.
+
+2017-06-04  Philipp Stephani  <address@hidden>
+
+       Add a couple more assertions to the module code
+
+       These can help module authors debug crashes.
+
+       * emacs-module.c (module_non_local_exit_check)
+       (module_non_local_exit_clear, module_non_local_exit_get)
+       (module_non_local_exit_signal, module_non_local_exit_throw)
+       (module_copy_string_contents, module_make_string)
+       (funcall_module, initialize_environment): Add assertions
+
+2017-06-04  Philipp Stephani  <address@hidden>
+
+       Use ATTRIBUTE_MAY_ALIAS where alias violations are likely
+
+       In particular, alias violations are likely for the return values of
+       dlsym(3), which get cast around arbitrarily.
+
+       * src/emacs-module.c (Fmodule_load): Use ATTRIBUTE_MAY_ALIAS.
+
+2017-06-04  Philipp Stephani  <address@hidden>
+
+       Simplify interface of dynlib_attr.
+
+       Instead of returning bool, set the argument pointers to NULL if the
+       information is not available.
+
+       * src/dynlib.c (dynlib_addr): Don't return bool.
+
+2017-06-04  Philipp Stephani  <address@hidden>
+
+       Rationalize environment lifetime management functions
+
+       * src/emacs-module.c (Fmodule_load, funcall_module): Adapt callers.
+       (finalize_environment): Add parameter for public part of the
+       environment, like 'initialize_environment'.  Add assertions.
+
+2017-06-04  Philipp Stephani  <address@hidden>
+
+       Rework printing of module functions
+
+       Fix a FIXME in emacs-module.c.  Put the printing into print.c, like
+       other types.
+
+       * src/print.c (print_vectorlike): Add code to print module functions.
+
+       * src/emacs-module.c (funcall_module): Stop calling
+       'module_format_fun_env'.  Now that module functions are first-class
+       objects, they can be added to signal data directly.
+       (module_handle_signal): Remove now-unused function
+       'module_format_fun_env'.
+
+       * test/src/emacs-module-tests.el (mod-test-sum-test): Adapt unit test.
+
+       * src/eval.c (funcall_lambda): Adapt call to changed signature of
+       'funcall_module'.
+
+2017-06-04  Philipp Stephani  <address@hidden>
+
+       Define helper macro to reduce code duplication
+
+       * src/emacs-module.c (MODULE_FUNCTION_BEGIN_NO_CATCH): New helper
+       macro.
+       (MODULE_FUNCTION_BEGIN, module_type_of, module_is_not_nil, module_eq):
+       Use it.
+
+2017-06-04  Philipp Stephani  <address@hidden>
+
+       Remove two FIXMEs that can't be fixed
+
+2017-06-04  Eli Zaretskii  <address@hidden>
+
+       Avoid slow startup in daemon mode when global-linum-mode is on
+
+       * lisp/linum.el (linum-on): Don't turn on linum-mode in a
+       non-client frame of a daemon session.  (Bug#27210)
+
+2017-06-04  Paul Eggert  <address@hidden>
+
+       Fix eldoc bug with curved quote
+
+       * lisp/progmodes/elisp-mode.el (elisp-get-fnsym-args-string):
+       Substitute quotes in documentation before returning it (Bug#27159).
+
+2017-06-04  Paul Eggert  <address@hidden>
+
+       Tune ‘format’ after recent fix
+
+       * doc/lispref/strings.texi (Formatting Strings):
+       * src/editfns.c (Fformat): Format field numbers no longer need
+       to be unique, reverting the previous doc change since that has
+       now been fixed.  Also, document that %% should not have modifiers.
+       * src/editfns.c (styled_format): Improve performance.  Remove
+       the need for the new prepass over the format string, by using
+       a typically-more-generous bound for the info array size.
+       Initialize the info array lazily.  Move string inspection to
+       the same area to help caching.  Avoid the need for a
+       converted_to_string bitfield by using EQ.  Cache arg in a
+       local and avoid some potential aliasing issues to help the
+       compiler.  Info array is now 0-origin, not 1-origin.
+
+2017-06-04  Nikolay Kudryavtsev  <address@hidden>
+
+       Improve of file-local-name use in vc-git-checkin
+
+       * lisp/vc/vc-git.el (vc-git-checkin): Use file-local-name only
+       when calling git commit.
+
+2017-06-03  Simen Heggestøyl  <address@hidden>
+
+       Support a new CSS indentation style
+
+       * lisp/textmodes/css-mode.el (css-smie-rules): Indent after property
+       immediately followed by a newline.
+
+       * test/manual/indent/css-mode.css: Add test for the change above.
+
+       * test/manual/indent/scss-mode.scss: Ditto.
+
+2017-06-03  Philipp Stephani  <address@hidden>
+
+       Fix a bug when using format field numbers
+
+       Previously styled_format overwrite the argument vector.  This is no
+       longer possible because there might be more than one specification per
+       argument.  Use the existing auxiliary info array instead.
+
+       * src/editfns.c (styled_format): Record arguments in the info
+       structure instead of overwriting them.
+       * test/src/editfns-tests.el (format-with-field): Add unit test.
+
+2017-06-03  Paul Eggert  <address@hidden>
+
+       Document uniqueness limitation of ‘format’
+
+       * doc/lispref/strings.texi (Formatting Strings):
+       * src/editfns.c (Fformat):
+       Document that field numbers should be unique within a format.
+
+2017-06-03  Glenn Morris  <address@hidden>
+
+       Small rmailmm fix (bug#27203)
+
+       * lisp/mail/rmailmm.el (rmail-mime-insert-bulk):
+       Fall back to HOME if no match in rmail-mime-attachment-dirs-alist.
+
+2017-06-03  Glenn Morris  <address@hidden>
+
+       * admin/authors.el (authors-aliases): Addition.
+
+2017-06-03  Glenn Morris  <address@hidden>
+
+       Add watch for password back to inferior python comint filter
+
+       It was removed along with other items for speed (bug#16875),
+       but doesn't seem to have been causing an issue, and it's useful to
+       have it there (bug#27154).
+       * lisp/progmodes/python.el (inferior-python-mode):
+       Add comint-watch-for-password-prompt to comint-output-filter-functions.
+
+2017-06-03  Ryan  <address@hidden>  (tiny change)
+
+       Use completing-read-default in tmm-prompt
+
+       tmm uses completing-read, but customizes its behavior so much
+       that any alternative completing-read-function will almost
+       certainly break it.  For example, both ido-ubiquitous and ivy have
+       special code to deactivate themselves for tmm.
+       * lisp/tmm.el (tmm-prompt): Use completing-read-default instead of
+       completing-read.  (Bug#27193)
+
+2017-06-02  Mats Lidell  <address@hidden>
+
+       * etc/tutorials/TUTORIAL.sv: synced with TUTORIAL (Bug#20371)
+
+2017-06-02  Glenn Morris  <address@hidden>
+
+       Fix with-todo-test
+
+       * test/lisp/calendar/todo-mode-tests.el (with-todo-test):
+       HOME should be a directory, not a file.  Delete it when finished.
+
+2017-06-02  Lele Gaifax  <address@hidden>  (tiny change)
+
+       Update TUTORIAL.it
+
+       * etc/tutorials/TUTORIAL.it: Adjust to recent changes in TUTORIAL.
+
+2017-06-02  Eli Zaretskii  <address@hidden>
+
+       Fix cursor position in Dired buffers after dired-sort-toggle
+
+       * src/xdisp.c (display_and_set_cursor): Record cursor coordinates
+       even if the frame is marked as garbaged.  (Bug#27187)
+
+2017-06-02  Eli Zaretskii  <address@hidden>
+
+       Update TUTORIAL.he
+
+       * etc/tutorials/TUTORIAL.he: Adjust to recent changes in TUTORIAL.
+
+2017-06-02  Noam Postavsky  <address@hidden>
+
+       * etc/tutorials/TUTORIAL: Explain how to stop the tutorial (Bug#20371).
+
+2017-06-02  Paul Eggert  <address@hidden>
+
+       Limit format fields to more POSIX-like spec
+
+       * doc/lispref/strings.texi (Formatting Strings):
+       Don’t allow mixing numbered with unnumbered format specs.
+       * src/editfns.c (styled_format): Don’t bother checking for field 0,
+       since it doesn’t crash and the behavior is not specified.
+       * test/src/editfns-tests.el (format-with-field): Adjust tests to
+       match current doc.  Add more tests for out-of-range fields.
+
+2017-06-02  Paul Eggert  <address@hidden>
+
+       Improve performance by avoiding strtoumax
+
+       This made (string-to-number "10") 20% faster on my old desktop,
+       an AMD Phenom II X4 910e running Fedora 25 x86-64.
+       * admin/merge-gnulib (GNULIB_MODULES): Remove strtoumax.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * lib/strtoul.c, lib/strtoull.c, lib/strtoumax.c, m4/strtoull.m4:
+       * m4/strtoumax.m4: Remove.
+       * src/editfns.c (str2num): New function.
+       (styled_format): Use it instead of strtoumax.  Use ptrdiff_t
+       instead of uintmax_t.  Check for integer overflow.
+       * src/lread.c (LEAD_INT, DOT_CHAR, TRAIL_INT, E_EXP):
+       Move to private scope and make them enums.
+       (string_to_number): Compute integer value directly during
+       first pass instead of revisiting it with strtoumax later.
+
+2017-06-02  Paul Eggert  <address@hidden>
+
+       Minor improvements to format field numbers
+
+       * src/editfns.c (styled_format): Allow field numbers in a %% spec.
+       No need for a special diagnostic for field numbers greater than
+       PTRDIFF_MAX.  Reword diagnostic for field 0.
+       * test/src/editfns-tests.el (format-with-field): Adjust to match.
+
+2017-06-02  Philipp Stephani  <address@hidden>
+
+       Implement field numbers in format strings
+
+       A field number explicitly specifies the argument to be formatted.
+       This is especially important for potential localization work, since
+       grammars of various languages dictate different word orders.
+
+       * src/editfns.c (Fformat): Update documentation.
+       (styled_format): Implement field numbers.
+
+       * doc/lispref/strings.texi (Formatting Strings): Document field numbers.
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-format-warn): Adapt.
+
+       * test/src/editfns-tests.el (format-with-field): New unit test.
+
+2017-06-01  Alexander Gramiak  <address@hidden>
+
+       Limit scope of local overriding-terminal-local-map
+
+       The function `binding' may call isearch-done, which globally sets
+       overriding-terminal-local-map to nil (Bug#23007).
+       * lisp/isearch.el (isearch-mouse-2): Don't bind
+       overriding-terminal-local-map around the call to `binding'.
+
+2017-06-01  Stephen Berman  <address@hidden>
+
+       Correct and isolate the todo-mode test environment
+
+       This avoids having to set todo-mode variables globally in the test
+       file and prevents any exisiting user todo-mode files from influencing
+       the tests.
+
+       * test/lisp/calendar/todo-mode-tests.el:
+       (with-todo-test): New macro.
+       (todo-test-todo-quit01, todo-test-todo-quit02)
+       (todo-test-item-highlighting): Use it.
+
+2017-06-01  Alan Third  <address@hidden>
+
+       Fix build errors on macOS 10.6 (bug#27059)
+
+       * src/nsfns.m (compute_tip_xy): Don't use CGRectContainsPoint.
+
+2017-06-01  Eli Zaretskii  <address@hidden>
+
+       Improve testing of octal and hex display of raw bytes
+
+       * test/manual/redisplay-testsuite.el (test-redisplay-5-toggle)
+       (test-redisplay-5): Add a test with a large codepoint.
+
+2017-06-01  Vasilij Schneidermann  <address@hidden>
+
+       Add customizable to display raw bytes as hex
+
+       * src/xdisp.c (get_next_display_element): Dispatch used format string
+       for unprintables based on new display-raw-bytes-as-hex variable.
+       (display-raw-bytes-as-hex): New variable.  (Bug#27122)
+
+       * lisp/cus-start.el: Add defcustom form for display-raw-bytes-as-hex.
+
+       * doc/emacs/display.texi: Document the new variable.
+       * etc/NEWS: Mention display-raw-bytes-as-hex.
+
+       * test/manual/redisplay-testsuite.el (test-redisplay-5-toggle)
+       (test-redisplay-5): New tests.
+       (test-redisplay): Call test-redisplay-5.
+
+2017-06-01  Eli Zaretskii  <address@hidden>
+
+       Revert "Add customizable to display raw bytes as hex"
+
+       This reverts commit 7c9ac111c5e5d92e620b666893993d5dc562e483.
+
+2017-06-01  Eli Zaretskii  <address@hidden>
+
+       Add customizable to display raw bytes as hex
+
+       * src/xdisp.c (get_next_display_element): Dispatch used format string
+       for unprintables based on new display-raw-bytes-as-hex variable.
+       (display-raw-bytes-as-hex): New variable.  (Bug#27122)
+
+       * lisp/cus-start.el: Add defcustom form for display-raw-bytes-as-hex.
+
+       * doc/emacs/display.texi: Document the new variable.
+       * etc/NEWS: Mention display-raw-bytes-as-hex.
+
+       * test/manual/redisplay-testsuite.el (test-redisplay-5-toggle)
+       (test-redisplay-5): New tests.
+       (test-redisplay): Call test-redisplay-5.
+
+2017-06-01  Eli Zaretskii  <address@hidden>
+
+       Fix linum under text-scaling when leuven-theme is used
+
+       * etc/themes/leuven-theme.el (linum): Make the 'linum' face
+       inherit from 'default' and 'shadow', so that margins are enlarged
+       as expected under text-scaling.
+
+2017-06-01  Paul Eggert  <address@hidden>
+
+       Free cwd when no longer needed
+
+       * lib-src/emacsclient.c (main): Don’t dally when freeing cwd.
+
+2017-06-01  Anders Waldenborg  <address@hidden>  (tiny change)
+
+       Fix memory leak of cwd string in emacsclient (Bug#26628)
+
+       * lib-src/emacsclient.c (main): emacsclient retrieves the current
+       working directory using get_current_dir_name which returns a newly
+       allocated string.  Make sure this string is freed before exiting.
+
+2017-06-01  Glenn Morris  <address@hidden>
+
+       Quieten compilation of some test files
+
+       * test/lisp/dired-tests.el (dired-test-bug25609): Mark unused args.
+       * test/src/data-tests.el (binding-test-set-constant-t)
+       (binding-test-set-constant-nil, binding-test-set-constant-keyword)
+       (binding-test-set-constant-nil): Silence compiler.
+       * test/src/regex-tests.el (regex-tests-BOOST): Escape char literal.
+
+2017-06-01  Glenn Morris  <address@hidden>
+
+       Use true names for invocation- and source-directory
+
+       * src/emacs.c (init_cmdargs) <Vinvocation_directory>:
+       * src/lread.c (init_lread) <Vsource_directory>: Use true names.
+
+2017-06-01  Glenn Morris  <address@hidden>
+
+       Avoid elisp-mode test failures when source dir has multiple names
+
+       * test/lisp/progmodes/elisp-mode-tests.el (emacs-test-dir):
+       Use the true name of the directory.
+
+2017-06-01  Paul Eggert  <address@hidden>
+
+       Fix bug with "%%" in error format
+
+       * src/doprnt.c (doprnt): Format "%%" correctly.
+       Problem reported by Philipp Stephani in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00901.html
+
+2017-06-01  Paul Eggert  <address@hidden>
+
+       * src/editfns.c (Fmessage): Improve doc string (Bug#23425#130).
+
+2017-06-01  Katsumi Yamaoka  <address@hidden>
+
+       Revert mml-generate-mime-1 (bug#27141)
+
+       * lisp/gnus/mml.el (mml-generate-mime-1): Reverted to emacs-25 version
+       with slight modernizations (bug#27141).
+
+2017-05-31  Michael Albinus  <address@hidden>
+
+       Fix Bug#27108
+
+       * lisp/recentf.el (recentf-load-list): Bind `non-essential',
+       in order to avoid Tramp password requests during Emacs
+       startup.  (Bug#27108)
+
+2017-05-31  Glenn Morris  <address@hidden>
+
+       * test/Makefile.in (.SECONDARY): Stop make deleting .elc files.
+
+2017-05-31  Eli Zaretskii  <address@hidden>
+
+       Document current-line hscrolling in ELisp manual
+
+       * doc/lispref/windows.texi (Horizontal Scrolling): Document the
+       new mode of auto-hscrolling only the current line.
+
+2017-05-31  Eli Zaretskii  <address@hidden>
+
+       Support lower bound on hscrolling when only current line scrolls
+
+       * doc/emacs/display.texi (Horizontal Scrolling): Document the new
+       mode of auto-hscrolling only the current line.
+
+       * src/xdisp.c (init_iterator): When hscrolling only the
+       current line, apply the window's min_hscroll here, so that
+       non-current lines will be hscrolled by that minimum.
+       Suggested by Stephen Berman <address@hidden>.
+       (hscroll_window_tree): Account for window's min_hscroll when
+       deciding whether to recompute the hscroll.
+       (display_line): Subtract window's min_hscroll from x_incr, as that
+       was already accounted for in init_iterator.  (Bug#27008)
+
+2017-05-31  Noam Postavsky  <address@hidden>
+
+       cl-print: handle circular objects when `print-circle' is nil (Bug#27117)
+
+       * lisp/emacs-lisp/cl-print.el (cl-print--currently-printing): New 
variable.
+       (cl-print-object): When `print-circle' is nil, bind it to a list of
+       objects that are currently printing to avoid printing the same object
+       endlessly.
+       * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-circle): New test.
+
+2017-05-31  Noam Postavsky  <address@hidden>
+
+       Further simplify test/Makefile, optionally load elc tests
+
+       * test/Makefile.in: Use make's error ignoring feature instead of
+       suppressing test errors with shell.  Compile test files in the main
+       make invocation instead of a recursive 'make' call.  Optionally load
+       .elc test files if TEST_LOAD_EL is set to something other than 'yes'.
+       Remove obsolete commentary.
+
+2017-05-31  Eli Zaretskii  <address@hidden>
+
+       Avoid inflooping in redisplay due to Spacemacs and linum-mode
+
+       * src/xdisp.c (redisplay_internal): Limit the number of redisplay
+       retries when a frame becomes garbaged as result of redisplaying
+       it.  (Bug#27115)
+
+2017-05-31  Tino Calancha  <address@hidden>
+
+       * src/editfns.c (decode-time): Fix docstring.
+
+2017-05-31  Glenn Morris  <address@hidden>
+
+       * admin/update_autogen: Remove bzr support.
+
+2017-05-31  Glenn Morris  <address@hidden>
+
+       Avoid subr test failure when source dir has multiple names
+
+       * test/lisp/subr-tests.el (subr-tests--this-file):
+       Use the true name of the file.  The following test does a string
+       comparison of this value with that from method-files, which uses
+       load-history, which contains true names.
+
+2017-05-31  Dmitry Gutov  <address@hidden>
+
+       Extract eldoc--supported-p
+
+       * lisp/emacs-lisp/eldoc.el (eldoc--supported-p): New function.
+       (turn-on-eldoc-mode, eldoc-mode): Use it.
+       (http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00865.html)
+
+2017-05-30  Glenn Morris  <address@hidden>
+
+       Make "make check" less verbose by default
+
+       * test/Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_ELC, am__v_ELC_)
+       (am__v_ELC_0, am__v_ELC_1, AM_V_GEN, am__v_GEN_, am__v_GEN_0)
+       (am__v_GEN_1, AM_V_at, am__v_at_, am__v_at_0, am__v_at_1):
+       New, copied from lisp/Makefile.in.
+       (%.elc, %.log): Simplify and quieten.
+
+2017-05-30  Alan Mackenzie  <address@hidden>
+
+       Mode line "%q" construct: Just use one number when both would be the 
same.
+
+       * src/xdisp (decode_mode_spec): recode the "%q" bit appropriately.
+
+2017-05-30  Alan Mackenzie  <address@hidden>
+
+       Merge branch 'master' of /home/acm/emacs/emacs.git/master
+
+2017-05-30  Alan Mackenzie  <address@hidden>
+
+       c-defun-name: Return fully qualified method names when wanted in C++, 
etc.
+
+       * lisp/progmodes/cc-cmds.el (c-defun-name): Use
+       c-back-over-compound-identifier in place of c-backward-token-2 near the 
end
+       of the function.
+
+2017-05-30  Glenn Morris  <address@hidden>
+
+       Reduce scope of recent test/Makefile HOME change
+
+       * test/Makefile.in (%.log): Move setting of HOME here from top-level.
+
+2017-05-30  Paul Eggert  <address@hidden>
+
+       Skip .#* temporaries when finding sources
+
+       Without this patch, ‘make check’ can fail with the diagnostic
+       ‘invalid syntax in conditional’ if there is an Emacs temporary
+       file whose name starts with ‘.#’, because the ‘#’ is treated as
+       the start of a Make comment.
+       * lisp/Makefile.in (loaddefs, tagsfiles, check-defun-deps):
+       * test/Makefile.in (ELFILES):
+       Skip files starting with ‘.’, so that the .#* files do not cause
+       trouble.  (We cannot easily skip just files starting with ‘.#’,
+       since ‘#’ starts a Make comment!)
+
+2017-05-30  Alan Mackenzie  <address@hidden>
+
+       Merge branch 'master' of /home/acm/emacs/emacs.git/master
+
+2017-05-30  Alan Mackenzie  <address@hidden>
+
+       Fix the mouse help/key map on the "%p" part of the mode line.
+
+       * lisp/bindings.el (mode-line-percent-position): give it a
+       `risky-local-variable' property.
+       (mode-line-position): correct the quoting on the 
mode-line-percent-position
+       part of the variable, allowing the properties to be properly recognized.
+
+2017-05-30  Alan Mackenzie  <address@hidden>
+
+       Fix the mouse help/key map on the "%p" part of the mode line.
+
+       * lisp/bindings.el (mode-line-percent-position): give it a
+       `risky-local-variable' property.
+       (mode-line-position): correct the quoting on the 
mode-line-percent-position
+       part of the variable, allowing the properties to be properly recognized.
+
+2017-05-30  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       * build-aux/config.guess: Copy from gnulib.
+       * lib/gnulib.mk.in: Regenerate.
+
+2017-05-30  Glenn Morris  <address@hidden>
+
+       Stop make check interacting with HOME
+
+       * test/Makefile.in (HOME): Export a non-existent value.
+
+2017-05-30  Paul Eggert  <address@hidden>
+
+       Update .gitattributes to match sources better
+
+       * .gitattributes: Remove nt/nmake.defs.  Move dostorture.c, c.C,
+       algrthms.html.  Use pattern for todo-mode.  Improve patterns for
+       Ada, C, ObjC, shell.  Add Pascal.  Remove unused pattern *.ruby.
+       Add config.guess and config.sub as shell files.
+
+2017-05-30  Noam Postavsky  <address@hidden>
+
+       Rename '--new-daemon' to 'fg-daemon' and '--old-daemon' to '--bg-daemon'
+
+       * doc/emacs/cmdargs.texi (Initial Options):
+       * doc/lispref/os.texi (Startup Summary):
+       * etc/NEWS:
+       * etc/emacs.service:
+       * src/emacs.c (main):
+       * src/lisp.h: Rename '--new-daemon' to 'fg-daemon' and '--old-daemon' to
+       '--bg-daemon'.
+
+2017-05-30  Glenn Morris  <address@hidden>
+
+       todo-mode: don't assume an ordering of tests
+
+       * test/lisp/calendar/todo-mode-tests.el (todo-test-todo-quit02)
+       (todo-test-item-highlighting): Avoid prompting for input file.
+
+2017-05-30  Paul Eggert  <address@hidden>
+
+       Improve .gdbinit Lisp value pretty-printing
+
+       * src/.gdbinit (to_string): Use an unsigned representation for
+       Lisp values, as requested by Eli Zaretskii (Bug#27098).
+       Also, use "make_number(N)" for Lisp integers.
+
+2017-05-30  Dmitry Gutov  <address@hidden>
+
+       Turn global-eldoc-mode into a globalized minor mode
+
+       * lisp/emacs-lisp/eldoc.el (global-eldoc-mode):
+       Turn into globalized mode (bug#19853).
+       (turn-on-eldoc-mode): Make it into a wrapper instead of alias.
+       (eldoc-mode): Only show the message when called interactively.
+
+2017-05-29  Dmitry Gutov  <address@hidden>
+
+       Use regexp matching instead of checking exit status
+
+       * lisp/progmodes/xref.el (xref-collect-matches):
+       See if the output buffer contents look like Grep output
+       instead of checking exit status (bug#23451).
+
+2017-05-29  Stephen Berman  <address@hidden>
+
+       Add initial tests for todo-mode.el
+
+       *test/lisp/calendar/todo-mode-tests.el:
+       *test/lisp/calendar/todo-mode-resources/todo-test-1.toda:
+       *test/lisp/calendar/todo-mode-resources/todo-test-1.todo: New files.
+
+       * .gitattributes: Ignore trailing whitespace in todo-mode test
+       data files, since it is part of the todo-mode file format.
+
+2017-05-29  Stephen Berman  <address@hidden>
+
+       Make `todo-toggle-item-highlighting' work on multiline items (bug#27133)
+
+       * lisp/calendar/todo-mode.el (todo-hl-line-range): New named function,
+       replacing an anonymous function for the sake of `describe-variable'.
+       (todo-modes-set-2): Use it as buffer-local value of 
hl-line-range-function
+       and remove boundp test of this variable, so its value is available on
+       invoking `todo-toggle-item-highlighting'.
+
+2017-05-29  Alan Third  <address@hidden>
+
+       Fix build error on macOS 10.6
+
+       * src/nsfns.m (compute_tip_xy): Cast NSRect to CGRect and NSPoint to
+       CGPoint.
+
+2017-05-29  Jules Tamagnan  <address@hidden>  (tiny change)
+
+       Comply with pep 8 style guide for backslash in assignment (Bug#24809)
+
+       * lisp/progmodes/python.el (python-indent--calculate-indentation):
+       Increase indent by `python-indent-offset' after
+       `:after-backslash-assignment-continuation'.
+
+2017-05-29  Wilfred Hughes  <address@hidden>
+
+       Add suggestion to docstring
+
+       * lisp/subr.el (interactive-p): Mention commandp, as this is often
+         what users are actually looking for.
+
+2017-05-29  Wilfred Hughes  <address@hidden>
+
+       Ensure button-get works in any buffer
+
+       * lisp/button.el (button-get): Previously we assumed that button-get
+         was called in the buffer containing the button.  In other buffers,
+         button-get always returned nil.  Fix this by passing the relevant
+         buffer from the marker.
+
+2017-05-29  Dmitry Gutov  <address@hidden>
+
+       Signal error if find-grep returns a nonzero status
+
+       * lisp/progmodes/xref.el (xref-collect-matches): Signal error
+       if find-grep returns a nonzero status (bug#23451).  Remove the
+       comment: even if some output is present, a non-zero status
+       means something went wrong and it can't be relied upon.
+
+2017-05-29  Stephen Berman  <address@hidden>
+
+       Make sure exiting todo-mode buffer buries it (bug#27121)
+
+       This failed due to commit ea3ae33b from 2013-05-16, which prevented
+       quitting todo-mode buffer after visiting todo-archive buffer from
+       making the archive buffer current again.  Avoid this now by simply
+       killing the archive buffer, since there's no need to keep it a live
+       buffer.  Consequently, quitting a todo-mode buffer can now use
+       bury-buffer without an argument, which ensures that is will not
+       becomes current on quitting the buffer that replaced it in the window.
+
+       * lisp/calendar/todo-mode.el (todo-quit): Kill todo-archive-mode
+       buffer instead of burying it.  This now allows exiting the
+       todo-mode buffer by bury-buffer without an argument, so do that.
+
+2017-05-28  Michael Albinus  <address@hidden>
+
+       Some tweaks, almost all for Tramp adb method
+
+       * lisp/net/tramp-adb.el (tramp-adb-parse-device-names):
+       Use `make-tramp-file-name'.
+       (tramp-adb-get-device): Use `tramp-file-name-port-or-default'.
+       (tramp-adb-maybe-open-connection): Set "prompt" property.
+       (tramp-adb-wait-for-output): Use it.
+
+       * lisp/net/tramp-cache.el (tramp-cache-print): Use `elt'.
+       (tramp-dump-connection-properties): Check also that there are
+       properties to be saved.  Don't save "started" property of
+       "ftp" method.
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name):
+       Use `make-tramp-file-name'.
+
+       * lisp/net/tramp.el (tramp-remote-file-name-spec-regexp):
+       Host could be empty.
+       (tramp-file-name-port-or-default): New defun.
+       (tramp-dissect-file-name): Simplify `make-tramp-file-name' call.
+       (tramp-handle-file-name-case-insensitive-p): Use a progress reporter.
+       (tramp-call-process, tramp-call-process-region):
+       Use `make-tramp-file-name'.
+
+       * test/lisp/net/tramp-tests.el (tramp-test03-file-name-defaults):
+       Revert change from 2017-05-24.
+       (tramp-test05-expand-file-name-relative): Let it also pass for
+       "adb" method.
+
+2017-05-28  Jürgen Hötzel  <address@hidden>
+
+       Fix Tramp for Android 7
+
+       * tramp-adb.el (tramp-adb-ls-toolbox-regexp):
+       Username part of prompt is empty on Android 7.
+       (tramp-adb-ls-toolbox-regexp):
+       Ignore addition links column on Android 7.
+       (tramp-adb-get-ls-command):
+       Dont use --color=none when using toybox (Android 7).  It's not
+       possible to disable coloring explicitly for toybox ls.
+
+2017-05-27  Svante Carl v. Erichsen  <address@hidden>  (tiny change)
+
+       Fix cl-indent for `loop' with :keywords (Bug#15543)
+
+       * lisp/emacs-lisp/cl-indent.el (lisp-extended-loop-p): Allow for
+       ":keywords".
+
+2017-05-27  Paul Eggert  <address@hidden>
+
+       Depromiscuify inotify with IN_MASK_ADD
+
+       Use IN_MASK_ADD instead of using a no-longer-promiscuous-enough
+       mask.  This simplifies the code and restores the ability to
+       use IN_ACCESS, IN_CLOSE_WRITE, IN_CLOSE_NOWRITE, and IN_OPEN
+       in some cases (Bug#26973).
+       * src/inotify.c (INOTIFY_DEFAULT_MASK): Remove.
+       (Finotify_add_watch): Use IN_MASK_ADD instead.
+
+2017-05-27  Paul Eggert  <address@hidden>
+
+       Restore inotify onlydir support
+
+       There was no need to remove it in the 2017-03-26 inotify change,
+       as it is like IN_DONT_FOLLOW and does not affect other watchers
+       for the same file.
+       * src/inotify.c (symbol_to_inotifymask, Finotify_add_watch)
+       (syms_of_inotify): Bring back onlydir.
+
+2017-05-27  Paul Eggert  <address@hidden>
+
+       Simplify computation of inotify mask
+
+       * src/inotify.c (add_watch): Accept uint32_t imask instead
+       of Lisp_Object aspect.  Caller changed.
+       (Finotify_add_watch): Use aspect_to_inotifymask earlier, to
+       simplify the code.
+
+2017-05-27  Eli Zaretskii  <address@hidden>
+
+       Improve the documentation of filesets
+
+       * doc/emacs/files.texi (Filesets): Fix the description of
+       fileset-init's effect on the menu bar.  (Bug#27015)
+
+2017-05-27  Philipp Stephani  <address@hidden>
+
+       Don't attempt to recover from undefined behavior in some cases
+
+       These functions can only be run in batch mode and exit Emacs on
+       return, so nothing can be recovered.  Disable unsafe recover
+       mechanisms so that we get real failures and good stack traces on
+       fatal signals.
+
+       * lisp/emacs-lisp/bytecomp.el (batch-byte-compile)
+       (batch-byte-recompile-directory):
+       * lisp/emacs-lisp/ert.el (ert-run-tests-batch-and-exit)
+       (ert-summarize-tests-batch-and-exit): Don't attempt to recover
+       from undefined behavior.
+
+2017-05-27  Philipp Stephani  <address@hidden>
+
+       Avoid another compiler warning on macOS
+
+       When configured with --without-ns, HAVE_NS is not defined on macOS,
+       thus 'memory-limit' calls the deprecated sbrk(2) function.  Avoid that
+       by using the pre-defined __APPLE__ preprocessor macro.
+
+       * src/alloc.c (Fmemory_limit): Never use sbrk(2) on macOS.
+
+2017-05-27  Luke Yen-Xun Lee  <address@hidden>
+
+       Fix ruler-mode text-scaling issues
+
+       * lisp/ruler-mode.el (ruler-mode-text-scaled-width): New function
+       for computing scaled text width.
+       (ruler-mode-text-scaled-window-hscroll)
+       (ruler-mode-text-scaled-window-width): Compute text scaled
+       `window-width' value.
+       (ruler-mode-mouse-grab-any-column, ruler-mode-mouse-add-tab-stop)
+       (ruler-mode-ruler): Change `window-hscroll' into
+       `ruler-mode-text-scaled-window-hscroll', and change `window-width'
+       into `ruler-mode-text-scaled-window-width'.
+
+2017-05-27  Martin Rudalics  <address@hidden>
+
+       Minor doc and doc-string fixes (Bug#27091)
+
+       * src/window.c (Fset_window_scroll_bars): Fix doc-string.
+
+       * doc/lispref/display.texi (Fringe Size/Pos, Scroll Bars)
+       (Display Margins): Mention that `set-window-buffer' may override
+       settings made by `set-window-fringes', `set-window-scroll-bars'
+       and `set-window-margins'.
+       * doc/lispref/windows.texi (Buffers and Windows): Fix doc of
+       `set-window-buffer'.
+
+2017-05-27  Eli Zaretskii  <address@hidden>
+
+       Avoid args-out-of-range errors on fringe clicks after "C-h k"
+
+       * src/keyboard.c (echo_truncate): Don't call Ftruncate if the echo
+       message is already shorter than NCHARS.  (Bug#27040)
+
+2017-05-27  Eli Zaretskii  <address@hidden>
+
+       Fix GUD "Stop" display when running pdb
+
+       * lisp/progmodes/gud.el (gud-menu-map): Don't call gdb-show-stop-p
+       when GUD mode is 'pdb'.  (Bug#27024)
+
+2017-05-27  Tak Kunihiro  <address@hidden>
+
+       Support drag and drop of region by mouse (Bug#26725)
+
+       * doc/emacs/frames.texi (Drag and Drop): Document support of drag
+       and drop region by mouse.
+       * lisp/mouse.el (mouse-drag-region): Call mouse-drag-and-drop-region
+       when start-event is on region.
+       (mouse-drag-and-drop-region): New function, moves the region by
+       (mouse-drag-and-drop-region): New defcustom.
+       * etc/NEWS: Mention mouse-drag-and-drop-region.
+
+2017-05-27  Noam Postavsky  <address@hidden>
+
+       * lisp/emacs-lisp/eieio.el (defclass): Fix quote in warning message.
+
+2017-05-27  Alan Third  <address@hidden>
+
+       Check if instancetype supported in ObjC
+
+       * configure.ac: Add check for instancetype.
+       * src/nsterm.h [!NATIVE_OBJC_INSTANCETYPE]: Define instancetype.
+
+2017-05-26  Wilfred Hughes  <address@hidden>
+
+       Mark keywordp as a safe, error-free function
+
+       * lisp/emacs-lisp/byte-opt.el: Add keywordp to
+         side-effect-and-error-free-fns.
+
+2017-05-26  Paul Eggert  <address@hidden>
+
+       * src/inotify.c: Add FIXME comments.
+
+2017-05-26  Andreas Politz  <address@hidden>
+
+       Fix Bug#26973
+
+       * src/inotify.c (INOTIFY_DEFAULT_MASK): Removing ACCESS, OPEN
+       and CLOSE events on order do let other processes also reading
+       from their descriptors.  (Bug#26973).
+
+2017-05-26  Michael Albinus  <address@hidden>
+
+       Remove Emacs 23 compat code from Tramp
+
+       * doc/misc/tramp.texi (Remote processes): Don't mention
+       Emacs 24 explicitely.
+       (Frequently Asked Questions): Remove Emacs 23 from
+       compatibility list.
+
+       * lisp/net/tramp.el:
+       * lisp/net/tramp-adb.el:
+       * lisp/net/tramp-cache.el:
+       * lisp/net/tramp-gvfs.el:
+       * lisp/net/tramp-sh.el:
+       * lisp/net/tramp-smb.el: Replace compat function calls.
+
+       * lisp/net/tramp-compat.el (remote-file-name-inhibit-cache)
+       (tramp-compat-condition-case-unless-debug)
+       (tramp-compat-copy-file, tramp-compat-copy-directory)
+       (tramp-compat-delete-file, tramp-compat-delete-directory)
+       (tramp-compat-process-live-p): Remove them.
+
+       * lisp/net/trampver.el: Make version check fit for Emacs 24.
+
+2017-05-26  Katsumi Yamaoka  <address@hidden>
+
+       Work for application/x-tar-gz and image/svg+xml
+
+       ;; Try inlining the attachment in the article <address@hidden>
+       ;; of bug#27078 in the Emacs bug list using Gnus.
+
+       * lisp/gnus/mm-archive.el (mm-archive-decoders):
+       Add a decoder for application/x-tar-gz.
+       (mm-dissect-archive): Error out if a decoder is not found.
+
+       * lisp/gnus/mm-decode.el (mm-get-image): Allow image/svg+xml.
+
+2017-05-26  Tino Calancha  <address@hidden>
+
+       test-calc-23889: Skip test on 32-bit platforms
+
+       This test fails on some 32-bit platforms as mentioned in
+       https://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00737.html
+       * test/lisp/calc/calc-tests.el (test-calc-23889): Skip when
+       the Lisp integer is not big enough.
+
+2017-05-25  Alan Third  <address@hidden>
+
+       Fix NS tooltips showing in the wrong place (bug#27053)
+
+       * src/nsfns.m (compute_tip_xy): Get current mouse position instead of
+       last recorded position.
+
+2017-05-25  Thomas Fitzsimmons  <address@hidden>
+
+       lisp/net/soap-client.el: Bump version to 3.1.2
+
+       * lisp/net/soap-client.el: Bump version to 3.1.2.
+
+2017-05-25  Thomas Fitzsimmons  <address@hidden>
+
+       Fix soap-inspect.el doc strings
+
+       * lisp/net/soap-inspect.el (soap-inspect-xs-attribute): Fix doc
+       string.
+       (soap-inspect-xs-attribute-group): Likewise.
+
+2017-05-25  Thomas Fitzsimmons  <address@hidden>
+
+       Fix two soap-client.el byte compilation warnings
+
+       * lisp/net/soap-client.el (url-http-response-status): Add defvar.
+       (soap-fetch-xml-from-url): Remove special declaration of
+       url-http-response-status.
+       (soap-invoke-internal): Likewise.
+
+2017-05-25  Thomas Fitzsimmons  <address@hidden>
+
+       lisp/net/soap-client.el: Require cl-lib version 0.6.1
+
+       * lisp/net/soap-client.el: Require cl-lib version 0.6.1.
+
+2017-05-25  Thomas Fitzsimmons  <address@hidden>
+           Stefan Monnier  <address@hidden>
+
+       lisp/net/soap-client.el: Shorten some long lines
+
+       * lisp/net/soap-client.el (soap-encode-xs-element): Remove
+       unnecessary progn.
+       (soap-xs-add-union): Wrap long line.
+
+2017-05-25  Alex Harsanyi  <address@hidden>
+           Stefan Monnier  <address@hidden>
+
+       Remove cl dependency in soap-client.el and soap-inspect.el
+
+       * lisp/net/soap-inspect.el: Replace cl library with cl-lib, case
+       with cl-case, destructuring-bind with cl-destructuring-bind and
+       loop with cl-loop.
+
+       * lisp/net/soap-client.el: Replace cl library with cl-lib,
+       defstruct with cl-defstruct, assert with cl-assert, case with
+       cl-case, ecase with cl-ecase, loop with cl-loop and
+       destructuring-bind with cl-destructuring-bind.
+
+2017-05-25  Michael Albinus  <address@hidden>
+
+       Switch Tramp to cl-lib
+
+       * lisp/net/tramp-compat.el (cl-lib): Require it rather than cl.
+
+       * lisp/net/tramp-ftp.el: Don't require cl.
+
+       * lisp/net/tramp-gvfs.el: Don't require cl.
+       (tramp-gvfs-handler-mounted-unmounted)
+       (tramp-gvfs-connection-mounted-p): Use `cl-*' macros.
+
+       * lisp/net/tramp-sh.el: Don't require cl.
+       (tramp-set-file-uid-gid): Use `shell-quote-argument'.
+       (tramp-sh-gvfs-monitor-dir-process-filter)
+       (tramp-sh-inotifywait-process-filter): Use `cl-*' macros.
+
+       * lisp/net/tramp-smb.el: Don't require cl.
+       (tramp-smb-read-file-entry): Use `cl-*' macros.
+
+       * lisp/net/tramp.el (cl-lib): Require it rather than cl.
+       (tramp-parse-file, tramp-parse-shostkeys-sknownhosts)
+       (tramp-parse-passwd, tramp-parse-etc-group)
+       (tramp-parse-putty): Use `cl-*' macros.
+
+2017-05-25  Paul Eggert  <address@hidden>
+
+       * CONTRIBUTE: Suggest autogen.sh's 'all' operand.
+
+2017-05-25  Paul Eggert  <address@hidden>
+
+       Port ATTRIBUTE_MAY_ALIAS to recent icc
+
+       * src/conf_post.h (ATTRIBUTE_MAY_ALIAS) [__ICC]:
+       Define to empty.  Otherwise, icc (ICC) 17.0.4 20170411 says
+       “warning #2621: attribute "__may_alias__" does not apply here”
+       for constructs like ‘struct sockaddr *sa = (whatever);
+       struct sockaddr_in __attribute__ ((__may_alias__)) *sin
+       = (struct sockaddr_in *) sa;’.
+
+2017-05-25  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-05-25 port to recent icc
+       * lib/intprops.h: Copy from gnulib.
+
+2017-05-24  Michael Albinus  <address@hidden>
+
+       Fix Tramp for python.el
+
+       * lisp/net/tramp.el (tramp-get-connection-process): Check,
+       that VEC is a `tramp-file-name' structure.
+
+2017-05-24  Alan Third  <address@hidden>
+
+       Raise version of macOS we define instancetype for (bug#27059)
+
+       * src/nsterm.m: Increase supported version number.
+
+2017-05-24  Alan Third  <address@hidden>
+
+       Define new types on macOS 10.6 (bug#27041)
+
+       * src/nsterm.h: Enable instancetype typedef for older macOS, and use
+       correct NSUInteger instead of int.
+
+2017-05-24  Glenn Morris  <address@hidden>
+
+       Don't autoload new dns-mode command
+
+       * lisp/textmodes/dns-mode.el (dns-mode-ipv6-to-nibbles):
+       Remove autoload cookie.
+
+2017-05-24  Stefan Monnier  <address@hidden>
+
+       * src/fns.c (sxhash): Fix records hashing (bug#27057, bug#26639)
+
+       (sxhash_vector): Make it work on pseudo vectors as well.
+       (sxhash): Treat records like vectors.
+
+2017-05-24  Michael Albinus  <address@hidden>
+
+       Adapt tramp-tests.el according to new defstruct
+
+       * test/lisp/net/tramp-tests.el (tramp-test03-file-name-defaults):
+       Fix test according to new defstruct.
+       (tramp-test29-environment-variables-and-port-numbers):
+       Expect it now as passed.  Cleanup at the end.
+
+2017-05-24  Michael Albinus  <address@hidden>
+
+       Introduce a defstruct `tramp-file-name' as central data structure.
+
+       This solves also Bug#27009.
+
+       * lisp/net/tramp.el (tramp-current-domain)
+       (tramp-current-port): New defvars.
+       (tramp-file-name): New defstruct.
+       (tramp-file-name-user-domain, tramp-file-name-host-port)
+       (tramp-file-name-equal-p): New defuns.
+       (tramp-file-name-p, tramp-file-name-method)
+       (tramp-file-name-user, tramp-file-name-host)
+       (tramp-file-name-localname, tramp-file-name-hop)
+       (tramp-file-name-real-user, tramp-file-name-domain)
+       (tramp-file-name-real-host, tramp-file-name-port):
+       Remove defuns.  They are provided by the defstruct, or not
+       needed anymore.
+       (tramp-dissect-file-name, tramp-buffer-name)
+       (tramp-make-tramp-file-name, tramp-get-buffer)
+       (tramp-set-connection-local-variables)
+       (tramp-debug-buffer-name, tramp-message)
+       (tramp-error-with-buffer, with-parsed-tramp-file-name)
+       (tramp-completion-dissect-file-name1)
+       (tramp-handle-file-name-as-directory)
+       (tramp-handle-file-name-directory)
+       (tramp-handle-file-remote-p, tramp-handle-file-symlink-p)
+       (tramp-handle-find-backup-file-name)
+       (tramp-handle-insert-file-contents, tramp-process-actions)
+       (tramp-check-cached-permissions, tramp-local-host-p)
+       (tramp-get-remote-tmpdir, tramp-call-process)
+       (tramp-call-process-region, tramp-read-passwd)
+       (tramp-clear-passwd):
+       * lisp/net/tramp-adb.el (tramp-adb-parse-device-names)
+       (tramp-adb-handle-expand-file-name)
+       (tramp-adb-handle-file-truename, tramp-adb-handle-copy-file)
+       (tramp-adb-handle-process-file)
+       (tramp-adb-maybe-open-connection):
+       * lisp/net/tramp-cache.el (tramp-get-hash-table)
+       (tramp-get-file-property, tramp-set-file-property)
+       (tramp-flush-file-property, tramp-flush-directory-property)
+       (tramp-get-connection-property)
+       (tramp-set-connection-property, tramp-connection-property-p)
+       (tramp-flush-connection-property, tramp-cache-print)
+       (tramp-list-connections, tramp-dump-connection-properties)
+       (tramp-parse-connection-properties):
+       * lisp/net/tramp-cmds.el (tramp-cleanup-connection):
+       * lisp/net/tramp-ftp.el (tramp-ftp-file-name-handler):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name)
+       (tramp-gvfs-url-file-name, tramp-gvfs-handler-askpassword)
+       (tramp-gvfs-handler-mounted-unmounted)
+       (tramp-gvfs-mount-spec, tramp-gvfs-get-remote-uid)
+       (tramp-gvfs-get-remote-gid)
+       (tramp-gvfs-maybe-open-connection):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-file-truename)
+       (tramp-do-copy-or-rename-file-out-of-band)
+       (tramp-sh-handle-expand-file-name)
+       (tramp-sh-handle-start-file-process)
+       (tramp-sh-handle-process-file, tramp-compute-multi-hops)
+       (tramp-maybe-open-connection)
+       (tramp-make-copy-program-file-name, tramp-get-remote-path)
+       (tramp-get-inline-coding):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
+       (tramp-smb-handle-expand-file-name)
+       (tramp-smb-handle-file-acl, tramp-smb-handle-process-file)
+       (tramp-smb-handle-set-file-acl)
+       (tramp-smb-maybe-open-connection): Adapt according to defstruct.
+
+2017-05-24  Stephen Berman  <address@hidden>
+
+       Fix and improve UI of scroll bar menu (bug#27047)
+
+       In addition, since the Emacs manual writes "scroll bar", "tool
+       bar" and "menu bar", use this convention in the Show/Hide menues
+       and tooltips as well.
+
+       * lisp/menu-bar.el (menu-bar-showhide-scroll-bar-menu): Make
+       pressing a radio button in the menu actually show that it was
+       pressed.  Replace the two radio buttons to turn the horizontal
+       scroll bar on and off with a single check-box toggle and add a
+       separator between this and the vertical scroll bar radio
+       buttons.  Use conventional spelling.
+       (menu-bar-horizontal-scroll-bar)
+       (menu-bar-no-horizontal-scroll-bar): Remove, since now unused.
+       (menu-bar-showhide-tool-bar-menu, menu-bar-showhide-menu)
+       (menu-bar-mode): Use conventional spelling.
+
+2017-05-24  Katsumi Yamaoka  <address@hidden>
+
+       Remove string-as-unibyte
+
+       * lisp/gnus/canlock.el (canlock-sha1): Remove useless variable.
+       (canlock-make-cancel-key): No need to use string-as-unibyte.
+
+2017-05-24  Tino Calancha  <address@hidden>
+
+       Fix concatenation of "^" with diff-file-junk-re
+
+       This regexp contains "\\|", thus a concatenation
+       of "^" with it just matches the beginning of line for the
+       first alternative in diff-file-junk-re.
+       * lisp/vc/ediff-ptch.el (ediff-map-patch-buffer): Concat "^" with
+       diff-file-junk-re wrapped in a shy group.
+
+2017-05-24  Glenn Morris  <address@hidden>
+
+       Suppress intermittent test failure on hydra
+
+       * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
+       (eieio-test-37-obsolete-name-in-constructor): Skip on hydra.
+
+2017-05-24  Peder O. Klingenberg  <address@hidden>
+
+       New dns-mode command for IPv6 address conversion
+
+       This converts IPv6 addresses to a format suitable for
+       reverse lookup zone files.  (Bug#26820)
+       * lisp/textmodes/dns-mode.el (dns-mode-map, dns-mode-menu):
+       Add dns-mode-ipv6-to-nibbles.
+       (dns-mode-ipv6-to-nibbles, dns-mode-reverse-and-expand-ipv6):
+       New functions.
+       * test/lisp/dns-mode-tests.el: New file.
+
+2017-05-24  Noam Postavsky  <address@hidden>
+
+       Protect *Backtrace* from being killed (Bug#26650)
+
+       * lisp/emacs-lisp/debug.el (debugger-mode): Call `top-level' in
+       `kill-buffer-hook'.
+
+2017-05-24  Noam Postavsky  <address@hidden>
+
+       Give a name to lisp-mode's adaptive-fill-function (Bug#22730)
+
+       * lisp/emacs-lisp/lisp-mode.el (lisp-adaptive-fill): New function.
+       (lisp-mode-variables): Use it.
+
+2017-05-23  Philipp Stephani  <address@hidden>
+
+       vc-hg.el: Silence byte compiler warning
+
+       * lisp/vc/vc-hg.el (compilation-arguments): Forward-declare.
+
+2017-05-23  Paul Eggert  <address@hidden>
+
+       Don't warn about missing brances on macOS
+
+       On macOS, removing -Wmissing-braces is not enough; the warning has to
+       be disabled explicitly.
+
+2017-05-23  Wilfred Hughes  <address@hidden>
+
+       Don't treat ' as a string delimiter in RPM spec files
+
+       ' is commonly used as an apostrophe in the prose sections of spec
+       files, which was erroneously highlighted as strings. See for example
+       http://kmymoney2.sourceforge.net/phb/rpm-example.html
+
+       * lisp/progmodes/sh-script.el (sh-mode-syntax-table): Treat ' as
+         punctuation in RPM spec files.
+
+2017-05-23  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-indent.el: Don't require CL.  Use lexical-binding.
+
+       (common-lisp-indent-function-1): Remove unused var `last-point`.
+       (lisp-indent-error-function): Move defvar before first use.
+
+2017-05-23  Stefan Monnier  <address@hidden>
+
+       * lisp/international/rfc1843.el: Don't require CL.  Use lexical-binding.
+
+       * lisp/international/utf7.el: Don't require CL.  Use lexical-binding.
+
+       * lisp/net/shr.el: Use cl-lib instead of cl.
+
+2017-05-23  Stefan Monnier  <address@hidden>
+
+       * test/src/fns-tests.el, test/src/data-tests.el: Don't use `cl`
+
+       * test/src/data-tests.el (binding-test-manual, 
binding-test-setq-default)
+       (binding-test-makunbound, data-tests-varalias-watchers)
+       (data-tests-local-variable-watchers): Silence compiler warnings.
+
+2017-05-23  Stefan Monnier  <address@hidden>
+
+       * lisp/vc/vc-hg.el (compilation-directory): Silence byte-compiler.
+
+2017-05-23  Alan Third  <address@hidden>
+
+       Fix GNUstep build
+
+       * src/nsterm.h [NS_IMPL_GNUSTEP]: Add typedefs for Cocoa-only types.
+       (NSWindowStyleMaskUtilityWindow): #define to NSUtilityWindowMask in
+       GNUstep and old versions of macOS.
+       * src/nsfns.m (ns-set-mouse-absolute-pixel-position): Function only
+       works in cocoa, not GNUstep.
+
+2017-05-23  Michael Albinus  <address@hidden>
+
+       Add test for Bug#27009 in tramp-tests.el
+
+       * lisp/net/tramp-sh.el (tramp-compute-multi-hops):
+       Check `tramp-file-name-real-host' for being a local host.
+
+       * lisp/net/tramp.el (tramp-postfix-host-regexp): Fix docstring.
+
+       * test/lisp/net/tramp-tests.el (tramp-test-temporary-file-directory):
+       Declare default host for mock method.
+       (tramp-test29-environment-variables-and-port-numbers): New test.
+
+2017-05-23  Glenn Morris  <address@hidden>
+
+       Don't advertise s_client in tls.el docs
+
+       * lisp/net/tls.el (tls-end-of-info, tls-success, tls-untrusted):
+       Don't mention s_client in docs.
+
+       (cherry picked from commit 622c24a2b75a564b9861fc3ca7a7878741e8568d)
+
+2017-05-23  Rob Browning  <address@hidden>
+
+       Remove s_client usage from tls.el
+
+       * lisp/net/tls.el (tls-program, tls-checktrust): Remove s_client.
+       Ref http://bugs.debian.org/766397
+       http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00803.html
+
+
+       (cherry picked from commit 6e45de6bacc508db11b15b2c8ba86aad8c0570df)
+
+2017-05-22  Stefan Monnier  <address@hidden>
+
+       * lisp/mail/rfc2047.el (rfc2047-decode-encoded-words): Set `words` to 
nil.
+
+2017-05-22  Sam Steingold  <address@hidden>
+
+       Fix "g" in hg&git push&pull buffers
+
+       lisp/vc/vc-git.el (vc-git--pushpull): Set locally
+       `compilation-directory' and `compilation-arguments'.
+       lisp/vc/vc-hg.el (vc-hg--pushpull): Likewise.
+
+2017-05-22  Eli Zaretskii  <address@hidden>
+
+       Fix current-line hscrolling in buffers with header-line
+
+       * src/xdisp.c (display_line): When testing the glyph row's
+       vertical position against the cursor position, account for header
+       line, if any.  (Bug#27014)
+
+2017-05-22  Stefan Monnier  <address@hidden>
+
+       * lisp/mail/rfc2047.el: Use cl-lib & lexical-binding, silence warning
+
+       (rfc2047-decode-encoded-words): Use dolist.
+       (rfc2047-decode-string): Avoid string-to-multibyte.
+       (rfc2047-pad-base64): Use pcase.
+
+2017-05-21  Dima Kogan  <address@hidden>
+
+       Make ff-find-other-file symmetric for C++ (Bug#20192)
+
+       `cc-other-file-alist' has a mapping of file extensions to switch
+       between headers and sources, but the mappings weren't completely
+       symmetric.  In particular .cpp would map to .hh, but .hh would NOT map
+       to .cpp.
+
+       * lisp/find-file.el (cc-other-file-alist): Map ".hh" and ".h" to all
+       C++ extensions to make them symmetric with the C++ extensions that map
+       to them.  This lets repeated invocations of `ff-find-other-file'
+       toggle between all pairs of sources/headers.
+
+2017-05-21  Philipp Stephani  <address@hidden>
+
+       Fix definition of whitespace in JSON
+
+       See
+       https://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00115.html.
+
+       * lisp/json.el (json-skip-whitespace): Fix definition.
+       * test/lisp/json-tests.el (test-json-skip-whitespace): Adapt unit
+       test.
+
+2017-05-21  Philipp Stephani  <address@hidden>
+
+       Improve module function terminology
+
+       Module functions were previously called "function environments" when
+       the functions created by module_make_functions were lambdas.  Now we
+       can adapt the terminology and rename "function environments" to
+       "module functions" everywhere.  This also removes the name clash
+       between "function environments" and "module environments."
+
+       * src/emacs-module.c (module_make_function): Adapt comment to reality;
+       stop using "function environment" terminology.
+       (funcall_module): Stop using "function environment" terminology.
+
+2017-05-21  Philipp Stephani  <address@hidden>
+
+       Avoid uninitialized read
+
+       * src/nsterm.m (ns_read_socket): Don't read uninitialized variable 
'nevents'.
+
+2017-05-21  Philipp Stephani  <address@hidden>
+
+       Fix call of registerServicesMenuSendTypes
+
+       * src/nsterm.m (initFrameFromEmacs:): nil is not allowed for
+       returnTypes; pass an empty array instead.
+
+2017-05-21  Philipp Stephani  <address@hidden>
+
+       Clean up code around 'ns-list-services'
+
+       * src/nsfns.m (Fns_list_services): Remove unreachable code.  In this
+       branch NS_IMPL_COCOA cannot be defined.
+       (interpret_services_menu): Define only if called to avoid compiler
+       warnings about unused static functions.
+
+2017-05-21  Philipp Stephani  <address@hidden>
+
+       Remove unused automatic variables
+
+       * nsterm.m (ns_read_socket):
+       * macfont.m (macfont_open): Remove unused automatic variables.
+
+2017-05-21  Philipp Stephani  <address@hidden>
+
+       Nextstep: Replace deprecated enumerators
+
+       * src/nsmenu.m (initWithContentRect:styleMask:backing:defer:): Replace
+       deprecated enumerator.
+
+2017-05-21  Philipp Stephani  <address@hidden>
+
+       Nextstep: remove some deprecated method calls
+
+       * src/nsterm.m (mouseDown:):
+       * src/nsmenu.m (runMenuAt:forFrame:keymaps:): Remove call to
+       deprecated method.  The return value is always nil.
+       * src/macfont.m (mac_font_shape_1): Replace call to deprecated method.
+
+2017-05-21  Philipp Stephani  <address@hidden>
+
+       Remove trailing semicolons in method definitions
+
+       These semicolons are ignored and cause compiler warnings.
+
+       * src/nsimage.m (setPixelAtX:Y:toRed:green:blue:alpha:):
+       * src/nsterm.m (init, updateFrameSize:):
+       (setFrame:): Remove trailing semicolon.
+
+2017-05-21  Philipp Stephani  <address@hidden>
+
+       Remove calls to deprecated setUsesScreenFonts
+
+       * src/macfont.m (mac_screen_font_get_metrics): Don't call 
setUsesScreenFonts.
+       (mac_font_shape_1): Remove screen_font_p parameter.
+       (mac_screen_font_shape): Remove screen_font_p argument.
+
+2017-05-21  Philipp Stephani  <address@hidden>
+
+       Make a function static that isn't used outside this file
+
+       * src/kqueue.c (kqueue_directory_listing): Make static.
+
+2017-05-21  Philipp Stephani  <address@hidden>
+
+       Use NSCharacterCollection instead of CTCharacterCollection
+
+       This should not cause behavior changes, but fixes a compiler warning
+       due to implicit conversions between the enums.
+
+       * src/macfont.m (macfont_cache, macfont_lookup_cache)
+       (macfont_get_glyph_for_cid, macfont_get_uvs_table)
+       (macfont_variation_glyphs): Use NSCharacterCollection.
+
+2017-05-21  Philipp Stephani  <address@hidden>
+
+       Remove unused function print_regions
+
+2017-05-21  Philipp Stephani  <address@hidden>
+
+       Declare Nextstep unexec functions in lisp.h
+
+       This removes compiler warnings about missing prototypes on macOS.
+
+2017-05-21  Philipp Stephani  <address@hidden>
+
+       Nextstep: Use instancetype explicit return type
+
+       This removes compiler warnings on macOS and improves type safety.
+
+       * nsterm.m (initFrameFromEmacs:):
+       (menuDown:):
+       (toolbarClicked:):
+       (toggleToolbar:):
+       (setMiniwindowImage:):
+       (initFrame:window:):
+       (condemn, reprieve, setPosition:portion:whole:):
+       (repeatScroll:):
+       * nsmenu.m (initWithTitle:):
+       (initWithTitle:frame:):
+       (initForView:withIdentifier:):
+       (init, initWithContentRect:styleMask:backing:defer:):
+       (initFromContents:isQuestion:):
+       * nsimage.m (allocInitFromFile:):
+       (initFromXBM:width:height:fg:bg:):
+       (setXBMColor:):
+       (initForXPMWithDepth:width:height:): Use instancetype as return
+       type instead of implicit id.
+
+2017-05-21  Tino Calancha  <address@hidden>
+
+       * lisp/emacs-lisp/package.el (package-delete): Delete readme file as 
well.
+
+2017-05-21  Alan Mackenzie  <address@hidden>
+
+       Enhance mode-line percentage offset facility, with "%o" and "%q"
+
+       "%o" will display the percentage "travel" of the window through the 
buffer.
+       "%q" will display a combination of the percentage offsets of the top and
+       bottom of the window.  The new user option mode-line-percent-position 
will
+       facilitate selecting a setting for this part of the mode line.
+
+       * lisp/bindings.el (mode-line-percent-position): New customizable user 
option.
+       (mode-line-position): Use mode-line-percent-position in place of "%p", 
etc.
+
+       * src/xdisp.c (decode_mode_spec): Add handlers for "%o" and "%q".
+
+       * doc/lispref/modes.texi (Mode Line Variables): Document
+       mode-line-percent-position.
+       (%-Constructs): Document %o and %q.
+
+       * etc/NEWS: Add an entry for these new facilities.
+
+2017-05-21  Paul Eggert  <address@hidden>
+
+       Work around macOS bug in create_process, too
+
+       * src/process.c (create_process) [DARWIN_OS]:
+       Reset SIGCHLD after vfork here, too.
+
+2017-05-21  Paul Eggert  <address@hidden>
+
+       Work around macOS bug with vforked child
+
+       * src/callproc.c (call_process) [DARWIN_OS]:
+       Include workaround for apparent macOS bug.
+
+2017-05-21  Paul Eggert  <address@hidden>
+
+       Pacify --enable-gcc-warnings without modules
+
+       * src/print.c (print_vectorlike): New function, taken from
+       part of print_object.  This one is indented properly, and
+       pacifies --enable-gcc-warnings by using a default case
+       instead of listing all the enum values, sometimes
+       incompletely.
+       (print_object): Use it.
+
+2017-05-21  Paul Eggert  <address@hidden>
+
+       Remove DARWIN_OS_CASE_SENSITIVE_FIXME code
+
+       It does not appear to be needed (Bug#24441).
+       * etc/PROBLEMS: Remove DARWIN_OS_CASE_SENSITIVE_FIXME stuff.
+       * src/fileio.c (file_name_case_insensitive_p):
+       Remove DARWIN_OS_CASE_SENSITIVE_FIXME code.
+
+2017-05-21  Paul Eggert  <address@hidden>
+
+       Narrow DARWIN_OS_CASE_SENSITIVE_FIXME to 1 choice
+
+       * etc/PROBLEMS: Document this (Bug#24441).
+       * src/fileio.c (file_name_case_insensitive_p): Prefer pathconf
+       with _PC_CASE_SENSITIVE, if it works, to
+       DARWIN_OS_CASE_SENSITIVE_FIXME code.
+       Support just one method for DARWIN_OS_CASE_SENSITIVE_FIXME,
+       which matches the Apple documentation more precisely.
+
+2017-05-21  Tom Tromey  <address@hidden>
+
+       Fix mhtml-mode fontification bug
+
+       Bug#26922
+       * lisp/textmodes/mhtml-mode.el (mhtml-syntax-propertize): Call
+       sgml-syntax-propertize-inside if not in a submode.
+       * test/manual/indent/html-multi-4.html: New file.
+
+2017-05-21  Ryan  <address@hidden>  (tiny change)
+
+       Fix ido-enable-dot-prefix for empty choice (Bug#26997)
+
+       * lisp/ido.el (ido-set-matches-1): Only check first character of
+       item if it's non-empty.
+
+2017-05-21  Ari Roponen  <address@hidden>
+
+       * lisp/svg.el (svg-line): Fix x/y typo.  (Bug#26953)
+
+2017-05-21  Glenn Morris  <address@hidden>
+
+       Prevent loading vc-bzr writing to ~/.bzr.log
+
+       * lisp/vc/vc-bzr.el (vc-bzr-status-switches): Disable bzr logging.
+
+2017-05-21  Glenn Morris  <address@hidden>
+
+       Prevent running vc-tests writing to ~/.bzr.log
+
+       * test/lisp/vc/vc-tests.el (vc-test--create-repo)
+       (vc-test--register, vc-test--working-revision)
+       (vc-test--checkout-model): Set temporary BZR_HOME, to disable logging.
+
+2017-05-21  Noam Postavsky  <address@hidden>
+
+       Don't end non-hook variable with "-hook" (Bug#26623)
+
+       * lisp/follow.el (follow-inside-post-command-hook-call): Renamed from
+       follow-inside-post-command-hook, update uses.
+
+2017-05-21  Charles A. Roelli  <address@hidden>
+
+       Fix macOS mouse movement
+
+       * lisp/frame.el (ns-set-mouse-absolute-pixel-position): New
+       function (Lisp).
+       (set-mouse-absolute-pixel-position): Change it to call
+       `ns-set-mouse-absolute-pixel-position' on macOS.
+       * src/nsfns.m (Fns_set_mouse_absolute_pixel_position): New
+       function.
+       * src/nsterm.h (NS_PARENT_WINDOW_TOP_POS): Use the primary
+       screen's height as a base for calculating global coordinates.
+       * src/nsterm.m (frame_set_mouse_pixel_position): Fix it in macOS.
+       * test/lisp/mouse-tests.el (bug26816-mouse-frame-movement): Test
+       movement of mouse relative to frame.
+
+2017-05-21  Alan Third  <address@hidden>
+
+       Show tooltip on correct screen (bug#26905)
+
+       * src/nsfns.m (compute_tip_xy): Find the correct screen for the
+       tooltip and constrain it to that screen.
+
+2017-05-21  Andreas Politz  <address@hidden>
+
+       Don't save unrelated buffers before recompiling directory (Bug#25964)
+
+       * lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): Only save
+       buffers visiting lisp files under the directory being compiled.
+
+2017-05-20  Paul Eggert  <address@hidden>
+
+       Minor fixes for arity ranges in emacs modules
+
+       * src/emacs-module.c (module_make_function):
+       Check that arities fit into fixnums, for func-arity’s benefit.
+       (funcall_module): Avoid unnecessary conversion to EMACS_INT.
+       (module_function_arity): Allow arities greater than SHRT_MAX.
+
+2017-05-20  Philipp Stephani  <address@hidden>
+
+       Reimplement module functions
+
+       Instead of a lambda, create a new type containing all data required to
+       call the function, and support it in the evaluator.  Because this type
+       now also needs to store the function documentation, it is too big for
+       Lisp_Misc; use a pseudovector instead.  That also has the nice benefit
+       that we don't have to add special support to the garbage collector.
+
+       Since the new type is user-visible, give it a predicate.
+
+       Now we can easily support 'help-function-args' and 'func-arity'; add
+       unit tests for these.
+
+       * src/lisp.h (allocate_module_function, MODULE_FUNCTIONP)
+       (XMODULE_FUNCTION): New pseudovector type 'module function'.
+
+       * src/eval.c (FUNCTIONP): Also treat module functions as functions.
+       (funcall_lambda, Ffuncall, eval_sub): Add support for calling module
+       functions.
+       (Ffunc_arity): Add support for detecting the arity of module
+       functions.
+
+       * src/emacs-module.c (module_make_function): Adapt to new structure.
+       Return module function object directly instead of wrapping it in a
+       lambda; remove FIXME.
+       (funcall_module): New function to call module functions.  Replaces
+       `internal--module-call' and is called directly from eval.c.
+       (syms_of_module): Remove internal helper function, which is no longer
+       needed.
+       (module_function_arity): New helper function.
+
+       * src/data.c (Ftype_of): Adapt to new implementation.
+       (Fmodule_function_p, syms_of_data): New user-visible function.  Now
+       that module functions are first-class objects, they deserve a
+       predicate.  Define it even if not compiled with --enable-modules so
+       that Lisp code doesn't have to check for the function's existence.
+
+       * src/doc.c (Fdocumentation): Support module functions.
+
+       * src/print.c (print_object): Adapt to new implementation.
+
+       * src/alloc.c (mark_object): Specialized garbage collector support is
+       no longer needed.
+
+       * lisp/help.el (help-function-arglist): Support module functions.
+       While there, simplify the arity calculation by using `func-arity',
+       which does the right thing for all kinds of functions.
+
+       * test/data/emacs-module/mod-test.c: Amend docstring so we can test
+       the argument list.
+
+       * test/src/emacs-module-tests.el (mod-test-sum-docstring): Adapt to
+       new docstring.
+       (mod-test-non-local-exit-signal-test): Because `internal--module-call'
+       is gone, the backtrace has changed and no longer leaks the
+       implementation.
+       (module--func-arity): New test for `func-arity'.
+       (module--help-function-arglist): New test for `help-function-arglist'.
+
+2017-05-20  Eli Zaretskii  <address@hidden>
+
+       Avoid crashes in GC due to unescaped characters warning
+
+       * src/lread.c (load_warn_unescaped_character_literals): Don't cons
+       Lisp objects from stack-based variables.  (Bug#26961)
+
+2017-05-20  Charles A. Roelli  <address@hidden>
+
+       New commands: find-library-other-window, find-library-other-frame
+
+       * lisp/emacs-lisp/find-func.el (find-library-other-window)
+       (find-library-other-frame): New commands to complement the
+       existing 'find-library' command.  (Bug#26712)
+       (read-library-name): New function to read a library name.
+       * etc/NEWS: Mention 'find-library-other-window' and
+       'find-library-other-frame'.
+
+2017-05-20  Eli Zaretskii  <address@hidden>
+
+       Fix automatic hscrolling of only the current line
+
+       * src/xdisp.c (display_line): When hscrolling only the current
+       line, increment iterator's first_visible_x and last_visible_x
+       values to account for the hscroll.  This propagates the hscroll
+       effect on the iterator geometry all the way down to the
+       subroutines called by display_line, and avoids scrolling bugs
+       under large hscroll values.  (Bug#26994)
+
+2017-05-20  Paul Eggert  <address@hidden>
+
+       Add handlerlist assertion to module code
+
+       * src/emacs-module.c (module_reset_handlerlist):
+       Check handlerlist.  Suggested by Philipp Stephani in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00521.html
+
+2017-05-20  Paul Eggert  <address@hidden>
+
+       Port --enable-gcc-warnings to clang 3.9.1
+
+       * configure.ac (WERROR_CFLAGS): Omit -Wmissing-braces for Clang,
+       to shut off a false alarm.  Problem reportd by Philipp Stephani in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00521.html
+
+2017-05-20  Noam Postavsky  <address@hidden>
+
+       Limit integers printed as characters (Bug#16828)
+
+       * lisp/simple.el (eval-expression-print-maximum-character): New
+       variable.
+       (eval-expression-print-format): Only display value as character if
+       it's less than or equal to `eval-expression-print-maximum-character'.
+       (eval-expression-get-print-arguments): Check
+       eval-expression-print-maximum-character, allow negative arg to
+       override it.
+       (eval-expression):
+       * lisp/progmodes/elisp-mode.el (elisp--eval-last-sexp):
+       (elisp--eval-last-sexp-print-value): Handle new variable.
+       * doc/emacs/building.texi (Lisp Eval): Document new variable and
+       behavior.
+       * etc/NEWS: Announce it.
+       * test/lisp/progmodes/elisp-mode-tests.el
+       (eval-last-sexp-print-format-small-int)
+       (eval-last-sexp-print-format-small-int-echo)
+       (eval-last-sexp-print-format-large-int)
+       (eval-last-sexp-print-format-large-int-echo):
+       * test/lisp/simple-tests.el (eval-expression-print-format-small-int)
+       (eval-expression-print-format-small-int-echo)
+       (eval-expression-print-format-large-int)
+       (eval-expression-print-format-large-int-echo): New tests.
+
+2017-05-20  Noam Postavsky  <address@hidden>
+
+       Refactor lisp eval result printing
+
+       * lisp/simple.el (eval-expression-print-format): Don't check
+       `standard-output' or `current-prefix-arg'.
+       (eval-expression-get-print-arguments): New function, centralizes
+       decision about how to print results of `eval-expression' and
+       `eval-last-sexp'.
+       (eval-expression):
+       * lisp/progmodes/elisp-mode.el (elisp--eval-last-sexp-print-value):
+       Use it.
+
+2017-05-19  Paul Eggert  <address@hidden>
+
+       Check that signed right shift is arithmetic
+
+       * src/data.c (ash_lsh_impl): Verify that signed right shift is
+       arithmetic; if we run across a compiler that uses a logical shift
+       we’ll need to complicate the code before removing this
+       compile-time check.  Help the compiler do common subexpression
+       elimination better.
+
+2017-05-19  Paul Eggert  <address@hidden>
+
+       Minor .gitignore fixes
+
+       * .gitignore: modules/mod-test/Makefile was renamed to
+       test/data/emacs-module/Makefile.
+       Omit [0-9]*.core, subsumed by *.core.
+       test/indent/*.new was renamed to test/manual/indent/*.new.
+       Add *.swp, for Vim.
+
+2017-05-19  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/package.el: Quote `package-desc' in docstrings
+
+2017-05-19  Eli Zaretskii  <address@hidden>
+
+       Describe problems with Microsoft Intellipoint
+
+       * etc/PROBLEMS: Describe problems with Microsoft Intellipoint and
+       mouse-2 events.  For the details, see
+       
http://lists.gnu.org/archive/html/help-emacs-windows/2017-05/msg00009.html.
+
+2017-05-19  Nick Helm  <address@hidden>  (tiny change)
+
+       Fix turning off whitespace-mode
+
+       * lisp/whitespace.el (whitespace-display-char-on): Correct the way
+       the original buffer-display-table is saved and restored when
+       global-whitespace-mode is active.  (Bug#26892)
+
+       * test/lisp/whitespace-tests.el
+       (whitespace-tests-whitespace-mode-on): New function.
+       (whitespace-tests-display-tables): New test.
+
+2017-05-19  Michael Albinus  <address@hidden>
+
+       Minor tweaks in tramp-tests.el
+
+       * test/lisp/net/tramp-tests.el (tramp--test-afp-or-smb-p): New defun.
+       (tramp-test05-expand-file-name-relative): Use it.
+       (tramp-test38-unload): Run only in batch mode.
+
+2017-05-19  Michael Albinus  <address@hidden>
+
+       Fix a problem with OpenSSH 7 in Tramp
+
+       * lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options): Set also
+       "ConnectTimeout" during test.  Otherwise, OpenSSH 7 will hang.
+
+2017-05-19  Jean-Christophe Helary  <address@hidden>
+
+       Improve documentation of 'split-string'
+
+       * doc/lispref/strings.texi (Creating Strings): Rearrange text to
+       make it more readable.  (Bug#26925)
+
+2017-05-19  Ruslan Bekenev  <address@hidden>
+
+       Fix typos in doc strings
+
+       * lisp/mail/rfc2231.el (rfc2231-encode-string):
+       * lisp/mail/rfc2047.el (rfc2047-encode-parameter):
+       * lisp/mail/rfc2045.el (rfc2045-encode-string): Fix typos in doc
+       strings.  (Bug#26103)
+
+2017-05-19  Philipp Stephani  <address@hidden>
+
+       Fix module tests on some systems
+
+       If dladdr(3) isn't available or didn't work, the printed
+       representation of a module function will not include the file name,
+       but only the address.  Make the tests pass in that case.
+
+       * test/src/emacs-module-tests.el (module-function-object): Fix match for
+       module function printed representation
+
+2017-05-19  Jean-Christophe Helary  <address@hidden>
+
+       Add an optional arguments to string-trim
+
+       * lisp/emacs-lisp/subr-x.el (string-trim-left, string-trim-right)
+       (string-trim): Add optional args that serve as defaults per the
+       original behavior.  (Bug#26908)
+
+2017-05-19  Stephen Berman  <address@hidden>
+
+       Fix typo in last change to auto-hscroll-mode
+
+       * lisp/cus-start.el (standard): Fix typo in value of auto-hscroll-mode.
+
+2017-05-19  Eli Zaretskii  <address@hidden>
+
+       Support remote editing in emacsclient via Tramp
+
+       * lib-src/emacsclient.c (main, decode_options)
+       (print_help_and_exit, longopts): New option '--tramp' / '-T' which
+       specifies how emacs should use tramp to find remote files.
+
+       * doc/emacs/misc.texi (TCP Emacs server): New subsection describing
+       the various knobs to tune server.el for TCP opereation.
+       (emacsclient Options): Reference "TCP Emacs server" from description of
+       --server-file.  Document the new '--tramp' / '-T' options.
+       * doc/emacs/emacs.texi (Top): Update the top-level menu.
+
+       * etc/NEWS: Mention the new option.
+
+2017-05-19  Eli Zaretskii  <address@hidden>
+
+       * lisp/replace.el (query-replace-regexp-eval): Doc fix.
+
+2017-05-19  Paul Eggert  <address@hidden>
+
+       Attempt to work around macOS vfork bug
+
+       Problem reported by YAMAMOTO Mitsuharu in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00342.html
+       This is related to the fix for Bug#26397.
+       * src/callproc.c (call_process_cleanup, call_process) [!MSDOS]:
+       Report internal error if wait_for_termination fails.
+       * src/sysdep.c (get_child_status): Return -1 if waitpid is
+       buggy, instead of aborting.
+       (wait_for_termination): Return bool success value.
+       All callers changed.
+
+2017-05-19  Eli Zaretskii  <address@hidden>
+
+       Adjust defcustom form for 'auto-hscroll-mode'
+
+       * lisp/cus-start.el (standard) <auto-hscroll-mode>: Adjust the
+       defcustom form.  Suggested by Stephen Berman <address@hidden>.
+
+2017-05-19  Paul Eggert  <address@hidden>
+
+       Fix DARWIN_OS_CASE_SENSITIVE_FIXME==2 false alarm
+
+       * src/fileio.c (file_name_case_insensitive_p):
+       Don’t compile the (DARWIN_OS_CASE_SENSITIVE_FIXME == 2)
+       code unless DARWIN_OS_CASE_SENSITIVE_FIXME is 2.
+       Problem reported by Philipp Stephani in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00495.html
+
+2017-05-19  Paul Eggert  <address@hidden>
+
+       Port --enable-gcc-warnings to clang 3.9.1
+
+       * configure.ac (WERROR_CFLAGS): Omit -Wdouble-promotion if clang.
+       Problem reported by Philipp Stephani in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00495.html
+
+2017-05-19  Paul Eggert  <address@hidden>
+
+       Clean up compiler warning in emacs-module.c
+
+       * src/emacs-module.c (MODULE_SETJMP_1): Use the local var
+       instead of leaving it unused, to pacify picky compilers.
+       (module_reset_handlerlist): Now takes a dummy pointer to a struct
+       handler *, instead of a dummy pointer to an int.  All uses changed.
+
+2017-05-19  Philipp Stephani  <address@hidden>
+
+       Clean up some compiler warnings
+
+       * src/sysdep.c (system_process_attributes) [DARWIN_OS]:
+       Remove unused locals.
+
+2017-05-18  Eli Zaretskii  <address@hidden>
+
+       Support hscrolling only the current line
+
+       * src/xdisp.c (hscrolling_current_line_p): New function.
+       (init_iterator): If auto-hscrolling just the current line, don't
+       increment the iterator's first_visible_x and last_visible_x
+       variables.
+       (hscroll_window_tree): Recompute window's hscroll when moving
+       vertically to another screen line.
+       (redisplay_window): If we are hscrolling only the current line,
+       disable the optimizations that rely on the current matrix being
+       up-to-date.
+       (display_line): Accept an additional argument CURSOR_VPOS, the
+       vertical position of the current screen line which might need
+       hscrolling; all callers changed.  Compute first_visible_x and
+       last_visible_x specially when auto-hscrolling current line, by
+       repeating the calculation that is done in init_iterator in other
+       modes.
+       (syms_of_xdisp) <auto-hscroll-mode>: No longer boolean, it can now
+       accept a 3rd value 'current-line, to turn on the mode where
+       only the current line is hscrolled.
+
+       * etc/NEWS: Mention the new auto-hscroll-mode value.
+
+2017-05-18  Eli Zaretskii  <address@hidden>
+
+       Fix last change in line-move-finish
+
+       * lisp/simple.el (line-move-finish): Fix last change.  This corrects a
+       regression in C-n and C-p when lines are truncated, introduced by the
+       change in 2017-05-10.
+
+2017-05-18  Simen Heggestøyl  <address@hidden>
+
+       Expand docstring for CSS mode
+
+       * lisp/textmodes/css-mode.el (css-completion-at-point, css-mode):
+       Expand docstrings.
+
+2017-05-18  Tino Calancha  <address@hidden>
+
+       Use the expression angle units while simplifying it
+
+       Don't use the angle mode, use the angle units included
+       in the expression instead (Bug#23889).
+       * lisp/calc/calc-alg.el (calc-input-angle-units): New defun.
+       (math-simplify): Use it.
+       * lisp/calc/calc-forms.el (math-to-hms, math-from-hms):
+       Don't use calc-angle-mode if math-simplifying-units is non-nil.
+       * lisp/calc/calc-math.el (calcFunc-nroot, math-from-radians)
+       (math-to-radians-2, math-from-radians-2): Don't convert angle
+       to radians if math-simplifying-units is non-nil.
+       * test/lisp/calc/calc-tests.el (test-calc-23889): Add test.
+
+2017-05-18  Tino Calancha  <address@hidden>
+
+       Revert "Ignore angle mode while simplifying units"
+
+       This reverts commit 713e922243fb60d850f7b0ff83f3e2a3682f1832.
+       This commit causes Bug#25652.
+
+2017-05-17  Paul Eggert  <address@hidden>
+
+       Avoid undefined behavior in struct sockaddr
+
+       Problem noted by Philipp Stephani in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00391.html
+       * src/conf_post.h (ATTRIBUTE_MAY_ALIAS, DECLARE_POINTER_ALIAS):
+       New macros.
+       * src/process.c (conv_sockaddr_to_lisp, conv_lisp_to_sockaddr)
+       (connect_network_socket, network_interface_info)
+       (server_accept_connection): Use it when aliasing non-char objects.
+
+2017-05-17  Stefan Monnier  <address@hidden>
+
+       * lisp/vc/smerge-mode.el (smerge-refine-regions): Work in multi-bufs
+
+       Rename from smerge-refine-subst.  Allow the `beg's to be markers.
+       Add autoload cookie.
+       (smerge--refine-forward): Rename from smerge-refine-forward.
+       (smerge--refine-chopup-region): Rename from smerge-refine-chopup-region.
+       Assume that its `beg` arg is a marker.
+       (smerge--refine-highlight-change): Rename from
+       smerge-refine-highlight-change.  Remove `buf` arg.
+       (smerge-refine-subst): Redefine as an obsolete alias.
+
+2017-05-17  Paul Eggert  <address@hidden>
+
+       Work around AddressSanitizer bug with vfork
+
+       Problem reported by Jim Meyering in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00246.html
+       * src/conf_post.h (vfork) [ADDRESS_SANITIZER]: Define to fork.
+       Unfortunately with the AddressSanitizer in Fedora 25 x86-64, the
+       vforked child messes up the parent’s shadow memory.  This is too
+       bad, as we’d rather have AddressSanitizer catch memory-access bugs
+       related to vfork.
+
+2017-05-17  Paul Eggert  <address@hidden>
+
+       Catch IPv4/IPv6 issues at compile time
+
+       * src/process.c (connect_network_socket): Use verify,
+       not eassert, so that any problems are caught at compile-time.
+       Avoid dodgy cast by using a local var of the correct type.
+
+2017-05-17  Paul Eggert  <address@hidden>
+
+       Pacify --enable-gcc-warnings --with-x-toolkit=no
+
+       * src/composite.c (autocmp_chars) [!HAVE_WINDOW_SYSTEM]:
+       Avoid unused local.
+
+2017-05-17  Glenn Morris  <address@hidden>
+
+       * admin/update_autogen (commit): Pull before push.
+
+2017-05-17  Glenn Morris  <address@hidden>
+
+       autoload-rubric no longer provides a feature by default
+
+       * lisp/emacs-lisp/autoload.el (autoload-rubric):
+       Stop providing a feature unless explicitly requested.
+       (autoload-find-generated-file): Update autoload-rubric call.
+
+2017-05-17  Eli Zaretskii  <address@hidden>
+
+       Remove redundant code in connect_network_socket
+
+       * src/process.c (connect_network_socket) [HAVE_GETSOCKNAME]:
+       Remove redundant type-casting and variables.  Don't call
+       'getsockname' to find the port for AF_LOCAL sockets.
+       [AF_INET6]: Add an assertion to verify that the ports in the IPv4
+       and IPv6 structures are at the same offset and have the same size.
+
+2017-05-16  Paul Eggert  <address@hidden>
+
+       Fix minor timezone memory leak
+
+       * src/editfns.c (wall_clock_tz): Remove; unused.
+
+2017-05-16  Paul Eggert  <address@hidden>
+
+       Do not discard AddressSanitizer stderr
+
+       * src/emacs.c (close_output_streams) [ADDRESS_SANITIZER]:
+       Do not close stderr.
+
+2017-05-16  Paul Eggert  <address@hidden>
+
+       Simplify procname code to avoid GCC bug
+
+       * src/process.c (server_accept_connection): Simplify and avoid
+       multiple calls and struct literals in the last case of a switch.
+       The old code ran afoul of GCC bug 80659, which caused an internal
+       compiler error.  Problem reported by Jim Meyering in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00182.html
+       https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80659
+
+2017-05-16  Paul Eggert  <address@hidden>
+
+       Pacify GCC 7 with --enable-gcc-warnings
+
+       * src/regex.c (regex_compile): Swap labels, so that the
+       FALLTHROUGH immediately precedes the case label.
+
+2017-05-16  Paul Eggert  <address@hidden>
+
+       Merge with gnulib, pacifying GCC 7
+
+       This incorporates:
+       2017-05-16 manywarnings: update for GCC 7
+       2017-05-15 sys_select: Avoid "was expanded before it was required"
+       * configure.ac (nw): Suppress GCC 7’s new -Wduplicated-branches and
+       -Wformat-overflow=2 options, due to too many false alarms.
+       * doc/misc/texinfo.tex, lib/strftime.c, m4/manywarnings.m4:
+       Copy from gnulib.
+       * m4/gnulib-comp.m4: Regenerate.
+       * src/coding.c (decode_coding_iso_2022):
+       Fix bug uncovered by -Wimplicit-fallthrough.
+       * src/conf_post.h (FALLTHROUGH): New macro.
+       Use it to mark all switch cases that fall through.
+       * src/editfns.c (styled_format): Use !, not ~, on bool.
+       * src/gtkutil.c (xg_check_special_colors):
+       When using sprintf, don’t trust Gtk to output colors in [0, 1] range.
+       (xg_update_scrollbar_pos): Avoid use of possibly-uninitialized bool;
+       this bug was actually caught by Clang.
+       * src/search.c (boyer_moore):
+       Tell GCC that CHAR_BASE, if nonzero, must be a non-ASCII character.
+       * src/xterm.c (x_draw_glyphless_glyph_string_foreground):
+       Tell GCC that glyph->u.glyphless.ch must be a character.
+
+2017-05-16  Michael Albinus  <address@hidden>
+
+       Make autoloading Tramp more robust
+
+       * lisp/net/tramp.el (tramp-file-name-for-operation):
+       Use `default-directory' where appropriate.
+       (tramp-file-name-handler): Do not autoload.
+       (tramp-autoload-file-name-handler): Reintroduce function.
+       (tramp-register-autoload-file-name-handlers): Use it.
+
+2017-05-16  Michael Albinus  <address@hidden>
+
+       Extend tramp-tests.el
+
+       * test/lisp/net/tramp-tests.el (tramp-change-syntax):
+       Remove declaration, not needed anymore.
+       (tramp-test05-expand-file-name-relative): New test.
+       (tramp-test10-write-region): Extend test.
+
+2017-05-16  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el: Avoid recursive load of Tramp.  (Bug#26943)
+
+2017-05-16  Noam Postavsky  <address@hidden>
+
+       Make `indent-line-to' respect field boundaries (Bug#26891)
+
+       * lisp/indent.el (indent-line-to): Use `back-to-indentation' instead
+       of `backward-to-indentation'.
+
+2017-05-16  Noam Postavsky  <address@hidden>
+
+       Make sure indent-sexp stops at end of sexp (Bug#26878)
+
+       * lisp/emacs-lisp/lisp-mode.el (indent-sexp): Check endpos before
+       indenting.
+       * test/lisp/emacs-lisp/lisp-mode-tests.el (indent-sexp-stop): New
+       test.
+
+2017-05-16  Glenn Morris  <address@hidden>
+
+       Stop some epg tests failing on rhel7 with gpg 2.0.22 (bug#23619)
+
+       * test/lisp/epg-tests.el (with-epg-tests):
+       Also set GNUPGHOME in the environment of child processes.
+       This avoids problems if gpg does not pass --homedir to spawned agent.
+
+2017-05-16  Glenn Morris  <address@hidden>
+
+       Add oldxmenu to system-configuration-features
+
+       * configure.ac (HAVE_OLDXMENU): New.
+       (emacs_config_features): Add oldxmenu.
+
+2017-05-15  Ted Zlatanov  <address@hidden>
+
+       * .gitlab-ci.yml: Adjust disclaimer as per RMS.
+
+2017-05-15  Eli Zaretskii  <address@hidden>
+
+       Remove unneeded stuff from nt/inc/sys/time.h
+
+       * nt/inc/sys/time.h (_TIMEVAL_DEFINED, struct timevat, timerisset)
+       (timercmp, timerclear): Don't define.  Instead, include the system
+       header sys/time.h, and add only the interval timers stuff.  This
+       avoids compiler warnings about 'gettimeofday's prototype, and also
+       avoids redefinition of macros from system headers.
+
+2017-05-15  Paul Eggert  <address@hidden>
+
+       Fix address violation found by AddressSanitizer
+
+       * src/process.c (connect_network_socket):
+       Use struct sockaddr_storage, not struct sockaddr_in, to store info
+       about a socket address.  Problem reported by Philipp Stephani in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00314.html
+       This fix is based on a patch by Philipp in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00357.html
+
+2017-05-14  Gemini Lasswell  <address@hidden>
+
+       Make edebug-step-in work on generic methods (Bug#22294)
+
+       * lisp/emacs-lisp/edebug.el (edebug-match-cl-generic-method-args):
+       New function to implement the edebug-form-spec property of
+       the symbol cl-generic-method-args.
+       (edebug-instrument-function): If the function is a generic
+       function, find and instrument all of its methods. Return a list
+       instead of a single symbol.
+       (edebug-instrument-callee): Now returns a list. Update docstring.
+       (edebug-step-in): Handle the list returned by edebug-instrument-callee.
+       * lisp/emacs-lisp/cl-generic.el (cl-defmethod): Use name and
+       cl-generic-method-args in its Edebug spec.
+       * lisp/emacs-lisp/eieio-compat.el (defmethod): Use name and
+       cl-generic-method-args in its Edebug spec.
+       * lisp/subr.el (method-files): New function.
+       * test/lisp/subr-tests.el (subr-tests--method-files--finds-methods)
+       (subr-tests--method-files--nonexistent-methods): New tests.
+
+2017-05-14  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-05-14 same-inode: Adapt for windows-stat-inodes
+       2017-05-14 windows-stat-inodes: New module
+       2017-05-14 stat-time: Adapt for windows-stat-timespec
+       * lib/gnulib.mk.in: Regenerate.
+       * lib/stat-time.h, lib/sys_types.in.h, m4/sys_types_h.m4:
+       Copy from gnulib.
+
+2017-05-14  Eli Zaretskii  <address@hidden>
+
+       Remove gettimeofday from w32 sources
+
+       * lib-src/ntlib.c (gettimeofday):
+       * nt/inc/sys/time.h (gettimeofday, struct timezone): Remove unused
+       function 'gettimeofday' and all of its supporting code.
+
+2017-05-14  Eli Zaretskii  <address@hidden>
+
+       Fix the MS-Windows build
+
+       * nt/inc/sys/time.h (gettimeofday):
+       * src/w32.c (gettimeofday): Adjust signature to match Gnulib.
+
+2017-05-14  Eli Zaretskii  <address@hidden>
+
+       More accurate documentation of the ':box' face attribute
+
+       * doc/lispref/display.texi (Face Attributes): Fix the description
+       of negative width of the ':box' attribute.  (Bug#26920)
+
+2017-05-14  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-05-13 largefile: Simplify
+       2017-05-13 largefile: Improve and document
+       2017-05-13 truncate: New module
+       2017-05-13 windows-stat-timespec: New module
+       2017-05-13 windows-stat-override: New module
+       2017-05-11 getopt-posix: port to mingw
+       2017-05-11 gettimeofday: Increase precision on mingw
+       2017-05-10 time: Fix missing initialization of HAVE_TIMEZONE_T
+       2017-05-10 Implement a way to opt out from MSVC support
+       2017-05-09 tzset: Expand comment about TZ problem on native Windows
+       * build-aux/config.guess, lib/dup2.c, lib/fcntl.c, lib/fsync.c:
+       * lib/getdtablesize.c, lib/getopt.c, lib/gettimeofday.c:
+       * lib/mktime.c, lib/stat-time.h, lib/sys_stat.in.h, lib/unistd.in.h:
+       * lib/utimens.c, m4/gettimeofday.m4, m4/largefile.m4:
+       * m4/sys_stat_h.m4, m4/sys_time_h.m4, m4/time_h.m4, m4/time_rz.m4:
+       * m4/unistd_h.m4: Copy from gnulib.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+
+2017-05-14  Marcin Borkowski  <address@hidden>
+
+       Merge branch 'fix/bug-21072'
+
+2017-05-14  Ted Zlatanov  <address@hidden>
+
+       * .gitlab-ci.yml: Add setup for GitLab CI builds.
+
+2017-05-13  Tak Kunihiro  <address@hidden>
+
+       New minor mode 'pixel-scroll-mode'
+
+       * lisp/pixel-scroll.el: New file.
+
+       * etc/NEWS: Mention pixel-scroll-mode.
+
+2017-05-13  Philipp  <address@hidden>
+
+       Make `old-style-backquotes' variable internal
+
+       * src/lread.c (load_warn_old_style_backquotes, Fload, read1)
+       (syms_of_lread): Rename `old-style-backquotes' to
+       `lread--old-style-backquotes', and clarify that it's for internal
+       use only.
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Rename
+       variable.
+       * test/src/lread-tests.el (lread-tests--old-style-backquotes): Add
+       unit test.
+       * emacs-lisp/bytecomp-tests.el
+       (bytecomp-tests--old-style-backquotes): Add unit test.
+
+2017-05-13  Philipp Stephani  <address@hidden>
+
+       Improve unescaped character literal warnings
+
+       * src/lread.c (load_warn_unescaped_character_literals)
+       (syms_of_lread):
+       lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Improve
+       formatting of unescaped character literal warnings.
+
+       * test/src/lread-tests.el (lread-tests--unescaped-char-literals):
+       test/lisp/emacs-lisp/bytecomp-tests.el
+       (bytecomp-tests--unescaped-char-literals): Adapt unit tests.
+
+2017-05-12  Alan Mackenzie  <address@hidden>
+
+       Fontify C++ for loop variable as variable, even when followed by 
parentheses
+
+       In the following: "for (auto *Friend : Class->friends()) {", "Friend" 
was
+       getting fontified as a function, due to insufficient checking of the 
tokens
+       between it and "()".
+
+       * lisp/progmodes/cc-langs.el (c-:-op-cont-tokens, c-:-op-cont-regexp): 
New
+       lang-consts/vars.
+
+       * lisp/progmodes/cc-engine.el (c-forward-declarator): After finding a 
putative
+       declarator's identifier, check for a ":" token inside a for's 
parentheses, and
+       abort the search for "(" if this is found.
+
+2017-05-12  Michael Albinus  <address@hidden>
+
+       Make Tramp backward compatible
+
+       * lisp/net/tramp-cmds.el (tramp-change-syntax):
+       Set tramp-autoload cookie.
+
+       * lisp/net/tramp-compat.el: Run `tramp-change-syntax' at
+       startup, if necessary.
+
+       * lisp/net/tramp.el (tramp-syntax): Use `tramp-compat-user-error'.
+       (tramp-register-autoload-file-name-handlers): Do not mark
+       `operations' for `tramp-file-name-handler'.
+       (tramp-register-file-name-handlers): Remove also
+       `tramp-autoload-file-name-handler' for backward compatibility.
+       (tramp-register-foreign-file-name-handler): Use `delete-dups'.
+
+       * test/lisp/net/tramp-tests.el (tramp-change-syntax): Declare.
+
+2017-05-12  Noam Postavsky  <address@hidden>
+
+       Modify `beginning-of-defun-comments'
+
+       * lisp/emacs-lisp/lisp.el (beginning-of-defun-comments): Try not to stop
+       in the middle of a multiline comment.
+
+2017-05-12  Noam Postavsky  <address@hidden>
+
+       Fix elisp-tests-with-temp-buffer compilation
+
+       * test/lisp/emacs-lisp/lisp-tests.el (elisp-tests-with-temp-buffer):
+       Don't refer to the =!NAME= as "markers" since they produce variables
+       with just plain positions, not marker objects.  Explicitly specify
+       that CONTENTS is evaluated at compile time.  Don't re-evaluate
+       CONTENTS at runtime.  Fix debug specification.  Suppress warnings due
+       to BODY not using =!NAME= variables.
+       (elisp-test-point-position-regex): Rename from
+       `elisp-test-point-marker-regex'.
+       (mark-defun-test-buffer): Wrap in `eval-and-compile'.
+
+2017-05-12  Noam Postavsky  <address@hidden>
+
+       * lisp/emacs-lisp/lisp.el (mark-defun): Simplify moving the point.
+
+2017-05-12  Marcin Borkowski  <address@hidden>
+
+       Fix Bug#21072 and rework `mark-defun'
+
+       * test/lisp/progmodes/elisp-mode-tests.el (mark-defun-test-buffer):
+         New variable
+       (mark-defun-no-arg-region-inactive)
+       (mark-defun-no-arg-region-active)
+       (mark-defun-arg-region-active)
+       (mark-defun-pos-arg-region-inactive)
+       (mark-defun-neg-arg-region-inactive, mark-defun-bob): Add tests for
+       the new `mark-defun'.
+
+       * lisp/emacs-lisp/lisp.el (beginning-of-defun--in-emptyish-line-p):
+         New function.
+       (beginning-of-defun-comments): New function.
+       (mark-defun): Fix bug#21072, also rewrite large parts of `mark-defun'
+       to accept a numerical prefix argument.
+
+2017-05-12  Alfred M. Szmidt  <address@hidden>
+
+       * lisp/mail/rmail.el (rmail-ignored-headers): Add 3 headers to ignore.
+
+2017-05-12  Eli Zaretskii  <address@hidden>
+
+       Improve doc strings in net-utils.el
+
+       * lisp/net/net-utils.el (ifconfig, iwconfig, netstat, arp)
+       (route, traceroute, nslookup, ftp, smbclient)
+       (smbclient-list-shares, finger, whois)
+       (network-connection-to-service, network-service-connection)
+       (network-connection-reconnect): Improve doc strings.
+
+2017-05-12  Andrew Robbins  <address@hidden>
+
+       Extend DNS lookup commands to allow specifying the name server
+
+       * lisp/net/net-utils.el (ffap-string-at-point): Removed due to
+       'net-utils-machine-at-point' obviating this autoloaded
+       function (Bug#25426).
+       (dig-program-options): New customization variable.
+       (nslookup-host, dns-lookup-host, run-dig): Can now specify
+       optional name server argument interactively (by prefix arg) and
+       non-interactively.
+
+       * etc/NEWS: Mention the extension of DNS lookup commands.
+
+2017-05-12  Glenn Morris  <address@hidden>
+
+       Don't hard-code loaddefs files in lisp/Makefile
+
+       * lisp/Makefile.in (loaddefs): New variable.
+       (AUTOGENEL): Use $loaddefs, and include directory.
+       (bootstrap-clean): Update for AUTOGENEL change.
+
+2017-05-11  Katsumi Yamaoka  <address@hidden>
+
+       Kill modified buffers silently when quitting (bug#26862)
+
+       * lisp/gnus/gnus-start.el (gnus-clear-system): Run do-auto-save to make
+       sure that latest drafts are saved, and kill modified buffers silently.
+
+2017-05-10  Perry E. Metzger  <address@hidden>
+
+       Implement 1-based column numbering in mode line
+
+       * src/xdisp.c (decode_mode_spec): Implement the %C construct.
+
+       * lisp/bindings.el (column-number-indicator-zero-based): New
+       defcustom.
+       (mode-line-position): Use %C when
+       column-number-indicator-zero-based is nil.
+
+       * src/xdisp.c (syms_of_xdisp) <frame-title-format>:
+       * src/buffer.c (syms_of_buffer) <mode-line-format>:
+       * doc/lispref/modes.texi (%-Constructs):
+       * doc/lispref/frames.texi (Frame Titles): Document the %C
+       construct.
+
+       * doc/emacs/display.texi (Optional Mode Line): Document
+       'column-number-indicator-zero-based'.
+
+       * etc/NEWS: Mention 'column-number-indicator-zero-based' and the
+       %C construct.
+
+2017-05-10  Eli Zaretskii  <address@hidden>
+
+       Ensure cursor's foreground color is in sync with 'default' face
+
+       * src/w32term.c (x_set_cursor_gc): Don't reuse cursor GC if its
+       foreground color is different from the background of the glyph
+       string's face.  (Bug#26851)
+
+2017-05-10  Eli Zaretskii  <address@hidden>
+
+       Fix vertical cursor motion when columns are of unequal size
+
+       * lisp/simple.el (line-move-finish): In line-move-visual mode, use
+       vertical-motion to move to the goal column, as the goal column
+       should in that case be interpreted in units of frame's canonical
+       character width.  (Bug#26852)
+
+2017-05-10  Glenn Morris  <address@hidden>
+
+       Fix finding test .el files
+
+       * test/Makefile.in (ELFILES): Exclude the data/ directory.
+       * test/src/lread-tests.el (lread-test-bug26837): Revert previous.
+
+2017-05-10  Tino Calancha  <address@hidden>
+
+       Tweak a recent test
+
+       This test fails in my local machine because the data files
+       are compiled, and the test doesn't expect that.
+       * test/src/lread-tests.el (lread-test-bug26837): Match a suffix
+       ending with '.elc' when the data files are compiled.
+
+2017-05-10  Glenn Morris  <address@hidden>
+
+       Put license information in each generated uni-*.el
+
+       * admin/unidata/unidata-gen.el (unidata-gen-file):
+       Get Copyright line from copyright.html.
+       Put information in file header, not separate README.
+       (unidata-gen-charprop): Mention the source location.
+       * lisp/international/README: Remove file.
+
+2017-05-10  Noam Postavsky  <address@hidden>
+
+       Fix lisp-indent-region and indent-sexp (Bug#26619)
+
+       The new lisp-indent-region introduced in 2017-04-22 "Add new
+       `lisp-indent-region' that doesn't reparse the code." is broken because
+       it doesn't save the calculated indent amounts for already seen sexp
+       depths.  Fix this by unifying the indent-sexp and lisp-indent-region
+       code.  Furthermore, only preserve position 2 of the running parse
+       when the depth doesn't change.
+       * lisp/emacs-lisp/lisp-mode.el (lisp-ppss): Use an OLDSTATE that
+       corresponds with the start point when calling parse-partial-sexp.
+       (lisp-indent-state): New struct.
+       (lisp-indent-calc-next): New function, extracted from indent-sexp.
+       (indent-sexp, lisp-indent-region): Use it.
+       (lisp-indent-line): Take indentation, instead of parse state.
+       * test/lisp/emacs-lisp/lisp-mode-tests.el
+       (lisp-mode-tests--correctly-indented-sexp): New constant.
+       (lisp-indent-region, lisp-indent-region-defun-with-docstring):
+       (lisp-indent-region-open-paren, lisp-indent-region-in-sexp): New
+       tests.
+
+2017-05-10  Dmitry Gutov  <address@hidden>
+
+       Simplify url-encode-url and add a test
+
+       * lisp/url/url-util.el (url-encode-url): Simplify.
+       url-generic-parse-url copes with multibyte strings just fine
+       (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24117#185).
+
+       * test/lisp/url/url-parse-tests.el
+       (url-generic-parse-url/multibyte-host-and-path): New test.
+
+2017-05-10  Glenn Morris  <address@hidden>
+
+       More informative error when required feature missing
+
+       * src/fns.c (Frequire): Include file name in missing feature error.
+       * doc/lispref/loading.texi (Named Features): Don't quote actual error.
+
+2017-05-10  Glenn Morris  <address@hidden>
+
+       Put re-loaded file back at start of load-history (bug#26837)
+
+       * src/lread.c (readevalloop): Fix the "whole buffer" check to
+       operate in the correct buffer.
+       (Feval_buffer): Move point back to the start after checking
+       for lexical binding.
+       * test/src/lread-tests.el (lread-test-bug26837): New test.
+       * test/data/somelib.el, test/data/somelib2.el: New test data files.
+
+2017-05-09  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of 'gnutls-verify-error'
+
+       * lisp/net/gnutls.el (gnutls-verify-error): Improve and expand
+       doc string.  (Bug#26845)
+
+2017-05-09  Glenn Morris  <address@hidden>
+
+       Don't duplicate autoload code in package.el
+
+       * lisp/emacs-lisp/autoload.el (autoload-rubric): Add a package option.
+       * lisp/emacs-lisp/package.el (autoload-rubric): Declare.
+       (package-autoload-ensure-default-file): Use autoload-rubric.
+
+2017-05-09  Michael Albinus  <address@hidden>
+
+       * test/lisp/net/tramp-tests.el: Keep additional test.
+
+2017-05-09  Marcin Borkowski  <address@hidden>
+
+       Add elisp-tests-with-temp-buffer, a new testing macro
+
+       * test/lisp/emacs-lisp/lisp-tests.el
+       (elisp-test-point-marker-regex) New variable.
+       (elisp-tests-with-temp-buffer): New macro to help test functions
+       moving the point and/or mark.
+
+2017-05-09  Noam Postavsky  <address@hidden>
+
+       Revert "Output number of characters added to file (Bug#354)"
+
+       The extra message text turned out to be quite annoying in practice,
+       and is generally more trouble than it's worth.  Also revert several
+       related changes.
+
+       Partially revert "Handle `write-region' messages in Tramp properly"
+       Revert "New var write-region-verbose, default nil"
+       Revert "* src/fileio.c (write_region): Don't say "1 characters".  
(Bug#26796)"
+       Revert "Minor tuneup of write-region change"
+       Revert "Adjust write-region so file name is at the beginning again"
+       Revert "Fix handling of non-integer START param to write-region"
+       Revert "Output number of characters added to file (Bug#354)"
+
+       * doc/emacs/files.texi (Misc File Ops):
+       * etc/NEWS:
+       * lisp/epa-file.el (epa-file-write-region):
+       * lisp/gnus/mm-util.el (mm-append-to-file):
+       * lisp/jka-compr.el (jka-compr-write-region):
+       * lisp/net/ange-ftp.el (ange-ftp-write-region):
+       * lisp/net/tramp-adb.el (tramp-adb-handle-write-region):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-write-region):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-write-region):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-write-region):
+       * lisp/net/tramp.el (tramp-handle-write-region-message):
+       * src/fileio.c (write_region, syms_of_fileio):
+       * test/lisp/net/tramp-tests.el (tramp-test10-write-region): Remove
+       extra characters from file writing messages.
+
+2017-05-09  Noah Friedman  <address@hidden>
+
+       (ybuffer-list): $alist must be ptr-unmasked at the end of the loop,
+       because $ptr is modified by ygetptr and we use $ptr immediately at the
+       beginning.
+
+2017-05-08  Ken Brown  <address@hidden>
+
+       Skip a test from filenotify-tests.el on Cygwin
+
+       * test/lisp/filenotify-tests.el (file-notify-test02-rm-watch):
+       Skip the last part of the test on Cygwin; it fails due to timing
+       issues.
+       (file-notify--test-read-event):  Remove `sit-for' that was added
+       for Cygwin.
+
+2017-05-08  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-05-08 intprops: don’t depend on ‘verify’
+       2017-05-07 utimens: on native Windows, improve resolution if fd < 0
+       2017-05-07 utimens: Improve error code on native Windows
+       * lib/intprops.h, lib/utimens.c: Copy from gnulib.
+
+2017-05-08  Wilson Snyder  <address@hidden>
+
+       Fix various verilog-mode.el issues.
+
+       * lisp/progmodes/verilog-mode.el (verilog-read-decls): Fix SystemVerilog
+       2012 import breaking AUTOINST.  Reported by Johannes Schaefer.
+       (verilog-auto-wire-type, verilog-insert-definition): Fix AUTOWIRE using
+       logic in top-level non-SystemVerilog module, bug1142.  Reported by 
Marcin K.
+       (verilog-define-abbrev-table) (verilog-mode-abbrev-table): Don't expand
+       abbrev inside comment/strings, bug1102. Reported by Slava Yuzhaninov.
+       (verilog-auto): Fix AUTORESET widths pulling from AUTOREGINPUT,
+       msg2143. Reported by Galen Seitz.
+       (verilog-modify-compile-command): Fix expansion of __FLAGS__ when
+       compile-command is globally set, bug1119.  Reported by Galen Seitz.
+
+2017-05-08  Michael Albinus  <address@hidden>
+
+       Handle `write-region' messages in Tramp properly
+
+       * lisp/net/tramp.el (tramp-handle-write-region-message): New defsubst.
+       * lisp/net/tramp-adb.el (tramp-adb-handle-write-region):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-write-region):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-write-region):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-write-region): Use it.
+
+       * lisp/net/tramp.el (tramp-password-prompt-regexp)
+       (tramp-completion-mode-p):
+       * lisp/net/tramp-cmds.el (tramp-reporter-dump-variable)
+       (tramp-append-tramp-buffers):
+       * lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection):
+       Use `bound-and-true-p'.
+
+       * lisp/net/tramp-compat.el (tramp-compat-delete-file):
+       Don't check for `boundp' anymore.
+
+       * test/lisp/net/tramp-tests.el (ert-x): Require it.
+       (tramp--test-messages): New defvar.
+       (tramp-test10-write-region): Extend test.
+
+2017-05-08  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix glyph string generation for multi-font compositions (Bug#26742)
+
+       * src/xdisp.c (glyph_string_containing_background_width): New function.
+       (draw_glyphs): Use it to get correct background width.
+       (compute_overhangs_and_x): Don't change x in the middle of composite
+       characters.
+
+2017-05-07  Philipp Stephani  <address@hidden>
+
+       Fix all unescaped character literals
+
+2017-05-07  Alan Mackenzie  <address@hidden>
+
+       CC Mode internal cache: Handle a cache pos being inside a two-char 
construct.
+
+       Cache c-state-semi-nonlit-pos-cache was failing when a cache position 
was,
+       e.g., between the two characters of an opening comment "/*", and 
additionally
+       there were an odd number of quote marks (apostrophes) in the comment.  
This
+       happened in .../src/xdisp.c in the Emacs master branch around 
2017-05-02 at
+       buffer position 615001.
+
+       * lisp/progmodes/cc-defs.el (c-emacs-features): Repurpose symbol
+       pps-extended-state to mean that there are at least 11 elements in the 
parser
+       state.
+
+       * lisp/progmodes/cc-engine.el (c-cache-to-parse-ps-state)
+       (c-parse-ps-state-to-cache): Rewrite these to use enhanced cache 
element list
+       types which indicate potentially being inside two-char constructs.
+       (c-parse-ps-state-below): Rewrite to use the new versions of the above 
two
+       functions.
+
+2017-05-07  Glenn Morris  <address@hidden>
+
+       Silence an mh-compat compiler warning
+
+       * lisp/mh-e/mh-compat.el (mh-url-unreserved-chars): Always define.
+
+2017-05-07  Glenn Morris  <address@hidden>
+
+       Evaluate mh-require when compiling
+
+       * lisp/mh-e/mh-alias.el, lisp/mh-e/mh-folder.el:
+       * lisp/mh-e/mh-gnus.el, lisp/mh-e/mh-search.el:
+       Evaluate mh-require when compiling, as require is automatically.
+       * lisp/mh-e/mh-gnus.el: No longer disable byte-compilation.
+
+2017-05-07  Glenn Morris  <address@hidden>
+
+       Remove obsolete method of changing byte-compile-dest-file
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-dest-file):
+       Define unconditionally.
+
+2017-05-07  Paul Eggert  <address@hidden>
+
+       New var write-region-verbose, default nil
+
+       By popular demand, write-region char counts are now off by default
+       (Bug#26796).
+       * src/fileio.c (write-region-verbose): New Lisp var.
+       (write_region): Output char count only if the var is non-nil.
+       * doc/emacs/files.texi (Misc File Ops), etc/NEWS: Document this.
+
+2017-05-07  Glenn Morris  <address@hidden>
+
+       Write autoloads file atomically
+
+       * lisp/emacs-lisp/autoload.el (autoload--save-buffer):
+       New function, to save buffer atomically.
+       (autoload-save-buffers, update-directory-autoloads):
+       Use autoload--save-buffer.
+       * lisp/Makefile.in ($(lisp)/loaddefs.el):
+       No longer write to a temp file by hand.
+
+2017-05-07  Glenn Morris  <address@hidden>
+
+       Write autoloads file once only
+
+       * lisp/emacs-lisp/autoload.el (autoload-find-generated-file):
+       Simplify.  Don't bother about ensuring the output file exists.
+       (autoload-generated-file): Add doc.
+       (autoload-ensure-writable): Update doc.
+       (autoload-ensure-file-writeable): Handle non-existing file.
+       (autoload-ensure-default-file): Remove function.
+
+2017-05-07  Paul Eggert  <address@hidden>
+
+       Port .gdbinit to GDB 7.11.1 + Python 2.7.12
+
+       * src/.gdbinit (Lisp_Object_Printer.to_string):
+       Explicitly convert integer val to 'int', so that
+       older GDBs do not complain about the conversion.
+       * src/lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]:
+       Give the struct a tag, so that older GDB pretty-printers have a
+       tag to hang their hat on.
+
+2017-05-06  Paul Eggert  <address@hidden>
+
+       Pretty-print const Lisp_Objects in .gdbinit
+
+       * src/.gdbinit (Emacs_Pretty_Printers.__call__):
+       Compare unqualified type to Lisp_Object, to do the right thing
+       when the expression has type ‘Lisp_Object const’.
+       Problem reported by Eli Zaretskii in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00138.html
+
+2017-05-06  Paul Eggert  <address@hidden>
+
+       Pacify GCC setjmp/longjmp warning
+
+       * src/eval.c (internal_lisp_condition_case): Do not modify local
+       var VAR, to pacify GCC’s setjmp/longjmp warning which in some
+       cases mistakenly diagnoses VAR possibly being modified between a
+       setjmp and a longjmp.
+
+2017-05-06  Philipp  <address@hidden>
+
+       Fix bootstrap build of files.el
+
+       * lisp/files.el (file-name-non-special): Don't use cl-letf.
+
+2017-05-06  Eli Zaretskii  <address@hidden>
+
+       Fix last change for MS-Windows
+
+       * test/src/emacs-module-tests.el (module-function-object): Port to
+       MS-Windows.
+
+2017-05-06  Philipp Stephani  <address@hidden>
+
+       Introduce new misc type for module function
+
+       This resolves a couple of FIXMEs in emacs-module.c.
+
+       * src/lisp.h (MODULE_FUNCTIONP, XMODULE_FUNCTION): New functions.
+
+       * src/alloc.c (make_module_function): New function.
+       (mark_object): GC support.
+
+       * src/data.c (Ftype_of, syms_of_data): Handle module function type.
+
+       * src/print.c (print_object): Print support for new type.
+
+       * src/emacs-module.c (module_make_function, Finternal_module_call):
+       Use new module function type, remove FIXMEs.
+       (module_format_fun_env): Adapt and give it external linkage.
+
+       * test/src/emacs-module-tests.el (module-function-object): Add unit
+       test.
+
+2017-05-06  Philipp Stephani  <address@hidden>
+
+       Fix quoted files for 'verify-visited-file-modtime'
+
+       Fixes Bug#25951.
+
+       * lisp/files.el (file-name-non-special): Set the file name for the
+       correct buffer.
+
+       * test/lisp/files-tests.el 
(files-tests--file-name-non-special--buffers):
+       Add unit test.
+       (files-tests--with-advice, files-tests--with-temp-file): New helper
+       macros.
+
+2017-05-06  Eli Zaretskii  <address@hidden>
+
+       * src/fileio.c (write_region): Don't say "1 characters".  (Bug#26796)
+
+2017-05-06  Eli Zaretskii  <address@hidden>
+
+       Turn on GC_CHECK_MARKED_OBJECTS by default under ENABLE_CHECKING
+
+       * src/alloc.c (GC_CHECK_MARKED_OBJECTS): Define to 1 by default of
+       ENABLE_CHECKING is defined.
+       (mark_object): Test for GC_CHECK_MARKED_OBJECTS being non-zero,
+       instead of being defined.
+
+2017-05-06  Tom Tromey  <address@hidden>
+
+       Fix erc-join with channel password
+
+       Bug#25349
+       * lisp/erc/erc-join.el (erc-autojoin-after-ident): Switch order of
+       server names.
+       (erc-autojoin-channels, erc-autojoin-add, erc-autojoin-remove):
+       Likewise.
+       (erc-server-join-channel): Move to erc.el.
+       * lisp/erc/erc.el (erc-server-join-channel): Move from erc-join.el.
+       (erc-cmd-JOIN): Use erc-server-join-channel.
+
+2017-05-06  Tino Calancha  <address@hidden>
+
+       Ensure the created temp file in a test is new
+
+       * test/lisp/buff-menu-tests.el (buff-menu-24962): Use `make-temp-file'
+       to create the temp file.
+
+2017-05-06  Glenn Morris  <address@hidden>
+
+       Decruftify dns-mode.el a little bit
+
+       * lisp/textmodes/dns-mode.el (dns-mode-control-entities):
+       New constant.
+       (dns-mode-control-entity, dns-mode-bad-control-entity)
+       (dns-mode-type, dns-mode-class): New faces.
+       (dns-mode-control-entity-face, dns-mode-bad-control-entity-face)
+       (dns-mode-type-face, dns-mode-class): Make these variables use the
+       new faces, and mark as obsolete.
+       (dns-mode-font-lock-keywords): Use dns-mode-control-entities.
+
+2017-05-06  Paul Eggert  <address@hidden>
+
+       Pretty-print Lisp_Object values in GDB
+
+       * src/.gdbinit: Add a pretty-printer for Lisp_Object values.  Now,
+       GDB displays them as "XIL(0xXXX)" rather than displaying them
+       as "..." when CHECK_LISP_OBJECT_TYPE is in effect and as "DDDDD"
+       otherwise.
+
+2017-05-05  Peder O. Klingenberg  <address@hidden>
+
+       Tweak dns-mode font-lock
+
+       * lisp/textmodes/dns-mode.el (dns-mode-font-lock-keywords):
+       Highlight $TTL as a control entity.  (Bug#26780)
+
+2017-05-05  Glenn Morris  <address@hidden>
+
+       Fontify the doc-string in some CL forms as such
+
+       * lisp/emacs-lisp/lisp-mode.el (defconstant, defparameter):
+       Add the doc-string-elt property.  (Bug#26778)
+
+2017-05-05  Glenn Morris  <address@hidden>
+
+       * lisp/emacs-lisp/cl-lib.el (cl-mapcar): Remove recent autoload cookie.
+
+2017-05-05  Dmitry Gutov  <address@hidden>
+
+       cl-defmethod: Make the edebug spec more technically correct
+
+       * lisp/emacs-lisp/cl-generic.el (cl-defmethod): Denote the
+       edebug spec part for qualifiers as [&rest atom], per
+       http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00053.html.
+
+2017-05-05  Mike Kupfer  <address@hidden>
+
+       Fix MH-E not to load cl at runtime (Bug#25552)
+
+       * lisp/mh-e/mh-acros.el (defun-mh): Check at runtime, not
+       compile time, whether the target is bound.
+       * lisp/mh-e/mh-compat.el: Enable compilation.  Pull in
+       mh-acros at compile time.
+       Authored-by: Glenn Morris <address@hidden>, Noam Postavsky
+       <address@hidden>
+
+2017-05-04  Jean-Christophe Helary  <address@hidden>
+
+       Multiline support in NS "Open Selected File" service.
+
+       * lisp/term/ns-win.el (ns-open-file-service): new function. Wraps the
+       original call in a (split-string) to create as many calls as there
+       are lines.
+       (ns-spi-service-call): Call `ns-open-file-service' instead of
+       `dnd-open-file'.
+
+2017-05-04  Göktuğ Kayaalp  <address@hidden>
+
+       Require cl-lib at runtime in vc-hg
+
+       * lisp/vc/vc-hg.el: Require cl-lib at runtime as well (bug#26609).
+
+2017-05-04  Tino Calancha  <address@hidden>
+
+       Inherit incompatible/obsolete package faces from error
+
+       Don't use the same face for installed packages as for incompatible
+       or obsolete ones.
+       * lisp/emacs-lisp/package.el (package-status-incompat): Inherit from 
error.
+
+2017-05-04  Michael Albinus  <address@hidden>
+
+       Set process property `adjust-window-size-function' to `ignore' in Tramp
+
+       * lisp/net/tramp-adb.el (tramp-adb-parse-device-names)
+       (tramp-adb-maybe-open-connection):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch):
+       * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
+       (tramp-maybe-open-connection):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
+       (tramp-smb-handle-file-acl, tramp-smb-handle-set-file-acl)
+       (tramp-smb-maybe-open-connection): Set process property
+       `adjust-window-size-function' to `ignore'.
+
+2017-05-04  Nicolas Petton  <address@hidden>
+
+       * lisp/emacs-lisp/seq.el: Bump seq version.
+
+2017-05-04  Damien Cassou  <address@hidden>
+
+       Add seq-set-equal-p to test for set equality
+
+       * lisp/emacs-lisp/seq.el (seq-set-equal-p): Add function to compare
+         two lists as if they were sets.
+
+       * test/lisp/emacs-lisp/seq-tests.el (test-seq-set-equal-p): Add test
+         for seq-set-equal-p.
+
+2017-05-04  Paul Eggert  <address@hidden>
+
+       Spelling fixes
+
+       * lisp/gnus/nndiary.el (nndiary-last-occurrence):
+       Rename from nndiary-last-occurence.
+       (nndiary-next-occurrence):
+       Rename from nndiary-next-occurence.  All uses changed.
+
+2017-05-04  Paul Eggert  <address@hidden>
+
+       Merge from pkg-config
+
+       * m4/pkg.m4: Copy from pkg-config 0.29.1.
+
+2017-05-04  Tom Tromey  <address@hidden>
+
+       Add color highlighting to css-mode
+
+       Bug#25525
+       * lisp/textmodes/css-mode.el (css--color-map): New constant.
+       (css-value-class-alist): Use css--color-map.
+       (css--number-regexp, css--percent-regexp)
+       (css--number-or-percent-regexp, css--angle-regexp): New constants.
+       (css--color-skip-blanks, css--rgb-color, css--hsl-color): New
+       functions.
+       (css--colors-regexp): New constant.
+       (css--hex-color, css--named-color, css--compute-color)
+       (css--contrasty-color, css--fontify-colors)
+       (css--fontify-region): New functions.
+       (css-mode): Set font-lock-fontify-region-function.
+       (css-mode-syntax-table): Set syntax on more characters.
+       (css-fontify-colors): New defcustom.
+       (scss-mode-syntax-table): Define syntax for ?$ and ?%.
+       * test/lisp/textmodes/css-mode-tests.el (css-test-property-values):
+       Update.
+       (css-test-rgb-parser, css-test-hsl-parser)
+       (css-test-named-color): New tests.
+       * etc/NEWS: Add entry.
+
+2017-05-03  Michael Albinus  <address@hidden>
+
+       Fix Bug#26763
+
+       * lisp/files.el (delete-directory): Call file name handler
+       with `trash' argument.
+
+       * lisp/net/ange-ftp.el (ange-ftp-delete-directory):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-delete-directory):
+       Add TRASH arg.  Implement it.  (Bug#26763)
+       (tramp-get-remote-trash): Check for `delete-by-moving-to-trash'.
+
+       * lisp/net/tramp-adb.el (tramp-adb-handle-delete-directory):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-delete-directory):
+       Add _TRASH arg.
+
+2017-05-03  Paul Eggert  <address@hidden>
+
+       Use ptrdiff_t, not int, for stack sizes
+
+       * src/thread.c (invoke_thread_function):
+       * src/xterm.c (x_cr_export_frames):
+       Don’t assume SPECPDL_INDEX fits in ‘int’.
+
+2017-05-03  Paul Eggert  <address@hidden>
+
+       Check list object type if --enable-gcc-warnings
+
+       * configure.ac (--enable-check-lisp-object-type):
+       Default to "yes" if --enable-gcc-warnings is not "no".
+       * etc/NEWS: Mention this.
+       * src/eval.c (internal_lisp_condition_case): Fix some glitches
+       with 'volatile' uncovered by the above: in particular, 'clauses'
+       should be a pointer to volatile storage on the stack, and need not
+       be volatile itself.  Use an int, not ptrdiff_t, to count clauses.
+       Don’t bother gathering binding count if VAR is nil.  Use
+       more-specific local names to try to clarify what’s going on.
+
+2017-05-02  Glenn Morris  <address@hidden>
+
+       Tweak auth-source-pass.el to avoid run-time subr-x
+
+       * lisp/auth-source-pass.el (auth-source-pass--parse-data):
+       Avoid needing subr-x at run-time.
+
+2017-05-02  Charles A. Roelli  <address@hidden>
+
+       Constrain non-child frames to screen area in OS X
+
+       * src/nsterm.m (constrainFrameRect:toScreen:): Constrain non-child
+       frames in OS X, if they would otherwise go offscreen.
+
+       (Bug#25818)
+
+2017-05-02  Michael Albinus  <address@hidden>
+
+       Fix error in completion for separate Tramp syntax
+
+       * lisp/net/tramp.el (tramp-completion-file-name-regexp-separate):
+       Tweak regexp.
+
+       * test/lisp/net/tramp-tests.el (tramp-test24-file-name-completion):
+       Run method and host name completion for all syntaxes.
+
+2017-05-02  Eli Zaretskii  <address@hidden>
+
+       Avoid compilation warnings
+
+       * src/w32fns.c (Fx_file_dialog, w32_parse_and_hook_hot_key):
+       * src/w32term.c (x_draw_glyph_string):
+       * src/w32fns.c (compute_tip_xy):
+       * src/w32font.c (w32font_text_extents):
+       * src/w32menu.c (set_frame_menubar):
+       * src/search.c (Freplace_match): Avoid compiler warnings in
+       optimized builds.
+
+2017-05-02  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-05-02 utimens: port to Emacs + MS-Windows
+       * lib/utimens.c: Copy from gnulib.
+
+2017-05-02  Gemini Lasswell  <address@hidden>
+
+       Fix Edebug specs for 'cl-defmethod' and 'defmethod'
+
+       * lisp/emacs-lisp/cl-generic.el (cl-defmethod): Change Edebug spec
+       to make Edebug generate a new symbol for each method (Bug#24753) and
+       to support a string following :extra (Bug#23995).
+       * lisp/emacs-lisp/eieio-compat.el (defmethod): Change Edebug spec to
+       make Edebug generate a new symbol for each method (Bug#24753).
+
+2017-05-02  Eli Zaretskii  <address@hidden>
+
+       Temporary fix for the MS_Windows build
+
+       * nt/inc/ms-w32.h (WIN32_LEAN_AND_MEAN): Define to an empty value,
+       to be consistent with Gnulib's utimens.c.  This is because utimens.c
+       unconditionally defines WIN32_LEAN_AND_MEAN to an empty value, so the
+       previous definition here conflicted with that.
+
+2017-05-02  Paul Eggert  <address@hidden>
+
+       Port format-time-string to MS-Windows better
+
+       * test/src/editfns-tests.el (format-time-string-with-zone):
+       Port test cases to MS-Windows.
+
+2017-05-02  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-05-01 New module 'localtime-buffer'
+       2017-04-30 utimens: Add support for native Windows
+       * admin/merge-gnulib (AVOIDED_MODULES): Add tzset.
+       * configure.ac (tzset): No need for Emacs itself to check now.
+       * lib/gettimeofday.c, lib/time.in.h, lib/time_rz.c, lib/utimens.c:
+       * m4/gettimeofday.m4, m4/time_h.m4, m4/time_rz.m4: Copy from gnulib.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * lib/localtime-buffer.c, lib/localtime-buffer.h:
+       * m4/localtime-buffer.m4: New files, copied from gnulib.
+       * src/editfns.c (init_editfns): Assume tzset is callable.
+
+2017-05-01  Dmitry Gutov  <address@hidden>
+
+       Speed up project-find-regexp for simple regexps
+
+       * lisp/progmodes/xref.el (xref--regexp-syntax-dependent-p):
+       New function.
+       (xref--collect-matches): Use it.  Don't try to enable the
+       appropriate major mode and file-local variables if the regexp
+       does not depend on the buffer's syntax (bug#26710).
+       (xref--collect-matches-1): Don't syntax-propertize in that
+       case either.
+
+2017-05-01  Philipp Stephani  <address@hidden>
+
+       Warn about missing backslashes during load
+
+       * src/lread.c (load_warn_unescaped_character_literals, Fload, read1)
+       (syms_of_lread): Warn if unescaped character literals are
+       found (Bug#20152).
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Check for
+       unescaped character literals during byte compilation.
+       * test/src/lread-tests.el (lread-tests--unescaped-char-literals): New
+       unit test.
+       (lread-tests--with-temp-file, lread-tests--last-message): Helper
+       functions for unit test.
+       * test/lisp/emacs-lisp/bytecomp-tests.el
+       (bytecomp-tests--unescaped-char-literals): New unit test.
+       * test/lisp/emacs-lisp/bytecomp-tests.el 
(bytecomp-tests--with-temp-file):
+       Helper macro for unit test.
+
+2017-05-01  Ken Brown  <address@hidden>
+
+       * configure.ac: Suggest Mailutils on Cygwin.
+
+2017-05-01  Paul Eggert  <address@hidden>
+
+       Don’t stress-test time zones near the Epoch
+
+       * test/src/editfns-tests.el (format-time-string-with-zone)
+       (format-time-string-with-outlandish-zone): Don’t format
+       timestamps near the Epoch, as this runs into bugs on MS-Windows,
+       and we don’t want to worry about those bugs.
+
+2017-05-01  Glenn Morris  <address@hidden>
+
+       Tweak vc-tests.el for bzr
+
+       * test/lisp/vc/vc-tests.el (vc-test--working-revision):
+       Handle test environments where HOME does not exist.
+
+2017-05-01  Dmitry Gutov  <address@hidden>
+
+       vc-git-state: Return `ignored' as appropriate with newer Git
+
+       * lisp/vc/vc-git.el
+       (vc-git--program-version): New variable.
+       (vc-git--program-version): New function.
+       (vc-git-state): Use it to choose whether to add '--ignored' (bug#19343).
+
+2017-05-01  Dmitry Gutov  <address@hidden>
+
+       vc-git-state: Bring back CentOS 6 compatibility
+
+       * lisp/vc/vc-git.el (vc-git-state):
+       Bring back CentOS 6 compatibility (bug#19343).
+
+2017-05-01  Martin Rudalics  <address@hidden>
+
+       Rewrite w32fns.c's `x_set_menu_bar_lines'
+
+       * src/w32fns.c (x_set_menu_bar_lines): Redraw frame immediately
+       regardless of whether menu bar is added or removed.  Clear
+       under internal border iff a W32 window exists.  Store either 0
+       or 1 as new parameter value.
+       (x_change_tool_bar_height): Use FRAME_W32_WINDOW instead of
+       FRAME_X_WINDOW.
+
+2017-05-01  Michael Albinus  <address@hidden>
+
+       Fix filenotify-tests.el for cygwin
+
+       * test/lisp/filenotify-tests.el (file-notify--test-read-event):
+       Add an additional `sit-for'.
+       (file-notify-test02-rm-watch): Add an additional
+       `file-notify--test-read-event' call.
+
+2017-05-01  Jonathan Ganc  <address@hidden>
+
+       Speed up vc-git-status and make it more precise
+
+       * lisp/vc/vc-git.el (vc-git-state)
+       (vc-git--git-status-to-vc-state): Update 'vc-git-state' to use
+       'git status', so that 'vc-git-state' can now return 'ignored',
+       'conflict', or 'unregistered' when appropriate.  Discussed in
+       bug#26066.  Fixes bug#19343.
+
+2017-05-01  Dmitry Gutov  <address@hidden>
+
+       Fix Git revision navigation in currently removed directories
+
+       * lisp/vc/vc-git.el (vc-git-next-revision): Use the repo root as
+       default-directory because FILE's parent directory might not exist
+       anymore (bug#26345).
+
+2017-04-30  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-04-30 strftime-fixes: New module
+       2017-04-30 mktime: Work around TZ problem on native Windows
+       2017-04-30 ctime, localtime: New modules
+       2017-04-30 gettimeofday: Provide higher resolution on native Windows
+       2017-04-29 utime-h: Modernize handling of 'struct utimbuf'
+       2017-04-29 Make use of module 'utime-h'
+       2017-04-30 Fix a few typos
+       * admin/merge-gnulib (AVOIDED_MODULES): Avoid utime-h, too.
+       * lib/gettimeofday.c, lib/mktime.c, lib/time.in.h, lib/utimens.c:
+       * m4/gettimeofday.m4, m4/include_next.m4, m4/mktime.m4:
+       * m4/strftime.m4, m4/time_h.m4, m4/timegm.m4, m4/utimens.m4:
+       Copy from gnulib.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+
+2017-04-30  Eli Zaretskii  <address@hidden>
+
+       Don't lose key bindings on mis-spelled text in flyspell-mode
+
+       * lisp/textmodes/flyspell.el (flyspell-mouse-map): Bind mouse-2
+       explicitly.
+       (make-flyspell-overlay): If the mis-spelled text already has a
+       'keymap' property, make that keymap the parent of
+       flyspell-mouse-map, so as not to lose the parent's bindings.
+       (Bug#26672)
+
+2017-04-30  Martin Rudalics  <address@hidden>
+
+       Fix `delete-frame' behavior including Bug#26682
+
+       * src/frame.c (other_frames): Accept two arguments now.  Don't
+       care about minibuffer window.  Don't care about visibility when
+       called from delete_frame with FORCE true (Bug#26682).
+       (delete_frame, Fmake_frame_invisible): Adjust other_frames
+       calls.
+       * src/w32term.c (w32_read_socket): Don't add a move frame event
+       for an invisible frame.
+       * lisp/frame.el (handle-delete-frame): Don't kill Emacs when
+       attempting to delete a surrogate minibuffer frame.
+
+2017-04-30  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This avoids incorporating the following, which I suspect are
+       more trouble for Emacs than they’re worth:
+       2017-04-29 stat, fstat: fix time_t etc. on native Windows platforms
+       * admin/merge-gnulib (AVOIDED_MODULES): Avoid stat, too.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * lib/pathmax.h, lib/stat.c, m4/pathmax.m4, m4/stat.m4: Remove.
+
+2017-04-30  Paul Eggert  <address@hidden>
+
+       Fix buffer overflow in make-docfile
+
+       * lib-src/make-docfile.c (scan_c_stream): Check for buffer
+       overflow when reading an identifier.  Use a static buffer for NAME
+       rather than a small dynamically-allocated buffer.
+
+2017-04-30  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-04-29 getopt: port to Solaris 10 with circa-1997 glibc getopt.h
+       * lib/getopt-pfx-ext.h: Copy from gnulib.
+       * lib/gnulib.mk.in: Regenerate.
+
+2017-04-30  Tino Calancha  <address@hidden>
+
+       Fix dependency error during bootstrap
+
+       * lisp/files.el: Require pcase and easy-mmode at compile time.
+
+2017-04-30  Mats Lidell  <address@hidden>
+
+       * etc/tutorials/TUTORIAL.sv: synced with TUTORIAL
+
+2017-04-29  Philipp Stephani  <address@hidden>
+
+       Reimplement auto-saving to visited files
+
+       This reacts to confusing behavior of 'auto-save-visited-file-name',
+       cf. Bug#25478.
+
+       * lisp/files.el (auto-save-visited-interval): New customization option.
+       (auto-save-visited-mode): New global minor mode.
+       (auto-save-visited-file-name): Make obsolete.
+       (auto-save--timer): New internal helper variable.
+
+       * doc/emacs/files.texi (Auto Save Files): Document
+       'auto-save-visited-mode' instead of obsolete
+       'auto-save-visited-file-name'.
+       (Auto Save Control): Document customization option
+       'auto-save-visited-interval'.
+
+2017-04-29  Paul Eggert  <address@hidden>
+
+       Allow bypassing of some checks when merging
+
+       * build-aux/git-hooks/pre-commit: Don't check merged-in changes.
+
+2017-04-29  Philipp Stephani  <address@hidden>
+
+       Integrate module test with normal test suite
+
+       * test/Makefile.in (ELFILES): Exclude module test if modules aren't
+       configured.
+       (EMACS_TEST_DIRECTORY): Expand test directory so that it's set
+       correctly even if Emacs changes the current directory.
+       ($(srcdir)/src/emacs-module-tests.log)
+       ($(test_module)): Proper dependency tracking for test module.
+
+       * test/data/emacs-module/Makefile (ROOT): Adapt to new location.
+       Remove 'check' target and EMACS variable, which are no longer
+       necessary.
+       (SO): Change to include period.
+
+       * test/src/emacs-module-tests.el (mod-test): Use EMACS_TEST_DIRECTORY
+       environment variable to reliably find test data.
+
+       * configure.ac (HAVE_MODULES, MODULES_SUFFIX): Add necessary
+       substitutions.
+
+2017-04-28  Glenn Morris  <address@hidden>
+
+       Broaden comint-password-prompt-regexp
+
+       * lisp/comint.el (comint-password-prompt-regexp):
+       Broaden the regexp, for non-English locales.  (Bug#26698)
+
+2017-04-28  Stefan Monnier  <address@hidden>
+
+       * lisp/auth-source.el (auth-source-backend-parse): `return' -> 
cl-return.
+
+2017-04-28  Bartosz Duszel  <address@hidden>
+
+       Don't pass the value of point to 'push-mark', as that's the default.
+
+       * lisp/textmodes/bib-mode.el (mark-bib):
+       * lisp/simple.el (mark-whole-buffer, yank):
+       * lisp/ses.el (ses--advice-yank, ses-mark-row, ses-mark-column):
+       * lisp/progmodes/xscheme.el (xscheme-yank):
+       * lisp/progmodes/verilog-mode.el (verilog-mark-defun):
+       * lisp/progmodes/perl-mode.el (perl-mark-function):
+       * lisp/progmodes/pascal.el (pascal-mark-defun):
+       * lisp/progmodes/meta-mode.el (meta-mark-defun):
+       * lisp/progmodes/icon.el (mark-icon-function):
+       * lisp/progmodes/cc-cmds.el (c-mark-function):
+       * lisp/obsolete/vip.el (ex-goto):
+       * lisp/obsolete/vi.el (vi-put-before):
+       * lisp/mouse.el (mouse-yank-primary):
+       * lisp/menu-bar.el (menu-bar-select-yank):
+       * lisp/mail/sendmail.el (mail-yank-original):
+       * lisp/hexl.el (hexl-beginning-of-buffer, hexl-end-of-buffer):
+       * lisp/emulation/viper-cmd.el (viper-mark-beginning-of-buffer)
+       (viper-mark-end-of-buffer):
+       * lisp/cedet/semantic/senator.el (senator-mark-defun):
+       * lisp/allout.el (allout-mark-topic): Remove unnecessary argument
+       `(point)' from calls to `push-mark'.  (Bug#25565)
+
+2017-04-28  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-25
+
+       784602b1050 (origin/emacs-25) ; Add release notice
+       3a34412caae (tag: emacs-25.2) Set Emacs version to 25.2 and update AU...
+       56a4461a48d ; Move stray item from admin/notes/repo to CONTRIBUTE
+       2b0d1118199 ; CONTRIBUTE: Remove stray header.
+       f2ab09ec60d Fix a typo in indexing the user manual
+       bc55a574235 * lisp/menu-bar.el (kill-this-buffer): Doc fix.  (Bug#26466)
+       a6d50401b4b Document 'line-pixel-height'
+       0c55cf43e61 * search.c (Fre_search_forward, Fre_search_backward): Imp...
+       c7ed57eaef4 Mention that processes start in default-directory (Bug#18...
+       856ec9ffa1f * src/xdisp.c (vmessage, message): Clarify commentary.
+       849a0aaa1c9 Belated fixes for admin.el's M-x make-manuals-dist
+       84938d79698 default-directory: Remark that it must be a directory name
+       3f0d047d2eb Delete confuse statement in manual
+       ee1bd94dd0c Improve packaging documentation
+       fb18bff91f0 Expand manual section on quitting windows
+       9a737079645 Fix docstring of dabbrev-abbrev-char-regexp
+       afe8849bac1 * doc/misc/cl.texi (Iteration Clauses): Clarify example (...
+       ada79442c07 ;* doc/misc/info.texi (Choose menu subtopic): Improve ind...
+       d38fd9229c0 Narrow scope of modification hook renabling in org-src fo...
+       e0e9db4c84a ; Spelling fix
+
+       # Conflicts:
+       #       README
+       #       etc/AUTHORS
+       #       etc/HISTORY
+       #       lisp/ldefs-boot.el
+
+2017-04-28  Glenn Morris  <address@hidden>
+
+       * doc/misc/auth.texi: Commas don't work in node names.
+
+       * test/lisp/auth-source-pass-tests.el: Fix loading of cl-lib.
+
+2017-04-28  Paul Eggert  <address@hidden>
+
+       Test format-time-string with zone arg
+
+       * test/src/editfns-tests.el (format-time-string-with-zone)
+       (format-time-string-with-outlandish-zone): New tests.
+
+2017-04-28  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-04-24 time_rz: fix heap buffer overflow vulnerability
+       2017-04-23 stat-time: Update comments.
+       2017-04-22 ftoastr: cite a newer paper
+       2017-04-21 gettext-h: Avoid -Wundef warning.
+       * lib/ftoastr.c, lib/gettext.h, lib/stat-time.h, lib/time_rz.c:
+       * m4/getopt.m4: Copy from gnulib.
+       * m4/gnulib-comp.m4: Regenerate.
+
+2017-04-27  Damien Cassou  <address@hidden>
+
+       auth-source-pass: Add documentation; fix tests and indentation.
+
+       * doc/misc/auth.texi: Document new integration with Pass. Use @itemize
+         instead of @enumerate.
+       * lisp/auth-source-pass.el: Fix indentation.
+         (auth-source-pass--remove-directory-name): Remove.
+       * test/lisp/auth-source-pass-tests.el: Adjust test macros.
+
+2017-04-27  foudfou  <address@hidden>
+
+       auth-source-pass: Enable finding entries by "host/username"
+
+       * lisp/auth-source-pass.el: Enable finding entries by "host/username".
+       * test/lisp/auth-source-pass-tests.el: Adjust tests to check it.
+
+2017-04-27  Damien Cassou  <address@hidden>
+
+       Integrate auth-source with password-store
+
+       * lisp/auth-source-pass.el: auth-source backend for password-store.
+       * test/lisp/auth-source-pass-tests.el: Tests for auth-source-pass
+         behavior.
+
+2017-04-27  Damien Cassou  <address@hidden>
+
+       * lisp/auth-source.el: Document parser functions.
+
+2017-04-27  Ted Zlatanov  <address@hidden>
+
+       auth-source: factor out parsers and add tests
+
+       * lisp/auth-source.el: Factor out the source parsers. Clean up comments.
+       * test/lisp/auth-source-tests.el: Add tests.
+
+2017-04-27  Martin Rudalics  <address@hidden>
+
+       Fix doc and customization type of `window-combination-limit' (Bug#26673)
+
+       * src/window.c (Vwindow_combination_limit): Fix doc-string.
+       * lisp/cus-start.el (window-combination-limit): Fix
+       customization type.
+       * doc/lispref/windows.texi (Recombining Windows): Fix
+       documentation of `window-combination-limit'.
+
+2017-04-27  Tino Calancha  <address@hidden>
+
+       Drop face from hi-lock--unused-faces only when used
+
+       * lisp/hi-lock.el (hi-lock-set-pattern): If REGEXP is already
+       highlighted, then push FACE into hi-lock--unused-faces (Bug#26666).
+       * test/lisp/hi-lock-tests.el (hi-lock-bug26666): Add test.
+
+2017-04-26  Alan Third  <address@hidden>
+
+       Fix macOS version check (bug#26664)
+
+       * src/nsterm.m (initFrameFromEmacs): Prevent window tabbing mode on
+       macOS versions 10.12+.
+
+2017-04-26  Glenn Morris  <address@hidden>
+
+       Make charprop.el provide a feature
+
+       * admin/unidata/unidata-gen.el (unidata-gen-charprop):
+       Provide a feature.
+       * lisp/loadup.el: Use the charprop feature.
+
+2017-04-26  Glenn Morris  <address@hidden>
+
+       * lisp/loadup.el: Get charprop.el into etc/DOC again.
+
+2017-04-26  Stefan Monnier  <address@hidden>
+
+       * lisp/ido.el (ido-everywhere): Use add-function.
+
+2017-04-26  Martin Rudalics  <address@hidden>
+
+       Try to fix latest fix of w32_mouse_position
+
+       * src/w32term.c (w32_mouse_position): Fix a bug introduced by
+       latest fix and try to make the affected code more rigorous.
+
+2017-04-26  Eli Zaretskii  <address@hidden>
+
+       Avoid segfaults when 'find-font' is invoked for a TTY frame
+
+       * src/font.c (font_pixel_size): Don't call GUI functions if F is a
+       text-mode frame.  (Bug#26646)
+
+2017-04-26  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-set-connection-local-variables-for-buffer):
+
+       New defun.
+
+2017-04-26  Glenn Morris  <address@hidden>
+
+       * src/Makefile.in (leimdir): Remove variable, no longer used.
+
+2017-04-26  Glenn Morris  <address@hidden>
+
+       Generate leim-list via lisp/Makefile, not src/Makefile
+
+       * src/Makefile.in ($(leimdir)/leim-list.el): Remove rule.
+       (emacs$(EXEEXT)): Don't depend on leim-list.
+       * lisp/Makefile.in ($(lisp)/loaddefs.el): Depend on gen-lisp again.
+
+2017-04-25  Alan Third  <address@hidden>
+
+       Fix define for GNUstep builds
+
+       * src/nsterm.m (initFrameFromEmacs): Fix the ifdef so that GNUstep
+       doesn't see the code.
+
+2017-04-25  Glenn Morris  <address@hidden>
+
+       Suppress intermittent test failure on hydra
+
+       * test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el
+       (eieio-test-method-order-list-6): Skip on hydra.
+
+2017-04-25  Alan Third  <address@hidden>
+
+       Fix some NS frame handling issues
+
+       * src/nsterm.m (FRAME_DECORATED_FLAGS, FRAME_UNDECORATED_FLAGS): New
+       defines intended to make things tidier.
+       (x_set_undecorated): Use the new defines.
+       (windowWillResize): Don't use new macOS 12+ only feature.
+       (initFrameFromEmacs): Use the new defines, and disable automatic
+       window tabbing feature in macOS 12.
+       (x_set_undecorated, x_set_parent_frame, x_set_no_accept_focus,
+       x_set_z_group): Add NSTRACE notices.
+
+2017-04-25  Glenn Morris  <address@hidden>
+
+       Avoid parallel race condition
+
+       * lisp/Makefile.in ($(lisp)/loaddefs.el): Remove gen-lisp for now.
+
+2017-04-25  Glenn Morris  <address@hidden>
+
+       Generate each unicode lisp file independently
+
+       This is better for parallel builds, eg it eliminates race
+       conditions from having one process write multiple files.
+       * admin/unidata/Makefile.in (lparen, unifiles): New variables.
+       Parse unidata-gen.el, not charprop.el, to get the list of uni- files.
+       (all): Explicitly list the output lisp files.
+       (PHONY_EXTRAS): Remove.
+       (${unidir}/charprop.el): Change rule to just be for this file.
+       (${unifiles}): New rule to write each unicode lisp file.
+       (extraclean): Simplify.
+       * admin/unidata/unidata-gen.el (unidata-gen-charprop):
+       Quieten in batch mode.
+       (unidata-gen-files): Remove, no longer used.
+       * lisp/loadup.el: Update command-line parser.
+
+2017-04-25  Glenn Morris  <address@hidden>
+
+       Further refactoring in unidata-gen.el
+
+       * admin/unidata/unidata-gen.el (unidata-gen-charprop):
+       New function, split from unidata-gen-files.
+       (unidata-gen-files): Use unidata-gen-charprop.
+
+2017-04-25  Glenn Morris  <address@hidden>
+
+       Allow unidata-gen-file to work independently
+
+       * admin/unidata/unidata-gen.el (unidata-gen-file):
+       Make it work as a stand-alone function in batch mode.
+       (unidata-gen-files): Pass extra arguments to unidata-gen-file.
+
+2017-04-25  Glenn Morris  <address@hidden>
+
+       Preparatory refactoring in unidata-gen.el
+
+       * admin/unidata/unidata-gen.el (unidata-gen-file):
+       New function, split from unidata-gen-files.
+       (unidata-gen-files): Use unidata-gen-file.
+
+2017-04-25  Glenn Morris  <address@hidden>
+
+       Write each generated character property lisp file only once
+
+       * admin/unidata/unidata-gen.el (unidata-file-alist):
+       Rename from unidata-prop-alist.  All users changed.
+       Use file name rather than property name as the key.
+       (unidata-prop-prop): New function.
+       (unidata-prop-index, unidata-prop-generator, unidata-prop-docstring)
+       (unidata-prop-describer, unidata-prop-default, unidata-prop-val-list):
+       Change to parse the argument rather than unidata-prop-alist.
+       (unidata-gen-table-character, unidata-gen-table)
+       (unidata-gen-table-symbol, unidata-gen-table-integer)
+       (unidata-gen-table-numeric, unidata-gen-table-word-list)
+       (unidata-gen-table-name, unidata-gen-table-decomposition)
+       (unidata-gen-table-special-casing): Pass index as an argument.
+       (unidata-check): Adapt to unidata-file-alist.
+       Pass index to generator functions.
+       (unidata-gen-files): Adapt to unidata-file-alist.
+       Write each output file once only.  Overwrite rather than delete.
+
+2017-04-25  Andrew G Cohen  <address@hidden>
+
+       Fix requesting sparse articles in gnus
+
+       * lisp/gnus/gnus-art.el (gnus-request-article-this-buffer): Delete the
+       sparse article number from the list, not its id.
+
+2017-04-25  Glenn Morris  <address@hidden>
+
+       Don't advertise s_client in tls.el docs
+
+       * lisp/net/tls.el (tls-end-of-info, tls-success, tls-untrusted):
+       Don't mention s_client in docs.
+
+2017-04-25  Rob Browning  <address@hidden>
+
+       Remove s_client usage from tls.el
+
+       * lisp/net/tls.el (tls-program, tls-checktrust): Remove s_client.
+       Ref http://bugs.debian.org/766397
+       http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00803.html
+
+2017-04-25  Glenn Morris  <address@hidden>
+
+       Further robustify cedet bootstrap to loaddefs not yet built
+
+       * lisp/cedet/semantic/util.el (semantic-something-to-tag-table):
+       Avoid void-function error when bootstrapping and semantic/loaddefs.el
+       does not yet exist.
+
+2017-04-24  Alan Third  <address@hidden>
+
+       Fix XBM colour rendering in NS port (bug#22060)
+
+       src/nsimage.m (setXBMColor): Fix calculation of xbm_fg.
+
+2017-04-24  Vibhav Pant  <address@hidden>
+
+       Add support for IRCv3 message tags.
+
+       * erc-backend.el:
+         erc-response: Add `tags' element.
+         Add (erc-parse-tags).
+         (erc-parse-server-response): Use (erc-parse-tags) to parse message
+         tags (if any), and store them in `erc-resopnse' struct.
+
+       * erc.el: (erc-display-message): Expose message tags with text
+         properties of the corresponding message line.
+
+2017-04-24  Lars Ingebrigtsen  <address@hidden>
+
+       Add image sizing tests for an image that's narrow
+
+       Needlessly refactor tests for clarity
+
+2017-04-23  Philipp Stephani  <address@hidden>
+
+       Add missing remappings for Ido mode
+
+       Among others, add a remapping for C-x 4 d, cf. Bug#26360.
+
+       * lisp/ido.el (ido-mode): Remap missing commands.
+       (ido-file-internal, ido-visit-buffer): Add support for new
+       methods.
+       (ido-display-buffer-other-frame)
+       (ido-find-alternate-file-other-window, ido-dired-other-window)
+       (ido-dired-other-frame): New commands.
+
+       * test/lisp/ido-tests.el (ido-tests--other-window-frame): Add unit
+       test for the bindings.
+
+2017-04-23  Martin Rudalics  <address@hidden>
+
+       Let w32_mouse_position pick a child window only if it has a child frame
+
+       * src/w32term.c (w32_mouse_position): When using a frame found
+       by ChildWindowFromPoint make sure it's a child frame (Bug#26615,
+       maybe).
+
+2017-04-23  Noam Postavsky  <address@hidden>
+
+       Don't require bytecomp for running ert tests
+
+       "Fix ert-tests when running compiled" 2016-12-06 accidentally
+       introduced a dependency on `bytecomp' into `ert'.  As mentioned in
+       "Avoid ert test failures" 2017-04-18, the accidental dependency of ert
+       on bytecomp was masked by loading other libraries until recently.
+
+       * lisp/emacs-lisp/ert.el (ert--expand-should-1): Only use
+       `byte-compile-macro-environment' if it's bound.
+       * test/src/eval-tests.el: Add defvar for dynamic variable
+       `byte-compile-debug'.
+
+2017-04-23  Andrew G Cohen  <address@hidden>
+
+       Eliminate unneeded warp-to-article in gnus article referral
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-refer-thread):
+       (gnus-summary-refer-article): Remove gnus-warp-to article call.
+
+2017-04-23  Andrew G Cohen  <address@hidden>
+
+       Allow limiting gnus summary buffers to a thread
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-limit-include-thread): Include
+       an optional argument to allow limiting the summary buffer to just the
+       thread-related articles.
+       (gnus-refer-thread-limit-to-thread): Introduce customizable variable
+       to control whether thread-referral adds the thread to the summary
+       buffer or limits to just the thread.
+       (gnus-summary-refer-thread): Use the new variable.
+
+2017-04-23  Andrew G Cohen  <address@hidden>
+
+       Correct gnus-newsgroup-limits in gnus when including thread
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-limit-include-thread): Should
+       only add one list of thread-related articles to gnus-newsgroup-limits
+       rather than two.
+
+2017-04-23  Andrew G Cohen  <address@hidden>
+
+       Improve gnus thread matching of similar subjects
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-limit-include-thread):
+       Use the more liberal gnus-general-simplify-subject regexp to
+       find thread articles with similar subjects.
+
+2017-04-22  Noam Postavsky  <address@hidden>
+
+       Add new `lisp-indent-region' that doesn't reparse the code.
+
+       Both `lisp-indent-region' and `lisp-indent-line' now use `syntax-ppss'
+       to get initial state, so they will no longer indent string literal
+       contents.
+
+       * lisp/emacs-lisp/lisp-mode.el (lisp-ppss): New function, like
+       `syntax-ppss', but with a more dependable item 2.
+       (lisp-indent-region): New function, like `indent-region-line-by-line'
+       but additionally keep a running parse state to avoid reparsing the
+       code repeatedly.  Use `lisp-ppss' to get initial state.
+       (lisp-indent-line): Take optional PARSE-STATE argument, pass it to
+       `calculate-lisp-indent', use `lisp-ppss' if not given.
+       (lisp-mode-variables): Set `indent-region-function' to
+       `lisp-indent-region'.
+
+2017-04-22  Noam Postavsky  <address@hidden>
+
+       Remove ignored argument from lisp-indent-line
+
+       * lisp/emacs-lisp/lisp-mode.el (lisp-indent-line): Remove WHOLE-EXP
+       argument, the behavior has long since been handled in
+       `indent-for-tab-command'.  Also remove redundant `beg' and `shift-amt'
+       variables and use `indent-line-to'.
+
+2017-04-22  Noam Postavsky  <address@hidden>
+
+       * lisp/emacs-lisp/lisp-mode.el (indent-sexp): Clean up marker.
+
+2017-04-22  Noam Postavsky  <address@hidden>
+
+       Don't reparse the sexp in indent-sexp (Bug#25122)
+
+       * lisp/emacs-lisp/lisp-mode.el (calculate-lisp-indent): Let
+       PARSE-START be a parse state that can be reused.
+       (indent-sexp): Pass the running parse state to calculate-lisp-indent
+       instead of the sexp beginning position.  Saving the
+       CONTAINING-SEXP-START returned by `calculate-lisp-indent' is no longer
+       needed.  Don't bother stopping if we don't descend below init-depth,
+       since we now alway scan the whole buffer (via syntax-ppss) anyway.
+       * test/lisp/emacs-lisp/lisp-mode-tests.el (indent-sexp): Add blank
+       line to test case.
+
+2017-04-22  Vibhav Pant  <address@hidden>
+
+       Add cond test cases for singleton clauses.
+
+       * test/lisp/emacs-lisp/bytecomp-tests.el: Add test cond forms where
+         the default clause is a single non-nil expression.
+
+2017-04-22  Vibhav Pant  <address@hidden>
+
+       b-c--cond-jump-table-info: Use correct body for singleton clauses
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-cond-jump-table-info):
+       When a clause's body consists of a single constant expression, use
+       that expression as the body to be compiled. This fixes switch bytecode
+       evaluating to nil to such clauses.
+
+2017-04-22  Philipp Stephani  <address@hidden>
+
+       ffap: Don't switch window unless needed
+
+       When using ffap-other-window, don't change the window configuration
+       unless a new buffer has actually been created (Bug#25352).
+
+       * lisp/ffap.el (ffap-other-frame): Don't change the window
+       configuration if no new buffer has been created.
+       * test/lisp/ffap-tests.el (ffap-other-window--bug-25352): Add unit
+       test.
+
+2017-04-22  Alan Mackenzie  <address@hidden>
+
+       Fix fontification of C++ declaration with type FOO::FOO.
+
+       * lisp/progmodes/cc-engine.el (c-find-decl-spots): Initialize
+       cfd-top-level properly.
+       (c-forward-decl-or-cast-1): On finding FOO::FOO, check it is followed 
by "("
+       before deciding it is a constructor.
+
+       * lisp/progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare): Negate 
the
+       result of the c-bs-at-toplevel-p call passed to c-font-lock-declarators
+       (simple bug fix).
+
+2017-04-22  Philipp Stephani  <address@hidden>
+
+       Fix usage of FRAME_Z_GROUP
+
+       * src/nsterm.m (initFrameFromEmacs:): FRAME_Z_GROUP does not return a
+       Lisp object, cf. Bug#26597.
+
+2017-04-22  Alan Third  <address@hidden>
+
+       Fix GNUstep build
+
+       * src/nsfns.m (Fns_frame_z_list_order): Rewrite for GNUstep
+       compatibility.
+       * src/nsmenu.m (update_frame_tool_bar): Remove unused variable.
+
+2017-04-21  Alan Third  <address@hidden>
+
+       Add no-accept-focus and frame-list-z-order to NS port
+
+       * lisp/frame.el (frame-list-z-order): Add NS.
+       * src/nsfns.m: Add x_set_no_accept_focus to handler struct.
+       (Fx_create_frame): Handle no-accept-focus parameter.
+       (ns_window_is_ancestor):
+       (Fns_frame_list_z_order): New functions.
+       * src/nsterm.m (x_set_no_accept_focus): New function.
+       (initFrameFromEmacs): Use EmacsWindow instead of EmacsFSWindow for
+       non-fullscreen windows.
+       (EmacsWindow:canBecomeKeyWindow): New function.
+
+2017-04-21  Stefan Monnier  <address@hidden>
+
+       Improve prefix handling for dash.el
+
+       * lisp/emacs-lisp/autoload.el (autoload--make-defs-autoload):
+       Don't drop dash's "-<letter>" prefixes.
+
+2017-04-21  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-macs.el: Fix symbol-macrolet
+
+       Revert 0d112c00ba0ec14bd3014efcd3430b9ddcfe1fc1 (to fix bug#26325)
+       and use a different fix for bug#26068.
+       (cl--symbol-macro-key): New function.
+       (cl--sm-macroexpand, cl-symbol-macrolet): Use it instead of 
`symbol-name`.
+       * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-symbol-macrolet):
+       Failure is not expected any more.
+
+2017-04-21  Eli Zaretskii  <address@hidden>
+
+       Avoid infinite loop in redisplay when header-line-format is invalid
+
+       * src/xdisp.c (handle_invisible_prop): Avoid inflooping when the
+       string has an invalid %-construct in it and is displayed as part
+       of mode-line or header-line.  (Bug#26586)
+
+2017-04-21  Lars Ingebrigtsen  <address@hidden>
+
+       Add tests to check image scaling functionality
+
+       This is in preparation to doing further work in this area to avoid
+       regressions.
+
+       * test/data/image/blank-200x100.png: New file for testing
+       image scaling.
+
+       * test/manual/image-size-tests.el: New file.
+
+2017-04-21  Lars Ingebrigtsen  <address@hidden>
+
+       Allow svg-image to take all create-image PROPS
+
+       * lisp/svg.el (svg-image): Allow passing in PROPS when
+       creating an image for convenience.
+
+2017-04-21  George D. Plymale II  <address@hidden>  (tiny change)
+
+       Treat non-erroring lisp call as successful eshell command (Bug#26161)
+
+       This lets a compound command like 'cd .. && echo ok' print 'ok',
+       similar to how most other shells behave.
+
+       * lisp/eshell/esh-cmd.el (eshell-exit-success-p): Only check if the
+       last exit code was zero, rather than first checking whether the last
+       command returned nil.
+       (eshell-exec-lisp): Set `eshell-last-command-status' to 1 on error.
+
+2017-04-21  Reuben Thomas  <address@hidden>
+
+       Fix reading of tab settings in whitespace-mode
+
+       lisp/whitespace.el (whitespace-indent-tabs-mode)
+       whitespace-tab-width): Remove these variables. The underlying
+       variables `indent-tabs-mode' and `tab-width' are already buffer-local
+       when needed, and whitespace-mode never changes them.
+       (whitespace-ensure-local-variables): Remove this function, which only
+       existed to set the above variables.
+       (whitespace-cleanup-region, whitespace-regexp)
+       (whitespace-indentation-regexp, whitespace-report-region)
+       (whitespace-turn-on, whitespace-color-on): Adjust these functions to
+       use `indent-tabs-mode' and `tab-width' directly, and not call
+       `whitespace-ensure-local-variables'.
+
+2017-04-20  Stefan Monnier  <address@hidden>
+
+       * lisp/vc/vc-hg.el (vc-hg-state-fast): Fix compiler warning
+
+       by simplifying ascii-test.
+
+2017-04-20  Vibhav Pant  <address@hidden>
+
+       bytecomp: Don't inline functions that use byte-switch (Bug#26518)
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-unfold-bcf): Don't inline
+         FORM if the bytecode uses the byte-switch instruction. It is
+         impossible to guess the correct stack depth while inlining such
+         bytecode, resulting in faulty code.
+
+2017-04-20  Nicolas Petton  <address@hidden>
+
+       Set Emacs version to 25.2 and update AUTHORS file
+
+       * README: Set Emacs version to 25.2.
+       * etc/HISTORY: Add release log.
+       * lisp/ldefs-boot.el:
+       * etc/AUTHORS:
+       * ChangeLog.2: Update.
+
+2017-04-20  Noam Postavsky  <address@hidden>
+
+       Don't register "def" as an autoload prefix (Bug#26412)
+
+       * lisp/emacs-lisp/autoload.el (autoload--make-defs-autoload): Don't
+       accept "def" as a prefix.
+
+2017-04-20  Stefan Monnier  <address@hidden>
+
+       Use substring completion for Info menus and index
+
+       * lisp/info.el (Info-complete-menu-item): Add `category' metadata.
+       (Info-menu): Simplify now that we use the `default' arg of 
completing-read.
+       * lisp/minibuffer.el (completion-category-defaults): Use substring
+       completion for `info-menu`.
+
+2017-04-19  Glenn Morris  <address@hidden>
+
+       Remove some explicit runtime loads of pcase
+
+       Pcase is macros, so these should have used eval-when-compile.
+       Anyway, pcase entry points are autoloaded, so the compiler handles it.
+       * lisp/profiler.el, lisp/emacs-lisp/eieio-core.el:
+       * lisp/emacs-lisp/generator.el, lisp/emacs-lisp/subr-x.el:
+       * lisp/progmodes/xref.el: No need to require pcase.
+
+2017-04-19  Glenn Morris  <address@hidden>
+
+       Stop cl-lib loading pcase at runtime
+
+       The cause was an unexpanded pcase-defmacro in cl-loaddefs.
+       * lisp/emacs-lisp/autoload.el (make-autoload):
+       Treat pcase-defmacro like defmacro.
+
+2017-04-19  Alan Third  <address@hidden>
+
+       Note frame documentation exceptions for NS builds
+
+       * doc/lispref/frames.texi (Management Parameters, Child Frames): Note
+       NS differences.
+
+2017-04-19  Alan Third  <address@hidden>
+
+       Fix bug introduced by my last commit
+
+       * src/nsterm.m (ns_draw_fringe_bitmap): Revert key-mashing accident.
+
+2017-04-19  Alan Third  <address@hidden>
+
+       Add new frame functionality to NS port
+
+       * lisp/frame.el (frame-restack): Call ns-frame-restack.
+       * src/keyboard.c (kbd_buffer_get_event) [HAVE_NS]: Enable
+       MOVE_FRAME_EVENT handling.
+       * src/frame.h:
+       * src/frame.c: Enable 'z-group', 'undecorated' and 'parent' frame
+       definitions.
+       * src/nsfns.m: Add x_set_z_group, x_set_parent_frame and
+       x_set_undecorated (Cocoa only) to handler struct.
+       (Fx_create_frame): Handle 'z-group', 'parent-frame' and 'undecorated'
+       frame parameter.
+       (Fns_frame_restack): New function.
+       * src/nsmenu.m (free_frame_tool_bar, update_frame_tool_bar):
+       FRAME_TOOLBAR_HEIGHT is no longer a variable.
+       * src/nsterm.h (NS_PARENT_WINDOW_LEFT_POS, NS_PARENT_WINDOW_TOP_POS):
+       Add #defines to find the screen position of the parent frame.
+       (NS_TOP_POS): Remove defun.
+       (EmacsView): Remove redundant toolbar variables and add createToolbar
+       method.
+       (FRAME_NS_TITLEBAR_HEIGHT, FRAME_TOOLBAR_HEIGHT): Always calculate the
+       values instead of storing them in a variable.
+       * src/nsterm.m (x_set_offset, windowDidMove): Take parent frame
+       position into account when positioning frames.
+       (initFrameFromEmacs): Remove toolbar creation code and handle new
+       frame parameters.
+       (x_set_window_size): Remove toolbar height calculation.
+       (x_set_z_group):
+       (x_set_parent_frame):
+       (x_set_undecorated) [NS_IMPL_COCOA]: New function.
+       (x_destroy_window): Detach parent if child closes.
+       (updateFrameSize): Change NSTRACE message to reflect new reality and
+       no longer reset frame size.
+       (windowWillResize): Don’t change NS window name when the titlebar
+       is invisible.
+       (createToolbar): Move toolbar creation code into it’s own method.
+       (toggleFullScreen): FRAME_TOOLBAR_HEIGHT and FRAME_NS_TITLEBAR_HEIGHT
+       are no longer variables.
+       (windowDidMove): Fire MOVE_FRAME_EVENT Emacs event.
+
+2017-04-19  Glenn Morris  <address@hidden>
+
+       Tweak bytecomp's loading of cl-extra
+
+       * lisp/emacs-lisp/bytecomp.el: Don't force load of cl-extra in a
+       post-bootstrap emacs where cl-loaddefs does exist.
+
+2017-04-19  Glenn Morris  <address@hidden>
+
+       Avoid unnecessary loading of subr-x at run-time
+
+       * lisp/doc-view.el, lisp/filenotify.el, lisp/info-look.el:
+       * lisp/svg.el, lisp/emacs-lisp/byte-opt.el, lisp/net/shr.el:
+       * lisp/textmodes/sgml-mode.el, test/lisp/dom-tests.el:
+       No need to load subr-x at run-time.
+       * lisp/gnus/nnheader.el: No need to load subr-x.
+
+2017-04-18  michael schuldt  <address@hidden>  (tiny change)
+
+       Use iteration in math-factorial-iter
+
+       * lisp/calc/calc-comb.el (math-factorial-iter):
+       Use iteration instead of recursion to avoid max-specpdl-size problem.
+
+2017-04-18  Glenn Morris  <address@hidden>
+
+       * test/lisp/kmacro-tests.el: Require seq, for seq-concatenate.
+
+2017-04-18  Glenn Morris  <address@hidden>
+
+       Avoid ert test failures
+
+       * lisp/emacs-lisp/ert.el (ert--expand-should-1):
+       Avoid errors related to undefined byte-compile-macro-environment.
+       Somehow masked until very recently because loading seq (eg)
+       loads bytecomp.  http://hydra.nixos.org/build/51730765
+
+2017-04-18  Eli Zaretskii  <address@hidden>
+
+       Fix a typo in indexing the user manual
+
+       * doc/emacs/cmdargs.texi (General Variables): Fix a horrible typo.
+
+2017-04-18  Noam Postavsky  <address@hidden>
+
+       Fix find-library-name for load-history entries with nil FILE-NAME 
(Bug#26355)
+
+       * lisp/emacs-lisp/find-func.el (find-library--from-load-history):
+       Rename from find-library--from-load-path.  Check for `load-history'
+       entries with nil FILE-NAMEs.  Simplify by not double
+       checking for suffixes and making use of `locate-file'.
+
+2017-04-18  Alan Third  <address@hidden>
+           YAMAMOTO Mitsuharu  <address@hidden>
+
+       Use vfork if possible on Darwin (bug#26397)
+
+
+       * src/conf_post.h (HAVE_WORKING_VFORK): Don't undef.
+       (vfork): Don't define.
+       * src/process.c (create_process) [DARWIN_OS]: Use fork if pty_flag is
+       set, otherwise vfork.
+       * src/callproc.c (call_process) [DARWIN_OS]: Use TIOCNOTTY to detach
+       the controlling terminal instead of setsid.
+
+2017-04-18  Fran Litterio  <address@hidden>
+
+       Small erc-kill-channel fix (bug#23700)
+
+       * lisp/erc/erc.el (erc-kill-channel): Handle null erc-default-target.
+
+2017-04-18  Glenn Morris  <address@hidden>
+
+       ediff: use user-error rather than debug-ignored-errors
+
+       * lisp/vc/ediff-diff.el (ediff-prepare-error-list):
+       * lisp/vc/ediff-help.el (ediff-help-for-quick-help):
+       * lisp/vc/ediff-init.el (ediff-barf-if-not-control-buffer)
+       (ediff-check-version):
+       * lisp/vc/ediff-merg.el (ediff-shrink-window-C):
+       * lisp/vc/ediff-mult.el (ediff-draw-dir-diffs, ediff-show-dir-diffs)
+       (ediff-append-custom-diff, ediff-meta-show-patch)
+       (ediff-filegroup-action, ediff-show-meta-buffer, ediff-show-registry)
+       (ediff-get-meta-info, ediff-patch-file-form-meta):
+       * lisp/vc/ediff-ptch.el (ediff-patch-file-internal):
+       * lisp/vc/ediff-util.el (ediff-toggle-autorefine)
+       (ediff--check-ancestor-exists, ediff-toggle-read-only)
+       (ediff-toggle-wide-display, ediff-toggle-multiframe)
+       (ediff-toggle-use-toolbar, ediff-toggle-show-clashes-only)
+       (ediff-next-difference, ediff-previous-difference)
+       (ediff-pop-diff, ediff-read-file-name, ediff-verify-file-buffer)
+       (ediff-save-buffer):
+       * lisp/vc/ediff-wind.el (ediff-make-wide-display):
+       * lisp/vc/ediff.el (ediff-find-file, ediff-buffers-internal)
+       (ediff-directories-internal, ediff-directory-revisions-internal)
+       (ediff-regions-wordwise, ediff-regions-linewise)
+       (ediff-load-version-control): Use user-error.
+       (debug-ignored-errors): No longer modify.
+
+2017-04-18  Glenn Morris  <address@hidden>
+
+       mh-e: use user-error rather than debug-ignored-errors
+
+       * lisp/mh-e/mh-alias.el (mh-alias-grab-from-field):
+       * lisp/mh-e/mh-utils.el (mh-get-msg-num): Use user-error.
+       (debug-ignored-errors): No longer modify.
+
+2017-04-18  Glenn Morris  <address@hidden>
+
+       ispell.el: use user-error rather than debug-ignored-errors
+
+       * lisp/textmodes/ispell.el (ispell-get-word): Use user-error.
+       (debug-ignored-errors): No longer modify.
+
+2017-04-17  Paul Eggert  <address@hidden>
+
+       * src/xterm.c (x_fill_rectangle): Now static.
+
+2017-04-17  Paul Eggert  <address@hidden>
+
+       Tighten recently-added UTF-8 check
+
+       * src/coding.c (encode_coding_utf_8): Now extern.
+       * src/terminal.c (terminal_glyph_code) [HAVE_STRUCT_UNIPAIR_UNICODE]:
+       Check for UTF-8, not just for multibyte.
+
+2017-04-17  David Engster  <address@hidden>
+
+       xml: Properly handle symbol-qnames for attribute parsing
+
+       * lisp/xml.el (xml-parse-attlist): Do not strip 'symbol-qnames from
+         xml-ns argument (reverts aea67018) (Bug#26533).
+         (xml-maybe-do-ns): Properly handle default namespace by not
+         interning new symbol when 'special' flag is set.
+
+       * tests/lisp/xml-tests.el (xml-parse-test--namespace-attribute-qnames)
+         (xml-parse-namespace-attribute-qnames): Add test for Bug#26533.
+
+2017-04-17  Paul Eggert  <address@hidden>
+
+       * src/lisp.h (STRING_SET_CHARS): Simplify assertion.
+
+2017-04-17  Eli Zaretskii  <address@hidden>
+
+       Fix assertion violations when displaying thread-related error
+
+       * src/process.c (Faccept_process_output): Don't assume a thread's
+       name is always a string.
+
+2017-04-17  Paul Eggert  <address@hidden>
+
+       dired ‘M’ should not complain about ‘.’ and ‘..’
+
+       * lisp/dired-aux.el (dired-do-redisplay):
+       Allow redisplay of ‘.’ and ‘..’ (Bug#26528).
+
+2017-04-17  Paul Eggert  <address@hidden>
+
+       Remove unused coding enums
+
+       * src/coding.h (enum coding_system_type, enum end_of_line_type):
+       Remove; unused.
+
+2017-04-17  Paul Eggert  <address@hidden>
+
+       Work around bug with unibyte Linux consoles
+
+       * src/terminal.c (terminal_glyph_code): Skip the UTF-8 stuff if
+       the terminal's coding system is unibyte (Bug#26396).
+
+2017-04-16  Teemu Likonen  <address@hidden>
+
+       Fix org-agenda's command for calendar-lunar-phases
+
+       Function org-agenda-phases-of-moon tries to call a non-existing
+       function calendar-phases-of-moon. The correct function is
+       calendar-lunar-phases.
+
+2017-04-16  Michael Albinus  <address@hidden>
+
+       Tuning for `separate' Tramp syntax
+
+       * lisp/net/tramp.el (tramp-method-regexp): Fix it for `separate' syntax.
+       (tramp-completion-file-name-regexp-separate): Simplify.
+
+       * test/lisp/net/tramp-tests.el 
(tramp-test02-file-name-dissect-separate):
+       Extend test.
+
+2017-04-16  Alan Mackenzie  <address@hidden>
+
+       Fix bug #26529: C-h k errors with a lambda function bound to a key.
+
+       * lisp/help-fns.el (help-fns--signature, describe-function-1): Check
+       `function' is a symbol before trying to get property `reader-construct' 
from
+       it.
+
+2017-04-16  Simen Heggestøyl  <address@hidden>
+
+       Fix highlighting of short selectors in CSS mode
+
+       * lisp/textmodes/css-mode.el (css--font-lock-keywords): Highlight
+       selectors where the part before a colon is only one character long,
+       such as `a:hover'.
+
+2017-04-16  Eli Zaretskii  <address@hidden>
+
+       Fix redisplay performance problems with some fonts
+
+       * src/font.c (font_list_entities): Revert part of the changes
+       introduced on Apr 2, 2014 to fix bug#17125.  It turns out having
+       zero_vector in the font-cache is an important indication that
+       cannot be removed.  (Bug#21028)
+
+2017-04-16  Eli Zaretskii  <address@hidden>
+
+       Add assertion to STRING_SET_CHARS
+
+       * src/lisp.h (STRING_SET_CHARS): Add an assertion and commentary
+       to prevent incorrect usage.  For details, see this discussion:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-04/msg00412.html.
+
+2017-04-16  Eli Zaretskii  <address@hidden>
+
+       Avoid compilation warnings on MS-Windows
+
+       * src/w32term.c (w32_read_socket): Avoid compiler warnings about
+       parentheses around assignment.
+       * src/w32fns.c (w32_createwindow): Remove unused variable
+       dwStyle.  Use "|=" where appropriate.
+
+2017-04-16  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-04-14 intprops: try to avoid tickling similar bugs
+       2017-04-14 intprops: port to Oracle Studio 12.3 x86
+       * doc/misc/texinfo.tex, lib/intprops.h: Copy from gnulib.
+
+2017-04-15  Martin Rudalics  <address@hidden>
+
+       Fix bugs in `with-displayed-buffer-window' and `fit-window-to-buffer'
+
+       * lisp/window.el (with-displayed-buffer-window): When a
+       'window-height' action alist entry specifies a function, call
+       `temp-buffer-window-show' with a '(window-height . t)' dummy
+       entry so `window--try-to-split-window' will bind
+       `window-combination-limit' to t and that function does not
+       resize any other window but the one we split this one off
+       (Bug#25055, Bug#25179).
+       (fit-window-to-buffer): Call `window-max-delta' with NOUP t so
+       we steal space only from windows in the same combination.
+       Stealing space from other windows would not allow us to return
+       that space later when this window is deleted (Bug#25055,
+       Bug#25179).
+
+2017-04-15  Glenn Morris  <address@hidden>
+
+       Avoid userlock queries hanging forever in batch mode
+
+       * lisp/userlock.el (ask-user-about-lock)
+       (ask-user-about-supersession-threat): Abort in batch mode.
+
+2017-04-14  Martin Rudalics  <address@hidden>
+
+       Fix segfault when calling frame_ancestor_p (Bug#26493)
+
+       * src/xterm.c (handle_one_xevent): Check that hf was not reset
+       before calling frame_ancestor_p (Bug#26493).
+
+2017-04-14  Martin Rudalics  <address@hidden>
+
+       A few additional copy-edits in documentation of frames
+
+       * doc/lispref/frames.texi (Frame Layout)
+       (Implied Frame Resizing): Windows -> MS-Windows.
+       (Deleting Frames): Fix typo.
+
+2017-04-14  Glenn Morris  <address@hidden>
+
+       Use user-error for some ert.el errors
+
+       * lisp/emacs-lisp/ert.el (ert-read-test-name, ert-delete-all-tests)
+       (ert-results-find-test-at-point-other-window, ert-describe-test):
+       Use user-error.
+
+2017-04-14  Glenn Morris  <address@hidden>
+
+       Use user-error for customize's "invalid face" error
+
+       * lisp/cus-edit.el (customize-face): Use user-error.
+       (debug-ignored-errors): No more need to add "Invalid face".
+
+2017-04-14  Glenn Morris  <address@hidden>
+
+       Remove duplicate lisp-eval-defun definition
+
+       * lisp/emacs-lisp/lisp-mode.el (lisp-eval-defun):
+       Autoload rather than defining a stub.
+
+2017-04-14  Glenn Morris  <address@hidden>
+
+       * lisp/Makefile.in (check-defun-dups): Ignore obsolete files.
+
+2017-04-14  Glenn Morris  <address@hidden>
+
+       Create generated lisp files before main loaddefs.el
+
+       This should improve reproducibility of lisp/loaddefs.el.
+       * lisp/Makefile.in (gen-lisp): New phony target.
+       ($(lisp)/loaddefs.el, compile-main): Depend on gen-lisp.
+       * src/Makefile.in ($(leimdir)/leim-list.el): Depend on all of ../leim.
+       * lisp/cedet/semantic.el (semantic-mode):
+       * lisp/cedet/semantic/fw.el (top-level):
+       * lisp/emacs-lisp/eieio-core.el (top-level):
+       Robustify to generated input files maybe not yet existing.
+
+2017-04-14  Paul Eggert  <address@hidden>
+
+       Fix minor quoting issues in Makefile.in
+
+       * Makefile.in (install-arch-dep, uninstall):
+       Quote EMACS and EMACS_NAME more consistently.
+
+2017-04-13  Glenn Morris  <address@hidden>
+
+       * Makefile.in (install-etc): Use existing Makefile variables.
+
+2017-04-13  Eli Zaretskii  <address@hidden>
+
+       Minor copyedits of recent changes in documentation
+
+       * doc/lispref/frames.texi (Frame Layout, Frame Position)
+       (Frame Size, Frame Interaction Parameters, Input Focus)
+       (Raising and Lowering, Child Frames): Improve wording and indexing.
+       * doc/emacs/cmdargs.texi (Borders X): Improve indexing.
+
+2017-04-13  Glenn Morris  <address@hidden>
+
+       Small src/Makefile simplification
+
+       * src/Makefile.in ($(lispsource)/international/ucs-normalize.elc)
+       ($(lispsource)/term/ns-win.elc): Combine rules.
+
+2017-04-13  Simen Heggestøyl  <address@hidden>
+
+       Add grid layout module to CSS property list
+
+       * lisp/textmodes/css-mode.el (css-property-alist)
+       (css-value-class-alist): Add new properties and value classes from CSS
+       Grid Layout Module.
+
+2017-04-13  Martin Rudalics  <address@hidden>
+
+       Describe recent frame and window changes in manuals
+
+       * doc/emacs/emacs.texi (Top):
+       * doc/emacs/cmdargs.texi (Borders X): Clearly separate the terms
+       "outer border" (for the X border which can be set from within
+       Emacs) and "external border" (for the border which is added by
+       the window manager).
+       * doc/lispref/display.texi (Tooltips): Clarify slightly.
+       * doc/lispref/elisp.texi (Top): Update node and section names.
+       * doc/lispref/frames.texi (Frames): Describe difference between
+       top-level and child frames.
+       (Frame Layout): Describe outer border.  Add more details about
+       how Emacs obtains the outer size and position of a frame and
+       about menu bar/tool bar wrapping.  Add references to new frame
+       parameters.
+       (Size and Position): Remove subsection.
+       (Frame Position): New subsection excerpted from the earlier Size
+       and Position subsection.  Clarify positioning concepts and
+       some of their shortcomings.  Describe `move-frame-functions'.
+       (Frame Size): New subsection excerpted from the earlier Size
+       and Position subsection.  Describe how to track frame size
+       changes and the new function `frame-size-changed-p'.
+       (Position Parameters): Describe child frame positioning.  Warn
+       about negative offsets.  Describe 'z-group' parameter.
+       (Size Parameters): Describe 'text-pixels' specification
+       facility and new 'min-width' and 'min-height' parameters.
+       (Layout Parameters): Clarify description of 'tool-bar-lines' and
+       'menu-bar-lines' parameters.
+       (Frame Interaction Parameters): New subsubsection describing
+       'parent-frame', 'delete-before', 'mouse-wheel-frame' and
+       'no-other-frame' parameters.
+       (Management Parameters): Describe 'skip-taskbar',
+       'no-focus-on-map', 'no-accept-focus', 'undecorated' and
+       'override-redirect' parameters.
+       (Deleting Frames): Describe handling of 'delete-before'
+       parameter and child frames for `delete-frame' and
+       `delete-other-frames'.
+       (Finding All Frames): Describe `frame-list-z-order' and handling
+       of 'no-other-frame' parameter by `next-frame'.
+       (Minibuffers and Frames): Minor clarifications.
+       (Input Focus): Document `x-focus-frame'.  Clarify descriptions
+       of `focus-in-hook', `focus-out-hook' and `focus-follows-mouse'.
+       (Visibility of Frames): Describe mapping and how the visibility
+       of a parent frame affects that of its child frames.
+       (Raising and Lowering): Describe restacking of frames and
+       z-groups.
+       (Child Frames): New section.
+       * doc/lispref/windows.texi (Selecting Windows): Describe
+       additional semantics of NORECORD argument of `select-window' and
+       how `buffer-list-update-hook' can emulate a "select window
+       hook".
+       (Mouse Window Auto-selection): New section.
+
+2017-04-13  Damien Cassou  <address@hidden>
+
+       Fix imenu--sort-by-position for non-pairs parameters (bug#26457)
+
+       * lisp/imenu.el (imenu--sort-by-position): Fix to accept lists beyond
+         pairs.
+       * test/lisp/imenu-tests.el: Add 2 tests for `imenu--sort-by-position`.
+
+2017-04-13  Eli Zaretskii  <address@hidden>
+
+       Avoid unnecessary regeneration of the entire loaddefs.el
+
+       * lisp/Makefile.in (autoloads .PHONY): Add commentary explaining
+       why $(lisp)/loaddefs.el is a dependency of '.PHONY'.
+       ($(lisp)/loaddefs.el): Copy an existing loaddefs.el to
+       loaddefs.tmp before running 'batch-update-autoloads' on it, to
+       avoid slow regeneration of the full contents.  (Bug#26459)
+       Use 'move-if-change' instead of 'mv', to avoid producing a new
+       Emacs binary when not necessary.
+
+2017-04-13  Dmitry Gutov  <address@hidden>
+
+       Handle indentation of nested ternary operators in JS
+
+       * lisp/progmodes/js.el (js--looking-at-operator-p):
+       Handle nested ternary operators.
+
+2017-04-12  Eli Zaretskii  <address@hidden>
+
+       Don't call 'kill-this-buffer' outside of menus
+
+       * lisp/simple.el (kill-current-buffer): New function.
+       (completion-list-mode-map): Use it instead of kill-this-buffer.
+       * lisp/type-break.el (type-break-mode):
+       * lisp/term/ns-win.el (global-map):
+       * lisp/progmodes/gdb-mi.el (gdb-memory-mode-map)
+       (gdb-disassembly-mode-map, gdb-frames-mode-map)
+       (gdb-locals-mode-map, gdb-registers-mode-map):
+       * lisp/org/org-mhe.el (org-mhe-follow-link):
+       * lisp/net/secrets.el (secrets-mode-map):
+       * lisp/net/eudc.el (eudc-mode-map):
+       * lisp/net/eudc-hotlist.el (eudc-hotlist-mode-map): Use
+       kill-current-buffer instead of kill-this-buffer.  (Bug#26466)
+
+2017-04-12  Eli Zaretskii  <address@hidden>
+
+       * lisp/menu-bar.el (kill-this-buffer): Doc fix.  (Bug#26466)
+
+2017-04-12  Martin Rudalics  <address@hidden>
+
+       New internal-border face and args for select-window and x-focus-frame
+
+       Add `internal-border' face and handle it whenever clearing the
+       internal border.  If NORECORD equals the symbol
+       'mark-for-redisplay', `select-window' will not record the window
+       but still mark it for redisplay.  The new argument NOACTIVATE
+       for `x-focus-frame' tries to not activate FRAME when set.
+
+       * lisp/faces.el (internal-border): New face.
+       * lisp/mwheel.el (mwheel-scroll): Select window to scroll with
+       `mark-for-redisplay'.
+       * lisp/scroll-bar.el (scroll-bar-drag)
+       (scroll-bar-horizontal-drag, scroll-bar-scroll-down)
+       (scroll-bar-scroll-up, scroll-bar-toolkit-scroll)
+       (scroll-bar-toolkit-horizontal-scroll): Select window to scroll
+       with `mark-for-redisplay'.
+       * lisp/window.el (handle-select-window): When
+       `focus-follows-mouse' is not 'auto-raise' try to not activate
+       FRAME.
+       * src/dispextern.h (face_id): Add INTERNAL_BORDER_FACE_ID.
+       * src/frame.c (Fx_focus_frame): New argument NOACTIVATE.
+       * src/frame.h (x_focus_frame): Update extern declaration.
+       * src/gtkutil.c (xg_clear_under_internal_border): Remove
+       function.
+       (xg_frame_resized, xg_frame_set_char_size): Call
+       x_clear_under_internal_border.
+       (xg_tool_bar_callback): Adapt x_focus_frame call.
+       * src/gtkutil.h (xg_clear_under_internal_border): Remove
+       declaration.
+       * src/nsfns.m (x_focus_frame): Add argument NOACTIVATE.
+       * src/w32fns.c (x_clear_under_internal_border): Fill border
+       with internal-border background if specified.
+       * src/w32term.h (x_clear_under_internal_border): Add extern
+       declaration.
+       * src/w32term.c (x_after_update_window_line): Fill border
+       with internal-border background if specified.
+       (w32_set_vertical_scroll_bar, w32_set_horizontal_scroll_bar)
+       (x_scroll_bar_clear, w32_read_socket): Call
+       x_clear_under_internal_border.
+       (x_focus_frame): New argument NOACTIVATE.
+       * src/window.c (select_window): Mark WINDOW for redisplay when
+       NORECORD equals 'mark-for-redisplay'.
+       (Fselect_window): Update doc-string.
+       (syms_of_window): Define Qmark_for_redisplay.
+       * src/xdisp.c (clear_garbaged_frames, echo_area_display)
+       (redisplay_internal): Call x_clear_under_internal_border.
+       * src/xfaces.c (lookup_basic_face): Handle `window-divider'
+       and `internal-border' faces.
+       (realize_basic_faces): Realize `internal-border' face.
+       (syms_of_xfaces): Define Qinternal_border.
+       * src/xfns.c (x_set_internal_border_width): Remove call for
+       xg_clear_under_internal_border.
+       (x_focus_frame): New argument NOACTIVATE.  When non-nil try to not
+       activate frame.
+       * src/xterm.c (x_fill_rectangle): No more static.
+       (x_clear_under_internal_border, x_after_update_window_line):
+       Fill border with internal-border background if specified.
+       (xt_horizontal_action_hook): Rewrite.
+       (handle_one_xevent): Call x_clear_under_internal_border.
+       * src/xterm.h (x_fill_rectangle): Add extern declaration.
+
+2017-04-12  Paul Eggert  <address@hidden>
+
+       Port recent frame changes to --enable-gcc-warnings
+
+       * src/frame.c (next_frame, prev_frame):
+       Remove now-redundant assertions.
+       * src/frame.h (FOR_EACH_FRAME): Assume Vframe_list is nonempty.
+
+2017-04-12  Tak Kunihiro  <address@hidden>
+
+       Scroll right and left using wheel-right and wheel-left.
+
+       These changes also make use of touchpad and trackpad (Bug#26347).
+
+       * doc/emacs/frames.texi (Mouse Commands): Document horizontal
+       scrolling using the mouse wheel.
+
+       * lisp/mwheel.el (mwheel-scroll): Respond to wheel-right and wheel-left.
+       (mwheel-tilt-scroll-p, mwheel-flip-direction)
+       (mwheel-scroll-left-function, mwheel-scroll-right-function): New
+       defcustoms.
+       (mouse-wheel-left-event, mouse-wheel-right-event): New variables,
+       events that calls wheel-left/right.
+
+       * etc/NEWS: Mention horizontal scrolling using the mouse wheel.
+
+2017-04-12  Eli Zaretskii  <address@hidden>
+
+       * lisp/Makefile.in (autoloads-force): Fix usage of ".PHONY".
+
+2017-04-12  Martin Rudalics  <address@hidden>
+
+       Add new frame parameters and associated functions
+
+       Add new frame parameters `undecorated', `override-redirect',
+       `parent-frame', `skip-taskbar', `no-focus-on-map',
+       `no-accept-focus', `z-group', `delete-before', `no-other-frame',
+       `mouse-wheel-frame', `min-width', `min-height'.  Add new
+       functions `frame-restack' and `frame-list-z-order'.
+
+       * lisp/cus-start.el (focus-follows-mouse): Adapt customization
+       type.
+       * lisp/frame.el (handle-delete-frame): Handle child and
+       `delete-before' frames.
+       (other-frame): Stop looking for other frame after one round.
+       (frame-list-z-order, frame-restack): New functions.
+       (delete-other-frames): Handle child frames.
+       * lisp/frameset.el (frameset-persistent-filter-alist)
+       (frameset--record-relationships): Handle `delete-before',
+       `parent-frame' and `mouse-wheel-frame' parameters.  Rename
+       latter from `frameset--record-minibuffer-relationships'.
+       (frameset--restore-frame): Handle ‘parent-frame’ parameter
+       specially.
+       (frameset-restore): Handle `delete-before', `parent-frame' and
+       `mouse-wheel-frame' parameters.
+       * lisp/mwheel.el (mwheel-scroll): Handle `mouse-wheel-frame'
+       parameter.
+       * lisp/window.el (window--min-size-ignore-p): Fix doc-string.
+       (mouse-autoselect-window-select, handle-select-window): Major
+       rewrite.  Try to not ignore errors.  Handle auto-selection of
+       child frames and different values of `focus-follows-mouse'.
+       * src/frame.c (frame_windows_min_size): Handle new `min-width'
+       and `min-height' frame parameters.
+       (make_frame): Initialize new frame structure members.
+       (do_switch_frame): Don't reset internal_last_event_frame for
+       descendant frames.
+       (Fframe_parent, frame_ancestor_p, Fframe_ancestor_p): New
+       functions.
+       (candidate_frame): Don't return `no-other-frame' frame.
+       (other_frames): New function replacing other_visible_frames.
+       (delete_frame): Rewrite.  Handle child and `delete-before' frames.
+       (Fmake_frame_invisible): Call other_frames.
+       (store_frame_param): Check `delete-before' and `parent-frame'
+       parameters for circular dependencies.
+       (frame_parms, syms_of_frame): Add entries for and define new
+       frame parameters.
+       (focus_follows_mouse): New meaningful value `auto-raise'.
+       * src/frame.h (z_group): New enumeration type.
+       (frame): New slots parent_frame, undecorated, override_redirect,
+       skip_taskbar, no_focus_on_map, no_accept_focus, z_group.
+       (fset_parent_frame): New inlined function.
+       (FRAME_UNDECORATED, FRAME_OVERRIDE_REDIRECT)
+       (FRAME_PARENT_FRAME, FRAME_SKIP_TASKBAR, FRAME_NO_FOCUS_ON_MAP)
+       (FRAME_NO_ACCEPT_FOCUS, FRAME_Z_GROUP, FRAME_Z_GROUP_NONE)
+       (FRAME_Z_GROUP_ABOVE, FRAME_Z_GROUP_ABOVE_SUSPENDED)
+       (FRAME_Z_GROUP_BELOW): New macros.
+       (frame_ancestor_p): Add declaration.
+       * src/gtkutil.c (xg_create_frame_widgets): Handle
+       `undecorated' and `override-redirect' frame parameters.
+       (x_wm_set_size_hint): None for child frames.
+       (xg_set_undecorated, xg_frame_restack, xg_set_skip_taskbar)
+       (xg_set_no_focus_on_map, xg_set_no_accept_focus)
+       (xg_set_override_redirect): New functions.
+       (xg_update_scrollbar_pos, xg_update_horizontal_scrollbar_pos):
+       Don't let scrollbars obscure child frames.
+       * src/gtkutil.h: (xg_set_undecorated, xg_frame_restack)
+       (xg_set_skip_taskbar, xg_set_no_focus_on_map)
+       (xg_set_no_accept_focus, xg_set_override_redirect): Add extern
+       declarations.
+       * src/nsfns.m (ns_frame_parm_handlers): Add entries for new
+       frame parameters.
+       (Fx_create_frame): Install `min-width' and `min-height' frame
+       parameters.
+       * src/nsterm.m (mouseMoved:): Handle focus_follows_mouse change.
+       * src/w32fns.c (WS_EX_NOACTIVATE): Define if necessary.
+       (x_real_positions): Handle child frames.
+       (x_set_menu_bar_lines): Don't for child frames.
+       (x_set_undecorated, x_set_parent_frame, x_set_skip_taskbar)
+       (x_set_no_focus_on_map, x_set_no_accept_focus)
+       (x_set_z_group): New functions.
+       (w32_createvscrollbar, w32_createhscrollbar): Don't draw
+       scroll bars over child frames.
+       (w32_createwindow): Handle new frame parameters and child frames.
+       (w32_wnd_proc): Let mouse clicks into a child frame activate
+       the frame.  Try to handle the `no-accept-focus' parameter.  Do
+       SetFocus when our window is brought to top or becomes the
+       foreground window.
+       (w32_window): Don't initialize menu bar for child frames.
+       (Fx_create_frame): Handle new frame parameters.
+       (x_create_tip_frame): Set explicit_parent slot.
+       (w32_dialog_in_progress): New function.
+       (Fx_file_dialog): Handle `z-group-above' frames.
+       (w32_frame_list_z_order, Fw32_frame_list_z_order)
+       (w32_frame_restack, Fw32_frame_restack): New functions.
+       (w32_frame_parm_handlers): Add entries for new frame
+       parameters.
+       * src/w32font.c (Fx_select_font): Handle `z-group-above'
+       frames during font selection dialogue.
+       * src/w32term.c (construct_mouse_wheel): Construct mouse wheel
+       event from F's w32 window.
+       (w32_mouse_position): Handle child frames.
+       (w32_set_vertical_scroll_bar, w32_set_horizontal_scroll_bar):
+       Don't draw scroll bars over child frames.
+       (w32_read_socket): Always erase background of child frames.
+       When generating SELECT_WINDOW_EVENTs handle new value of
+       `focus-follows-mouse' and handle `no-accept-focus' parameter.
+       Handle `mouse-wheel-frame' parameter.
+       (x_calc_absolute_position, x_set_offset, x_set_window_size):
+       Handle child frames.
+       (x_make_frame_visible): Handle child frames specially.  Handle
+       `no-focus-on-map' parameter.
+       * src/w32term.h (w32_dialog_in_progress): Add external
+       declaration.
+       * src/xdisp.c (x_consider_frame_title, prepare_menu_bars): Not
+       for child frames.
+       * src/xfns.c (Xm/MwmUtil.h): Include for WM hints.
+       (PropMotifWmHints, PROP_MOTIF_WM_HINTS_ELEMENTS): Define for
+       non-Motif, non-GTK case.
+       (x_real_pos_and_offsets): Handle child frames.
+       (x_set_undecorated, x_set_parent_frame)
+       (x_set_no_focus_on_map, x_set_no_accept_focus)
+       (x_set_override_redirect): New functions.
+       (x_set_menu_bar_lines): Not for child frames.
+       (x_window): Handle `undecorated' and `override_redirect' cases.
+       (Fx_create_frame): Handle new frame parameters.
+       (frame_geometry): Handle child frames and outer border.
+       (x_frame_list_z_order, Fx_frame_list_z_order)
+       (x_frame_restack, Fx_frame_restack): New functions.
+       (Fx_file_dialog, Fx_select_font): Set x_menu_set_in_use.
+       (x_frame_parm_handlers): Add entries for new frame parameters.
+       * src/xmenu.c (x_menu_set_in_use): Handle `z-group-above'
+       frames.
+       * src/xterm.c (x_set_frame_alpha): Don't set alpha of parent
+       for child frames.
+       (XTmouse_position): Handle child frames.
+       (x_scroll_bar_create, x_scroll_bar_expose): Don't let scroll
+       bars obscure child frames.
+       (handle_one_xevent): Handle child frame positions.  If necessary
+       set `skip-taskbar' and reassign proper `z-group' when we are
+       mapped.  When generating SELECT_WINDOW_EVENTs handle new value
+       of `focus-follows-mouse'.  Handle `mouse-wheel-frame' parameter.
+       Let mouse clicks into a child frame activate the frame.
+       (x_calc_absolute_position, x_set_offset): Handle child frames
+       specially.
+       (x_set_skip_taskbar, x_set_z_group): New functions.
+       (x_make_frame_visible): Handle child frames.
+       (ATOM_REFS_INIT): Add entries for
+       Xatom_net_wm_state_skip_taskbar, Xatom_net_wm_state_above,
+       Xatom_net_wm_state_below.
+       * src/xterm.h (top-level): Declare Xatom_net_wm_state_above,
+       Xatom_net_wm_state_below and Xatom_net_wm_state_skip_taskbar.
+       (x_set_skip_taskbar, x_set_z_group): Add extern declarations.
+
+2017-04-11  Glenn Morris  <address@hidden>
+
+       Update a package test for hydra
+
+       * test/lisp/emacs-lisp/package-tests.el (with-package-test):
+       Also bind package-gnupghome-dir, see eg
+       http://hydra.nixos.org/build/51462182 .
+
+2017-04-11  Martin Rudalics  <address@hidden>
+
+       Frame movement, focus and hook related changes
+
+       New hook `move-frame-functions'.  Run `focus-in-hook'
+       after switching to frame that gets focus.  Don't run
+       XMoveWindow for GTK.
+
+       * lisp/frame.el (handle-move-frame, frame-size-changed-p): New
+       functions.
+
+       * src/frame.c (do_switch_frame): Simplify code.
+       (Fhandle_switch_frame): Switch frame before running
+       `handle-focus-in'.
+       (Vfocus_in_hook, Vfocus_out_hook): Clarify doc-strings.
+       (Vmove_frame_functions): New hook variable.
+       * src/keyboard.c (kbd_buffer_get_event): Handle
+       MOVE_FRAME_EVENT.  Handle SELECT_WINDOW_EVENT separately.
+       (head_table): Add Qmove_frame entry.
+       (syms_of_keyboard): Add Qmove_frame.
+       (keys_of_keyboard): Define key for `move-frame'.
+       * src/termhooks.h (event_kind): Add MOVE_FRAME_EVENT.
+       * src/w32term.c (w32_read_socket): Create MOVE_FRAME_EVENT.
+       * src/window.c (run_window_size_change_functions): Record size of
+       FRAME's minibuffer window too.
+       * src/xterm.c (handle_one_xevent): Create MOVE_FRAME_EVENT.
+       (x_set_offset): For GTK call gtk_widget_move instead of
+       XMoveWindow.
+
+2017-04-11  Werner LEMBERG  <address@hidden>
+
+       Avoid abort in ftfont.c due to faulty fonts
+
+       * src/ftfont.c (ftfont_get_metrics): Try loading the font without
+       hinting, before aborting.  (Bug#25945)
+
+2017-04-11  Eli Zaretskii  <address@hidden>
+
+       Document 'line-pixel-height'
+
+       * doc/lispref/display.texi (Size of Displayed Text): Document
+       line-pixel-height.  Suggested by Tak Kunihiro
+       <address@hidden>.  (Bug#26379)
+
+2017-04-11  Jens Lechtenboerger  <address@hidden>
+
+       Introduce customizable variable 'package-gnupghome-dir'
+
+       * lisp/emacs-lisp/package.el (package-import-keyring)
+       (package--check-signature-content, package-check-signature):
+       Use new variable package-gnupghome-dir to control which GnuPG
+       homedir to use.
+       * doc/emacs/package.texi: Mention package-gnupghome-dir.
+       * etc/NEWS: Mention package-gnupghome-dir.
+
+2017-04-11  Martin Rudalics  <address@hidden>
+
+       Set x_gtk_use_window_move by default for fixing bug#25851 and bug#25943
+
+       This activates a change that was installed a few weeks ago but whose
+       ChangeLog was inadvertently dropped during its commit.  The proper
+       ChangeLog is included below as part of the present commit.
+
+       * src/gtkutil.c (xg_set_geometry): When x_gtk_use_window_move
+       is set avoid calling x_gtk_parse_geometry (Bug#25851).
+       (x_wm_set_size_hint): When x_gtk_use_window_move is set, set
+       PPosition, USPosition and USSize flags if requested.
+       * src/xterm.c (x_set_offset): With GTK when
+       x_gtk_use_window_move is set, leave it entirely to
+       gtk_window_move to position the window and skip any
+       post-adjustments (Bug#25851 and Bug#25943).
+       (x_gtk_use_window_move): New variable.
+
+2017-04-10  Alan Mackenzie  <address@hidden>
+
+       Fix a loop in C Mode caused by inadequate analysis of comments.
+
+       After M-;, and the insertion of the opening "/*", the CC Mode 
after-change
+       function got confused, since the new comment opener matched the end of a
+       subsequent comment, but moving back over that comment did not come back 
to the
+       starting point.  Fix this.
+
+       * lisp/progmodes/cc-engine.el (c-end-of-macro): Add a limit parameter, 
wherer
+       point is left if no end-of-macro is found before it.
+       (c-forward-sws): Change the `safe-start' mechanism.  Now `safe-start' is
+       non-nil except where we have an unclosed block comment at the end of a 
macro.
+       This enables us to populate the cache more fully, at the cost of some 
run
+       time.
+
+2017-04-10  Lars Brinkhoff  <address@hidden>
+
+       Add PVSIZE function to return the size of a pseudovector.
+
+       * src/lisp.h (PVSIZE): New function.
+
+       * src/chartab.c (copy_char_table):
+       * src/data.c (Ftype_of, Finteractive_form, Faref, Faset):
+       * src/doc.c (Fdocumentation, store_function_docstring):
+       * src/eval.c (Fcommandp, funcall_lambda, lambda_arity, Ffetch_bytecode):
+       * src/fns.c (Flength, Fcopy_sequence):
+       * src/font.h (FONT_SPEC_P, FONT_ENTITY_P, FONT_OBJECT_P):
+       * src/lread.c (substitute_object_recurse):
+       * src/src/print.c (print_object):
+         Use it.
+
+2017-04-10  Michael Albinus  <address@hidden>
+
+       Add Tramp tests
+
+       * lisp/net/tramp.el (tramp-syntax): Adapt docstring.
+
+       * test/lisp/net/tramp-tests.el
+       (tramp-test01-file-name-syntax-simplified)
+       (tramp-test01-file-name-syntax-separate)
+       (tramp-test02-file-name-dissect-simplified)
+       (tramp-test02-file-name-dissect-separate): New tests.
+
+2017-04-10  Martin Rudalics  <address@hidden>
+
+       Make sure that `shell' makes BUFFER current
+
+       * lisp/shell.el (shell): Restrict scope of recently added
+       `with-current-buffer' to make sure that BUFFER is current when
+       `shell' returns.
+
+2017-04-10  Jim Blandy  <address@hidden>
+
+       Default to PCRE syntax when reading .hgignore
+
+       * lisp/vc/vc-hg.el (vc-hg--slurp-hgignore-1):
+       Default to the PCRE syntax (bug#26249).
+
+2017-04-09  Michael Albinus  <address@hidden>
+
+       Document Tramp changes
+
+       * doc/misc/tramp.texi (Change file name syntax): New node.
+
+       * etc/NEWS: Mention `tramp-change-syntax'.
+
+       * lisp/net/tramp.el (tramp-file-name-regexp): Reinsert it.
+       External packages uses it.
+       (tramp-syntax): Set also `tramp-file-name-regexp'.
+
+2017-04-09  Paul Eggert  <address@hidden>
+
+       Merge from gnulib (Bug#26398)
+
+       This incorporates:
+       2017-04-08 getopt: prefer - to _ in new file names
+       2017-04-08 getopt: port recent getopt changes to macOS
+       * .gitignore: Add lib/getopt-cdefs.h.
+       * lib/getopt-cdefs.in.h: Rename from lib/getopt_cdefs.in.h.
+       * lib/getopt-core.h: Rename from lib/getopt_core.h.
+       * lib/getopt-ext.h: Rename from lib/getopt_ext.h.
+       * lib/getopt-pfx-core.h: Rename from lib/getopt_pfx_core.h.
+       * lib/getopt-pfx-ext.h: Rename from lib/getopt_pfx_ext.h.
+       * lib/getopt.in.h, lib/unistd.in.h, m4/getopt.m4:
+       Copy from Gnulib.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+
+2017-04-09  Ken Raeburn  <address@hidden>
+
+       Write updated loaddefs to a temporary file and rename into place.
+
+       In a parallel build, byte compilation can be running at the same times
+       as loaddefs.el is being regenerated.  However, in a CANNOT_DUMP build,
+       loaddefs.el is read at startup and must always be in a usable state.
+
+       * lisp/Makefile.in ($(lisp)/loaddefs.el): Write generated output to
+       loaddefs.el.new and then rename it to loaddefs.el.
+
+2017-04-09  Glenn Morris  <address@hidden>
+
+       In the manual, mention pops and imaps
+
+       * doc/emacs/rmail.texi (Movemail, Remote Mailboxes):
+       Mention pops and imaps protocols.
+
+2017-04-09  Glenn Morris  <address@hidden>
+
+       * doc/emacs/rmail.texi: Prefer @command to @code for movemail.
+
+2017-04-09  Sergey Poznyakoff  <address@hidden>
+
+       Fix rmail handling of movemail protocols (bug#18278)
+
+       * lisp/mail/rmail.el (rmail-remote-proto-p): New function.
+       (rmail-parse-url): Return protocol in second list element.
+       Only use passwords with remote mailboxes.
+       (rmail-insert-inbox-text): Handle non-simple local
+       mailboxes (maildir, MH, etc.).
+
+2017-04-09  Glenn Morris  <address@hidden>
+
+       Fix typos in manual re movemail local mailboxes
+
+       * doc/emacs/rmail.texi (Movemail, Other Mailbox Formats):
+       Fix examples of local mailbox urls.
+
+2017-04-08  Glenn Morris  <address@hidden>
+
+       * lisp/gnus/nnmail.el (nnmail-crosspost-link-function): Simplify.
+
+2017-04-08  Glenn Morris  <address@hidden>
+
+       Remove references to OS/2 in code, doc, and comments
+
+       * lisp/gnus/nnheader.el (nnheader-read-timeout)
+       (nnheader-file-name-translation-alist): Remove OS/2 case, and simplify.
+       * lisp/emulation/viper-util.el (viper-color-defined-p):
+       * lisp/net/pop3.el (pop3-read-timeout):
+       * lisp/net/imap.el (imap-read-timeout):
+       * lisp/url/url-privacy.el (url-setup-privacy-info): Remove OS/2 case.
+       * lisp/emulation/viper-ex.el (viper-glob-function):
+       * lisp/vc/ediff-util.el (ediff-submit-report): Doc fix.
+       * lisp/cus-edit.el (custom-display): Remove "pm" (OS/2).
+       * doc/emacs/msdos-xtra.texi (MS-DOS):
+       * doc/misc/gnus.texi (Various Various):
+       * doc/misc/viper.texi (Rudimentary Changes): Remove mentions of OS/2.
+
+2017-04-08  Michael Albinus  <address@hidden>
+
+       Tune Tramp syntax
+
+       * lisp/net/tramp-cmds.el (tramp-change-syntax):
+       Use `tramp-syntax-values'.
+
+       * lisp/net/tramp-compat.el (tramp-compat-tramp-syntax): New defsubst.
+
+       * lisp/net/tramp.el (tramp-syntax): Rename possible values.
+       (tramp-syntax-values): New defun.
+       (tramp-prefix-format, tramp-method-regexp)
+       (tramp-postfix-method-format, tramp-prefix-ipv6-format)
+       (tramp-postfix-ipv6-format, tramp-postfix-host-format)
+       (tramp-completion-file-name-regexp): Use `tramp-compat-tramp-syntax'
+       and changed values.
+       (tramp-completion-file-name-regexp-default): Rename from
+       `tramp-completion-file-name-regexp-unified'.  Adapt docstring.
+       (tramp-completion-file-name-regexp-simplified): Rename from
+       `tramp-completion-file-name-regexp-old-style'.  Adapt docstring.
+       (tramp-initial-completion-file-name-regexp):
+       Use `tramp-completion-file-name-regexp-default'.
+       (tramp-run-real-handler): Do not autoload any longer.
+
+2017-04-08  Mark Oteiza  <address@hidden>
+
+       Replace more nested ifs with cond
+
+       This is a continuation of d526047 "Replace more nested ifs with cond".
+       * lisp/play/dunnet.el (dun-firstword, dun-firstwordl, dun-cat): Use
+       when and cond where appropriate.
+
+2017-04-08  Mark Oteiza  <address@hidden>
+
+       Adjust the edebug spec of if-let*
+
+       This was fixed in Bug#24748, but now looking more closely, using gate in
+       the spec seems correct.  See (info "(elisp) Backtracking").
+       * lisp/emacs-lisp/subr-x.el (if-let*): Use gate in edebug spec.
+
+2017-04-08  Mark Oteiza  <address@hidden>
+
+       Replace some uses of cl-member-if with apply
+
+       From the mhtml-mode series.  Some of the uses of cl-lib are not
+       necessary.
+       * lisp/align.el: Don't require cl-lib.
+       (align-region): Use apply instead of cl-member-if.
+       * lisp/emulation/viper.el: Don't require cl-lib.
+       (viper-mode, this-major-mode-requires-vi-state): Use apply instead of
+       cl-member-if.
+
+2017-04-08  Philipp Stephani  <address@hidden>
+
+       Validate SPEC of `dolist', cf. Bug#25477.
+
+       * lisp/subr.el (dolist): Test type and length of SPEC.
+       * test/lisp/subr-tests.el (subr-tests--dolist--wrong-number-of-args):
+       Add unit test.
+
+2017-04-08  Philipp Stephani  <address@hidden>
+
+       Add unit test for Bug#26378
+
+       * test/lisp/vc/ediff-diff-tests.el
+       (ediff-diff-tests--ediff-exec-process--nil): New unit test.
+
+2017-04-08  Lars Brinkhoff  <address@hidden>
+
+       Fix circular read syntax for records.
+
+       * lread.c (substitute_object_recurse): Work with records.
+
+       * lread-tests.el (lread-record-1): New test.
+
+2017-04-08  Paul Eggert  <address@hidden>
+
+       Deprecate copy-record in favor of copy-sequence
+
+       Since copy-sequence seems to be needed anyway for records, have it
+       work on records, and remove copy-record as being superfluous.
+       * doc/lispref/records.texi (Records, Record Functions):
+       * lisp/emacs-lisp/cl-macs.el (cl-defstruct):
+       * lisp/emacs-lisp/eieio.el (make-instance, clone):
+       * test/src/alloc-tests.el (record-3):
+       Use copy-sequence, not copy-record, to copy records.
+       * doc/lispref/sequences.texi (Sequence Functions)
+       (Array Functions): Document that aref and copy-sequence
+       work on records.
+       * etc/NEWS: Omit copy-record.
+       * src/alloc.c (Fcopy_record): Remove.
+       * src/data.c (Faref): Document that arg can be a record.
+       * src/fns.c (Fcopy_sequence): Copy records, too.
+
+2017-04-08  Paul Eggert  <address@hidden>
+
+       Fix dependency checking in src/Makefile.in
+
+       * src/Makefile.in (AUTO_DEPEND, DEPDIR, DEPFLAGS): Move includes of
+       dependency files until after ALLOBJS is defined, since it uses ALLOBJS.
+       Otherwise, some dependencies will be missed.
+
+2017-04-08  Paul Eggert  <address@hidden>
+
+       Minor tuneup of write-region change
+
+       * src/fileio.c (write_region): Use SCHARS, not Flength,
+       on a value known to be a string.
+
+2017-04-08  Noam Postavsky  <address@hidden>
+
+       Adjust write-region so file name is at the beginning again
+
+       * lisp/epa-file.el (epa-file-write-region):
+       * lisp/gnus/mm-util.el (mm-append-to-file):
+       * lisp/jka-compr.el (jka-compr-write-region):
+       * lisp/net/ange-ftp.el (ange-ftp-write-region):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-write-region):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-write-region):
+       * src/fileio.c (write_region): Put file name at the beginning and move
+       number of characters to the end of the message.
+
+2017-04-08  Kaushal Modi  <address@hidden>
+
+       Check that file argument is a string
+
+       * lisp/vc/ediff-diff.el (ediff-exec-process): Check that the argument
+         passed to `file-local-copy' is a string (Bug#26378).  Also fix
+         the existing comment for this function, and convert it to its
+         doc-string.
+
+2017-04-08  Noam Postavsky  <address@hidden>
+
+       Fix handling of non-integer START param to write-region
+
+       The previous patch for Bug#354 incorrectly assumed that START would
+       always be an integer.
+
+       * lisp/epa-file.el (epa-file-write-region):
+       * lisp/jka-compr.el (jka-compr-write-region):
+       * lisp/net/ange-ftp.el (ange-ftp-write-region):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-write-region):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-write-region):
+       * src/fileio.c (write_region): Handle nil and string values of START.
+
+2017-04-07  Glenn Morris  <address@hidden>
+
+       * lisp/textmodes/rst.el (rst-package-emacs-version-alist): Fixes.
+
+2017-04-07  Michael Albinus  <address@hidden>
+
+       Add Tramp versions to `customize-package-emacs-version-alist'
+
+       * lisp/net/trampver.el (customize-package-emacs-version-alist):
+       Add Tramp versions to `customize-package-emacs-version-alist'.
+
+2017-04-07  Tom Tromey  <address@hidden>
+
+       * lisp/textmodes/rst.el (rst-toc-link-keymap): Move before first use.
+
+2017-04-07  Lars Brinkhoff  <address@hidden>
+
+       * records.texi (Record Functions): fix typo.
+
+2017-04-07  Paul Eggert  <address@hidden>
+
+       More casefiddle minor fixes
+
+       * src/casefiddle.c (case_character_impl): Omit unnecessary casts.
+       (case_character_impl): Avoid reevaluation of CHAR_TABLE_REF.
+       (GREEK_CAPITAL_LETTER_SIGMA): Fix typo in my previous change.
+
+2017-04-07  Jeff Clough  <address@hidden>
+
+       Output number of characters added to file (Bug#354)
+
+       * fileio.c (write_region):
+       * epa-file.el (epa-file-write-region):
+       * jka-compr.el (jka-compr-write-region):
+       * ange-ftp.el (ange-ftp-write-region):
+       * tramp-gvfs.el (tramp-gvfs-handle-write-region):
+       * tramp-sh.el (tramp-sh-handle-write-region):
+       * mm-util.el (mm-append-to-file): Functions now output
+       characters written in addition to file name.
+       * files.texi: Added documentation to write-region and
+       append-to-file describing their output.
+
+2017-04-07  Noam Postavsky  <address@hidden>
+
+       Fix ‘!NILP (Vpurify_flag)’ assertion failure during temacs bootstrap
+
+       The recent changes to src/casefiddle.c cause build failure as seen
+       below:
+
+           Starting program: 
/home/npostavs/src/emacs/emacs-bootstrapping/src/temacs
+               --batch --load loadup bootstrap
+           [Thread debugging using libthread_db enabled]
+           Using host libthread_db library "/usr/lib/libthread_db.so.1".
+           Loading loadup.el (source)...
+           Using load-path (/home/npostavs/src/emacs/emacs-bootstrapping/lisp
+               /home/npostavs/src/emacs/emacs-bootstrapping/lisp/emacs-lisp
+               /home/npostavs/src/emacs/emacs-bootstrapping/lisp/language
+               /home/npostavs/src/emacs/emacs-bootstrapping/lisp/international
+               /home/npostavs/src/emacs/emacs-bootstrapping/lisp/textmodes
+               /home/npostavs/src/emacs/emacs-bootstrapping/lisp/vc)
+           Loading emacs-lisp/byte-run (source)...
+           Loading emacs-lisp/backquote (source)...
+           Loading subr (source)...
+           Loading version (source)...
+           Loading widget (source)...
+           Loading custom (source)...
+           Loading emacs-lisp/map-ynp (source)...
+           Loading international/mule (source)...
+           Loading international/mule-conf (source)...
+
+           lread.c:3914: Emacs fatal error: assertion failed: !NILP 
(Vpurify_flag)
+
+           Breakpoint 1, terminate_due_to_signal at emacs.c:363
+           363   signal (sig, SIG_DFL);
+           (gdb) bt
+           #0  0x0000000000579826 in terminate_due_to_signal at emacs.c:363
+           #1  0x000000000060ec33 in die at alloc.c:7352
+           #2  0x000000000066db40 in intern_c_string_1 at lread.c:3914
+           #3  0x0000000000576884 in intern_c_string at lisp.h:3790
+           #4  0x00000000005dc84f in prepare_casing_context at casefiddle.c:69
+           #5  0x00000000005dd37f in casify_object at casefiddle.c:311
+           #6  0x00000000005dd47f in Fcapitalize at casefiddle.c:356
+           #7  0x00000000006325ac in eval_sub at eval.c:2219
+           #8  0x0000000000632368 in eval_sub at eval.c:2184
+           #9  0x000000000063446c in apply_lambda at eval.c:2875
+           #10 0x00000000006329af in eval_sub at eval.c:2294
+           #11 0x000000000062d462 in Fprogn at eval.c:449
+           #12 0x000000000062d4cf in prog_ignore at eval.c:461
+           #13 0x000000000062f19c in Fwhile at eval.c:982
+           #14 0x00000000006321f4 in eval_sub at eval.c:2172
+           #15 0x000000000062d462 in Fprogn at eval.c:449
+           #16 0x000000000062f0c4 in Flet at eval.c:963
+           #17 0x00000000006321f4 in eval_sub at eval.c:2172
+           #18 0x0000000000632963 in eval_sub at eval.c:2290
+           #19 0x000000000062d462 in Fprogn at eval.c:449
+           #20 0x000000000062f0c4 in Flet at eval.c:963
+           #21 0x00000000006321f4 in eval_sub at eval.c:2172
+           #22 0x0000000000668caa in readevalloop at lread.c:1927
+           #23 0x0000000000667253 in Fload at lread.c:1332
+           #24 0x0000000000632683 in eval_sub at eval.c:2233
+           #25 0x0000000000668caa in readevalloop at lread.c:1927
+           #26 0x0000000000667253 in Fload at lread.c:1332
+           #27 0x0000000000632683 in eval_sub at eval.c:2233
+           #28 0x0000000000631be5 in Feval at eval.c:2041
+           #29 0x000000000057e1af in top_level_2 at keyboard.c:1121
+           #30 0x000000000062ffc7 in internal_condition_case at eval.c:1324
+           #31 0x000000000057e1f0 in top_level_1 at keyboard.c:1129
+           #32 0x000000000062f51e in internal_catch at eval.c:1091
+           #33 0x000000000057e0ea in command_loop at keyboard.c:1090
+           #34 0x000000000057d6d5 in recursive_edit_1 at keyboard.c:697
+           #35 0x000000000057d8b4 in Frecursive_edit at keyboard.c:768
+           #36 0x000000000057b55b in main at emacs.c:1687
+
+           Lisp Backtrace:
+           "capitalize" (0xffffcf70)
+           "format" (0xffffd130)
+           "define-charset" (0xffffd370)
+           "while" (0xffffd560)
+           "let" (0xffffd7c0)
+           "dolist" (0xffffd910)
+           "let" (0xffffdb70)
+           "load" (0xffffdfe0)
+           "load" (0xffffe4a0)
+
+       * src/casefiddle.c (syms_of_casefiddle): Declare four new symbols:
+       Qtitlecase, Qspecial_uppercase, Qspecial_lowercase and
+       Qspecial_titlecase.
+       (prepare_casing_context): Use aforementioned symbols.
+
+2017-04-07  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This merges some getopt fixes from Zack Weinberg, and affects only
+       non-GNUish platforms.  It incorporates:
+       2017-04-06 getopt-gnu: omit some duplicate code
+       2017-04-06 getopt-posix: use angle-bracket include
+       2017-04-06 getopt: annotate files with relationship to glibc
+       2017-04-06 getopt: split up getopt.in.h and eliminate __need_getopt
+       2017-04-06 getopt: better handling of ambiguous options
+       2017-04-06 getopt: refactor long-option handling
+       2017-04-06 getopt: tidy up _getopt_initialize a bit
+       2017-04-06 getopt: merge from glibc: repetition reduction
+       2017-04-06 getopt: clean up error reporting
+       2017-04-06 getopt: fix fencepost error in ambiguous-W-option handling
+       2017-04-06 getopt: clean up getopt.c and getopt1.c file headers
+       2017-04-06 getopt: harmonize comments with glibc
+       2017-04-06 getopt: remove USE_NONOPTION_FLAGS
+       2017-04-06 getopt: tabify, in preparation for merge with glibc
+       2017-04-06 md5, sha1, sha256, sha512: Add comments re correctness
+       * build-aux/config.sub, doc/misc/texinfo.tex, lib/getopt.c:
+       * lib/getopt.in.h, lib/getopt1.c, lib/getopt_int.h, lib/md5.c:
+       * lib/md5.h, lib/sha1.c, lib/sha1.h, lib/sha256.c, lib/sha256.h:
+       * lib/sha512.c, lib/sha512.h, lib/unistd.in.h, m4/getopt.m4:
+       Copy from gnulib.
+       * lib/getopt_cdefs.in.h, lib/getopt_core.h, lib/getopt_ext.h:
+       * lib/getopt_pfx_core.h, lib/getopt_pfx_ext.h:
+       New files, taken from gnulib.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4:
+       Regenerate.
+
+2017-04-07  Hong Xu  <address@hidden>
+
+       * search.c (Fre_search_forward, Fre_search_backward): Improve doc 
(Bug#25193).
+
+2017-04-07  Noam Postavsky  <address@hidden>
+
+       Mention that processes start in default-directory (Bug#18515)
+
+       * doc/lispref/processes.texi (Synchronous Processes):
+       (Asynchronous Processes):
+       * lisp/subr.el (start-process):
+       * src/callproc.c (call-process): Mention that the subprocess starts in
+       `default-directory' when local, suggest `start-file-process' and
+       `process-file' otherwise.
+
+2017-04-07  Noam Postavsky  <address@hidden>
+
+       * src/xdisp.c (vmessage, message): Clarify commentary.
+
+2017-04-07  Paul Eggert  <address@hidden>
+
+       Minor casefiddle.c cleanups
+
+       * src/casefiddle.c: Redo recent changes to match GNU style,
+       and prefer C99-style decls within blocks.
+       (GREEK_CAPITAL_LETTER_SIGMA): Rename from CAPITAL_SIGMA, so that
+       we are merely using the Unicode name, and make it a constant
+       rather than a macro.  All uses changed.
+       (SMALL_SIGMA): Remove; unused.
+       (GREEK_SMALL_LETTER_FINAL_SIGMA): Rename from SMALL_FINAL_SIGMA,
+       and make it a constant rather than a macro.  All uses changed.
+       (do_casify_multibyte_string): Use ‘verify’ rather than an
+       unportable static_assertion local.
+
+2017-04-07  Paul Eggert  <address@hidden>
+
+       * lisp/international/README: Update to match current list.
+
+2017-04-06  Paul Eggert  <address@hidden>
+
+       Fix 'make clean' in lib subdirectory
+
+       * lib/Makefile.in (clean): Remove *-t files.
+       (mostlyclean): Remove MOSTLYCLEANFILES that are not *-t files.
+       This removes files like lib/getopt.h that should be removed
+       even if this configuration did not need to build them.
+       (maintainer-clean): Remove TAGS here, not in distclean,
+       to be consistent with ../src/Makefile.in.
+
+2017-04-06  Michael Albinus  <address@hidden>
+
+       Add new Tramp syntax
+
+       * lisp/net/tramp-cmds.el (tramp-change-syntax): New defun.
+
+       * lisp/net/tramp.el (tramp-syntax): Change default to `def'.
+       Add :set function.
+       (tramp-prefix-port-format): Simplify.
+       (tramp-file-name-regexp-separate): Remove.
+       (tramp-initial-file-name-regexp)
+       (tramp-completion-file-name-regexp-old-style)
+       (tramp-initial-completion-file-name-regexp): New defconst.
+       (tramp-prefix-format, tramp-prefix-regexp)
+       (tramp-method-regexp, tramp-postfix-method-format)
+       (tramp-postfix-method-regexp, tramp-prefix-ipv6-format)
+       (tramp-prefix-ipv6-regexp, tramp-postfix-ipv6-format)
+       (tramp-postfix-ipv6-regexp)
+       (tramp-postfix-host-format, tramp-postfix-host-regexp)
+       (tramp-remote-file-name-spec-regexp)
+       (tramp-file-name-structure, tramp-file-name-regexp)
+       (tramp-completion-file-name-regexp)
+       (tramp-rfn-eshadow-update-overlay-regexp): Change them to be defuns.
+       (tramp-tramp-file-p, tramp-find-method)
+       (tramp-dissect-file-name, tramp-make-tramp-file-name)
+       (tramp-completion-make-tramp-file-name)
+       (tramp-rfn-eshadow-update-overlay)
+       (tramp-register-autoload-file-name-handlers)
+       (tramp-register-file-name-handlers)
+       (tramp-unload-file-name-handlers)
+       (tramp-completion-handle-file-name-all-completions)
+       (tramp-completion-dissect-file-name, tramp-clear-passwd):
+       * lisp/net/tramp-ftp.el (tramp-ftp-file-name-handler):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-vc-registered)
+       (tramp-compute-multi-hops): Use them.
+
+2017-04-06  Michal Nazarewicz  <address@hidden>
+
+       Implement special sigma casing rule  (bug#24603)
+
+       In Greek, a sigma character has two lower case forms which depend on
+       their position in the word.  Implement logic determining it.
+
+       * src/casefiddle.c (struct casing_context, case_character_impl): Don’t
+       assume inword is true when flag is CASE_UP and false when flag is
+       CASE_DOWN.  For final sigma detection we need this information tracked
+       reliably;.
+       (CAPITAL_SIGMA, SMALL_SIGMA, SMALL_FINAL_SIGMA): New macros defining
+       Unicode code point of different forms of sigma letter.
+       (case_character): Implement support for final sigma casing.
+       (do_casify_multibyte_string, do_casify_multibyte_region): Update after
+       changes to case_character.
+
+       * test/src/casefiddle-tests.el (casefiddle-tests-casing): Add test
+       cases for final sigma.
+
+2017-04-06  Michal Nazarewicz  <address@hidden>
+
+       Support casing characters which map into multiple code points  
(bug#24603)
+
+       Implement unconditional special casing rules defined in Unicode 
standard.
+
+       Among other things, they deal with cases when a single code point is
+       replaced by multiple ones because single character does not exist (e.g.
+       ‘fi’ ligature turning into ‘FL’) or is not commonly used (e.g. ß turning
+       into SS).
+
+       * admin/unidata/SpecialCasing.txt: New data file pulled from Unicode
+       standard distribution.
+       * admin/unidata/README: Mention SpecialCasing.txt.
+
+       * admin/unidata/unidata-get.el (unidata-gen-table-special-casing,
+       unidata-gen-table-special-casing--do-load): New functions generating
+       ‘special-uppercase’, ‘special-lowercase’ and ‘special-titlecase’
+       character Unicode properties built from the SpecialCasing.txt Unicode
+       data file.
+
+       * src/casefiddle.c (struct casing_str_buf): New structure for
+       representing short strings used to handle one-to-many character
+       mappings.
+
+       (case_character_imlp): New function which can handle one-to-many
+       character mappings.
+       (case_character, case_single_character): Wrappers for the above
+       functions.  The former may map one character to multiple (or no)
+       code points while the latter does what the former used to do (i.e.
+       handles one-to-one mappings only).
+
+       (do_casify_natnum, do_casify_unibyte_string,
+       do_casify_unibyte_region): Use case_single_character.
+       (do_casify_multibyte_string, do_casify_multibyte_region): Support new
+       features of case_character.
+       * (do_casify_region): Updated to reflact do_casify_multibyte_string
+       changes.
+
+       (casify_word): Handle situation when one character-length of a word
+       can change affecting where end of the word is.
+
+       (upcase, capitalize, upcase-initials): Update documentation to mention
+       limitations when working on characters.
+
+       * test/src/casefiddle-tests.el (casefiddle-tests-char-properties):
+       Add test cases for the newly introduced character properties.
+       (casefiddle-tests-casing): Update test cases which are now passing.
+
+       * test/lisp/char-fold-tests.el (char-fold--ascii-upcase,
+       char-fold--ascii-downcase): New functions which behave like old ‘upcase’
+       and ‘downcase’.
+       (char-fold--test-match-exactly): Use the new functions.  This is needed
+       because otherwise fi and similar characters are turned into their multi-
+       -character representation.
+
+       * doc/lispref/strings.texi: Describe issue with casing characters versus
+       strings.
+       * doc/lispref/nonascii.texi: Describe the new character properties.
+
+2017-04-06  Michal Nazarewicz  <address@hidden>
+
+       Split up casify_region function  (bug#24603)
+
+       No functional changes at this time but splitting casify_region into
+       a function dealing with multibyte and another dealing with unibyte
+       buffers will make future code changes slightly easier.
+
+       * src/casefiddle.c (casify_region): Move most of the code into two
+       new functions:
+       (do_casify_multibyte_region, do_casify_unibyte_region): new functions.
+
+2017-04-06  Michal Nazarewicz  <address@hidden>
+
+       Add support for title-casing letters  (bug#24603)
+
+       * src/casefiddle.c (struct casing_context, prepare_casing_context): Add
+       titlecase_char_table member.  It’s set to the ‘titlecase’ Unicode
+       property table if capitalisation has been requested.
+       (case_character): Make use of the titlecase_char_table to title-case
+       initial characters when capitalising.
+
+       * test/src/casefiddle-tests.el (casefiddle-tests--characters,
+       casefiddle-tests-casing): Update test cases which are now passing.
+
+2017-04-06  Michal Nazarewicz  <address@hidden>
+
+       Introduce case_character function
+
+       Move single-character casing logic into a separate function so that
+       it is collected in a single place.  This will make future changes to
+       the logic easier.  This commit introduces no functionality changes.
+
+       * src/casefiddle.c (struct casing_context, prepare_casing_context): New
+       sturcture for saving casing context and function to initialise it.
+       (case_character): New function which cases character base on provided
+       context.
+       (do_casify_integer, do_casify_multibyte_string,
+       do_casify_unibyte_string, casify_object, casify_region): Convert to
+       use casing_context and case_character.
+
+2017-04-06  Michal Nazarewicz  <address@hidden>
+
+       Split casify_object into multiple functions
+
+       casify_object had three major cases to cover and those were mostly
+       independent of each other.  Move those branches to separate function
+       so it’s easier to comprehend each individual case.
+
+       While at it, use somewhat more descriptive ch and cased variable names
+       rather than c and c1.
+
+       This commit introduces no functional changes.
+
+       * src/casefiddle.c (casify_object): Split into…
+       (do_casify_integer, do_casify_multibyte_string,
+       do_casify_unibyte_string): …new functions.
+
+2017-04-06  Lars Brinkhoff  <address@hidden>
+
+       Update documentation for type semantics of records.
+
+       * objects.texi (Record Type): improve description of what
+       `type-of' returns for records.
+       (Type Descriptors): new section.
+       * elisp.texi: reference it.
+       * records.texi (Records): reference it.  Document behaviour when type
+       slot is a record.
+
+       * alloc.c (Fmake_record, Frecord): mention type desciptors.
+
+2017-04-06  Stefan Monnier  <address@hidden>
+
+       * lisp/help-fns.el (describe-symbol): `nil' is not an interesting 
default.
+
+2017-04-06  Tom Tromey  <address@hidden>
+
+       require cl-lib to fix fallout from mhtml series
+
+       * lisp/align.el, lisp/calc/calc-embed.el, lisp/cedet/semantic.el,
+       lisp/emulation/viper.el: Require cl-lib.
+
+2017-04-06  Ken Raeburn  <address@hidden>
+
+       In CANNOT_DUMP builds, allow editing of files named "dump".
+
+       * lisp/loadup.el: Perform the "dump" or "bootstrap" actions like
+       calling dump-emacs only if dump-emacs is defined; otherwise, don't
+       treat those command-line argument specially.
+
+2017-04-06  Ken Raeburn  <address@hidden>
+
+       In CANNOT_DUMP builds, don't prepare for unexec.
+
+       Having a command-line argument of "dump" or "bootstrap" would trigger
+       behavior like not installing signal handlers.  In CANNOT_DUMP modes,
+       we should get signal handlers installed regardless of whatever funny
+       file names we decide to edit.
+
+       src/emacs.c (main) [CANNOT_DUMP]: Don't enable the "dumping"
+       alterations to initialization that prepares the process for unexec.
+
+2017-04-06  Ken Raeburn  <address@hidden>
+
+       Allow a CANNOT_DUMP build to use exec-path during bootstrap.
+
+       During a bootstrap, loading rmail.el invokes movemail to determine its
+       flavor, but call-process doesn't work if exec-path is nil.
+
+       * lisp/loadup.el: Only clear exec-path if dumping.
+
+2017-04-06  Ken Raeburn  <address@hidden>
+
+       Fix CANNOT_DUMP build on Darwin/macOS.
+
+       * src/conf_post.h (malloc, realloc, free) [DARWIN_OS && emacs &&
+       CANNOT_DUMP]: Don't define as unexec_malloc, etc.
+       * src/emacs.c (main): Don't call unexec_init_emacs_zone.
+
+2017-04-05  Tom Tromey  <address@hidden>
+
+       add two more mhtml tests
+
+       * test/manual/indent/html-multi-2.html: New file.
+       * test/manual/indent/html-multi-3.html: New file.
+
+2017-04-05  Tom Tromey  <address@hidden>
+
+       enable mhtml-mode by default
+
+       * lisp/files.el (auto-mode-alist): Reference mhtml-mode, not
+       html-mode.
+       (magic-fallback-mode-alist): Likewise.
+       * lisp/net/eww.el (eww-view-source): Use mthml-mode.
+
+2017-04-05  Tom Tromey  <address@hidden>
+
+       add mhtml-mode.el
+
+       * etc/NEWS: Update.
+       * lisp/textmodes/mhtml-mode.el: New file.
+       * test/manual/indent/html-multi.html: New file.
+       * test/lisp/textmodes/mhtml-mode-tests.el: New file.
+       * doc/emacs/text.texi (HTML Mode): Mention mhtml-mode.
+
+2017-04-05  Tom Tromey  <address@hidden>
+
+       change sgml-mode to help multi-html mode
+
+       * lisp/textmodes/sgml-mode.el (sgml-syntax-propertize-rules): New
+       defconst.
+       (sgml-syntax-propertize): Use it.
+       (sgml--find-<>-backward): New function.
+       (sgml-parse-tag-backward): Use it.
+
+2017-04-05  Tom Tromey  <address@hidden>
+
+       make js.el respect prog-first-column
+
+       * lisp/progmodes/js.el (js--proper-indentation): Call prog-first-column.
+
+2017-04-05  Tom Tromey  <address@hidden>
+
+       make smie.el respect prog-first-column
+
+       * lisp/emacs-lisp/smie.el (smie-indent-bob): Call prog-first-column.
+
+2017-04-05  Tom Tromey  <address@hidden>
+
+       change viper to use derived-mode-p
+
+       * lisp/subr.el (provided-mode-derived-p): New function.
+       (derived-mode-p): Use it.
+       * lisp/emulation/viper.el (viper-mode): Use derived-mode-p.
+       (this-major-mode-requires-vi-state): Use provided-mode-derived-p.
+       (set-viper-state-in-major-mode): Use derived-mode-p.
+
+2017-04-05  Tom Tromey  <address@hidden>
+
+       change align to use derived-mode-p
+
+       * lisp/align.el (align-region): Use derived-mode-p.
+
+2017-04-05  Tom Tromey  <address@hidden>
+
+       change org to use derived-mode-p
+
+       * lisp/org/org-list.el (org-list-insert-radio-list): Use
+       derived-mode-p.
+       * lisp/org/org-table.el (orgtbl-setup, orgtbl-toggle-comment): Use
+       derived-mode-p.
+
+2017-04-05  Tom Tromey  <address@hidden>
+
+       change semantic to use derived-mode-p
+
+       * lisp/cedet/semantic.el (semantic-new-buffer-fcn): Use derived-mode-p.
+
+2017-04-05  Tom Tromey  <address@hidden>
+
+       change calc to use derived-mode-p
+
+       * lisp/calc/calc-embed.el (calc-embedded-find-modes)
+       (calc-embedded-make-info): Use derived-mode-p.
+
+2017-04-05  Tom Tromey  <address@hidden>
+
+       change auto-insert to use derived-mode-p
+
+       * lisp/autoinsert.el (auto-insert): Use derived-mode-p.
+
+2017-04-05  Paul Eggert  <address@hidden>
+
+       * lisp/info.el (Info-search): Fix typo in April 1 change.
+
+2017-04-05  Paul Eggert  <address@hidden>
+
+       Minor cleanups related to type-of
+
+       * src/data.c (Frecordp): Rename from Frecordp_p, for consistency.
+       * src/data.c (syms_of_data):
+       * src/frame.c (syms_of_frame): Put all the primitive type names
+       together, under the "Types that type-of returns" comment.
+
+2017-04-05  Glenn Morris  <address@hidden>
+
+       * doc/lispref/package.texi (Package Archives): Mention https.
+
+2017-04-05  Glenn Morris  <address@hidden>
+
+       Advertise https for homepage of gnu.org packages
+
+       * lisp/emacs-lisp/package.el (describe-package-1):
+       Use https, if supported, for the homepage of packages on gnu.org.
+
+2017-04-05  Glenn Morris  <address@hidden>
+
+       Default to https for elpa.gnu.org if gnutls available
+
+       * lisp/emacs-lisp/package.el (package-archives):
+       Default to https for elpa.gnu.org if gnutls is available.  Ref:
+       http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00130.html
+
+2017-04-04  Paul Eggert  <address@hidden>
+
+       Minor simplifications and doc for records
+
+       * doc/lispref/records.texi (Records): Mention size limit.
+       * etc/NEWS: Mention records.
+       * src/alloc.c (allocate_pseudovector, allocate_record):
+       Prefer 'PSEUDOVECTOR_SIZE_MASK' to its definiens.
+       (allocate_record): Check arg range here, not in callers, as this
+       simplifies the code.  Use allocate_vectorlike instead of
+       allocate_vector, to avoid duplicate runtime tests.
+       (Fmake_record, record): Don't mention PSEUDOVECTOR_SIZE_BITS in
+       the doc string, as it is not visible to the user.
+       (Fmake_record, record, Fcopy_record):
+       Prefer make_lisp_ptr to XSETVECTOR.
+       (record): Broaden memcpy to copy the type, too.
+
+2017-04-04  Eli Zaretskii  <address@hidden>
+
+       Fix recent changes in record data type
+
+       * src/alloc.c (Fmake_record, Frecord, Fcopy_record): Avoid
+       compiler warnings when 'ptrdiff_t' is narrower than 'long int'.
+
+2017-04-04  Philipp Stephani  <address@hidden>
+
+       Make subprocess functions resolve the default directory
+
+       `call-process' doesn't respect file name handlers in
+       `default-directory', so `file-name-non-special' has to resolve them
+       for `process-file', `start-file-process', and
+       `shell-command' (Bug#25949).
+
+       * lisp/files.el (file-name-non-special): Also resolve default
+       directory for 'process-file', 'start-file-process', and
+       'shell-command'.
+       * test/lisp/files-tests.el
+       (files-tests--file-name-non-special--subprocess): Add unit test.
+
+2017-04-04  Philipp Stephani  <address@hidden>
+
+       Make ediff handle remote and quoted file names
+
+       Quoted file names need to be unquoted before passed to
+       subprocesses (Bug#25950).
+
+       * lisp/vc/ediff-diff.el (ediff-exec-process): Handle remote and quoted
+       file names.
+       * test/lisp/vc/ediff-diff-tests.el
+       (ediff-diff-tests--ediff-exec-process--quoted-file): Add unit test.
+
+2017-04-04  Stefan Monnier  <address@hidden>
+
+       Backward compatibility with pre-existing struct instances.
+
+       * lisp/emacs-lisp/cl-lib.el (cl--old-struct-type-of): New function.
+       (cl-old-struct-compat-mode): New minor mode.
+
+       * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Pass `record' to
+       cl-struct-define to signal use of record objects.
+
+       * lisp/emacs-lisp/cl-preloaded.el (cl--struct-get-class,
+       cl-struct-define): Enable legacy defstruct compatibility.
+
+       * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-old-struct,
+       old-struct): New tests.
+
+       * doc/lispref/elisp.texi, doc/lispref/records.texi: Document
+       `old-struct-compat'.
+
+2017-04-04  Lars Brinkhoff  <address@hidden>
+
+       Make the URL library use records.
+
+       * lisp/url/url.el, lisp/url/url-cache.el, lisp/url/url-dav.el,
+       lisp/url/url-expand.el, lisp/url/url-file.el, lisp/url/url-imap.el,
+       lisp/url/url-ldap.el: Use `url-p' instead of `vectorp'.
+
+       * lisp/url/url-http.el (url-http): Check for type `url' instead of
+       `vector'.
+
+2017-04-04  Stefan Monnier  <address@hidden>
+
+       Make EIEIO use records.
+
+       * lisp/emacs-lisp/eieio-compat.el
+       (eieio--generic-static-object-generalizer): Adjust to new tags.
+
+       * lisp/emacs-lisp/eieio-core.el: Use records, and place the class object
+       directly as tag.
+       (eieio--object-class): Adjust to new tag representation.
+       (eieio-object-p): Rewrite, and adapt to new `type-of' behavior.
+       (eieio-defclass-internal): Use `make-record'.
+       (eieio--generic-generalizer): Adjust generalizer code accordingly.
+
+       * lisp/emacs-lisp/eieio.el (make-instance, clone): Use copy-record.
+
+       * lisp/emacs-lisp/pcase.el (pcase-mutually-exclusive-predicates):
+       Add `recordp'.
+
+       * doc/lispref/records.texi, doc/misc/eieio.texi: Update for records.
+
+2017-04-04  Lars Brinkhoff  <address@hidden>
+
+       Make cl-defstruct use records.
+
+       * lisp/emacs-lisp/cl-extra.el (cl--describe-class)
+       (cl--describe-class-slots): Use the new `type-of'.
+
+       * lisp/emacs-lisp/cl-generic.el (cl--generic-struct-tag): Use type-of.
+       (cl--generic-struct-specializers): Adjust to new tag.
+
+       * lisp/emacs-lisp/cl-macs.el (cl-defstruct): When type is nil, use 
records.
+       Use the type symbol as the tag.  Use copy-record to copy structs.
+       (cl--defstruct-predicate): New function.
+       (cl--pcase-mutually-exclusive-p): Use it.
+       (cl-struct-sequence-type): Can now return `record'.
+
+       * lisp/emacs-lisp/cl-preloaded.el (cl--make-slot-desc): Adjust ad-hoc
+       code to new format.
+       (cl--struct-register-child): Work with records.
+       (cl-struct-define): Don't touch the tag's symbol-value and
+       symbol-function slots when we use the type as tag.
+
+       * lisp/emacs-lisp/cl-print.el (cl-print-object): Adjust to new tag.
+
+       * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-defstruct-record):
+       New test.
+
+       * doc/lispref/records.texi, doc/misc/cl.texi: Update for records.
+
+2017-04-04  Lars Brinkhoff  <address@hidden>
+
+       Add record objects with user-defined types.
+
+       * src/alloc.c (allocate_record): New function.
+       (Fmake_record, Frecord, Fcopy_record): New functions.
+       (syms_of_alloc): defsubr them.
+       (purecopy): Work with records.
+
+       * src/data.c (Ftype_of): Return slot 0 for record objects, or type
+       name if record's type holds class.
+       (Frecordp): New function.
+       (syms_of_data): defsubr it.  Define `Qrecordp'.
+       (Faref, Faset): Work with records.
+
+       * src/fns.c (Flength): Work with records.
+
+       * src/lisp.h (prec_type): Add PVEC_RECORD.
+       (RECORDP, CHECK_RECORD, CHECK_RECORD_TYPE): New functions.
+
+       * src/lread.c (read1): Add syntax for records.
+
+       * src/print.c (PRINT_CIRCLE_CANDIDATE_P): Add RECORDP.
+       (print_object): Add syntax for records.
+
+       * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-2):
+       New test.
+
+       * test/src/alloc-tests.el (record-1, record-2, record-3):
+       New tests.
+
+       * doc/lispref/elisp.texi, doc/lispref/objects.texi,
+       doc/lispref/records.texi: Add documentation for records.
+
+2017-04-04  Tino Calancha  <address@hidden>
+
+       Fix a test in python-test.el
+
+       Fix a test that breaks the test suite when it is run within a
+       virtual environment.
+       See following link for details:
+       https://lists.gnu.org/archive/html/emacs-devel/2017-03/msg00857.html
+       * test/lisp/progmodes/python-tests.el
+       (python-shell-calculate-process-environment-7): Bind
+       python-shell-virtualenv-root to VIRTUAL_ENV when this var is set; 
otherwise
+       bind it to '/env'.
+
+2017-04-04  Noam Postavsky  <address@hidden>
+
+       Throw a `search-failed' derived error in Info search
+
+       The original fix for Bug#6106 switched from signalling `search-failed'
+       to `user-error'.  However, this breaks incremental searching over
+       multiple nodes because the isearch code doesn't expect a `user-error'.
+
+       * src/search.c (syms_of_search): New error, `user-search-failed',
+       with `user-error' and `search-failed' as parents.
+       * doc/lispref/errors.texi (Standard Errors): Document it.
+       * etc/NEWS: Announce it.
+       * lisp/info.el (Info-search): Use it instead of `user-error' so that
+       isearch will handle failed searches correctly.
+
+2017-04-03  Michael Albinus  <address@hidden>
+
+       Add Tramp test
+
+       * doc/misc/tramp.texi (Remote processes): Fix typo.
+
+       * lisp/shell.el (shell): Fix typo.
+
+       * lisp/net/tramp.el (tramp-set-connection-local-variables): Simplify.
+
+       * test/lisp/net/tramp-tests.el (tramp-test30-explicit-shell-file-name):
+       New test.
+       (tramp--test-special-characters, tramp--test-utf8): Adapt docstring.
+       (tramp-test31-vc-registered)
+       (tramp-test32-make-auto-save-file-name)
+       (tramp-test33-make-nearby-temp-file)
+       (tramp-test34-special-characters)
+       (tramp-test34-special-characters-with-stat)
+       (tramp-test34-special-characters-with-perl)
+       (tramp-test34-special-characters-with-ls, tramp-test35-utf8)
+       (tramp-test35-utf8-with-stat, tramp-test35-utf8-with-perl)
+       (tramp-test35-utf8-with-ls)
+       (tramp-test36-asynchronous-requests)
+       (tramp-test37-recursive-load, tramp-test38-unload): Rename.
+
+2017-04-03  Stefan Monnier  <address@hidden>
+
+       * lisp/ses.el: Silence byte-compiler warnings.
+
+       (ses-jump, ses-recalculate-cell, ses-define-local-printer): Silence
+       byte-compiler warnings.
+
+2017-04-02  Glenn Morris  <address@hidden>
+
+       Belated fixes for admin.el's M-x make-manuals-dist
+
+       * admin/admin.el (make-manuals-dist-output-variables): Additions.
+       (make-manuals-dist--1): Also copy docstyle.texi.
+
+2017-04-02  Paul Eggert  <address@hidden>
+
+       Fix bugs in simplified test dependencies
+
+       Problem reported by Glenn Morris in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-04/msg00017.html
+       * test/Makefile.in (LOGFILES, TESTS): Omit leading "./".
+       (TESTS): Omit unnecessary patsubst.
+       (test_template): Redo dependency heuristic, hopefully
+       correctly this time.  It's the .log file that depends,
+       not the phony test target.  Declare the phonies to be PHONY.
+       Resurrect the exception for the *-tests subdirectory.
+       Adjust to the fact that leading "./" is omitted now.
+
+2017-04-02  Wilfred Hughes  <address@hidden>
+
+       Fix typo in docstring
+
+       * lisp/help.el: Fix typo.
+
+2017-04-02  Michael Albinus  <address@hidden>
+
+       Apply connecion-local variables for shells
+
+       * doc/misc/tramp.texi (Remote processes): Show use of connection-local
+       variables.  Don't mention Emacs 23 anymore.
+       (Frequently Asked Questions): Precise Emacs and MS Windows version.
+
+       * lisp/files-x.el (connection-local-normalize-criteria):
+       Suppress nil properties.
+       (connection-local-set-profiles, with-connection-local-profiles):
+       Adapt docstring.
+
+       * lisp/shell.el (shell): Apply connecion-local variables.
+
+2017-04-01  Evgeni Kolev  <address@hidden>  (tiny change)
+
+       Propertize only perl prototype chars `][$%&*;address@hidden' as 
punctuation
+
+       This prevents variables in signatures such as `sub add ($a, $b)' from
+       being treated as punctuation.
+       * lisp/progmodes/perl-mode.el (perl-syntax-propertize-function):
+       Strictly match only prototype characters as punctuation.  (Bug#26037)
+
+2017-04-01  Tom Tromey  <address@hidden>
+
+       fix two js-mode syntax propertization bugs
+
+       Bug#26070:
+       * lisp/progmodes/js.el (js--syntax-propertize-regexp-regexp): Add
+       zero-or-one to regular expression.
+       (js-syntax-propertize-regexp): Update.  Propertize body of regexp
+       literal up to END.
+       * test/lisp/progmodes/js-tests.el (js-mode-propertize-bug-1)
+       (js-mode-propertize-bug-2): New tests.
+
+2017-04-01  Paul Eggert  <address@hidden>
+
+       Simplify test dependency generation
+
+       Generate default dependencies by using GNU extensions to ‘make’
+       rather than via a hacky auxiliary program and script.
+       * .gitignore: Remove test/make-test-deps.mk.
+       * test/Makefile.in (ELFILES, LOGFILES, TESTS):
+       Use :=, not =, to avoid multiple redundant invocations of ‘find’.
+       (test_template): Infer dependency directly instead of via
+       make-test-deps.mk.
+       (check-doit): Prepend address@hidden to avoid excessively long ‘make’ 
output.
+       (clean): No need to clean make-test-deps.mk.
+       (make-test-deps.mk): Remove rule.
+       * test/make-test-deps.emacs-lisp: Remove.
+
+2017-04-01  Stefan Monnier  <address@hidden>
+
+       * test/lisp/emacs-lisp/cl-lib-tests.el: Improve symbol-macrolet tests
+
+       (cl-lib-symbol-macrolet): Fix last test so it doesn't break the whole
+       test suite.
+       (cl-lib-symbol-macrolet-2): New test.
+
+2017-04-01  Tino Calancha  <address@hidden>
+
+       Use only posix options in a ediff-ptch test
+
+       * test/lisp/vc/ediff-ptch-tests.el (ediff-ptch-test-bug26084):
+       Use just "-b" patch option.  Don't assume a particular suffix for
+       the backup files.
+
+2017-04-01  Jarno Malmari  <address@hidden>
+
+       Initial implementation of HTTP Digest qop for url
+
+       This also refactors digest authentication functions in url-auth.el.
+
+       * lisp/url/url-auth.el (url-digest-auth, url-digest-auth-create-key):
+       (url-digest-auth-build-response, url-digest-auth-directory-id-assoc):
+       (url-digest-auth-name-value-string, url-digest-auth-source-creds):
+       (url-digest-cached-key, url-digest-cache-key, url-digest-find-creds):
+       (url-digest-find-new-key, url-digest-prompt-creds): Add new functions
+       to simplify code and aid in unit testing.
+       (url-digest-auth-build-response): Hook up new functionality, or fall
+       back to previous.
+       (url-digest-auth-make-request-digest-qop):
+       (url-digest-auth-make-cnonce, url-digest-auth-nonce-count):
+       (url-digest-auth-name-value-string): Add new helper functions.
+       * test/lisp/url/url-auth-tests.el (url-auth-test-colonjoin):
+       (url-auth-test-digest-ha1, url-auth-test-digest-ha2):
+       (url-auth-test-digest-request-digest): Add a few tests as now more
+       features are testable via intermediate functions.
+       (url-auth-test-challenges, url-auth-test-digest-request-digest): Test
+       the new implementation.  Parts of these were accidentally already
+       merged in the past.
+
+2017-04-01  Tino Calancha  <address@hidden>
+
+       Tweak ediff-ptch test in previous commit a bit more
+
+       * test/lisp/vc/ediff-ptch-tests.el (ediff-ptch-test-bug26084):
+       Apply patches without requiring a shell.  Add some comments.
+
+2017-03-31  Glenn Morris  <address@hidden>
+
+       Tweak an ediff-ptch test
+
+       * test/lisp/vc/ediff-ptch-tests.el (ediff-ptch-test-bug26084):
+       Add skip conditions.  Avoid going through shell where not needed.
+
+2017-03-31  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-smb.el (tramp-smb-errors):
+
+       Add "NT_STATUS_PASSWORD_MUST_CHANGE".
+
+2017-03-31  Stefan Monnier  <address@hidden>
+
+       * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-symbol-macrolet): New 
test.
+
+2017-03-31  Tino Calancha  <address@hidden>
+
+       dired-mark-suffix: New command
+
+       Now dired-mark-extension prepends '.' to extension when not present.
+       Add command dired-mark-suffix to preserve the previous
+       behaviour (Bug#25942).
+       * lisp/dired-x.el (dired-mark-suffix): New command;
+       mark files ending in a given suffix.
+       (dired--mark-suffix-interactive-spec): New defun.
+       (dired-mark-extension, dired-mark-suffix): Use it.
+       * doc/misc/dired-x.texi (Advanced Mark Commands): Update manual.
+       * test/lisp/dired-x-tests.el: New test suite; add test for these 
features.
+
+2017-03-31  Tino Calancha  <address@hidden>
+
+       default-directory: Remark that it must be a directory name
+
+       * src/buffer.c (default-directory): Update docstring (Bug#26272).
+
+2017-03-31  Tino Calancha  <address@hidden>
+
+       Delete confuse statement in manual
+
+       * doc/misc/cl.texi (For Clauses): Delete confuse statement
+       and its example (Bug#23550).
+
+2017-03-31  Paul Eggert  <address@hidden>
+
+       Use find -delete if available
+
+       This shortens the ‘make’ output and should avoid some
+       repetitive scanning of directories during a build.
+       * configure.ac (FIND_DELETE): New var.
+       * lisp/Makefile.in (compile-always, bootstrap-clean):
+       * test/Makefile.in (clean, bootstrap-clean): Use it.
+       * test/Makefile.in (ELCFILES, LOGSAVEFILES): Remove; no longer needed.
+
+2017-03-31  Mark Oteiza  <address@hidden>
+
+       Remove gnus-boundp
+
+       * lisp/gnus/gnus-start.el (gnus-display-time-event-handler): Use
+       bound-and-true-p.
+       * lisp/gnus/gnus-util (gnus-boundp): Remove.
+
+2017-03-31  Niels Möller  <address@hidden>  (tiny change)
+
+       Stop `fixup-whitespace' adding trailing whitespace (Bug#18783)
+
+       * lisp/simple.el (fixup-whitespace): Insert no spaces if point is at
+       end of line after deleting horizontal whitespace.
+
+2017-03-31  Paul Eggert  <address@hidden>
+
+       * src/inotify.c (add_watch): Add comment.
+
+2017-03-31  Andreas Politz  <address@hidden>
+
+       Minor filenotify.el fixes
+
+       * lisp/filenotify.el: Require subr-x.
+       (file-notify-callback): Use equal, not eq.
+
+2017-03-31  Noam Postavsky  <address@hidden>
+
+       Improve packaging documentation
+
+       * doc/lispref/package.texi (Packaging Basics):
+       * doc/lispref/tips.texi (Library Headers): Clarify some header
+       formats, relation between file headers and package
+       attributes (Bug#13281).
+
+2017-03-31  John Mastro  <address@hidden>
+
+       Fix a small incompatibility in ibuffer
+
+       Translate nil values from column functions to the empty string, so that
+       subsequent calls to string-width don't signal an error (Bug#26317).
+       * lisp/ibuffer.el (ibuffer-compile-format): If a column function returns
+       nil, treat it like the empty string.
+
+2017-03-30  Alan Mackenzie  <address@hidden>
+
+       Fix C++ fontification problems 500 bytes after typing a space, and 
other bugs
+
+       Also implement the "asymmetric space" rule for fontifying otherwise
+       ambiguous
+       declarations/expressions.
+
+       * lisp/progmodes/cc-engine.el (c-before-change-check-<>-operators): 
Don't set
+       c-new-BEG or c-new-END when there is no need.
+       (c-forward-decl-or-cast-1): Add "CASE 17.5" to implement the "asymmetric
+       space" rule.
+
+       * lisp/progmodes/cc-fonts.el (c-get-fontification-context): New 
function,
+       extracted from c-font-lock-declarations.  Add to this function 
processing to
+       make `context' 'decl for lines contained within parens when these are 
also
+       declarations.
+       (c-font-lock-declarations): Call the newly extracted function above in 
place
+       of inline code.
+
+       * lisp/progmodes/cc-mode.el (c-fl-decl-start): Set point before calling
+       c-literal-start.
+
+       * lisp/progmodes/cc-vars.el (c-asymmetry-fontification-flag): New user 
option.
+
+       * doc/misc/cc-mode.texi (Misc Font Locking): New node documenting the 
new
+       "asymmetric fontification" rule, including the variable
+       c-asymmetric-fontification-flag.
+
+2017-03-30  Paul Eggert  <address@hidden>
+
+       Some inotify cleanup
+
+       This catches some problems with integer overflow and races
+       that I noticed in inotify.c after reviewing the changes
+       installed to fix Bug#26126.
+       * src/fns.c, src/lisp.h (equal_no_quit): Now extern.
+       * src/inotify.c (aspect_to_inotifymask):
+       Check for cycles and for improper lists.
+       (make_lispy_mask, lispy_mask_match_p): Remove.
+       All callers changed to use INTEGER_TO_CONS and CONS_TO_INTEGER.
+       (inotifyevent_to_event, add_watch):
+       Don’t assume watch descriptors and cookies fit in fixnums.
+       (add_watch): Use assoc_no_quit, not Fassoc.
+       Avoid integer overflow in (very!) long-running processes where
+       the Emacs watch ID could overflow.  Avoid some duplicate code.
+       (find_descriptor): New function.
+       (remove_descriptor): First arg is now the returned value from
+       find_descriptor, rather than the descriptor.  This way, the
+       value can be removed without calling Fdelete, which might quit.
+       Wait until the end (when watch_list is consistent) before signaling
+       any errors.
+       (remove_watch, inotify_callback):
+       Use find_descriptor to avoid the need for Fdelete.
+       (inotify_callback): Use simpler tests for ioctl failure.
+       Free temporary buffer if signaled, and put it on the stack if small.
+       Use ssize_t to index through read results, to avoid a cast.
+       (valid_watch_descriptor): New function, with a tighter check.
+       (Finotify_rm_watch, Finotify_valid_p): Use it.
+       (Finotify_valid_p): Use assoc_no_quit and ass_no_quit instead
+       of Fassoc.  Do not assume the first assoc succeeds.
+       * test/src/inotify-tests.el (inotify-valid-p-simple):
+       Add inotify-valid-p tests, some of which dump core without
+       the fixes noted above.
+
+2017-03-30  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-sh.el (tramp-get-remote-locale): Add "C.UTF-8" as 
candidate.
+
+2017-03-30  Stefan Monnier  <address@hidden>
+
+       * lisp/cedet/semantic/wisent/wisent.el (wisent-automaton-p): Use 
obarrayp.
+
+2017-03-30  Paul Eggert  <address@hidden>
+
+       Fix assoc_no_quit so that it does not quit
+
+       The problem was that it called Fequal, which can quit.
+       * src/fns.c (enum equal_kind):
+       New enum, to be used in place of a boolean.
+       (equal_no_quit): New function.
+       (Fmemql, Feql): Use it to compare floats, as a minor tuneup.
+       (assoc_no_quit): Use it to avoid quitting, the main point here.
+       (internal_equal): Generalize bool to enum equal_kind arg, so that
+       there are now 3 possibilities instead of 2.  Do not signal an
+       error if EQUAL_NO_QUIT.  Put the arg before the depth, since depth
+       should be irrelevant if the arg is EQUAL_NO_QUIT.  All callers
+       changed.
+
+2017-03-29  Alan Mackenzie  <address@hidden>
+
+       Amend gitmerge to recognize the injunction "don't merge".
+
+       * admin/gitmerge.el (gitmerge-skip-regexp): amend regexp to match 
"don't" as
+       well as "do not".
+
+2017-03-29  Simen Heggestøyl  <address@hidden>
+
+       Add one more CSS pseudo-class
+
+       * lisp/textmodes/css-mode.el (css-pseudo-class-ids): Add
+       `focus-within'.
+
+2017-03-29  Simen Heggestøyl  <address@hidden>
+
+       Update list of CSS pseudo-classes
+
+       * lisp/textmodes/css-mode.el (css-pseudo-class-ids): Update list of
+       pseudo-classes.
+
+2017-03-29  Noam Postavsky  <address@hidden>
+
+       Adjust some search failure errors in info.el
+
+       * lisp/info.el (Info-select-node): The search for beginning of node is
+       an internal detail, and is not normally expected to fail, so it should
+       not be a user error.
+       (Info-complete-menu-item): Failing to find a menu indicates the user
+       searched for a menu when there isn't one, so change to `use-error'.
+
+2017-03-28  Alan Mackenzie  <address@hidden>
+
+       * lisp/progmodes/cc-defs.el (c-version):  Restore c-version to 5.33
+
+2017-03-28  Paul Eggert  <address@hidden>
+
+       Don’t mishandle (format "%i" -1.0)
+
+       * src/editfns.c (styled_format): Treat %i like %d when converting arg.
+
+2017-03-28  Noam Postavsky  <address@hidden>
+
+       * lisp/emacs-lisp/ert.el (ert-run-tests): Make INTERACTIVE arg optional.
+
+2017-03-28  Michael Albinus  <address@hidden>
+
+       * src/inotify.c (Finotify_add_watch): aspect can also be a symbol.
+
+2017-03-28  Noam Postavsky  <address@hidden>
+
+       Don't add `search-failed' to ignored errors in info.el (Bug#6106)
+
+       * lisp/info.el: Stop adding `search-failed' to `debug-ignored-errors'.
+       (Info-select-node, Info-search): Replace (signal 'search-failed ...)
+       with (user-error "Search failed: "...).
+
+2017-03-27  Paul Eggert  <address@hidden>
+
+       Fix obsolete ‘test/automated’ references
+
+       * Makefile.in (mostlyclean, clean, maybeclean_dirs, distclean)
+       (bootstrap-clean, maintainer-clean):
+       Clean ‘test’, not ‘test/automated’.  Test for existence of
+       subdirectory only for ‘test’, not for directories that should
+       always exist.
+       * admin/MAINTAINERS, etc/TODO, lisp/emacs-lisp/bytecomp.el:
+       * lisp/emacs-lisp/seq.el, lisp/emacs-lisp/thunk.el:
+       * lisp/man.el (Man-parse-man-k):
+       * lisp/url/url-domsuf.el, make-dist:
+       * test/file-organization.org:
+       Fix obsolete references to test/automated.
+
+2017-03-27  Katsumi Yamaoka  <address@hidden>
+
+       shr-image-fetched: Work for narrowed Gnus article
+
+       See <address@hidden> of bug#26231 in the bug-gnu-emacs list.
+
+       * lisp/net/shr.el (shr-image-fetched): Work for narrowed article.
+
+2017-03-27  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-file-name-handler): Autoload it.
+
+2017-03-27  Eric Abrahamsen  <address@hidden>
+
+       Expand manual section on quitting windows
+
+       * doc/lispref/windows.texi (Quitting Windows): Provide more
+         information about the elements of the quit-restore window parameter,
+         and how they affect the behavior of quit-restore-window.
+
+2017-03-26  Philipp Stephani  <address@hidden>
+
+       Add check for expected backtrace in module calls.
+
+       * test.el (mod-test-non-local-exit-signal-test): Compare actual
+         backtrace to expected backtrace.
+
+2017-03-26  Eli Zaretskii  <address@hidden>
+
+       Fix redisplay glitches due to recent change in redisplay_internal
+
+       * src/xdisp.c (redisplay_internal): A better fix for bug#26097.
+       See http://lists.gnu.org/archive/html/emacs-devel/2017-03/msg00695.html
+       for the problems caused by the original fix.
+
+2017-03-26  Michael Albinus  <address@hidden>
+
+       Fix Bug#26258
+
+       * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
+       * lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
+       * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
+       Autoload.  Call `tramp-register-foreign-file-name-handler'.  (Bug#26258)
+
+       * lisp/net/tramp.el (tramp-autoload-file-name-handler): Remove.
+       (tramp-register-autoload-file-name-handlers)
+       (tramp-register-file-name-handlers): Do not handle
+       `tramp-autoload-file-name-handler' anymore.  Mark `operations'
+       the handlers are responsible for.
+       (tramp-register-foreign-file-name-handler): New defun.
+
+2017-03-26  Noam Postavsky  <address@hidden>
+
+       Fix docstring of dabbrev-abbrev-char-regexp
+
+       * lisp/dabbrev.el (dabbrev-abbrev-char-regexp): Using a value of nil
+       is equivalent to "\\sw\\|\\s_", and has no special behavior.  If the
+       previous character doesn't match, we search backwards for one that
+       does, not throw an error.  Replace Lisp example with C based one to
+       make it clear that "symbol" means a sequence of word and symbol
+       constituent characters, not a Lisp symbol (Bug#358).
+
+2017-03-26  Johan Claesson  <address@hidden>  (tiny change)
+
+       * doc/misc/cl.texi (Iteration Clauses): Clarify example (Bug#19515).
+
+2017-03-26  Andreas Politz  <address@hidden>
+
+       Minor fixes for inotify.c and filenotify.el
+
+       * lisp/filenotify.el (file-notify--watch-absolute-filename):
+       Add docstring.
+       (file-notify-callback): Simplify.
+
+       * src/inotify.c (Finotify_add_watch): Adapt docstring.
+
+2017-03-26  Andreas Politz  <address@hidden>
+
+       Fix issues regarding inotify file-notification
+
+       Remove special code handling the inotify back-end.
+       * lisp/filenotify.el (file-notify--watch): New struct
+       representing a file-watch.
+       (file-notify-descriptors): Use the new struct as hash-value.
+       (file-notify-handle-event): Check that event is a cons.
+       (file-notify--rm-descriptor, file-notify--event-watched-file)
+       (file-notify--event-file-name, file-notify--event-file1-name)
+       (file-notify-callback, file-notify-add-watch)
+       (file-notify-rm-watch, file-notify-valid-p): Use new struct.
+       Remove special code handling inotify descriptors.  Remove code
+       handling multiple clients per descriptor.
+       (file-notify--descriptor): Remove unused function.
+
+       Let inotify-add-watch return a unique descriptor on every
+       call, like every other back-end does (Bug#26126).  Prevent
+       multiple clients from interfering with each other, when
+       watching a shared descriptor.
+       * src/inotify.c (watch_list): Extend the format by including a
+       id and the provided mask.
+       (INOTIFY_DEFAULT_MASK): Default mask used for all clients.
+       (make_watch_descriptor): Removed.
+       (make_lispy_mask, lispy_mask_match_p): New functions.
+       (inotifyevent_to_event): Match event against the mask provided
+       by the client.
+       (add_watch, remove_descriptor, remove_watch): New functions
+       for managing the watch_list.
+       (inotify_callback): Use the new functions.
+       (Finotify_add_watch, Finotify_rm_watch): Remove deprecated
+       flags from documentation.  Add check for validity of provided
+       descriptor.  Use the new functions.  Use the default mask.
+       (INOTIFY_DEBUG): Add new debug conditional.
+       (inotify-watch-list, inotify-allocated-p): New debug functions.
+       (symbol_to_inotifymask, syms_of_inotify): Remove deprecated symbols.
+
+       * test/lisp/filenotify-tests.el:
+       (file-notify-test02-rm-watch): Remove expected failure for inotify.
+
+2017-03-26  Paul Pogonyshev  <address@hidden>
+
+       * lisp/emacs-lisp/pcase.el (pcase): Comment debug message (Bug#26177).
+
+2017-03-25  Jens Uwe Schmidt  <address@hidden>  (tiny change)
+
+       Stop edebug getting stuck on backquote (Bug#23651)
+
+       * lisp/emacs-lisp/edebug.el (edebug-read-sexp): Move forward after
+       reading backquote or comma.
+
+2017-03-25  Eric Abrahamsen  <address@hidden>
+
+       Expand manual section on quitting windows
+
+       * doc/lispref/windows.texi (Quitting Windows): Provide more
+         information about the elements of the quit-restore window parameter,
+         and how they affect the behavior of quit-restore-window.
+
+2017-03-25  Eli Zaretskii  <address@hidden>
+
+       Support in ispell.el multiple dictionaries loaded by Hunspell
+
+       * lisp/textmodes/ispell.el (ispell-find-hunspell-dictionaries):
+       Support Hunspell configurations that load more than one dictionary
+       by default.  Doc fix.  (Bug#25830)
+
+2017-03-25  Michael Albinus  <address@hidden>
+
+       Simplify Tramp autoloading.
+
+       * lisp/net/tramp.el (tramp-completion-file-name-handler):
+       Simplify autoloading.  Give it the `operations' property.
+       (tramp-completion-handle-expand-file-name): Remove.
+
+2017-03-25  Eli Zaretskii  <address@hidden>
+
+       Fix a segfault due to failure to realize some faces
+
+       * src/xdisp.c (redisplay_internal): If the frame becomes garbaged
+       while redisplaying its windows, redisplay all of its windows
+       again.  (Bug#26097)
+       (init_iterator): When freeing all realized faces on all frames,
+       reset the 'face_change' flag of the frame whose window we are
+       about to iterate.
+
+2017-03-25  Philipp Stephani  <address@hidden>
+
+       Use a named function for 'safe-local-variable
+
+       This improves the help screen for `version-control' (Bug#25431).
+
+       * lisp/files.el (version-control-safe-local-p): New function.
+       (version-control): Use it.
+
+2017-03-25  Eli Zaretskii  <address@hidden>
+
+       ;* doc/misc/info.texi (Choose menu subtopic): Improve indexing.  
(Bug#26236)
+
+2017-03-25  Helmut Eller  <address@hidden>
+
+       Make it easier to abort a series of tests with C-g
+
+       * emacs-lisp/ert.el (ert-run-tests): Add "interactively" arg.  If
+       interactively is true and a test was aborted then ask if the remaining
+       tests should be aborted too.
+       (ert-run-tests-batch, ert-run-tests-interactively): Pass in
+       interactively arg.
+
+2017-03-24  Paul Eggert  <address@hidden>
+
+       Don’t require chown/chgrp for game installation
+
+       Problem reported by Joseph Mingrone in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-03/msg00622.html
+       * lib-src/Makefile.in (exp_archlibdir): Don’t fail if chown or
+       chgrp fails with update-game-score and the game directory.
+       Instead, expect the installer to fix this up afterwards.
+
+2017-03-24  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/lisp-mode.el: Don't highlight \( at BOL
+
+       (elisp--font-lock-backslash): Extract from lisp-el-font-lock-keywords-2.
+       Don't highlight \ at BOL.  Don't assume syntax-ppss preserves 
match-data.
+
+2017-03-23  Philipp Stephani  <address@hidden>
+
+       Protect against an infloop in python-mode
+
+       There appears to be an edge case caused by using `syntax-ppss' in a
+       narrowed buffer during JIT lock inside of Python triple-quote strings.
+       Unfortunately it is impossible to reproduce without manually
+       destroying the syntactic information in the Python buffer, but it has
+       been observed in practice.  In that case it can happen that the syntax
+       caches get sufficiently out of whack so that there appear to be
+       overlapping strings in the buffer.  As Python has no nested strings,
+       this situation is impossible and leads to an infloop in
+       `python-nav-end-of-statement'.  Protect against this by checking
+       whether the search for the end of the current string makes progress.
+
+       * python.el (python-nav-end-of-statement): Protect against infloop.
+       * progmodes/python-tests.el
+       (python-tests--python-nav-end-of-statement--infloop): Add unit test.
+
+2017-03-23  Michael Albinus  <address@hidden>
+
+       * doc/lispref/os.texi (File Notifications):
+
+       Strengthen the recommendation to use filenotify.el.
+
+2017-03-23  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-03-22 getopt: merge from glibc
+       * build-aux/config.sub, lib/getopt.c, lib/getopt.in.h:
+       * lib/getopt1.c, lib/getopt_int.h: Copy from gnulib.
+       * lib/gnulib.mk.in: Regenerate.
+
+2017-03-23  Michael Albinus  <address@hidden>
+
+       Use lexical-bind in Tramp
+
+       * lisp/net/tramp*.el: Add lexical-binding cookie.  Move declarations up.
+
+       * lisp/net/tramp-adb.el (tramp-adb-parse-device-names): Use `push'
+       rather than `add-to-list'.
+       (tramp-adb-get-device): Remove unused variable.
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-parse-device-names): Remove unused
+       variable.
+
+       * lisp/net/tramp.el (auto-save-file-name-transforms): Declare.
+       (tramp-find-file-name-coding-system-alist): Use `push' rather
+       than `add-to-list'.
+
+       * test/lisp/net/tramp-tests.el: Add lexical-binding cookie.
+       Require 'dired.  Move declarations up.
+       (tramp-test32-make-nearby-temp-file): Wrap `make-nearby-temp-file'
+       and `temporary-file-directory' calls with `with-no-warnings'.
+       (tramp-test35-asynchronous-requests): Mark unused variable.
+
+2017-03-23  Kaushal Modi  <address@hidden>
+           Noam Postavsky  <address@hidden>
+
+       Do not include comment start chars in ffap string
+
+       * lisp/ffap.el (ffap-string-at-point): If the point is in a comment,
+       ensure that the returned string does not contain the comment start
+       characters (especially for major modes that have '//' as comment start
+       characters).  Otherwise, in a major mode like c-mode, with `ido-mode'
+       enabled and `ido-use-filename-at-point' set to `guess', doing "C-x
+       C-f" on a "//foo" comment will initiate an attempt to access a path
+       "//foo" (Bug#24057).
+
+2017-03-23  Martin Rudalics  <address@hidden>
+
+       c:/Temp/gtk-window-move/ChangeLog.txt
+
+2017-03-22  Michael Albinus  <address@hidden>
+
+       Fix filenotify.el issue for kqueue
+
+       * lisp/filenotify.el (file-notify-add-watch): Use directory
+       for remote file name handlers.
+
+       * test/lisp/filenotify-tests.el (file-notify-test01-add-watch):
+       Create/delete temporary file only for "kqueue".
+       (file-notify-test02-rm-watch): Create/delete temporary files.
+
+2017-03-22  Michael Albinus  <address@hidden>
+
+       Extend `file-notify-test02-rm-watch'
+
+       * test/lisp/filenotify-tests.el (file-notify-test02-rm-watch):
+       Expect it failed for inotify.  Divide tests into different
+       `unwind-protect' clauses.  Check, that removing watch
+       descriptors out of order do not harm.  (Bug#26126)
+
+2017-03-22  Noam Postavsky  <address@hidden>
+
+       * test/lisp/emacs-lisp/lisp-mode-tests.el (indent-subsexp): Test for 
Bug#26187
+
+2017-03-22  Graham Dobbins  <address@hidden>  (tiny change)
+
+       * lisp/emacs-lisp/lisp-mode.el (indent-sexp): Fix null endpos case
+
+2017-03-21  Paul Eggert  <address@hidden>
+
+       Improve configure --with-pop etc. diagnostics
+
+       * configure.ac: Improve diagnostics re --with-pop and
+       --with-mailutils (Bug#26102).
+
+2017-03-21  Eli Zaretskii  <address@hidden>
+
+       Revert "Make --without-pop the default."
+
+       This reverts commit 9319de675e395517f9a7b50cae1a3aad9cd0abc2.
+
+2017-03-21  Paul Eggert  <address@hidden>
+
+       Don’t remove dependency files when configuring
+
+       Problem reported by Tom Tromey in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-03/msg00533.html
+       * configure.ac: Don’t remove */*.o and */deps/* when
+       --enable-autodepend is in effect.
+
+2017-03-21  Paul Eggert  <address@hidden>
+
+       Make --without-pop the default.
+
+       Suggested by Angelo Graziosi in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-03/msg00431.html
+       * configure.ac: Change the default from --with-pop to
+       --without-pop.  Adjust diagnostics to match.
+
+2017-03-21  Paul Eggert  <address@hidden>
+
+       Streamline dependency-file generation
+
+       * configure.ac (AUTODEPEND_PARENTS): New var.
+       mkdir the dependency directories here, to simplify ‘make’.
+       Remove dependency files just before outputting Makefiles, so that
+       they are preserved if ‘configure’ exits early due to some other problem.
+       * lib/Makefile.in, lwlib/Makefile.in, oldXMenu/Makefile.in:
+       * src/Makefile.in: Adjust deps strategies to be similar, as follows:
+       (MKDEPDIR): Remove.  All uses removed.  This cuts down on the
+       number of processes spun off by ‘make’.
+       (clean mostlyclean): Remove $(DEPDIR) contents, not $(DEPDIR) itself.
+       (distclean): Remove $(DEPDIR) itself.
+       * lwlib/Makefile.in (all): Move to front, so that depdir includes
+       do not alter default action.
+
+2017-03-21  Paul Eggert  <address@hidden>
+
+       Port and simplify example sh script
+
+       * doc/misc/org.texi (noweb-ref): Simplify shell script example and
+       don’t use ‘tail -1’, which is not portable.
+
+2017-03-21  Noam Postavsky  <address@hidden>
+
+       Narrow scope of modification hook renabling in org-src fontification
+
+       Modification hooks should be enabled while modifying text in the
+       org-src temp buffer, but in 2017-01-29 "Call modification hooks in
+       org-src fontify buffers" the hooks were enabled also for modifications
+       to the original org buffer.  This causes fontification errors when
+       combined with certain packages, as reported in
+       http://lists.gnu.org/archive/html/emacs-orgmode/2017-03/msg00420.html.
+
+       * lisp/org/org-src.el (org-src-font-lock-fontify-block): Reduce scope
+       of inhibit-modification-hooks let-binding.
+
+2017-03-21  Tino Calancha  <address@hidden>
+
+       epatch: Save right backups in Git multipatches
+
+       Multipatches on N Git files save wrong backups for
+       N-1 files; only the last one has a correct backup (Bug#26084).
+       * lisp/vc/diff-mode.el (diff-file-junk-re): Add 'Prereq: '
+       * lisp/vc/ediff-ptch.el (ediff-map-patch-buffer): Use 
'diff-file-junk-re'.
+       * test/lisp/vc/ediff-ptch-tests.el (ediff-ptch-test-bug25010):
+       Rename from ibuffer-test-bug25010.
+       (ediff-ptch-test-bug26084): New test.
+
+2017-03-21  Michael R. Mauger  <address@hidden>
+
+           * lisp/progmodes/sql.el: Version 3.6
+
+           (sql-login-params): Added :must-match for completition of
+           `server' and `database' login parameters.
+           (sql-sqlite-login-params, sql-postgres-login-params): Set
+           :must-match to `confirm'.
+           (sql-get-login-ext): Use :must-match value to control
+           `read-file-name' or `completing-read'.
+           (sql-connect): Added optional BUF-NAME parameter; Reworked
+           connection variable processing; Pass buffer name to
+           `sql-product-interactive'.
+           (sql-product-interactive): Pass buffer name along.
+           (sql-comint): Add optional BUF-NAME and calculate reasonable 
default.
+           (sql-comint-oracle, sql-sybase-comint, sql-comint-informix)
+           (sql-comint-sqlite, sql-comint-mysql, sql-comint-solid)
+           (sql-comint-ingres, sql-comint-ms, sql-comint-postgres)
+           (sql-comint-interbase, sql-comint-db2, sql-comint-linter)
+           (sql-comint-vertica): Add optional BUF-NAME, pass to
+           `sql-comint'.
+           (sql-oracle--list-oracle-name): New function.
+           (sql-oracle-list-all): Use it.
+           (sql-oracle-completion-object): Enhanced.
+
+2017-03-20  Vincent Belaïche  <address@hidden>
+
+       Solve ses-recalculate-cell updating only current line bug.
+
+       * lisp/ses.el (ses-recalculate-cell): Add optional argument
+       ses--curcell to avoid overwriting ses--curcell when function is
+       called from ses-recalculate-all.  Update docstring accordingly.
+       (ses-recalculate-all): Call ses-recalculate-cell with argument
+       ses--curcell to avoid its overwriting.
+
+2017-03-20  Paul Eggert  <address@hidden>
+
+       Fix problem with out-of-date dependencies
+
+       Problem reported by Robert Marshall in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-03/msg00501.html
+       Although this problem has been with us for a while, the recent
+       change from Automake to GNU Make exposed it again.
+       * configure.ac (AUTO_DEPEND): When autodepending, clean out any
+       leftover dependency and object files, since the previous sources'
+       dependencies may disagree with the current ones.  Reconfiguring
+       typically needs to force a rebuild anyway.
+
+2017-03-20  Mark Oteiza  <address@hidden>
+
+       Simpler filter implementation
+
+       * lisp/play/dunnet.el (dun-endgame-question): Get or set
+       dun-endgame-questions one time only.  Use dolist and an index to
+       prune the list.
+
+2017-03-20  Mark Oteiza  <address@hidden>
+
+       * lisp/button.el (forward-button): Use user-error instead.
+
+2017-03-19  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This gets Emacs working again with HP-UX Itanium cc.
+       It incorporates:
+       2017-03-19 stdalign: tweak version# and test for HP-UX IA64
+       2017-03-18 stdalign: restore previous behavior for HP-UX IA64
+       2017-03-17 stat-time, timespec: Support header files in C++ mode
+       2017-03-17 stdalign: Make it work with HP-UX cc
+       2017-03-17 flexmember: try to detect HP-UX 11.31 cc bug
+       2017-03-16 stdint: Fix test compilation failure with HP-UX 11 cc.
+       2017-03-14 gnulib-tool: don't produce tests with only snippets
+       2017-03-14 limits-h: Make it work with HP-UX cc.
+       * etc/PROBLEMS: Remove now-obsolete entry for HP-UX 11.31.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * lib/limits.in.h, lib/stat-time.h, lib/stdalign.in.h:
+       * lib/stdint.in.h, lib/timespec.h, m4/flexmember.m4, m4/stdalign.m4:
+       Copy from gnulib.
+
+2017-03-19  Paul Eggert  <address@hidden>
+
+       * ChangeLog.2: Merge from emacs-25.
+
+2017-03-19  Paul Eggert  <address@hidden>
+
+       Fixups after merge from emacs-25
+
+       * etc/NEWS: Remove stray entry.
+       * etc/NEWS.25: Copy from Emacs emacs-25 etc/NEWS.
+       * lisp/textmodes/rst.el (rst-package-emacs-version-alist):
+       Make it nondecreasing.
+
+2017-03-19  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-25
+
+       d71e071 Improve documentation of interactive "r".
+
+2017-03-19  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-25
+
+       a094732 * etc/PROBLEMS: Say that HP-UX cc doesn't work.
+       1925dd9 Fix duplicate wording in Emacs manual
+       6de8429 * lisp/paren.el (show-paren--default, show-paren-function): A...
+       2d671fd Fix wording in Emacs manual
+       a8766a2 Document how to customize input methods
+       6eb8995 * lisp/net/eww.el (eww-reload): Doc fix.  (Bug#25981)
+       aceac95 Fix warning message about native completion (Bug#25984)
+       a314c1f Clarify documentation of 'raise' and 'height' display specs
+       f366f6e Mention problems with GPaste in PROBLEMS
+       6e788ef ; etc/PROBLEMS: Explain about the python+libedit problem (Bug...
+       6406618 Fix doc strings in info.el
+       c1ed152 ; * src/keyboard.c (Fposn_at_point): Fix last change.
+       eed9677 Fix doc string of 'posn-at-point'
+       0d5957e Documentation fix in elisp reference manual
+
+2017-03-19  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-25
+
+       ec4226d * lisp/woman.el (woman): Fix docstring prefix arg description.
+       2b774fa Mention "editor" in Emacs man page header
+       ae60d0c Document problems with nerd-fonts
+       2fdb5a9 ; Details about pinning Emacs to w32 task bar
+       5c3105e * doc/lispref/modes.texi (Derived Modes): Make example more i...
+       4c51ef4 Clarify what is the "cursor"
+       8303c32 ; * etc/NEWS: Copyedits.
+       3f7493e ; Fix a typo in comment
+       c54cf8d Improve commentary in lisp.h
+       8b92f86 ; * admin/make-tarball.txt: Cross-reference admin/release-pro...
+       0ba9932 Disable native completion for ipython (Bug#25067)
+       38fc456 Fix a typo in ada-mode manual
+       00e75ba ; * src/coding.c (Fencode_coding_region): Fix a typo in the d...
+       a541c21 Clarify documentation of 'bufferpos-to-filepos' and 'filepos-...
+
+       # Conflicts:
+       #       etc/NEWS
+       #       etc/PROBLEMS
+
+2017-03-19  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-25
+
+       02d9ad8 * admin/make-tarball.txt: Add documentation regarding the rel...
+
+2017-03-19  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-25
+
+       e1171de * CONTRIBUTE (Documenting your changes): Index new vars/comma...
+
+2017-03-19  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-25
+
+       ab0a60a ; * CONTRIBUTE (Generating ChangeLog entries): Drop duplicate...
+       7e02a47 Index byte-compile-debug
+       7c1e598 Document `byte-compile-debug' in the ELisp manual
+       4d81eb4 Document variable `byte-compile-debug'
+       72ef710 Fix call to debugger on assertion failure
+       ae8264c Call modification hooks in org-src fontify buffers
+       b3139da ; Fix last change in doc/lispref/strings.texi
+       c331f39 Improve documentation of 'format' conversions
+       9f52f67 Remove stale functions from ert manual
+       c416b14 Fix a typo in Eshell manual
+       06695a0 ; Fix a typo in ediff-merg.el
+       954e9e9 Improve documentation of hooks related to saving buffers
+       9fcab85 Improve documentation of auto-save-visited-file-name
+       2236c53 fix typo in mailcap-mime-extensions
+       85a3e4e Fix typos in flymake.el
+       a1ef10e More NEWS checking for admin.el's set-version
+
+       # Conflicts:
+       #       lisp/emacs-lisp/bytecomp.el
+
+2017-03-19  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-25
+
+       5569e64 ; Spelling fixes
+       24a5f57 * lisp/net/eww.el (eww-tag-meta): Handle single quoted URLs (...
+       9b89896 * lisp/progmodes/sql.el (sql-product-alist): Doc tweak
+       69b50f5 * lisp/progmodes/sql.el (sql-product-alist): Doc fix.  (Bug#2...
+       42eae54 Improve documentation of dabbrevs
+       b0ade0d Clarify that easy-menu-add is a nop (Bug#25382)
+       3c69f2c * lisp/textmodes/rst.el (rst-package-emacs-version-alist): Fi...
+
+       # Conflicts:
+       #       lisp/textmodes/rst.el
+
+2017-03-19  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-25
+
+       0e35405 Improve documentation of coding-systems
+       c2fd04c Improve definition of 'variable-pitch' face on MS-Windows
+       16fb50d Fix an error message in python.el
+       a2a2073 Clarify major mode switching
+       fc38671 Add helpful comment to compile-command's docstring
+       ee65d85 Fix ':version' of 'select-enable-primary'
+
+2017-03-19  Paul Pogonyshev  <address@hidden>
+
+       Fix bug in generator function with pcase (Bug#26068)
+
+       * lisp/emacs-lisp/cl-macs.el (cl--sm-macroexpand): Remove some calls
+       to symbol-name.
+
+2017-03-19  Alan Mackenzie  <address@hidden>
+
+       Fix chaotic indentation of C++ lambda.  Enhance documentation thereof
+
+       * lisp/progmodes/cc-engine.el (c-looking-at-inexpr-block): qualify an
+       invocation of c-on-identifier with a check we're not at the _end_ of an
+       identifier.
+
+       * doc/misc/cc-mode.texi: (Tex title page): Remove @subtitlefont because 
the
+       perl versions of texi2dvi haven't implemented it.
+       (Syntactic Symbols): Note that `inlambda' is also used in C++ Mode, not 
just
+       in Pike Mode.
+       (Statement Block Symbols): Add a section illustrating a C++ lambda 
function.
+       (FAQ): Add a question about "excessive" indentation of the contents of 
a C++
+       lambda function, and how to get rid of it.
+
+2017-03-19  Stefan Monnier  <address@hidden>
+
+       Remove unused vars in cl-extra.el and tramp.el.
+
+       * lisp/emacs-lisp/cl-extra.el (cl--print-table): Remove unused vars.
+
+       * lisp/net/tramp.el (tramp-dissect-file-name): Remove unused `match'.
+       (outline-regexp, ls-lisp-use-insert-directory-program): Declare.
+       (tramp-find-foreign-file-name-handler): Mark unused arg, remove unused 
`v`.
+
+2017-03-19  Stefan Monnier  <address@hidden>
+
+       Improve describe-symbol's layout of slots when describing types
+
+       * lisp/emacs-lisp/cl-extra.el (cl--print-table): New function.
+       (cl--describe-class-slots): Use it.
+
+2017-03-18  Michael Albinus  <address@hidden>
+
+       Fix Bug#26156
+
+       * lisp/net/tramp.el (tramp-completion-file-name-handler-alist):
+       <expand-file-name>: Remove handler.  (Bug#26156)
+
+2017-03-18  Stefan Monnier  <address@hidden>
+
+       * lisp/obarray.el (obarray-size): Avoid compiler warning.
+
+2017-03-18  Eli Zaretskii  <address@hidden>
+
+       Fix last change in lib/Makefile.in
+
+       * lib/Makefile.in (srcdir): Define, as including
+       $(srcdir)/../nt/gnulib-cfg.mk needs that.
+
+2017-03-18  Paul Eggert  <address@hidden>
+
+       * configure.ac: Fix typo in diagnostic.
+
+2017-03-18  Paul Eggert  <address@hidden>
+
+       Port out-of-source builds to windows-nt
+
+       Problem reported by Angelo Graziosi in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-03/msg00431.html
+       * lib/Makefile.in: Prepend $(srcdir) to ../nt/gnulib-cfg.mk,
+       to handle out-of-source builds if windows-nt.
+
+2017-03-17  Eli Zaretskii  <address@hidden>
+
+       MS-Windows followup for switch from Automake
+
+       * nt/INSTALL:
+       * nt/INSTALL.W64: Remove references to Automake.  (Bug#26100)
+
+2017-03-17  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of interactive "r".
+
+       * doc/lispref/commands.texi (Interactive Codes): Mention that mark
+       must be set for "r" to work.
+
+2017-03-17  Paul Eggert  <address@hidden>
+
+       Fixups for GNU Make switchover
+
+       This fixes some minor problems introduced in the recent switch to GNU
+       Make, discovered by further testing.  Without some of these changes
+       'make -j' would sometimes have race conditions caused by missing
+       dependencies.  (Bug#26100)
+       * .gitignore: Remove src/stamp-h.in, src/stamp-h1.
+       * Makefile.in ($(MAKEFILE_NAME)): Depend on configure, not
+       src/config.in, since the former's timestamp now represents
+       the latter's.
+       ($(srcdir)/configure): Use plain ./autogen.sh, for consistency
+       with other autogen.sh invocations.
+       ($(srcdir)/src/stamp-h.in):
+       Remove rule, as this file is no longer created.
+       * Makefile.in (top_distclean):
+       * src/Makefile.in (bootstrap-clean):
+       No need to remove stamp-h1, as that was an Automake byproduct
+       and Automake is no longer in use.
+       * lib/Makefile.in, src/Makefile.in:
+       (AUTOCONF_INPUTS, $(top_srcdir)/configure): Remove.
+       (../config.status, Makefile): Simplify by limiting dependencies
+       to files we care about and files in the repository, and by
+       using just one file to represent the timestamps on multiple
+       targets updated by the same rule.
+       * autogen.sh: Do not create or use src/stamp-h.in.
+       Instead, have 'find' test the two output files directly.
+
+2017-03-17  Paul Eggert  <address@hidden>
+
+       Switch from Automake to GNU Make
+
+       Emacs assumes GNU Make, and GNU Make has much of the functionality of
+       Automake built-in.  The Emacs build process uses Automake primarily
+       because Emacs uses some Gnulib code and Gnulib formerly required
+       Automake.  Now that Gnulib no longer requires Automake, Emacs can
+       stop using Automake and this should simplify Emacs maintenance
+       in the future (Bug#26100).  Although this patch may look long, most of
+       it is generated automatically: the changes to build-aux/config.guess,
+       build-aux/config.sub, build-aux/install-sh, and lib/gnulib.mk.in are
+       all done by admin/merge-gnulib.
+       * .gitignore: Remove build-aux/ar-lib, build-aux/compile,
+       build-aux/config.guess, build-aux/config.sub, build-aux/depcomp,
+       build-aux/install-sh, build-aux/missing, and lib/Makefile.in,
+       as they are no longer built by autogen.sh.
+       Add lib/gnulib.mk, as it is now built by 'configure'.
+       Remove nt/gnulib.mk, as it is no longer built by 'make'.
+       * INSTALL.REPO, README, admin/make-tarball.txt:
+       Remove mention of Automake.
+       * Makefile.in (AUTOCONF, AUTOMAKE, AUTOHEADER, ACLOCAL, lib)
+       (AUTOCONF_INPUTS, ACLOCAL_PATH, ACLOCAL_INPUTS)
+       ($(srcdir)/aclocal.m4, AUTOMAKE_INPUTS)
+       ($(srcdir)/lib/Makefile.in, $(srcdir)/nt/gnulib.mk, am--refresh):
+       Remove.
+       ($(MAKEFILE_NAME)): Depend on lib/gnulib.mk.in.
+       ($(srcdir)/configure, $(srcdir)/src/stamp-h.in)
+       ($(srcdir)/src/config.in):
+       Use autogen.sh instead of doing it by hand.
+       * admin/merge-gnulib (AVOIDED_MODULES, avoided_flags)):
+       New vars, to simplify processing of avoided modules.
+       (GNULIB_TOOL_FLAGS): Move --avoid flags into AVOIDED_MODULES.
+       Add --gnu-make, and change makefile name to gnulib.mk.in.
+       Copy config.guess, config.sub, and install-sh too, since
+       Automake no longer does that for us.
+       * admin/notes/copyright:
+       * admin/update_autogen (genfiles):
+       Update list of files.
+       Remove hack for nt/gnulib.mk, a file that is no longer needed.
+       * autogen.sh (progs): Remove Automake.
+       (automake_min): Remove.
+       Build aclocal.m4 so that autoreconf need not use aclocal.
+       * build-aux/config.guess, build-aux/config.sub:
+       * build-aux/install-sh:
+       New files, copied from Gnulib.  These are now updated by
+       admin/merge-gnulib instead by autogen.sh.
+       * configure.ac (AC_PROG_MAKE_SET, ACLOCAL_PATH, AM_CONDITIONAL):
+       Remove.
+       (AM_INIT_AUTOMAKE, AM_SILENT_RULES): Remove call.
+       (AC_PROG_CC_C_O): Call this instead of AM_PROG_CC_C_O.
+       (BUILDING_FOR_WINDOWSNT, HYBRID_MALLOC_LIB): Remove; no longer needed.
+       (--disable-silent-rules): New option, since Automake no longer
+       does this for us.
+       (AM_V, AM_DEFAULT_V): Set unconditionally, and do not bother
+       with AM_SUBST_NOTMAKE.
+       (AC_PROG_INSTALL): Add call.
+       (MAKEINFO): Do not bother with the 'missing' program.
+       (MAKEINFO, SYSTEM_TYPE): AC_SUBST.
+       (AC_CONFIG_FILES): Add Makefile, lib/gnulib.mk.
+       (SUBDIR_MAKEFILES): Remove duplication.
+       * lib/Makefile.am: Remove, replacing with:
+       * lib/Makefile.in: New file, with the old Makefile.am contents
+       and with the following changes:
+       (AUTOMAKE_OPTIONS, BUILT_SOURCES, CLEANFILES, EXTRA_DIST)
+       (MOSTLYCLEANDIRS, MOSTLYCLEANFILES, noinst_LIBRARIES, SUFFIXES)
+       (AM_CFLAGS, DEFAULT_INCLUDES, libegnu_a_SOURCES, libegnu_a_LIBADD)
+       (EXTRA_libegnu_a_SOURCES, libegnu_a_SHORTNAME, libegnu_a_CPPFLAGS):
+       Remove.
+       (VPATH, abs_top_builddir, top_builddir, top_srcdir, all, AM_V_AR)
+       (AM_V_CC, AM_V_GEN, AM_V_at, DEPDIR, DEPFLAGS, MKDEPDIR, SYSTEM_TYPE)
+       (libgnu.a, libegnu.a, ETAGS, $(ETAGS), tags, TAGS, clean)
+       (mostlyclean, distclean, bootstrap-clean, maintainer-clean):
+       New macros and rules, since Automake no longer does them.
+       Include ../nt/gnulib-cfg.mk if SYSTEM_TYPE is windows-nt,
+       instead of including ../nt/gnulib.mk if BUILDING_FOR_WINDOWS_NT.
+       Include dependency files if AUTO_DEPEND.
+       (ALL_CFLAGS, AUTOCONF_INPUTS, libgnu_a_OBJECTS, libegnu_a_OBJECTS):
+       New macros.
+       (bootstrap-clean): Depend on distclean, not maintainer-clean,
+       and remove gnulib.mk.
+       (AUTOCONF_INPUTS, $(top_srcdir)/configure, ../config.status, Makefile):
+       New macros and rules, copied from ../Makefile.in.
+       ($(libegnu_a_OBJECTS), $(libgnu_a_OBJECTS)): Depend on BUILT_SOURCES.
+       (.c.o, e-%.o): New generic rules.
+       * lib/gnulib.mk: Remove.
+       * lib/gnulib.mk.in: New file, which is built by autogen.sh
+       and contains much of what used to be in lib/gnulib.mk.
+       * m4/gnulib-common.m4: Copy from gnulib.
+       * make-dist: Do not distribute build-aux/compile, build-aux/depcomp,
+       build-aux/missing, build-aux/ar-lib, lib/Makefile.am, nt/gnulib.mk,
+       nt/gnulib-modules-to-delete.cfg.  Distribute lib/Makefile.in,
+       lib/gnulib.mk.in, and nt/gnulib-cfg.mk instead.
+       * nt/Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0)
+       (am__v_GEN_1, ${srcdir}/gnulib.mk): Remove.
+       * nt/gnulib-cfg.mk: New file, which supersedes ...
+       * nt/gnulib-modules-to-delete.cfg: ... this file, which is removed.
+       * src/Makefile.in (ACLOCAL_INPUTS): Remove.
+       (AUTOCONF_INPUTS): Merge ACLOCAL_INPUTS into it.
+       ($(top_srcdir)/configure, ../config.status, config.in Makefile):
+       Defer to parent Makefile.
+
+2017-03-17  Paul Eggert  <address@hidden>
+
+       Don't suggest Mailutils on MS-Windows
+
+       * configure.ac: Don't suggest GNU Mailutils on MS-Windows, as it
+       hasn't been ported.
+
+2017-03-17  Thien-Thi Nguyen  <address@hidden>
+
+       Fix bug: Range-check integer ‘alpha’ frame parm value
+
+       Typo introduced 2013-04-01, "Prefer < to >
+       in range checks such as 0 <= i && i < N".
+
+       * src/frame.c (x_set_alpha): Use ‘ialpha’, not ‘alpha’.
+
+2017-03-17  Thien-Thi Nguyen  <address@hidden>
+
+       Fix bug: Range-check integer ‘alpha’ frame parm value
+
+       Typo introduced 2013-04-01, "Prefer < to >
+       in range checks such as 0 <= i && i < N".
+
+       * src/frame.c (x_set_alpha): Use ‘ialpha’, not ‘alpha’.
+
+2017-03-17  Michael Albinus  <address@hidden>
+
+       Fix Bug#26127
+
+       * lisp/filenotify.el (file-notify--rm-descriptor): Check, that
+       there is a function which could be called.  (Bug#26127)
+
+       * test/lisp/filenotify-tests.el (file-notify--test-cleanup):
+       Clear also `file-notify-descriptors'.
+       (file-notify--test-make-temp-name): Move up.
+       (file-notify-test02-rm-watch): New test.
+       (file-notify-test03-events, file-notify-test04-autorevert)
+       (file-notify-test05-file-validity)
+       (file-notify-test06-dir-validity)
+       (file-notify-test07-many-events, file-notify-test08-backup)
+       (file-notify-test09-watched-file-in-watched-dir)
+       (file-notify-test10-sufficient-resources): Rename.
+
+2017-03-17  Paul Eggert  <address@hidden>
+
+       * etc/PROBLEMS: Say that HP-UX cc doesn't work.
+
+2017-03-17  Paul Eggert  <address@hidden>
+
+       Emacs 'movemail' is now a configure-time option
+
+       The new configure option --with-mailutils lets the builder say
+       that Emacs should assume that GNU Mailutils is installed, instead
+       of continuing to build and install its own limited and insecure
+       substitute for 'movemail'.
+       * INSTALL, etc/NEWS, etc/PROBLEMS: Mention --with-mailutils.
+       * configure.ac: Add --with-mailutils option.
+       (with_mailutils): New variable.
+       Do not bother configuring 'movemail' when not building it.
+       Warn about issues relating to --with-mailutils.
+       * doc/emacs/rmail.texi (Movemail): Mention --with-mailutils.
+       (Movemail, Remote Mailboxes): Document port numbers in
+       POP and IMAP URLs.
+       * lib-src/Makefile.in (with_mailutils): New macro.
+       (UTILITIES): Use it.
+
+2017-03-16  Stefan Monnier  <address@hidden>
+
+       Add obarray-size and fix tests accordingly.  Use obarrayp in cedet.
+
+       * lisp/obarray.el (obarray-size): New function.
+
+       * lisp/cedet/semantic/lex-spp.el (semantic-lex-spp-symbol)
+       (semantic-lex-spp-save-table, semantic-lex-spp-macros):
+       * lisp/cedet/semantic/bovine/c.el (semantic-c-describe-environment):
+       Use obarrayp.
+
+       * test/lisp/obarray-tests.el (obarray-make-default-test)
+       (obarray-make-with-size-test): Use it.
+
+2017-03-16  Michael Albinus  <address@hidden>
+
+       Document remote file name syntax change
+
+       * doc/emacs/files.texi (Remote Files, Quoted File Names):
+       * doc/misc/org.texi (dir): Change examples to use a method.
+
+       * doc/misc/tramp.texi (Top) [trampf]: Remove macro.  Add
+       `Testing' menu entry.
+       (History): Fix typos.  Mention syntax change.
+       (Configuration, Default Host, File name Syntax)
+       (File name completion, Frequently Asked Questions):
+       Change examples to use a method.
+       (External methods, Default Host, Multi-hops, Remote processes):
+       Fix typos.
+       (Default Method): Mention pseudo method "-".
+       (External packages): Rewrite intention of `non-essential'.
+
+       * etc/NEWS: Mark recent Tramp entries as documented.
+
+2017-03-16  Stefan Monnier  <address@hidden>
+
+       (semantic-lex-type-invalid): Fix nested backquote.
+
+       * lisp/cedet/semantic/lex.el: Use lexical-binding.
+       (semantic-lex-type-invalid): Fix nested backquote.
+       (semantic-lex-map-symbols, semantic-lex-type-symbol)
+       (semantic-lex-keyword-symbol): Use obarrayp.
+
+2017-03-15  Michael Albinus  <address@hidden>
+
+       * lisp/ido.el (ido-read-internal, ido-complete): Do not bind 
`non-essential'.
+
+2017-03-15  Mark Oteiza  <address@hidden>
+
+       Write a named function
+
+       * lisp/comint.el (comint-nonblank-p): New function.
+       (comint-input-filter): Use it.
+
+2017-03-15  Mark Oteiza  <address@hidden>
+
+       Replace more nested ifs with cond
+
+       This is a continuation of 0db5ba4 "Replace nested ifs with cond".
+       * lisp/play/dunnet.el (dun-special-object, dun-inven, dun-drop):
+       (dun-drop-check, dun-swim, dun-break): Use when and cond where
+       appropriate.
+       (dun-examine): Fix indentation.
+       (dun-doverb): Use when.
+       (dun-read-line): Refactor.
+
+2017-03-15  Noam Postavsky  <address@hidden>
+
+       Recomplexify ‘delete-trailing-whitespace’ by treating \n as whitespace 
again
+
+       Mostly reverts "Simplify ‘delete-trailing-whitespace’ by not treating
+       \n as whitespace" from 2016-07-04.  Setting \n to non-whitespace
+       causes the regex engine to backtrack a lot when searching for
+       "\\s-+$" (Bug#26079).
+
+       * lisp/simple.el (delete-trailing-whitespace): Don't change newline
+       syntax, search for "\\s-$" and then skip backward over trailing
+       whitespace.
+
+2017-03-14  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-03-14 snippets: move unadjusted snippet sources to lib
+       2017-03-14 gnulib-tool: fix typo in comment output
+       2017-03-14 snippets: work around GNU Make 3.82 VPATH
+       2017-03-13 gnulib-tool: minor --gnu-make fixups
+       2017-03-12 gnulib-tool: new option --gnu-make
+       * .gitignore: Remove lib/arg-nonnull.h, lib/c++defs.h,
+       lib/warn-on-use.h.  Change exception from
+       build-aux/snippet/_Noreturn.h to lib/_Noreturn.h.
+       * admin/authors.el (authors-renamed-files-regexps):
+       * admin/notes/copyright, make-dist:
+       The snippet files moved from build-aux/snippet to lib.
+       * lib/_Noreturn.h: Rename from build-aux/snippet/_Noreturn.h.
+       * lib/arg-nonnull.h: Rename from build-aux/snippet/arg-nonnull.h.
+       * lib/c++defs.h: Rename from build-aux/snippet/c++defs.h.
+       * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
+       * lib/warn-on-use.h: Rename from build-aux/snippet/warn-on-use.h.
+
+2017-03-14  Eli Zaretskii  <address@hidden>
+
+       Fix duplicate wording in Emacs manual
+
+       * doc/emacs/programs.texi (Which Function): Delete duplicate
+       wording.  (Bug#26098)
+
+2017-03-14  Michael Albinus  <address@hidden>
+
+       Reenable lost Tramp test case
+
+       * test/lisp/net/tramp-tests.el (tramp-test24-file-name-completion):
+       Reenable lost test case.
+
+2017-03-14  Alan Third  <address@hidden>
+
+       Revert "Remove NSEvent loop from ns_select (bug#25265)"
+
+       This reverts commit 3bd2e9e975ed29daaf03ca7559e4664aade0674f.
+
+2017-03-14  Alan Third  <address@hidden>
+
+       Revert "Add missing timeout value in ns_select"
+
+       This reverts commit a65236214d9202fb69a6ba5169d4ac1a4bcb0b0d.
+
+2017-03-14  Alan Third  <address@hidden>
+
+       Remove old macOS compatibility code
+
+       * src/nsimage.m, src/nsmenu.m, src/nsterm.m: Remove code only for
+       macOS versions below 10.6 as they are not supported in Emacs 25+.
+
+2017-03-14  Michael Albinus  <address@hidden>
+
+       Tune `tramp-completion-file-name-regexp-unified'
+
+       * lisp/net/tramp.el (tramp-completion-file-name-regexp-unified):
+       Extend this regexp to match also "/".
+
+2017-03-14  Tino Calancha  <address@hidden>
+
+       Show ancestor buffer in 3way merges
+
+       Add an option ediff-show-ancestor', to control if the ancestor buffer
+       must be shown in 3way merges (Bug#25493); set it non-nil by default.
+       Add a toggle to change this option interactively; the original
+       value of the option is restored on exit.
+
+       Update the window setup so that the ancestor buffer is
+       shown in 3way merges when ediff-show-ancestor is non-nil.
+
+       Any operation on ediff windows must take in account the
+       ancestor window as well, when this is shown.
+
+       * lisp/vc/ediff-init.el (ediff-show-ancestor): New option.
+       (ediff--show-ancestor-orig): New defvar.
+       * lisp/vc/ediff-wind.el (ediff-window-Ancestor): New defvar.
+       (ediff-setup-windows-plain-merge, ediff-setup-windows-multiframe-merge):
+       Display ancestor buffer if ediff-show-ancestor is non-nil.
+       (ediff-keep-window-config): Expect ancestor window in
+       ediff-window-config-saved.
+       (ediff-window-alist): Add entry for the ancestor window.
+       * lisp/vc/ediff-util.el (ediff-setup-control-buffer):
+       ediff-window-config-saved contains ancestor window.
+       (ediff-show-ancestor): Delete this command.
+       (ediff-setup-keymap): Bind ediff-toggle-show-ancestor to '/' for merge 
jobs.
+       (ediff-update-diffs): Compute new diffs using ancestor buffer in 3way 
merges;
+       don't cheat it to think that is performing a comparison, that trick is 
not
+       necessary anymore: simply call 'ediff-setup-diff-regions-function'
+       with file-A, file-B and the file ancestor.
+       (ediff-recenter): Update doc string.  Consider the ancestor buffer.
+       (ediff--check-ancestor-exists): New defun.
+       (ediff-toggle-show-ancestor): New command; toggle ediff-show-ancestor.
+       (ediff--restore-options-on-exit): Restore ediff-show-ancestor on exit.
+       (ediff-scroll-vertically, ediff-scroll-horizontally)
+       (ediff-operate-on-windows): Consider the ancestor as well.
+       * lisp/vc/ediff-help.el (ediff-long-help-message-merge):
+       List ediff-toggle-show-ancestor.
+       * doc/misc/ediff.texi (Introduction, Quick Help Commands): Update 
manual.
+
+2017-03-14  Tino Calancha  <address@hidden>
+
+       diff-mode: Improve default faces for buffer ancestor
+
+       * lisp/vc/ediff-init.el (ediff-current-diff-Ancestor)
+       (ediff-fine-diff-Ancestor): Use defaults consistent with
+       faces for 'ediff-buffer-A' and 'ediff-buffer-B'.
+
+2017-03-14  Hong Xu  <address@hidden>
+
+       * lisp/paren.el (show-paren--default, show-paren-function): Add 
docstring.
+
+2017-03-13  Paul Eggert  <address@hidden>
+
+       Fix make-dist typo
+
+       * make-dist: Fix typo introduced in the Bug#25895 fix.
+
+2017-03-13  Eli Zaretskii  <address@hidden>
+
+       Fix wording in Emacs manual
+
+       * doc/emacs/text.texi (Paragraphs): Fix a garbled sentence.
+       (Bug#26086)
+
+2017-03-13  Michael Albinus  <address@hidden>
+
+       etc/NEWS: Remote file names require a method.
+
+2017-03-13  Michael Albinus  <address@hidden>
+
+       Require method in remote file name syntax
+
+       * lisp/minibuffer.el (completion--nth-completion):
+       Do not bind `non-essential'.
+
+       * lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
+       * lisp/net/tramp-sh.el (tramp-maybe-open-connection):
+       * lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection): Do not call
+       `tramp-check-proper-method-and-host'.
+
+       * lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options): Better traces.
+       (tramp-maybe-open-connection): Do not use argument for
+       ´tramp-completion-mode-p'.
+
+       * lisp/net/tramp.el (tramp-default-method-marker): New defconst.
+       (tramp-prefix-format, tramp-postfix-method-format)
+       (tramp-prefix-ipv6-format, tramp-postfix-ipv6-format)
+       (tramp-prefix-port-format, tramp-postfix-host-format)
+       (tramp-file-name-regexp, tramp-completion-file-name-regexp):
+       Use `eq' instead of `eqal'.
+       (tramp-method-regexp, tramp-domain-regexp)
+       (tramp-remote-file-name-spec-regexp)
+       (tramp-file-name-regexp-unified)
+       (tramp-completion-file-name-regexp-unified)
+       (tramp-completion-file-name-regexp-separate): Adapt regexp.
+       (tramp-completion-file-name-handler-alist)
+       (tramp-run-real-handler): Autoload them.
+       (tramp-find-method): Handle `tramp-default-method-marker'.
+       (tramp-check-proper-method-and-host)
+       (tramp-completion-run-real-handler): Remove them.
+       (tramp-error-with-buffer, tramp-connectable-p): Do not use
+       argument for ´tramp-completion-mode-p'.
+       (tramp-find-foreign-file-name-handler): Remove COMPLETION
+       argument.  Do not apply heuristic for completion.
+       (tramp-file-name-handler): Do not modify `non-essential'.
+       (tramp-completion-file-name-handler): Change implementation.
+       (tramp-autoload-file-name-handler)
+       (tramp-completion-handle-file-name-all-completions):
+       Call `tramp-run-real-handler'.
+       (tramp-completion-mode-p): Do not autoload.  Remove argument.
+       Do not apply heuristic for completion.
+       (tramp-completion-dissect-file-name): Simplify implementation.
+       (tramp-handle-file-name-as-directory): Call `tramp-connectable-p'.
+
+       * test/lisp/net/tramp-tests.el (tramp-test01-file-name-syntax)
+       (tramp-test02-file-name-dissect)
+       (tramp-test03-file-name-defaults)
+       (tramp-test06-directory-file-name): Adapt to the new syntax.
+       (tramp-test11-copy-file, tramp-test12-rename-file)
+       (tramp--test-check-files): Deactivate temporarily tests with
+       quoted file names.
+       (tramp-test16-directory-files, tramp-test17-insert-directory):
+       Adapt tests.
+       (tramp-test24-file-name-completion): Do not check for
+       completion mode.
+       (tramp-test31-make-auto-save-file-name): Deactivate temporarily
+       two tests.
+
+2017-03-13  Eli Zaretskii  <address@hidden>
+
+       Fix bidi paragraph direction when inserting text at newline
+
+       * src/insdel.c (invalidate_buffer_caches): Invalidate the bidi
+       paragraph cache when inserting immediately after a newline.
+       (Bug#26083)
+
+2017-03-13  Tino Calancha  <address@hidden>
+
+       * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-1): Fix regexp.
+
+2017-03-13  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-print.el (cl-print-compiled): New variable
+
+       (cl-print-object) <compiled-function>: Print the docstring and
+       interactive form.  Obey cl-print-compiled.
+
+2017-03-13  Noam Postavsky  <address@hidden>
+
+       Fix indent-sexp when called from inside a string (Bug#21343)
+
+       * lisp/emacs-lisp/lisp-mode.el (indent-sexp): Get initial syntax parse
+       state from `syntax-ppss'.
+
+2017-03-13  Noam Postavsky  <address@hidden>
+
+       * lisp/emacs-lisp/lisp-mode.el (indent-sexp): Simplify.
+
+       * test/lisp/emacs-lisp/lisp-mode-tests.el (indent-sexp):
+       (indent-subsexp, indent-sexp-in-string): New tests.
+
+2017-03-12  Stefan Monnier  <address@hidden>
+
+       Use switch on pseudovector types; plus cleanups along the way
+
+       * src/lisp.h (PSEUDOVECTOR_TYPE): New function, extracted from 
mark_object.
+       (PSEUDOVECTOR_TYPEP): Change type of `code'.
+
+       * src/alloc.c (sweep_vectors): Remove out-of-date assertion.
+       (mark_object): Use PSEUDOVECTOR_TYPE.
+
+       * src/data.c (Ftype_of): Use switch on pvec type.
+
+       * src/print.c (print_object): Use switch on pvec type.
+
+       * lisp/emacs-lisp/cl-generic.el (cl--generic-typeof-types):
+       Add recently added types.
+
+2017-03-12  Paul Eggert  <address@hidden>
+
+       Install update-game-score only on request
+
+       Most distributions do not install update-game-score properly
+       due to setuid/setgid complications, so install it only when
+       the installer specifies a user or group (Bug#25895).
+       * .gitattributes: Remove lib-src/update-game-score.exe.manifest.
+       * Makefile.in (gameuser, gamegroup, use_gamedir, PATH_GAME):
+       New vars.
+       (epaths-force): Use PATH_GAME.
+       (uninstall): Remove snake-scores and tetris-scores only if shared.
+       * configure.ac: Default --with-gameuser to 'no'.
+       (UPDATE_MANIFEST): Remove.
+       * etc/NEWS: Mention this.
+       * lib-src/Makefile.in (UPDATE_MANIFEST): Remove.
+       (use_gamedir): New macro.
+       (UTILITIES): Remove update-game-score unless use_gamedir.
+       (SCRIPTS): Remove $(UPDATE_MANIFEST).
+       ($(DESTDIR)${archlibdir}): Install game directory program and data
+       only if use_gamedir.
+       * lib-src/update-game-score.exe.manifest: Remove, as
+       update-game-score is no longer installed on MS-Windows.
+       * lisp/play/gamegrid.el (gamegrid-add-score-with-update-game-score):
+       Use auxiliary program only if setuid or setgid.
+       * make-dist: Do not distribute update-game-score.exe.manifest.
+       * src/callproc.c (init_callproc):
+       Set Vshared_game_score_directory based on PATH_GAME, not DOS_NT.
+       (syms_of_callproc): Remove unnecessary initialization of
+       Vshared_game_score_directory.
+
+2017-03-12  Simen Heggestøyl  <address@hidden>
+
+       Add `touch-action' to list of CSS properties
+
+       * lisp/textmodes/css-mode.el (css-property-alist): Add `touch-action'
+       property.
+
+2017-03-12  Eli Zaretskii  <address@hidden>
+
+       Teach etags to process ENUM_BF correctly
+
+       * lib-src/etags.c (sym_type): New enumeration value st_C_enum_bf.
+       (hash): Regenerated values for asso_values[] array.
+       (in_word_set): Update values of TOTAL_KEYWORDS and
+       MAX_HASH_VALUE.  Add "ENUM_BF" to the wordlist[] array.
+       (in_enum_bf): New file-global variable.
+       (consider_token): Skip ENUM_BF if not in a macro definition.
+       (C_entries): Reset the in_enum_bf flag when past its closing
+       parenthesis.
+
+       * test/manual/etags/ETAGS.good_1:
+       * test/manual/etags/ETAGS.good_2:
+       * test/manual/etags/ETAGS.good_3:
+       * test/manual/etags/ETAGS.good_4:
+       * test/manual/etags/ETAGS.good_5:
+       * test/manual/etags/ETAGS.good_6:
+       * test/manual/etags/CTAGS.good: Adapt to changes in etags.
+
+2017-03-12  Michael Albinus  <address@hidden>
+
+       Use path/to/file instead of path/to.file in tramp.texi
+
+       * doc/misc/tramp.texi (Configuration, File name Syntax):
+       Use path/to/file instead of path/to.file.
+
+2017-03-12  Paul Eggert  <address@hidden>
+
+       Remove some stray gnulib files
+
+       * admin/merge-gnulib: rm m4/gnulib-tool.m4 too.
+       (GNULIB_MODULES): Remove unsetenv, as it is not needed and
+       the --avoid=unsetenv option avoided most of it anyway.
+       * lib/unsetenv.c, m4/gnulib-tool.m4, m4/setenv.m4: Remove.
+       * lib/gnulib.mk: Regenerate.
+
+2017-03-12  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-03-11 gnulib-common.m4: avoid aclocal.m4 bloat
+       * doc/misc/texinfo.tex, m4/gnulib-common.m4: Copy from gnulib.
+
+2017-03-12  Glenn Morris  <address@hidden>
+
+       Remove trivial duplication in epg-config
+
+       * lisp/epg-config.el (epg-config--program-alist):
+       Use epg-gpg-minimum-version.
+
+2017-03-12  Glenn Morris  <address@hidden>
+
+       Small epg-find-configuration improvement
+
+       * lisp/epg-config.el (epg-find-configuration):
+       Handle epg-gpg-program customized but not saved.  (Bug#25947)
+
+2017-03-11  Stefan Monnier  <address@hidden>
+
+       Improve last change
+
+       * lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2):
+       Use ppss to check escaping and add help-echo.
+
+2017-03-11  Stefan Monnier  <address@hidden>
+
+       Highlight useless backslashes in Elisp strings
+
+       * lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2):
+       Put warning face on backslashes that have no effect.
+
+2017-03-11  Eli Zaretskii  <address@hidden>
+
+       Document how to customize input methods
+
+       * doc/emacs/mule.texi (Input Methods): Document how to customize
+       input methods.
+
+2017-03-11  Eli Zaretskii  <address@hidden>
+
+       * lisp/net/eww.el (eww-reload): Doc fix.  (Bug#25981)
+
+2017-03-11  Eli Zaretskii  <address@hidden>
+
+       Fix generation of nt/gnulib.mk on macOS
+
+       * nt/Makefile.in (${srcdir}/gnulib.mk): Don't use the -f- option
+       to Sed, as that is not portable with non-GNU Sed variants.
+       (Bug#26043)
+
+2017-03-11  Eli Zaretskii  <address@hidden>
+
+       Avoid aborts/assertion violations due to 'vim-empty-lines-mode'
+
+       * src/xdisp.c (handle_single_display_spec): If position to be
+       restored after processing the display property comes from an
+       overlay, protect against that overlay's end point being outside of
+       the narrowed region.
+       Reported by Filipe Silva <address@hidden> in
+       http://lists.gnu.org/archive/html/emacs-devel/2017-03/msg00176.html.
+
+2017-03-10  Glenn Morris  <address@hidden>
+
+       Small improvement for epa-display-error (bug#24553)
+
+       * lisp/epa.el (epa-display-error): Report the actual program in use.
+
+2017-03-10  Paul Eggert  <address@hidden>
+
+       Tweak X toolkit code to pacify modern GCC
+
+       * lwlib/lwlib-Xaw.c, lwlib/lwlib-Xm.c, lwlib/lwlib.c:
+       Don’t include <stdlib.h>, since this code now calls emacs_abort
+       rather than abort.
+       * lwlib/lwlib-Xaw.c (make_dialog, xaw_generic_callback)
+       (wm_delete_window):
+       * lwlib/lwlib-Xm.c (make_menu_in_widget, do_call):
+       * lwlib/lwlib.c (instantiate_widget_instance, lw_make_widget):
+       * lwlib/xlwmenu.c (abort_gracefully, draw_separator)
+       (separator_height, XlwMenuInitialize):
+       Use emacs_abort, not abort.  Without this change, some calls
+       to ‘abort’ were invalid, as stdlib.h was not always included.
+       * src/widget.c (resources, emacsFrameClassRec):
+       * src/xfns.c (x_window) [USE_X_TOOLKIT]:
+       * src/xmenu.c (create_and_show_popup_menu) [USE_X_TOOLKIT]:
+       * src/xterm.c (emacs_options) [USE_X_TOOLKIT}:
+       (x_term_init) [USE_X_TOOLKIT]:
+       Cast string constants to char * to pacify --enable-gcc-warnings.
+
+2017-03-10  Michael Albinus  <address@hidden>
+
+       * doc/misc/tramp.texi (Android shell setup): Require adb program
+
+2017-03-10  Michael Albinus  <address@hidden>
+
+       Adapt tramp-tests.el
+
+       * test/lisp/net/tramp-tests.el (tramp-test06-directory-file-name)
+       (tramp-test24-file-name-completion): Call
+       `tramp-completion-mode-p' with argument.
+
+2017-03-10  Thien-Thi Nguyen  <address@hidden>
+
+       [doc] Replace bindat example: s/fortune cookie/rfc868 payload/
+
+       * doc/lispref/processes.texi (Bindat Examples):
+       Mention two examples in intro blurb; rewrite first example.
+
+2017-03-10  Paul Eggert  <address@hidden>
+
+       Simplify checks for xdg-open and xdg-email
+
+       browse-url's xdg-open detection was too picky on some GNU/Linux
+       desktops; see Bug#25778.  Simplify the code by assuming xdg-open works
+       if it is executable, as nowadays this is more likely to be correct than
+       trying to use heuristics from a few years ago.  Don't test for nohup: it
+       is ineffective nowadays, as xdg-open's child uses the default action for
+       SIGHUP even if xdg-open's invoker ignores SIGHUP.  While we're at it,
+       allow for Wayland here, as "emacs -nw" might be running in a non-X
+       Wayland terminal.
+       * lisp/mail/emacsbug.el (report-emacs-bug-can-use-xdg-email):
+       * lisp/net/browse-url.el (browse-url-can-use-xdg-open):
+       Simplify to a test for DISPLAY and whether the helper program is
+       executable.  Allow WAYLAND_DISPLAY as an option.
+
+2017-03-09  Vibhav Pant  <address@hidden>
+
+       Byte compile cond clauses without any bodies correctly.
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-cond-jump-table): When a
+       cond clause has no body, push t on to the stack.
+
+2017-03-09  Michael Albinus  <address@hidden>
+
+       Fix bug#23006
+
+       * lisp/minibuffer.el (completion--nth-completion):
+       Let-bind `non-essential'.
+
+       * lisp/net/tramp.el (tramp-completion-mode): Fix docstring.
+       (tramp-completion-mode-p): Optional parameter VEC.  Replace
+       check for `last-input-event' by analysing VEC argument.
+       (tramp-error-with-buffer, tramp-file-name-handler)
+       (tramp-connectable-p, tramp-handle-file-name-as-directory):
+       * lisp/net/tramp-sh.el (tramp-maybe-open-connection): Use it.
+
+2017-03-09  Vibhav Pant  <address@hidden>
+
+       etc/NEWS: Add entry for new `switch' bytecode.
+
+2017-03-08  Paul Eggert  <address@hidden>
+
+       * src/data.c (arithcompare): Add comments.
+
+2017-03-08  Glenn Morris  <address@hidden>
+
+       Update a cl-print test
+
+       * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-1):
+       Update for recent change in cl-print-object function output.
+
+2017-03-08  Sam Steingold  <address@hidden>
+
+       Replace change-log-date-face -> change-log-date
+
+       This fixes c430f7e23fc2c22f251ace4254e37dea1452dfc3.
+
+2017-03-08  Michael Albinus  <address@hidden>
+
+       Fix bug#26011
+
+       * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-via-buffer):
+       Check, whether file is too large.  (Bug#26011)
+
+2017-03-08  Andreas Schwab  <address@hidden>
+
+       * data.c (minmax_driver): Use CHECK_NUMBER_OR_FLOAT_COERCE_MARKER.
+       (Fmax, Fmin): Restore documentation.
+
+       * data.c (cons_to_unsigned, cons_to_signed, Fstring_to_number): Reorder
+       comparisons that are written backward.
+
+2017-03-08  Thien-Thi Nguyen  <address@hidden>
+
+       [doc elisp] Add some index entries for "old" advice mechanism
+
+       * doc/lispref/functions.texi (Porting old advice):
+       Add one @cindex and two @findex entries.
+
+2017-03-08  Paul Eggert  <address@hidden>
+
+       * etc/NEWS: Adjust to match previous patch.
+
+2017-03-08  Paul Eggert  <address@hidden>
+
+       min and max should not return markers
+
+       Problem reported by Glenn Morris in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-03/msg00147.html
+       * src/data.c (minmax_driver): Convert any marker result to an
+       integer, since some callers assume this.
+       * test/src/data-tests.el (data-tests-max, data-tests-min):
+       Test for this.
+
+2017-03-08  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-print.el (cl-print-object): Use #f(..) for 
functions.
+
+2017-03-08  Alan Third  <address@hidden>
+
+       Add missing timeout value in ns_select
+
+       * src/nsterm.m (ns_select): Set timeout to distant future when relying
+       on fd_handler's timeout.
+
+2017-03-07  Glenn Morris  <address@hidden>
+
+       * admin/update_autogen: Ensure nt/gnulib.mk exists, for autoreconf.
+
+2017-03-07  Paul Eggert  <address@hidden>
+
+       Remove isnan hack for Solaris 10 gcc 3.4.3
+
+       This seems to have been a false alarm (Bug#26018).
+       * src/data.c (isnan):
+       * src/floatfns.c (isfinite, isnan):
+       Use standard implementation if available.
+
+2017-03-07  Eli Zaretskii  <address@hidden>
+
+       Support browsing URLs with embedded spaces on MS-Windows
+
+       * lisp/net/browse-url.el (browse-url-default-windows-browser):
+       Unhex %XX hex-encoded characters, as w32-shell-execute doesn't
+       support that in file:// URLs.  (Bug#26014)
+
+2017-03-07  Paul Eggert  <address@hidden>
+
+       Define copysign on all platforms
+
+       * configure.ac (copysign): Remove test.
+       * src/floatfns.c (signbit): New macro, if not already defined.
+       (Fcopysign): Use it instead of copysign.
+       (Fcopysign, syms_of_floatfns): Define the function on all platforms.
+
+2017-03-07  Phillip Lord  <address@hidden>
+
+       Revert "Replace ldefs-boot with a much smaller file"
+
+       This reverts commit c27b645956a11fab1dd8fa189254d525390958f5.
+
+       This commit has been reverted because the new mechanism was too
+       sensitive to changes in the lisp source, generation of new ldefs-boot
+       files was platform specific and resulted in warnings about undefined
+       variables.
+
+       See also 11436e2890d.
+
+2017-03-07  Phillip Lord  <address@hidden>
+
+       Revert "Record autoloads till emacs dump"
+
+       This reverts commit 72c668a9042ac6475eadedfee5c87fb1e6b2d753.
+
+       This commit has been reverted because the new mechanism was too
+       sensitive to changes in the lisp source, generation of new ldefs-boot
+       files was platform specific and resulted in warnings about undefined
+       variables.
+
+       See also 11436e2890d.
+
+2017-03-07  Phillip Lord  <address@hidden>
+
+       Revert "Remove unused ldefs-boot.el"
+
+       This reverts commit ef8c9f8fc922b615aca91b47820d1f1900fddc96.
+
+       This commit has been reverted because the new mechanism was too
+       sensitive to changes in the lisp source, generation of new ldefs-boot
+       files was platform specific and resulted in warnings about undefined
+       variables.
+
+       See also 11436e2890d.
+
+2017-03-07  Phillip Lord  <address@hidden>
+
+       Revert "Remove conditional includes from bootstrap"
+
+       This reverts commit 1b946305182312faa7fcd838caf55dcb07b2ab04.
+
+       This commit has been reverted because the new mechanism was too
+       sensitive to changes in the lisp source, generation of new ldefs-boot
+       files was platform specific and resulted in warnings about undefined
+       variables.
+
+       See also 11436e2890d.
+
+2017-03-07  Phillip Lord  <address@hidden>
+
+       Revert "Speed generation of ldefs-boot-auto"
+
+       This reverts commit 7b5e1c8238ef961fd3305b1dce053b9bced684ba.
+
+       This commit has been reverted because the new mechanism was too
+       sensitive to changes in the lisp source, generation of new ldefs-boot
+       files was platform specific and resulted in warnings about undefined
+       variables.
+
+       See also 11436e2890d.
+
+2017-03-07  Phillip Lord  <address@hidden>
+
+       Revert "Fix minor problems with loaddefs autogeneration"
+
+       This reverts commit f2bd2c1e6476acc71e71f6cb2a1c56c5edd900ba.
+
+       This commit has been reverted because the new mechanism was too
+       sensitive to changes in the lisp source, generation of new ldefs-boot
+       files was platform specific and resulted in warnings about undefined
+       variables.
+
+2017-03-07  Noam Postavsky  <address@hidden>
+
+       Set default when asking for send-mail-function (Bug#25874).
+
+       * lisp/mail/sendmail.el (sendmail-query-user-about-smtp): Pass first
+       option as default for `completing-read'.
+
+2017-03-07  Paul Eggert  <address@hidden>
+
+       min and max now return one of their arguments
+
+       * doc/lispref/numbers.texi (Comparison of Numbers):
+       * etc/NEWS: Document this.
+       * src/data.c (Amax, Amin): Remove constants.  All uses removed.
+       (minmax_driver): New function.
+       (Fmax, Fmin): Use it instead of arith_driver.
+       * test/src/data-tests.el (data-tests-max, data-tests-min): New tests.
+
+2017-03-06  Alan Third  <address@hidden>
+
+       Remove NSEvent loop from ns_select (bug#25265)
+
+       * src/nsterm.m (ns_select): Remove event processing loop and replace
+       with simple test for a new event.
+
+2017-03-06  Eli Zaretskii  <address@hidden>
+
+       A better fix for bug#25845
+
+       * src/xdisp.c (font_for_underline_metrics): New function.
+       * src/dispextern.h: Add its prototype.
+       * src/xterm.c (x_draw_glyph_string):
+       * src/w32term.c (x_draw_glyph_string):
+       * src/nsterm.m (ns_draw_text_decoration): Call it.  This avoids
+       having identical code 3 times in 3 different files.
+
+2017-03-06  Noam Postavsky  <address@hidden>
+
+       Fix warning message about native completion (Bug#25984)
+
+       * lisp/progmodes/python.el 
(python-shell-completion-native-turn-on-maybe):
+       The relevant variable is `python-shell-completion-native-enable'.
+
+2017-03-06  Tom Tromey  <address@hidden>
+
+       Fix typos in EIEIO manual
+
+       * doc/misc/eieio.texi (Slot Options, Class Options): Fix typos.
+
+2017-03-05  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-03-04 dtotimespec: simplify
+       * lib/dtotimespec.c: Copy from gnulib.
+
+2017-03-05  Paul Eggert  <address@hidden>
+
+       ffloor etc. now accept only floats
+
+       * etc/NEWS: Say why.
+       * src/floatfns.c (Ffceiling, Fffloor, Ffround, Fftruncate):
+       Require arg to be float.
+       * test/src/floatfns-tests.el (fround-fixnum): Check this.
+
+2017-03-05  Eli Zaretskii  <address@hidden>
+
+       Fix display of cursor on underlined text
+
+       * src/nsterm.m (ns_draw_text_decoration):
+       * src/xterm.c (x_draw_glyph_string):
+       * src/w32term.c (x_draw_glyph_string): Compute the position and
+       thickness of the underline by looking for the first glyph of the
+       run of underlined glyphs that includes the glyph string we are
+       drawing.  (Bug#25845)
+
+2017-03-05  Mark Oteiza  <address@hidden>
+
+       Add more CL concept index items, print Concept Index
+
+       * doc/misc/cl.texi: Print concept index.
+       (Generalized Variables, Variable Bindings):
+       (Dynamic Bindings, Function Bindings, Macro Bindings, Conditionals):
+       (Blocks and Exits, Iteration, Multiple Values): Add concept index
+       items.
+
+2017-03-05  Mark Oteiza  <address@hidden>
+
+       Add 'loop facility' to the CL concept index
+
+       * doc/misc/cl.texi (Loop Facility): Add "loop facility" as a concept
+       index item.
+
+2017-03-05  martin rudalics  <address@hidden>
+
+       In `window--display-buffer' fix behavior reported in Bug#25946
+
+       * lisp/window.el (window--display-buffer): Set the dedicated
+       status of the window used and clear its history of previous
+       buffers also for the case that the window already shows the
+       buffer to be displayed.  (Bug#25946)
+
+2017-03-05  Paul Eggert  <address@hidden>
+
+       Compare and round more carefully
+
+       * etc/NEWS: Document this.
+       * src/data.c (store_symval_forwarding):
+       * src/sound.c (parse_sound):
+       Do not botch NaN comparison.
+       * src/data.c (cons_to_unsigned, cons_to_signed):
+       Signal an error if a floating-point arg is not integral.
+       * src/data.c (cons_to_unsigned, cons_to_signed):
+       * src/fileio.c (file_offset):
+       Use simpler overflow check.
+       * src/dbusbind.c (xd_extract_signed, xd_extract_unsigned):
+       Avoid rounding error in overflow check.
+       (Fcar_less_than_car): Use arithcompare directly.
+       * test/src/charset-tests.el: New file.
+
+2017-03-05  Paul Eggert  <address@hidden>
+
+       Fewer rounding errors with (format "%f" fixnum)
+
+       * etc/NEWS: Document this.
+       * src/editfns.c (styled_format): When formatting integers via a
+       floating-point format, use long double instead of double
+       conversion, if long double’s extra precision might help.
+
+2017-03-05  Paul Eggert  <address@hidden>
+
+       * src/floatfns.c (Fftruncate): Simplify via emacs_trunc.
+
+       * src/editfns.c (styled_format): Omit unnecessary code for "%0d" etc.
+
+2017-03-04  Eli Zaretskii  <address@hidden>
+
+       Clarify documentation of 'raise' and 'height' display specs
+
+       * doc/lispref/display.texi (Other Display Specs): Clarify the
+       effect of 'height' display spec on the following 'raise'.
+       (Bug#25824)
+
+2017-03-04  Eli Zaretskii  <address@hidden>
+
+       Fix header shown by Info 'L' command
+
+       * lisp/info.el (Info-history-find-node): A better heading for the
+       list of visited nodes.  (Bug#25876)
+
+2017-03-04  K. Handa  <address@hidden>
+
+       Add a section about incorrect Bengali rendering.
+
+2017-03-04  Eli Zaretskii  <address@hidden>
+
+       Fix minor problems with loaddefs autogeneration
+
+       * admin/ldefs-clean.el (ldefs-clean): Bind coding-system-for-read
+       and coding-system-for-write, to produce a UTF-8 file with Unix
+       EOLs on MS-Windows.
+
+       * lisp/ldefs-boot-manual.el (image-type): Add autoload cookie.
+
+2017-03-04  David Bremner  <address@hidden>  (tiny change)
+
+       Fix issues with dedicated windows in shr.el
+
+       * lisp/net/shr.el (shr-pixel-buffer-width, shr-render-td-1): Make
+       the window not dedicated, to avoid errors if it was, before
+       setting its buffer temporarily.  (Bug#25828)
+
+2017-03-04  Eli Zaretskii  <address@hidden>
+
+       Mention problems with GPaste in PROBLEMS
+
+       * etc/PROBLEMS (GPaste): Mention the problem in yanking caused by
+       GPaste, and its solution.  (Bug#25902)
+
+2017-03-04  Glenn Morris  <address@hidden>
+
+       Avoid duplicate gud menu items with gdb-mi
+
+       * lisp/progmodes/gud.el (gud-menu-map): Avoid duplicate "Run"
+       entries in gdbmi mode.  (Bug#23923)
+
+2017-03-03  Paul Eggert  <address@hidden>
+
+       * src/editfns.c (styled_format): Omit unnecessary code.
+
+2017-03-03  Paul Eggert  <address@hidden>
+
+       logb now works correctly on large integers
+
+       * admin/merge-gnulib (GNULIB_MODULES): Add count-leading-zeros.
+       * etc/NEWS: Document the change.
+       * lib/count-leading-zeros.c, lib/count-leading-zeros.h:
+       * m4/count-leading-zeros.m4: New files, copied from Gnulib.
+       * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
+       * src/floatfns.c: Include count-leading-zeros.h.
+       (Flogb): Do not convert fixnum to float before taking the log,
+       as the rounding error can cause the answer to be off by 1.
+       * src/lisp.h (EMACS_UINT_WIDTH): New constant.
+       * test/src/floatfns-tests.el (logb-extreme-fixnum): New test.
+
+2017-03-03  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-02-25 maintainer-makefile: Fix AC_PROG_SED with autoconf cache.
+       2017-02-24 ftoastr: port to -Wdouble-promotion
+       * lib/ftoastr.c, m4/gnulib-common.m4: Copy from gnulib.
+
+2017-03-03  Eli Zaretskii  <address@hidden>
+
+       Avoid duplicating characters recorded in macros
+
+       * src/keyboard.c (record_char): Don't store in macro definitions
+       characters that came from executing a macro.  (Bug#25860)
+
+2017-03-03  Eli Zaretskii  <address@hidden>
+
+       Fix color component calculations in color.el
+
+       * lisp/color.el (color-name-to-rgb): Use 16 bits per color component.
+       (color-rgb-to-hex): Accept an optional argument
+       DIGITS-PER-COMPONENT, defaulting to 4, and format the hexadecimal
+       notation either for 8 or 16 bits per component.  (Bug#25890)
+       * lisp/net/shr-color.el (shr-color->hexadecimal): Call
+       color-rgb-to-hex with the optional argument of 2, to match color
+       processing on the Web.
+
+2017-03-03  Tino Calancha  <address@hidden>
+
+       Use lexical binding in benchmark.el
+
+       * lisp/emacs-lisp/benchmark.el: Enable lexical binding.
+       (benchmark-elapse): Use 'declare'.
+       * test/lisp/emacs-lisp/benchmark-tests.el: Add test suite.
+
+2017-03-03  Noam Postavsky  <address@hidden>
+
+       Switch pp.el to lexical binding
+
+       Additionally, do some minor code cleanup.
+
+       * lisp/emacs-lisp/pp.el: Set lexical-binding.
+       (pp-buffer): Use skip-syntax-forward.
+       (pp-eval-expression): Use push.
+       (pp-last-sexp): Use with-syntax-table.
+       * test/lisp/emacs-lisp/pp-tests.el: New tests.
+
+2017-03-03  Chunyang Xu  <address@hidden>  (tiny change)
+
+       Fix completing-read call in reb-change-syntax
+
+       * lisp/emacs-lisp/re-builder.el (reb-change-syntax): Use 'default' arg
+       of completing-read.
+
+2017-03-03  Rolf Ade  <address@hidden>  (tiny change)
+
+       sql-mode w/ sqlite: In-memory database
+
+       Enable the usage of an in-memory database. Prior to this, sql-mode w/
+       sqlite could only be used with file databases.
+       * list/progmodes/sql.el (sql-get-login-ext): Don't expand an empty
+       file name provided by the user, but call sub-process sqlite with that,
+       in which case it uses an in-memory database.
+
+2017-03-03  Allen Li  <address@hidden>
+
+       Stop abbrev-prefix-mark from adding extra newline (Bug#25767)
+
+       `abbrev--before-point' does not adjust `pos' to account for when it
+       deletes the "-" left by abbrev-prefix-mark.  Therefore, when
+       `abbrev-before-point' goes to restore point, it moves point one
+       character too far forward.
+
+       * lisp/abbrev.el (abbrev--before-point): Adjust pos when deleting "-".
+
+2017-03-03  Tino Calancha  <address@hidden>
+
+       * lisp/subr.el (apply-partially): Move to 'Basic Lisp functions' 
section.
+
+2017-03-02  Paul Eggert  <address@hidden>
+
+       Restore XFLOATINT but with restricted args
+
+       Turn instances of extract_float into XFLOAT_DATA when possible,
+       and to a resurrected XFLOATINT when the arg is a number.
+       The resurrected XFLOATINT is more like XFLOAT and XINT in
+       that is valid only if its arg is a number.  This clarifies
+       the ways in which floats can be extracted at the C level.
+       * src/editfns.c (styled_format):
+       * src/floatfns.c (extract_float, Fexpt):
+       Use XFLOATINT rather than open-coding it.
+       * src/fns.c (internal_equal):
+       * src/image.c (imagemagick_load_image):
+       * src/xdisp.c (resize_mini_window):
+       Prefer XFLOAT_DATA to extract_float on values known to be floats.
+       * src/frame.c (x_set_screen_gamma):
+       * src/frame.h (NUMVAL):
+       * src/image.c (x_edge_detection, compute_image_size):
+       * src/lread.c (read_filtered_event):
+       * src/window.c (Fset_window_vscroll):
+       * src/xdisp.c (handle_single_display_spec, try_scrolling)
+       (redisplay_window, calc_pixel_width_or_height, x_produce_glyphs)
+       (on_hot_spot_p):
+       Prefer XFLOATINT to extract_float on values known to be numbers.
+       * src/lisp.h (XFLOATINT): Bring back this function, except
+       it now assumes its argument is a number.
+
+2017-03-02  Glenn Morris  <address@hidden>
+
+       Ert commands to error if no test at point (bug#25931)
+
+       * lisp/emacs-lisp/ert.el (ert-results-mode-menu):
+       Deactivate some items if no test at point.
+       (ert--results-test-at-point-no-redefinition):
+       Add option to signal an error rather than return nil.
+       (ert-results-pop-to-backtrace-for-test-at-point)
+       (ert-results-pop-to-messages-for-test-at-point)
+       (ert-results-pop-to-should-forms-for-test-at-point)
+       (ert-results-describe-test-at-point): Error if no test at point.
+
+2017-03-02  Paul Eggert  <address@hidden>
+
+       Remove XFLOATINT
+
+       * src/lisp.h (XFLOATINT): Remove this alias for extract_float.
+       All callers changed to use extract_float.
+       * src/frame.h (NUMVAL): Now an inline function, not a macro.
+
+2017-03-02  Paul Eggert  <address@hidden>
+
+       Fix rounding errors in <, =, etc.
+
+       * etc/NEWS: Document this.
+       * src/bytecode.c (exec_byte_code):
+       * src/data.c (arithcompare):
+       Do not lose information when comparing floats to integers.
+       * test/src/data-tests.el (data-tests-=, data-tests-<)
+       (data-tests->, data-tests-<=, data-tests->=):
+       Test this.
+
+2017-03-02  Eli Zaretskii  <address@hidden>
+
+       Fix display of mouse-highlight produced by overlapping overlays
+
+       * src/xfaces.c (face_at_buffer_position): If called to find the
+       mouse-face, only consider the highest-priority source for that
+       face, and ignore the rest.  Previously, all the mouse-face
+       definitions at POS were merged in that case.
+       * src/xdisp.c (note_mouse_highlight): Record the overlay that
+       specifies mouse-face _after_ clearing the info about the previous
+       overlay, so as not to clear the information about the just-recorded
+       overlay.  (Bug#25906)
+
+2017-03-02  Eli Zaretskii  <address@hidden>
+
+       Fix display of strike-through text in variable-height lines
+
+       * src/nsterm.m (ns_draw_text_decoration):
+       * src/xterm.c (x_draw_glyph_string):
+       * src/w32term.c (x_draw_glyph_string): Fix calculation of the
+       strike-through y-coordinate for a glyph row which is taller than
+       the strike-through text.  (Bug#25907)
+
+2017-03-02  Martin Rudalics  <address@hidden>
+
+       Don't call x_net_wm_state for scroll bar windows (Bug#24963, Bug#25887)
+
+       * src/xterm.c (handle_one_xevent): For ConfigureNotify events
+       don't call x_net_wm_state when the window is a scroll bar window.
+       (Bug#24963, Bug#25887)
+
+2017-03-02  Katsumi Yamaoka  <address@hidden>
+
+       gnus-summary-select-article-buffer: Don't re-render existing article
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-select-article-buffer):
+       Don't re-render existing article.
+
+2017-03-02  Katsumi Yamaoka  <address@hidden>
+
+       Don't add debbugs address to message body (bug#25896)
+
+       * lisp/gnus/gnus-group.el (gnus-read-ephemeral-bug-group):
+       Don't add debbugs address to message body (bug#25896), and
+       don't add it to message header either if it already exists.
+
+2017-03-02  Stefan Monnier  <address@hidden>
+
+       * lisp/cedet/semantic/db-global.el: Make dynbind use explicit
+
+       (semanticdb--ih): Declare.
+       (semanticdb-enable-gnu-global-databases): Use it instead of `ih'.
+       (semanticdb-enable-gnu-global-in-buffer, semanticdb-get-database-tables)
+       (semanticdb-find-tags-for-completion-method): Silence compiler warning.
+
+2017-03-02  Stefan Monnier  <address@hidden>
+
+       * lisp/help-fns.el (describe-variable): Use cl-print for the value
+
+       Use `pp-buffer' rather than `pp' so as to avoid calling prin1 twice.
+
+2017-03-02  Glenn Morris  <address@hidden>
+
+       * test/lisp/net/puny.el: New file.
+
+2017-03-02  Glenn Morris  <address@hidden>
+
+       Small puny.el fix
+
+       * lisp/net/puny.el (puny-decode-string-internal):
+       Handle strings with no ascii parts.  (Bug#23688)
+
+2017-03-02  Glenn Morris  <address@hidden>
+
+       Small recover-this-file improvement
+
+       * lisp/files.el (recover-this-file): Explicit error if not
+       visiting a file.  (Bug#23671)
+
+2017-03-01  Glenn Morris  <address@hidden>
+
+       Fix for coding-system completion (bug#23670)
+
+       * lisp/international/mule.el (read-buffer-file-coding-system):
+       Ensure that completion-pcm--delim-wild-regex is enclosed in parens,
+       so that completion-pcm--pattern->regex can append "*?".
+
+2017-03-01  Paul Eggert  <address@hidden>
+
+       Fix rounding error in ‘ceiling’ etc.
+
+       Without this fix, (ceiling most-negative-fixnum -1.0) returns
+       most-negative-fixnum instead of correctly signaling range-error,
+       and similarly for floor, round, and truncate.
+       * configure.ac (trunc): Add a check, since Gnulib’s doc says
+       ‘trunc’ is missing from MSVC 9.  The Gnulib doc says ‘trunc’ is
+       also missing from some other older operating systems like Solaris
+       9 which I know we don’t care about any more, so MSVC is the only
+       reason to worry about ‘trunc’ here.
+       * src/editfns.c (styled_format): Formatting a float with %c is now an
+       error.  The old code did not work in general, because FIXNUM_OVERFLOW_P
+       had rounding errors.  Besides, the "if (FLOATP (...))" was in there
+       only as a result of my misunderstanding old code that I introduced
+       2011.  Although %d etc. is sometimes used on floats that represent
+       huge UIDs or PIDs etc. that do not fit in fixnums, this cannot
+       happen with characters.
+       * src/floatfns.c (rounding_driver): Rework to do the right thing
+       when the intermediate result equals 2.305843009213694e+18, i.e.,
+       is exactly 1 greater than MOST_POSITIVE_FIXNUM on a 64-bit host.
+       Simplify so that only one section of code checks for overflow,
+       rather than two.
+       (double_identity): Remove.  All uses changed to ...
+       (emacs_trunc): ... this new function.  Add replacement for
+       platforms that lack ‘trunc’.
+       * src/lisp.h (FIXNUM_OVERFLOW_P, make_fixnum_or_float):
+       Make it clear that the arg cannot be floating point.
+       * test/src/editfns-tests.el (format-c-float): New test.
+       * test/src/floatfns-tests.el: New file, to test for this bug.
+
+2017-03-01  Glenn Morris  <address@hidden>
+
+       Small help--loaded-p fix
+
+       * lisp/help-fns.el (help--loaded-p): Handle entry in load-history
+       with nil file name.  (Bug#25847)
+
+2017-03-01  Leo Liu  <address@hidden>
+
+       * src/fns.c (Fbuffer_hash): Doc fix.
+
+2017-03-01  Eric Abrahamsen  <address@hidden>
+
+       Don't use mapconcat with chars in gnus registry marks (Bug#25839)
+
+       * lisp/gnus/gnus-registry.el (gnus-registry-article-marks-to-chars):
+       Instead, use a plain concat, which will create a string out of a list
+       of characters.
+
+2017-03-01  Noam Postavsky  <address@hidden>
+
+       Fix epg-tests with dummy-pinentry program (Bug#23619)
+
+       * test/data/epg/dummy-pinentry: New file.
+       * test/lisp/epg-tests.el (with-epg-tests): Add it to gpg-agent.conf
+       when a passphrase is required.  Add debug declaration.  Set
+       GPG_AGENT_INFO non-destructively.
+
+2017-02-28  Phillip Lord  <address@hidden>
+
+       Speed generation of ldefs-boot-auto
+
+       Previously, generation of ldefs-boot-auto required at least one full
+       bootstrap and, in extreme cases, two. Now, from build system, it
+       requires the same time as taken to dump Emacs.
+
+       * Makefile.in: Remove all calls, pass to src.
+       * admin/ldefs-clean.el: Update for changed messages.
+       * lisp/Makefile.in (compile-first-delete): Add.
+       * lisp/ldefs-boot-auto.el: Update.
+       * src/Makefile.in (generate-ldefs-boot): Add.
+
+2017-02-28  Phillip Lord  <address@hidden>
+
+       Add error handling to magic-mode-alist
+
+       * lisp/files.el (set-auto-mode): Add explicit error handling in two
+         places.
+
+2017-02-28  Phillip Lord  <address@hidden>
+
+       Remove conditional includes from bootstrap
+
+       Previously, bootstrap-emacs includes optional functionality, depending
+       on the platform which is not needed for bootstrap function.  As a
+       result, bootstrap-emacs contains different functions in different
+       circumstances.  If ldefs-boot-auto.el is generated, then loaded
+       functions will not be added to ldefs-boot-auto.el, although they may be
+       required during some builds.  With this change, bootstrap-emacs should
+       always behave the same way and, therefore, require the same autoloads.
+
+        * lisp/loadup.el: No longer load optional includes during bootstrap
+          dumping.
+        * lisp/ldefs-boot-auto.el: Regenerate.
+        * lisp/ldefs-boot-manual.el: Add two autoloads.
+
+2017-02-28  Phillip Lord  <address@hidden>
+
+       Do not use find-file non-interactively
+
+        * lisp/international/titdic-cnv (miscdic-convert): Use
+          insert-file-contents in place of find-file.
+
+2017-02-28  Stefan Monnier  <address@hidden>
+
+       * src/xdisp.c (overlay_arrows_changed_p): Fix return value and doc
+
+       (update_overlay_arrows): Skip non-markers.
+
+2017-02-28  Ken Brown  <address@hidden>
+
+       Try to avoid hang when logging out of MS-Windows
+
+       * src/w32term.c (x_update_window_begin, x_update_window_end)
+       (my_show_window, my_set_window_pos, my_set_focus)
+       (my_set_foreground_window, my_destroy_window)
+       (my_bring_window_to_top, x_iconify_frame): Replace calls to
+       SendMessage by calls to SendMessageTimeout with a 6-second
+       timeout.  (Bug#25875)
+
+2017-02-28  Stefan Monnier  <address@hidden>
+
+       * lisp/textmodes/reftex-toc.el (reftex-re-enlarge): Demote errors.
+
+2017-02-28  Stefan Monnier  <address@hidden>
+
+       * doc/misc/eieio.texi: Update to account for the cl-generic facilities
+
+       (Quick Start, Class Options, Generics): Adjust names for cl-generic.
+       (Methods): Document cl-defmethod.
+       Explain in more detail the order in which the various
+       methods are executed.  Document the conditions under which a method
+       is redefined.  Remove reference to `eieio-generic-call-arglst`.
+       Don't document the precise return value of cl-next-method-p.
+       (Static Methods): Adjust to use `subclass` specializer.
+       (Method Invocation): Use cl-call-next-method and drop mention of 
:primary.
+       (Signal Handling, Signals): Adjust names and args for cl-generic; add
+       cl-no-primary-method.
+       (CLOS compatibility, Wish List): Adjust to new featureset.
+
+2017-02-28  Stefan Monnier  <address@hidden>
+
+       * lisp/cedet/mode-local.el (define-mode-local-override): Declare 
doctring.
+
+       * lisp/nxml/nxml-mode.el (nxml-mode): Use new sgml-syntax-propertize.
+
+2017-02-28  Stefan Monnier  <address@hidden>
+
+       * lisp/textmodes/sgml-mode.el: syntax-propertize <![CDATA and <?..?>
+
+       (sgml-syntax-propertize-function): Mark <![CDATA and <?..?>.
+       (sgml-syntax-propertize-inside): New fun.
+
+2017-02-28  Stefan Monnier  <address@hidden>
+
+       * lisp/textmodes/css-mode.el (css-completion-at-point): Auto-insert
+
+       ": ;" after completing a property.
+
+2017-02-28  Tino Calancha  <address@hidden>
+
+       Show Ibuffer and jump to line listing current buffer
+
+       * lisp/ibuffer.el (ibuffer-jump): New command (Bug#25577).
+
+2017-02-27  Juri Linkov  <address@hidden>
+
+       * lisp/vc/add-log.el (change-log-next-buffer): Check if file exists
+
+       before adding it to the list of files.
+
+2017-02-27  Juri Linkov  <address@hidden>
+
+       Put text properties on query-replace separator string instead of "\0"
+
+       * lisp/replace.el (query-replace--split-string):
+       Split at a substring instead of just character.
+       (query-replace-read-from): Put text properties on the
+       separator string instead of "\0".  (Bug#25482)
+
+2017-02-27  Juri Linkov  <address@hidden>
+
+       Add file name and its extension to suggestions in 
dired-mark-files-regexp
+
+       * lisp/dired.el (dired-mark-files-regexp): Add file name
+       and its extension to the list of suggested defaults.  (Bug#25578)
+
+2017-02-27  Chunyang Xu  <address@hidden>  (tiny change)
+
+       Prompt default extension in dired-mark-extension
+
+       * lisp/dired-x.el (dired-mark-extension): Prompt default extension
+       based on extension of file at point.  (Bug#25578)
+
+2017-02-27  Tino Calancha  <address@hidden>
+
+       Prevent for consing in cl-mapc and cl-mapl
+
+       * lisp/emacs-lisp/cl-extra.el (cl--mapcar-many): Add optional arg ACC;
+       If non-nil, accumulate values in the result (Bug#25826).
+       (cl-mapc): Do computations inside function instead of call cl-map.
+       (cl-mapl): Do computations inside function instead of call cl-maplist.
+       * lisp/emacs-lisp/cl-lib.el (mapcar): Add autoload cookie.
+       Call cl--mapcar-many with non-nil 3rd argument.
+       * test/lisp/emacs-lisp/cl-extra-tests.el (cl-extra-test-map)
+       (cl-extra-test-mapc, cl-extra-test-mapcar, cl-extra-test-mapl)
+       (cl-extra-test-maplist): New tests.
+
+2017-02-27  Tino Calancha  <address@hidden>
+
+       Choose the right target dir on dired operations
+
+       Prevent from changing the input target dir
+       when dired-dwim-target is non-nil (Bug#25609).
+       * lisp/dired-aux.el (dired-do-create-files):
+       If dired-dwim-target is non-nil, then bind 'default' to nil.
+       * test/lisp/dired-tests.el (dired-test-bug25609): Add test.
+
+2017-02-27  Stefan Monnier  <address@hidden>
+
+       * src/xdisp.c (overlay_arrows_changed_p): Fix last change.
+
+2017-02-27  Noam Postavsky  <address@hidden>
+
+       Don't record eshell/clear "command" in history (Bug#25838)
+
+       `eshell/clear' is implemented by sending a series of blank lines,
+       which is not a useful thing to have in the history.
+
+       * lisp/eshell/em-hist.el (eshell-input-filter-default): Use
+       `string-blank-p' which does check for newlines (even though newlines
+       have comment-end syntax, not whitespace syntax class).
+       * lisp/eshell/esh-mode.el (eshell/clear): Remove
+       `eshell-add-to-history' from `eshell-input-filter-functions' while
+       sending the blank lines.  This change is needed to solve the bug if
+       the user customizes `eshell-input-filter' to something that doesn't
+       filter newlines.
+
+2017-02-26  Paul Eggert  <address@hidden>
+
+       Remove a few unused C functions
+
+       * src/eval.c (let_shadows_global_binding_p):
+       * src/print.c (write_string):
+       * src/systhread.c (sys_mutex_destroy, sys_thread_equal):
+       Remove.
+       * src/print.c (write_string): Rename from write_string_1.
+       All uses changed.
+
+2017-02-26  Eli Zaretskii  <address@hidden>
+
+       Avoid segfault in overlay_arrows_changed_p
+
+       * src/xdisp.c (overlay_arrows_changed_p): Fix recent change
+       to avoid a segfault.
+
+2017-02-26  Noam Postavsky  <address@hidden>
+
+       Don't call package--ensure-init-file if initialized during startup
+
+       * lisp/emacs-lisp/package.el (package-initialize): Check
+       `after-init-time' rather than `load-file-name' to decide if
+       `package--ensure-init-file' should be called.  Depending on
+       `load-file-name' will fail if the user calls `pacakge-initialize' in
+       file which is loaded from the init file (Bug#24643, Bug#25819).
+
+2017-02-26  Eli Zaretskii  <address@hidden>
+
+       Fix display of before- and after-strings at invisible text
+
+       * src/xdisp.c (next_overlay_string): Don't raise the
+       ignore_overlay_strings_at_pos_p flag if the iterator is already
+       set to continue at a buffer position different from the one
+       where the overlay strings we just processed were loaded.  (Bug#25856)
+
+2017-02-26  Michael Albinus  <address@hidden>
+
+       Work on `tramp-completion-mode-p'
+
+       * etc/NEWS: Say that `tramp-completion-mode' is obsolete.
+
+       * lisp/net/tramp.el (tramp-completion-mode): Make it obsolete.
+       (tramp-completion-mode-p): Reintroduce the check for 'tab.
+
+2017-02-25  Tom Tromey  <address@hidden>
+
+       Use font-lock-doc-face in js-mode
+
+       Bug#25858:
+       * lisp/progmodes/js.el (js-font-lock-syntactic-face-function): New
+       defun.
+       (js-mode): Use it.
+       * test/lisp/progmodes/js-tests.el (js-mode-doc-comment-face): New
+       test.
+
+2017-02-25  Noam Postavsky  <address@hidden>
+
+       Don't use IP 0.0.0.0 for package test server (Bug#22582)
+
+       * test/lisp/emacs-lisp/package-resources/package-test-server.py: Set
+       'server_address' when port number is given on the command line.  Print
+       IP and port number as a URL, and flush it after printing.
+       * test/lisp/emacs-lisp/package-tests.el:
+       (package-test-update-archives-async): Grab the whole URL from server
+       output.
+
+2017-02-25  Tom Tromey  <address@hidden>
+
+       Add more branch support to vc-dir
+
+       Bug#25859:
+       * lisp/vc/vc-dir.el (vc-dir-mode-map) Add "B" bindings.
+       * lisp/vc/vc.el (vc-revision-history): New defvar.
+       (vc-read-revision): Use vc-revision-history.
+       (vc-print-branch-log): New function.
+       * doc/emacs/maintaining.texi (VC Directory Commands): Document new
+       bindings.
+       * etc/NEWS: Mention new vc-dir bindings.
+
+2017-02-25  Alan Mackenzie  <address@hidden>
+
+       Allow for the :: operator in C++ "enum class" declarations.
+
+       * lisp/progmodes/cc-engine.el (c-backward-typed-enum-colon): Check for
+       "::".
+
+2017-02-25  Michael Albinus  <address@hidden>
+
+       Fix bug#25854
+
+       * lisp/net/tramp-sh.el (tramp-do-file-attributes-with-ls):
+       Simplify error handling for huge inodes.
+       (tramp-convert-file-attributes): Handle very huge inodes.  (Bug#25854)
+
+2017-02-25  Eli Zaretskii  <address@hidden>
+
+       Avoid leaving garbage on screen when using 'raise' display property
+
+       * src/xdisp.c (display_line): Reset voffset value of the iterator
+       when it hits ZV, to avoid "inheriting" it to glyph rows past ZV,
+       which then leaves stuff on screen that needs to be cleared by
+       redisplay.  (Bug#25855)
+
+2017-02-25  Eli Zaretskii  <address@hidden>
+
+       Fix doc strings in info.el
+
+       * lisp/info.el (Info-selection-hook, Info-mode-hook)
+       (Info-edit-mode-hook): Doc fixes.  (Bug#25794)
+
+2017-02-25  Eli Zaretskii  <address@hidden>
+
+       Fix doc string of 'posn-at-point'
+
+       * src/keyboard.c (Fposn_at_point): Clarify the doc string.
+       (Bug#25796)
+
+2017-02-25  Peder O. Klingenberg  <address@hidden>
+
+       New option -u / --suppress-output to emacsclient
+
+       * lib-src/emacsclient.c (print_help_and_exit, longopts)
+       (decode_options, main): Implement new option --suppress-output / -u to
+       suppress printing of eval-results.
+       * doc/emacs/misc.texi (emacsclient Options): Document the new
+       "--suppress-output/-u" options.
+       * etc/NEWS: Mention the new options.
+
+2017-02-25  Noam Postavsky  <address@hidden>
+
+       Fix scrolling with partial line corner case (Bug#25792)
+
+       Also fix up the scrolling tests so that they don't make so many
+       assumptions about the current window configuration.
+
+       * src/xdisp.c (try_window): Take partial line height into account when
+       comparing cursor position against scroll margin.
+
+       * test/manual/scroll-tests.el (scroll-tests-with-buffer-window): Add
+       HEIGHT argument, to allow setting up window with exact height and
+       partial line.
+       (scroll-tests-display-buffer-with-height): New display-buffer action
+       function.
+       (scroll-tests-scroll-margin-over-max):
+       (scroll-tests--scroll-margin-whole-window): Pass HEIGHT to
+       `scroll-tests--scroll-margin-whole-window'.
+       (scroll-tests-conservative-show-trailing-whitespace): New test.
+       (scroll-tests-scroll-margin-negative): Fix line counting.
+       (scroll-tests--point-in-middle-of-window-p): Set window height
+       properly.
+
+2017-02-25  Tom Tromey  <address@hidden>
+
+       Fix indentation error in js.el
+
+       * lisp/progmodes/js.el (js--indent-in-array-comp): Wrap forward-sexp
+       call in condition-case.
+       * test/lisp/progmodes/js-tests.el (js-mode-indentation-error): New
+       test.
+
+2017-02-24  Tom Tromey  <address@hidden>
+
+       add "async" and "await" keywords
+
+       * lisp/progmodes/js.el (js--keyword-re): Add async, await.
+
+2017-02-24  Stefan Monnier  <address@hidden>
+
+       Use cl-print for Edebug and EIEIO
+
+       * lisp/emacs-lisp/edebug.el (edebug-prin1-to-string): Use cl-print.
+       (edebug-prin1, edebug-print): Remove.
+
+       * lisp/emacs-lisp/eieio.el (object-print): Declare obsolete.
+       (cl-print-object): Add a method for EIEIO objects.
+       (eieio-edebug-prin1-to-string): Delete.
+       (edebug-prin1-to-string): Don't advise any more.
+
+       * lisp/emacs-lisp/eieio-datadebug.el (data-debug-insert-object-button):
+       Replace `object-print' -> `cl-prin1-to-string'.
+
+2017-02-24  Stefan Monnier  <address@hidden>
+
+       Fix left over uses of `call-next-method'
+
+       * lisp/cedet/semantic/db-global.el (object-print):
+       * lisp/cedet/semantic/db.el (object-print): Use `cl-call-next-method'.
+
+2017-02-24  Stefan Monnier  <address@hidden>
+
+       Minor redisplay optimisations
+
+       * src/frame.c (Ficonify_frame): No need to redisplay everything.
+
+       * src/xdisp.c (overlay_arrows_changed_p): Add `set_redisplay' argument.
+       (redisplay_internal): Use it to avoid redisplaying everything.
+       (try_window_id): Use it keep the same behavior as before.
+
+2017-02-24  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-print.el: New file
+
+       * lisp/emacs-lisp/nadvice.el (advice--where): New function.
+       (advice--make-docstring): Use it.
+
+       * src/print.c (print_number_index): Don't declare here any more.
+       (Fprint_preprocess): New function.
+
+       * test/lisp/emacs-lisp/cl-print-tests.el: New file.
+
+2017-02-24  Peder O. Klingenberg  <address@hidden>
+
+       Make calc's least common multiple positive (bug#25255)
+
+       * lisp/calc/calc-comb.el (calcFunc-lcm): Return absolute value.
+       * doc/misc/calc.texi (Combinatorial Functions): Update for the above.
+
+2017-02-24  Tino Calancha  <address@hidden>
+
+       Documentation fix in elisp reference manual
+
+       * doc/lispref/macros.texi (Defining Macros): Drop redundant mention
+       on 'declare' forms (Bug#25846).
+
+2017-02-24  Gemini Lasswell  <address@hidden>
+
+       Support read syntax for circular objects in Edebug (Bug#23660)
+
+       * lisp/emacs-lisp/edebug.el (edebug-read-special): New name
+       for edebug-read-function. Handle the read syntax for circular
+       objects.
+       (edebug-read-objects): New variable.
+       (edebug-read-and-maybe-wrap-form1): Reset edebug-read-objects.
+
+       * src/lread.c (Fsubstitute_object_in_subtree): Make
+       substitute_object_in_subtree into a Lisp primitive.
+
+2017-02-24  Lixin Chin  <address@hidden>  (tiny change)
+
+       Add Conference to the list of valid bibtex entry types
+
+       * lisp/textmodes/bibtex.el (bibtex-BibTeX-entry-alist):
+       Add Conference as a duplicate of InProceedings.  (Bug#25143)
+
+2017-02-23  Glenn Morris  <address@hidden>
+
+       * lisp/comint.el (comint-password-prompt-regexp): Add SUDO. (Bug#24817)
+
+2017-02-23  Glenn Morris  <address@hidden>
+
+       Small dunnet score file improvements
+
+       * lisp/play/dunnet.el (dun-log-file): Switch to per-user default.
+       (dun-do-logfile): Handle non-existing score file.
+
+2017-02-23  Glenn Morris  <address@hidden>
+
+       * lisp/play/dunnet.el (dun-help): Doc fix.
+
+2017-02-23  Mark Oteiza  <address@hidden>
+
+       Declare dun-line and dun-line-list
+
+       Previously, there were free variables 'line' and 'line-list'.
+       * lisp/play/dunnet.el (dun-line, dun-line-list): New variables.
+       (dun-press, dun-vparse, dun-parse2, dun-unix-parse, dun-batch-parse):
+       (dun-batch-parse2, dun-batch-loop, dun-batch-dos-interface):
+       (dun-batch-unix-interface): Use them.
+
+2017-02-23  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-02-16 xbinary-io: rename from xsetmode
+       2017-02-15 xsetmode: new module
+       * lib-src/etags.c (main):
+       * lib-src/hexl.c (main):
+       * src/emacs.c (main) [MSDOS]:
+       Prefer set_binary_mode to the obsolescent SET_BINARY.
+       * lib/binary-io.c, lib/binary-io.h: Copy from gnulib.
+
+2017-02-23  Paul Eggert  <address@hidden>
+
+       hexl: handle large files and I/O errors
+
+       * lib-src/hexl.c: Include inttypes.h, for PRIxMAX etc.
+       Do not include ctype.h, as the code no longer uses isdigit.
+       (DEFAULT_GROUPING, un_flag, iso_flag, group_by): Now local to ‘main’.
+       (DEFAULT_BASE, endian): Remove; was not really used.
+       (usage): Remove; now done by ‘main’, as that’s simpler.
+       (progname): Now static.
+       (output_error, hexchar): New functions.
+       (main): Use them.  Simplify.  Remove "-oct", "-big-endian", and
+       "-little-endian" options, as they did not work and were not used.
+       Use SET_BINARY only on stdin, and fopen with "rb" otherwise.
+       Use SET_BINARY only once on stdout.
+       Do not assume file offsets fit in ‘long’.
+       If an I/O error occurs, report it and exit with nonzero status.
+
+2017-02-23  Eli Zaretskii  <address@hidden>
+
+       Avoid quitting inside a critical section on MS-Windows
+
+       * src/w32uniscribe.c (uniscribe_list_family):
+       * src/w32font.c (w32font_list_family, w32font_text_extents)
+       (w32font_list_internal, w32font_match_internal)
+       (list_all_matching_fonts): Prevent quitting while these functions
+       cons lists of fonts, to avoid leaving the critical section taken
+       by the main thread, which will then cause any other thread
+       attempting to enter the critical section to hang.  (Bug#25279)
+
+2017-02-22  Dmitry Gutov  <address@hidden>
+
+       Use revision-completion-table in vc-retrieve-tag
+
+       * lisp/vc/vc.el (vc-retrieve-tag): Use the
+       revision-completion-table command for completion (bug#25710).
+
+2017-02-22  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-generic.el (cl--generic-typeof-types): Add `atom'
+
+       remove entries whose car can't be returned by type-of.
+       (cl--generic-all-builtin-types): New var.
+       (cl-generic-generalizers): Use it to avoid requiring
+       extra entries in cl--generic-typeof-types.
+
+2017-02-22  Noam Postavsky  <address@hidden>
+
+       Find macro binding for symbol-bound macros too (Bug#6848)
+
+       There are 2 ways to bind a macro: with global-set-key or
+       kmacro-bind-to-key.  The former binds a key to a symbol, while the
+       latter binds to a lambda.  In 2010-03-03 "Fix keyboard macro key
+       lookup (Bug#5481)", `insert-kbd-macro' was fixed to detect the lambda
+       case, but broke the symbol case.
+
+       * lisp/macros.el (insert-kbd-macro): Also check for bindings of
+       MACRONAME.
+
+2017-02-22  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Fix last change
+
+2017-02-22  Juri Linkov  <address@hidden>
+
+       * lisp/isearch.el (lazy-highlight-max-at-a-time): Doc fix (bug#21092).
+
+2017-02-22  Juri Linkov  <address@hidden>
+
+       * lisp/isearch.el (isearch-lazy-highlight): New choice ‘all-windows’.
+
+       (isearch-lazy-highlight-update): Check it to decide whether to apply
+       overlays only on the selected window.
+
+       * lisp/follow.el (follow-mode): Set isearch-lazy-highlight to 
‘all-windows’.
+       (Bug#17453, bug#21092)
+
+2017-02-22  Paul Eggert  <address@hidden>
+
+       Minor weak hash table performance tweaks
+
+       * src/fns.c (make_hash_table): Omit unnecessary assignment to
+       h->next_weak when the hash table is not weak.
+       (copy_hash_table): Put the copy next to the original in the
+       weak_hash_tables list, as this should have better locality
+       when scanning the weak hash tables.
+
+2017-02-22  Paul Eggert  <address@hidden>
+
+       Use float instead of Lisp_Object for rehash_size
+
+       * src/alloc.c (purecopy_hash_table):
+       * src/fns.c (maybe_resize_hash_table, Fmake_hash_table):
+       (Fhash_table_rehash_size):
+       * src/lisp.h (struct Lisp_Hash_Table.rehash_size):
+       The rehash_size member of struct Lisp_Hash_Table is now a
+       float, not a Lisp_Object.
+       * src/alloc.c (purecopy_hash_table): Assign members in order.
+       * src/fns.c (make_hash_table): Use EMACS_INT for size and
+       float for rehash_size, instead of Lisp_Object for both.
+       All callers changed.
+       * src/lisp.h (DEFAULT_REHASH_SIZE): Now float, not double,
+       and 1 smaller.
+       * src/print.c (print_object): Simplify by calling
+       Fhash_table_rehash_size and Fhash_table_rehash_threshold.
+       Avoid unnecessary NILP.
+
+2017-02-22  Paul Eggert  <address@hidden>
+
+       Use ptrdiff_t instead of Lisp_Object for collision
+
+       * src/alloc.c (purecopy_hash_table): Assign, don’t purecopy.
+       * src/fns.c (set_hash_next_slot, set_hash_index_slot): Hash index
+       arg is now ptrdiff_t index (or -1 if empty), not Lisp_Object
+       integer (or Qnil if empty).  All callers changed.
+       (larger_vecalloc): New static function.
+       (larger_vector): Use it.
+       (HASH_NEXT, HASH_INDEX): Move here from lisp.h.  Return ptrdiff_t
+       index (or -1) not Lisp_Object integer (or Qnil).  All callers changed.
+       * src/fns.c (make_hash_table, maybe_resize_hash_table, hash_lookup)
+       (hash_put, hash_remove_from_table, hash_clear, sweep_weak_table):
+       * src/profiler.c (evict_lower_half, record_backtrace):
+       -1, not nil, is now the convention for end of collision list.
+       * src/fns.c (maybe_resize_hash_table): Avoid double-initialization
+       of the free list.  Reallocate H->next last, in case other
+       reallocations exhaust memory.
+       * src/lisp.h (struct Lisp_Hash_Table): ‘next_free’ is now
+       ptrdiff_t, not Lisp_Object.  Adjust commentary for ‘next’ and
+       ‘index’, which no longer contain nil.
+       (HASH_NEXT, HASH_INDEX): Move to src/fns.c.
+
+2017-02-22  Paul Eggert  <address@hidden>
+
+       Hash table threshold is now float, not double
+
+       Change default from 0.8 to 0.8125 so it fits in float without
+       rounding glitches.
+       * doc/lispref/hash.texi (Creating Hash):
+       * doc/lispref/objects.texi (Hash Table Type):
+       * etc/NEWS:
+       Document change.
+       * src/fns.c (make_hash_table, maybe_resize_hash_table)
+       (Fmake_hash_table): Threshold is now float, not double.
+       Be consistent about how this is rounded.
+       * src/lisp.h (struct Lisp_Hash_Table.rehash_threshold):
+       Change back to float, now that the other code rounds consistently.
+       (DEFAULT_REHASH_THRESHOLD): Now float 0.8125 instead of double 0.8.
+
+2017-02-22  Juri Linkov  <address@hidden>
+
+       Avoid flicker in lazy-highlight by doing all updates without redisplay.
+
+       * lisp/isearch.el (lazy-highlight-max-at-a-time):
+       Change default value from 20 to nil to not trigger redisplay
+       between updating iterations.
+       (lazy-highlight-cleanup): New arg ‘procrastinate’ to not remove
+       overlays when non-nil.
+       (isearch-lazy-highlight-new-loop): Call lazy-highlight-cleanup
+       with non-nil second arg when the search string is not empty.
+       Run timer with isearch-lazy-highlight-start instead of
+       isearch-lazy-highlight-update.
+       (isearch-lazy-highlight-start): New function. (Bug#25751)
+
+2017-02-21  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/autoload.el (make-autoload): Support cl-defgeneric
+
+       * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Tweak for autoloading.
+
+2017-02-21  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Fix duplication
+
+       which resulted in incomplete list of parents in one copy of the
+       cl-structure-class class.
+
+2017-02-21  Glenn Morris  <address@hidden>
+
+       Tweak recent custom-reevaluate-setting change
+
+       * lisp/custom.el (custom-reevaluate-setting):
+       Tweak previous change to avoid font-lock init issues.
+
+2017-02-21  Glenn Morris  <address@hidden>
+
+       Ensure delayed-init custom variables get marked special
+
+       * lisp/custom.el (custom-reevaluate-setting):
+       If the variable has never been set, defvar it.  (Bug#25770)
+
+2017-02-21  Mark Oteiza  <address@hidden>
+
+       Turn on lexical-binding in dunnet.el
+
+       * lisp/play/dunnet.el: Turn on lexical-binding.  Re-instate lexical
+       byte compile warnings.
+
+2017-02-21  Mark Oteiza  <address@hidden>
+
+       Make dunnet insertion functions n-ary
+
+       * lisp/play/dunnet.el (dun-mprinc, dun-mprincl, dun-minsert):
+       (dun-minsertl, dun-batch-mprinc, dun-batch-mprincl): Change to accept
+       any number of arguments.
+       (dun-parse, dun-describe-room, dun-quit, dun-inven, dun-shake):
+       (dun-take, dun-go, dun-move, dun-press, dun-score):
+       (dun-compile-save-out, dun-do-logfile): Collect arguments from
+       multiple insertion calls into less calls with more args.
+
+2017-02-21  Katsumi Yamaoka  <address@hidden>
+
+       message-goto-body-1: Fix regexp so as not to match multi-line
+
+       * lisp/gnus/message.el (message-goto-body-1):
+       Fix regexp so as not to match multi-line.
+
+2017-02-20  Noam Postavsky  <address@hidden>
+
+       Simplify cl-get using `plist-member'
+
+       * lisp/emacs-lisp/cl-extra.el (cl-get, cl-getf, cl--set-getf): Use
+       `plist-member' instead of explicit loop.
+       * test/lisp/emacs-lisp/cl-extra-tests.el: New tests.
+
+2017-02-20  Paul Eggert  <address@hidden>
+
+       Verify xwidget USE_LSB_TAG assumption
+
+       * src/xwidget.c (Fxwidget_webkit_execute_script):
+       Add verification.  Problem reported by Andreas Schwab (Bug#25816#8).
+
+2017-02-20  Stefan Monnier  <address@hidden>
+
+       * src/insdel.c (make_gap): Improve comment.
+
+2017-02-20  Mark Oteiza  <address@hidden>
+
+       Do not use switch-to-buffer for working in a temp buffer
+
+       * lisp/play/dunnet.el (dunnet): Use pop-to-buffer-same-window instead,
+       cf. Bug#22244.
+       (dun-load-d, dun-eval, dun-save-game, dun-do-logfile): Use
+       with-temp-buffer instead.
+
+2017-02-20  Mark Oteiza  <address@hidden>
+
+       Make dun-room-shorts a defconst
+
+       * lisp/play/dunnet.el (dun-room-shorts): Make defconst and collect
+       initial value into the declaration.
+       (dun-space-to-hyphen): Remove.
+
+2017-02-20  Paul Eggert  <address@hidden>
+
+       Port xwidget to -DCHECK_LISP_OBJECT_TYPE
+
+       * src/xwidget.c (webkit_javascript_finished_cb)
+       (Fxwidget_webkit_execute_script): Don't assume Lisp_Object is an
+       integer.  This fix is just a hack; I’ll file a bug report about
+       the underlying problem.
+
+2017-02-20  Katsumi Yamaoka  <address@hidden>
+
+       mm-decode.el: Simplify regexp used to search html meta tag
+
+       * lisp/gnus/mm-decode.el (mm-add-meta-html-tag, mm-shr):
+       Simplify regexp used to search html meta tag.
+
+2017-02-20  Katsumi Yamaoka  <address@hidden>
+
+       mm-shr: Ignore coding-system `ascii'
+
+       * lisp/gnus/mm-decode.el (mm-shr): Ignore coding-system `ascii'.
+
+2017-02-20  Tom Tromey  <address@hidden>
+
+       vc-log-outgoing fixes for git; add binding to vc-dir
+
+       * lisp/vc/vc-dir.el (vc-dir-mode-map): Bind "O" to vc-log-outgoing.
+       * lisp/vc/vc-git.el (vc-git-log-outgoing, vc-git-log-incoming): Use
+       async execution.
+       (vc-git-log-view-mode): Also truncate lines for log-outgoing and
+       log-incoming.
+       * lisp/vc/vc.el (vc-log-incoming, vc-log-outgoing): Don't pass nil
+       as remote-location argument.
+
+2017-02-20  Tom Tromey  <address@hidden>
+
+       Remove stale comments from vc-git and vc-hg
+
+       * lisp/vc/vc-git.el (vc-git-retrieve-tag): Remove comment.
+       * lisp/vc/vc-hg.el (vc-hg-retrieve-tag): Remove comment.
+
+2017-02-20  Mark Oteiza  <address@hidden>
+
+       Remove member clone
+
+       * lisp/play/dunnet.el (dun-answer): Use member instead.
+       (dun-members): Remove.
+
+2017-02-20  Mark Oteiza  <address@hidden>
+
+       Prefix global var
+
+       * lisp/play/dunnet.el (room): Rename to dun-room.
+       (dun-messages, dunnet, dun-describe-room, dun-drop, dun-move):
+       (dun-restore, dun-do-logfile, dun-batch-loop): Use new name.
+
+2017-02-20  Mark Oteiza  <address@hidden>
+
+       Replace nested ifs with cond
+
+       * lisp/play/dunnet.el (dun-messages, dun-describe-room, dun-examine):
+       (dun-eat, dun-put-objs, dun-turn, dun-press, dun-ls, dun-cd): Use when
+       and cond where appropriate.
+       (dun-sauna-heat): Accept sauna level as an argument.  Use cond.
+       (dun-take): Use null and dun-mprincl.
+       (dun-inven-weight, dun-load-d): Reformat.
+       (dun-remove-obj-from-inven, dun-remove-obj-from-room): Nix setq to nil.
+
+2017-02-19  Paul Eggert  <address@hidden>
+
+       Fix glitches in recent hash table changes
+
+       * src/fns.c (Fmake_hash_table): Simplify the machine code slightly
+       by using 0 rather than -1.
+       * src/lisp.h (struct Lisp_Hash_Table.pure): Now bool rather
+       than a bitfield, for speed (the bitfield did not save space).
+       (struct Lisp_Hash_Table.rehash_threshold): Now double rather than
+       float, since the float caused unwanted rounding errors, e.g.,
+       (hash-table-rehash-threshold (make-hash-table)) yielded
+       0.800000011920929 instead of the correct 0.8.
+
+2017-02-19  Stefan Monnier  <address@hidden>
+
+       * src/insdel.c (make_gap): Increase enough to avoid O(N^2) behavior.
+
+2017-02-19  Eli Zaretskii  <address@hidden>
+
+       Avoid aborts during loadup
+
+       * src/emacs-module.c (syms_of_module):
+       * src/image.c (xpm_make_color_table_h): Update calls to
+       make_hash_table to adjust to a recent change in fns.c.
+       * src/fns.c (make_hash_table):
+       * src/lisp.h (make_hash_table): 4th arg is now of type double.
+
+2017-02-19  Michael Albinus  <address@hidden>
+
+       Rework connection local variables
+
+       For connection local variables interface, `class' is renamed
+       to `profile'.  All arguments `criteria' are a plist now.
+
+       * doc/lispref/variables.texi (Connection Local Variables):
+       Rewrite.
+
+       * lisp/files-x.el (connection-local-profile-alist): Rename
+       from `connection-local-class-alist'.  Adapt docstring.
+       (connection-local-criteria-alist): Adapt docstring.
+       (connection-local-normalize-criteria): New defun.
+       (connection-local-get-profiles): Rename from
+       `connection-local-get-classes'.  Rewrite.
+       (connection-local-set-profiles): Rename from
+       `connection-local-set-classes'.  Rewrite.
+       (connection-local-get-profile-variables): Rename from
+       `connection-local-get-class-variables'.  Rewrite.
+       (connection-local-set-profile-variables): Rename from
+       `connection-local-set-class-variables'.  Rewrite.
+       (hack-connection-local-variables)
+       (hack-connection-local-variables-apply)): Rewrite.
+       (with-connection-local-profiles): Rename from
+       `ith-connection-local-classes'.  Rewrite.
+
+       * lisp/net/tramp.el (tramp-set-connection-local-variables):
+       Compute criteria.
+
+       * lisp/net/tramp-cmds.el (tramp-bug):
+       Use `connection-local-profile-alist'.
+
+       * test/lisp/files-x-tests.el (files-x-test--variables1)
+       (files-x-test--variables2, files-x-test--variables3)
+       (files-x-test--variables4, files-x-test--criteria1)
+       (files-x-test--criteria2): Make them a defconst.
+       (files-x-test--application)
+       (files-x-test--another-application, files-x-test--protocol)
+       (files-x-test--user, files-x-test--machine): New defconst.
+       (files-x-test--criteria): New defvar.
+       (files-x-test--criteria3): Remove.
+       (files-x-test-connection-local-set-profile-variables):
+       Rename from `files-x-test-connection-local-set-class-variables'.
+       Rewrite.
+       (files-x-test-connection-local-set-profiles): Rename from
+       `files-x-test-connection-local-set-classes'.  Rewrite.
+       (files-x-test-hack-connection-local-variables-apply)  Rewrite.
+       (files-x-test-with-connection-local-profiles): Rename from
+       `files-x-test-with-connection-local-classes'.  Rewrite.
+
+2017-02-19  Mark Oteiza  <address@hidden>
+
+       Set up combination and random item location
+
+       * lisp/play/dunnet.el (dun-combination): Make defconst.
+       (tloc, tcomb): Remove.  Replace with a top-level form.
+
+2017-02-19  Mark Oteiza  <address@hidden>
+
+       Replace movement variables with an alist and accessor
+
+       * lisp/play/dunnet.el (north, south, east, west, northeast, southeast):
+       (northwest, southwest, up, down, in, out): Remove.
+       (dun-movement-alist): New constant.
+       (dun-movement): New function.
+       (dun-n, dun-s, dun-e, dun-w, dun-ne, dun-se, dun-nw, dun-sw, dun-up):
+       (dun-down, dun-in, dun-out): Use a symbol for indicating movement.
+       (dun-move, dun-special-move): Translate movement symbol to an
+       enumeration.
+
+2017-02-19  Mark Oteiza  <address@hidden>
+
+       Change top-level setq forms to defvar or defconst
+
+       Also collect some code onto fewer lines and reindent.
+       * lisp/play/dunnet.el (dun-visited, dun-current-room, dun-exitf):
+       (dun-badcd, dun-computer, dun-floppy, dun-key-level, dun-hole):
+       (dun-correct-answer, dun-lastdir, dun-numsaves, dun-jar, dun-dead):
+       (room, dun-numcmds, dun-wizard, dun-endgame-question, dun-logged-in):
+       (dungeon-mode, dun-unix-verbs, dun-dos-verbs, dun-batch-mode):
+       (dun-cdpath, dun-cdroom, dun-uncompressed, dun-ethernet):
+       (dun-restricted, dun-ftptype, dun-endgame, dun-rooms):
+       (dun-light-rooms, dun-verblist, dun-inbus, dun-nomail, dun-ignore):
+       (dun-mode, dun-sauna-level, north, south, east, west, northeast):
+       (southeast, northwest, southwest, up, down, in, out, dungeon-map):
+       (dun-objnames, obj-special, dun-room-objects, dun-room-silents):
+       (dun-inventory, dun-objects, dun-object-lbs, dun-object-pts):
+       (dun-objfiles, dun-perm-objects, dun-physobj-desc, dun-permobj-desc):
+       (dun-diggables, dun-room-shorts, dun-endgame-questions): Change
+       declaration to use defvar or defconst.
+       (dun-doverb, dun-vparse, dun-vparse2, dun-batch-parse):
+       (dun-batch-parse2): Omit the dun- prefix from arguments dun-ignore
+       dun-verblist.  Those are now constants and the byte compiler doesn't
+       allow defconsts in lambda lists.
+
+2017-02-19  Mark Oteiza  <address@hidden>
+
+       Move all dunnet globals up to the top
+
+       * lisp/play/dunnet.el: Adjust comments to reflect moved forms.
+       (dun-visited, dun-current-room, dun-exitf):
+       (dun-badcd, dun-computer, dun-floppy, dun-key-level, dun-hole):
+       (dun-correct-answer, dun-lastdir, dun-numsaves, dun-jar, dun-dead):
+       (room, dun-numcmds, dun-wizard, dun-endgame-question, dun-logged-in):
+       (dungeon-mode, dun-unix-verbs, dun-dos-verbs, dun-batch-mode):
+       (dun-cdpath, dun-cdroom, dun-uncompressed, dun-ethernet):
+       (dun-restricted, dun-ftptype, dun-endgame, dun-rooms):
+       (dun-light-rooms, dun-verblist, dun-inbus, dun-nomail, dun-ignore):
+       (dun-mode, dun-sauna-level, north, south, east, west, northeast):
+       (southeast, northwest, southwest, up, down, in, out, dungeon-map):
+       (dun-objnames, obj-special, dun-room-objects, dun-room-silents):
+       (dun-inventory, dun-objects, dun-object-lbs, dun-object-pts):
+       (dun-objfiles, dun-perm-objects, dun-physobj-desc, dun-permobj-desc):
+       (dun-diggables, dun-room-shorts, dun-endgame-questions): Move to the
+       top of the file, before any uses.
+
+2017-02-19  Michael Albinus  <address@hidden>
+
+       Fix bug#25788
+
+       * lisp/net/tramp.el (tramp-autoload-file-name-handler):
+       Do not load tramp.el just for "/".  (Bug#25788)
+
+2017-02-19  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix fringe bitmap initialization on MS-Windows
+
+       * src/fringe.c (init_fringe_bitmap) [HAVE_NTGUI]: Fix initialization
+       of fb->bits.  (Bug#25673)
+
+2017-02-19  Stefan Monnier  <address@hidden>
+
+       Change type of `rehash_threshold' and `pure' fields in hash-tables
+
+       * src/lisp.h (struct Lisp_Hash_Table): Change type of
+       `rehash_threshold' and `pure' fields and move them after `count'.
+       * src/fns.c (make_hash_table): Change type of `rehash_threshold' and 
`pure'.
+       (Fmake_hash_table, Fhash_table_rehash_threshold):
+       * src/category.c (hash_get_category_set):
+       * src/xterm.c (syms_of_xterm):
+       * src/profiler.c (make_log):
+       * src/print.c (print_object):
+       * src/alloc.c (purecopy_hash_table, purecopy): Adjust accordingly.
+
+2017-02-19  Paul Eggert  <address@hidden>
+
+       Use 'char *FOO' instead of 'char* FOO'
+
+2017-02-19  Mark Oteiza  <address@hidden>
+
+       More json.el changes
+
+       * lisp/json.el (json-read-keyword, json-read-number, json-read-object):
+       (json-read-array): Just use = for char comparison.
+
+2017-02-18  Noam Postavsky  <address@hidden>
+
+       * lisp/woman.el (woman): Fix docstring prefix arg description.
+
+2017-02-18  Alan Mackenzie  <address@hidden>
+
+       Fix edebug-spec on c-lang-defvar.
+
+       This allows c-lang-defvars with the symbol 'dont-doc in the place of the
+       optional documentation to be instrumented for edebug.
+
+       lisp/progmodes/cc-langs.el (top-level): Amend the edebug-spec for
+       c-lang-defvar.
+       (c-opt-identifier-concat-key, c-decl-prefix-or-start-re): remove 
redundant
+       'dont-doc.
+
+2017-02-18  Lars Ingebrigtsen  <address@hidden>
+
+       Lists used as plists now have to be an even length
+
+       * lisp/net/eww.el (eww-size-text-inputs): `eww-form' isn't a plist.
+       (eww-process-text-input): Not here, either.
+
+2017-02-18  Michael Albinus  <address@hidden>
+
+       Unset `non-essential' in Tramp when not needed anymore
+
+       * doc/misc/trampver.texi:
+       * lisp/net/trampver.el: Change version to "2.3.2-pre".
+
+       * lisp/net/tramp-sh.el (tramp-maybe-open-connection):
+       Use `tramp-completion-mode-p'.
+
+       * lisp/net/tramp.el (tramp-file-name-handler): Unset `non-essential'
+       when file name doesn't match `tramp-completion-file-name-regexp'.
+
+2017-02-18  Eli Zaretskii  <address@hidden>
+
+       Automatically regenerate emacs.1 and *.rc files
+
+       * Makefile.in (CONFIG_STATUS_FILES_IN): New variable, lists
+       non-Makefile files produced by config.status.
+       ($(MAKEFILE_NAME)): Depend on $(CONFIG_STATUS_FILES_IN), so that
+       their targets are regenerated when the source changes.
+
+2017-02-18  Alan Mackenzie  <address@hidden>
+
+       Set the syntax table in AWK Mode.
+
+       This is a partial reversion of CC Mode commit on 2016-05-09 17:49:45 
+0000.
+       It fixes bug #25722.
+
+       lisp/progmodes/cc-mode.el (awk-mode): Explicitly set the syntax table.
+
+2017-02-18  Eli Zaretskii  <address@hidden>
+
+       Mention "editor" in Emacs man page header
+
+       * doc/man/emacs.1.in: Mention "editor" in the header line.
+       (Bug#25771, Bug#25779)
+
+2017-02-18  Göktuğ Kayaalp  <address@hidden>
+
+       Fix Turkish language environment setup
+
+       * lisp/language/european.el ("Turkish"): Fix a typo in Turkish
+       language setup.  (Bug#25763)
+
+2017-02-18  Rami Ylimäki  <address@hidden>
+
+       Support 24-bit direct colors on text terminals
+
+       * src/term.c (init_tty): Use 24-bit terminal colors if corresponding
+       foreground and background functions are present in terminal type
+       definition.
+       * src/tparam.h: Define prototype for tigetstr.
+
+       * lisp/term/tty-colors.el (tty-color-define): Convert color palette
+       index to pixel value on 16.7M color terminals.
+       (tty-color-24bit): New function to convert color palette index to
+       pixel value on 16.7M color terminals.
+       (tty-color-desc): Don't approximate colors on 16.7M color terminals.
+       * lisp/term/xterm.el (xterm-register-default-colors): Define all named
+       TTY colors on 16.7M color terminals.
+
+       * doc/misc/efaq.texi (Colors on a TTY): Add instructions on how to
+       enable direct color TTY mode.
+       * etc/NEWS: Mention direct color TTY mode and point to FAQ.
+
+2017-02-18  Rami Ylimäki  <address@hidden>
+
+       Remove unused TN_max_pairs field
+
+       * src/termchar.h (tty_display_info): Remove TN_max_pairs field,
+       describing maximum number of terminal background/foreground color pairs.
+       * src/term.c (tty_default_color_capabilities, tty_setup_colors)
+       (init_tty): Remove references to TN_max_pairs.
+
+2017-02-18  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of query-replace-from-to-separator
+
+       * doc/emacs/search.texi (Query Replace): Document the meaning of
+       the nil value of query-replace-from-to-separator.  (Bug#25482)
+
+2017-02-18  Eli Zaretskii  <address@hidden>
+
+       Document problems with nerd-fonts
+
+       * etc/PROBLEMS (fonts): Describe the potential problems with
+       nerd-fonts that cause slow display.  (Bug#25697)
+
+2017-02-18  Eli Zaretskii  <address@hidden>
+
+       Improve commentary for a recent change in keyboard.c
+
+       * src/keyboard.c (Fset__this_command_keys): Add a comment about
+       the magic 248 value.  (Bug#25612)
+
+2017-02-18  Eli Zaretskii  <address@hidden>
+
+       Avoid infloop in rect.el
+
+       * lisp/rect.el (rectangle--*-char): Avoid inflooping when called
+       with argument N whose absolute value is greater than 1.  (Bug#25773)
+
+2017-02-18  Eli Zaretskii  <address@hidden>
+
+       Remove annoying warnings about let-binding
+
+       * src/data.c (Fmake_variable_buffer_local, Fmake_local_variable):
+       Remove warnings about making symbols local while let-bound.
+       (Bug#25561)
+
+2017-02-18  Hong Xu  <address@hidden>
+
+       Avoid errors when flyspell-generic-check-word-predicate is a lambda.
+
+       * flyspell.el (flyspell-auto-correct-word, flyspell-word): Apply
+       functionp instead of fboundp on
+       flyspell-generic-check-word-predicate (Bug#25765).
+
+2017-02-18  Glenn Morris  <address@hidden>
+
+       Remove the build number from emacs-version variable
+
+       It's a largely internal detail that can confuse users.  (Bug#25590)
+       * lisp/version.el (emacs-build-number): New constant.
+       (emacs-version): Use emacs-build-number.
+       * lisp/loadup.el (top-level): When dumping, increment
+       emacs-build-number rather than emacs-version.
+       * src/emacs.c (emacs-version): Doc fix.
+       * doc/lispref/intro.texi (Version Info): Update emacs-version details.
+       Mention emacs-build-number.
+       * lisp/gnus/gnus-util.el (gnus-emacs-version):
+       * lisp/mail/emacsbug.el (report-emacs-bug):
+       * admin/admin.el (set-version): Update for emacs-version change.
+
+2017-02-18  Glenn Morris  <address@hidden>
+
+       Ensure that user-mail-address always has a value
+
+       * lisp/startup.el (user-mail-address): Initialize in the normal way.
+       (command-line): Reset user-mail-address if needed using
+       standard custom machinery.
+       * lisp/mail/feedmail.el (feedmail-fiddle-from):
+       * lisp/mail/rmail.el (rmail-unknown-mail-followup-to):
+       * lisp/mail/rmailsum.el (rmail-header-summary):
+       Simplify now that user-mail-address is always set.
+
+2017-02-18  Mark Oteiza  <address@hidden>
+
+       Turn on lexical-binding in ruby-mode
+
+       * lisp/progmodes/ruby-mode.el: Turn on lexical-binding.
+       (ruby-font-lock-syntax-table): Use make-syntax-table.
+       (ruby-mode): 'define-derived-mode' writes the keys for us.
+
+2017-02-18  Mark Oteiza  <address@hidden>
+
+       Turn on lexical-binding in elint.el
+
+       * lisp/emacs-lisp/elint.el: Quote entry point commands in commentary.
+       (elint-running, elint-current-pos): Move these dynamic vars to toward
+       the top of the file.
+       (elint-check-quote-form): Ignore unused argument.
+       (elint-check-conditional-form): Remove unused binding.
+
+2017-02-18  Gemini Lasswell  <address@hidden>
+
+       * lisp/emacs-lisp/subr-x.el (if-let*): Fix Edebug spec (Bug#24748)
+
+2017-02-18  Mark Oteiza  <address@hidden>
+
+       Enable erc-accidental-paste-threshold-seconds by default
+
+       * lisp/erc/erc.el (erc-accidental-paste-threshold-seconds): Set
+       default to 0.2 (Bug#25709).
+
+2017-02-17  Michal Nazarewicz  <address@hidden>
+
+       Fix build failure caused by ‘Generate upcase and downcase tables from 
Unicode’
+
+       The [5ec3a584: Generate upcase and downcase tables from Unicode data]
+       commit broke bootstrap from a truly clean tree (e.g. a fresh clone or
+       one created with ‘make extraclean’), see
+       <http://hydra.nixos.org/build/48774928>.
+
+       The failure was caused by characters.el trying to read Unicode
+       property tables which aren’t available so early in the build process.
+
+       Wrap the part that requires Unicode property tables in a condition
+       checking if those are available.  If they aren’t they case and syntax
+       tables won’t be fully set but later on, the characters.el file will be
+       evaluated again and this time with Unicode properties available so
+       final Emacs ends up with the exact same case and syntax tables.
+
+2017-02-17  Katsumi Yamaoka  <address@hidden>
+
+       mm-add-meta-html-tag: Improve regexp
+
+       * lisp/gnus/mm-decode.el (mm-add-meta-html-tag):
+       Improve regexp to search html meta tag.
+
+2017-02-17  Katsumi Yamaoka  <address@hidden>
+
+       mm-shr: Prefer charset specified in html meta tag
+
+       * lisp/gnus/mm-decode.el (mm-shr): Prefer charset specified in html
+       meta tag than mail-parse-charset in the case there is no charset spec
+       in MIME header.
+
+2017-02-17  Glenn Morris  <address@hidden>
+
+       Stop duplicating some custom-types in message.el
+
+       * lisp/gnus/message.el (user-mail-address, user-full-name):
+       No need to re-specify custom-type.
+
+2017-02-17  Glenn Morris  <address@hidden>
+
+       Whitespace trivia in dunnet.el
+
+       * lisp/play/dunnet.el (dun-special-object, dun-put-objs)
+       (dun-rlogin-endgame): Whitespace trivia.
+
+2017-02-17  Glenn Morris  <address@hidden>
+
+       Explicit error on changing case of negative integers
+
+       * src/casefiddle.c (casify_object): Reject negative integers:
+       Emacs characters are positive integers.  (Bug#25684)
+
+2017-02-17  Dmitry Gutov  <address@hidden>
+
+       Fix buffers update in vc-retrieve-tag
+
+       * lisp/vc/vc.el (vc-retrieve-tag): When the granularity is
+       `repository', use the repository root and pass it to
+       vc-resynch-buffer (bug#25714).
+
+2017-02-16  Paul Eggert  <address@hidden>
+
+       * src/buffer.h: Fix indenting.
+
+2017-02-16  Paul Eggert  <address@hidden>
+
+       Add sanity checks for Bswitch hash tables
+
+       * src/bytecode.c (exec_byte_code) [BYTE_CODE_SAFE]:
+       Check that operand is a hash table and hashes to ints.
+
+2017-02-16  Paul Eggert  <address@hidden>
+
+       * src/keyboard.c (read_key_sequence): Fix integer-overflow glitch.
+
+2017-02-16  Vibhav Pant  <address@hidden>
+
+       bytecomp.el: Avoid unnecessary calculation for jump table addresses.
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode): Don't do
+         redundant operations while calculating the correct jump addresses
+         from TAGs in jump tables.
+
+2017-02-16  Mark Oteiza  <address@hidden>
+
+       Minor changes in json.el
+
+       * lisp/json.el (json-advance): Simpler docstring.
+       (json-read-escaped-char): Use xdigit subform in rx expression.
+       (json-read-string): Just use = for char comparison.
+
+2017-02-16  Mark Oteiza  <address@hidden>
+
+       Don't expand body inside a let-binding when there are no bindings
+
+       * lisp/emacs-lisp/pcase.el (pcase-codegen): Only let-bind if VARS
+       is non-nil.
+
+2017-02-16  Glenn Morris  <address@hidden>
+
+       Handle user-mail-address being the empty string
+
+       * lisp/mail/feedmail.el (feedmail-fiddle-from):
+       * lisp/mail/rmail.el (rmail-unknown-mail-followup-to):
+       * lisp/mail/rmailsum.el (rmail-header-summary):
+       Belated update for 2002-09-29 startup.el change, 680ebfa, where
+       the value of user-mail-address during initialization was changed
+       from nil to the empty string.
+
+2017-02-15  Michael Albinus  <address@hidden>
+
+       Continue to fix bug#25607
+
+       * lisp/ido.el (ido-complete): Let-bind `non-essential' to nil.
+       (ido-file-name-all-completions-1): Do not bind `non-essential'.
+
+       * lisp/net/tramp.el: (tramp-completion-file-name-handler):
+       Improve autoloaded version.
+       (tramp-completion-file-name-handler): Remove old compat code.
+       Check only for `tramp-completion-mode-p'.
+       (tramp-completion-mode-p): Autoload.  Do not check any longer
+       for `last-input-event'.
+       (tramp-completion-handle-expand-file-name): Simplify.  (Bug#25607)
+
+2017-02-15  Michal Nazarewicz  <address@hidden>
+
+       casing: don’t assume letters are *either* upper- or lower-case  
(bug#24603)
+
+       A compatibility digraph characters, such as Dž, are neither upper- nor
+       lower-case.  At the moment however, those are reported as upper-case¹
+       despite the fact that they change when upper-cased.
+
+       Stop checking if a character is upper-case before trying to up-case it
+       so that title-case characters are handled correctly.  This fixes one of
+       the issues mentioned in bug#24603.
+
+       ¹ Because they change when converted to lower-case.  Notice an asymmetry
+         in that for a character to be considered lower-case it must not be
+         upper-case (plus the usual condition of changing when upper-cased).
+
+       * src/buffer.h (upcase1): Delete.
+       (upcase): Change to upcase character unconditionally just like downcase
+       does it.  This is what upcase1 was.
+
+       * src/casefiddle.c (casify_object, casify_region): Use upcase instead
+       of upcase1 and don’t check !uppercasep(x) before calling upcase.
+
+       * src/keyboard.c (read_key_sequence): Don’t check if uppercase(x), just
+       downcase(x) and see if it changed.
+
+       * test/src/casefiddle-tests.el (casefiddle-tests--characters,
+       casefiddle-tests-casing): Update test cases which are now passing.
+
+2017-02-15  Michal Nazarewicz  <address@hidden>
+
+       Generate upcase and downcase tables from Unicode data  (bug#24603)
+
+       Use Unicode data to generate case tables instead of mostly repeating
+       them in lisp code.  Do that in a way which maps ‘Dz’ (and similar)
+       digraph to ‘dz’ when down- and ‘DZ’ when upcasing.
+
+       https://debbugs.gnu.org/cgi/bugreport.cgi?msg=89;bug=24603 lists all
+       changes to syntax table and case tables introduced by this commit.
+
+       * lisp/international/characters.el: Remove case-pairs defined with
+       explicit Lisp code and instead use Unicode character properties.
+
+       * test/src/casefiddle-tests.el (casefiddle-tests--characters,
+       casefiddle-tests-casing): Update test cases which are now working
+       as they should.
+
+2017-02-15  Michal Nazarewicz  <address@hidden>
+
+       Add tests for casefiddle.c  (bug#24603)
+
+       Fixes cases marked FIXME upcoming in followup commits.
+
+       * test/src/casefiddle-tests.el (casefiddle-tests-char-properties,
+       casefiddle-tests-case-table, casefiddle-tests-casing-character,
+       casefiddle-tests-casing, casefiddle-tests-casing-byte8,
+       casefiddle-tests-casing-byte8-with-changes): New tests.
+       (casefiddle-tests--test-casing): New helper function for runnig
+       some of the tests.
+
+2017-02-15  Michal Nazarewicz  <address@hidden>
+
+       oldXMenu: add missing #include <string.h>
+
+       Some of the files in oldXMenu use functions from string.h without
+       including that header which results in compile warnings:
+
+               ChgPane.c:46:5: warning: implicit declaration of function 
‘strlen’
+               ChgPane.c:46:20: warning: incompatible implicit declaration of
+                       built-in function ‘strlen’
+               ChgSel.c:62:2: warning: implicit declaration of function 
‘strlen’
+               ChgSel.c:62:17: warning: incompatible implicit declaration of 
built-in
+                       function ‘strlen’
+               Create.c:220:5: warning: implicit declaration of function 
‘strcmp’
+               InsPane.c:65:5: warning: implicit declaration of function 
‘strlen’
+               InsPane.c:65:20: warning: incompatible implicit declaration of
+                       built-in function ‘strlen’
+               InsSel.c:68:5: warning: implicit declaration of function 
‘strlen’
+               InsSel.c:68:20: warning: incompatible implicit declaration of 
built-in
+                       function ‘strlen’
+               InsSel.c:75:5: warning: implicit declaration of function 
‘strcmp’
+
+       Add the necessary ‘#include <string.h>’.
+
+       oldXMenu/ChgPane.c, oldXMenu/ChgSel.c, oldXMenu/Create.c, 
oldXMenu/InsPane.c,
+       oldXMenu/InsSel.c: add missing #include <string.h>
+
+2017-02-15  Paul Eggert  <address@hidden>
+
+       Fixup recent rmail patch
+
+       * lisp/mail/rmail.el (rmail-epa-decrypt): Remove unused local.
+
+2017-02-15  Richard Stallman  <address@hidden>
+
+       Rmail fix
+
+       * lisp/mail/rmail.el (rmail-epa-decrypt-1): Include the just-decrypted 
text
+       as element 4 of the value.
+       (rmail-epa-decrypt): Take the text to insert from that element.
+
+2017-02-15  Vibhav Pant  <address@hidden>
+
+       bytecomp-tests.el: Store all test forms in one constant.
+
+       * test/lisp/emacs-lisp/bytecomp-tests.el: Store all test expressions
+       in a single constant (byte-opt-testsuite-arith-data), add new forms
+       which generate lapcode with adjacent/redundant tags.
+
+2017-02-15  Glenn Morris  <address@hidden>
+
+       Small lispref edit
+
+       * doc/lispref/os.texi (User Identification):
+       Remove extraneous detail about user-mail-address.
+
+2017-02-15  Katsumi Yamaoka  <address@hidden>
+
+       Document fill-separate-heterogeneous-words-with-space (bug#25685)
+
+       * doc/lispref/text.texi (Filling):
+       Document fill-separate-heterogeneous-words-with-space (bug#25685).
+
+2017-02-15  Noam Postavsky  <address@hidden>
+
+       Test comment-multi-line = nil auto fill case too
+
+       * test/lisp/progmodes/js-tests.el (js-mode-auto-fill): Test with
+       `comment-multi-line' both nil and non-nil.
+       * lisp/newcomment.el (comment-multi-line): Mark safe if it's a
+       boolean.
+       * etc/NEWS: Mention that `js-mode' now sets `comment-multi-line'.
+
+2017-02-15  Katsumi Yamaoka  <address@hidden>
+
+       Don't delete leading and trailing space from CJK word (bug#25685)
+
+       * lisp/textmodes/fill.el (fill-delete-newlines):
+       Don't delete leading and trailing space from CJK word.
+       (fill-separate-heterogeneous-words-with-space):
+       New user option that controls it (bug#25685).
+
+2017-02-15  Juri Linkov  <address@hidden>
+
+       ‘M-s w RET word C-s’ repeats incremental search.
+
+       * lisp/isearch.el (isearch-new-nonincremental): New variable.
+       (with-isearch-suspended): Bind isearch-new-nonincremental to
+       isearch-nonincremental, and restore it afterwards.
+       (isearch-forward-exit-minibuffer, isearch-reverse-exit-minibuffer):
+       Set isearch-new-nonincremental to nil.  (Bug#25562)
+
+2017-02-14  Tom Tromey  <address@hidden>
+
+       Make vc-git detect conflict state for vc-dir
+
+       * lisp/vc/vc-git.el (vc-git-dir-status-state): New struct.
+       (vc-git-dir-status-update-file): New function.
+       (vc-git-after-dir-status-stage, vc-git-dir-status-goto-stage): Use
+       vc-git-dir-status-state; add 'ls-files-conflict state.
+       (vc-git-dir-status-files): Create a vc-git-dir-status-state.
+
+2017-02-14  Vibhav Pant  <address@hidden>
+
+       byte-opt: Replace merged tags in jump tables too. (bug#25716)
+
+       * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): While merging
+         adjacent tags, make sure that the old tag is replaced in all jump
+         tables, if any. This fixes the bytecode VM jumping to the wrong
+         address in compiled cond forms where the body of a clause was a loop
+         of any sort.
+
+2017-02-14  Glenn Morris  <address@hidden>
+
+       Remove overly broad element from default mail-dont-reply-to-names
+
+       * lisp/mail/mail-utils.el (mail-dont-reply-to):
+       Do not include just "user@" in mail-dont-reply-to-names, and simplify.
+       Ref: lists.gnu.org/archive/html/help-gnu-emacs/2017-02/msg00049.html
+       * lisp/gnus/message.el (message-dont-reply-to-names): Doc fix.
+       * doc/misc/message.texi (Wide Reply): Tiny fix re dont-reply-to-names.
+
+2017-02-14  Juri Linkov  <address@hidden>
+
+       * etc/NEWS: Mention query-replace-from-to-separator.  (Bug#25482)
+
+2017-02-13  Arash Esbati  <address@hidden>
+
+       Match all characters in optional argument of \documentclass
+
+       * lisp/textmodes/reftex.el (reftex-TeX-master-file): Match all
+       characters in optional argument containing name of the main file.
+
+2017-02-13  Vibhav Pant  <address@hidden>
+
+       Merge branch 'master' into feature/byte-switch
+
+2017-02-13  Katsumi Yamaoka  <address@hidden>
+
+       Fix non-ASCII text encoding (bug#25658)
+
+       * lisp/gnus/mm-bodies.el (mm-encode-body):
+       Fix non-ASCII text encoding (bug#25658).
+
+2017-02-13  Vibhav Pant  <address@hidden>
+
+       test/lisp/emacs-lisp/bytecomp-tests.el: Add more tests for switch.
+
+2017-02-13  Stefan Monnier  <address@hidden>
+
+       * doc/lispref/modes.texi (Derived Modes): Make example more idiomatic
+
+2017-02-13  Glenn Morris  <address@hidden>
+
+       Fix recent bootstrap issue by moving string-to-list
+
+       * lisp/international/mule-util.el (string-to-list, string-to-vector):
+       Move from here...
+       * lisp/subr.el (string-to-list, string-to-vector): ...to here.
+       The implementation is trivial and at least string-to-list
+       has ended up being needed early during bootstrap.
+
+2017-02-13  Glenn Morris  <address@hidden>
+
+       Doc fixes related to mail-host-address
+
+       * lisp/startup.el (mail-host-address): Doc fix.
+       * doc/lispref/os.texi (System Environment):
+       Remove extraneous details of mail-host-address.
+
+2017-02-13  Glenn Morris  <address@hidden>
+
+       Simplify time-stamp mail host usage
+
+       * lisp/time-stamp.el (time-stamp-mail-host-name): Remove function.
+       (time-stamp-string-preprocess): Handle "h" (mail host) directly.
+
+2017-02-13  Glenn Morris  <address@hidden>
+
+       Doc fix for vhdl-mode re mail-host-address
+
+       * lisp/progmodes/vhdl-mode.el (vhdl-file-header): Doc fix.
+       (mail-host-address): Do not add to vhdl-related custom group,
+       since vhdl-template-replace-header-keywords doesn't use it.
+
+2017-02-13  Mark Oteiza  <address@hidden>
+
+       Substitute leading $HOME/ in xdg-user-dirs
+
+       * lisp/xdg.el (xdg--substitute-home-env): New function.
+       (xdg--user-dirs-parse-line): Use it.
+       (xdg-user-dir): Expand ~/ in xdg-user-dirs values.
+
+2017-02-13  Mark Oteiza  <address@hidden>
+
+       * lisp/buff-menu.el: Turn on lexical-binding.
+
+2017-02-13  Juri Linkov  <address@hidden>
+
+       * lisp/replace.el (query-replace-from-to-separator): Move propertize
+
+       and char-displayable-p test to query-replace-read-from.
+       Add choice nil to disable this feature.
+       (query-replace-read-from): Don't reevaluate custom setting.
+       Use char-displayable-p to test the first non-whitespace character
+       in query-replace-from-to-separator, use " -> " when fails.
+       Add prompt for the case when separator is nil but
+       query-replace-defaults is non-nil.
+       Remove unused test for regexp-flag.
+       Thanks to Thierry Volpiatto <address@hidden>
+
+2017-02-13  Karl Fogel  <address@hidden>
+
+       Convert more uses of `looking-at' to `following-char'
+
+       This follows up to Mark Oteiza's commit of 12 Feb 2017, 14:46:03 UTC
+       (commit 91478f46238a) with more of the same.
+
+       * lisp/bookmark.el (bookmark-send-edited-annotation):
+         (bookmark-bmenu-execute-deletions): Replace instances of looking-at
+         with char comparisons using following-char.
+
+2017-02-12  Paul Eggert  <address@hidden>
+
+       Fix typos in tests for lax-plist-get etc.
+
+       Problem reported by Eli Zaretskii (Bug#25606#62).
+       * test/src/fns-tests.el (test-cycle-lax-plist-get)
+       (test-cycle-plist-put, test-cycle-lax-plist-put):
+       Fix tests to match behavior.
+
+2017-02-12  Michael Albinus  <address@hidden>
+
+       Fix bug#25607
+
+       * lisp/net/tramp.el (tramp-completion-file-name-handler):
+       Improve autoloaded version.
+       (tramp-autoload-file-name-handler): Avoid recursive load.
+       (tramp-completion-handle-expand-file-name): Handle empty NAME.
+       (Bug#25607)
+
+2017-02-12  Mark Oteiza  <address@hidden>
+
+       Remove server-buffer-clients string from minor-mode-alist
+
+       * lisp/server.el: Don't put an element for server-buffer-clients into
+       minor-mode-alist. (Bug#20201)
+
+2017-02-12  Mark Oteiza  <address@hidden>
+
+       Nix some useless uses of looking-at, looking-back
+
+       * lisp/allout.el (allout-kill-topic):
+       (allout-next-topic-pending-encryption):
+       * lisp/bookmark.el (bookmark-kill-line):
+       * lisp/cus-edit.el (custom-save-variables, custom-save-faces):
+       * lisp/cus-theme.el (custom-theme-write-variables):
+       (custom-theme-write-faces):
+       * lisp/emacs-lisp/autoload.el (autoload-generate-file-autoloads):
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer):
+       * lisp/emacs-lisp/checkdoc.el (checkdoc-interactive-loop):
+       (checkdoc-interactive-ispell-loop):
+       (checkdoc-message-interactive-ispell-loop, checkdoc-this-string-valid):
+       (checkdoc-this-string-valid-engine):
+       * lisp/emacs-lisp/elint.el (elint-get-top-forms):
+       * lisp/emulation/viper-cmd.el (viper-backward-indent):
+       * lisp/image-dired.el (image-dired-delete-char):
+       * lisp/simple.el (kill-visual-line): Replace instances of looking-at,
+       looking-back with char comparisons using following-char, preceding-char.
+
+2017-02-12  Eli Zaretskii  <address@hidden>
+
+       Clarify what is the "cursor"
+
+       * doc/lispref/windows.texi (Window Point): Clarify the notion of
+       "cursor".
+
+2017-02-11  Tom Tromey  <address@hidden>
+
+       Recognize JS regexp literals more correctly
+
+       Bug#25529
+       * lisp/progmodes/js.el (js--syntax-propertize-regexp-regexp): New
+       constant.
+       (js-syntax-propertize-regexp): Use it.  Remove "end" argument.
+       (js--syntax-propertize-regexp-syntax-table): Remove.
+       (js-syntax-propertize): Update.
+       * test/lisp/progmodes/js-tests.el (js-mode-regexp-syntax-bug-25529):
+       New test.
+
+2017-02-11  Vibhav Pant  <address@hidden>
+
+       src/bytecode.c (exec_byte_code): Make hash_code a Lisp_Object.
+
+       This avoids using XUINT every time while comparing it with
+       HASH_HASH (h, i), replacing it with EQ.
+
+2017-02-11  Vibhav Pant  <address@hidden>
+
+       src/bytecode.c (exec_byte_code): Remove unnecessary (e)assert.
+
+2017-02-11  Tom Tromey  <address@hidden>
+
+       Fix bug in css--mdn-find-symbol
+
+       * lisp/textmodes/css-mode.el (css--mdn-find-symbol): Skip whitespace
+       before skipping word characters.
+       test/lisp/textmodes/css-mode-tests.el (css-mdn-symbol-guessing): Add
+       regression test.
+
+2017-02-11  Vibhav Pant  <address@hidden>
+
+       src/bytecode.c: Add optional sanity check for jump tables.
+
+       * src/bytecode.c (exec_byte_code): When sanity checks are enabled,
+         check that the jump table's size is equal to it's count.
+
+2017-02-11  Vibhav Pant  <address@hidden>
+
+       Merge branch 'master' into feature/byte-switch
+
+       * src/bytecode.c: Refactor to follow GNU coding standards
+
+2017-02-11  Eli Zaretskii  <address@hidden>
+
+       Fix handling of XBM images on MS-Windows
+
+       * src/image.c (xbm_load) [HAVE_NTGUI]: Fix calculation of
+       'nbytes' when inverting XBM data bits.  (Bug#25661)
+
+2017-02-11  Eli Zaretskii  <address@hidden>
+
+       Fix handling of PBM data
+
+       * src/image.c (pbm_load): Handle PBM data with no blanks between
+       individual pixel values correctly.  (Bug#25660)
+
+2017-02-10  Noam Postavsky  <address@hidden>
+
+       Fix warnings in debug tracing code
+
+       * src/xdisp.c (dump_glyph, dump_glyph_string):
+       * src/xfaces.c (dump_realized_face): Cast arguments or adjust format
+       specifiers to match signedness.
+
+2017-02-10  Sam Steingold  <address@hidden>
+
+       Extract grep-find-ignored-directories processing from 
rgrep-default-command
+
+       (rgrep-find-ignored-directories): Extract from `rgrep-default-command'.
+       Some Emacs packages use `grep-find-ignored-directories' to ignore some
+       directories, so will use this function instead of custom code.
+       (rgrep-default-command): Use `rgrep-find-ignored-directories'.
+
+2017-02-10  Vibhav Pant  <address@hidden>
+
+       src/bytecode.c: Avoid comparing values unnecessarily in Bswitch
+
+       * src/bytecode.c: (exec_byte_code) While linear searching the jump
+         table, compare the value's hash table first to avoid calling
+         h->test.cmpfn every time.
+
+2017-02-10  Paul Eggert  <address@hidden>
+
+       Fix a few integer-overflow glitches
+
+       * src/composite.c (composition_compute_stop_pos, composition_reseat_it):
+       * src/dispextern.h (struct composition_it.rule_idx):
+       * src/keyboard.c (Fset__this_command_keys):
+       * src/xwidget.c (webkit_js_to_lisp):
+       Don’t assume object sizes fit in ‘int’.
+       * src/xwidget.c (Fxwidget_resize):
+       Don’t assume Emacs integers fit in ‘int’.
+
+2017-02-10  Eli Zaretskii  <address@hidden>
+
+       Fix a bug with displaying an image after a TAB
+
+       * src/xdisp.c (display_line): Handle TAB at end of screen line
+       specially only when we are displaying characters.  (Bug#25662)
+
+2017-02-10  Eli Zaretskii  <address@hidden>
+
+       Improve commentary in lisp.h
+
+       * src/lisp.h: Explain in the comment why enlarging a Lisp_Misc
+       object is discouraged.
+
+2017-02-10  Paul Eggert  <address@hidden>
+
+       Move cyclic tests to fns-tests.el
+
+       * test/src/fns-tests.el (cyc1, cyc2, dot1, dot2): New functions.
+       (test-cycle-length, test-cycle-safe-length, test-cycle-member)
+       (test-cycle-memq, test-cycle-memql, test-cycle-assq)
+       (test-cycle-assoc, test-cycle-rassq, test-cycle-rassoc)
+       (test-cycle-delq, test-cycle-delete, test-cycle-reverse)
+       (test-cycle-plist-get, test-cycle-lax-plist-get)
+       (test-cycle-plist-member, test-cycle-plist-put)
+       (test-cycle-lax-plist-put, test-cycle-equal, test-cycle-nconc):
+       New tests.
+       * test/manual/cyclic-tests.el: File deleted.
+
+2017-02-10  Gemini Lasswell  <address@hidden>
+
+       Fix instrumenting code with propertized strings in Edebug
+
+       * lisp/emacs-lisp/edebug.el (edebug-read-function): Allow
+       'read' to decide what is and isn't a syntax error.  (Bug#25068)
+
+2017-02-10  Vladimir Panteleev  <address@hidden>
+
+       Improve fontification in bat-mode
+
+       * lisp/progmodes/bat-mode.el (bat-font-lock-keywords): Match
+       word and symbol constituents when looking for variable names
+       to fontify; also, correct the syntax table and mark the equal
+       sign (=) character as punctuation.  Improve fontification
+       accuracy of iteration/positional variables.
+       (bat-mode): Set comment-start-skip.  (Bug#25541)
+
+       * test/lisp/progmodes/bat-mode-tests.el: New file, tests for
+       bat-mode.el.
+
+2017-02-10  Eli Zaretskii  <address@hidden>
+
+       Restore special setting of this-command-keys by M-x
+
+       It was lost when execute-extended-command was reimplemented in Lisp.
+
+       * src/keyboard.c (Fset__this_command_keys): New function.
+       (syms_of_keyboard): Defsubr it.
+
+       * lisp/simple.el (execute-extended-command): Set this-command-keys
+       as novice.el expects.  (Bug#25612)
+
+2017-02-09  Juri Linkov  <address@hidden>
+
+       * lisp/isearch.el (isearch-search-fun-default): Set isearch-adjusted
+
+       to t to display "Pending" in the search prompt for lax
+       word/symbol search (bug#25562).  Don't use lax for lazy-highlighting
+       when 'bound' is non-nil.
+       (word-search-regexp, isearch-symbol-regexp): Don't depend on lax
+       at the beginning of regexp (bug#22589).
+
+       * lisp/info.el (Info-isearch-search):
+       Use isearch--lax-regexp-function-p.
+
+       * doc/emacs/search.texi (Word Search, Symbol Search):
+       Mention "Pending" prompt for lax word/symbol search.
+
+2017-02-09  Vibhav Pant  <address@hidden>
+
+       src/bytecode.c (exec_byte_code): Remove unneeded assert.
+
+       bytecode.c (exec_byte_code): Use h->count instead of HASH_TABLE_SIZE
+
+2017-02-09  Vibhav Pant  <address@hidden>
+
+       bytecode.c (exec_byte_code): don't check hash code in linear search.
+
+       * src/bytecode.c (exec_byte_code): Don't check that the hash code is
+         not nil when linear scanning the jump table. Hash tables for are
+         declared with :size as the exact number of cases, so each entry i
+         should have a hash code. When BYTE_CODE_SAFE, do it as a sanity
+         check.
+
+2017-02-09  Tino Calancha  <address@hidden>
+
+       Ibuffer: Update mode documentation
+
+       * lisp/ibuffer.el (ibuffer-mode): List newest commands in mode 
documentation.
+
+2017-02-09  Steven Allen  <address@hidden>  (tiny change)
+
+       Fix environment variable for xdg-data-dirs
+
+       * lisp/xdg.el (xdg-data-dirs): Use XDG_DATA_DIRS, not XDG_CONFIG_DIRS
+
+2017-02-09  Tino Calancha  <address@hidden>
+
+       Ibuffer: Erase output buffer before shell commands
+
+       * lisp/ibuf-macs.el (define-ibuffer-op): Add keyword arguments
+       BEFORE and AFTER; they are forms to run before/after the operation.
+       * lisp/ibuf-ext.el (ibuffer--maybe-erase-shell-cmd-output):
+       New defun; if shell-command-dont-erase-buffer is nil, then
+       erase shell command output buffer.
+       (ibuffer-do-shell-command-pipe, ibuffer-do-shell-command-file): Use it.
+
+2017-02-09  Tino Calancha  <address@hidden>
+
+       Ibuffer: Don't truncate shell command output
+
+       * lisp/ibuf-ext.el (ibuffer-do-shell-command-pipe)
+       (ibuffer-do-shell-command-pipe-replace)
+       Use 'call-shell-region' (Bug#22679).
+       (ibuffer-do-shell-command-file): Use call-process-shell-command.
+       If FILE, the file that the buffer object is visiting,
+       exists and the buffer is up-to-date, then use
+       FILE instead of creating a temporary file (Bug#22679).
+
+2017-02-09  Vibhav Pant  <address@hidden>
+
+       Improve byte-switch execution.
+
+       * lisp/emacs-lisp/byte-opt.el,
+         lisp/emacs-lisp/bytecomp.el (byte-decompile-bytecode-1),
+         (byte-compile-lapcode): Calculate the actual jump address while
+         compiling, store it in the jump table.
+
+       * src/bytecode.c: Jump to the looked up value directly, do a linear
+         search when the number of elements is <= 5.
+
+2017-02-09  Noam Postavsky  <address@hidden>
+
+       Make sure eshell pipelines don't drop data
+
+       * lisp/eshell/esh-proc.el (eshell-sentinel): If called while still
+       handling output of the process, make sure to close the pipes only later,
+       so that the next process in the pipeline recieves EOF only after getting
+       all its input (Bug#25549).
+
+2017-02-09  Katsumi Yamaoka  <address@hidden>
+
+       Make mm-shr use mail-parse-charset by default
+
+       * lisp/gnus/mm-decode.el (mm-shr): Use mail-parse-charset by default.
+       This helps an html message with no charset spec to be decoded.
+
+2017-02-08  Stephen Berman  <address@hidden>
+
+       describe-char: unambiguous name for inserting ASCII 7
+
+       * lisp/descr-text.el (describe-char): Make the input
+       suggestion for inserting ASCII character 7 by name use the
+       unambiguous name "BELL (BEL)" (bug#25641).
+
+2017-02-08  Michael Albinus  <address@hidden>
+
+       Modify suppressing `vc-refresh-state' in filenotify-tests.el
+
+       * test/lisp/filenotify-tests.el (file-notify-test03-autorevert):
+       Use an advice rather than an alias for suppressing `vc-refresh-state'.
+
+2017-02-08  Noam Postavsky  <address@hidden>
+
+       Disable native completion for ipython (Bug#25067)
+
+       * lisp/progmodes/python.el:
+       (python-shell-completion-native-disabled-interpreters): Add "ipython".
+
+2017-02-07  Michael Albinus  <address@hidden>
+
+       Suppress undesired error messages in filenotify-tests.el
+
+       * test/lisp/filenotify-tests.el (file-notify-test03-autorevert):
+       Suppress `vc-refresh-state', it produces undesired error messages.
+
+2017-02-07  Eli Zaretskii  <address@hidden>
+
+       Fix a typo in ada-mode manual
+
+       * doc/misc/ada-mode.texi (Project file variables): Add a missing
+       right bracket.  Reported by Jean-Christophe Helary
+       <address@hidden>.
+
+2017-02-07  Lars Ingebrigtsen  <address@hidden>
+
+       Ensure that Gnus bugs show up in the Emacs tracker
+
+       * lisp/gnus/gnus.el (gnus-bug-package): Include Emacs in the
+       package spec.
+
+2017-02-07  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Don't tag Gnus bugs with "gnus""
+
+       This reverts commit b6fa58072304c2a24f1fe8a0e06a4739a7f8211b.
+
+       The debbugs syntax requires a package name
+
+2017-02-07  Vibhav Pant  <address@hidden>
+
+       Add tests for checking byte-switch code.
+
+       * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-cond): New test,
+         test byte-switch bytecode.
+
+2017-02-07  Mark Oteiza  <address@hidden>
+
+       Add xdg library
+
+       * etc/NEWS: Mention new library.
+       * lisp/xdg.el: New file.
+
+2017-02-07  Paul Eggert  <address@hidden>
+
+       Do not trick info/dir’s timestamp
+
+       * Makefile.in (${srcdir}/info/dir): When making this file, do not
+       do anything special about its timestamp.  Previously this rule
+       used move-if-change, which meant that this file’s timestamp could
+       end up being older than the files it depends on, and this caused
+       ‘make --question info’ to fail, which caused ‘make-dist’ to fail
+       now that ‘make-dist’ invokes ‘make --question info’.
+
+2017-02-07  Paul Eggert  <address@hidden>
+
+       Make FOR_EACH_TAIL more like other FOR_EACH macros
+
+       See comments by Stefan Monnier in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-02/msg00181.html
+       and by Eli Zaretskii in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-02/msg00207.html
+       * src/fns.c (internal_equal): Do not bypass check for depth
+       overflow when tail-recursing via a dotted list tail or an overlay
+       plist, to avoid a rare infloop.
+       * src/lisp.h (FOR_EACH_TAIL, FOR_EACH_TAIL_SAFE): Take TAIL as an
+       arg, and update it at each iteration, rather than have callers
+       access it.tail.  All callers changed.
+       (FOR_EACH_TAIL): Do not check for dotted lists, as this is now
+       the caller’s responsibility.  All callers changed.
+       (FOR_EACH_TAIL_CONS): Remove.  All callers changed.
+       (struct for_each_tail_internal.tail): Remove; no longer needed.
+       (FOR_EACH_TAIL_INTERNAL): Remove dotted arg, and set the tail
+       arg each time through the loop.  All callers changed.
+
+2017-02-05  Paul Eggert  <address@hidden>
+
+       Port to clang 3.8.0
+
+       It does not allow a for-loop's control var to be an anonymous struct.
+       * src/lisp.h (struct for_each_tail_internal): New type.
+       (FOR_EACH_TAIL_INTERNAL): Use it.
+
+2017-02-05  Paul Eggert  <address@hidden>
+
+       Add cyclic-list tests
+
+       * test/manual/cycle-tests.el: New file (Bug#25606).
+
+2017-02-05  Paul Eggert  <address@hidden>
+
+       FOR_EACH_TAIL now checks for quit
+
+       As per Eli Zaretskii (Bug#25606#20).  Although these calls to
+       maybe_quit are unnecessary in practice, Eli was not convinced
+       that the calls are unnecessary.
+       * src/lisp.h (FOR_EACH_TAIL, FOR_EACH_TAIL_CONS):
+       Call maybe_quit every so often.
+       (FOR_EACH_TAIL_INTERNAL): New arg CHECK_QUIT.  All callers changed.
+
+2017-02-05  Paul Eggert  <address@hidden>
+
+       Signal list cycles in ‘length’ etc.
+
+       Use macros like FOR_EACH_TAIL instead of maybe_quit to
+       catch list cycles automatically instead of relying on the
+       user becoming impatient and typing C-g (Bug#25606).
+       * src/fns.c (Flength, Fmember, Fmemq, Fmemql, Fassq, Fassoc, Frassq)
+       (Frassoc, Fdelete, Freverse):
+       Use FOR_EACH_TAIL instead of maybe_quit.
+       (Fnreverse): Use simple EQ to check for circular list instead
+       of rarely_quit, as this suffices in this unusual case.
+       (Fplist_put, Flax_plist_put, Flax_plist_put):
+       Use FOR_EACH_TAIL_CONS instead of maybe_quit.
+       (internal_equal): Use FOR_EACH_TAIL_CONS to check lists, instead
+       of by-hand tail recursion that did not catch cycles.
+       * src/fns.c (Fsafe_length, Fplist_get):
+       * src/xdisp.c (display_mode_element):
+       Use FOR_EACH_TAIL_SAFE instead of by-hand Floyd’s algorithm.
+       * src/lisp.h (QUIT_COUNT_HEURISTIC): Remove; no longer needed.
+       (rarely_quit): Simply count toward USHRT_MAX + 1, since the
+       fancier versions are no longer needed.
+       (FOR_EACH_TAIL_CONS, FOR_EACH_TAIL_SAFE)
+       (FOR_EACH_TAIL_INTERNAL): New macros, the last with definiens
+       mostly taken from FOR_EACH_TAIL.
+       (FOR_EACH_TAIL): Rewrite in terms of FOR_EACH_TAIL_INTERNAL.
+
+2017-02-05  Paul Eggert  <address@hidden>
+
+       Simplify use of FOR_EACH_TAIL
+
+       * src/data.c (circular_list): New function.
+       * src/lisp.h (FOR_EACH_TAIL): Use Brent’s algorithm and C99 for-loop
+       decl, to eliminate the need for the args TAIL, TORTOISE and N, and
+       to speed things up a bit on typical hosts with optimization.
+       All uses changed (Bug#25605).
+
+2017-02-05  Simen Heggestøyl  <address@hidden>
+
+       * lisp/textmodes/css-mode.el: Require subr-x at compile time
+
+2017-02-05  Eli Zaretskii  <address@hidden>
+
+       Clarify documentation of 'bufferpos-to-filepos' and 
'filepos-to-bufferpos'
+
+       * doc/lispref/nonascii.texi (Text Representations): Clarify that
+       'exact' value of QUALITY argument to 'bufferpos-to-filepos' and
+       'filepos-to-bufferpos' can lead to expensive and slow processing.
+
+       * lisp/international/mule-util.el (filepos-to-bufferpos)
+       (bufferpos-to-filepos): Doc fix.  (Bug#25626)
+
+2017-02-05  Vibhav Pant  <address@hidden>
+
+       Merge remote-tracking branch 'origin/master' into feature/byte-switch
+
+2017-02-05  Vibhav Pant  <address@hidden>
+
+       bytecomp.el: Use macroexp-const-p instead of bc-cond-valid-obj2-p.
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-cond-vars): Use
+         (macroexp-cons-p) instead of (byte-compile-cond-valid-obj2-p) to
+         make sure that obj1/obj2 can be compared with `eq'.
+
+2017-02-05  Vibhav Pant  <address@hidden>
+
+       * byte-opt.el (byte-decompile-bytecode-1): Use eq instead of =.
+
+2017-02-05  Vibhav Pant  <address@hidden>
+
+       bytecomp.el: Inline lapcode containing `byte-switch' correctly.
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-inline-lapcode):
+         Restore value of byte-compile-depth after emitting a jump to a tag
+         in a jump table, or default/done tags.
+         Set the depth of final tags for byte-switch to nil after emitting
+         any jumps to them.
+
+2017-02-05  Vibhav Pant  <address@hidden>
+
+       byte-opt.el: Replace jump tables while decompiling correctly.
+
+       * lisp/emacs-lisp/byte-opt.el (byte-decompile-bytecode-1):
+         Don't make a copy of the constant vector, as it isn't used with
+         the decompiled lapcode.
+         Make sure that the correct lapcode pair/list is being modified while
+         replacing the jump table.
+
+2017-02-05  Vibhav Pant  <address@hidden>
+
+       bytecomp.el: Don't store non-keyword symbols in jump-tables.
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-cond-valid-obj2-p) return
+         nil when OBJ is a non-keyword symbol (i.e a variable), as the jump
+         table can only be used when comparing variables with constant values.
+
+2017-02-04  Tom Tromey  <address@hidden>
+
+       typo fix
+
+       (css--colon-inside-selector-p): Fix typo in docstring.
+
+2017-02-04  Tom Tromey  <address@hidden>
+
+       Set comment-multi-line in js-mode
+
+       Bug#6806:
+       * lisp/progmodes/js.el (js-mode): Set comment-multi-line to t.
+       * test/lisp/progmodes/js-tests.el (js-mode-auto-fill): New test.
+
+2017-02-04  Simen Heggestøyl  <address@hidden>
+
+       * test/manual/indent/scss-mode.scss: Fix indentation
+
+2017-02-04  Simen Heggestøyl  <address@hidden>
+
+       Fix indentation of multiline CSS property values
+
+       * lisp/textmodes/css-mode.el (css-smie-grammar): Give colons belonging
+       to properties higher precedence.
+       (css--colon-inside-selector-p, css--colon-inside-funcall): New
+       functions for helping SMIE during tokenization.
+       (css-smie--forward-token, css-smie--backward-token): Distinguish
+       colons belonging to properties from other colons.
+
+       * test/manual/indent/css-mode.css: Add tests for the changes above.
+
+       * test/manual/indent/scss-mode.scss: Ditto.
+
+2017-02-04  Gemini Lasswell  <address@hidden>
+
+       Add tests for lisp/kmacro.el
+
+       * test/lisp/kmacro-tests.el: New file.  (Bug#24939)
+
+2017-02-04  Eli Zaretskii  <address@hidden>
+
+       Fix autorevert-tests on MS-Windows
+
+       * test/lisp/autorevert-tests.el
+       (auto-revert-test02-auto-revert-deleted-file): Don't check that
+       auto-revert-use-notify was reset to nil on w32.
+
+2017-02-04  Gemini Lasswell  <address@hidden>
+
+       New macro 'ert-with-message-capture'
+
+       * lisp/emacs-lisp/ert-x.el (ert-with-message-capture): New macro.
+       (Bug#25158)
+
+       * test/lisp/autorevert-tests.el (auto-revert--wait-for-revert)
+       (auto-revert-test00-auto-revert-mode)
+       (auto-revert-test01-auto-revert-several-files)
+       (auto-revert-test02-auto-revert-deleted-file)
+       (auto-revert-test03-auto-revert-tail-mode)
+       (auto-revert-test04-auto-revert-mode-dired):
+       * test/lisp/filenotify-tests.el (file-notify-test03-autorevert): Use
+       ert-with-message-capture.
+
+2017-02-04  Gemini Lasswell  <address@hidden>
+
+       Avoid invalid read syntax errors due to 'ert-with-test-buffer'
+
+       * lisp/emacs-lisp/ert-x.el (ert-with-test-buffer): Fix the
+       'declare' form.  (Bug#24722)
+
+2017-02-04  Eli Zaretskii  <address@hidden>
+
+       Fix a syntax error when evaluating pcase.el under Edebug
+
+       * lisp/emacs-lisp/pcase.el (pcase-MACRO): Replace def-edebug-spec
+       with an explicit 'put' form.  Suggested by Gemini Lasswell
+       <address@hidden>.  (Bug#24717)
+
+2017-02-04  Gemini Lasswell  <address@hidden>
+           Eli Zaretskii  <address@hidden>
+
+       Change edebug-max-depth from defconst to defcustom
+
+       * lisp/emacs-lisp/edebug.el (edebug-max-depth): Add defcustom.
+       (Bug#24713)
+
+       * etc/NEWS: Mention edebug-max-depth.
+
+       * doc/lispref/edebug.texi (Checking Whether to Stop): Mention
+       edebug-max-depth and index it.  Add cross-references for
+       max-lisp-eval-depth and max-specpdl-size.
+
+2017-02-04  Eli Zaretskii  <address@hidden>
+
+       Support options with embedded whitespace in 'dired-listing-switches'
+
+       * lisp/dired.el (dired-listing-switches): Document how to quote
+       options with embedded whitespace.
+
+       * lisp/files.el (insert-directory): Use split-string-and-unquote
+       to support dired-listing-switches that specify command-line
+       options with embedded spaces.  (Bug#25485)
+
+2017-02-04  Gemini Lasswell  <address@hidden>
+           Noam Postavsky  <address@hidden>
+
+       Add tests for lisp/emacs-lisp/testcover.el
+
+       * test/lisp/emacs-lisp/testcover-tests.el: New file.
+       * test/lisp/emacs-lisp/testcover-resources/testcases.el: New file.
+
+2017-02-04  Eli Zaretskii  <address@hidden>
+
+       Document 'save-some-buffers-default-predicate'
+
+       * doc/lispref/files.texi (Saving Buffers):
+       * doc/emacs/files.texi (Save Commands): Document
+       save-some-buffers-default-predicate.
+
+2017-02-04  Richard Stallman  <address@hidden>
+
+       New defcustom 'save-some-buffers-default-predicate'
+
+       * lisp/files.el (save-some-buffers-default-predicate): New defcustom.
+       (save-some-buffers): Use it when PRED is nil or omitted.
+
+2017-02-04  Mark Oteiza  <address@hidden>
+
+       Rename to if-let* and when-let*
+
+       Make the existing if-let and when-let aliases.
+       * lisp/emacs-lisp/subr-x.el (if-let*, when-let*): New macros.  Rewrite
+       docstrings, incorporating that from let* and the existing if-let.
+       (if-let, when-let, and-let*): Alias them.
+
+2017-02-03  Vibhav Pant  <address@hidden>
+
+       Revert "Use maphash instead of cl-loop."
+
+       This reverts commit bfa88520136dd6b187ba101e6db5a5f8f0d5e874.
+
+2017-02-03  Nicolas Petton  <address@hidden>
+
+       Bump Emacs version to 25.2 RC1
+
+       * README:
+       * configure.ac:
+       * msdos/sed2v2.inp:
+       * nt/README.W32: Bump Emacs version.
+       * lisp/ldefs-boot.el: Update.
+
+2017-02-03  Nicolas Petton  <address@hidden>
+
+       * admin/make-tarball.txt: Add documentation regarding the release 
banner.
+
+2017-02-03  Tino Calancha  <address@hidden>
+
+       * CONTRIBUTE (Documenting your changes): Index new vars/commands in 
manual.
+
+2017-02-03  Paul Eggert  <address@hidden>
+
+       Re-port alloc.c to Solaris sparc and simplify
+
+       alloc.c had bitrotted a bit, and used an undefined symbol
+       stack_base when Emacs was built on Solaris sparc, leading to
+       compilation failures.  Also, code related to __builtin_unwind_init
+       was unnecessarily duplicated.  Fix the bitrot and remove some
+       duplication.
+       * src/alloc.c: Remove uses of GC_SAVE_REGISTERS_ON_STACK, since it
+       is never defined.
+       (test_setjmp) [!HAVE___BUILTIN_UNWIND_INIT && GC_SETJMP_WORKS]:
+       Define a no-op dummy, to simplify use.
+       (test_setjmp) [!GC_SETJMP_WORKS]: Test setjmp_tested_p here rather
+       than in the caller, to simplify use.
+       (stacktop_sentry): New type.
+       (__builtin_unwind_init) [!HAVE___BUILTIN_UNWIND_INIT]: New macro.
+       (SET_STACK_TOP_ADDRESS): New macro, containing code that was duplicated.
+       (flush_stack_call_func, Fgarbage_collect): Use it.
+       (init_alloc): Omit unnecessary initialization.
+       After dumping, Emacs need not re-test setjmp.
+
+2017-02-03  Noam Postavsky  <address@hidden>
+
+       Add tests for scrolling
+
+       * test/manual/scroll-tests.el: New tests for scroll-margin behavior.
+
+2017-02-03  Noam Postavsky  <address@hidden>
+
+       Fix scrolling with partial lines
+
+       * src/xdisp.c (partial_line_height): New function.
+       (try_scrolling):
+       * src/window.c (window_scroll_pixel_based): Use it for calculating the
+       pixel scroll margin correctly in a window with partial lines.
+
+2017-02-03  Noam Postavsky  <address@hidden>
+
+       Make limit on scroll-margin variable
+
+       * src/xdisp.c (maximum-scroll-margin): New variable.
+       * lisp/cus-start.el: Make it customizable.
+       * etc/NEWS: Mention it.
+       * doc/emacs/display.texi (Auto Scrolling):
+       * doc/lispref/windows.texi (Textual Scrolling): Document it.
+       * src/window.c (window_scroll_pixel_based): Use it instead of hardcoding
+       division by 4 (Bug #5718).
+
+2017-02-03  Noam Postavsky  <address@hidden>
+
+       Don't count mode line for scroll-margin limit
+
+       * src/window.c (window_scroll_margin): Use window_box_height to avoid
+       counting header line, scrollbars for scroll-margin limit (Bug #5718).
+
+2017-02-03  Noam Postavsky  <address@hidden>
+
+       Refactor uses of scroll_margin to a function
+
+       Its effective range needs to be clamped between 0 and (window height /
+       4), so it's better to have this constraint in a single place.
+
+       * src/window.c (window_scroll_margin): New function.
+       (window_scroll_pixel_based, window_scroll_line_based):
+       (Frecenter, Fmove_to_window_line):
+       * src/xdisp.c (try_scrolling, try_cursor_movement):
+       (redisplay_window, try_window, try_window_id): Use it.
+
+2017-02-03  Dmitry Gutov  <address@hidden>
+
+       (xref-collect-matches): Use '-E' together with '-e'
+
+       * lisp/progmodes/xref.el (xref-collect-matches): Use '-E'
+       together with '-e', as suggested by Noam Postavsky
+       (http://lists.gnu.org/archive/html/emacs-devel/2017-01/msg00780.html).
+
+2017-02-03  Paul Eggert  <address@hidden>
+
+       Pacify Oracle Studio 12.5
+
+       * src/emacs.c (main): Do not silently convert char * to bool.
+
+2017-02-02  Paul Eggert  <address@hidden>
+
+       Fix lisp.h underparenthesization
+
+       * src/lisp.h (STACK_CONS, AUTO_STRING_WITH_LEN):
+       Parenthesize compound literals that are function call args.
+       Although this does not fix any bugs, it is the proper style for
+       macro parenthesization as it means this code will continue to
+       work even if make_lisp_ptr is changed to a macro.
+
+2017-02-02  Stefan Monnier  <address@hidden>
+
+       * lisp/doc-view.el (doc-view-mode): Don't require a final newline
+
+       (doc-view-revert-buffer): Silence overflow warnings.
+
+2017-02-02  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       2017-01-30 Port to PGI 16.10 x86-64
+       2017-01-20 time_rz: fix comment typo
+       2017-01-14 strftime: %z is -00 if unknown
+       This incorporates:
+       * doc/misc/texinfo.tex, lib/c-ctype.h, lib/strftime.c:
+       * lib/time-internal.h, lib/verify.h:
+       Copy from gnulib.
+
+2017-02-02  Tino Calancha  <address@hidden>
+
+       Check if there are hunks before kill or refine a hunk
+
+       * lisp/vc/diff-mode.el (diff--some-hunks-p): New predicate.
+       (diff-hunk-kill, diff-file-kill, diff-refine-hunk): Use it (Bug#25571).
+
+2017-02-02  Tino Calancha  <address@hidden>
+
+       Ignore error after kill last file or hunk
+
+       * lisp/vc/diff-mode.el (diff-hunk-kill): Go to beginning of hunk before 
kill.
+       Ignore error after kill last hunk (Bug#25570).
+       (diff-file-kill): Idem.
+
+2017-02-02  Tino Calancha  <address@hidden>
+
+       Show current line highlighted in *Occur* buffer
+
+       * lisp/replace.el (list-matching-lines-current-line-face)
+       (list-matching-lines-jump-to-current-line): New user options.
+       (occur--orig-line, occur--orig-line-str): New variables.
+       (occur, occur-engine): Use them.
+       (occur--final-pos): New variable.
+       (occur-1): Use it.
+       (occur-engine): Idem.
+       Show the current line with 'list-matching-lines-current-line-face'.
+       Set point on the first matching line after the current one.
+       * etc/NEWS: Add entry for the new option.
+
+2017-02-02  Tino Calancha  <address@hidden>
+
+       Allow occur command to operate on the region
+
+       See discussion in:
+       https://lists.gnu.org/archive/html/emacs-devel/2016-12/msg01084.html
+       * lisp/replace.el (occur--region-start, occur--region-end)
+       (occur--matches-threshold): New variables.
+       (occur-engine): Use them.
+       (occur): Idem.
+       Add optional arg REGION; if non-nil occur applies in that region.
+       * doc/lispintro/emacs-lisp-intro.texi (Keybindings): Update manual
+       * doc/emacs/search.texi (Other Repeating Search): Idem.
+
+2017-02-02  Mark Oteiza  <address@hidden>
+
+       Treat list-buffers-directory as a string
+
+       Another step in the long history of list-buffers-directory.  A thread
+       branch discussing the meaning/use of the variable starts here
+       https://lists.gnu.org/archive/html/emacs-devel/2009-09/msg00684.html
+       Also see (info "(elisp) Buffer File Name").
+       * lisp/buff-menu.el: Relocate special case code into info.el.  Nix
+       Info-* defvars.
+       (Buffer-menu--pretty-file-name): Remove special case.  Use
+       bound-and-true-p.
+       (Buffer-menu-info-node-description): Remove.
+       * lisp/ibuffer.el (ibuffer-buffer-file-name): Treat
+       list-buffers-directory as a string.
+       * lisp/info.el (Info-node-description): New function.
+       (Info-select-node): Use it.
+
+2017-02-02  Mark Oteiza  <address@hidden>
+
+       Turn on lexical-binding in parse-time.el
+
+       * lisp/calendar/parse-time.el: Turn on lexical-binding.
+       (parse-time-iso8601-regexp, parse-iso8601-time-string): Remove unused
+       bindings.
+
+2017-02-02  Mark Oteiza  <address@hidden>
+
+       Prevent creating thumbnails of all gif frames
+
+       With the previous defaults, doing image-dired on a directory with an
+       animated foo.gif would cause creation of foo.thumb-N.gif for each of
+       N frames in foo.gif.  By default image-dired looks for foo.thumb.gif, so
+       there additionally is no usable thumbnail after all the needless effort.
+       image-dired never handled animation, regardless.
+       * lisp/image-dired.el: Mention limitation.
+       (image-dired-cmd-create-thumbnail-options):
+       (image-dired-cmd-create-temp-image-options):
+       (image-dired-cmd-create-standard-thumbnail-options): Append [0] to
+       filename to indicate only converting the 0th frame.
+       (image-dired-display-image-mode): Don't show a cursor.
+
+2017-02-02  Paul Eggert  <address@hidden>
+
+       Fix quitting bug when buffers are frozen
+
+       Problem noted by Eli Zaretskii in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-01/msg00721.html
+       This patch also fixes some other issues in that report.
+       * src/lisp.h (incr_rarely_quit): Remove.
+       All callers changed to use rarely_quit directly.
+       * src/search.c (freeze_buffer_relocation)
+       (thaw_buffer_relocation): New functions.
+       (looking_at_1, fast_looking_at, search_buffer):
+       Use them to fix bug when quitting when buffers are frozen.
+       * src/sysdep.c (emacs_intr_read): Rename from emacs_nointr_read.
+       All uses changed.
+
+2017-02-02  Paul Eggert  <address@hidden>
+
+       Revamp quitting and fix infloops
+
+       This fixes some infinite loops that cannot be quitted out of,
+       e.g., (defun foo () (nth most-positive-fixnum '#1=(1 . #1#)))
+       when byte-compiled and when run under X.  See:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-01/msg00577.html
+       This also attempts to keep the performance improvements I recently
+       added, as much as possible under the constraint that the infloops
+       must be caught.  In some cases this fixes infloop bugs recently
+       introduced when I removed immediate_quit.
+       * src/alloc.c (Fmake_list):
+       Use rarely_quit, not maybe_quit, for speed in the usual case.
+       * src/bytecode.c (exec_byte_code):
+       * src/editfns.c (Fcompare_buffer_substrings):
+       * src/fns.c (Fnthcdr):
+       * src/syntax.c (scan_words, skip_chars, skip_syntaxes)
+       (Fbackward_prefix_chars):
+       Use rarely_quit so that users can C-g out of long loops.
+       * src/callproc.c (call_process_cleanup, call_process):
+       * src/fileio.c (read_non_regular, Finsert_file_contents):
+       * src/indent.c (compute_motion):
+       * src/syntax.c (scan_words, Fforward_comment):
+       Remove now-unnecessary maybe_quit calls.
+       * src/callproc.c (call_process):
+       * src/doc.c (get_doc_string, Fsnarf_documentation):
+       * src/fileio.c (Fcopy_file, read_non_regular, Finsert_file_contents):
+       * src/lread.c (safe_to_load_version):
+       * src/sysdep.c (system_process_attributes) [GNU_LINUX]:
+       Use emacs_read_quit instead of emacs_read in places where
+       C-g handling is safe.
+       * src/eval.c (maybe_quit): Move comment here from lisp.h.
+       * src/fileio.c (Fcopy_file, e_write):
+       Use emacs_write_quit instead of emacs_write_sig in places where
+       C-g handling is safe.
+       * src/filelock.c (create_lock_file): Use emacs_write, not
+       plain write, as emacs_write no longer has a problem.
+       (read_lock_data): Use emacs_read, not read, as emacs_read
+       no longer has a problem.
+       * src/fns.c (rarely_quit): Move to lisp.h and rename to
+       incr_rarely_quit.  All uses changed..
+       * src/fns.c (Fmemq, Fmemql, Fassq, Frassq, Fplist_put, Fplist_member):
+       * src/indent.c (compute_motion):
+       * src/syntax.c (find_defun_start, back_comment, forw_comment)
+       (Fforward_comment, scan_lists, scan_sexps_forward):
+       Use incr_rarely_quit so that users can C-g out of long loops.
+       * src/fns.c (Fnconc): Move incr_rarely_quit call to within
+       inner loop, so that it catches C-g there too.
+       * src/keyboard.c (tty_read_avail_input): Remove commented-out
+       and now-obsolete code dealing with interrupts.
+       * src/lisp.h (rarely_quit, incr_rarely_quit): New functions,
+       the latter moved here from fns.c and renamed from rarely_quit.
+       (emacs_read_quit, emacs_write_quit): New decls.
+       * src/search.c (find_newline, search_buffer, find_newline1):
+       Add maybe_quit to catch C-g.
+       * src/sysdep.c (get_child_status): Always invoke maybe_quit
+       if interruptible, so that the caller need not bother.
+       (emacs_nointr_read, emacs_read_quit, emacs_write_quit):
+       New functions.
+       (emacs_read): Rewrite in terms of emacs_nointr_read.
+       Do not handle C-g or signals; that is now for emacs_read_quit.
+       (emacs_full_write): Replace PROCESS_SIGNALS two-way arg
+       with INTERRUPTIBLE three-way arg.  All uses changed.
+
+2017-02-02  Paul Eggert  <address@hidden>
+
+       Remove immediate_quit.
+
+       The old code that sets and clears immediate_quit was
+       ineffective except when Emacs is running in terminal mode, and
+       has problematic race conditions anyway, so remove it.  This
+       will introduce some hangs when Emacs runs in terminal mode,
+       and these hangs should be fixed in followup patches.
+       * src/keyboard.c (immediate_quit): Remove.  All uses removed.
+
+2017-02-01  Alan Mackenzie  <address@hidden>
+
+       Allow C++ nested brace-list-entries to be better indented.
+
+       This fixes bug #24431.  The key change of this bug fix is correctly 
analyzing
+       nested brace lists when the opening element stands on the same line as 
both
+       its introductory brace and an enclosing parameter list parenthesis.
+
+       * list/progmodes/cc-align.el (c-lineup-under-anchor): New line-up 
function.
+
+       * list/progmodes/cc-engine.el (c-looking-at-or-maybe-in-bracelist): 
Accept the
+       presence of exactly an identifier between an open parenthesis and an 
open
+       brace as evidence of the brace starting a brace list.
+       (c-looking-at-statement-block): New function, extracted from
+       c-looking-at-inexpr-block.  Enhance it to analyze inner blocks 
recursively
+       when needed.
+       (c-looking-at-inexpr-block): Extract new function (see above) and call 
it.
+       (c-add-stmt-syntax): Enhance, with new &optional parameter, to supply 
the
+       prime syntactic symbol with a fixed anchor point.  When this is used, 
restrict
+       all added syntactic symbols to those having an anchor point on the same 
line.
+       Add, in addition to the current additional symbols, c-brace-list-entry 
when
+       needed; use c-looking-at-statement-block to determine the latter.
+       (c-guess-basic-syntax, CASE 9D): Use c-add-stmt-syntax rather than just
+       c-add-syntax, to assemble the syntactic context of a 'brace-list-entry, 
thus
+       getting, possibly, several accompanying syntactic entries.
+
+       * lisp/progmodes/cc-styles.el (c-style-alist, "gnu" style): New entry 
for
+       'brace-list-intro, namely c-lineup-arglist-intro-after-paren.
+
+       * lisp/progmodes/cc-vars.el (c-offsets-alist): Change the factory 
default
+       offset for 'brace-list-entry from 0 to c-lineup-under-anchor.
+
+       * doc/misc/cc-mode.texi (Syntactic Symbols): Amend the definition of
+       brace-list-intro.
+       (Brace List Symbols): Amend the example to show the new analysis of 
brace
+       lists when the first element comes on the same line as the opening 
brace.
+       (Misc Line-Up): Document the new line-up function c-lineup-under-anchor.
+
+2017-02-01  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "DOn't use string-as-unibyte in Gnus"
+
+       This reverts commit d1c931009004aef847105b7bac6b6ffafd985b82.
+
+       Not all the cases where we had string-as-unibyte were characters,
+       so this needs to be considered more thoroughly before being redone.
+
+2017-02-01  Vibhav Pant  <address@hidden>
+
+       Use maphash instead of cl-loop.
+
+       * lisp/emacs-lisp/bytecomp.el: (byte-compile-lapcode) Use maphash
+         instead of cl-loop
+
+2017-02-01  Michael Albinus  <address@hidden>
+
+       Fix a subtle problem in Tramp with timers
+
+       * lisp/net/tramp.el (tramp-accept-process-output): Change argument
+       list.  Make it work when called inside a timer.  See
+       <http://lists.gnu.org/archive/html/tramp-devel/2017-01/msg00010.html>.
+
+2017-01-31  Eli Zaretskii  <address@hidden>
+
+       Index byte-compile-debug
+
+       * doc/lispref/compile.texi (Compilation Functions): Index
+       byte-compile-debug.
+
+2017-01-31  Philipp Stephani  <address@hidden>
+
+       Document `byte-compile-debug' in the ELisp manual
+
+       * doc/lispref/compile.texi: Document variable `byte-compile-debug'.
+
+2017-01-31  Ted Zlatanov  <address@hidden>
+
+       read-multiple-choice: explain dialog popups more
+
+       * lisp/emacs-lisp/subr-x.el (read-multiple-choice): Explain
+       when a graphical popup is used and how it can be avoided.
+
+2017-01-31  Ted Zlatanov  <address@hidden>
+
+       auth-source-user-and-password: add forgotten user parameter
+
+               * lisp/auth-source.el (auth-source-user-and-password): Use
+                 accidentally unused "user" parameter.
+                 Reported by Oscar Najera <address@hidden>.
+
+2017-01-31  Simen Heggestøyl  <address@hidden>
+
+       Fix typo in a NEWS entry for CSS mode
+
+2017-01-31  Philipp Stephani  <address@hidden>
+
+       Document variable `byte-compile-debug'
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-debug): Document variable.
+
+2017-01-31  Lars Ingebrigtsen  <address@hidden>
+
+       DOn't use string-as-unibyte in Gnus
+
+       * lisp/gnus/nnmail.el (nnmail-parse-active): Don't use
+       string-as-unibyte.
+       (nnmail-insert-xref): Ditto.
+
+       * lisp/gnus/canlock.el (canlock-make-cancel-key): Ditto.
+
+       * lisp/gnus/gnus-art.el (gnus-article-browse-html-parts): Ditto.
+
+       * lisp/gnus/gnus-srvr.el (gnus-browse-foreign-server): Ditto.
+       (gnus-browse-foreign-server): Ditto.
+       (gnus-browse-foreign-server): Ditto.
+
+       * lisp/gnus/gnus-start.el
+       (gnus-update-active-hashtb-from-killed): Ditto.
+       (gnus-read-newsrc-el-file): Ditto.
+
+       * lisp/gnus/mml.el (mml-generate-mime-1): Ditto.
+
+       * lisp/gnus/nnir.el (nnir-get-active): Ditto.
+       (nnir-get-active): Ditto.
+
+2017-01-31  Juri Linkov  <address@hidden>
+
+       Allow C-s C-w to yank ' to the search ring in the Gnus article buffer
+
+       * lisp/gnus/gnus-art.el (gnus-article-mode-syntax-table): Make
+       M-. in article buffers work for `foo' strings, and still allow
+       C-s C-w to yank ' to the search ring (bug#22248).
+
+2017-01-31  Paul Eggert  <address@hidden>
+
+       * src/alloc.c, src/lisp.h: Fix minor glitches in recent changes.
+
+2017-01-31  Tino Calancha  <address@hidden>
+
+       * test/lisp/vc/diff-mode-tests.el: Require diff-mode.
+
+2017-01-31  Dima Kogan  <address@hidden>
+
+       New test for diff-mode handling trailing --
+
+       test/lisp/vc/diff-mode-tests.el: New test file
+
+2017-01-31  Dima Kogan  <address@hidden>
+
+       Handle patch terminators produced by git and bzr patch export
+
+       Patch by Juri Linkov posted in the #9597 bug report
+
+       * lisp/vc/diff-mode.el (diff-sanity-check-hunk): Find and ignore
+       terminator (Bug #9597, #5302)
+
+2017-01-31  Dima Kogan  <address@hidden>
+
+       Revert two accidental commits
+
+       This reverts commit f3c77d11af65f3b319b1784b4c3cf08c51aa7997.
+       This reverts commit 3c941b900007c9e79c00af0f21d88154f6d8af1a.
+
+2017-01-31  Dima Kogan  <address@hidden>
+
+       stash
+
+2017-01-31  Dima Kogan  <address@hidden>
+
+       comint-get-old-input-default: behavior follows docstring
+
+       lisp/comint.el (comint-get-old-input-default): Modify behavior to follow
+       docstring: if `comint-use-prompt-regexp' is nil, then return the 
CURRENT LINE,
+       if point is on an output field.
+
+2017-01-31  Noam Postavsky  <address@hidden>
+
+       Fix call to debugger on assertion failure
+
+       * lisp/emacs-lisp/cl-preloaded.el (cl--assertion-failed): The first
+       argument must be `error', and the second is a list of arguments for
+       `signal'.
+
+2017-01-30  Tom Tromey  <address@hidden>
+
+       css-mode documentation lookup feature
+
+       * etc/NEWS: Mention new feature.
+       * lisp/textmodes/css-mode.el (css-mode-map): New defvar.
+       (css--mdn-lookup-history): New defvar.
+       (css-lookup-url-format): New defcustom.
+       (css--mdn-property-regexp, css--mdn-completion-list): New defconsts.
+       (css--mdn-after-render, css--mdn-find-symbol, css-lookup-symbol): New
+       defuns.
+       * test/lisp/textmodes/css-mode-tests.el (css-mdn-symbol-guessing): New
+       test.
+
+2017-01-30  Glenn Morris  <address@hidden>
+
+       edt-mapper: just loading a library should not run code
+
+       * lisp/emulation/edt-mapper.el (edt-mapper): New function,
+       containing code previously at top-level.
+       * lisp/emulation/edt.el (edt-load-keys): After loading edt-mapper,
+       run edt-mapper function.
+
+2017-01-30  Glenn Morris  <address@hidden>
+
+       mh-compat.el: remove duplicate definition
+
+       * lisp/mh-e/mh-compat.el (mh-make-obsolete-variable):
+       Remove duplicate definition.
+
+2017-01-30  Paul Eggert  <address@hidden>
+
+       Add delq list arg check
+
+       * src/fns.c (Fdelq): Check that list is a proper list.
+       This is more compatible with what ‘delete’ does.
+
+2017-01-30  Stefan Monnier  <address@hidden>
+
+       * lisp/indent.el (indent-region-line-by-line): New function.
+
+       Extracted from indent-region.
+       (indent-region, indent-region-function): Use it.
+
+2017-01-30  Stefan Monnier  <address@hidden>
+
+       * lisp/subr.el (string-make-unibyte, string-make-multibyte): Obsolete.
+
+2017-01-30  Eli Zaretskii  <address@hidden>
+
+       More fixes to prevent crashes on C-g
+
+       * src/fns.c (Fassq, Frassq, Fplist_put): Reset immediate_quit
+       before returning, to avoid crashes in quit.  (Bug#25566)
+
+2017-01-30  Eli Zaretskii  <address@hidden>
+
+       Avoid crashes on C-g in TTY sessions
+
+       * src/keyboard.c (handle_interrupt): Don't quit if
+       waiting_for_input is set, as doing that is "unsafe": it will
+       abort.  (Bug#25566)
+
+2017-01-30  Vibhav Pant  <address@hidden>
+
+       * lisp/emacs-lisp/bytecomp.el: Create jump tables with :purecopy t
+
+       Merge remote-tracking branch 'origin/master' into feature/byte-switch
+
+2017-01-30  Vibhav Pant  <address@hidden>
+
+       Fix hash tables not being purified correctly.
+
+       * src/alloc.c
+       (purecopy_hash_table) New function, makes a copy of the given hash
+       table in pure storage.
+       Add new struct `pinned_object' and `pinned_objects' linked list for
+       pinning objects.
+       (Fpurecopy) Allow purifying hash tables
+       (purecopy) Pin hash tables that are either weak or not declared with
+       `:purecopy t`, use purecopy_hash_table otherwise.
+       (marked_pinned_objects) New function, marks all objects in 
pinned_objects.
+       (garbage_collect_1) Use it. Mark all pinned objects before sweeping.
+       * src/lisp.h Add new field `pure' to struct `Lisp_Hash_Table'.
+       * src/fns.c: Add `purecopy' parameter to hash tables.
+       (Fmake_hash_table): Check for a `:purecopy PURECOPY' argument, pass it
+       to make_hash_table.
+       (make_hash_table): Add `pure' parameter, set h->pure to it.
+       (Fclrhash, Fremhash, Fputhash): Enforce that the table is impure with
+       CHECK_IMPURE.
+       * src/lread.c: (read1) Parse for `purecopy' parameter while reading
+         hash tables.
+       * src/print.c: (print_object) add the `purecopy' parameter while
+         printing hash tables.
+       * src/category.c, src/emacs-module.c, src/image.c, src/profiler.c,
+         src/xterm.c: Use new (make_hash_table).
+
+2017-01-29  Dmitry Gutov  <address@hidden>
+
+       Escape dash in xref rgrep regexp
+
+       * lisp/progmodes/xref.el (xref-collect-matches): Escape dash
+       in REGEXP if it's the first character.
+
+2017-01-29  Dmitry Gutov  <address@hidden>
+
+       Say JavaScript, not Javascript
+
+       * lisp/progmodes/js.el (js-mode-map, js-syntax-propertize)
+       (js-js-error, js-eval, js-set-js-context)
+       (js--get-js-context):
+       Refer to the language consistently as JavaScript.
+
+2017-01-29  Juanma Barranquero  <address@hidden>
+
+       lisp/*.el: Fix some warnings
+
+       * lisp/battery.el (dbus-get-property):
+       * lisp/dired-aux.el (format-spec): Declare function.
+
+       * lisp/net/zeroconf.el (zeroconf-list-service-names)
+       (zeroconf-list-service-types, zeroconf-list-services):
+       Mark unused lexical arg.
+
+       * lisp/progmodes/hideshow.el (hs-hide-block-at-point):
+       * lisp/progmodes/sql.el (sql-end-of-statement):
+       Pass LIMIT to 'looking-back'.
+
+2017-01-29  Noam Postavsky  <address@hidden>
+
+       Don't warn about obsolete defgenerics when defining them
+
+       * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): The declaration code
+       should run after the definition code (Bug#25556).
+
+2017-01-29  Noam Postavsky  <address@hidden>
+
+       Call modification hooks in org-src fontify buffers
+
+       * lisp/org/org-src.el (org-src-font-lock-fontify-block): Let-bind
+       `inhibit-modification-hooks' to nil, since this function can be called
+       from jit-lock-function which binds that variable to t (Bug#25132).
+
+2017-01-29  Tino Calancha  <address@hidden>
+
+       Fix Bug#25524
+
+       * lisp/vc/diff-mode.el (diff-beginning-of-hunk):
+       Return position at the beginning off the hunk.
+       (diff-file-junk-re): Add SVN keywords.
+
+2017-01-28  Stephen Berman  <address@hidden>
+
+       hl-line.el: Don't try to operate on a killed buffer
+
+       * lisp/hl-line.el (hl-line-maybe-unhighlight): Examine only
+       live buffers (bug#25522).
+
+2017-01-28  Mark Oteiza  <address@hidden>
+
+       Use access-file in EWW to check before downloading a file
+
+       * lisp/net/eww.el (eww-download): Check accessibility of
+       eww-download-directory to prevent starting a download that will fail
+       to write.
+       * src/fileio.c (Faccess_file): Clarify the use of string argument in
+       the docstring.
+
+2017-01-28  Yuri D'Elia  <address@hidden>
+
+       Subject: Check Bcc after the Messag hook has run
+
+       * lisp/gnus/message.el (message-send): If the hook modifies
+       the message (mml tags or headers), we should check bcc on the
+       final message, not on the original.
+
+2017-01-28  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of 'format' conversions
+
+       * src/editfns.c (Fformat): More accurate description of %g and
+       effects of the various flags on it.  More accurate description of
+       integer conversions.
+
+       * doc/lispref/strings.texi (Formatting Strings): More accurate
+       description of %g and effects of the various flags on it.  More
+       accurate description of integer conversions.  (Bug#25557)
+
+2017-01-28  Juanma Barranquero  <address@hidden>
+
+       test/*.el: Avoid byte-compiler warnings
+
+       * test/lisp/abbrev-tests.el (abbrev-table-p-test): Remove unused 'let*'.
+
+       * test/lisp/faces-tests.el (faces--test): New customization group.
+       (faces--test1, faces--test2): Use it.
+
+       * test/lisp/ffap-tests.el (ffap-tests-25243):
+       Call 'mark-whole-buffer' interactively.
+
+       * test/lisp/ibuffer-tests.el (ibuffer-filter-groups, 
ibuffer-filtering-alist)
+       (ibuffer-filtering-qualifiers, ibuffer-save-with-custom)
+       (ibuffer-saved-filter-groups, ibuffer-saved-filters): Defvar.
+       (ibuffer-format-qualifier, ibuffer-unary-operand): Declare.
+
+       * test/lisp/minibuffer-tests.el (completion-test1):
+       Mark unused lexical arguments.
+
+       * test/lisp/simple-tests.el (simple-test--dummy-buffer): Wrap result in
+       'with-no-warnings' to avoid them when the macro is invoked for effect.
+
+       * test/lisp/emacs-lisp/cl-seq-tests.el (cl-seq-count-test):
+       Mark unused lexical arguments.
+
+       * test/lisp/emacs-lisp/let-alist-tests.el (let-alist-surface-test):
+       Mark unused lexical arguments.
+       (let-alist-cons): Remove unused let binding.
+
+       * test/lisp/net/dbus-tests.el (dbus-debug): Defvar.
+       (dbus-get-unique-name): Declare.
+
+       * test/lisp/progmodes/python-tests.el (python-bob-infloop-avoid):
+       Call 'font-lock-fontify-buffer' interactively.
+
+       * test/lisp/textmodes/tildify-tests.el (tildify-space-undo-test--test):
+       Mark unused lexical argument.
+
+2017-01-27  Eli Zaretskii  <address@hidden>
+
+       Restore a test that was removed by a recent commit
+
+       * src/fileio.c (Ffile_accessible_directory_p): Don't overwrite the
+       errno value unless it's necessary.  (Bug#25419)
+
+2017-01-27  Mark Oteiza  <address@hidden>
+
+       Fix a couple eww customization types
+
+       * lisp/new/eww.el (eww-download-directory, eww-bookmarks-directory):
+       Change customization type to "directory".
+
+2017-01-27  Philipp Stephani  <address@hidden>
+
+       Don't require a shell when loading htmlfontify
+
+       * lisp/htmlfontify.el (hfy-which-etags): Don't call a shell for
+       detecting the etags version (Bug#25468).
+       * test/lisp/htmlfontify-tests.el (htmlfontify-bug25468): Add unit
+       test.
+
+2017-01-27  Paul Eggert  <address@hidden>
+
+       Slightly tune file-accessible-directory-p fix
+
+       * src/fileio.c (Ffile_accessible_directory_p):
+       Remove unnecessary test (Bug#25419).
+
+2017-01-27  Arash Esbati  <address@hidden>
+
+       Add \citetitle to biblatex cite format
+
+       * lisp/textmodes/reftex-vars.el (reftex-cite-format-builtin): Add
+       \citetitle[*] to `reftex-cite-format' and bind them to keys i/I
+       per user request
+       http://lists.gnu.org/archive/html/auctex/2017-01/msg00049.html.
+
+2017-01-27  Lars Ingebrigtsen  <address@hidden>
+
+       Fix charsets and encodings from non-file MIME parts
+
+       * lisp/gnus/mml.el (mml-generate-mime-1): Get the charsets and
+       encoding right for parts that do not originate from files.
+
+2017-01-27  Eli Zaretskii  <address@hidden>
+
+       Fix 'describe-variable' for longish variable values
+
+       * lisp/help-fns.el (describe-variable): Don't accidentally remove
+       the last character of a variable's value.  (Bug#25545)
+
+2017-01-27  Vladimir Panteleev  <address@hidden>  (tiny change)
+
+       Remove stale functions from ert manual
+
+       * doc/misc/ert.texi (Useful Techniques when Writing Tests):
+       Replace ert--mismatch references with its cl-lib replacement,
+       cl-mismatch.
+
+2017-01-27  Eli Zaretskii  <address@hidden>
+
+       Fix a typo in Eshell manual
+
+       * doc/misc/eshell.texi (History): Fix a typo.  Reported by Mak
+       Kolybabi <address@hidden>.
+
+2017-01-27  Eli Zaretskii  <address@hidden>
+
+       Ensure last line is at window bottom in shell buffers
+
+       * lisp/shell.el (shell-mode): Use setq-local.  Set
+       scroll-conservatively to 101 locally.  See the discussion at
+       http://lists.gnu.org/archive/html/emacs-devel/2016-12/msg00736.html
+       for the reasons.
+
+2017-01-27  Michael Hoffman  <address@hidden>  (tiny change)
+
+       Support Bash Ctrl-Z indication of directory name in term.el
+
+       * term.el (term-emulate-terminal): Do not display ?\032 escape
+       codes even when 'handled-ansi-message' is non-nil.  (Bug#11919)
+
+2017-01-27  Eli Zaretskii  <address@hidden>
+
+       Don't report zero errno for inaccessible directory
+
+       * src/fileio.c (Ffile_accessible_directory_p): Report EACCES when
+       a file handler reports a failure.  (Bug#25419)
+
+2017-01-27  Eli Zaretskii  <address@hidden>
+
+       Fix filenotify-tests on MS-Windows
+
+       * test/lisp/filenotify-tests.el (file-notify-test04-file-validity)
+       (file-notify-test05-dir-validity)
+       (file-notify-test06-many-events)
+       (file-notify-test08-watched-file-in-watched-dir): Manually remove
+       the watch descriptor before calling file-notify--test-cleanup-p.
+       (Bug#25539)
+
+2017-01-27  Hong Xu  <address@hidden>
+
+       python-mode: Fix detection for opening blocks.
+
+               * python.el (python-info-dedenter-opening-block-positions): 
There
+               can't be any back-indented lines between an opening block and 
the
+               current line.
+
+               * python-tests.el (python-indent-electric-colon-4): Add an 
indent
+               test case where there is one-more indented previous opening 
block.
+
+2017-01-27  Lars Ingebrigtsen  <address@hidden>
+
+       Fix Message check for bogus domain names
+
+       * lisp/gnus/message.el (message-make-fqdn): Fix check for
+       bogus system names (bug#24570).
+
+2017-01-27  Øyvind Stegard  <address@hidden>  (tiny change)
+
+       Subject: Restore correct Gnus newsgroup name after sending message
+
+       * lisp/gnus/gnus-msg.el (gnus-msg-mail): Set the value of
+       gnus-newsgroup-name in the correct buffer (bug#24329).
+
+2017-01-27  Lars Ingebrigtsen  <address@hidden>
+
+       Mention the new Gnus sorting command
+
+2017-01-27  Lars Ingebrigtsen  <address@hidden>
+
+       Don't try to find charsets of non-text MIME parts
+
+       * lisp/gnus/mml.el (mml-generate-mime-1): It seems nonsensical
+       to try to determine the charset of non-text message parts, so
+       skip that (bug#24190).  This will also remove messages like
+       "bunzip2ing /tmp/acsb.cpio.bz2...done" while sending messages
+       if you include such files.
+
+2017-01-27  Lars Ingebrigtsen  <address@hidden>
+
+       Add new command gnus-article-sort-by-marks
+
+       * doc/misc/gnus.texi (Summary Sorting): Mention
+       gnus-summary-sort-by-marks.
+
+       * lisp/gnus/gnus-sum.el (gnus-article-sort-by-marks): New
+       function (bug#23393).
+       (gnus-thread-sort-by-marks): Ditto.
+       (gnus-summary-sort-by-mark): New command suggested by Dan Jacobson.
+       (gnus-summary-mode-map): Add keystroke.
+       (gnus-summary-make-menu-bar): Add to menu.
+
+2017-01-26  Katsumi Yamaoka  <address@hidden>
+
+       Make `C-h b' work correctly in Gnus article buffer (bug#18257)
+
+       * lisp/gnus/gnus-art.el (gnus-article-describe-bindings):
+       Ignore summary commands that aren't bound to
+       gnus-article-read-summary-keys keys (bug#18257).
+
+2017-01-26  Lars Ingebrigtsen  <address@hidden>
+
+       Fix crossposting in non-primary groups
+
+       * lisp/gnus/message.el
+       (message-cross-post-followup-to-header): Gnus server prefixes
+       shouldn't be included in the group names (bug#21661).
+       (message-cross-post-followup-to): Ditto.
+
+2017-01-26  Lars Ingebrigtsen  <address@hidden>
+
+       Gnus doc clarification
+
+       * doc/misc/gnus.texi (Unavailable Servers): Explicitly say
+       that "unreachable" is the same as disabling it (bug#21630).
+
+2017-01-26  Lars Ingebrigtsen  <address@hidden>
+
+       Remove dead code from rfc2047
+
+       * lisp/mail/rfc2047.el (rfc2047-fold-field): Remove dead code.
+
+       It's been disabled since 2005, when I made the change with the
+       following comment.
+
+       (rfc2047-encode-message-header): Disabled header folding -- not
+       all headers can be folded, and this should be done by the message
+       composition mode.  Probably.  I think.
+
+2017-01-26  Lars Ingebrigtsen  <address@hidden>
+
+       Fill too long mail headers
+
+       * lisp/gnus/message.el (message--fold-long-headers): New
+       function to fold too-long headers (bug#21608).
+       (message-send-mail): Use it to fill headers longer than 998
+       characters (which is the protocol limit).
+
+2017-01-26  Lars Ingebrigtsen  <address@hidden>
+
+       Make nndoc more resilient against corrupted files
+
+       * lisp/gnus/nndoc.el (nndoc-possibly-change-buffer): Don't bug
+       out on invalid files, like invalid .gz files (bug#21538).
+       This may hinder Gnus from starting up.
+
+2017-01-26  Lars Ingebrigtsen  <address@hidden>
+
+       Respect buffer-local message-fcc-handler-function
+
+       * lisp/gnus/message.el (message-do-fcc): Copy the local
+       variables from the Message buffer so that local settings of
+       `message-fcc-handler-function' etc are respected (bug#21174).
+
+2017-01-26  Lars Ingebrigtsen  <address@hidden>
+
+       (message-do-fcc): Modernise the code slightly.
+
+       * lisp/gnus/message.el (message-do-fcc): Modernise the code slightly.
+
+2017-01-26  Lars Ingebrigtsen  <address@hidden>
+
+       Avoid a regexp overflow in message-goto-body
+
+       * lisp/gnus/message.el (message-goto-body-1): Avoid using a
+       complicated backtracking regexp, because they may overflow on
+       large headers (bug#21160).
+
+2017-01-26  Lars Ingebrigtsen  <address@hidden>
+
+       Refactor message-goto-body
+
+       * lisp/gnus/message.el (message-goto-body-1): Refactor out for reuse.
+
+2017-01-26  Lars Ingebrigtsen  <address@hidden>
+
+       Fix typo in last checkin
+
+       * lisp/gnus/nnimap.el (nnimap-shell-program): Document
+       nnimap-shell-program (bug#20651).
+
+2017-01-26  Lars Ingebrigtsen  <address@hidden>
+
+       Document nnimap-shell-program
+
+       * lisp/gnus/nnimap.el (nnimap-shell-program): Document
+       nnimap-shell-program (bug#20651).
+
+2017-01-26  Lars Ingebrigtsen  <address@hidden>
+
+       Document :shell-command in `make-network-process'
+
+       * doc/lispref/processes.texi (Network): Document :shell-command.
+
+       * lisp/net/network-stream.el (open-network-stream): Document
+       the :shell-command parameter (bug#20651).
+
+2017-01-26  Lars Ingebrigtsen  <address@hidden>
+
+       Gnus doc clarification
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-save-article): Mention
+       the gnus-prompt-before-saving variable (bug#20500).
+
+2017-01-26  Lars Ingebrigtsen  <address@hidden>
+
+       Fix the previous mml patch better
+
+       * lisp/gnus/mml.el (mml-minibuffer-read-file): Fix the
+       previous patch in a better way (bug#20480).
+
+2017-01-26  Lars Ingebrigtsen  <address@hidden>
+
+       Give a slight better error message in mml-minibuffer-read-file
+
+       * lisp/gnus/mml.el (mml-minibuffer-read-file): Give a slightly
+       better error message when the user enters nothing (bug#20480).
+
+2017-01-26  Vibhav Pant  <address@hidden>
+
+       * lisp/emacs-lisp/bytecomp.el:(bc-cond-jump-table-info)add docstring
+
+2017-01-26  Lars Ingebrigtsen  <address@hidden>
+
+       Make eww buffers prettier in the buffer listing
+
+       * lisp/net/eww.el (eww-render): Put the currently visited URL
+       into the buffer listing (bug#23738).
+       (eww-render): Ditto.
+
+2017-01-26  Lars Ingebrigtsen  <address@hidden>
+
+       Allow mml-attach-file to prompt less
+
+       * lisp/gnus/mml.el (mml-attach-file): If given a prefix, don't
+       prompt for type/description/disposition, but use defaults
+       (bug#19202).
+
+2017-01-26  Lars Ingebrigtsen  <address@hidden>
+
+       Don't allow message-newline-and-reformat to be run outside the body
+
+       * lisp/gnus/message.el (message-newline-and-reformat): Error
+       out if run outside the body of a message (bug#18820).
+
+2017-01-26  Vibhav Pant  <address@hidden>
+
+       * lisp/emacs-lisp/bytecomp.el: Use correct function to push nil
+
+       * lisp/emacs-lisp/bytecomp.el: (byte-compile-cond-jump-table) Use
+         byte-compile-constant instead of byte-compile-form to push nil.
+
+2017-01-26  Vibhav Pant  <address@hidden>
+
+       * lisp/emacs-lisp/disass.el: Fix spacing while showing jump tables
+
+2017-01-26  Paul Eggert  <address@hidden>
+
+       Replace QUIT with maybe_quit
+
+       There’s no longer need to have QUIT stand for a slug of C statements.
+       Use the more-obvious function-call syntax instead.
+       Also, use true and false when setting immediate_quit.
+       These changes should not affect the generated machine code.
+       * src/lisp.h (QUIT): Remove.  All uses replaced by maybe_quit.
+
+2017-01-26  Paul Eggert  <address@hidden>
+
+       A quicker check for quit
+
+       On some microbenchmarks this lets Emacs run 60% faster on my
+       platform (AMD Phenom II X4 910e, Fedora 25 x86-64).
+       * src/atimer.c: Include keyboard.h, for pending_signals.
+       * src/editfns.c (Fcompare_buffer_substrings):
+       * src/fns.c (Fnthcdr, Fmemq, Fmemql, Fassq, Frassq, Fplist_put)
+       (Fnconc, Fplist_member):
+       Set and clear immediate_quit before and after loop instead of
+       executing QUIT each time through the loop.  This is OK for loops
+       that affect only locals.
+       * src/eval.c (process_quit_flag): Now static.
+       (maybe_quit): New function, containing QUIT’s old body.
+       * src/fns.c (rarely_quit): New function.
+       (Fmember, Fassoc, Frassoc, Fdelete, Fnreverse, Freverse)
+       (Flax_plist_get, Flax_plist_put, internal_equal, Fnconc):
+       Use it instead of QUIT, for
+       speed in tight loops that might modify non-locals.
+       * src/keyboard.h (pending_signals, process_pending_signals):
+       These belong to keyboard.c, so move them here ...
+       * src/lisp.h: ... from here.
+       (QUIT): Redefine in terms of the new maybe_quit function, which
+       contains this macro’s old definiens.  This works well with branch
+       prediction on processors with return stack buffers, e.g., x86
+       other than the original Pentium.
+
+2017-01-26  Paul Eggert  <address@hidden>
+
+       Simplify make-list implementation
+
+       * src/alloc.c (Fmake_list): Don’t unroll loop, as the complexity
+       is not worth it these days.
+
+2017-01-26  Mark Oteiza  <address@hidden>
+
+       Make use of cl-loop destructuring
+
+       * lisp/progmodes/js.el (js--get-tabs): Replace extraneous bits with
+       destructuring.
+       (with-js): Add declare forms.
+
+2017-01-25  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Bind C-c keys in the article buffer"
+
+       This reverts commit 6b4195f2ace1f6328c5a833fde40f39babef4fa6.
+
+       The commit somehow lead to problems in other parts of Emacs.
+
+2017-01-25  Lars Ingebrigtsen  <address@hidden>
+
+       Document how to quote MML tags
+
+       * doc/misc/emacs-mime.texi (MML Definition): Mention how to
+       quote MML tags (bug#18881).
+
+2017-01-25  Lars Ingebrigtsen  <address@hidden>
+
+       Make address parsing more robust
+
+       * lisp/mail/ietf-drums.el (ietf-drums-parse-address): Don't
+       bug out on addresses like
+       (ietf-drums-parse-address "\"Foo \"bar\" <address@hidden>")
+       (bug#18572).
+
+2017-01-25  Lars Ingebrigtsen  <address@hidden>
+
+       Fix the %P (line number) thing in Gnus summary buffers
+
+       * lisp/gnus/gnus-salt.el (gnus-pick-line-number): Remove hack.
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-read-group-1): Reset the
+       "pick" mode line number on entry instead of relying in a hack 
(bug#18311).
+
+2017-01-25  Lars Ingebrigtsen  <address@hidden>
+
+       Fix wrong documentation on nnmairix keystrokes
+
+       * doc/misc/gnus.texi (nnmairix keyboard shortcuts): The
+       nnmairix commands are on G G, not $ (bug#18260).
+
+2017-01-25  Lars Ingebrigtsen  <address@hidden>
+
+       Bind C-c keys in the article buffer
+
+       * lisp/gnus/gnus-art.el (gnus-article-mode-map): Also bind the
+       C-c keys so that they execute in the summary buffer
+       (bug#18257).  This makes commands like `C-c C-f' work from the
+       article buffer.
+
+2017-01-25  Lars Ingebrigtsen  <address@hidden>
+
+       Don't mark articles in Gnus as displayed when they aren't
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-read-group-1): Don't
+       mark any articles as selected if we're not selecting any
+       articles (bug#18255).
+
+2017-01-25  Vibhav Pant  <address@hidden>
+
+       * lisp/emacs-lisp/disass.el: Display jump tables for switch.
+
+       * lisp/emacs-lisp/bytecomp.el:Use correct size for switch jump-table
+
+       * lisp/emacs-lisp/bytecomp.el: Simplify b-c-cond-valid-obj2-p
+
+       * lisp/emacs-lisp/bytecomp.el: Fix byte-switch codegen with symbols.
+
+2017-01-25  Vibhav Pant  <address@hidden>
+
+       * lisp/emacs-lisp/byte-opt.el: Add support for decompiling switch
+
+       * lisp/emacs-lisp/byte-opt.el: (byte-decompile-bytecode-1) When the
+         constant encountered precedes a byte-switch op, replace all the
+         addresses in the jump table with tags.
+
+2017-01-25  Mark Oteiza  <address@hidden>
+
+       Move cXXXr and cXXXXr to subr.el
+
+       * etc/NEWS: Mention new core Elisp.
+       * doc/lispref/lists.texi (List Elements): Document and index the new
+       functions.
+       * doc/misc/cl.texi (List Functions): Change "defines" to "aliases".
+       * lisp/subr.el (caaar, caadr, cadar, caddr, cdaar, cdadr, cddar)
+       (cdddr, caaaar caaadr, caadar, caaddr, cadaar, cadadr, caddar):
+       (cadddr, cdaaar, cdaadr, cdadar, cdaddr, cddaar, cddadr, cdddar):
+       (cddddr): New functions.
+       * lisp/emacs-lisp/cl-lib.el (cl-caaar, cl-caadr, cl-cadar, cl-caddr):
+       (cl-cdaar, cl-cdadr, cl-cddar cl-cdddr, cl-caaaar cl-caaadr):
+       (cl-caadar, cl-caaddr, cl-cadaar, cl-cadadr, cl-caddar, cl-cadddr):
+       (cl-cdaaar, cl-cdaadr, cl-cdadar, cl-cdaddr, cl-cddaar, cl-cddadr):
+       (cl-cdddar, cl-cddddr): Alias to new subr functions.
+       * lisp/emacs-lisp/cl.el (cl-unload-function): Remove cXXXr and cXXXXr
+       elements.
+
+2017-01-25  Lars Ingebrigtsen  <address@hidden>
+
+       Only save .newsrc file if the native method is NNTP
+
+       * lisp/gnus/gnus-start.el (gnus-save-newsrc-file): Only save
+       the .newsrc file if the native select method is NNTP
+       (bug#18198).  This avoids problems with invalid IMAP group
+       names and the like in the .newsrc file.
+
+2017-01-25  Lars Ingebrigtsen  <address@hidden>
+
+       Only save .newsrc file if the native method is NNTP
+
+       * lisp/gnus/gnus-start.el (gnus-save-newsrc-file): Only save
+       the .newsrc file if the native select method is NNTP
+       (bug#18198).  This avoids problems with invalid IMAP group
+       names and the like in the .newsrc file.
+
+2017-01-25  Lars Ingebrigtsen  <address@hidden>
+
+       Gnus custom spec fix
+
+       * lisp/gnus/gnus-art.el (gnus-signature-limit): Fix customize
+       spec to match the doc string (bug#17679).
+
+2017-01-25  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify confusing Gnus error message
+
+       * lisp/gnus/gnus-topic.el (gnus-topic-unindent): Clarify
+       confusing error message (bug#17677).
+
+2017-01-25  Lars Ingebrigtsen  <address@hidden>
+
+       Make C-u C-x m work with Message as documented
+
+       * lisp/gnus/message.el (message-mail): Respect the CONTINUE
+       parameter (bug#17175).
+
+2017-01-25  Lars Ingebrigtsen  <address@hidden>
+
+       Fix problem with auto-mode and dir-locals-collect-variables
+
+       * lisp/files.el (dir-locals-collect-variables): When run from
+       auto-mode, the file in question may not be an absolute path
+       name (bug#24016).
+
+       Example backtrace:
+
+       Debugger entered--Lisp error: (args-out-of-range "compile-1st-in-loa
+         dir-locals-collect-variables(((emacs-lisp-mode (indent-tabs-mode))
+         hack-dir-local-variables()
+         hack-local-variables(no-mode)
+         run-mode-hooks(diff-mode-hook)
+         diff-mode()
+         mm-display-inline-fontify((#<buffer  *mm*-923037> ("text/x-diff" (
+
+2017-01-25  Lars Ingebrigtsen  <address@hidden>
+
+       Attach text files correctly in Message
+
+       * lisp/gnus/mml.el (mml-generate-mime-1): Detect which coding
+       system has been used in attached text files, and don't try to
+       do any encoding of these files (bug#13808).
+
+2017-01-25  Lars Ingebrigtsen  <address@hidden>
+
+       Build fix for older gnutls versions
+
+       * src/gnutls.c (emacs_gnutls_handle_error):
+       GNUTLS_E_PREMATURE_TERMINATION is apparently only present in
+       gnutls-3.
+
+2017-01-25  Tino Calancha  <address@hidden>
+
+       ediff-difference-vector-alist: Drop duplicated definition
+
+       * lisp/vc/ediff-init.el (ediff-difference-vector-alist):
+       Drop duplicated definition.
+       (ediff-difference-vector-A, ediff-difference-vector-B)
+       (ediff-difference-vector-C, ediff-difference-vector-Ancestor):
+       Move definition before 'ediff-difference-vector-alist'.
+
+2017-01-25  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "nnimap.el: support additional expunge options"
+
+       This reverts commit 4e9baea6aba1633074889339dcc7cdc9d73880d3.
+
+       The patch broke fetching new mail:
+
+       Debugger entered--Lisp error: (error "Format specifier doesn’t match 
argument type")
+         format("%d .*\n" (t ("OK" ("HIGHESTMODSEQ" "914696") "Expunge" 
"completed.") ("VANISHED" "1825937") ("0" "RECENT")))
+         (looking-at (format "%d .*\n" sequence))
+         (not (looking-at (format "%d .*\n" sequence)))
+         (progn (while (and (not (bobp)) (progn (forward-line -1) (looking-at 
"\\*\\|[0-9]+ OK NOOP")))) (not (looking-at (format "%d .*\n" sequence))))
+
+2017-01-25  Nikolaus Rath  <address@hidden>
+
+       nnimap.el: support additional expunge options
+
+       * lisp/gnus/nnimap.el (nnimap-close-group)
+       (nnimap-request-expire-articles, nnimap-delete-article)
+       (nnimap-request-scan): add new 'never, 'immediate, and 'on-exit
+       settings for nnimap-expunge (bug#20670).
+
+2017-01-25  Lars Ingebrigtsen  <address@hidden>
+
+       Don't tag Gnus bugs with "gnus"
+
+       * lisp/gnus/gnus-msg.el (gnus-bug): Remove the bug package tags.
+
+       * lisp/gnus/gnus.el (gnus-bug-package): Removed; Gnus doesn't
+       have its own package any more in the bug tracker.
+
+2017-01-25  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak TLS error messaging on closed connections
+
+       * src/gnutls.c (emacs_gnutls_handle_error): Demote the normal
+       peer-closed-connection "The TLS connection was non-properly
+       terminated" message to a lower level so that it isn't shown to
+       the user by default.
+
+2017-01-24  Lars Ingebrigtsen  <address@hidden>
+
+       Avoid having eww unexpectedly open external browsers
+
+       * lisp/net/eww.el (eww-render): Instead of opening unsupported
+       content types like audio/mpeg directly in an external browser
+       (which can be very confusing especially when something
+       redirects to a file like that), just display a simple
+       interstitial that people can choose to click on or not
+       (bug#22671).
+
+2017-01-24  Lars Ingebrigtsen  <address@hidden>
+
+       When opening new eww buffers, use buffer names based on the host name
+
+       * lisp/net/eww.el (eww-browse-url): When opening in a new
+       window, use a buffer name based on the host name (bug#23738).
+       (eww--dwim-expand-url): Refactored out into its own function
+       for easier reuse.
+
+2017-01-24  David Engster  <address@hidden>
+
+       xml: Fix parsing of default namespace with quoted names
+
+       * lisp/xml.el (xml-parse-attlist): Properly extract namespace when
+         parsing is done with quoted symbol names (bug#23440).
+       * test/lisp/xml-tests.el (xml-parse-test--default-namespace-qnames)
+         (xml-parse-test-default-namespace-qnames): Test for the above.
+
+2017-01-24  Lars Ingebrigtsen  <address@hidden>
+
+       Fix rendering of some complex SVG images
+
+       * lisp/net/shr.el (shr-parse-image-data): Don't transform
+       SVG->DOM->XML unless we're blocking images, as this is apt to
+       destroy the SVG (bug#24111).
+
+2017-01-24  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify the last clarification
+
+       * lisp/net/shr.el (shr-width): Clarify the interaction with
+       `shr-use-fonts' (bug#24928).
+
+2017-01-24  Lars Ingebrigtsen  <address@hidden>
+
+       shr-width doc clarification
+
+       * lisp/net/shr.el (shr-width): Clarify the interaction with
+       `shr-use-fonts' (bug#24928).
+
+2017-01-24  Lars Ingebrigtsen  <address@hidden>
+
+       Allow passing in max-width/height
+
+       * lisp/net/shr.el (shr-rescale-image): Allow passing in
+       max-width/height (bug#25287).
+
+2017-01-24  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/vhdl-mode.el: Avoid add-to-list on local vars
+
+       Require `cl' for `pushnew'.
+       (vhdl-scan-project-contents, vhdl-compose-wire-components)
+       (vhdl-uniquify): Use `pushnew' instead of `add-to-list'.
+
+2017-01-24  Noam Postavsky  <address@hidden>
+
+       Fix comment detection on open parens
+
+       Characters having both open paren syntax and comment start syntax were
+       being detected as open parens even when they should have been part a
+       comment starter (Bug#24870).
+
+       * src/syntax.c (in_2char_comment_start): New function, extracted from
+       `scan_sexps_forward'.
+       (scan_sexps_forward): Add check for a 2-char comment starter before the
+       loop.  Inside the loop, do that check after incrementing the 'from'
+       character index.  Move the single char comment syntax cases into the
+       switch instead of special casing them before.
+       * test/src/syntax-tests.el (parse-partial-sexp-paren-comments):
+       (parse-partial-sexp-continue-over-comment-marker): New tests.
+
+2017-01-23  Alan Mackenzie  <address@hidden>
+
+       Give , and .@ doc strings.  Fixes bug #24561.
+
+       Also make *Help* links to ``' possible.  Also make usable as such doc 
strings
+       on the function-documentation property of a symbol.
+
+       * lisp/emacs-lisp/backquote.el (top-level): Give , and '@ doc strings 
on the
+       function-documentation property.  Also give these symbols a 
reader-construct
+       property.
+
+       * lisp/help-fns.el (describe-function): Allow the function-documentation
+       property to work.  Use princ rather than prin1 to print the function's 
name
+       when it has a reader-construct property.
+       (help-fns-signature): Don't insert `high-usage' for a reader-construct.
+       (describe-function-1): Adapt to process documentation on the
+       function-documentation property.  Print "a reader construct" when 
appropriate.
+
+       * lisp/help-mode.el (help-xref-symbol-regexp): Amend this regexp also 
to match
+       ``'.
+
+2017-01-22  Paul Eggert  <address@hidden>
+
+       Improve uses of CHECK_LIST etc.
+
+       * src/eval.c (FletX): Report an error for invalid constructs like
+       ‘(let* (a . 0))’, so that ‘let*’ is more consistent with ‘let’.
+       (lambda_arity): Use plain CHECK_CONS.
+       * src/fns.c (CHECK_LIST_END): Move from here to lisp.h.
+       (Fcopy_alist): Remove unnecessary CHECK_LIST call, since
+       concat does that for us.
+       (Fnthcdr, Fmember, Fmemql, Fdelete, Fnreverse):
+       Use CHECK_LIST_END, not CHECK_LIST_CONS.  This hoists a
+       runtime check out of the loop.
+       (Fmemq): Simplify and use CHECK_LIST_END instead of CHECK_LIST.
+       (Fassq, Fassoc, Frassq, Frassoc):
+       Simplify and use CHECK_LIST_END instead of CAR.
+       (assq_no_quit, assoc_no_quit): Simplify and assume proper list.
+       (Fnconc): Use plain CHECK_CONS, and do-while instead of while loop.
+       * src/fontset.c (Fnew_fontset):
+       * src/frame.c (Fmodify_frame_parameters):
+       Use CHECK_LIST_END at end, rather than CHECK_LIST at start, for a
+       more-complete check.
+       * src/gfilenotify.c (Fgfile_add_watch):
+       Omit unnecessary CHECK_LIST, since Fmember does that for us.
+       * src/lisp.h (lisp_h_CHECK_LIST_CONS, CHECK_LIST_CONS):
+       Remove; no longer used.
+       (CHECK_LIST_END): New inline function.
+
+2017-01-22  Tino Calancha  <address@hidden>
+
+       Prevent to use tabulated-list--near-rows unbound
+
+       * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print-entry):
+       Make sure 'tabulated-list--near-rows' is bound before use it 
(Bug#25506).
+
+2017-01-22  Juri Linkov  <address@hidden>
+
+       * lisp/simple.el (region-bounds): New function.
+
+       (region-noncontiguous-p): Use it.
+       http://lists.gnu.org/archive/html/emacs-devel/2017-01/msg00044.html
+
+2017-01-21  Alan Mackenzie  <address@hidden>
+
+       Fix low-level handling of (big) C macros.
+
+       In particular, ensure that a comment detected by its syntax is not a CPP
+       construct marked with generic comment delimiter syntax-table text
+       properties.
+
+       * lisp/progmodes/cc-engine.el (c-beginning-of-macro, c-end-of-macro): 
Set
+       c-macro-cache-syntactic to nil when the cached macro changes.
+       (c-syntactic-end-of-macro, c-no-comment-end-of-macro)
+       (c-state-semi-pp-to-literal, c-state-full-pp-to-literal)
+       (c-state-pp-to-literal, c-parse-ps-state-to-cache)
+       (c-state-cache-non-literal-place, c-literal-limits, c-literal-start)
+       (c-determine-limit): When checking a parse syntax for a comment, check 
that
+       we're not in a CPP construct marked by syntax-table generic comment 
delimiter
+       text property.
+       (c-state-pp-to-literal): Change from a defsubst to a defun.
+
+       * lisp/progmodes/cc-mode.el (c-neutralize-syntax-in-and-mark-CPP): 
Check a
+       parse syntax as described above under cc-engine.el.
+
+2017-01-21  Vibhav Pant  <address@hidden>
+
+       * lisp/emacs-lisp/bytecomp.el: Remove unused debugging statements.
+
+2017-01-21  Noam Postavsky  <address@hidden>
+
+       Don't wait for frame to become visible
+
+       * src/xterm.c (x_make_frame_visible): Remove code that waits for the
+       frame to become visible.  We have to deal with invisible frames anyway,
+       the loop could sometimes before the frame turned visible, and for some
+       window managers (e.g., XMonad, i3wm) it caused Emacs to get stuck in a
+       busy loop (Bug#24091).
+
+2017-01-21  Tino Calancha  <address@hidden>
+
+       diff-hunk-kill independent of point inside headers
+
+       Make diff-apply-hunk and diff-hunk-kill independent of the point
+       position in a diff header (Bug#17544).
+       This change allows to apply hunks in order.  It also makes possible to
+       press M-k repeatedly to kill hunks in the order they appear in the 
buffer.
+       See discussion on #Bug25105.
+       * lisp/vc/diff-mode.el (diff-file-junk-re):
+       Move definition before it's used.
+       (diff--at-diff-header-p): New predicate; return non-nil when point
+       is inside a hunk header, a file header, or within a line
+       matching diff-file-junk-re.
+       (diff-beginning-of-hunk): Use it.
+       Check if the point is inside a diff header, in the middle of a hunk,
+       or before the first hunk.
+       (diff-apply-hunk): Call diff-beginning-of-hunk with non-nil arg
+       before apply the hunk.
+       (diff-hunk-kill, diff-file-kill):
+       Call diff-beginning-of-hunk with non-nil arg after kill the hunks.
+       (diff-post-command-hook): Call diff-beginning-of-hunk with non-nil 
argument.
+
+2017-01-20  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of hooks related to saving buffers
+
+       * lisp/files.el (write-file-functions, write-contents-functions)
+       (before-save-hook, after-save-hook): Note that these are only used
+       by save-buffer.
+
+       * doc/lispref/backups.texi (Auto-Saving):
+       * doc/lispref/files.texi (Saving Buffers): Mention that
+       save-related hooks are not run by auto-saving.  (Bug#25460)
+
+2017-01-20  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of auto-save-visited-file-name
+
+       * doc/emacs/files.texi (Auto Save Files): Mention subtle
+       differences between saving the buffer and auto-saving with
+       auto-save-visited-file-name set non-nil.  (Bug#25478)
+
+2017-01-20  Noam Postavsky  <address@hidden>
+
+       Fix free var FOO-mode-{syntax,abbrev}-table warnings
+
+       * lisp/emacs-lisp/derived.el (define-derived-mode): Unconditionally
+       defvar the syntax and abbrev tables so that the compiler will know that
+       they are dynamically bound variables (Bug#25446).
+
+2017-01-19  Vibhav Pant  <address@hidden>
+
+       * lisp/emacs-lisp/bytecomp.el: Fix errors with matching quoted forms
+
+       * lisp/emacs-lisp/bytecomp.el: (byte-compile-cond-jump-table-info)
+         eval obj2 to avoid quoted forms being stored as is.
+
+2017-01-19  Vibhav Pant  <address@hidden>
+
+       lisp/emacs-lisp/bytecomp.el: Use byte-switch only for quoted symbols
+
+2017-01-19  Vibhav Pant  <address@hidden>
+
+       * lisp/emacs-lisp/bytecomp.el: Add default-case for last cond clause.
+
+       * lisp/emacs-lisp/bytecomp.el: (byte-compile-cond-jump-table) Add
+       default-case for last cond clause.
+
+2017-01-19  Philipp Stephani  <address@hidden>
+
+       Check that variable lists are actually lists
+
+       'let' and 'let*' document that their first argument has to be a list,
+       but don't check for that; instead, they allow (and silently ignore)
+       other types.  Introduce an explicit type check.
+
+       * src/eval.c (Flet, FletX): Check that the variable list is indeed a
+       list.
+       * test/src/eval-tests.el: Add unit tests.
+
+2017-01-19  Vibhav Pant  <address@hidden>
+
+       Add type checking for Bswitch, when enabled at compile time.
+
+       * src/bytecode.c: (exec_byte_code) If BYTE_CODE_SAFE is enabled at
+         compile time, use CHECK_TYPE to verify that the jump table is a hash 
table.
+
+2017-01-19  Vibhav Pant  <address@hidden>
+
+       Use byte-switch for all symbols.
+
+       * lisp/emacs-lisp/bytecomp.el: (byte-compile-cond-valid-obj2-p) Return
+         t for all symbols (instead for just keywords)
+
+2017-01-19  Noam Postavsky  <address@hidden>
+
+       Avoid inefficient regex in diff-refine-hunk (Bug#25410)
+
+       * lisp/vc/diff-mode.el (diff--forward-while-leading-char): New function.
+       (diff-refine-hunk): Use it instead of trying to match multiple lines
+       with a single lines.
+
+2017-01-18  Eli Zaretskii  <address@hidden>
+
+       Remove lock file when auto-saving into the visited file
+
+       * src/fileio.c (write_region): When auto-saving into the visited
+       file, unlock the file whenever we mark the buffer unmodified.
+       (Bug#25470)
+
+2017-01-18  Vibhav Pant  <address@hidden>
+
+       * src/bytecode.c: (exec_byte_code) Use hash_lookup for Bswitch
+
+       Fgethash type checks the provided table object, which is unnecessary
+       for compiled bytecode.
+
+2017-01-18  Tom Tromey  <address@hidden>
+
+       fix typo in mailcap-mime-extensions
+
+       * lisp/net/mailcap.el (mailcap-mime-extensions): Use "text/x-patch",
+       not "test/x-patch".  (Bug#25472)
+
+2017-01-18  Lele Gaifax  <address@hidden>  (tiny change)
+
+       Fix typos in flymake.el
+
+       * lisp/progmodes/flymake.el (flymake-check-patch-master-file-buffer):
+       Spelling fixes in the doc string.
+
+2017-01-18  Eli Zaretskii  <address@hidden>
+
+       Fix a bug with signaling a thread that waits for condvar
+
+       * src/thread.c (lisp_mutex_lock_for_thread): New function,
+       with all the guts of lisp_mutex_lock.
+       (lisp_mutex_lock): Call lisp_mutex_lock_for_thread.
+       (condition_wait_callback): Don't call post_acquire_global_lock
+       before locking the mutex, as that could cause a signaled thread to
+       exit prematurely, because the condvar's mutex is recorded to be
+       not owned by any thread, and with-mutex wants to unlock it as part
+       of unwinding the stack in response to the signal.
+
+2017-01-18  Eli Zaretskii  <address@hidden>
+
+       Rudimentary error handling for non-main threads
+
+       * src/thread.c (last_thread_error): New static variable.
+       (syms_of_threads): Staticpro it.
+       (record_thread_error, Fthread_last_error): New functions.
+       (syms_of_threads): Defsubr Fthread_last_error.
+
+       * doc/lispref/threads.texi (Basic Thread Functions): Document
+       thread-last-error.
+
+       * test/src/thread-tests.el (thread-errors, thread-signal-early)
+       (threads-condvar-wait): Test the values returned by
+       thread-last-error.
+
+2017-01-17  Tom Tromey  <address@hidden>
+
+       Add info-lookup help for gdb-script-mode
+
+       Bug#25464:
+       * lisp/info-look.el (info-lookup-guess-gdb-script-symbol): New
+       function.
+       Add help for gdb-script-mode.
+
+2017-01-17  Tom Tromey  <address@hidden>
+
+       Treat ":root" as a css-selector
+
+       * lisp/textmodes/css-mode.el (css--font-lock-keywords): Recognize bare
+       ":root" as selector.
+
+2017-01-17  Tom Tromey  <address@hidden>
+
+       Fix JS regexp literal syntax propertization in expressions
+
+       Bug#25465:
+       * lisp/progmodes/js.el (js-syntax-propertize): Recognize a regexp
+       literal after "!", "&", and "|".
+       test/lisp/progmodes/js-tests.el (js-mode-regexp-syntax): New test.
+
+2017-01-17  Glenn Morris  <address@hidden>
+
+       More NEWS checking for admin.el's set-version
+
+       * admin/admin.el (set-version): Warn if temporary NEWS markup
+       still present in release candidates.
+
+2017-01-17  Mark Oteiza  <address@hidden>
+
+       Mark unused arguments and remove unused variables
+
+       * lisp/play/dunnet.el (dun-mode, dun-die, dun-inven, dun-try-take):
+       (dun-dig, dun-type, dun-n, dun-s, dun-e, dun-w, dun-ne, dun-se):
+       (dun-nw, dun-sw, dun-up, dun-down, dun-in, dun-out, dun-long):
+       (dun-swim, dun-score, dun-flush, dun-piss, dun-sleep, dun-drive):
+       (dun-superb, dun-power, dun-unix-parse, dun-bin, dun-fascii):
+       (dun-ftpquit, dun-ftphelp, dun-uexit, dun-pwd, dun-dos-parse):
+       (dun-dos-invd, dun-dos-spawn, dun-dos-exit, dun-dos-nil):
+       (dungeon-nil): Mark arguments as unused.
+       (dun-drop, dun-objnum-from-args, dun-get-path, dun-ftp):
+       (dun-restore): Remove unused variable.
+
+2017-01-17  Michael Albinus  <address@hidden>
+
+       Fix auto-save-file-name problem in Tramp on MS Windows
+
+       * lisp/files.el (make-auto-save-file-name): Use `file-remote-p'
+       rather than an ange-ftp regexp.
+
+       * lisp/net/tramp.el (tramp-handle-make-auto-save-file-name):
+       Fix a problem when running on MS Windows.
+
+       * test/lisp/net/tramp-tests.el (tramp-test31-make-auto-save-file-name):
+       Adapt test.
+
+2017-01-17  Michael Albinus  <address@hidden>
+
+       Fix auto-save-file-name problem in Tramp on MS Windows. Do not merge
+
+       * lisp/net/tramp.el (tramp-handle-make-auto-save-file-name):
+       Fix a problem when running on MS Windows.
+
+2017-01-17  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-25
+
+       42614fa Update remaining copyright years with admin.el M-x set-copyright
+       f17a006 * lisp/ffap.el (ffap-lax-url): Bump :version after recent cha...
+
+2017-01-17  Mark Oteiza  <address@hidden>
+
+       Nix some uses of eval
+
+       * lisp/play/dunnet.el: Fix triple negative.
+       (dun-doverb): Use funcall instead of eval.
+       (dun-echo): Just call dun-mprinc.
+       (dun-save-val): Just bind value without eval.
+
+2017-01-17  Tom Tromey  <address@hidden>
+
+       Fix comment in css-mode.el
+
+       * lisp/textmodes/css-mode.el: Remove obsolete comment.
+
+2017-01-16  Vibhav Pant  <address@hidden>
+
+       update branch
+
+2017-01-16  Ian Dunn  <address@hidden>  (tiny change)
+
+       * lisp/net/eww.el (eww-tag-meta): Handle single quoted URLs (Bug#25445).
+
+2017-01-15  Noam Postavsky  <address@hidden>
+
+       Improve ffap-gopher-at-point handling of long lines
+
+       * lisp/ffap.el (ffap-gopher-regexp): Only match the KEY part.  Note
+       setting to nil is now supported.
+       (ffap--gopher-var-on-line): New function.
+       (ffap-gopher-at-point): Use it instead of the old ffap-gopher-regexp
+       which could overflow the regexp stack on long lines (Bug#25391).  Use
+       `let-alist' instead of calling `set' on local variables.
+       * test/lisp/ffap-tests.el (ffap-gopher-at-point): New test.
+
+2017-01-15  Vibhav Pant  <address@hidden>
+
+       * lisp/emacs-lisp/byte-opt.el: Optimize how tags are checked for use.
+
+       * byte-opt.el: (byte-optimize-lapcode): Return nil instantly on
+         finding the tag in a jump table.
+
+2017-01-15  Vibhav Pant  <address@hidden>
+
+       * lisp/emacs-lisp/bytecomp.el: Add documentation, remove code 
duplication
+
+2017-01-14  Vibhav Pant  <address@hidden>
+
+       Add new 'switch' byte-code.
+
+       'switch' takes two arguments from the stack: the variable to test, and
+       a jump table (implemented as a hash-table with the appropriate :test
+       function). By looking up the value of the variable in the hash table,
+       the interpreter can jump to the label pointed to by the value, if any.
+       This implementation can only be used for `cond' forms of the type
+       `(cond ((test x 'foo) 'bar) ...)`, such that the function `test` and
+       variable `x` is same for all clauses.
+
+       * lisp/emacs-lisp/bytecomp.el:
+
+         * Add (byte-compile-cond-valid-obj2-p), (byte-compile-cond-vars),
+           (byte-compile-cond-jump-table-info), 
(byte-compile-jump-table-add-tag),
+           (byte-compile-cond-jump-table), byte-compile-jump-tables.
+
+         * Add defcustom `byte-compile-cond-use-jump-table'.
+
+         * (byte-compile-cond): Use them.
+
+         * (byte-compile-lapcode): Patch tags present in jump tables, if any.
+
+       * lisp/emacs-lisp//byte-opt.el: (byte-optimize-lapcode): Add checks to
+         some peephole optimizations to prevent them from messing up any code
+         involving `byte-switch`.
+
+       * src/bytecode.c: (exec_byte_code): Add bytecode Bswitch.
+
+2017-01-14  Alan Third  <address@hidden>
+
+       Fix NS main thread check (bug#25265)
+
+       * src/nsterm.m (ns_read_socket, ns_select): Replace mainThread with
+       isMainThread.
+
+2017-01-14  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/sql.el (sql-product-alist): Doc tweak
+
+       `:sqli-comint-func' does not have to be a symbol.
+
+2017-01-14  Alan Mackenzie  <address@hidden>
+
+       Correct c-parse-state-get-strategy for moving HERE backward into a 
macro.
+
+       * list/progmodes/c-engine.el (c-parse-state-get-strategy): When HERE is 
below
+       its previous value, we chose strategy 'forward, and the new HERE is in a
+       (different) macro, ensure the returned START-POINT is not above the 
start of
+       the macro.
+
+2017-01-14  Eli Zaretskii  <address@hidden>
+
+       Include "Date:" in mail messages filed by 'sendmail-send-it'
+
+       * lisp/mail/sendmail.el (mail-do-fcc): Insert a 'Date:' header
+       into the filed message.  In the outgoing message, sendmail will
+       add the date, but the composed message body doesn't have it.
+       (Bug#25436)
+
+2017-01-14  Eli Zaretskii  <address@hidden>
+
+       * lisp/progmodes/sql.el (sql-product-alist): Doc fix.  (Bug#25440)
+
+2017-01-14  Dmitry Gutov  <address@hidden>
+
+       Remove leftover references to log-view-message-face
+
+       * lisp/vc/vc-bzr.el (vc-bzr-log-view-mode): Use log-view-message.
+
+       * lisp/vc/vc-git.el (vc-git-root-log-format): Same.
+
+       * lisp/vc/vc-hg.el (vc-hg-root-log-format): Same.
+
+2017-01-13  Phillip Lord  <address@hidden>
+
+       Record autoloads till emacs dump
+
+       * admin/ldefs-clean.el (ldefs-clean-up): Record autoloads till emacs 
dump
+       * lisp/ldefs-boot-auto.el (batch-byte-compile): Update
+
+       Previously, autoloads were collected till loaddefs.el was generated as
+       part of the build. However, bootstrap-emacs does not load
+       loaddefs (rather it is dumped), hence we must record autoloads until the
+       full emacs binary is dumped.
+
+2017-01-13  Tom Tromey  <address@hidden>
+
+       Add chained indentation to js-mode
+
+       Bug#20896
+       * lisp/progmodes/js.el (js-chain-indent): New variable.
+       (js--skip-term-backward, js--skip-terms-backward)
+       (js--chained-expression-p): New functions.
+       (js--proper-indentation): Call js--chained-expression-p.
+       * test/manual/indent/js-chain.js: New file.
+       * test/manual/indent/js.js: Add (non-)chained indentation test.
+
+2017-01-13  Tom Tromey  <address@hidden>
+
+       Fix js-mode indentation bug
+
+       Bug#15582:
+       * lisp/progmodes/js.el (js--find-newline-backward): New function.
+       (js--continued-expression-p): Use it.
+       * test/manual/indent/js.js: Add new test.
+
+2017-01-13  Tom Tromey  <address@hidden>
+
+       Fix definition of EMACS in test/manual/indent/Makefile
+
+       * test/manual/indent/Makefile (EMACS): Add one more "..".
+
+2017-01-13  Tom Tromey  <address@hidden>
+
+       Add .jsx to auto-mode-alist
+
+       Bug#25389:
+       * lisp/files.el (auto-mode-alist): Add entry for .jsx.
+
+2017-01-13  Tom Tromey  <address@hidden>
+
+       Fix two js-mode filling bugs
+
+       Bug#19399 and Bug#22431:
+       * lisp/progmodes/js.el (js-mode): Set comment-line-break-function and
+       c-block-comment-start-regexp.
+       * test/lisp/progmodes/js-tests.el: New file.
+
+2017-01-13  Eli Zaretskii  <address@hidden>
+
+       Fix last change
+
+       * test/src/thread-tests.el (threads-condvar-wait): Revert
+       previous change.  Make sure no other threads from previous
+       tests are running, to avoid interfering with our thread counts.
+
+2017-01-13  Eli Zaretskii  <address@hidden>
+
+       Fix the new condvar test
+
+       * test/src/thread-tests.el (threads-condvar-wait): Enlarge the
+       time we sleep in the main thread to let the other thread
+       process notifications.
+
+2017-01-13  Eli Zaretskii  <address@hidden>
+
+       Minor improvements in the new condvar test
+
+       * test/src/thread-tests.el (threads-test-condvar-wait): Use
+       with-mutex instead of emulating it inline.
+       (threads-condvar-wait): Improve comments.  Check that the new
+       thread is alive before waiting for it to become blocked on the
+       conditional variable.
+
+2017-01-13  Eli Zaretskii  <address@hidden>
+
+       Fix a bug in waiting for condition variable
+
+       * src/thread.c (lisp_mutex_lock, lisp_mutex_unlock)
+       (lisp_mutex_unlock_for_wait, condition_wait_callback)
+       (condition_notify_callback): Improve commentary.
+       (condition_wait_callback): Call post_acquire_global_lock before
+       attempting to lock the mutex, to make sure the lock's owner is
+       recorded correctly.
+
+       * test/src/thread-tests.el (threads-condvar-wait): New test.
+
+2017-01-13  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of dabbrevs
+
+       * doc/emacs/abbrevs.texi (Dynamic Abbrevs): Add a cross reference
+       to "Dabbrev Customization".
+       (Dabbrev Customization): More details about the default value of
+       dabbrev-abbrev-char-regexp and use cases when it might not be good
+       enough.  (Bug#25432)
+
+2017-01-13  Katsumi Yamaoka  <address@hidden>
+
+       Fix last change of dd80ee6 (was: mm-uu.el: Don't dissect patch part)
+
+2017-01-13  Katsumi Yamaoka  <address@hidden>
+
+       mm-uu.el: Don't dissect patch part
+
+       This fixes a bug that the patch part is broken in the article
+       <address@hidden> in the bug-gnu-emacs list.
+
+       * lisp/gnus/mm-uu.el (mm-uu-dissect-text-parts):
+       Don't dissect patch part.
+
+2017-01-13  Dmitry Lazurkin  <address@hidden>
+
+       Fix extracting async def type and name in python mode imenu
+
+       * lisp/progmodes/python.el (python-imenu--get-defun-type-name):
+       New function.
+       (python-imenu--build-tree): Use python-imenu--get-defun-type-name for
+       extract async or simple def type and name at current
+       position (Bug#24820).
+       * test/lisp/progmodes/python-tests.el (python-imenu-create-index-1):
+       (python-imenu-create-flat-index-1): Add async def's.
+
+2017-01-13  Katsumi Yamaoka  <address@hidden>
+
+       Remove garbage from Content-Transfer-Encoding value (bug#25420)
+
+       * lisp/mail/ietf-drums.el (ietf-drums-strip-cte): New function.
+       (ietf-drums-remove-garbage): New function.
+       (ietf-drums-remove-whitespace): Remove CR as well.
+
+       * lisp/mail/mail-parse.el (mail-header-strip-cte):
+       Alias to ietf-drums-strip-cte.
+
+       * lisp/gnus/gnus-art.el (article-decode-charset):
+       * lisp/gnus/gnus-sum.el (gnus-summary-enter-digest-group):
+       * lisp/gnus/mm-decode.el (mm-dissect-buffer):
+       * lisp/gnus/nndoc.el (nndoc-decode-content-transfer-encoding)
+       (nndoc-rfc822-forward-generate-article):
+       * lisp/mh-e/mh-mime.el (mh-decode-message-body):
+       Replace mail-header-strip with mail-header-strip-cte.
+
+2017-01-13  Paul Eggert  <address@hidden>
+
+       Restore behavior of ‘./autogen.sh autoconf git’
+
+       * autogen.sh: Do both autoconf and git setup when invoked
+       as ‘./autogen.sh autoconf git’.  Avoid unnecessary newline in chatter.
+       Mention new --no-check option in usage message.  (Bug#25359)
+
+2017-01-12  Glenn Morris  <address@hidden>
+
+       * autogen.sh: Simplify argument parsing.
+
+2017-01-12  Noam Postavsky  <address@hidden>
+
+       Clarify that easy-menu-add is a nop (Bug#25382)
+
+       * lisp/emacs-lisp/easymenu.el (easy-menu-add): Make it into an alias of
+       `ignore', like `easy-menu-remove'.
+
+2017-01-12  Glenn Morris  <address@hidden>
+
+       * lisp/textmodes/rst.el (rst-package-emacs-version-alist): Fix entry.
+
+2017-01-11  Glenn Morris  <address@hidden>
+
+       * autogen.sh: Add --no-check option.  (Bug#25359)
+
+2017-01-11  Glenn Morris  <address@hidden>
+
+       Convert some network test failures to skipping
+
+       These tests intermittently fail on hydra.nixos.org for unclear
+       reasons related to starting the external process.
+       This isn't an Emacs issue, and the failures cause noise on
+       the emacs-buildstatus list.  (Bug#24503)
+       * test/lisp/net/network-stream-tests.el (echo-server-nowait)
+       (connect-to-tls-ipv4-nowait): Skip rather than fail if the
+       external process fails to start properly.
+
+2017-01-11  Eli Zaretskii  <address@hidden>
+
+       Revert "Add DNS keywords and remove duplications"
+
+       This reverts commit 1cb9aa5b14867983d0013a61709b4d0af18364ff.
+
+2017-01-11  Alexander Kuleshov  <address@hidden>
+
+       Add DNS keywords and remove duplications
+
+       * lisp/textmodes/dns-mode.el (dns-mode-types): Add two TLSA and
+       NSEC" DNS related keywords and remove duplication of "NSAP".
+
+2017-01-11  Alexander Kuleshov  <address@hidden>
+
+       Add DNS keywords and remove duplications
+
+       * lisp/textmodes/dns-mode.el (dns-mode-types): Add two TLSA and
+       NSEC" DNS related keywords and remove duplication of "NSAP".
+
+2017-01-11  Alan Mackenzie  <address@hidden>
+
+       Handle syntactic WS cache properties more accurately at buffer changes.
+
+       This fixes bug #25362.
+
+       * lisp/progmodes/cc-engine.el (c-sws-lit-type, c-sws-lit-limits)
+       (c-invalidate-sws-region-before, c-invalidate-sws-region-after-del)
+       (c-invalidate-sws-region-after-ins): New variables and functions.
+       (c-invalidate-sws-region-after): Change from a defsubst to a defun.
+       Also pass
+       it the standard OLD-LEN argument.  Call both
+       c-invalidate-sws-region-after-{ins,del} to check for "dangerous" WS
+       cache
+       properties.
+
+       * lisp/progmodes/cc-langs.el (c-block-comment-ender-regexp): New 
language
+       variable.
+
+       * lisp/progmodes/cc-mode.el (c-before-change): Call
+       c-invalidate-sws-region-before.
+       (c-after-change): Pass old-len to c-invalidate-sws-region-after.
+
+2017-01-11  Michael Albinus  <address@hidden>
+
+       Support stat 8.26 in Tramp
+
+       * lisp/net/tramp-sh.el (tramp-get-remote-stat): Use QUOTING_STYLE
+       environment variable of newer coreutils.  (Bug#23422)
+
+2017-01-10  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of coding-systems
+
+       * doc/lispref/nonascii.texi (Coding System Basics): Mention
+       'prefer-utf-8'.  Index it and 'undecided'.
+       (Encoding and I/O): Fix a typo.
+       (User-Chosen Coding Systems): Improve the documentation of
+       ACCEPT-DEFAULT-P argument to select-safe-coding-system.  Document
+       select-safe-coding-system-function.
+       (Specifying Coding Systems): Document coding-system-require-warning.
+
+2017-01-10  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2017-01-09 maint: time stamp -> timestamp
+       2017-01-07 stdioext: Port to Minix 3.2 and newer
+       2017-01-06 glob, intprops, xalloc: work around Clang bug
+       2017-01-02 revert copyright-year change to synced files
+       * doc/misc/texinfo.tex, lib/fpending.c, lib/intprops.h, lib/mktime.c:
+       * lib/stat-time.h, lib/stdio-impl.h, lib/time.in.h, lib/timespec.h:
+       * lib/utimens.c, lib/xalloc-oversized.h:
+       Copy from gnulib.
+
+2017-01-10  Eli Zaretskii  <address@hidden>
+
+       Don't use unsafe encoding for the bookmark file
+
+       * lisp/bookmark.el (bookmark-write-file): Handle the case when the
+       explicitly specified encoding of the bookmark file cannot encode the
+       additional bookmarks just added.  (Bug#25365)
+
+2017-01-09  Eli Zaretskii  <address@hidden>
+
+       Improve definition of 'variable-pitch' face on MS-Windows
+
+       * lisp/faces.el (variable-pitch): Don't specify too many
+       attributes of the font, otherwise faces that request different
+       weight or slant or size will not get them.
+
+2017-01-09  Eli Zaretskii  <address@hidden>
+
+       Fix an error message in python.el
+
+       * lisp/progmodes/python.el (python-shell-get-process-or-error):
+       Don't repeat the same key binding twice.  (Bug#25405)
+
+2017-01-09  Phillip Lord  <address@hidden>
+
+       Remove unused ldefs-boot.el
+
+        * lisp/ldefs-boot.el: Remove
+
+       This file was not removed as reported in c27b645956a11, but accidentally
+       left.
+
+2017-01-09  Noam Postavsky  <address@hidden>
+           Eli Zaretskii  <address@hidden>
+
+       Use expanded stack during regex matches
+
+       While the stack is increased in main(), to allow the regex stack
+       allocation to use alloca we also need to modify regex.c to actually take
+       advantage of the increased stack, and not limit stack allocations to
+       SAFE_ALLOCA bytes.
+
+       * src/regex.c (MATCH_MAY_ALLOCATE): Remove obsolete comment about
+       allocations in signal handlers which no longer happens and correct
+       description about when and why MATCH_MAY_ALLOCATE should be defined.
+       (emacs_re_safe_alloca): New variable.
+       (REGEX_USE_SAFE_ALLOCA): Use it as the limit of stack allocation instead
+       of MAX_ALLOCA.
+       (emacs_re_max_failures): Rename from `re_max_failures' to avoid
+       confusion with glibc's `re_max_failures'.
+       * src/emacs.c (main): Increase the amount of fixed 'extra' bytes we add
+       to the stack.  Instead of changing emacs_re_max_failures based on the
+       new stack size, just change emacs_re_safe_alloca; emacs_re_max_failures
+       remains constant regardless, since if we run out stack space SAFE_ALLOCA
+       will fall back to heap allocation.
+
+2017-01-09  Noam Postavsky  <address@hidden>
+
+       Fix computation of regex stack limit
+
+       The regex stack limit was being computed as the number of stack entries,
+       whereas it was being compared with the current size as measured in
+       bytes.  This could cause indefinite looping when nearing the stack limit
+       if re_max_failures happened not to be a multiple of sizeof
+       fail_stack_elt_t (Bug #24751).
+
+       * src/regex.c (GROW_FAIL_STACK): Compute both current stack size and
+       limit as numbers of stack entries.
+
+2017-01-08  Alan Third  <address@hidden>
+
+       Remove apploopnr
+
+       * src/nsterm.m (ns_select, ns_read_socket): Remove apploopnr and only
+       allow app loop to run in main thread.
+
+2017-01-08  Glenn Morris  <address@hidden>
+
+       Remove unused configure output variable
+
+       * configure.ac (GNULIB_MK):
+       * Makefile.in (gnulib_mk): Remove, no longer used.
+
+2017-01-08  Glenn Morris  <address@hidden>
+
+       Fix automake dependencies
+
+       * Makefile.in (AUTOMAKE_INPUTS): Add nt/gnulib.mk.  (Bug#25372)
+       All platforms need this file to exist.
+
+2017-01-08  Paul Eggert  <address@hidden>
+
+       Remove unnecessary blankp code
+
+       * src/character.c (blankp): Remove redundant code that slows Emacs
+       down a bit.  The caller already does the test.
+
+2017-01-08  Stefan Merten  <address@hidden>
+
+       * lisp/textmodes/rst.el: Fix rst-forward-indented-block.
+
+               * rst.el (rst-cvs-header, rst-svn-rev, rst-svn-timestamp)
+               (rst-official-version, rst-official-cvs-rev)
+               (rst-package-emacs-version-alist): Maintain version numbers.
+               (rst-forward-indented-block): Fix. Start searching at next
+               line again. Fixes fontification of comments continuing on the
+               same line they started.
+
+2017-01-08  Paul Eggert  <address@hidden>
+
+       Remove @SET_MAKE@ from manually-maintained files
+
+       Emacs now assumes GNU Make, so @SET_MAKE@ is no longer needed.
+       * Makefile.in, lwlib/Makefile.in, nextstep/Makefile.in:
+       * src/Makefile.in: Remove @address@hidden
+
+2017-01-07  Michael Albinus  <address@hidden>
+
+       Fix a problem with `start-file-process' in Tramp
+
+       * lisp/net/tramp-sh.el (tramp-maybe-open-connection):
+       `start-file-process' shall work when `non-essential' is
+       non-nil, but there is already an established connection.
+       <https://github.com/company-mode/company-mode/issues/462>
+
+2017-01-07  Rolf Ade  <address@hidden>  (tiny change)
+
+       Fix selecting SQLite database files with sql-mode (Bug#23566)
+
+       * lisp/progmodes/sql.el (sql-sqlite-login-params): Allow any name as
+       SQLite database file name, by default.
+       (sql-get-login-ext): Fixed read-file-name arguments to provide
+       path completion even if a database name pattern is customized and to
+       allow creation of new SQLite database files.
+
+2017-01-07  Noam Postavsky  <address@hidden>
+
+       Clarify major mode switching
+
+       * doc/emacs/modes.texi (Major Modes):
+       * doc/lispref/modes.texi (Modes, Major Modes): Explictly say that each
+       buffer has exactly one major mode and can't be "turned off", only
+       switched away from (Bug#25357).
+
+2017-01-07  Noam Postavsky  <address@hidden>
+
+       Add helpful comment to compile-command's docstring
+
+       * lisp/progmodes/compile.el (compile-command): Mention trailing space in
+       docstring (Bug#25337).
+
+2017-01-07  Eli Zaretskii  <address@hidden>
+
+       Specify encoding of the bookmark file
+
+       * lisp/bookmark.el (bookmark-insert-file-format-version-stamp):
+       Accept an argument CODING and include a 'coding:' cookie in the
+       bookmark file preamble.
+       (bookmark-upgrade-file-format-from-0): Call
+       'bookmark-insert-file-format-version-stamp' with the file buffer's
+       encoding, as detected when it was read.
+       (bookmark-file-coding-system): New variable.
+       (bookmark-load): Set bookmark-file-coding-system to the encoding
+       of the loaded file.
+       (bookmark-write-file): Bind coding-system-for-write to either the
+       user setting via "C-x RET c" or to the existing file encoding,
+       defaulting to 'utf-8-emacs'.  Update the value of
+       bookmark-file-coding-system.  (Bug#25365)
+
+2017-01-07  Eli Zaretskii  <address@hidden>
+
+       Avoid infloop in 'ispell-region'
+
+       * lisp/textmodes/ispell.el (ispell-begin-skip-region-regexp):
+       Protect against 'ispell-skip-region-alist' being nil.  Reported by
+       Ernest Adrogué <address@hidden>, see
+       http://lists.gnu.org/archive/html/help-gnu-emacs/2017-01/msg00007.html.
+
+2017-01-06  Philipp Stephani  <address@hidden>
+
+       Add support for Unicode whitespace in [:blank:]
+
+       See Bug#25366.
+
+       * src/character.c (blankp): New function for checking Unicode
+       horizontal whitespace.
+       * src/regex.c (ISBLANK): Use 'blankp' for non-ASCII horizontal
+       whitespace.
+       (BIT_BLANK): New bit for range table.
+       (re_wctype_to_bit, execute_charset): Use it.
+       * test/lisp/subr-tests.el (subr-tests--string-match-p--blank): Add
+       unit test for [:blank:] character class.
+       * test/src/regex-tests.el (test): Adapt unit test.
+       * doc/lispref/searching.texi (Char Classes): Document new Unicode
+       behavior for [:blank:].
+
+2017-01-06  Eli Zaretskii  <address@hidden>
+
+       Fix ':version' of 'select-enable-primary'
+
+       * lisp/select.el (select-enable-primary): Fix a typo in
+       ':version'.  (Bug#25375)
+
+2017-01-06  Stefan Monnier  <address@hidden>
+
+       (feedmail-deduce-address-list): Avoid add-to-list on local variables.
+
+       Author:
+
+       * lisp/mail/feedmail.el (feedmail-deduce-address-list):
+       Avoid add-to-list on local variables.
+
+2017-01-06  Noam Postavsky  <address@hidden>
+
+       Fix isearch handling of C-u C-u...
+
+       * lisp/isearch.el: Add `isearch-scroll' property to
+       universal-argument-more so that `isearch-allow-scroll' will apply to it
+       as well.
+       (isearch-pre-command-hook): Let `isearch-allow-prefix' apply to
+       `universal-argument-more' as well (Bug#25302).
+
+2017-01-05  Paul Eggert  <address@hidden>
+
+       Shorten autogen.sh script
+
+       * autogen.sh: Use a shorter script, as some 'sed' implementations
+       mishandle long scripts.
+
+2017-01-05  Eli Zaretskii  <address@hidden>
+
+       Yet another fix for autogen.sh
+
+       * autogen.sh (gnulib.mk): Make the Sed script more portable.
+
+       * nt/Makefile.in (${srcdir}/gnulib.mk): Adapt the Sed command to
+       the changes in autogen.sh.
+
+2017-01-05  Eli Zaretskii  <address@hidden>
+
+       * autogen.sh (gnulib.mk): Another attempt to fix macOS build.
+
+2017-01-05  Eli Zaretskii  <address@hidden>
+
+       Fix dependencies of nt/gnulib.mk
+
+       * Makefile.in ($(srcdir)/nt/gnulib.mk): Avoid circular dependency
+       of nt/gnulib.mk on lib/Makefile.in.
+
+2017-01-05  Eli Zaretskii  <address@hidden>
+
+       Unbreak macOS build
+
+       * autogen.sh (gnulib.mk): Don't use non-portable extensions of GNU
+       Sed.
+
+2017-01-05  Johan Claesson  <address@hidden>  (tiny change)
+
+       Fix term.el handling of ^Z-sequences spanning chunks
+
+       Bash will after each command send ?\032 and the current directory "/tmp"
+       to inform term.el.  Bash output is buffered in 4096 bytes chunks.  If a
+       command outputs roughly 4096 bytes then the end of the first chunk will
+       be "/tm" (Bug#13350).
+
+       * lisp/term.el (term-emulate-terminal): Change the regexp to find the
+       end of the ?\032 sequence to use \n instead of $, the latter can match
+       end of string as well.
+
+2017-01-05  Mark Oteiza  <address@hidden>
+
+       Turn on lexical-binding in mb-depth.el
+
+       * lisp/mb-depth.el: Turn on lexical-binding.
+       (minibuffer-depth-setup): Bind things used multiple times.
+
+2017-01-04  Alan Third  <address@hidden>
+
+       Revert "Rework NS event handling (bug#25265)"
+
+       This reverts commit e0e5b0f4a4ce1d19ee0240c514dedd873d4165dc.
+
+2017-01-04  Glenn Morris  <address@hidden>
+
+       Update remaining copyright years with admin.el M-x set-copyright
+
+       * etc/refcards/ru-refcard.tex (cyear): Set to 2017.
+
+2017-01-04  Glenn Morris  <address@hidden>
+
+       * lisp/ffap.el (ffap-lax-url): Bump :version after recent change.
+
+2017-01-04  Paul Eggert  <address@hidden>
+
+       Port recent autogen.sh changes to Darwin
+
+       Problem reported by Sam Steingold (Bug#25347).
+       * autogen.sh: Don't assume 'sed -f-' reads a script from stdin, as
+       POSIX does not require it and it does not work on Darwin.
+
+2017-01-04  Stefan Monnier  <address@hidden>
+
+       Avoid add-to-list on local variables
+
+       * lisp/gnus/nnir.el: Use lexical-binding and cl-lib.
+       (nnir-retrieve-headers): Use pcase.
+       (nnir-search-thread): Avoid add-to-list on local variables.
+
+       * lisp/gnus/smime.el: Use lexical-binding and cl-lib.
+       (smime-verify-region): Avoid add-to-list on local variables.
+
+       * lisp/mail/undigest.el: Use lexical-binding and cl-lib.
+       (rmail-digest-parse-mime, rmail-digest-rfc1153)
+       (rmail-digest-parse-rfc934): Avoid add-to-list on local variable.
+
+       * lisp/net/ldap.el (ldap-search): Move init into declaration.
+
+       * lisp/net/newst-backend.el (newsticker--cache-add):
+       Avoid add-to-list on local variables; Simplify code with `assq'.
+
+       * lisp/net/zeroconf.el: Use lexical-binding and cl-lib.
+       (dbus-debug): Remove declaration, unused.
+       (zeroconf-service-add-hook, zeroconf-service-remove-hook)
+       (zeroconf-service-browser-handler, zeroconf-publish-service):
+       Avoid add-to-list and *-hook on local variables.
+
+       * lisp/org/org-archive.el (org-all-archive-files):
+       * lisp/org/org-agenda.el (org-agenda-get-restriction-and-command):
+       Avoid add-to-list on local variables.
+
+       * lisp/org/ox-publish.el (org-publish--run-functions): New function.
+       (org-publish-projects): Use it to avoid run-hooks on a local variable.
+       (org-publish-cache-file-needs-publishing): Avoid add-to-list on
+       local variables.
+
+       * lisp/progmodes/ada-prj.el: Use setq instead of (set '...).
+       (ada-prj-load-from-file): Avoid add-to-list on local variables.
+
+       * lisp/progmodes/ada-xref.el (ada-initialize-runtime-library): Simplify.
+       (ada-gnat-parse-gpr, ada-parse-prj-file-1)
+       (ada-xref-find-in-modified-ali): Avoid add-to-list on local variables.
+
+       * lisp/progmodes/idlw-shell.el (idlwave-shell-update-bp-overlays):
+       Avoid add-to-list on local variables.
+
+2017-01-04  Mark Oteiza  <address@hidden>
+
+       Turn on lexical-binding in md4.el
+
+       * lisp/md4.el: Turn on lexical-binding.
+       * test/lisp/md4-tests.el: New file.
+
+2017-01-03  Stefan Merten  <address@hidden>
+
+       Lots of refactorings and a few minor improvements.
+
+       User visible improvements and changes:
+       * Improve and debug `rst-forward-section` and `rst-backward-section`.
+       * Auto-enumeration may be used with all styles for list insertion.
+       * Improve and debug `rst-toc-insert`.
+       * Adapt change in Emacs to use customization group `text` instead of 
`wp`.
+       * Bind `n` and `p` in `rst-toc-mode`.
+       * `z` in `toc-mode` returns to the previous window configuration.
+       * Require Emacs version >= 24.1.
+
+       Lots of refactorings including:
+       * Silence byte compiler.
+       * Use lexical binding.
+       * Use `cl-lib`.
+       * Add tests and raise test coverage.
+
+2017-01-03  Stefan Monnier  <address@hidden>
+
+       (cl-defstruct): Improve error message for slots w/o value (bug#25312)
+
+       * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Don't signal an error but
+       emit a warning for those coders who forgot to put a default value in
+       their slot.
+
+2017-01-03  Philipp Stephani  <address@hidden>
+
+       Small patch for ffap.el
+
+       * lisp/ffap.el (ffap-alist): Document that ffap sets the match data
+       while walking 'ffap-alist'.
+
+2017-01-03  Eli Zaretskii  <address@hidden>
+
+       Generate nt/gnulib.mk from lib/gnulib.mk
+
+       This was proposed by Paul Eggert <address@hidden>,
+       with the purpose of avoiding manual maintenance of
+       nt/gnulib.mk.
+
+       * nt/gnulib-modules-to-delete.cfg: New file.
+       * nt/Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0)
+       (am__v_GEN_1): New variables.
+       (${srcdir}/gnulib.mk): Rules to generate gnulib.mk from
+       lib/gnulib.mk and list of modules in gnulib-modules-to-delete.cfg.
+
+       * make-dist (nt): Add gnulib-modules-to-delete.cfg to the list of
+       files to link.
+       * configure.ac (GNULIB_MK): Compute the value according to $opsys.
+       * autogen.sh: Create nt/gnulib.mk if it doesn't exist, before
+       running autoreconf.
+       * Makefile.in (gnulib_mk): New variable.
+       ($(srcdir)/nt/gnulib.mk): Rule to produce it.
+       (AUTOMAKE_INPUTS): Use $(gnulib_mk) instead of a literal file
+       name.
+       * .gitignore: Add nt/gnulib.mk.
+
+       * src/w32.c (acl_errno_valid): Implement it here, as we no longer
+       build the acl-permissions module from Gnulib.
+
+2017-01-03  Noam Postavsky  <address@hidden>
+
+       Handle multibyte chars spanning chunks in term.el
+
+       * lisp/term.el (term-terminal-undecoded-bytes): New variable.
+       (term-mode): Make it buffer local.  Don't make `term-terminal-parameter'
+       buffer-local twice.
+       (term-emulate-terminal): Check for bytes of incompletely decoded
+       characters, and save them until the next call when they can be fully
+       decoded (Bug#25288).
+
+2017-01-03  Michael Albinus  <address@hidden>
+
+       Finish work on filenotify-tests.el
+
+       * test/lisp/filenotify-tests.el (file-notify--test-monitors):
+       New variable.
+       (file-notify--test-cleanup, file-notify--test-monitor): Use it.
+       (file-notify--test-read-event, file-notify-test02-events)
+       (file-notify-test04-file-validity): Handle "gvfs-monitor-dir.exe".
+       (file-notify-test03-autorevert)
+       (file-notify-test08-watched-file-in-watched-dir):
+       Set `file-notify--test-desc' for proper work of
+       `file-notify--test-monitor'.  (Bug#21804)
+
+2017-01-02  Michael Albinus  <address@hidden>
+
+       Check also for "gvfs-monitor-dir.exe" in Tramp
+
+       * lisp/net/tramp-sh.el (tramp-get-remote-gvfs-monitor-dir): Check also
+       for "gvfs-monitor-dir.exe".
+
+2017-01-02  Eli Zaretskii  <address@hidden>
+
+       Fix compilation --without-x
+
+       * src/composite.c (autocmp_chars) [HAVE_WINDOW_SYSTEM]: Call
+       font_range only if it is compiled in.  (Bug#25334)
+
+2017-01-02  Sašo Živanović  <address@hidden>
+
+       Fix RefTeX to show table of contents for dtx files (tiny change)
+
+       * lisp/textmodes/reftex.el (reftex-compile-variables): Change the
+         section regexp so that it accepts lines starting with the comment
+         character. (tiny change)
+       * lisp/textmodes/reftex-parse.el (reftex-parse-from-file): Filter
+         gathered toc entries, accepting a commented entry if and only if the
+         source file is a ".dtx" file. (tiny change)
+
+2017-01-02  Paul Eggert  <address@hidden>
+
+       Remove mistakenly-added files
+
+       Problem reported by Glenn Morris in:
+       http://lists.gnu.org/archive/html/emacs-devel/2017-01/msg00008.html
+       * lisp/gnus/gnus-ems.el, lisp/gnus/gnus-sync.el:
+       * lisp/gnus/messcompat.el, lisp/nxml/nxml-glyph.el:
+       * lisp/nxml/nxml-uchnm.el, lisp/obsolete/awk-mode.el:
+       * lisp/obsolete/iso-acc.el, lisp/obsolete/iso-insert.el:
+       * lisp/obsolete/iso-swed.el, lisp/obsolete/resume.el:
+       * lisp/obsolete/scribe.el, lisp/obsolete/spell.el:
+       * lisp/obsolete/swedish.el, lisp/obsolete/sym-comp.el:
+       Remove files that were added by mistake during a merge.
+
+2017-01-01  Noam Postavsky  <address@hidden>
+
+       Warn about incomplete untarring of link files
+
+       The current tar-mode doesn't really support unpacking symlinks, it
+       simply creates an empty file of the same name.
+
+       * lisp/tar-mode.el (tar--describe-as-link): New function extracted from
+       `tar--check-descriptor'.
+       (tar-untar-buffer): Use it to warn about imperfectly untarred link
+       files.
+
+2017-01-01  Noam Postavsky  <address@hidden>
+
+       Remove sh-mode's skeleton-end-hook
+
+       * lisp/progmodes/sh-script.el (sh-mode): Remove local setting of
+       `skeleton-end-hook', `skeleton-insert' already does `newline-and-indent'
+       and also respects `skeleton-end-newline' (Bug#16634).
+
+2017-01-01  Paul Eggert  <address@hidden>
+
+       * nt/gnulib.mk (stdint.h): Update to match lib/gnulib.mk here.
+
+2017-01-01  Mark Oteiza  <address@hidden>
+
+       Add term/tmux.el
+
+       Since tmux version 2.1, new tmux terminfos are shipped due to oddities
+       with xterm and screen terminfos.  This is simply a duplication of
+       term/screen.el with screen -> tmux.
+       * lisp/term/tmux.el: New file.
+
+2017-01-01  Philipp Stephani  <address@hidden>
+
+       Fix encoding of JSON surrogate pairs
+
+       JSON requires that such pairs be treated as UTF-16 surrogate pairs, not
+       individual code points; cf. Bug #24784.
+
+       * lisp/json.el (json-read-escaped-char): Fix decoding of surrogate
+       pairs.
+       (json--decode-utf-16-surrogates): New defun.
+
+       * test/lisp/json-tests.el (test-json-read-string): Add test for
+       surrogate pairs.
+
+2017-01-01  Michael Albinus  <address@hidden>
+
+       Remove tramp-gw.el, which was synced from emacs-25 by accident
+
+2017-01-01  Paul Eggert  <address@hidden>
+
+       Do not use Gnulib’s m4/wint_t.m4.
+
+       * admin/merge-gnulib: Remove m4/wint_t.m4 when merging.
+       Fix typo so that warn-on-use.m4 is removed too.
+       * configure.ac (gt_TYPE_WINT_T): New macro, replacing Gnulib’s.
+       * m4/wint_t.m4: Remove.
+
+2017-01-01  Paul Eggert  <address@hidden>
+
+       Merge from gnulib, continued
+
+       * m4/wint_t.m4: New file, copied from gnulib.
+
+2017-01-01  Paul Eggert  <address@hidden>
+
+       Update copyright year to 2017 in master
+
+       Run admin/update-copyright in the master branch.  This fixes files
+       that were not already fixed in the emacs-25 branch before it was
+       merged here.
+
+2017-01-01  Paul Eggert  <address@hidden>
+
+       Remove test/automated detritus from merge
+
+2017-01-01  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2016-12-19 stdint: Fix WINT_MAX to match wint_t on mingw
+       2016-12-18 getopt: Fix link error for users of getopt() in <unistd.h>
+       2016-12-17 getlogin: Port to newer mingw
+       2016-12-17 stdint: Fix WINT_MAX to match wint_t on MSVC
+       2016-12-17 Avoid redefinition errors on MSVC
+       * lib/getopt.in.h, lib/stdint.in.h, lib/stdio.in.h, lib/unistd.in.h:
+       * m4/stdint.m4, m4/unistd_h.m4:
+       Copy from gnulib.
+       * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
+       Plus, this commit updates the indenting on copyright notices to
+       match that of gnulib.
+
+2017-01-01  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-25
+
+       2e2a806 Fix copyright years by hand
+       5badc81 Update copyright year to 2017
+
+2017-01-01  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-25
+
+       665be69 ; Update ChangeLog.2 and AUTHORS files
+
+       # Conflicts:
+       #       etc/AUTHORS
+
+2017-01-01  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-25
+
+       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
+
+2017-01-01  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-25
+
+       4179238 Improve documentation of 'w32-scroll-lock-modifier'
+
+2017-01-01  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-25
+
+       9adb101 Document 'describe-fontset'
+       229315c ; Add missing symbol quoting.
+       3d94931 Repair desktop restoration on text terminals
+       43022f9 Ignore forward-sexp-function in js-mode indentation code
+       b19fb49 Improve documentation of 'define-coding-system'
+       467768f Fix Bug#25162
+       6db78ae Fix a typo in define-abbrev-table
+       5f7d906 Bump makeinfo requirement from 4.7 to 4.13
+       442e2f6 Fixes related to select-enable-clipboard
+       e4ac450 Define struct predicate before acccesors
+       08decbd Doc fix for vc-git
+       5531e75 Further improve make-dist checking
+       953bf67 Improve previous make-dist change
+       129645a Make make-dist --snapshot do some sanity checks
+
+       # Conflicts:
+       #       lisp/menu-bar.el
+
+2017-01-01  Alan Mackenzie  <address@hidden>
+
+       Give eval-and-compile a correct edebug spec.  Fixes bug #16184 properly.
+
+       * lisp/emacs-lisp/edebug.el (edebug_offset_indices): Revert abortive 
commit
+       from Thu Dec 29 09:22:36 2016 +0000 which didn't really fix the bug.
+
+       * lisp/emacs-lisp/byte-run.el (eval-and-compile): Change the edebug 
spec from
+       t to (&rest def-form).
+
+2017-01-01  Paul Eggert  <address@hidden>
+
+       Fix copyright years by hand
+
+       These are dates that admin/update-copyright did not update, or
+       updated incorrectly.
+
+2017-01-01  Paul Eggert  <address@hidden>
+
+       Update copyright year to 2017
+
+       Run admin/update-copyright.
+
+2016-12-31  Paul Eggert  <address@hidden>
+
+       Clarify internal_catch etc.
+
+       The recent change to internal_catch and friends relied on some
+       confusion I introduced to the code in 2013.  Attempt to fix
+       the confusion by clarifying the code instead.  This saves an
+       instruction and a load dependency in the typical case.
+       * src/eval.c (internal_catch, internal_condition_case)
+       (internal_condition_case_1, internal_condition_case_2)
+       (internal_condition_case_n): Undo the previous change.  Instead,
+       use use ‘c’ rather than ‘handlerlist’ in the typical case.
+       Also, use ‘eassert’ rather than ‘clobbered_eassert’ when possible.
+
+2016-12-31  Ken Brown  <address@hidden>
+
+       Further improve filenotify-tests.el
+
+       * test/lisp/filenotify-tests.el
+       (file-notify--test-read-event): Adapt to file monitors of type
+       GFamFileMonitor, which occur on Cygwin.
+       (file-notify--test-monitor): Update doc string.
+
+2016-12-31  Paul Eggert  <address@hidden>
+
+       * src/xdisp.c (string_from_display_spec): Simplify.
+
+2016-12-31  Alan Third  <address@hidden>
+
+       Rework NS event handling (bug#25265)
+
+       * src/nsterm.m (unwind_apploopnr): Remove.
+       (ns_read_socket): Remove references to apploopnr.  Make processing the
+       NS event loop conditional on being in the main thread.
+       (ns_select): Remove references to apploopnr.  Remove all fd_handler
+       related stuff.  Check if there are events waiting on the NS event
+       queue rather than running the event loop.  Remove unused variables and
+       code.
+       (fd_handler): Remove.
+       (ns_term_init): Remove creation of fd_handler thread.
+       (hold_event, EmacsApp:sendEvent, EmacsView:mouseMoved,
+       EmacsView:windowDidExpose): Remove send_appdefined.
+       (ns_send_appdefined): Always check the event queue for
+       applicationDefined events rather than relying on send_appdefined var.
+       * src/nsterm.h: Remove reference to fd_handler method.
+
+2016-12-31  Philipp Stephani  <address@hidden>
+
+       Checkdoc: use syntax functions instead of regex
+
+       In checkdoc.el, get rid of the error-prone regex to find definition
+       forms, and use existing syntax-based navigation functions instead.
+       This fixes a corner case with one-argument `defvar' forms.
+
+       * lisp/emacs-lisp/checkdoc.el (checkdoc--next-docstring): New function.
+       (checkdoc-next-docstring, checkdoc-defun): Use it.
+       * test/lisp/emacs-lisp/checkdoc-tests.el 
(checkdoc-tests--next-docstring):
+       Add unit test.
+
+2016-12-31  Eli Zaretskii  <address@hidden>
+
+       Don't define NOMINMAX on MS-Windows
+
+       * src/callproc.c (NOMINMAX) [WINDOWSNT]: Don't define.  This is no
+       longer needed with the current sources and MinGW headers, while
+       defining NOMINMAX causes an annoying compiler warning.
+
+2016-12-31  Chris Gregory  <address@hidden>  (tiny change)
+
+       Simplify code in eval.c that calls 'setjmp'
+
+       * src/eval.c (internal_catch, internal_condition_case)
+       (internal_condition_case_1, internal_condition_case_2)
+       (internal_condition_case_n): Factor out the common tail of the
+       functions.
+
+2016-12-31  Chris Gregory  <address@hidden>  (tiny change)
+
+       Simplify code in 'string_from_display_spec'
+
+       * src/xdisp.c (string_from_display_spec): Eliminate a redundant
+       test before the loop.
+
+2016-12-31  Eli Zaretskii  <address@hidden>
+
+       Serialize random number generation on MS-Windows
+
+       * src/w32.c (rand_as183): New function.
+       (random): Use it instead of MS runtime's 'rand'.  This avoids
+       producing separate and identical random series in each Lisp
+       thread.
+       (srandom): Modify to supply 3 seed values to 'rand_as183'.
+
+2016-12-31  Michael Albinus  <address@hidden>
+
+       * src/gfilenotify.c (Fgfile_monitor_name): Return interned symbol.
+
+2016-12-30  Ken Raeburn  <address@hidden>
+
+       Don't call xg_select for a NextStep build.
+
+       NextStep builds use glib but don't use xg_select.
+
+       * src/process.c (wait_reading_process_output): Don't call xg_select
+       for a NextStep build.
+
+2016-12-30  Ken Raeburn  <address@hidden>
+
+       Increase the obarray size.
+
+       In a typical GNU/Linux/X11 build, we wind up with over 15k symbols by
+       the time we've started.  The old obarray size ensured an average chain
+       length of 10 or more.
+
+       * src/lread.c (OBARRAY_SIZE): Increase to 15121.
+
+2016-12-30  Ken Raeburn  <address@hidden>
+
+       Initialize thread support for Xlib.
+
+       * src/xterm.c (x_initialize) [THREADS_ENABLED]: Call XInitThreads
+       before doing anything else with X.
+
+2016-12-30  Paul Eggert  <address@hidden>
+
+       Rename primary_thread to main_thread
+
+       This avoids the confusion of using two different phrases "main thread"
+       and "primary thread" internally to mean the same thing.  See:
+       http://lists.gnu.org/archive/html/emacs-devel/2016-12/msg01142.html
+       * src/thread.c (main_thread): Rename from primary_thread,
+       since the new name no longer clashes with main_thread_id
+       and Emacs internals normally call this the "main thread".
+       (init_main_thread): Rename from init_primary_thread.
+       (main_thread_p): Rename from primary_thread_p.
+       All uses changed.
+
+2016-12-30  Paul Eggert  <address@hidden>
+
+       Rename main_thread to main_thread_id and simplify
+
+       * src/emacs-module.c: Include syssignal.h, for main_thread_id.
+       [HAVE_PTHREAD]: Do not include pthread.h.
+       (main_thread): Remove.  All uses replaced by main_thread_id,
+       or by dwMainThreadId on NT.  Since the HAVE_PTHREAD code is now using
+       the main_thread_id established by sysdep.c, there is no need for a
+       separate copy of the main thread ID here.
+       (module_init): Remove.  All uses removed.
+       * src/sysdep.c (main_thread_id) [HAVE_PTHREAD]:
+       Rename from main_thread.  All uses changed.  Now extern.
+
+2016-12-30  Michael Albinus  <address@hidden>
+
+       * src/gfilenotify.c (Fgfile_monitor_name): Return a symbol.
+
+2016-12-30  Paul Eggert  <address@hidden>
+
+       * src/sysdep.c (deliver_process_signal): Improve comment.
+
+2016-12-30  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Fix the fontification of a spuriously recognised enum member.
+
+       The "enum" was in an argument list, but triggered the fontification of a
+       following identifier in the function block as though it were in an enum
+       declaration.
+
+       * lisp/progmodes/cc-fonts.el (c-font-lock-enum-body): New function.
+       (c-basic-matchers-after): Replace the inline stanza for enum elements 
with a
+       call to c-font-lock-enum-body.
+
+       * lisp/progmodes/cc-langs.el (c-enum-clause-introduction-re): New 
language
+       variable.
+
+2016-12-30  Nicolas Petton  <address@hidden>
+
+       Bump Emacs version to 25.1.91
+
+       * README:
+       * configure.ac:
+       * msdos/sed2v2.inp:
+       * nt/README.W32: Bump Emacs version.
+       * lisp/ldefs-boot.el: Update.
+
+2016-12-30  Eli Zaretskii  <address@hidden>
+
+       Attempt to fix crashes with threads in GTK builds
+
+       * src/xgselect.c (xg_select): Call pselect via thread_select, not
+       directly, to avoid running Lisp (via unblock_input) when more than
+       one thread could be running.  (Bug#25247)
+       * src/process.c (wait_reading_process_output) [HAVE_GLIB]: Call
+       xg_select directly instead of through thread_select.
+       * src/xgselect.h (xg_select): Last 2 arguments are no longer
+       'const', for consistency with thread_select.
+
+2016-12-30  Arash Esbati  <address@hidden>
+
+       Add entry for biblatex
+
+       * lisp/textmodes/reftex-vars.el (reftex-cite-format-builtin): Add
+       entry for biblatex macros.
+
+2016-12-30  Alan Mackenzie  <address@hidden>
+
+       Backport: Remove an ambiguity from defvar's doc string.  Fixes bug 
#25292.
+
+       The ambiguity was whether INITVALUE is evaluated when it's not going to 
be
+       used to set SYMBOL's value.
+
+       * src/eval.c (defvar): Rewrite a paragraph of the doc string.
+
+       (cherry picked from commit 8295e97f18490a535d1188a3daf0b0fd1bf4fa0d)
+
+2016-12-30  Tino Calancha  <address@hidden>
+
+       ffap-string-at-point: Limit max length of active region
+
+       Prevents that 'ffap-guesser' waste time checking large strings
+       which are likely not valid candidates (Bug#25243).
+       * lisp/ffap.el (ffap-max-region-length): New variable.
+       (ffap-string-at-point): Use it.
+       * test/lisp/ffap-tests.el: New test suite.
+       (ffap-tests-25243): Add test for this bug.
+
+2016-12-30  Thien-Thi Nguyen  <address@hidden>
+
+       last-chance: Also ignore NEWS files + typo fixes
+
+       * admin/last-chance.el: Fix typo in copyright notice.
+       (last-chance-uninteresting-regexps): Add entry to match NEWS files.
+       (last-chance-cleanup): Fix typo in docstring.
+
+2016-12-29  Mike Kupfer  <address@hidden>
+
+       * mh-e.el (mh-fetch-x-image-url): Fix a docstring typo.
+
+2016-12-29  Alan Mackenzie  <address@hidden>
+
+       Remove an ambiguity from defvar's doc string.  Fixes bug #25292.
+
+       The ambiguity was whether INITVALUE is evaluated when it's not going to 
be
+       used to set SYMBOL's value.
+
+       * src/eval.c (defvar): Rewrite a paragraph of the doc string.
+
+2016-12-29  Michael Albinus  <address@hidden>
+
+       Improve filenotify-tests.el
+
+       * src/inotify.c (Finotify_valid_p):
+       * src/kqueue.c (Fkqueue_valid_p):
+       * src/w32notify.c (Fw32notify_valid_p):
+       * src/gfilenotify.c (Fgfile_valid_p): Fix typo in docstring.
+       (Fgfile_monitor_name): New defun.
+       (syms_of_gfilenotify): Declare Sgfile_monitor_name.
+
+       * test/lisp/filenotify-tests.el (file-notify--test-read-event):
+       New defun, derived from `file-notify--test-read-event-timeout'.
+       Replace all calls of `read-event' by this.
+       (file-notify--test-timeout): Fix docstring.
+       (file-notify--test-monitor): New defun.
+       (file-notify--deftest-remote): Do not bind
+       `file-notify--test-read-event-timeout' anymore.
+       (file-notify-test00-availability): Print also monitor, if existent.
+       (file-notify--test-with-events): Add an additional
+       `file-notify--test-read-event' call, in order to get it work
+       after `file-notify-add-watch'.  Remove special timeout for cygwin.
+       (file-notify-test02-events): Make a better check for cygwin.
+       (file-notify-test06-many-events): Improve event list for cygwin.
+       (file-notify-test08-watched-file-in-watched-dir): Add cygwin case.
+
+2016-12-29  Alan Mackenzie  <address@hidden>
+
+       Partially correct fontification of "(b*3)", and the like, in C++ Mode
+
+       This problem is caused by the fundamental ambiguity in C++ between
+       argument declarations and initialisation clauses.
+
+       * lisp/progmodes/cc-fonts.el (c-font-lock-declarations): If we have an 
open
+       paren preceded by an arithmetic operator, we give this the context nil, 
not
+       'arglist.
+
+       * lisp/progmodes/cc-langs.el (c-arithmetic-operators, 
c-arithmetic-op-regexp):
+       New lang consts and vars.
+
+2016-12-29  Alan Mackenzie  <address@hidden>
+
+       Initialize edebug-offset-indices to a cons, not nil.  Fixes bug #16184.
+
+       This is because there are times when this variable is changed by setcar 
before
+       an atom is pushed onto it by debug-enter.  This happens, for example, 
whilst
+       instrumenting c-font-lock-declarations in 
.../lisp/progmodes/cc-fonts.el.
+
+       * lisp/emacs-lisp/edebug.el (edebug-offset-indices): initialize to '(0).
+
+2016-12-28  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/inline.el: Fix apply-conversion (bug#25280)
+
+       (inline--dont-quote): Quote the function with #' when passing it to 
`apply'.
+       Cherry picked from commit e6161f648903d821865b9610b3b6aa0f82a5dcb7.
+
+2016-12-27  Michael Albinus  <address@hidden>
+
+       Release Tramp 2.3.1
+
+       * doc/misc/trampver.texi:
+       * lisp/net/trampver.el: Change version to "2.3.1".
+
+       * lisp/net/tramp.el (tramp-eshell-directory-change): Add it to
+       `eshell-mode-hook' but `eshell-first-time-mode-hook'.
+
+       * lisp/net/tramp-compat.el (tramp-compat-file-name-quoted-p)
+       (tramp-compat-file-name-quote)
+       (tramp-compat-file-name-unquote): Embed them in `eval-and-compile'.
+
+2016-12-27  Paul Eggert  <address@hidden>
+
+       Simplify prog1 implementation
+
+       Inspired by a suggestion from Chris Gregory in:
+       http://lists.gnu.org/archive/html/emacs-devel/2016-12/msg00965.html
+       On my platform, this generates exactly the same machine insns.
+       * src/eval.c (prog_ignore): Rename from unwind_body, since
+       it’s more general than that.  All callers changed.
+       (Fprog1): Simplify by using prog_ignore.
+       (Fwhile): Clarify by using prog_ignore.
+
+2016-12-27  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/inline.el: Fix apply-conversion (bug#25280)
+
+       (inline--dont-quote): Quote the function with #' when passing it to 
`apply'.
+
+2016-12-27  Mark Oteiza  <address@hidden>
+
+       Remove a use of lexical-let
+
+       * lisp/gnus/message.el (message-completion-function): Just use let,
+       since the file now uses lexical-binding.
+
+2016-12-27  Ken Brown  <address@hidden>
+
+       Improve filenotify-tests.el on Cygwin (Bug #21804)
+
+       * test/lisp/filenotify-tests.el [CYGWIN]
+       (file-notify--test-read-event-timeout): Increase.
+       (file-notify--test-with-events): Add delay before executing body.
+       (file-notify-test02-events, file-notify-test04-file-validity):
+       Adjust expected results.
+
+2016-12-27  Eli Zaretskii  <address@hidden>
+
+       Fix expand-file-name on DOS_NT systems when /: escaping is used
+
+       * src/fileio.c (Fexpand_file_name) [DOS_NT]: Don't expand "~" in
+       file names escaped by "/:".  Don't recursively expand
+       default-directory escaped with "/:" which is not followed by a
+       drive spec.  (Bug#25183)
+
+2016-12-27  Bake Timmons  <address@hidden>
+
+       Fix `mail-sources' value of `(group)' in Gnus manual (bug#25275)
+
+       * doc/misc/gnus.texi (Mail Source Specifiers):
+       Replace wrong `mail-sources' value of `(group)' in Gnus manual with
+       the correct `((group))' value.  (bug#25275) (tiny change)
+
+2016-12-27  Bake Timmons  <address@hidden>
+
+       Fix bug in customizing `mail-sources' variable (bug#25274)
+
+       * lisp/gnus/mail-source.el (mail-sources): Use list instead of cons
+       for lone argument. (bug#25274) (tiny change)
+
+2016-12-26  Philipp Stephani  <address@hidden>
+
+       Checkdoc: Don't require a space before an arg list
+
+       See Bug#24998.
+
+       * lisp/emacs-lisp/checkdoc.el (checkdoc-defun-regexp): Don't require a
+       space before a argument list.
+       * test/lisp/emacs-lisp/checkdoc-tests.el (checkdoc-tests--bug-24998):
+       Add unit test.
+
+2016-12-26  Eli Zaretskii  <address@hidden>
+
+       Document 'default-toplevel-value' and 'set-default-toplevel-value'
+
+       * doc/lispref/variables.texi (Default Value): Document
+       'default-toplevel-value' and 'set-default-toplevel-value'.
+
+2016-12-25  Michihito Shigemura  <address@hidden>  (tiny change)
+
+       Add zshrc and zshenv detection to sh-mode (bug#25217)
+
+       * lisp/progmodes/sh-script.el (sh-mode): Add zsh string-match
+
+2016-12-25  Paul Eggert  <address@hidden>
+
+       Fix typo in lisp.h reordering patch
+
+       * src/lisp.h (XUNTAG) [!USE_LSB_TAG]: Remove duplicate defn.
+       Reported by Eli Zaretskii (Bug#25128#19).
+
+2016-12-25  Paul Eggert  <address@hidden>
+
+       regex.h now includes sys/types.h
+
+       * src/dired.c, src/emacs.c, src/search.c, src/syntax.c, src/thread.h:
+       Do not include sys/types.h; no longer needed.
+       * src/regex.h: Include <sys/types.h>, as that's what Gnulib and
+       glibc regex.h does, and POSIX has blessed this since 2008.
+
+2016-12-25  Paul Eggert  <address@hidden>
+
+       Reorder lisp.h to declare types before using them
+
+       This puts basic functions for types to be after the corresponding
+       type definitions.  This is a more-common programming style in C,
+       and will make it easier to port Emacs to gcc
+       -fcheck-pointer-bounds, since the functions now have access to the
+       corresponding types' sizes.  This patch does not change the code;
+       it just moves declarations and definitions and removes
+       no-longer-needed forward declarations (Bug#25128).
+       * src/buffer.c, src/data.c, src/image.c:
+       Include process.h, for PROCESSP.
+       * src/buffer.h (BUFFERP, CHECK_BUFFER, XBUFFER):
+       * src/process.h (PROCESSP, CHECK_PROCESS, XPROCESS):
+       * src/termhooks.h (TERMINALP, XTERMINAL):
+       * src/window.h (WINDOWP, CHECK_WINDOW, XWINDOW):
+       * src/thread.h (THREADP, CHECK_THREAD, XTHREAD, MUTEXP, CHECK_MUTEX)
+       (XMUTEX, CONDVARP, CHECK_CONDVAR, XCONDVAR):
+       Move here from lisp.h.
+       * src/intervals.h: Include buffer.h, for BUFFERP.
+       Include lisp.h, for Lisp_Object.
+       * src/lisp.h: Reorder declarations and definitions as described
+       above.  Move thread includes to be later, so that they can use the
+       reordered definitions.  Move some symbols to other headers (noted
+       elsewhere).  Remove forward decls that are no longer needed.
+       * src/thread.h: Include systhread.h here, not in lisp.h,
+       since lisp.h itself does not need systhread.h.
+
+2016-12-25  Leo Liu  <address@hidden>
+
+       Don't modify minibuffer variables globally
+
+       * lisp/files.el (cd): Use setq-local instead.  (Bug#25260)
+
+2016-12-25  Dima Kogan  <address@hidden>
+
+       diff-mode auto-refines only after a successful motion
+
+       Prior to this patch (if enabled) auto-refinement would kick in after all
+       hunk navigation commands, even if the motion failed.  This would result
+       in a situation where the hunk navigation would signal an error and beep,
+       but yet still accomplish potentially useful work, by auto-refining.
+       This patch moves the auto-refinement code to only run when a motion was
+       successful
+
+       * lisp/vc/diff-mode.el (diff--internal-hunk-next,
+         diff--internal-hunk-prev): Removed auto-refinement-triggering code
+       * lisp/vc/diff-mode.el (diff--wrap-navigation): Added
+         auto-refinement-triggering code
+
+2016-12-25  Dima Kogan  <address@hidden>
+
+       diff-mode is able to better handle file headers
+
+       This fixes a regression introduced in
+
+         
http://git.savannah.gnu.org/gitweb/?p=emacs.git;a=commit;h=2c8a7e50d24daf19ea7d86f1cfeaa98a41c56085
+
+       This bug was filed in
+
+         https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25105
+
+       Patches generated from a VCS such as git contain a patch message at the
+       start, and diff-mode is now once-again able to properly able to ignore
+       this message when issuing navigation commands around the message.
+
+       * lisp/vc/diff-mode.el (diff-beginning-of-file-and-junk): More
+         thoroughly ignore the header when looking for a beginning of file
+         diffs.
+
+2016-12-25  Paul Eggert  <address@hidden>
+
+       Use libpng-config --ldflags, not --libs
+
+       Problem reported by James K. Lowden (Bug#25268).
+       * configure.ac (LIBPNG): Pass --ldflags, not --libs, to libpng-config.
+
+2016-12-24  Eli Zaretskii  <address@hidden>
+
+       Revert to pre-25.1 behavior in ffap
+
+       * lisp/ffap.el (ffap-lax-url): Change the default to t, to produce
+       the same behavior as in Emacs 24.x.  (Bug#25264)
+       Explain the trade-offs of customizing this in the doc string.
+
+2016-12-24  Noam Postavsky  <address@hidden>
+
+       * lisp/ffap.el: Fix obsolete comment referencing ffap-bug.
+
+2016-12-24  Noam Postavsky  <address@hidden>
+
+       Remove redundant `save-match-data' in whitespace.el
+
+       * lisp/whitespace.el (whitespace-cleanup, whitespace-cleanup-region):
+       (whitespace-report-region): Remove redundant `save-match-data' calls.
+
+2016-12-24  Noam Postavsky  <address@hidden>
+
+       Fix whitespace eob cleanup
+
+       * lisp/whitespace.el (whitespace-empty-at-eob-regexp): Match any number
+       of empty lines at end of buffer.
+       * test/lisp/whitespace-tests.el (whitespace-cleanup-eob): New test.
+       (whitespace-tests--cleanup-string): New helper function for tests.
+
+2016-12-24  Hong Xu  <address@hidden>
+
+       Fix timezone detection of parse-iso8601-time-string
+
+       * parse-time.el (parse-iso8601-time-string): Fix timezone
+       parsing.  Add a doc string.  (Bug#25086)
+       * editfns.c (Fdecode-time): Doc fix.
+       * emacs-mime.texi (time-date): Add an example for
+       parse-iso8601-time-string.
+       * parse-time-tests.el (parse-time-tests): Add tests for
+       parse-iso8601-time-string.
+
+2016-12-24  Paul Eggert  <address@hidden>
+
+       Simplify exec_byte_code via moving decls etc.
+
+       * src/bytecode.c (exec_byte_code): Simplify, mostly by moving
+       initializers into decls, and by omitting some unnecessary changes
+       to ‘top’.
+
+2016-12-24  Paul Eggert  <address@hidden>
+
+       Remove interpreter’s byte stack
+
+       This improves performance overall on my benchmark on x86-64,
+       since the interpreted program-counter resides in a machine
+       register rather than in RAM.
+       * etc/DEBUG, src/.gdbinit: Remove xbytecode GDB command, as there
+       is no longer a byte stack to decode.
+       * src/bytecode.c (struct byte_stack, byte_stack_list)
+       (relocate_byte_stack): Remove.  All uses removed.
+       (FETCH): Simplify now that pc is now local (typically, in a
+       register) and no longer needs to be relocated.
+       (CHECK_RANGE): Remove.  All uses now done inline, in a different way.
+       (BYTE_CODE_QUIT): Remove; now done by op_relative_branch.
+       (exec_byte_code): Allocate a copy of the function’s bytecode,
+       so that there is no problem if GC moves it.
+       * src/lisp.h (struct handler): Remove byte_stack member.
+       All uses removed.
+       * src/thread.c (unmark_threads): Remove.  All uses removed.
+       * src/thread.h (struct thread_state): Remove m_byte_stack_list member.
+       All uses removed.  m_stack_bottom is now the first non-Lisp field.
+
+2016-12-24  Paul Eggert  <address@hidden>
+
+       BYTE_CODE_SAFE typo fix
+
+       * src/bytecode.c (FETCH): Depend on the value of BYTE_CODE_SAFE,
+       not on whether it is defined.
+
+2016-12-24  Paul Eggert  <address@hidden>
+
+       BYTE_CODE_SAFE cleanups
+
+       * src/bytecode.c (BYTE_MAINTAIN_TOP): Remove; no longer needed.
+       (struct byte_stack) [BYTE_MAINTAIN_TOP]:
+       Remove unused members ‘top’ and ‘bottom’.
+       (exec_byte_code): Nest inside { } to avoid GCC warning about
+       jumping over declaration when compiled with -DBYTE_CODE_SAFE.
+
+2016-12-24  Thien-Thi Nguyen  <address@hidden>
+
+       last-chance: new utility lib for dangling deterrence
+
+       * admin/last-chance.el: New file.
+
+2016-12-24  Paul Eggert  <address@hidden>
+
+       Use max_align_t instead of void *
+
+       * src/thread.c (run_thread): Don’t assume void * is aligned enough.
+
+2016-12-23  Eli Zaretskii  <address@hidden>
+
+       Attempt to fix 64-bit AIX build
+
+       * src/unexaix.c (make_hdr, copy_text_and_data, write_segment): Fix
+       type-casts that assumed 32-bit pointers.  (Bug#25141)
+
+2016-12-23  Philipp Stephani  <address@hidden>
+
+       Clarify usage of 'ediff-cleanup-hook' (Bug#24675)
+
+       * doc/misc/ediff.texi (Hooks): Clarify usage of 'ediff-cleanup-hook'
+
+2016-12-23  Philipp Stephani  <address@hidden>
+
+       Document that variable binding order is unspecified
+
+       * doc/lispref/variables.texi (Local Variables):
+       * cl.texi (Modify Macros): Document that binding order in 'let' and
+       'cl-letf' is unspecified.
+
+2016-12-23  Eli Zaretskii  <address@hidden>
+
+       Prevent infloops in redisplay due to truncate-lines and overlays
+
+       * src/xdisp.c (hscroll_window_tree): Avoid inflooping in
+       redisplay_window when a screen line ends in an overlay string with
+       a newline.  (Bug#25246)
+
+2016-12-23  Philipp Stephani  <address@hidden>
+
+       Treat incomplete integer literals as errors
+
+       See Bug#25120.
+
+       * src/lread.c (read_integer): Treat incomplete integer literals as 
errors.
+       * test/src/lread-tests.el (lread-empty-int-literal): New unit test for
+       incomplete integer literals.
+
+2016-12-23  Eli Zaretskii  <address@hidden>
+
+       * lisp/desktop.el (desktop-buffers-not-to-save): Doc fix.
+
+2016-12-23  Stefan Monnier  <address@hidden>
+
+       Fix M-x hints on Mac port
+
+       * lisp/simple.el (execute-extended-command--shorter): Call
+       input-pending-p to trigger input processing on some systems, such
+       as Mac port.  (Bug#23002)
+
+2016-12-23  Michael Albinus  <address@hidden>
+
+       * test/lisp/net/tramp-tests.el (tramp--test-check-files): Make it 
robust.
+
+2016-12-23  Eli Zaretskii  <address@hidden>
+
+       Avoid aborts due to unaligned byte stack of threads
+
+       * src/thread.c (run_thread): Make sure the pointers to thread byte
+       stack are properly aligned.  (Bug#25247)
+
+2016-12-22  Paul Eggert  <address@hidden>
+
+       Pacify --enable-gcc-warnings
+
+       * src/charset.c (load_charset_map):
+       * src/coding.c (decode_coding_object):
+       * src/frame.c (make_frame):
+       * src/window.c (Frecenter):
+       Mark locals with UNINIT to silence false alarms from
+       -Wmaybe-uninitialized.
+       * src/lisp.h (SYMBOL_ALIAS, SYMBOL_BLV, SYMBOL_FWD)
+       (SET_SYMBOL_ALIAS, SET_SYMBOL_BLV, SET_SYMBOL_FWD):
+       Check and assume that values are nonnull.  This pacifies
+       -Wmaybe-uninitialized in Fmake_variable_buffer_local and
+       Fmake_local_variable.
+
+2016-12-22  Eli Zaretskii  <address@hidden>
+
+       Fix last change with thread marking under GC_CHECK_MARKED_OBJECTS
+
+       * src/thread.c (primary_thread_p): New function.
+       * src/alloc.c (mark_object): Use 'primary_thread_p' to bypass tests
+       meant for thread objects allocated dynamically.
+       * src/thread.h (primary_thread_p): Add prototype.
+
+2016-12-22  Martin Rudalics  <address@hidden>
+
+       Work around reporting a dpi change in apply_xft_settings
+
+       * src/xsettings.c (apply_xft_settings): Don't report a change
+       when dpi settings do not differ substantially.
+
+2016-12-22  Noam Postavsky  <address@hidden>
+
+       Use completion-at-point in verilog-mode
+
+       There were some functions in verilog-mode that implemented in-buffer
+       completion, but this needlessly duplicates completion-at-point
+       functionality, and the popup window management had problems
+       (see Bug #23842).  We need to keep them for backwards compatibility with
+       older emacs versions, but use completion-at-point if available.
+
+       * lisp/progmodes/verilog-mode.el (verilog-toggle-completions): Mark as
+       obsolete if completion-cycle-threshold is available.
+       (verilog-mode-map, verilog-menu): Bind completion-at-point and
+       completion-help-at-point in preference to verilog-complete-word and
+       verilog-show-completions, respectively.
+       (verilog-mode): Add verilog-completion-at-point to
+       completion-at-point-functions.
+       (verilog-completion-at-point): New function.
+       (verilog-show-completions, verilog-complete-word): Use it to avoid code
+       duplication.
+
+2016-12-21  Reuben Thomas  <address@hidden>
+
+       Keep default CASECHARS/NOT-CASECHARS for ispell built-in dictionaries
+
+       * lisp/textmodes/ispell.el (ispell-set-spellchecker-params): Do not
+       override CASECHARS and NOT-CASECHARS.  The ispell dictionaries
+       retain their hardwired values, and all other dictionaries are given
+       sensible defaults.
+
+2016-12-21  Stefan Monnier  <address@hidden>
+
+       * tex-mode.el (tex-compile-commands): Add luatex and xetex commands
+
+2016-12-21  Eli Zaretskii  <address@hidden>
+
+       Fix aborts in GC under GC_CHECK_MARKED_OBJECTS
+
+       * src/alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Don't abort
+       for thread objects.  They are marked via the all_threads list, and
+       therefore don't need to be inserted into the red-black tree, so
+       mem_find will never find them.  Reported by Daniel Colascione
+       <address@hidden> in
+       http://lists.gnu.org/archive/html/emacs-devel/2016-12/msg00817.html.
+
+2016-12-21  Stefan Monnier  <address@hidden>
+
+       * src/data.c (Fmake_variable_frame_local): Remove
+
+       * src/lisp.h (struct Lisp_Buffer_Local_Value): Remove `frame_local'.
+
+       * src/data.c (swap_in_symval_forwarding, set_internal)
+       (set_symbol_trapped_write, make_blv, Fmake_variable_buffer_local)
+       (Fmake_local_variable, Fkill_local_variable, Flocal_variable_p):
+       Don't pay attention to ->frame_local any more.
+       (syms_of_data): Remove Qtrapping_frame_local and don't defsubr
+       Smake_variable_frame_local.
+
+       * etc/NEWS (Incompatible Lisp Changes in Emacs 26.1): Announce removal
+       of make-variable-frame-local.
+
+       * lisp/help-fns.el (describe-variable): Don't handle the now impossible
+       frame-local case.
+
+       * lisp/subr.el (make-variable-frame-local): Remove obsolescence data.
+
+       * src/frame.c (store_frame_param):
+       * src/eval.c (specbind): Don't pay attention to ->frame_local any more.
+
+       * src/widget.c (first_frame_p): Remove, unused.
+
+2016-12-21  Paul Eggert  <address@hidden>
+
+       Port dumping better to WSL
+
+       Problem reported by Angelo Graziosi in:
+       http://lists.gnu.org/archive/html/emacs-devel/2016-12/msg00822.html
+       * src/sysdep.c (disable_address_randomization):
+       Detect buggy platforms where 'personality' always returns 0.
+
+2016-12-21  Michael Albinus  <address@hidden>
+
+       Remove gateway methods in Tramp
+
+       * doc/misc/tramp.texi (Top, Configuration): Remove section
+       `Gateway methods', insert section `Firewalls' in menu.
+       (History): Gateways are removed now.
+       (Gateway methods): Remove section.
+       (Multi-hops, Traces and Profiles): Don't reference to gateways anymore.
+       (Firewalls): New section.
+
+       * etc/NEWS: Gateway methods in Tramp have been removed.
+
+       * lisp/net/tramp.el (tramp-methods): Adapt docstring.
+       (tramp-file-name-port, tramp-accept-process-output): Simplify.
+
+       * lisp/net/tramp-gw.el: Remove.
+
+       * lisp/net/tramp-sh.el (tramp-gw-tunnel-method)
+       (tramp-gw-socks-method): Remove declarations.
+       (tramp-methods) <scp, scpx, ssh, sshx, telnet, nc, plink, pscp>:
+       Remove `tramp-gw-args' and `tramp-default-port'.  (Bug#18967)
+       (tramp-do-copy-or-rename-file-out-of-band)
+       (tramp-compute-multi-hops, tramp-maybe-open-connection):
+       Remove gateway support.
+
+       * test/lisp/net/tramp-tests.el (tramp-test03-file-name-defaults):
+       Remove gateway tests.
+
+2016-12-20  Alan Mackenzie  <address@hidden>
+
+       Amend the version number of CC Mode 5.33 -> 5.32.99.  Don't merge to 
trunk.
+
+       lisp/progmodes/cc-defs.el: Amend the version number.
+       etc/NEWS: Add an item explaining the change.
+
+2016-12-20  Tino Calancha  <address@hidden>
+
+       files-test-read-file-in-: Delete temporary dir on exit
+
+       * test/lisp/files-tests.el (files-test-read-file-in-~):
+       Create subdir inside dir.
+
+2016-12-20  Christopher Genovese  <address@hidden>
+
+       ibuffer: New filters and commands
+
+       Add several new filters and improve documentation.
+       See discussion on:
+       https://lists.gnu.org/archive/html/emacs-devel/2016-11/msg00399.html
+       * lisp/ibuf-ext.el: Add paragraph to file commentary.
+       (ibuffer-saved-filters, ibuffer-filtering-qualifiers)
+       (ibuffer-filter-groups): Update doc string.
+       (ibuffer-unary-operand): Add new function that transparently
+       handles 'not' formats for compound filters.
+       (ibuffer-included-in-filter-p): Handle 'not' fully; update doc string.
+       (ibuffer-included-in-filter-p-1): Handle 'and' compound filters.
+       (ibuffer-decompose-filter): Handle 'and' as well,
+       and handle 'not' consistently with other uses.
+       (ibuffer-and-filter): New defun analogous to 'ibuffer-or-filter'.
+       (ibuffer--or-and-filter): New defun.
+       (ibuffer-or-filter, ibuffer-and-filter): Use it.
+       (ibuffer-format-qualifier): Handle 'and' filters as well.
+       (ibuffer-filter-by-basename, ibuffer-filter-by-file-extension)
+       (ibuffer-filter-by-directory, ibuffer-filter-by-starred-name)
+       (ibuffer-filter-by-modified, ibuffer-filter-by-visiting-file):
+       Add new pre-defined filters.
+       (ibuffer-filter-chosen-by-completion): Add new interactive command
+       for easily choosing a filter from the descriptions.
+       * lisp/ibuffer.el (ibuffer-mode-map):
+       Bind ibuffer-filter-by-basename, ibuffer-filter-by-file-extension,
+       ibuffer-filter-by-starred-name, ibuffer-filter-by-modified,
+       ibuffer-filter-by-visiting-file to '/b', '/.', '/*', '/i', '/v'
+       respectively; bind 'ibuffer-or-filter', 'ibuffer-and-filter',
+       'ibuffer-pop-filter' ,'ibuffer-pop-filter-group' and
+       'ibuffer-filter-disable' to '/|', '/&', '/<up>', '/S-<up>'
+       and '/ DEL' respectively.
+       * test/lisp/ibuffer-tests.el (ibuffer-autoload): Add appropriate
+       skip specification.
+       Add menu entries for the new filters.
+       (ibuffer-filter-inclusion-1, ibuffer-filter-inclusion-2
+       ibuffer-filter-inclusion-3, ibuffer-filter-inclusion-4
+       ibuffer-filter-inclusion-5, ibuffer-filter-inclusion-6
+       ibuffer-filter-inclusion-7, ibuffer-filter-inclusion-8
+       ibuffer-decompose-filter, ibuffer-and-filter
+       ibuffer-or-filter): Add new tests; they are skipped unless
+       ibuf-ext is loaded.
+
+2016-12-20  Mark Oteiza  <address@hidden>
+
+       Update NEWS
+
+       * etc/NEWS (Image-Dired): New section.
+
+2016-12-20  Mark Oteiza  <address@hidden>
+
+       Recognize graphicsmagick in image-dired
+
+       * lisp/image-dired.el (image-dired-cmd-create-thumbnail-program):
+       (image-dired-cmd-create-thumbnail-options):
+       (image-dired-cmd-create-temp-image-program):
+       (image-dired-cmd-create-temp-image-options):
+       (image-dired-cmd-create-standard-thumbnail-options):
+       (image-dired-cmd-rotate-thumbnail-program):
+       (image-dired-cmd-rotate-thumbnail-options): Account for existence of
+       gm(1) executable.
+
+2016-12-20  Noam Postavsky  <address@hidden>
+
+       Improve skeleton docstrings
+
+       * lisp/skeleton.el (skeleton-end-newline): Remove mention of
+       `skeleton-end-hook', its default code was moved into `skeleton-insert'.
+       (skeleton-insert): Mention `skeleton-end-newline' and move reference to
+       `skeleton-end-hook' above the explanation of skeleton syntax.
+
+2016-12-20  Mark Oteiza  <address@hidden>
+
+       Implement asynchronous thumbnail generation in image-dired
+
+       Additionally, all FOO-options defcustoms that were in fact shell command
+       strings have been converted to argument lists.  Another method for
+       shrinking PNG thumbs with optipng(1) has been added.
+       * lisp/image-dired.el: Remove TODO item in commentary.
+       (image-dired-cmd-create-thumbnail-options):
+       (image-dired-cmd-create-temp-image-options):
+       (image-dired-cmd-rotate-thumbnail-options):
+       (image-dired-cmd-rotate-original-options):
+       (image-dired-cmd-write-exif-data-options):
+       (image-dired-cmd-read-exif-data-options): Convert to argument lists.
+       (image-dired-cmd-pngnq-program, image-dired-cmd-pngcrush-program):
+       Change string type to file.
+       (image-dired-cmd-create-standard-thumbnail-command): Remove.
+       (image-dired-cmd-pngnq-options):
+       (image-dired-cmd-create-standard-thumbnail-options):
+       (image-dired-cmd-optipng-program, image-dired-cmd-optipng-options):
+       New defcustoms.
+       (image-dired-queue, image-dired-queue-active-jobs):
+       (image-dired-queue-active-limit): New variables.
+       (image-dired-pngnq-thumb, image-dired-pngcrush-thumb):
+       (image-dired-optipng-thumb): New functions.
+       (image-dired-create-thumb-1): Renamed from image-dired-create-thumb.
+       Use start-process instead of call-process.  Set file modes.  Trigger
+       PNG file optimization in process sentinel.
+       (image-dired-thumb-queue-run, image-dired-create-thumb): New functions.
+       (image-dired-display-thumbs):
+       (image-dired-create-thumbs): Don't expect call-process return value.
+       (image-dired-display-image, image-dired-rotate-thumbnail): Use
+       start-process instead of call-process.
+       (image-dired-rotate-original, image-dired-set-exif-data):
+       (image-dired-get-exif-data): Adapt to arguments being an arg list.
+
+2016-12-19  Andreas Schwab  <address@hidden>
+
+       Protect change of window's buffer in vertical-motion against unwinds 
(bug#25209)
+
+       * indent.c (restore_window_buffer): New function.
+       (Fvertical_motion): Use it to restore window's buffer.
+
+2016-12-19  Glenn Morris  <address@hidden>
+
+       Improve default load-path for uninstalled CANNOT_DUMP builds
+
+       * src/lread.c (load_path_default) [CANNOT_DUMP]:
+       Use build load-path if we seem to be running uninstalled.  (Bug#24974)
+       I think this became an issue several years ago when we stopped
+       using EMACSLOADPATH in the Makefiles; however this change should
+       improve the CANNOT_DUMP uninstalled case in general.
+
+2016-12-19  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of 'w32-scroll-lock-modifier'
+
+       * doc/emacs/msdos.texi (Windows Keyboard): Document how to set up
+       w32-scroll-lock-modifier so that Scroll Lock toggles the LED.
+
+       * src/w32fns.c (syms_of_w32fns) <w32-scroll-lock-modifier>: Doc
+       fix.  (Bug#25204)
+
+2016-12-19  Eli Zaretskii  <address@hidden>
+
+       Document 'describe-fontset'
+
+       * doc/emacs/mule.texi (Fontsets): Document 'describe-fontset'.
+       (Bug#25216)
+
+2016-12-19  Eli Zaretskii  <address@hidden>
+
+       Document 'describe-fontset'
+
+       * doc/emacs/mule.texi (Fontsets): Document 'describe-fontset'.
+       (Bug#25216)
+
+2016-12-19  Eli Zaretskii  <address@hidden>
+
+       Fix crashes upon C-g on Posix TTY frames
+
+       * src/thread.h (struct thread_state): New member not_holding_lock.
+       (maybe_reacquire_global_lock): Add prototype.
+       * src/thread.c: Include syssignal.h.
+       (maybe_reacquire_global_lock): New function.
+       (really_call_select): Set the not_holding_lock member of the
+       thread state before releasing the lock, and rest it after
+       re-acquiring the lock when the select function returns.  Block
+       SIGINT while doing this to make sure we are not interrupted on TTY
+       frames.
+       * src/sysdep.c (block_interrupt_signal, restore_signal_mask): New
+       functions.
+       * src/syssignal.h (block_interrupt_signal, restore_signal_mask):
+       Add prototypes.
+       * src/keyboard.c (read_char) [THREADS_ENABLED]: Call
+       maybe_reacquire_global_lock.  (Bug#25178)
+
+2016-12-19  Sam Steingold  <address@hidden>
+
+       avoid Eager macro-expansion failure: (void-function string-to-list)
+
+       * loadup.el [ns]: "ucs-normalize" uses `string-to-list' which is defined
+         in "mule-util", so we have to load "mule-util" before "ucs-normalize",
+         otherwise I get "Eager macro-expansion failure" on "make bootstrap"
+
+2016-12-19  Michael Albinus  <address@hidden>
+
+       Fix Bug#24980
+
+       * lisp/ido.el (ido-add-virtual-buffers-to-list):
+       Suppress Tramp invocation.  (Bug#24980)
+
+2016-12-18  Philipp Stephani  <address@hidden>
+
+       Add a new compile error regexp for Clang includes
+
+       Clang uses a slight variation of GCC's include format, causing includes
+       to be treated as warnings instead of informational messages.  Use a new
+       regular expression instead.
+
+       * lisp/progmodes/compile.el
+       (compilation-error-regexp-alist-alist): New element
+       `clang-include' for Clang-style "included from" lines.
+       * test/lisp/progmodes/compile-tests.el
+       (compile-tests--test-regexps-data): Add unit test.
+
+2016-12-18  Alan Third  <address@hidden>
+
+       Reinstate ispell character offset (bug#25219)
+
+       * lisp/textmodes/ispell.el (ispell-process-line): insert -1 where
+       ispell-offset used to be.
+
+2016-12-18  Mark Oteiza  <address@hidden>
+
+       Bind new image-mode scroll commands in image-dired
+
+       * lisp/image-dired.el (image-dired-display-image-mode-map): Add bindings
+       to new image-mode commands.
+
+2016-12-18  Noam Postavsky  <address@hidden>
+
+       Fix rx-any with range with ?\] and ?-
+
+       * lisp/emacs-lisp/rx.el: Make sure not to produce a circular
+       list (Bug#25123).
+       * test/lisp/emacs-lisp/rx-tests.el (rx-char-any): New test.
+
+2016-12-18  Mark Oteiza  <address@hidden>
+
+       Use floor of mtime instead of rounding for thumb property
+
+       This seems to be the correct thing to do, at least more in line with
+       what at least one other implementation does.  Anything using
+       gnome-desktop [0] effectively does the same, as
+       gnome_desktop_thumbnail_is_valid applies atol(3) to mtime for
+       comparison and time_t on GNU/Linux is a signed int.
+       [0] https://git.gnome.org/browse/gnome-desktop/
+       * lisp/image-dired.el (image-dired-create-thumb): Use floor here.
+
+2016-12-17  Reuben Thomas  <address@hidden>
+
+       Fix spelling mistake in private defun name (Bug#25218)
+
+       lisp/textmodes/flyspell.el (flyspell-ajust-cursor-point): Rename to
+       `flyspell-adjust-cursor-point'.
+
+2016-12-17  Reuben Thomas  <address@hidden>
+
+       Remove XEmacs support from flyspell.el (Bug#25218)
+
+       lisp/textmodes/flyspell.el (flyspell-prog-mode, flyspell-mode-on):
+       (flyspell-word, flyspell-delete-region-overlays):
+       (flyspell-correct-word-before-point): Remove XEmacs support.
+       (flyspell-xemacs-popup): Remove XEmacs-specific defun.
+
+2016-12-17  Michael Albinus  <address@hidden>
+
+       More tests for Tramp
+
+       * lisp/net/tramp.el (tramp-drop-volume-letter): Handle quoted
+       file names.
+
+       * lisp/net/tramp-sh.el (tramp-make-copy-program-file-name): Quote file
+       name properly.
+
+       * test/lisp/net/tramp-tests.el (tramp-test05-expand-file-name):
+       Mark quoted file name as absolute.  (Bug#25183)
+       (tramp--test-windows-nt-and-batch)
+       (tramp--test-windows-nt-and-pscp-psftp-p): New defuns.
+       (tramp--test-windows-nt-or-smb-p): Rename from
+       `tramp--test-smb-windows-nt-p'.  Adapt callees.
+       (tramp--test-check-files): Improve checks for environment variables.
+       (tramp-test33-special-characters)
+       (tramp-test33-special-characters-with-stat)
+       (tramp-test33-special-characters-with-perl)
+       (tramp-test33-special-characters-with-ls, tramp-test34-utf8)
+       (tramp-test34-utf8-with-stat, tramp-test34-utf8-with-perl)
+       (tramp-test34-utf8-with-ls): Add more checks for skip.
+
+2016-12-17  Eli Zaretskii  <address@hidden>
+
+       Fix comments
+
+       * src/thread.h (struct thread_state): Fix comments.
+       * src/process.c (wait_reading_process_output): Fix a typo in
+       commentary.
+
+2016-12-17  Eli Zaretskii  <address@hidden>
+
+       Repair desktop restoration on text terminals
+
+       * lisp/desktop.el (desktop-restoring-frameset-p): Test for the GUI
+       frame here, instead of in desktop-restoring-frameset.  That's
+       because desktop-read wants to know whether frameset will actually
+       be restored, and has fallback procedures up its sleeve when it
+       won't be; these fallbacks need to be invoked when the frameset is
+       not going to be restored.  (Bug#24298)
+
+2016-12-17  Eli Zaretskii  <address@hidden>
+
+       Fix crashes on MS-Windows during dumping
+
+       * src/unexw32.c (get_section_info): Make extra_bss_size be the
+       maximum of extra_bss_size and extra_bss_size_static.  This avoids
+       computing the size of the output file smaller than it actually
+       needs to be, which then causes copy_executable_and_dump_data to
+       write beyond the requested size of the file mapping, thus relying
+       on the OS roundup to page boundary to save us from ourselves.  See
+       http://lists.gnu.org/archive/html/emacs-devel/2016-12/msg00642.html
+       for the details.
+
+       * lib/stdio-impl.h: Revert the workaround fix of not including
+       errno.h for MinGW.
+
+2016-12-17  Dmitry Gutov  <address@hidden>
+
+       Ignore forward-sexp-function in js-mode indentation code
+
+       * lisp/progmodes/js.el (js--multi-line-declaration-indentation)
+       (js--maybe-goto-declaration-keyword-end):
+       Bind forward-sexp-function to nil (bug#25215).
+
+2016-12-16  Mark Oteiza  <address@hidden>
+
+       Be more selective clearing the image cache
+
+       * lisp/image-dired.el (image-dired-create-thumbs):
+       (image-dired-rotate-thumbnail, image-dired-refresh-thumb): Only clear
+       the current thumbnail file from the image cache.
+
+2016-12-16  Eli Zaretskii  <address@hidden>
+
+       Unbreak the MinGW build
+
+       * lib/stdio-impl.h [__MINGW32__]: Don't include errno.h.  Without
+       this, temacs crashes while dumping.
+
+2016-12-16  Nicolas Petton  <address@hidden>
+
+       Make seq-into return the sequence when no conversion needed
+
+       * lisp/emacs-lisp/seq.el (seq-into): Do not convert the sequence when
+         no conversion is needed.
+       * test/lisp/emacs-lisp/seq-tests.el (test-seq-into-and-identity): Add
+         a regression test checking for identity.
+
+2016-12-16  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of 'define-coding-system'
+
+       * lisp/international/mule.el (define-coding-system): Warn against
+       possible infinite recursion in pre-write-conversion and
+       post-read-conversion functions.  (Bug#25203)
+
+2016-12-16  Mark Oteiza  <address@hidden>
+
+       New commands image-scroll-left and image-scroll-right
+
+       * etc/NEWS: Mention them.
+       * lisp/image-mode.el (image-scroll-left, image-scroll-right): New
+       functions.
+
+2016-12-16  Mark Oteiza  <address@hidden>
+
+       More image-dired refactoring
+
+       * lisp/image-dired.el (image-dired-thumbnail-mode):
+       (image-dired-display-image-mode): Add :group 'image-dired so
+       customize-mode works.
+       (image-dired-display-image): Rearrange.
+       (image-dired-copy-with-exif-file-name): This map is for side effect.
+       (image-dired-dired-edit-comment-and-tags): Just use #'identity.
+
+2016-12-16  Mark Oteiza  <address@hidden>
+
+       * lisp/image-dired.el: Turn on lexical-binding.
+
+2016-12-16  Mark Oteiza  <address@hidden>
+
+       Teach image-dired to also generate large thumbs
+
+       * lisp/image-dired.el (image-dired-thumbnail-storage): Add
+       standard-large option.
+       (image-dired-thumb-size): Add condition for standard-large storage.
+       (image-dired-insert-thumbnail): Check for new option.  Change
+       thumbnail path conditionally.
+       (image-dired-thumb-size): New function.
+       (image-dired-create-thumb, image-dired-line-up-dynamic): Use it.
+
+2016-12-15  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+       This incorporates:
+       2016-12-14 xalloc-oversized: check for PTRDIFF_MAX too
+       2016-12-12 fpending: port to native Windows with MSVC
+       * .gitignore: Do not ignore lib/stdio-impl.h.
+       * lib/fpending.c, lib/xalloc-oversized.h, m4/fpending.m4:
+       Copy from gnulib.
+       * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
+       * lib/stdio-impl.h:
+       New file, copied from gnulib.
+       * nt/gnulib.mk (EXTRA_DIST): Add stdio-impl.h.
+
+2016-12-15  Paul Eggert  <address@hidden>
+
+       * emacs-document.svg: Append newline.
+
+2016-12-15  Mark Oteiza  <address@hidden>
+
+       Don't abuse princ and spam messages
+
+       * lisp/image-dired.el (image-dired-format-properties-string): Nix princ.
+       (image-dired-display-thumb-properties):
+       (image-dired-dired-display-properties): Nix princ.  Bind
+       message-log-max to nil.
+
+2016-12-15  Mark Oteiza  <address@hidden>
+
+       Inherit things from special-mode and image-mode
+
+       * lisp/image-dired.el: Require image-mode library.
+       (image-dired-thumbnail-mode-map): Remove superfluous binding.
+       (image-dired-display-image-mode-map): Remove superfluous binding.
+       Add movement remaps from image-mode-map.
+       (image-dired-thumbnail-mode): Derive from special-mode.
+       (image-dired-display-image-mode): Derive from special-mode. Call
+       image-mode-setup-winprops.
+
+2016-12-15  Mark Oteiza  <address@hidden>
+
+       Fix some image-dired customization types
+
+       * lisp/image-dired.el (image-dired): Add info link to defgroup.
+       (image-dired-dir, image-dired-gallery-dir): Set type to directory.
+       (image-dired-db-file, image-dired-temp-image-file):
+       (image-dired-cmd-create-thumbnail-program):
+       (image-dired-cmd-create-temp-image-program):
+       (image-dired-cmd-rotate-thumbnail-program):
+       (image-dired-cmd-rotate-original-program):
+       (image-dired-temp-rotate-image-file):
+       (image-dired-cmd-write-exif-data-program):
+       (image-dired-cmd-read-exif-data-program): Set type to file.
+       (image-dired-create-thumb, image-dired-line-up-dynamic): Check storage
+       type at runtime, since setting image-dired-thumb-size does not
+       automatically set image-dired-thumb-width and image-dired-thumb-height.
+
+2016-12-15  Eli Zaretskii  <address@hidden>
+
+       Prevent crashes in xg_select due to concurrency
+
+       * src/xgselect.c (xg_select): Don't call Glib functions that use
+       'context' if we failed to acquire it.  This means some other
+       thread owns the context, in which case both using the context and
+       calling block_input/unblock_input will step on that thread's toes
+       and eventually lead to crashes.  (Bug#25172)
+
+2016-12-15  Nicolas Petton  <address@hidden>
+
+       Fix circular list handling in seq-mapn
+
+       * lisp/emacs-lisp/seq.el (seq-mapn): Do not copy list arguments.
+       * test/lisp/emacs-lisp/seq-tests.el (test-seq-mapn-circular-lists):
+         Add a regression test.
+
+2016-12-15  Michael Albinus  <address@hidden>
+
+       Check in tramp-tests.el, that environment variables are set correctly
+
+       * test/lisp/net/tramp-tests.el (tramp--test-check-files):
+       Check also, that environment variables are set correctly.
+
+2016-12-15  Dominique Quatravaux  <address@hidden>  (tiny change)
+
+       Protect environment variables with double quotes in Tramp
+
+       * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
+       Protect environment variables with double quotes.
+
+2016-12-15  Tino Calancha  <address@hidden>
+
+       * lisp/ibuf-macs.el (define-ibuffer-filter): Wrap ,@body in a progn.
+
+2016-12-15  Mark Oteiza  <address@hidden>
+
+       * lisp/image-dired.el (image-dired-create-thumb): Create parent 
directories.
+
+2016-12-14  Mark Oteiza  <address@hidden>
+
+       * lisp/image-mode.el (image-mode-winprops-alist): Add docstring.
+
+2016-12-14  Mark Oteiza  <address@hidden>
+
+       Recognize pngnq or pngnq-s9
+
+       * lisp/image-dired.el (image-dired-cmd-pngnq-program): Also consider
+       pngnq-s9 as a possible executable.
+
+2016-12-14  Mark Oteiza  <address@hidden>
+
+       Update standard image-dired thumbnail location
+
+       * lisp/image-dired.el (image-dired-thumb-name): Conform to the latest
+       standard: consider XDG_CACHE_HOME, falling back on ~/.cache.
+
+2016-12-14  Mark Oteiza  <address@hidden>
+
+       Reset window scroll when displaying an image
+
+       When viewing a large image full size and scrolling, for instance, to
+       the lower right corner, then selecting a much smaller image in the
+       thumbnail buffer, the window stays scrolled so the new image is out of
+       the window.  One must scroll back to the "origin" to view the new
+       displayed image, or just kill the image-dired-display-image buffer and
+       try again.  This fixes the issue.
+       * lisp/image-dired.el (image-dired-display-window-width):
+       (image-dired-display-window-height): Operate on a window as argument.
+       (image-dired-display-image): Bind (image-dired-display-window) and use
+       it. Set window vscroll and hscroll to zero when refreshing the
+       buffer's contents.
+
+2016-12-14  Mark Oteiza  <address@hidden>
+
+       More image-dired polish
+
+       * lisp/image-dired.el (image-dired-file-name-at-point): New function.
+       (image-dired-thumbnail-mode, image-dired-display-image-mode): Disable
+       undo list. Add image-dired-file-name-at-point to
+       file-name-at-point-functions to facilitate find-file and friends.
+       (image-dired-thumbnail-display-external):
+       (image-dired-dired-display-external): Use start-process instead, to
+       avoid needlessly blocking and using a shell.
+
+2016-12-13  Phillip Lord  <address@hidden>
+
+       Replace ldefs-boot with a much smaller file
+
+        * Makefile.in (bootstrap-build,generate-ldefs-boot): New targets.
+          (bootstrap): Depend on bootstrap-build.
+        * admin/ldefs-clean.el: New file.
+        * lisp/Makefile.in (compile-first): Depend on loaddefs.el
+        * lisp/ldefs-boot.el: Remove.
+        * lisp/ldefs-boot-auto.el: New file.
+        * lisp/ldefs-boot-manual.el: New file.
+        * lisp/loadup.el: Load ldefs-boot-manual.el.
+        * src/emacs.c (generating_ldefs_boot): New variable.
+          (main): Check whether we are generating ldefs.
+        * src/eval.c (autoload-do-load): Dump autoload forms to stderr when
+          requested.
+        * src/lisp.h (generating_ldefs_boot): New variable.
+        * admin/gitmerge.el, admin/make-tarball.txt, admin/notes/copyright,
+          lisp/Makefile.in, lisp/cus-dep.el, lisp/emacs-lisp/elint.el,
+          lisp/finder.el, lisp/loadup.el, msdos/mainmake.v2: Update reference 
to
+          ldefs-boot.
+        * admin/update_autogen: Alter mechanism for ldefs-boot generation.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Remove support for aspell < 0.60 (from 2004)
+
+       lisp/textmodes/ispell.el (ispell-check-version): Require Aspell 0.60.
+       (ispell-aspell-dictionary-alist): Remove check that we have Aspell 0.60.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Minor docstring and comment fixes to ispell.el
+
+       lisp/textmodes/ispell.el (ispell-aspell-dictionary-alist): Mention
+       ispell-aspell-dictionary-alist, not ispell-dictionary-alist.
+       (ispell-set-spellchecker-params): Change double-single quotes to
+       single single quotes in comment.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Remove unused variable
+
+       * lisp/textmodes/ispell.el (current-ispell-directory): Remove.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Remove XEmacs-specific ispell-with-no-warnings
+
+       * lisp/textmodes/ispell.el (ispell-with-no-warnings): Remove this
+       defmacro, needed only for XEmacs.
+       (ispell-command-loop, ispell-message): Use with-no-warnings directly.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Remove meaningless defconst ispell-version
+
+       * lisp/textmodes/ispell.el (ispell-version): Since ispell.el is now
+       firmly part of Emacs, and the version hasn’t changed since 2003, and
+       isn’t used anywhere, remove it.  3rd-party code can better use the
+       Emacs version, or feature or function checks.
+       (ispell-check-version): No longer report ispell.el version.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Remove boundp test for always-bound symbol
+
+       * lisp/textmodes/ispell.el (ispell-message): mail-yank-prefix is
+       defvar’d at the top of the file, so remove a test to see if it is
+       bound.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Remove support for ispell < 3.1.12
+
+       * lisp/textmodes/ispell.el (ispell-offset): Remove.
+       (ispell-check-version): Require ispell >= 3.1.12, released in 1994.
+       (ispell-process-line): No longer use ispell-offset.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Remove unused constant
+
+       * lisp/textmodes/ispell.el (ispell-required-version): Remove.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Remove support for old versions of supercite and GNUS from ispell.el
+
+       * lisp/textmodes/ispell.el (ispell-message): Require supercite >= 3.0
+       and GNUS >= 5.  Not exactly the bleeding edge!
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Remove remaining mentions of XEmacs from ispell.el
+
+       * lisp/textmodes/ispell.el (ispell-valid-dictionary-list):
+       (ispell-add-per-file-word-list): Remove mentions of XEmacs from
+       comments.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Remove XEmacs-specific minibuffer handling code from ispell.el
+
+       * lisp/textmodes/ispell.el (ispell-init-process): Assume we are not in
+       XEmacs.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Remove XEmacs-specific horizontal scrollbar handling in ispell.el
+
+       * lisp/textmodes/ispell.el (ispell-command-loop): Remove
+       XEmacs-specific code.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Remove XEmacs-specific code dealing with enable-multibyte-characters
+
+       * lisp/textmodes/ispell.el (ispell-decode-string):
+       (ispell-init-process):  Remove XEmacs-specific guard.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Remove XEmacs-specific code from ispell.el
+
+       * lisp/textmodes/ispell.el (ispell-menu-xemacs): Remove
+       (ispell-menu-map-needed): Remove XEmacs-specific check.
+       (ispell-word): Remove XEmacs-specific extent code.
+       (ispell-init-process): Remove XEmacs workaround for local add-hook.
+       Assume we have set-process-query-on-exit-flag.
+       (ispell-kill-ispell, ispell-change-dictionary): Remove XEmacs
+       workaround for called-interactively-p.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Remove some commented-out code
+
+       lisp/textmodes/ispell.el (ispell-process)
+       ispell-valid-dictionary-list): Remove commented-out code.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Remove XEmacs and old Emacs highlighting code
+
+       * lisp/textmodes/ispell.el
+       (ispell-highlight-spelling-error-xemacs): Remove.
+       (ispell-highlight-spelling-error): Assume display-color-p exists.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Assume Emacs supports [:alpha:] in regexps
+
+       * lisp/textmodes/ispell.el (ispell-emacs-alpha-regexp): Remove.
+       (ispell-set-spellchecker-params): Remove tests of
+       ispell-emacs-alpha-regexp.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Remove some XEmacs-specific code from ispell.el
+
+       * lisp/textmodes/ispell.el: Remove XEmacs menubar setup.
+       (ispell-int-char): Remove.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Generalise over-specific documentation
+
+       * lisp/textmodes/ispell.el (ispell-personal-dictionary): Rather than
+       document precise personal wordlist filenames for only two supported
+       spelling checkers, simply say that the default personal dictionary
+       depends on the chosen spelling checker.  The user can check the
+       spelling checker’s documentation if necessary.  This is simpler, and
+       works for other supported (and future, or unknown) spelling checkers.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Remove tests for built-in functions
+
+       * lisp/textmodes/ispell.el (buffer-substring-no-properties): Remove
+       back-up definition.
+       (ispell-add-per-file-word-list): Remove tests for comment-padright and
+       comment-normalize-vars.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Remove unused ispell-looking-back
+
+       * lisp/textmodes/ispell.el (ispell-looking-back): Remove unused alias.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Assume we have version<= for checking ispell version
+
+       * lisp/textmodes/ispell.el (ispell-check-minver): Remove.
+       (ispell-check-version): Use version<= directly.
+
+2016-12-13  Reuben Thomas  <address@hidden>
+
+       Remove ispell.el pre-GNU Emacs comments
+
+       * lisp/textmodes/ispell.el (Commentary): Remove original maintainer
+         details, as Emacs version, bug report address and so forth should be
+         used instead for this version.  Remove in-line change history; use
+         git instead.
+
+2016-12-13  Mark Oteiza  <address@hidden>
+
+       More small fixes for image-dired
+
+       * lisp/image-dired.el: Fix commentary to refer to correct Emacs manual
+       node.
+       (image-dired--with-db-file): Add declare forms.
+       (image-dired-hidden-p): Rewrite with cl-loop.  It's not necessary to
+       run through the whole list.
+
+2016-12-13  Mark Oteiza  <address@hidden>
+
+       Remove image-dired-kill-buffer-and-window
+
+       This breaks window layout, especially when quitting a
+       image-dired-display-image-mode buffer.
+       * lisp/image-dired.el (image-dired-thumbnail-mode-map):
+       (image-dired-display-image-mode-map): Replace in keymap and menu items
+       bindings to image-dired-kill-buffer-and-window with quit-window.
+       (image-dired-kill-buffer-and-window): Remove.
+
+2016-12-13  Mark Oteiza  <address@hidden>
+
+       Replace image-dired-setup-dired-keybindings with a minor mode
+
+       * lisp/image-dired.el (image-dired-thumbnail-mode): Fix docstring to
+       remove mention of nonexistent image-dired-dired and to refer to the
+       new minor mode.
+       (image-dired-minor-mode-map): New keymap assimilated from
+       image-dired-setup-dired-keybindings.  In the future, the keymap parent
+       should be removed, and perhaps also the duplicate bindings that
+       already exist in dired-mode-map.
+       (image-dired-setup-dired-keybindings): Remove.  Replace with an
+       obsolete function alias.
+       (image-dired-minor-mode): New minor mode, assuming the role of
+       image-dired-setup-dired-keybindings.
+
+2016-12-13  Paul Eggert  <address@hidden>
+
+       * test/src/regex-resources/PTESTS: Convert to UTF-8.
+
+2016-12-13  Noam Postavsky  <address@hidden>
+
+       Clarify thread-signal semantics
+
+       * doc/lispref/threads.texi (Basic Thread Functions): Explain that the
+       thread will be signaled as soon as possible.
+
+2016-12-13  Noam Postavsky  <address@hidden>
+
+       Clean up var watcher disabling on thread switching
+
+       * src/data.c (Fset_default): Move code into new C level function,
+       `set_default_internal'.
+       (set_default_internal): New function, like `Fset_default' but also takes
+       additional bindflag parameter.
+       (set_internal): Only call `notify_variable_watchers' if bindflag is not
+       SET_INTERNAL_THREAD_SWITCH.
+       * src/eval.c (do_specbind, do_one_unbind): Add bindflag parameter,
+       passed on to set_internal and set_default_internal.  Adjust callers.
+       (rebind_for_thread_switch, unbind_for_thread_switch): Pass
+       SET_INTERNAL_THREAD_SWITCH to do_specbind, do_one_unbind instead of
+       temporarily adjusting symbol's trapped_write field.
+
+2016-12-13  Glenn Morris  <address@hidden>
+
+       Minor fix for define-derived-mode
+
+       * lisp/emacs-lisp/derived.el (define-derived-mode):
+       Do not let eg eval-defun reset the values of syntax or abbrev tables,
+       since they might have been defined externally.  (Bug#16160)
+
+2016-12-12  Paul Eggert  <address@hidden>
+
+       * build-aux/git-hooks/pre-commit: Add whitespace comment.
+
+2016-12-12  Clément Pit--Claudel  <address@hidden>
+
+       Move backtrace to ELisp using a new mapbacktrace primitive
+
+       * src/eval.c (get_backtrace_starting_at, backtrace_frame_apply)
+       (Fmapbacktrace, Fbacktrace_frame_internal): New functions.
+       (get_backtrace_frame, Fbacktrace_debug): Use 
`get_backtrace_starting_at'.
+
+       * lisp/subr.el (backtrace--print-frame): New function.
+       (backtrace): Reimplement using `backtrace--print-frame' and 
`mapbacktrace'.
+       (backtrace-frame): Reimplement using `backtrace-frame--internal'.
+
+       * lisp/emacs-lisp/debug.el (debugger-setup-buffer): Pass a base to
+       `mapbacktrace' instead of searching for "(debug" in the output of
+       `backtrace'.
+
+       * test/lisp/subr-tests.el (subr-test-backtrace-simple-tests)
+       (subr-test-backtrace-integration-test): New tests.
+
+       * doc/lispref/debugging.texi (Internals of Debugger): Document
+       `mapbacktrace' and missing argument BASE of `backtrace-frame'.
+
+2016-12-12  Paul Eggert  <address@hidden>
+
+       Use C99 syntax for font drivers
+
+       Problem reported by Daniel Colascione in:
+       http://lists.gnu.org/archive/html/emacs-devel/2016-12/msg00515.html
+       * src/ftcrfont.c (ftcrfont_driver):
+       * src/ftfont.c (ftfont_driver):
+       * src/ftxfont.c (ftxfont_driver):
+       * src/macfont.m (macfont_driver):
+       * src/nsfont.m (nsfont_driver):
+       * src/xfont.c (xfont_driver):
+       * src/xftfont.c (xftfont_driver):
+       Use C99 syntax, not the old GNU C syntax.
+
+2016-12-12  Glenn Morris  <address@hidden>
+
+       Obsolete gs.el
+
+       * lisp/gs.el: Move to lisp/obsolete.  (Bug#1524)
+       * doc/lispref/display.texi (Image Formats): Remove postscript.
+       (PostScript Images): Remove section.
+       * doc/lispref/elisp.texi: Update menu.
+
+2016-12-12  Glenn Morris  <address@hidden>
+
+       Un-revert recent Ffset change
+
+       * src/data.c (Ffset): Reinstate the check for "nil".
+
+2016-12-12  Glenn Morris  <address@hidden>
+
+       Minor advice.el fix
+
+       * lisp/emacs-lisp/advice.el (ad-preactivate-advice):
+       Avoid setting the function definition of nil.
+       This was happening during bootstrap of org-compat.el,
+       apparently due to eager macro expansion of code behind
+       a (featurep 'xemacs) test.
+
+2016-12-12  Eli Zaretskii  <address@hidden>
+
+       Make etags-tests work in out-of-tree builds
+
+       * test/lisp/progmodes/etags-tests.el (etags-bug-158)
+       (etags-bug-23164): Make them work in an out-of-tree build.
+       Reported by Ken Brown <address@hidden>.
+
+2016-12-12  Eli Zaretskii  <address@hidden>
+
+       Avoid crashing if a new thread is signaled right away
+
+       * src/thread.c (post_acquire_global_lock): Don't raise the pending
+       signal if the thread's handlers were not yet set up, as that will
+       cause Emacs to exit with a fatal error.  This can happen if a
+       thread is signaled as soon as make-thread returns, before the new
+       thread had an opportunity to acquire the global lock, set up the
+       handlers, and call the thread function.
+
+       * test/src/thread-tests.el (thread-signal-early): New test.
+
+2016-12-12  Eli Zaretskii  <address@hidden>
+
+       Fix point motion in cloned buffers
+
+       * src/thread.c (post_acquire_global_lock): Call
+       set_buffer_internal_2 instead of tricking set_buffer_internal_1
+       into resetting the current buffer even if it didn't change.  This
+       avoids bug#25165, caused by failing to record the modified values
+       of point and mark, because current_buffer was set to NULL.  Also,
+       don't bother re-setting the buffer if there was no thread switch,
+       as that just wastes cycles.
+       * src/buffer.c (set_buffer_internal_2): New function, with most of
+       the body of set_buffer_internal_1, but without the test for B
+       being identical to the current buffer.
+       (set_buffer_internal_1): Call set_buffer_internal_2 if B is not
+       identical to the current buffer.
+       * src/buffer.h (set_buffer_internal_2): Add prototype.
+
+       * test/src/thread-tests.el (thread-sticky-point): New test.
+
+2016-12-12  Michael Albinus  <address@hidden>
+
+       Further improvements in Tramp's file name unquoting
+
+       * lisp/net/tramp-adb.el (tramp-adb-handle-file-local-copy)
+       (tramp-adb-handle-write-region): Unquote localname.
+       (tramp-adb-handle-copy-file): Implement direct copy on remote device.
+       (tramp-adb-handle-rename-file): Quote arguments, add "-f" to force.
+
+       * lisp/net/tramp.el (tramp-file-name-unquote-localname): New defun.
+       (tramp-handle-file-name-case-insensitive-p):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-get-file-attributes)
+       (tramp-gvfs-connection-mounted-p, tramp-gvfs-mount-spec)
+       (tramp-gvfs-maybe-open-connection):
+       * lisp/net/tramp-sh.el (tramp-make-copy-program-file-name):
+       * lisp/net/tramp-smb.el (tramp-smb-get-share)
+       (tramp-smb-get-localname): Use it.
+
+       * test/lisp/net/tramp-tests.el (tramp--test-docker-p): New defun.
+       (tramp--test-special-characters, tramp-test34-utf8)
+       (tramp-test34-utf8-with-stat, tramp-test34-utf8-with-perl)
+       (tramp-test34-utf8-with-ls): Use it.
+
+2016-12-12  Martin Rudalics  <address@hidden>
+
+       Strengthen conditions for resizing sibling windows (Bug#25169)
+
+       * lisp/window.el (window-resize, delete-window): Resize other siblings
+       only if `window-combination-resize' equals t (Bug#25169).
+
+2016-12-12  Noam Postavsky  <address@hidden>
+
+       Quote filenames containing '~' in prompts
+
+       When in a directory named '~', the default value given by
+       `read-file-name' should be quoted by prepending '/:', in order to
+       prevent it from being interpreted as referring to the $HOME
+       directory (Bug#16984).
+
+       * lisp/minibuffer.el (minibuffer-maybe-quote-filename): New function.
+       (completion--sifn-requote, read-file-name-default): Use it instead of
+       `minibuffer--double-dollars'.
+       * test/lisp/files-tests.el (files-test-read-file-in-~): Test it.
+
+2016-12-11  Eli Zaretskii  <address@hidden>
+
+       Undo part of last change
+
+       * src/thread.h:
+       * src/keyboard.c:
+       * src/keyboard.h: Undo part of last change:
+       input_available_clear_time is again a global variable.
+
+2016-12-11  Eli Zaretskii  <address@hidden>
+
+       Avoid aborts when a thread signals an error
+
+       * src/thread.h (struct thread_state): Add members
+       m_waiting_for_input and m_input_available_clear_time.
+       (waiting_for_input, input_available_clear_time): New macros.
+       * src/keyboard.c (waiting_for_input, input_available_clear_time):
+       Remove; they are now macros that reference the current thread.
+       (Bug#25171)
+       * src/w32select.c: Don't include keyboard.h.
+
+       * test/src/thread-tests.el (thread-errors): New test.
+
+2016-12-11  Philipp Stephani  <address@hidden>
+
+       Clean up compile-tests.el
+
+       Switch to lexical binding.  Make checkdoc happy.
+
+       * test/lisp/progmodes/compile-tests.el (compile--test-error-line)
+       (compile-test-error-regexps): Instead of checking a single Boolean
+       value, use `should' for each attribute of the message to be compared.
+       (compile-tests--test-regexps-data): Document sixth list element
+       TYPE.
+
+2016-12-11  Michael Albinus  <address@hidden>
+
+       Fix Bug#25162
+
+       * doc/emacs/files.texi (Reverting): Document
+       auto-revert-remote-files and auto-revert-verbose.
+
+       * lisp/autorevert.el (auto-revert-verbose, auto-revert-mode)
+       (auto-revert-tail-mode, global-auto-revert-mode): Fix docstring.
+
+2016-12-11  Glenn Morris  <address@hidden>
+
+       Fix a typo in define-abbrev-table
+
+       * lisp/abbrev.el (define-abbrev-table): Fix typo in docstring handling.
+
+2016-12-11  Glenn Morris  <address@hidden>
+
+       Improve previous cperl-mode change
+
+       * lisp/progmodes/cperl-mode.el (cperl-mode-abbrev-table):
+       Improve previous change.
+
+2016-12-11  Glenn Morris  <address@hidden>
+
+       Mark default cperl abbrevs as system ones
+
+       * lisp/progmodes/cperl-mode.el (cperl-mode):
+       Mark our abbrevs as system ones.  (Bug#10934)
+
+2016-12-11  Glenn Morris  <address@hidden>
+
+       Revert earlier Ffset change
+
+       * src/data.c (Ffset): Allow nil again, since it caused
+       eager macro-expansion failures.
+
+2016-12-11  Glenn Morris  <address@hidden>
+
+       Tweaks for message bogus address detection
+
+       * lisp/gnus/message.el (message-bogus-recipient-p):
+       Do not require "@", since some mailers deliver to local addresses
+       without one.  (Bug#23054)
+       Move "@.*@" from here...
+       (message-bogus-addresses): ...to here, so it can be customized.
+
+2016-12-11  Glenn Morris  <address@hidden>
+
+       Do not allow nil to be defined as a function
+
+       * lisp/emacs-lisp/byte-run.el (defun):
+       * src/data.c (Ffset): Do not allow "nil".  (Bug#25110)
+
+2016-12-11  Glenn Morris  <address@hidden>
+
+       Bump makeinfo requirement from 4.7 to 4.13
+
+       * configure.ac: Bump makeinfo version requirement from 4.7 to 4.13.
+       We need at least 4.8, and that may be buggy, so go for the last
+       of the 4 series, which is 8 years old.  (Bug#25108)
+
+2016-12-11  Glenn Morris  <address@hidden>
+
+       Fixes related to select-enable-clipboard
+
+       * lisp/menu-bar.el (clipboard-yank, clipboard-kill-ring-save)
+       (clipboard-kill-region):
+       * lisp/eshell/esh-io.el (eshell-virtual-targets)
+       (eshell-clipboard-append):
+       Replace option gui-select-enable-clipboard with
+       select-enable-clipboard; renamed October 2014.  (Bug#25145)
+
+2016-12-11  Nicolas Richard  <address@hidden>
+
+       Add some sanity checking of defun arglist
+
+       * lisp/emacs-lisp/byte-run.el (defun):
+       Check for malformed argument lists.  (Bug#15715)
+
+2016-12-11  Matt Armstrong  <address@hidden>  (tiny change)
+
+       Minor shell-mode fix for zsh
+
+       * lisp/shell.el (shell-mode): Prevent shell-dirstack-query
+       becoming confused by zsh abbreviations.  (Bug#24632)
+
+2016-12-10  Noam Postavsky  <address@hidden>
+
+       Define struct predicate before acccesors
+
+       The accessor functions use the predicate function, which causes problems
+       when reloading after unload-feature: the compiler-macro property is
+       still present on the predicate symbol, and the compiler fails to find
+       the definition when trying to inline it into the accessor
+       function (Bug#25088).
+
+       * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Move predicate definition
+       before field accessor definitions.
+
+2016-12-10  Andreas Schwab  <address@hidden>
+
+       * Makefile.in (install-etc): Don't prepend $(DESTDIR) to commands in
+       system unit file.
+
+2016-12-10  Eli Zaretskii  <address@hidden>
+
+       Support concurrency in Emacs Lisp
+
+       Merge branch 'test-concurrency'
+
+       * src/thread.c:
+       * src/thread.h:
+       * src/systhread.c:
+       * src/systhread.h: New files.
+       * src/xgselect.c (xg_select): Avoid using SAFE_NALLOCA and use
+       xnmalloc unconditionally.
+       * src/window.c (struct save_window_data): Rename current_buffer to
+       f_current_buffer.
+       * src/w32proc.c (sys_select): Change the function signature to
+       closer fit 'pselect' on Posix hosts.
+       * src/search.c:
+       * src/regex.h: Convert some globals to macros that reference
+       thread-specific values.
+       * src/process.c (pset_thread, add_non_keyboard_read_fd)
+       (add_process_read_fd, add_non_blocking_write_fd)
+       (recompute_input_desc, compute_input_wait_mask)
+       (compute_non_process_wait_mask, compute_non_keyboard_wait_mask)
+       (compute_write_mask, clear_waiting_thread_info)
+       (update_processes_for_thread_death, Fset_process_thread)
+       (Fprocess_thread): New functions.
+       (enum fd_bits): New enumeration.
+       (fd_callback_data): Add 'thread' and 'waiting_thread', rename
+       'condition' to 'flags'.
+       (set_process_filter_masks, create_process, create_pty)
+       (Fmake_serial_process, finish_after_tls_connection)
+       (connect_network_socket, deactivate_process)
+       (server_accept_connection, wait_reading_process_output)
+       (Fcontinue_process, Fstop_process, keyboard_bit_set)
+       (add_timer_wait_descriptor, add_keyboard_wait_descriptor)
+       (delete_keyboard_wait_descriptor): Use the new functions instead
+       of manipulating fd flags and masks directly.
+       (syms_of_process): Defsubr the new primitives.
+       * src/print.c (print_object): Print threads, mutexes, and
+       conditional variables.
+       * src/lisp.h (enum pvec_type): New values PVEC_THREAD, PVEC_MUTEX,
+       and PVEC_CONDVAR.
+       (XTHREAD, XMUTEX, XCONDVAR, THREADP, MUTEXP, CONDVARP)
+       (CHECK_THREAD, CHECK_MUTEX, CHECK_CONDVAR): New inline functions.
+       (XSETTHREAD, XSETMUTEX, XSETCONDVAR): New macros.
+       (struct handler): Add back byte_stack.  Rename lisp_eval_depth to
+       f_lisp_eval_depth.
+       * src/eval.c (specpdl_kind, specpdl_arg, do_specbind)
+       (rebind_for_thread_switch, do_one_unbind)
+       (unbind_for_thread_switch): New functions.
+       (init_eval): 'handlerlist' is not malloc'ed.
+       (specbind): Call do_specbind.
+       (unbind_to): Call do_one_unbind.
+       (mark_specpdl): Accept 2 arguments.
+       (mark_specpdl): Mark the saved value in a let-binding.
+       * src/emacs.c (main): Call init_threads_once, init_threads, and
+       syms_of_threads.
+       * src/data.c (Ftype_of): Support thread, mutex, and condvar
+       objects.
+       (Fthreadp, Fmutexp, Fcondition_variable_p): New functions.
+       (syms_of_data): DEFSYM and defsubr new symbols and primitives.
+       * src/bytecode.c (struct byte_stack, FETCH, CHECK_RANGE)
+       (BYTE_CODE_QUIT): Add back.
+       (exec_byte_code): Add back byte stack manipulation.
+       * src/alloc.c (cleanup_vector): Handle threads, mutexes, and
+       conditional variables.
+       (mark_stack): Now extern; accept additional argument 'bottom'.
+       (flush_stack_call_func): New function.
+       (garbage_collect_1): Call mark_threads and unmark_threads.  Don't
+       mark handlers.
+       * src/.gdbinit (xbytecode): Add back.
+
+       * test/src/thread-tests.el: New tests.
+       * test/src/data-tests.el (binding-test-manual)
+       (binding-test-setq-default, binding-test-makunbound)
+       (binding-test-defvar-bool, binding-test-defvar-int)
+       (binding-test-set-constant-t, binding-test-set-constant-nil)
+       (binding-test-set-constant-keyword)
+       (binding-test-set-constant-nil): New tests.
+
+       * doc/lispref/processes.texi (Processes and Threads): New
+       subsection.
+       * doc/lispref/threads.texi: New file
+       * doc/lispref/elisp.texi (Top): Include it.
+       * doc/lispref/objects.texi (Thread Type, Mutex Type)
+       (Condition Variable Type): New subsections.
+       (Type Predicates): Add thread-related predicates.
+       * doc/lispref/objects.texi (Editing Types):
+       * doc/lispref/elisp.texi (Top): Update higher-level menus.
+
+       * etc/NEWS: Mention concurrency features.
+
+2016-12-10  Eli Zaretskii  <address@hidden>
+
+       Fix error messages in thread.c
+
+       * src/thread.c (lisp_mutex_unlock, Fcondition_wait)
+       (Fcondition_notify, Fthread_join): Fix error messages.
+
+2016-12-10  Eli Zaretskii  <address@hidden>
+
+       Improve doc strings in thread.c
+
+       * src/thread.c (Fmake_condition_variable, Fcondition_wait)
+       (Fcondition_notify, Fcondition_mutex, Fcondition_name, Fmake_thread)
+       (Fthread_join, Fall_threads): Doc fixes.
+
+2016-12-10  Eli Zaretskii  <address@hidden>
+
+       Fix building with check-lisp-object-type
+
+       * src/thread.c (mark_one_thread): Use NILP to compare with
+       m_saved_last_thing_searched, which is a Lisp object.  Reported by
+       Andreas Politz <address@hidden>.
+
+2016-12-10  Eli Zaretskii  <address@hidden>
+
+       Documentation and commentary improvements
+
+       * src/lisp.h:
+       * src/regex.c:
+       * src/xgselect.c (xg_select): Improve commentary and formatting.
+
+       * doc/lispref/objects.texi (Thread Type, Mutex Type)
+       (Condition Variable Type): New subsections.
+       (Type Predicates): Add thread-related predicates.
+       * doc/lispref/objects.texi (Editing Types):
+       * doc/lispref/elisp.texi (Top): Update higher-level menus.
+
+2016-12-09  Michael Albinus  <address@hidden>
+
+       Fix further problems with quoted file names in Tramp
+
+       * lisp/net/tramp.el (tramp-quoted-name-p, tramp-quote-name)
+       (tramp-unquote-name): Move defsubst ...
+       * lisp/net/tramp-compat.el (tramp-compat-file-name-quoted-p)
+       (tramp-compat-file-name-quote)
+       (tramp-compat-file-name-unquote): ... here. Adapt callees.
+
+       * lisp/net/tramp-cache.el (tramp-flush-file-property)
+       (tramp-flush-directory-property):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-url-file-name):
+       * lisp/net/tramp-sh.el (tramp-make-copy-program-file-name):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-copy-file)
+       (tramp-smb-handle-substitute-in-file-name)
+       (tramp-smb-get-share, tramp-smb-get-localname): Handle quoted files.
+
+2016-12-09  Eli Zaretskii  <address@hidden>
+
+       *src/sysdep.c: Fix a comment.
+
+2016-12-09  Eli Zaretskii  <address@hidden>
+
+       Fix compilation error on Fedora 24
+
+       * src/sysdep.c [HAVE_H_ERRNO]: Remove declaration of h_errno.
+       Reported by Paul Eggert <address@hidden>.
+
+2016-12-09  Eli Zaretskii  <address@hidden>
+
+       Fix compilation warnings due to prototype of thread_select
+
+       * src/thread.h <int select_func>: Make the 5th and 6th arguments
+       be 'const'.
+       * src/process.c [WINDOWSNT]:
+       * src/w32proc.c: Make the 5th and 6th argument to sys_select be
+       'const'.
+
+2016-12-09  Eli Zaretskii  <address@hidden>
+
+       Fix compilation on Debian GNU/Linux
+
+       * src/thread.h: Include sys/types.h, for ssize_t that regex.h
+       uses.  Reported by Robert Marshall <address@hidden>.
+
+2016-12-09  Eli Zaretskii  <address@hidden>
+
+       Fix subtle errors with let-binding of localized variables
+
+       * src/eval.c (do_specbind): Don't require a "symbol" that is
+       actually a cons cell, in order to call set-default, as there are
+       no longer such bindings.  This makes do_specbind work like the
+       pre-concurrency implementation in specbind for bindings of
+       forwarded symbols.  Use specpdl_kind to access the type of the
+       binding.
+       (specpdl_kind): New function.
+
+2016-12-09  Michael Albinus  <address@hidden>
+
+       Document file-name-quote, file-name-unquote and file-name-quoted-p
+
+       * doc/lispref/files.texi (File Name Expansion):
+       * etc/NEWS: Mention file-name-quote, file-name-unquote and
+       file-name-quoted-p.
+
+       * lisp/files.el (file-name-non-special): Revert using
+       file-name-quote, file-name-unquote and file-name-quoted-p.
+
+2016-12-09  Noam Postavsky  <address@hidden>
+
+       Fix bad quoting of python-shell-interpreter
+
+       `python-shell-calculate-command' was using `shell-quote-argument' as if
+       it was generating a shell command, but its callers don't pass the result
+       to a shell, and they expect to parse it with `split-string-and-unquote'.
+       This caused problems depending on the flavor of shell quoting in
+       effect (Bug#25025).
+
+       * lisp/progmodes/python.el (python-shell-calculate-command): Use
+       `combine-and-quote-strings' to quote the interpreter, so that it can be
+       parsed by `python-shell-make-comint' successfully using
+       `split-string-and-unquote'.
+
+2016-12-09  Paul Eggert  <address@hidden>
+
+       * src/lisp.h (struct terminal): Remove unnecessary forward decl.
+
+2016-12-08  Paul Eggert  <address@hidden>
+
+       Make read1 more reentrant
+
+       This is needed if ‘read’ is called soon after startup, before the
+       Unicode tables have been set up, and it reads a \N escape and
+       needs to look up a value the Unicode tables, a lookup that in turn
+       calls read1 recursively.  Although this change doesn’t make ‘read’
+       fully reentrant, it’s good enough to handle this case.
+       * src/lread.c (read_buffer_size, read_buffer): Remove static vars.
+       (grow_read_buffer): Revamp to use locals, not statics, and to
+       record memory allocation un the specpdl.  All callers changed.
+       (read1): Start with a stack-based buffer, and use the heap
+       only if the stack buffer is too small.  Use unbind_to to
+       free any heap buffer allocated.  Use bool for boolean.
+       Redo symbol loop so that only one call to grow_read_buffer
+       is needed.
+       (init_obarray): Remove no-longer-needed initialization.
+
+2016-12-08  Eli Zaretskii  <address@hidden>
+
+       Fix compilation warnings
+
+       * src/thread.c (Fmake_thread): Call emacs_abort, to avoid
+       compilation warning.
+
+2016-12-08  Paul Eggert  <address@hidden>
+
+       Fix unlikely substitute-command-keys memory leak
+
+       * src/doc.c (Fsubstitute_command_keys):
+       Free buffer when unwinding.
+
+2016-12-08  Michael Albinus  <address@hidden>
+
+       Add file-name-quoted-p, file-name-quote, file-name-unquote
+
+       * lisp/files.el (file-name-quoted-p, file-name-quote)
+       (file-name-unquote): New defsubst.
+       (find-file--read-only, find-file-noselect)
+       (file-name-non-special): Use them.
+
+2016-12-08  Eli Zaretskii  <address@hidden>
+
+       Add a NEWS entry.
+
+2016-12-08  Glenn Morris  <address@hidden>
+
+       Minor fix for symbol-file
+
+       * lisp/subr.el (symbol-file): Avoid false matches with "require"
+       elements in load-history.  (Bug#25109)
+
+2016-12-08  Glenn Morris  <address@hidden>
+
+       Doc fix for vc-git
+
+       * lisp/vc/vc-git.el (vc-git-region-history): Add a doc string.
+
+2016-12-08  Tino Calancha  <address@hidden>
+
+       Fix Bug#24962
+
+       * lisp/buff-menu.el (list-buffers--refresh):
+       List buffers with name starting with " " if they visit a file.
+       * test/lisp/buff-menu-tests.el (buff-menu-24962):
+       Update test result as pass.
+
+2016-12-08  Tino Calancha  <address@hidden>
+
+       ediff-fixup-patch-map: Improve prompt
+
+       * lisp/vc/ediff-ptch.el (ediff-fixup-patch-map):
+       Make clear in the prompt when we are applying a multi patch.
+
+2016-12-08  Glenn Morris  <address@hidden>
+
+       Retain message logging in map-y-or-n-p
+
+       * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p):
+       Stop disabling logging to Messages buffer.  (Bug#13326)
+
+2016-12-08  Glenn Morris  <address@hidden>
+
+       Doc fix for recent change
+
+       * lisp/simple.el (region-modifiable-p): Doc fix.
+
+2016-12-08  Glenn Morris  <address@hidden>
+
+       Quieten make-dist default operation
+
+       * make-dist: Add --verbose option.  Default to quieter operation.
+
+2016-12-08  Glenn Morris  <address@hidden>
+
+       Further improve make-dist checking
+
+       * make-dist: Print status messages when checking.
+
+2016-12-08  Glenn Morris  <address@hidden>
+
+       Improve previous make-dist change
+
+       * make-dist: Let make check the info files more thoroughly.
+
+2016-12-08  Glenn Morris  <address@hidden>
+
+       Make make-dist --snapshot do some sanity checks
+
+       * make-dist: Snapshot mode no longer disables checks.
+       Checks now includes checks for freshness.  (Bug#25084)
+       Checks now exits with an error if problems were found.
+
+2016-12-07  Tino Calancha  <address@hidden>
+
+       Fix regression introduced by commit 7b1e97f
+
+       * lisp/ibuf-ext.el (ibuffer-decompose-filter): Use cdr instead
+       of cadr; required after commit 20f5a5b.
+
+2016-12-07  Paul Eggert  <address@hidden>
+
+       Put post-25 ChangeLog entries into ChangeLog.3
+
+       * ChangeLog.2: Copy from emacs-25 branch.
+       * ChangeLog.3: New file, with changes only in master.
+       * Makefile.in (CHANGELOG_HISTORY_INDEX_MAX): Bump from 2 to 3.
+
+2016-12-07  Eli Zaretskii  <address@hidden>
+
+       Fix network streams.
+
+       The original code messed up flags in fd_callback_data[], and also
+       didn't call add_process_read_fd for process-related file descriptors.
+
+2016-12-07  Eli Zaretskii  <address@hidden>
+
+       Minimize spurious diffs from master.
+
+2016-12-06  Eli Zaretskii  <address@hidden>
+
+       Fix the test suite
+
+       * test/automated/bindings.el: Contents moved to
+       test/src/data-tests.el.
+       * test/automated/threads.el: Moved to test/src/thread-tests.el.
+
+2016-12-06  Eli Zaretskii  <address@hidden>
+
+       Fix a typo in bytecode.c.
+
+2016-12-05  Eli Zaretskii  <address@hidden>
+
+       Fix compilation problems.
+
+       Fix merged code in process.c and eval.c.
+
+2016-12-04  Eli Zaretskii  <address@hidden>
+
+       Merge branch 'concurrency'
+
+       Conflicts (resolved):
+               configure.ac
+               src/Makefile.in
+               src/alloc.c
+               src/bytecode.c
+               src/emacs.c
+               src/eval.c
+               src/lisp.h
+               src/process.c
+               src/regex.c
+               src/regex.h
+
+2015-11-02  Eli Zaretskii  <address@hidden>
+
+       Fix the MS-Windows build
+
+       * src/thread.h [WINDOWSNT]: Include sys/socket.h.
+
+       * src/sysselect.h: Don't define fd_set and FD_* macros for
+       MS-Windows here.
+       * src/w32.h: Define them here.
+
+       * src/process.h (sys_select): Declare prototype.
+
+       * src/sysdep.c:
+       * src/process.c:
+       * src/filelock.c:
+       * src/emacs.c:
+       * src/callproc.c: Move inclusion of sys/select.h after lisp.h.
+       * nt/inc/socket.h: Include w32.h instead of sysselect.h
+
+2015-11-01  Ken Raeburn  <address@hidden>
+
+       merge from trunk
+
+2013-10-19  Barry O'Reilly  <address@hidden>
+
+       * src/eval.c (unbind_for_thread_switch): Fix iteration over the
+       specpdl stack.
+
+2013-10-18  Tom Tromey  <address@hidden>
+
+       change condition-variablep to condition-variable-p
+
+2013-09-01  Eli Zaretskii  <address@hidden>
+
+       Fix crashes when unbind_for_thread_switch signals an error.
+
+        src/eval.c (unbind_for_thread_switch): Accept a 'struct
+        thread_state *' argument and use specpdl_ptr and specpdl of that
+        thread.  Fixes crashes if find_symbol_value signals an error.
+        src/thread.c (post_acquire_global_lock): Update current_thread
+        before calling unbind_for_thread_switch.  Pass the previous thread
+        to unbind_for_thread_switch.
+
+2013-08-31  Eli Zaretskii  <address@hidden>
+
+       Improve MS-Windows implementation of threads.
+
+        src/systhread.c (sys_cond_init): Set the 'initialized' member to
+        true only if initialization is successful.  Initialize wait_count
+        and wait_count_lock.
+        (sys_cond_wait, sys_cond_signal, sys_cond_broadcast): If
+        'initialized' is false, do nothing.
+        (sys_cond_wait): Fix the implementation to avoid the "missed
+        wakeup" bug: count the waiting threads, and reset the broadcast
+        event once the last thread was released.
+        (sys_cond_signal, sys_cond_broadcast): Use SetEvent instead of
+        PulseEvent.  Don't signal the event if no threads are waiting.
+        (sys_cond_destroy): Only close non-NULL handles.
+        (sys_thread_create): Return zero if unsuccessful, 1 if successful.
+        src/systhread.h (w32thread_cond_t): New member 'initialized'.
+        Rename waiters_count and waiters_count_lock to wait_count and
+        wait_count_lock, respectively.
+
+2013-08-30  Eli Zaretskii  <address@hidden>
+
+       Enable thread support in the MS-Windows build.
+
+        src/systhread.h (w32thread_critsect, w32thread_cond_t, sys_mutex_t)
+        (sys_cond_t, sys_thread_t) [WINDOWSNT]: New data types.
+        src/systhread.c (sys_mutex_init, sys_mutex_lock, sys_mutex_unlock)
+        (sys_mutex_destroy, sys_cond_init, sys_cond_wait)
+        (sys_cond_signal, sys_cond_broadcast, sys_cond_destroy)
+        (sys_thread_self, sys_thread_equal, w32_beginthread_wrapper)
+        (sys_thread_create, sys_thread_yield) [WINDOWSNT]: New functions.
+
+        configure.ac (THREADS_ENABLED): Enable threads for MinGW, even
+        if pthreads is not available.
+
+2013-08-27  Tom Tromey  <address@hidden>
+
+       use condition-notify in the docs, not condition-signal
+
+       zap until-condition docs
+
+       zap until-condition
+
+       rename thread-blocker to thread--blocker
+
+       remove binding_symbol
+
+       fix style of threadp, mutexp, and condition-variable-p
+
+       make thread_check_current_buffer return bool
+
+       add a comment before flush_stack_call_func
+
+       fix whitespace_regexp warning
+
+2013-08-26  Eli Zaretskii  <address@hidden>
+
+       Fix MS-Windows build.
+
+        src/callproc.c:
+        src/emacs.c:
+        src/filelock.c:
+        src/process.c:
+        src/sysdep.c:
+        src/w32.c: Reshuffle Windows-specific headers to avoid errors with
+        redefinition of fd_set etc.
+        src/process.c: Don't use num_pending_connects when
+        NON_BLOCKING_CONNECT is not defined.
+        src/sysselect.h: Move definitions of FD_* macros and of SELECT_TYPE
+        here from w32.h.
+        src/w32proc.c (sys_select): Adjust the argument types to what
+        thread.h expects.
+
+        nt/inc/sys/socket.h: Include stdint.h.  Include sysselect.h instead
+        of w32.h.
+
+2013-08-26  Tom Tromey  <address@hidden>
+
+       use record_unwind_protect_void, avoid warning
+
+       implement --enable-threads and a thread-less mode
+
+2013-08-25  Tom Tromey  <address@hidden>
+
+       merge from trunk
+
+2013-08-20  Tom Tromey  <address@hidden>
+
+       fix up some merge errors in process.c
+
+       remove a dead function
+       clean up a fixme I added in create_pty during the merge
+
+2013-08-20  Tom Tromey  <address@hidden>
+
+       merge from trunk
+
+2013-07-26  Tom Tromey  <address@hidden>
+
+       merge from trunk
+
+2013-07-13  Tom Tromey  <address@hidden>
+
+       Merge from trunk
+
+2013-07-12  Tom Tromey  <address@hidden>
+
+       Use thread_alive_p in a couple more spots
+
+2013-07-07  Tom Tromey  <address@hidden>
+
+       fix xfree bug in run_thread
+
+       this fixes run_thread to account for the dummy slot
+       in specpdl
+
+2013-07-07  Tom Tromey  <address@hidden>
+
+       merge from trunk
+
+       this merges frmo trunk and fixes various build issues.
+       this needed a few ugly tweaks.
+       this hangs in "make check" now
+
+2013-07-06  Tom Tromey  <address@hidden>
+
+       add assertion to flush_stack_call_func
+
+       functions called via flush_stack_call_func are assumed
+       to return with the global lock held again, and with
+       current_thread reset.  this assertion verifies part of this
+
+2013-07-06  Tom Tromey  <address@hidden>
+
+       call init_primary_thread from init_threads
+
+2013-07-05  Tom Tromey  <address@hidden>
+
+       avoid SAFE_ALLOCA
+
+       avoid SAFE_ALLOCA in xgselect.c.
+       in this code it is just as easy to always use malloc;
+       and it avoids thread-switching problems, as the safe-alloca
+       stuff implicitly refers to the current thread
+
+2013-07-05  Tom Tromey  <address@hidden>
+
+       avoid current_thread sometimes
+
+       this tweaks thread.c to use 'self' instead of current_thread
+       in a couple spots.  this is clearer and more robust
+
+2013-07-05  Tom Tromey  <address@hidden>
+
+       initialize saved_value
+
+       initialize the saved_value field in all needed cases
+       also, add an assertion to do_one_unbind
+
+2013-07-04  Tom Tromey  <address@hidden>
+
+       fix buglet in test case
+
+2013-07-04  Tom Tromey  <address@hidden>
+
+       unlink thread later
+
+       unlink thread from global list later
+       also remove some unnecessary destruction code
+
+2013-07-04  Tom Tromey  <address@hidden>
+
+       introduce thread_alive_p macro
+
+       This introduces the thread_alive_p macro and changes
+       thread-alive-p to use it.  This is a minor cleanup.
+       It also changes all-threads to ignore dead threads.
+
+2013-07-03  Tom Tromey  <address@hidden>
+
+       Don't call unbind_for_thread_switch in run_thread
+
+       This removes the call to unbind_for_thread_switch from run_thread.
+       This isn't necessary because acquire_global_lock does it properly.
+
+2013-07-03  Tom Tromey  <address@hidden>
+
+       remove unused field from struct thread_state
+
+       Fix a comment.
+
+2013-06-13  Tom Tromey  <address@hidden>
+
+       merge from trunk
+
+2013-06-06  Tom Tromey  <address@hidden>
+
+       fix a few latent issues in the thread patch
+
+       * we called unbind_for_thread_switch unconditionally, but this
+         is wrong if the previous thread exited
+       * likewise, exiting a thread should clear current_thread
+       * redundant assignment in run_thread
+       * clean up init_threads - no need to re-init the primary thread
+
+       This patch still sometimes causes weird hangs in "make check".
+       However, I think that is a kernel bug, since Emacs enters the zombie
+       state but its parent process hangs in wait.  This shouldn't happen.
+
+2013-06-04  Tom Tromey  <address@hidden>
+
+       update eval.c to make it build again after the merge
+
+2013-06-03  Tom Tromey  <address@hidden>
+
+       merge from trunk; clean up some issues
+
+2013-03-18  Tom Tromey  <address@hidden>
+
+       don't let kill-buffer kill a buffer if it is current in any thread
+
+2013-03-18  Tom Tromey  <address@hidden>
+
+       fix process bugs
+
+       Fix some process-related bugs, mostly thinkos from the conversion to
+       recording fd state as flags.
+       This now passes the test suite without hanging.
+
+2013-03-17  Tom Tromey  <address@hidden>
+
+       merge from trunk
+
+2013-03-08  Tom Tromey  <address@hidden>
+
+       merge from trunk
+
+2013-01-16  Tom Tromey  <address@hidden>
+
+       merge from trunk
+
+2013-01-06  Tom Tromey  <address@hidden>
+
+       merge from trunk
+
+2012-12-23  Tom Tromey  <address@hidden>
+
+       mention let bindings and lack of other ways to rewind
+
+2012-12-17  Tom Tromey  <address@hidden>
+
+       Remove bit accidentally left over from the merge
+
+       merge from trunk
+
+2012-09-04  Tom Tromey  <address@hidden>
+
+       merge from trunk
+
+       link from thread docs to match data
+
+2012-08-27  Tom Tromey  <address@hidden>
+
+       cannot thread-join the current thread
+
+       fix test suite for condition-variable-p name change
+
+       add tests for variable bindings
+
+2012-08-25  Tom Tromey  <address@hidden>
+
+       minor update to thread-join docs
+
+2012-08-24  Tom Tromey  <address@hidden>
+
+       minor documentation updates
+
+2012-08-23  Tom Tromey  <address@hidden>
+
+       document until-condition
+
+       first draft of threads documentation
+
+       rename condition-variablep to condition-variable-p
+
+       document process-thread and set-process-thread
+
+2012-08-20  Tom Tromey  <address@hidden>
+
+       pass the thread name to the OS if possible
+
+       use prctl to pass the thread name to the OS, if possible
+
+2012-08-20  Tom Tromey  <address@hidden>
+
+       add convenience macros with-mutex and until-condition
+
+       with-mutex is a safe way to run some code with a mutex held.
+       until-condition is a safe way to wait on a condition variable.
+
+2012-08-20  Tom Tromey  <address@hidden>
+
+       Merge from trunk
+
+2012-08-19  Tom Tromey  <address@hidden>
+
+       another docstring fixlet
+
+       minor docstring fixup
+
+       add condition-mutex and condition-name
+
+       ensure name of a thread is a string
+
+       ensure name of a mutex is a string
+
+       use NILP
+
+2012-08-19  Tom Tromey  <address@hidden>
+
+       condition variables
+
+       This implements condition variables for elisp.
+       This needs more tests.
+
+2012-08-19  Tom Tromey  <address@hidden>
+
+       comment fixes
+
+2012-08-19  Tom Tromey  <address@hidden>
+
+       refactor systhread.h
+
+       This refactors systhread.h to move the notion of a "lisp mutex"
+       into thread.c.  This lets us make make the global lock and
+       post_acquire_global_lock static.
+
+2012-08-17  Tom Tromey  <address@hidden>
+
+       write docstrings for the thread functions
+
+       declare unbind_for_thread_switch and rebind_for_thread_switch in lisp.h
+
+2012-08-15  Tom Tromey  <address@hidden>
+
+       add test case for I/O switching
+
+2012-08-15  Tom Tromey  <address@hidden>
+
+       process changes
+
+       This changes wait_reading_process_output to handle threads better.  It
+       introduces a wrapper for select that releases the global lock, and it
+       ensures that only a single thread can select a given file descriptor
+       at a time.
+
+       This also adds the thread-locking feature to processes.  By default a
+       process can only have its output accepted by the thread that created
+       it.  This can be changed using set-process-thread.  (If the thread
+       exits, the process is again available for waiting by any thread.)
+
+       Note that thread-signal will not currently interrupt a thread blocked
+       on select.  I'll fix this later.
+
+2012-08-15  Tom Tromey  <address@hidden>
+
+       Prepare process.c for threads by not having global select masks.
+       The next step is to make it so selects can choose fds by thread.
+
+2012-08-15  Tom Tromey  <address@hidden>
+
+       fix a latent bug in process.c
+
+               * process.c (wait_reading_process_output): Check Writeok bits,
+               not write_mask.
+
+2012-08-15  Tom Tromey  <address@hidden>
+
+       This adds thread-blocker, a function to examine what a thread is
+       blocked on.  I thought this would be another nice debugging addition.
+
+       This adds names to mutexes.  This seemed like a nice debugging
+       extension.
+
+       This adds some tests of the threading code.
+
+2012-08-15  Tom Tromey  <address@hidden>
+
+       This supplies the mutex implementation for Emacs Lisp.
+
+       A lisp mutex is implemented using a condition variable, so that we can
+       interrupt a mutex-lock operation by calling thread-signal on the
+       blocking thread.  I did things this way because pthread_mutex_lock
+       can't readily be interrupted.
+
+2012-08-15  Tom Tromey  <address@hidden>
+
+       This adds most of the thread features visible to emacs lisp.
+
+       I roughly followed the Bordeaux threads API:
+
+       http://trac.common-lisp.net/bordeaux-threads/wiki/ApiDocumentation
+
+       ... but not identically.  In particular I chose not to implement
+       interrupt-thread or destroy-thread, but instead a thread-signalling
+       approach.
+
+       I'm still undecided about *default-special-bindings* (which I did not
+       implement).  I think it would be more emacs-like to capture the let
+       bindings at make-thread time, but IIRC Stefan didn't like this idea
+       the first time around.
+
+       There are one or two semantics issues pointed out in the patch where I
+       could use some advice.
+
+2012-08-15  Tom Tromey  <address@hidden>
+
+       This turns thread_state into a pseudovector and updates various bits
+       of Emacs to cope.
+
+2012-08-15  Tom Tromey  <address@hidden>
+
+       This introduces some new functions to handle the specpdl.  The basic
+       idea is that when a thread loses the interpreter lock, it will unbind
+       the bindings it has put in place.  Then when a thread acquires the
+       lock, it will restore its bindings.
+
+       This code reuses an existing empty slot in struct specbinding to store
+       the current value when the thread is "swapped out".
+
+       This approach performs worse than my previously planned approach.
+       However, it was one I could implement with minimal time and
+       brainpower.  I hope that perhaps someone else could improve the code
+       once it is in.
+
+2012-08-15  Tom Tromey  <address@hidden>
+
+       This introduces the low-level system threading support.  It also adds
+       the global lock.  The low-level support is a bit over-eager, in that
+       even at the end of the present series, it will not all be used.  I
+       think thiat is ok since I plan to use it all eventually -- in
+       particular for the emacs lisp mutex implementation.
+
+       I've only implemented the pthreads-based version.  I think it should
+       be relatively clear how to port this to other systems, though.
+
+       I'd also like to do a "no threads" port that will turn most things
+       into no-ops, and have thread-creation fail.  I was thinking perhaps
+       I'd make a future (provide 'threads) conditional on threads actually
+       working.
+
+       One other minor enhancement available here is to make it possible to
+       set the name of the new thread at the OS layer.  That way gdb, e.g.,
+       could display thread names.
+
+2012-08-15  Tom Tromey  <address@hidden>
+
+       This parameterizes the GC a bit to make it thread-ready.
+
+       The basic idea is that whenever a thread "exits lisp" -- that is,
+       releases the global lock in favor of another thread -- it must save
+       its stack boundaries in the thread object.  This way the boundaries
+       are always available for marking.  This is the purpose of
+       flush_stack_call_func.
+
+       I haven't tested this under all the possible GC configurations.
+       There is a new FIXME in a spot that i didn't convert.
+
+       Arguably all_threads should go in the previous patch.
+
+2012-08-15  Tom Tromey  <address@hidden>
+
+       This introduces a thread-state object and moves various C globals
+       there.  It also introduces #defines for these globals to avoid a
+       monster patch.
+
+       The #defines mean that this patch also has to rename a few fields
+       whose names clash with the defines.
+
+       There is currently just a single "thread"; so this patch does not
+       impact Emacs behavior in any significant way.
+
 2016-12-07  Paul Eggert  <address@hidden>
 
        Merge from origin/emacs-25
@@ -22610,7 +50754,7 @@
 
 This file records repository revisions from
 commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to
-commit f15f6b53078ac2176f8d2c05d99d3d9b4d32986b (inclusive).
+commit 82d2a05a74c120480dc1b68243430c9417bfc523 (inclusive).
 See ChangeLog.1 for earlier changes.
 
 ;; Local Variables:
diff --git a/Makefile.in b/Makefile.in
index b882da1..8ad3f99 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1115,7 +1115,7 @@ ChangeLog:
          ./$(emacslog) -o $(CHANGELOG) -n $(CHANGELOG_HISTORY_INDEX_MAX)
 
 # Check that we are in a good state for changing history.
-PREFERRED_BRANCH = master
+PREFERRED_BRANCH = emacs-26
 preferred-branch-is-current:
        git branch | grep -q '^\* $(PREFERRED_BRANCH)$$'
 unchanged-history-files:
diff --git a/admin/authors.el b/admin/authors.el
index f79c2e8..5638efb 100644
--- a/admin/authors.el
+++ b/admin/authors.el
@@ -806,7 +806,10 @@ Changes to files in this list are not listed.")
     "srecode-tests.el" "make-test-deps.emacs-lisp"
     "nxml-uchnm.el"
     "decoder-tests.el"
-    "obsolete/scribe.el")
+    "obsolete/scribe.el"
+    "cp51932.el"
+    "eucjp-ms.el"
+    "lisp.mk")
   "File names which are valid, but no longer exist (or cannot be found)
 in the repository.")
 
@@ -912,7 +915,7 @@ in the repository.")
     ("emulation/ws-mode.el" . "ws-mode.el")
     ("vc/vc-arch.el" . "vc-arch.el")
     ("lisp/gnus/messcompat.el" . "messcompat.el")
-    ("lisp/gnus/html2text.el" . "html2text.el")
+    ("html2text.el" . "html2text.el")
     ;; From lisp to etc/forms.
     ("forms-d2.el" . "forms-d2.el")
     ("forms-pass.el" . "forms-pass.el")
diff --git a/doc/misc/flymake.texi b/doc/misc/flymake.texi
index 5dd72f8..a85fe4a 100644
--- a/doc/misc/flymake.texi
+++ b/doc/misc/flymake.texi
@@ -4,7 +4,7 @@
 @set VERSION 0.3
 @set UPDATED April 2004
 @settitle GNU Flymake @value{VERSION}
address@hidden ../emacs/docstyle.texi
address@hidden docstyle.texi
 @syncodeindex pg cp
 @comment %**end of header
 
@@ -182,7 +182,7 @@ to the first diagnostic when invoked in the end of the 
buffer.
 @cindex Syntax check statuses
 
 After syntax check is finished, its status is displayed in the mode line.
-The following statuses are defined.
+The following statuses are defined:
 
 @multitable @columnfractions 0.25 0.75
 @item @code{Wait}
@@ -356,7 +356,7 @@ selected.  If no match is found, @code{flymake-mode} is 
switched off.
 @code{init-function} is required to initialize the syntax check,
 usually by creating a temporary copy of the buffer contents.  The
 function must return @code{(list cmd-name arg-list)}.  If
address@hidden returns null, syntax check is aborted, by
address@hidden returns null, syntax check is aborted, but
 @code{flymake-mode} is not switched off.
 
 @item cleanup-function
@@ -375,7 +375,7 @@ used as @code{getfname-function}.
 @end table
 
 To add support for a new syntax check tool, write corresponding
address@hidden, and, optionally @code{cleanup-function} and
address@hidden and, optionally, @code{cleanup-function} and
 @code{getfname-function}.  If the format of error messages reported by
 the new tool is not yet supported by Flymake, add a new entry to
 the @code{flymake-proc-err-line-patterns} list.
@@ -493,7 +493,7 @@ check-syntax:
 
 @code{flymake-proc-legacy-backend} saves a copy of the buffer in a
 temporary file in the buffer's directory (or in the system temp
-directory, for java files), creates a syntax check command and
+directory, for Java files), creates a syntax check command and
 launches a process with this command.  The output is parsed using a
 list of error message patterns, and error information (file name, line
 number, type and text) is saved.  After the process has finished,
@@ -631,7 +631,7 @@ include directories for C++.  The latter files are syntax 
checked
 using some build tool, like Make or Ant.
 
 All Make configuration data is usually stored in a file called
address@hidden  To allow for future extensions, flymake uses a notion of
address@hidden  To allow for future extensions, Flymake uses a notion of
 buildfile to reference the 'project configuration' file.
 
 Special function, @code{flymake-proc-find-buildfile} is provided for locating 
buildfiles.
diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index b6a4fa2..72fbbad 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -4,7 +4,7 @@
 @settitle The Org Manual
 @include docstyle.texi
 
address@hidden VERSION 9.1.1
address@hidden VERSION 9.1.2
 @set DATE 2017-09-17
 
 @c Version and Contact Info
@@ -1257,13 +1257,8 @@ Org uses just two commands, bound to @key{TAB} and
 @end example
 
 @vindex org-cycle-emulate-tab
address@hidden org-cycle-global-at-bob
 The cursor must be on a headline for this to address@hidden, however,
-the option @code{org-cycle-emulate-tab}.}.  When the cursor is at the
-beginning of the buffer and the first line is not a headline, then
address@hidden actually runs global cycling (see below)@footnote{see the
-option @code{org-cycle-global-at-bob}.}.  Also when called with a prefix
-argument (@kbd{C-u @key{TAB}}), global cycling is invoked.
+the option @code{org-cycle-emulate-tab}.}.
 
 @cindex global visibility states
 @cindex global cycling
@@ -1283,6 +1278,11 @@ When @address@hidden is called with a numeric prefix 
argument N, the
 CONTENTS view up to headlines of level N will be shown.  Note that inside
 tables, @address@hidden jumps to the previous field.
 
address@hidden org-cycle-global-at-bob
+You can run global cycling using @key{TAB} only if point is at the very
+beginning of the buffer, but not on a headline, and
address@hidden is set to a address@hidden value.
+
 @cindex set startup visibility, command
 @orgcmd{C-u C-u @key{TAB},org-set-startup-visibility}
 Switch back to the startup visibility of the buffer (@pxref{Initial 
visibility}).
@@ -1659,11 +1659,9 @@ line.  In particular, if an ordered list reaches number 
@samp{10.}, then the
 list.  An item ends before the next line that is less or equally indented
 than its bullet/number.
 
address@hidden org-list-empty-line-terminates-plain-lists
 A list ends whenever every item has ended, which means before any line less
 or equally indented than items at top level.  It also ends before two blank
address@hidden also @code{org-list-empty-line-terminates-plain-lists}.}.
-In that case, all items are closed.  Here is an example:
+lines.  In that case, all items are closed.  Here is an example:
 
 @example
 @group
@@ -14991,6 +14989,7 @@ directory on the local machine.
       '(("org"
          :base-directory "~/org/"
          :publishing-directory "~/public_html"
+         :publishing-function org-html-publish-to-html
          :section-numbers nil
          :with-toc nil
          :html-head "<link rel=\"stylesheet\"
diff --git a/etc/NEWS b/etc/NEWS
index b75fbd6..a9a4bc6 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1115,7 +1115,7 @@ See the 'vc-faces' customization group.
 *** 'vc-dir-mode' now binds 'vc-log-outgoing' to 'O'; and has various
 branch-related commands on a keymap bound to 'B'.
 
----
++++
 *** 'vc-region-history' is now bound to 'C-x v h', replacing the older
 'vc-insert-headers' binding.
 
@@ -1364,6 +1364,15 @@ non-nil, but the code returned the list in the 
increasing order of
 priority instead.  Now the code does what the documentation says it
 should do.
 
++++
+** 'format' now avoids allocating a new string in more cases.
+'format' was previously documented to return a newly-allocated string,
+but this documentation was not correct, as (eq x (format x)) returned
+t when x was the empty string.  'format' is no longer documented to
+return a newly-allocated string, and the implementation now takes
+advantage of the doc change to avoid making copies of strings in
+common cases like (format "foo") and (format "%s" "foo").
+
 ---
 ** The function 'eldoc-message' now accepts a single argument.
 Programs that called it with multiple arguments before should pass
@@ -1559,13 +1568,6 @@ Emacs integers with %e, %f, or %g conversions.  For 
example, on these
 hosts (eql N (string-to-number (format "%.0f" N))) now returns t for
 all Emacs integers N.
 
-+++
-** 'format' is no longer documented to return a newly-allocated string.
-This documentation was not correct, as (eq x (format x)) returned t
-when x was the empty string.  'format' now takes advantage of the doc
-change to avoid making copies of strings in common cases like (format
-"foo") and (format "%s" "foo").
-
 ---
 ** Calls that accept floating-point integers (for use on hosts with
 limited integer range) now signal an error if arguments are not
diff --git a/etc/refcards/orgcard.tex b/etc/refcards/orgcard.tex
index 0880841..99f90b8 100644
--- a/etc/refcards/orgcard.tex
+++ b/etc/refcards/orgcard.tex
@@ -1,5 +1,5 @@
 % Reference Card for Org Mode
-\def\orgversionnumber{9.1.1}
+\def\orgversionnumber{9.1.2}
 \def\versionyear{2017}          % latest update
 \input emacsver.tex
 
diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el
index b2f76ab..62befd4 100644
--- a/lisp/emacs-lisp/cl-generic.el
+++ b/lisp/emacs-lisp/cl-generic.el
@@ -204,7 +204,16 @@ OPTIONS-AND-METHODS currently understands:
 DEFAULT-BODY, if present, is used as the body of a default method.
 
 \(fn NAME ARGS [DOC-STRING] [OPTIONS-AND-METHODS...] &rest DEFAULT-BODY)"
-  (declare (indent 2) (doc-string 3))
+  (declare (indent 2) (doc-string 3)
+           (debug
+            (&define name cl-lambda-list lambda-doc
+                     [&rest [&or
+                             ("declare" &rest sexp)
+                             (":argument-precedence-order" &rest sexp)
+                             (&define ":method" [&rest atom]
+                                      cl-generic-method-args lambda-doc
+                                      def-body)]]
+                     def-body)))
   (let* ((doc (if (stringp (car-safe options-and-methods))
                   (pop options-and-methods)))
          (declarations nil)
@@ -422,7 +431,7 @@ The set of acceptable TYPEs (also called \"specializers\") 
is defined
                                     ; Like in CLOS spec, we support
                                     ; any non-list values.
              cl-generic-method-args     ; arguments
-             [ &optional stringp ]      ; documentation string
+             lambda-doc                 ; documentation string
              def-body)))                ; part to be debugged
   (let ((qualifiers nil))
     (while (not (listp args))
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index 32ba0ac..40eda1e 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -190,7 +190,7 @@ The name is made by appending a number to PREFIX, default 
\"T\"."
   (&rest ("cl-declare" &rest sexp)))
 
 (def-edebug-spec cl-declarations-or-string
-  (&or stringp cl-declarations))
+  (&or lambda-doc cl-declarations))
 
 (def-edebug-spec cl-lambda-list
   (([&rest arg]
@@ -447,8 +447,8 @@ more details.
 
 (def-edebug-spec cl-lambda-expr
   (&define ("lambda" cl-lambda-list
-           ;;cl-declarations-or-string
-           ;;[&optional ("interactive" interactive)]
+           cl-declarations-or-string
+           [&optional ("interactive" interactive)]
            def-body)))
 
 ;; Redefine function-form to also match cl-function
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index dbc56e2..d00b14e 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -1986,15 +1986,14 @@ expressions; a `progn' form will be returned enclosing 
these forms."
 (def-edebug-spec defvar (symbolp &optional form stringp))
 
 (def-edebug-spec defun
-  (&define name lambda-list
-          [&optional stringp]
+  (&define name lambda-list lambda-doc
            [&optional ("declare" &rest sexp)]
           [&optional ("interactive" interactive)]
           def-body))
 (def-edebug-spec defmacro
   ;; FIXME: Improve `declare' so we can Edebug gv-expander and
   ;; gv-setter declarations.
-  (&define name lambda-list [&optional stringp]
+  (&define name lambda-list lambda-doc
            [&optional ("declare" &rest sexp)] def-body))
 
 (def-edebug-spec arglist lambda-list)  ;; deprecated - use lambda-list.
@@ -2005,6 +2004,10 @@ expressions; a `progn' form will be returned enclosing 
these forms."
     &optional ["&rest" arg]
     )))
 
+(def-edebug-spec lambda-doc
+  (&optional [&or stringp
+                  (&define ":documentation" def-form)]))
+
 (def-edebug-spec interactive
   (&optional &or stringp def-form))
 
@@ -3204,15 +3207,6 @@ generated symbols for methods.  If a function or method 
to
 instrument cannot be found, signal an error."
   (let ((func-marker (get func 'edebug)))
     (cond
-     ((and (markerp func-marker) (marker-buffer func-marker))
-      ;; It is uninstrumented, so instrument it.
-      (with-current-buffer (marker-buffer func-marker)
-       (goto-char func-marker)
-       (edebug-eval-top-level-form)
-        (list func)))
-     ((consp func-marker)
-      (message "%s is already instrumented." func)
-      (list func))
      ((cl-generic-p func)
       (let ((method-defs (cl--generic-method-files func))
             symbols)
@@ -3227,6 +3221,15 @@ instrument cannot be found, signal an error."
               (edebug-eval-top-level-form)
               (push (edebug-form-data-symbol) symbols))))
         symbols))
+     ((and (markerp func-marker) (marker-buffer func-marker))
+      ;; It is uninstrumented, so instrument it.
+      (with-current-buffer (marker-buffer func-marker)
+       (goto-char func-marker)
+       (edebug-eval-top-level-form)
+        (list func)))
+     ((consp func-marker)
+      (message "%s is already instrumented." func)
+      (list func))
      (t
       (let ((loc (find-function-noselect func t)))
        (unless (cdr loc)
diff --git a/lisp/emacs-lisp/generator.el b/lisp/emacs-lisp/generator.el
index f3597cc..410e4ed 100644
--- a/lisp/emacs-lisp/generator.el
+++ b/lisp/emacs-lisp/generator.el
@@ -142,8 +142,7 @@ the CPS state machinery.
     `(let ((,dynamic-var ,static-var))
        (unwind-protect ; Update the static shadow after evaluation is done
             ,form
-         (setf ,static-var ,dynamic-var))
-       ,form)))
+         (setf ,static-var ,dynamic-var)))))
 
 (defmacro cps--with-dynamic-binding (dynamic-var static-var &rest body)
   "Evaluate BODY such that generated atomic evaluations run with
@@ -681,7 +680,8 @@ sub-iterator function returns via `iter-end-of-sequence'."
 When called as a function, NAME returns an iterator value that
 encapsulates the state of a computation that produces a sequence
 of values.  Callers can retrieve each value using `iter-next'."
-  (declare (indent defun))
+  (declare (indent defun)
+           (debug (&define name lambda-list lambda-doc def-body)))
   (cl-assert lexical-binding)
   (let* ((parsed-body (macroexp-parse-body body))
          (declarations (car parsed-body))
@@ -693,7 +693,8 @@ of values.  Callers can retrieve each value using 
`iter-next'."
 (defmacro iter-lambda (arglist &rest body)
   "Return a lambda generator.
 `iter-lambda' is to `iter-defun' as `lambda' is to `defun'."
-  (declare (indent defun))
+  (declare (indent defun)
+           (debug (&define lambda-list lambda-doc def-body)))
   (cl-assert lexical-binding)
   `(lambda ,arglist
      ,(cps-generate-evaluator body)))
diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el
index c703cae..36af884 100644
--- a/lisp/emacs-lisp/pcase.el
+++ b/lisp/emacs-lisp/pcase.el
@@ -226,7 +226,7 @@ I.e. accepts the usual &optional and &rest keywords, but 
every
 formal argument can be any pattern accepted by `pcase' (a mere
 variable name being but a special case of it)."
   (declare (doc-string 2) (indent defun)
-           (debug ((&rest pcase-PAT) body)))
+           (debug (&define (&rest pcase-PAT) lambda-doc def-body)))
   (let* ((bindings ())
          (parsed-body (macroexp-parse-body body))
          (args (mapcar (lambda (pat)
diff --git a/lisp/emacs-lisp/subr-x.el b/lisp/emacs-lisp/rmc.el
similarity index 50%
copy from lisp/emacs-lisp/subr-x.el
copy to lisp/emacs-lisp/rmc.el
index 5189cc4..417301c 100644
--- a/lisp/emacs-lisp/subr-x.el
+++ b/lisp/emacs-lisp/rmc.el
@@ -1,10 +1,8 @@
-;;; subr-x.el --- extra Lisp functions  -*- lexical-binding:t -*-
+;;; rmc.el --- read from a multiple choice question -*- lexical-binding: t -*-
 
-;; Copyright (C) 2013-2017 Free Software Foundation, Inc.
+;; Copyright (C) 2017 Free Software Foundation, Inc.
 
 ;; Maintainer: address@hidden
-;; Keywords: convenience
-;; Package: emacs
 
 ;; This file is part of GNU Emacs.
 
@@ -19,232 +17,13 @@
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
-;; Less commonly used functions that complement basic APIs, often implemented 
in
-;; C code (like hash-tables and strings), and are not eligible for inclusion
-;; in subr.el.
-
-;; Do not document these functions in the lispref.
-;; https://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01006.html
-
-;; NB If you want to use this library, it's almost always correct to use:
-;; (eval-when-compile (require 'subr-x))
-
 ;;; Code:
 
-(eval-when-compile (require 'cl-lib))
-
-
-(defmacro internal--thread-argument (first? &rest forms)
-  "Internal implementation for `thread-first' and `thread-last'.
-When Argument FIRST? is non-nil argument is threaded first, else
-last.  FORMS are the expressions to be threaded."
-  (pcase forms
-    (`(,x (,f . ,args) . ,rest)
-     `(internal--thread-argument
-       ,first? ,(if first? `(,f ,x ,@args) `(,f ,@args ,x)) ,@rest))
-    (`(,x ,f . ,rest) `(internal--thread-argument ,first? (,f ,x) ,@rest))
-    (_ (car forms))))
-
-(defmacro thread-first (&rest forms)
-  "Thread FORMS elements as the first argument of their successor.
-Example:
-    (thread-first
-      5
-      (+ 20)
-      (/ 25)
-      -
-      (+ 40))
-Is equivalent to:
-    (+ (- (/ (+ 5 20) 25)) 40)
-Note how the single `-' got converted into a list before
-threading."
-  (declare (indent 1)
-           (debug (form &rest [&or symbolp (sexp &rest form)])))
-  `(internal--thread-argument t ,@forms))
-
-(defmacro thread-last (&rest forms)
-  "Thread FORMS elements as the last argument of their successor.
-Example:
-    (thread-last
-      5
-      (+ 20)
-      (/ 25)
-      -
-      (+ 40))
-Is equivalent to:
-    (+ 40 (- (/ 25 (+ 20 5))))
-Note how the single `-' got converted into a list before
-threading."
-  (declare (indent 1) (debug thread-first))
-  `(internal--thread-argument nil ,@forms))
-
-(defsubst internal--listify (elt)
-  "Wrap ELT in a list if it is not one.
-If ELT is of the form ((EXPR)), listify (EXPR) with a dummy symbol."
-  (cond
-   ((symbolp elt) (list elt elt))
-   ((null (cdr elt))
-    (list (make-symbol "s") (car elt)))
-   (t elt)))
-
-(defsubst internal--check-binding (binding)
-  "Check BINDING is properly formed."
-  (when (> (length binding) 2)
-    (signal
-     'error
-     (cons "`let' bindings can have only one value-form" binding)))
-  binding)
-
-(defsubst internal--build-binding-value-form (binding prev-var)
-  "Build the conditional value form for BINDING using PREV-VAR."
-  (let ((var (car binding)))
-    `(,var (and ,prev-var ,(cadr binding)))))
-
-(defun internal--build-binding (binding prev-var)
-  "Check and build a single BINDING with PREV-VAR."
-  (thread-first
-      binding
-    internal--listify
-    internal--check-binding
-    (internal--build-binding-value-form prev-var)))
-
-(defun internal--build-bindings (bindings)
-  "Check and build conditional value forms for BINDINGS."
-  (let ((prev-var t))
-    (mapcar (lambda (binding)
-              (let ((binding (internal--build-binding binding prev-var)))
-                (setq prev-var (car binding))
-                binding))
-            bindings)))
-
-(defmacro if-let* (varlist then &rest else)
-  "Bind variables according to VARLIST and eval THEN or ELSE.
-Each binding is evaluated in turn, and evaluation stops if a
-binding value is nil.  If all are non-nil, the value of THEN is
-returned, or the last form in ELSE is returned.
-
-Each element of VARLIST is a list (SYMBOL VALUEFORM) which binds
-SYMBOL to the value of VALUEFORM.  An element can additionally
-be of the form (VALUEFORM), which is evaluated and checked for
-nil; i.e. SYMBOL can be omitted if only the test result is of
-interest."
-  (declare (indent 2)
-           (debug ((&rest [&or symbolp (symbolp form) (sexp)])
-                   form body)))
-  (if varlist
-      `(let* ,(setq varlist (internal--build-bindings varlist))
-         (if ,(caar (last varlist))
-             ,then
-           ,@else))
-    `(let* () ,then)))
-
-(defmacro when-let* (varlist &rest body)
-  "Bind variables according to VARLIST and conditionally eval BODY.
-Each binding is evaluated in turn, and evaluation stops if a
-binding value is nil.  If all are non-nil, the value of the last
-form in BODY is returned.
-
-VARLIST is the same as in `if-let*'."
-  (declare (indent 1) (debug if-let*))
-  (list 'if-let* varlist (macroexp-progn body)))
-
-(defmacro and-let* (varlist &rest body)
-  "Bind variables according to VARLIST and conditionally eval BODY.
-Like `when-let*', except if BODY is empty and all the bindings
-are non-nil, then the result is non-nil."
-  (declare (indent 1) (debug when-let*))
-  (let (res)
-    (if varlist
-        `(let* ,(setq varlist (internal--build-bindings varlist))
-           (if ,(setq res (caar (last varlist)))
-               ,@(or body `(,res))))
-      `(let* () ,@(or body '(t))))))
-
-(defmacro if-let (spec then &rest else)
-  "Bind variables according to SPEC and eval THEN or ELSE.
-Like `if-let*' except SPEC can have the form (SYMBOL VALUEFORM)."
-  (declare (indent 2)
-           (debug ([&or (&rest [&or symbolp (symbolp form) (sexp)])
-                        (symbolp form)]
-                   form body))
-           (obsolete "use `if-let*' instead." "26.1"))
-  (when (and (<= (length spec) 2)
-             (not (listp (car spec))))
-    ;; Adjust the single binding case
-    (setq spec (list spec)))
-  (list 'if-let* spec then (macroexp-progn else)))
-
-(defmacro when-let (spec &rest body)
-  "Bind variables according to SPEC and conditionally eval BODY.
-Like `when-let*' except SPEC can have the form (SYMBOL VALUEFORM)."
-  (declare (indent 1) (debug if-let)
-           (obsolete "use `when-let*' instead." "26.1"))
-  (list 'if-let spec (macroexp-progn body)))
-
-(defsubst hash-table-empty-p (hash-table)
-  "Check whether HASH-TABLE is empty (has 0 elements)."
-  (zerop (hash-table-count hash-table)))
-
-(defsubst hash-table-keys (hash-table)
-  "Return a list of keys in HASH-TABLE."
-  (cl-loop for k being the hash-keys of hash-table collect k))
-
-(defsubst hash-table-values (hash-table)
-  "Return a list of values in HASH-TABLE."
-  (cl-loop for v being the hash-values of hash-table collect v))
-
-(defsubst string-empty-p (string)
-  "Check whether STRING is empty."
-  (string= string ""))
-
-(defsubst string-join (strings &optional separator)
-  "Join all STRINGS using SEPARATOR."
-  (mapconcat 'identity strings separator))
-
-(define-obsolete-function-alias 'string-reverse 'reverse "25.1")
-
-(defsubst string-trim-left (string &optional regexp)
-  "Trim STRING of leading string matching REGEXP.
-
-REGEXP defaults to \"[ \\t\\n\\r]+\"."
-  (if (string-match (concat "\\`\\(?:" (or  regexp "[ \t\n\r]+")"\\)") string)
-      (replace-match "" t t string)
-    string))
-
-(defsubst string-trim-right (string &optional regexp)
-  "Trim STRING of trailing string matching REGEXP.
-
-REGEXP defaults to  \"[ \\t\\n\\r]+\"."
-  (if (string-match (concat "\\(?:" (or regexp "[ \t\n\r]+") "\\)\\'") string)
-      (replace-match "" t t string)
-    string))
-
-(defsubst string-trim (string &optional trim-left trim-right)
-  "Trim STRING of leading and trailing strings matching TRIM-LEFT and 
TRIM-RIGHT.
-
-TRIM-LEFT and TRIM-RIGHT default to \"[ \\t\\n\\r]+\"."
-  (string-trim-left (string-trim-right string trim-right) trim-left))
-
-(defsubst string-blank-p (string)
-  "Check whether STRING is either empty or only whitespace."
-  (string-match-p "\\`[ \t\n\r]*\\'" string))
-
-(defsubst string-remove-prefix (prefix string)
-  "Remove PREFIX from STRING if present."
-  (if (string-prefix-p prefix string)
-      (substring string (length prefix))
-    string))
-
-(defsubst string-remove-suffix (suffix string)
-  "Remove SUFFIX from STRING if present."
-  (if (string-suffix-p suffix string)
-      (substring string 0 (- (length string) (length suffix)))
-    string))
-
+;;;###autoload
 (defun read-multiple-choice (prompt choices)
   "Ask user a multiple choice question.
 PROMPT should be a string that will be displayed as the prompt.
@@ -415,6 +194,6 @@ Usage example:
       (kill-buffer buf))
     (assq tchar choices)))
 
-(provide 'subr-x)
+(provide 'rmc)
 
-;;; subr-x.el ends here
+;;; rmc.el ends here
diff --git a/lisp/emacs-lisp/subr-x.el b/lisp/emacs-lisp/subr-x.el
index 5189cc4..8ed29d8 100644
--- a/lisp/emacs-lisp/subr-x.el
+++ b/lisp/emacs-lisp/subr-x.el
@@ -245,176 +245,6 @@ TRIM-LEFT and TRIM-RIGHT default to \"[ \\t\\n\\r]+\"."
       (substring string 0 (- (length string) (length suffix)))
     string))
 
-(defun read-multiple-choice (prompt choices)
-  "Ask user a multiple choice question.
-PROMPT should be a string that will be displayed as the prompt.
-
-CHOICES is an alist where the first element in each entry is a
-character to be entered, the second element is a short name for
-the entry to be displayed while prompting (if there's room, it
-might be shortened), and the third, optional entry is a longer
-explanation that will be displayed in a help buffer if the user
-requests more help.
-
-This function translates user input into responses by consulting
-the bindings in `query-replace-map'; see the documentation of
-that variable for more information.  In this case, the useful
-bindings are `recenter', `scroll-up', and `scroll-down'.  If the
-user enters `recenter', `scroll-up', or `scroll-down' responses,
-perform the requested window recentering or scrolling and ask
-again.
-
-When `use-dialog-box' is t (the default), this function can pop
-up a dialog window to collect the user input. That functionality
-requires `display-popup-menus-p' to return t. Otherwise, a text
-dialog will be used.
-
-The return value is the matching entry from the CHOICES list.
-
-Usage example:
-
-\(read-multiple-choice \"Continue connecting?\"
-                      \\='((?a \"always\")
-                        (?s \"session only\")
-                        (?n \"no\")))"
-  (let* ((altered-names nil)
-         (full-prompt
-          (format
-           "%s (%s): "
-           prompt
-           (mapconcat
-            (lambda (elem)
-              (let* ((name (cadr elem))
-                     (pos (seq-position name (car elem)))
-                     (altered-name
-                      (cond
-                       ;; Not in the name string.
-                       ((not pos)
-                        (format "[%c] %s" (car elem) name))
-                       ;; The prompt character is in the name, so highlight
-                       ;; it on graphical terminals...
-                       ((display-supports-face-attributes-p
-                         '(:underline t) (window-frame))
-                        (setq name (copy-sequence name))
-                        (put-text-property pos (1+ pos)
-                                           'face 'read-multiple-choice-face
-                                           name)
-                        name)
-                       ;; And put it in [bracket] on non-graphical terminals.
-                       (t
-                        (concat
-                         (substring name 0 pos)
-                         "["
-                         (upcase (substring name pos (1+ pos)))
-                         "]"
-                         (substring name (1+ pos)))))))
-                (push (cons (car elem) altered-name)
-                      altered-names)
-                altered-name))
-            (append choices '((?? "?")))
-            ", ")))
-         tchar buf wrong-char answer)
-    (save-window-excursion
-      (save-excursion
-       (while (not tchar)
-         (message "%s%s"
-                   (if wrong-char
-                       "Invalid choice.  "
-                     "")
-                   full-prompt)
-          (setq tchar
-                (if (and (display-popup-menus-p)
-                         last-input-event ; not during startup
-                         (listp last-nonmenu-event)
-                         use-dialog-box)
-                    (x-popup-dialog
-                     t
-                     (cons prompt
-                           (mapcar
-                            (lambda (elem)
-                              (cons (capitalize (cadr elem))
-                                    (car elem)))
-                            choices)))
-                  (condition-case nil
-                      (let ((cursor-in-echo-area t))
-                        (read-char))
-                    (error nil))))
-          (setq answer (lookup-key query-replace-map (vector tchar) t))
-          (setq tchar
-                (cond
-                 ((eq answer 'recenter)
-                  (recenter) t)
-                 ((eq answer 'scroll-up)
-                  (ignore-errors (scroll-up-command)) t)
-                 ((eq answer 'scroll-down)
-                  (ignore-errors (scroll-down-command)) t)
-                 ((eq answer 'scroll-other-window)
-                  (ignore-errors (scroll-other-window)) t)
-                 ((eq answer 'scroll-other-window-down)
-                  (ignore-errors (scroll-other-window-down)) t)
-                 (t tchar)))
-          (when (eq tchar t)
-            (setq wrong-char nil
-                  tchar nil))
-          ;; The user has entered an invalid choice, so display the
-          ;; help messages.
-          (when (and (not (eq tchar nil))
-                     (not (assq tchar choices)))
-           (setq wrong-char (not (memq tchar '(?? ?\C-h)))
-                  tchar nil)
-            (when wrong-char
-              (ding))
-            (with-help-window (setq buf (get-buffer-create
-                                         "*Multiple Choice Help*"))
-              (with-current-buffer buf
-                (erase-buffer)
-                (pop-to-buffer buf)
-                (insert prompt "\n\n")
-                (let* ((columns (/ (window-width) 25))
-                       (fill-column 21)
-                       (times 0)
-                       (start (point)))
-                  (dolist (elem choices)
-                    (goto-char start)
-                    (unless (zerop times)
-                      (if (zerop (mod times columns))
-                          ;; Go to the next "line".
-                          (goto-char (setq start (point-max)))
-                        ;; Add padding.
-                        (while (not (eobp))
-                          (end-of-line)
-                          (insert (make-string (max (- (* (mod times columns)
-                                                          (+ fill-column 4))
-                                                       (current-column))
-                                                    0)
-                                               ?\s))
-                          (forward-line 1))))
-                    (setq times (1+ times))
-                    (let ((text
-                           (with-temp-buffer
-                             (insert (format
-                                      "%c: %s\n"
-                                      (car elem)
-                                      (cdr (assq (car elem) altered-names))))
-                             (fill-region (point-min) (point-max))
-                             (when (nth 2 elem)
-                               (let ((start (point)))
-                                 (insert (nth 2 elem))
-                                 (unless (bolp)
-                                   (insert "\n"))
-                                 (fill-region start (point-max))))
-                             (buffer-string))))
-                      (goto-char start)
-                      (dolist (line (split-string text "\n"))
-                        (end-of-line)
-                        (if (bolp)
-                            (insert line "\n")
-                          (insert line))
-                        (forward-line 1)))))))))))
-    (when (buffer-live-p buf)
-      (kill-buffer buf))
-    (assq tchar choices)))
-
 (provide 'subr-x)
 
 ;;; subr-x.el ends here
diff --git a/lisp/emacs-lisp/tabulated-list.el 
b/lisp/emacs-lisp/tabulated-list.el
index e940588..d1d7c0a 100644
--- a/lisp/emacs-lisp/tabulated-list.el
+++ b/lisp/emacs-lisp/tabulated-list.el
@@ -329,6 +329,8 @@ Check the current row, the previous one and the next row."
                            (string-width (if (stringp nt) nt (car nt)))))
                        tabulated-list--near-rows)))
 
+(defvar tabulated-list-entry-lnum-width nil)
+
 (defun tabulated-list-print (&optional remember-pos update)
   "Populate the current Tabulated List mode buffer.
 This sorts the `tabulated-list-entries' list if sorting is
@@ -371,6 +373,7 @@ changing `tabulated-list-sort-key'."
       (unless tabulated-list-use-header-line
         (tabulated-list-print-fake-header)))
     ;; Finally, print the resulting list.
+    (setq tabulated-list-entry-lnum-width (tabulated-list-line-number-width))
     (while entries
       (let* ((elt (car entries))
              (tabulated-list--near-rows
@@ -383,7 +386,7 @@ changing `tabulated-list-sort-key'."
              (equal entry-id id)
              (setq entry-id nil
                    saved-pt (point)))
-        ;; If the buffer this empty, simply print each elt.
+        ;; If the buffer is empty, simply print each elt.
         (if (or (not update) (eobp))
             (apply tabulated-list-printer elt)
           (while (let ((local-id (tabulated-list-get-id)))
@@ -424,12 +427,10 @@ of column descriptors."
   (let ((beg   (point))
        (x     (max tabulated-list-padding 0))
        (ncols (length tabulated-list-format))
-        (lnum-width (tabulated-list-line-number-width))
        (inhibit-read-only t))
-    (if display-line-numbers
-        (setq x (+ x lnum-width)))
+    (setq x (+ x tabulated-list-entry-lnum-width))
     (if (> tabulated-list-padding 0)
-       (insert (make-string (- x lnum-width) ?\s)))
+       (insert (make-string (- x tabulated-list-entry-lnum-width) ?\s)))
     (let ((tabulated-list--near-rows ; Bind it if not bound yet (Bug#25506).
            (or (bound-and-true-p tabulated-list--near-rows)
                (list (or (tabulated-list-get-entry (point-at-bol 0))
diff --git a/lisp/frame.el b/lisp/frame.el
index e501dae..7b57aa3 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -2434,7 +2434,11 @@ See also `toggle-frame-maximized'."
              (set-frame-parameter nil 'fullscreen fullscreen-restore)
            (set-frame-parameter nil 'fullscreen nil)))
       (modify-frame-parameters
-       nil `((fullscreen . fullboth) (fullscreen-restore . ,fullscreen))))))
+       nil `((fullscreen . fullboth) (fullscreen-restore . ,fullscreen))))
+    ;; Manipulating a frame without waiting for the fullscreen
+    ;; animation to complete can cause a crash, or other unexpected
+    ;; behaviour, on macOS (bug#28496).
+    (when (featurep 'cocoa) (sit-for 1))))
 
 ;;;; Key bindings
 
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index ed0b3cb..95eae6b 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -49,7 +49,8 @@
 (require 'mm-util)
 (require 'rfc2047)
 (require 'puny)
-(require 'subr-x)                      ; read-multiple-choice
+(require 'rmc)                 ; read-multiple-choice
+(eval-when-compile (require 'subr-x))  ; when-let*
 
 (autoload 'mailclient-send-it "mailclient")
 
diff --git a/lisp/net/nsm.el b/lisp/net/nsm.el
index e2053a0..87fa977 100644
--- a/lisp/net/nsm.el
+++ b/lisp/net/nsm.el
@@ -25,7 +25,7 @@
 ;;; Code:
 
 (require 'cl-lib)
-(require 'subr-x)                       ; read-multiple-choice
+(require 'rmc)                       ; read-multiple-choice
 
 (defvar nsm-permanent-host-settings nil)
 (defvar nsm-temporary-host-settings nil)
diff --git a/lisp/net/shr.el b/lisp/net/shr.el
index 7af6148..260ada5 100644
--- a/lisp/net/shr.el
+++ b/lisp/net/shr.el
@@ -470,6 +470,18 @@ size, and full-buffer size."
        (shr-insert sub)
       (shr-descend sub))))
 
+(defun shr-indirect-call (tag-name dom &rest args)
+  (let ((function (intern (concat "shr-tag-" (symbol-name tag-name)) obarray))
+       ;; Allow other packages to override (or provide) rendering
+       ;; of elements.
+       (external (cdr (assq tag-name shr-external-rendering-functions))))
+    (cond (external
+          (apply external dom args))
+         ((fboundp function)
+          (apply function dom args))
+         (t
+          (apply 'shr-generic dom args)))))
+
 (defun shr-descend (dom)
   (let ((function
          (intern (concat "shr-tag-" (symbol-name (dom-tag dom))) obarray))
@@ -490,6 +502,11 @@ size, and full-buffer size."
          (setq style nil)))
       ;; If we have a display:none, then just ignore this part of the DOM.
       (unless (equal (cdr (assq 'display shr-stylesheet)) "none")
+        ;; We don't use shr-indirect-call here, since shr-descend is
+        ;; the central bit of shr.el, and should be as fast as
+        ;; possible.  Having one more level of indirection with its
+        ;; negative effect on performance is deemed unjustified in
+        ;; this case.
         (cond (external
                (funcall external dom))
               ((fboundp function)
@@ -1404,7 +1421,7 @@ ones, in case fg and bg are nil."
       (when url
        (cond
         (image
-         (shr-tag-img dom url)
+         (shr-indirect-call 'img dom url)
          (setq dom nil))
         (multimedia
          (shr-insert " [multimedia] ")
@@ -1469,7 +1486,7 @@ The preference is a float determined from 
`shr-prefer-media-type'."
     (unless url
       (setq url (car (shr--extract-best-source dom))))
     (if (> (length image) 0)
-        (shr-tag-img nil image)
+       (shr-indirect-call 'img nil image)
       (shr-insert " [video] "))
     (shr-urlify start (shr-expand-url url))))
 
@@ -1964,9 +1981,9 @@ flags that control whether to collect or render objects."
             do (setq tag (dom-tag child)) and
             unless (memq tag '(comment style))
               if (eq tag 'img)
-                do (shr-tag-img child)
+                do (shr-indirect-call 'img child)
               else if (eq tag 'object)
-                do (shr-tag-object child)
+                do (shr-indirect-call 'object child)
               else
                 do (setq recurse t) and
                 if (eq tag 'tr)
@@ -1980,7 +1997,7 @@ flags that control whether to collect or render objects."
                     do (setq flags nil)
                   else if (car flags)
                     do (setq recurse nil)
-                       (shr-tag-table child)
+                       (shr-indirect-call 'table child)
                   end end end end end end end end end end
           when recurse
             append (shr-collect-extra-strings-in-table child flags)))
diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
index 237d689..3a1c9f9 100644
--- a/lisp/net/tramp-gvfs.el
+++ b/lisp/net/tramp-gvfs.el
@@ -416,6 +416,19 @@ Every entry is a list (NAME ADDRESS).")
 (defconst tramp-hal-interface-device "org.freedesktop.Hal.Device"
   "The device interface of the HAL daemon.")
 
+;; "gvfs-<command>" utilities have been deprecated in GVFS 1.31.1.  We
+;; must use "gio <command>" tool instead.
+(defconst tramp-gvfs-gio-mapping
+  '(("gvfs-copy" . "copy")
+    ("gvfs-info" . "info")
+    ("gvfs-ls" . "list")
+    ("gvfs-mkdir" . "mkdir")
+    ("gvfs-monitor-file" . "monitor")
+    ("gvfs-move" . "move")
+    ("gvfs-rm" . "remove")
+    ("gvfs-trash" . "trash"))
+  "List of cons cells, mapping \"gvfs-<command>\" to \"gio <command>\".")
+
 (defconst tramp-gvfs-file-attributes
   '("name"
     "type"
@@ -1078,9 +1091,12 @@ If FILE-SYSTEM is non-nil, return file system 
attributes."
             ((memq 'change flags)
              '(created changed changes-done-hint moved deleted))
             ((memq 'attribute-change flags) '(attribute-changed))))
-          (p (start-process
-              "gvfs-monitor-file" (generate-new-buffer " *gvfs-monitor-file*")
-              "gvfs-monitor-file" (tramp-gvfs-url-file-name file-name))))
+          (p (apply
+              'start-process
+              "gvfs-monitor" (generate-new-buffer " *gvfs-monitor*")
+              (if (tramp-gvfs-gio-tool-p v)
+                  `("gio" "monitor" ,(tramp-gvfs-url-file-name file-name)))
+              `("gvfs-monitor-file" (tramp-gvfs-url-file-name file-name)))))
       (if (not (processp p))
          (tramp-error
           v 'file-notify-error "Monitoring not supported for `%s'" file-name)
@@ -1785,10 +1801,16 @@ connection if a previous connection has died for some 
reason."
       (tramp-gvfs-get-remote-uid vec 'string)
       (tramp-gvfs-get-remote-gid vec 'string))))
 
+(defun tramp-gvfs-gio-tool-p (vec)
+  "Check, whether the gio tool is available."
+  (with-tramp-connection-property vec "gio-tool"
+    (zerop (tramp-call-process vec "gio" nil nil nil "version"))))
+
 (defun tramp-gvfs-send-command (vec command &rest args)
   "Send the COMMAND with its ARGS to connection VEC.
-COMMAND is usually a command from the gvfs-* utilities.
-`call-process' is applied, and it returns t if the return code is zero."
+COMMAND is a command from the gvfs-* utilities.  It is replaced
+by the corresponding gio tool call if available.  `call-process'
+is applied, and it returns t if the return code is zero."
   (let* ((locale (tramp-get-local-locale vec))
         (process-environment
          (append
@@ -1796,6 +1818,11 @@ COMMAND is usually a command from the gvfs-* utilities.
             ,(format "LANGUAGE=%s" locale)
             ,(format "LC_ALL=%s" locale))
           process-environment)))
+    (when (tramp-gvfs-gio-tool-p vec)
+      ;; Use gio tool.
+      (setq args (cons (cdr (assoc command tramp-gvfs-gio-mapping)) args)
+           command "gio"))
+
     (with-current-buffer (tramp-get-connection-buffer vec)
       (tramp-gvfs-maybe-open-connection vec)
       (erase-buffer)
diff --git a/lisp/org/ob-hledger.el b/lisp/org/ob-hledger.el
index 86276aa..57ab8af 100644
--- a/lisp/org/ob-hledger.el
+++ b/lisp/org/ob-hledger.el
@@ -1,4 +1,4 @@
-;;  ob-ledger.el --- Babel Functions for hledger      -*- lexical-binding: t; 
-*-
+;;  ob-hledger.el --- Babel Functions for hledger      -*- lexical-binding: t; 
-*-
 
 ;; Copyright (C) 2010-2017 Free Software Foundation, Inc.
 
diff --git a/lisp/org/ob-lob.el b/lisp/org/ob-lob.el
index 8a52b57..13f728f 100644
--- a/lisp/org/ob-lob.el
+++ b/lisp/org/ob-lob.el
@@ -53,11 +53,15 @@ should not be inherited from a source block.")
       (let* ((info (org-babel-get-src-block-info 'light))
             (source-name (nth 4 info)))
        (when source-name
-         (setq source-name (intern source-name)
-               org-babel-library-of-babel
-               (cons (cons source-name info)
-                     (assq-delete-all source-name org-babel-library-of-babel))
-               lob-ingest-count (1+ lob-ingest-count)))))
+         (setf (nth 1 info)
+               (if (org-babel-noweb-p (nth 2 info) :eval)
+                   (org-babel-expand-noweb-references info)
+                 (nth 1 info)))
+         (let ((source (intern source-name)))
+           (setq org-babel-library-of-babel
+                 (cons (cons source info)
+                       (assq-delete-all source org-babel-library-of-babel))))
+         (cl-incf lob-ingest-count))))
     (message "%d src block%s added to Library of Babel"
             lob-ingest-count (if (> lob-ingest-count 1) "s" ""))
     lob-ingest-count))
diff --git a/lisp/org/org-clock.el b/lisp/org/org-clock.el
index 2eec817..9dc5015 100644
--- a/lisp/org/org-clock.el
+++ b/lisp/org/org-clock.el
@@ -2984,6 +2984,7 @@ The details of what will be saved are regulated by the 
variable
 
 ;; Local variables:
 ;; generated-autoload-file: "org-loaddefs.el"
+;; coding: utf-8
 ;; End:
 
 ;;; org-clock.el ends here
diff --git a/lisp/org/org-colview.el b/lisp/org/org-colview.el
index 242bdc2..eac29c5 100644
--- a/lisp/org/org-colview.el
+++ b/lisp/org/org-colview.el
@@ -464,7 +464,8 @@ for the duration of the command.")
       (kill-local-variable 'org-previous-header-line-format)
       (remove-hook 'post-command-hook 'org-columns-hscroll-title 'local))
     (set-marker org-columns-begin-marker nil)
-    (set-marker org-columns-top-level-marker nil)
+    (when (markerp org-columns-top-level-marker)
+      (set-marker org-columns-top-level-marker nil))
     (org-with-silent-modifications
      (mapc #'delete-overlay org-columns-overlays)
      (setq org-columns-overlays nil)
diff --git a/lisp/org/org-table.el b/lisp/org/org-table.el
index 66907e2..8dc648e 100644
--- a/lisp/org/org-table.el
+++ b/lisp/org/org-table.el
@@ -1646,12 +1646,14 @@ In particular, this does handle wide and invisible 
characters."
   (if (not (org-at-table-p))
       (user-error "Not at a table"))
   (let ((col (current-column))
-       (dline (org-table-current-dline)))
+       (dline (and (not (org-match-line org-table-hline-regexp))
+                   (org-table-current-dline))))
     (kill-region (point-at-bol) (min (1+ (point-at-eol)) (point-max)))
     (if (not (org-at-table-p)) (beginning-of-line 0))
     (org-move-to-column col)
-    (when (or (not org-table-fix-formulas-confirm)
-             (funcall org-table-fix-formulas-confirm "Fix formulas? "))
+    (when (and dline
+              (or (not org-table-fix-formulas-confirm)
+                  (funcall org-table-fix-formulas-confirm "Fix formulas? ")))
       (org-table-fix-formulas "@" (list (cons (number-to-string dline) 
"INVALID"))
                              dline -1 dline))))
 
diff --git a/lisp/org/org-version.el b/lisp/org/org-version.el
index 523afd1..30318ba 100644
--- a/lisp/org/org-version.el
+++ b/lisp/org/org-version.el
@@ -5,13 +5,13 @@
 (defun org-release ()
   "The release version of Org.
 Inserted by installing Org mode or when a release is made."
-   (let ((org-release "9.1.1"))
+   (let ((org-release "9.1.2"))
      org-release))
 ;;;###autoload
 (defun org-git-version ()
   "The Git version of org-mode.
 Inserted by installing Org or when a release is made."
-   (let ((org-git-version "release_9.1.1-37-gb1e8b5"))
+   (let ((org-git-version "release_9.1.2-40-g6ca906"))
      org-git-version))
 
 (provide 'org-version)
diff --git a/lisp/org/org.el b/lisp/org/org.el
index c5759cb..35405b4 100644
--- a/lisp/org/org.el
+++ b/lisp/org/org.el
@@ -16071,7 +16071,9 @@ automatically performed, such drawers will be silently 
ignored."
           (when (memq (org-element-type element) '(keyword node-property))
             (let ((value (org-element-property :value element))
                   (start 0))
-              (while (string-match "%[0-9]*\\(\\S-+\\)" value start)
+              (while (string-match "%[0-9]*\\([[:alnum:]_-]+\\)\\(([^)]+)\\)?\
+\\(?:{[^}]+}\\)?"
+                                   value start)
                 (setq start (match-end 0))
                 (let ((p (match-string-no-properties 1 value)))
                   (unless (member-ignore-case p org-special-properties)
@@ -19481,7 +19483,6 @@ COMMANDS is a list of alternating OLDDEF NEWDEF command 
names."
 
 (org-defkey org-mode-map [(shift return)]   'org-table-copy-down)
 (org-defkey org-mode-map [(meta shift return)] 'org-insert-todo-heading)
-(org-defkey org-mode-map [(meta return)]       'org-meta-return)
 (org-defkey org-mode-map (kbd "M-RET") #'org-meta-return)
 
 ;; Cursor keys with modifiers
@@ -24204,16 +24205,25 @@ convenience:
 
   - On an affiliated keyword, jump to the first one.
   - On a table or a property drawer, move to its beginning.
-  - On a verse or source block, stop before blank lines."
+  - On comment, example, export, src and verse blocks, stop
+    before blank lines."
   (interactive)
   (unless (bobp)
     (let* ((deactivate-mark nil)
           (element (org-element-at-point))
           (type (org-element-type element))
-          (contents-begin (org-element-property :contents-begin element))
           (contents-end (org-element-property :contents-end element))
           (post-affiliated (org-element-property :post-affiliated element))
-          (begin (org-element-property :begin element)))
+          (begin (org-element-property :begin element))
+          (special?                    ;blocks handled specially
+           (memq type '(comment-block example-block export-block src-block
+                                      verse-block)))
+          (contents-begin
+           (if special?
+               ;; These types have no proper contents.  Fake line
+               ;; below the block opening line as contents beginning.
+               (save-excursion (goto-char begin) (line-beginning-position 2))
+             (org-element-property :contents-begin element))))
       (cond
        ((not element) (goto-char (point-min)))
        ((= (point) begin)
@@ -24224,11 +24234,8 @@ convenience:
        (goto-char (org-element-property
                    :post-affiliated (org-element-property :parent element))))
        ((memq type '(property-drawer table)) (goto-char begin))
-       ((memq type '(src-block verse-block))
-       (when (eq type 'src-block)
-         (setq contents-begin
-               (save-excursion (goto-char begin) (forward-line) (point))))
-       (if (= (point) contents-begin) (goto-char post-affiliated)
+       (special?
+       (if (<= (point) contents-begin) (goto-char post-affiliated)
          ;; Inside a verse block, see blank lines as paragraph
          ;; separators.
          (let ((origin (point)))
@@ -24237,7 +24244,6 @@ convenience:
              (skip-chars-forward " \r\t\n" origin)
              (if (= (point) origin) (goto-char contents-begin)
                (beginning-of-line))))))
-       ((not contents-begin) (goto-char (or post-affiliated begin)))
        ((eq type 'paragraph)
        (goto-char contents-begin)
        ;; When at first paragraph in an item or a footnote definition,
diff --git a/lisp/org/ox-html.el b/lisp/org/ox-html.el
index fb8c613..8ce4fb6 100644
--- a/lisp/org/ox-html.el
+++ b/lisp/org/ox-html.el
@@ -174,7 +174,6 @@
     (:html-klipsify-src nil nil org-html-klipsify-src)
     (:html-klipse-css nil nil org-html-klipse-css)
     (:html-klipse-js nil nil org-html-klipse-js)
-    (:html-klipse-keep-old-src nil nil org-html-keep-old-src)
     (:html-klipse-selection-script nil nil org-html-klipse-selection-script)
     (:infojs-opt "INFOJS_OPT" nil nil)
     ;; Redefine regular options.
@@ -1572,12 +1571,6 @@ 
https://developer.mozilla.org/en-US/docs/Mozilla/Mobile/Viewport_meta_tag";
   :package-version '(Org . "9.1")
   :type 'string)
 
-(defcustom org-html-keep-old-src nil
-  "When non-nil, use <pre class=\"\"> instead of <pre><code class=\"\">."
-  :group 'org-export-html
-  :package-version '(Org . "9.1")
-  :type 'boolean)
-
 
 ;;;; Todos
 
@@ -3402,12 +3395,16 @@ contextual information."
                              listing-number
                              (org-trim (org-export-data caption info))))))
                ;; Contents.
-               (let ((open (if org-html-keep-old-src "<pre" "<pre><code"))
-                     (close (if org-html-keep-old-src "</pre>" 
"</code></pre>")))
-                 (format "%s class=\"src src-%s\"%s%s>%s%s"
-                         open lang label (if (and klipsify (string= lang 
"html"))
-                                             " data-editor-type=\"html\"" "")
-                         code close)))))))
+               (if klipsify
+                   (format "<pre><code class=\"src 
src-%s\"%s%s>%s</code></pre>"
+                           lang
+                           label
+                           (if (string= lang "html")
+                               " data-editor-type=\"html\""
+                             "")
+                           code)
+                 (format "<pre class=\"src src-%s\"%s>%s</pre>"
+                          lang label code)))))))
 
 ;;;; Statistics Cookie
 
diff --git a/lisp/org/ox-publish.el b/lisp/org/ox-publish.el
index a975abc..957b0da 100644
--- a/lisp/org/ox-publish.el
+++ b/lisp/org/ox-publish.el
@@ -435,8 +435,8 @@ This splices all the components into the list."
   (let* ((base-dir (file-name-as-directory
                    (org-publish-property :base-directory project)))
         (extension (or (org-publish-property :base-extension project) "org"))
-        (match (and (not (eq extension 'any))
-                    (concat "^[^\\.].*\\.\\(" extension "\\)$")))
+        (match (if (eq extension 'any) ""
+                 (format "^[^\\.].*\\.\\(%s\\)$" extension)))
         (base-files
          (cl-remove-if #'file-directory-p
                        (if (org-publish-property :recursive project)
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el
index 5aefdea..02b685d 100644
--- a/lisp/progmodes/cc-fonts.el
+++ b/lisp/progmodes/cc-fonts.el
@@ -1026,7 +1026,8 @@ casts and declarations are fontified.  Used on level 2 
and higher."
          (goto-char pos)))))
   nil)
 
-(defun c-font-lock-declarators (limit list types not-top)
+(defun c-font-lock-declarators (limit list types not-top
+                                     &optional template-class)
   ;; Assuming the point is at the start of a declarator in a declaration,
   ;; fontify the identifier it declares.  (If TYPES is set, it does this via
   ;; the macro `c-fontify-types-and-refs'.)
@@ -1040,6 +1041,11 @@ casts and declarations are fontified.  Used on level 2 
and higher."
   ;; non-nil, we are not at the top-level ("top-level" includes being directly
   ;; inside a class or namespace, etc.).
   ;;
+  ;; TEMPLATE-CLASS is non-nil when the declaration is in template delimiters
+  ;; and was introduced by, e.g. "typename" or "class", such that if there is
+  ;; a default (introduced by "="), it will be fontified as a type.
+  ;; E.g. "<class X = Y>".
+  ;;
   ;; Nil is always returned.  The function leaves point at the delimiter after
   ;; the last declarator it processes.
   ;;
@@ -1112,6 +1118,13 @@ casts and declarations are fontified.  Used on level 2 
and higher."
 
       (goto-char next-pos)
       (setq pos nil)         ; So as to terminate the enclosing `while' form.
+      (if (and template-class
+              (eq got-init ?=) ; C++ "<class X = Y>"?
+              (c-forward-token-2 1 nil limit) ; Over "="
+              (let ((c-promote-possible-types t))
+                (c-forward-type t)))          ; Over "Y"
+         (setq list nil)) ; Shouldn't be needed.  We can't have a list, here.
+
       (when list
        ;; Jump past any initializer or function prototype to see if
        ;; there's a ',' to continue at.
@@ -1340,8 +1353,12 @@ casts and declarations are fontified.  Used on level 2 
and higher."
                   (c-backward-syntactic-ws)
                   (and (c-simple-skip-symbol-backward)
                        (looking-at c-paren-stmt-key))))
-            t)))
-
+            t))
+         (template-class (and (eq context '<>)
+                              (save-excursion
+                                (goto-char match-pos)
+                                (c-forward-syntactic-ws)
+                                (looking-at c-template-typename-key)))))
       ;; Fix the `c-decl-id-start' or `c-decl-type-start' property
       ;; before the first declarator if it's a list.
       ;; `c-font-lock-declarators' handles the rest.
@@ -1353,10 +1370,9 @@ casts and declarations are fontified.  Used on level 2 
and higher."
                                 (if (cadr decl-or-cast)
                                     'c-decl-type-start
                                   'c-decl-id-start)))))
-
       (c-font-lock-declarators
        (min limit (point-max)) decl-list
-       (cadr decl-or-cast) (not toplev)))
+       (cadr decl-or-cast) (not toplev) template-class))
 
     ;; A declaration has been successfully identified, so do all the
     ;; fontification of types and refs that've been recorded.
@@ -1650,7 +1666,8 @@ casts and declarations are fontified.  Used on level 2 
and higher."
   ;; font-lock-keyword-face.  It always returns NIL to inhibit this and
   ;; prevent a repeat invocation.  See elisp/lispref page "Search-based
   ;; fontification".
-  (let ((decl-search-lim (c-determine-limit 1000))
+  (let ((here (point))
+       (decl-search-lim (c-determine-limit 1000))
        paren-state encl-pos token-end context decl-or-cast
        start-pos top-level c-restricted-<>-arglists
        c-recognize-knr-p)              ; Strictly speaking, bogus, but it
@@ -1667,26 +1684,27 @@ casts and declarations are fontified.  Used on level 2 
and higher."
        (when (or (bobp)
                  (memq (char-before) '(?\; ?{ ?})))
          (setq token-end (point))
-         (c-forward-syntactic-ws)
-         ;; We're now putatively at the declaration.
-         (setq start-pos (point))
-         (setq paren-state (c-parse-state))
-         ;; At top level or inside a "{"?
-         (if (or (not (setq encl-pos
-                            (c-most-enclosing-brace paren-state)))
-                 (eq (char-after encl-pos) ?\{))
-             (progn
-               (setq top-level (c-at-toplevel-p))
-               (let ((got-context (c-get-fontification-context
-                                   token-end nil top-level)))
-                 (setq context (car got-context)
-                       c-restricted-<>-arglists (cdr got-context)))
-               (setq decl-or-cast
-                     (c-forward-decl-or-cast-1 token-end context nil))
-               (when (consp decl-or-cast)
-                 (goto-char start-pos)
-                 (c-font-lock-single-decl limit decl-or-cast token-end
-                                          context top-level)))))))
+         (c-forward-syntactic-ws here)
+         (when (< (point) here)
+           ;; We're now putatively at the declaration.
+           (setq start-pos (point))
+           (setq paren-state (c-parse-state))
+           ;; At top level or inside a "{"?
+           (if (or (not (setq encl-pos
+                              (c-most-enclosing-brace paren-state)))
+                   (eq (char-after encl-pos) ?\{))
+               (progn
+                 (setq top-level (c-at-toplevel-p))
+                 (let ((got-context (c-get-fontification-context
+                                     token-end nil top-level)))
+                   (setq context (car got-context)
+                         c-restricted-<>-arglists (cdr got-context)))
+                 (setq decl-or-cast
+                       (c-forward-decl-or-cast-1 token-end context nil))
+                 (when (consp decl-or-cast)
+                   (goto-char start-pos)
+                   (c-font-lock-single-decl limit decl-or-cast token-end
+                                            context top-level))))))))
     nil))
 
 (defun c-font-lock-enclosing-decls (limit)
@@ -1996,85 +2014,6 @@ on level 2 only and so aren't combined with 
`c-complex-decl-matchers'."
               2 font-lock-type-face)
           `(,(concat "\\<\\(" re "\\)\\>")
             1 'font-lock-type-face)))
-
-      ;; Fontify types preceded by `c-type-prefix-kwds' (e.g. "struct").
-      ,@(when (c-lang-const c-type-prefix-kwds)
-         `((,(byte-compile
-              `(lambda (limit)
-                 (c-fontify-types-and-refs
-                     ((c-promote-possible-types t)
-                      ;; The font-lock package in Emacs is known to clobber
-                      ;; `parse-sexp-lookup-properties' (when it exists).
-                      (parse-sexp-lookup-properties
-                       (cc-eval-when-compile
-                         (boundp 'parse-sexp-lookup-properties))))
-                   (save-restriction
-                     ;; Narrow to avoid going past the limit in
-                     ;; `c-forward-type'.
-                     (narrow-to-region (point) limit)
-                     (while (re-search-forward
-                             ,(concat "\\<\\("
-                                      (c-make-keywords-re nil
-                                        (c-lang-const c-type-prefix-kwds))
-                                      "\\)\\>")
-                             limit t)
-                       (unless (c-skip-comments-and-strings limit)
-                         (c-forward-syntactic-ws)
-                         ;; Handle prefix declaration specifiers.
-                         (while
-                             (or
-                              (when (or (looking-at c-prefix-spec-kwds-re)
-                                        (and (c-major-mode-is 'java-mode)
-                                             (looking-at "@[A-Za-z0-9]+")))
-                                (c-forward-keyword-clause 1)
-                                t)
-                              (when (and c-opt-cpp-prefix
-                                         (looking-at
-                                          c-noise-macro-with-parens-name-re))
-                                (c-forward-noise-clause)
-                                t)))
-                         ,(if (c-major-mode-is 'c++-mode)
-                              `(when (and (c-forward-type)
-                                          (eq (char-after) ?=))
-                                 ;; In C++ we additionally check for a "class
-                                 ;; X = Y" construct which is used in
-                                 ;; templates, to fontify Y as a type.
-                                 (forward-char)
-                                 (c-forward-syntactic-ws)
-                                 (c-forward-type))
-                            `(c-forward-type))
-                         )))))))))
-
-      ;; Fontify symbols after closing braces as declaration
-      ;; identifiers under the assumption that they are part of
-      ;; declarations like "class Foo { ... } foo;".  It's too
-      ;; expensive to check this accurately by skipping past the
-      ;; brace block, so we use the heuristic that it's such a
-      ;; declaration if the first identifier is on the same line as
-      ;; the closing brace.  `c-font-lock-declarations' will later
-      ;; override it if it turns out to be an new declaration, but
-      ;; it will be wrong if it's an expression (see the test
-      ;; decls-8.cc).
-;;       ,@(when (c-lang-const c-opt-block-decls-with-vars-key)
-;;       `((,(c-make-font-lock-search-function
-;;            (concat "}"
-;;                    (c-lang-const c-single-line-syntactic-ws)
-;;                    "\\("            ; 1 + c-single-line-syntactic-ws-depth
-;;                    (c-lang-const c-type-decl-prefix-key)
-;;                    "\\|"
-;;                    (c-lang-const c-symbol-key)
-;;                    "\\)")
-;;            `((c-font-lock-declarators limit t nil) ; That nil says use 
`font-lock-variable-name-face';
-;;                                     ; t would mean 
`font-lock-function-name-face'.
-;;              (progn
-;;                (c-put-char-property (match-beginning 0) 'c-type
-;;                                     'c-decl-id-start)
-;; ;                                   'c-decl-type-start)
-;;                (goto-char (match-beginning
-;;                            ,(1+ (c-lang-const
-;;                                  c-single-line-syntactic-ws-depth)))))
-;;              (goto-char (match-end 0)))))))
-
       ;; Fontify the type in C++ "new" expressions.
       ,@(when (c-major-mode-is 'c++-mode)
          ;; This pattern is a probably a "(MATCHER . ANCHORED-HIGHLIGHTER)"
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el
index bcda093..227b3e1 100644
--- a/lisp/progmodes/cc-langs.el
+++ b/lisp/progmodes/cc-langs.el
@@ -1896,6 +1896,17 @@ the type of that expression."
   t (c-make-keywords-re t (c-lang-const c-typeof-kwds)))
 (c-lang-defvar c-typeof-key (c-lang-const c-typeof-key))
 
+(c-lang-defconst c-template-typename-kwds
+  "Keywords which, within a template declaration, can introduce a
+declaration with a type as a default value.  This is used only in
+C++ Mode, e.g. \"<typename X = Y>\"."
+  t    nil
+  c++  '("class" "typename"))
+
+(c-lang-defconst c-template-typename-key
+  t (c-make-keywords-re t (c-lang-const c-template-typename-kwds)))
+(c-lang-defvar c-template-typename-key (c-lang-const c-template-typename-key))
+
 (c-lang-defconst c-type-prefix-kwds
   "Keywords where the following name - if any - is a type name, and
 where the keyword together with the symbol works as a type in
diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el
index 3690f67..99a4841 100644
--- a/lisp/progmodes/elisp-mode.el
+++ b/lisp/progmodes/elisp-mode.el
@@ -1599,8 +1599,11 @@ ARGLIST is either a string, or a list of strings or 
symbols."
 (defvar checkdoc-autofix-flag)
 (defvar checkdoc-generate-compile-warnings-flag)
 (defvar checkdoc-diagnostic-buffer)
-(defun elisp-flymake--checkdoc-1 ()
-  "Do actual work for `elisp-flymake-checkdoc'."
+
+;;;###autoload
+(defun elisp-flymake-checkdoc (report-fn &rest _args)
+  "A Flymake backend for `checkdoc'.
+Calls REPORT-FN directly."
   (let (collected)
     (let* ((checkdoc-create-error-function
             (lambda (text start end &optional unfixable)
@@ -1608,63 +1611,52 @@ ARGLIST is either a string, or a list of strings or 
symbols."
               nil))
            (checkdoc-autofix-flag nil)
            (checkdoc-generate-compile-warnings-flag nil)
-           (buf (generate-new-buffer " *checkdoc-temp*"))
-           (checkdoc-diagnostic-buffer buf))
+           (checkdoc-diagnostic-buffer
+            (generate-new-buffer " *checkdoc-temp*")))
       (unwind-protect
           (save-excursion
             (checkdoc-current-buffer t))
-        (kill-buffer buf)))
+        (kill-buffer checkdoc-diagnostic-buffer)))
+    (funcall report-fn
+             (cl-loop for (text start end _unfixable) in
+                      collected
+                      collect
+                      (flymake-make-diagnostic
+                       (current-buffer)
+                       start end :note text)))
     collected))
 
-;;;###autoload
-(defun elisp-flymake-checkdoc (report-fn &rest _args)
-  "A Flymake backend for `checkdoc'.
-Calls REPORT-FN directly."
-  (unless (derived-mode-p 'emacs-lisp-mode)
-    (error "Can only work on `emacs-lisp-mode' buffers"))
-  (funcall report-fn
-           (cl-loop for (text start end _unfixable) in
-                    (elisp-flymake--checkdoc-1)
-                    collect
-                    (flymake-make-diagnostic
-                     (current-buffer)
-                     start end :note text))))
-
 (defun elisp-flymake--byte-compile-done (report-fn
-                                         origin-buffer
-                                         output-buffer
-                                         temp-file)
-  (unwind-protect
-      (with-current-buffer
-          origin-buffer
-        (save-excursion
-          (save-restriction
-            (widen)
-            (funcall
-             report-fn
-             (cl-loop with data =
-                      (with-current-buffer output-buffer
-                        (goto-char (point-min))
-                        (search-forward ":elisp-flymake-output-start")
-                        (read (point-marker)))
-                      for (string pos _fill level) in data
-                      do (goto-char pos)
-                      for beg = (if (< (point) (point-max))
-                                    (point)
-                                  (line-beginning-position))
-                      for end = (min
-                                 (line-end-position)
-                                 (or (cdr
-                                      (bounds-of-thing-at-point 'sexp))
-                                     (point-max)))
-                      collect (flymake-make-diagnostic
-                               (current-buffer)
-                               (if (= beg end) (1- beg) beg)
-                               end
-                               level
-                               string))))))
-    (kill-buffer output-buffer)
-    (ignore-errors (delete-file temp-file))))
+                                         source-buffer
+                                         output-buffer)
+  (with-current-buffer
+      source-buffer
+    (save-excursion
+      (save-restriction
+        (widen)
+        (funcall
+         report-fn
+         (cl-loop with data =
+                  (with-current-buffer output-buffer
+                    (goto-char (point-min))
+                    (search-forward ":elisp-flymake-output-start")
+                    (read (point-marker)))
+                  for (string pos _fill level) in data
+                  do (goto-char pos)
+                  for beg = (if (< (point) (point-max))
+                                (point)
+                              (line-beginning-position))
+                  for end = (min
+                             (line-end-position)
+                             (or (cdr
+                                  (bounds-of-thing-at-point 'sexp))
+                                 (point-max)))
+                  collect (flymake-make-diagnostic
+                           (current-buffer)
+                           (if (= beg end) (1- beg) beg)
+                           end
+                           level
+                           string)))))))
 
 (defvar-local elisp-flymake--byte-compile-process nil
   "Buffer-local process started for byte-compiling the buffer.")
@@ -1674,16 +1666,11 @@ Calls REPORT-FN directly."
   "A Flymake backend for elisp byte compilation.
 Spawn an Emacs process that byte-compiles a file representing the
 current buffer state and calls REPORT-FN when done."
-  (interactive (list (lambda (stuff)
-                       (message "aha %s" stuff))))
-  (unless (derived-mode-p 'emacs-lisp-mode)
-    (error "Can only work on `emacs-lisp-mode' buffers"))
   (when elisp-flymake--byte-compile-process
-    (process-put elisp-flymake--byte-compile-process 'elisp-flymake--obsolete 
t)
     (when (process-live-p elisp-flymake--byte-compile-process)
       (kill-process elisp-flymake--byte-compile-process)))
   (let ((temp-file (make-temp-file "elisp-flymake-byte-compile"))
-        (origin-buffer (current-buffer)))
+        (source-buffer (current-buffer)))
     (save-restriction
       (widen)
       (write-region (point-min) (point-max) temp-file nil 'nomessage))
@@ -1703,21 +1690,22 @@ current buffer state and calls REPORT-FN when done."
         :connection-type 'pipe
         :sentinel
         (lambda (proc _event)
-          (unless (process-live-p proc)
+          (when (eq (process-status proc) 'exit)
             (unwind-protect
                 (cond
+                 ((not (eq proc elisp-flymake--byte-compile-process))
+                  (flymake-log :warning "byte-compile process %s obsolete" 
proc))
                  ((zerop (process-exit-status proc))
                   (elisp-flymake--byte-compile-done report-fn
-                                                    origin-buffer
-                                                    output-buffer
-                                                    temp-file))
-                 ((process-get proc 'elisp-flymake--obsolete)
-                  (flymake-log :warning "byte-compile process %s obsolete" 
proc))
+                                                    source-buffer
+                                                    output-buffer))
                  (t
                   (funcall report-fn
                            :panic
                            :explanation
-                           (format "byte-compile process %s died" proc)))))))))
+                           (format "byte-compile process %s died" proc))))
+              (ignore-errors (delete-file temp-file))
+              (kill-buffer output-buffer))))))
       :stderr null-device
       :noquery t)))
 
diff --git a/lisp/progmodes/flymake-proc.el b/lisp/progmodes/flymake-proc.el
index d088197..52cb198 100644
--- a/lisp/progmodes/flymake-proc.el
+++ b/lisp/progmodes/flymake-proc.el
@@ -113,7 +113,7 @@ NAME is the file name function to use, default 
`flymake-proc-get-real-file-name'
   "Currently active Flymake process for a buffer, if any.")
 
 (defvar flymake-proc--report-fn nil
-  "If bound, function used to report back to flymake's UI.")
+  "If bound, function used to report back to Flymake's UI.")
 
 (defun flymake-proc-reformat-err-line-patterns-from-compile-el (original-list)
   "Grab error line patterns from ORIGINAL-LIST in compile.el format.
@@ -265,7 +265,6 @@ Return t if so, nil if not."
 
 (defun flymake-proc--find-possible-master-files (file-name master-file-dirs 
masks)
   "Find (by name and location) all possible master files.
-
 Name is specified by FILE-NAME and location is specified by
 MASTER-FILE-DIRS.  Master files include .cpp and .c for .h.
 Files are searched for starting from the .h directory and max
@@ -626,7 +625,7 @@ Create parent directories as needed."
 (defun flymake-proc--panic (problem explanation)
   "Tell Flymake UI about a fatal PROBLEM with this backend.
 May only be called in a dynamic environment where
-`flymake-proc--dynamic-report-fn' is bound"
+`flymake-proc--report-fn' is bound."
   (flymake-log 0 "%s: %s" problem explanation)
   (if (and (boundp 'flymake-proc--report-fn)
            flymake-proc--report-fn)
@@ -718,7 +717,7 @@ May only be called in a dynamic environment where
 (defun flymake-proc-legacy-flymake (report-fn &rest args)
   "Flymake backend based on the original Flymake implementation.
 This function is suitable for inclusion in
-`flymake-diagnostic-types-alist'. For backward compatibility, it
+`flymake-diagnostic-functions'. For backward compatibility, it
 can also be executed interactively independently of
 `flymake-mode'."
   ;; Interactively, behave as if flymake had invoked us through its
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
index acc0637..4c4d6ae 100644
--- a/lisp/progmodes/flymake.el
+++ b/lisp/progmodes/flymake.el
@@ -203,7 +203,7 @@ generated it."
     `(flymake--log-1 ,level ',sublog ,msg ,@args)))
 
 (defun flymake-error (text &rest args)
-  "Format TEXT with ARGS and signal an error for flymake."
+  "Format TEXT with ARGS and signal an error for Flymake."
   (let ((msg (apply #'format-message text args)))
     (flymake-log :error msg)
     (error (concat "[Flymake] " msg))))
@@ -223,17 +223,6 @@ TYPE is a key to `flymake-diagnostic-types-alist' and TEXT 
is a
 description of the problem detected in this region."
   (flymake--diag-make :buffer buffer :beg beg :end end :type type :text text))
 
-(defun flymake-ler-make-ler (file line type text &optional full-file)
-  (let* ((file (or full-file file))
-         (buf (find-buffer-visiting file)))
-    (unless buf (flymake-error "No buffer visiting %s" file))
-    (pcase-let* ((`(,beg . ,end)
-                  (with-current-buffer buf
-                    (flymake-diag-region line nil))))
-      (flymake-make-diagnostic buf beg end type text))))
-
-(make-obsolete 'flymake-ler-make-ler 'flymake-make-diagnostic "26.1")
-
 (cl-defun flymake--overlays (&key beg end filter compare key)
   "Get flymake-related overlays.
 If BEG is non-nil and END is nil, consider only `overlays-at'
@@ -342,7 +331,7 @@ function is called with an arbitrary number of arguments:
 * the remaining arguments are keyword-value pairs in the
   form (:KEY VALUE :KEY2 VALUE2...).  Currently, Flymake provides
   no such arguments, but backend functions must be prepared to
-  accept to accept and possibly ignore any number of them.
+  accept and possibly ignore any number of them.
 
 Backend functions are expected to initiate the buffer check, but
 aren't required to complete it check before exiting: if the
@@ -385,8 +374,8 @@ Currently accepted REPORT-KEY arguments are:
 * ‘:explanation’: value should give user-readable details of
   the situation encountered, if any.
 
-* ‘:force’: value should be a boolean suggesting that the Flymake
-  considers the report even if was somehow unexpected.")
+* ‘:force’: value should be a boolean suggesting that Flymake
+  consider the report even if it was somehow unexpected.")
 
 (defvar flymake-diagnostic-types-alist
   `((:error
@@ -395,15 +384,17 @@ Currently accepted REPORT-KEY arguments are:
      . ((flymake-category . flymake-warning)))
     (:note
      . ((flymake-category . flymake-note))))
-  "Alist ((KEY . PROPS)*) of properties of Flymake error types.
-KEY can be anything passed as `:type' to `flymake-diag-make'.
+  "Alist ((KEY . PROPS)*) of properties of Flymake diagnostic types.
+KEY designates a kind of diagnostic can be anything passed as
+`:type' to `flymake-make-diagnostic'.
 
 PROPS is an alist of properties that are applied, in order, to
-the diagnostics of each type.  The recognized properties are:
+the diagnostics of the type designated by KEY.  The recognized
+properties are:
 
 * Every property pertaining to overlays, except `category' and
   `evaporate' (see Info Node `(elisp)Overlay Properties'), used
-  affect the appearance of Flymake annotations.
+  to affect the appearance of Flymake annotations.
 
 * `bitmap', an image displayed in the fringe according to
   `flymake-fringe-indicator-position'.  The value actually
@@ -522,23 +513,22 @@ associated `flymake-category' return DEFAULT."
   "Buffer-local hash table of a Flymake backend's state.
 The keys to this hash table are functions as found in
 `flymake-diagnostic-functions'. The values are structures
-of the type `flymake--backend-state', with these slots
+of the type `flymake--backend-state', with these slots:
 
 `running', a symbol to keep track of a backend's replies via its
 REPORT-FN argument. A backend is running if this key is
-present. If the key is absent if the backend isn't expecting any
-replies from the backend.
+present. If nil, Flymake isn't expecting any replies from the
+backend.
 
-`diags', a (possibly empty) list of diagnostic objects created
-with `flymake-make-diagnostic'. This key is absent if the
-backend hasn't reported anything yet.
+`diags', a (possibly empty) list of recent diagnostic objects
+created by the backend with `flymake-make-diagnostic'.
 
 `reported-p', a boolean indicating if the backend has replied
 since it last was contacted.
 
 `disabled', a string with the explanation for a previous
-exceptional situation reported by the backend. If this key is
-present the backend is disabled.")
+exceptional situation reported by the backend, nil if the
+backend is operating normally.")
 
 (cl-defstruct (flymake--backend-state
                (:constructor flymake--make-backend-state))
@@ -563,7 +553,6 @@ present the backend is disabled.")
                                           &key explanation force
                                           &allow-other-keys)
   "Handle reports from BACKEND identified by TOKEN.
-
 BACKEND, REPORT-ACTION and EXPLANATION, and FORCE conform to the calling
 convention described in `flymake-diagnostic-functions' (which
 see). Optional FORCE says to handle a report even if TOKEN was
@@ -650,7 +639,7 @@ different runs of the same backend."
 
 (defun flymake--disable-backend (backend &optional explanation)
   "Disable BACKEND because EXPLANATION.
-If is is running also stop it."
+If it is running also stop it."
   (flymake-log :warning "Disabling backend %s because %s" backend explanation)
   (flymake--with-backend-state backend state
     (setf (flymake--backend-state-running state) nil
@@ -666,7 +655,7 @@ If is is running also stop it."
             (flymake--backend-state-disabled state) nil
             (flymake--backend-state-diags state) nil
             (flymake--backend-state-reported-p state) nil))
-    ;; FIXME: Should use `condition-case-unless-debug' here, for don't
+    ;; FIXME: Should use `condition-case-unless-debug' here, but don't
     ;; for two reasons: (1) that won't let me catch errors from inside
     ;; `ert-deftest' where `debug-on-error' appears to be always
     ;; t. (2) In cases where the user is debugging elisp somewhere
@@ -719,18 +708,14 @@ Interactively, with a prefix arg, FORCE is t."
   (cond
    ;; Turning the mode ON.
    (flymake-mode
-    (cond
-     ((not flymake-diagnostic-functions)
-      (flymake-error "No backends to check buffer %s" (buffer-name)))
-     (t
-      (add-hook 'after-change-functions 'flymake-after-change-function nil t)
-      (add-hook 'after-save-hook 'flymake-after-save-hook nil t)
-      (add-hook 'kill-buffer-hook 'flymake-kill-buffer-hook nil t)
+    (add-hook 'after-change-functions 'flymake-after-change-function nil t)
+    (add-hook 'after-save-hook 'flymake-after-save-hook nil t)
+    (add-hook 'kill-buffer-hook 'flymake-kill-buffer-hook nil t)
 
-      (setq flymake--backend-state (make-hash-table))
+    (setq flymake--backend-state (make-hash-table))
 
-      (when flymake-start-syntax-check-on-find-file
-        (flymake-start)))))
+    (when flymake-start-syntax-check-on-find-file
+      (flymake-start)))
 
    ;; Turning the mode OFF.
    (t
@@ -806,13 +791,11 @@ Do it only if `flymake-no-changes-timeout' is non-nil."
 
 (defun flymake-goto-next-error (&optional n filter interactive)
   "Go to Nth next Flymake error in buffer matching FILTER.
+Interactively, always move to the next error.  With a prefix arg,
+skip any diagnostics with a severity less than ‘:warning’.
 
-Interactively, always move to the next error.  Interactively, and
-with a prefix arg, skip any diagnostics with a severity less than
-‘:warning’.
-
-If ‘flymake-wrap-around’ is non-nil, resumes search from top
-at end of buffer.
+If ‘flymake-wrap-around’ is non-nil and no more next errors,
+resumes search from top.
 
 FILTER is a list of diagnostic types found in
 `flymake-diagnostic-types-alist', or nil, if no filter is to be
@@ -852,6 +835,7 @@ applied."
            (goto-char (overlay-start target))
            (when interactive
              (message
+              "%s"
               (funcall (overlay-get target 'help-echo)
                        nil nil (point)))))
           (interactive
@@ -862,13 +846,11 @@ applied."
 
 (defun flymake-goto-prev-error (&optional n filter interactive)
   "Go to Nth previous Flymake error in buffer matching FILTER.
+Interactively, always move to the previous error.  With a prefix
+arg, skip any diagnostics with a severity less than ‘:warning’.
 
-Interactively, always move to the previous error.  Interactively,
-and with a prefix arg, skip any diagnostics with a severity less
-than ‘:warning’.
-
-If ‘flymake-wrap-around’ is non-nil, resumes search from top
-at end of buffer.
+If ‘flymake-wrap-around’ is non-nil and no more previous errors,
+resumes search from bottom.
 
 FILTER is a list of diagnostic types found in
 `flymake-diagnostic-types-alist', or nil, if no filter is to be
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 9aa5134..f79d9a4 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -640,10 +640,14 @@ The type returned can be `comment', `string' or `paren'."
    ((python-rx string-delimiter)
     (0 (ignore (python-syntax-stringify))))))
 
-(defconst python--prettify-symbols-alist
+(defvar python-prettify-symbols-alist
   '(("lambda"  . ?λ)
     ("and" . ?∧)
-    ("or" . ?∨)))
+    ("or" . ?∨))
+  "Value for `prettify-symbols-alist' in `python-mode'.")
+
+(define-obsolete-variable-alias 'python--prettify-symbols-alist
+  'python-prettify-symbols-alist "26.1")
 
 (defsubst python-syntax-count-quotes (quote-char &optional point limit)
   "Count number of quotes around point (max is 3).
diff --git a/lisp/ses.el b/lisp/ses.el
index 9221476..4c19c70 100644
--- a/lisp/ses.el
+++ b/lisp/ses.el
@@ -1254,8 +1254,7 @@ preceding cell has spilled over."
         ((< len width)
          ;; Fill field to length with spaces.
          (setq len  (make-string (- width len) ?\s)
-               text (if (or (stringp value)
-                            (eq ses-call-printer-return t))
+               text (if (eq ses-call-printer-return t)
                         (concat text len)
                       (concat len text))))
         ((> len width)
diff --git a/lisp/subr.el b/lisp/subr.el
index d2fefe0..c216877 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -110,8 +110,7 @@ BODY should be a list of Lisp expressions.
 
 \(fn ARGS [DOCSTRING] [INTERACTIVE] BODY)"
   (declare (doc-string 2) (indent defun)
-           (debug (&define lambda-list
-                           [&optional stringp]
+           (debug (&define lambda-list lambda-doc
                            [&optional ("interactive" interactive)]
                            def-body)))
   ;; Note that this definition should not use backquotes; subr.el should not
diff --git a/lisp/xt-mouse.el b/lisp/xt-mouse.el
index 772a72d..d268e1a 100644
--- a/lisp/xt-mouse.el
+++ b/lisp/xt-mouse.el
@@ -288,8 +288,10 @@ which is the \"1006\" extension implemented in Xterm >= 
277."
                        (string-match "down-" last-name)
                        (equal name (replace-match "" t t last-name)))
               (xterm-mouse--set-click-count event click-count)))
-           ((not last-time) nil)
-           ((and (> double-click-time (* 1000 (- this-time last-time)))
+           ((and last-time
+                 double-click-time
+                 (or (eq double-click-time t)
+                     (> double-click-time (* 1000 (- this-time last-time))))
                  (equal last-name (replace-match "" t t name)))
             (setq click-count (1+ click-count))
             (xterm-mouse--set-click-count event click-count))
diff --git a/src/dispnew.c b/src/dispnew.c
index ad59704..cb32f09 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -66,7 +66,7 @@ struct dim
 
 /* Function prototypes.  */
 
-static void update_frame_line (struct frame *, int);
+static void update_frame_line (struct frame *, int, bool);
 static int required_matrix_height (struct window *);
 static int required_matrix_width (struct window *);
 static void increment_row_positions (struct glyph_row *, ptrdiff_t, ptrdiff_t);
@@ -88,7 +88,7 @@ static void check_matrix_pointers (struct glyph_matrix *,
 static void mirror_line_dance (struct window *, int, int, int *, char *);
 static bool update_window_tree (struct window *, bool);
 static bool update_window (struct window *, bool);
-static bool update_frame_1 (struct frame *, bool, bool, bool);
+static bool update_frame_1 (struct frame *, bool, bool, bool, bool);
 static bool scrolling (struct frame *);
 static void set_window_cursor_after_update (struct window *);
 static void adjust_frame_glyphs_for_window_redisplay (struct frame *);
@@ -3121,7 +3121,7 @@ update_frame (struct frame *f, bool force_p, bool 
inhibit_hairy_id_p)
 
       /* Update the display.  */
       update_begin (f);
-      paused_p = update_frame_1 (f, force_p, inhibit_hairy_id_p, 1);
+      paused_p = update_frame_1 (f, force_p, inhibit_hairy_id_p, 1, false);
       update_end (f);
 
       if (FRAME_TERMCAP_P (f) || FRAME_MSDOS_P (f))
@@ -3174,7 +3174,7 @@ update_frame_with_menu (struct frame *f, int row, int col)
   cursor_at_point_p = !(row >= 0 && col >= 0);
   /* Force update_frame_1 not to stop due to pending input, and not
      try scrolling.  */
-  paused_p = update_frame_1 (f, 1, 1, cursor_at_point_p);
+  paused_p = update_frame_1 (f, 1, 1, cursor_at_point_p, true);
   /* ROW and COL tell us where in the menu to position the cursor, so
      that screen readers know the active region on the screen.  */
   if (!cursor_at_point_p)
@@ -4474,7 +4474,7 @@ scrolling_window (struct window *w, bool header_line_p)
 
 static bool
 update_frame_1 (struct frame *f, bool force_p, bool inhibit_id_p,
-               bool set_cursor_p)
+               bool set_cursor_p, bool updating_menu_p)
 {
   /* Frame matrices to work on.  */
   struct glyph_matrix *current_matrix = f->current_matrix;
@@ -4513,7 +4513,7 @@ update_frame_1 (struct frame *f, bool force_p, bool 
inhibit_id_p,
 
   /* Update the individual lines as needed.  Do bottom line first.  */
   if (MATRIX_ROW_ENABLED_P (desired_matrix, desired_matrix->nrows - 1))
-    update_frame_line (f, desired_matrix->nrows - 1);
+    update_frame_line (f, desired_matrix->nrows - 1, updating_menu_p);
 
   /* Now update the rest of the lines.  */
   for (i = 0; i < desired_matrix->nrows - 1 && (force_p || !input_pending); 
i++)
@@ -4539,7 +4539,7 @@ update_frame_1 (struct frame *f, bool force_p, bool 
inhibit_id_p,
          if (!force_p && (i - 1) % preempt_count == 0)
            detect_input_pending_ignore_squeezables ();
 
-         update_frame_line (f, i);
+         update_frame_line (f, i, updating_menu_p);
        }
     }
 
@@ -4775,7 +4775,7 @@ count_match (struct glyph *str1, struct glyph *end1, 
struct glyph *str2, struct
 /* Perform a frame-based update on line VPOS in frame FRAME.  */
 
 static void
-update_frame_line (struct frame *f, int vpos)
+update_frame_line (struct frame *f, int vpos, bool updating_menu_p)
 {
   struct glyph *obody, *nbody, *op1, *op2, *np1, *nend;
   int tem;
@@ -4814,6 +4814,12 @@ update_frame_line (struct frame *f, int vpos)
   current_row->enabled_p = true;
   current_row->used[TEXT_AREA] = desired_row->used[TEXT_AREA];
 
+  /* For some reason, cursor is sometimes moved behind our back when a
+     frame with a TTY menu is redrawn.  Homing the cursor as below
+     fixes that.  */
+  if (updating_menu_p)
+    cursor_to (f, 0, 0);
+
   /* If desired line is empty, just clear the line.  */
   if (!desired_row->enabled_p)
     {
diff --git a/src/editfns.c b/src/editfns.c
index d88a913..e65bd34 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -4179,6 +4179,7 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool 
message)
      multibyte character of the previous string.  This flag tells if we
      must consider such a situation or not.  */
   bool maybe_combine_byte;
+  Lisp_Object val;
   bool arg_intervals = false;
   USE_SAFE_ALLOCA;
   sa_avail -= sizeof initial_buffer;
@@ -4417,7 +4418,10 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool 
message)
            {
              if (format == end && format - format_start == 2
                  && ! string_intervals (args[0]))
-               return arg;
+               {
+                 val = arg;
+                 goto return_val;
+               }
 
              /* handle case (precision[n] >= 0) */
 
@@ -4862,11 +4866,14 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool 
message)
     emacs_abort ();
 
   if (! new_result)
-    return args[0];
+    {
+      val = args[0];
+      goto return_val;
+    }
 
   if (maybe_combine_byte)
     nchars = multibyte_chars_in_text ((unsigned char *) buf, p - buf);
-  Lisp_Object val = make_specified_string (buf, nchars, p - buf, multibyte);
+  val = make_specified_string (buf, nchars, p - buf, multibyte);
 
   /* If the format string has text properties, or any of the string
      arguments has text properties, set up text properties of the
@@ -4964,6 +4971,7 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool 
message)
            }
     }
 
+ return_val:
   /* If we allocated BUF or INFO with malloc, free it too.  */
   SAFE_FREE ();
 
diff --git a/src/gnutls.c b/src/gnutls.c
index d7a1399..b55d1b9 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -2472,7 +2472,6 @@ syms_of_gnutls (void)
   DEFSYM (QCcipher_blocksize, ":cipher-blocksize");
   DEFSYM (QCcipher_keysize, ":cipher-keysize");
   DEFSYM (QCcipher_tagsize, ":cipher-tagsize");
-  DEFSYM (QCcipher_keysize, ":cipher-keysize");
   DEFSYM (QCcipher_ivsize, ":cipher-ivsize");
 
   DEFSYM (QCmac_algorithm_id, ":mac-algorithm-id");
diff --git a/src/nsterm.m b/src/nsterm.m
index f0b6a70..abfdffc 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -6893,6 +6893,9 @@ not_in_argv (NSString *arg)
   NSTRACE_RECT   ("[sender frame]", [sender frame]);
   NSTRACE_FSTYPE ("fs_state", fs_state);
 
+  if (!FRAME_LIVE_P (emacsframe))
+    return frameSize;
+
   if (fs_state == FULLSCREEN_MAXIMIZED
       && (maximized_width != (int)frameSize.width
           || maximized_height != (int)frameSize.height))
diff --git a/src/process.c b/src/process.c
index 2733fa3..05feba7 100644
--- a/src/process.c
+++ b/src/process.c
@@ -8097,7 +8097,6 @@ syms_of_process (void)
   DEFSYM (Qreal, "real");
   DEFSYM (Qnetwork, "network");
   DEFSYM (Qserial, "serial");
-  DEFSYM (Qpipe, "pipe");
   DEFSYM (QCbuffer, ":buffer");
   DEFSYM (QChost, ":host");
   DEFSYM (QCservice, ":service");
diff --git a/src/sysdep.c b/src/sysdep.c
index 26d381f..8291a60 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -232,7 +232,18 @@ emacs_get_current_dir_name (void)
   bool use_libc = true;
 #  endif
   if (use_libc)
-    return get_current_dir_name ();
+    {
+      /* GNU/Linux get_current_dir_name can return a string starting
+        with "(unreachable)" (Bug#27871).  */
+      char *wd = get_current_dir_name ();
+      if (wd && ! (IS_DIRECTORY_SEP (*wd) || (*wd && IS_DEVICE_SEP (wd[1]))))
+       {
+         free (wd);
+         errno = ENOENT;
+         return NULL;
+       }
+      return wd;
+    }
 # endif
 
   char *buf;
diff --git a/test/lisp/emacs-lisp/generator-tests.el 
b/test/lisp/emacs-lisp/generator-tests.el
index 4cc6c84..cbb136a 100644
--- a/test/lisp/emacs-lisp/generator-tests.el
+++ b/test/lisp/emacs-lisp/generator-tests.el
@@ -282,3 +282,13 @@ identical output.
 (ert-deftest cps-test-declarations-preserved ()
   (should (equal (documentation 'generator-with-docstring) "Documentation!"))
   (should (equal (get 'generator-with-docstring 'lisp-indent-function) 5)))
+
+(ert-deftest cps-iter-lambda-with-dynamic-binding ()
+  "`iter-lambda' with dynamic binding produces correct result (bug#25965)."
+  (should (= 1
+             (iter-next
+              (funcall (iter-lambda ()
+                         (let* ((fill-column 10) ;;any special variable will do
+                                (i 0)
+                                (j (setq i (1+ i))))
+                           (iter-yield i))))))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]