emacs-diffs
[Top][All Lists]
Advanced

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

feature/tramp-thread-safe a4972d9: Merge remote-tracking branch 'origin/


From: Michael Albinus
Subject: feature/tramp-thread-safe a4972d9: Merge remote-tracking branch 'origin/master' into feature/tramp-thread-safe
Date: Fri, 27 Mar 2020 06:05:51 -0400 (EDT)

branch: feature/tramp-thread-safe
commit a4972d96f9b7fd97b23e1b9bf6bbdcb956e73765
Merge: 47156f1 e4f8098
Author: Michael Albinus <address@hidden>
Commit: Michael Albinus <address@hidden>

    Merge remote-tracking branch 'origin/master' into feature/tramp-thread-safe
---
 ChangeLog.3                                    | 72926 ++++++++++++++++++++++-
 Makefile.in                                    |     2 +-
 admin/authors.el                               |    13 +-
 admin/merge-gnulib                             |     6 +-
 admin/nt/dist-build/build-dep-zips.py          |     1 +
 admin/release-process                          |     9 +-
 admin/unidata/BidiBrackets.txt                 |     6 +-
 admin/unidata/BidiMirroring.txt                |     8 +-
 admin/unidata/Blocks.txt                       |    14 +-
 admin/unidata/NormalizationTest.txt            |   266 +-
 admin/unidata/SpecialCasing.txt                |     4 +-
 admin/unidata/UnicodeData.txt                  |   963 +-
 admin/unidata/blocks.awk                       |     1 +
 admin/unidata/copyright.html                   |    20 +-
 doc/emacs/building.texi                        |    40 +-
 doc/emacs/custom.texi                          |    17 +-
 doc/emacs/emacs.texi                           |     1 +
 doc/emacs/frames.texi                          |    13 +-
 doc/emacs/macos.texi                           |    69 +-
 doc/emacs/maintaining.texi                     |    75 +
 doc/emacs/mini.texi                            |    47 +-
 doc/emacs/programs.texi                        |    24 +-
 doc/emacs/sending.texi                         |    11 +-
 doc/lispref/compile.texi                       |     6 +-
 doc/lispref/files.texi                         |    37 +-
 doc/lispref/frames.texi                        |     2 +-
 doc/lispref/internals.texi                     |    14 +
 doc/lispref/minibuf.texi                       |    20 +-
 doc/lispref/modes.texi                         |     2 +-
 doc/lispref/numbers.texi                       |    77 +-
 doc/lispref/os.texi                            |     7 +-
 doc/lispref/processes.texi                     |     1 +
 doc/lispref/searching.texi                     |    18 +-
 doc/lispref/tips.texi                          |     2 +-
 doc/lispref/variables.texi                     |    12 +-
 doc/misc/cc-mode.texi                          |    52 +-
 doc/misc/eieio.texi                            |     4 +-
 doc/misc/gnus.texi                             |     6 +-
 doc/misc/texinfo.tex                           |    32 +-
 etc/AUTHORS                                    |  1324 +-
 etc/DEBUG                                      |     4 +-
 etc/NEWS                                       |   105 +-
 etc/NEWS.27                                    |    97 +-
 etc/TODO                                       |    71 +
 etc/compilation.txt                            |    18 +
 etc/srecode/el.srt                             |     2 +-
 etc/themes/deeper-blue-theme.el                |     1 -
 etc/themes/leuven-theme.el                     |     1 -
 etc/themes/manoj-dark-theme.el                 |     1 -
 etc/themes/whiteboard-theme.el                 |     1 -
 lib-src/etags.c                                |     5 +
 lib/careadlinkat.h                             |     2 +-
 lib/count-leading-zeros.h                      |     8 +
 lib/count-one-bits.h                           |     8 +
 lib/count-trailing-zeros.h                     |     8 +
 lib/fchmodat.c                                 |   144 +
 lib/fcntl.in.h                                 |     6 +
 lib/futimens.c                                 |    37 +
 lib/getopt-pfx-core.h                          |     8 +
 lib/gnulib.mk.in                               |    56 +-
 lib/inttypes.in.h                              |    24 +-
 lib/lchmod.c                                   |   110 +
 lib/md5.h                                      |     8 +-
 lib/open.c                                     |     4 +-
 lib/openat.h                                   |    20 +-
 lib/sha1.h                                     |     7 +-
 lib/sha256.h                                   |    20 +-
 lib/sha512.h                                   |    20 +-
 lib/signal.in.h                                |    24 +-
 lib/stdio.in.h                                 |   270 +-
 lib/stdlib.in.h                                |    72 +-
 lib/strftime.h                                 |     2 +-
 lib/string.in.h                                |    14 +-
 lib/sys_stat.in.h                              |    44 +-
 lib/time.in.h                                  |    17 +-
 lib/unistd.in.h                                |    24 +-
 lib/utimensat.c                                |   160 +
 lisp/bs.el                                     |     7 +-
 lisp/calendar/calendar.el                      |    13 +-
 lisp/calendar/icalendar.el                     |     3 +-
 lisp/cedet/data-debug.el                       |     2 +-
 lisp/cedet/pulse.el                            |     2 +
 lisp/cedet/semantic/grammar.el                 |     2 +-
 lisp/cedet/semantic/wisent/comp.el             |    13 +-
 lisp/cedet/srecode/srt-mode.el                 |     2 +-
 lisp/comint.el                                 |     4 +-
 lisp/dframe.el                                 |     1 +
 lisp/dired-aux.el                              |     8 +-
 lisp/dired-x.el                                |     8 +-
 lisp/dired.el                                  |   112 +-
 lisp/doc-view.el                               |     4 +-
 lisp/emacs-lisp/autoload.el                    |     2 +-
 lisp/emacs-lisp/byte-opt.el                    |     2 +-
 lisp/emacs-lisp/bytecomp.el                    |    80 +-
 lisp/emacs-lisp/checkdoc.el                    |     9 +-
 lisp/emacs-lisp/cl-extra.el                    |    12 +-
 lisp/emacs-lisp/cl-macs.el                     |    79 +-
 lisp/emacs-lisp/cursor-sensor.el               |   111 +-
 lisp/emacs-lisp/edebug.el                      |     1 -
 lisp/emacs-lisp/eldoc.el                       |   139 +-
 lisp/emacs-lisp/lisp-mode.el                   |     6 +-
 lisp/emacs-lisp/package.el                     |    33 +-
 lisp/emacs-lisp/rx.el                          |    86 +-
 lisp/emacs-lisp/seq.el                         |    10 +-
 lisp/emacs-lisp/syntax.el                      |    26 +-
 lisp/emacs-lisp/timer-list.el                  |    15 +-
 lisp/emacs-lisp/timer.el                       |     3 -
 lisp/emulation/edt.el                          |     4 +-
 lisp/emulation/viper-mous.el                   |    50 +-
 lisp/emulation/viper-util.el                   |     1 +
 lisp/erc/erc-autoaway.el                       |     2 +-
 lisp/erc/erc-backend.el                        |     2 +-
 lisp/erc/erc-button.el                         |     2 +-
 lisp/erc/erc-capab.el                          |     2 +-
 lisp/erc/erc-compat.el                         |     2 +-
 lisp/erc/erc-dcc.el                            |     2 +-
 lisp/erc/erc-desktop-notifications.el          |     2 +-
 lisp/erc/erc-ezbounce.el                       |     2 +-
 lisp/erc/erc-fill.el                           |     2 +-
 lisp/erc/erc-goodies.el                        |     2 +-
 lisp/erc/erc-ibuffer.el                        |     2 +-
 lisp/erc/erc-identd.el                         |     2 +-
 lisp/erc/erc-imenu.el                          |     2 +-
 lisp/erc/erc-join.el                           |     2 +-
 lisp/erc/erc-lang.el                           |     2 +-
 lisp/erc/erc-list.el                           |     2 +-
 lisp/erc/erc-log.el                            |     2 +-
 lisp/erc/erc-match.el                          |     2 +-
 lisp/erc/erc-menu.el                           |     2 +-
 lisp/erc/erc-netsplit.el                       |     2 +-
 lisp/erc/erc-networks.el                       |     2 +-
 lisp/erc/erc-notify.el                         |     2 +-
 lisp/erc/erc-page.el                           |     2 +-
 lisp/erc/erc-pcomplete.el                      |     2 +-
 lisp/erc/erc-replace.el                        |     2 +-
 lisp/erc/erc-ring.el                           |     2 +-
 lisp/erc/erc-services.el                       |     2 +-
 lisp/erc/erc-sound.el                          |     2 +-
 lisp/erc/erc-speedbar.el                       |     2 +-
 lisp/erc/erc-spelling.el                       |     2 +-
 lisp/erc/erc-stamp.el                          |     2 +-
 lisp/erc/erc-track.el                          |     2 +-
 lisp/erc/erc-truncate.el                       |     2 +-
 lisp/erc/erc-xdcc.el                           |     2 +-
 lisp/erc/erc.el                                |     4 +-
 lisp/eshell/em-glob.el                         |     4 +-
 lisp/eshell/em-ls.el                           |     3 +-
 lisp/eshell/em-pred.el                         |     2 +-
 lisp/eshell/em-prompt.el                       |     2 +-
 lisp/eshell/em-unix.el                         |     7 +-
 lisp/eshell/esh-util.el                        |     6 -
 lisp/files.el                                  |    17 +-
 lisp/font-lock.el                              |     7 +-
 lisp/frame.el                                  |    18 +-
 lisp/gnus/deuglify.el                          |     4 +-
 lisp/gnus/gnus-art.el                          |     6 +-
 lisp/gnus/gnus-cloud.el                        |     4 +-
 lisp/gnus/gnus-delay.el                        |     6 +-
 lisp/gnus/gnus-start.el                        |    22 +-
 lisp/gnus/gnus-util.el                         |     4 +-
 lisp/gnus/gnus-uu.el                           |     4 +-
 lisp/gnus/mail-source.el                       |     2 +-
 lisp/gnus/message.el                           |     8 +-
 lisp/gnus/mm-archive.el                        |     5 +-
 lisp/gnus/mm-decode.el                         |    20 +-
 lisp/gnus/mm-uu.el                             |     2 +-
 lisp/gnus/mml.el                               |    26 +-
 lisp/gnus/nnbabyl.el                           |     2 +-
 lisp/gnus/nndiary.el                           |     2 +-
 lisp/gnus/nnfolder.el                          |     2 +-
 lisp/gnus/nnmail.el                            |     8 +-
 lisp/gnus/nnmbox.el                            |     2 +-
 lisp/gnus/nnml.el                              |     2 +-
 lisp/gnus/spam-stat.el                         |     2 +-
 lisp/help-fns.el                               |   122 +-
 lisp/help.el                                   |   108 -
 lisp/hexl.el                                   |     6 +-
 lisp/hippie-exp.el                             |     2 +-
 lisp/icomplete.el                              |    15 +-
 lisp/ido.el                                    |   253 +-
 lisp/ielm.el                                   |     4 +-
 lisp/image-dired.el                            |     4 +-
 lisp/image/exif.el                             |    21 +-
 lisp/image/gravatar.el                         |    43 +-
 lisp/image/image-converter.el                  |     5 +-
 lisp/informat.el                               |     2 +-
 lisp/international/characters.el               |    46 +-
 lisp/international/fontset.el                  |     9 +-
 lisp/international/mule-cmds.el                |     4 +-
 lisp/international/mule.el                     |     5 +-
 lisp/ldefs-boot.el                             |    34 +-
 lisp/linum.el                                  |     3 +-
 lisp/loadhist.el                               |     2 +-
 lisp/ls-lisp.el                                |     6 +-
 lisp/master.el                                 |     2 +-
 lisp/minibuffer.el                             |    11 +-
 lisp/mwheel.el                                 |    10 +-
 lisp/net/ange-ftp.el                           |     3 +-
 lisp/net/browse-url.el                         |     2 +-
 lisp/net/eww.el                                |    12 +-
 lisp/net/rcirc.el                              |    18 +-
 lisp/net/shr.el                                |     4 +-
 lisp/net/tramp-adb.el                          |    29 +-
 lisp/net/tramp-compat.el                       |    29 +-
 lisp/net/tramp-gvfs.el                         |    27 +-
 lisp/net/tramp-sh.el                           |   155 +-
 lisp/net/tramp-smb.el                          |    26 +-
 lisp/net/tramp-sudoedit.el                     |    39 +-
 lisp/net/tramp.el                              |    41 +-
 lisp/org/ob-core.el                            |     2 +-
 lisp/org/ob-fortran.el                         |     2 +-
 lisp/org/org-capture.el                        |     2 +-
 lisp/org/org-table.el                          |     2 +-
 lisp/org/org.el                                |     8 +-
 lisp/play/bubbles.el                           |     1 +
 lisp/play/gametree.el                          |     2 +-
 lisp/progmodes/cc-awk.el                       |     2 +-
 lisp/progmodes/cc-cmds.el                      |    93 +
 lisp/progmodes/cc-defs.el                      |     4 +-
 lisp/progmodes/cc-engine.el                    |    65 +-
 lisp/progmodes/cc-langs.el                     |     9 +-
 lisp/progmodes/cc-mode.el                      |   113 +-
 lisp/progmodes/cc-vars.el                      |     9 +
 lisp/progmodes/cfengine.el                     |    17 +-
 lisp/progmodes/compile.el                      |    41 +-
 lisp/progmodes/cperl-mode.el                   |    10 +-
 lisp/progmodes/cwarn.el                        |     2 +-
 lisp/progmodes/ebnf-abn.el                     |    11 +-
 lisp/progmodes/ebnf-bnf.el                     |     6 +-
 lisp/progmodes/ebnf-dtd.el                     |    13 +-
 lisp/progmodes/ebnf-ebx.el                     |    18 +-
 lisp/progmodes/ebnf-iso.el                     |     6 +-
 lisp/progmodes/ebnf-yac.el                     |     6 +-
 lisp/progmodes/ebnf2ps.el                      |    15 +-
 lisp/progmodes/elisp-mode.el                   |    35 +-
 lisp/progmodes/fortran.el                      |     2 +-
 lisp/progmodes/gdb-mi.el                       |   306 +-
 lisp/progmodes/idlw-shell.el                   |     2 +-
 lisp/progmodes/octave.el                       |     3 +-
 lisp/progmodes/opascal.el                      |     2 +-
 lisp/progmodes/pascal.el                       |     4 +-
 lisp/progmodes/perl-mode.el                    |     2 +-
 lisp/progmodes/project.el                      |    11 +-
 lisp/progmodes/python.el                       |     6 +-
 lisp/progmodes/ruby-mode.el                    |     2 +-
 lisp/progmodes/sh-script.el                    |     2 +-
 lisp/progmodes/simula.el                       |     2 +-
 lisp/progmodes/sql.el                          |   200 +-
 lisp/progmodes/verilog-mode.el                 |   199 +-
 lisp/progmodes/vhdl-mode.el                    |     2 +-
 lisp/repeat.el                                 |     2 +-
 lisp/replace.el                                |     6 +-
 lisp/ruler-mode.el                             |     2 +-
 lisp/server.el                                 |     2 +-
 lisp/shell.el                                  |     4 +-
 lisp/simple.el                                 |    13 +-
 lisp/speedbar.el                               |     4 +-
 lisp/subr.el                                   |    58 +-
 lisp/svg.el                                    |     4 +-
 lisp/tab-bar.el                                |    26 +-
 lisp/tab-line.el                               |    65 +-
 lisp/tar-mode.el                               |     2 +-
 lisp/tempo.el                                  |    31 +-
 lisp/term.el                                   |     4 +-
 lisp/term/rxvt.el                              |    21 +-
 lisp/textmodes/bibtex.el                       |    50 +-
 lisp/textmodes/conf-mode.el                    |   191 +-
 lisp/textmodes/fill.el                         |     3 +-
 lisp/textmodes/nroff-mode.el                   |     1 -
 lisp/textmodes/reftex-vars.el                  |     2 +-
 lisp/textmodes/remember.el                     |     3 +-
 lisp/textmodes/table.el                        |    21 +-
 lisp/textmodes/tex-mode.el                     |     6 +-
 lisp/url/url-about.el                          |     2 +-
 lisp/url/url-expand.el                         |    11 +-
 lisp/url/url-gw.el                             |     2 +-
 lisp/url/url-http.el                           |     2 +-
 lisp/url/url-news.el                           |     2 +-
 lisp/url/url-util.el                           |     4 +-
 lisp/url/url-vars.el                           |     1 +
 lisp/vc/diff-mode.el                           |    53 +-
 lisp/vc/ediff-init.el                          |    22 +-
 lisp/vc/ediff-ptch.el                          |     2 +-
 lisp/vc/ediff-util.el                          |     7 +-
 lisp/vc/ediff-wind.el                          |    21 +-
 lisp/vc/log-edit.el                            |    26 +-
 lisp/vc/pcvs-parse.el                          |     2 +-
 lisp/vc/pcvs.el                                |     4 +-
 lisp/vc/smerge-mode.el                         |    15 +-
 lisp/vc/vc-cvs.el                              |    46 +-
 lisp/vc/vc-dir.el                              |     5 +-
 lisp/vc/vc-dispatcher.el                       |     3 +-
 lisp/vc/vc.el                                  |   104 +-
 lisp/w32-fns.el                                |     7 +
 lisp/wdired.el                                 |     4 +-
 lisp/whitespace.el                             |    24 +-
 lisp/windmove.el                               |    16 +
 lisp/window.el                                 |    73 +-
 lisp/woman.el                                  |     5 +-
 m4/acl.m4                                      |     4 +-
 m4/fchmodat.m4                                 |    82 +
 m4/futimens.m4                                 |    65 +
 m4/getloadavg.m4                               |     6 +-
 m4/gnulib-comp.m4                              |    78 +-
 m4/inttypes.m4                                 |     4 +-
 m4/largefile.m4                                |     3 -
 m4/lchmod.m4                                   |    31 +
 m4/nstrftime.m4                                |     4 +-
 m4/signal_h.m4                                 |     4 +-
 m4/stdio_h.m4                                  |     4 +-
 m4/stdlib_h.m4                                 |     4 +-
 m4/string_h.m4                                 |     5 +-
 m4/sys_socket_h.m4                             |     4 +-
 m4/sys_stat_h.m4                               |     7 +-
 m4/time_h.m4                                   |     6 +-
 m4/unistd_h.m4                                 |     4 +-
 m4/utimensat.m4                                |    69 +
 nt/gnulib-cfg.mk                               |     5 +
 nt/inc/sys/stat.h                              |     5 +
 nt/mingw-cfg.site                              |     7 +
 src/.gdbinit                                   |     2 +-
 src/alloc.c                                    |    22 +-
 src/buffer.c                                   |    32 +-
 src/buffer.h                                   |     2 +
 src/character.c                                |     6 +-
 src/cmds.c                                     |    15 +-
 src/coding.c                                   |    42 +-
 src/composite.c                                |    35 +-
 src/conf_post.h                                |     7 +
 src/data.c                                     |    89 +-
 src/dispextern.h                               |     6 +-
 src/editfns.c                                  |   140 +-
 src/emacs-module.c                             |     9 +
 src/emacs.c                                    |     4 +-
 src/eval.c                                     |     4 +-
 src/fileio.c                                   |   101 +-
 src/filelock.c                                 |    30 +-
 src/fns.c                                      |    20 +-
 src/font.c                                     |    20 +-
 src/font.h                                     |     2 +-
 src/fontset.c                                  |    12 +-
 src/frame.c                                    |    12 +-
 src/fringe.c                                   |    13 +-
 src/ftfont.c                                   |     4 +-
 src/gnutls.c                                   |    19 +-
 src/gtkutil.c                                  |     7 -
 src/intervals.c                                |    12 +-
 src/intervals.h                                |    24 +-
 src/keyboard.c                                 |    30 +-
 src/lisp.h                                     |    26 +-
 src/lread.c                                    |    23 +-
 src/macfont.m                                  |     2 +-
 src/module-env-28.h                            |     3 +
 src/nsfns.m                                    |    74 -
 src/nsterm.h                                   |    26 +-
 src/nsterm.m                                   |   204 +-
 src/pdumper.c                                  |    11 +-
 src/process.c                                  |    25 +-
 src/process.h                                  |     2 +
 src/regex-emacs.c                              |    25 +-
 src/search.c                                   |     3 +-
 src/sysdep.c                                   |    15 -
 src/systime.h                                  |     3 -
 src/textprop.c                                 |    15 +-
 src/timefns.c                                  |   175 +-
 src/w32.c                                      |   147 +-
 src/w32.h                                      |     2 +
 src/w32fns.c                                   |     2 +-
 src/w32term.c                                  |    45 +-
 src/w32term.h                                  |     4 +
 src/window.c                                   |     5 +-
 src/xdisp.c                                    |   136 +-
 src/xfns.c                                     |     2 +-
 src/xrdb.c                                     |     2 +-
 src/xterm.c                                    |    13 +-
 src/xterm.h                                    |     1 +
 test/data/emacs-module/mod-test.c              |    57 +-
 test/data/image/black-short.jpg                |   Bin 0 -> 31779 bytes
 test/lisp/electric-tests.el                    |     6 +-
 test/lisp/emacs-lisp/bytecomp-tests.el         |     7 +-
 test/lisp/emacs-lisp/cl-extra-tests.el         |     8 +
 test/lisp/emacs-lisp/regexp-opt-tests.el       |    29 +-
 test/lisp/emacs-lisp/rx-tests.el               |    26 +-
 test/lisp/filenotify-tests.el                  |    11 +-
 test/lisp/files-tests.el                       |     4 +-
 test/lisp/image/exif-tests.el                  |    11 +
 test/lisp/image/gravatar-tests.el              |     2 +-
 test/lisp/international/ucs-normalize-tests.el |    46 +-
 test/lisp/net/tramp-tests.el                   |   109 +-
 test/lisp/progmodes/compile-tests.el           |     7 +-
 test/lisp/tempo-tests.el                       |    39 +
 test/manual/BidiCharacterTest.txt              |     6 +-
 test/src/emacs-module-tests.el                 |    14 +
 test/src/regex-emacs-tests.el                  |     2 +-
 test/src/timefns-tests.el                      |    49 +-
 395 files changed, 80797 insertions(+), 3770 deletions(-)

diff --git a/ChangeLog.3 b/ChangeLog.3
index 9d171bf..fc41c1f 100644
--- a/ChangeLog.3
+++ b/ChangeLog.3
@@ -1,3 +1,72925 @@
+2020-02-27  Nicolas Petton  <address@hidden>
+
+       * admin/authors.el (authors-ignored-files): Fix entries.
+
+2020-02-26  Eric Abrahamsen  <address@hidden>
+
+       Fix documented slot name of eieio-instance-tracker class
+
+       * doc/misc/eieio.texi (eieio-instance-tracker): The code has the slot
+         name as `tracking-symbol', not `tracker-symbol'.
+
+2020-02-26  Robert Pluim  <address@hidden>
+
+       Range-check width passed to define-fringe-bitmap
+
+       This prevents a crash when attempting to create a zero-width bitmap.
+
+       * src/fringe.c (Fdefine_fringe_bitmap): Check value of width,
+       signal an error if outside documented range (Bug#39662).
+
+2020-02-26  Nicolas Petton  <address@hidden>
+
+       * admin/authors.el: Add missing entries
+
+2020-02-26  Noam Postavsky  <address@hidden>
+
+       Define libgnutls-version properly
+
+       * src/gnutls.c (syms_of_gnutls) <libgnutls-version>: Define with
+       DEFVAR_LISP and add docstring, so that this variable will accessible by
+       help facilities.
+
+2020-02-25  Dmitry Gutov  <address@hidden>
+
+       vc-dir-ignore: More accurately choose base directory
+
+       * lisp/vc/vc-dir.el:
+       (vc-dir-ignore): Use it (bug#37189).
+
+       * lisp/vc/vc.el:
+       (vc--ignore-base-dir): Extract from vc-ignore.
+
+2020-02-24  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cursor-sensor.el (cursor-sensor--detect): Change last 
fix
+
+       Make sure we always work in the selected-window's buffer.
+
+2020-02-23  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Protect against consecutive calls to before-change-functions 
...
+
+       without an intervening call to after-change-functions.  This would have 
been a
+       workaround to bug #38691 had the causes of that bug not been removed.
+
+       * lisp/progmodes/cc-mode.el (c-just-done-before-change): Add an extra 
value to
+       this variable, 'whole-buffer, this being set by c-before-change as a 
signal to
+       c-after-change that although c-before-change has run, it has assumed the
+       entire buffer as the change region.
+       (c-before-change, c-after-change): Adapt to the new meaning of the 
above.
+
+2020-02-23  Noam Postavsky  <address@hidden>
+
+       Shorten some ppss struct field names
+
+       * lisp/emacs-lisp/syntax.el (ppss): Capitalize docstrings.
+       (ppss-comment-depth): Renamed from ppss-comment-nesting.
+       (ppss-quoted-p): Renamed from ppss-after-quote-p.
+       (ppss-min-depth): Renamed from ppss-minimum-paren-depth.
+       (ppss-open-parens): Renamed from ppss-open-paren-positions.
+       * etc/NEWS: Announce the ppss-* accessors.
+
+2020-02-23  Alan Mackenzie  <address@hidden>
+
+       Java Mode: Fix fontification of variable decl inside `for'
+
+       * lisp/progmodes/cc-engine.el (c-forward-declarator): In place of a 
test for
+       C++ Mode, test for either C++ Mode or Java Mode.
+
+2020-02-23  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Fontify foo in "const auto foo :" correctly
+
+       * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): While 
attempting to
+       find a declaration's identifier, recast the latest found id. as that
+       identifier when there is no other type identifier and the result of the 
most
+       recent c-forward-type call is 'maybe or 'found.  In the latter case, 
remove
+       the id. from the found types list, too.
+
+2020-02-23  Juri Linkov  <address@hidden>
+
+       * lisp/replace.el (occur-engine-line): Revert part of fb16313025 
(bug#39597)
+
+2020-02-23  Dmitry Gutov  <address@hidden>
+
+       Move more logic to vc-ignore from vc-default-ignore
+
+       * lisp/vc/vc-dir.el (vc-dir-ignore):
+       Pass relative file names to vc-ignore.
+
+       * lisp/vc/vc.el (vc-ignore): Move the responsibility of
+       constructing the ignore pattern (right now, most often a relative
+       file name) using a file name received from the user, here.
+       (vc-default-ignore): ...from here (bug#37189, see discussion).
+       Also clarify the docstring.
+
+2020-02-22  Eli Zaretskii  <address@hidden>
+
+       Warn about the likes of "[:alnum:]" in regexps
+
+       * doc/lispref/searching.texi (Char Classes): Warn about erroneous
+       usage of named character classes.  Suggested by Stephen Leake
+       <address@hidden>.
+
+2020-02-22  Wolfgang Scherer  <address@hidden>
+
+       Don't write absolute filenames and duplicate strings to CVS ignore files
+
+       * lisp/vc/vc-cvs.el (vc-cvs-ignore): Expand filename correctly
+       and pass on only the basename as the pattern.
+       (vc-cvs-append-to-ignore) Do not write duplicate strings to
+       .cvsignore.  New optional parameter SORT to more explicitly
+       control sorting of the ignore entries.  (Bug#37215)
+       * lisp/vc/pcvs.el (cvs-mode-ignore): Call 'vc-cvs-append-to-ignore'
+       with SORT argument.
+
+2020-02-21  Federico Tedin  <address@hidden>
+
+       Fix cursor-sensor--detect when current buf != selected window's buf
+
+       * lisp/emacs-lisp/cursor-sensor.el (cursor-sensor--detect): Avoid
+       trying to read text properties from position taken from another
+       buffer.  (Bug#38740)
+
+2020-02-21  Eli Zaretskii  <address@hidden>
+
+       * doc/emacs/sending.texi (Mail Sending): Fix index entries.
+
+2020-02-21  Allen Li  <address@hidden>
+
+       Document 'message-send-mail-function' in the Emacs manual
+
+       Most of the manual here addresses Message mode, yet talks about
+       'send-mail-function' which is used for Mail mode.
+       Fixing this completely requires more involved work, but for now at
+       least document the difference here.
+
+       * doc/emacs/sending.texi (Mail Sending): Mention
+       'message-send-mail-function'.  (Bug#39639)
+
+2020-02-21  Allen Li  <address@hidden>
+
+       Fix reference to 'message-send-and-exit' in Emacs manual
+
+       Most of the manual here addresses Message mode, and C-c C-c directly
+       above cites the Message mode command, not the Mail mode command.
+
+       * doc/emacs/sending.texi (Mail Sending): Fix reference.  (Bug#39639)
+
+2020-02-21  Steven Allen  <address@hidden>
+
+       Skip shell prompt on current line in Eshell even if it's protected
+
+       When the eshell prompt is protected (e.g., with rear non-sticky,
+       inhibited movements, etc.), 'beginning-of-line' won't move to the
+       actual beginning of the line and therefore won't skip over the
+       prompt.
+       * lisp/eshell/em-prompt.el (eshell-previous-prompt): Use
+       'forward-line' to go to the beginning of the line, even if it's
+       protected.  (Bug#39627)
+
+2020-02-20  Mattias Engdegård  <address@hidden>
+
+       Fix broken regexps
+
+       Incorrect escaping prevented these from working as intended.
+       Found by relint.
+
+       * lisp/progmodes/cc-defs.el (c-search-backward-char-property):
+       Add missing backslash.
+       * lisp/progmodes/simula.el (simula-mode):
+       Remove one backslash too many.
+
+2020-02-19  Paul Eggert  <address@hidden>
+
+       * Makefile.in (PREFERRED_BRANCH): Now emacs-27.
+
+2020-02-19  Paul Eggert  <address@hidden>
+
+       Fix bug when visiting euc-jp-encoded directories
+
+       Problem reported by Kan Sasaki (Bug#39672).
+       * src/fileio.c (Ffile_directory_p):
+       Encode filename before giving it to file_directory_p.
+       This fixes a typo introduced in
+       2019-09-18T02:18:14Z!address@hidden.
+
+2020-02-17  Paul Eggert  <address@hidden>
+
+       Clarify when fixnums are used.
+
+       * doc/lispref/numbers.texi (Integer Basics): Clarify.
+       Based on a suggestion by Noam Postavsky (Bug#39557#32).
+
+2020-02-17  Paul Eggert  <address@hidden>
+
+       Reorder discussion of integer basics
+
+       * doc/lispref/numbers.texi (Integer Basics): Put the fixnum/bignum
+       discussion at the end of the section, not at the start (Bug#39557).
+
+2020-02-17  Mattias Engdegård  <address@hidden>
+
+       Make OMake support slightly less expensive (bug#39595)
+
+       When run with -p or -P, OMake regurgitates error messages that
+       prevented further progress, indented by 6 spaces.  Use that fact
+       to ameliorate the modification done to other error message regexps.
+
+       * lisp/progmodes/compile.el (compilation-parse-errors):
+       When 'omake' is enabled, allow error messages to be indented by 0 or 6
+       spaces instead of any number of spaces, to avoid pathological
+       behaviour.
+       (compilation-error-regexp-alist-alist): Anchor the 'omake' pattern to
+       bol for performance.  Repair the 'ruby-Test::Unit' pattern, which
+       relied on the previously over-generous 'omake' hack.
+       * etc/compilation.txt (OMake): Add examples.
+       * test/lisp/progmodes/compile-tests.el 
(compile-tests--test-regexps-data)
+       (compile-test-error-regexps): Add test for OMake (indented error).
+
+2020-02-17  Mattias Engdegård  <address@hidden>
+
+       Speed up 'msft' and 'watcom' compilation error regexps
+
+       They have similar structure, and both suffer from being able to
+       match leading spaces in multiple ways which leads to bad performance
+       when backtracking (bug#39595).
+
+       * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
+       Improved 'msft' and 'watcom' regexps.
+
+2020-02-17  Mattias Engdegård  <address@hidden>
+
+       Speed up 'maven' compilation error message regexp
+
+       Anchor the regexp at line-start to prevent quadratic behaviour when
+       it doesn't match (bug#39595).  It's unclear whether the type tag, like
+       [ERROR], is always present; we keep it optional just in case.
+
+       * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
+       Rewrite 'maven' regexp, using rx for clarity.
+       * etc/compilation.txt (maven): More examples.
+       * test/lisp/progmodes/compile-tests.el
+       (compile-tests--test-regexps-data): No leading spaces; they seems to
+       stem from a misunderstanding in bug#11517.
+
+2020-02-16  Alan Mackenzie  <address@hidden>
+
+       Amend c-backward-sws better to handle multiline block comments
+
+       In particular, multiline comments lacking escaped newlines.
+
+       * lisp/progmodes/cc-engine.el (c-backward-sws): Whilst searching 
backward for
+       a putative beginning of macro, move back over block comments whose 
innards
+       lack escaped newlines.
+
+2020-02-16  Alan Mackenzie  <address@hidden>
+
+       Reformulate c-end-of-macro, handling multiline block comments better
+
+       * lisp/progmodes/cc-langs.el (c-last-open-c-comment-start-on-line-re): 
Comment
+       out.
+       (c-open-c-comment-on-logical-line-re): Remove.
+
+       * lisp/progmodes/cc-engine.el (c-end-of-macro): Handle multiline block
+       comments lacking escaped newlines using parse-partial-sexp rather than 
the
+       former variables removed from cc-langs.el.
+
+2020-02-15  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix unexec failure on macOS 10.15.4
+
+       * src/unexmacosx.c (unexec_regions_merge): Align region start addresses 
to
+       page boundaries and then merge regions.
+
+2020-02-15  Eli Zaretskii  <address@hidden>
+
+       Fix 'reverse-region' when less than one line is in region
+
+       * lisp/sort.el (reverse-region): Signal a user-error if the region
+       includes less than one full line, thus avoiding an inadvertent
+       deletion of text following the current line.  Fix the doc string.
+       Fix comments to start with a capital letter.  (Bug#39376)
+
+2020-02-15  Pieter van Oostrum  <address@hidden>
+
+       Correct default regexp in 'package-menu-hide-package'
+
+       * lisp/emacs-lisp/package.el (package-menu-mode-menu): Correct default
+       regexp, so it only selects the package at point.
+       (Bug#39436)
+
+2020-02-15  Pieter van Oostrum  <address@hidden>
+
+       Remove obsolete menu entry "Redisplay buffer"
+
+       * lisp/emacs-lisp/package.el (package-menu-mode-menu): Remove obsolete
+       menu entry "Redisplay buffer".
+       (package-menu-mode-menu): Menu entry "Refresh Package List":
+       make the doc string more accurate.
+       (Bug#39436)
+
+2020-02-14  Mattias Engdegård  <address@hidden>
+
+       Remove redundant 'msft' compilation error rule (bug#39595)
+
+       When the 'msft' rule was moved and modified, the old copy was left
+       in place by mistake.
+
+       * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
+       Remove old rule.
+
+2020-02-13  Stefan Monnier  <address@hidden>
+
+       * doc/lispref/variables.texi (special-variable-p): Clarify limits
+
+2020-02-13  Mattias Engdegård  <address@hidden>
+
+       Remove the optional KEEP-ORDER argument to regexp-opt
+
+       This argument was added for the 'or' clause in rx, but it turned out
+       to be a bad idea (bug#37659), and there seems to be little other use
+       for it.
+
+       * lisp/emacs-lisp/regexp-opt.el (regexp-opt): Remove KEEP-ORDER.
+       * doc/lispref/searching.texi (Regexp Functions):
+       * etc/NEWS: Remove it from the documentation.
+       * test/lisp/emacs-lisp/regexp-opt-tests.el (regexp-opt-test--match-all)
+       (regexp-opt-test--check-perm, regexp-opt-test--explain-perm)
+       (regexp-opt-keep-order, regexp-opt-longest-match): Simplify test.
+
+2020-02-13  Alan Mackenzie  <address@hidden>
+
+       Make after-change-functions called from call-process get the correct BEG
+
+       This fixes bug #39585.
+
+       * src/callproc.c (call_process): Supply the correct CHARPOS to
+       signal_after_change (twice).
+
+2020-02-13  Bastien  <address@hidden>
+
+       doc/misc/org.texi: Fix @dircategory
+
+       * doc/misc/org.texi: Fix @dircategory.
+
+2020-02-12  Eli Zaretskii  <address@hidden>
+
+       Fix display of minibuffer prompt in ido.el
+
+       * lisp/minibuffer.el (minibuffer--message-overlay-pos): New
+       function.
+       (set-minibuffer-message): Use it to determine where to show the
+       overlay with the temporary message.
+       * lisp/ido.el (ido-exhibit): Revert "Render Ido suggestions using
+       an overlay"; this restores the original code which inserted the
+       match-status information into the minibuffer, instead of
+       displaying it in an overlay with an after-string.  Put the special
+       'minibuffer-message' text property at the beginning of the
+       inserted text.  (Bug#39379)
+
+       * etc/NEWS:
+       * doc/lispref/display.texi (Displaying Messages):
+       * doc/lispref/text.texi (Special Properties): Document the
+       'minibuffer-message' text property and its effect.
+
+2020-02-12  Mattias Engdegård  <address@hidden>
+
+       rx: Use longest match for all-string 'or' forms (bug#37659)
+
+       Revert to the Emacs 26 semantics that always gave the longest match
+       for rx 'or' forms with only string arguments.  This guarantee was
+       never well documented, but it is useful and people likely have come to
+       rely on it.  For example, prior to this change,
+
+        (rx (or ">" ">="))
+
+       matched ">" even if the text contained ">=".
+
+       * lisp/emacs-lisp/rx.el (rx--translate-or): Don't tell regexp-opt to
+       preserve the matching order.
+       * doc/lispref/searching.texi (Rx Constructs): Document the
+       longest-match guarantee for all-string 'or' forms.
+       * test/lisp/emacs-lisp/rx-tests.el (rx-or): Update test.
+
+2020-02-11  Wolfgang Scherer  <address@hidden>
+
+       Make sure not to mark directories
+
+       * lisp/vc/vc-dir.el (vc-dir-mark-all-files):
+       Make sure not to mark directories (bug#37182).
+
+2020-02-11  Dmitry Gutov  <address@hidden>
+
+       vc-hg-dir-status-files: Fix when DIR is not repository root
+
+       * lisp/vc/vc-hg.el (vc-hg-dir-status-files):
+       Make sure it works correctly in a subdirectory of the repo root.
+       Bind default-directory to DIR and add 're: -I .' to the arguments
+       (bug#39380).
+
+2020-02-11  Alan Third  <address@hidden>
+
+       Revert "Fix display of working text on NS (Bug#23412, Bug#1453)"
+
+       This reverts commit ba042176d8931cdf9441b3b4919ec74b75019494.
+
+       Do not merge to master (bug#38851)
+
+2020-02-10  Alan Mackenzie  <address@hidden>
+
+       c-end-of-macro: Handle block coment lines with unescaped NLs correctly
+
+       * lisp/progmodes/cc-langs.el (c-last-open-c-comment-start-on-line-re): 
Make
+       obsolete, and supersede by ...
+       (c-open-c-comment-on-logical-line-re): New language variable.
+
+       * lisp/progmodes/cc-engine.el (c-end-of-macro): Inside macros, handle
+       multiline block comments whose line ends are not escaped correctly.
+
+2020-02-09  Eli Zaretskii  <address@hidden>
+
+       Fix set-fontset-font with ADD arg non-nil
+
+       * src/fontset.c (fontset_add): Fix off-by-one error at TO.
+       (Bug#39482)
+
+2020-02-09  Alan Mackenzie  <address@hidden>
+
+       Correct "different than" to "different from" where appropriate
+
+       (doc/emacs/screen.texi)
+       (doc/lispintro/emacs-lisp-intro.texi)
+       (doc/misc/calc.texi)
+       (doc/misc/gnus.texi)
+       (doc/misc/sc.texi)
+       (lisp/align.el)
+       (lisp/allout-widgets.el)
+       (lisp/allout.el)
+       (lisp/emacs-lisp/gv.el)
+       (lisp/font-lock.el)
+       (lisp/gnus/mm-util.el)
+       (lisp/mail/feedmail.el)
+       (lisp/mail/sendmail.el)
+       (lisp/mail/supercite.el)
+       (lisp/org/org-attach.el)
+       (lisp/progmodes/cc-langs.el)
+       (lisp/progmodes/idlw-shell.el)
+       (lisp/ps-print.el)
+       (lisp/simple.el)
+       (src/cmds.c)
+       (src/editfns.c)
+       (src/frame.h)
+       (src/regex-emacs.c)
+       (src/xfaces.c): Replace "different than" by "different from".
+
+2020-02-08  Eli Zaretskii  <address@hidden>
+
+       More accurate documentation of 'package-menu-hide-package'
+
+       * doc/emacs/package.texi (Package Menu): Improve the description
+       of the 'H' command.
+
+       * lisp/emacs-lisp/package.el (package-menu-mode-menu): More
+       accurate wording of the help-echo string.
+       (package-menu-hide-package): Make the doc string more accurate.
+       (Bug#39436)
+
+2020-02-06  Stefan Kangas  <address@hidden>
+
+       Revert "Signal user-error on duplicate package refresh"
+
+       That commit caused errors when the connection was dropped in the
+       middle of a package refresh.  To avoid any further issues this close
+       to the pretest, we simply remove this feature.  (Bug#39187)
+
+       Don't merge to master, where we will instead try to fix the bug.
+
+2020-02-05  Juri Linkov  <address@hidden>
+
+       Wrap some set-auto-mode calls with delay-mode-hooks (bug#39190)
+
+       * lisp/gnus/mm-view.el (mm-display-inline-fontify):
+       * lisp/vc/diff-mode.el (diff-syntax-fontify-props):
+       * lisp/vc/vc.el (vc-find-revision-no-save):
+       Add delay-mode-hooks around set-auto-mode calls
+       to not run hooks that might assume buffer-file-name
+       really associates buffer with a file.
+
+2020-02-04  Dmitry Gutov  <address@hidden>
+
+       Support ido-vertical-mode better
+
+       * lisp/ido.el (ido-exhibit):
+       Prepend a space to INF if it starts with a newline (bug#39379).
+
+2020-02-04  Juri Linkov  <address@hidden>
+
+       Fix faces tab-bar and tab-line.
+
+       * lisp/tab-bar.el (tab-bar) <defface>:
+       * lisp/tab-line.el (tab-line) <defface>:
+       Check for min-colors 88 instead of type x.
+
+2020-02-03  Robert Pluim  <address@hidden>
+
+       Cater for 3-argument version of pthread_setname_np
+
+       Fixes Bug#39363.
+
+       * configure.ac: Add check for 3-argument version of
+       pthread_setname_np.
+       * src/systhread.c (sys_thread_set_name)
+       [HAVE_PTHREAD_SETNAME_NP_3ARG]: Call pthread_setname_np with
+       3 arguments.
+
+2020-02-02  Mattias Engdegård  <address@hidden>
+
+       Clarify lexvar restrictions for add-to-ordered-list, add-to-history
+
+       * lisp/subr.el (add-to-ordered-list, add-to-history):
+       * doc/lispref/lists.texi (List Variables):
+       * doc/lispref/minibuf.texi (Minibuffer History):
+       Note in the doc string and manual that the variable arguments to
+       add-to-ordered-list and add-to-history cannot refer to a lexical
+       variable (bug#39373).
+
+2020-02-01  Mattias Engdegård  <address@hidden>
+
+       Replace add-to-list to lexical variable with push (bug#39373)
+
+       Since 'add-to-list', being a plain function, cannot access lexical
+       variables, such use must be rewritten for correctness.
+       (Some instances actually do work thanks to a compiler macro,
+       but it's not something code should rely on.)
+
+       * lisp/autoinsert.el (auto-insert-alist):
+       * lisp/cedet/mode-local.el (mode-local-print-bindings):
+       * lisp/net/tramp-cache.el (tramp-flush-connection-properties)
+       (tramp-list-connections):
+       * lisp/net/zeroconf.el (zeroconf-list-service-names)
+       (zeroconf-list-service-types, zeroconf-list-services):
+       * lisp/org/org.el (org-reload):
+       * lisp/whitespace.el (whitespace-report-region):
+       * test/lisp/emacs-lisp/map-tests.el (test-map-do):
+       Replace add-to-list with push.
+
+2020-02-01  Mattias Engdegård  <address@hidden>
+
+       Clarify add-to-list documentation (bug#39373)
+
+       While add-to-list often works with lexical variables, this is a hack
+       that isn't always effective; better tell the user not to try.
+
+       * doc/lispref/lists.texi (List Variables): Add a note about lexical
+       variables to the add-to-list description.  Fix the equivalent code.
+       * lisp/subr.el (add-to-list): Amend doc string.
+
+2020-02-01  Stephen Gildea  <address@hidden>
+
+       MH-E: alter content in mh-display-msg, not mh-show-mode
+
+       * lisp/mh-e/mh-show.el (mh-display-msg, mh-show-mode):  buffer-altering
+       code formerly in mh-show-mode is moved to the location in mh-display-msg
+       where mh-show-mode used to be called before the fix to MH-E bug #470
+       moved the call earlier.
+
+2020-02-01  Stephen Gildea  <address@hidden>
+
+       Update documentation for mh-show-mode-hook
+
+       * lisp/mh-e/mh-e.el, doc/misc/mh-e.texi (mh-show-mode-hook): Now that
+       the fix for MH-E bug #470 calls mh-show-mode-hook earlier, update the
+       documentation to no longer say that the message contents are available.
+
+2020-02-01  Stephen Gildea  <address@hidden>
+
+       Example goto-addr hook: MH-E already uses goto-address
+
+       * lisp/net/goto-addr.el, doc/emacs/misc.texi: Do not use MH-E as the
+       example of how to add a hook to goto-address, because MH-E calls
+       goto-address internally.
+
+2020-01-31  Ken Brown  <address@hidden>
+
+       Extend workaround for Cygwin O_PATH bug
+
+       * configure.ac (HAVE_CYGWIN_O_PATH_BUG): Extend to Cygwin versions
+       3.1.0 through 3.1.2.  (Bug#39371)
+
+2020-01-31  Paul Pogonyshev  <address@hidden>
+
+       * lisp/emacs-lisp/debug.el (debug): Merge the non-interactive cases
+
+       bug#38927
+
+       (cherry picked from commit 502059433ce0e9699eb73d21656ce6e9e127d63b)
+
+2020-01-31  Ansgar Burchardt  <address@hidden>
+
+       Add more blackboard bold characters to TeX input method
+
+       This patch adds all capital blackboard bold letters and those for "1"
+       and "2". Most characters are in common use in mathematics, but it does
+       not seem useful to exclude the few not widely used.
+
+       Reference: https://en.wikipedia.org/wiki/Blackboard_bold
+
+       * lisp/leim/quail/latin-ltx.el (latin-ltx--define-rules): Add all
+       the blackboard bold commands from AMSTeX.  (Bug#21103)
+
+2020-01-31  Yuan Fu  <address@hidden>
+
+       Protect against errors in gdb-mi.el handlers
+
+       * lisp/progmodes/gdb-mi.el (gdb-handle-reply): Handle errors
+       in 'handler-function' so the cleanup code after it runs
+       safely.  (Bug#39178)
+
+2020-01-31  Eli Zaretskii  <address@hidden>
+
+       Allow exiting the Python interpreter of a GDB session
+
+       * lisp/progmodes/gdb-mi.el (gdb-delchar-or-quit): Send EOF to GDB
+       if we are in an embedded interpreter.  This allows to exit from
+       "pi" cleanly.  (Bug#39140)
+
+2020-01-31  Federico Tedin  <address@hidden>
+
+       Ensure minibuffer input is added to history in read_minibuf
+
+       * src/minibuf.c (read_minibuf): Parse input string after saving
+       the string to the history list instead of before, in case parsing
+       signals an error or is interrupted by C-g.  (Bug#39291)
+
+2020-01-29  Juri Linkov  <address@hidden>
+
+       Tab-bar related fixes.
+
+       * lisp/cus-start.el (tab-bar-mode): Use dedicated group 'tab-bar'.
+
+       * lisp/tab-bar.el (tab-bar-history-mode): Add :group 'tab-bar'.
+       (tab-bar-get-buffer-tab): Add optional arg 'ignore-current-tab'.
+
+       * lisp/desktop.el (desktop-buffers-not-to-save-function): Add docstring.
+
+2020-01-29  Nicolas Petton  <address@hidden>
+
+       * admin/authors.el: Add missing entries.
+
+2020-01-27  Stephen Gildea  <address@hidden>
+
+       dns-mode-soa-auto-increment-serial: safe if symbolp
+
+       * lisp/textmodes/dns-mode.el (dns-mode-soa-auto-increment-serial):
+       Mark variable as safe as a file local variable when symbolp.
+
+2020-01-27  Juri Linkov  <address@hidden>
+
+       * lisp/wdired.el: Clean out isearch-filter-predicate (bug#37496)
+
+       * lisp/wdired.el (wdired-change-to-dired-mode): Use remove-function to
+       remove wdired-isearch-filter-read-only (whose value was added in
+       wdired-change-to-wdired-mode) from local value of 
isearch-filter-predicate.
+
+2020-01-27  Alan Mackenzie  <address@hidden>
+
+       Finish the documentation for c-noise-macro-{,with-parens-}names.
+
+       The doc strings and pertinent CC Mode manual page failed to mention 
that these
+       variables could also be regular expressions.  Amend them.
+
+       * lisp/progmodes/cc-vars.el (c-noise-macro-names)
+       (c-noise-macro-with-parens-names): Amend the doc strings.
+
+       * doc/misc/cc-mode.texi (Noise Macros): Amend the descriptions of the 
two
+       variables.
+
+2020-01-26  Mattias Engdegård  <address@hidden>
+
+       Correct regexp for flags in `format' doc string
+
+       * src/editfns.c (Fformat): Use the correct regexp for describing the
+       flags in a %-sequence (place the hyphen last).
+
+2020-01-26  Mattias Engdegård  <address@hidden>
+
+       Moderate recommendation to escape '(' in doc strings
+
+       Thanks to 57e2ca5c50 and related changes, opening brackets at the
+       leftmost column inside doc strings are no longer mistaken for the
+       start of a defun.
+
+       * doc/lispref/tips.texi (Documentation Tips): Clarify recommendation
+       and move it down the list.
+       * etc/NEWS: Announce.
+
+2020-01-26  Alan Mackenzie  <address@hidden>
+
+       Objective C Mode: Make c-forward-type work with "unsigned long", etc.
+
+       This allows the correct fontification of and correct functioning of C-c 
C-z
+       (c-display-defun-name) in ns_get_pixel in Emacs's src/nsimage.m.
+
+       * lisp/progmodes/cc-langs.el (c-primitive-type-prefix-kwds): For objc, 
use the
+       same value as for c and c++ rather than the default nil.
+
+2020-01-26  Marco Wahl  <address@hidden>
+
+       Fix help text about configure module support
+
+2020-01-25  Stefan Kangas  <address@hidden>
+
+       * doc/lispref/streams.texi (Output Functions): Improve indexing.
+
+2020-01-25  Stefan Kangas  <address@hidden>
+
+       Improve doc string of 'newline'
+
+       * lisp/simple.el (newline): Doc fix.  Move 'use-hard-newlines' down,
+       since it's less important than the meaning of the prefix argument, and
+       is less frequently used than 'electric-indent-mode' and
+       'auto-fill-mode'.  Change the wording to no longer call it an
+       option.
+
+2020-01-24  Paul Eggert  <address@hidden>
+
+       Improve doc of eq on bignums etc.
+
+       * doc/lispref/numbers.texi (Integer Basics):
+       * doc/lispref/objects.texi (Integer Type, Equality Predicates):
+       Be clearer about eq vs eql vs = on bignums, floats, and strings.
+
+2020-01-24  Mario Lang  <address@hidden>
+
+       Do not refer to obsolete alias
+
+2020-01-24  Alan Third  <address@hidden>
+
+       Remove EmacsOpenPanel and EmacsSavePanel (bug#38031)
+
+2020-01-24  Eli Zaretskii  <address@hidden>
+
+       * doc/emacs/files.texi (Auto Save Files): Improve indexing (bug#39259).
+
+2020-01-24  Eli Zaretskii  <address@hidden>
+
+       Fix inaccurate wording in the Emacs manual
+
+       * doc/emacs/custom.texi (Modifier Keys):
+       * doc/emacs/basic.texi (Inserting Text): Fix minor inaccuracies in
+       describing the 'Alt' modifier.  (Bug#39254)
+
+2020-01-23  Amin Bandali  <address@hidden>
+
+       Update ERC module URLs
+
+       * lisp/erc/erc-autoaway.el, lisp/erc/erc-button.el,
+       lisp/erc/erc-compat.el, lisp/erc/erc-fill.el, lisp/erc/erc-imenu.el,
+       lisp/erc/erc-join.el, lisp/erc/erc-lang.el, lisp/erc/erc-match.el,
+       lisp/erc/erc-pcomplete.el, lisp/erc/erc-ring.el,
+       lisp/erc/erc-spelling.el, lisp/erc/erc-stamp.el,
+       lisp/erc/erc-track.el: Update URL to friendlier form, over https.
+       * lisp/erc/erc-ibuffer.el: Remove URL to nonexistent page.
+       * lisp/erc/erc-list.el, lisp/erc/erc-log.el, lisp/erc/erc-notify.el,
+       lisp/erc/erc-replace.el, lisp/erc/erc-services.el,
+       lisp/erc/erc-sound.el, lisp/erc/erc-speedbar.el,
+       lisp/erc/erc-truncate.el: Add URL to corresponding EmacsWiki page.
+
+2020-01-23  Lars Ingebrigtsen  <address@hidden>
+
+       Minor doc string clarification in use-hard-newlines
+
+       * lisp/textmodes/paragraphs.el (use-hard-newlines): Clarify that
+       this minor mode isn't global (bug#20461).
+
+2020-01-23  Tino Calancha  <address@hidden>
+
+       Backport: Fix bug 39218
+
+       * lisp/simple.el (shell-command):
+       Ensure a shell command ending with `&' is run asynchronously.
+
+2020-01-22  Stefan Kangas  <address@hidden>
+
+       Prefer saying "Info manual" to "info page" in docs
+
+       Pointed out by Eli Zaretskii in:
+       https://debbugs.gnu.org/cgi/bugreport.cgi?bug=39215#14
+       * doc/emacs/Makefile.in:
+       * doc/lispintro/Makefile.in:
+       * doc/lispref/Makefile.in:
+       * doc/misc/Makefile.in:
+       * lisp/dired-x.el (top-level):
+       * lisp/gnus/gnus-sum.el (gnus-summary-mode):
+       * lisp/progmodes/cperl-mode.el (cperl-info-page): Doc fix; prefer
+       saying "Info manual" over "info page".
+
+2020-01-22  Juri Linkov  <address@hidden>
+
+       Tab-bar related finishing touches.
+
+       * lisp/tab-bar.el (tab-bar-tab-name-ellipsis): Use shorter name
+       instead of tab-bar-tab-name-truncated-ellipsis.
+       (tab-bar-new-tab-to) <defcustom>: Add 'function' option.
+       (tab-bar-new-tab-to) <function>: Use it.
+
+       * lisp/tab-line.el (tab-line-close-tab): Add missing arg 'tab' to
+       tab-line-close-tab-function funcall.
+
+2020-01-22  Alan Mackenzie  <address@hidden>
+
+       Make call_process call signal_after_change.  This fixes bug #38691.
+
+       Now, functions such as call-proess-region invoke after-change-functions
+       correctly.
+
+       * src/callproc.c (call_process): Call prepare_to_modify_buffer in a 
single
+       place, no longer delegating the task to insert_1_both, etc.  Call
+       signal_after_change in each of two code branches, such that
+       before-change-functions and after-change-functions are always called in
+       balanced pairs.
+
+2020-01-22  Paul Eggert  <address@hidden>
+
+       * lisp/simple.el: Minor fixes to commentary.
+
+2020-01-22  Eli Zaretskii  <address@hidden>
+
+       Fix a few typos
+
+       * etc/NEWS: Fix a typo.
+
+       * src/xdisp.c (try_window_reusing_current_matrix, try_window_id):
+       * src/dispnew.c (scrolling_window): Fix typos in comments.
+
+2020-01-22  Christophe Deleuze  <address@hidden>
+
+       Fix doc strings for image-dired rotation commands
+
+       * lisp/image-dired.el (image-dired-rotate-thumbnail-left)
+       (image-dired-rotate-thumbnail-right)
+       (image-dired-rotate-original-left)
+       (image-dired-rotate-original-right): Move the text in the doc
+       strings about rotating the originals to the correct commands
+       (bug#38928).
+
+2020-01-22  Dmitry Gutov  <address@hidden>
+
+       Render Ido suggestions using an overlay
+
+       * lisp/ido.el (ido--overlay): New variable.
+       (ido-exhibit): Render with 'after-string' on an overlay
+       (bug#38457).
+
+2020-01-22  Michael Albinus  <address@hidden>
+
+       * doc/misc/tramp.texi (Bug Reports): Encourage use of "emacs -Q".
+
+2020-01-21  Stefan Monnier  <address@hidden>
+
+       * lisp/vc/smerge-mode.el (smerge-match-conflict): Fix bug#38456
+
+       This situation is not an internal error, but a perfectly normal 
occurrence,
+       so a `cl-assert` is not right
+
+2020-01-21  Robert Pluim  <address@hidden>
+
+       Correct statement about ftcr and recommend HarfBuzz
+
+       * doc/lispref/frames.texi (Font and Color Parameters): Correct
+       statement about availability of ftcr in the presence of HarfBuzz.
+       Recommend HarfBuzz.
+
+2020-01-21  Eli Zaretskii  <address@hidden>
+
+       Avoid leaving artifacts when the system caret is used on w32
+
+       * src/xdisp.c (try_window_reusing_current_matrix, try_window_id):
+       * src/dispnew.c (scrolling_window) [HAVE_NTGUI]: If
+       w32-use-visible-system-caret is non-nil, disallow scrolling the
+       display are in scroll_run_hook.  This avoids copying traces of the
+       caret, about which Emacs knows nothing, and thus considers those
+       pixels show the default background.  (Bug#39188)
+       (gui_update_window_end): Block input only around part of the code,
+       as we did before this code was extracted from backend-specific
+       implementations.
+
+       * src/w32term.c (w32_update_window_begin, w32_update_window_end):
+       Only hide/show the caret when redisplaying the window where the
+       caret is shown.
+
+2020-01-21  Eli Zaretskii  <address@hidden>
+
+       Improve display of temporary echo messages
+
+       * lisp/minibuffer.el (set-minibuffer-message): Fix cursor position
+       for the temporary display of an echo-area message when minibuffer
+       is active.  Ensure the message is visible even if the end of the
+       completion candidates presented by the likes of Icomplete mode is
+       not visible due to its length, under resize-mini-windows = nil.
+       (Bug#38457)
+
+2020-01-20  Juri Linkov  <address@hidden>
+
+       * lisp/menu-bar.el: Remove desktop-save-mode from release branch 
(bug#37594)
+
+2020-01-20  Juri Linkov  <address@hidden>
+
+       Allow optional truncation of tab names in tab-bar and tab-line 
(bug#38693)
+
+       * lisp/tab-line.el (tab-line-tab-name-truncated-max): New defcustom.
+       (tab-line-tab-name-truncated-buffer): Use 
tab-line-tab-name-truncated-max
+       consistently with similar options in tab-bar.el.
+       (tab-line-tabs-limit): Remove variable.
+       (tab-line-tabs-window-buffers): Remove use of tab-line-tabs-limit
+       that was an experimental feature before horizontal scrolling was 
implemented.
+       (tab-line-close-tab-function): Rename from tab-line-close-tab-action
+       and allow a customizaed function as option.
+       (tab-line-close-tab): Call function if tab-line-close-tab-function
+       is customized to a function.
+
+       * lisp/tab-bar.el (tab-bar-tab-name-function): Add option
+       tab-bar-tab-name-truncated.
+       (tab-bar-tab-name-truncated-max): New defcustom.
+       (tab-bar-tab-name-truncated-ellipsis): New variable.
+       (tab-bar-tab-name-truncated): New function.
+
+2020-01-20  Juri Linkov  <address@hidden>
+
+       Small fixes in documentation.
+
+       * doc/emacs/dired.texi (Operating on Files): Fix name of 
dired-vc-rename-file.
+
+       * doc/emacs/fixit.texi (Undo): Update new values of undo limits
+       doubled in bug#31104.
+
+2020-01-20  Robert Pluim  <address@hidden>
+
+       Improve explanation of available font backends under X
+
+       * doc/emacs/frames.texi (Font and Color Parameters): Clarify that you 
can't
+       have HarfBuzz and non-HarfBuzz at the same time for xft and cairo
+       font backends.
+
+2020-01-20  Pip Cet  <address@hidden>
+
+       Clear output data pointer on NS
+
+       * src/nsterm.m (ns_free_frame_resources): Clear the output data
+       pointer to prevent attempting to reuse freed resources (Bug#38748).
+
+2020-01-20  Michael Albinus  <address@hidden>
+
+       * admin/release-process: Adapt bug numbers for release critical bugs.
+
+       Mention debbugs-gnu-emacs-release-blocking-reports.
+
+2020-01-20  Mattias Engdegård  <address@hidden>
+
+       Fix shell-tests failures
+
+       * test/lisp/shell-tests.el (shell-tests-completion-before-semi):
+       Go back to actually testing completion before semicolon.
+       (shell-tests-completion-after-semi): Test completion after semicolon,
+       correctly (bug#39075).
+
+2020-01-20  Mattias Engdegård  <address@hidden>
+
+       * test/lisp/simple-tests.el: Full path to Emacs binary (bug#39067).
+
+2020-01-19  Juri Linkov  <address@hidden>
+
+       * lisp/tab-line.el (tab-line-auto-hscroll): Fix for long tab names.
+
+       Check for nil value returned by previous-single-property-change that
+       happens when tab name is longer than window width.
+
+2020-01-19  Juri Linkov  <address@hidden>
+
+       * lisp/menu-bar.el (menu-bar-options-menu): Add desktop-save-mode 
(bug#37594)
+
+2020-01-19  Tino Calancha  <address@hidden>
+
+       Fix shell-command-dont-erase-buffer feature
+
+       * lisp/simple.el (shell-command-dont-erase-buffer):
+       The default, nil, is backward compatible, i.e. it erases the buffer
+       only if the output buffer is not the current one; the new value 'erase
+       always erases the output buffer.
+       Update docstring.
+
+       (shell-command-save-pos-or-erase):
+       Add optional arg output-to-current-buffer.
+       Rename it so that it's not internal.  All callers updated.
+
+       (shell-command-set-point-after-cmd): Rename it so that it's not 
internal.
+       All callers updated.
+       Adjust it to cover a side case.
+
+       (shell-command): Adjust logic to match the specification (Bug#39067).
+       Enable the feature when the output buffer is the current one.
+
+       (shell-command-on-region): Little tweak to follow
+       `shell-command-dont-erase-buffer' specification.
+
+       * test/lisp/simple-tests.el (with-shell-command-dont-erase-buffer):
+       Add helper macro.
+       (simple-tests-shell-command-39067)
+       (simple-tests-shell-command-dont-erase-buffer): Add tests.
+
+       * doc/emacs/misc.texi (Single Shell): Update manual.
+
+       * etc/NEWS (Single shell commands): Announce the change.
+
+2020-01-18  Stefan Kangas  <address@hidden>
+
+       Remove reference to Emacs 19 from FAQ
+
+       * doc/misc/efaq.texi (Emacs ignores X resources): Remove reference to
+       Emacs 19.
+
+2020-01-18  Stefan Kangas  <address@hidden>
+
+       Doc fixes in package.el
+
+       * lisp/emacs-lisp/package.el (package-process-define-package)
+       (package-generate-description-file): Doc fixes.
+       (package-generate-autoloads, package--write-file-no-coding)
+       (package--archive-file-exists-p, package-desc-status): Add doc
+       strings.
+
+2020-01-18  Eric Abrahamsen  <address@hidden>
+
+       Ensure that gnus-summary-attach-article finds the right articles
+
+       * lisp/gnus/gnus-msg.el (gnus-summary-attach-article): Before
+       iterating over the articles to attach, first close any open
+       article. Using `set-buffer' required `gnus-summary-select-article' to
+       re-set the buffer every time, meaning we never got off the original
+       article.
+
+       (cherry picked from commit 447bb1313a6abc07776d93ee78cd976ab43856e5)
+
+2020-01-18  Stefan Kangas  <address@hidden>
+
+       Remove some doc references to old Emacs versions
+
+       * doc/misc/efaq.texi (Horizontal scrolling): Remove section
+       only relevant to Emacs 21 or older.
+       (Repeating commands, Editing MS-DOS files):
+       * lisp/progmodes/gdb-mi.el:
+       * lisp/woman.el: Doc fix - remove some references to Emacs 20 and older.
+
+2020-01-18  Pieter van Oostrum  <address@hidden>  (tiny change)
+
+       Fix infloop in shell.el
+
+       * test/lisp/shell-tests.el (shell-tests-completion-before-semi):
+       Amend the shell.el tests to catch errors such as bug#39057.
+
+       * lisp/shell.el (shell--parse-pcomplete-arguments): Skip the
+       semi-colon as well.  This avoids inflooping when a semi-colon is
+       typed by the user.  (Bug#39057)
+
+2020-01-17  Amin Bandali  <address@hidden>
+
+       Fix erc-notifications-notify for non-PRIVMSGs, broken in last commit
+
+       * lisp/erc/erc-desktop-notifications.el (erc-notifications-notify):
+       Take optional argument `privp', to be non-nil when notifying for a
+       PRIVMSG.  This is to work around bug introduced in last commit, as
+       `erc-get-buffer' may return nil for non-PRIVMSG cases.
+       (erc-notifications-PRIVMSG): Call erc-notifications-notify with
+       non-nil `privp', as described above.
+
+2020-01-17  Amin Bandali  <address@hidden>
+
+       Fix the notification action for PRIVMSG in erc-notifications-notify
+
+       * lisp/erc/erc-desktop-notifications.el (erc-notifications-notify):
+       explicitly request the buffer for `nick', rather than relying on
+       (current-buffer) returning it.  That works fine for the very first
+       PRIVMSG sent by `nick', but ERC seems to handle subsequent PRIVMSGs
+       differently, where (current-buffer) would return the server buffer
+       rather than the existing buffer for PRIVMSGs from `nick'.
+
+2020-01-17  Amin Bandali  <address@hidden>
+
+       ERC: New maintainer.
+
+       * admin/MAINTAINERS: Add entries for Amin Bandali, new maintainer for
+       ERC, and interested in maintaining Eshell.
+       * lisp/erc/*: New maintainer.
+
+2020-01-17  Dmitry Gutov  <address@hidden>
+
+       Honor tags-case-fold-search during xref identifer completion
+
+       * etc/NEWS: New entry.
+
+       * lisp/progmodes/etags.el (tags-case-fold-search):
+       Mark as safe-local.
+       (find-tag--completion-ignore-case):
+       Extract from tags-completion-at-point-function, find-tag-tag and
+       etags--xref-find-definitions.
+       (xref-backend-identifier-completion-ignore-case):
+       New method. Use it here as well.
+
+       * lisp/progmodes/xref.el
+       (xref-backend-identifier-completion-ignore-case): New generic.
+       (xref--read-identifier): Use it here.
+
+2020-01-17  Eli Zaretskii  <address@hidden>
+
+       Fix wording and punctuation of a recent commit
+
+       * lisp/textmodes/ispell.el (ispell-correct-p): Doc fix.
+       * lisp/emacs-lisp/checkdoc.el (checkdoc-ispell-init): Fix
+       capitalization and punctuation of comments.
+
+2020-01-17  Damien Cassou  <address@hidden>
+
+       Add unattended spell-checking to checkdoc
+
+       This commit makes checkdoc capable of spell-checking even when the
+       user isn't using it interactively.  When TAKE-NOTES is non-nil,
+       checkdoc will run spell-checking (with ispell) and report spelling
+       mistakes.
+
+       Fixes: (bug#38583).
+
+       * lisp/textmodes/ispell.el (ispell-word): Extract part of it to
+       `ispell--run-on-word`.
+       (ispell--run-on-word): New function, extracted from `ispell-word`.
+       (ispell-error-checking-word): New function.
+       (ispell-correct-p): New function.  Use `ispell--run-on-word` and
+       `ispell-error-checking-word`.
+       * lisp/emacs-lisp/checkdoc.el (checkdoc-current-buffer): Pass
+       TAKE-NOTES to `checkdoc-start`.
+       (checkdoc-continue): Pass TAKE-NOTES to `checkdoc-this-string-valid`.
+       (checkdoc-this-string-valid): Add optional argument TAKE-NOTES and
+       pass it to `checkdoc-this-string-valid-engine`.
+       (checkdoc-this-string-valid-engine): Add optional argument TAKE-NOTES
+       and pass it to `checkdoc-ispell-docstring-engine`.
+       (checkdoc-ispell-init): Call `ispell-set-spellchecker-params` and
+       `ispell-accept-buffer-local-defs`.  These calls are required to
+       properly use ispell.  The problem went unnoticed until now because
+       checkdoc was only using ispell through the high-level command
+       `ispell-word` which takes care of all the initialization for the user.
+       (checkdoc-ispell-docstring-engine): Add optional argument TAKE-NOTES
+       to force reporting of spell-checking errors.  Throw error
+       when (checkdoc-ispell-init) fails configuring ispell.  Replace a
+       few (if cond nil body) with (unless cond body). Replace (let ((var
+       nil))) with (let (var)).  Replace (if (not (eq checkdoc-autofix-flag
+       'never)) body) with just body because `checkdoc-autofix-flag` is
+       checked at the beginning of the function.
+
+       (cherry picked from commit 25adbc4a5ecc3e16625c0171607e3153bbdf7ab1)
+
+2020-01-17  Lin Sun  <address@hidden>
+
+       Fix the error message from makefile-move-to-macro
+
+       * lisp/cedet/ede/makefile-edit.el (makefile-macro-file-list):
+       regexp-quote the param in makefile-move-to-macro (Bug#39094).
+
+       (cherry picked from commit a36495da1ec1419998c17fd64fb7439eaf940f36)
+
+2020-01-16  Stefan Kangas  <address@hidden>
+
+       Document feature requests in the Emacs manual
+
+       * doc/emacs/trouble.texi (Contributing): Document how to send feature
+       requests.  (Bug20697)
+
+2020-01-16  Stefan Monnier  <address@hidden>
+
+       * lisp/minibuffer.el (read-file-name-default): Fix bug#39057
+
+2020-01-16  Robert Pluim  <address@hidden>
+
+       Make emacs prefer an existing ~/.emacs.d to an existing XDG location
+
+       * doc/emacs/custom.texi (Find Init): Update description of how Emacs
+       finds its init file directory and the interaction with
+       $XDG_CONFIG_HOME
+       (Early Init File): Correct XDG location of early-init.el
+
+       * etc/NEWS: Update description to make it clear the ~/.emacs.d is
+       preferred, even if the XDG location exists.
+
+       * lisp/startup.el: Prefer ~/.emacs.d even if the XDG location exists.
+
+       * lib-src/emacsclient.c (open_config): Prefer home directory the XDG
+       location.
+
+2020-01-16  Robert Pluim  <address@hidden>
+
+       Describe --with-cairo non-support for bitmapped fonts.
+
+       * etc/NEWS: Mention Pango's removal of support for bitmapped fonts.
+
+2020-01-16  Robert Pluim  <address@hidden>
+
+       Mention GTK font chooser changes in NEWS
+
+       * etc/NEWS: Mention GTK font chooser changes.
+
+2020-01-15  Glenn Morris  <address@hidden>
+
+       f90: handle F2008 module function
+
+       * lisp/progmodes/f90.el (f90-font-lock-keywords-1)
+       (f90-looking-at-program-block-start):
+       Handle F2008 "module function" and subroutine.  (Bug#38415)
+       * test/lisp/progmodes/f90-tests.el (f90-test-bug38415): New test.
+
+2020-01-15  Juri Linkov  <address@hidden>
+
+       Move shell-related menu items to "Shell Commands" submenu (bug#37594)
+
+       * lisp/menu-bar.el (menu-bar-shell-commands-menu): New variable.
+       (menu-bar-tools-menu): Move shell-related menu items to
+       'menu-bar-shell-commands-menu' and add menu items for
+       'async-shell-command' and 'shell'.
+
+2020-01-15  Stefan Kangas  <address@hidden>
+
+       * admin/notes/font-backend: Remove outdated file. (Bug#34663)
+
+2020-01-15  Stefan Kangas  <address@hidden>
+
+       Declare the ftx font backend driver obsolete
+
+       * etc/NEWS: Document that the ftx font driver is now
+       obsolete and will be removed in Emacs 28.  (Bug#34663)
+
+2020-01-15  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix build failure with --with-cairo --without-png
+
+       * src/image.c: Don't enable PNG section only by USE_CAIRO.
+
+2020-01-14  Stefan Kangas  <address@hidden>
+
+       Add new node "Package Statuses" to manual
+
+       * doc/emacs/emacs.texi (Top):
+       * doc/emacs/package.texi (Package Menu): New node "Package
+       Statuses".  (Bug#29420)
+
+2020-01-14  Juri Linkov  <address@hidden>
+
+       * lisp/isearch.el: Fix corner cases of isearch-lazy-count.
+
+       * lisp/isearch.el (isearch-mode): Reset isearch-lazy-count-current
+       and isearch-lazy-count-total to nil, so when isearch-mode is started,
+       there should be no counts from previous Isearch.
+       (isearch-lazy-highlight-new-loop): Call isearch-message after resetting
+       lazy-count variables only when isearch-mode is started.  This avoids
+       the problem of inappropriate calls of isearch-message-function
+       when query-replace in the minibuffer performs lazy-highlighting that
+       used to call minibuffer-history-isearch-message unnecessarily.
+
+2020-01-14  Robert Pluim  <address@hidden>
+
+       Document spacing issues with Xft for some fonts
+
+       * etc/PROBLEMS: Document issues with Xft and some recent fonts 
(Bug#39082).
+
+2020-01-13  Mattias Engdegård  <address@hidden>
+
+       Always use lexical-binding in lisp-interaction-mode (bug#38835)
+
+       * lisp/progmodes/elisp-mode.el (lisp-interaction-mode):
+       Set lexical-binding.
+       * lisp/startup.el (command-line, startup--get-buffer-create-scratch):
+       Don't set lexical-binding here.
+       * doc/lispref/variables.texi:
+       * etc/NEWS:
+       Make it clear that lisp-interaction-mode uses lexical-binding.
+
+2020-01-13  Robert Pluim  <address@hidden>
+
+       vc-dir: ensure we don't use a pager with git
+
+       * lisp/vc/vc-git.el (vc-git--call): Call git with '--no-pager' to
+       avoid hangs caused by remote pager settings (Bug#38688).
+
+2020-01-12  Amin Bandali  <address@hidden>
+
+       Improve ERC's matching of nicks and URLs (bug#38257)
+
+       * lisp/erc/erc-{button,match}.el (erc-{button,match}-syntax-table):
+       Omit (, ), and '; as they're not valid nick characters, per RFC 2812
+       section 2.3.1.  This enables correct matching/highlighting of nicks
+       when they're surrounded by parens, like (nick), and when adjacent to
+       an apostrophe, like nick's.
+       * lisp/erc/erc-button.el (erc-button-url-regexp): Use the regexp from
+       browse-url-button-regexp, which among other things, seems to handle
+       surrounding pair of parens better.
+
+2020-01-12  Juri Linkov  <address@hidden>
+
+       Handle tab-bar clicks on a GPM-capable console.
+
+       * src/term.c (handle_one_term_event): Call tty_handle_tab_bar_click.
+
+       * src/xdisp.c (tty_handle_tab_bar_click): Force reset of up_modifier bit
+       from the event modifiers.
+
+       * lisp/tab-line.el (tab-line-tab-current): No need to use inverse-video
+       on console/xterm because the selected tab already uses inverse-video.
+
+2020-01-12  Alan Third  <address@hidden>
+
+       ;* etc/TODO: Update.
+
+2020-01-11  Eli Zaretskii  <address@hidden>
+
+       Update Acknowledgments sections
+
+       * doc/emacs/ack.texi (Acknowledgments):
+       * doc/emacs/emacs.texi (Acknowledgments): Update for Emacs 27.
+
+2020-01-11  Eli Zaretskii  <address@hidden>
+
+       Update Antinews in ELisp manual
+
+       * doc/lispref/anti.texi (Antinews): Rewrite for Emacs 27.
+       * doc/lispref/elisp.texi (Top): Update the top-level menu item for
+       Antinews.
+
+2020-01-11  Richard Stallman  <address@hidden>
+
+       Improve wording in the ELisp manual
+
+       * doc/lispref/modes.texi (Setting Hooks): Improve and clarify
+       wording.  (Bug#38818)
+
+2020-01-11  Mauro Aranda  <address@hidden>
+
+       Reset to the standard value when reverting session's customizations
+
+       * lisp/cus-edit.el (custom-variable-reset-saved): When there is no
+       previous saved value, reset to the standard value.  (Bug#15214)
+
+2020-01-11  Mauro Aranda  <address@hidden>
+
+       Fix saving multiple themes
+
+       * lisp/custom.el (enable-theme): Be side-effect free when modifying
+       custom-enabled-themes.  (Bug#19999)
+
+2020-01-10  Mattias Engdegård  <address@hidden>
+
+       Calc: fix interval entry (bug#39040)
+
+       * lisp/calc/calc.el (calcDigit-start): Initialise calc-prev-char to
+       something more reasonable, so that non-algebraic entry of intervals
+       whose start is a single digit, like (1..10), works properly.
+       Reported by Michel Schinz.
+
+2020-01-10  Eli Zaretskii  <address@hidden>
+
+       Fix horizontal line display in Custom buffers
+
+       * lisp/cus-edit.el (custom-group-value-create): Insert a newline
+       before calling 'custom-group--draw-horizontal-line'.  (Bug#39074)
+
+2020-01-10  Mattias Engdegård  <address@hidden>
+
+       flymake: fix typo in variable binding (bug#38752)
+
+       This mistake was found by an experimental elisp optimiser.
+
+       * lisp/progmodes/flymake-proc.el (flymake-proc-stop-all-syntax-checks):
+       Add missing brackets.
+
+2020-01-10  Eli Zaretskii  <address@hidden>
+
+       Update Antinews in the Emacs manual
+
+       * doc/emacs/anti.texi (Antinews): Rewrite for Emacs 27.
+       * doc/emacs/emacs.texi (Top): Update the "Antiniews" item of the
+       top-level menu.
+
+2020-01-09  Väinö Järvelä  <address@hidden>  (tiny change)
+
+       Use NSNumber instead of BOOL (bug#39047)
+
+       * src/nsfns.m (ns_set_represented_filename): Use correct type.
+
+2020-01-09  João Távora  <address@hidden>
+
+       Add comment on fido-mode's file-sorting semantics
+
+       * lisp/icomplete.el (icomplete--sorted-completions): Add comment.
+
+2020-01-09  João Távora  <address@hidden>
+
+       Consider non-string minibuffer-default in icomplete
+
+       (Bug#38992)
+
+       * lisp/icomplete.el (icomplete--sorted-completions): Consider
+       non-string minibuffer-default.
+
+2020-01-08  Eli Zaretskii  <address@hidden>
+
+       Fix another compilation problem in a build without threads
+
+       * src/systhread.c (sys_thread_set_name) [!THREADS_ENABLED]: Add
+       a trivial implementation.
+
+2020-01-08  Eli Zaretskii  <address@hidden>
+
+       Fix build without threads
+
+       * src/systhread.c (sys_thread_create) [!THREADS_ENABLED]: Update
+       the function's signature to match prototype.  Reported by Glenn
+       Morris <address@hidden>.  (Bug#38632)
+
+2020-01-08  Eli Zaretskii  <address@hidden>
+
+       Fix compression of directories in Dired
+
+       This fixes comporession and uncompression of directories on
+       MS-Windows, but also on other systems.  The original code used
+       ":" as the REGEXP of the directory entry in
+       dired-compress-file-suffixes, which on Windows always matched any
+       absolute file name, and can also match unusual file names on Posix
+       hosts.  This false match would cause dired-compress-file to act as
+       if we are decompressing a directory, but use a command suitable
+       for compression, which would fail in interesting ways.
+       We now use a REGEXP that can never match any valid file name.
+
+       * lisp/dired-aux.el (dired-compress-file-suffixes): Make the
+       "compress directory" entry's REGEXP really fail to match any valid
+       file name.
+       (dired-compress-file): Adapt to the change in
+       dired-compress-file-suffixes.  (Bug#39024)
+       (dired-compress): If the current file is a directory, or if the
+       uncompressed file is a directory, don't remove the original from
+       the listing, since it is left in the filesystem.
+
+2020-01-08  Michael Albinus  <address@hidden>
+
+       Further enhancement on `tramp-file-local-name'
+
+       * lisp/net/tramp.el (tramp-file-local-name): Call `file-local-name'
+       if NAME is not a Tramp file name.
+
+2020-01-07  Alan Mackenzie  <address@hidden>
+
+       Objective C Mode imenu: cease recognizing "functions" within comments, 
etc.
+
+       This fixes bug #38749.
+
+       * lisp/progmodes/cc-menus.el (cc-imenu-objc-function): Put a 
c-literal-limits
+       test around the innards of the main re-search-backward loop.
+
+2020-01-07  Mattias Engdegård  <address@hidden>
+
+       Fix BSD and macOS builds w.r.t. pthread_setname_np (bug#38632)
+
+       pthread_setname_np takes only a single argument on BSD and macOS,
+       and affects the current thread only.
+
+       * configure.ac: Add check for single-argument pthread_setname_np
+       * src/systhread.c (sys_thread_set_name): New (w32 and pthread versions).
+       (sys_thread_create): Remove name argument and name-setting.
+       (w32_beginthread_wrapper): Remove name-setting.
+       * src/systhread.h (sys_thread_create, sys_thread_set_name):
+       Update prototypes.
+       * src/thread.c (run_thread): Call sys_thread_set_name.
+       (Fmake_thread): Adapt call to sys_thread_create.
+       * src/thread.h (struct thread_state): Adjust comment.
+
+2020-01-07  Robert Pluim  <address@hidden>
+
+       Scale top-left coordinates in display-monitor-attributes-list
+
+       When using multiple monitors, and HiDPI, the top-left coordinates of
+       the monitors need to be adjusted, not just the width and height
+       (Bug#31223).
+
+       * src/xfns.c (Fx_display_monitor_attributes_list): Scale top-left
+       coordinates.
+
+2020-01-07  Dmitry Gutov  <address@hidden>
+
+       xref-matches-in-files: Big Tramp speed-up
+
+       * lisp/progmodes/xref.el (xref-matches-in-files):
+       Greatly improve performance with remote files using Tramp
+       (bug#34343).
+
+2020-01-07  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-file-local-name): Remove `save-match-data'.
+
+2020-01-06  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix rendering bug due to unsynchronized cairo surface size (Bug#38497)
+
+       * src/xterm.c (handle_one_xevent) <ConfigureNotify> [USE_CAIRO && 
!USE_GTK]:
+       Call x_cr_update_surface_desired_size for a related frame as a fallback.
+
+2020-01-06  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Avoid crash by access to cleared img->pixmap->data/img->mask->data 
(Bug#38774)
+
+       * src/image.c (prepare_image_for_display) [USE_CAIRO]: Call 
IMAGE_BACKGROUND
+       and IMAGE_BACKGROUND_TRANSPARENT.
+
+2020-01-06  Eli Zaretskii  <address@hidden>
+
+       Avoid assertion violations in very small-height windows
+
+       * src/xdisp.c (try_cursor_movement, redisplay_window)
+       (row_containing_pos): Skip tab-line glyph rows in addition to
+       header-line rows, when working on the top-most glyph row of a
+       window.  This avoids assertion violations in set_cursor_from_row.
+       (Bug#38966)
+
+2020-01-06  Robert Pluim  <address@hidden>
+
+       Use pthread_setname_np to set thread name
+
+       * configure.ac: Remove check for sys/prctl.h and prctl, check for
+       pthread_setname_np instead.
+
+       * src/systhread.c: Remove sys/prctl.h include.
+       (sys_thread_create) [HAVE_PTHREAD_SETNAME_NP]: Use pthread_setname_np
+       to set the name of the newly created thread (Bug#38632).
+
+       * src/thread.c (Fmake_thread): Use ENCODE_SYSTEM instead of
+       ENCODE_UTF_8 on the thread name.
+
+2020-01-05  Paul Eggert  <address@hidden>
+
+       Move “Fix some broken conditional forms” to master
+
+       Revert 2020-01-04T19:17:12Z!address@hidden
+       which recently I installed into the emacs-27 branch by mistake.
+       These patches are now on master instead (via merging).
+       Do not merge to master.
+
+2020-01-05  Martin Rudalics  <address@hidden>
+
+       Improve doc-strings of 'quit-window' and 'quit-restore-window' 
(Bug#38819)
+
+       * lisp/window.el (quit-restore-window, quit-window): Make
+       doc-strings more consistent; add references to corresponding
+       section of the Elisp manual (Bug#38819).
+
+2020-01-04  Stephen Gildea  <address@hidden>
+
+       Fix MH-E bug #470: Show buffer discards text properties
+
+       * lisp/mh-e/mh-show.el (mh-display-msg): reset font lock and set
+       major mode *before* formatting message content.  This changes lets
+       fonts work when the Show buffer is reused for a new message.
+       (mh-show-mode): no longer set buffer-read-only; that is better done
+       by mh-display-msg after setting all content.
+
+2020-01-04  Paul Eggert  <address@hidden>
+
+       Fix some broken conditional forms
+
+       Problem reported by Mattias Engdegård in:
+       https://lists.gnu.org/r/emacs-devel/2020-01/msg00088.html
+       * lisp/cedet/ede/cpp-root.el (ede-create-lots-of-projects-under-dir):
+       Remove this quick hack, which didn’t do anything anyway.
+       * lisp/cedet/ede/pconf.el (ede-proj-configure-test-required-file):
+       * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print-col):
+       * lisp/net/nsm.el (nsm-check-tls-connection):
+       Use ‘when’ rather than bypassing it.  This doesn’t affect behavior
+       and is better style.
+       * lisp/cedet/srecode/semantic.el (srecode-semantic-handle-:tag):
+       Fix typo that suppressed an error.
+       * lisp/filesets.el (filesets-run-cmd): Fix typo that mishandled spacing.
+       * lisp/gnus/gnus-cloud.el (gnus-cloud-update-newsrc-data):
+       Fix typo that caused “GROUP has older different info in the cloud
+       as of DATE, update it here?” prompt result to always be treated as
+       “yes”.
+       * lisp/gnus/mml-smime.el (mml-smime-openssl-encrypt): Simplify,
+       since smime-encrypt-buffer signals error on failure.
+       * lisp/international/titdic-cnv.el (tsang-quick-converter): Simplify.
+       The conversion of this file to utf-8-emacs in
+       2019-01-08T02:18:40Z!address@hidden removed the
+       distinction between Big5 and CNS fulltitles in the generated docstring.
+       * lisp/org/org-agenda.el (org-agenda-show-and-scroll-up):
+       * lisp/textmodes/table.el (table--generate-source-cell-contents):
+       Simplify by removing useless code.
+       * lisp/org/ox-odt.el (org-odt--format-timestamp): Fix typo that
+       always output time-of-day even when the timestamp lacked it.
+
+2020-01-04  Michael Albinus  <address@hidden>
+
+       Fix a scoping error in tramp-sudoedit.el
+
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-file-system-info):
+       Fix a scoping error.
+
+2020-01-04  Mattias Engdegård  <address@hidden>
+
+       * lisp/autorevert.el (auto-revert-notify-handler): Fix bracketing.
+
+2020-01-04  Martin Rudalics  <address@hidden>
+
+       Fix typo in 'window_box_height'
+
+       * src/xdisp.c (window_box_height): Add missing 'else'.
+
+2020-01-03  Mattias Engdegård  <address@hidden>
+
+       Install g++ for CEDET tests
+
+       * .gitlab-ci.yml (before_script): Add g++.
+       Backport from master.
+
+2020-01-03  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el: Fix typos.
+
+       * lisp/net/tramp.el (tramp-file-local-name): New defun.  (Bug#34343)
+
+2020-01-03  Michael Albinus  <address@hidden>
+
+       Adapt commentary in Tramp persistency file
+
+       * lisp/net/tramp-cache.el (tramp-dump-connection-properties):
+       Adapt commentary in `tramp-persistency-file-name'.
+
+2020-01-03  Michael Albinus  <address@hidden>
+
+       Change Tramp version to 2.4.3.27.1
+
+       * doc/misc/trampver.texi:
+       * lisp/net/trampver.el: Change version to "2.4.3.27.1".
+       (customize-package-emacs-version-alist): Add Tramp version
+       integrated in Emacs 27.1.
+
+2020-01-02  Eli Zaretskii  <address@hidden>
+
+       Fix redisplay when mode-line-format changes mode-line's height
+
+       * lisp/frame.el (top-level): Add mode-line-format,
+       tab-line-format, and header-line-format to the list of variables
+       that should trigger an immediate redisplay of the buffer's
+       window.  This fixes redisplay of windows when the mode line
+       changes its height.
+
+       * src/xdisp.c (window_box_height): Use the window's
+       mode_line_height, tab_line_height, and header_line_height fields
+       in preference to CURRENT_MODE_LINE_HEIGHT,
+       CURRENT_TAB_LINE_HEIGHT, and CURRENT_HEADER_LINE_HEIGHT,
+       respectively.  This fixes display of vertical scroll bar when the
+       height of the window's mode line changes.
+       * src/dispnew.c (adjust_glyph_matrix): When resizing a window's
+       matrix, reset the mode_line_p flag of the previous mode-line row,
+       so that the window_box_height, CURRENT_MODE_LINE_HEIGHT, and their
+       ilk won't use stale info.  (Bug#38828)
+
+2020-01-02  Eli Zaretskii  <address@hidden>
+
+       * src/fileio.c (Fwrite_region): Improve the doc string.
+
+2020-01-02  Martin Rudalics  <address@hidden>
+
+       Fix removal of frame decorations on Windows (Bug#38705)
+
+       * src/w32fns.c (w32_set_undecorated): Actualize
+       f->output_data.w32->dwStyle for subsequent calls of
+       AdjustWindowRect (Bug#38705).
+       * src/w32term.h (struct w32_output): Add comment for
+       dwstyle slot.
+
+2020-01-01  Eli Zaretskii  <address@hidden>
+
+       Fix compilation with GTK versions older than 3
+
+       * src/xfns.c (x_get_net_workarea): Change a recently moved #ifndef
+       so that GTK builds which need this function will compile it.
+       Reported by John <address@hidden>.
+
+       (cherry picked from commit d36adb544d984b91c70f6194da01344e4b2b6fc9)
+
+2020-01-01  Eli Zaretskii  <address@hidden>
+
+       Fix reverting customizations
+
+       * lisp/custom.el (custom-push-theme): Don't use setcar to modify
+       the recorded value of PROP; instead, cons a new property list by
+       deleting the old value and adding the new one.  (Bug#38812)
+
+2020-01-01  Mattias Engdegård  <address@hidden>
+
+       * lisp/loadup.el: Set max-specpdl-size to 1800 when loading 
cl-generic.el.
+
+2020-01-01  Mattias Engdegård  <address@hidden>
+
+       Revert "Raise default max-specpdl-size value"
+
+       This reverts commit bb9402e6e9c12938aee31b81e25511eb1f6335d2.
+
+2020-01-01  Mattias Engdegård  <address@hidden>
+
+       Raise default max-specpdl-size value
+
+       Occasionally, loading cl-generic.el from source requires
+       max_specpdl_size > 1600 when bootstrapping, and thus fails.
+       In any case we are very close to the limit.
+
+       * src/eval.c (init_eval_once): Raise max_specpdl_size to 1800.
+       * doc/lispref/variables.texi (Local Variables): Update docs.
+
+2020-01-01  Phillip Lord  <address@hidden>
+
+       Update distribution documentation
+
+       * admin/nt/README-ftp-server: Remove as obsolete
+       * admin/nt/dist-build/README-windows-binaries: Add information
+         about installer
+
+2019-12-31  Paul Eggert  <address@hidden>
+
+       Pacify gcc -Wunused-function on Ubuntu 18.04.3
+
+       This improves on 2019-12-25T20:01:07Z!address@hidden,
+       by fixing a GCC warning on Ubuntu 18.04.3
+       “‘x_get_net_workarea’ defined but not used”.
+       * src/xfns.c (x_get_net_workarea) [!USE_GTK]: Do not define.
+
+2019-12-31  Paul Eggert  <address@hidden>
+
+       Fix copyright years by hand
+
+       These are dates that admin/update-copyright did not update.
+
+2019-12-31  Paul Eggert  <address@hidden>
+
+       Update copyright year to 2020
+
+       Run "TZ=UTC0 admin/update-copyright $(git ls-files)".
+
+2019-12-31  João Távora  <address@hidden>
+
+       Don't always resort in recently introduced icomplete--sorted-completions
+
+       Doing so breaks icomplete-forward-completions and
+       icomplete-backward-completions.
+
+       * lisp/icomplete.el (icomplete--sorted-completions): Don't always
+       resort.
+
+       (cherry picked from commit 639fb50ed4c622f99dfbde32fbdbca42ce36d385)
+
+2019-12-31  João Távora  <address@hidden>
+
+       Don't force completion recalculation in icomplete-fido-ret
+
+       Besides the adverse effect of delaying completions, it tripped up the
+       useful logic of icomplete-force-complete-and-exit in the case where a
+       default was available, but no completions calculated yet.
+
+       * lisp/icomplete.el (icomplete-fido-ret): Don't force calculation
+       of completions.
+
+       (cherry picked from commit 13778aa5be7bf028893672d84c2a291f491d8216)
+
+2019-12-31  João Távora  <address@hidden>
+
+       Correctly cache sorted completions in icomplete--sorted-completions
+
+       * lisp/icomplete.el (icomplete--sorted-completions): Use
+       completion--cache-all-sorted-completions.
+
+       (cherry picked from commit 83587bb68830bd91124f99ddf8590d1d5f63869f)
+
+2019-12-31  João Távora  <address@hidden>
+
+       Move flex style's minibuffer-default-aware sorting to lisp/icomplete.el
+
+       This moves the logic from the series of commits starting in the commit 
named:
+
+         Improve sorting of flex completion style with non-nil 
minibuffer-default
+
+       to lisp/icomplete.el, so far the only confirmed beneficiary of that
+       functionality.
+
+       * lisp/icomplete.el (icomplete--sorted-completions): Consider
+       minibuffer-default here.
+
+       * lisp/minibuffer.el (completion--flex-adjust-metadata): Simplify.
+
+       (cherry picked from commit 0d2a711dc9a65dc8eb6e995369e70cddbcd7d9a4)
+
+2019-12-31  João Távora  <address@hidden>
+
+       Make fido-mode behave more like ido-mode when finding directories
+
+       Notably C-x d (M-x dired) and C-x v d (M-x vc-dir) behaved quite
+       differently, having regular files as the default instead of ido's
+       usual "./".
+
+       * lisp/icomplete.el (icomplete--sorted-completions): New helper.
+       (icomplete-completions): Use it.
+
+       (cherry picked from commit ee914051fbb4fbff9073a23b5ea7668bf48b5c6a)
+
+2019-12-31  João Távora  <address@hidden>
+
+       Slightly simplify lisp/icomplete.el with new icomplete--category helper
+
+       * lisp/icomplete.el (icomplete-fido-kill)
+       (icomplete-fido-delete-char, icomplete-fido-ret)
+       (icomplete-fido-backward-updir, icomplete-exhibit): Use
+       icomplete--category.
+       (icomplete--category): New helper.
+
+       (cherry picked from commit 24a1f520f91c278cb8cc57325ea80285a3b252cf)
+
+2019-12-31  João Távora  <address@hidden>
+
+       Another adjustment to flex completion style's sorting function
+
+       * lisp/minibuffer.el (completion--flex-adjust-metadata): Adjust
+       case when minibuffer-default is non-nil.
+
+       (cherry picked from commit 9c912049927cfb18b9c8b37039b38ddf51f2fe81)
+
+2019-12-30  Mattias Engdegård  <address@hidden>
+
+       Make minibuffer-tests work in out-of-tree builds (bug#38816)
+
+       * test/lisp/minibuffer-tests.el (completion-table-test-quoting):
+       Set default-directory.
+
+2019-12-30  Mattias Engdegård  <address@hidden>
+
+       Make comint-tests more robust (bug#38813)
+
+       * test/lisp/comint-tests.el (comint-test-no-password-function)
+       (comint-test-password-function-with-value)
+       (comint-test-password-function-with-nil):
+       Call accept-process-output as many times as needed, with a slightly
+       more generous timeout (100 ms), after sending the Password: prompt to
+       the process, since there must be time for some back-and-forth
+       communication.  Also clear the process-query-on-exit flag, since it
+       doesn't go well with noninteractive tests.
+
+2019-12-30  Eli Zaretskii  <address@hidden>
+
+       Fix tar-mode reading the oldgnu Tar format
+
+       This makes sure an entry for a long file name will not
+       accidentally appear as a directory, and thus its size will be
+       disregarded, causing corrupted file headers for all the subsequent
+       entries.  The original problem happened because the long file name
+       truncated to 99 bytes happened to end in a slash, which tar-mode
+       takes to be the indication of a directory.
+       * lisp/tar-mode.el (tar-header-block-tokenize): Accept an
+       additional argument DISABLE-SLASH; if non-nil, don't set the
+       link-type field of the descriptor to 5 (meaning a directory) just
+       because the name ends in a slash.  Use this argument when calling
+       itself recursively, to read the entry of the file with a long
+       name.  Set the link-type to 5 if the long name ends in a slash.
+       (Bug#38777)
+
+2019-12-30  Eli Zaretskii  <address@hidden>
+
+       Ensure mini-window is resized to show active minibuffer contents
+
+       * src/keyboard.c (read_char, command_loop_1): Resize the
+       mini-window after clearing the echo area while minibuffer is
+       active.  (Bug#38645)
+
+2019-12-30  Eli Zaretskii  <address@hidden>
+
+       Fix mini-window resizing under resize-mini-windows = t
+
+       * src/window.c (grow_mini_window): Fix resizing of mini-window
+       when the echo area is cleared, and the caller asks for the
+       mini-window to have zero lines.  (Bug#38791)
+
+2019-12-29  Glenn Morris  <address@hidden>
+
+       Fixes for makeinfo 4.13
+
+       * doc/lispref/customize.texi (Variable Definitions): Fix xref.
+       * doc/lispref/internals.texi (Writing Emacs Primitives)
+       (Module Values): Follow xref with comma.
+
+2019-12-29  Robert Pluim  <address@hidden>
+
+       Fix crash under -nw on macOS properly this time
+
+       * src/dispextern.h (FACE_COLOR_TO_PIXEL): Only use
+       ns_color_index_to_rgba when we're running under the NS gui
+       (Bug#38564).
+
+2019-12-29  Robert Pluim  <address@hidden>
+
+       Revert "Check for GUI frame in ns_color_index_to_rgba"
+
+       This reverts commit ea84a95bd8d43612b4a424fb93de25a68ac31d05.
+
+2019-12-29  Robert Pluim  <address@hidden>
+
+       Ignore all color fonts when using XFT
+
+       * etc/NEWS: Announce change to matching color fonts when using XFT.
+
+       * src/ftfont.c (ftfont_list) [HAVE_XFT && FC_COLOR]: Query for the
+       color attribute of the matched font, and skip it if it is not
+       FcFalse (Bug#37786).
+
+2019-12-29  Mattias Engdegård  <address@hidden>
+
+       Avoid unbounded growth of cl-random-state components (bug#38753)
+
+       * lisp/emacs-lisp/cl-extra.el (cl-random):
+       Perform the modulo 2**23 operation before updating the state instead
+       of after.  The result is always the same, but it prevents the state
+       from growing into arbitrary large bignums.
+
+       Patch from Christopher Wellons.
+
+2019-12-29  Michael Albinus  <address@hidden>
+
+       Sync with Tramp 2.4.3
+
+       * doc/misc/trampver.texi:
+       * lisp/net/trampver.el: Change version to "2.4.3".
+
+       * lisp/net/tramp.el: Bump version.
+       (tramp-handle-shell-command): The temp file for error-buffer is remote.
+
+       * test/lisp/net/tramp-tests.el (tramp-test30-make-process):
+       Simplify buffer generation.
+       (tramp-test32-shell-command): Extend test.
+
+2019-12-29  Dmitry Gutov  <address@hidden>
+
+       Fix up requires
+
+       * lisp/progmodes/project.el (project-files):
+       Remove (require 'xref).
+       (project--files-in-directory): Add it here instead.
+       (project-find-regexp, project-or-external-find-regexp): And here.
+       For 'xref--show-xrefs'.
+
+2019-12-29  Dmitry Gutov  <address@hidden>
+
+       Extract xref-matches-in-files from project--find-regexp-in-files
+
+       * lisp/progmodes/xref.el (xref-matches-in-files): Extract from
+       project--find-regexp-in-files.
+
+       * lisp/dired-aux.el (dired-do-find-regexp): Also use it here.
+
+2019-12-29  Dmitry Gutov  <address@hidden>
+
+       Rename xref-collect-references and xref-collect-matches
+
+       * lisp/progmodes/xref.el (xref-references-in-directory): Rename
+       from xref-collect-references.  Update the sole caller.
+       (xref-matches-in-directory): Rename from xref-collect-matches.
+       Update all callers (all of them are in the /tests/ dir).
+
+       * test/lisp/progmodes/xref-tests.el (xref-tests-data-dir):
+       Don't use the EMACS_TEST_DIRECTORY env var. It doesn't work when
+       running interactively.
+
+2019-12-29  Dmitry Gutov  <address@hidden>
+
+       Improve docstrings
+
+       * lisp/progmodes/xref.el (xref-collect-matches)
+       (xref-collect-references): Improve docstrings.
+
+2019-12-29  Alan Third  <address@hidden>
+
+       Fix when expose draws partially visible first glyph (bug#38731)
+
+       * src/xdisp.c (expose_area): When the face extends to the end of the
+       line draw text from the correct x coordinate.
+
+2019-12-28  Dmitry Gutov  <address@hidden>
+
+       Don't require semantic/fw
+
+       * lisp/progmodes/xref.el (xref-collect-matches): Don't require
+       semantic/fw, we haven't been using semantic-find-file-noselect
+       here for a while.
+
+2019-12-28  Dmitry Gutov  <address@hidden>
+
+       Do some renames for clarity
+
+       * lisp/progmodes/xref.el (xref--last-file-buffer):
+       Rename from xref--last-visiting-buffer.  Update users.
+       (xref--find-file-buffer): Rename from xref--find-buffer-visiting
+       to match the standard function that gets called inside.  Ditto.
+
+2019-12-28  Eli Zaretskii  <address@hidden>
+
+       Rearrange NEWS, add missing documentation
+
+       * etc/NEWS: Rearrange and mark entries whether documented or not.
+
+       * doc/lispref/streams.texi (Output Variables): Document the new
+       default of 'print-quoted'.
+       * doc/lispref/keymaps.texi (Functions for Key Lookup): Document
+       that KEYMAP arg to 'lookup-key' can also be a list.
+       * doc/lispref/customize.texi (Variable Definitions): Document the
+       :local keyword of 'defcustom'.
+       * doc/lispref/numbers.texi (Float Basics): Document changes in
+       'logb'.
+       * doc/lispref/hooks.texi (Standard Hooks): Document
+       'comint-password-function'.
+
+       * doc/emacs/display.texi (Text Scale): Document text-size
+       adjustment using the mouse wheel.
+       * doc/emacs/frames.texi (Mouse Commands): Document image scaling
+       with the mouse wheel.
+       * doc/emacs/windows.texi (Window Convenience): Document
+       'global-tab-line-mode'.
+       * doc/emacs/search.texi (Repeat Isearch, Symbol Search)
+       (Isearch Yank): Document the new support for numeric arguments in
+       Isearch commands.
+       (Special Isearch): Document 'M-s M->' and 'M-s M-<'.
+       (Search Customizations): Document 'isearch-lazy-count'.  Improve
+       indexing.
+       (Not Exiting Isearch): Document the new value of
+       'isearch-allow-scroll'.
+       * doc/emacs/maintaining.texi (Xref Commands): Document the new 'g'
+       key binding.
+       * doc/emacs/package.texi (Package Installation): Document changes
+       in 'package-check-signature'.
+       * doc/emacs/maintaining.texi (VC Change Log): Document
+       'vc-log-search'.
+       * doc/emacs/dired.texi (Operating on Files): Document
+       'dired-vc-rename'.
+
+2019-12-28  Xu Chunyang  <address@hidden>
+
+       Fix interactive spec in netrc-parse
+
+       * lisp/net/netrc.el (netrc-parse): Fix placement of interactive
+       spec (bug#38773).
+
+2019-12-28  Eli Zaretskii  <address@hidden>
+
+       Fix documentation of define-obsolete-* functions
+
+       * doc/lispref/functions.texi (Obsolete Functions): Make
+       documentation of functions that obsolete symbols match the
+       advertised calling conventions.
+
+       * lisp/emacs-lisp/byte-run.el (define-obsolete-function-alias)
+       (define-obsolete-variable-alias, define-obsolete-face-alias):
+       State in the doc strings that WHEN is a mandatory argument, to be
+       consistent with the advertised calling convention.  (Bug#38675)
+
+2019-12-27  Lars Ingebrigtsen  <address@hidden>
+
+       Fix recent gnus-start.el breakage
+
+       * lisp/gnus/gnus-start.el (gnus-group-change-level): Fix previous
+       patch that made info nil when adding new groups (thereby making
+       gnus-newsrc-alist invalid).
+
+2019-12-27  Dmitry Gutov  <address@hidden>
+
+       (xref--find-buffer-visiting): Speed up by using get-file-buffer
+
+       * lisp/progmodes/xref.el (xref--find-buffer-visiting):
+       Speed up by using get-file-buffer.
+       (xref--collect-matches): Remove the condition on remote-id.
+       (https://lists.gnu.org/archive/html/emacs-devel/2019-12/msg00753.html)
+
+2019-12-27  Dmitry Gutov  <address@hidden>
+
+       project--vc-list-files: Recurse into submodules
+
+       * lisp/progmodes/project.el (project-try-vc): Do not treat a Git
+       submodule as a project root, go up to the parent repo.
+       (project--git-submodules): New function.
+       (project--vc-list-files): Use it.  Recurse into submodules.
+
+2019-12-27  Eli Zaretskii  <address@hidden>
+
+       Minor improvements of buffer documentation
+
+       * doc/emacs/buffers.texi (Buffers): Say that buffers are killed
+       when no longer needed.  Suggested by Jean-Christophe Helary
+       <address@hidden>.
+
+2019-12-27  Dmitry Gutov  <address@hidden>
+
+       xref--collect-matches: Speed up on remote
+
+       * lisp/progmodes/xref.el (xref--collect-matches):
+       Don't call find-buffer-visiting on remote file names, it's pretty
+       slow (bug#34343).
+
+2019-12-26  Phillip Lord  <address@hidden>
+
+       Fix installer build
+
+       * admin/nt/dist-build/build-zips.sh: Ensure that NSIS build always
+         uses the actual build number to locate its files.
+
+2019-12-26  Phillip Lord  <address@hidden>
+
+       Update Windows build documentation
+
+       * admin/nt/dist-build/README-scripts: Update with branch and snapshot
+         information.
+
+2019-12-26  Mattias Engdegård  <address@hidden>
+
+       Calc: add missing dynamic variable declarations
+
+       * lisp/calc/calc-alg.el (math-simplify-only, calc-simplify-mode)
+       (math-expand-formulas, calc-poly-div-remainder)
+       (math-living-dangerously, math-simplifying, calc-angle-mode)
+       (calc-prefer-frac, math-poly-base-variable):
+       Declare dynamic variables.
+       * test/lisp/calc/calc-tests.el (calc-poly-div):
+       Add test for at least one bug caused by missing declarations.
+
+2019-12-26  Eli Zaretskii  <address@hidden>
+
+       * doc/emacs/buffers.texi (Kill Buffer): Improve indexing.
+
+2019-12-26  Dmitry Gutov  <address@hidden>
+
+       Speed up dired-do-find-regexp
+
+       * lisp/dired-aux.el (dired-do-find-regexp): Speed up (bug#36857).
+       Previously, 'find' was called for every marked file (for plain
+       files and directories both).  Now 'find' is only called for
+       directories.
+
+2019-12-26  Dmitry Gutov  <address@hidden>
+
+       project--find-regexp-in-files: Support remote files
+
+       * lisp/progmodes/project.el (project--find-regexp-in-files):
+       Support remote files (bug#34343).
+
+2019-12-26  Philipp Stephani  <address@hidden>
+
+       Document some restrictions for module functions.
+
+       * doc/lispref/internals.texi (Module Functions): Document some
+       restrictions for module functions.
+
+2019-12-26  Philipp Stephani  <address@hidden>
+
+       Don't recommend using 'module-load' for loading modules.
+
+       'module-load' most likely doesn't do what users expect.  Users should
+       use 'load' and its wrappers, which do the right thing.
+
+       * doc/lispref/loading.texi (Dynamic Modules): Document
+       disadvantages of 'module-load' and recommend normal 'load' and
+       its wrappers instead.
+
+       * doc/lispref/internals.texi (Module Functions): Recommend
+       'load' over 'module-load'.
+
+2019-12-25  Paul Eggert  <address@hidden>
+
+       Port x_get_monitor_attributes_fallback to !HAVE_GTK3
+
+       * src/xfns.c (x_get_net_workarea) [!HAVE_GTK3]:
+       Define in this case too, since x_get_monitor_attributes_fallback
+       contains a call to it regardless whether HAVE_GTK3 is defined.
+
+2019-12-25  Lars Ingebrigtsen  <address@hidden>
+
+       Fix compilation warning in gnus-start.el
+
+       * lisp/gnus/gnus-start.el (gnus-gnus-to-quick-newsrc-format): Fix
+       compilation warning by not binding XEmacs-only variable.
+
+       * lisp/gnus/gnus-util.el (gnus-bind-print-variables): Ditto.
+       (gnus-prin1, gnus-prin1-to-string, gnus-pp, gnus-pp-to-string):
+       Adjust doc string.
+
+2019-12-25  Eli Zaretskii  <address@hidden>
+
+       Improve doc string of 'files--message'
+
+       * lisp/files.el (files--message): Improve the wording of doc
+       string.  (Bug#38737)
+
+2019-12-24  Wolfgang Scherer  <address@hidden>
+
+       Improve vc--add-line, vc--remove-regexp
+
+       * lisp/vc/vc.el (vc--add-line): Create file if it does not exist.
+       Use existing buffer to avoid discrepancies with filesytem.  Make sure
+       that the file ends with a newline.
+       (vc--remove-line): Do not create file if it does not exist.  Use
+       existing buffer to avoid discrepancies with filesytem. (bug#37185)
+
+2019-12-24  Dmitry Gutov  <address@hidden>
+
+       Apply the 'xref-group' property properly
+
+       * lisp/progmodes/xref.el (xref--insert-xrefs):
+       Apply the 'xref-group' property properly (bug#36974).
+
+2019-12-24  Philipp Stephani  <address@hidden>
+
+       * src/pdumper.c (Fdump_emacs_portable): Reword error message.
+
+       (cherry picked from commit ac7b2607735a64e657d65c87d8c9f73755ff3efa)
+
+2019-12-24  Philipp Stephani  <address@hidden>
+
+       Don’t allow portable dumping in interactive mode (Bug#38453).
+
+       * src/pdumper.c (Fdump_emacs_portable): Don’t allow dumping in
+       interactive mode.
+
+       (cherry picked from commit e7edba42c8a525722cbd40f782b0df68e4976a62)
+
+2019-12-24  Lars Ingebrigtsen  <address@hidden>
+
+       Don't default to showing X-Faces externally in Gnus
+
+       * lisp/gnus/gnus-art.el (gnus-article-x-face-command): It's seldom
+       useful to display the face in an external command, so don't ever
+       default to that.  This also fixes the problem of Emacs running as
+       a server in mixed graphical/non-graphical environments.
+
+2019-12-24  Lars Ingebrigtsen  <address@hidden>
+
+       Fix manual typo in Special Read Syntax
+
+       * doc/lispref/objects.texi (Special Read Syntax): Fix typo.
+
+2019-12-24  Robert Pluim  <address@hidden>
+
+       Fix problem with emacs -nw / eww / svg
+
+       * lisp/net/shr.el (shr-parse-image-data): Don't bug out on
+       non-visual Emacs versions on SVG images (bug#38507).
+
+2019-12-24  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify base64 requirements and say what {en,de}code_coding_region does
+
+       * src/coding.c (Fencode_coding_region): Clarify what this does.
+       (Fdecode_coding_region): Ditto.
+
+       * src/fns.c (Fbase64_decode_region): Clarify that this function
+       returns bytes, not text (bug#38587).
+       (Fbase64_encode_region): Clarify that this function takes bytes,
+       not text.
+
+2019-12-24  Philipp Stephani  <address@hidden>
+
+       * src/emacs-module.h.in: Add reference to manual.
+
+2019-12-23  Juanma Barranquero  <address@hidden>
+
+       Trivial docstring fixes
+
+       * ChangeLog.3:
+       * lisp/emacs-lisp/cl-macs.el (cl-flet):
+       * lisp/filesets.el (filesets-menu-ensure-use-cached):
+       * lisp/progmodes/compile.el (compilation-context-lines):
+       * lisp/progmodes/prolog.el (prolog-paren-indent):
+       * lisp/progmodes/sql.el (sql-password-search-wallet-function):
+       Fix typos in docstrings.
+
+       * lisp/cedet/semantic/analyze.el (semantic-analyze-push-error):
+       Doc fix.
+
+       * lisp/emacs-lisp/map.el (map-put, map-info): Refill docstring.
+       (map-contains-key): Fix typo.
+       (map-every-p): Doc fix.
+
+2019-12-23  Dhruva Krishnamurthy  <address@hidden>  (tiny change)
+
+       imagemagick-types needs to initialize ImageMagick
+
+       * src/image.c (imagemagick_initialize): New function,
+       with body taken from imagemagick_load_image.
+       (imagemagick_load_image, Fimagemagick_types): Use it.
+
+2019-12-23  Eli Zaretskii  <address@hidden>
+
+       Cut the emacs-27 release branch
+
+       * lisp/cus-edit.el (customize-changed-options-previous-release):
+       Change the value to 26.3.
+
+       * README:
+       * configure.ac:
+       * nt/README.W32:
+       * msdos/sed2v2.inp: Bump Emacs version to 27.0.60.
+
+2019-12-23  Philipp Stephani  <address@hidden>
+
+       Document and verify that emacs_limb_t doesn’t have padding bits.
+
+       This is a useful property when doing further bit-twiddling with the
+       magnitude array before/after calling extract_big_integer or
+       make_big_integer.  For example, constructing an emacs_limb_t object
+       using repeated shift-and-add should work as expected, but relies on
+       the type not having padding bits.  Since the C standard already
+       guarantees that unsigned integers use a pure binary representation,
+       not having padding bits is enough to guarantee that the type has
+       unique object representations in the sense of C++’s
+       std::has_unique_object_representations.
+
+       * doc/lispref/internals.texi (Module Values): Document that
+       emacs_limb_t doesn’t have padding bits.
+
+       * src/emacs-module.c: Verify that emacs_limb_t doesn’t have padding
+       bits.
+
+2019-12-23  Jimmy Aguilar Mena  <address@hidden>
+
+       Fix extension of underline, overline, and strike-through attributes
+
+       * src/xdisp.c (extend_face_to_end_of_line): Don't return early
+       if face attributes beyond background color and box are set,
+       since that means these attributes need to be extended past the
+       EOL.
+
+2019-12-23  João Távora  <address@hidden>
+
+       Comment on limitation of flex completion style's sorting function
+
+       * lisp/minibuffer.el (completion--flex-adjust-metadata): Add
+       comment.
+
+2019-12-23  João Távora  <address@hidden>
+
+       Fix a bug in completion--flex-adjust-metadata
+
+       If minibuffer-default coincided with the first of completions, the
+       empty list would be returned.
+
+       * lisp/minibuffer.el (completion--flex-adjust-metadata): Make sure
+       to never return empty list.
+
+2019-12-23  Martin Rudalics  <address@hidden>
+
+       Fix documentation of implied frame resizing (Bug#38684)
+
+       * src/frame.c (frame_inhibit_implied_resize): Fix doc-string.
+       * doc/lispref/frames.texi (Implied Frame Resizing): Update and
+       rewrite section.
+
+2019-12-22  Michael R. Mauger  <address@hidden>
+
+       Added `comint-password-function' hook
+
+       * etc/NEWS:
+       * lisp/comint.el (comint-password-function): New variable.
+         (comint-send-invisible): Use it.
+       * test/lisp/comint-tests.el (comint-test-no-password-function,
+         comint-test-password-function-with-value,
+         comint-test-password-function-with-nil): Test new variable.
+
+2019-12-22  Juri Linkov  <address@hidden>
+
+       * lisp/files.el (save-buffers-kill-emacs): Mark "*Process List*" as 
dedicated.
+
+       Using the 'dedicated' prop for display-buffer--maybe-at-bottom marks the
+       window of the buffer "*Process List*" as dedicated, so it won't be 
replaced
+       by another buffer that might be visited following links to process 
buffers
+       from the buffer "*Process List*".
+
+2019-12-22  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el: Use alist-get instead of (cdr (assq ...))
+
+       * lisp/tab-bar.el (tab-bar-mode): Bind s-0 to 
tab-bar-switch-to-recent-tab.
+
+2019-12-22  Juri Linkov  <address@hidden>
+
+       * lisp/proced.el (proced-signal-list): Add more POSIX 1003.1-2001 
signals.
+
+2019-12-22  João Távora  <address@hidden>
+
+       Fix bug in flex completion style's sorting and simplify
+
+       This previous commit targetting this function introduced a bug whereby
+       the completion table's sorting function wouldn't be called.  That is
+       fixed by this commit, which also simplifies the function further: it
+       now skips re-sorting the completions completely if there is no
+       minibuffer input at all (in other words, when flex isn't doing
+       anything useful).
+
+       * lisp/minibuffer.el (completion--flex-adjust-metadata): Simplify.
+
+2019-12-22  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/gnus-start.el: Use lexical-binding
+
+       (gnus-group-change-level, gnus-make-hashtable-from-newsrc-alist):
+       Use gnus-info-make.
+       (gnus-make-hashtable-from-newsrc-alist): Prefer `gnus-info-group`
+       to `car` when applied to a `gnus-info` object.
+       (gnus-make-hashtable-from-killed): Remove unused vars `lists` and 
`list`.
+       (gnus-gnus-to-quick-newsrc-format): Extract common code from if 
branches.
+
+       * lisp/gnus/gnus.el (gnus-info-make): New constructor.
+
+2019-12-22  Eli Zaretskii  <address@hidden>
+
+       Fix wording of recent documentation changes
+
+       * src/xdisp.c (syms_of_xdisp):
+       * lisp/minibuffer.el (minibuffer-message-clear-timeout):
+       * etc/NEWS:
+       * doc/lispref/display.texi (Displaying Messages): Minor
+       changes of wording of a recent commit.  (Bug#38457)
+
+2019-12-22  Michael Albinus  <address@hidden>
+
+       Extend tramp-tests.el for other host name syntax and file name syntax
+
+       * test/lisp/net/tramp-tests.el (inhibit-message)
+       (connection-local-criteria-alist)
+       (connection-local-profile-alist, async-shell-command-width): Declare.
+       (tramp-test01-file-name-syntax)
+       (tramp-test02-file-name-dissect): Set syntax to `default'.
+       (tramp-test03-file-name-defaults)
+       (tramp-test03-file-name-host-rules)
+       (tramp-test03-file-name-method-rules)
+       (tramp-test04-substitute-in-file-name)
+       (tramp-test05-expand-file-name)
+       (tramp-test06-directory-file-name, tramp-test44-auto-load):
+       Skip unless syntax is `default'.
+       (tramp-test06-directory-file-name, tramp-test10-write-region)
+       (tramp-test17-dired-with-wildcards)
+       (tramp-test26-file-name-completion): Handle IPv6 host names.
+       (tramp-test21-file-links): Support all syntaxes.
+       (tramp-test30-make-process, tramp-test45-unload):
+       Suppress compiler warnings.
+       (tramp-test37-make-auto-save-file-name): Skip for `separate' syntax.
+
+2019-12-22  Michael Albinus  <address@hidden>
+
+       * lisp/net/trampver.el (inhibit-message): Declare.
+
+2019-12-22  Michael Albinus  <address@hidden>
+
+       Add item to Frequently Asked Questions of Tramp manual
+
+       * doc/misc/tramp.texi (Frequently Asked Questions): Add item for
+       ControlMaster option on proxy hosts.  Explain changing syntax to
+       Ange FTP.
+
+2019-12-22  Alan Third  <address@hidden>
+
+       * lisp/term/ns-win.el (ns-insert-working-text): Comment is obsolete.
+
+2019-12-22  João Távora  <address@hidden>
+
+       Improve sorting of flex completion style with non-nil minibuffer-default
+
+       This affects the behaviour of flex completion when there is a default
+       completion and the user hasn't entered any input pattern to flex-match
+       against.  It is most visible when icomplete-mode or fido-mode are
+       being used in conjunctio.
+
+       When using M-x man, for instance, the default completion is picked
+       from text around point.  Say it is "emacs" (for Emacs's man page).  It
+       will not match the intended completion, "emacs(1)", exactly.  If the
+       user hasn't yet given any input to the completion prompt, that
+       completion should bubble to top so that
+       icomplete-force-complete-and-exit will select it, but it didn't.
+
+       This new approach uses 'string-prefix-p' instead of 'equal' to find
+       the default to bubble to the top.  This strategy could eventually be
+       improved, most naturally by flex-matching the default string to all
+       the candidates and picking the highest scoring one.
+
+       Additionally, the new strategy only considers minibuffer-default if
+       there is no input in the minibuffer, which seems sensible and produces
+       a small but noticeable speedup.
+
+       * lisp/minibuffer.el (completion--flex-adjust-metadata):
+       Reformulate sorting strategy.
+
+2019-12-22  Masahiro Nakamura  <address@hidden>  (tiny change)
+
+       Fix display of working text on NS (Bug#23412, Bug#1453)
+
+       * lisp/term/ns-win.el (ns-insert-working-text):
+       (ns-delete-working-text): Change how working text is deleted to handle
+       changed order of operations.
+       * src/nsterm.m ([EmacsView insertText:]): Move deletion of working
+       text until after insertion of new text.
+
+2019-12-22  Alan Third  <address@hidden>
+
+       Check if file is in iCloud drive (bug#38618)
+
+       * src/nsfns.m (ns_set_represented_filename): Check whether the file is
+       a `ubiquitous item', and if so don't display a proxy icon.
+
+2019-12-21  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el: Rename tab-bar-list to tab-switcher (bug#38624)
+
+2019-12-21  Juri Linkov  <address@hidden>
+
+       New variable set-message-function to show message at the end of the 
minibuffer
+
+       * doc/lispref/display.texi (Displaying Messages): Document
+       set-message-function and clear-message-function.
+
+       * lisp/minibuffer.el (minibuffer-message-clear-timeout): New defcustom.
+       (minibuffer-message-timer, minibuffer-message-overlay): New variables.
+       (set-minibuffer-message, clear-minibuffer-message): New functions.
+       (set-message-function, clear-message-function): Set variables to
+       set-minibuffer-message and clear-minibuffer-message respectively.
+
+       * src/keyboard.c (read_char): Call clear_message when
+       Vclear_message_function is a function.
+
+       * src/xdisp.c (set_message): Call Vset_message_function when it's a 
function.
+       (clear_message): Call Vclear_message_function when it's a function.
+       (syms_of_xdisp): New variables set-message-function and 
clear-message-function
+       (bug#38457).
+
+2019-12-21  Stephen Gildea  <address@hidden>
+
+       backup-by-copying-when-privileged-mismatch applies to file gid, too.
+
+       * lisp/files.el (backup-by-copying-when-privileged-mismatch):  In 
addition
+       to checking the file uid, a second test is added: if the file gid is not
+       greater than backup-by-copying-when-privileged-mismatch,
+       backup-by-copying-when-mismatch will also be forced on.
+
+       * doc/emacs/files.texi, doc/lispref/backups.texi: Updated documentation.
+
+       Also fixed a typo in the Emacs reference manual, changing "higher" to
+       "no greater" so that the limit is no longer documented reversed.
+
+2019-12-21  Eli Zaretskii  <address@hidden>
+
+       ;* src/process.c (read_process_output): Fix last change.
+
+2019-12-21  lin.sun  <address@hidden>
+
+       Add new function `python-shell-send-statement'
+
+       * lisp/progmodes/python.el (python-shell-send-statement): New function.
+       (python-mode-map): Bind it to key "C-c C-e", and define a python-menu
+       item for it.  (Bug#38426)
+
+2019-12-21  Eli Zaretskii  <address@hidden>
+
+       Allow control of data amount read from subprocess in one chunk
+
+       * src/process.c (syms_of_process) <read-process-output-max>:
+       New variable.
+       (read_process_output): Use it instead of the hard-coded
+       constant 4096.  (Bug#38561)
+       Use SAFE_ALLOCA to support large buffers for reading process
+       output.
+
+       * etc/NEWS: Mention 'read-process-output-max'.
+
+2019-12-20  Stefan Monnier  <address@hidden>
+
+       * lisp/international/mule-cmds.el: Fix bug#38642
+
+       (universal-coding-system-argument): Adjust the code to the way
+       `universal-argument` works nowadays.  Handle `prefix-arg` a bit more
+       like `command_loop` does.
+
+       * test/lisp/international/mule-tests.el
+       (mule-cmds--test-universal-coding-system-argument): New test.
+
+2019-12-20  Dmitry Gutov  <address@hidden>
+
+       Speed up vc-dir-update
+
+       * lisp/vc/vc-dir.el (vc-dir-update): Speed up.
+       (https://lists.gnu.org/archive/html/emacs-devel/2019-12/msg00568.html)
+
+2019-12-20  Alan Mackenzie  <address@hidden>
+
+       Elisp manual: mention parse-partial-sexp as the source of a parser 
state, etc
+
+       * doc/lispref/syntax.texi (Parser State): mention parse-partial-sexp as 
a
+       function returning a parser state, and the function to which one 
supplies a
+       parser state as an argument for continued parsing.
+       Refine the documentation of syntax-ppss-context, and correct the text
+       introducing it and another function.
+
+2019-12-20  Eli Zaretskii  <address@hidden>
+
+       Support setting OS names of threads on MS-Windows
+
+       * src/w32fns.c (setup_w32_kbdhook): Don't initialize
+       is_debugger_present here...
+       (globals_of_w32fns): ...initialize it here.  Also initialize
+       the new global variable set_thread_description.
+       * src/systhread.c: [WINDOWSNT] Include mbctype.h
+       (w32_set_thread_name): New function.
+       (MS_VC_EXCEPTION): New macro.
+       (THREADNAME_INFO, IsDebuggerPresent_Proc)
+       (SetThreadDescription_Proc): New typedefs.
+       (w32_beginthread_wrapper): Call w32_set_thread_name to set the
+       name of the new thread.
+       * src/thread.h (struct thread_state): New member thread_name.
+       * src/thread.c (Fmake_thread): Set the thread_name field of
+       the new thread object.
+       (run_thread): Free the thread_name member after the thread
+       exits.
+
+2019-12-20  Michael Albinus  <address@hidden>
+
+       Fix error in tramp-process-sentinel
+
+       * lisp/net/tramp.el (tramp-process-sentinel): Check, that process
+       buffer is alive.
+
+2019-12-19  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el: Sort tab names by recency for tab switching 
(bug#38624)
+
+       * lisp/tab-bar.el (tab-bar--tabs-recent): New function with code
+       extracted from tab-bar--tab-index-recent.
+       (tab-bar-switch-to-tab): Use tab-bar--tabs-recent in interactive spec
+       to sort names of tabs by recency for default values of completing-read.
+       (tab-prefix-map): Bind RET to tab-bar-select-tab-by-name, and 'm' to 
tab-move.
+
+2019-12-18  Mattias Engdegård  <address@hidden>
+
+       More precise 'regexp-opt' documentation
+
+       * lisp/emacs-lisp/regexp-opt.el (regexp-opt):
+       * doc/lispref/searching.texi (Regexp Functions):
+       Be more specific about how the KEEP-ORDER argument actually works.
+       If nil, the regexp guarantees a longest match; this is the behaviour
+       that many callers implicitly rely on.
+
+2019-12-18  Michael Albinus  <address@hidden>
+
+       Fix an error with remote file name in compile.el
+
+       * lisp/progmodes/compile.el (compilation-get-file-structure):
+       Compute proper remote file name.  (Bug#38648)
+
+2019-12-17  Wilson Snyder  <address@hidden>
+
+       Verilog-Mode collected updates.
+
+       * lisp/progmodes/verilog-mode.el (verilog-compiler-directives): Support
+       indenting `uselib.
+       (verilog-read-decls): Fix AUTO* to ignore `protected regions.
+       (verilog-read-auto-template-middle): Fix AUTO_TEMPLATEs with multiple
+       module templates and at-REGEXPs, msg3183.  Reported by Berk Akinci.
+
+2019-12-17  Michael Albinus  <address@hidden>
+
+       Improve Tramp's file-name-completion
+
+       * lisp/net/tramp.el (tramp-handle-file-name-completion):
+       Filter out "./" and "../", if there's only one other result.
+
+2019-12-17  Mattias Engdegård  <address@hidden>
+
+       Adjust cursor column when auto-scrolling during rectangle selection
+
+       * lisp/mouse.el (mouse-drag-region-rectangle):
+       Move cursor to the correct column during auto-scrolling both when
+       crutches are used and not (bug#38641).  Reported by Konrad Podczeck.
+
+2019-12-16  Andrii Kolomoiets  <address@hidden>
+
+       Make ls-files-unknown only return proper files, not directories
+
+       * lisp/vc/vc-git.el (vc-git-dir-status-goto-stage):
+       Make ls-files-unknown only return proper files, not directories
+       (bug#38615).
+
+2019-12-16  Dmitry Gutov  <address@hidden>
+
+       vc-git-after-dir-status-stage: Avoid erroneous up-to-date status
+
+       * lisp/vc/vc-git.el (vc-git-after-dir-status-stage):
+       Don't set `up-to-date' status if the previous stage (`diff-index')
+       has assigned some other status to the file (bug#38615).
+
+2019-12-16  Eli Zaretskii  <address@hidden>
+
+       Fix face merging for display strings broken by a recent commit
+
+       * src/xfaces.c (face_at_string_position): Revert the last
+       change, as it cannot possibly solve bug#38563.
+       * src/xdisp.c (face_at_pos): Fix a typo made during last
+       change here, which broke face merging for display strings.
+       (Bug#38633)
+
+2019-12-15  Juri Linkov  <address@hidden>
+
+       * lisp/isearch.el (isearch-xterm-paste): Use code like in 'xterm-paste'.
+
+       Add arg 'event' and use it to get pasted text.
+       This allows pasting text on terminals to the
+       search string (bug#18727, bug#36950).
+
+2019-12-15  Juri Linkov  <address@hidden>
+
+       Revert aa89c84e00d8dc85100e6fedab7631c415e6364d (bug#38457)
+
+       * src/editfns.c (Fmessage): Don't use minibuffer-message.
+       (Fmessage_in_echo_area): Remove function message-in-echo-area.
+       (syms_of_editfns): Remove variable message-in-echo-area.
+
+       * lisp/isearch.el (isearch--momentary-message): Remove 
message-in-echo-area.
+       * lisp/minibuffer.el (minibuffer-message): Don't record message
+       in the *Messages* buffer.
+       (minibuffer-completion-help): Remove message-in-echo-area.
+
+       * lisp/subr.el (do-after-load-evaluation): Remove discard-input 
(bug#38560)
+
+2019-12-15  Juri Linkov  <address@hidden>
+
+       * lisp/tab-line.el (tab-line-auto-hscroll): Improve.
+
+       Better handling of tabs scrolled to the left.
+       Don't scroll tabs that are already visible.
+
+       Remove setq of buffer-undo-list because undo is disabled
+       anyway in internal buffers with name " *temp*".
+
+2019-12-15  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el (tab-bar-handle-mouse): Handle close button.
+
+       * lisp/tab-bar.el (tab-bar-select-tab): Message about selected tab 
(bug#38624)
+
+2019-12-15  Robert Cochran  <address@hidden>
+
+       * lisp/tab-bar.el (tab-bar-close-other-tabs): Use tab close customs
+
+2019-12-15  Robert Cochran  <address@hidden>
+
+       Document variables that affect tabs in function docstrings
+
+       * lisp/tab-bar.el (tab-bar-new-tab-to): Mention
+       tab-bar-post-open-functions in docstring.
+       (tab-bar-close-tab): Mention tab-bar-prevent-tab-functions,
+       tab-bar-tab-pre-close-functions, and tab-bar-close-last-tab-choice.
+
+2019-12-15  Phil Sainty  <address@hidden>
+
+       New command 'diff-buffers'
+
+       * lisp/vc/diff.el (diff-buffers): New command.
+       (diff, diff-no-select, diff-file-local-copy): Improve docstrings.
+       * doc/emacs/files.texi:
+       * etc/NEWS: Document new command, and the previously-undocumented
+       ability for 'diff' to compare buffers.
+
+2019-12-14  Paul Eggert  <address@hidden>
+
+       Adjust intptr_t advice
+
+       * doc/lispref/internals.texi (C Integer Types): Say to prefer
+       uintptr_t when pointer arithmetic might overflow intptr_t.
+
+2019-12-14  Paul Eggert  <address@hidden>
+
+       Remove nothing from union output_data
+
+       * src/frame.h (union output_data): Remove ‘nothing’ member.
+       It has had no effect for quite some time.
+       All uses removed.
+
+2019-12-14  Eli Zaretskii  <address@hidden>
+
+       Update documentation of pure-space overflow
+
+       * doc/lispref/internals.texi (Garbage Collection)
+       (Pure Storage):
+       * src/alloc.c (Fgarbage_collect): Update the documentation of
+       pure-space overflow for when pdumper is used.  (Bug#38492)
+
+2019-12-14  Stefan Monnier  <address@hidden>
+
+       * lisp/minibuffer.el (completion-pcm--find-all-completions): Simplify a 
bit
+
+2019-12-14  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-initial-file-name-regexp): Make it more 
precise.
+
+2019-12-14  Eli Zaretskii  <address@hidden>
+
+       Fix cross-references in ELisp manual
+
+       * doc/lispref/commands.texi (Misc Events, Special Events): Fix
+       cross-references.  (Bug#38520)
+
+2019-12-14  Eli Zaretskii  <address@hidden>
+
+       Don't warn about pure-space overflow
+
+       * lisp/startup.el (command-line-1): Don't warn about
+       pure-space overflow if we were dumped with pdumper.
+       (Bug#38492)
+
+2019-12-13  Paul Eggert  <address@hidden>
+
+       Fix typo that broke GNU/Linux unexec build
+
+       * src/emacs.c (Fdump_emacs): Remove stray closing brace that
+       breaks the build when configured with --with-dumping=unexec on
+       GNU/Linux.  (Apparently everybody is using pdumper now.)
+       I introduced the bug in 2019-07-09T00:50:39Z!address@hidden.
+
+2019-12-13  Juanma Barranquero  <address@hidden>
+
+       xfaces.c: Silence spurious maybe-uninitialized compiler warning
+
+       * src/xfaces.c (face_inherited_attr): Initialize 'ok' to false.
+
+2019-12-13  João Távora  <address@hidden>
+
+       Disable undo in the process buffers of a JSONRPC connection
+
+       * lisp/jsonrpc.el (initialize-instance jsonrpc-process-connection):
+       Use buffer-disable-undo in stdout and stderr buffers.
+
+       * lisp/jsonrpc.el (Version): Bump to 1.0.9
+
+2019-12-13  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-unload-tramp): Autoload function body.
+
+2019-12-13  Andrii Kolomoiets  <address@hidden>
+
+       python-shell-completion-at-point: respect simple-operator (Bug#37808)
+
+       * lisp/progmodes/python.el (python-shell-completion-at-point): Also
+       stop on simple-operator while parsing input.
+
+2019-12-13  Mattias Engdegård  <address@hidden>
+
+       Allow characters and single-char strings in rx charsets
+
+       The `not' and `intersection' forms, and `or' inside these forms,
+       now accept characters and single-character strings as arguments.
+       Previously, they had to be wrapped in `any' forms.
+       This does not add expressive power but is a convenience and is easily
+       understood.
+
+       * doc/lispref/searching.texi (Rx Constructs): Amend the documentation.
+       * etc/NEWS: Announce the change.
+       * lisp/emacs-lisp/rx.el (rx--charset-p, rx--translate-not)
+       (rx--charset-intervals, rx): Accept characters and 1-char strings in
+       more places.
+       * test/lisp/emacs-lisp/rx-tests.el (rx-not, rx-charset-or)
+       (rx-def-in-charset-or, rx-intersection): Test the change.
+
+2019-12-13  Noam Postavsky  <address@hidden>
+
+       Add prefix to help.el uni-confusable* vars
+
+       * lisp/help.el (help-uni-confusables, help-uni-confusables-regexp):
+       Rename from uni-confusable and uni-confusables-regexp, respectively.
+       (help-uni-confusable-suggestions): Use ngettext.  Use new variable
+       name.
+       * lisp/emacs-lisp/lisp-mode.el 
(lisp--match-confusable-symbol-character):
+       Use new variable name.
+
+2019-12-13  Eli Zaretskii  <address@hidden>
+
+       A better fix for extension of overlay string's faces
+
+       * src/xdisp.c (face_at_pos): Revert previous change that
+       rejected the underlying face if it failed the filtering
+       criteria.
+       * src/xfaces.c (face_at_string_position): Reset the base face's
+       attribute used for filtering faces if the attribute is t.
+       (Bug#38563)
+
+2019-12-12  Juri Linkov  <address@hidden>
+
+       * lisp/emacs-lisp/edebug.el (edebug-remove-instrumentation): Use 
'user-error'.
+
+       * lisp/wid-edit.el (widget-field): Add ':extend t' to defface 
(bug#37774)
+
+2019-12-12  Mattias Engdegård  <address@hidden>
+
+       Use `or' instead of `union' for charset union in rx
+
+       Design change suggested by Stefan Monnier.
+
+       * doc/lispref/searching.texi (Rx Constructs):
+       * etc/NEWS: Document.
+       * lisp/emacs-lisp/rx.el (rx--translate-or): Detect charset arguments.
+       (rx--charset-p): New.
+       (rx--translate-not, rx--charset-intervals, rx--translate-union):
+       Change from `union' to `or'.
+       (rx--translate-form, rx--builtin-forms, rx): Remove `union'.
+       * test/lisp/emacs-lisp/rx-tests.el (rx-union, rx-def-in-union)
+       (rx-intersection): Rename tests and change `union' to `or' and `|'.
+
+2019-12-12  Michael Albinus  <address@hidden>
+
+       Optimize prompt search in Tramp
+
+       * lisp/net/tramp.el (tramp-search-regexp): New defun.
+       (tramp-check-for-regexp, tramp-process-sentinel):
+       * lisp/net/tramp-adb.el (tramp-adb-send-command-and-check)
+       (tramp-adb-wait-for-output):
+       * lisp/net/tramp-sh.el (tramp-wait-for-output)
+       (tramp-send-command-and-check):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-set-file-acl):
+       Bind search length.
+
+2019-12-12  Juanma Barranquero  <address@hidden>
+
+       Avoid spurious warning about maybe-uninitialized variable
+
+       * src/xdisp.c (face_at_pos): Initialize base_face_id to 0
+       to silence the compiler.
+
+2019-12-12  Eli Zaretskii  <address@hidden>
+
+       Fix face extension of overlay strings on buffer text with faces
+
+       * src/xdisp.c (face_at_pos): Reject the face returned by
+       'underlying_face_id' when we are filtering by face attribute,
+       and that attribute's value fails the filter test.  (Bug#38563)
+
+2019-12-11  Robert Pluim  <address@hidden>
+
+       Treat passed strings as raw-text when percent-escaping in epg
+
+       The strings contained in gpg keys can contain UTF-8 data, but can also
+       use percent-escapes to encode non-ASCII chars.  When converting those
+       escapes, use 'raw-text' coding system rather than 'string-to-unibyte',
+       since the latter signals an error for non-ASCII characters.
+
+       * lisp/epg.el (epg--decode-percent-escape): Convert the passed
+       string to raw-text before treating percent escapes (Bug#38512).
+
+2019-12-11  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/debug.el (debug-on-entry): Allow undefined functions
+
+       Allow placing debug-on-entry on a function not-yet-defined, which
+       is convenient when the problem you're investigating happens while
+       the relevant files are loaded.
+
+2019-12-11  Stefan Monnier  <address@hidden>
+
+       * lisp/font-lock.el (font-lock-fontify-region): Widen here (bug#38049)
+
+       (font-lock-default-fontify-region): Instead of here.
+
+2019-12-11  Stefan Monnier  <address@hidden>
+
+       * lisp/calculator.el (cl-lib): Require at run-time as well.
+
+       Needed since we pass the `cl-flet` macro to `eval` in 
`calculator-funcall`.
+
+2019-12-11  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/message.el (message-expand-name-standard-ui): New option
+
+       (message--old-style-completion-functions): New var.
+       (message-completion-function): Allow functions on
+       `message-completion-alist` to follow the capf protocol.
+       (message-completion-alist): Adjust docstring accordingly.
+       Simplify regexps and make them apply more liberally.
+       (message-expand-group): Use the capf protocol.
+       (completion-category-defaults): Use 'substring' completion style by
+       default for email addresses.
+       (message--bbdb-query-with-words, message--name-table): New functions.
+       (message-expand-name): Use them to obey 
`message-expand-name-standard-ui`.
+
+2019-12-11  Stefan Monnier  <address@hidden>
+
+       * lisp/net/eudc.el (eudc-query-with-words): New function
+
+       Extracted from eudc-expand-inline.
+       (eudc-expand-inline): Use it.
+
+2019-12-11  Eli Zaretskii  <address@hidden>
+
+       Avoid infloop in face merging due to bad face spec
+
+       * src/xfaces.c (face_inherited_attr): Don't infloop if
+       get_lface_attributes fails in the inner loop.  Reported by
+       Yuri D'Elia <address@hidden>.
+
+2019-12-11  Paul Eggert  <address@hidden>
+
+       * src/xterm.c: Remove long-obsolete comments.
+
+2019-12-11  Robert Pluim  <address@hidden>
+
+       Check for GUI frame in ns_color_index_to_rgba
+
+       * src/nsterm.m (ns_color_index_to_rgba): Check that we're using a GUI
+       frame before converting color (Bug#38564).
+
+2019-12-11  Michael Albinus  <address@hidden>
+
+       Don't spam the echo area and the *Messages* buffer in Tramp
+
+       * lisp/net/tramp-sh.el (tramp-sh-handle-vc-registered):
+       When called during `revert-buffer', don't spam the echo area and
+       the *Messages* buffer.
+
+2019-12-10  Paul Eggert  <address@hidden>
+
+       Improve tv_nsec doc
+
+       * doc/lispref/internals.texi (Module Values):
+       Document tv_nsec more accurately.
+
+2019-12-10  Paul Eggert  <address@hidden>
+
+       Just use size_t for emacs_limb_t
+
+       * src/emacs-module.h.in: Do not include limits.h; no longer needed.
+       (emacs_limb_t, EMACS_LIMB_MAX): Now size_t and SIZE_MAX.
+
+2019-12-10  Mattias Engdegård  <address@hidden>
+
+       Add `union' and `intersection' to rx (bug#37849)
+
+       These character set operations, together with `not' for set
+       complement, improve the compositionality of rx, and reduce duplication
+       in complicated cases.  Named character classes are not permitted in
+       set operations.
+
+       * lisp/emacs-lisp/rx.el (rx--translate-any): Split into multiple
+       functions.
+       (rx--foldl, rx--parse-any, rx--generate-alt, rx--intervals-to-alt)
+       (rx--complement-intervals, rx--intersect-intervals)
+       (rx--union-intervals, rx--charset-intervals, rx--charset-union)
+       (rx--charset-all, rx--charset-intersection, rx--translate-union)
+       (rx--translate-intersection): New.
+       (rx--translate-not, rx--translate-form, rx--builtin-forms, rx):
+       Add `union' and `intersection'.
+       * test/lisp/emacs-lisp/rx-tests.el (rx-union ,rx-def-in-union)
+       (rx-intersection, rx-def-in-intersection): New tests.
+       * doc/lispref/searching.texi (Rx Constructs):
+       * etc/NEWS:
+       Document `union' and `intersection'.
+
+2019-12-10  Alan Third  <address@hidden>
+
+       Fix XBM files on NS (bug#26133)
+
+       Reinstate some of the functionality removed in commit
+       67a878f78f879ce534232408c34dd11f42dd802b.
+
+       * src/nsimage.m (ns_image_from_XBM): Use new reverseBytes argument.
+       ([EmacsImage initFromXBM:width:height:fg:bg:reverseBytes:]): Add
+       ability to reverse the contents of each byte for use with XBMs, while
+       still working with fringe bitmaps.
+       * src/nsterm.h
+       ([EmacsImage initFromXBM:width:height:fg:bg:reverseBytes:]): Modified
+       function definition.
+       * src/nsterm.m (ns_draw_fringe_bitmap): Use new reverseBytes argument.
+
+2019-12-10  Alan Third  <address@hidden>
+
+       Fix dabbrev-completion (bug#17899)
+
+       * lisp/dabbrev.el (dabbrev--check-all-buffers): Add new variable.
+       (dabbrev-completion): Lexical scoping means we can't use let to
+       override global variables, so use setq.
+       (dabbrev--reset-global-variables): Reset new variable.
+       (dabbrev--make-friend-buffer-list): Use new variable.
+       * test/lisp/dabbrev-tests.el (dabbrev-completion-test):
+       (dabbrev-completion-test-with-argument): New tests.
+
+2019-12-10  Alan Third  <address@hidden>
+
+       Fix mouse-position on macOS (bug#4892)
+
+       * src/nsterm.m (ns_mouse_position): Implement a search for the frame
+       under the mouse pointer.
+
+2019-12-10  Federico Tedin  <address@hidden>
+
+       Simplify call to add-to-history in read_minibuf
+
+       * src/minibuf.c (read_minibuf): Avoid restoring the previous buffer,
+       as this is already done at the end of the function; call
+       `add-to-history' after that point.
+
+2019-12-09  Paul Eggert  <address@hidden>
+
+       Spelling fixes
+
+2019-12-09  Paul Eggert  <address@hidden>
+
+       Prefer static to extern in ebrowse
+
+       * lib-src/ebrowse.c (info_where, info_cls, info_member)
+       (info_position, options, yyival, yytext, yytext_end, yyout)
+       (yyline, filename, is_ident, is_digit, is_white, f_append)
+       (f_verbose, f_very_verbose, f_structs, f_regexps)
+       (f_nested_classes, min_regexp, max_regexp, inbuffer, in)
+       (inbuffer_size, string_start, class_table, member_table)
+       (namespace_alias_table, global_symbols, current_namespace)
+       (all_namespaces, namespace_stack, namespace_stack_size)
+       (namespace_sp, tk, keyword_table, search_path)
+       (search_path_tail, scope_buffer, scope_buffer_size)
+       (scope_buffer_len): Now static.
+       (options): Now const.
+
+2019-12-09  Paul Eggert  <address@hidden>
+
+       * lib-src/etags.c (pot_etags_version): Remove; unused.
+
+       * lib-src/etags.c (Forth_suffixes): Now static.
+
+2019-12-09  Dmitry Gutov  <address@hidden>
+
+       Rename faces used in faces-tests.el
+
+       * test/data/themes/faces-test-light-theme.el:
+       * test/data/themes/faces-test-dark-theme.el: Update accordingly.
+
+       * test/lisp/faces-tests.el (faces--test-extend-with-themes):
+       Don't use the diff-mode faces.  Rename the definitions.
+
+2019-12-09  Dmitry Gutov  <address@hidden>
+
+       Make ':extend' inherited from default spec unless overridden
+
+       * lisp/faces.el (face-spec-recalc): Handle the :extend attribute
+       specially and always inherit it from the default spec unless
+       overwritten in a theme (bug#37774).
+
+       * test/lisp/faces-tests.el (faces--test-data-dir): New variable.
+       (faces--test-extend-with-themes): Use test themes instead of ones
+       from etc/themes.  Update expected values.
+
+       * test/data/themes/faces-test-dark-theme.el: New file.
+
+       * test/data/themes/faces-test-light-theme.el: New file.
+
+       * doc/lispref/display.texi (Face Attributes):
+       Update the description of ':extend'.
+
+       * etc/NEWS: Update the entry for ':extend'.
+
+       * etc/themes/adwaita-theme.el:
+       * etc/themes/deeper-blue-theme.el:
+       * etc/themes/dichromacy-theme.el:
+       * etc/themes/leuven-theme.el:
+       * etc/themes/light-blue-theme.el:
+       * etc/themes/manoj-dark-theme.el:
+       * etc/themes/misterioso-theme.el:
+       * etc/themes/tango-dark-theme.el:
+       * etc/themes/tango-theme.el:
+       * etc/themes/tsdh-dark-theme.el:
+       * etc/themes/tsdh-light-theme.el:
+       * etc/themes/wheatgrass-theme.el:
+       * etc/themes/wombat-theme.el: Remove the now-redundant ':extend'
+       attribute in all the themes.
+
+2019-12-09  Juri Linkov  <address@hidden>
+
+       * lisp/emacs-lisp/map-ynp.el (read-answer): Use [remap 
self-insert-command]
+
+       This reverts the last change that replaced [remap self-insert-command]
+       with [t].  The user should have freedom of using any command
+       in the minibuffer.  (bug#32738)
+
+2019-12-09  Paul Eggert  <address@hidden>
+
+       Improve module bignum doc
+
+       * doc/lispref/internals.texi (Module Values): Tighten up
+       wording and code, and make the long example self-contained.
+       Fit things in margins.
+
+2019-12-09  Dmitry Gutov  <address@hidden>
+
+       project-find-regexp: Default to symbol at point
+
+       * lisp/progmodes/project.el (project--read-regexp):
+       Don't rely on the Xref backend to provide the default value.
+
+2019-12-09  Eli Zaretskii  <address@hidden>
+
+       Add more tests for face :extend attribute
+
+       * test/lisp/faces-tests.el (faces--test-extend-with-themes):
+       New set of tests for verifying the :extend attribute across
+       theme loading and unloading, and also via face inheritance.
+       (Bug#37774)
+
+2019-12-08  Juri Linkov  <address@hidden>
+
+       * lisp/emacs-lisp/map-ynp.el (read-answer): Allow more SHORT-ANSWER 
types.
+
+       Treat SHORT-ANSWER as a character is characterp returns non-nil.
+       Otherwise, use key-description to print it.
+       Use catch-all [t] in keymap instead of [remap self-insert-command].
+       (bug#32738)
+
+2019-12-08  Juri Linkov  <address@hidden>
+
+       * doc/emacs/mini.texi (Minibuffer Edit): Add 
minibuffer-depth-indicate-mode.
+
+       * doc/emacs/search.texi (Regexp Backslash): Change xref from
+       "(elisp) Syntax Tables" to "(elisp) Syntax Class Table".
+
+       * doc/lispref/display.texi (Other Display Specs): Change xref from
+       "Images" to "Image Descriptors".
+
+       (bug#38519)
+
+2019-12-08  Juri Linkov  <address@hidden>
+
+       * lisp/simple.el (shell-command-on-region): Use set-buffer-major-mode.
+
+       This enables globalized minor modes explicitly after get-buffer-create
+       creates "*Shell Command Output*" buffer (bug#38111).
+
+2019-12-08  Juri Linkov  <address@hidden>
+
+       Move recenter/scroll keybindings from minibuffer-local-map to read-char 
map
+
+       * lisp/minibuffer.el (minibuffer-local-map): Move remap of
+       recenter/scroll keybindings to read-char-from-minibuffer-map.
+
+       * lisp/subr.el (read-char-from-minibuffer-map): Move remap of
+       recenter/scroll keybindings here from minibuffer-local-map.
+       (bug#38502)
+
+2019-12-08  Juri Linkov  <address@hidden>
+
+       * lisp/tab-line.el (tab-line-format): Use composite cache key 
(bug#38522)
+
+2019-12-08  Eric Abrahamsen  <address@hidden>
+
+       Continued fixes to gnus registry loading
+
+       * lisp/gnus/gnus-registry.el (gnus-registry-db): Do not initialize
+       this variable to an empty database, that should only be done for new
+       databases.
+       (gnus-registry-load): Remove "force" argument, don't check if the
+       database is already loaded, as we're only going to load it once.
+       (gnus-registry-initialize): Either load the db directly, or set up a
+       hook to do it later.
+       (gnus-registry-install-hooks): Don't load on
+       gnus-read-newsrc-el-hook.
+
+2019-12-07  Juri Linkov  <address@hidden>
+
+       * lisp/man.el (Man-width-max): New defcustom (bug#32536, bug#9385)
+
+       (Man-columns): New buffer-local variable.
+       (Man-columns): New function.
+       (Man-start-calling): Call Man-columns and set buffer-local Man-columns.
+       (Man--window-state-change-timer): New internal variable.
+       (Man--window-state-change): New internal function.
+       (Man-fit-to-window): New function.
+       (Man-mode): Add Man--window-state-change to local hook
+       window-state-change-functions.
+
+       * lisp/image-mode.el (image-fit-to-window): Add window arg to
+       window-buffer call.
+
+2019-12-07  Robert Cochran  <address@hidden>
+
+       Add hooks for after tab open, before close, and to prevent closing
+
+       * lisp/tab-bar.el (tab-bar-tab-post-open-functions,
+       tab-bar-tab-prevent-close-functions, tab-bar-tab-pre-close-functions):
+       New defcustoms
+       (tab-bar-new-tab-to, tab-bar-close-tab): Use new defcustoms
+
+2019-12-07  Jackson Ray Hamilton  <address@hidden>
+
+       Ignore comments and strings when matching JSX
+
+       * lisp/progmodes/js.el (js-jsx--matching-close-tag-pos): Ignore
+       comments and strings.
+       * test/manual/indent/jsx-comment-string.jsx: New test.
+
+2019-12-07  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Allow most functions on post-self-insert-hook to be called
+
+       This contrasts with the previous state where no such functions got 
called.
+       This fixes bug #38406.
+
+       * lisp/progmodes/cc-cmds.el 
(c--unsafe-post-self-insert-hook-functions): New
+       variable.
+       (c--call-post-self-insert-hook-more-safely-1): New function.
+       (c--call-post-self-insert-hook-more-safely): New macro.
+       (c-electric-pound, c-electric-brace, c-electric-slash, c-electric-star)
+       (c-electric-semi&comma, c-electric-colon, c-electric-lt-gt, 
c-electric-paren):
+       Invoke c--call-post-self-insert-hook-more-safely (which calls most of 
the hook
+       post-self-insert-hook) at the end of each of the commands.
+
+2019-12-07  Michael Albinus  <address@hidden>
+
+       Add unload code to tramp-integration.el
+
+       * lisp/net/tramp-integration.el (info-lookup->mode-cache)
+       (info-lookup->topic-cache, info-lookup-alist): Declare.
+       (ido, ivy, info-look): Adapt `tramp-integration-unload-hook'.
+
+2019-12-07  Eli Zaretskii  <address@hidden>
+
+       Corrections in semantic.texi
+
+       * doc/misc/semantic.texi (Parser code, Tag handling)
+       (Semanticdb Internals, Analyzer Internals, Tools): Fix file
+       names according to what was actually imported from the
+       original CEDET.  (Bug#38451)
+
+2019-12-07  Eli Zaretskii  <address@hidden>
+
+       Fix documentation of '-position' server command
+
+       * lisp/server.el (server-process-filter): Fix the description
+       of "-position" command to match the reality.  (Bug#38443)
+
+2019-12-07  Andrii Kolomoiets  <address@hidden>
+
+       Ensure buffer is alive in python-pdbtrack-unset-tracked-buffer
+
+       * lisp/progmodes/python.el (python-pdbtrack-unset-tracked-buffer):
+       Check if buffer `python-pdbtrack-tracked-buffer' is alive.
+       (Bug#38413)
+
+2019-12-07  Eli Zaretskii  <address@hidden>
+
+       Fix fallout from fixing bug#37782
+
+       * src/keyboard.c (read_key_sequence): Modify the fix for
+       bug#37782 so that it applies only to keyboard keys, not to
+       other events, such as a new buffer.  (Bug#38132)
+
+2019-12-07  Eli Zaretskii  <address@hidden>
+
+       Minor fix in the ELisp manual
+
+       * doc/lispref/files.texi (Saving Buffers): Remove the
+       reference to the obsolete Fast Lock mode.  (Bug#37956)
+
+2019-12-06  Eli Zaretskii  <address@hidden>
+
+       Remove duplicate macros from ses.el
+
+       * lisp/ses.el (1value, noreturn): Macros deleted, as we
+       nowadays have them in subr.el.  (Bug#38514)
+
+2019-12-06  Paul Eggert  <address@hidden>
+
+       Test format-time-string padding
+
+       Adapted from tests written by Stephen Gildea.
+       * test/src/timefns-tests.el:
+       (format-time-string-padding-minimal-deletes-unneeded-zeros)
+       (format-time-string-padding-minimal-retains-needed-zeros)
+       (format-time-string-padding-spaces)
+       (format-time-string-padding-zeros-adds-on-insignificant-side):
+       New tests.
+
+2019-12-06  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-12-06 nstrftime: better width support for %N, %z
+       2019-12-03 Avoid hassles caused by [[noreturn]] in C++
+       2019-12-02 Fix mistakes in --enable-threads=isoc fixes from 2019-12-01
+       * admin/merge-gnulib (AVOIDED_MODULES): Avoid pthread-h.
+       * lib/_Noreturn.h, lib/nstrftime.c, m4/gnulib-common.m4:
+       * m4/timer_time.m4:
+       Copy from Gnulib.
+       * lib/gnulib.mk.in: Regenerate.
+
+2019-12-06  Michael Albinus  <address@hidden>
+
+       Configure info-look.el to recognize Tramp symbols
+
+       * lisp/net/tramp-integration.el (info-lookup->cache)
+       (info-lookup->mode-value, info-lookup->other-modes)
+       (info-lookup->topic-value, info-lookup-maybe-add-help)
+       (info-lookup-cache): Declare.
+       (info-look): Configure info-look.el to recognize Tramp symbols.
+
+2019-12-06  Eli Zaretskii  <address@hidden>
+
+       Clarify documentation of functions that use the default face
+
+       * lisp/simple.el (default-font-height, default-font-width)
+       (default-line-height): Say in the doc strings that the default
+       face these functions use is for the currently selected frame.
+
+       * doc/lispref/display.texi (Attribute Functions)
+       (Low-Level Font): Document more clearly the dependence of the
+       results of 'face-font', 'default-font-width', and
+       'default-font-height' on the frame's definition of the default
+       face.
+
+2019-12-06  Eli Zaretskii  <address@hidden>
+
+       Fix set-marker when the position is larger than the largest buffer
+
+       * src/marker.c (set_marker_internal): Handle the case where
+       POSITION is beyond PTRDIFF_MAX, which can happen if Emacs was
+       built --with-wide-int.  Bug uncovered by the recently added
+       overlay tests.
+
+2019-12-05  Thierry Volpiatto  <address@hidden>
+
+       Merge branch 'completion-first-difference_face'
+
+2019-12-05  Thierry Volpiatto  <address@hidden>
+
+       Fix setting completions* faces in
+
+       `completion-pcm--hilit-commonality` so that these faces doesn't
+       override possible already existing faces in other UIs.
+
+       * lisp/minibuffer.el (completion-pcm--hilit-commonality): Use
+       `add-face-text-property` instead of `put-text-property`.
+
+2019-12-05  Andreas Politz  <address@hidden>
+
+       * test/src/buffer-tests.el: Add loads of overlay tests
+
+       Taken from the `feature/noverlay` branch.
+       Suggested by Vladimir Kazanov <address@hidden>.
+
+2019-12-05  Paul Eggert  <address@hidden>
+
+       2019-12-05 regexp lint fixes
+
+       * lisp/org/org-agenda.el (org-agenda-filter):
+       Fix unescaped literal ‘+’ in regexp.  Reported by Mattias Engdegård in:
+       https://lists.gnu.org/r/emacs-devel/2019-12/msg00215.html
+       * lisp/org/org.el (org-clone-subtree-with-time-shift):
+       Fix a regexp typo that mishandled strings like ‘\1d’,
+       reported by the same emaikl.
+       * lisp/progmodes/verilog-mode.el (verilog-inject-inst):
+       Omit unnecessary ‘?’ in regexp.  Reported by Mattias Engdegård in:
+       https://lists.gnu.org/r/emacs-devel/2019-12/msg00217.html
+
+2019-12-05  Eli Zaretskii  <address@hidden>
+
+       Another fix for :extend when :inherit is used
+
+       * src/xfaces.c (face_inherited_attr): Support also values of
+       :inherit which are lists.  (Bug#37774)
+
+2019-12-05  Eli Zaretskii  <address@hidden>
+
+       Minor copyedits of 'jit-lock-antiblink-grace's docs
+
+       * lisp/jit-lock.el (jit-lock-antiblink-grace):
+       * etc/NEWS (value): Reword the NEWS entry and the doc string.
+
+2019-12-05  Eli Zaretskii  <address@hidden>
+
+       Fix recent modifications in emacs-module-tests
+
+       * test/data/emacs-module/mod-test.c (extract_big_integer): Fix
+       calculation of size of 'magnitude' when 'emacs_limb_t' is wider
+       than 'unsigned long'.
+
+       * test/src/emacs-module-tests.el
+       (module--test-assertions--load-non-live-object)
+       (module--test-assertions--call-emacs-from-gc): On MS-Windows,
+       check also mod-test-emacs with ".exe" appended, before
+       skipping the tests.
+
+2019-12-05  Federico Tedin  <address@hidden>
+
+       Make HIST arg of read-from-minibuffer work with buffer-local vars
+
+       * lisp/simple.el (minibuffer-history-values): New function, should be
+       used to access the minibuffer input history variable when the
+       minibuffer might be active.  If the variable is buffer-local, the
+       previous buffer's value will be used.
+       (goto-history-element): Use the new function to access the minibuffer
+       history.
+       (minibuffer-history-isearch-wrap): Use the new function to access the
+       minibuffer history.
+       * src/minibuf.c (read_minibuf): Switch to previous buffer temporarily
+       before updating history list (Bug#38317).
+       (read-from-minibuffer): Extend documentation to mention that the
+       result of using the command will be added to the history list by
+       default.
+       * doc/lispref/minibuf.texi (Minibuffer History): Mention the
+       possibility of using a buffer-local variable as history.
+       * etc/NEWS: Announce changes.
+
+2019-12-04  Paul Eggert  <address@hidden>
+
+       Pacify GCC 9.2.1 with recent module changes
+
+       * src/emacs-module.c (module_encode): Remove unused decl.
+       (module_extract_big_integer): Pacify gcc -Wenum-compare.
+
+2019-12-04  Paul Eggert  <address@hidden>
+
+       Fix regex repetition of repetitions
+
+       Problems reported by Mattias Engdegård in:
+       https://lists.gnu.org/r/emacs-devel/2019-12/msg00066.html
+       * lisp/gnus/gnus-util.el (gnus-emacs-version):
+       * lisp/mail/rfc2368.el (rfc2368-mailto-regexp):
+       * lisp/net/tramp-sh.el (tramp-sh-inotifywait-process-filter):
+       * lisp/obsolete/terminal.el (te-parse-program-and-args):
+       * lisp/org/org-table.el (org-table-wrap-region):
+       * lisp/progmodes/verilog-mode.el (verilog-inject-inst):
+       Avoid repetition-of-repetition in regexp.
+
+2019-12-04  Philipp Stephani  <address@hidden>
+
+       Fix small bugs introduced in commit 096be9c454
+
+       * src/module-env-27.h:
+       * src/emacs-module.c (module_make_big_integer): Use 'emacs_limb_t'
+       instead of 'unsigned long' consistently
+
+2019-12-04  Juri Linkov  <address@hidden>
+
+       * lisp/tab-line.el: Cache the tab-line-format template.
+
+       (tab-line-format): Cache the result of tab-line-format-template in 
window.
+       (tab-line-format-template): New function that returns the value to 
cache.
+
+2019-12-04  Juri Linkov  <address@hidden>
+
+       * lisp/windmove.el (windmove-display-new-tab): New command.
+
+       (windmove-display-default-keybindings): Bind it to '?t'.
+       (windmove-display-in-direction): Call tab-bar-new-tab when 'dir' is 
'new-tab'.
+
+2019-12-04  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el (tab-bar-get-buffer-tab): Move code closer to its use.
+
+2019-12-04  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el (switch-to-buffer-other-tab): Use 
display-buffer-in-tab.
+
+       (tab-bar--tab): Use float-time instead of integer.
+       This improves correct detection of recent tabs switched within 1 sec.
+       (tab-bar--current-tab, tab-bar--current-tab-index)
+       (tab-bar--tab-index, tab-bar--tab-index-by-name)
+       (tab-bar--tab-index-recent): Add optional arg FRAME.
+       (tab-bar-move-tab-to-frame): Add with-selected-frame for 
tab-bar-close-tab.
+       (tab-bar--reusable-frames): New function.
+       (tab-bar-get-buffer-tab): Add index to the found tab.
+       (display-buffer-in-tab): Use `tab-name' entry instead of `name'.
+       Add `reusable-frames' entry.  (bug#38354)
+
+2019-12-04  João Távora  <address@hidden>
+
+       New jit-lock-antiblink-grace feature
+
+       * lisp/jit-lock.el (jit-lock-antiblink-grace): New defcustom.
+       (jit-lock--antiblink-line-beginning-position)
+       (jit-lock--antiblink-string-or-comment): New variables
+       (jit-lock--antiblink-post-command): New helper.
+       (jit-lock-mode): Tweak post-command-hook and
+       jit-lock-context-timer.
+
+       * etc/NEWS: Mention jit-lock-antiblink-grace
+
+2019-12-04  Philipp Stephani  <address@hidden>
+
+       Use new function encode_string_utf_8 for the module API, too
+
+       * src/emacs-module.c (module_encode): Remove.
+       (module_copy_string_contents): Use encode_string_utf_8.
+       (syms_of_module): Define symbol 'unicode-string-p'.
+
+2019-12-04  Philipp Stephani  <address@hidden>
+
+       * src/emacs-module.c: Add a few more restrictions for emacs-module.h
+
+2019-12-04  Philipp Stephani  <address@hidden>
+
+       Change module interface to no longer use GMP objects directly.
+
+       As described in the new comment added to emacs-module.c, using GMP
+       directly in the module interface has significant downsides: it couples
+       the module interface directly to the implementation and requires
+       module authors to link their module against the same GMP library as
+       Emacs itself, which is often difficult and an unnecessary burden.  By
+       picking a representation for the magnitude that often matches the one
+       used by GMP, we can avoid overhead when converting from and to GMP in
+       most cases.
+
+       Loading the test module in test/data/emacs-module and evaluating
+
+       (dotimes (_ 10000)
+         (mod-test-double (* 2 most-negative-fixnum)))
+
+       under Callgrind shows that on my (GNU/Linux) machine Emacs only spends
+       10% of the CPU time of mod-test-double in mpz_import and mpz_export
+       combined, even though that function does little else.  (By contrast,
+       30% is spent in allocate_pseudovector.)
+
+       * src/emacs-module.h.in: Don't check EMACS_MODULE_GMP.  Don't include
+       gmp.h.  Remove emacs_mpz structure.  Instead, define type alias
+       emacs_limb_t and macro EMACS_LIMB_MAX.
+
+       * src/module-env-27.h: Change interface of extract_big_integer and
+       make_big_integer to take a sign-magnitude representation instead of
+       mpz_t.
+
+       * src/emacs-module.c: Don't check EMACS_MODULE_GMP or
+       EMACS_MODULE_HAVE_MPZ_T.  Add a comment about the chosen
+       implementation.
+       (module_extract_big_integer, module_make_big_integer): Reimplement
+       without using mpz_t in the interface.
+
+       * doc/lispref/internals.texi (Module Values): Adapt function
+       documentation and example.  Stop mentioning GMP and EMACS_MODULE_GMP.
+
+       * test/data/emacs-module/mod-test.c: Don't define EMACS_MODULE_GMP or
+       EMACS_MODULE_HAVE_MPZ_T.
+       (memory_full, extract_big_integer, make_big_integer): New helper
+       functions, identical to example in the Info documentation.
+       (Fmod_test_nanoseconds, Fmod_test_double): Adapt to new interface.
+
+2019-12-04  Bastien  <address@hidden>
+
+       etc/ORG-NEWS: Fix contents
+
+2019-12-04  Juanma Barranquero  <address@hidden>
+
+       * lisp/doc-view.el (doc-view-doc-type): Doc fix.
+
+2019-12-04  Mattias Engdegård  <address@hidden>
+
+       Don't use the return value of 'push'
+
+       Although 'push' returns the modified list, it isn't actually
+       documented to do so, so don't rely on it.
+
+       * lisp/emacs-lisp/rx.el (rx--translate-any): Add progn.
+
+2019-12-03  Juanma Barranquero  <address@hidden>
+
+       Silence warnings in Org 9.3
+
+       * lisp/org/ob-eshell.el (eshell-send-input): Declare.
+       (eshell-last-output-start, eshell-last-output-end)
+       (eshell-last-input-end): Defvar.
+
+       * lisp/org/org-keys.el (cl-lib): Require.
+       (org-CUA-compatible): Move up defvaralias.
+
+2019-12-03  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el (tab-bar-move-tab-to-frame): New command (bug#38354)
+
+       (tab-bar-tabs, tab-bar--tab): Add optional arg FRAME.
+       (tab-bar-get-buffer-tab): Funcall tab-bar-tabs-function with arg FRAME
+       instead of using with-selected-frame.
+
+2019-12-03  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/message.el (message-sendmail-envelope-from): Fix typo
+
+       Reported by David Edmondson <address@hidden>.
+
+2019-12-03  Bastien  <address@hidden>
+
+       Update Org to 9.3
+
+2019-12-03  Stefan Monnier  <address@hidden>
+
+       (message-sendmail-envelope-from): Obey `mail-envelope-from` even if set 
later
+
+       * lisp/gnus/message.el (message-sendmail-envelope-from): Change default.
+       (message--sendmail-envelope-from): New function.
+       (message-sendmail-envelope-from): Use it.
+       * lisp/mail/emacsbug.el (report-emacs-bug): Use it.
+
+2019-12-03  Stefan Monnier  <address@hidden>
+
+       * lisp/minibuffer.el (completion-pcm--optimize-pattern): New function
+
+       This fixes bug#38458 where a final `point` in the pattern prevented
+       the expected normal behavior of point moving after the completion
+       of the final implicit `any`.
+
+       (completion-pcm--find-all-completions)
+       (completion-substring--all-completions): Use it.
+       (completion-basic--pattern): Don't both removing "" any more.
+       (completion-basic-try-completion): Use it as well as
+       `completion-basic--pattern`.
+
+2019-12-03  Mattias Engdegård  <address@hidden>
+
+       Avoid duplicated character classes in rx
+
+       For example, (any digit digit) should produce "[[:digit:]]",
+       not "[[:digit:][:digit:]]".
+
+       * lisp/emacs-lisp/rx.el (rx--translate-any): Deduplicate character 
classes.
+       * test/lisp/emacs-lisp/rx-tests.el (rx-any): Add test case.
+
+2019-12-02  Tobias Bading  <address@hidden>  (tiny change)
+
+       Fix incorrect GTK menus on HiDPI monitors with scaling factor > 1
+
+       This should fix Bug#31223, Bug#28106, Bug#23672 as well as Ubuntu bug
+       https://bugs.launchpad.net/ubuntu/+source/emacs25/+bug/1695228
+
+       Also fixes the formerly unscaled Y value returned by
+       frame-monitor-workarea (and display-monitor-attributes-list).
+
+       For details on why some GTK menus were empty please see thread
+       https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg01061.html
+
+       * src/gtkutil.c (menubar_map_cb, xg_update_frame_menubar): Scale up
+       req.height so that the menu bar's height is in device pixels as
+       expected.
+       (xg_event_is_for_menubar): Scale down rec.x and rec.y so that
+       gtk_widget_intersect() works as intended.
+       * src/xfns.c (Fx_display_monitor_attributes_list): Scale work.x and
+       work.y up to be in device pixels.
+
+2019-12-02  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix typo in populating otf_capability method for HarfBuzz
+
+       * src/ftcrfont.c (syms_of_ftcrfont_for_pdumper) [HAVE_HARFBUZZ]:
+       * src/ftfont.c (syms_of_ftfont_for_pdumper) [HAVE_HARFBUZZ]:
+       * src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper) [HAVE_HARFBUZZ]:
+       * src/xftfont.c (syms_of_xftfont_for_pdumper) [HAVE_HARFBUZZ]: Fix 
typos.
+
+2019-12-02  Juri Linkov  <address@hidden>
+
+       New functions window-state-buffers and tab-bar-get-buffer-tab 
(bug#38354)
+
+       * lisp/window.el (window-state-buffers): New function.
+       * lisp/tab-bar.el (tab-bar-get-buffer-tab): New function.
+
+       * lisp/emacs-lisp/seq.el (seq-some): Add autoload cookie.
+
+       * lisp/desktop.el (desktop-buffers-not-to-save-function): New variable.
+       (desktop-save-buffer-p): Use it.
+
+2019-12-02  Juanma Barranquero  <address@hidden>
+
+       Don't save/restore font-backend in framesets (bug#38442)
+
+       * lisp/frameset.el (frameset-persistent-filter-alist):
+       Add :never filter for `font-backend'.
+
+2019-12-01  Juanma Barranquero  <address@hidden>
+
+       ibuf-ext.el: Fix previous change
+
+       * lisp/ibuf-ext.el (ibuffer-generate-filter-groups): Use
+       `cl-destructuring-bind' instead of `cl-multiple-value-bind', as we
+       don't want to assume how multiple-values are implemented, and we
+       know a list is being returned anyway.  Suggested by Stefan Monnier.
+
+2019-12-01  Dmitry Gutov  <address@hidden>
+
+       * lisp/vc/diff-mode.el (diff-context): Set 'extend t' (bug#37774).
+
+2019-12-01  Mattias Engdegård  <address@hidden>
+
+       Temporary enable transient-mark-mode for rectangle selection
+
+       * lisp/mouse.el (mouse-drag-region-rectangle):
+       Enable transient-mark-mode during selection (bug#38431).
+
+2019-12-01  Michael Albinus  <address@hidden>
+
+       Suppress superfluous messages in tramp-tests
+
+       * test/lisp/net/tramp-tests.el (tramp-test10-write-region)
+       (tramp-test10-write-region-file-precious-flag)
+       (tramp-test34-connection-local-variables)
+       (tramp-test36-vc-registered): Let-bind `inhibit-message'.
+
+2019-12-01  Juanma Barranquero  <address@hidden>
+
+       ibuffer-mark-by-content-regexp: don't depend on `cl-some'
+
+       * lisp/ibuf-ext.el (ibuffer-mark-by-content-regexp): Use `cl-dolist'
+       instead of `cl-some' to avoid a run-time dependency on cl-lib that
+       triggers an unreported bug similar to bug#38430.
+
+2019-12-01  Juanma Barranquero  <address@hidden>
+
+       ibuffer-do-isearch: don't depend on `cl-values-list' (bug#38430)
+
+       * lisp/ibuf-ext.el (ibuffer-generate-filter-groups): Don't call
+       `cl-values-list'.  Our implementation of that function just
+       checks that its argument is a list, and then returns it.  In
+       this specific case, the argument is guaranteed to be a list.
+
+2019-11-30  Mattias Engdegård  <address@hidden>
+
+       Improved mouse rectangle selection robustness (bug#38013)
+
+       Make the rectangular selection work better with
+       display-line-numbers-mode and side-by-side windows.
+       Also make the mouse track the text cursor in a consistent way.
+
+       * lisp/mouse.el (mouse--rectangle-track-cursor): Added constant.
+       (mouse-drag-region-rectangle): Take the line-number width into
+       account, and use window-relative columns.  Track either the cursor or
+       rectangle corner with more care.
+
+2019-11-30  Juri Linkov  <address@hidden>
+
+       * lisp/tab-line.el (tab-line-auto-hscroll): Don't let-bind buffer-local 
values
+
+       Use setq to set buffer-local values of truncate-lines and 
buffer-undo-list.
+       This will prevent leaking of let-bound values to buffer-local values
+       of the minibuffer.
+
+2019-11-30  Juri Linkov  <address@hidden>
+
+       * lisp/gnus/gnus-win.el (gnus-configure-frame): Check for window-live-p.
+
+       * doc/misc/gnus.texi (Tabbed Interface): New node.  (bug#37998)
+
+2019-11-30  Juri Linkov  <address@hidden>
+
+       * lisp/subr.el: Add discard-input to more functions.
+
+       * lisp/subr.el (read-char-from-minibuffer-insert-other)
+       (y-or-n-p-insert-other): Use discard-input in case of user mistake.
+       (do-after-load-evaluation): Add discard-input before calling 'message',
+       so in case of the active minibuffer, calling minibuffer-message will 
allow
+       sit-for to wait the complete timeout, because discard-input will discard
+       all initial events that prevent sit-for from waiting during startup.
+       https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg00581.html
+
+2019-11-30  Alan Mackenzie  <address@hidden>
+
+       CC Mode.  Fix fontification bug with unterminated quotes on adjacent 
lines
+
+       In particular, with these unterminated quotes on each of two adjacent 
lines,
+       the following text was spuriously fontified with string face.
+
+       * lisp/progmodes/cc-defs.el
+       (c-search-backward-char-property-with-value-on-char): New macro.
+
+       * lisp/progmodes/cc-mode.el (c-clear-string-fences): Check whether 
there is an
+       unmatched quote at a lower buffer position which should match the 
current
+       quote, rather than wrongly assuming the latter is unmatched and marking 
it
+       with a punctuation syntax.
+       (c-font-lock-fontify-region): Ensure all pertinent parts of the buffer 
have
+       string fence properties applied before performing any syntactic 
operations on
+       it; in particular, this applies to a quote at an earlier buffer 
position which
+       "matches" one inside the region about to be fontified.
+
+2019-11-30  Juri Linkov  <address@hidden>
+
+       * lisp/image.el: Support image scaling with mouse in other buffer.
+
+       * lisp/image.el (image-increase-size, image-decrease-size):
+       Add optional arg position.
+       (image-mouse-increase-size, image-mouse-decrease-size):
+       Use '(point-marker)' for arg position.
+       (image--get-image): Use get-char-property from position if non-nil,
+       and its buffer.
+       (image--get-imagemagick-and-warn, image--change-size):
+       Add optional arg position.
+
+2019-11-30  Juri Linkov  <address@hidden>
+
+       Use run-with-idle-timer instead of debounce for responsive image 
scaling.
+
+       * lisp/emacs-lisp/timer.el (debounce, debounce-reduce): Revert macro 
addition.
+       https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg01133.html
+
+       * lisp/image.el (image-increase-size, image-decrease-size):
+       Use run-with-idle-timer.
+       (image--change-size): Rename back from image--change-size-function.
+
+       * lisp/image-mode.el (image-mode--setup-mode): Remove hooks
+       window-size-change-functions and window-selection-change-functions 
(bug#32672)
+       (image-fit-to-window): Rename from image--window-change-function.
+       (image--window-state-change): Rename from image--window-change.
+       Use run-with-idle-timer.
+
+2019-11-30  Juanma Barranquero  <address@hidden>
+
+       Fix compilation warning in vc-hg.el
+
+       * lisp/vc/vc-hg.el (vc-read-revision): Declare.
+
+2019-11-30  Eli Zaretskii  <address@hidden>
+
+       Minor fixes in last change
+
+       * doc/emacs/maintaining.texi (Switching Branches)
+       (Pulling / Pushing, Merging): Fix markup of shell commands.
+
+2019-11-30  Andrii Kolomoiets  <address@hidden>
+
+       vc-hg: prompt for branch to merge
+
+       * lisp/vc/vc-hg.el (vc-hg-merge-branch): Prompt for revision to merge.
+       (vc-hg-revision-table): Use branches, tags and bookmarks as competion
+       candidates.
+
+       * etc/NEWS: Mention changes of vc-hg.el
+
+       * doc/emacs/maintaining.texi (Switching Branches): Mention 'hg update'
+       command.
+       (Merging): Mention 'hg merge' command.
+
+       This fixes bug#22860
+
+2019-11-30  Michal Sojka  <address@hidden>
+
+       Fix preserving cell boundaries in table.el after <delete>
+
+       * lisp/textmodes/table.el (table-command-remap-alist): Add
+       entry for 'delete-forward-char'.  (Bug#38353)
+
+2019-11-30  Eli Zaretskii  <address@hidden>
+
+       Add ':extend' attribute to faces and themes
+
+       * etc/themes/wombat-theme.el:
+       * etc/themes/wheatgrass-theme.el:
+       * etc/themes/tsdh-light-theme.el:
+       * etc/themes/tsdh-dark-theme.el:
+       * etc/themes/tango-theme.el:
+       * etc/themes/tango-dark-theme.el:
+       * etc/themes/misterioso-theme.el:
+       * etc/themes/manoj-dark-theme.el:
+       * etc/themes/light-blue-theme.el:
+       * etc/themes/leuven-theme.el:
+       * etc/themes/dichromacy-theme.el:
+       * etc/themes/deeper-blue-theme.el:
+       * etc/themes/adwaita-theme.el: Add ':extend' attribute to all
+       faces that are by default defined with it.
+
+       * lisp/vc/smerge-mode.el (smerge-upper, smerge-lower)
+       (smerge-base):
+       * lisp/vc/log-view.el (log-view-file, log-view-message):
+       * lisp/vc/ediff-init.el (ediff-current-diff-A)
+       (ediff-current-diff-B, ediff-current-diff-C)
+       (ediff-current-diff-Ancestor, ediff-even-diff-A)
+       (ediff-even-diff-B, ediff-even-diff-C)
+       (ediff-even-diff-Ancestor, ediff-odd-diff-A)
+       (ediff-odd-diff-B, ediff-odd-diff-C)
+       (ediff-odd-diff-Ancestor):
+       * lisp/vc/diff-mode.el (diff-header, diff-file-header)
+       (diff-removed, diff-added): Make sure all definitions of faces
+       have the same value of the ':extend' property, otherwise
+       customizing background color or underline etc. attributes of
+       these faces on some displays will produce effects different
+       from other displays.
+
+2019-11-30  Juanma Barranquero  <address@hidden>
+
+       * src/lread.c (syms_of_lread): Doc fix.
+
+2019-11-29  Alan Third  <address@hidden>
+
+       Fix image scaling with masks (bug#38109)
+
+       * src/image.c (lookup_image): Move call to image_set_transform after
+       postprocess_image.
+       (image_create_x_image_and_pixmap_1): Use new function.
+       (image_set_transform): Apply the transform to the mask too.
+       (x_create_xrender_picture): New function.
+       (Create_Pixmap_From_Bitmap_Data):
+       (xpm_load): Use new function.
+       * src/xterm.c (x_composite_image): Use PictOpOver when there is a mask
+       so the transparency is honoured.
+       (x_draw_image_foreground_1): Use x_composite_image.
+
+2019-11-29  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/gnus.el (gnus-info): Define with `cl-defstruct`
+
+       This makes the accessors into (inlined) functions (instead of macros),
+       which simplifies some uses, and it makes the gnus-info-set-<foo>
+       macros redundant since we can use `setf` instead.  Remove them and
+       update all users.
+
+       (gnus-info-group, gnus-info-rank, gnus-info-read, gnus-info-marks)
+       (gnus-info-method, gnus-info-params): Auto-defined by defstruct.
+       (gnus-info-level, gnus-info-score): Define as a function.  Add 
gv-setter.
+       (gnus-info-set-group, gnus-info-set-rank, gnus-info-set-read): Remove,
+       use `setf` instead.
+       (gnus-info-set-marks, gnus-info-set-method, gnus-info-set-params):
+       Define as a function.
+       (gnus-info-set-entry): Delete function.
+       (gnus-info--grow-entry): New function, extracted from it.
+       (gnus-info--set-level, gnus-info--set-score): New functions, extracted
+       from the `gnus-info-set-level` and `gnus-info-set-score` which they 
replace.
+       (gnus-get-info): Define as a function.
+
+       * lisp/gnus/gnus-group.el (gnus-group-edit-group-done):
+       Use the `extend` arg of `gnus-info-set-method`.
+       (gnus-group-sort-selected-flat): eta-reduce.
+
+2019-11-29  Stefan Monnier  <address@hidden>
+
+       * lisp/textmodes/mhtml-mode.el: Fix bug#38372
+
+       The `sgml-syntax-propertize-rules` rely on the 
`sgml--syntax-propertize-ppss`
+       setup by `sgml-syntax-propertize` so it is not correct/safe to use
+       them directly like html used to do.
+
+       Change `sgml-syntax-propertize` so it can be used by mhtml,
+       and then adjust mhtml-mode accordingly.
+
+       * lisp/textmodes/mhtml-mode.el: Remove redundant `eval-and-compile`.
+       Only require cl-lib at compile-time.
+       (mhtml--syntax-propertize): New const, extracted from 
mhtml-syntax-propertize.
+       (mhtml-syntax-propertize): Use `sgml-syntax-propertize`.
+
+       * lisp/textmodes/sgml-mode.el (sgml--syntax-propertize): New const,
+       extracted from sgml-syntax-propertize.
+       (sgml-syntax-propertize): Add optional `rules-function` arg.
+
+2019-11-29  Robert Pluim  <address@hidden>
+
+       Add nsm-should-check IPv6 local subnet tests
+
+       * test/lisp/net/nsm-tests.el (nsm-check-local-subnet-ipv6): Now
+       that IPv6 addresses are returned from network-interface-list, test
+       nsm-should check and nsm-network-same-subnet for IPv6 as well.
+
+2019-11-29  Eli Zaretskii  <address@hidden>
+
+       Support showing one revision with Mercurial
+
+       * lisp/vc/vc-hg.el (vc-hg-print-log): Support 'with-diff'
+       invocation of "C-1 C-x v L".
+
+2019-11-29  Phil Sainty  <address@hidden>
+
+       * lisp/so-long.el (so-long-variable-overrides): Set bidi-inhibit-bpa
+
+       (Bug#38407)
+
+2019-11-29  Eli Zaretskii  <address@hidden>
+
+       Document 'zap-up-to-char'
+
+       * doc/emacs/killing.texi (Other Kill Commands): Document
+       'zap-up-to-char'.
+
+       * lisp/simple.el (zap-to-char): Mention 'zap-up-to-char' in
+       the doc string.  (Bug#38392)
+
+2019-11-29  Eli Zaretskii  <address@hidden>
+
+       Support showing one revision with Subversion
+
+       * lisp/vc/vc-svn.el (vc-svn-print-log): Support 'with-diff'
+       invocation of "C-1 C-x v L".
+
+2019-11-29  Eli Zaretskii  <address@hidden>
+
+       Minor fix in 'vc-print-root-log's prompt for revision ID
+
+       * lisp/vc/vc.el (vc-print-root-log): Remove text properties
+       from the default revision suggestion.
+
+2019-11-29  Eli Zaretskii  <address@hidden>
+
+       Support showing one revision with Bazaar
+
+       * lisp/vc/vc-bzr.el (vc-bzr-print-log): Support 'with-diff'
+       invocation of "C-1 C-x v L".
+
+2019-11-29  Eli Zaretskii  <address@hidden>
+
+       Improve indexing of VC log commands
+
+       * doc/emacs/maintaining.texi (VC Change Log): Add missing
+       index entries.
+
+2019-11-29  Eli Zaretskii  <address@hidden>
+
+       Improve documentation and UI of 'C-x v L'
+
+       * lisp/vc/vc.el (vc-print-root-log): Improve the wording of
+       the doc string and of the prompt for the root directory.
+
+       * etc/NEWS: Improve and expand the wording of the changes in
+       'C-x v L'.
+
+       * doc/emacs/maintaining.texi (VC Change Log): Improve and
+       clarify wording of the 'C-x v L' description.
+
+2019-11-28  Noam Postavsky  <address@hidden>
+
+       Improve errors & warnings due to fancy quoted vars (Bug#32939)
+
+       Add some hints to the message for byte compiler free & unused variable
+       warnings, and 'void-variable' errors where the variable has confusable
+       quote characters in it.
+       * lisp/help.el (uni-confusables), uni-confusables-regexp): New
+       constants.
+       (help-command-error-confusable-suggestions): New function, added to
+       `command-error-function'.
+       (help-uni-confusable-suggestions): New function.
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-variable-ref):
+       * lisp/emacs-lisp/cconv.el (cconv--analyze-use): Use it.
+
+       * lisp/emacs-lisp/lisp-mode.el
+       (lisp--match-confusable-symbol-character): New function.
+       (lisp-fdefs): Use it to fontify confusable characters with
+       font-lock-warning-face when they occur in symbol names.
+       * doc/lispref/modes.texi (Faces for Font Lock):
+       * doc/lispref/objects.texi (Basic Char Syntax): Recommend backslash
+       escaping of confusable characters, and mention new fontification.
+       * etc/NEWS: Announce the new fontification behavior.
+       * test/lisp/emacs-lisp/lisp-mode-tests.el (lisp-fontify-confusables):
+       New test.
+
+2019-11-28  Noam Postavsky  <address@hidden>
+
+       Stop signaling an error when reading "smart quotes" in symbols
+
+       Revert commits from 2018-01-28 "Fix round tripping of read->print for
+       symbols with strange quotes", and 2017-07-22 "Signal error for symbol
+       names with strange quotes (Bug#2967)".
+       * etc/NEWS: Remove corresponding entries.
+       * src/character.c (confusable_symbol_character_p):
+       * test/src/lread-tests.el (lread-tests--old-style-backquotes): Remove.
+       * src/lread.c (read1): Don't signal error on confusable character.
+       * src/print.c (print_object): Don't escape confusable characters.
+
+2019-11-28  Filipp Gunbin  <address@hidden>
+
+       Do not call custom-reevaluate-setting in dired-isearch-filenames-end
+
+         * lisp/dired-aux.el (dired-isearch-filenames-end)
+         (dired-isearch-filenames, dired-isearch-filenames-regexp): Use
+         temporary local variable for dired-isearch-filenames instead of
+         custom-reevaluate-setting (Bug#30187).  Without this fix, the value
+         set in .emacs with plain setq would be lost after one isearch.
+
+2019-11-28  Eli Zaretskii  <address@hidden>
+
+       Improve PY-b5 input methods
+
+       * leim/leim-ext.el ("quail/PY-b5"): Assign key sequence for
+       U+25CB (WHITE CIRCLE).  (Bug#3179)
+
+2019-11-28  Eli Zaretskii  <address@hidden>
+
+       Allow disabling the BPA part of bidi reordering
+
+       * src/xdisp.c (syms_of_xdisp): New variable 'bidi-inhibit-bpa'.
+       * src/bidi.c (bidi_paired_bracket_type): If 'bidi-inhibit-bpa'
+       is non-nil, return BIDI_BRACKET_NONE for all characters.
+
+       * lisp/frame.el: Add 'bidi-inhibit-bpa' to the list of
+       variables whose changes require redisplay.  (Bug#38407)
+
+2019-11-28  Robert Pluim  <address@hidden>
+
+       Support wlan in network-interface-list on pre-Vista Windows
+
+       * src/w32.c (network_interface_list): Check for 'Wireless' in
+       adapter description to support pre-Vista Windows.
+
+2019-11-27  Stefan Monnier  <address@hidden>
+
+       * lisp/subr.el (do-after-load-evaluation): Fix thinko
+
+2019-11-27  Juri Linkov  <address@hidden>
+
+       Menu bar rearrangements, move Print menu items to submenu, etc. 
(bug#37594)
+
+       * lisp/menu-bar.el (menu-bar-print-menu): New defvar.
+       (menu-bar-file-menu): Move print entries to submenu.
+       Add menu entries for tab-new, tab-close, make-frame-on-monitor.
+       (menu-bar-showhide-menu): Add menu entry for global-tab-line-mode.
+       Don't add toggle-tab-bar-mode-from-frame on ns where it's unavailable.
+       (menu-bar-tools-menu): Add rgrep.
+
+       * lisp/bindings.el (next-buffer, previous-buffer): Advertise bindings
+       'C-x right' and 'C-x left' instead of 'XF86Forward' and 'XF86Back'.
+
+2019-11-27  Juri Linkov  <address@hidden>
+
+       'C-1 C-x v L' asks for revision and shows its log entry with diff 
(bug#38044)
+
+       * doc/emacs/maintaining.texi (VC Change Log): Explain the numeric 
prefix arg
+       of 'C-x v L' (vc-print-root-log).
+
+       * lisp/vc/vc-git.el (vc-git-print-log): Add command line option "-p"
+       when vc-log-view-type is 'with-diff'.
+       (vc-git-log-view-mode): Use long style when vc-log-view-type is 
'with-diff'.
+
+       * lisp/vc/vc.el (vc-print-log-internal): Add optional arg 'type'.
+       (vc-log-internal-common): Use 'region-history-mode' when type is
+       'with-diff' and backend supports 'region-history-mode'.
+       (vc-print-root-log): Add optional arg 'revision'.  In interactive spec
+       read a revision when current-prefix-arg is 1.  Use current-prefix-arg
+       "as is" when it is a number.  Show revision in long style with diff
+       when limit is 1 and revision is non-nil.
+
+2019-11-27  Juri Linkov  <address@hidden>
+
+       * lisp/image-mode.el: Resize image on window resizing (bug#32672)
+
+       * lisp/image-mode.el (image--window-change): New function.
+       (image--window-change-function): New variable.
+       (image-mode--setup-mode): Add buffer-local hook image--window-change
+       to window-size-change-functions, window-state-change-functions,
+       window-selection-change-functions.
+
+2019-11-27  Eli Zaretskii  <address@hidden>
+
+       Make some anonymous faces extend to EOL
+
+       * lisp/vc/log-edit.el (log-edit-font-lock-keywords):
+       * lisp/mpc.el (mpc-separator):
+       * lisp/help.el (describe-key):
+       * lisp/help-fns.el (describe-symbol): Make the anonymous faces
+       extend to EOL.
+
+2019-11-27  Mattias Engdegård  <address@hidden>
+
+       Mouse rectangular region selection (bug#38013)
+
+       Make it possible to select a rectangular region using the mouse.
+       The standard binding is C-M-mouse-1.
+
+       * lisp/mouse.el (mouse-scroll-subr): Add ADJUST argument.
+       (mouse-drag-region-rectangle): New.
+       * lisp/rect.el (rectangle--reset-point-crutches): New.
+       (rectangle--reset-crutches): Use 'rectangle--reset-point-crutches'.
+       * src/xdisp.c (remember_mouse_glyph, syms_of_xdisp):
+       Add 'mouse-fine-grained-tracking'.
+       * doc/lispref/commands.texi (Motion Events):
+       Document 'mouse-fine-grained-tracking'.
+       * doc/emacs/frames.texi (Mouse Commands):
+       * doc/emacs/killing.texi (Rectangles):
+       * etc/NEWS: Document rectangular selection with the mouse.
+
+2019-11-27  Andrii Kolomoiets  <address@hidden>
+
+       Call vc-setup-buffer in vc-hg-log-incoming and vc-hg-log-outgoing
+
+       * lisp/vc/vc-hg.el (vc-hg-log-incoming, vc-hg-log-outgoing):
+       Call vc-setup-buffer.
+
+2019-11-27  Lars Ingebrigtsen  <address@hidden>
+
+       Fix documentation of eieio-class-name
+
+       * doc/misc/eieio.texi (Predicates): Update the documentation of
+       eieio-class-name to say what it really returns (bug#38365).
+
+2019-11-27  Lars Ingebrigtsen  <address@hidden>
+
+       Make message-allow-no-recipients 'always work
+
+       * lisp/gnus/message.el (message-send): Make
+       message-allow-no-recipients 'always work.
+
+2019-11-27  Mattias Engdegård  <address@hidden>
+
+       Fine-grained NS modifier key settings (bug#38296)
+
+       For the ns-KEY-modifier and ns-right-KEY-modifier variables, KEY
+       being 'control', 'command', 'alternate' and 'function', allow
+       values on the form (:ordinary SYMBOL :function :SYMBOL :mouse SYMBOL),
+       so that the key can be used for different modifiers (or none) in
+       different contexts.  This is particularly useful for using the macOS
+       Option key for extended character entry while still using it as an
+       Emacs modifier for function keys and mouse clicks.
+
+       * src/nsterm.m (mod_of_kind, right_mod, nil_or_none): Helper functions.
+       (EV_MODIFIERS2): Add KIND argument.
+       (EV_MODIFIERS): Adapt call to EV_MODIFIERS2.
+       (ns_get_shifted_character): Use correct event kind for modifiers.
+       (ns-alternate-modifier, ns-right-alternate-modifier)
+       (ns-command-modifier, ns-right-command-modifier)
+       (ns-control-modifier, ns-right-control-modifier)
+       (ns-function-modifier): Rewrite doc strings for new data format.
+       (QCordinary, QCfunction, QCmouse): Define symbols.
+       * lisp/cus-start.el: Conform to new data types.
+       * doc/emacs/macos.texi (Mac / GNUstep Basics)
+       (Mac / GNUstep Customization): Improved documentation.
+       * etc/NEWS: Mention the change.
+
+2019-11-26  Juri Linkov  <address@hidden>
+
+       message uses minibuffer-message in the active minibuffer (bug#17272 
bug#19064)
+
+       * doc/lispref/display.texi (Displaying Messages): Explain the
+       behavior of using minibuffer-message if the minibuffer is active.
+
+       * src/editfns.c (Fmessage_in_echo_area): New function with body
+       copied from Fmessage.
+       (Fmessage): Call minibuffer-message in the active minibuffer,
+       otherwise call Fmessage_in_echo_area.
+       (message-in-echo-area): New variable.
+
+       * lisp/isearch.el (isearch--momentary-message, isearch-message):
+       * lisp/minibuffer.el (minibuffer-message, minibuffer-completion-help):
+       Use 'message-in-echo-area' instead of 'message' where necessary.
+
+       * lisp/autorevert.el (auto-revert-handler):
+       * lisp/man.el (Man-bgproc-sentinel):
+       * lisp/subr.el (do-after-load-evaluation):
+       Revert recent changes that replaced 'message' with 'minibuffer-message'.
+       This is not needed anymore since 'message' uses 'minibuffer-message'
+       in the active minibuffer.
+
+2019-11-26  Juri Linkov  <address@hidden>
+
+       Allow recursive minibuffers for yes-or-no-p and y-or-n-p (bug#17272 
bug#19064)
+
+       * lisp/subr.el (y-or-n-p): Let-bind enable-recursive-minibuffers to t.
+
+       * src/fns.c (Fyes_or_no_p): Specbind Qenable_recursive_minibuffers to 
Qt.
+
+2019-11-26  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el (display-buffer-in-tab): New function (bug#38354)
+
+2019-11-26  Paul Eggert  <address@hidden>
+
+       etags: remove some arbitrary limits
+
+       etags had undefined behavior if input files, lines, tags, etc.,
+       had more than INT_MAX bytes.  Clean up the usage of integer types
+       to fix the overflow errors I found.
+       * admin/merge-gnulib (GNULIB_MODULES): Add mempcpy.
+       * lib-src/etags.c: Include inttypes.h, intprops.h.
+       (memcpyz): New function.  Use it to simplify several occurrences
+       of memcpy followed by storing a trailing '\0'.
+       (xnew): Use xnmalloc, to catch overflow on integer multiplication.
+       (xrnew): Change last arg to multiplier.  The type is not needed.
+       All callers changed.
+       (node, lineno, charno, linecharno, invalidcharno, make_tag):
+       (pfnote, add_node, number_len, C_symtype, lbz, Makefile_targets)
+       (readline):
+       Use intmax_t for line numbers and character positions, instead of
+       int or long.
+       (linebuffer, make_tag, pfnote, total_size_of_entries, put_entry)
+       (in_word_set, C_symtype, token, cstack, pushclass_above):
+       (popclass_above, write_classname, consider_token, C_entries)
+       (Ruby_functions, Makefile_targets, Lua_functions, TeX_commands)
+       (TeX_decode_env, erlang_func, erlang_attribute, erlang_atom)
+       (substitute, regex_tag_multiline, nocase_tail, readline_interval)
+       (readline, savenstr, concat, etags_getcwd, relative_filename)
+       (linebuffer_setlen):
+       Use ptrdiff_t for object sizes, instead of int or long or unsigned
+       or size_t.
+       (write_classname, C_entries):
+       Avoid sprintf, as the result could exceed INT_MAX bytes
+       and then behavior goes haywire.
+       (main): Use int, instead of unsigned, for argv counts.
+       (get_language_from_filename): Use bool for boolean.
+       (Ruby_functions): Prefer strcpy to memcpy when copying "=".
+       (linebuffer_setlen): Use ‘if’ instead of ‘while’.
+       (memory_full, xnmalloc, xnrealloc): New functions.
+       (xmalloc): Use memory_full, and take a ptrdiff_t instead of a size_t.
+       (xrealloc): Remove; no longer needed.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * lib/mempcpy.c, m4/mempcpy.m4: New files, copied from Gnulib.
+
+2019-11-26  Juanma Barranquero  <address@hidden>
+
+       Fix previous change to (next|previous)-buffer
+
+       * lisp/window.el (next-buffer, previous-buffer): If no other
+       buffer is available, signal 'user-error' only when called
+       interactively.
+
+2019-11-26  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-11-24 Fix errors in C++ mode on mingw
+       2019-11-24 time_r: Fix for mingw (regression from 2019-11-16)
+       2019-11-24 sys_time: Fix errors in C++ mode on mingw
+       2019-11-22 intprops: INT_MULTIPLY_WRAPV speedup for GCC 8.4+
+       2019-11-21 Disable many _GL_CXXALIASWARN on non-glibc
+       2019-11-21 Fix various errors in _GL_CXXALIAS_SYS invocations
+       2019-11-19 intprops: INT_MULTIPLY_WRAPV speedup for GCC 9.3+
+       2019-11-18 stdint: Define [u]intptr_t correctly on 64-bit native Windows
+       2019-11-18 stdint: Fix value of WINT_MAX when we override wint_t
+       2019-11-18 stdint: Avoid "conflicting types" error on mingw 5.22
+       2019-11-16 time_r: Fix for mingw
+       2019-11-06 regex: now back in sync with glibc
+       * lib/intprops.h, lib/regexec.c, lib/signal.in.h:
+       * lib/stdint.in.h, lib/stdio.in.h, lib/stdlib.in.h:
+       * lib/string.in.h, lib/sys_select.in.h, lib/sys_time.in.h:
+       * lib/time.in.h, lib/unistd.in.h, m4/time_r.m4:
+       Copy from Gnulib.
+
+2019-11-26  Stefan Monnier  <address@hidden>
+
+       * lisp/subr.el (do-after-load-evaluation): Handle batch mode as well
+
+2019-11-26  Robert Pluim  <address@hidden>
+
+       Use 127.0.0.1 in nsm-tests
+
+       Winsock doesn't like "127.1"
+
+       * test/lisp/net/nsm-tests.el (nsm-check-local-subnet-ipv4): Spell
+       numeric localhost as "127.0.0.1" instead of "127.1".
+
+2019-11-26  Stefan Monnier  <address@hidden>
+
+       * test/lisp/minibuffer-tests.el (completion-table-test-quoting): New 
test
+
+       * test/data/minibuffer-test-cttq$tion: New file-name test data.
+
+2019-11-26  Eli Zaretskii  <address@hidden>
+
+       Support ':extend' in faces defined by list of key/value pairs
+
+       * src/xfaces.c: Update and improve commentary at the beginning
+       of the file.
+       (face_attr_sym): New static array.
+       (init_xfaces): Initialize 'face_attr_sym'.
+       (merge_face_ref): Handle the :extend attribute in faces
+       specified as lists of key/value pairs.  (Bug#37774)
+
+2019-11-26  Eli Zaretskii  <address@hidden>
+
+       Fix MS-Windows build with mingw.org's MinGW
+
+       mingw.org's MinGW by default targets Windows 9X, so
+       _WIN32_WINNT is set to a value that bypasses declarations
+       in system headers we need to compile network_interface_list.
+       Also, the code needed a workaround for Windows XP, where
+       some functionality is missing from the GetAdaptersAddresses
+       API.
+
+       * src/w32.c (_WIN32_WINNT): Define to 0x0501, if the value is
+       lower, temporarily while processing iphlpapi.h.
+       (address_prefix_match): New helper function.
+       (network_interface_list): Work around the fact that the
+       OnLinkPrefixLength member of IP_ADAPTER_UNICAST_ADDRESS is not
+       available when _WIN32_WINNT < 0x0600.  On Windows XP use
+       special code that calls address_prefix_match to compute the
+       network prefix length.
+
+2019-11-26  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/asm-mode.el (asm-mode-map): Obey electric-indent-mode
+
+2019-11-26  Juanma Barranquero  <address@hidden>
+
+       (next|previous)-buffer no longer fail silently (bug#38384)
+
+       * lisp/window.el (next-buffer, previous-buffer):
+       Signal 'user-error' if there is no buffer to switch to.
+
+       * etc/NEWS: Document it.
+
+2019-11-26  Juanma Barranquero  <address@hidden>
+
+       lisp/auth-source.el: Depend on cl-lib unconditionally
+
+       A change in 2016-04-24 introduced a run-time dependency on cl-subseq.
+
+2019-11-26  Juanma Barranquero  <address@hidden>
+
+       lisp/auth-source-pass.el: Require cl-lib unconditionally
+
+       Changes in 2019-05-05 and 2019-05-14 introduced run-time dependencies
+       on cl-maplist and cl-remove-if-not.
+
+2019-11-26  Martin Rudalics  <address@hidden>
+
+       2019-11-26  Martin Rudalics  <address@hidden>
+
+       * lisp/window.el (switch-to-visible-buffer): Declare obsolete.
+       (switch-to-prev-buffer-skip): New option.
+       (switch-to-prev-buffer, switch-to-next-buffer): Obey
+       'switch-to-prev-buffer-skip'.
+       * doc/lispref/windows.texi (Window History): Remove
+       description of 'switch-to-visible-buffer'.  Describe new
+       option 'switch-to-prev-buffer-skip'
+       * etc/NEWS: Mention switch from 'switch-to-visible-buffer' to
+       'switch-to-prev-buffer-skip'.
+
+2019-11-26  Alex Murray  <address@hidden>  (tiny change)
+
+       Fix auth-source password lookup
+
+       * lisp/net/network-stream.el
+       (network-stream-certificate): Ensure :port is specified as a string to
+       'auth-source-search' (Bug#38371).
+
+2019-11-25  Robert Pluim  <address@hidden>
+
+       Extend network-interface-list to return IPv6 and network info
+
+       Bug#38218
+
+       * src/process.c (Fnetwork_interface_list): Extend argument list to
+       allow requesting full network info and/or IPv4/IPv6 info.
+       (network_interface_list) [HAVE_GETIFADDRS]: Use getifaddrs to retrieve
+       interface IP addresses.
+
+       * src/process.h: Update prototype of network_interface_list.
+
+       * src/w32.c (g_b_init_get_adapters_addresses): New init flag.
+       (globals_of_w32): Initialize it.
+       (GetAdaptersAddresses_Proc): New function typedef.
+       (get_adapters_addresses): New wrapper function.
+       (init_winsock): Load htonl and ntohl.
+       (sys_htonl, sys_ntohl): New wrapper functions.
+       (network_interface_list): Implement in terms of
+       get_adapters_addresses.
+
+       * nt/inc/sys/socket.h: Add sys_htonl and sys_ntohl prototypes.
+
+       * etc/NEWS: Announce IPv4/IPv6 changes in network-interface-list.
+
+       * doc/lispref/processes.texi (Misc Network): Document updated arglist
+       and return values for network-interface-list.
+
+2019-11-25  Lars Ingebrigtsen  <address@hidden>
+
+       Fix previous message.el point-restoring fix
+
+       * lisp/gnus/message.el (message-send-and-exit): Restore window
+       point before burying buffer so we actually bury the buffer.
+
+2019-11-25  Lars Ingebrigtsen  <address@hidden>
+
+       Remove outdated documentation
+
+       * doc/misc/eieio.texi (Predicates): Remove documentation of
+       same-class-fast-p, which was removed some years back (bug#38362).
+
+2019-11-25  João Távora  <address@hidden>
+
+       Fix test failures of test/lisp/auth-source-pass-tests.el
+
+       Failures introduced by recent "Make auth-source-pass-search understand
+       port lists", commit 92fda5a7f92162d610d57df14372bcfcee1f01b6.
+
+       * lisp/auth-source-pass.el
+       (auth-source-pass--generate-entry-suffixes): Fix test failures.
+
+2019-11-25  Filipp Gunbin  <address@hidden>
+
+       Correct small misprint in defcustom's docstring
+
+       * lisp/custom.el (defcustom): Correct misprint in docstring.
+
+2019-11-25  Eli Zaretskii  <address@hidden>
+
+       Fix face merging when some have :extend non-nil and some are inherited
+
+       * src/xfaces.c (face_inherited_attr): New function.
+       (merge_named_face): Call 'face_inherited_attr' when testing
+       whether a face that inherits from another fits the filtering
+       criteria specified by ATTR_FILTER.
+       (merge_face_vectors): Revert the changes made in this function
+       for filtering by ATTR_FILTER, and remove that argument as
+       well.  These tests are now completely done by the caller, see
+       'merge_named_face'.  (Bug#37774)
+
+2019-11-25  Robert Pluim  <address@hidden>
+
+       Handle auth-source-search failures in open-network-stream
+
+       If the user cancels the gpg decryption pop-up, auth-source-search
+       fails *and* epa pops up an error buffer.  Fix epa to allow suppressing
+       that, and ignore errors returned from auth-source-search.
+
+       * lisp/epa.el (epa-suppress-error-buffer): New defvar.  Bind non-nil
+       to stop epa popping up an error buffer.
+
+       * lisp/net/network-stream.el: require epa when byte-compiling.
+       (network-stream-certificate): ignore errors when calling
+       auth-source-search, and suppress the epa error buffer.
+
+2019-11-23  Paul Eggert  <address@hidden>
+
+       Add eassert check for bad default face
+
+       * src/xdisp.c (append_space_for_newline): Add an eassert check
+       that default_face is not null, by calling FACE_FROM_ID instead of
+       FACE_FROM_ID_OR_NULL.  Initialize a local only if needed.
+
+2019-11-23  Paul Eggert  <address@hidden>
+
+       Port gnutls.c to --enable-gcc-warnings --without-gnutls
+
+       * src/gnutls.c: Move the "#ifdef HAVE_GNUTLS" earlier, so
+       that "./configure --enable-gcc-warnings --without-gnutls"
+       does not complain about macros being defined but never used.
+       Indent "#" directives more consistently.
+
+2019-11-23  Juanma Barranquero  <address@hidden>
+
+       Rework previous fix to bug#38222
+
+       * lisp/help.el (help--doc-without-fn): Remove.
+       (describe-mode): Use help-split-fundoc instead.
+
+2019-11-23  Juanma Barranquero  <address@hidden>
+
+       Make help-split-fundoc more flexible about what returns
+
+       * lisp/help.el (help-split-fundoc): New arg SECTION to return
+       only the usage or doc parts of the docstring, or both even if
+       there is no usage.
+
+       * test/lisp/help-tests.el: New file.
+
+2019-11-23  Juri Linkov  <address@hidden>
+
+       Use new macro debounce-reduce to make mouse scaling of images more 
responsive
+
+       * lisp/emacs-lisp/timer.el (debounce, debounce-reduce): New macros.
+
+       * lisp/image.el (image-increase-size, image-decrease-size):
+       Use funcall to call image--change-size-function.
+       (image--change-size-function): Move code from defun of
+       image--change-size to defvar that has the value of lambda
+       returned from debounce-reduce.  (Bug#38187)
+
+2019-11-23  Robert Pluim  <address@hidden>
+
+       Default network-stream-use-client-certificates to nil
+
+       * lisp/net/network-stream.el (network-stream-use-client-certificates):
+       Default to nil.
+       (open-network-stream): Adapt description to new default of
+       network-stream-use-client-certificates.
+
+       * etc/NEWS: network-stream-use-client-certificates defaults to nil
+       now.
+
+       * doc/lispref/processes.texi (Network): Flip
+       network-stream-use-client-certificates description.
+
+       * doc/misc/auth.texi (Help for users): Mention
+       network-stream-use-client-certificates.
+
+2019-11-23  Robert Pluim  <address@hidden>
+
+       Have what-cursor-position optionally show character name
+
+       * lisp/simple.el (what-cursor-show-names): New defcustom, default nil.
+       (what-cursor-position): Show character names if what-cursor-show-names
+       is non-nil.
+
+       * doc/emacs/basic.texi (Position Info): Add what-cursor-show-names
+       description.
+
+       * etc/NEWS: Announce what-cursor-show-names.
+
+2019-11-23  Christopher Schmidt  <address@hidden>
+
+       Always expand "total" in dired
+
+       * lisp/files.el (insert-directory): Always replace "total" with
+       "total used in directory", even when we don't have free disk space
+       (bug#13191).  This makes the display more consistent.
+
+2019-11-23  Michael Heerdegen  <address@hidden>
+
+       Fix edebug instrumentation removing from advised functions
+
+       * lisp/emacs-lisp/edebug.el (edebug-remove-instrumentation): Handle
+       advised functions correctly.
+
+2019-11-23  Eli Zaretskii  <address@hidden>
+
+       Improve indexing of modifier keys
+
+       * doc/emacs/commands.texi (User Input): Add index entry for
+       the Alt key serving as Meta.
+       * doc/emacs/custom.texi (Modifier Keys): Add index entries for
+       Alt, Super, and Hyper modifier keys.  (Bug#38315)
+
+2019-11-23  Eli Zaretskii  <address@hidden>
+
+       Fix cursor display at EOL before extended face
+
+       * src/xdisp.c (extend_face_to_end_of_line): Make sure the
+       character position of the stretch glyph inserted to extend the
+       face is zero, as various other parts of the display code rely
+       on that.  (Bug#38330)
+
+2019-11-23  Eli Zaretskii  <address@hidden>
+
+       Fix and speed up en/decoding of UTF-8 strings
+
+       * src/coding.c (get_char_bytes, encode_string_utf_8)
+       (decode_string_utf_8): Fix commentary.
+       (encode_string_utf_8): Return the original ASCII string only
+       if NOCOPY is non-zero.
+       (decode_string_utf_8): Accept 2 additional arguments STR and
+       STR_LEN, which allow to pass the input text as a C string.
+       (make_string_from_utf8): Delegate the job to decode_string_utf_8.
+       * src/coding.h: Update the prototype of decode_string_utf_8.
+       * src/json.c (json_encode): Call encode_string_utf_8.
+
+2019-11-22  João Távora  <address@hidden>
+
+       * lisp/minibuffer.el (completion-flex-nospace): Default to t.
+
+2019-11-22  Juanma Barranquero  <address@hidden>
+
+       help-follow-symbol now complains if no symbol found (bug#38248)
+
+       * lisp/help-mode.el (help-follow-symbol): Signal 'user-error' if
+       there's no symbol at POS.
+
+       * etc/NEWS: Document it.
+
+2019-11-22  Filipp Gunbin  <address@hidden>
+
+       Check gnus-mailing-list-groups in turn-on-gnus-mailing-list-mode
+
+       * lisp/gnus/gnus-ml.el (turn-on-gnus-mailing-list-mode): Check also
+       gnus-mailing-list-groups variable.
+
+2019-11-22  Filipp Gunbin  <address@hidden>
+
+       Make gnus-mailing-list-archive recognize https
+
+       * lisp/gnus/gnus-ml.el (gnus-mailing-list-archive): Accept https in
+       regexp.
+
+2019-11-22  Filipp Gunbin  <address@hidden>
+
+       Unify docstrings of Gnus summary's copy/move/crosspost article functions
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-copy-article)
+       (gnus-summary-crosspost-article): Make docstrings refer to
+       gnus-summary-move-article.
+
+2019-11-22  dickmao  <none>
+
+       Refix conditional step clauses in cl-loop
+
+       * lisp/emacs-lisp/cl-macs.el
+       (cl--loop-bindings, cl--loop-symbol-macs, cl-loop):
+       Add cl--loop-conditions, remove cl--loop-guard-cond.
+       (cl--push-clause-loop-body): Apply clause to both cl--loop-conditions
+       and cl--loop-body
+       (cl--parse-loop-clause): Use cl--push-clause-loop-body.
+       * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-loop-and-assignment):
+       Use docstring.
+       (cl-macs-loop-for-as-arith): Removed expected failure.
+       (cl-macs-loop-conditional-step-clauses): Add some tests (bug#29799).
+
+2019-11-22  Eli Zaretskii  <address@hidden>
+
+       Fix uses of inhibit-message in package.el
+
+       * lisp/emacs-lisp/package.el (package-generate-autoloads)
+       (package--compile, package--save-selected-packages): Don't use
+       'inhibit-message' to bind 'noninteractive' and 'save-silently',
+       since 'inhibit-message' already disables all messages.
+       (Bug#38264)
+
+2019-11-22  Hong Xu  <address@hidden>
+
+       font-lock special attributes in python-mode
+
+       * lisp/progmodes/python.el (python-font-lock-keywords-level-2): Add
+       special attributes (bug#38318).
+
+2019-11-22  Lars Ingebrigtsen  <address@hidden>
+
+       Give better error messages in image-convert
+
+       * lisp/image/image-converter.el (image-convert): Make
+       image-convert bug out earlier on a wrong IMAGE-FORMAT value
+       (bug#38310).
+
+2019-11-22  João Távora  <address@hidden>
+
+       Make auth-source-pass-search understand port lists
+
+       For cases such as a typical IMAP Gnus setup, auto-source-pass-search
+       is passed a list of "port aliases" like (993 "imaps" "imap" "993"
+       "143") in hopes of finding a matching ~/.password-store entry.
+
+       This modification makes this library understand and unroll the port
+       list so that, i.e. "domain:993", "domain:imaps"", "domain:imap",
+       etc. are computed as potential suffixes.  Previously a nonsensical
+       string "domain:(993 imaps imap ...)" was returned.
+
+       * lisp/auth-source-pass.el
+       (auth-source-pass--generate-entry-suffixes): Allow PORT to be a list
+       of ports.
+
+2019-11-21  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/smie.el (smie-next-sexp): Fix bug#38255
+
+       Handle the case where the token is not in `smie-grammar`, either because
+       the caller is making an error, or because it's a paren-like token that's
+       not handled in the grammar but directly via the syntax tables.
+
+2019-11-21  Lars Ingebrigtsen  <address@hidden>
+
+       Make `C-c C-w' insert a signature even when overridden
+
+       * lisp/gnus/message.el (message-insert-signature): When called
+       interactively, look harder for a signature to insert (bug#38289).
+
+2019-11-21  Stefan Monnier  <address@hidden>
+
+       * lisp/minibuffer.el (completions-common-part): Make it blue when 
possible
+
+       * lisp/files.el (locate-file-completion-table): Fix typo
+
+2019-11-21  Thierry Volpiatto  <address@hidden>
+
+       Add new variable to prevent flex completion style
+
+       matching spaces.  This allows flex style working smoothly with other
+       styles like helm using spaces.
+
+       * lisp/minibuffer.el (completion-flex-nospace): New user var.
+       (completion-flex-try-completion): Use it.
+       (completion-flex-all-completions): Same.
+
+2019-11-21  Wilson Snyder  <address@hidden>
+
+       When verilog-auto-ignore-concat is true, also ignore parenthesized 
signals.
+
+       * lisp/progmodes/verilog-mode.el (verilog-auto-ignore-concat): When
+       `verilog-auto-ignore-concat' is true, also ignore parenthesized
+       signals.
+
+2019-11-21  Eric Abrahamsen  <address@hidden>
+
+       Fix Gnus summary backtab keybindings to use button-based functions
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-mode-map,
+         gnus-summary-article-map): Backtab should call
+         gnus-summary-button-backward, not gnus-summary-widget-backward.
+
+2019-11-21  Eli Zaretskii  <address@hidden>
+
+       Fix file notifications on macOS
+
+       * src/kqueue.c (Fkqueue_add_watch): Don't use encoded file
+       names in objects and APIs that expect decoded multibyte
+       strings.  (Bug#38287)
+
+2019-11-21  Eli Zaretskii  <address@hidden>
+
+       Fix a recent change in ELisp manual
+
+       * doc/lispref/objects.texi (Special Read Syntax): Fix wording
+       of the last change: don't document #' twice.  (Bug#38278)
+
+2019-11-21  Eli Zaretskii  <address@hidden>
+
+       Support 'vc-region-history' for Mercurial
+
+       * lisp/vc/vc-hg.el (vc-hg-region-history)
+       (vc-hg-region-history-font-lock, vc-hg-region-history-mode):
+       New functions.
+       (vc-hg-region-history-mode-map)
+       (vc-hg--log-view-long-font-lock-keywords)
+       (vc-hg-region-history-font-lock-keywords): New variables.
+       * lisp/vc/vc-git.el (vc-git-region-history): Update commentary.
+
+       * doc/emacs/maintaining.texi (VC Change Log): Add
+       'vc-region-history' to the table at beginning of node.  Update
+       the VCSes that support 'vc-region-history'.
+
+       * etc/NEWS: Mention the new feature of vc-hg.el.
+
+2019-11-21  Lars Ingebrigtsen  <address@hidden>
+
+       Fix up previous #' documentation addition
+
+       * doc/lispref/objects.texi (Special Read Syntax): Add an xref for
+       the #' (bug#38278).
+
+2019-11-21  Lars Ingebrigtsen  <address@hidden>
+
+       Document the #' syntax
+
+       * doc/lispref/objects.texi (Special Read Syntax): Document the #'
+       syntax (bug#38278).
+
+2019-11-21  Lars Ingebrigtsen  <address@hidden>
+
+       Restore point after sending a message
+
+       * lisp/gnus/message.el (message-send-and-exit): Restore point
+       after sending (bug#38303).
+
+2019-11-21  Lars Ingebrigtsen  <address@hidden>
+
+       Make pp-buffer into a command
+
+       * lisp/emacs-lisp/pp.el (pp-buffer): Make into a command (bug#38306).
+
+2019-11-21  Lars Ingebrigtsen  <address@hidden>
+
+       Fix loading image-converter in the case where the type is passed in
+
+       * lisp/image.el (create-image): Load image-converter when
+       converting images (bug#38310).
+
+2019-11-21  Lars Ingebrigtsen  <address@hidden>
+
+       Rewrite the image-convert doc string
+
+       * lisp/image/image-converter.el (image-convert): Clarify the
+       calling convention (bug#38310).
+
+2019-11-21  Dario Gjorgjevski  <address@hidden>
+
+       Hide quoted passwords with spaces in Authinfo
+
+       * lisp/auth-source.el (auth-source-netrc-looking-at-one): New
+       function, extracted from auth-source-netrc-parse-one.
+       (auth-source-netrc-parse-one, authinfo--hide-passwords): Use
+       auth-source-netrc-looking-at-one (bug#38311).
+
+2019-11-21  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-unload-tramp): Do not enable ange-ftp.  
(Bug#38025)
+
+2019-11-20  Juri Linkov  <address@hidden>
+
+       * lisp/image.el: Mouse-wheel scaling on images (bug#38187)
+
+       * lisp/image.el (image-mouse-increase-size)
+       (image-mouse-decrease-size): New commands.
+       (image-map): Bind C-wheel-down and C-mouse-5 to
+       image-mouse-decrease-size, C-wheel-up and C-mouse-4 to
+       image-mouse-increase-size.
+
+2019-11-20  Paul Eggert  <address@hidden>
+
+       * src/sysdep.c: Improve comment wording.
+
+       * etc/NEWS: Improve XDG_RUNTIME_DIR doc.
+
+2019-11-20  Michael Albinus  <address@hidden>
+
+       Add renaming of remote buffer file names to Tramp
+
+       * doc/misc/tramp.texi (Default User): Fix typo.
+       (Cleanup remote connections): Adapt arguments of
+       `tramp-cleanup-connection'.
+       (Renaming remote files): New node.
+       (Frequently Asked Questions): New item "How to save files when a
+       remote host isn't reachable anymore?".
+
+       * etc/NEWS: Add `tramp-rename-files' and `tramp-rename-these-files'.
+
+       * lisp/net/tramp-cmds.el (tramp-default-rename-alist)
+       (tramp-confirm-rename-file-names): New defcustoms.
+       (tramp-rename-read-file-name-dir)
+       (tramp-rename-read-file-name-init): New defsubsts.
+       (tramp-default-rename-file, tramp-rename-files)
+       (tramp-rename-these-files): New defuns.
+
+       * lisp/net/tramp-integration.el (ido, ivy): Integrate with them.
+
+2019-11-20  Lars Ingebrigtsen  <address@hidden>
+
+       Make with-suppressed-warnings work for macros, too
+
+       * lisp/emacs-lisp/macroexp.el (macroexp-macroexpand): Pass the
+       macro/alias symbol on to byte-compile-warning-enabled-p so that
+       with-suppressed-warnings works for macros, too.
+
+2019-11-20  Robert Pluim  <address@hidden>
+
+       Remove info references to gmane web search
+
+       * doc/misc/gnus.texi (Foreign Groups, Web Searches, What is nnir?):
+       (Setting up nnir, Associating Engines, The imap Engine):
+       (Customizations): Remove references to gmane web search.
+
+2019-11-19  Stephen Gildea  <address@hidden>
+
+       Expand coverage of unit tests for time-stamp
+
+       * test/lisp/time-stamp-tests.el: Remove redundant word "test"
+       from the names of all the tests.
+       (time-stamp-custom-time-zone, time-stamp-custom-pattern,
+       time-stamp-custom-inserts-lines, time-stamp-custom-count,
+       time-stamp-helper-safe-locals): New tests
+
+2019-11-19  Paul Eggert  <address@hidden>
+
+       Make .pdmp file more reproducible
+
+       Problem reported by Ulrich Müller
+       <https://lists.gnu.org/r/emacs-devel/2019-11/msg00757.html>
+       and diagnosed by Andreas Schwab
+       <https://lists.gnu.org/r/emacs-devel/2019-11/msg00774.html>.
+       * src/sysdep.c (maybe_disable_address_randomization):
+       Disable ASLR if any kind of dumping, instead of merely if
+       unexec dumping.  Omit first arg for simplicity; all uses changed.
+
+2019-11-19  João Távora  <address@hidden>
+
+       * lisp/icomplete.el (icomplete-fido-kill): Unbreak yes-or-no-p usage
+
+       Discussed in the context of bug#19064, bug#17272.
+
+2019-11-19  Eli Zaretskii  <address@hidden>
+
+       Ensure Rmail summary is updated after editing a message
+
+       * lisp/mail/rmailedit.el (rmail-cease-edit): If this mbox file
+       has a summary, update the summary after editing.  (Bug#38193)
+
+2019-11-19  Eli Zaretskii  <address@hidden>
+
+       Fix updating members of zip archives
+
+       * lisp/arc-mode.el (archive-zip-case-fiddle): Change the
+       default to nil except on MS-DOS.  Update the doc string to
+       make clear that a non-nil value also affects updating the
+       archive.  (Bug#38260)
+
+2019-11-19  Robert Pluim  <address@hidden>
+
+       Remember the full GTK font description
+
+       Remember the full font description instead of just the family so that
+       size/style/weight settings are preserved.
+
+       * src/gtkutil.c (xg_get_font) [HAVE_GTK3]: Use the pango font
+       description to set/get the current font (Bug#28901).
+
+2019-11-19  Robert Pluim  <address@hidden>
+
+       Don't error when comparing IPv4 and IPv6 addresses
+
+       * lisp/net/nsm.el (nsm-network-same-subnet): Compare lengths of
+       local-ip and ip; different lengths can never match.
+       (nsm-should-check): Chop port off end of address.
+
+2019-11-19  Lars Ingebrigtsen  <address@hidden>
+
+       Allow eww to display exotic images like webp
+
+       * lisp/image.el (image-type): Allow passing in the image type.
+       (create-image): Make conversion work with data in addition to files.
+
+       * lisp/image/image-converter.el (image-convert-p): Allow taking
+       working on data in addition to files (bug#38036).
+       (image-convert): Ditto.
+       (image-converter--convert): Extend signature to say whether we're
+       getting a file or data.
+       (image-converter--convert-magick): Convert data.
+       (image-converter--convert): Ditto.
+
+2019-11-19  Juanma Barranquero  <address@hidden>
+
+       Strip "(fn...)" from output of `describe-mode' (bug#38222)
+
+       * lisp/help.el (help--doc-without-fn): New function.
+       (describe-mode): Use it.
+
+2019-11-18  Stefan Monnier  <address@hidden>
+
+       * lisp/org/org.el (org-mode): Add pcomplete-completions-at-point to 
capf.
+
+       This lets the normal `completion-at-point` and `complete-symbol`
+       use `pcomplete` for completion.
+
+       (org-mode-map): Leave M-TAB bound to the global default since
+       `pcomplete` is now obsolete.
+
+2019-11-18  Juri Linkov  <address@hidden>
+
+       * lisp/tab-line.el (tab-line-auto-hscroll): New defcustom (bug#37667)
+
+       (tab-line-auto-hscroll): Use this option in the function.
+
+2019-11-18  Juri Linkov  <address@hidden>
+
+       * lisp/vc/ediff-util.el: Set this-command to ediff-quit (bug#38219)
+
+       * lisp/vc/ediff-util.el (ediff-toggle-read-only, ediff-quit):
+       Set this-command to the same command after using y-or-n-p
+       that doesn't guarantee to keep this-command unchanged
+       to check it later for some contrived logic.
+
+2019-11-18  Robert Pluim  <address@hidden>
+
+       Check for HAVE_GTK3 instead of a specific version
+
+       Our minimum GTK3 version is 3.10, the font filter functions appeared
+       in 3.2.
+
+       * src/gtkutil.c (xg_font_filter) [HAVE_GTK3]: Just check for HAVE_GTK3.
+       (xg_get_font) [HAVE_GTK3]: Same here.
+
+2019-11-18  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-handle-file-regular-p): Improve error 
handling.
+
+2019-11-18  Lars Ingebrigtsen  <address@hidden>
+
+       Fix cl-prettyexpand in the non-FULL case
+
+       * lisp/emacs-lisp/cl-extra.el (cl-prettyexpand): This function has
+       apparently not worked for at least a couple of decades
+       (bug#38206) unless supplied with a FULL parameter.  Make the FULL
+       parameter obsolete and make the function always work as it did
+       with a non-nil FULL.
+
+2019-11-18  Phil Sainty  <address@hidden>
+
+       Merge branch 'scratch/so-long-updates'
+
+2019-11-18  Phil Sainty  <address@hidden>
+
+       lisp/so-long.el: Refactor menu action commands
+
+       * lisp/so-long.el (so-long-menu): Call `so-long' with an ACTION
+       argument instead of using `so-long-menu-item-replace-action'.
+       (so-long-menu-item-replace-action): Remove the deprecated function.
+
+       * test/lisp/so-long-tests/so-long-tests.el
+       (so-long-tests-so-long-menu-item-replace-action): Update the test.
+
+2019-11-18  Phil Sainty  <address@hidden>
+
+       * lisp/so-long.el (so-long): Firstly revert the existing action, if any
+
+       This makes `so-long' consistent with the action commands in the menu.
+
+       If multiple actions were to be layered on top of one another, we would
+       lose the ability to revert to the normal state.  Custom actions
+       combining multiple other actions can be defined if necessary.
+
+2019-11-18  Stefan Monnier  <address@hidden>
+           Phil Sainty  <address@hidden>
+
+       lisp/so-long.el: Use (interactive "@") for menu commands
+
+       * lisp/so-long.el (so-long-menu, so-long-menu-item-replace-action)
+       (so-long-revert): Use interactive code "@", replacing all uses of
+       `so-long-menu-click-window'.  This approach leaves the window selected
+       afterwards, whereas the old code did not; but that is not a problem.
+       (so-long-menu-click-window, so-long-menu-item-revert): Remove the
+       deprecated functions.
+
+       * test/lisp/so-long-tests/so-long-tests.el
+       (so-long-tests-so-long-menu-item-replace-action): Update the test.
+
+2019-11-17  Lars Ingebrigtsen  <address@hidden>
+
+       Remove the error-out test for with_harfbuzz
+
+       * configure.ac (HAVE_HARFBUZZ): Remove the check for explicit
+       harfbuzz -- have_harfbuzz defaults to "yes", so we have no way of
+       checking whether the user really asked for it, apparently.
+
+2019-11-17  Paul Eggert  <address@hidden>
+
+       * lisp/simple.el (process-file): Clarify doc string.
+
+2019-11-17  Stefan Monnier  <address@hidden>
+
+       * lisp/tmm.el (tmm-add-one-shortcut): Use dolist
+
+2019-11-17  Juri Linkov  <address@hidden>
+
+       * lisp/subr.el (read-char-from-minibuffer, y-or-n-p): Remove 
discard-input.
+
+       (do-after-load-evaluation): Replace run-with-timer with 
run-with-idle-timer
+       to give a chance for the minibuffer to handle initial events before 
sit-for.
+       https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg00581.html
+
+2019-11-17  Juri Linkov  <address@hidden>
+
+       Auto-scrolling in tab-line (bug#37667)
+
+       * lisp/tab-line.el (tab-line-auto-hscroll): New function.
+       (tab-line-format): Use tab-line-auto-hscroll.
+
+2019-11-17  Lars Ingebrigtsen  <address@hidden>
+
+       Error out on --with-harfbuzz without HarfBuzz support
+
+       * configure.ac: Error out if the user says --with-harfbuzz, but
+       HarfBuzz isn't available.
+
+2019-11-17  Lars Ingebrigtsen  <address@hidden>
+
+       Handle FC_CHARCELL in xftfont_open
+
+       * src/xftfont.c (xftfont_open): FC_CHARCELL is apparently an alias
+       for FC_DUAL used in some east Asian fonts (bug#35079).  Modelled
+       after a patch suggested by Kenichi Handa.
+
+2019-11-17  Eli Zaretskii  <address@hidden>
+
+       Support more font weight values on MS-Windows
+
+       * src/w32font.c (w32_to_fc_weight): Support a few more weight
+       values, for compatibility with the GTK font selection widget
+       (see gtkutil.c:XG_WEIGHT_TO_SYMBOL).  (Bug#24226)
+
+2019-11-17  Alan Mackenzie  <address@hidden>
+
+       Compilation Mode: Fix arrow handling when compilation-context-lines is t
+
+       In particular, fix some exception occurrences, fix handling of a 
Compilation
+       Mode buffer being displayed in several windows, and fix the margin when
+       temporarily displaying a different buffer in a window, then returning 
to the
+       compilation mode buffer.  The fix is relevant for frames without 
fringes,
+       e.g. tty frames.
+
+       * lisp/progmodes/compile.el: (compilation-set-window): Always set point 
to
+       (parameter) MK.
+       (compilation--set-up-margin, compilation--tear-down-margin): New 
functions.
+       (compilation--set-up-arrow-spec-in-margins)
+       (compilation--tear-down-arrow-spec-in-margins): Renamed by introducing 
-- and
+       pluralising margin to margins.  Handle the margins in _all_ windows 
displaying
+       the pertinent buffer by using get-buffer-window-list.  In 
...--set-up-... add
+       compilation--set-up-margin to window-buffer-change-functions.  In
+       ...--tear-down-... remove the hook functions added in ...--set-up-....
+
+2019-11-17  Lars Ingebrigtsen  <address@hidden>
+
+       Make ido-read-file-name respect ido-read-file-name-non-ido more
+
+       * lisp/ido.el (ido-read-file-name): Respect
+       ido-read-file-name-non-ido in the file-directory-p case, too
+       (bug#38231).
+
+2019-11-17  Lars Ingebrigtsen  <address@hidden>
+
+       Make tables more resistant to major mode changes
+
+       * lisp/textmodes/table.el (table--put-cell-face-property)
+       (table--remove-cell-properties): Ensure that we don't lose the
+       table face when switching from buffers with font locking to ones
+       without (or vice versa) (bug#35481).
+
+2019-11-17  Lars Ingebrigtsen  <address@hidden>
+
+       Make bibtex-parse-keys more robust
+
+       * lisp/textmodes/bibtex.el (bibtex-parse-keys): Protect against
+       bugging out just when starting almost-empty bibtex files
+       (bug#30112).
+
+2019-11-16  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el: Add missing arg.
+
+       * lisp/tab-bar.el (tab-bar-list-next-line)
+       (tab-bar-list-prev-line): Add missing interactive spec for prefix arg.
+
+       * lisp/mouse.el (mouse-buffer-menu-mode-groups): Add "Git" regexp
+       to match "Git-Region-History" mode name for "Version Control" group.
+
+2019-11-16  Juri Linkov  <address@hidden>
+
+       * lisp/simple.el (eval-expression-print-maximum-character): Use choice 
type.
+
+       https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg00433.html
+
+2019-11-16  Juri Linkov  <address@hidden>
+
+       * lisp/dired.el (dired-dwim-target): Add choice 
dired-dwim-target-next-visible
+
+       * lisp/dired-aux.el (dired-dwim-target-next): Add arg ALL-FRAMES.
+       (dired-dwim-target-next-visible): New function.
+
+       * doc/emacs/dired.texi (Operating on Files): Describe function value
+       of dired-dwim-target.  (Bug#35385)
+
+2019-11-16  Eli Zaretskii  <address@hidden>
+
+       Fix display of R2L text
+
+       * src/xdisp.c (extend_face_to_end_of_line): Fix padding of R2L
+       screen lines with stretch glyph on the left.  (Bug#38233)
+
+2019-11-16  Shingo Tanaka  <address@hidden>
+
+       Fix moving files with duplicate names to trash-can
+
+       * lisp/files.el (move-file-to-trash): Fix file name in
+       trash-can when another deleted file under the same name is
+       already stored there.  (Bug#37922)
+
+2019-11-16  Martin Rudalics  <address@hidden>
+
+       Do not report move frame events for tooltip frames (Bug#38213)
+
+       * src/w32term.c (w32_read_socket):
+       * src/xterm.c (handle_one_xevent): Do not report move frame events
+       for tooltip frames (Bug#38213).
+
+2019-11-15  Michael Orlitzky  <address@hidden>  (tiny change)
+
+       tex-mode: paragraph separator groups text and comments
+
+       * lisp/textmodes/tex-mode.el (latex-mode): Don't wrap text with
+       leading spaces into preceding comments (bug#38152).
+
+2019-11-15  Lars Ingebrigtsen  <address@hidden>
+
+       Don't move point on undefined keystrokes in the article buffer
+
+       * lisp/gnus/gnus-art.el (gnus-article-read-summary-keys): Don't
+       move point on undefined commands (bug#38227).
+
+2019-11-15  Lars Ingebrigtsen  <address@hidden>
+
+       Make button-1 work on all Gnus buttons
+
+       * lisp/gnus/gnus-icalendar.el (gnus-icalendar-insert-button):
+       * lisp/gnus/gnus-art.el (gnus-insert-mime-button)
+       (gnus-mime-display-alternative, gnus-insert-prev-page-button)
+       (gnus-insert-next-page-button)
+       (gnus-insert-mime-security-button): Make button-1 work on all the
+       Gnus buttons (bug#38144).
+
+2019-11-15  Lars Ingebrigtsen  <address@hidden>
+
+       Make it clear what edebug-remove-instrumentation offers
+
+       * doc/lispref/edebug.texi (Instrumenting): Reword the description
+       of the edebug-remove-instrumentation command.
+
+2019-11-15  Paul Eggert  <address@hidden>
+
+       Port new float-scaling code to Solaris
+
+       * src/floatfns.c (double_integer_scale): Simplify, so that the
+       function works when (FP_ILOGBNAN == INT_MAX && FP_ILOGB0 == INT_MIN),
+       as on Solaris.
+
+2019-11-15  João Távora  <address@hidden>
+
+       Make icomplete-tidy-shadowed-file-names less aggressive
+
+       When using this option and editing input, some transient situations
+       may arise that lead to file-name shadowing, but that shouldn't
+       necessarily lead to auto-delete behaviour, which will be suprising.
+
+       In '/foo/x/bar', if the user deletes the 'x', shadowing occurs, but
+       probably shouldn't.  So, somewhat like ido-mode, only auto-tidy
+       shadowed file names if the user is inserting text at end of input.
+
+       * lisp/icomplete.el (icomplete-exhibit): Check this-command.
+       (icomplete-tidy-shadowed-file-names): Tweak docstring.
+
+2019-11-15  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/perl-mode.el (perl-calculate-indent): Indent qw(...)
+
+       Fix initialization of `state`.
+       Special-case `qw(...)` because we do want to indent its contents.
+
+2019-11-15  Robert Pluim  <address@hidden>
+
+       Used magic-fallback-mode-alist to detect .doc files (Bug#20891)
+
+       This avoids running doc-view-mode on files that are actually text
+       files.
+
+       * lisp/files.el (auto-mode-alist): Don't use doc-view-mode-maybe
+       for .doc (but continue to do so for .docx).
+       (magic-fallback-mode-alist): Add signature for .doc files.
+
+2019-11-15  Eli Zaretskii  <address@hidden>
+
+       Improve indexing of function doc string conventions
+
+       * doc/lispref/functions.texi (Function Documentation): Improve
+       indexing (bug#38158).
+
+2019-11-15  Paul Eggert  <address@hidden>
+
+       Port hexdigit init to non-GCC + pdumper
+
+       The old code assumed that hexdigit initialization (needed by
+       non-GCC) could be done in syms_of_character, but that is no longer
+       true with pdumper.  Instead, simplify hexdigit init so that it can
+       be done statically on all C99 platforms.  Problem discovered on
+       Solaris 10 sparc + Oracle Solaris Studio 12.6.
+       * src/character.c (hexdigit): Add 1 to every value; all uses
+       changed.  This simplifies the initialization so that it can be
+       done statically on any C99 compiler.  hexdigit is now always const.
+       (syms_of_character): Omit no-longer-necessary initialization.
+       * src/character.h (HEXDIGIT_CONST, HEXDIGIT_IS_CONST):
+       Remove.  All uses removed.
+
+2019-11-15  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of 'add-variable-watcher'
+
+       * doc/lispref/variables.texi (Watching Variables): Clarify the
+       documentation of 'add-variable-watcher' and fix markup.
+
+       * src/data.c (Fadd_variable_watcher): Clarify the doc string.
+       (Bug#38205)
+
+2019-11-15  Lars Ingebrigtsen  <address@hidden>
+
+       Avoid using subr-x function
+
+       * lisp/vc/vc-hg.el (vc-hg-retrieve-tag): Avoid using subr-x
+       function (bug#38216).
+
+2019-11-15  Martin Rudalics  <address@hidden>
+
+       In 'dframe-frame-mode' avoid 'switch-to-buffer' (Bug#37840)
+
+       * lisp/dframe.el (dframe-frame-mode): Use 'set-window-buffer'
+       instead of 'switch-to-buffer’ to avoid that
+       'switch-to-buffer-obey-display-actions' butts in (Bug#37840).
+
+2019-11-15  Andrii Kolomoiets  <address@hidden>
+
+       lisp/vc/vc-hg.el: Don't pass empty string to hg update
+
+       * lisp/vc/vc-hg.el (vc-hg-retrieve-tag): Don't pass empty name to
+       `hg update` (bug#38216).
+
+2019-11-15  Lele Gaifax  <address@hidden>
+
+       Fix minor formatting issue in isearch-forward documentation
+
+       * lisp/isearch.el (isearch-forward): Doc string formatting fix
+       (bug#38207).
+
+2019-11-15  Lars Ingebrigtsen  <address@hidden>
+
+       Make edebug-remove-instrumentation remove macro instrumentation
+
+       * lisp/emacs-lisp/edebug.el (edebug-remove-instrumentation):
+       Macros can also have edebug instrumentation, so remove that as
+       well (bug#38195).
+
+2019-11-14  Robert Pluim  <address@hidden>
+
+       Update nnir-method-default-engines version tag
+
+       * lisp/gnus/nnir.el (nnir-method-default-engines): Update version tag.
+
+2019-11-14  Eli Zaretskii  <address@hidden>
+
+       Fix a recent change in xdisp.c
+
+       * src/xdisp.c (tty_handle_tab_bar_click): Revert the last
+       change which made this work only in the HAVE_NTGUI build.
+       This function is needed by any build which supports a  mouse
+       on TTY frames.
+
+2019-11-14  Paul Eggert  <address@hidden>
+
+       Handle weird cases like (ceil 0 0.0)
+
+       * src/floatfns.c (double_integer_scale): Distinguish Inf from NaN.
+       (rounding_driver): Handle (ceil 0 0.0) and (ceil 0 1.0e+INF).
+       * test/src/floatfns-tests.el (special-round): Add tests for
+       weird cases like this.
+
+       Avoid crash with (floor 0 0.0)
+       * src/floatfns.c (rounding_driver): Signal an arithmetic
+       error if divisor is 0.0 or -0.0, instead of crashing.
+
+2019-11-14  Stefan Monnier  <address@hidden>
+
+       * lisp/cedet/semantic/db.el: Use lexical-binding
+
+       Also prefer setf over oset.
+       (semanticdb-abstract-table-list): Always define.
+       (semanticdb--inhibit-make-directory): Fix name of declaration to match
+       name of variable actually used.
+       (semanticdb-with-match-any-mode): Use `declare`.  Add Edebug spec.
+       (semanticdb-project-roots): Remove redundant :group.
+
+2019-11-14  Paul Eggert  <address@hidden>
+
+       Fix byte-counting error in ‘format’
+
+       Problem reported by Paul Pogonyshev (Bug#38191).
+       * src/editfns.c (styled_format): When checking for adjacent
+       %-sequences, use byte position rather than character position.
+       * test/src/editfns-tests.el (format-properties): Test for fix.
+
+2019-11-14  Paul Eggert  <address@hidden>
+
+       In Cairo builds, omit some unnecessary functions
+
+       * src/font.c (fset_font_data, font_put_frame_data)
+       (font_get_frame_data):
+       * src/ftfont.c (ftfont_open, ftfont_close)
+       (ftfont_encode_char, ftfont_glyph_metrics)
+       (ftfont_text_extents, ftfont_driver):
+       Define only if USE_CAIRO.
+       * src/xdisp.c (tty_handle_tab_bar_click):
+       Define only if HAVE_NTGUI && !CYGWIN.
+
+2019-11-14  Dmitry Gutov  <address@hidden>
+
+       (repos-count-screen-lines): Narrow without changing point-min
+
+       * lisp/reposition.el (repos-count-screen-lines): Narrow without
+       changing point-min.  It wasn't necessary for vertical-motion to
+       work, and it had some adverse effects on how font-lock rules were
+       applied
+       (https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg00522.html).
+       This can also be an alternative fix for bug#38049.
+
+2019-11-14  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Fix two bugs in the "state cache".
+
+       This (along with a suggestion to the OP to set
+       open-paren-in-column-0-is-defun-start to nil) fixes bug #37910.  It may 
also
+       have fixed bug #5490 and bug #18072.
+
+       * lisp/progmodes/cc-engine.el (c-state-cache-non-literal-place): Remove 
thi
+       non-sensical function, replacing it with ....
+       (c-state-cache-lower-good-pos): New function.
+       (c-renarrow-state-cache, c-append-lower-brace-pair-to-state-cache)
+       (c-remove-stale-state-cache, c-remove-stale-state-cache-backwards): 
Instead of
+       altering the state-cache list structure with setcar and setcdr, use 
setq and
+       consing.
+       (c-parse-state-1): Call c-state-cache-lower-good-pos rather than
+       c-state-cache-non-literal-place.
+
+2019-11-14  Robert Pluim  <address@hidden>
+
+       Remove unneeded font_is_ignored prototype
+
+       * src/gtkutil.h: Remove unneeded prototype for font_is_ignored,
+       it's in font.h now.
+
+2019-11-14  Phil Sainty  <address@hidden>
+
+       Merge branch 'scratch/so-long-updates'
+
+2019-11-14  Phil Sainty  <address@hidden>
+
+       Make so-long disable flymake, flyspell, flycheck
+
+       * lisp/so-long.el (so-long-minor-modes): Add flymake-mode, 
flyspell-mode,
+       and flycheck-mode.
+
+2019-11-14  Phil Sainty  <address@hidden>
+
+       Support loading so-long.el on top of an earlier version
+
+       * lisp/so-long.el (so-long-version, so-long--latest-version): New 
variables.
+
+       This enables users to safely load version 1.0 of so-long.el on top of
+       an earlier version, as well as making provisions for doing likewise
+       following any incompatible changes arising in future versions.
+
+2019-11-14  Phil Sainty  <address@hidden>
+
+       Backwards-compatibility function definitions for so-long.el
+
+       * lisp/so-long.el (so-long-inhibit-whitespace-mode)
+       (so-long-make-buffer-read-only, so-long-revert-buffer-read-only)
+       (so-long-inhibit-global-hl-line-mode): Restore dummy definitions of
+       now-obsolete hook functions used by earlier versions of so-long.el,
+       to support users who have saved these symbols in their customized
+       values for the hooks in question.
+
+2019-11-14  Phil Sainty  <address@hidden>
+
+       * lisp/so-long.el (so-long-unload-function): Improved feature unload
+
+2019-11-14  Phil Sainty  <address@hidden>
+
+       Defer triggering `so-long' until the buffer is displayed
+
+       * lisp/so-long.el (so-long-invisible-buffer-function): New user option.
+       (so-long--set-auto-mode): Use so-long-invisible-buffer-function.
+       (so-long-deferred): New function/value for 
so-long-invisible-buffer-function.
+       (so-long, so-long--disable): Support for so-long-deferred.
+
+       * test/lisp/so-long-tests/autoload-longlines-mode-tests.el
+       * test/lisp/so-long-tests/autoload-major-mode-tests.el
+       * test/lisp/so-long-tests/autoload-minor-mode-tests.el
+       * test/lisp/so-long-tests/so-long-tests.el:
+       Support for so-long-deferred.
+
+       Pre-existing tests have been updated to ensure the buffer is already
+       displayed in cases where a call to `normal-mode' is the (potential)
+       trigger for `so-long'.
+
+2019-11-14  Eli Zaretskii  <address@hidden>
+
+       Fix recent documentation changes
+
+       * doc/lispref/minibuf.texi (Multiple Queries): Move the
+       reference to 'read-char-from-minibuffer' from here...
+       * doc/lispref/commands.texi (Reading One Event): ...to here.
+       Fix the wording of the description of
+       'read-char-from-minibuffer'.
+
+2019-11-14  Robert Pluim  <address@hidden>
+
+       Make GTK font chooser respect face-ignored-fonts
+
+       * src/font.c (font_delete_unmatched): Move Vface_ignored_fonts
+       matching to...
+       (font_is_ignored): ..Here.  New function.
+       * src/gtkutil.c (xg_font_filter): New function, uses font_is_ignored
+       to filter fonts.
+       (xg_get_font): Set GTK font chooser filter to xg_font_filter.
+       * src/gtkutil.h: Add prototype for font_is_ignored.
+
+2019-11-14  Katsumi Yamaoka  <address@hidden>
+
+       Obsolete rfc2047-quote-special-characters-in-quoted-strings (bug#38200)
+
+       * lisp/mail/rfc2047.el
+       (rfc2047-quote-special-characters-in-quoted-strings): Make obsolete
+       instead of removing it.
+
+2019-11-14  Katsumi Yamaoka  <address@hidden>
+
+       Remove rfc2047-quote-special-characters-in-quoted-strings (bug#38200)
+
+       * lisp/mail/rfc2047.el
+       (rfc2047-quote-special-characters-in-quoted-strings): Remove function.
+       (rfc2047-encode-message-header, rfc2047-encode-region): Don't use it.
+
+2019-11-13  Andrii Kolomoiets  <address@hidden>
+
+       (vc-default-update-on-retrieve-tag): Accept backend argument
+
+       * lisp/vc/vc.el (vc-default-update-on-retrieve-tag): Accept
+       backend argument (bug#38156).  This fixes a bug introduced in the
+       previous patch.
+
+2019-11-13  Lars Ingebrigtsen  <address@hidden>
+
+       Fix mouse-1 on Gnus article buffer buttons
+
+       * lisp/gnus/gnus-art.el (gnus-article-add-button): Make mouse-1
+       work as required by mouse-1-click-follows-link (bug#38144).
+
+2019-11-13  Andrii Kolomoiets  <address@hidden>
+
+       VC: ability to skip update buffers prompt
+
+       * lisp/vc/vc.el (vc-default-update-on-retrieve-tag): New function.
+       (vc-retrieve-tag): Call `update-on-retrieve-tag' backend function
+       to determine if prompt for update buffers is needed; Include tag
+       name into the "Retrieving tag" message.
+       * lisp/vc/vc-git.el (vc-git-update-on-retrieve-tag):
+       * lisp/vc/vc-hg.el (vc-hg-update-on-retrieve-tag):
+       * lisp/vc/vc-svn.el (vc-svn-udate-on-retrieve-tag): New functions.
+       Buffers update prompt on `vc-retrieve-tag' is omitted (bug#38156).
+
+2019-11-13  Braun Gábor  <address@hidden>  (tiny change)
+
+       Make clone-buffer not unbind global variable
+
+       * lisp/simple.el (clone-buffer): Make clone-buffer not globally
+       unset locally void variable (bug#38179).
+
+2019-11-13  Lars Ingebrigtsen  <address@hidden>
+
+       Update signature in etc/DISTRIB
+
+       * etc/DISTRIB: Update signature (bug#38188).
+
+2019-11-13  Lars Ingebrigtsen  <address@hidden>
+
+       Make dired-do-compress-to require format-spec
+
+       * lisp/dired-aux.el (dired-do-compress-to): Require format-spec
+       runtime (bug#38189).
+
+2019-11-13  Lars Ingebrigtsen  <address@hidden>
+
+       Allow using edebug-remove-instrumentation more fine-grained
+
+       * lisp/emacs-lisp/edebug.el (edebug-remove-instrumentation):
+       Prompt the user for what functions to remove instrumentation from
+       a la cancel-edebug-on-entry (bug#38195).
+
+2019-11-13  Stephen Gildea  <address@hidden>
+
+       time-stamp: update support for time zone numeric offset
+
+       * lisp/time-stamp.el (time-stamp-string-preprocess): Change new format 
for
+       numeric time zone from %:z to %5z to match format-time-string better.
+       (time-stamp-format): Document support for numeric time zone.
+       See discussion in bug#32931.
+
+       * NEWS: Mention time-stamp-format %5z.
+
+2019-11-13  Katsumi Yamaoka  <address@hidden>
+
+       Don't show Attachment(s) header in html article viewed with browse-url
+
+       * lisp/gnus/gnus-art.el (gnus-article-browse-html-article):
+       Bind gnus-mime-display-attachment-buttons-in-header to nil.
+
+2019-11-13  Juri Linkov  <address@hidden>
+
+       * lisp/tab-line.el (tab-line-tabs-buffer-list): Use window-prev-buffers 
too.
+
+       * lisp/tab-line.el (tab-line-tabs-buffer-list): Move 
window-prev-buffers here
+       from tab-line-tabs-buffer-groups.
+
+2019-11-13  Paul Eggert  <address@hidden>
+
+       Fix double-rounding bug in ceiling etc.
+
+       This is doable now that we have bignums.
+       * src/floatfns.c (integer_value): Remove; no longer used.
+       (rescale_for_division): New function.
+       (rounding_driver): Use it to divide properly (by using bignums)
+       even when arguments are float, fixing a double-rounding FIXME.
+       * src/lisp.h (LOG2_FLT_RADIX): Move here ...
+       * src/timefns.c (frac_to_double): ... from here.
+       * test/src/floatfns-tests.el (big-round):
+       Add a test to catch the double-rounding bug.
+
+2019-11-13  Paul Eggert  <address@hidden>
+
+       Refactor bignum multiplication, exponentiation
+
+       This doesn’t alter behavior, and simplifies the next commit.
+       * src/bignum.c (GMP_NLIMBS_MAX, NLIMBS_LIMIT, emacs_mpz_size)
+       (emacs_mpz_mul, emacs_mpz_mul_2exp, emacs_mpz_pow_ui): Move here ...
+       * src/data.c: ... from here.
+
+2019-11-13  Paul Eggert  <address@hidden>
+
+       Refactor double integer scaling
+
+       This doesn’t alter behavior, and simplifies a future commit.
+       * src/floatfns.c (double_integer_scale): New function,
+       with body adapted from the old timefns.c.
+       * src/timefns.c (decode_float_time): Use it.
+
+2019-11-13  Michael Albinus  <address@hidden>
+
+       Finish last Tramp patch
+
+       * lisp/net/tramp.el (outline-regexp): Remove declaration.
+       (tramp-debug-outline-regexp): Add thread regexp.
+       (tramp-debug-font-lock-keywords): New defconst.
+       (tramp-debug-outline-level): Adapt to changed
+       `tramp-debug-outline-regexp'.
+       (tramp-get-debug-buffer): Use `tramp-debug-font-lock-keywords'.
+
+2019-11-13  Robert Pluim  <address@hidden>
+
+       Add "Noto Color Emoji" to face-ignored-fonts
+
+       * src/xfaces.c (syms_of_xfaces) [HAVE_XFT]: Add "Noto Color Emoji" to
+       face-ignored-fonts (Bug#37786).
+
+2019-11-13  Michael Albinus  <address@hidden>
+
+       Some refinement in Tramp debug buffer.
+
+       * lisp/net/tramp.el (outline-regexp): Remove declaration.
+       (tramp-debug-font-lock-keywords): New defconst.
+       (tramp-get-debug-buffer): Use it.
+
+2019-11-13  Michael Albinus  <address@hidden>
+
+       Adapt Tramp docstrings according to checkdoc
+
+       * lisp/net/tramp.el (tramp-backup-directory-alist)
+       (tramp-echoed-echo-mark-regexp, tramp-syntax-values)
+       (tramp-lookup-syntax, 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-unknown-id-string)
+       (tramp-unknown-id-integer, tramp-build-file-name-regexp)
+       (tramp-build-completion-file-name-regexp, tramp-chunksize)
+       (tramp-find-method, tramp-find-user, tramp-find-host)
+       (tramp-dissect-file-name, tramp-get-buffer)
+       (tramp-get-connection-buffer, tramp-debug-message, tramp-error)
+       (with-tramp-connection-property, tramp-run-real-handler)
+       (tramp-file-name-for-operation, tramp-file-name-handler)
+       (tramp-completion-file-name-handler)
+       (tramp-completion-handle-file-name-completion)
+       (tramp-completion-dissect-file-name)
+       (tramp-completion-dissect-file-name1)
+       (tramp-handle-file-name-as-directory)
+       (tramp-handle-file-name-directory)
+       (tramp-handle-file-name-nondirectory, tramp-mode-string-to-int)
+       (tramp-file-mode-from-int):
+       * lisp/net/tramp-adb.el (tramp-adb-file-name-p):
+       * lisp/net/tramp-archive.el (tramp-archive-run-real-handler)
+       (tramp-archive-file-name-handler)
+       (tramp-archive-dissect-file-name)
+       (with-parsed-tramp-archive-file-name)
+       (tramp-archive-gvfs-file-name, tramp-archive-handle-access-file):
+       * lisp/net/tramp-cmds.el (tramp-list-remote-buffers):
+       * lisp/net/tramp-compat.el (tramp-unload-file-name-handlers)
+       (tramp-compat-funcall, tramp-compat-tramp-file-name-slots):
+       * lisp/net/tramp-ftp.el (tramp-ftp-file-name-handler)
+       (tramp-ftp-file-name-p):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-p)
+       (tramp-gvfs-file-name-handler)
+       (tramp-gvfs-stringify-dbus-message)
+       (tramp-gvfs-monitor-process-filter)
+       (tramp-gvfs-handler-mounted-unmounted):
+       * lisp/net/tramp-integration.el
+       (tramp-rfn-eshadow-update-overlay-regexp):
+       * lisp/net/tramp-rclone.el (tramp-rclone-file-name-p)
+       (tramp-rclone-file-name-handler, tramp-rclone-send-command):
+       * lisp/net/tramp-sh.el (tramp-sh--quoting-style-options)
+       (tramp-sh-gio-monitor-process-filter)
+       (tramp-sh-gvfs-monitor-dir-process-filter)
+       (tramp-sh-inotifywait-process-filter, tramp-find-executable)
+       (tramp-set-remote-path, tramp-open-shell, tramp-find-shell)
+       (tramp-send-command-and-check, tramp-shell-case-fold)
+       (tramp-get-remote-path):
+       * lisp/net/tramp-smb.el (tramp-smb-file-name-p)
+       (tramp-smb-file-name-handler)
+       (tramp-smb-do-file-attributes-with-stat)
+       (tramp-smb-handle-substitute-in-file-name)
+       (tramp-smb-get-stat-capability, tramp-smb-shell-quote-argument):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-p)
+       (tramp-sudoedit-file-name-handler)
+       (tramp-sudoedit-send-command-string):
+       * test/lisp/net/tramp-archive-tests.el (tramp-archive-test-all):
+       * test/lisp/net/tramp-tests.el (tramp--test-gvfs-p)
+       (tramp--test-with-proper-process-name-and-buffer)
+       (tramp-test-all): Adapt docstrings according to `checkdoc'.
+
+2019-11-13  João Távora  <address@hidden>
+
+       Avoid fido-mode's setup on non-icomplete minibuffers
+
+       Otherwise we would lose things like C-r (isearch-backward) when doing
+       simple stuff like non-icomplete pp-eval-expression.
+
+       * lisp/icomplete.el (icomplete--fido-mode-setup): Restrict setup
+       to when icomplete-mode really kicks in.
+
+2019-11-12  Juri Linkov  <address@hidden>
+
+       * lisp/tab-line.el (tab-line-tabs-buffer-list-function): New variable.
+
+       (tab-line-tabs-buffer-list): New function.
+       (tab-line-tabs-mode-buffers, tab-line-tabs-buffer-groups):
+       Call tab-line-tabs-mode-buffers.
+       (tab-line-tabs-buffer-groups): Add 'close' function that uses
+       kill-buffer instead of bury-buffer that makes no sense here.
+       (tab-line-format): Don't show the close button when a tab
+       has no 'close' function or buffer.
+       (tab-line-switch-to-prev-tab, tab-line-switch-to-next-tab):
+       Support tabs with 'buffer' properties.
+       (tab-line-close-tab): Call 'close' function when defined.
+
+2019-11-12  Juri Linkov  <address@hidden>
+
+       * lisp/dired.el (dired-dwim-target): Add new choices (bug#35385)
+
+       * lisp/dired.el (dired-dwim-target): Add choices
+       dired-dwim-target-next and dired-dwim-target-recent.
+
+       * lisp/dired-aux.el (dired-dwim-target-next)
+       (dired-dwim-target-recent): New functions.
+       (dired-dwim-target-directories): Call either of them.
+
+       * doc/emacs/dired.texi (Operating on Files): Mention new
+       preferences in dired-dwim-target.
+
+2019-11-12  Paul Eggert  <address@hidden>
+
+       Conditionally omit edition numbers, dates in doc
+
+       This redoes the 2019-11-02T00:24:02!address@hidden patch,
+       updated after consultation with John Sullivan.
+       Omit printed edition numbers in online manuals while keeping
+       them in printed manuals.  In online manuals the edition
+       numbers seem to cause more confusion than they cure; e.g.,
+       https://shop.fsf.org/books/gnu-emacs-manual-18th-edition-v-261
+       currently advertises "18th edition" even as it points to
+       https://www.gnu.org/software/emacs/manual/pdf/emacs.pdf which
+       says "Seventeenth Edition".  It is simpler and less confusing
+       to stick to one version number like "27.0" in online manuals.
+       For printed manuals people can run, e.g., "texi2any -D
+       'EDITION Nineteenth'" when generating the 19th printed edition
+       of the Emacs manual.
+       * doc/emacs/emacs.texi (EDITION):
+       * doc/lispintro/emacs-lisp-intro.texi (edition-number, update-date):
+       * doc/lispref/elisp.texi (VERSION, DATE):
+       Remove definitions.  Instead, let the person printing the book
+       specify these values, with the default being the online version
+       which does not have printed edition numbers.
+       * doc/lispintro/emacs-lisp-intro.texi (titlepage-edition-number):
+       New flag, for the edition number as it appears on the title page.
+
+2019-11-12  Martin Rudalics  <address@hidden>
+
+       Make sure buffer is live before retrieving underline properties 
(Bug#38038)
+
+       * src/window.h (WINDOW_BUFFER_LOCAL_VALUE): New macro.
+       * src/nsterm.m (ns_draw_text_decoration):
+       * src/w32term.c (w32_draw_glyph_string):
+       * src/xterm.c (x_draw_glyph_string): Make sure buffer is live
+       before retrieving underline properties from it (Bug#38038).
+
+2019-11-12  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/easymenu.el (easy-menu-make-symbol): Fix last change
+
+2019-11-11  Paul Eggert  <address@hidden>
+
+       Fix a few more minor quoting problems.
+
+2019-11-11  Lars Ingebrigtsen  <address@hidden>
+
+       Rename font-log-refontify
+
+       * lisp/font-lock.el (font-lock-debug-fontify): Rename to make it
+       clearer what the function is for.
+       * doc/lispref/modes.texi (Font Lock Basics): Ditto.
+
+2019-11-11  Stefan Monnier  <address@hidden>
+
+       * lisp/startup.el (command-line): Fix last change in package--activated
+
+2019-11-11  Paul Eggert  <address@hidden>
+
+       Fix some quoting glitches in doc strings
+
+2019-11-11  Paul Eggert  <address@hidden>
+
+       Fix quoting glitch in formatting Gnus messages
+
+       * lisp/gnus/gnus-util.el (defmacro, gnus-message): Use
+       ‘format-message’, not ‘format’, to be compatible with ‘message’.
+
+2019-11-11  Paul Eggert  <address@hidden>
+
+       Fix glitch in generating cxterm doc strings
+
+       * lisp/international/titdic-cnv.el (tit-process-header):
+       In generated doc strings, escape \, ", ', and ` properly.
+       Currently only ' appears but we might as well future-proof this.
+
+2019-11-11  Wilson Snyder  <address@hidden>
+
+       Verilog-Mode collected updates.
+
+       * lisp/progmodes/verilog-mode.el (verilog-read-decls): Fix to skip
+       over base64-encoded protected data while reading AUTO declarations.
+       Reported by Berend Ozceri.
+       (verilog-auto-inst-port, verilog-auto-inst-vector): Support 'unsigned'
+       in `verilog-auto-inst-vector'. Reported by Jeff Riley.
+       (verilog-read-decls): Fix to ignore `line in AUTOINST, git
+       bug18. Reported by Berend Ozceri.
+       (verilog-library-extensions): Support .va /.vah/.sva/.svah file
+       extensions to load verilog-mode for Verilog-AMS.  Reported by Shareef
+       Jalloq.
+       (verilog-read-sub-decls-expr): Fix AUTOOUTPUT etc misparsing Verilog
+       casts, bug1526.  Reported by Udi Finkelstein.
+
+2019-11-11  Stefan Kangas  <address@hidden>
+
+       Add several configuration files to auto-mode-alist
+
+       * lisp/files.el (auto-mode-alist): Use conf-mode for .asoundrc,
+       .mairixrc, .mbsyncr, .msmtprc, .nvidia-settings-rc, .offlineimaprc,
+       .reportbugrc, .rtorrent.rc, .screenrc, .mpdconf, .notmuch-config.  Use
+       conf-windows-mode for .redshift.conf.  (Bug#38065)
+
+2019-11-10  Paul Eggert  <address@hidden>
+
+       Document Lisp floats a bit better
+
+       * doc/lispref/numbers.texi (Float Basics):
+       * doc/misc/cl.texi (Implementation Parameters):
+       * lisp/emacs-lisp/cl-lib.el (cl-most-positive-float)
+       (cl-least-positive-float)
+       (cl-least-positive-normalized-float, cl-float-epsilon)
+       (cl-float-negative-epsilon):
+       Document IEEE floating point better.  Don’t suggest that Emacs
+       might use some floating-point format other than IEEE format, as
+       Emacs currently assumes IEEE in several places and there seems
+       little point in removing those assumptions.
+
+2019-11-10  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el: Better handling of closed-tabs in tab-bar-list.
+
+       * lisp/tab-bar.el (tab-bar-list-delete-from-list): Add closed tab to
+       tab-bar-closed-tabs.
+       (tab-bar-list-select): Don't add the closed intermediate tab to
+       tab-bar-closed-tabs.
+
+2019-11-10  Juri Linkov  <address@hidden>
+
+       * lisp/autorevert.el: Use 'minibuffer-message' to not obscure the 
prompt.
+
+       * lisp/autorevert.el (auto-revert-handler): Use 'minibuffer-message'
+       instead of 'message'.  Call it from the original window's buffer
+       that in case of the minibuffer should be current, so
+       minibuffer-message could add a message to it.  (Bug#34614)
+
+       * lisp/emacs-lisp/ert-x.el (ert--make-message-advice): Add nil to
+       the list of values to not use for format-message, because
+       minibuffer-message calls 'message' with nil argument, and tests fail.
+
+2019-11-10  Stefan Kangas  <address@hidden>
+           Drew Adams  <address@hidden>
+
+       Make dired-get-subdir-min obsolete
+
+       * lisp/dired.el (dired-get-subdir-min): Redefine as obsolete function
+       alias for 'cdr'.  (Bug#11571)
+       (dired-get-subdir, dired-get-subdir-max, dired-clear-alist)
+       (dired-next-subdir, dired-current-directory):
+       * lisp/dired-aux.el (dired-rename-subdir-2)
+       (dired-alist-sort, dired-insert-subdir-del)
+       (dired-insert-subdir-doupdate, dired-goto-subdir)
+       (dired-hide-subdir, dired-hide-all): Use 'cdr' instead of
+       the above obsolete function.
+       (dired-subdir-alist): Doc fix.
+
+2019-11-10  Juri Linkov  <address@hidden>
+
+       Move read-char-from-minibuffer from simple.el to subr.el and document 
it.
+
+       * doc/lispref/minibuf.texi (Multiple Queries):
+       Document read-char-from-minibuffer (bug#10477, bug#38076).
+
+       * lisp/subr.el (read-char-history)
+       (read-char-from-minibuffer-map)
+       (read-char-from-minibuffer-map-hash)
+       (read-char-from-minibuffer-insert-char)
+       (read-char-from-minibuffer-insert-other, empty-history)
+       (read-char-from-minibuffer): Move from simple.el to subr.el.
+
+2019-11-09  Stefan Monnier  <address@hidden>
+
+       * lisp/cedet/semantic/wisent/comp.el (wisent-struct): Remove
+
+       (core, shifts, reductions, errs): Use cl-defstruct instead.
+       Adjust all users of the set-<struct>-<field> setters to use
+       `setf` instead.
+
+2019-11-09  Jimmy Aguilar Mena  <address@hidden>
+
+       Add extra bindings to fido-mode.
+
+       * lisp/icomplete.el (icomplete-fido-mode-map) : Add arrows and other
+       bindings to reproduce ido behaviour.
+
+2019-11-09  Glenn Morris  <address@hidden>
+
+       Disable a portion of one doc-test
+
+       * test/src/doc-tests.el (doc-test-substitute-command-keys):
+       Disable component that fails twice in the past 5 weeks
+       due to changes in the minibuffer map.
+
+2019-11-09  Juri Linkov  <address@hidden>
+
+       Don't overwrite y-or-n-p prompt by message from asynchronous man 
(bug#19064)
+
+       * lisp/man.el (Man-bgproc-sentinel): Postpone displaying the message
+       and deleting the buffer until exiting the code block with
+       with-current-buffer.  Use minibuffer-message to display message
+       to handle possibly active minibuffer.
+
+2019-11-09  Juri Linkov  <address@hidden>
+
+       Don't obscure the minibuffer by message (bug#17272)
+
+       * lisp/subr.el (do-after-load-evaluation): Use minibuffer-message
+       to not obscure a possibly active minibuffer.
+
+       * lisp/minibuffer.el (minibuffer-message):
+       Record message in the *Messages* buffer.
+
+2019-11-09  Juri Linkov  <address@hidden>
+
+       Use the minibuffer to read answer in userlock.el (bug#38076)
+
+       * lisp/userlock.el: Rename 'fn' to 'filename'.
+       (ask-user-about-supersession-threat): Use read-char-from-minibuffer
+       instead of read-char-choice.
+
+2019-11-09  Stefan Monnier  <address@hidden>
+
+       * lisp/startup.el (package--activated): Fix redundant definition
+
+2019-11-09  Stefan Monnier  <address@hidden>
+
+       * lisp/ffap.el (ffap-read-file-or-url): Don't use url-file-handler
+
+       Simplify accordingly (and don't call substitute-in-file-name 
redundantly).
+
+2019-11-09  Juri Linkov  <address@hidden>
+
+       hack-local-variables-confirm uses the minibuffer to read answer 
(bug#38076)
+
+       * lisp/files.el (hack-local-variables-confirm):
+       Use read-char-from-minibuffer instead of read-char-choice.
+       Remove special handling of original window scrolling
+       that is now supported in the minibuffer.  This fixes
+       https://lists.gnu.org/archive/html/emacs-devel/2019-10/msg01020.html
+       (files--ask-user-about-large-file): Use read-char-from-minibuffer
+       instead of read-char-choice.
+
+2019-11-09  Juri Linkov  <address@hidden>
+
+       Add CHARS arg to read-char-from-minibuffer compatible with 
read-char-choice.
+
+       * lisp/simple.el (read-char-history):
+       Rename from read-char-from-minibuffer-history.  (Bug#38076)
+       (read-char-from-minibuffer-insert-char):
+       Rename from read-char-from-minibuffer-self-insert.
+       (read-char-from-minibuffer-map-hash): New defconst.
+       (read-char-from-minibuffer-insert-other): New command.
+       (read-char-from-minibuffer): Add optional args CHARS and HISTORY.
+       (zap-to-char): Use 'read-char-history as HISTORY arg of
+       read-char-from-minibuffer.
+
+       * lisp/emacs-lisp/map-ynp.el (read-answer): Use sit-for instead of 
sleep-for.
+       Replace short answer history yes-or-no-p-history with read-char-history.
+
+2019-11-09  Juri Linkov  <address@hidden>
+
+       'y-or-n-p' now uses the minibuffer to read 'y' or 'n' answer (bug#38076)
+
+       * doc/lispref/minibuf.texi (Yes-or-No Queries): Update the fact
+       that y-or-n-p uses the minibuffer.
+
+       * lisp/subr.el (y-or-n-p-history-variable): New variable.
+       (y-or-n-p-map): New keymap.
+       (y-or-n-p-insert-y, y-or-n-p-insert-n, y-or-n-p-insert-other):
+       New commands.
+       (y-or-n-p): Rewrite to use read-from-minibuffer and make-composed-keymap
+       with y-or-n-p-map and query-replace-map.
+
+2019-11-09  Juri Linkov  <address@hidden>
+
+       Run scroll/recenter commands from minibuffer in original window 
(bug#38076)
+
+       * lisp/minibuffer.el (with-minibuffer-selected-window): New macro.
+       (minibuffer-recenter-top-bottom, minibuffer-scroll-up-command)
+       (minibuffer-scroll-down-command, minibuffer-scroll-other-window):
+       (minibuffer-scroll-other-window-down): New commands.
+       (minibuffer-local-map): Remap recenter/scroll symbols to their
+       minibuffer wrappers: recenter-top-bottom to 
minibuffer-recenter-top-bottom.
+
+       * src/window.c (Fother_window_for_scrolling): Use 'lambda' value for
+       MINIBUF arg of Fnext_window, so minibuffer-scroll-other-window and
+       minibuffer-scroll-other-window-down doesn't try to scroll the
+       minibuffer window.
+
+2019-11-09  Karl Fogel  <address@hidden>
+
+       Improve an error about the message signer
+
+       * lisp/gnus/mml-sec.el (mml-secure-epg-sign): Don't suggest setting
+         `mml-secure-smime-sign-with-sender' if it's already non-nil.
+
+2019-11-09  Lars Ingebrigtsen  <address@hidden>
+
+       Fix font-lock-keywords slightly
+
+       * lisp/font-lock.el (font-lock-keywords): Tweak doc string
+       slightly (bug#35005).
+
+2019-11-09  Eli Zaretskii  <address@hidden>
+
+       Fix case-insensitive completion of buffer names
+
+       * test/src/minibuf-tests.el (test-try-completion-ignore-case):
+       New test, suggested by Stefan Monnier <address@hidden>.
+
+       * src/minibuf.c (Ftry_completion): Don't treat strings that
+       are identical but for the case as if they were identical for
+       the purposes of not counting the same string twice.  This
+       fixes case-insensitive completion when all the candidates are
+       identical but for the letter-case.  (Bug#11339)
+
+2019-11-09  Eli Zaretskii  <address@hidden>
+
+       Fix an error in selecting encoding when writing zip files
+
+       * lisp/international/mule-cmds.el (select-safe-coding-system):
+       Treat no-conversion-multibyte that came from find-auto-coding
+       the same as no-conversion for the purposes of encoding.  The
+       same logic that considers no-conversion always safe should do
+       the same with no-conversion-multibyte.  (Bug#38155)
+
+2019-11-09  Glenn Morris  <address@hidden>
+
+       * lisp/progmodes/cc-vars.el (c-mark-wrong-style-of-comment):
+       Fix version.
+
+2019-11-09  João Távora  <address@hidden>
+
+       Revert "Nudge icomplete-mode a little closer to fido-mode"
+
+       Fixes bug#38131.
+
+       This is not the best way to have fido-mdoe emulate that particular bit
+       of ido-mode.
+
+       This reverts commit 5761a1a3939e23d8e8c725241dd9398a12f191b0.
+
+2019-11-09  João Távora  <address@hidden>
+
+       Rename some commands to reflect they are fido-mode specific
+
+       * lisp/icomplete.el (icomplete-fido-kill)
+       (icomplete-fido-delete-char, icomplete-fido-ret)
+       (icomplete-fido-backward-updir): Rename from icomplete-magic-ido-*
+       versions.
+       (icomplete-fido-mode-map): Use new command names.
+
+2019-11-09  João Távora  <address@hidden>
+
+       Protect flex's display-sort-function against 0-length candidates
+
+       * lisp/minibuffer.el (completion--flex-adjust-metadata): Assume a
+       candidate missing a score has a score of 0.
+
+2019-11-09  Alan Mackenzie  <address@hidden>
+
+       Widen around c-font-lock-fontify-region.  This fixes bug #38049.
+
+       * lisp/progmodes/cc-mode.el (c-font-lock-fontify-region): Widen in this 
function,
+       to ensure that the CC Mode font locking mechanism can examine characters
+       outside the given region.
+
+2019-11-09  Alan Mackenzie  <address@hidden>
+
+       CC Mode.  Allow fontification of "wrong" style comments with warning 
face.
+
+       This fixes bug #4192.
+
+       * etc/NEWS: Add a new entry.
+
+       * lisp/progmodes/cc-defs.el (c-font-lock-flush): New macro.
+
+       * lisp/progmodes/cc-cmds.el (c-toggle-comment-style): On toggling the 
comment
+       style, invoke c-font-lock-flush when c-mark-wrong-style-of-comment is 
non-nil,
+       to cause that marking to be done instead on the other style of comment.
+
+       * lisp/progmodes/cc-fonts.el (c-maybe-font-lock-wrong-style-comments): 
New
+       function.
+       (c-cpp-matchers): Call c-maybe-font-lock-wrong-style-comments when
+       appropriate.
+
+       * lisp/progmodes/cc-vars.el (c-mark-wrong-style-of-comment): New 
customizable
+       option.
+
+       * doc/misc/cc-mode.texi (top level, Indentation Commands, Guessing the 
Style,
+       Custom Macros): For some opening quote marks, correct '' to ``.
+       (Minor Modes): Add an xref to the new page "Wrong Comment Style" in a
+       footnote.
+       (Wrong Comment Style): New page.
+
+2019-11-09  Nick Helm  <address@hidden>
+
+       Fix unresponsive Help menu in macOS
+
+       * src/nsterm.m (ns_check_menu_open): Don't postpone mouse drag and
+       non-user-generated mouse down events (Bug#31371).
+
+2019-11-09  Eli Zaretskii  <address@hidden>
+
+       Avoid compiler warnings in addpm.c and ddeclient.c
+
+       * nt/ddeclient.c (DdeCallback):
+       * nt/addpm.c (DdeCallback): Modify types of the last 2
+       arguments to avoid compiler warnings in 64-bit builds.
+       (Bug#38040)
+
+2019-11-09  Eli Zaretskii  <address@hidden>
+
+       Fix last change
+
+       * lisp/simple.el (goto-history-element)
+       (next-history-element): Fix quoting of "future history".
+
+       * doc/lispref/minibuf.texi (Minibuffer Commands)
+       (Text from Minibuffer): Add index entry and cross-reference
+       for "future history".  (Bug#38026)
+
+2019-11-09  Hong Xu  <address@hidden>
+
+       Mention future history in history-related minibuffer commands
+
+       * lisp/simple.el (goto-history-element):
+       * doc/lispref/minibuf.texi (Minibuffer Commands): Explain
+       negative NABS.
+       * lisp/simple.el (next-history-element):
+       * doc/lispref/minibuf.texi (Minibuffer Commands): Mention
+       "future history."  (Bug#38026)
+
+2019-11-08  Paul Eggert  <address@hidden>
+
+       Fix some quoting glitches in doc strings
+
+       This also fixes a misplaced "only".
+
+2019-11-08  Stefan Monnier  <address@hidden>
+
+       * lisp/ffap.el (ffap-read-file-or-url): Fix some URL cases
+
+       * lisp/ffap.el (ffap-read-file-or-url): Simplify further
+
+2019-11-08  Thierry Volpiatto  <address@hidden>
+
+       * lisp/ffap.el (ffap-read-file-or-url): Use `read-file-name`
+
+       Since we use `url-handler-mode` to deal with URLs, `read-file-name`
+       works just as well, with the added benefit that it interacts correctly
+       with packages that rebind `read-file-name-function`, such as Helm.
+
+       (ffap-read-url-internal, ffap-read-file-or-url-internal): Remove, 
unused.
+
+2019-11-08  Eli Zaretskii  <address@hidden>
+
+       Fix MS-Windows version reference in FAQ
+
+       * doc/misc/efaq-w32.texi (Which versions of Windows): Clarify that we
+       support all recent versions of MS-Windows.  (Bug#38023)
+
+2019-11-08  João Távora  <address@hidden>
+
+       Nudge icomplete-mode a little closer to fido-mode
+
+       * lisp/icomplete.el (icomplete-completions): Don't use ellipsis when
+       truncating determ in fido-mode.  Highlight the center part of
+       determ with icomplete-first-match.
+
+2019-11-08  João Távora  <address@hidden>
+
+       Have pcm styles apply faces to face prop, not font-lock-face
+
+       This is the way the basic completion styles work.  This fixes
+       candidate highlighting in icomplete.
+
+       * lisp/minibuffer.el (completion-pcm--hilit-commonality): Apply
+       faces to 'face property, not font-lock-face.
+
+2019-11-08  Eli Zaretskii  <address@hidden>
+
+       Minor copyedits in ELisp manual
+
+       * doc/lispref/lists.texi (Sets And Lists): Minor rewording of
+       the "Common Lisp note".  (Bug#37811)
+
+2019-11-08  Robert Pluim  <address@hidden>
+
+       Ensure building and running on non-IPv6 capable hosts works
+
+       * src/process.c (Fmake_network_process) [AF_INET6]: Only build ::1
+       localhost when IPv6 is supported.
+       (Fnetwork_lookup_address_info) [AF_INET6]: Move check for Qipv6 inside
+       ifdef, since its definition depends on AF_INET6.  Don't return IPv6
+       addresses when they're not supported.
+
+       * test/src/process-tests.el (lookup-family-specification,
+       lookup-google): Only do IPv6 lookup if IPv6 is supported.
+
+2019-11-08  Jimmy Aguilar Mena  <address@hidden>
+
+       Handle case where a face's :extend attribute is unspecified (Bug#37774)
+
+       * src/xfaces.c (merge_face_vectors, merge_named_face): Handle case
+       where the :extend attribute's value is 'unspecified' (Bug#37774).
+
+2019-11-07  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/easymenu.el: Don't quote lambdas
+
+       (easy-menu-do-define, easy-menu-make-symbol): Replace `(lambda ..)
+       with a closure.
+
+2019-11-07  Michael Albinus  <address@hidden>
+
+       Handle different system names of w32 in Tramp (Bug#38079)
+
+       * lisp/net/tramp.el (tramp-restricted-shell-hosts-alist):
+       Initialize with `system-name' in small and capital chars.
+
+2019-11-07  Robert Pluim  <address@hidden>
+
+       Describe IPv6 format in docstring for 'make-network-process'
+
+       * src/process.c (Fmake_network_process): Add description of IPv6
+       address format.
+
+2019-11-07  Eli Zaretskii  <address@hidden>
+
+       Revert "Don't flash previous buffer when connecting with emacsclient"
+
+       This reverts commit 49fc040077b33bd1e78ee425575e76329b772a41.
+       It turns out that the fix for a minor aesthetical annoyance
+       caused much more serious bugs: bug#31038, bug#35726, Bug#37097,
+
+2019-11-07  Andrii Kolomoiets  <address@hidden>
+
+       python.el: Pdbtracking improvements
+
+       Allow not to kill buffers when pdbtracking session is finished.
+       Pdbtracking session considered finished judging from the user input.
+
+       * lisp/progmodes/python.el (python-pdbtrack-kill-buffers): New
+       customizable variable.
+       (python-pdbtrack-set-tracked-buffer): Use it.
+       (python-pdbtrack-unset-tracked-buffer)
+       (python-pdbtrack-tracking-finish): New functions.
+       (python-pdbtrack-continue-command, python-pdbtrack-exit-command):
+       New customizable variables.
+       (python-pdbtrack-process-sentinel): New function.  Finish
+       pdbtracking session when process is killed.
+       (python-pdbtrack-prev-command-continue): New variable.
+       (python-pdbtrack-comint-input-filter-function): New function.
+       Finish pdbtracking session based on commands sent to pdb.
+       (python-pdbtrack-comint-output-filter-function): Unset/set
+       tracking buffer if looking at pdb prompt; finish pdbtracking
+       session if filename of current stack frame starts with
+       "<" e.g. "<stdin>".
+       (python-pdbtrack-comint-output-filter-function): Don't override
+       overlay-arrow-string.
+       (python-pdbtrack-setup-tracking): New function.
+       (inferior-python-mode): Use it.
+       (python-pdbtrack-stacktrace-info-regexp): Default value is changed.
+       Must also match lines with filename like "<stdin>" and "<string>".
+       * etc/NEWS: Mention python-pdbtrack-kill-buffers
+
+2019-11-07  Michael Albinus  <address@hidden>
+
+       Make ange-ftp fit for tramp-tests
+
+       * lisp/net/ange-ftp.el (ange-ftp-repaint-minibuffer): Use empty message.
+       (ange-ftp-quote-string): Unquote the string.
+       (ange-ftp-substitute-in-file-name, ange-ftp-access-file)
+       (ange-ftp-copy-directory, ange-ftp-make-symbolic-link)
+       (ange-ftp-add-name-to-file): New defuns.  Set 'ange-ftp property.
+       (ange-ftp-real-substitute-in-file-name)
+       (ange-ftp-real-copy-directory): New defuns.
+       (ange-ftp-file-name-as-directory): Care about `non-essential'.
+       (ange-ftp-file-attributes): Handle ID-STRING.
+       (ange-ftp-copy-file-internal, ange-ftp-rename-file)
+       (ange-ftp-make-directory): Improve error handling.
+       (ange-ftp-insert-directory): Initialize SWITCHES if they are nil.
+
+       * test/lisp/net/tramp-tests.el (ange-ftp-make-backup-files): Declare.
+       (tramp-test39-make-nearby-temp-file, tramp--test-ange-ftp-p): New defun.
+       (tramp-test05-expand-file-name-relative)
+       (tramp-test06-directory-file-name, tramp-test10-write-region)
+       (tramp-test11-copy-file, tramp-test12-rename-file)
+       (tramp-test17-insert-directory)
+       (tramp-test26-file-name-completion)
+       (tramp-test37-make-auto-save-file-name)
+       (tramp-test38-find-backup-file-name)
+       (tramp--test-special-characters): Use it.
+
+2019-11-06  Stefan Kangas  <address@hidden>
+
+       Clean up major mode check in package-menu-mode
+
+       * lisp/emacs-lisp/package.el (package--ensure-package-menu-mode):
+       Extract function to warn about incorrect major mode...
+       (package-menu-toggle-hiding, package-menu-refresh)
+       (package-menu-execute): ...from here.
+       (package-menu--mark-upgrades-1): And here, but move call...
+       (package-menu-mark-upgrades): ...here instead.
+       (package-menu-hide-package, package-menu-mark-delete)
+       (package-menu-mark-install, package-menu-mark-unmark)
+       (package-menu-quick-help, package-menu-get-status)
+       (package-menu-filter-by-keyword, package-menu-filter-by-name)
+       (package-menu-clear-filter): Add call to new function.  (Bug#37891)
+
+2019-11-06  Stefan Kangas  <address@hidden>
+
+       Test that comint-password-prompt-regexp matches "git push"
+
+       * test/lisp/comint-tests.el (comint-testsuite-password-strings): Test
+       that 'comint-password-prompt-regexp' matches 'git push'
+       output.  (Bug#20910)
+
+2019-11-06  Juri Linkov  <address@hidden>
+
+       * lisp/dired-aux.el (dired-vc-rename-file): New defcustom.
+
+       (dired-rename-file): Call vc-rename-file when dired-vc-rename-file is 
non-nil.
+
+       * lisp/vc/vc.el (vc-rename-file): Allow renaming added files.
+       Call vc-file-clearprops on new file too for the case when
+       old and new files were renamed to each other back and forth.
+
+       https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg00069.html
+
+2019-11-06  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el (tab-bar-history-old): Rename from 
tab-bar-history-current.
+
+       (tab-bar-history-old-minibuffer-depth):
+       Rename from tab-bar-history--minibuffer-depth.
+
+2019-11-06  Juri Linkov  <address@hidden>
+
+       * lisp/tab-line.el: More configurability for tab buffer groups.
+
+       * lisp/tab-line.el (tab-line-tabs-buffer-group-function)
+       (tab-line-tabs-buffer-group-sort-function)
+       (tab-line-tabs-buffer-groups-sort-function): New defvars.
+       (tab-line-tabs-buffer-group-name): Rename from
+       tab-line-tabs-buffer-groups--name and use 
tab-line-tabs-buffer-group-function.
+       (tab-line-tabs-buffer-groups): Use 
tab-line-tabs-buffer-groups-sort-function
+       and tab-line-tabs-buffer-group-sort-function.
+       (tab-line-new-tab): Let bind tab-line-tabs-buffer-groups to
+       mouse-buffer-menu-mode-groups.
+
+2019-11-06  Paul Eggert  <address@hidden>
+
+       Simplify fixnum division slightly
+
+       * src/data.c (arith_driver): Streamline fixnum division a bit
+       more, and add a comment about why overflow is impossible.
+       This responds to a private comment by Stefan Monnier.
+
+2019-11-06  Alan Mackenzie  <address@hidden>
+
+       Add a full set of CC Mode language variables to js.el.
+
+       This will allow js.el to work after maintenance changes in CC Mode, 
e.g. the
+       fix to bug #11165.
+
+       * lisp/progmodes/js.el (top level): Create a CC Mode derived language 
called
+       js-mode and based on Java Mode.
+       (js-mode): call c-init-language-vars for js-mode.  Remove the direct 
settings
+       of several CC Mode language variables which are now defined through the
+       derived language mechanism.  Call c-set-style and set up the needed 
style
+       variables c-block-comment-prefix and c-comment-prefix-regexp.
+
+2019-11-06  Eli Zaretskii  <address@hidden>
+
+       Minor fix in the Emacs manual
+
+       * doc/emacs/msdos.texi (ls in Lisp): Fix the description of
+       'ls-lisp-verbosity'.  (Bug#38077)
+
+2019-11-06  Stephen Gildea  <address@hidden>
+
+       time-stamp: add support for time zone numeric offset
+
+       * lisp/time-stamp.el: Implement %:z as expanding to the numeric time 
zone
+       offset, to address the feature request of bug#32931.  Do not document it
+       yet, to discourage compatibility problems in mixed Emacs 26 and Emacs 27
+       environments.  Documentation will be added in a subsequent release at
+       least two years later.  (We cannot yet use %z for numeric time zone
+       because in Emacs 26 it was documented to do something else.)
+
+       * test/lisp/time-stamp-tests.el (time-stamp-test-format-time-zone): 
expand this
+       test and break it into two tests, time-stamp-test-format-time-zone-name
+       and time-stamp-test-format-time-zone-offset.
+
+2019-11-06  Michael Albinus  <address@hidden>
+
+       More error checks in Tramp's make-directory
+
+       * lisp/net/tramp-adb.el (tramp-adb-handle-make-directory):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-make-directory):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-make-directory):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-make-directory):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-make-directory):
+       Signal `file-already-exists' if DIR exists.
+
+       * test/lisp/net/tramp-tests.el (tramp-test04-substitute-in-file-name):
+       Fix thinko.
+       (tramp-test13-make-directory, tramp-test14-delete-directory)
+       (tramp-test15-copy-directory): Extend tests.
+
+2019-11-06  Stefan Kangas  <address@hidden>
+
+       Fix problem with my last commit in package.el
+
+       * lisp/emacs-lisp/package.el (package-menu--refresh-archives): Rename
+       from duplicated name package-menu--refresh.  (Bug#38084)
+       (package-menu-mode, list-packages): Use new name.
+
+2019-11-05  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-10-24 timespec-add, timespec-sub: simplify
+       * lib/timespec-add.c, lib/timespec-sub.c:
+       Copy from Gnulib.
+
+2019-11-05  Paul Eggert  <address@hidden>
+
+       Remove unneeded overflow check in integer division
+
+       * src/data.c (arith_driver): Remove unnecessary runtime test,
+       since integer overflow is impossible on division of fixnums,
+       given that the worst case is MOST_NEGATIVE_FIXNUM / -1 which is
+       representable as an EMACS_INT (albeit not as a fixnum).
+
+2019-11-05  Stefan Kangas  <address@hidden>
+
+       Avoid changing value of defcustom package-enable-at-startup
+
+       * lisp/emacs-lisp/package.el (package--activated): New variable to
+       avoid changing value of defcustom 'package-enable-at-startup'.
+       (package-initialize): Don't set 'package-enable-at-startup'.
+       (package-initialize, package-activate-all): Set 'package--activated'
+       instead of 'package-enable-at-startup'.
+       (package--initialized): Add doc string.
+
+       * lisp/startup.el (command-line): Check if 'package--activated' is
+       non-nil before activating packages.
+
+       * doc/lispref/package.texi (Packaging Basics): Update docs.
+
+2019-11-05  Stefan Kangas  <address@hidden>
+
+       Make 'g' refresh package data in package menu
+
+       * lisp/emacs-lisp/package.el (package-menu--refresh): Rename from
+       'package-menu-refresh', make internal and non-interactive.
+       (package-menu-mode-map, package-menu-mode-menu, package-menu-mode)
+       (list-packages): Use the above.  (Bug#35504)
+       (package-menu-refresh): Redefine as obsolete fuction alias for
+       'revert-buffer'.
+       * doc/emacs/package.texi (Package Menu): Document it.
+       * etc/NEWS: Announce it.
+
+2019-11-05  Stefan Kangas  <address@hidden>
+
+       Rename *-multiframe-window to *-window-any-frame
+
+       Suggested by Drew Adams.
+
+       * lisp/frame.el
+       (next-multiframe-window): Define as obsolete alias for...
+       (next-window-any-frame): ...new function name.
+       (previous-multiframe-window): Define as obsolete alias for...
+       (previous-window-any-frame): ...new function name.  (Bug#12436)
+
+       * lisp/term/ns-win.el (global-map): Use new command name.
+       * doc/emacs/windows.texi (Other Window): Document it.
+       * etc/NEWS: Announce it.
+
+2019-11-05  João Távora  <address@hidden>
+
+       Follow JSONRPC spec by not sending :result field on errors
+
+       Also don't send :error field on non-errors.
+
+       * lisp/jsonrpc.el (jsonrpc--reply): Don't send :result and :error
+       if none supplied.
+       (Version): Bump to 1.0.8
+
+2019-11-05  Juri Linkov  <address@hidden>
+
+       Add prefix arg to more isearch commands (bug#14563)
+
+       * lisp/isearch.el (isearch--yank-char-or-syntax)
+       (isearch-yank-word-or-char, isearch-yank-symbol-or-char)
+       (isearch-yank-until-char): Add optional prefix arg.
+
+2019-11-05  Juri Linkov  <address@hidden>
+
+       * lisp/tab-line.el: New option for tabs where buffers are grouped by 
mode.
+
+       * lisp/tab-line.el (tab-line-tabs-function): Add option
+       tab-line-tabs-buffer-groups.
+       (tab-line-tabs-buffer-groups): New defvar defaulted to
+       mouse-buffer-menu-mode-groups.
+       (tab-line-tabs-buffer-groups--name, tab-line-tabs-buffer-groups):
+       New functions.
+       (tab-line-format): Support tabs in the format '(tab (name . "name") 
...)'.
+       (tab-line-select-tab): Move part of code to tab-line-select-tab-buffer.
+       (tab-line-select-tab-buffer): New function.
+       (tab-line-tab-current): Rename from tab-line-tab-selected.
+
+2019-11-05  João Távora  <address@hidden>
+
+       Document fido-mode
+
+       * doc/emacs/buffers.texi (Icomplete): Document Fido Mode.
+
+       * etc/NEWS: Mention Fido Mode.
+
+       * lisp/icomplete.el (icomplete-mode): Ensure fido-mode is off.
+       (fido-mode): Ensure icomplete-mode is off.
+       (icomplete-magic-ido-ret): Don't force completions if no
+       completions.
+
+2019-11-05  João Távora  <address@hidden>
+
+       New fido-mode, emulates ido-mode with icomplete-mode
+
+       * lisp/icomplete.el (icomplete-fido-mode-map): New variable.
+       (icomplete--fido-mode-setup): New function.
+       (fido-mode): New global minor mode.
+
+2019-11-05  Paul Eggert  <address@hidden>
+
+       Pacify byte-compiler in calculator.el
+
+       * lisp/calculator.el (calculator-expt): Open-code cl-evenp to
+       pacify warning “the function ‘cl-evenp’ might not be defined”.
+       Problem reported by Juanma Barranquero in:
+       https://lists.gnu.org/r/emacs-devel/2019-11/msg00118.html
+
+2019-11-05  Stefan Monnier  <address@hidden>
+
+       * admin/unidata/uvs.el: Use lexical-binding
+
+       * lisp/doc-view.el (doc-view--revert-buffer): Fix last change
+
+2019-11-05  Stefan Kangas  <address@hidden>
+
+       Declare unused macro package--push obsolete
+
+       * lisp/emacs-lisp/package.el (package--push): Declare obsolete.
+
+2019-11-05  Michael Albinus  <address@hidden>
+
+       Improve Tramp's copy-directory
+
+       * 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-rclone.el (tramp-rclone-file-name-handler-alist):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
+       Add `copy-directory'.
+
+       * lisp/net/tramp.el (tramp-handle-copy-directory): New defun.
+
+2019-11-05  Robert Pluim  <address@hidden>
+
+       Always check for client-certificates
+
+       * lisp/net/network-stream.el
+       (network-stream-use-client-certificates): New user option.
+       (open-network-stream): If 'network-stream-use-client-certificates'
+       is t, and the user hasn't specified :client-certificate, do
+       certificate lookups via 'auth-source'.
+       (network-stream-certificate): Only return key and certificate
+       files that exist.
+
+       * doc/lispref/processes.texi (Network): Document new
+       client-certificate behavior.
+
+       * etc/NEWS: Document 'network-stream-use-client-certificates'.
+
+2019-11-04  Paul Eggert  <address@hidden>
+
+       Simplify calculator-expt
+
+       * lisp/calculator.el (calculator-expt): Simplify, now that
+       expt does the right thing if the first arg is -1, 0, or 1.
+
+2019-11-04  Paul Eggert  <address@hidden>
+
+       Overflow errors are range errors
+
+       * etc/NEWS: Mention this.
+       * doc/lispref/errors.texi (Standard Errors):
+       Document overflow-error, which was formerly undocumented.
+       It is a range error, not a domain error.
+       * src/data.c (syms_of_data): overflow-error and (undocumented)
+       underflow-error are subtypes range-error, not domain-error.
+       This fixes bugs in timezone-time-from-absolute and in
+       erc-ctcp-reply-PING.
+
+2019-11-04  Paul Eggert  <address@hidden>
+
+       Don’t signal overflow for (expt 1 bignum)
+
+       Similarly for (expt 0 bignum) and (expt -1 bignum).
+       The result is always a -1, 0 or 1, so do not signal overflow.
+       * src/data.c (expt_integer): Do not signal an overflow if
+       -1 <= X <= 1.  Be clearer about when overflow is signaled.
+       * test/src/floatfns-tests.el (bignum-expt): Test this.
+
+2019-11-04  Ronnie Schnell  <address@hidden>
+
+       Fixes bug where restoring game saved in an endgame question room would 
show 'nil' as the question.
+
+2019-11-04  Michael Albinus  <address@hidden>
+
+       Improve Tramp error handling
+
+       * lisp/net/tramp.el (tramp-set-syntax): Add missing argument.
+       (tramp-signal-hook-function): Make it more robust.
+       (tramp-handle-directory-files):
+       * lisp/net/tramp-adb.el
+       (tramp-adb-handle-directory-files-and-attributes)
+       (tramp-adb-handle-copy-file, tramp-adb-handle-rename-file):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file):
+       * lisp/net/tramp-rclone.el (tramp-rclone-do-copy-or-rename-file)
+       (tramp-rclone-handle-directory-files):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-directory-files-and-attributes)
+       (tramp-sh-handle-copy-directory, tramp-do-copy-or-rename-file):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
+       (tramp-smb-handle-copy-file, tramp-smb-handle-directory-files)
+       (tramp-smb-handle-rename-file):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-do-copy-or-rename-file):
+       Improve error handling.
+
+       * test/lisp/net/tramp-tests.el (tramp-test11-copy-file)
+       (tramp-test12-rename-file, tramp-test14-delete-directory)
+       (tramp-test15-copy-directory, tramp-test16-directory-files)
+       (tramp-test19-directory-files-and-attributes): Extend tests.
+
+2019-11-04  Eli Zaretskii  <address@hidden>
+
+       Fix last change in dired.c
+
+       * src/dired.c (file_name_completion): Fix arguments to
+       Fcompare_strings.  (Bug#38056)
+
+2019-11-03  Stephen Gildea  <address@hidden>
+
+       Fix English grammar in some doc strings and comments
+
+       (files.el subr.el): Fix some grammar errors in doc strings and comments.
+       (frame.c fringe.c image.c xfns.c xterm.c): Fix some English grammar
+       errors in doc strings.
+
+2019-11-03  Paul Eggert  <address@hidden>
+
+       Improve time documentation a bit more
+
+       * doc/lispref/os.texi (Time of Day, Time Conversion)
+       (Time Parsing, Time Calculations): Improve doc.
+
+2019-11-03  Juri Linkov  <address@hidden>
+
+       * lisp/help-fns.el (describe-variable): Add quotes to symbol value of 
origval.
+
+2019-11-03  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el: Better handling of tab-bar-history.
+
+       * lisp/tab-bar.el (tab-bar-history-limit): Increase to 10 since wc
+       is not saved to the desktop file anymore, so doesn't affect its size.
+       (tab-bar-history--pre-change, tab-bar--history-change):
+       Store wc before possibly entering the minibuffer.
+
+2019-11-03  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el: Filter out non-persistent tab parameters from 
frameset.
+
+       * lisp/tab-bar.el (frameset-filter-tabs): New function
+       added to 'frameset-filter-alist' for frame parameter 'tabs'.
+       (tab-bar--tab): Remove ws-bl/ws-bbl that are not needed because
+       frameset doesn't save frame buffer-list to desktop anyway.
+       (tab-bar-select-tab): Remove ws-bl/ws-bbl related code.
+
+       * lisp/emacs-lisp/seq.el (seq-reduce): Add autoload cookie.
+
+2019-11-03  Stefan Kangas  <address@hidden>
+           Jonas Bernoulli  <address@hidden>
+
+       Handle truncate-lines in customize-group
+
+       * lisp/cus-edit.el (custom-group--draw-horizontal-line): New
+       function to draw horizontal lines which handles a non-nil value of
+       'truncate-lines'.  (Bug#25308)
+       (custom-group-value-create): Use it.
+
+2019-11-03  Lars Ingebrigtsen  <address@hidden>
+
+       Fix doc of font-lock-syntactic-face-function
+
+       * doc/lispref/modes.texi (Syntactic Font Lock): Don't refer to
+       no-longer-existing OTHER-VARS (bug#17730) and include an example.
+
+2019-11-03  Eli Zaretskii  <address@hidden>
+
+       Fix file-tests.el on MS-Windows
+
+       * test/lisp/files-tests.el
+       (files-tests-file-name-non-special-start-file-process): On
+       MS-Windows, wait till the process dies before returning from
+       the files-tests--with-temp-non-special macro, to ensure the
+       temporary directory is successfully deleted.
+
+2019-11-03  Eli Zaretskii  <address@hidden>
+
+       Fix case-insensitive completion of non-ASCII file names
+
+       * src/dired.c (scmp): Comment on (non)applicability to
+       comparisons of  non-ASCII strings case-insensitively.
+       (file_name_completion): Decode early the file names read from
+       the directory, and use the decoded names for comparison when
+       letter-case should be ignored.  (Bug#11339)
+
+2019-11-03  Lars Ingebrigtsen  <address@hidden>
+
+       describe-font/font-info works with unloaded fonts
+
+       * lisp/international/mule-diag.el (describe-font): This function
+       can be used on unloaded fonts, so remove that restriction from the
+       doc string (bug#16815).  Also allow completion over all fonts on
+       the system.
+
+       * src/font.c (Ffont_info): Ditto for the doc string.
+
+2019-11-03  Lars Ingebrigtsen  <address@hidden>
+
+       Add a <a id=...> skeleton to html-mode
+
+       * lisp/textmodes/sgml-mode.el (html-id-anchor): New skeleton
+       and keystroke (bug#37651).
+
+2019-11-03  Juanma Barranquero  <address@hidden>
+
+       * lisp/bs.el (bs-mode): Improve mode docstring.
+
+2019-11-02  Juri Linkov  <address@hidden>
+
+       * lisp/tab-line.el (tab-line-tab-selected): New face.
+
+       (tab-line-format): Use new face tab-line-tab-selected.
+       ([tab-line]): Move tab-switching mouse wheel commands to S-keys.
+
+2019-11-02  Óscar Fuentes  <address@hidden>
+
+       Fix data-directory when executing from an out-of-source build
+
+       Fixes #36828.
+
+       * src/callproc.c (init_callproc): detect out-of-source build.
+
+2019-11-02  João Távora  <address@hidden>
+
+       Allow flymake diagnostic types to have shorter names
+
+       Eglot, a third-party package which uses Flymake, has its own
+       diagnostic types such as 'eglot-error', 'eglot-warning', etc...  While
+       not being too long, they will not fit in the type column of the "list
+       all diagnostics" buffer.  This commit allows diagnostic types to have
+       user-defined names and also assigns names to the default categories.
+
+       * doc/misc/flymake.texi (Flymake error types): Describe
+       flymake-type-name prop.
+
+       * lisp/progmodes/flymake.el (flymake--diagnostics-buffer-entries):
+       Use type names.
+       (flymake-error, flymake-warning, flymake-note): Give these
+       diagnostic categories default type names.
+
+2019-11-02  João Távora  <address@hidden>
+
+       Avoid face clashes between Flymake and region highlighting
+
+       Fix bug#34022.
+
+       * lisp/progmodes/flymake.el (flymake--highlight-line): Use
+       (PRIMARY . SECONDARY) priority value.
+
+2019-11-02  João Távora  <address@hidden>
+
+       Clarify consequences of mismatching Flymake diagnostic buffers
+
+       Fix bug#34418.
+
+       * doc/misc/flymake.texi (Flymake utility functions): Add note to
+       flymake-make-diagnostic.
+
+       * lisp/progmodes/flymake.el (flymake--handle-report): Discard
+       diagnostics from other buffers.
+
+2019-11-02  Lars Ingebrigtsen  <address@hidden>
+
+       Further fixup of the previous doc fix in the Faces node
+
+       * doc/lispref/display.texi (Faces): Improve wording from previous
+       change.
+
+2019-11-02  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Make the debbugs groups also include robot messages"
+
+       This reverts commit 682eae776efa9d57842345de67becf5c56cafc91.
+
+       The change made the bug# disappear from the Subject lines.
+
+2019-11-02  Alan Mackenzie  <address@hidden>
+
+       CC Mode.  Fix slow scrolling by adding a search limit.
+
+       This fixes bug #10149.
+
+       * lisp/progmodes/cc-fonts.el (c-font-lock-single-decl) Limit the search 
by
+       c-go-up-list-backwards to 500 non-literal characters.
+
+2019-11-02  João Távora  <address@hidden>
+
+       Correct merge blunder in last icomplete commit
+
+       * lisp/icomplete.el (icomplete-exhibit): Use
+       while-no-input-ignore-events.
+
+2019-11-02  Eli Zaretskii  <address@hidden>
+
+       Document Windows font selection quirks
+
+       * doc/emacs/msdos.texi (Windows Fonts): Document
+       'w32-use-w32-font-dialog' and 'w32-fixed-font-alist'.
+
+2019-11-02  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of 'set-face-font'
+
+       * lisp/faces.el (set-face-font):
+       * doc/emacs/frames.texi (Fonts):
+       * doc/lispref/display.texi (Face Attributes)
+       (Attribute Functions): Clarify and correct the documentation
+       of set-face-font and related descriptions of font
+       specifications.  (Bug#14647)
+
+2019-11-02  Eli Zaretskii  <address@hidden>
+
+       Revert "Omit edition numbers and dates in manuals"
+
+       This reverts commit 2f42832895942fdeaa0c500511aa19860fa806cd.
+       Editions of Emacs manuals must be coordinated with the FSF
+       publishing staff, as they appear on the printed books.
+
+2019-11-01  Stefan Kangas  <address@hidden>
+
+       * .dir-locals.el: Add explanatory header.
+
+2019-11-01  Stefan Kangas  <address@hidden>
+
+       Add auto-insert skeleton for ".dir-locals.el"
+
+       * lisp/autoinsert.el (auto-insert-alist): Add auto-insert skeleton for
+       ".dir-locals.el".
+
+2019-11-01  João Távora  <address@hidden>
+
+       New icomplete-tidy-shadowed-file-names variable
+
+       * lisp/icomplete.el (rfn-eshadow): Require it.
+       (icomplete-tidy-shadowed-file-names): New variable.
+       (icomplete-exhibit): Use icomplete-tidy-shadowed-file-names.
+
+2019-11-01  João Távora  <address@hidden>
+
+       Fix icomplete-force-complete-and-exit for no-input situations
+
+       If there is no minibuffer input, but the user has already cycled some
+       pre-calculated completions, we should be calling
+       minibuffer-force-complete-and-exit instead of
+       minibuffer-complete-and-exit.  The former is guaranteed to be fast in
+       this situation and yields the desired "selected" completion, while the
+       latter will just give us the default, ignoring all the cycling of
+       icomplete-{forward|backward}-completions.
+
+       * lisp/icomplete.el (icomplete-force-complete-and-exit): Add
+       comments and fix for empty input but some completions calculated.
+
+2019-11-01  João Távora  <address@hidden>
+           Stefan Monnier  <address@hidden>
+
+       Improve fix for icomplete's backward-kill-word bug#38024
+
+       * lisp/icomplete.el (icomplete-exhibit): Use
+       while-no-input-ignore-events, not redisplay.
+
+2019-11-01  Stefan Kangas  <address@hidden>
+
+       * doc/emacs/package.texi (Package Menu): Add index items.
+
+2019-11-01  Stefan Kangas  <address@hidden>
+
+       Use PASSWORD_STORE_DIR in auth-source-pass when set
+
+       * lisp/auth-source-pass.el (auth-source-pass-filename): Initialize to
+       PASSWORD_STORE_DIR environment variable when set.  (Bug#29663)
+
+2019-11-01  Stefan Kangas  <address@hidden>
+
+       Don't refuse to install packages without a "footer line"
+
+       * lisp/emacs-lisp/package.el (package-buffer-info): Don't signal an
+       error when the "footer line" is missing.  Warn only.  (Bug#26490)
+       * etc/NEWS: Announce it.
+
+2019-11-01  Paul Eggert  <address@hidden>
+
+       Omit edition numbers and dates in manuals
+
+       These seem to cause more confusion than they cure; e.g.,
+       https://shop.fsf.org/books/gnu-emacs-manual-18th-edition-v-261
+       currently advertises "18th edition" even as it points to
+       https://www.gnu.org/software/emacs/manual/pdf/emacs.pdf
+       which says "Seventeenth Edition".  It is simpler and less
+       confusing to stick to one version number like "26.3".  If we
+       need a separate edition number for each printed manual for
+       some reason (marketing?) we can put “@ifset printed-edition”
+       around anything specific to the printed editions.
+       (as opposed to online PDF copies).
+       * doc/emacs/emacs.texi (EDITION):
+       * doc/lispintro/emacs-lisp-intro.texi (edition-number, update-date):
+       * doc/lispref/elisp.texi (VERSION, DATE):
+       Remove, and remove uses.
+
+2019-11-01  Paul Eggert  <address@hidden>
+
+       Document limits on some time-conversion functions
+
+       * doc/lispref/os.texi (Time of Day, Time Zone Rules)
+       (Time Conversion, Time Parsing, Time Calculations):
+       Document functions that limit the range of time values
+       due to OS limits (Bug#37974).
+
+2019-11-01  Lars Ingebrigtsen  <address@hidden>
+
+       set-face-font doc string update
+
+       * lisp/faces.el (set-face-font): Mention what the string formats
+       are (bug#14647).
+
+2019-11-01  Lars Ingebrigtsen  <address@hidden>
+
+       Fix documentation of set-face-font in the manual
+
+       * doc/lispref/display.texi (Attribute Functions): Describe more
+       precisely what set-face-font does (bug#14647).
+
+2019-11-01  Lars Ingebrigtsen  <address@hidden>
+
+       Low-Level Font documentation fix
+
+       * doc/lispref/display.texi (Low-Level Font): Mention what the data
+       types the font attributes are (bug#14634).
+
+2019-11-01  Lars Ingebrigtsen  <address@hidden>
+
+       Really enable setting a breakpoint without instrumenting first
+
+       * lisp/emacs-lisp/edebug.el (edebug-set-breakpoint): Really enable
+       setting a breakpoint without instrumenting first (bug#23469).
+
+2019-11-01  Lars Ingebrigtsen  <address@hidden>
+
+       Don't claim that anonymous face can't be used in font-lock
+
+       * doc/lispref/display.texi (Faces): Anonymous functions can be
+       used when font locking, so adjust the injunction against them
+       (bug#35005).
+
+2019-11-01  Cecilio Pardo  <address@hidden>  (tiny change)
+
+       Remove an unfunny joke from DEVEL.HUMOR
+
+       * etc/DEVEL.HUMOR: Remove unfunny joke (bug#38002).
+
+2019-11-01  Filipp Gunbin  <address@hidden>
+
+       Make ant regexp in compilation-error-regexp-alist-alist more lax
+
+       * lisp/progmodes/compile.el: Make ant regexp accept filenames that may
+       occur on Cygwin (like c:/test) and optional additional severity level
+       after task name.
+       * etc/compilation.txt: Add sample.
+
+2019-11-01  Richard Stallman  <address@hidden>
+
+       Minor wording change in ELisp manual
+
+       * doc/lispref/functions.texi (Advising Named Functions):
+       Improve and clarify wording of the advice to avoid advising
+       functions in released code.
+
+2019-10-31  Paul Eggert  <address@hidden>
+
+       Fix insert-file-contents file error regression
+
+       Problem reported for dired-view-file (Bug#37950).
+       * src/fileio.c (Finsert_file_contents): When visiting,
+       signal an error if the file could not be opened for any reason,
+       rather than signaling an error only for nonexistent files, fixing
+       a bug introduced in 2019-09-16T03:17:43!address@hidden.
+
+2019-10-31  Eric Ludlam  <address@hidden>
+
+       * lisp/cedet/ (semantic-analyze-possible-completions): Add `flags` arg
+
+       * lisp/cedet/semantic/texi.el (semantic-analyze-possible-completions),
+       lisp/cedet/srecode/srt-mode.el (semantic-analyze-possible-completions),
+       lisp/cedet/semantic/bovine/make.el 
(semantic-analyze-possible-completions):
+       Add `flags` arg.
+       * lisp/cedet/semantic/grammar.el 
(semantic-analyze-possible-completions):
+       Add `flags` arg.  Reverse the found prefix.
+       (semantic-ctxt-current-class-list): Include token tags as things to
+       appear in non-lisp context.
+
+2019-10-31  Eric Ludlam  <address@hidden>
+
+       * test/lisp/cedet/semantic-utest-ia.el: Update from upstream
+
+       Merge content from CEDET on SF to bring in additional test points
+       and support more types of languages.
+       (semantic-utest-ia-struct.cpp, semantic-utest-ia-templates.cpp)
+       (semantic-utest-ia-using.cpp, semantic-utest-ia-nsp.cpp)
+       (semantic-utest-ia-localvars.cpp, semantic-utest-ia-varnamse.java)
+       (semantic-utest-ia-wisent.wy, semantic-utest-ia-texi)
+       (semantic-utest-ia-make, semantic-utest-ia-srecoder): New test points
+       (semantic-ia-utest-buffer): Use comment-start-skip when looking
+       for test point tokens.
+       Capture errors ignoring debugger to enable test for empty results.
+       Improve output from test diagnostics.
+       (semantic-ia-utest-buffer-refs): Use comment-start-skip to find
+       test point tokens.
+       Author: Eric Ludlam <address@hidden>
+
+2019-10-31  Eric Ludlam  <address@hidden>
+
+       * test/manual/cedet/tests/test*: More updates from upstream
+
+       * test/manual/cedet/tests/testjavacomp.java,
+       test/manual/cedet/tests/testnsp.cpp,
+       test/manual/cedet/tests/testsppcomplete.c,
+       test/manual/cedet/tests/testtypedefs.cpp,
+       test/manual/cedet/tests/testvarnames.c:
+       Merge content from CEDET on SF with extended test points for use with
+       test/lisp/cedet/semantic-utest-ia.el
+       Author: Eric Ludlam <address@hidden>
+
+2019-10-31  Eric Ludlam  <address@hidden>
+
+       * test/manual/cedet/tests/testdoublens.cpp: Update from upstream
+
+       * test/manual/cedet/tests/testdoublens.hpp:
+       Merge content from CEDET on SF with extended test points for use with
+       test/lisp/cedet/semantic-utest-ia.el
+       Author: Eric Ludlam <address@hidden>
+
+2019-10-31  Eric Ludlam  <address@hidden>
+
+       * test/manual/cedet/tests/: New files for semantic-utest-ia.el
+
+       * test/manual/cedet/tests/test.mk,
+       test/manual/cedet/tests/test.srt, test/manual/cedet/tests/test.texi,
+       test/manual/cedet/tests/testlocalvars.cpp,
+       test/manual/cedet/tests/teststruct.cpp,
+       test/manual/cedet/tests/testtemplates.cpp,
+       test/manual/cedet/tests/testusing.cpp,
+       test/manual/cedet/tests/testusing.hh,
+       test/manual/cedet/tests/testvarnames.java.
+       test/manual/cedet/tests/testwisent.wy:
+       New files to be used by test/lisp/cedet/semantic-utest-ia.el.
+       Author: Eric Ludlam <address@hidden>
+
+2019-10-31  Alan Third  <address@hidden>
+
+       Prevent text flicker with macOS input methods (bug#23412)
+
+       * src/nsterm.m ([EmacsView setMarkedText:selectedRange:]): Don't
+       always delete the working text as ns-put-working-text does that.
+
+2019-10-31  Mattias Engdegård  <address@hidden>
+
+       Inhibit undo-in-region for mouse-drag-region (bug#37700)
+
+       'mouse-drag-region' leaves the region active around the dragged text,
+       so a straight undo did not revert the entire operation.  To remedy
+       this, inhibit undo-in-region when the last command was
+       mouse-drag-region.  (Method suggested by Stefan Monnier.)
+
+       * lisp/mouse.el (undo-drag-region): Set the undo-inhibit-region 
property.
+       * lisp/simple.el (undo): Inhibit undo-in-region if the last command
+       had the undo-inhibit-region property set.
+       * doc/lispref/symbols.texi (Standard Properties):
+       * doc/lispref/text.texi (Undo): Document undo-inhibit-region.
+       * etc/NEWS: Announce the property.
+
+2019-10-31  Lars Ingebrigtsen  <address@hidden>
+
+       Ensure that font-local variables are buffer-local
+
+       * lisp/font-lock.el (font-lock-set-defaults): Ensure that the font
+       lock variables are buffer-local even when nil, so that they're
+       copied correctly by mhtml mode when changing sub-modes (bug#33937).
+
+2019-10-31  Lars Ingebrigtsen  <address@hidden>
+
+       Clean up font-lock-refontify slightly
+
+       * lisp/font-lock.el (font-lock-refontify): Use
+       syntax-ppss-flush-cache instead of internal variable.
+
+2019-10-31  Lars Ingebrigtsen  <address@hidden>
+
+       Further tweaks to sh-script \ #foo font locking
+
+       * lisp/progmodes/sh-script.el (sh-syntax-propertize-function):
+       Tweak previous \ #foo change to work on all quoted characters, but
+       check that the backslash itself is not backslashed.  Regexp from
+       Stefan Monnier.
+
+2019-10-31  Michael Albinus  <address@hidden>
+
+       Fix some minor Tramp problems
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
+       Check, that `tramp-password-save-function' is a function.
+
+       * lisp/net/tramp-smb.el (tramp-smb-handle-file-system-info):
+       Check, that there is a share.
+
+       * lisp/net/tramp.el (outline-regexp): Declare.
+       (tramp-get-debug-buffer): Let-bind `signal-hook-function'.
+
+       * test/lisp/net/tramp-tests.el (tramp-test04-substitute-in-file-name):
+       Skip some tests for Emacs 24 and 25; they let Emacs crash.
+
+2019-10-31  Robert Pluim  <address@hidden>
+
+       Rework vc stash bindings
+
+       This adds create/snapshot bindings to the stash button even when there
+       are no stashes, and extends the stash menu bindings.
+
+       * etc/NEWS: Announce the bindings.
+
+       * lisp/vc/vc-git.el (vc-git-stash-shared-map): New keymap.  Holds
+       shared bindings between stash button and stash list.
+       (vc-git-stash-map): Inherit from vc-git-stash-shared-map.
+       (vc-git-stash-button-map): New keymap.  Holds button bindings,
+       inherit from vc-git-stash-shared-map.
+       (vc-git-stash-shared-help, vc-git-stash-list-help): New
+       defconsts.  Abstract out list/button help texts.
+       (vc-git--make-button-text): Set keymap property to
+       vc-git-stash-button-map.
+       (vc-git-make-stash-button): Use vc-git-stash-shared-help.
+       (vc-git-stash-menu-map): Add items for vc-git-stash and
+       vc-git-stash-snapshot.
+       (vc-git-dir-extra-headers): Use vc-git-stash-list-help and
+       vc-git-stash-shared-help.  Add vc-git-stash and
+       vc-git-stash-snapshot bindings to text shown when there are no stashes.
+
+2019-10-30  Paul Eggert  <address@hidden>
+
+       Fix bug with lock file on nonstandard filesystem
+
+       * src/filelock.c (create_lock_file):
+       Don’t disable user write access to the lock file (Bug#37884).
+
+2019-10-30  Lars Ingebrigtsen  <address@hidden>
+
+       Font-lock symlinks in dired buffers better
+
+       * lisp/dired.el (dired-font-lock-keywords): Font-lock symlinks
+       differently based on whether they point at a directory or not
+       (bug#17064).  Based on code from Michael Heerdegen.
+
+2019-10-30  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el (tab-bar-select-tab): Use set-frame-parameter.
+
+       (tab-bar-list-noselect, tab-bar-list-mode): Rearrange buffer-read-only.
+
+2019-10-30  Paul Eggert  <address@hidden>
+
+       Fix print.c infloop on circular lists
+
+       Fix infinite loops in print.c when a circular list is passed
+       to command-error-default-function or to error-message-string.
+       * src/print.c (print_error_message):
+       Use FOR_EACH_TAIL to avoid infloop on circular lists.
+       (print_object): Use FOR_EACH_TAIL_SAFE, as it uses
+       Brent’s teleporting tortoise-hare algorithm which is
+       asymptotically better than the classic tortoise-hare
+       algorithm that the code wsas using.
+       * test/src/print-tests.el (print-circle-2): When print-circle
+       is nil, do not insist on a particular cycle-detection heuristic.
+       (error-message-string-circular): New test.
+
+2019-10-30  Paul Eggert  <address@hidden>
+
+       Fix keyboard.c infloops on circular lists
+
+       Fix infinite loops in keyboard.c when a circular list is
+       found in a hook, or in help-event-list, or in the argument
+       of event-convert-list, or in a keymap where a Lucid event
+       type list is expected, or in a menu or tab spec.
+       * src/keyboard.c (safe_run_hooks_error, menu_bar_items)
+       (parse_menu_item, parse_tab_bar_item, parse_tool_bar_item):
+       Use FOR_EACH_TAIL to avoid infloop on circular lists.
+       (help_char_p, Fevent_convert_list, lucid_event_type_list_p):
+       Use FOR_EACH_TAIL_SAFE to avoid infloop on circular lists,
+       when the action is idempotent so a circular list can be
+       treated as a noncircular one.
+
+2019-10-30  Paul Eggert  <address@hidden>
+
+       Fix fileio.c infloops on circular lists
+
+       Fix infinite loops in fileio.c when a circular list is the
+       value of after_insert_file_functions,
+       buffer-auto-save-file-format, buffer-file-format, or
+       write-region-annotate-functions.
+       * src/fileio.c (Finsert_file_contents, build_annotations):
+       Use FOR_EACH_TAIL to avoid infloop on circular lists.
+       (build_annotations): Use an EMACS_INT, not an int, to count
+       nesting level.
+       * test/src/fileio-tests.el:
+       (fileio-tests--circular-after-insert-file-functions): New test.
+
+2019-10-30  Kevin Ryde  <address@hidden>
+
+       Support \pagebreak[0] for paragraph-separate in latex-mode
+
+       * lisp/textmodes/tex-mode.el (latex-mode): In 'paragraph-separate' allow
+       optional argument ('[0]', etc.) for '\pagebreak[0]'.  (Bug#19039)
+
+2019-10-30  Tom Tromey  <address@hidden>
+
+       Send -enable-frame-filters to gdb
+
+       * lisp/progmodes/gdb-mi.el (gdb-init-1): Send -enable-frame-filters to
+       gdb.
+
+2019-10-30  Lars Ingebrigtsen  <address@hidden>
+
+       Fix previous sh-script.el font-lock #comment change
+
+       * lisp/progmodes/sh-script.el (sh-syntax-propertize-function): We
+       want to match "\ " before a comment; not a space character.
+
+2019-10-30  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Move description of value to syntax-ppss function."
+
+       This reverts commit 305dbc7e2be05748039aacb1a3d697f6f64bed4c.
+
+       Both of the functions in question are used a lot in the sources, so 
move it back to the more basic function.
+
+2019-10-30  Lars Ingebrigtsen  <address@hidden>
+
+       Add a new ppss structure for syntax-ppss data
+
+       * lisp/emacs-lisp/syntax.el (ppss): Add a new structure to provide
+       accessors to the syntax-ppss data.
+
+2019-10-30  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak fontification of \url{http://foo.org/bar%zot} in (la)tex-mode
+
+       * lisp/textmodes/tex-mode.el (tex-font-lock-keywords-1):
+       \url{http://foo.org/bar%zot} shouldn't be fontified as having a
+       comment, so make the tex-verbatim face overwrite the
+       already-applied syntactical comment bits (bug#37134).
+
+2019-10-30  Lars Ingebrigtsen  <address@hidden>
+
+       Bind vc-git-stash to a key
+
+       * lisp/vc/vc-git.el (vc-git-stash-map): Give `vc-git-stash' a
+       keystroke, because it's a useful command.
+
+       When there are no stashes, there's no way to use that keystroke (since
+       it's only bound on the stash lines), so perhaps that should also be
+       fixed somehow.
+
+2019-10-30  Lars Ingebrigtsen  <address@hidden>
+
+       Clear more data in font-lock-refontify to ensure refontifying
+
+       * lisp/font-lock.el (font-lock-refontify): Clear out even more data.
+
+2019-10-30  Lars Ingebrigtsen  <address@hidden>
+
+       font-lock \ #foo in shell mode more correctly
+
+       * lisp/progmodes/sh-script.el (sh-syntax-propertize-function):
+       \ #foo isn't a comment -- it's a symbol that starts with a space
+       character (bug#17538).
+
+2019-10-30  Lars Ingebrigtsen  <address@hidden>
+
+       Make font-lock-refontify try even harder to refontify
+
+       * lisp/font-lock.el (font-lock-refontify): Make this command work
+       even after switching global font lock mode on and then off again.
+
+2019-10-30  Lars Ingebrigtsen  <address@hidden>
+
+       Fix setgid fontification in dired on some OS-es
+
+       * lisp/dired.el (dired-font-lock-keywords): Apparently some
+       versions of ls use "S" for setgid and other use "s" (bug#8186).
+
+2019-10-30  Lars Ingebrigtsen  <address@hidden>
+
+       Fix "dnl" highlights in m4-mode
+
+       * lisp/progmodes/m4-mode.el (m4-font-lock-keywords): "dnl"
+       comments should override any previous syntax-based highlighting
+       (37132).  This makes "dnl foo#bar" be highlighted correctly.
+
+2019-10-30  Lars Ingebrigtsen  <address@hidden>
+
+       Add a convenience function to be used when working on font locking
+
+       * doc/lispref/modes.texi (Font Lock Basics): Document it.
+
+       * lisp/font-lock.el (font-lock-refontify): New convenience command.
+
+2019-10-30  Lars Ingebrigtsen  <address@hidden>
+
+       Move description of value to syntax-ppss function.
+
+       * lisp/emacs-lisp/syntax.el (syntax-ppss): Move the description of
+       the return value from...
+
+       * src/syntax.c (Fparse_partial_sexp): ... here because
+       `syntax-ppss' is what's called over the place, and jumping through
+       an indirection to get to the value description is inconvenient.
+
+2019-10-30  Lars Ingebrigtsen  <address@hidden>
+
+       Indent font-lock-fontify-syntactically-region
+
+       * lisp/font-lock.el (font-lock-fontify-syntactically-region):
+       Indent function.
+
+2019-10-30  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (outline-regexp): Remove declaration.
+
+2019-10-29  Juri Linkov  <address@hidden>
+
+       * etc/NEWS: Update renamed function read-char-from-minibuffer.
+
+2019-10-29  Lars Ingebrigtsen  <address@hidden>
+
+       Fix image-converter probes
+
+       * lisp/image/image-converter.el (image-converter--probe): Check
+       that the executable exists before trying to call it.
+
+2019-10-29  Juri Linkov  <address@hidden>
+
+       Rename read-char-with-history to read-char-from-minibuffer (bug#10477)
+
+       * lisp/simple.el (read-char-from-minibuffer-history):
+       Rename from read-char-with-history--history.
+       (read-char-from-minibuffer-map):
+       Rename from read-char-with-history--map.
+       (read-char-from-minibuffer): Rename from read-char-with-history.
+       (read-char-from-minibuffer-self-insert): New command.
+       (zap-to-char): Use read-char-from-minibuffer.
+
+2019-10-29  Lars Ingebrigtsen  <address@hidden>
+
+       Make the debbugs groups also include robot messages
+
+       * lisp/gnus/gnus-group.el (gnus-bug-group-download-format-alist):
+       Change the URL to also include robot messages.
+
+2019-10-29  Juri Linkov  <address@hidden>
+
+       Reimplement read-char-with-history based on read-from-minibuffer
+
+       * lisp/simple.el (read-char-with-history): Reimplement based on
+       read-from-minibuffer.
+       * lisp/simple.el (read-char-with-history--map): New variable
+       (bug#10477).
+
+2019-10-29  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el: Store point position and frame buffer-lists in tab.
+
+       * lisp/tab-bar.el (tab-bar--tab): Store additionally point-marker,
+       frame parameters buffer-list and buried-buffer-list, both for wc and ws.
+       Use seq-filter.
+       (tab-bar-select-tab): Restore point-marker after restoring
+       window-configuration.  Also restore frame parameters buffer-list
+       and buried-buffer-list both for window-configuration and window-state.
+       (tab-bar-history-limit, tab-bar-history--minibuffer-depth): New 
variables.
+       (tab-bar-history-current): Rename from tab-bar-history--pre-change.
+       (tab-bar-history--pre-change): Set tab-bar-history-current.
+       (tab-bar--history-change): Use seq-take for tab-bar-history-limit.
+       (tab-bar-history-back, tab-bar-history-forward): Restore point-marker.
+       (tab-bar-list-noselect): Use seq-remove.
+
+       * lisp/emacs-lisp/seq.el (seq-take, seq-filter): Add autoload cookie.
+
+2019-10-29  Lars Ingebrigtsen  <address@hidden>
+
+       Make url-cookie.el be more resistant against bogus data
+
+       * lisp/url/url-cookie.el (url-cookie-handle-set-cookie): Don't bug
+       out on large max-age values (bug#37974).
+
+2019-10-29  Lars Ingebrigtsen  <address@hidden>
+
+       Document run-with-timer
+
+       * doc/lispref/os.texi (Timers): Mention run-with-timer (bug#37875).
+
+2019-10-29  Lars Ingebrigtsen  <address@hidden>
+
+       Default exotic image formats (like .webp) to image-mode
+
+       * doc/lispref/errors.texi (Standard Errors): Mention the new error.
+
+       * lisp/files.el (auto-mode-alist): Add a bunch of image suffixes
+       to the list (bug#37972) based on the output from "gm convert -list
+       format" (i.e., graphicsmagick).
+
+       * lisp/image-mode.el (image-mode): Rewrite to possibly notify the
+       user about image-use-external-converter.
+       (image-mode--setup-mode): Factor out into own function and don't
+       run under `condition-case' as there's nothing here that should
+       error.
+
+       * lisp/image.el (unknown-image-type): New error.
+       (image-type): Signal that error so that image-mode can offer
+       sensible feedback to the user.
+
+2019-10-29  Lars Ingebrigtsen  <address@hidden>
+
+       Fix image-converter probing
+
+       * lisp/image/image-converter.el (image-converter--find-converter):
+       Stop probing on the first successful probe.
+
+2019-10-29  Stefan Monnier  <address@hidden>
+
+       * lisp/minibuffer.el: Tweak and undo parts of recent changes
+
+       (completion-metadata): Always return a fresh new cons cell.
+       (completion--nth-completion): Don't bother calling adjust-metadata
+       if the result won't be used.
+       (completion-pcm--hilit-commonality): Revert recent change which had
+       removed support for `completions-first-difference` in `substring` and
+       `partial-completion` styles.
+       (completion--flex-adjust-metadata): Treat the arg as immutable.
+
+2019-10-29  Filipp Gunbin  <address@hidden>
+
+       Add gradle-kotlin to compilation-error-regexp-alist-alist
+
+       * lisp/progmodes/compile.el: Add gradle-kotlin to
+       compilation-error-regexp-alist-alist.
+       * etc/compilation.txt: Add samples for it.
+
+2019-10-29  Jimmy Aguilar Mena  <address@hidden>
+
+       Optimize conditional recursive merge face.
+
+       * src/xfaces.c (merge_face_vectors) : Pass ATTR_FILTER to
+       merge_face_ref to stop recursion merging in advance when possible.
+       (merge_named_face) : add more conditions to potentially reduce calls to
+       merge_face_vectors in more unneeded situations.
+
+2019-10-29  Jimmy Aguilar Mena  <address@hidden>
+
+       Fix extend face in gui interfaces.
+
+       * src/xdisp.c (extend_face_to_end_of_line) : Change call to
+       PRODUCE_GLYPHS with append_stretch_glyph to fill until the windows
+       border.
+
+2019-10-29  Jimmy Aguilar Mena  <address@hidden>
+
+       Fix inherited :extend attribute in faces.
+
+       * src/xfaces.c (merge_face_vectors) : Add extra parameter ATTR_FILTER
+       with the same functionality than in merge_named_face.  Update all
+       occurrences.
+       (merge_named_face): Remove condition to avoid call
+       `merge_face_vectors`.
+
+2019-10-29  Lars Ingebrigtsen  <address@hidden>
+
+       Make shr scale images on all frames
+
+       * lisp/net/shr.el (shr-rescale-image): Rescale images even if the
+       window isn't on the current frame.
+
+2019-10-28  João Távora  <address@hidden>
+
+       Make icomplete-exhibit actually work when navigating up directories
+
+       Sometimes, when finding files with icomplete-mode, backward-deleting
+       the previous word or sexp (to move up a directory) doesn't actually
+       refresh the file list of the new directory.  Forcing redisplay in
+       icomplete-exhibit misteriously fixes the problem.
+
+       * lisp/icomplete.el (icomplete-exhibit): Add call to redisplay.
+
+2019-10-28  João Távora  <address@hidden>
+
+       New commands for making icomplete behave more like ido
+
+       This tries (not particularly hard) to emulate Ido's magic C-k, C-d,
+       RET and DEL.  For now, the new commands have to be explicitly added to
+       an active map by the user, using something like this:
+
+       (let ((imap icomplete-minibuffer-map))
+         (define-key imap (kbd "C-k") 'icomplete-magic-ido-kill)
+         (define-key imap (kbd "C-d") 'icomplete-magic-ido-delete-char)
+         (define-key imap (kbd "RET") 'icomplete-magic-ido-ret)
+         (define-key imap (kbd "DEL") 'icomplete-magic-ido-backward-updir))
+
+       * lisp/icomplete.el (icomplete-magic-ido-kill)
+       (icomplete-magic-ido-delete-char, icomplete-magic-ido-ret)
+       (icomplete-magic-ido-backward-updir): New commands.
+
+2019-10-28  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el: Check for minibuffer-depth in tab-bar-history-mode.
+
+       * lisp/tab-bar.el (tab-bar-history--pre-change): Store also 
minibuffer-depth.
+       (tab-bar-history-change): Check stored minibuffer-depth for zero.
+       (tab-bar-history-mode): Use prefix -- for internal functions.
+
+2019-10-28  Mattias Engdegård  <address@hidden>
+
+       Use new-style rx extensions in python.el
+
+       * lisp/progmodes/python.el (python-rx): Use `rx-let' instead of
+       `rx-constituents'.  This allows for some slight redundancy reduction,
+       since `rx-let' definitions are expanded inside `not' (bug#37849).
+       Reorder some `or' forms for more efficient matching.
+
+2019-10-28  Hong Xu  <address@hidden>
+
+       Add doc for goto-history-element
+
+       * doc/lispref/minibuf.texi (Minibuffer Commands): Add
+       goto-history-element (bug#37948).
+       * lisp/simple.el (goto-history-element): Clarify NABS.
+
+2019-10-28  Stefan Kangas  <address@hidden>
+
+       * lisp/eshell/em-term.el: Remove commented out XEmacs compat code.
+
+2019-10-28  Stefan Kangas  <address@hidden>
+
+       Remove more XEmacs compat code from CEDET
+
+       * lisp/cedet/mode-local.el (mode-local-describe-bindings-1):
+       * lisp/cedet/semantic/idle.el 
(semantic-idle-summary-out-of-context-faces):
+       * lisp/cedet/semantic/imenu.el 
(semantic-imenu-rebuild-directory-indexes):
+       * lisp/cedet/semantic/texi.el (semantic-texi-command-completion-list):
+       Remove XEmacs compat code.
+
+2019-10-28  Stefan Kangas  <address@hidden>
+
+       Remove obsolete doc references to XEmacs (Bug#37899)
+
+       * doc/misc/edt.texi (Changes, Goals):
+       * doc/misc/emacs-mime.texi (Charset Translation):
+       * doc/misc/gnus-faq.texi (FAQ 4-15):
+       * doc/misc/pcl-cvs.texi (Bugs):
+       * doc/misc/srecode.texi (SRecode Minor Mode):
+       * lisp/cedet/srecode/insert.el (srecode-insert-ask-variable-method):
+       * lisp/follow.el:
+       * lisp/leim/quail/ipa.el (ipa-x-sampa, ipa-kirshenbaum):
+       * lisp/net/newsticker.el:
+       * lisp/obsolete/iswitchb.el:
+       * lisp/progmodes/hideshow.el:
+       * lisp/savehist.el (savehist-file):
+       * lisp/vc/ediff.el: Remove obsolete references to XEmacs in doc
+       strings and comments.
+
+2019-10-28  Michal Nowak  <address@hidden>  (tiny change)
+
+       Add cert bundle path for OpenIndiana
+
+       * lisp/net/gnutls.el (gnutls-trustfiles): Add cert bundle path for
+       OpenIndiana (bug#37960).
+
+2019-10-28  Lars Ingebrigtsen  <address@hidden>
+
+       Make ERC respect erc-channel-hide-list
+
+       * lisp/erc/erc.el (erc-hide-current-message-p): Make
+       erc-channel-hide-list work (bug#37879) by getting matching on the
+       channel name instead of the ERC client name.
+
+2019-10-28  Lars Ingebrigtsen  <address@hidden>
+
+       Fix `G c' in Gnus group buffers for non-ASCII text
+
+       * lisp/gnus/gnus-cus.el (gnus-group-customize): Decoding is
+       superfluous here -- everything is utf-8 already.
+       (gnus-group-customize-done): Don't double-encode the text (bug#37901).
+
+2019-10-28  Lars Ingebrigtsen  <address@hidden>
+
+       Be more permissive when interpreting IMAP mail headers
+
+       * lisp/gnus/nnimap.el (nnimap-transform-headers): Some mail
+       doesn't have space after the colon of the header name.  Don't
+       ignore these.
+
+2019-10-28  Lars Ingebrigtsen  <address@hidden>
+
+       Make <up> work in read-char-with-history
+
+       * lisp/simple.el (read-char-with-history): Tweak to make
+       <up>/<down> also traverse the history (bug#10477).
+
+2019-10-28  Koichi Arakawa  <address@hidden>  (tiny change)
+
+       Reorder command-line switches in Tramp
+
+       * lisp/net/tramp-sh.el (tramp-maybe-open-connection):
+       `tramp-encoding-command-interactive' must be the last command-line
+       switch, at least for bash.  (Bug#37953)
+
+2019-10-27  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el: Add tab-bar-history-mode with arrow buttons for 
navigation.
+
+       * lisp/tab-bar.el (tab-bar-back-button, tab-bar-forward-button):
+       New variables.
+       (tab-bar-make-keymap-1): Show these buttons in tab-bar-history-mode.
+       (tab-bar--tab): Add history-back and history-forward.
+       (tab-bar-select-tab): Restore history-back and history-forward.
+       (tab-bar-history-omit, tab-bar-history-back)
+       (tab-bar-history-forward, tab-bar-history-pre-change): New variables.
+       (tab-bar-history-pre-change, tab-bar-history-change)
+       (tab-bar-history-back, tab-bar-history-forward)
+       (tab-bar-history-mode): New functions.
+
+2019-10-27  Eric Ludlam  <address@hidden>
+
+       * test/lisp/cedet/semantic-utest.el: silence compiler warnings
+
+       * test/lisp/cedet/semantic-utest-c.el
+       (semantic-test-c-preprocessor-simulation): Use with-current-buffer.
+
+       * test/lisp/cedet/semantic-utest.el (semantic-utest-makebuffer):
+       Use read-only-mode.
+       (semantic-utest-verify-names-jave, semantic-utest-verify-names-2):
+       Remove functions, unused.
+
+2019-10-27  Stefan Monnier  <address@hidden>
+
+       * .gitignore: Don't ignore .rej files
+
+       Left over rejected hunks that we forgot to merge by hand should not be
+       silently ignored.  Better explicitly remove/rename .rej files when
+       done with them.
+
+2019-10-27  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/seq.el: Don't require cl-lib.
+
+       (seq-subseq): Move cl-subseq's code here instyead of calling it.
+       * lisp/emacs-lisp/cl-extra.el (cl-subseq): Use seq-subseq.
+
+2019-10-27  Stefan Monnier  <address@hidden>
+
+       * lisp/loadup.el: Load minibuffer after cl-generic
+
+       This is so minibuffer.el can make use of cl-generic
+
+       * lisp/minibuffer.el (minibuffer-local-completion-map):
+       Move switch-to-completions bindings here from...
+       * lisp/simple.el (minibuffer-local-completion-map): ... here.
+
+2019-10-27  Stephen Gildea  <address@hidden>
+
+       time-stamp-time-zone: update customization
+
+       * lisp/time-stamp.el (time-stamp-time-zone): Support customization with
+       an integer offset (a new possible value of the ZONE argument to
+       format-time-string in Emacs 27).
+       Update the safe-local-variable predicate from string-or-null-p
+       (describing time-stamp-time-zone's domain before 2015) to new
+       predicate time-stamp-zone-type-p (describing the current domain).
+
+       * test/lisp/time-stamp-tests.el (time-stamp-test-helper-zone-type-p): 
New test.
+
+2019-10-27  Eli Zaretskii  <address@hidden>
+
+       Fix point position after revert-buffer in tabulated-list mode
+
+       * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print):
+       Don't use count-screen-lines, as it is unreliable when lines
+       are truncated and the region ends before a newline (the root
+       cause is in vertical-motion, but is very hard to fix there).
+       Instead, use vertical-motion directly, as the problems with
+       counting/not counting the newline that ends the region are not
+       relevant to what we need in this function, which is simply the
+       number of the current window line.  (Bug#37941)
+
+2019-10-27  João Távora  <address@hidden>
+
+       Optimize lisp/icomplete.el when default completion available
+
+       Often, when using icomplete with icomplete-show-matches-on-no-input
+       and commands like C-h f, icomplete-exhibit will take a long time (like
+       several seconds) to show all the completions.
+
+       However, if there is a non-nil default value, like when the C-h f is
+       performed exactly on a function name, the minibuffer prompt will
+       reflect that immediately.  If the user immediately presses RE
+       (icomplete-force-complete-and-exit) we take that to mean "use the
+       default" and avoid the long wait.
+
+       As an extra performance tweak, this commit also removes an unneeded
+       call to icomplete-exhibit in icomplete-minibuffer-setup.
+
+       * lisp/icomplete.el (icomplete-force-complete-and-exit): Short-circuit
+       possibility of non-nil minibuffer-default.
+       (icomplete-minibuffer-setup): No need to explicitly icomplete-exhibit
+       here since icomplete-post-command-hook will call it unconditionally.
+
+2019-10-27  Mattias Engdegård  <address@hidden>
+
+       Expand rx definitions inside (not ...)
+
+       * lisp/emacs-lisp/rx.el (rx--translate-not):
+       * test/lisp/emacs-lisp/rx-tests.el (rx-not, rx-def-in-not):
+       * doc/lispref/searching.texi (Rx Constructs, Extending Rx):
+
+       Allow user-defined rx constructs to be expanded inside (not ...)
+       forms, for better composability (bug#37849).
+
+2019-10-27  Michael Albinus  <address@hidden>
+
+       Some Tramp trace improvements
+
+       * lisp/net/tramp.el (tramp-call-process): `result' can also be nil.
+
+       * test/lisp/net/tramp-tests.el (tramp--test-timeout-handler):
+       Improve trace format.
+
+2019-10-26  João Távora  <address@hidden>
+
+       Improve scoring algorithm for flex-style completions
+
+       The previous algorithm had two problems: it considered non-matches in
+       the beginning and end of the string as matching "holes" and failed to
+       penalize larger holes, making flex-score-match-tightness only
+       effective in some corner cases.
+
+       The new formula, which is described in code and in pseudo-code in the
+       comments, fixes these problems.
+
+       As a result, by default, C-h f flex now correctly bubbles up
+       "company-search-flex-regexp" to the top, in front of "file-exists-p".
+       With a flex-score-match-tightness smaller than 1.0, the situation is
+       reversed.
+
+       * lisp/minibuffer.el (flex-score-match-tightness): Adjust default
+       value.  Improve docstring example.
+       (completion-pcm--hilit-commonality): Improve example.  Remove unused
+       variable.  Improve algorithm.
+
+2019-10-26  Juanma Barranquero  <address@hidden>
+
+       minibuffer.el: Remove leftover code, unused after recent change
+
+       * lisp/minibuffer.el (completion-pcm--hilit-commonality):
+       Don't set point-idx.
+
+2019-10-26  Juri Linkov  <address@hidden>
+
+       dired-dwim-target uses most recently visited window instead of next 
window.
+
+       * doc/emacs/dired.texi (Operating on Files): Document behavior change.
+
+       * lisp/dired-aux.el (dired-dwim-target-directories): New function.
+       (dired-dwim-target-directory, dired-dwim-target-defaults): Use it
+       to get the most recently used window instead of the next window 
(bug#35385).
+
+       * lisp/dired.el (dired-dwim-target): Doc fix.
+
+       * test/lisp/dired-tests.el: Remove unnecessary require and pacify
+       byte-compiler.
+
+2019-10-26  Juri Linkov  <address@hidden>
+
+       Customizable tab-line-tabs-function and new buffer-local tab-line-mode.
+
+       * lisp/tab-line.el (tab-line-tabs-function): Turn defvar into defcustom
+       with default of tab-line-tabs-window-buffers.
+       (tab-line-tabs-mode-buffers): New function.
+       (tab-line-tabs-window-buffers): Rename from tab-line-tabs.
+       (tab-line-select-tab, tab-line-switch-to-prev-tab)
+       (tab-line-switch-to-next-tab): Handle the value 
tab-line-tabs-window-buffers
+       of tab-line-tabs-function specially.
+       (tab-line-mode): Rename from global-tab-line-mode and change scope
+       to buffer-local.
+       (global-tab-line-mode): New globalized-minor-mode.
+       (tab-line-mode--turn-on): New function.
+       (tab-line-exclude-modes): New defcustom.
+       (tab-line-exclude): New buffer-local variable.
+       https://lists.gnu.org/archive/html/emacs-devel/2019-10/msg00988.html
+
+       * lisp/dired.el (dired-mark-pop-up): Set tab-line-exclude to nil.
+       Don't set tab-line-format.   (Bug#37699)
+       * lisp/speedbar.el (speedbar-mode): Set tab-line-exclude to nil.
+       Don't set tab-line-format.
+
+2019-10-26  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el (tab-bar-switch-to-recent-tab): New command.
+
+       (tab-recent): Alias to tab-bar-switch-to-recent-tab.
+       (tab-bar--tab-index-recent): New internal function.
+       (tab-bar-close-tab-select): Add new default option 'recent'.
+       (tab-bar-close-tab): Handle it.
+
+       * lisp/emacs-lisp/seq.el (seq-sort-by, seq-remove): Add autoload.
+
+2019-10-26  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el (tab-bar-move-tab-to): Add force-mode-line-update.
+
+       (tab-bar-close-last-tab-choice, tab-bar-close-tab): Adjust option names.
+
+2019-10-26  Robert Cochran  <address@hidden>
+
+       Add customization option for what do when the last tab is closed
+
+       * lisp/tab-bar.el (tab-bar-close-last-tab-choice): New custom
+       variable.
+       (tab-bar-close-tab): Handle closing the last tab specially, referring to
+       tab-bar-close-last-tab-choice.
+
+2019-10-26  Stephen Gildea  <address@hidden>
+
+       time-stamp-tests: add name prefix to tests of formatting
+
+       * test/lisp/time-stamp-tests.el: rename all the time-stamp-string 
formatting tests
+       to have the word "format" in their name, to make room in the namespace
+       for other, future tests.
+
+2019-10-26  João Távora  <address@hidden>
+
+       Restore default value of face completions-common-part
+
+       The previous commit titled "Rework face hints for partial-string
+       completion styles" contained a potentially controversial
+       backwards-incompatible change to this face's default value.
+
+       * lisp/minibuffer.el (completions-common-part): Restore empty
+       default value.
+
+2019-10-26  Arash Esbati  <address@hidden>
+
+       Improve support for biblatex and cleveref macros
+
+       * lisp/textmodes/reftex-cite.el (reftex-figure-out-cite-format):
+       Extend regexp to match additional cite commands from biblatex.sty.
+
+       * lisp/textmodes/reftex-dcr.el (reftex-view-crossref): Extend
+       regexp to match additional cite commands from biblatex.sty and
+       reference commands from cleveref.sty.
+
+2019-10-26  Arash Esbati  <address@hidden>
+
+       Avoid infloop's by doing a case-sensitive match
+
+       * lisp/textmodes/reftex-ref.el (reftex-format-special): Be
+       case-sensitive when checking the actual reference macro against
+       \ref.  This avoids infloop when \Ref is chosen.
+
+2019-10-26  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       55dcd32 (origin/emacs-26) Fix rcirc not to interpret nil as nickname ...
+
+2019-10-26  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       73e1727 Fix linear equation system solving in Calc (bug#35374)
+
+       # Conflicts:
+       #       test/lisp/calc/calc-tests.el
+
+2019-10-26  João Távora  <address@hidden>
+
+       Rework face hints for partial-string completion styles
+
+       Don't use completions-first-difference for the 'substring', 'flex' and
+       'partial-completion' styles, since there can be really no reasonable
+       definition of a "first" difference there.
+
+       Make completions-common-part inherit from 'underline' so that it is
+       useful by default for all completion styles.
+
+       * lisp/minibuffer.el (completions-common-part): Adjust
+       description and change default value.
+       (completions-first-difference): Ajust docstring.
+       (completion-pcm--hilit-commonality): Don't use
+       completions-first-difference.
+
+2019-10-26  João Távora  <address@hidden>
+
+       Allow completion styles to adjust completion metadata
+
+       This commit re-does the now-reverted commit with the same title.  That
+       version relied on generic functions, which cannot be used yet in files
+       such as lisp/minibuffer.el.  This version uses a symbol property
+       completion--adjust-metadata instead.
+
+       The new facility allows completion styles to have a say in metadata
+       properties such as cycle-sort-function and display-sort-function.
+       This is especially useful for completion styles such as 'flex', which
+       generally produce many matches, including some potentially "obscure"
+       ones.  The default sorting strategy would often bubble the latter to
+       the top of the list.
+
+       The sorting function for 'flex' considers pre-computed matching scores
+       and is thus much better than the default for this particular style.
+
+       Additionally, it overrides the completion table's cycle-sort-function
+       or display-sort-function properties if they exist, although it still
+       uses them to pre-sort the result, so that they are still relevant for
+       resolving ties.
+
+       * lisp/minibuffer.el (completion--nth-completion)
+       (completion--flex-adjust-metadata): New helper.
+       (flex): Put completion--adjust-metadata property.
+
+2019-10-26  João Távora  <address@hidden>
+
+       Revert "Allow completion styles to adjust completion metadata"
+
+       Unbreaks the build.
+
+       This reverts commit 7fc0292f5c49d11fc39853f8bc25586d54221e6a.
+
+       Unfortunately, cl-defgeneric has some problems when used in
+       lisp/minibuffer.el.
+
+2019-10-26  Stefan Monnier  <address@hidden>
+
+       subr.el (run-window-configuration-change-hook): Mark obsolete
+
+2019-10-26  João Távora  <address@hidden>
+
+       Allow completion styles to adjust completion metadata
+
+       The new facility, realized in the completion-adjust-metadata-for-style
+       generic, allows completion styles to have a say in metadata properties
+       such as cycle-sort-function and display-sort-function.  This is
+       especially useful for completion styles such as 'flex', which
+       generally produce many matches, including some potentially "obscure"
+       ones.  The default sorting strategy would often bubble the latter
+       to the top of the list.
+
+       The sorting function for 'flex' considers pre-computed matching scores
+       and is thus much better than the default for this particular style.
+
+       Additionally, it overrides the completion table's cycle-sort-function
+       or display-sort-function properties if they exist, although it still
+       uses them to pre-sort the result, so that they are still relevant for
+       resolving ties.
+
+       * lisp/minibuffer.el (completion--nth-completion): Call
+       completion-adjust-metadata-for-style.
+       (completion-adjust-metadata-for-style): New generic.
+       (completion-adjust-metadata-for-style 'flex): New method.
+
+2019-10-26  memeplex  <address@hidden>
+
+       Replay key if kboard is interrupted while initializing (Bug#37782)
+
+       The problem with the original fix for bug#5095 is that it drops
+       the current event, which is a valid character event and not -2.
+       Thus, the first ESC character sent by the terminal after turning
+       on focus tracking is lost and we get '[' and 'I' events separately
+       inserted into the buffer afterwards.
+
+       * src/keyboard.c (read_key_sequence): Add key as mock_input and replay
+       sequence using new keyboard, when the key is not -2.
+
+2019-10-26  memeplex  <address@hidden>
+
+       Remove redundant initialization of fringe bitmap (Bug#37756)
+
+       * src/fringe.c (Fdefine-fringe-bitmap): Remove redundant zeroing
+       of fb.bits that only zeroed half of the array anyway.
+
+2019-10-26  Eli Zaretskii  <address@hidden>
+
+       Improve the documentation of 'vc-tor'
+
+       * lisp/vc/vc-dispatcher.el (vc-tor): Add :version.  Enhance
+       the doc string.
+
+       * etc/NEWS: Announce the new option.
+
+2019-10-26  Richard Stallman  <address@hidden>
+
+       New defcustom 'vc-tor'
+
+       * lisp/vc/vc-dispatcher.el (vc-tor): New user option.
+       (vc-do-command): If vc-tor is non-nil, use 'torsocks'.
+
+2019-10-25  Tassilo Horn  <address@hidden>
+
+       Adapt doc-view to latest image-mode changes
+
+       The functions image-scroll-down, image-scroll-up, image-next-line, and
+       image-previous-line now return pixel values instead of multiples of
+       character height as of commit 9c66b09950.
+
+       * lisp/doc-view.el (doc-view-scroll-up-or-next-page):
+       (doc-view-scroll-down-or-previous-page):
+       (doc-view-next-line-or-next-page):
+       (doc-view-previous-line-or-previous-page):
+       (doc-view-insert-image): Adapt to image-scroll-up/down and
+       image-next/previous-line now returning pixel values instead of
+       multiples of character heights.  Fixes bug#37874.
+
+2019-10-25  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Fix positioning of point whilst inserting comments without 
non-ws
+
+       * lisp/progmodes/cc-cmds.el (c-guess-fill-prefix): When determining a 
new
+       block comment prefix (i.e. there isn't one already there to copy), and 
that
+       prefix is hard up against a comment closer, ensure there are at least 
two
+       spaces before the closer.
+       (c-indent-new-comment-line): Amend the strategy for ensuring that point 
isn't
+       left hard up against the comment closer after M-j.
+
+2019-10-25  Stephen Gildea  <address@hidden>
+
+       time-stamp-tests: consistently name the time vars
+
+       * test/lisp/time-stamp-tests.el (with-time-stamp-test-env): rename 
local variable
+       'ref-time' to 'ref-time1', for parallelism with ref-time2 and ref-time3.
+
+2019-10-25  Michael Albinus  <address@hidden>
+
+       Mention completion styles for Tramp user/host name completion
+
+       * doc/misc/tramp.texi (File name completion): Emacs must have one
+       of the completion styles `basic', `emacs21', or `emacs22'.
+
+2019-10-25  Juanma Barranquero  <address@hidden>
+
+       windmove.el: Suppress warnings for obsolete functions
+
+       * lisp/windmove.el (windmove-constrain-loc-for-movement)
+       (windmove-wrap-loc-for-movement, windmove-reference-loc)
+       (windmove-other-window-loc): Wrap calls to obsolete functions
+       in `with-suppressed-warnings'.
+
+2019-10-25  Juanma Barranquero  <address@hidden>
+
+       windmove.el: Mark unused code as obsolete
+
+       * lisp/windmove.el (windmove-window-distance-delta)
+       (windmove-coord-add, windmove-constrain-to-range)
+       (windmove-constrain-around-range, windmove-frame-edges)
+       (windmove-constrain-loc-for-movement)
+       (windmove-wrap-loc-for-movement, windmove-reference-loc)
+       (windmove-other-window-loc): Declare obsolete.
+       (windmove-find-other-window, windmove-do-window-select):
+       Doc fixes.
+
+       * etc/NEWS: Document it.
+
+2019-10-25  Juanma Barranquero  <address@hidden>
+
+       * lisp/windmove.el (windmove-frame-edges): Simplify.
+
+2019-10-25  Lars Ingebrigtsen  <address@hidden>
+
+       Fix gnus-thread-hide-subtree defcustom
+
+       * lisp/gnus/gnus-sum.el (gnus-thread-hide-subtree): Make the
+       "Non-nil" predicate do what it's supposed to (i.e., return non-nil
+       on non-nil values (excepting predicates)) (bug#37916).
+
+2019-10-24  Stefan Monnier  <address@hidden>
+
+       * lisp/cedet/mode-local.el: Clean up name space
+
+       Mostly renaming functions by adding `mode-local--` to their name
+       and leaving an obsolete alias behind, just in case.
+
+       (define-child-mode): Make obsolete.
+       (mode-local--set-parent): Rename from set-mode-local-parent.
+       (mode-local--new-bindings): Rename from new-mode-local-bindings.
+       Use `obarray-make`.
+       (mode-local--activate-bindings): Rename from 
activate-mode-local-bindings.
+       (mode-local--deactivate-bindings): Rename from
+       deactivate-mode-local-bindings.
+       (make-obsolete-overload): Rename properties with a `mode-local--` 
prefix.
+       Adjust all users.
+       (mode-local--overload-obsoleted-by): Rename from overload-obsoleted-by.
+       (mode-local--overload-that-obsolete): Rename from 
overload-that-obsolete.
+       (mode-local--function-overload-p): Rename from function-overload-p.
+       (mode-local-read-function): Mark obsolete.
+       (mode-local--overload-docstring-extension): Rename from
+       overload-docstring-extension.
+       (mode-local--describe-overload): Rename from 
describe-mode-local-overload.
+
+       * lisp/cedet/semantic/fw.el (semantic-install-function-overrides):
+       Remove unused `mode` argument.
+
+       * lisp/cedet/semantic/grammar-wy.el 
(semantic-grammar-wy--install-parser):
+       * lisp/cedet/semantic/bovine/grammar.el (bovine-grammar-mode):
+       * lisp/cedet/semantic/texi.el (semantic-default-texi-setup):
+       * lisp/cedet/semantic/wisent/grammar.el 
(wisent-grammar-setupcode-builder)
+       (wisent-grammar-mode):
+       * lisp/cedet/semantic/html.el (semantic-default-html-setup):
+       Make the `semantic-` prefix explicit to ease grep search.
+       (html-helper-mode): Remove obsolete setting.
+
+       * lisp/cedet/semantic/wisent/javascript.el: Fix js-mode/javascript-mode
+       mixup so we don't need define-child-mode any more.
+       (semantic-get-local-variables, semantic-ctxt-current-symbol)
+       (semantic-tag-protection, semantic-analyze-scope-calculate-access):
+       Use `js-mode` rather than `javascript-mode` as the mode name since
+       that's the real mode's name.
+
+       * lisp/cedet/semantic/wisent/python.el (python-2-mode, python-3-mode):
+       Remove child declaration for non-existing modes.
+
+       * lisp/cedet/srecode/map.el (srecode-map-validate-file-for-mode): 
Simplify.
+
+2019-10-24  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-10-23 nstrftime: speed up integer overflow checking
+       2019-10-23 port better to GCC under macOS
+       2019-10-15 inttypes: use more-robust test for int range
+       2019-10-14 update-copyright: use en dashes in .texi ranges
+       * build-aux/update-copyright, lib/intprops.h, lib/inttypes.in.h:
+       * lib/nstrftime.c, lib/verify.h:
+       Copy from Gnulib.
+
+2019-10-24  Juanma Barranquero  <address@hidden>
+
+       * doc/lispref/display.texi: Document `delay-warning'
+
+2019-10-24  Mattias Engdegård  <address@hidden>
+
+       rx.el: Refactor user-definition expansion
+
+       * lisp/emacs-lisp/rx.el (rx--translate-not): Simplify structure.
+       * lisp/emacs-lisp/rx.el (rx--expand-def): New.
+       (rx--translate-symbol, rx--translate-form): Use rx--expand-def.
+
+2019-10-23  Stefan Kangas  <address@hidden>
+
+       Update FAQ section on large files (Bug#37818)
+
+       * doc/misc/efaq.texi (Problems with very large files): Extend section
+       and remove information about ancient versions of Emacs.
+
+2019-10-23  Stefan Kangas  <address@hidden>
+
+       Update FAQ section on Emacs security (Bug#37818)
+
+       * doc/misc/efaq.texi (Security risks with Emacs): Remove section on
+       movemail.  Add section on third-party packages.
+
+2019-10-23  Stefan Monnier  <address@hidden>
+
+       * lisp/cedet/mode-local.el: Use lexical-binding and `declare`
+
+       (with-mode-local-symbol, with-mode-local, setq-mode-local)
+       (defvar-mode-local, defconst-mode-local)
+       (define-overloadable-function, define-mode-local-override):
+       Use `declare` for indent and edebug specs.
+       (xref-mode-local-find-overloadable-regexp): Simplify regexp.
+       (mode-local-setup-edebug-specs): Delete.
+       (edebug-setup-hook): Don't use any more.
+
+2019-10-23  Juri Linkov  <address@hidden>
+
+       * lisp/dired.el (dired-mark-pop-up): Set tab-line-format to nil 
(bug#37699).
+
+2019-10-23  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el: Allow to specify interactively where to add a new 
tab.
+
+       * lisp/tab-bar.el (tab-bar-new-tab-to): Rename from tab-bar-new-tab.
+       Add optional arg TO-INDEX.
+       (tab-bar-new-tab): New implementation to use relative ARG.
+       (tab-new-to): Alias to tab-bar-new-tab-to.
+
+2019-10-23  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el: Rename tab-bar-swap-tabs to tab-bar-move-tab-to.
+
+       * lisp/tab-bar.el (tab-bar-move-tab-to): Rename from tab-bar-swap-tabs.
+       Change logic to push the moved tab between existing tabs.
+       (tab-bar-move-tab): Call tab-bar-move-tab-to instead of 
tab-bar-swap-tabs.
+       (tab-move-to): Rename alias from tab-swap.
+
+2019-10-23  Juri Linkov  <address@hidden>
+
+       Implement tab close undo feature for tab-bar.
+
+       * lisp/tab-bar.el (tab-bar-closed-tabs): New variable.
+       (tab-bar-close-tab): Add closed tab to tab-bar-closed-tabs.
+       Disable tab-bar-mode on closing the last tab.
+       (tab-bar-close-other-tabs): Add all closed tabs to tab-bar-closed-tabs.
+       (tab-bar-undo-close-tab): New command.
+       (tab-undo): Alias to tab-bar-undo-close-tab.
+
+2019-10-23  Stefan Monnier  <address@hidden>
+
+       * lisp/cedet/semantic/analyze/complete.el: Fix completion-at-point
+
+       Completion tables are not supposed to signal errors:
+
+           emacs -q
+           M-x semantic-mode
+           ; visit a file supported by semantic, such as a C file
+           ; put cursor in a blank space
+           M-x completion-at-point
+           It will error with: "Nothing to complete"
+
+       (semantic-analyze-possible-completions): Return nil instead of
+       signaling errors.
+
+2019-10-23  Lars Ingebrigtsen  <address@hidden>
+
+       Ensure that the prompt is kept on the final line
+
+       * lisp/erc/erc-goodies.el (erc-possibly-scroll-to-bottom): New
+       function.
+       (scrolltobottom): Add to erc-insert-done-hook.
+
+       * lisp/erc/erc.el (erc-insert-done-hook): New hook (bug#11697).
+       (erc-display-line-1): Use it.
+
+2019-10-23  Lars Ingebrigtsen  <address@hidden>
+
+       Make erc-cmd-CLEAR do what its doc string says
+
+       * lisp/erc/erc.el (erc-cmd-CLEAR): Delete the buffer contents
+       instead of recentering (bug#31743).
+
+2019-10-23  Lars Ingebrigtsen  <address@hidden>
+
+       Make display of S/MIME signatures slightly better
+
+       * lisp/epg.el (epg-signature-to-string): Decode percent escapes
+       (bug#36101).
+
+2019-10-23  Lars Ingebrigtsen  <address@hidden>
+
+       Make Gnus recognise "git am" diffs in all groups
+
+       * lisp/gnus/mm-uu.el (mm-uu-diff-groups-regexp): Recognise diffs
+       in all groups (bug#32730).
+
+2019-10-22  Stefan Kangas  <address@hidden>
+
+       Add version tag to gnutls-min-prime-bits
+
+       * lisp/net/gnutls.el (gnutls-min-prime-bits): Add version tag.
+
+2019-10-22  memeplex  <address@hidden>
+
+       Avoid extra lines in python-shell font lock buffer (Bug#33959)
+
+       * lisp/progmodes/python.el
+       (python-shell-font-lock-comint-output-filter-function): Avoid writing
+       a newline to the font lock buffer when receiving an empty string.
+
+2019-10-22  Glenn Morris  <address@hidden>
+
+       Set expected result for a cedet test
+
+       * test/lisp/cedet/srecode-utest-template.el (srecode-utest-project):
+       Test fails on hydra.nixos.org, for some reason.
+
+2019-10-22  Juri Linkov  <address@hidden>
+
+       Tab-line horizontal scrolling with UI buttons and commands (bug#37667)
+
+       * etc/images/tabs/left-arrow.xpm:
+       * etc/images/tabs/right-arrow.xpm: New images.
+
+       * lisp/tab-line.el (tab-line-left-map, tab-line-right-map): New keymaps.
+       (tab-line-left-button, tab-line-right-button): New variables.
+       (tab-line-tab-name-function): Turn defvar into defcustom.
+       (tab-line-tab-name-buffer): New function.
+       (tab-line-tab-name-truncated-buffer): Rename from tab-line-tab-name.
+       (tab-line-tabs-limit): Default to nil.
+       (tab-line-tabs): Behavior depends on tab-line-tabs-limit.
+       (tab-line-format): Use window-parameter tab-line-hscroll.
+       Add left/right buttons.
+       (tab-line-hscroll): New function.
+       (tab-line-hscroll-right, tab-line-hscroll-left): New commands
+       bound to mouse-wheel.  Rebind tab-switching commands to mouse-wheel
+       with Ctrl-modifier.
+
+2019-10-22  Lars Ingebrigtsen  <address@hidden>
+
+       Fix "make bootstrap" build warning in tab-bar.el
+
+       * lisp/tab-bar.el (require): Require seq when compiling to avoid a
+       compilation warning.  The function it uses is autoloaded, but
+       autoloads aren't loaded when this is built (on "make bootstrap").
+
+2019-10-22  Eli Zaretskii  <address@hidden>
+
+       Fix recent changes in documentation
+
+       * doc/lispref/edebug.texi (Edebug Eval, Eval List): Reword
+       recently added text to follow conventions.
+
+       * src/textprop.c (Ftext_properties_at): Don't use passive tense
+       in doc string.
+
+2019-10-22  Stefan Kangas  <address@hidden>
+
+       Various doc fixes for auto-insert-mode
+
+       * doc/misc/autotype.texi (Autoinserting): Various doc fixes.
+       * lisp/autoinsert.el (top-level): Recommend 'auto-insert-mode' over
+       'add-hook'.
+
+2019-10-22  Lars Ingebrigtsen  <address@hidden>
+
+       Make text-properties-at mention describe-text-properties
+
+       * src/textprop.c (Ftext_properties_at): Mention
+       describe-text-properties in the doc string.
+
+2019-10-22  Lars Ingebrigtsen  <address@hidden>
+
+       Add a fringe example
+
+       * doc/lispref/display.texi (Fringe Bitmaps): Add an example.
+
+2019-10-22  Mattias Engdegård  <address@hidden>
+
+       rx doc string tweaks
+
+       * lisp/emacs-lisp/rx.el (rx--translate-seq, rx--translate-or, rx):
+       Say "zero or more" instead of "one or more" where applicable.
+
+2019-10-22  Lars Ingebrigtsen  <address@hidden>
+
+       Make edebug-eval-last-sexp interactively take a zero prefix
+
+       * lisp/emacs-lisp/edebug.el (edebug-eval-last-sexp): Make the zero
+       prefix work analogously to in eval-last-sexp (bug#28895).
+       (edebug-eval-print-last-sexp): Ditto.
+
+2019-10-22  Robert Pluim  <address@hidden>
+
+       Show stash counts in button in vc-dir
+
+       Based on suggestions from Mattias Engdegård.
+
+       * lisp/vc/vc-git.el (vc-git--make-button-text): New function to
+       generate text for stash button.
+       (vc-git-make-stash-button): Show stash counts.  Delete and recreate
+       button when toggling.
+       (vc-git-dir-extra-headers): Pass counts to vc-git-make-stash-button.
+       Treat stash count <= vc-git-show-stash as equivalent to showing entire
+       list.
+
+2019-10-21  Arash Esbati  <address@hidden>
+
+       Move entry for \Ref into LaTeX core
+
+       * lisp/textmodes/reftex-vars.el (reftex-ref-style-alist): Move
+       entry for \Ref from "Varioref" into "Default" as this macro is
+       part of LaTeX 2019-10-01 kernel.
+       Rearrange entries for "Varioref".
+
+2019-10-21  Stefan Kangas  <address@hidden>
+
+       * etc/NEWS: Improve documentation of 'package-initialize'.
+
+2019-10-21  Paul Eggert  <address@hidden>
+
+       Portcheck only if --enable-gcc-warnings
+
+       Problem reported by Richard Copley (Bug#37852).
+       This patch causes the problem to not occur if one uses plain
+       ‘configure’.  The problem can still occur if with ‘configure
+       --enable-gcc-warnings’, so a further fix may be needed.
+       * configure.ac (GNULIB_PORTCHECK, _FORTIFY_SOURCE):
+       Define these only with an explicit --enable-gcc-warnings.
+
+2019-10-21  Stefan Kangas  <address@hidden>
+
+       Remove XEmacs compat code from speedbar.el
+
+       * lisp/speedbar.el (speedbar-frame-plist, speedbar-frame-mode)
+       (speedbar-make-overlay, speedbar-overlay-put, speedbar-delete-overlay)
+       (speedbar-mode-line-update, speedbar-frame-reposition-smartly)
+       (speedbar-set-mode-line-format, speedbar-reconfigure-keymaps)
+       (speedbar-add-localized-speedbar-support, speedbar-check-vc)
+       (speedbar-highlight-one-tag-line)
+       (speedbar-unhighlight-one-tag-line): Remove XEmacs compat code.
+
+       * doc/misc/speedbar.texi (Frames and Faces): Remove documentation for
+       XEmacs.
+
+2019-10-21  Juri Linkov  <address@hidden>
+
+       * lisp/vc/vc-annotate.el (vc-annotate-lines): Use set-face-extend 
(bug#37774)
+
+2019-10-21  Lars Ingebrigtsen  <address@hidden>
+
+       Try to not put SMTP passwords in the *Messages* buffer
+
+       * lisp/mail/smtpmail.el (smtpmail--sanitize-error-message): New
+       function.
+       (smtpmail-send-it): Use it.
+       (smtpmail-send-queued-mail): Ditto.
+
+2019-10-21  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cursor-sensor.el: Make it possible to reveal 
invisible text
+
+       (cursor-sensor-mode): Hook into post-command-hook as well.
+       (cursor-sensor--detect): Make argument optional.
+
+2019-10-21  Lars Ingebrigtsen  <address@hidden>
+
+       Tiny clean-up of previous edebug patch
+
+       * lisp/emacs-lisp/edebug.el (edebug--overlay-breakpoints): Clean
+       up code slightly.
+
+2019-10-21  Lars Ingebrigtsen  <address@hidden>
+
+       Ensure we always remove the breakpoint overlays
+
+       * lisp/emacs-lisp/edebug.el (edebug--display-1): Remove the
+       overlays here -- this cleans up after exiting no matter how we
+       exited.
+
+2019-10-21  Lars Ingebrigtsen  <address@hidden>
+
+       Add fringe markers to edebug breakpoints
+
+       * lisp/emacs-lisp/edebug.el (edebug--overlay-breakpoints): Set a
+       fringe element to mark the breakpoint.
+       (edebug-breakpoint): Fringe marker.
+
+2019-10-21  Stefan Kangas  <address@hidden>
+
+       Clean up previous icalendar.el change
+
+       * lisp/calendar/icalendar.el (icalendar--rris): Redefine as obsolete
+       function alias.
+
+2019-10-21  Stefan Kangas  <address@hidden>
+
+       Remove more XEmacs compat code from viper-*.el
+
+       * lisp/emulation/viper-cmd.el (viper-submit-report):
+       * lisp/emulation/viper-init.el (viper-set-insert-cursor-type)
+       (viper-restore-cursor-type, viper-use-replace-region-delimiters)
+       (viper-has-face-support-p, viper-window-display-p)
+       (viper-color-display-p, viper-device-type):
+       * lisp/emulation/viper-mous.el (viper-mouse-click-search-word)
+       (viper-mouse-click-insert-word, viper-mouse-click-get-word)
+       (viper-mouse-click-posn, viper-mouse-click-window):
+       * lisp/emulation/viper-util.el (viper-abbreviate-file-name)
+       (viper-set-replace-overlay, viper-maybe-checkout): Remove XEmacs
+       compat code.
+
+2019-10-21  Stefan Kangas  <address@hidden>
+
+       Remove XEmacs compat code from icalendar.el (Bug#37816)
+
+       * lisp/calendar/icalendar.el (icalendar--convert-string-for-export)
+       (icalendar--convert-string-for-import)
+       (icalendar--parse-summary-and-rest)
+       (icalendar--convert-ordinary-to-ical)
+       (icalendar--convert-weekly-to-ical)
+       (icalendar--convert-yearly-to-ical)
+       (icalendar--convert-block-to-ical)
+       (icalendar--convert-cyclic-to-ical)
+       (icalendar--convert-anniversary-to-ical)
+       (icalendar--format-ical-event)
+       (icalendar--convert-recurring-to-diary): Remove XEmacs compat code.
+       (icalendar--rris): Declare obsolete.
+
+2019-10-21  Eli Zaretskii  <address@hidden>
+
+       Avoid false indications from Flymake in .dir-locals.el files
+
+       * lisp/progmodes/elisp-mode.el (emacs-lisp-mode): Don't install
+       'elisp-flymake-checkdoc' and 'elisp-flymake-byte-compile'
+       hooks for .dir-locals.el files.  Reported by Clément
+       Pit-Claudel <address@hidden>.
+
+2019-10-21  Robert Pluim  <address@hidden>
+
+       Add button to vc-dir to toggle visibility of stash list
+
+       * lisp/vc/vc-git.el: Move cl-lib require outside 'eval-when-compile'.
+
+       * lisp/vc/vc-git.el (vc-git-show-stash):New user option.
+       (vc-git-make-stash-button): Create button that allows hiding the stash
+       list.
+       (vc-git-dir-extra-headers): Split stash list into hideable and
+       non-hideable parts depending on value of vc-git-show-stash.  Add
+       button to toggle visibility of hideable part.
+
+       * etc/NEWS: Announce it.
+
+2019-10-20  Clément Pit-Claudel  <address@hidden>
+
+       Add a way to disable substitution of command keys in help strings
+
+       * src/keyboard.c (help_echo_substitute_command_keys): New function.
+       (help_echo_echo, parse_menu_item): Use it.
+       (syms_of_keyboard): Define Qhelp_echo_inhibit_substitution.
+
+       * doc/lispref/text.texi (Special Properties), etc/NEWS: Document
+       the effect of 'help-echo-inhibit-substitution'.
+
+2019-10-20  Paul Eggert  <address@hidden>
+
+       Avoid fixnum round trip in prefix-numeric-value
+
+       * src/callint.c (Fprefix_numeric_value): Simplify.
+
+2019-10-20  Juri Linkov  <address@hidden>
+
+       * lisp/tab-line.el: Bind mouse commands to [tab-line].
+
+       * lisp/tab-line.el: Bind mouse-4/mouse-5, wheel-up/wheel-down
+       globally to [tab-line].
+       (tab-line-tab-map): Remove local bindings of mouse-4/mouse-5.
+       (tab-line-new-tab, tab-line-switch-to-prev-tab)
+       (tab-line-switch-to-next-tab, tab-line-close-tab):
+       Turn commands into mouse-free (can be used without mouse).
+
+2019-10-20  Stefan Kangas  <address@hidden>
+
+       Don't try to add nil packages on refresh
+
+       * lisp/emacs-lisp/package.el (package-read-archive-contents): Don't
+       try to add nil entries.  Warn instead.  (Bug#28502)
+       * test/lisp/emacs-lisp/package-tests.el
+       (package-test-update-archives/ignore-nil-entry): New test.
+       * 
test/lisp/emacs-lisp/package-resources/with-nil-entry/archive-contents:
+       New file.
+
+2019-10-20  Lars Ingebrigtsen  <address@hidden>
+
+       Add a command to toggle an edebug breakpoint
+
+       * doc/lispref/edebug.texi (Breakpoints): Document this.
+
+       * lisp/emacs-lisp/edebug.el (edebug-disabled-breakpoint): New face
+       (bug#23472).
+       (edebug-enabled-breakpoint): Rename.
+       (edebug--overlay-breakpoints): Use the new face.
+       (edebug-toggle-disable-breakpoint): New command and keystroke.
+
+2019-10-20  Stefan Kangas  <address@hidden>
+
+       Remove XEmacs compat code from decipher.el
+
+       * lisp/play/decipher.el (decipher-last-command-char)
+       (decipher-keypress): Remove XEmacs compat code.
+
+2019-10-20  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el: Use autoloaded seq-position.
+
+       * lisp/tab-bar.el (tab-bar--current-tab-index)
+       (tab-bar--tab-index, tab-bar--tab-index-by-name):
+       Use seq-position.
+
+       (tab-bar-select-tab, tab-bar-new-tab, tab-bar-close-tab)
+       (tab-bar-close-other-tabs, tab-bar-rename-tab)
+       (tab-bar-list-execute): Call force-mode-line-update
+       unconditionally independent from tab-bar-mode.
+
+       (tab-bar-rename-tab, tab-bar-rename-tab-by-name):
+       Use read-from-minibuffer instead of read-string
+       to be able to enter empty string.
+
+2019-10-20  Stefan Kangas  <address@hidden>
+
+       Remove XEmacs compat code from meta-mode.el
+
+       * lisp/progmodes/meta-mode.el (meta-mode-menu):
+       (meta-mode-load-hook): Remove XEmacs compat code.
+
+2019-10-20  Stefan Kangas  <address@hidden>
+
+       Remove last XEmacs compat code from tree-widget.el
+
+       * lisp/tree-widget.el (tree-widget-image-properties-xemacs)
+       (tree-widget-set-theme, tree-widget--cursors)
+       (tree-widget-image-properties, tree-widget-button-keymap)
+       (tree-widget-icon, tree-widget-value-create): Remove XEmacs compat
+       code.
+
+2019-10-20  Stefan Kangas  <address@hidden>
+
+       Remove leftover XEmacs compat code from dig.el
+
+       * lisp/net/dig.el (top-level): Remove leftover XEmacs compat code.
+
+2019-10-20  Mattias Engdegård  <address@hidden>
+
+       Add missing rx symbols `bow' and `eow' to documentation
+
+       * doc/lispref/searching.texi (Rx Constructs):
+       * lisp/emacs-lisp/rx.el (rx):  Add missing synonyms.
+
+2019-10-20  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el (tab-bar-swap-tabs): Use cl-rotatef instead of 
rotatef.
+
+2019-10-20  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el (tab-bar-swap-tabs, tab-bar-move-tab): New commands.
+
+       (tab-swap, tab-move): New aliases to new commands.
+
+2019-10-20  Stefan Kangas  <address@hidden>
+
+       Disable pause/resume from menu in snake and tetris
+
+       * lisp/play/tetris.el (tetris--menu-def):
+       * lisp/play/snake.el (snake--menu-def): Disable pause/resume from
+       menu.
+
+2019-10-20  Alan Mackenzie  <address@hidden>
+
+       Optimize c-crosses-statement-barrier-p for large blocks of comment.
+
+       This fixes bug #18134.
+
+       * lisp/progmodes/cc-engine.el (c-crosses-statement-barrier-p): Give a 
limit
+       to the c-backward-syntactic-ws which is searching for a virtual 
semicolon.  In
+       the main loop, Use c-forward-syntactic-ws to skip blocks of comments.
+
+2019-10-20  Juri Linkov  <address@hidden>
+
+       Provide default value for tab-name/frame-name reading minibuffer
+
+       * lisp/tab-bar.el (tab-bar-rename-tab, tab-bar-rename-tab-by-name):
+       Provide default value for read-string.
+       (tab-bar-select-tab-by-name): Alias for tab-bar-switch-to-tab.
+
+       * lisp/frame.el (set-frame-name): Provide default value for
+       read-string in interactive spec.
+
+       * lisp/cus-start.el (tab-bar-position): Use choice instead of boolean.
+
+2019-10-20  Lars Ingebrigtsen  <address@hidden>
+
+       Make edebug-mode-map take precedence
+
+       * lisp/emacs-lisp/edebug.el (edebug--recursive-edit): Bind
+       minor-mode-overriding-map-alist to avoid other minor modes hiding the
+       edebug commands (bug#11018).
+
+2019-10-20  Jimmy Aguilar Mena  <address@hidden>
+
+       Fix internal-lisp-face-attributes to match face.
+
+       * lisp/face-remap.el (internal-lisp-face-attributes): Updated the
+       vector members to match the real member names. (Bug#37806) (Bug#37824)
+
+2019-10-20  Stephen Leake  <address@hidden>
+
+       In xref-location-marker, handle deleted file or outdated xref location 
nicely
+
+       * lisp/progmodes/xref.el (xref-location-marker): Add ignore-errors.
+
+2019-10-20  Stefan Kangas  <address@hidden>
+
+       Update FAQ entry on XEmacs (Bug#37815)
+
+       * doc/misc/efaq.texi (Difference between Emacs and XEmacs): Update
+       section to reflect the current state of affairs.  XEmacs is not
+       actively developed and is lacking many important features of Emacs.
+
+2019-10-20  Stefan Kangas  <address@hidden>
+
+       Improve doc string of eshell and eshell-buffer-name
+
+       * lisp/eshell/eshell.el (eshell-buffer-name, eshell): Improve doc
+       strings, by clarifying how buffers are named.  Also refer users to the
+       Info manual.  (Bug#37178)
+
+2019-10-20  Juanma Barranquero  <address@hidden>
+
+       * doc/lispref/display.texi (Low-Level Font): Describe max-width.
+
+2019-10-20  Lars Ingebrigtsen  <address@hidden>
+
+       Fix edebug--restore-breakpoints re-instrumentinging bug-out
+
+       * lisp/emacs-lisp/edebug.el (edebug--restore-breakpoints): Don't
+       bug out when instrumenting/de-instrumenting/re-instrumenting.
+
+2019-10-20  Lars Ingebrigtsen  <address@hidden>
+
+       Add a new edebug-breakpoint face
+
+       * doc/lispref/edebug.texi (Breakpoints): Mention it.
+
+       * lisp/emacs-lisp/edebug.el (edebug-breakpoint): New face.
+
+2019-10-20  Lars Ingebrigtsen  <address@hidden>
+
+       while-no-input-ignore-events manual clarification
+
+       * doc/lispref/commands.texi (Event Input Misc): Be slightly
+       clearer about what while-no-input-ignore-events is.
+
+2019-10-20  Lars Ingebrigtsen  <address@hidden>
+
+       New command to clear all breakpoints in a function
+
+       * doc/lispref/edebug.texi (Breakpoints): Mention it.
+
+       * lisp/emacs-lisp/edebug.el (edebug-unset-breakpoints): New
+       command and keystroke.
+
+2019-10-20  Lars Ingebrigtsen  <address@hidden>
+
+       Preserve breakpoints when Edebug-reinstrumenting functions
+
+       * lisp/emacs-lisp/edebug.el (edebug--overlay-breakpoints): New
+       function (bug#23470).
+
+       * lisp/emacs-lisp/seq.el (seq-position): Autoload.
+
+2019-10-20  Michael Albinus  <address@hidden>
+
+       Fix docstrings in tramp.el
+
+       * lisp/net/tramp.el (tramp-antispoof-regexp)
+       (tramp-file-name-handler): Fix docstring.
+
+2019-10-20  Lars Ingebrigtsen  <address@hidden>
+
+       Change default to cancel all edebug-on-entry in cancel-edebug-on-entry
+
+       * lisp/emacs-lisp/edebug.el (cancel-edebug-on-entry): Make the
+       default to cancel all edebug-on-entry.
+
+2019-10-20  Lars Ingebrigtsen  <address@hidden>
+
+       Use user-error in cancel-edebug-on-entry
+
+       * lisp/emacs-lisp/edebug.el (cancel-edebug-on-entry): This is a
+       user-class error, so use user-error.
+
+2019-10-20  Lars Ingebrigtsen  <address@hidden>
+
+       Instrument function if it hasn't been already in edebug-set-breakpoint
+
+       * lisp/emacs-lisp/edebug.el (edebug-set-breakpoint): Instrument
+       form automatically when using this function (bug#23469).
+
+2019-10-20  Lars Ingebrigtsen  <address@hidden>
+
+       Fix up previous edebug breakpoint overlay change
+
+       * lisp/emacs-lisp/edebug.el (edebug--overlay-breakpoints): Only
+       make the overlays in edebug mode, so that we remove them when we
+       exit.
+
+2019-10-20  Lars Ingebrigtsen  <address@hidden>
+
+       Mark breakpoints in edebug with highlights
+
+       * lisp/emacs-lisp/edebug.el (edebug--overlay-breakpoints)
+       (edebug--overlay-breakpoints-remove): New functions (bug#23468).
+       (edebug-modify-breakpoint): Use them to highlight breakpoints.
+       (edebug--display-1): Restore breakpoint highlights.
+       (edebug--recursive-edit): Remove highlights on exit.
+
+2019-10-20  Juanma Barranquero  <address@hidden>
+
+       lisp/*.el: Fix typos and improve some docstrings
+
+       * lisp/auth-source.el (auth-source-backend-parse-parameters)
+       (auth-source-search-collection)
+       (auth-source-secrets-listify-pattern)
+       (auth-source--decode-octal-string, auth-source-plstore-search):
+       * lisp/registry.el (registry-lookup)
+       (registry-lookup-breaks-before-lexbind)
+       (registry-lookup-secondary, registry-lookup-secondary-value)
+       (registry-search, registry-delete, registry-size, registry-full)
+       (registry-insert, registry-reindex, registry-prune)
+       (registry-collect-prune-candidates):
+       * lisp/subr.el (nbutlast, process-live-p):
+       * lisp/tab-bar.el (tab-bar-list):
+       * lisp/cedet/ede/linux.el (ede-linux--get-archs)
+       (ede-linux--include-path, ede-linux-load):
+       * lisp/erc/erc-log.el (erc-log-all-but-server-buffers):
+       * lisp/erc/erc-pcomplete.el (pcomplete-erc-commands)
+       (pcomplete-erc-ops, pcomplete-erc-not-ops, pcomplete-erc-nicks)
+       (pcomplete-erc-all-nicks, pcomplete-erc-channels)
+       (pcomplete-erc-command-name, pcomplete-erc-parse-arguments):
+       * lisp/eshell/em-term.el (eshell-visual-command-p):
+       * lisp/gnus/gnus-cache.el (gnus-cache-fully-p):
+       * lisp/gnus/nnmail.el (nnmail-get-active)
+       (nnmail-fancy-expiry-target):
+       * lisp/mail/mail-utils.el (mail-string-delete):
+       * lisp/mail/supercite.el (sc-hdr, sc-valid-index-p):
+       * lisp/net/ange-ftp.el (ange-ftp-use-smart-gateway-p):
+       * lisp/net/nsm.el (nsm-save-fingerprint-maybe)
+       (nsm-network-same-subnet, nsm-should-check):
+       * lisp/net/rcirc.el (rcirc-looking-at-input):
+       * lisp/net/tramp-cache.el (tramp-get-hash-table):
+       * lisp/net/tramp-compat.el (tramp-compat-process-running-p):
+       * lisp/net/tramp-smb.el (tramp-smb-get-share)
+       (tramp-smb-get-localname, tramp-smb-read-file-entry)
+       (tramp-smb-get-cifs-capabilities, tramp-smb-get-stat-capability):
+       * lisp/net/zeroconf.el (zeroconf-list-service-names)
+       (zeroconf-list-service-types, zeroconf-list-services)
+       (zeroconf-get-host, zeroconf-get-domain)
+       (zeroconf-get-host-domain):
+       * lisp/nxml/rng-xsd.el (rng-xsd-compile)
+       (rng-xsd-make-date-time-regexp, rng-xsd-convert-date-time):
+       * lisp/obsolete/erc-hecomplete.el (erc-hecomplete)
+       (erc-command-list, erc-complete-at-prompt):
+       * lisp/org/ob-scheme.el (org-babel-scheme-get-buffer-impl):
+       * lisp/org/ob-shell.el (org-babel--variable-assignments:sh-generic)
+       (org-babel--variable-assignments:bash_array)
+       (org-babel--variable-assignments:bash_assoc)
+       (org-babel--variable-assignments:bash):
+       * lisp/org/org-clock.el (org-day-of-week):
+       * lisp/progmodes/cperl-mode.el (cperl-char-ends-sub-keyword-p):
+       * lisp/progmodes/gud.el (gud-find-c-expr, gud-innermost-expr)
+       (gud-prev-expr, gud-next-expr):
+       * lisp/textmodes/table.el (table--at-cell-p, table--probe-cell)
+       (table--get-cell-justify-property)
+       (table--get-cell-valign-property)
+       (table--put-cell-justify-property)
+       (table--put-cell-valign-property): Fix typos.
+
+       * lisp/so-long.el (fboundp): Doc fix.
+       (so-long-mode-line-info, so-long-mode)
+       (so-long--check-header-modes): Fix typos.
+
+       * lisp/emulation/viper-mous.el (viper-surrounding-word)
+       (viper-mouse-click-get-word): Fix typos.
+       (viper-mouse-click-search-word): Doc fix.
+
+       * lisp/erc/erc-backend.el (erc-forward-word, erc-word-at-arg-p)
+       (erc-bounds-of-word-at-point): Fix typos.
+       (erc-decode-string-from-target, define-erc-response-handler):
+       Refill docstring.
+
+       * lisp/erc/erc-dcc.el (pcomplete/erc-mode/DCC): Fix typo.
+       (erc-dcc-get-host, erc-dcc-auto-mask-p, erc-dcc-get-file):
+       Doc fixes.
+
+       * lisp/erc/erc-networks.el (erc-network-name): Fix typo.
+       (erc-determine-network): Refill docstring.
+
+       * lisp/net/dbus.el (dbus-list-hash-table)
+       (dbus-string-to-byte-array, dbus-byte-array-to-string)
+       (dbus-check-event): Fix typos.
+       (dbus-introspect-get-property): Doc fix.
+
+       * lisp/net/tramp-adb.el (tramp-adb-file-name-handler):
+       Rename ARGS to ARGUMENTS.  Doc fix.
+       (tramp-adb-sh-fix-ls-output, tramp-adb-execute-adb-command)
+       (tramp-adb-find-test-command): Fix typos.
+
+       * lisp/net/tramp.el (tramp-set-completion-function)
+       (tramp-get-completion-function)
+       (tramp-completion-dissect-file-name)
+       (tramp-completion-dissect-file-name1)
+       (tramp-get-completion-methods, tramp-get-completion-user-host)
+       (tramp-get-inode, tramp-get-device, tramp-mode-string-to-int)
+       (tramp-call-process, tramp-call-process-region)
+       (tramp-process-lines): Fix typos.
+       (tramp-interrupt-process): Doc fix.
+
+       * lisp/org/ob-core.el (org-babel-named-src-block-regexp-for-name)
+       (org-babel-named-data-regexp-for-name): Doc fix.
+       (org-babel-src-block-names, org-babel-result-names): Fix typos.
+
+       * lisp/progmodes/inf-lisp.el (lisp-input-filter): Doc fix.
+       (lisp-fn-called-at-pt): Fix typo.
+
+       * lisp/progmodes/xref.el (xref-backend-identifier-at-point):
+       Doc fix.
+       (xref-backend-identifier-completion-table): Fix typo.
+
+2019-10-20  Lars Ingebrigtsen  <address@hidden>
+
+       New command edebug-remove-instrumentation
+
+       * doc/lispref/edebug.texi (Instrumenting): Document it.
+
+       * lisp/emacs-lisp/edebug.el (edebug-remove-instrumentation): New
+       command (bug#15843).
+
+2019-10-20  Lars Ingebrigtsen  <address@hidden>
+
+       Fix doc string and interactive spec of cancel-edebug-on-entry
+
+       * lisp/emacs-lisp/edebug.el (cancel-edebug-on-entry): Add doc
+       string and make the interactive spec complete over functions that
+       have the spec (bug#10806).
+       (edebug-cancel-edebug-on-entry): Add alias for discoverability.
+       (edebug-on-entry): Clarify what this command does.
+
+2019-10-20  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Add an edebug-cancel-debug-on-entry alias"
+
+       This reverts commit cea9577b7d6fcf01599afd48078f8ff1defb1297.
+
+       cancel-edebug-on-entry and cancel-debug-on-entry are not the same 
functions.
+
+2019-10-20  Lars Ingebrigtsen  <address@hidden>
+
+       Add an edebug-cancel-debug-on-entry alias
+
+       * lisp/emacs-lisp/debug.el (edebug-cancel-debug-on-entry): Add an
+       alias for easier discoverability (bug#10806).
+
+2019-10-20  Lars Ingebrigtsen  <address@hidden>
+
+       Protect against invalid punycode
+
+       * lisp/net/puny.el (puny-decode-string): Protect against invalid
+       punycode.
+
+2019-10-19  Juri Linkov  <address@hidden>
+
+       * lisp/net/eww.el (eww-browse-url-new-window-is-tab): New defcustom.
+
+       (eww-open-in-new-buffer, eww-browse-url): Use new defcustom (bug#37592).
+
+2019-10-19  Juri Linkov  <address@hidden>
+
+       Use 'C-x t' for tab-prefix-map instead of 'C-x 6' still used by 
2C-mode-map.
+
+       * doc/emacs/commands.texi (Keys): Add 'C-x t'.
+       * doc/emacs/frames.texi (Tab Bars): Replace 'C-x 6' with 'C-x t'.
+       * doc/lispref/keymaps.texi (Prefix Keys): Add 'C-x t' (tab-prefix-map).
+       * doc/lispref/maps.texi (Standard Keymaps): Add tab-prefix-map, 
tab-bar-map.
+
+       * lisp/dired.el: Rebind 'C-x 6 d' to 'C-x t d'.  Use tab-prefix-map.
+
+       * lisp/subr.el (ctl-x-6-map, ctl-x-6-prefix, ctl-x-t-prefix): Remove.
+       (tab-prefix-map): New keymap bound to 'C-x t'.
+
+       * lisp/tab-bar.el: Use tab-prefix-map instead of ctl-x-6-map.
+
+       * lisp/textmodes/two-column.el: Restore autoload global setting of
+       "\C-x6" to 2C-command.
+
+       * lisp/ldefs-boot.el: Update to add setting "\C-x6" to 2C-command.
+
+       * doc/emacs/commands.texi (Keys):
+       * doc/emacs/text.texi (Two-Column):
+       * doc/lispref/keymaps.texi (Prefix Keys):
+       * doc/lispref/maps.texi (Standard Keymaps):
+       Restore 'C-x 6' bound to '2C-mode-map'.
+
+2019-10-19  Juri Linkov  <address@hidden>
+
+       Add ':extend t' face attribute to diff faces (bug#37774)
+
+       * lisp/vc/diff-mode.el (diff-header, diff-file-header)
+       (diff-removed, diff-added): Add ':extend t' face attribute.
+
+       * lisp/vc/ediff-init.el (ediff-current-diff-A)
+       (ediff-current-diff-B, ediff-current-diff-C)
+       (ediff-current-diff-Ancestor, ediff-even-diff-A)
+       (ediff-even-diff-B, ediff-even-diff-C, ediff-even-diff-Ancestor)
+       (ediff-odd-diff-A, ediff-odd-diff-B, ediff-odd-diff-C)
+       (ediff-odd-diff-Ancestor): Add ':extend t' face attribute.
+
+       * lisp/vc/smerge-mode.el (smerge-upper, smerge-lower)
+       (smerge-base, smerge-markers): Add ':extend t' face attribute.
+
+       * lisp/vc/log-view.el (log-view-file, log-view-message):
+       Add ':extend t' face attribute.
+
+       * lisp/faces.el (secondary-selection): Add ':extend t' face attribute.
+       (line-number-major-tick, line-number-minor-tick):
+       Change :foreground to :background.
+
+2019-10-19  Glenn Morris  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-antispoof-regexp): Fix version.
+
+2019-10-19  Alan Mackenzie  <address@hidden>
+
+       Don't downcase the key binding in global-set-key.
+
+       This fixes bug #37769.
+
+       * lisp/subr.el (global-set-key): Provide a non-nil DONT-DOWNCASE 
argument to
+       read-key-sequence.
+
+       * etc/NEWS: Add an entry for this change.
+
+2019-10-19  Eli Zaretskii  <address@hidden>
+
+       Fix a recent change in Emacs FAQ
+
+       * doc/misc/efaq.texi (New in Emacs 23, Common requests):
+       Remove references to the removed section "Highlighting a
+       region".
+
+2019-10-19  Michael Albinus  <address@hidden>
+
+       * doc/emacs/emacs.texi (Intro): Mention remote file editing.
+
+2019-10-19  Stefan Kangas  <address@hidden>
+
+       Don't explain FTP acronym in FAQ
+
+       * doc/misc/efaq.texi (Common acronyms): Remove explanation of the FTP
+       acronym.  Emacs is no longer distributed over FTP, and the FAQ doesn't
+       refer to any other FTP URLs.
+
+2019-10-19  Stefan Kangas  <address@hidden>
+
+       Remove FAQ section "Highlighting a region" (Bug#37818)
+
+       * doc/misc/efaq.texi (Highlighting a region): Remove section.
+
+2019-10-19  Michael Albinus  <address@hidden>
+
+       Support PuTTY's antispoof message in Tramp
+
+       * lisp/net/tramp-sh.el (tramp-actions-before-shell):
+       Add respective entry for PuTTY's antispoof message.
+
+       * lisp/net/tramp.el (tramp-antispoof-regexp): New defcustom.
+       (tramp-action-confirm-message): New defun.
+
+2019-10-19  Raimon Grau  <address@hidden>
+
+       Fix optional parameter passing in calc-fin-* functions
+
+       * lisp/calc/calc-fin.el (calc-fin-pv, calc-fin-fv, calc-fin-pmt)
+       (calc-fin-pner, calc-fin-rate): Add support for an optional
+       parameter standing for an initial lump. The functions already
+       support it but the extra parameter was not taken into account in
+       stack mode. This commit it takes into consideration when deciding
+       if a function takes 3 or 4 parameters (bug#37649).
+
+2019-10-19  Lars Ingebrigtsen  <address@hidden>
+
+       Remove some compat code from cperl-mode.el
+
+       * lisp/progmodes/cperl-mode.el: Remove old-Emacs compat code.
+
+2019-10-19  Eli Zaretskii  <address@hidden>
+
+       Fix display of Info files on TTY frames
+
+       * lisp/info.el (info-symbols-and-replacements): New variable.
+       (Info-mode): Use 'info-symbols-and-replacements' to set up a
+       buffer-display-table for non-ASCII symbols used by Info files
+       that cannot be displayed on TTY frames.
+
+2019-10-19  Lars Ingebrigtsen  <address@hidden>
+
+       Remove some compat code from CEDET
+
+       * lisp/cedet/semantic.el (pp):
+       * lisp/cedet/semantic/complete.el (initialize-instance): Remove
+       old-Emacs compat code.
+
+2019-10-19  Lars Ingebrigtsen  <address@hidden>
+
+       Remove some compat code from mm-url.el
+
+       * lisp/gnus/mm-url.el (mm-url-use-external): Remove old-Emacs
+       compat code.
+
+2019-10-19  Lars Ingebrigtsen  <address@hidden>
+
+       Remove compat code from nnbabyl.el
+
+       * lisp/gnus/nnbabyl.el (rmail): Remove old-Emacs compat code.
+
+2019-10-19  Lars Ingebrigtsen  <address@hidden>
+
+       Remove some compat code in imap.el
+
+       * lisp/net/imap.el (imap-sasl-auth-p): Remove old-Emacs compat code.
+
+2019-10-19  Hong Xu  <address@hidden>
+
+       special-mode doc string clarification
+
+       * lisp/simple.el (special-mode): Make the doc string explain what
+       special modes are for (bug#37787).
+
+2019-10-19  Lars Ingebrigtsen  <address@hidden>
+
+       Don't have shr bug out if svg support isn't available
+
+       * lisp/net/shr.el (shr-put-image): Don't bug out if SVG support
+       isn't available.
+
+2019-10-19  Cédric Chépied  <address@hidden>
+
+       Fix typo in tree-widget-lookup-image
+
+       * lisp/tree-widget.el (tree-widget-lookup-image): Fix typo
+       introduced by previous cleanup (bug#37809).
+
+2019-10-19  Eli Zaretskii  <address@hidden>
+
+       A better fix for tab-line mouse highlight on TTY frames
+
+       * src/dispnew.c (mode_line_string):
+       * src/xdisp.c (note_mode_line_or_margin_highlight): Remove
+       recently-added workarounds for incorrect TTY mouse highlight:
+       they are no longer needed.
+       (mark_window_display_accurate_1): Set the header_line_p and
+       tab_line_p flags of the window's current_matrix if the window
+       displays these.
+       (display_mode_line): Set the header_line_p and tab_line_p
+       flags of the window's desired_matrix if the window displays
+       these.  (Bug#37807)
+
+2019-10-18  Stefan Kangas  <address@hidden>
+
+       Remove XEmacs compat code from ezimage.el
+
+       * lisp/ezimage.el (top-level): Remove XEmacs compat code.
+
+2019-10-18  Paul Eggert  <address@hidden>
+
+       Pacify x86 GCC 9 in tab bar code
+
+       * src/xdisp.c (tty_get_tab_bar_item): Simplify a bit.  This
+       pacifies --enable-gcc-warnings with x86 GCC 9.2.1 20190827
+       (Red Hat 9.2.1-1) when combined with -fsanitize=undefined.
+
+2019-10-18  Stefan Kangas  <address@hidden>
+
+       Remove XEmacs compat code from edt-mapper.el
+
+       * lisp/emulation/edt-mapper.el (edt-mapper, edt-xserver)
+       (edt-map-key): Remove XEmacs compat code.
+       (edt-window-system): Redefine as obsolete variable alias for
+       'window-system'.
+
+2019-10-18  Stefan Kangas  <address@hidden>
+
+       Remove XEmacs compat code from esh-arg.el
+
+       * lisp/eshell/esh-arg.el (eshell-quote-backslash): Remove XEmacs
+       compat code.
+
+2019-10-18  Paul Eggert  <address@hidden>
+
+       Generalize list1i etc. to all signed integer types
+
+       * src/lisp.h (list1i, list2i, list3i, list4i):
+       Accept intmax_t instead of EMACS_INT, and use make_int instead
+       of make_fixnum.  This should help avoid integer-overflow
+       problems akin to the Time bug (Bug#37795).
+
+2019-10-18  Paul Eggert  <address@hidden>
+
+       Fix integer-overflow bug in Time conversion
+
+       Problem reported by Stefan Monnier (Bug#37795).
+       * src/keyboard.c (make_lispy_position)
+       (make_scroll_bar_position, make_lispy_event):
+       * src/xterm.c (x_ewmh_activate_frame):
+       Use INT_TO_INTEGER to convert Time to a Lisp integer,
+       since the value might not be a fixnum.
+
+2019-10-18  Michael Albinus  <address@hidden>
+
+       * test/lisp/net/tramp-tests.el (remote-file-name-inhibit-cache): Set to 
nil.
+
+2019-10-18  Michael Albinus  <address@hidden>
+
+       Support old Samba versions in Tramp
+
+       * doc/misc/tramp.texi (Relevant connection properties to override):
+       New subsection.
+
+       * lisp/net/tramp-smb.el (tramp-smb-get-cifs-capabilities): Check "posix"
+       connection property.
+
+       * lisp/net/tramp.el (with-tramp-progress-reporter): Fix docstring.
+
+2019-10-18  Eli Zaretskii  <address@hidden>
+
+       Fix mouse highlight with tab-line on TTY frames
+
+       * src/xdisp.c (note_mode_line_or_margin_highlight):
+       * src/dispnew.c (mode_line_string): Fix mouse highlight on TTY
+       frames when both header line and tab-line are displayed.
+       (Bug#37807)
+
+2019-10-18  Eli Zaretskii  <address@hidden>
+
+       Fix handling of mouse events on header line with tab-line
+
+       * src/window.c (coordinates_in_window): Fix conditions for
+       coordinates being on the window's header line when that
+       window also displays a tab-line.  (Bug#37807)
+
+2019-10-18  Mattias Engdegård  <address@hidden>
+
+       Use [^z-a] for matching any character (anychar/anything) in rx
+
+       * lisp/emacs-lisp/rx.el (rx--translate-symbol):
+       * test/lisp/emacs-lisp/rx-tests.el (rx-any, rx-atoms):
+       Use [^z-a] instead of ".\\|\n" for anychar.
+
+       The new expression is faster (about 2×) and does not allocate regexp
+       stack space.  For example, (0+ anychar) now matches strings of any
+       size (bug#37659).
+
+2019-10-18  Mattias Engdegård  <address@hidden>
+
+       Add `unmatchable' as alias for (or) in rx (bug#37659)
+
+       * lisp/emacs-lisp/rx.el (rx--translate-symbol, rx--builtin-symbols, rx):
+       * test/lisp/emacs-lisp/rx-tests.el (rx-atoms):
+       * doc/lispref/searching.texi (Rx Constructs):
+       * etc/NEWS:
+       Add `unmatchable', more descriptive than (or), and corresponding to
+       the variable `regexp-unmatchable'.
+
+2019-10-18  Mattias Engdegård  <address@hidden>
+
+       Add `anychar' as alias to `anything' in rx (bug#37659)
+
+       * lisp/emacs-lisp/rx.el (rx--translate-symbol, rx--builtin-symbols, rx):
+       * test/lisp/emacs-lisp/rx-tests.el (rx-atoms):
+       * doc/lispref/searching.texi (Rx Constructs):
+       * etc/NEWS:
+       Add `anychar', an alias for `anything'.  Since `anychar' is more
+       descriptive (and slightly shorter), treat it as the preferred name.
+
+2019-10-17  Michael Heerdegen  <address@hidden>
+
+       Extend debug spec of cl-flet (Bug#34481)
+
+       * lisp/emacs-lisp/cl-macs.el (cl-flet): Extend debug spec to cover
+       definitions of the form (FUNC EXP).
+
+2019-10-17  Stefan Kangas  <address@hidden>
+
+       Port snake menu to Emacs
+
+       * lisp/play/snake.el (snake--menu-def): New constant.
+       (snake-mode-menu, snake-null-menu): Add a menu.
+       (snake-mode): Remove XEmacs compat code.
+       (snake-mode-map, snake-null-map): Add docstring.
+
+2019-10-17  Martin Rudalics  <address@hidden>
+
+       In 'bury-buffer' don't try to remove current buffer from minibuffer 
window
+
+       * lisp/window.el (bury-buffer): Don't try to remove current buffer
+       from minibuffer window.
+
+2019-10-17  Eli Zaretskii  <address@hidden>
+
+       * lisp/recentf.el (recentf-mode): Doc fix.  (Bug#37772)
+
+       * lisp/dired.el (dired-auto-revert-buffer): Doc fix.  (Bug#37771)
+
+2019-10-17  Stefan Kangas  <address@hidden>
+
+       Port tetris menu to Emacs
+
+       * lisp/play/tetris.el (tetris--menu-def): New constant.
+       (tetris-mode-menu, tetris-null-menu): Add a menu.
+       (tetris-mode): Remove XEmacs compat code.
+       (tetris-null-map, tetris-mode-map): Add docstring.
+
+2019-10-17  Michael Albinus  <address@hidden>
+
+       * lisp/shell.el (shell): Make shell buffer the current buffer.  
(Bug#37745)
+
+2019-10-17  Stefan Kangas  <address@hidden>
+
+       Remove XEmacs compat code from ffap.el
+
+       * lisp/ffap.el (ffap-what-domain): Remove XEmacs compat code.
+
+2019-10-17  Stefan Kangas  <address@hidden>
+
+       Remove XEmacs compat code from imap.el
+
+       * lisp/net/imap.el (imap-disable-multibyte): Declare obsolete.
+       (imap-log, imap-open): Remove XEmacs compat code.
+
+2019-10-17  Stefan Kangas  <address@hidden>
+
+       Remove obsolete XEmacs references from manuals
+
+       * doc/misc/erc.texi:
+       * doc/misc/eshell.texi:
+       * doc/misc/htmlfontify.texi:
+       * doc/misc/remember.texi:
+       * doc/misc/sieve.texi:
+       * doc/misc/viper.texi: Remove obsolete XEmacs references.
+
+2019-10-17  Stefan Kangas  <address@hidden>
+
+       Remove XEmacs reference from viper refcard
+
+       * etc/refcards/viperCard.tex: Remove reference to XEmacs.
+
+2019-10-17  Stefan Kangas  <address@hidden>
+
+       Remove XEmacs compat code from tcl.el
+
+       * lisp/progmodes/tcl.el (tcl-mode): Remove XEmacs compat code.
+       (tcl-popup-menu): Declare obsolete.
+
+2019-10-17  Stefan Kangas  <address@hidden>
+
+       Remove XEmacs reference from erc-button.el todo
+
+       * lisp/erc/erc-button.el: Remove reference to XEmacs from a todo item.
+
+2019-10-17  Stefan Kangas  <address@hidden>
+
+       Remove commented out XEmacs compat code from po.el
+
+       * lisp/textmodes/po.el: Remove commented out XEmacs compat code.
+
+2019-10-17  Stefan Kangas  <address@hidden>
+
+       Improve documentation of shell-command-prompt-show-cwd
+
+       * doc/emacs/misc.texi (Single Shell):
+       * lisp/simple.el (shell-command): Document
+       'shell-command-prompt-show-cwd'.  (Bug#4987)
+
+2019-10-16  Peter Oliver  <address@hidden>  (tiny change)
+
+       Allow vc-sccs-diff to work with TRAMP
+
+       * lisp/vc/vc-sccs.el (vc-sccs-diff): If the diff command is to be
+       run remotely, then the temporary files it's acting on must be
+       remote too (bug#37777).
+
+2019-10-16  Andrii Kolomoiets  <address@hidden>  (tiny change)
+
+       Add ui.report_untrusted=0 to vc-hg log commands
+
+       * lisp/vc/vc-hg.el (vc-hg-state-slow, vc-hg-merge-branch)
+       (vc-hg-command): Add "--config" "ui.report_untrusted=0" to the
+       log commands to avoid "Hg-not trusting file " messages in the mode
+       line (bug#31497).
+
+2019-10-16  Juanma Barranquero  <address@hidden>
+
+       lisp/*.el, src/*.c: Doc fixes related to returning t vs non-nil
+
+       * lisp/progmodes/flymake-proc.el (flymake-proc--find-buffer-for-file):
+       Doc fix; return value is a buffer, not t.
+
+       * lisp/progmodes/ebrowse.el (ebrowse-member-display-p):
+       Doc fix; return value is the MEMBER argument, not nil.
+
+       * lisp/files.el (hack-one-local-variable-eval-safep):
+       * lisp/play/doctor.el (doctor-nounp, doctor-pronounp):
+       * lisp/progmodes/flymake-proc.el (flymake-proc--check-include):
+       * lisp/progmodes/js.el (js--broken-arrow-terminates-line-p):
+       Doc fix; a non-nil return value is not always t.
+
+       * lisp/image.el (image-type-available-p):
+       * lisp/simple.el (region-active-p):
+       * lisp/window.el (frame-root-window-p):
+       * src/buffer.c (Fbuffer_live_p):
+       * src/image.c (Finit_image_library):
+       * src/window.c (Fwindow_minibuffer_p):
+       Doc fix; a non-nil return value is always t.
+
+       * doc/lispref/minibuf.texi (Minibuffer Windows): Doc fix.
+
+2019-10-16  Juanma Barranquero  <address@hidden>
+
+       lisp/*.el: Force non-nil result to t, to match docstring
+
+       * lisp/emacs-lock.el (emacs-lock-live-process-p):
+       * lisp/shadowfile.el (shadow-file-match):
+       * lisp/emacs-lisp/edebug.el (edebug-basic-spec):
+       * lisp/mail/rmail.el (rmail-expunge-confirmed):
+       * lisp/net/soap-client.el (soap-should-encode-value-for-xs-element):
+       * lisp/progmodes/idlwave.el (idlwave-quoted):
+       * lisp/progmodes/idlw-shell.el (idlwave-shell-filename-string):
+       * lisp/textmodes/refbib.el (r2b-isa-proceedings):
+       * lisp/textmodes/texnfo-upd.el (texinfo-find-lower-level-node):
+       Normalize boolean result.
+
+2019-10-16  Juanma Barranquero  <address@hidden>
+
+       * lisp/wid-edit.el (widget-default-active): Normalize boolean result.
+
+2019-10-16  Juanma Barranquero  <address@hidden>
+
+       Add/fix documentation for widget-apply
+
+       * doc/misc/widget.texi (Widget Properties): Document `widget-apply'.
+
+       * src/fns.c (Fwidget_apply): Document return value (used in many
+       places).
+
+2019-10-16  Michael Albinus  <address@hidden>
+
+       Adapt Tramp's sudo method for non-default shells (Bug#31924)
+
+       * lisp/net/tramp-sh.el (tramp-methods) <sudo>: Change template.
+       (tramp-maybe-open-connection): Remove `tramp-login-env'.  (Bug#31924)
+
+       * lisp/net/tramp.el (tramp-methods): Remove docstring for 
`tramp-login-env'.
+
+2019-10-16  Juanma Barranquero  <address@hidden>
+
+       lisp/speedbar.el: Fix computation of boolean return values
+
+       * lisp/speedbar.el (speedbar-check-vc-this-line):
+       Normalize boolean result.
+       (speedbar-this-file-in-vc): Use `run-hook-with-args-until-success'
+       to check for files under versin control.  Doc fix.
+
+2019-10-16  Michael Albinus  <address@hidden>
+
+       * etc/NEWS: Apply "user option" when possible.  Fix other oddities.
+
+2019-10-16  Martin Rudalics  <address@hidden>
+
+       Handle top margin change in adjust_frame_size
+
+       * src/frame.c (adjust_frame_size): Handle case where only
+       pseudo windows changed height so the top margin has to be
+       adjusted.
+       * src/window.c (Fset_window_configuration): Call
+       adjust_frame_size with inhibit 4.
+
+2019-10-16  Lars Ingebrigtsen  <address@hidden>
+
+       Expand <<- heredocs in sh
+
+       * lisp/progmodes/sh-script.el (sh--maybe-here-document): Make <<-
+       expansion work, too.
+
+2019-10-15  Robert Pluim  <address@hidden>
+
+       Allow event description to be empty
+
+       The previous fix for this was incomplete.
+
+       * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event->org-entry):
+       Allow description to be nil.
+
+2019-10-15  Lars Ingebrigtsen  <address@hidden>
+
+       Fix some &rest body edebug specs
+
+       * lisp/ses.el (ses--letref):
+
+       * lisp/emacs-lisp/crm.el (crm--completion-command): Fix edebug
+       &rest body spec (bug#28747).
+
+       * lisp/emacs-lisp/easy-mmode.el (easy-mmode-define-navigation):
+
+       * lisp/emacs-lisp/inline.el (inline--leteval)
+       (inline--letlisteval, inline-letevals):
+
+2019-10-15  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak heredoc expansion in shell-script-mode
+
+       * lisp/progmodes/sh-script.el (sh--maybe-here-document): Allow
+       expanding <<E, too.
+
+2019-10-15  Juri Linkov  <address@hidden>
+
+       Declare tab-bar-tabs the single source of truth in regard to current 
tab name
+
+       * lisp/tab-bar.el: Replace all calls of tab-bar-tabs
+       with '(funcall tab-bar-tabs-function)'.
+       (tab-bar-tabs): Update the current tab name here
+       instead of tab-bar-make-keymap-1.
+       (tab-bar-make-keymap-1): Move the current tab name updating
+       to tab-bar-tabs.
+
+2019-10-15  Robert Cochran  <address@hidden>
+
+       Allow tabs to have consistent given names
+
+       * lisp/tab-bar.el (tab-bar--tab): Pull automatic name information from
+       current tab
+       (tab-bar--current-tab): Pull automatic name information from current
+       tab, or from new optional template argument
+       (tab-bar-select-tab): Pass the target tab as a template when setting
+       it as current tab
+       (tab-bar-rename-tab, tab-bar-rename-tab-by-name): New functions
+       * doc/emacs/frames.texi (Tab Bars): Document new tab rename 
functionality.
+
+2019-10-15  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el (tab-bar-select-tab-modifiers): New defcustom.
+
+       (tab-bar-mode): Use tab-bar-select-tab-modifiers to bind
+       tab-bar-select-tab.
+       Don't override user customized key bindings of C-TAB, C-S-TAB.
+       On disabling tab-bar-mode, unset only keys bound by tab-bar.
+
+2019-10-15  Juri Linkov  <address@hidden>
+
+       Don't use expand-file-name to find images for tabs.
+
+       * lisp/tab-bar.el (tab-bar-mode):
+       * lisp/tab-line.el (tab-line-new-button, tab-line-close-button):
+       Remove expand-file-name with data-directory.
+
+2019-10-15  Juri Linkov  <address@hidden>
+
+       New variable tab-bar-position
+
+       * lisp/cus-start.el: Add customization for tab-bar-position.
+       * src/dispnew.c (syms_of_display): New variable Vtab_bar_position.
+       (adjust_frame_glyphs_for_window_redisplay): Use it.
+
+2019-10-15  Stefan Monnier  <address@hidden>
+
+       * lisp/rect.el (string-rectangle): Inherit input method in minibuffer
+
+2019-10-15  Eric Ludlam  <address@hidden>
+
+       Fix test data broken by removing trailing whitespace.
+
+2019-10-15  Eric Ludlam  <address@hidden>
+
+       Adapt the CEDET SRecoder getset tests to use ERT
+
+       These tests were copied from CEDET from SourceForge.
+       Author: Eric Ludlam <address@hidden>
+
+2019-10-15  Eric Ludlam  <address@hidden>
+
+       Adapt the CEDET SRecoder template test to use ERT
+
+       These tests were copied from CEDET from SourceForge.
+       Author: Eric Ludlam <address@hidden>
+
+2019-10-15  Eric Ludlam  <address@hidden>
+
+       Copy CEDET/Semantic's tag formatter test suite to be an
+
+       automated test.
+       These tests were copied from CEDET on Sourceforge and adapted to use 
ERT.
+       Author: Eric Ludlam <address@hidden>
+
+2019-10-15  Eric Ludlam  <address@hidden>
+
+       Update CEDET manual tests so that they run.
+
+       To run visit test/manual/cedet/cedet-utests.el
+       M-x eval-buffer
+       M-x cedet-utest
+       Author: Eric Ludlam <address@hidden>
+
+2019-10-15  Eric Ludlam  <address@hidden>
+
+       Convert manual CEDET tests from test/manual/cedet to be
+
+       automated tests in test/lisp/cedet.
+       Author: Eric Ludlam <address@hidden>
+
+2019-10-15  Robert Pluim  <address@hidden>
+
+       Fix duplicated words in lispref
+
+       * doc/lispref/text.texi (Base 64):
+       * doc/lispref/internals.texi (Window Internals): Remove duplicated
+       words.
+
+2019-10-15  Robert Pluim  <address@hidden>
+
+       Fix duplicated words in comments
+
+       * src/coding.c (encode_string_utf_8):
+       * src/keyboard.c (syms_of_keyboard):
+       * src/mini-gmp.c (gmp_lucas_mod, mpz_export):
+       * src/pdumper.c (dump_set_referrer, dump_queue_compute_score):
+       * src/timefns.c (Ftime_convert): Remove duplicated words.
+
+2019-10-15  Eli Zaretskii  <address@hidden>  (tiny change)
+
+       Fix recording keyboard macros in Calc
+
+       * lisp/calc/calc.el (calc-unread-command): Prevent recording
+       key twice when defining a keyboard macro.  Patch by Christoph
+       Arenz <address@hidden>.
+
+2019-10-15  Daiki Ueno  <address@hidden>
+
+       auth-source: Fix wrong-type-argument when searching plstore
+
+       `auth-source-search' can be called with an integer port number from
+       `network-stream-certificate`, while the backend implementation doesn't
+       allow non-string attributes.
+
+       * lisp/auth-source.el (auth-source-plstore-search): Ensure attributes
+       are string.
+
+2019-10-15  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Remove XEmacs code from tetris.el"
+
+       This reverts commit 68b91333d5a070c84afeadc273fd5c44df70f0a6.
+
+       This should be ported to Emacs instead.
+
+2019-10-15  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Remove XEmacs-only code from snake.el"
+
+       This reverts commit 7174a2b59f4cb883beb70bb3d182d59ab425e2f1.
+
+       This should be ported to Emacs instead.
+
+2019-10-14  Lars Ingebrigtsen  <address@hidden>
+
+       Make auth-source work with non-ASCII passwords again
+
+       * lisp/auth-source.el (auth-source--obfuscate): Convert the string
+       to bytes before obfuscating.
+       (auth-source--deobfuscate): Convert back into a string (bug#37758).
+
+2019-10-14  Lars Ingebrigtsen  <address@hidden>
+
+       Add new macro `benchmark-progn'
+
+       * doc/lispref/debugging.texi (Profiling): Mention it.
+
+       * lisp/emacs-lisp/benchmark.el (benchmark-progn): New macro.
+
+2019-10-14  Carlos Pita  <address@hidden>
+
+       Fix python-shell font-lock cleanup for unclosed quotes (Bug#32390)
+
+       The problem originating this report was:
+
+       -------------
+       In [15]: "
+         File "<ipython-input-15-3b7a06bb1102>", line 1
+           "
+            ^
+       SyntaxError: EOL while scanning string literal
+
+       In [16]:   string face still here"
+       -------------
+
+       This happens because
+       python-shell-font-lock-comint-output-filter-function is called twice,
+       first for the error output and then for the "In [16]: " part.  The
+       first time python-shell-comint-end-of-output-p returns nil since
+       we're *not* at the end of an input prompt.  The second time it returns
+       0 since we're at the end of *just* an input prompt.  So we don't call
+       python-shell-font-lock-cleanup-buffer either time.
+
+       The current code is relying in a very weak rule: it considers "just an
+       input prompt" to be a continuation prompt.  Another unreliable aspect
+       of the current rule is that sometimes
+
+           (python-shell-comint-end-of-output-p (ansi-color-filter-apply 
output))
+
+       returns 1 and not 0 for continuation prompts.  In short, the rule does
+       a very poor job identifying continuations.
+
+       * lisp/progmodes/python.el (python-shell-font-lock-cleanup-buffer):
+       Don't check for empty OUTPUT since python-shell-comint-end-of-output-p
+       returns nil for that anyway.  Don't check for
+       python-shell-comint-end-of-output-p returning a specific number
+       because it's unreliable, just check for any non-nil.  Identify
+       continuation prompts by looking for "...".
+
+2019-10-14  Juri Linkov  <address@hidden>
+
+       Add images on tab-bar buttons the first time the tab bar is activated
+
+       * lisp/tab-bar.el (tab-bar-mode): Set display property with image files
+       on tab-bar-new-button and tab-bar-close-button when tab-bar-mode is 
enabled
+       the first time.
+       (tab-bar-new-button, tab-bar-close-button): Use default values
+       without display image properties.  (Bug#37685)
+
+2019-10-14  Juanma Barranquero  <address@hidden>
+
+       lisp/*.el: Force non-nil result to t, to match docstring
+
+       * lisp/ido.el (ido-ignore-item-p):
+       * lisp/simple.el (use-region-p):
+       * lisp/whitespace.el (whitespace-style-face-p)
+       (whitespace-style-mark-p):
+       * lisp/calendar/cal-islam.el (calendar-islamic-leap-year-p):
+       * lisp/mail/rmail.el (rmail-is-text-p):
+       * lisp/mh-e/mh-alias.el (mh-alias-for-from-p):
+       * lisp/net/imap.el (imap-message-flag-permanent-p):
+       * lisp/progmodes/tcl.el (tcl-real-comment-p):
+       * lisp/textmodes/table.el (table--point-in-cell-p):
+       Normalize boolean result.
+
+2019-10-14  Juri Linkov  <address@hidden>
+
+       Set tab-line face height to 0.9.
+
+       * lisp/tab-line.el (tab-line): Set :height to 0.9.
+       * lisp/tab-bar.el (tab-bar): Remove :height.
+
+2019-10-14  Lars Ingebrigtsen  <address@hidden>
+
+       Remove the find-file-visit-truename safe-local-variable
+
+       * lisp/files.el (find-file-visit-truename): Remove the
+       safe-local-variable put, because the variable is checked too late
+       to actually make a difference (bug#36830).
+
+2019-10-14  Štěpán Němec  <address@hidden>
+
+       quail/py-b5: Use U+3007 for ideographic zero (bug#3179)
+
+       * leim/leim-ext.el ("quail/PY-b5"): Use U+3007 instead of U+25CB for
+       ideographic zero.  U+25CB (used previously) is only one of the several
+       lookalikes (bug#3179).
+
+2019-10-14  Lars Ingebrigtsen  <address@hidden>
+
+       require-final-newline doc string clarification
+
+       * lisp/files.el (require-final-newline): Mention that the variable
+       applies to visited files (bug#34986).
+
+2019-10-14  Juri Linkov  <address@hidden>
+
+       Use variable-pitch fonts in tab-bar and tab-line faces
+
+       * lisp/tab-bar.el (tab-bar):
+       * lisp/tab-line.el (tab-line):
+       Inherit face from variable-pitch.
+
+2019-10-14  Stefan Kangas  <address@hidden>
+
+       Clarify C void type description in semantic
+
+       * admin/grammars/c.by: Clarify void type.  (Bug#9222)
+
+2019-10-14  Lars Ingebrigtsen  <address@hidden>
+
+       dired-do-shell-command doc string fix
+
+       * lisp/dired-aux.el (dired-do-shell-command): Mention the guesser
+       variables (bug#16562).
+
+2019-10-14  Juri Linkov  <address@hidden>
+
+       Fix initial value of frame-inhibit-implied-resize
+
+       * src/frame.c (syms_of_frame): Update doc string and default value of
+       frame-inhibit-implied-resize in NS to include 'tab-bar-lines.
+
+2019-10-14  Eli Zaretskii  <address@hidden>
+
+       Minor fixes in Introduction to Emacs Lisp
+
+       * doc/lispintro/emacs-lisp-intro.texi (if, save-excursion):
+       'defun' is a macro, not a special form anymore.  (Bug#37747)
+
+2019-10-14  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el (tab-bar-tab-name-current): Fix with buffer-name.
+
+2019-10-14  Stefan Kangas  <address@hidden>
+
+       Improve documentation of dired-do-chmod
+
+       * lisp/dired-aux.el (dired-do-chmod): Doc fix.  The part about
+       MS-Windows was written by Eli Zaretskii.  (Bug#24897)
+
+2019-10-14  Philipp Stephani  <address@hidden>
+
+       Enable modules by default.
+
+       The interface has been stable since Emacs 25, and most bugs are fixed
+       by now.
+
+       * configure.ac: Enable modules by default.
+
+2019-10-14  Michael Albinus  <address@hidden>
+
+       Suppress eager completion on not connected hosts in Tramp
+
+       * lisp/net/tramp.el (tramp-completion-handle-file-name-completion):
+       Bind `non-essential' to t.
+
+2019-10-14  Jimmy Aguilar Mena  <address@hidden>
+
+       Merge branch 'feature/extend_face_id'
+
+       New face attribute :extend to control the face extension after
+       EOL.
+
+       necessary, # especially if it merges an updated upstream into a topic
+       branch.  # # Lines starting with '#' will be ignored, and an empty
+       message aborts # the commit.
+
+2019-10-14  Jimmy Aguilar Mena  <address@hidden>
+
+       Fix issue calling face_at_pos.
+
+       *src/xdisp.c (extend_face_to_end_of_line): Add extra condition when
+       producing glyphs from a C string to not call face_at_pos.
+
+2019-10-14  Jimmy Aguilar Mena  <address@hidden>
+
+       Modify face_at_pos to not modify change IT.
+
+       src/xdisp.c (face_at_pos): Removed code to that modified
+       it->start_of_box_run_p and it->face_box_p.  This function should not
+       modify it.
+       (handle_face_prop): Added code to update it->start_of_box_run_p and
+       it->face_box_p.
+       (underlying_face_id): Input IT made CONST.
+
+2019-10-14  Jimmy Aguilar Mena  <address@hidden>
+
+       *etc/NEWS: Added comment about :extend face attribute in NEWS.
+
+2019-10-14  Jimmy Aguilar Mena  <address@hidden>
+
+       Document new :extend face attribute in manuals.
+
+       Some stylistic corrections in src/xdisp.c and src/xfaces.c.
+
+2019-10-14  Jimmy Aguilar Mena  <address@hidden>
+
+       Fixed merge_face_ref recursive calls.
+
+       * src/xfaces.c (merge_face_ref): Fixed recursive calls to consider
+       filter when CONSP (face_ref).
+
+2019-10-14  Jimmy Aguilar Mena  <address@hidden>
+
+       Optimization in extend_face
+
+       * src/xdisp.c (extend_face_to_end_of_line): Optimization to void
+       calls to face_at_pos.
+
+2019-10-14  Jimmy Aguilar Mena  <address@hidden>
+
+       Extend_face simplify.
+
+       * src/dispextern.h (struct it): Removed extend_face unneeded members.
+       * src/xdisp.c (handle_face_prop_general): renamed to face_at_pos and
+       removed input parameter initial_face_id. Updated all occurrences.
+
+2019-10-14  Jimmy Aguilar Mena  <address@hidden>
+
+       Added parameter attr_filter to face_at_string_position.
+
+       Update all the occurrences in src/xdisp.c and src/xfaces.c
+
+2019-10-14  Jimmy Aguilar Mena  <address@hidden>
+
+       Extend face hl-line after end-of-line
+
+       * lisp/hl-line.el (face hl-line): Added extend attribute to hl-line
+       face.
+
+2019-10-14  Jimmy Aguilar Mena  <address@hidden>
+
+       Fix last change in append_space_for_newline.
+
+        * src/xdisp.c (append_space_for_newline): Code refactor and
+        simplification.
+
+2019-10-14  Jimmy Aguilar Mena  <address@hidden>
+
+       Add space for cursor to work also in terminal.
+
+       * src/xdisp.c (append_space_for_newline): Modified to add the space
+       with the last face also in terminal interface.
+       (fill_column_indicator_column): Modified to group more conditions.
+       (extend_face_to_end_of_line): Simplified code in
+       fill_column_indicator to use the new function.
+
+2019-10-14  Jimmy Aguilar Mena  <address@hidden>
+
+       Changed handle_face_prop_general prototype.
+
+       * src/xdisp.c (handle_face_prop_general): Changed function prototype
+       to receive different arguments.
+
+2019-10-14  Jimmy Aguilar Mena  <address@hidden>
+
+       Fixed extend face filtered for prop.
+
+       * src/xfaces.c (face_at_buffer_position): Pass ATTR_FILTER to
+       merge_face_ref in when !NILP (prop).
+
+2019-10-14  Jimmy Aguilar Mena  <address@hidden>
+
+       Call handle_face_prop_general to extend face.
+
+       * src/xdisp.c (extend_face_to_end_of_line): Added a call to
+       handle_face_prop_general to extend face after EOL according to
+       parameter :extend in the faces.
+
+2019-10-14  Jimmy Aguilar Mena  <address@hidden>
+
+       Update dfci code with new extend_face code.
+
+       * src/xdisp.c (extend_face_to_end_of_line): Updated the
+       column-indicator code to use the new version of the function
+       fill_column_indicator_column.
+
+2019-10-14  Jimmy Aguilar Mena  <address@hidden>
+
+       New parameter to control the face extension..
+
+       * src/xdisp.c (handle_face_prop_general): New function to specialize
+       handle_face_prop with ATTR_FILTER.
+       * src/dispextern.h (face_at_buffer_position): Added
+       LFACE_ATTRIBUTE_INDEX.
+       * src/xfaces.c (merge_face_ref): Added LFACE_ATTRIBUTE_INDEX to merge
+       conditionally.
+
+2019-10-14  Jimmy Aguilar Mena  <address@hidden>
+
+       Added face parameter :extend.
+
+       This is an initial change to add a parameter :extend that will be used
+       in the display engine later.
+
+2019-10-14  Jimmy Aguilar Mena  <address@hidden>
+
+       Simplify struct face to use only underline.
+
+       * src/dispextern.h (enum face_underline_type): Add FACE_NO_UNDERLINE = 
0.
+       (struct face): Merge `underline_type` and `underline_p` into 
`underline`.
+       Update all the occurrences in src/xdisp.c, src/xfaces.c, and 
src/xterm.c.
+
+2019-10-14  Robert Pluim  <address@hidden>
+
+       Fix directory-files-recursively doc typo
+
+       * lisp/files.el (directory-files-recursively): Fix doc string.
+
+2019-10-14  Martin Rudalics  <address@hidden>
+
+       Fix bug recently introduced in 'fit-window-to-buffer' (Bug#37743)
+
+       * lisp/window.el (fit-window-to-buffer): Call 'window-combined-p'
+       with right argument (Bug#37743).
+
+2019-10-13  Lars Ingebrigtsen  <address@hidden>
+
+       Fix up previous dired change again
+
+       * lisp/dired.el (dired-set-id): Fix the name of the face after the
+       previous change.
+
+2019-10-13  Lars Ingebrigtsen  <address@hidden>
+
+       Fix typo in previous dired change
+
+       * lisp/dired.el (dired-set-idguid): Remove superfluous '
+       introduced by previous change (bug#37742).
+
+2019-10-13  Lars Ingebrigtsen  <address@hidden>
+
+       (help-fns--var-aliases): Fix compilation warning in previous patch.
+
+2019-10-13  Lars Ingebrigtsen  <address@hidden>
+
+       Make `C-h v' list all aliases a variable has
+
+       * lisp/help-fns.el (help-fns--var-aliases): New function (bug#15179).
+
+2019-10-13  Hong Xu  <address@hidden>
+
+       Make url-hexify-string accept a list of allowed chars (bug#26469)
+
+       * lisp/url/url-util.el (url-hexify-string): Accept a list of allowed
+       chars.
+       * doc/misc/url.texi (URI Encoding): Update url-hexify-string doc and
+       index improvements (bug#24694).
+
+2019-10-13  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak ispell-init-process messaging
+
+       * lisp/textmodes/ispell.el (ispell-init-process): Output a "done"
+       after the "starting" message (bug#12828).
+
+2019-10-13  Lars Ingebrigtsen  <address@hidden>
+
+       Add a new tar-copy-preserve-time variable
+
+       * lisp/tar-mode.el (tar-copy-preserve-time): New variable (bug#11882).
+       (tar-copy): Use it.
+
+2019-10-13  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify message about newer source file
+
+       * src/lread.c (Fload): Mention which file was actually used
+       instead of just saying that the .el is newer than the .elc (bug#10637).
+
+2019-10-13  Lars Ingebrigtsen  <address@hidden>
+
+       Allow zap-to-char to use a history
+
+       * doc/emacs/killing.texi (Other Kill Commands): Document it.
+
+       * lisp/simple.el (read-char-with-history): New function (bug#10477).
+       (zap-to-char): Use it to have a history.
+
+2019-10-13  Lars Ingebrigtsen  <address@hidden>
+
+       Font-lock suid/guid files in Dired
+
+       * lisp/dired.el (dired-font-lock-keywords): Font-lock suid/guid
+       permissions (bug#8186).
+       (dired-sguid): New face.
+
+2019-10-13  Lars Ingebrigtsen  <address@hidden>
+
+       Further changes to ensure that copy-keymap doesn't segfault
+
+       * src/keymap.c (copy_keymap_1, copy_keymap_set_char_table): Ensure
+       we don't recurse infinitely when using non-sparse keymaps, too.
+
+       This change makes this form not segfault:
+
+       (let ((map (make-keymap)))
+         (define-key map " " map)
+         (copy-keymap map))
+
+2019-10-13  Stefan Kangas  <address@hidden>
+
+       Clarify mouse commands section in manual
+
+       * doc/emacs/frames.texi (Mouse Commands): Clarify section on mouse
+       wheel somewhat.  (Bug#28182)
+
+2019-10-13  Juri Linkov  <address@hidden>
+
+       Don't display the number of windows in tab name in tab-bar by default.
+
+       * lisp/tab-bar.el (tab-bar-tab-name-function): Change the default value.
+       (tab-bar-tab-name-current): Rename from 
tab-bar-tab-name-selected-window.
+       (tab-bar-tab-name-current-with-count): New function.
+       (tab-bar-tab-name-all): Rename from tab-bar-tab-name-all-windows.
+
+2019-10-13  Juri Linkov  <address@hidden>
+
+       * lisp/window.el (next-buffer, previous-buffer): Add repeat count arg.
+
+       * doc/emacs/buffers.texi (Select Buffer): Mention arg as repeat count.
+       (Bug#37514)
+
+2019-10-13  Lars Ingebrigtsen  <address@hidden>
+
+       Make list-buffers--refresh preserve marks
+
+       * lisp/buff-menu.el (list-buffers--refresh): Preserve the marked
+       buffers when refreshing the list (bug#6491).
+
+2019-10-13  Juri Linkov  <address@hidden>
+
+       Enable tab-bar-mode from X resources
+
+       * lisp/startup.el (x-apply-session-resources): Enable tab-bar-mode
+       when X resource "tabBar" class "TabBar" is "on", "yes" or "1".
+
+       * doc/man/emacs.1.in:
+       * doc/emacs/xresources.texi (Table of Resources):
+       Document X resource "tabBar" (class "TabBar").
+
+2019-10-13  Juri Linkov  <address@hidden>
+
+       Fix initial value of frame-inhibit-implied-resize
+
+       * src/frame.c (syms_of_frame): Update doc string and default value of
+       frame-inhibit-implied-resize in NS to not include 'tab-bar-lines,
+       and non-toolkit X builds to include 'tab-bar-lines.
+
+2019-10-13  Lars Ingebrigtsen  <address@hidden>
+
+       Fix hitting RET on some text in compilation-mode
+
+       * lisp/progmodes/compile.el (compilation-next-error-function):
+       Don't bug out with an incomprehensible error message on "make[2]:"
+       texts (bug#5316).
+       (compilation-find-file): Protect against there being no file name.
+
+2019-10-13  Paul Eggert  <address@hidden>
+
+       * src/xdisp.c (note_tab_bar_highlight): Simplify HAVE_NS ifdefs.
+
+2019-10-13  Lars Ingebrigtsen  <address@hidden>
+
+       Add a new action in save-some-buffers to view the buffer
+
+       * doc/emacs/files.texi (Save Commands): Document it.
+
+       * lisp/files.el (save-some-buffers-action-alist): Offer to pop to
+       the buffer and then quit (bug#3625).
+       (save-some-buffers): Implement it.
+       (save-some-buffers--switch-window-callback): New variable.
+
+2019-10-13  Mattias Engdegård  <address@hidden>
+
+       Correctly explain test failures with mixed uni/multibyte strings
+
+       * lisp/emacs-lisp/ert.el (ert--explain-equal-rec):
+       * test/lisp/emacs-lisp/ert-tests.el (ert-test-explain-equal):
+       When explaining a difference between a unibyte and a multibyte string,
+       first convert both to multibyte.  Otherwise, we might end up comparing
+       unibyte char C to multibyte char C, 127<C<256, and not detect the
+       difference (bug#30219).
+
+2019-10-13  Lars Ingebrigtsen  <address@hidden>
+
+       Mention shifted alphabetical control GUI sequences
+
+       * doc/emacs/custom.texi (Modifier Keys): Mention that you can bind
+       shifted alphabetical control sequences in GUI frames (bug#23247).
+
+2019-10-13  Philipp Stephani  <address@hidden>
+
+       Avoid compiler warnings on macOS.
+
+       * src/xdisp.c (note_tab_bar_highlight): Define variables 'dpyinfo' and
+       'mouse_down_p' only if needed.
+
+2019-10-13  Basil L. Contovounesios  <address@hidden>
+
+       Fix with-coding-priority markup in Elisp manual
+
+       * doc/lispref/nonascii.texi (Specifying Coding Systems): Don't use
+       '&rest' in conjunction with 'body...' in arglist of
+       with-coding-priority.  Fix typo and cross-referencing (2-arg @pxref
+       adds a trailing period).
+
+2019-10-13  Stephen Gildea  <address@hidden>
+
+       Minor tweaks to time-stamp documentation strings
+
+       * lisp/time-stamp.el (time-stamp): Reformat the explanation of the
+       variables that affect time-stamp, for easier reading.  In particular,
+       wrap the documentation to 75 characters, so that it displays neatly as
+       a before-save-hook customization option.
+
+       * test/lisp/time-stamp-tests.el (with-time-stamp-test-env): Use 
imperative voice,
+       per checkdoc.
+
+2019-10-13  Alan Mackenzie  <address@hidden>
+
+       In compilation-tear-down-arrow-spec-in-margin, test 
compilation-arrow-overlay
+
+       * lisp/progmodes/compile.el 
(compilation-tear-down-arrow-spec-in-margin): Make
+       sure compilation-arrow-overlay is an overlay before performing overlay
+       operations on it.  This fixes bug #37733.
+
+2019-10-12  Lars Ingebrigtsen  <address@hidden>
+
+       Make the previous-matching-history-element prompt clearer
+
+       * lisp/simple.el (previous-matching-history-element): Put the
+       default into the prompt (bug#380).
+
+2019-10-12  Konstantin Kharlamov  <address@hidden>
+
+       Make diff-mode understand git-format-patch separators
+
+       * lisp/vc/diff-mode.el (diff-prev-line-if-patch-separator):
+       A function to return prev. line if it has git-format-patch
+       separator.
+       (diff-end-of-hunk): Make use of
+       diff-prev-line-if-patch-separator
+       diff-buffer-type: whether a buffer is a git-diff
+       (define-derived-mode): set diff-buffer-type to appropriate
+       value (bug#37395).
+
+2019-10-12  Rolf Ade  <address@hidden>  (tiny change)
+
+       TCL indentation fix outside functions
+
+       * lisp/progmodes/tcl.el (tcl-calculate-indent): Indent code
+       correctly outside of function definitions (bug#23565).
+
+2019-10-12  Lars Ingebrigtsen  <address@hidden>
+
+       Hide passwords more in `read-password'
+
+       * lisp/subr.el (read-password--hide-password): Factor out (bug#17127).
+       (read-passwd): Use it in post-command-hook instead of
+       after-change-functions to ensure that we hide the password no
+       matter what inserts text.
+
+2019-10-12  Andreas Politz  <address@hidden>
+
+       Use quit-window in some functions
+
+       * lisp/strokes.el:
+       * lisp/startup.el (fancy-startup-tail):
+       * lisp/progmodes/verilog-mode.el (verilog-complete-word)
+       (verilog-show-completions):
+       * lisp/progmodes/idlwave.el (idlwave-quit-help): Use `quit-window'
+       (bug#24213).
+
+2019-10-12  Lars Ingebrigtsen  <address@hidden>
+
+       Add -unknown to version-regexp-alist
+
+       * lisp/epg-config.el (epg-find-configuration): Remove the -unknown
+       hack, because it led to further problems later when comparing
+       versions.
+
+       * lisp/subr.el (version-regexp-alist): Rate -unknown versions the
+       same as -alpha releases (bug#37556).
+
+2019-10-12  Raimon Grau  <address@hidden>
+
+       Add "next" and "previous" shortcuts in eww-history buffers
+
+       * lisp/net/eww.el (eww-history-mode-map): Add "n" and "p" for
+       "next-line" and "previous-line" (bug#37648).
+
+2019-10-12  Lars Ingebrigtsen  <address@hidden>
+
+       Protect against segfaults in copy-keymap
+
+       * src/keymap.c (copy_keymap_1): Factor out and refuse to recurse
+       infinitely (bug#7496).
+       (Fcopy_keymap): ... from here.
+       (copy_keymap_item): Pass on the depth parameter.
+
+2019-10-12  Lars Ingebrigtsen  <address@hidden>
+
+       Document let-alist
+
+       * doc/lispref/lists.texi (Association Lists): Document let-alist
+       (bug#34842).
+
+2019-10-12  Lars Ingebrigtsen  <address@hidden>
+
+       Don't claim that the default height is precisely 36 characters
+
+       * doc/emacs/cmdargs.texi (Window Size X):
+       * doc/man/emacs.1.in: Be more vague about what the default height
+       is (bug#33921).
+
+2019-10-12  Lars Ingebrigtsen  <address@hidden>
+
+       Document locate-dominating-file
+
+       * doc/lispref/files.texi (Contents of Directories): Document
+       locate-dominating-file (bug#33869).
+
+2019-10-12  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el: Don't use minibuffer buffer name as tab name.
+
+       * lisp/tab-bar.el (tab-bar-tab-name-selected-window):
+       Use minibuffer-selected-window to get original window.
+
+2019-10-12  Lars Ingebrigtsen  <address@hidden>
+
+       Make Fadd_face_text_property even less destructive
+
+       * src/textprop.c (Fadd_face_text_property): We need to be
+       non-destructive in buffers, too, because face properties may have
+       been added with `put-text-property' as a list that's been reused.
+
+2019-10-12  Lars Ingebrigtsen  <address@hidden>
+
+       Mention the Emacs exit code in batch mode
+
+       * doc/lispref/os.texi (Batch Mode): Mention what the exit code is
+       if an error is signalled (bug#31552).
+
+2019-10-12  Kaushal Modi  <address@hidden>
+
+       Document that variables should not be called -p
+
+       * doc/lispref/tips.texi (Coding Conventions): Document that
+       variables should now be called -p (bug#26564).
+
+2019-10-12  Lars Ingebrigtsen  <address@hidden>
+
+       Make the cl-letf doc string link to the manual
+
+       * lisp/emacs-lisp/cl-macs.el (cl-letf): Add a link to the manual
+       from the doc string (bug#24459).
+
+2019-10-12  Jiajie Chen  <address@hidden>  (tiny change)
+
+       button-* function doc string clarifications
+
+       * lisp/button.el (button-start, button-end, button-get)
+       (button-put, button-label): Have the doc string mention that they
+       have to be called from the current buffer (bug#23909).
+
+2019-10-12  Lars Ingebrigtsen  <address@hidden>
+
+       ert-deftest macro doc string clarification
+
+       * lisp/emacs-lisp/ert.el (ert-deftest): Mention that macros are
+       expanded when defined, not when tested (bug#21742).
+
+2019-10-12  Eli Zaretskii  <address@hidden>
+
+       Fix recent changes in ELisp manual
+
+       * doc/lispref/objects.texi (Special Read Syntax): Use @samp in
+       @table.
+
+       * doc/lispref/elisp.texi (Top): Update the detailed menu due
+       to a recent addition.
+
+2019-10-12  Lars Ingebrigtsen  <address@hidden>
+
+       Document #$ in the overview
+
+       * doc/lispref/objects.texi (Special Read Syntax): Add #$.
+
+2019-10-12  Lars Ingebrigtsen  <address@hidden>
+
+       Fix compilation-transform-file-match-alist failure
+
+       * lisp/progmodes/compile.el (compilation-error-properties): Fix
+       thinko in compilation-transform-file-match-alist feature -- `file'
+       isn't a list of files after all.
+
+2019-10-12  Lars Ingebrigtsen  <address@hidden>
+
+       Add a lispref node to list special read syntax forms
+
+       * doc/lispref/objects.texi (Special Read Syntax): Add a node to
+       list all the special read syntax forms (bug#18957).
+
+2019-10-12  Michael Albinus  <address@hidden>
+
+       Adapt some Tramp tests
+
+       * test/lisp/net/tramp-archive-tests.el
+       (tramp-archive-test17-insert-directory): Adapt regexp of summary line.
+
+       * test/lisp/net/tramp-tests.el (tramp-test21-file-links):
+       Extend test for symlinked directories.
+
+2019-10-12  Michael Albinus  <address@hidden>
+
+       Fix google-drive handling in tramp-gvfs
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-file-attributes):
+       Add "standard::is-volatile".
+       (tramp-gvfs-get-directory-attributes)
+       (tramp-gvfs-handle-file-attributes): Handle "gdrive" special.
+       (tramp-gvfs-send-command): Ignore nil arguments.
+
+2019-10-12  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-handle-access-file): Use `file-truename'.
+
+2019-10-12  Alan Mackenzie  <address@hidden>
+
+       CC-Mode: Remove unneeded backslashes from doc strings and regular 
expressions
+
+       Also make miscellaneous amendments.
+
+       * lisp/progmodes/cc-align.el, lisp/progmodes/cc-cmds.el
+       * lisp/progmodes/cc-defs.el, lisp/progmodes/cc-engine.el
+       * lisp/progmodes/cc-langs.el, lisp/progmodes/cc-vars.el: Remove lots of
+       unneeded backslashes.
+
+       * lisp/progmodes/cc-langs.el (c-string-innards-re-alist): Remove 
redundant
+       "\\|\r" from regular expression.
+
+       * lisp/progmodes/cc-mode.el (c-make-mode-syntax-table): Correct the 
name of
+       the hook normal-erase-is-backspace-MODE-hook from a non-existant hook 
name.
+
+2019-10-11  Lars Ingebrigtsen  <address@hidden>
+
+       tool-bar-map doc string clarification
+
+       * lisp/tool-bar.el (tool-bar-map): Try to clarify how this
+       variable is used (bug#17709).
+
+2019-10-11  David Röthlisberger  <address@hidden>  (tiny change)
+
+       Fix `shell' doc keymap expansions
+
+       * lisp/shell.el (shell): Make the commands be expanded in the
+       correct keymap (bug#11202).
+
+2019-10-11  Lars Ingebrigtsen  <address@hidden>
+
+       diary-mark-entries-hook doc string clarification
+
+       * lisp/calendar/diary-lib.el (diary-mark-entries-hook): Mention
+       dynamically bound variables (bug#9287).
+
+2019-10-11  Lars Ingebrigtsen  <address@hidden>
+
+       Document :match-inline widget elements
+
+       * doc/lispref/customize.texi (Type Keywords): Document
+       :match-inline (bug#8716).
+       (Splicing into Lists): Mention :match-inline.
+
+2019-10-11  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-10-11 Simplify and regularize regex use of ‘assert’
+       2019-10-09 regex: omit debug assignment when not debugging
+       2019-10-09 regex: tell compiler there’s at most 256 arcs out
+       2019-10-09 regex: simplify by assuming C99
+       2019-10-09 regex: avoid copying of uninitialized storage
+       2019-09-29 fbufmode: Fix compilation error on glibc >= 2.28 systems
+       2019-09-28 Update comments that refer to POSIX
+       2019-09-23 Update URLs and associated text
+       * doc/misc/texinfo.tex, lib/open.c, lib/regcomp.c:
+       * lib/regex_internal.c, lib/regex_internal.h, lib/regexec.c:
+       * lib/stdio-impl.h:
+       Copy from Gnulib.
+
+2019-10-11  Lars Ingebrigtsen  <address@hidden>
+
+       Document REAL-BINDING more extensively in Extended Menu Items
+
+       * doc/lispref/keymaps.texi (Extended Menu Items): Document that
+       REAL-BINDING can be other things than a real command (bug#7755).
+
+2019-10-11  Lars Ingebrigtsen  <address@hidden>
+
+       Minor grep.el doc string clarifications
+
+       * lisp/progmodes/grep.el (grep-find-ignored-directories)
+       (grep-compute-defaults, grep, grep-expand-template)
+       (grep-highlight-matches, grep-use-null-device)
+       (grep-find-command, grep-find-template, grep-expand-template)
+       (rgrep): Minor doc string clarifications.
+
+2019-10-11  Lars Ingebrigtsen  <address@hidden>
+
+       Factor out the lambda from help-function-def
+
+       * lisp/help-mode.el (help-function-def--button-function): Factor
+       out into own function for easier reuse.
+       (help-function-def): ... from the lambda here.
+
+2019-10-11  Lars Ingebrigtsen  <address@hidden>
+
+       Make << shell heredoc expansion less enthusiastic
+
+       * lisp/progmodes/sh-script.el (sh--maybe-here-document): Require a
+       space before expanding a heredoc (bug#3226).  This allows the user
+       to insert a bash <<< "herestring", which was previously difficult.
+
+2019-10-11  Alan Mackenzie  <address@hidden>
+
+       C++ Mode: Correctly handle <:, <::, <::>, etc, according to the C++ 
standard
+
+       * lisp/progmodes/cc-engine.el (c-before-change-check-<>-operators): 
Perform
+       checking now on an insertion, should point be inside a critical token.
+       (c-forward-<>-arglist-recur, c-guess-continued-construct): Check for 
<::, etc.
+
+       * lisp/progmodes/cc-langs.el (c-<-pseudo-digraph-cont-regexp)
+       (c-<-pseudo-digraph-cont-len): New lang variables/constants.
+
+2019-10-11  Stefan Monnier  <address@hidden>
+
+       * lisp/cedet/mode-local.el (define-overload): Declare obsolete
+
+       * lisp/cedet/srecode/ctxt.el (srecode-calculate-context):
+       * lisp/cedet/srecode/semantic.el (srecode-semantic-apply-tag-to-dict)
+       (srecode-semantic-find-template): Use define-overloadable-function 
instead.
+
+2019-10-11  Andrea Corallo  <address@hidden>
+
+       * lisp/emacs-lisp/map.el (map-into) <hash-table>: Allow keyword args
+
+       (map--into-hash): New function, extracted from `map-into <hash-table>`.
+       Speed it up a bit by using gethash instead of map-elt when we know
+       we're accessing a hash table.
+
+       * test/lisp/emacs-lisp/map-tests.el (test-map-into): Add corresponding 
test.
+
+2019-10-11  Stefan Kangas  <address@hidden>
+
+       Remove reference to obsolete package gnuserv from FAQ
+
+       On visiting http://meltin.net/hacks/emacs/, we now find:
+       "I used to have some Emacs and Haskell hacks on my previous
+       sites. However, these hacks are now old and un-maintained. I don’t
+       think there is enough interest to keep them around."
+
+       * doc/misc/efaq.texi (Using an already running Emacs process):
+       Remove reference to obsolete package 'gnuserv'.  (Bug#37574)
+
+2019-10-11  Robert Pluim  <address@hidden>
+
+       Correct some more custom type specs
+
+       * lisp/winner.el (winner-boring-buffers-regexp):
+       * lisp/progmodes/js.el (js-jsx-indent-level):
+       * lisp/image-dired.el (image-dired-external-viewer):
+       * lisp/gnus/nnir.el (nnir-notmuch-filter-group-names-function):
+       Correct custom type specification.
+
+       * lisp/textmodes/bibtex.el (bibtex-string-file-path):
+       (bibtex-file-path): Correct custom type specification and document
+       source of initial value.
+
+2019-10-11  Michael Albinus  <address@hidden>
+
+       Cleanup Tramp
+
+       * lisp/net/tramp-archive.el (tramp-archive-gvfs-host): Fix docstring.
+
+       * lisp/net/tramp.el: Remove :group from all defcustoms.
+       (tramp-encoding-shell): Fix docstring.
+       (tramp-error): Remove text properties from error message.
+
+2019-10-11  Stefan Kangas  <address@hidden>
+
+       Support showing directory in shell command prompt
+
+       * lisp/simple.el (shell-command-prompt-show-cwd): New defcustom.
+       (async-shell-command, shell-command): Show current directory in prompt
+       when above option is non-nil.  (Bug#4987)
+       * etc/NEWS: Announce it.
+
+2019-10-11  Martin Rudalics  <address@hidden>
+
+       Minor fixes for switching to previous and next buffers (Bug#37514)
+
+       * lisp/window.el (switch-to-prev-buffer)
+       (switch-to-next-buffer): In doc-strings add links to
+       'prev-buffer' and 'next-buffer'.
+       (next-buffer, previous-buffer): Signal 'user-error' instead of
+       'error'.  In doc-strings link to 'switch-to-prev-buffer' and
+       'switch-to-next-buffer'.
+
+2019-10-11  Lars Ingebrigtsen  <address@hidden>
+
+       New variable amalgamating-undo-limit
+
+       * doc/lispref/text.texi (Undo): Document it.
+
+       * lisp/simple.el (amalgamating-undo-limit): New variable (bug#31658).
+
+2019-10-11  Robert Pluim  <address@hidden>
+
+       Correct .dir-locals-2.el description
+
+       * doc/lispref/variables.texi (Directory Local Variables): Correct
+       description of .dir-locals-2.el functioning.  (Bug#37640)
+
+2019-10-11  Lars Ingebrigtsen  <address@hidden>
+
+       Expand the documentation of --no-build-details
+
+       * doc/emacs/cmdargs.texi (Initial Options): Mention that
+       --no-build-details shouldn't be used in regular usage (bug#34448).
+
+2019-10-10  Martin Rudalics  <address@hidden>
+
+       Fixes for fitting windows and frames to their buffers (Bug#37563)
+
+       * lisp/window.el (window-default-font-height)
+       (window-default-line-height): New functions.
+       (fit-frame-to-buffer): Interpret values of MAX-HEIGHT and
+       MIN-HEIGHT arguments in terms of WINDOW's default line height
+       (Bug#37563).
+       (fit-window-to-buffer): Obey size restricting arguments even
+       when size of WINDOW's text does not change.  Do not
+       temporarily select WINDOW and perform height/width related
+       calculations if and only if WINDOW is accordingly combined.
+       Interpret values of MAX-HEIGHT and MIN-HEIGHT arguments in
+       terms of WINDOW's default line height.
+
+2019-10-10  Lars Ingebrigtsen  <address@hidden>
+
+       Make nntp.el use new setq-local syntax
+
+       * lisp/gnus/nntp.el (nntp-make-process-buffer): Convert to new
+       setq-local syntax (as a test case).
+
+2019-10-10  Lars Ingebrigtsen  <address@hidden>
+
+       Ensure that setq-local take an even number of symbol/value pairs
+
+       * doc/lispref/variables.texi (Creating Buffer-Local): Document the
+       new syntax for setq-local.
+
+       * lisp/subr.el (setq-local): Ensure that there's an even number of
+       variable/value pairs, and expand the doc string by taking some
+       text from `setq'.
+
+2019-10-10  Jordon Biondo  <address@hidden>
+
+       Allow setq-local to set more than one variable
+
+       * lisp/subr.el (setq-local): Allow taking pairs of values (bug#26923).
+
+2019-10-10  Lars Ingebrigtsen  <address@hidden>
+
+       Remove two checkdoc tests checked in by mistake
+
+       * test/lisp/emacs-lisp/checkdoc-tests.el: Remove &aux and &context
+       checks mistakenly checked in (as these aren't implemented) (bug#37697).
+
+2019-10-10  Stefan Kangas  <address@hidden>
+
+       Change font size in correct window using mouse wheel
+
+       * lisp/mwheel.el (mouse-wheel-follow-mouse): Doc fix.
+       (mouse-wheel--get-scroll-window): New function extracted from...
+       (mwheel-scroll): ...here.
+       (mouse-wheel-text-scale): New function to change face height in
+       the correct window, depending on the value of
+       'mouse-wheel-follows-mouse'.  (Bug#28182)
+       (mouse-wheel-mode): Bind 'mouse-wheel-text-scale' instead of
+       'text-scale-increase' and 'text-scale-decrease'.
+
+2019-10-10  Juri Linkov  <address@hidden>
+
+       * lisp/subr.el (ctl-x-t-prefix): Bind new alias or ctl-x-6-map to 'C-x 
t'.
+
+2019-10-10  Stefan Monnier  <address@hidden>
+
+       * lisp/tree-widget.el: Use lexical-binding
+
+       Remove redundant `:group`s.
+       (tree-widget--locate-sub-directory): Rewrite.
+
+2019-10-10  Andreas Schwab  <address@hidden>
+
+       * lisp/progmodes/compile.el
+       (compilation-transform-file-match-alist): Remove bogus Makefile match.
+
+2019-10-10  Stephen Gildea  <address@hidden>
+
+       Remove tabs from time-stamp-format documentation
+
+       * lisp/time-stamp.el (time-stamp-format): Untabify the doc string, so
+       the two-column layout displays consistently in several contexts,
+       in particular when displayed by customize-variable.
+
+2019-10-10  Eli Zaretskii  <address@hidden>
+
+       Fix initial value of frame-inhibit-implied-resize
+
+       * src/frame.c (syms_of_frame): Update doc string and default
+       value of frame-inhibit-implied-resize in GTK builds to include
+       'tab-bar-lines.
+
+2019-10-10  Paul Eggert  <address@hidden>
+
+       Port time-stamp-test-time-zone to macOS
+
+       Problem reported by Stefan Kangas in:
+       https://lists.gnu.org/r/emacs-devel/2019-10/msg00360.html
+       * test/lisp/time-stamp-tests.el (time-stamp-test-time-zone):
+       Don’t assume (format-time-string "%Z" 0 t) returns "GMT".
+
+2019-10-09  Juanma Barranquero  <address@hidden>
+
+       identity, ignore: Make arg names more consistent with docs
+
+       * lisp/subr.el (ignore): Rename argument IGNORE to ARGUMENTS.
+
+       * src/fns.c (Fidentity): Rename ARG to ARGUMENT.
+
+       * doc/lispref/functions.texi (Calling Functions): Fix references.
+
+2019-10-09  Damien Cassou  <address@hidden>
+
+       checkdoc CL tests
+
+       * test/lisp/emacs-lisp/checkdoc-tests.el: Add cl-lib-related tests
+       (bug#37063).
+
+2019-10-09  dick r. chiang  <address@hidden>  (tiny change)
+
+       Make checkdoc work better with cl-lib functions
+
+       * lisp/emacs-lisp/checkdoc.el (checkdoc-defun-info): Make checkdoc
+       work for cl-lib methods with more complex parameter lists
+       (bug#37063).
+
+2019-10-09  Lars Ingebrigtsen  <address@hidden>
+
+       Fix formatting of (file-size-human-readable 2047)
+
+       * lisp/files.el (file-size-human-readable): Don't format
+       slightly-less numbers as X.0k, but just Xk instead (bug#36329).
+
+2019-10-09  Lars Ingebrigtsen  <address@hidden>
+
+       Work around bad interaction between dired-omit-mode and recover-session
+
+       * lisp/files.el (recover-session): Add ugly hack to try to ensure
+       that we're actually showing the session files (bug#36223).
+
+2019-10-09  Lars Ingebrigtsen  <address@hidden>
+
+       Allow filtering out warnings/errors from compile.el detection
+
+       * lisp/progmodes/compile.el
+       (compilation-transform-file-match-alist): New variable (bug#32968).
+       (compilation-error-properties): Use it to remove known false
+       positives.
+       (compilation-error-regexp-alist): Mention it in this doc string.
+
+2019-10-09  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify documentation of show-help-function slightly
+
+       * doc/lispref/text.texi (Special Properties): Clarify where the
+       example in Tooltip mode is (bug#35392).
+
+2019-10-09  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el: Don't show window count for one window.
+
+       * lisp/tab-bar.el (tab-bar-tab-name-selected-window): Don't show the 
number
+       of windows when there is only one window in the window configuration.
+       (tab-bar-close-other-tabs): Rename from tab-close-other.
+       Take into account tab-bar-show to turn off when needed.
+       (tab-close-other): Alias to tab-bar-close-other-tabs.
+
+2019-10-09  Lars Ingebrigtsen  <address@hidden>
+
+       Fix nnimap tick/readedness thinko introduced some weeks back
+
+       * lisp/gnus/nnimap.el (nnimap-request-set-mark): Fix thinko in the
+       tick/read change: Unticking a message shouldn't make it unread,
+       but ticking it should make it read.
+
+2019-10-09  Lars Ingebrigtsen  <address@hidden>
+
+       Make mml-secure-epg-sign bug out if we can't find an identity
+
+       * lisp/gnus/mml-sec.el (mml-secure-epg-sign): Bug out if we
+       couldn't find anything to sign with instead of silently pretending
+       to sign.
+       * lisp/gnus/mml-smime.el (mml-smime-epg-sign): Don't bind
+       inhibit-display because that makes debugging impossible.
+
+2019-10-09  Stefan Kangas  <address@hidden>
+
+       Remove XEmacs compat code from edt.el (Bug#37621)
+
+       * lisp/emulation/edt.el (top-level, edt-emacs-variant)
+       (edt-window-system, edt-xserver, edt-page-backward)
+       (edt-beginning-of-line, edt-end-of-line-forward)
+       (edt-end-of-line-backward, edt-one-word-forward)
+       (edt-one-word-backward, edt-character, edt-line-forward)
+       (edt-next-line, edt-previous-line, edt-top, edt-find-forward)
+       (edt-find-backward, edt-find-next-forward)
+       (edt-find-next-backward, edt-reset, edt-advance, edt-backup)
+       (edt-define-key, edt-bottom-check, edt-sentence-forward)
+       (edt-sentence-backward, edt-paragraph-forward)
+       (edt-paragraph-backward, edt-restore-key, edt-window-top)
+       (edt-window-bottom, edt-scroll-window-backward-line)
+       (edt-line-to-bottom-of-window, edt-line-to-middle-of-window)
+       (edt-goto-percentage, edt-display-the-time, edt-remember)
+       (edt-split-window, edt-load-keys, edt-emulation-on)
+       (edt-emulation-off, edt-default-emulation-setup)
+       (edt-user-emulation-setup, edt-select-default-global-map)
+       (edt-select-user-global-map): Remove XEmacs compat code.
+
+2019-10-09  Lars Ingebrigtsen  <address@hidden>
+
+       Move the "Skeleton Language" node to later in the manual
+
+       * doc/misc/autotype.texi (Skeleton Language): Move this low-level
+       node to after the more user-facing nodes (bug#20780).
+
+2019-10-09  Lars Ingebrigtsen  <address@hidden>
+
+       Add a letrec example to the manuel
+
+       * doc/lispref/variables.texi (Local Variables): Add a letrec example.
+
+2019-10-09  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak letrec documentation
+
+       * doc/lispref/variables.texi (Local Variables): Compare letrec to
+       let* instead of let.
+
+2019-10-09  Stephen Gildea  <address@hidden>
+
+       time-stamp: revert recent change to "%04y"
+
+       * lisp/time-stamp.el (time-stamp-string-preprocess): Revert change to 
"%04y"
+       format made 2 weeks ago by commit 0e56883878 (the previous commit to
+       this file).  Although undocumented, "%04y" was discovered to be in use
+       in the wild (2016) and had not issued a warning that it would change.
+       Add a warning that it will change.
+
+       * test/lisp/time-stamp-tests.el (time-stamp-test-year-2digit): add test 
of "%04y"
+
+2019-10-09  Simen Heggestøyl  <address@hidden>
+
+       Warn about missing executables in RST PDF preview
+
+       * lisp/textmodes/rst.el (rst-compile-pdf-preview): Warn about missing
+       executables when attempting to compile and preview an RST file as PDF.
+       (Bug#30063)
+
+2019-10-09  Stephen Gildea  <address@hidden>
+
+       Expand testing of time-stamp format "%y"
+
+       * test/lisp/time-stamp-tests.el (time-stamp-test-year): break into two 
tests,
+       time-stamp-test-year-2digit and time-stamp-test-year-4digit.  Expand
+       time-stamp-test-year-2digit to look more like tests for other 2-digit
+       conversions.
+
+2019-10-09  Juanma Barranquero  <address@hidden>
+
+       Silence compiler warning
+
+       * src/w32.c (acl_to_text): Add ATTRIBUTE_MALLOC.
+
+2019-10-09  Robert Pluim  <address@hidden>
+
+       Expand documentation on Lisp variables defined in C sources
+
+       * doc/lispref/internals.texi (Writing Emacs Primitives): Add
+       description of DEFVAR_* arguments.  Describe variable naming
+       conventions.  Explain how to express quoting of symbols in C, plus
+       'specbind' and how to create buffer-local variables.
+
+2019-10-09  Michael Albinus  <address@hidden>
+
+       * doc/misc/tramp.texi (Remote shell setup): Howto configure local shell.
+
+2019-10-09  Michael Albinus  <address@hidden>
+
+       Support zsh as local shell in Tramp (Bug#31924)
+
+       * lisp/net/tramp-sh.el (tramp-sh-extra-args): Extend zsh
+       arguments.  Add :version.
+       (tramp-maybe-open-connection): Use extra args for
+       `tramp-encoding-shell'.  (Bug#31924)
+
+2019-10-09  Juanma Barranquero  <address@hidden>
+
+       Implement offsets for absolute line numbers
+
+       * src/xdisp.c (syms_of_xdisp) <display-line-numbers-offset>:
+       New variable to add an offset to absolute line numbers.
+       (syms_of_xdisp) <display-line-numbers>: Mention it in docstring.
+       (maybe_produce_line_number): Use it.
+
+       * doc/emacs/display.texi (Display Custom): Document it.
+
+       * etc/NEWS (value): Announce it.
+
+       * lisp/frame.el: Add `display-line-numbers-offset' to list of
+       variables which should trigger redisplay of the current buffer.
+
+2019-10-09  Juanma Barranquero  <address@hidden>
+
+       Do not use tick faces beyond ZV (bug#37641)
+
+       * src/xdisp.c (maybe_produce_line_number): Check beyond_zv
+       before using a tick face for the line number.  Move all face
+       selection code outside the loop that draws the line number.
+
+2019-10-09  Eli Zaretskii  <address@hidden>
+
+       Improve doc strings in replace.el
+
+       * lisp/replace.el (query-replace-read-from)
+       (query-replace-compile-replacement, query-replace-read-to)
+       (replace-string, replace-regexp, occur-mode-goto-occurrence)
+       (occur-next-error, occur-rename-buffer, multi-occur)
+       (multi-occur-in-matching-buffers): Describe all arguments in
+       doc strings.  (Bug#31207)
+
+2019-10-09  Eli Zaretskii  <address@hidden>
+
+       Fix minor Texinfo errors in ELisp manual
+
+       * doc/lispref/errors.texi (Standard Errors): Fix incorrect
+       usage of @xref commands.  (Bug#37660)
+       * doc/lispref/internals.texi (Buffer Internals): Fix markup.
+       (Bug#37639)
+
+2019-10-09  Lars Ingebrigtsen  <address@hidden>
+
+       Ensure that the pulse overlay is visible
+
+       * lisp/cedet/pulse.el (pulse-momentary-highlight-overlay): Make
+       the pulse overlay have priority over the marked-region overlay
+       (bug#29173).
+
+2019-10-09  Lars Ingebrigtsen  <address@hidden>
+
+       Protect against unlikely case of [menu-bar] not being bound
+
+       * lisp/recentf.el (recentf-show-menu):
+       (recentf-hide-menu): The [menu-bar] key may be unbound (bug#25191).
+
+2019-10-09  Lars Ingebrigtsen  <address@hidden>
+
+       Add some sanity checks to dired-x.el key bindings
+
+       * lisp/dired-x.el: Ensure that prefix keys haven't be rebound to
+       commands before adding keystrokes (bug#25190).
+
+2019-10-09  Lars Ingebrigtsen  <address@hidden>
+
+       Allow global-edebug-prefix to be nil
+
+       * lisp/emacs-lisp/edebug.el (global-edebug-prefix): Allow
+       global-edebug-prefix to be nil (if the user doesn't want that
+       prefix) (bug#25188).
+
+2019-10-09  Lars Ingebrigtsen  <address@hidden>
+
+       Fix possible initialisation error in shell-mode-map
+
+       * lisp/shell.el (shell-mode-map): Comint is the parent mode, so
+       there's no need to explicitly make it a parent map here (bug#25187).
+
+2019-10-09  Lars Ingebrigtsen  <address@hidden>
+
+       Upcase parameters in things like "&optional (arg 3)"
+
+       * lisp/help.el (help--make-usage): Upcase cl-defgeneric (etc)
+       parameter names (bug#23517).
+
+2019-10-08  Lars Ingebrigtsen  <address@hidden>
+
+       Bury the help buffer after sending a bug report
+
+       * lisp/mail/emacsbug.el (report-emacs-bug-hook): Bury the help
+       buffer after sending the bug report (bug#22712).
+
+2019-10-08  Hong Xu  <address@hidden>
+
+       Fix up previous visit-tags-table change
+
+       * lisp/progmodes/etags.el (visit-tags-table): Reimplement
+       `tags--find-default-tags-dir-recursively' using the much simpler
+       `locate-dominating-file'. Following up bug#37518.
+
+2019-10-08  Lars Ingebrigtsen  <address@hidden>
+
+       Move point in the dired buffer with `n'/`p' in an image-mode buffer
+
+       * lisp/image-mode.el (image-next-file): If the image is in a dired
+       buffer, then move point in that buffer when advancing
+       (bug#21752).  This makes it easier to select images.
+
+2019-10-08  Juanma Barranquero  <address@hidden>
+
+       Fix typos in lisp/*.el
+
+       * lisp/emacs-lisp/generator.el (cps--with-value-wrapper)
+       (cps-inhibit-atomic-optimization, iter-close):
+       * lisp/gnus/nnir.el (nnir-imap-search-arguments)
+       (nnir-imap-search-argument-history, nnir-categorize)
+       (nnir-ignored-newsgroups)
+       (nnir-retrieve-headers-override-function)
+       (nnir-imap-default-search-key, nnir-namazu-additional-switches)
+       (gnus-group-make-nnir-group, nnir-add-result)
+       (nnir-compose-result, nnir-run-imap, nnir-imap-make-query)
+       (nnir-imap-query-to-imap, nnir-imap-expr-to-imap)
+       (nnir-imap-next-term, nnir-run-swish-e, nnir-run-namazu)
+       (nnir-read-parm, nnir-read-server-parm, nnir-search-thread):
+       Trivial doc fixes.
+
+2019-10-08  Lars Ingebrigtsen  <address@hidden>
+
+       Document `letrec'
+
+       * doc/lispref/variables.texi (Local Variables): Document letrec
+       (bug#21048).
+
+       * lisp/subr.el (letrec): Expand the doc string slightly.
+
+2019-10-08  Lars Ingebrigtsen  <address@hidden>
+
+       Make menu bar entries only point to named functions, not lambdas
+
+       * lisp/menu-bar.el ()
+       (menu-bar--display-line-numbers-mode-visual)
+       (menu-bar--display-line-numbers-mode-relative)
+       (menu-bar--display-line-numbers-mode-absolute)
+       (menu-bar--display-line-numbers-mode-none)
+       (menu-bar--visual-line-mode-enable)
+       (menu-bar--toggle-truncate-long-lines)
+       (menu-bar--wrap-long-lines-window-edge): Make lambdas into trivial
+       wrapper functions so that `C-h k' on the menu items work (bug#13841).
+       (menu-bar-showhide-line-numbers-menu)
+       (menu-bar-line-wrapping-menu): Use them.
+
+2019-10-08  Lars Ingebrigtsen  <address@hidden>
+
+       Add more sanity checks to help-fns--globalized-minor-mode
+
+       * lisp/help-fns.el (help-fns--globalized-minor-mode): FUNCTION can
+       be a lambda, so protect against that.
+
+2019-10-08  Lars Ingebrigtsen  <address@hidden>
+
+       Make add-face-text-property not be destructive on strings
+
+       * src/textprop.c (add_properties): Take a parameter to say whether
+       it's allowed to be destructive or not (bug#20153).
+       (add_text_properties_1): Ditto.
+       (Fadd_face_text_property): Use this to say that it shouldn't
+       modify face properties on strings destructively.  This avoids
+       altering the face properties of one string when altering them on a
+       copy of the string.
+
+2019-10-08  Lars Ingebrigtsen  <address@hidden>
+
+       Make `info-display-manual' pop up the correct frame
+
+       * lisp/info.el (info-display-manual): If the buffer is already in
+       a window, use that window (bug#20020).
+
+2019-10-08  Lars Ingebrigtsen  <address@hidden>
+
+       Make a nil parameter switch variable-pitch-mode on
+
+       * lisp/face-remap.el (variable-pitch-mode): Make a nil parameter
+       switch the mode on instead of toggling (bug#19384).
+
+2019-10-08  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from prolog.el
+
+       * lisp/progmodes/prolog.el (prolog-mode-syntax-table)
+       (prolog-help-info, prolog-Info-follow-nearest-node)
+       (prolog-menu-help, prolog-edit-menu-runtime)
+       (prolog-inferior-menu-all): Remove XEmacs compat code.
+
+2019-10-08  Lars Ingebrigtsen  <address@hidden>
+
+       Remove some XEmacs compat code from tree-widget.el
+
+       * lisp/tree-widget.el (tree-widget-themes-load-path)
+       (tree-widget-use-image-p, tree-widget-create-image)
+       (tree-widget-image-formats, tree-widget-image-properties)
+       (tree-widget-lookup-image): Remove XEmacs compat code.
+
+2019-10-08  Lars Ingebrigtsen  <address@hidden>
+
+       Remove some XEmacs compat code from newst*.el
+
+       * lisp/net/newst-plainview.el
+       (newsticker--plainview-tool-bar-map): Remove XEmacs support.
+
+       * lisp/net/newst-treeview.el (newsticker-treeview-tool-bar-map):
+
+2019-10-08  Federico Tedin  <address@hidden>
+
+       Filter packages by name in list-packages. (Bug#36981)
+
+       * lisp/emacs-lisp/package.el (package-menu-filter-by-name): New
+       function to filter packages by name.
+       (package-menu-clear-filter): New function to clear applied filters.
+       (package-menu-filter-by-keyword): Rename function from
+       package-menu-filter.
+       (package-menu--generate): Don't change 'q' binding anymore.
+       (package-menu-mode-map): Bind '/ n' to package-menu-filter-by-name, '/
+       k' to package-menu-filter-by-keyword and '/ /' to
+       package-menu-clear-filter.
+       (package-menu-mode-menu): Update menu entries for the three functions.
+       * test/lisp/emacs-lisp/package-tests.el 
(package-test-list-filter-by-name)
+       (package-test-list-clear-filter): New tests.
+       * doc/emacs/package.texi: Document usage of
+       package-menu-filter-by-name, package-menu-clear-filter and update
+       reference to package-menu-filter-by-keyword.
+       * etc/NEWS: Announce changes.
+
+2019-10-08  Hong Xu  <address@hidden>
+
+       Search upward from current dir for the default TAGS file
+
+       * doc/emacs/maintaining.texi (Select Tags Table): Update the doc
+       of `visit-tags-table' (bug#37518).
+       * lisp/progmodes/etags.el (tags--find-default-tags-dir-recursively)
+       (visit-tags-table): Search upward from current dir for the default
+       TAGS file.
+
+2019-10-08  Stefan Kangas  <address@hidden>
+
+       Fix title inconsistencies in elisp intro book
+
+       * doc/lispintro/emacs-lisp-intro.texi: Fix title
+       inconsistencies.  (Bug#31037)
+
+2019-10-08  Stefan Kangas  <address@hidden>
+
+       Add some more commands to eshell-visual-commands
+
+       * lisp/eshell/em-term.el (eshell-visual-commands): Add some more
+       commonly used commands.
+
+2019-10-08  Eli Zaretskii  <address@hidden>
+
+       Fix crashes on TTY frames due to "C-x 6 f"
+
+       * src/xdisp.c (redisplay_internal): Revert the recent change
+       regarding TTY frames' garbaged flag.  It is not needed.
+
+       * src/dispnew.c (adjust_frame_glyphs_for_frame_redisplay):
+       When returning due to mismatch between the desired and actual
+       dimensions of the glyph matrix, set the frame's garbaged flag
+       for TTY frames.  This avoids crashes when we are later called
+       from redisplay.  Reported by Ergus <address@hidden>.
+
+2019-10-08  Michael Albinus  <address@hidden>
+
+       * etc/PROBLEMS: Describe navigation problem from Nautilus.  (Bug#37573)
+
+       * lisp/userlock.el (create-lockfiles): Set `safe-local-variable' 
property.
+
+2019-10-08  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/package.el (package--get-deps): Fix thinko
+
+       * test/lisp/emacs-lisp/package-tests.el (package-test-get-deps):
+       Adjust test to new calling convention.
+
+2019-10-08  Eli Zaretskii  <address@hidden>
+
+       Fix aborts when opening a new font after face-cache reset
+
+       * src/font.c (font_open_for_lface): Make sure the default face
+       is realized before using its height for the font to be open.
+       (Bug#37637)
+
+2019-10-08  Michael Albinus  <address@hidden>
+
+       * INSTALL: Describe installation of source and debug packages.  
(Bug#37527)
+
+2019-10-07  Juanma Barranquero  <address@hidden>
+
+       Set default colors for tick faces
+
+       * lisp/faces.el (line-number-major-tick, line-number-minor-tick):
+       Set default color different from `line-number' so after customizing
+       the tick number variables, the ticks are immediately visible.
+       Suggested by Juri Linkov <address@hidden>.
+
+2019-10-07  Basil L. Contovounesios  <address@hidden>
+
+       Clarify docs on newline and auto-fill-mode
+
+       * doc/lispref/text.texi (Commands for Insertion):
+       * lisp/simple.el (newline): Do not mention conditions specific to
+       'do-auto-fill' under documentation of 'newline' (bug#36702).
+
+2019-10-07  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el (tab-bar-tab-name-function): Turn defvar into 
defcustom.
+
+       (tab-bar-tab-name-all-windows): Rename from tab-bar-tab-name.
+       (tab-bar-tab-name-selected-window): New function used by default.
+
+2019-10-07  Stefan Kangas  <address@hidden>
+
+       Add "python3 -m twine" example to comint-password-prompt tests
+
+       * test/lisp/comint-tests.el (comint-testsuite-password-strings): Add
+       new example for "python3 -m twine" to test suite.  (Bug#37636)
+
+2019-10-07  Eli Zaretskii  <address@hidden>
+
+       Fix a crash in TTY sessions caused by recent changes
+
+       * src/xdisp.c (redisplay_internal): Fix crashes in TTY
+       sessions when turning on tab-mode.
+       Reported by Ergus <address@hidden>.
+
+2019-10-07  Lars Ingebrigtsen  <address@hidden>
+
+       Use text properties instead of truncating strings
+
+       * lisp/emacs-lisp/tabulated-list.el (tabulated-list-put-tag): Use
+       this to allow using commands like `C-s' to search for even
+       truncated bits.
+
+       * lisp/international/mule-util.el (truncate-string-to-width):
+       Allow using text properties to truncate strings instead of
+       actually truncating strings (bug#17782).
+
+2019-10-07  Lars Ingebrigtsen  <address@hidden>
+
+       dired-move-to-filename doc string fix
+
+       * lisp/dired.el (dired-move-to-filename): Document the parameters
+       (bug#17566).
+
+2019-10-07  Basil L. Contovounesios  <address@hidden>
+
+       Improve recent doc fix for cl-reduce
+
+       * lisp/emacs-lisp/cl-seq.el: (cl-reduce): Clarify treatment of
+       :INITIAL-VALUE when :FROM-END is non-nil.  Improve wording when SEQ
+       is empty and :INITIAL-VALUE is unspecified (bug#37400).  Describe
+       behavior when SEQ comprises a single element.
+
+2019-10-07  Lars Ingebrigtsen  <address@hidden>
+
+       Make completion in the `E' command in *Ibuffer* work
+
+       * lisp/ibuf-ext.el (eval): Make completion (etc) work as normal
+       (bug#16239).
+
+2019-10-07  Eli Zaretskii  <address@hidden>
+
+       Fix infloop in redisplay caused by a recent change
+
+       * src/xdisp.c (redisplay_internal): Avoid inflooping due to a
+       frame's garbaged flag being set after update_frame.  Reported
+       by Michael Heerdegen <address@hidden>.
+
+2019-10-07  Lars Ingebrigtsen  <address@hidden>
+
+       Feval_buffer doc string lexical-binding clarification
+
+       * src/lread.c (Feval_buffer): Mention that the lexical-binding
+       variable is ignored in the doc string (bug#20139).
+
+2019-10-07  Lars Ingebrigtsen  <address@hidden>
+
+       Make ido-display-buffer work interactively more like display-buffer
+
+       * lisp/ido.el (ido-display-buffer): Take an interactive parameter,
+       like `display-buffer' (bug#14904).
+       (ido-visit-buffer): Use it to emulate `C-u M-x display-buffer'.
+
+2019-10-07  Leo Liu  <address@hidden>
+
+       Fix rcirc not to interpret nil as nickname (bug#37344)
+
+       * lisp/net/rcirc.el (rcirc-send-privmsg): Type check `target'.
+       (rcirc-cmd-me): Send CTCP only when `target' exists.
+
+2019-10-07  Stefan Kangas  <address@hidden>
+
+       Quadruple term-buffer-maximum-size (Bug#37584)
+
+       * lisp/term.el (term-buffer-maximum-size): Quadruple to 8192.
+
+2019-10-06  Wolfgang Scherer  <address@hidden>
+
+       Set correct svn:ignore property for relative filenames
+
+       * lisp/vc/vc-svn.el: (vc-svn-ignore) Use svn:ignore property of
+       immediate parent directory for wildcard specification (bug#37216).
+
+2019-10-06  Paul Eggert  <address@hidden>
+
+       Fix port of file-acl errno checking to non-GNU
+
+       I had misinterpreted the private email from Ashish Shukla.
+       * src/fileio.c (Ffile_acl): Fix typo in previous change
+       by negating the call to acl_errno_valid.
+
+2019-10-06  Lars Ingebrigtsen  <address@hidden>
+
+       Fix the colours on Motif horizontal scroll bars
+
+       * src/xterm.c (x_create_horizontal_toolkit_scroll_bar): Use the
+       same foreground/background colours as the vertical scroll bar
+       (bug#37359).
+
+2019-10-06  Lars Ingebrigtsen  <address@hidden>
+
+       cl-reduce doc fix
+
+       * lisp/emacs-lisp/cl-seq.el (cl-reduce): Clarify what happens when
+       SEQ is the empty list (bug#37400).
+
+2019-10-06  Hong Xu  <address@hidden>
+
+       tags-complete-tags-table-file doc string fix
+
+       * lisp/progmodes/etags.el (tags-complete-tags-table-file): Doc
+       string fix (bug#37538).
+
+2019-10-06  Hong Xu  <address@hidden>
+
+       Default FILE to the current buffer for list-tags
+
+       * doc/emacs/maintaining.texi (List Identifiers): Update
+       `list-tags' doc (bug#37611).
+       * lisp/progmodes/etags.el (list-tags)
+       (tags--get-current-buffer-name-in-tags-file): Default FILE to the
+       current buffer for list-tags.
+
+2019-10-06  Lars Ingebrigtsen  <address@hidden>
+
+       Make mailcap-prefer-mailcap-viewers work as documented
+
+       * lisp/emacs-lisp/seq.el (seq-find): Autoload.
+
+       * lisp/net/mailcap.el (mailcap-parse-mailcaps): Note where all the
+       entries come from so that we can later distinguish between user
+       values and system values (bug#36771).
+       (mailcap-parse-mailcap): Take a source parameter.
+       (mailcap-possible-viewers): No need to sort wildcards/exact
+       matches; these are later sorted anyway.
+       (mailcap-add-mailcap-entry): Remove `after' parameter.
+       (mailcap-mime-info): Make mailcap-prefer-mailcap-viewers work as
+       documented.
+
+2019-10-06  Mauro Aranda  <address@hidden>
+
+       Only complete words inside of the string widget
+
+       * lisp/wid-edit.el ('string widget): Peek the word that
+       ispell-complete-word will try to complete, and only offer completions
+       when the word is inside of the field (bug#11046).
+
+2019-10-06  Mauro Aranda  <address@hidden>
+
+       Fix message when no completions available for editable field
+
+       * lisp/wid-edit.el (widget-completions-at-point): Detect here if point
+       is not in an editable field.
+       (widget-complete): And here say there are no completions available
+       (bug#11562).
+
+2019-10-06  Juri Linkov  <address@hidden>
+
+       Allow using last_tab_bar_item on no-x builds.
+
+       * src/frame.h (struct frame): Remove HAVE_WINDOW_SYSTEM
+       around last_tab_bar_item.
+
+2019-10-06  Juri Linkov  <address@hidden>
+
+       Implement tab-close-other bound to C-x 6 1 by analogy with C-x 5 1.
+
+       * lisp/tab-bar.el (tab-close-other): New command bound to C-x 6 1.
+
+       * doc/emacs/frames.texi (Tab Bars): Document it.
+
+2019-10-06  Juri Linkov  <address@hidden>
+
+       Use tabs in EWW (bug#37592)
+
+       * lisp/net/eww.el (eww-open-in-new-buffer): Call tab-new when 
tab-bar-mode
+       is enabled.
+       (eww-browse-url): Add docstring.  Call tab-new when tab-bar-mode
+       is enabled.
+
+       * lisp/net/shr.el (shr-map): Bind [C-down-mouse-1] to
+       shr-mouse-browse-url-new-window.
+       (shr-mouse-browse-url-new-window): New command.
+       (shr-browse-url): Add optional arg new-window.
+
+       * doc/misc/eww.texi (Basics): Mention opening tabs on M-RET.
+
+2019-10-06  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/eieio-core.el (eieio--full-class-object): New 
function.
+
+       Rather than explicitly call eieio-class-un-autoload, the autoloading is
+       now performed on-demand if you use eieio--full-class-object.
+
+       * lisp/emacs-lisp/eieio-core.el (eieio-class-un-autoload): Remove.
+       (eieio--full-class-object): New function, to replace it.
+       (eieio-oref, eieio--class-precedence-list):
+       * lisp/emacs-lisp/eieio-base.el 
(eieio-persistent-convert-list-to-object):
+       Use it instead of eieio-class-un-autoload.
+       * lisp/emacs-lisp/eieio.el (eieio-class-parents, child-of-class-p):
+       Load the class if needed.
+
+2019-10-06  Stefan Kangas  <address@hidden>
+
+       Support changing font size using mouse wheel
+
+       * lisp/mwheel.el (mouse-wheel-mode): Support changing font size (text
+       scaling) using mouse wheel.  (Bug#28182)
+       (mouse-wheel-scroll-amount): Bind the Ctrl modifier to text scaling.
+       (mwheel-installed-text-scale-bindings): New variable.
+       (mouse-wheel--remove-bindings): New helper function for
+       'mouse-wheel-mode'.
+
+       * doc/emacs/frames.texi (Mouse Commands): Document this feature.
+       * etc/NEWS: Announce it.
+
+2019-10-06  Juanma Barranquero  <address@hidden>
+
+       Set alternate faces for some line numbers (bug#27734)
+
+       * lisp/faces.el (line-number-major-tick, line-number-minor-tick):
+       New faces.
+       * lisp/cus-start.el (display-line-numbers-major-tick)
+       (display-line-numbers-minor-tick): Add customization info.
+       * lisp/frame.el: Add `display-line-numbers-major-tick' and
+       `display-line-numbers-minor-tick' to list of variables which
+       should trigger redisplay of the current buffer.
+
+       * src/xdisp.c (syms_of_xdisp) <display-line-numbers-major-tick>
+       <display-line-numbers-major-tick>: Defvar new options.
+       (syms_of_xdisp) <line-number-major-tick, line-number-minor-tick>:
+       Defsym new faces.
+       (maybe_produce_line_number): Use new faces for line numbers
+       that are multiple of `display-line-numbers-major-tick' and
+       `display-line-numbers-minor-tick'.
+
+       * etc/NEWS (value): Announce new feature.
+       * doc/emacs/display.texi (Display Custom): Describe it.  Wording by
+       Robert Pluim <address@hidden>
+
+2019-10-06  Juri Linkov  <address@hidden>
+
+       Don't bind 'C-x 6' to '2C-mode-map' globally by default.
+
+       * lisp/textmodes/two-column.el: Don't autoload global setting of
+       "\C-x6" to 2C-command.
+
+       * lisp/ldefs-boot.el: Update to remove setting "\C-x6" to 2C-command.
+
+       * doc/emacs/commands.texi (Keys):
+       * doc/emacs/text.texi (Two-Column):
+       * doc/lispref/keymaps.texi (Prefix Keys):
+       * doc/lispref/maps.texi (Standard Keymaps):
+       Unbind 'C-x 6' from '2C-mode-map'.
+
+2019-10-06  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/package.el (package--get-deps): Rewrite.
+
+       Avoid inf-recursion with dependency cycles.
+       Remove unused `only` arg.  Prune duplicates early rather than late.
+       (package--removable-packages): Simplify code accordingly.
+
+2019-10-06  Paul Eggert  <address@hidden>
+
+       Port file-acl errno checking to non-GNU
+
+       Problem reported privately for FreeBSD 12 by Ashish Shukla.
+       * src/fileio.c (Ffile_acl): Treat EINVAL etc. like ENOTSUP if
+       acl_get_file fails, to port to FreeBSD 12 and other non-GNU
+       platforms.
+
+2019-10-06  Eli Zaretskii  <address@hidden>
+
+       Support mouse clicks on tab bar on TTY frames
+
+       This for now doesn't work on GPM.
+       * src/xdisp.c (display_tab_bar): Make the loop over tab-bar
+       items more efficient.
+       (tab_bar_item_info, tool_bar_item_info): Correct data type for
+       CHARPOS.
+       (tty_get_tab_bar_item, tty_handle_tab_bar_click): New functions.
+       (note_mouse_highlight): Handle help-echo of tab-bar tabs on
+       TTY frames.
+       * src/w32inevt.c (do_mouse_event): Call
+       tty_handle_tab_bar_click to process mouse clicks on the tab bar.
+       * src/termchar.h (tty_handle_tab_bar_click): Add prototype.
+       * src/w32console.c (w32con_set_terminal_modes): Disable Quick
+       Edit mode on entry, to make sure mouse events get reported to
+       us.
+
+2019-10-05  Paul Eggert  <address@hidden>
+
+       Fix off-by-one bug in ISO 8601 BC years
+
+       * lisp/calendar/iso8601.el (iso8601--year-match)
+       (iso8601--full-date-match, iso8601--without-day-match)
+       (iso8601--week-date-match, iso8601--ordinal-date-match)
+       (iso8601-parse-date):
+       Don’t bother to separate the year’s sign from the year,
+       as that distinction is not needed: ISO 8601 uses
+       astronomical year numbering with a year zero, which
+       is what the Emacs time functions use, so there’s no
+       need to treat nonpositive years specially.
+       (iso8601--adjust-year): Remove; no longer needed
+       since callers can just use string-to-number.
+       * test/lisp/calendar/iso8601-tests.el (test-iso8601-date-years):
+       Adjust test case to match fixed behavior.
+
+2019-10-05  Paul Eggert  <address@hidden>
+
+       Improve documentation for year-zero issues
+
+       * doc/emacs/calendar.texi (Calendar Systems)
+       * doc/lispref/os.texi (Time Conversion):
+       Prefer "BC" to "B.C." since the documentation generally uses "BC".
+       * doc/misc/emacs-mime.texi (time-date):
+       * lisp/calendar/time-date.el (date-to-day, time-to-days):
+       In the doc string, state the day origin more clearly, and more
+       consistently with the rest of the documentation.
+       * src/timefns.c (Fdecode_time): State the year origin in
+       the doc string.
+
+2019-10-05  Juri Linkov  <address@hidden>
+
+       More tab bar related key bindings.
+
+       * lisp/subr.el (ctl-x-6-map, ctl-x-6-prefix): Move here from tab-bar.el
+       to make it available to other modes like dired for 'C-x 6 d'.
+
+       * lisp/dired.el (dired-other-tab): New command bound to 'C-x 6 d'.
+
+       * lisp/tab-bar.el: Bind 'C-x 6 o' to tab-next.
+
+       * doc/emacs/frames.texi (Tab Bars): Describe C-x 6 prefix key bindings.
+
+2019-10-05  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el: In tab switching allow absolute and relative args.
+
+       * lisp/tab-bar.el (tab-bar-tab-hints): New defcustom.
+       (tab-bar-make-keymap-1): Use tab-bar-tab-hints.
+       (tab-bar--tab, tab-bar--current-tab, tab-bar--current-tab-index)
+       (tab-bar--tab-index, tab-bar--tab-index-by-name): New internal 
functions.
+       (tab-bar-select-tab): Use arg as absolute position of tab to select.
+       (tab-bar-switch-to-next-tab, tab-bar-switch-to-prev-tab): Use arg
+       as offset relative to the current tab.
+       (tab-bar-switch-to-tab): New command.
+       (tab-bar-new-tab): Simplify by using cl-pushnew.
+       (tab-bar-close-current-tab): Remove (the current tab is closed
+       by nil arg of tab-bar-close-tab).
+       (tab-bar-close-tab): Use arg as absolute position of tab to close.
+       (tab-bar-close-tab-by-name): New command.
+
+2019-10-05  Artyom Loenko  <address@hidden>  (tiny change)
+
+       Include new permission settings for macOS 10.15 (bug#37551)
+
+       * nextstep/templates/Info.plist.in
+       (NSDesktopFolderUsageDescription):
+       (NSDocumentsFolderUsageDescription):
+       (NSDownloadsFolderUsageDescription):
+       (NSRemovableVolumesUsageDescription): Add description to enable
+       setting in macOS 10.15.
+
+2019-10-05  Paul Smith  <address@hidden>
+
+       Support GNU make error messages in compile mode.
+
+       * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
+       Match GNU make error messages.
+       * test/lisp/progmodes/compile-tests.el 
(compile-tests--test-regexps-data):
+       Test GNU make error message matching.
+       (compile-test-error-regexps): Update count of infos found.
+
+2019-10-05  Lars Ingebrigtsen  <address@hidden>
+
+       Remove some XEmacs compat code from the CEDET tests
+
+2019-10-05  Lars Ingebrigtsen  <address@hidden>
+
+       Remove some XEmacs compat code from esh*.el
+
+       * lisp/eshell/esh-util.el: Remove some XEmacs compat functions.
+
+2019-10-05  Lars Ingebrigtsen  <address@hidden>
+
+       Remove more XEmacs compat code from ezimage.el
+
+       * lisp/ezimage.el (ezimage-use-images)
+       (ezimage-insert-over-text): Remove XEmacs compat code.
+
+2019-10-05  Lars Ingebrigtsen  <address@hidden>
+
+       Fix typo in frames.texi xref
+
+       * doc/emacs/frames.texi (Tab Bars): Fix typo in xref.
+
+2019-10-05  Lars Ingebrigtsen  <address@hidden>
+
+       Remove most of the XEmacs compat code from ediff*.el
+
+       * lisp/vc/ediff-diff.el (ediff-word-1): Remove XEmacs compat code
+       and declare compatibility functions for obsolete.  Adjust all callers.
+
+       * lisp/vc/ediff-help.el (ediff-set-help-overlays):
+
+       * lisp/vc/ediff-hook.el:
+       (menu-bar-ediff-misc-menu, menu-bar-ediff-merge-menu)
+       (menu-bar-ediff-menu, menu-bar-ediff-merge-menu)
+       (menu-bar-epatch-menu, menu-bar-ediff-misc-menu):
+
+       * lisp/vc/ediff-init.el (ediff-device-type)
+       (ediff-window-display-p, ediff-has-face-support-p)
+       (ediff-has-toolbar-support-p, ediff-has-gutter-support-p)
+       (ediff-BAD-INFO, ediff-coding-system-for-write)
+       (ediff-read-event, ediff-overlayp, ediff-make-overlay)
+       (ediff-delete-overlay, ediff-color-display-p)
+       (ediff-display-pixel-width, ediff-display-pixel-height)
+       (ediff-region-help-echo, ediff-set-face-pixmap)
+       (ediff-paint-background-regions-in-one-buffer)
+       (ediff-clear-fine-diff-vector, ediff-mouse-event-p)
+       (ediff-key-press-event-p, ediff-event-point, )
+       (ediff-event-buffer, ediff-event-key, ediff-last-command-char)
+       (ediff-frame-iconified-p, ediff-frame-char-width)
+       (ediff-reset-mouse, ediff-frame-char-height)
+       (ediff-overlay-start, ediff-overlay-end, ediff-overlay-buffer)
+       (ediff-overlay-get, ediff-move-overlay, ediff-overlay-put)
+       (ediff-abbreviate-file-name):
+
+       * lisp/vc/ediff-mult.el (ediff-next-meta-item)
+       (ediff-previous-meta-item)
+       (ediff-replace-session-activity-marker-in-meta-buffer)
+       (ediff-replace-session-status-in-meta-buffer)
+       (ediff-redraw-directory-group-buffer)
+       (ediff-update-markers-in-dir-meta-buffer)
+       (ediff-update-session-marker-in-dir-meta-buffer)
+       (ediff-redraw-registry-buffer, ediff-set-meta-overlay)
+       (ediff-update-meta-buffer, ediff-get-meta-info)
+       (ediff-get-meta-overlay-at-pos, )
+       (ediff-get-session-number-at-pos, )
+       (ediff-next-meta-overlay-start)
+       (ediff-previous-meta-overlay-start, )
+       (ediff-meta-mark-equal-files):
+
+       * lisp/vc/ediff-util.el:
+       (ediff-setup, ediff-setup-control-buffer, ediff-recenter)
+       (ediff-recenter-one-window, ediff-toggle-read-only)
+       (ediff-file-checked-out-p, ediff-file-checked-in-p)
+       (ediff-toggle-wide-display, ediff-toggle-multiframe)
+       (ediff-toggle-use-toolbar, ediff-kill-bottom-toolbar)
+       (ediff-visible-region, ediff-scroll-vertically)
+       (ediff-scroll-horizontally, ediff-jump-to-difference-at-point)
+       (ediff-diff-to-diff, ediff-restore-diff)
+       (ediff-toggle-regexp-match, ediff-really-quit)
+       (ediff-cleanup-mess, ediff-highlight-diff-in-one-buffer)
+       (ediff-unhighlight-diffs-totally-in-one-buffer)
+       (ediff-save-buffer, ediff-make-cloned-buffer)
+       (ediff-make-indirect-buffer, ediff-remove-flags-from-buffer)
+       (ediff-place-flags-in-buffer1, ediff-get-diff-posn)
+       (ediff-clear-diff-vector, ediff-make-bullet-proof-overlay)
+       (ediff-submit-report, ediff-deactivate-mark)
+       (ediff-activate-mark, ediff-profile, ediff-print-diff-vector):
+
+       * lisp/vc/ediff-wind.el (ediff-control-frame-parameters)
+       (ediff-get-window-by-clicking, ediff-select-lowest-window)
+       (ediff-setup-windows-plain-merge)
+       (ediff-setup-windows-plain-compare, ediff-setup-control-frame)
+       (ediff-destroy-control-frame, ediff-make-frame-position)
+       (ediff-make-wide-display, ediff-get-visible-buffer-window):
+
+       * lisp/vc/ediff.el (ediff-version, ediff-documentation):
+
+2019-10-05  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of Tab bars
+
+       * doc/emacs/frames.texi (Menu Bars, Tool Bars, Tab Bars):
+       Don't start index entries from a capital letter.
+       (Tab Bars): Improve wording and indexing.
+
+       * etc/NEWS: Improve documentation of Tab bars.
+
+2019-10-05  Eli Zaretskii  <address@hidden>
+
+       Fix display of cursor in obscure use case on MS-Windows
+
+       * src/xdisp.c (redisplay_internal): Detect when the frame
+       becomes garbaged inside the call to update_frame, and redraw
+       the frame in that case.  (Bug#37579)
+
+2019-10-05  Philipp Stephani  <address@hidden>
+
+       * src/fns.c (Flocale_info): Avoid fixnum overflow under ASan.
+
+       * src/pdumper.c (dump_buffer): Update structure hash.
+
+2019-10-05  Paul Eggert  <address@hidden>
+
+       Omit one more superfluous "-" in regexp
+
+       Problem reported by Mattias Engdegård.
+       * lisp/language/indian.el (gurmukhi-composable-pattern):
+       Omit unnecessary "-".
+
+2019-10-05  Dmitry Gutov  <address@hidden>
+
+       (project--vc-list-files): Make sure to expand file names
+
+       * lisp/progmodes/project.el (project--vc-list-files): Make sure to
+       expand file names.  Turns out, Grep doesn't like abbreviated ones.
+
+2019-10-05  Eli Zaretskii  <address@hidden>
+
+       Fix vertical scrolling in image-mode
+
+       * lisp/image-mode.el (image-set-window-vscroll): Interpret the
+       argument VSCROLL value in pixel units.
+       (image-mode-reapply-winprops): Interpret the 'vscroll'
+       property value in pixel units.
+       (image-next-line): Scroll the image with pixel resolution.
+       (image-eob): Set the image vscroll in pixels.  (Bug#37578)
+
+2019-10-04  Juanma Barranquero  <address@hidden>
+
+       Improve docstrings auto-generated by `define-minor-mode'
+
+       * lisp/emacs-lisp/easy-mmode.el (easy-mmode--mode-docstring):
+       When using `easy-mmode--arg-docstring' to auto-generate a
+       docstring, refill it up to `emacs-lisp-docstring-fill-column'.
+
+2019-10-04  Eric Abrahamsen  <address@hidden>
+
+       Don't manipulate gnus-newsrc-alist if it hasn't been initalized
+
+       * lisp/gnus/gnus-group.el (gnus-group-set-info): Packages that use
+       Gnus summary mode without actually booting Gnus might end up in this
+       situation. See bug#36903
+
+2019-10-04  Paul Eggert  <address@hidden>
+
+       Fix bugs found by 2019-09-29 regexp scanner
+
+       Problems reported by Mattias Engdegård in:
+       https://lists.gnu.org/r/emacs-devel/2019-09/threads.html
+       * lisp/calendar/iso8601.el (iso8601--year-match)
+       (iso8601--full-date-match, iso8601--without-day-match)
+       (iso8601--week-date-match, iso8601--ordinal-date-match)
+       (iso8601--zone-match):
+       * lisp/textmodes/rst.el (rst-re-alist-def):
+       Put ‘-’ at the end of bracketed ranges, following the style
+       suggestion in the Elisp manual.
+       (iso8601--time-match): Use \([0-9]*\) instead of \([0-9]+\)?
+       to pacify the regexp scanner.
+       (iso8601-parse-time): Adjust accordingly.
+       * lisp/language/burmese.el (burmese-composable-pattern):
+       * lisp/language/indian.el (devanagari-composable-pattern)
+       (bengali-composable-pattern, gurmukhi-composable-pattern)
+       (gujarati-composable-pattern, oriya-composable-pattern)
+       (telugu-composable-pattern, kannada-composable-pattern)
+       (malayalam-composable-pattern):
+       Prefer [ab] to [a-b] when the characters differ by 1,
+       to pacify the regexp scanner.
+       * lisp/language/burmese.el (burmese-composable-pattern):
+       Fix missing-‘\u’ typos.
+       * lisp/language/indian.el (gurmukhi-composable-pattern):
+       Fix missing-‘\’ typo.
+       * lisp/language/tibetan.el (tibetan-regexp):
+       Quote ‘+’ in regexp to pacify the regexp scanner.  Simplify.
+       * lisp/textmodes/rst.el (rst-re-alist-def): Fix ‘[]-'...]’
+       typo by putting the ‘-’ at end of the bracketed expression.
+
+2019-10-04  Paul Eggert  <address@hidden>
+
+       Minor style tweaks for recent tab changes
+
+       * src/dispextern.h (MR_PARTIALLY_VISIBLE_AT_TOP):
+       * src/window.c (Fwindow_mode_line_height)
+       (Fwindow_header_line_height, Fwindow_tab_line_height)
+       (Fwindow_right_divider_width, Fwindow_bottom_divider_width)
+       (Fwindow_scroll_bar_width, Fwindow_scroll_bar_height):
+       (Fset_window_configuration, Fcurrent_window_configuration):
+       Omit unnecessary parens.
+       * src/dispextern.h (CURRENT_MODE_LINE_HEIGHT)
+       (CURRENT_HEADER_LINE_HEIGHT, CURRENT_TAB_LINE_HEIGHT):
+       Add parens needed to make these macros function-like.
+       * src/window.c (window_resize_check):
+       * src/window.h (WINDOW_TAB_BAR_P):
+       * src/xdisp.c (tab_bar_item_info): Reindent.
+       * src/window.c (window_wants_mode_line)
+       (window_wants_header_line, window_wants_tab_line):
+       Simplify (a && b ? 1 : 0) to (a && b).
+
+2019-10-04  Stefan Kangas  <address@hidden>
+
+       Make mouse scroll show a message instead of dinging at buffer limits
+
+       * lisp/mwheel.el (mwheel-scroll): Show a message instead of dinging at
+       end of buffer and beginning of buffer.  This should be less intrusive,
+       especially when using a trackpad.  (Bug#16196)
+
+2019-10-04  Stefan Kangas  <address@hidden>
+
+       Bind Scroll_Lock to scroll-lock-mode globally
+
+       * lisp/bindings.el (global-map): Bind Scroll_Lock to
+       scroll-lock-mode.  (Bug#6861)
+       * lisp/scroll-lock.el (scroll-lock-mode): Note that the binding will
+       not work if 'w32-scroll-lock-modifier' is non-nil.
+       * etc/NEWS: Announce it.
+
+2019-10-04  Stefan Kangas  <address@hidden>
+
+       Add tests for secure-hash and improve doc string (Bug#37420)
+
+       * src/fns.c (Fsecure_hash_algorithms): Fix typo.
+       (Fsecure_hash): Add algorithm list to doc string.
+       * test/src/fns-tests.el (test-secure-hash): New test.
+
+2019-10-04  Stefan Kangas  <address@hidden>
+
+       Declare unused vhdl code in align.el obsolete
+
+       * lisp/align.el (align-vhdl-rules-list, align-set-vhdl-rules): Declare
+       obsolete.  (Bug#6207)
+       (align-dq-string-modes, align-open-comment-modes): Move vhdl-mode to
+       definition instead of adding it later.
+
+2019-10-04  Mattias Engdegård  <address@hidden>
+
+       Fix error in gnu compilation-mode regexp (bug#37582)
+
+       * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
+       Fix a mistake introduced when the regexp was translated to rx.
+       * test/lisp/progmodes/compile-tests.el 
(compile-tests--test-regexps-data)
+       (compile-test-error-regexps): Add test case.
+       * etc/compilation.txt: Add example.
+
+2019-10-04  Mattias Engdegård  <address@hidden>
+
+       Make compile-tests re-runnable
+
+       * test/lisp/progmodes/compile-tests.el (compile-test-error-regexps):
+       Don't rely on compilation-num-errors (etc) all being zero, which they
+       aren't if the test has been run before.
+       (compile-tests--test-regexps-data): Change defvar to defconst.
+
+2019-10-04  Lars Ingebrigtsen  <address@hidden>
+
+       Remove semantic-make-local-hook call from CEDET
+
+       * lisp/cedet/semantic/wisent/grammar.el
+       (wisent-grammar-setupcode-builder):
+       * lisp/cedet/semantic/util-modes.el (semantic-highlight-edits-mode)
+       (semantic-show-unmatched-syntax-mode)
+       (semantic-show-parser-state-mode):
+       * lisp/cedet/semantic/mru-bookmark.el (semantic-mru-bookmark-mode):
+       * lisp/cedet/semantic/imenu.el (semantic-create-imenu-index):
+       * lisp/cedet/semantic/grammar.el (semantic-grammar-mode):
+       * lisp/cedet/semantic/grammar-wy.el
+       (semantic-grammar-wy--install-parser):
+       * lisp/cedet/semantic/decorate/mode.el
+       (semantic-decorate-add-pending-decoration)
+       (semantic-decoration-mode):
+       * lisp/cedet/semantic.el (semantic--set-buffer-cache): Remove all
+       calls to the function.
+
+       * lisp/cedet/semantic/fw.el (semantic-make-local-hook): Made
+       obsolete alias for #'ignore by removing XEmacs compat code.
+
+2019-10-04  Lars Ingebrigtsen  <address@hidden>
+
+       Remove some XEmacs compat code from ispell.el
+
+       * lisp/textmodes/ispell.el (ispell-word): Remove XEmacs compat code.
+
+2019-10-04  Lars Ingebrigtsen  <address@hidden>
+
+       Remove some XEmacs compat code from ezimage.el
+
+       * lisp/ezimage.el (defezimage): Remove XEmacs compat code.
+
+2019-10-04  Stefan Kangas  <address@hidden>
+
+       Remove XEmacs compat code from re-builder.el
+
+       * lisp/emacs-lisp/re-builder.el (top-level)
+       (reb-color-display-p): Remove XEmacs compat code.
+
+2019-10-04  Lars Ingebrigtsen  <address@hidden>
+
+       Remove some XEmacs compat code from ediff*.el
+
+       * lisp/vc/ediff-diff.el (ediff-goto-word): Ditto.
+
+       * lisp/vc/ediff-init.el (ediff-has-face-support-p)
+       (ediff-current-diff-A, ediff-current-diff-B)
+       (ediff-current-diff-C, ediff-current-diff-Ancestor)
+       (ediff-fine-diff-A, ediff-fine-diff-B, ediff-fine-diff-C)
+       (ediff-fine-diff-Ancestor, ediff-even-diff-A)
+       (ediff-even-diff-B, ediff-even-diff-C)
+       (ediff-even-diff-Ancestor, ediff-odd-diff-A, ediff-odd-diff-B)
+       (ediff-odd-diff-C, ediff-odd-diff-Ancestor)
+       (ediff-with-syntax-table): Ditto.
+
+       * lisp/vc/ediff-mult.el (ediff-dir-diffs-buffer-map)
+       (ediff-setup-meta-map, ediff-set-meta-overlay): Ditto.
+
+       * lisp/vc/ediff-util.el (ediff-setup-keymap)
+       (ediff-toggle-wide-display, ediff-toggle-multiframe)
+       (ediff-toggle-use-toolbar, ediff-really-quit)
+       (ediff-good-frame-under-mouse)
+       (ediff-make-bullet-proof-overlay): Ditto.
+
+       * lisp/vc/ediff-wind.el (ediff-setup-control-frame)
+       (ediff-refresh-control-frame): Remove XEmacs compat code.
+
+2019-10-04  Stefan Monnier  <address@hidden>
+
+       * lisp/subr.el (generate-new-buffer): Move (from files.el) before first 
use
+
+       (with-temp-file, with-output-to-string): Use it.
+
+       * lisp/files.el (generate-new-buffer): Move to subr.el.
+
+2019-10-04  Dmitry Gutov  <address@hidden>
+
+       (project--vc-list-files): Optimize the Hg implementation
+
+       * lisp/progmodes/project.el (project--vc-list-files):
+       Optimize the Hg implementation.
+
+2019-10-04  Lars Ingebrigtsen  <address@hidden>
+
+       Remove some more XEmacs compat code from viper*.el
+
+       * lisp/emulation/viper-ex.el (viper-ex-read-file-name): Ditto.
+
+       * lisp/emulation/viper-init.el (viper-ms-style-os-p)
+       (viper-has-face-support-p, viper-deactivate-input-method)
+       (viper-activate-input-method, viper-set-input-method): Ditto.
+
+       * lisp/emulation/viper-util.el
+       (viper-get-saved-cursor-color-in-replace-mode)
+       (viper-get-saved-cursor-color-in-insert-mode)
+       (viper-get-saved-cursor-color-in-emacs-mode)
+       (viper-set-replace-overlay, viper-key-to-emacs-key)
+       (viper-set-unread-command-events): Ditto.
+
+       * lisp/emulation/viper.el (viper-go-away, viper-set-hooks)
+       (viper-non-hook-settings): Remove XEmacs compat code.
+
+2019-10-04  Lars Ingebrigtsen  <address@hidden>
+
+       Remove more XEmacs compat code from viper-*.el
+
+       * lisp/emulation/viper-cmd.el (viper-special-read-and-insert-char)
+       (viper-next-line-carefully, viper-next-line)
+       (viper-previous-line): Ditto.
+
+       * lisp/emulation/viper-mous.el (viper-surrounding-word)
+       (viper-parse-mouse-key): Remove XEmacs compat code.
+
+2019-10-04  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs-only code from snake.el
+
+       * lisp/play/snake.el (snake-mode): Remove XEmacs-only code.
+
+2019-10-04  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs code from tetris.el
+
+       * lisp/play/tetris.el (tetris-mode): Remove XEmacs-only code.
+
+2019-10-04  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from idlw-shell.el
+
+       * lisp/progmodes/idlw-shell.el (idlwave-shell-make-temp-file):
+       Make into obsolete alias.
+       (idlwave-shell-temp-file): Adjust callers.
+
+2019-10-04  Juanma Barranquero  <address@hidden>
+
+       Revert "Improve docstrings auto-generated by `define-minor-mode'"
+
+       This reverts commit a397fa06d18d6ae37a3a1288f269e1ae9eb3b569.
+       The original change breaks bootstrapping because of a circular 
dependency.
+
+2019-10-04  Dmitry Gutov  <address@hidden>
+
+       Use file-name-as-directory
+
+       * lisp/progmodes/project.el (project--vc-list-files): Use
+       file-name-as-directory, to be on the safe side.
+
+2019-10-03  Stefan Kangas  <address@hidden>
+
+       Remove more XEmacs compat code in cperl-mode.el
+
+       * lisp/progmodes/cperl-mode.el (condition-case, cperl-problems)
+       (cperl-problems-old-emaxen, cperl-init-faces)
+       (cperl-word-at-point): Remove more XEmacs compat code.
+
+2019-10-03  Juanma Barranquero  <address@hidden>
+
+       Improve docstrings auto-generated by `define-minor-mode'
+
+       * lisp/emacs-lisp/easy-mmode.el (easy-mmode--mode-docstring):
+       When using `easy-mmode--arg-docstring' to auto-generate a
+       docstring, refill it up to `emacs-lisp-docstring-fill-column'.
+
+2019-10-03  Stefan Kangas  <address@hidden>
+
+       More doc fixes in package.el (Bug#37544)
+
+       * lisp/emacs-lisp/package.el (package-menu-hide-low-priority)
+       (package-pinned-packages, package-load-descriptor)
+       package-archive-version, package-archive-contents)
+       package--read-archive-file, package-read-archive-contents)
+       (package-unsigned-archives, package-read-all-archive-contents)
+       (package--download-and-read-archives, package-install):
+       * lisp/subr.el (package--description-file):
+       * test/lisp/emacs-lisp/package-tests.el: Doc fixes.
+
+2019-10-03  Dmitry Gutov  <address@hidden>
+
+       Speed up project-files for Git projects
+
+       * lisp/progmodes/project.el (project-files): New method.
+       Implementation for VC projects that uses 'git ls-files' or 'hg
+       status --all' for listing.  With gratitude to Tassilo Horn who has
+       done most of the legwork and wrote the first version of the code
+       (https://lists.gnu.org/archive/html/emacs-devel/2019-10/msg00069.html).
+       (project--vc-list-files): New function, to be used by the above.
+       (project--find-regexp-in-files):
+       Silence warnings about nonexistent files.
+
+2019-10-03  Basil L. Contovounesios  <address@hidden>
+
+       Further improve button.el support for help-echo
+
+       The last change to forward-button added support for help-echo values
+       that are functions.  This patch fixes the arguments passed to such
+       functions and further adds support for help-echo values that are
+       forms (bug#37515).
+       * doc/lispref/display.texi (Button Properties): Fix description of
+       help-echo button property.
+       * lisp/button.el (button--help-echo): New function.
+       (forward-button): Use it.
+       (backward-button): Clarify help-echo reference in docstring.
+       * test/lisp/button-tests.el (button--help-echo-string)
+       (button--help-echo-form, button--help-echo-function): New tests.
+
+2019-10-03  Basil L. Contovounesios  <address@hidden>
+
+       Use lexical-binding in button.el
+
+       * lisp/button.el: Use lexical-binding.  Expand Keywords header.
+       Quote function symbols as such.  Use ;;;-comments where appropriate.
+       (button): Remove outdated commentary of defface.
+       (define-button-type, make-button, insert-button, make-text-button)
+       (insert-text-button): Clarify in docstring that PROPERTIES argument
+       is a plist.
+       (button-type-subtype-p, button-has-type-p): Do not overspecify
+       return value in docstring.
+       (button-put): Fix typo in commentary.
+
+2019-10-03  John Yates  <address@hidden>  (tiny change)
+
+       Preserve point better in hs-hide-comment-region
+
+       * lisp/progmodes/hideshow.el (hs-hide-comment-region): Preserve point
+       better when collapsing the region (bug#10856).
+
+2019-10-03  Lars Ingebrigtsen  <address@hidden>
+
+       Make lisp-do-defun do the right thing with trailing comments
+
+       * lisp/progmodes/inf-lisp.el (lisp-do-defun): Avoid including
+       trailing comments in the region (bug#7974).
+
+2019-10-03  Lars Ingebrigtsen  <address@hidden>
+
+       Fix bytecomp.el warning a different way than the previous patch
+
+       * lisp/emacs-lisp/bytecomp.el (emacs-lisp-compilation-mode-map):
+       No need to use set-keymap-parent here; `define-derived-mode' will
+       do that automatically.
+
+2019-10-03  Lars Ingebrigtsen  <address@hidden>
+
+       Fix comment in previous doc-view patch
+
+       * lisp/doc-view.el (doc-view-open-text): Comment fix.
+
+2019-10-03  Lars Ingebrigtsen  <address@hidden>
+
+       In doc-view, keep point on the equivalent page in the text version
+
+       * lisp/doc-view.el (doc-view-open-text): After opening the text
+       version, put point on the page the user was reading (bug#16541).
+
+2019-10-03  Stefan Monnier  <address@hidden>
+
+       * lisp/pcomplete.el: Mark 'pcomplete' command as obsolete
+
+       Remove redundant ':group's.
+       (pcomplete, pcomplete-help): Mark as obsolete.
+
+2019-10-03  Lars Ingebrigtsen  <address@hidden>
+
+       Mention the vc diff switches in diff-switches
+
+       * lisp/vc/diff.el (diff-switches): Mention the vc diff switches in
+       the doc string (bug#4422).
+
+2019-10-03  Alan Mackenzie  <address@hidden>
+
+       C++ Mode: Correct the fontification of const auto foo
+
+       * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): Correct a 
coding
+       error involving `and' and `or'.
+
+2019-10-03  Lars Ingebrigtsen  <address@hidden>
+
+       Touch up previous shr-dom-to-xml encoding change
+
+       * lisp/net/shr.el (shr-dom-to-xml): Include an XML declaration if
+       we're encoding the data.
+       (shr-parse-image-data): Add comment about why encoding is necessary.
+
+2019-10-03  Lars Ingebrigtsen  <address@hidden>
+
+       Fix up previous SVG-multibyte fix
+
+       * lisp/net/shr.el (shr-dom-to-xml): For SVG images, take an
+       optional charset parameter to return unibyte data.
+       (shr-parse-image-data): Use it.
+       (shr-tag-svg): Ditto.
+       (svg--wrap-svg): Revert previous kludge.
+
+2019-10-03  Alan Mackenzie  <address@hidden>
+
+       C++ Mode: Fontify correctly declarators with identifier preceded by &
+
+       The problem was bar in the following being spuriously recognised as a
+       function, and foo as a type, as though the & were a *: Foo foo (&bar);.
+
+       * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): New variable
+       got-function-name-prefix, which is set when an operator like * (but not 
&)
+       precedes the putative identifer in parentheses.  Test this variable when
+       deciding whether or not to "move the type backwards" to the previous
+       identifier.
+
+       * lisp/progmodes/cc-langs.el (c-type-decl-operator-prefix-key): New 
lang const
+       and var.
+
+2019-10-03  Michael Albinus  <address@hidden>
+
+       Fix typo in last commit
+
+2019-10-03  Michael Albinus  <address@hidden>
+
+       Further adaptions for shadowfile-tests.el
+
+       * test/lisp/shadowfile-tests.el: Change some traces.
+       (shadow-test-remote-temporary-file-directory): Adapt also remote
+       home directory.
+       (shadow--tests-cleanup): Cleanup Tramp.
+
+2019-10-02  Stefan Kangas  <address@hidden>
+
+       Don't use obsolete name in em-cmpl.el
+
+       * lisp/eshell/em-cmpl.el (eshell-complete-lisp-symbol): Update
+       reference to 'elisp-completion-at-point' from its obsolete name.
+       Reported by Carlos Pita <address@hidden>.  (Bug#31906)
+
+2019-10-02  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el (tab-bar-show): New defcustom.
+
+       * lisp/tab-bar.el (tab-bar-close-current-tab, tab-bar-close-tab):
+       (tab-bar-new-tab): Use tab-bar-show.
+
+       * doc/emacs/frames.texi (Tab Bars): Add tab-bar-show.
+
+       * lisp/speedbar.el (speedbar-mode): Set buffer-local tab-bar-mode
+       and tab-line-format to nil to not show in dedicated speedbar frame.
+
+2019-10-02  Juri Linkov  <address@hidden>
+
+       * src/w32inevt.c: Take into account FRAME_TAB_BAR_LINES.
+
+       * src/w32inevt.c (resize_event, maybe_generate_resize_event):
+       Subtract FRAME_TAB_BAR_LINES from FRAME_MENU_BAR_LINES.
+
+2019-10-02  Eli Zaretskii  <address@hidden>
+
+       Fix MS-Windows error when a directory on PATH doesn't exist
+
+       * src/w32.c (faccessat): Support more MS-Windows native error
+       codes that should be translated to ENOENT.  (Bug#37576)
+
+2019-10-02  Stefan Kangas  <address@hidden>
+
+       Don't mention server-socket-dir in FAQ
+
+       server-socket-dir is a defvar, and users should use the defcustom
+       server-name instead.
+
+       * doc/misc/efaq.texi (Using an already running Emacs process): Remove
+       details on server-socket-dir, refer to Emacs Manual.  (Bug#20675)
+
+2019-10-02  Eli Zaretskii  <address@hidden>
+
+       Fix a typo in url-http.el
+
+       * lisp/url/url-http.el (url-http-parse-headers): Fix a typo.
+       Reported by Mattias Engdegård <address@hidden>.
+
+2019-10-02  Sergio Durigan Junior  <address@hidden>
+
+       Don't add trailing whitespace when passing argument to GDB
+
+       * lisp/progmodes/gdb-mi.el (gdb-send): Don't append whitespace to
+       'gdb-continuation'.  (Bug#25488)
+
+2019-10-01  Glenn Morris  <address@hidden>
+
+       Update a substitute-command-keys test
+
+       * test/src/doc-tests.el (doc-test-substitute-command-keys):
+       Update for recent minibuffer map change.
+
+2019-10-01  Eric Abrahamsen  <address@hidden>
+
+       Gnus registry shutdown should also run the unload-hook
+
+       * lisp/gnus/gnus-registry.el (gnus-registry-clear): Clearing the
+       registry should also run the unload hooks.
+         (gnus-registry-article-marks-to-names,
+         gnus-registry-article-marks-to-chars): Now we can use a more general
+         test here.
+
+2019-10-01  Juri Linkov  <address@hidden>
+
+       Merge branch 'feature/tabs'
+
+       Remove unused code and reformat to 70 columns.
+
+2019-10-01  Lars Ingebrigtsen  <address@hidden>
+
+       Avoid bugging out on multibyte SVG data in shr
+
+       * lisp/net/shr.el (svg--wrap-svg): Ensure that the SVG data is
+       unibyte.
+
+2019-10-01  Lars Ingebrigtsen  <address@hidden>
+
+       Respect buffer-local values in comint-read-input-ring
+
+       * lisp/comint.el (comint-read-input-ring): Use the buffer-local
+       values (bug#6432).
+
+2019-10-01  Stefan Kangas  <address@hidden>
+
+       Remove old commented out XEmacs compat code from syntax.el (Bug#37524)
+
+       * lisp/emacs-lisp/syntax.el: Remove ancient commented out XEmacs
+       compat code.  This code has been commented out since 2001.
+
+2019-10-01  Stefan Kangas  <address@hidden>
+
+       Remove XEmacs compat code from url-*.el (Bug#37524)
+
+       * lisp/url/url-file.el (url-file-build-filename, url-file)
+       * lisp/url/url-privacy.el (url-setup-privacy-info): Remove XEmacs
+       compat code.
+       (url-device-type): Declare obsolete.
+
+2019-10-01  Stefan Kangas  <address@hidden>
+
+       Remove XEmacs compat code from winner.el (Bug#37524)
+
+       * lisp/winner.el (winner-active-region, winner-edges)
+       (winner-window-list, winner-sorted-window-list, winner-win-data)
+       (winner-make-point-alist): Remove XEmacs compat code.
+
+2019-10-01  Stefan Kangas  <address@hidden>
+
+       Remove XEmacs compat code from term.el (Bug#37524)
+
+       * lisp/term.el (term-mode-map, term-raw-map, term-mouse-paste):
+       Remove XEmacs compat code.
+
+2019-10-01  Lars Ingebrigtsen  <address@hidden>
+
+       Add support for Dired file marking from image-mode
+
+       * doc/emacs/files.texi (File Conveniences): Document them.
+
+       * lisp/image-mode.el (image-mode--mark-file): New function.
+       (image-mode-unmark-file, image-mode-mark-file)
+       (image-mode-copy-file-name-as-kill): New commands and keystrokes.
+
+2019-10-01  Stefan Kangas  <address@hidden>
+
+       Move url-ns.el to obsolete/
+
+       * lisp/url/url-ns.el: Move from here...
+       * lisp/obsolete/url-ns.el: ...to here.  (Bug#19822)
+
+2019-10-01  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak mouse highlights in ediff-help
+
+       * lisp/vc/ediff-help.el (ediff-set-help-overlays): Only put the
+       mouse-face overlay on the actual commands (bug#5079).  This avoids
+       a problem when you have very wide frames: The leading blank
+       portion of the buffer would get the mouse highlights.
+
+2019-10-01  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from ediff-help.el
+
+       * lisp/vc/ediff-help.el (ediff-help-region-map)
+       (ediff-set-help-overlays, ediff-help-for-quick-help): Remove
+       XEmacs compat code.
+
+2019-10-01  Lars Ingebrigtsen  <address@hidden>
+
+       Make the help page mention the customizeable global mode variable
+
+       * lisp/help-fns.el (help-fns--customize-variable): Factor out into
+       own function for reuse.
+       (help-fns--globalized-minor-mode): Use it to mention the
+       equivalent variable.
+
+       * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
+       Mark globalized minor modes as such (bug#7177).
+
+2019-10-01  Lars Ingebrigtsen  <address@hidden>
+
+       Fix build error in bytecomp.el from previous change
+
+2019-10-01  Lars Ingebrigtsen  <address@hidden>
+
+       Add a new command in *Compile-Log* buffers to re-byte-compile
+
+       * lisp/emacs-lisp/bytecomp.el (emacs-lisp-compilation-recompile):
+       New command (bug#4516).
+       (emacs-lisp-compilation--current-file)
+       (emacs-lisp-compilation-mode-map): New variables with new `g'
+       binding.
+       (byte-compile-log-file): Set variable so that `g' can recompile it.
+
+2019-10-01  Lars Ingebrigtsen  <address@hidden>
+
+       Allow 'M-<' in the minibuffer to behave more logically
+
+       * doc/lispref/minibuf.texi (Completion Commands)
+       (Text from Minibuffer): Document it.
+
+       * lisp/minibuffer.el (minibuffer-beginning-of-buffer): New command
+       (bug#3447).
+       (map): Bind it.
+
+2019-10-01  Robert Pluim  <address@hidden>
+
+       Correct some custom type typos
+
+       * lisp/image.el (image-use-external-converter):
+       * lisp/progmodes/sql.el (sql-use-indent-support):
+       * lisp/vc/add-log.el (add-log-dont-create-changelog-file): Fix
+       misspelled 'boolean custom type.
+
+       * lisp/progmodes/flymake-cc.el (flymake-cc-command): Correct custom
+       type specification.  (Bug#30990)
+
+2019-09-30  Stephen Gildea  <address@hidden>
+
+       Move undocumented time-stamp formats closer to format-time-string
+
+       * lisp/time-stamp.el (time-stamp-string-preprocess): Update some 
undocumented
+       formatting characters of time-stamp format for closer (still incomplete)
+       alignment with format-time-string.  They have displayed a warning since
+       Emacs 20 (released in 1997), so it is unlikely anyone is using them.
+
+       * test/lisp/time-stamp-tests.el: Update tests to match new expectations.
+
+2019-09-30  Stephen Gildea  <address@hidden>
+
+       time-stamp doc: recommend formats closer to format-time-string
+
+       * lisp/time-stamp.el (time-stamp-format, time-stamp-pattern): Update
+       recommended (documented) formats.  No code changes, just documentation.
+       All recommended formats are compatible at least as far back as Emacs
+       22.1 (released in 2007) and are now closer to compatibility with
+       format-time-string.
+
+       * test/lisp/time-stamp-tests.el: Update test comments to match.
+
+2019-09-30  Juanma Barranquero  <address@hidden>
+
+       Bump up max_specpdl_size to 1600
+
+       * src/eval.c (init_eval_once): Set max_specpdl_size to 1600.
+       * doc/lispref/variables.texi (Local Variables): Document it.
+
+2019-09-30  Eric Abrahamsen  <address@hidden>
+
+       Update calling convention for nnmaildir-close-server
+
+       * lisp/gnus/nnmaildir.el (nnmaildir-close-server): To take an optional
+       "defs" arg, as changed in 2712187.
+
+2019-09-30  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/mm-uu.el: Use lexical-binding and cl-defstruct
+
+       (mm-uu-type-alist): Make functions visible to byte-compiler.
+       (mm-uu-entry): New defstruct.
+       (mm-uu-configure): Use mapconcat.
+       (mm-uu-dissect): Avoid setq on `func`.
+
+2019-09-30  Eli Zaretskii  <address@hidden>
+
+       Fix quoting in gnutls.c comments and strings
+
+       * src/gnutls.c (gnutls_make_error, emacs_gnutls_global_init)
+       (Fgnutls_symmetric_encrypt, Fgnutls_symmetric_decrypt)
+       (Fgnutls_hash_mac, Fgnutls_hash_digest): Fix quoting in doc
+       strings and comments.
+
+2019-09-30  Lars Ingebrigtsen  <address@hidden>
+
+       Make doc-view error message more informative
+
+       * lisp/doc-view.el (doc-view-initiate-display): Make error message
+       clearer (bug#3827).
+
+2019-09-30  Lars Ingebrigtsen  <address@hidden>
+
+       Fix problem with non-ASCII MML description strings
+
+       * lisp/gnus/mml.el (mml-insert-tag): Quote non-ASCII parameters.
+       (mml-insert-mime-headers): Make it possible to have non-ASCII
+       descriptions (bug#37555).
+
+2019-09-30  Lars Ingebrigtsen  <address@hidden>
+
+       Mention locale-related complications in format-time-string doc string
+
+       * src/timefns.c (Fformat_time_string): Mention that the width in
+       specifiers like %NX is often in bytes, not characters (bug#20258).
+
+2019-09-30  Lars Ingebrigtsen  <address@hidden>
+
+       Fix recent mm-uu.el typo
+
+       * lisp/gnus/mm-uu.el (mm-uu-pgp-signed-extract-1): Fix typo in
+       mm-uu introduced by previous patch.
+
+2019-09-30  Eli Zaretskii  <address@hidden>
+
+       Improve description of face merging
+
+       * doc/lispref/display.texi (Displaying Faces): More accurate
+       description of merging face attributes of "underlying text".
+       (Bug#1222)
+
+2019-09-29  Lars Ingebrigtsen  <address@hidden>
+
+       Make elisp- and emacs-index-search and default to the thing under point
+
+       * lisp/menu-bar.el (elisp-index-search): Default to the thing
+       under point interactively (bug#1119).
+       (emacs-index-search): Ditto.
+       (emacs-index--prompt): New helper function.
+
+2019-09-29  Lars Ingebrigtsen  <address@hidden>
+
+       Refactor mm-decode and friends to be explicit about when errors happen
+
+       * lisp/gnus/mm-decode.el (mm-sec-status):
+       (mm-sec-error): New functions to handle decryption problems more
+       explicitly (bug#18393).
+       (mm-possibly-verify-or-decrypt): Use the `sec-error' data to
+       determine whether the operation failed or not.
+
+       * lisp/gnus/mml-smime.el: Ditto.
+
+       * lisp/gnus/mml2015.el: Used throughout.
+
+2019-09-29  Lars Ingebrigtsen  <address@hidden>
+
+       Fix rendering of degenerate tables some more in shr.el
+
+       * lisp/net/shr.el (shr--fix-tbody): New function (bug#31665).
+       (shr--fix-table): Use it to fix the
+       <table><tbody>foo</tbody></table> case.
+
+2019-09-29  Lars Ingebrigtsen  <address@hidden>
+
+       shr table fix refactoring
+
+       * lisp/net/shr.el (shr--fix-table): Refactor out into own function
+       from...
+       (shr-tag-table): ... this function.
+
+2019-09-29  Lars Ingebrigtsen  <address@hidden>
+
+       Change the commands in image-converter--converters to lists
+
+       * lisp/image/image-converter.el (image-converter--converters):
+       Change format of the commands to lists.
+       (image-converter--probe, image-converter--convert): Adjust usages.
+
+2019-09-29  Lars Ingebrigtsen  <address@hidden>
+
+       Rename the new convert-images-externally variable
+
+       * doc/emacs/files.texi (File Conveniences): Adjust documentation.
+
+       * lisp/image.el (image-use-external-converter): Rename from
+       convert-images-externally.
+
+2019-09-29  Juanma Barranquero  <address@hidden>
+
+       Silence byte-compiler warning
+
+       * lisp/obsolete/info-edit.el (ibuffer-help-buffer-modes): Defvar it.
+
+2019-09-29  Stefan Kangas  <address@hidden>
+
+       * lisp/dired-x.el (dired-virtual): Fix typo.
+
+2019-09-29  Stefan Monnier  <address@hidden>
+
+       * lisp/nxml/rng-valid.el: Use define-minor-mode
+
+       Remove redundant `:group`s.
+       (rng-validate-mode): Use define-minor-mode.
+       (rng-validate-clear): Let-bind rng-current-schema instead of passing
+       a `no-change-schema` argument.
+
+2019-09-29  Tom Willemse  <address@hidden>
+
+       Fix indenting in perl functions with doc-comments
+
+       * lisp/progmodes/perl-mode.el (perl-calculate-indent): Skip
+       doc-comments as well as comments and skip the entire comment, not just
+       the line.  (Bug#21647)
+
+2019-09-29  Lars Ingebrigtsen  <address@hidden>
+
+       Update iso8601-tests for new interface
+
+2019-09-29  Lars Ingebrigtsen  <address@hidden>
+
+       Make iso8601-parse take a FORM parameter like `decode-time'
+
+       * lisp/calendar/iso8601.el (iso8601-parse-time, iso8601-parse):
+       Take a FORM parameter like `decode-time'.
+
+2019-09-29  Lars Ingebrigtsen  <address@hidden>
+
+       Add support for sub-second ISO8601 strings
+
+       * lisp/calendar/iso8601.el (iso8601--decimalize): New function.
+       (iso8601-parse-time): Support sub-second ISO8601 times.
+
+2019-09-29  Paul Eggert  <address@hidden>
+
+       * src/timefns.c (Fdecode_time): Improve doc string.
+
+2019-09-29  Stefan Kangas  <address@hidden>
+
+       Clarify recent ert manual change
+
+       * doc/misc/ert.texi (Running Tests in Batch Mode): Say that ert test
+       selector strings are regular expressions.
+
+2019-09-29  Alan Mackenzie  <address@hidden>
+
+       Remove the compilation-arrow-overlay on a major mode 
change/reinitialization
+
+       At the same time, remove the 2-character left margin.
+
+       * lisp/progmodes/compile.el (compilation-set-up-arrow-spec-in-margin): 
put
+       compilation-tear-down-arrow-spec-in-margin onto change-major-mode-hook.
+
+2019-09-29  Mattias Engdegård  <address@hidden>
+
+       Add `rx-submatch-n' for compatibility (bug#37517)
+
+       It was an internal symbol in the old `rx' implementation, used in old
+       versions of the `flycheck' package.
+
+       * lisp/emacs-lisp/rx.el (rx-submatch-n): Alias of `rx-to-string'.
+       * test/lisp/emacs-lisp/rx-tests.el (rx-compat): Test it.
+
+2019-09-29  Lars Ingebrigtsen  <address@hidden>
+
+       Fix reverting doc-view buffers
+
+       * lisp/doc-view.el (doc-view--revert-buffer): Actually use the new
+       version of the PDF data (bug#26996).
+
+2019-09-29  Lars Ingebrigtsen  <address@hidden>
+
+       Allow customising pdf-to-text parameters
+
+       * lisp/doc-view.el (doc-view-pdf->txt): Allow customising the
+       parameters (bug#8519).
+       (doc-view-pdftotext-program-args): New variable.
+
+2019-09-29  Lars Ingebrigtsen  <address@hidden>
+
+       Try ImageMagick last for external image converters
+
+       * lisp/image/image-converter.el (image-converter--converters):
+       Move ImageMagick last in the list.
+
+2019-09-29  Mattias Engdegård  <address@hidden>
+
+       Fix linear equation system solving in Calc (bug#35374)
+
+       * lisp/calc/calcalg2.el (math-try-solve-for):
+       To solve Ax^n=0 where A is a nonzero constant and x the variable to
+       solve for, solve x^n=0 instead of solving A=0 (which obviously fails)
+       or something equally stupid.
+       * test/lisp/calc/calc-tests.el (calc-test-solve-linear-system): New.
+
+2019-09-29  Lars Ingebrigtsen  <address@hidden>
+
+       Move convert-images-externally documentation to Emacs manual
+
+       * doc/emacs/files.texi (File Conveniences): Move bit about
+       convert-images-externally to user manual from lispref manual.
+
+2019-09-29  Lars Ingebrigtsen  <address@hidden>
+
+       Remove duplicated image conversion defcustom
+
+       * lisp/image/image-converter.el (convert-external-images): Remove
+       defcustom that was accidentally not removed when moving to
+       image.el (and renamed).
+
+2019-09-29  Lars Ingebrigtsen  <address@hidden>
+
+       Add some commented-out tests for iso8601
+
+2019-09-29  Lars Ingebrigtsen  <address@hidden>
+
+       Fix up iso8601 time match regexp
+
+       * lisp/calendar/iso8601.el (iso8601--time-match): The fraction
+       mark can be either . or , and there can be arbitrarily many digits
+       in the fraction.
+
+2019-09-29  Lars Ingebrigtsen  <address@hidden>
+
+       Put new Gnus groups in the completion table
+
+       * lisp/gnus/gnus-start.el (gnus-group-change-level): Ensure that
+       all new groups are in gnus-active-hashtb so that they can be
+       completed to.
+
+2019-09-29  Lars Ingebrigtsen  <address@hidden>
+
+       Define nndraft-close-server according to new calling conventions
+
+       * lisp/gnus/nnoo.el (nnoo-define-basics-1): *-close-server now
+       takes a DEFS parameter (bug#20319).
+
+2019-09-29  Lars Ingebrigtsen  <address@hidden>
+
+       Add new Gnus summary commands and keystrokes for "unseen" navigation
+
+       * doc/misc/gnus.texi (Choosing Commands): Document them.
+       * lisp/gnus/gnus-sum.el (gnus-summary-next-unseen-article)
+       (gnus-summary-prev-unseen-article): New commands and
+       keystrokes (bug#35213).
+
+2019-09-29  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of image conversion feature
+
+       * lisp/image/image-converter.el (image-converter)
+       (image-convert-p, image-convert):
+       * lisp/image.el (convert-images-externally):
+       * etc/NEWS:
+       * doc/lispref/display.texi (Defining Images): Fix recently
+       added documentation.
+
+2019-09-28  Lars Ingebrigtsen  <address@hidden>
+
+       Remove :group from a recent defcustom
+
+       * lisp/image.el (convert-images-externally): Remove :group.
+
+2019-09-28  Lars Ingebrigtsen  <address@hidden>
+
+       If requested, use external image converters for exotic formats
+
+       * doc/lispref/display.texi (Defining Images): Document it.
+
+       * lisp/image.el (convert-images-externally): New variable.
+       (image-type): Use it.
+       (create-image): Convert images.
+
+       * lisp/image/image-converter.el (image-converter--convert): New file.
+
+2019-09-28  Stephen Gildea  <address@hidden>
+
+       Reorganize time-stamp tests
+
+       * test/lisp/time-stamp-tests.el: Group tests by when the format was or 
will be
+       documented.  Add tests for a few more undocumented, volatile formats.
+       Change AM hours test time to be a different hour from PM test time.
+       (Making these changes to the tests now will minimize test changes
+       needed later with anticipated code changes.)
+
+2019-09-28  Juri Linkov  <address@hidden>
+
+       Update documentation for tabs.
+
+       * doc/emacs/frames.texi (Tab Bars): New node.
+
+2019-09-28  Juri Linkov  <address@hidden>
+
+       * lisp/tab-line.el: Add new defcustom tab-line-close-tab-action.
+
+2019-09-28  Lars Ingebrigtsen  <address@hidden>
+
+       Expunge INBOX messages after splitting
+
+       * lisp/gnus/nnimap.el (nnimap-split-incoming-mail): Expunge
+       articles after splitting (bug#37541).
+
+2019-09-28  Lars Ingebrigtsen  <address@hidden>
+
+       Clean up nnimap-split-incoming-mail slightly
+
+       * lisp/gnus/nnimap.el (nnimap-split-incoming-mail): Don't call
+       -delete-articles on empty lists (bug#37541).
+
+2019-09-28  Lars Ingebrigtsen  <address@hidden>
+
+       Copy edit nnimap-expunge doc string
+
+       * lisp/gnus/nnimap.el (nnimap-expunge): Copy edit doc string.
+
+2019-09-28  Eli Zaretskii  <address@hidden>
+
+       Improve indexing of ELisp manual
+
+       * doc/lispref/frames.texi (Font and Color Parameters): Add index
+       entry for the 'mouse' face.
+
+2019-09-28  Stefan Kangas  <address@hidden>
+
+       Fix customizing ibuffer-help-buffer-modes
+
+       * lisp/ibuffer.el (ibuffer-help-buffer-modes)
+       * lisp/obsolete/info-edit.el (ibuffer-help-buffer-modes): Move
+       Info-edit-mode reference to obsolete file.
+
+2019-09-28  Stefan Kangas  <address@hidden>
+
+       Document ert test selectors in batch mode (Bug#37476)
+
+       * doc/misc/ert.texi (Running Tests in Batch Mode): Document test
+       selectors.
+
+2019-09-28  Stefan Kangas  <address@hidden>
+
+       Improve sorting in package list (Bug#37419)
+
+       * lisp/emacs-lisp/package.el (package-menu-mode): Allow sorting by
+       version or description.
+       (package-menu--version-predicate): Fix sorting by version.
+       (package-menu--description-predicate): Fix sorting by description.
+       (package-menu--archive-predicate): Fall back to sorting by name if
+       archive is the same.
+       (package-menu--name-predicate, package-menu--status-predicate): Add
+       doc string.
+       * etc/NEWS: Announce the above changes.
+
+2019-09-28  Eli Zaretskii  <address@hidden>
+
+       More improvements of doc strings in text-property-search.el
+
+       * lisp/emacs-lisp/text-property-search.el (text-property-search-forward)
+       (text-property-search-backward): Further improvements of doc
+       strings.  (Bug#37488)
+
+2019-09-28  Axel Svensson  <address@hidden>  (tiny change)
+
+       Update X keysym mapping
+
+       * lisp/term/x-win.el (x-keysym-table): Update the mappings
+       using current Xorg data.  (Bug#37530)
+
+2019-09-28  Stefan Kangas  <address@hidden>
+
+       Add bug reporting and link the manual on the about screen
+
+       * lisp/startup.el (fancy-about-text, normal-about-screen): Clarify
+       that "Contribute" also describes how to report bugs.  Add new link
+       "Emacs Manual".  (Bug#20697)
+
+2019-09-28  Eli Zaretskii  <address@hidden>
+
+       Fix running on MS-Windows with non-existing home directory
+
+       * lisp/startup.el (startup--xdg-or-homedot): Don't access a
+       non-existent user home directory on windows-nt systems.
+       (Bug#37536)
+
+2019-09-27  Lars Ingebrigtsen  <address@hidden>
+
+       Mention doc-view-scale-internally in the DocView manual node
+
+       * doc/emacs/misc.texi (DocView Navigation): Mention
+       doc-view-scale-internally (bug#33226).
+
+2019-09-27  Mauro Aranda  <address@hidden>
+
+       Don't discard customizations in progress when adding comments (Bug#5358)
+
+       * lisp/cus-edit.el (custom-comment-show): Add docstring.  Save the
+       widget value in the :shown-value property, before redrawing.
+       (custom-variable-modified-p): New function, to complement the return
+       values of custom-variable-state.
+       (custom-variable-state-set): Use it.
+       (custom-face-value-create): Add children to the custom-face widget
+       before setting the state, to be able to check for user edits.
+       (custom-face-state-set): Check for user edits before calling
+       custom-face-state (bug#5358).
+
+       * test/lisp/custom-tests.el
+       (custom-test-show-comment-preserves-changes): New test.
+
+2019-09-27  Nikolaus Rath  <address@hidden>
+
+       Run gnus-summary-prepare-exit-hook after flags have been updated
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-exit): Gnus message flags
+       must be set before expiration, not afterwards (bug#21071).
+
+2019-09-27  Lars Ingebrigtsen  <address@hidden>
+
+       Change the lighter in epa-info-mode
+
+       * lisp/epa.el (epa-info-mode): Change the name of the mode so that
+       it doesn't look like it's Info mode (bug#7287).
+
+2019-09-27  Lars Ingebrigtsen  <address@hidden>
+
+       gnus-thread-ignore-subject doc string clarification
+
+       * lisp/gnus/gnus-sum.el (gnus-thread-ignore-subject): Document
+       that when not ignoring subjects, sorting will not happen as
+       expected (bug#35513).
+
+2019-09-27  Lars Ingebrigtsen  <address@hidden>
+
+       Fix documentation on `C-u a' on nndiary group
+
+       * doc/misc/gnus.texi (Diary Group Parameters): Remove apparently
+       incorrect documentation about `C-u a' on nndiary groups
+       (bug#36849).
+
+2019-09-27  Lars Ingebrigtsen  <address@hidden>
+
+       Fix reversed check in mm-possibly-verify-or-decrypt
+
+       * lisp/gnus/mm-decode.el (mm-possibly-verify-or-decrypt): Fix
+       reverse check thinko that made unverified singed messages not
+       display correctly.
+
+2019-09-27  Wilson Snyder  <address@hidden>
+
+       .va/.vah/.sva/.svah now loads Verilog mode.
+
+       * lisp/files.el (auto-mode-alist): Support .va /.vah/.sva/.svah file
+       extensions to load verilog-mode for Verilog-AMS.  Reported by Shareef
+       Jalloq.
+
+2019-09-27  Stefan Monnier  <address@hidden>
+
+       * lisp/net/nsm.el: Use lexical-binding
+
+       (nsm-check-tls-connection, nsm-query): Don't pass explicitly `obarray`
+       since it's the default anyway.
+       (nsm-query, nsm-query-user, nsm-save-host): Remove redundant
+       advertised-calling-convention.
+
+2019-09-27  Eli Zaretskii  <address@hidden>
+
+       Fix display of box around images
+
+       * src/xdisp.c (face_before_or_after_it_pos): Handle correctly
+       when we are called with it->bidi_it.first_elt set.  (Bug#17114)
+
+2019-09-26  Lars Ingebrigtsen  <address@hidden>
+
+       Fix problem with changing to correct NNTP server
+
+       * lisp/gnus/nntp.el (nntp-close-server):
+       * lisp/gnus/nnimap.el (nnimap-close-server):
+       * lisp/gnus/gnus-int.el (gnus-close-server): Take an optional DEFS
+       parameter to enable switching to the correct nnoo server (bug#20319)
+       when there's two servers with the same address.
+
+2019-09-26  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).
+
+2019-09-26  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak updating of readedness marks on the IMAP server
+
+       * lisp/gnus/nnimap.el (nnimap-request-set-mark): Ensure that
+       ticking/unticking also toggles readedness on the IMAP server
+       (bug#22590).
+
+2019-09-26  Juanma Barranquero  <address@hidden>
+
+       * src/w32fns.c (Fw32_register_hot_key): Fix typo in docstring
+
+2019-09-26  Lars Ingebrigtsen  <address@hidden>
+
+       Fix nnir searching on nested Gnus topics
+
+       * lisp/gnus/nnir.el (gnus-group-make-nnir-group): On a topic line,
+       search all the groups, even in sub-topics (bug#28090).
+
+2019-09-26  Lars Ingebrigtsen  <address@hidden>
+
+       Don't hard-code the RSS structure so much in nnrss
+
+       * lisp/gnus/nnrss.el (nnrss-get-namespace-prefix): Find the URL in
+       any section in the RSS (bug#34685).
+
+2019-09-26  Lars Ingebrigtsen  <address@hidden>
+
+       Add a new `dom-search' function
+
+       * doc/lispref/text.texi (Document Object Model): Document it.
+
+       * lisp/dom.el (dom-search): New function.
+
+2019-09-26  Katsumi Yamaoka  <address@hidden>
+
+       Make forward-button support help-echo function (bug#37515)
+
+       * lisp/button.el (forward-button): Support help-echo function.
+
+2019-09-26  Juri Linkov  <address@hidden>
+
+       Include ImageMagick file name regexps in image-file-name-regexp
+
+       * lisp/image-file.el (image-file-name-regexp): If compiled with
+       ImageMagick, include file name extensions it can handle (bug#9516).
+
+2019-09-26  Lars Ingebrigtsen  <address@hidden>
+
+       mm-possibly-verify-or-decrypt should only issue errors when decrypting
+
+       * lisp/gnus/mm-decode.el (mm-possibly-verify-or-decrypt): Only do
+       the warning about failed decryption when we're handing encrypted
+       parts, not when doing verification.
+
+2019-09-26  Stefan Kangas  <address@hidden>
+
+       Add key bindings for ibuffer filter commands
+
+       * lisp/ibuffer.el (ibuffer--filter-map): Add keybinding for
+       'ibuffer-filter-chosen-by-completion' and
+       'ibuffer-filter-by-directory'.  (Bug#6847)
+
+2019-09-26  Stefan Kangas  <address@hidden>
+
+       Remove support for destructive splicing in elisp
+
+       * src/lread.c (read1): Don't handle destructive splicing in
+       backquote expressions (e.g. ",.<identifier>").  (Bug#19790)
+       (syms_of_lread): Remove Qcomma_dot.
+       * src/print.c (print_object): Don't check for Qcomma_dot.
+       * test/src/eval-tests.el
+       (eval-tests-19790-backquote-comma-dot-substitution): New test.
+       * etc/NEWS: Announce it.
+
+2019-09-26  Lars Ingebrigtsen  <address@hidden>
+
+       Fix error in display-startup-screen
+
+       * lisp/startup.el (use-fancy-splash-screens-p): Fix error in
+       display-startup-screen if create-image fails (bug#22072).
+
+2019-09-26  Stefan Kangas  <address@hidden>
+
+       Add new function to clear tags in tabulated list
+
+       * lisp/emacs-lisp/tabulated-list.el (tabulated-list-clear-all-tags):
+       New function to clear all tags from padding area in current buffer.
+       * doc/lispref/modes.texi (Tabulated List Mode): Document it.
+       * etc/NEWS: Announce it.
+
+2019-09-26  Mauro Aranda  <address@hidden>
+
+       Don't indent unrelated widgets following widget of type 'other
+
+       * lisp/wid-edit.el (widget 'other): Use \n instead of the %n escape in 
the
+       :format property of this widget.  If %n is used at the end of the
+       format string, unrelated widgets get indented.  (Bug#12533)
+
+       * test/lisp/wid-edit-tests.el (widget-test-indentation-after-%n)
+       (widget-test-indentation-after-newline)
+       (widget-test-newline-and-indent-same-widget): New tests.
+
+2019-09-26  Lars Ingebrigtsen  <address@hidden>
+
+       Make mm-view-pkcs7-verify use epg if requested
+
+       * lisp/gnus/mm-view.el (mm-view-pkcs7-verify): Respect
+       mml-smime-use (bug#18393).
+
+2019-09-26  Lars Ingebrigtsen  <address@hidden>
+
+       Make it possible to view S/MIME verified emails
+
+       * lisp/gnus/mm-decode.el (mm-possibly-verify-or-decrypt): When
+       dissecting the result, we need a header (bug#18393).
+
+       * lisp/gnus/mm-view.el (mm-view-pkcs7-verify): Insert the verified
+       string.
+
+       * lisp/gnus/smime.el (smime-verify-region): Return the verified
+       string.
+
+2019-09-26  Lars Ingebrigtsen  <address@hidden>
+
+       Fix recent gnus-rescale-image change
+
+       * lisp/gnus/gnus-util.el (gnus-rescale-image): Don't bug out on
+       non-graphical Emacs versions.
+
+2019-09-26  Mattias Engdegård  <address@hidden>
+
+       * etc/NEWS: Note removal of internal rx symbols (bug#37517)
+
+2019-09-26  Juanma Barranquero  <address@hidden>
+
+       * lisp/desktop.el (desktop-read): With argument, ask the user for 
DIRNAME.
+
+       * etc/NEWS: Document it.
+
+2019-09-26  Michael Albinus  <address@hidden>
+
+       Avoid errors in tramp-tests with a remote ksh shell
+
+       * test/lisp/net/tramp-tests.el (tramp--test-ksh-p): New defun.
+       (tramp-test41-utf8, tramp-test41-utf8-with-stat)
+       (tramp-test41-utf8-with-perl, tramp-test41-utf8-with-ls):
+       Skip, when remote shell is ksh.
+
+2019-09-25  Mattias Engdegård  <address@hidden>
+
+       Add rx extension mechanism
+
+       Add a built-in set of extension macros: `rx-define', `rx-let' and
+       `rx-let-eval'.
+
+       * lisp/emacs-lisp/rx.el (rx-constituents, rx-to-string): Doc updates.
+       (rx--builtin-symbols, rx--builtin-names, rx--local-definitions)
+       (rx--lookup-def, rx--substitute, rx--expand-template)
+       (rx--make-binding, rx--make-named-binding, rx--extend-local-defs)
+       (rx-let-eval, rx-let, rx-define): New.
+       (rx--translate-symbol, rx--translate-form): Use extensions if any.
+       (rx): Use local definitions.
+       * test/lisp/emacs-lisp/rx-tests.el (rx-let, rx-define)
+       (rx-to-string-define, rx-let-define, rx-let-eval): New.
+       * etc/NEWS (Changes in Specialized Modes and Packages):
+       * doc/lispref/searching.texi (Rx Notation, Rx Functions, Extending Rx):
+       Add node about rx extensions.
+
+2019-09-25  Mattias Engdegård  <address@hidden>
+
+       New rx implementation
+
+       * lisp/emacs-lisp/rx.el:
+       * test/lisp/emacs-lisp/rx-tests.el:
+       * doc/lispref/searching.texi (Rx Constructs):
+       Rewrite rx for correctness, clarity, and performance.  The new
+       implementation retains full compatibility and has more comprehensive
+       tests.
+
+       * lisp/emacs-lisp/re-builder.el (reb-rx-font-lock-keywords):
+       Adapt to changes in internal variables in rx.el.
+
+2019-09-25  Juri Linkov  <address@hidden>
+
+       Improve customization.
+
+       * lisp/tab-bar.el (tab-bar-new-tab-choice)
+       (tab-bar-close-button-show): New defcustoms.
+       (tab-bar-tab-name-function): New defvar.
+
+       * lisp/tab-line.el (tab-line-new-tab-choice)
+       (tab-line-close-button-show): New defcustoms.
+
+2019-09-25  Mattias Engdegård  <address@hidden>
+
+       Allow regexp-quote to return its argument
+
+       * src/search.c (Fregexp_quote): Only allocate a new string if needed.
+       * doc/lispref/searching.texi (Regexp Functions):
+       * etc/NEWS (Incompatible Lisp Changes): Document.
+
+2019-09-25  Mauro Aranda  <address@hidden>
+
+       Fix indentation of widgets (Bug#7851)
+
+       * lisp/wid-edit.el (widget--should-indent-p): New function, to decide
+       whether to indent or not.
+       (widget-checklist-value-add-item, widget-radio-add-item)
+       (widget-editable-list-format-handler)
+       (widget-editable-list-entry-create)
+       (widget-group-value-create): Use it (bug#7851).
+
+2019-09-25  Lars Ingebrigtsen  <address@hidden>
+
+       Make gnus-rescale-image work on modern Emacs versions
+
+       * lisp/gnus/gnus-util.el (gnus-rescale-image): Make this work with
+       native image transforms.
+
+2019-09-25  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of 'text-property-search-forward'
+
+       * lisp/emacs-lisp/text-property-search.el (text-property-search-forward)
+       (text-property-search-backward): Improve doc strings.  (Bug#37488)
+
+2019-09-24  Juri Linkov  <address@hidden>
+
+       Small fixes.  Bind [tab-line mouse-1] to mouse-select-window.
+
+       Revert an attempt to implement a non‐native tab bar on NS.
+
+2019-09-24  Lars Ingebrigtsen  <address@hidden>
+
+       Make ImageMagick multi-image size calculations work for .ico files
+
+       * src/image.c (imagemagick_load_image): Compute image sizes
+       correctly in multi-image .ico files and the like (bug#18333).
+
+2019-09-24  Lars Ingebrigtsen  <address@hidden>
+
+       Slight shr-put-image clean up
+
+       * lisp/net/shr.el (shr-put-image): Use image-multi-frame-p
+       directly, and remove outdated comments (image-multi-frame-p
+       returns the delay).
+
+2019-09-24  Alan Mackenzie  <address@hidden>
+
+       New edebug-spec, nested-backquote-form.  This fixes bug #31090
+
+       * lisp/emacs-lisp/edebug.el: (nested-backquote-form): a new edebug-spec 
which
+       handles nested backquote structures without a , or ,@ "between" the 
outer and
+       inner backquotes.
+       (backquote-form): Use nested-backquote-form.
+
+2019-09-24  Lars Ingebrigtsen  <address@hidden>
+
+       Make --with-imagemagick bug out if there's no support for it
+
+       * configure.ac (HAVE_IMAGEMAGICK): Stop configuration if the user
+       has said --with-imagemagick, but there's no support for it
+       (bug#24455).
+
+2019-09-24  Pip Cet  <address@hidden>
+
+       Allow a :stride argument so XBM boolvecs are in the right format.
+
+       * src/image.c (xbm_image_p): Explicitly specify the right stride if a
+       bool vector is used as argument.
+       * doc/lispref/display.texi (XBM Images): Describe bool vectors
+       accurately.
+       * etc/NEWS: Document the change (bug#36337).
+
+2019-09-24  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-sh.el (tramp-get-remote-stat): Ban "stat" on Solaris.
+
+2019-09-24  Noah Swainland  <address@hidden>  (tiny change)
+
+       (calc): Fix link in doc string
+
+       * lisp/calc/calc.el (calc): Fix link in doc string (bug#37500).
+
+2019-09-24  Lars Ingebrigtsen  <address@hidden>
+
+       Allow controlling when to send cookies when retrieving images in shr
+
+       * lisp/net/shr.el (shr--use-cookies-p): New function.
+       (shr-tag-img): Use it.
+       (shr-cookie-policy): New variable.
+       (shr-save-contents): Use cookies.
+
+       * doc/misc/eww.texi (Advanced): Document it.
+
+2019-09-24  Robert Pluim  <address@hidden>
+
+       Document how to listen on all interfaces in the Elisp manual
+
+       * doc/lispref/processes.texi (Network Processes): Explain how to
+       listen on all interfaces.
+
+2019-09-24  Lars Ingebrigtsen  <address@hidden>
+
+       Allow url-insert-file-contents to work on 304 responses
+
+       * lisp/url/url-http.el (url-http--insert-file-helper): If the
+       server answers 304 Not modified, then that's not an error
+       (bug#26063).
+
+2019-09-24  Lars Ingebrigtsen  <address@hidden>
+
+       Clean up url-parse-args slightly
+
+       * lisp/url/url-util.el (url-parse-args): Don't leave temporary
+       buffer behind.  Clean up slightly.
+
+2019-09-24  Lars Ingebrigtsen  <address@hidden>
+
+       Fix old problem with HTTPS HTTP 0.9 sentinels
+
+       * lisp/url/url-http.el (url-http-end-of-document-sentinel): Pass
+       on the tls parameter if we have HTTPS (bug#14983).
+
+2019-09-24  Eli Zaretskii  <address@hidden>
+
+       Resurrect support for negative frame geometry parameters on MS-Windows
+
+       * src/w32fns.c (my_create_window): Avoid assertion violations
+       in XFIXNUM when the 'top' or 'left' frame parameters are
+       neither fixnums nor 'unbound', in which case
+       f->size_hint_flags are set by gui_figure_window_size.
+       (Bug#37415)
+
+2019-09-23  Lars Ingebrigtsen  <address@hidden>
+
+       Allow scrolling the NSM window
+
+       * lisp/net/nsm.el (nsm-query-user): Allow moving
+       backwards/forwards in the NSM buffer if the window is too small to
+       show all the details (bug#28069).
+
+2019-09-23  Wilson Snyder  <address@hidden>
+
+       Verilog-Mode collected updates.
+
+       * lisp/progmodes/verilog-mode.el (verilog-auto-inst-param): Add regexp
+       paramter to AUTOINSTPARAM to select which parameters to export.  
Reported
+       by Vish S.
+       (verilog-build-defun-re): Fix `verilog-goto-defun' to find automatic
+       function/tasks, bug1492.  Reported by Enze Chi.
+       (verilog-preprocessor): Update default.
+
+2019-09-23  Lars Ingebrigtsen  <address@hidden>
+
+       Rename "dumbquotes" to "smartquotes" in Gnus
+
+       * doc/misc/gnus.texi (Article Washing): Adjust documentation.
+
+       * etc/refcards/gnus-refcard.tex (subsection*{Notes}): Ditto
+
+       * lisp/gnus/gnus-art.el (gnus-article-smartquotes-map): Rename
+       from gnus-article-dumbquotes-map and add obsolete alias.
+       (article-treat-smartquotes): Ditto.
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-make-menu-bar): Adjust menus.
+
+2019-09-23  Jan Beich  <address@hidden>
+
+       mml-smime-openssl-sign): Use all the keys
+
+       * lisp/gnus/mml-smime.el (mml-smime-openssl-sign): Use all the
+       keys in `smime-keys' for this identifier (bug#17780).
+
+2019-09-23  Lars Ingebrigtsen  <address@hidden>
+
+       Adjust exif-tests.el to new interface
+
+2019-09-23  Lars Ingebrigtsen  <address@hidden>
+
+       Fix regression in mm-possibly-verify-or-decrypt by previous patch
+
+       * lisp/gnus/mm-decode.el (mm-possibly-verify-or-decrypt): Remove 
debugging
+
+2019-09-23  Lars Ingebrigtsen  <address@hidden>
+
+       Fix regression in mm-possibly-verify-or-decrypt by previous patch
+
+       * lisp/gnus/mm-decode.el (mm-possibly-verify-or-decrypt): Be less
+       strict about what's considered a success.
+
+2019-09-23  Lars Ingebrigtsen  <address@hidden>
+
+       Fix S/MIME continuation header when sending
+
+       * lisp/gnus/mml-smime.el (mml-smime-epg-sign): Fix continuation
+       header.
+
+2019-09-23  Lars Ingebrigtsen  <address@hidden>
+
+       make-network-process doc clarification
+
+       * src/process.c (Fmake_network_process): Further doc clarification
+       for listening on "::".
+
+2019-09-23  Paul Eggert  <address@hidden>
+
+       Bring back mention of NNTP gmane
+
+       Problem reported by Michael Albinus at:
+       https://lists.gnu.org/r/emacs-devel/2019-09/msg00519.html
+       * admin/notes/emba: Reintroduce mention of nttp+news.gmane.org,
+       since that still works.
+
+2019-09-23  Alan Third  <address@hidden>
+           martin rudalics  <address@hidden>
+
+       Fix GNUstep build
+
+       * src/nsfont.m (nsfont_draw): Change type to match.
+
+2019-09-23  Lars Ingebrigtsen  <address@hidden>
+
+       Fix cedet compilation warning
+
+       * lisp/cedet/semantic/db.el (semanticdb-dirty-p): Fix compilation
+       warning by moving to after definition.
+
+2019-09-23  Lars Ingebrigtsen  <address@hidden>
+
+       Update example in the Mail Aliases node of lispintro
+
+       * doc/lispintro/emacs-lisp-intro.texi (Mail Aliases): Change
+       example to use Message mode, since that's the default for `C-x m'
+       now (bug#13855).
+
+2019-09-23  Lars Ingebrigtsen  <address@hidden>
+
+       Make mm-possibly-verify-or-decrypt pass decryption error
+
+       * lisp/gnus/mm-decode.el (mm-possibly-verify-or-decrypt): If
+       there's an error, report the error back in a new part (bug#25649).
+
+2019-09-23  Lars Ingebrigtsen  <address@hidden>
+
+       * lisp/dired-aux.el (dired-copy-file-recursive): Make prompt clearer.
+
+2019-09-23  Lars Ingebrigtsen  <address@hidden>
+
+       Don't bug out on invalid addresses in mml-secure-check-user-id
+
+       * lisp/gnus/mml-sec.el (mml-secure-check-user-id): Don't bug out
+       on invalid addresses (bug#33613).
+
+2019-09-23  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak how much <sup>/<sub> raises/lowers text in shr
+
+       * lisp/net/shr.el (shr-tag-sup, shr-tag-sub): Raising by 0.5 gives
+       very ugly displays.  0.2 seems sufficient for legibility.
+
+2019-09-23  Mattias Engdegård  <address@hidden>
+
+       Fix trig simplification crash (bug#33052)
+
+       * lisp/calc/calc-alg.el (calcFunc-sec, calcFunc-csc, calcFunc-cot):
+       Check that `math-known-sin' and `math-known-tan' succeeded before
+       using their value in arithmetic.
+       * test/lisp/calc/calc-tests.el (calc-test-trig): Add regression tests.
+       Backport from master.
+
+2019-09-23  Lars Ingebrigtsen  <address@hidden>
+
+       Signal errors if EPA can't verify data
+
+       * lisp/epa.el (epa-verify-region): Signal an error if the region
+       couldn't be verified (bug#14720).
+       (epa-verify-file): Say that the file couldn't be verified instead
+       of just "...done".
+
+2019-09-23  Lars Ingebrigtsen  <address@hidden>
+
+       Make "Show Hidden Headers" in Message buffers more obvious
+
+       * lisp/gnus/message.el (message-widen-and-recenter): New command
+       to ensure that we show most of the headers (bug#23252).
+       (message-mode-field-menu): Use it.
+
+2019-09-23  Lars Ingebrigtsen  <address@hidden>
+
+       Add a NEWS entry for message citation levels
+
+2019-09-23  Hong Xu  <address@hidden>
+
+       Add different faces for different citation levels in Message mode
+
+       * lisp/gnus/message.el (message-font-lock-keywords)
+       (message-font-lock-make-cited-text-matcher): Add support for
+       different faces for different citation levels.  The faces are
+       defined in the faces named `message-cited-text-N': N of the
+       Mth citation level will be M mod 4.
+       (message-cited-text-1, message-cited-text-2)
+       (message-cited-text-3, message-cited-text-4): Add customization
+       for the faces of 4 different citation level.  In the future, the
+       number of faces may increase, as the code is flexible enough to
+       automatically deal with that.
+       (message-cite-level-function): Add a function to customize the
+       determination of cite levels given the prefix of the cited text
+       (bug#25022).
+
+2019-09-23  Lars Ingebrigtsen  <address@hidden>
+
+       Add an `authinfo-hidden' variable
+
+       * lisp/auth-source.el (authinfo-hidden): New variable.
+       (authinfo--hide-passwords): Use it to allow users to decide what
+       to hide.
+
+2019-09-23  nitishch  <address@hidden>  (tiny change)
+
+       "]" is not a standard citation prefix character
+
+       * lisp/mail/sendmail.el (mail-citation-prefix-regexp): Don't
+       regard "]" as a citation prefix character (bug#25150).  This
+       allows some motion commands (like forward-sexp) to behave more as
+       expected in Message mode buffers.
+
+2019-09-23  Mattias Engdegård  <address@hidden>
+
+       Fix linear equation system solving in Calc (bug#35374)
+
+       * lisp/calc/calcalg2.el (math-try-solve-for):
+       To solve Ax^n=0 where A is a nonzero constant and x the variable to
+       solve for, solve x^n=0 instead of solving A=0 (which obviously fails)
+       or something equally stupid.
+       * test/lisp/calc/calc-tests.el (calc-test-solve-linear-system): New.
+
+2019-09-23  Lars Ingebrigtsen  <address@hidden>
+
+       Keep a cache of encoded Message contents to avoid re-GPG-in data
+
+       * lisp/gnus/gnus-msg.el (gnus-inews-do-gcc): Use it to avoid
+       re-encoding.
+
+       * lisp/gnus/message.el (message-encoded-mail-cache): New variable.
+
+       * lisp/gnus/message.el (message-send-mail): Store encoded.
+       (message--cache-encoded): New function.
+       (message-do-fcc): Store encoded (bug#25155).
+
+2019-09-23  Lars Ingebrigtsen  <address@hidden>
+
+       * lisp/gnus/message.el (message-send-mail): Remove misleading comment.
+
+2019-09-23  Juanma Barranquero  <address@hidden>
+
+       Fix arg name of `text-property-search-{forward|backward}' (bug#37488)
+
+       * lisp/emacs-lisp/text-property-search.el
+       (text-property-search-forward, text-property-search-backward):
+       Rename arg NOT-IMMEDIATE to NOT-CURRENT.  Also fix docstring.
+
+2019-09-23  Paul Eggert  <address@hidden>
+
+       Update some URLs
+
+       This mostly changes http: to https: in URLs.  It also updates
+       some URLs that have moved, removes some URLs that no longer
+       work, recommends against using procmail (procmail.org no
+       longer works), and removes some mentions of the
+       no-longer-existing Gmane, LPF and VTW.
+       It doesn't update all URLs, just the ones I had time for.
+       * GNUmakefile (help):
+       * admin/admin.el (manual-doctype-string):
+       * admin/charsets/Makefile.in (${charsetdir}/ALTERNATIVNYJ.map):
+       * admin/charsets/mapconv:
+       * lisp/net/soap-client.el (soap-create-envelope):
+       * lisp/org/org.el (org-doi-server-url):
+       * lisp/textmodes/bibtex.el (bibtex-generate-url-list):
+       Prefer https: to http: un URLs.
+
+2019-09-22  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-09-22 Update some URLs
+       2019-09-15 fcntl-h: fix compilation error of creat.c on MSVC
+       2019-09-15 creat: new module
+       2019-09-15 access: new module
+       2019-09-09 Add option to assume best, not worst, when cross-compiling.
+       * build-aux/config.guess, build-aux/config.sub, doc/misc/texinfo.tex:
+       * lib/careadlinkat.c, lib/careadlinkat.h, lib/count-leading-zeros.h:
+       * lib/count-trailing-zeros.h, lib/diffseq.h, lib/fcntl.in.h:
+       * lib/ftoastr.c, lib/get-permissions.c:
+       * lib/ieee754.in.h, lib/inttypes.in.h, lib/mktime.c, lib/open.c:
+       * lib/pathmax.h, lib/pipe2.c, lib/stddef.in.h, lib/stdint.in.h:
+       * lib/stdlib.in.h, lib/str-two-way.h, lib/string.in.h, lib/time.in.h:
+       * lib/timegm.c, lib/unistd.in.h, m4/canonicalize.m4:
+       * m4/extern-inline.m4, m4/fcntl_h.m4, m4/fdopendir.m4:
+       * m4/getgroups.m4, m4/getopt.m4, m4/gettimeofday.m4:
+       * m4/gnulib-common.m4, m4/largefile.m4:
+       * m4/lstat.m4, m4/memmem.m4, m4/mktime.m4, m4/nocrash.m4, m4/open.m4:
+       * m4/pselect.m4, m4/putenv.m4, m4/readlink.m4, m4/regex.m4:
+       * m4/symlink.m4, m4/unistd_h.m4, m4/utimens.m4, m4/utimes.m4:
+       Copy from Gnulib.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * m4/open-slash.m4: New file, copied from Gnulib.
+
+2019-09-22  Stephen Gildea  <address@hidden>
+
+       Expand time-stamp unit tests to cover all formatting options
+
+       * test/lisp/time-stamp-tests.el: Expand unit tests to cover all 
formatting options.
+       These tests validate time-stamp-pattern formatting that has existed
+       since at least Emacs 22 (released in 2007).  The tests cover both
+       documented behavior and behavior implemented to support future 
migrations.
+
+       * test/lisp/time-stamp-tests.el (time-stamp-string): Add a second 
argument (TIME) to
+       open a testing seam.  Have the unit tests call this public function.
+
+       * test/lisp/time-stamp-tests.el (time-stamp-string, 
time-stamp-string-preprocess):
+       Remove the second pass through time-string--format.  (Previously both
+       functions called it.)  It was used only to handle "%", but this is now
+       handled by having time-stamp-string-preprocess not double it.
+       Not doubling the "%" in time-stamp-string-preprocess fixes the padding
+       of "%2%", which was discovered by the new unit tests to be wrong.
+
+2019-09-22  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify `debug' doc string
+
+       * lisp/emacs-lisp/debug.el (debug): Mention that inhibit-redisplay
+       will inhibit the function.
+
+2019-09-22  Lars Ingebrigtsen  <address@hidden>
+
+       Make Message warn about invalid addresses
+
+       * lisp/gnus/message.el (message-check-recipients): Warn about
+       invalid email addresses (bug#32639).
+
+2019-09-22  Lars Ingebrigtsen  <address@hidden>
+
+       Remove Gnus posting style reference to message-reply-headers
+
+       * doc/misc/gnus.texi (Posting Styles): Remove bit about
+       message-reply-headers, because it has never worked.
+
+2019-09-22  Lars Ingebrigtsen  <address@hidden>
+
+       gnus-use-atomic-windows should default to nil
+
+       * lisp/gnus/gnus-win.el (gnus-use-atomic-windows): Default to nil.
+
+2019-09-22  Lars Ingebrigtsen  <address@hidden>
+
+       message-reply-headers doc fix
+
+       * doc/misc/gnus.texi (Posting Styles): Update the type of the
+       message-reply-headers object.
+
+2019-09-22  Lars Ingebrigtsen  <address@hidden>
+
+       mailclient can't send attachments
+
+       * lisp/mail/mailclient.el (mailclient-send-it): Warn about trying
+       to send attachments (bug#34992).
+
+2019-09-22  Juri Linkov  <address@hidden>
+
+       Improve customizability and better tab separators.
+
+       * lisp/tab-bar.el (tab-bar-tabs-function): New defvar.
+
+       * lisp/tab-line.el (tab-line-tab-name-function)
+       (tab-line-tabs-function): New defvars.
+
+2019-09-22  Jackson Ray Hamilton  <address@hidden>
+
+       Ignore comments and strings when recognizing JSX
+
+       * lisp/progmodes/js.el (js-syntax-propertize): Ignore comments and
+       strings.
+       * test/manual/indent/jsx-comment-string.jsx: New test.
+
+2019-09-22  Jackson Ray Hamilton  <address@hidden>
+
+       Make js-jsx-regexps case-sensitive
+
+       The regexp in this list used a capitalized “React” because it actually
+       should be capitalized like that.  Otherwise, the following code would
+       produce a false positive match: import Thing from './react/Thing'
+
+       * lisp/progmodes/js.el (js-jsx-regexps): Update docstring.
+       (js-jsx--detect-and-enable): Match case-sensitively when determining
+       whether JSX should be enabled.
+
+2019-09-22  Paul Eggert  <address@hidden>
+
+       Avoid crashes when casifying noncontiguous regions
+
+       This is a followon fix for Bug#37477.
+       * lisp/simple.el (region-extract-function):
+       Use setq here, since the var is now defined in C code.
+       * src/casefiddle.c (casify_pnc_region): New function.
+       (Fupcase_region, Fdowncase_region, Fcapitalize_region)
+       (Fupcase_initials_region): Use it.
+       (Fupcase_initials_region): Add region-noncontiguous-p flag
+       for consistency with the others.  All uses changed.
+       (syms_of_casefiddle): Define Qbounds, Vregion_extract_function.
+       * src/insdel.c (prepare_to_modify_buffer_1):
+       * src/keyboard.c (command_loop_1):
+       Use Vregion_extraction_function.
+       * src/insdel.c (syms_of_insdel): No need to define
+       Qregion_extract_function.
+       * test/src/casefiddle-tests.el (casefiddle-oldfunc): New var.
+       (casefiddle-loopfunc, casefiddle-badfunc): New functions.
+       (casefiddle-invalid-region-extract-function): New test.
+
+2019-09-22  Stefan Monnier  <address@hidden>
+
+       * lisp/help-fns.el: Fix missing dependency
+
+2019-09-22  Lars Ingebrigtsen  <address@hidden>
+
+       Remove references to domain that no longer exists
+
+       * doc/misc/gnus-faq.texi (FAQ 7-1):
+       * doc/misc/gnus.texi (Maildir):
+       * lisp/gnus/nnmaildir.el: qmail.org no longer exists.
+
+2019-09-22  Lars Ingebrigtsen  <address@hidden>
+
+       Fix "password" detection in authinfo mode
+
+       * lisp/auth-source.el (authinfo--hide-passwords): Ensure that we
+       only hit actual "password" entries and not "foo-password" and the
+       like.
+
+2019-09-22  Lars Ingebrigtsen  <address@hidden>
+
+       Fix warning about @xref in parenthesis
+
+       * doc/misc/gnus.texi (Window Layout): Use @pxref in parentheses.
+
+2019-09-22  Lars Ingebrigtsen  <address@hidden>
+
+       Note that image-mode automatically rotates
+
+2019-09-22  Lars Ingebrigtsen  <address@hidden>
+
+       Automatically rotate images in image-mode based on Exif data
+
+       * lisp/image-mode.el (image-toggle-display-image): Get the
+       orientation from the Exif data, if any.
+
+2019-09-22  Lars Ingebrigtsen  <address@hidden>
+
+       Adjust the exif.el interface functions
+
+       * lisp/image/exif.el (exif-parse-buffer): New function.
+       (exif-orientation): Ditto.
+       (exif-error): New error symbol, and adjust all error signalling to
+       only use that signal.
+
+2019-09-22  Andreas Schwab  <address@hidden>
+
+       Fix compilation with CHECK_STRUCTS
+
+       * src/pdumper.c (dump_buffer): Update hash of struct buffer.
+
+2019-09-21  Eric Abrahamsen  <address@hidden>
+
+       New option for making Gnus window layouts atomic
+
+       * lisp/gnus/gnus-win.el (gnus-use-atomic-windows): New boolean
+         customization option.
+         (gnus-configure-windows): When removing old window layouts, check
+         for and remove atomicity.
+         (gnus-configure-windows): When gnus-use-atomic-windows is non-nil,
+         make Gnus window layouts atomic.
+       * doc/misc/gnus.texi (Window Layout): Document.
+
+2019-09-21  Stefan Kangas  <address@hidden>
+
+       * src/fns.c (Fbuffer_hash): Improve doc string.
+
+2019-09-21  Juri Linkov  <address@hidden>
+
+       Support rectangular regions in capitalize-region and capitalize-dwim.
+
+       * lisp/simple.el (capitalize-dwim): Add arg region-noncontiguous-p
+       in capitalize-region call.
+
+       * src/casefiddle.c (Fcapitalize_region): Add arg region-noncontiguous-p.
+       If non-nil, operate on multiple chunks.  (Bug#37477)
+       (Fdowncase_region): Use builtin symbol Qregion_extract_function
+       rather than calling intern.
+
+2019-09-21  Juri Linkov  <address@hidden>
+
+       Take into account FRAME_TAB_BAR height in more places.
+
+       * src/dispnew.c (handle_window_change_signal, init_display_interactive):
+       * src/frame.c (make_terminal_frame, Fmake_terminal_frame):
+       * src/keyboard.c (Fsuspend_emacs):
+       * src/term.c (Fresume_tty):
+       * src/xterm.c (x_check_fullscreen):
+       Subtract FRAME_TAB_BAR_LINES.
+
+       * src/xterm.c (x_new_font): Set FRAME_TAB_BAR_HEIGHT.
+       (x_new_font, x_check_fullscreen, x_set_window_size_1)
+       (x_set_window_size, x_wm_set_size_hint): Add FRAME_TABBAR_HEIGHT.
+
+2019-09-21  Eric Abrahamsen  <address@hidden>
+
+       Use eieio-object-p, not obsolete object-p
+
+       Continued fixes for a81223aeaa
+
+       * lisp/gnus/gnus-registry.el (gnus-registry-article-marks-to-names,
+         gnus-registry-article-marks-to-chars): object-p is obsolete.
+
+2019-09-21  Stefan Kangas  <address@hidden>
+
+       Several doc fixes in package.el
+
+       * lisp/emacs-lisp/package.el (top-level)
+       (package-check-signature, package--from-builtin)
+       (package-desc-full-name, package-desc-suffix)
+       (package-desc--keywords, package--bi-desc)
+       (package-process-define-package, package-archive-base)
+       (package-install-from-archive, package-install-from-buffer)
+       (package-install-file, package-autoremove, describe-package-1)
+       (package-install-button-action, package-delete-button-action)
+       (package-keyword-button-action, package-make-button)
+       (package--print-email-button, package-list-unversioned)
+       (package--emacs-version-list, package-menu-toggle-hiding)
+       (package-hidden-regexps, package-menu-hide-package)
+       (package-menu-get-status, package-menu--find-upgrades)
+       (package-menu--post-refresh): Doc fixes.  (Bug#37410)
+
+2019-09-21  Paul Eggert  <address@hidden>
+
+       Revert too-picky file-access tests
+
+       Problem reported by Andreas Schwab (Bug#37475).
+       * doc/lispref/files.texi (Writing to Files)
+       (Testing Accessibility, Kinds of Files):
+       Document that accessibility and file-type predicates return nil
+       if there is trouble determining accessibility or type.
+       * etc/NEWS: Adjust, and list the affected primitives.
+       * src/callproc.c (init_callproc): Go back to Ffile_exists_p.
+       * src/fileio.c (PICKY_EACCES, file_test_errno):
+       Remove.  All uses removed.
+       (Ffile_name_case_insensitive_p, Ffile_exists_p, Ffile_symlink_p)
+       (Ffile_directory_p, Ffile_regular_p): Document that these
+       functions return nil if there is trouble.
+       (Ffile_name_case_insensitive_p, check_file_access)
+       (Ffile_writable_p, Ffile_symlink_p, Ffile_directory_p)
+       (Ffile_accessible_directory_p, Ffile_regular_p)
+       * src/lread.c (Fload):
+       Go back to treating trouble in determining the answer as if the
+       file were missing.
+       * src/fileio.c (Ffile_newer_than_file_p): Use file_attribute_errno
+       not file_test_errno, since returning nil is not appropriate when
+       there are two files to test; e.g., in the rare cases where both
+       file timestamps have overflowed then neither t nor nil is correct.
+
+2019-09-21  Noam Postavsky  <address@hidden>
+
+       Remove lisp/erc/ file-local indent-tabs-mode settings
+
+       * lisp/erc/erc-autoaway.el:
+       * lisp/erc/erc-backend.el:
+       * lisp/erc/erc-button.el:
+       * lisp/erc/erc-compat.el:
+       * lisp/erc/erc-dcc.el:
+       * lisp/erc/erc-fill.el:
+       * lisp/erc/erc-ibuffer.el:
+       * lisp/erc/erc-identd.el:
+       * lisp/erc/erc-imenu.el:
+       * lisp/erc/erc-join.el:
+       * lisp/erc/erc-list.el:
+       * lisp/erc/erc-log.el:
+       * lisp/erc/erc-match.el:
+       * lisp/erc/erc-menu.el:
+       * lisp/erc/erc-netsplit.el:
+       * lisp/erc/erc-networks.el:
+       * lisp/erc/erc-notify.el:
+       * lisp/erc/erc-page.el:
+       * lisp/erc/erc-pcomplete.el:
+       * lisp/erc/erc-replace.el:
+       * lisp/erc/erc-ring.el:
+       * lisp/erc/erc-services.el:
+       * lisp/erc/erc-sound.el:
+       * lisp/erc/erc-speedbar.el:
+       * lisp/erc/erc-stamp.el:
+       * lisp/erc/erc-track.el:
+       * lisp/erc/erc-truncate.el:
+       * lisp/erc/erc-xdcc.el:
+       * lisp/erc/erc.el: Remove indent-tabs-mode setting, so that we follow
+       Emacs' global indent-tabs-mode=nil setting (and much of the
+       indentation in these fails is already spaces anyway).  Also remove
+       tab-width=8 settings, since those are redundant with the setting in
+       the top-level .dir-locals.el.
+
+2019-09-21  Lars Ingebrigtsen  <address@hidden>
+
+       Fix some commentary typos in exif.el
+
+       * lisp/image/exif.el (exif--parse-exif-chunk)
+       (exif--parse-directory): Commentary typo fixes.
+
+2019-09-21  Lars Ingebrigtsen  <address@hidden>
+
+       Add an Exif parsing library
+
+       * lisp/image/exif.el: New file (bug#23070).
+
+       * test/lisp/image/exif-tests.el: Add some basic tests.
+
+2019-09-21  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Fix wrong fontification of FOO in ASSERT (FOO && !BAR)
+
+       * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): Don't 
recognize the
+       construct in CASE 18, unless additionally at-decl-end is set.
+
+2019-09-21  Lars Ingebrigtsen  <address@hidden>
+
+       Fix two ` characters in NEWS
+
+2019-09-21  Lars Ingebrigtsen  <address@hidden>
+
+       Hide passwords in .authinfo and .netrc files
+
+       * lisp/auth-source.el (authinfo-mode): New mode (bug#28785).
+       (authinfo--hide-passwords, authinfo--toggle-display): New functions.
+
+       * lisp/files.el (auto-mode-alist): Use authinfo-mode for .authinfo
+       and .netrc files.
+
+2019-09-21  Lars Ingebrigtsen  <address@hidden>
+
+       Allow reveal.el to toggle `display' properties
+
+       * lisp/reveal.el (reveal-open-new-overlays): Allow also toggling
+       `displa' overlay properties (bug#28785).
+
+2019-09-21  Lars Ingebrigtsen  <address@hidden>
+
+       Mention image caching in the `image-size' doc string
+
+       * src/image.c (Fimage_size): Mention that this function caches
+       images, and what to do about that (bug#33275).
+
+2019-09-21  Lars Ingebrigtsen  <address@hidden>
+
+       Mention how to listen to all interfaces in make-network-process
+
+       * src/process.c (Fmake_network_process): Mention how to listen to
+       all interfaces (bug#34617).
+
+2019-09-21  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-handle-file-modes): Check for nil 
file-attributes.
+
+2019-09-21  Eli Zaretskii  <address@hidden>
+
+       * lisp/completion.el (completion-kill-region): Doc fix.
+
+2019-09-20  Eric Abrahamsen  <address@hidden>
+
+       Fix to a81223aeaa
+
+       * lisp/gnus/gnus-registry.el (gnus-registry-article-marks-to-chars):
+         (gnus-registry-article-marks-to-names): The registry is an object,
+         not a hash table.
+
+2019-09-20  Lars Ingebrigtsen  <address@hidden>
+
+       Allow the user to specify Content-type in Message mode
+
+       * lisp/gnus/message.el (message-encode-message-body): Pass in the
+       content type if the user has given one.
+
+       * lisp/gnus/mml.el (mml-parse-1): Remove bogus peek at
+       Content-type (there are no headers here)  (bug#36527).
+
+       * lisp/gnus/mml.el (mml-generate-mime): Respect that.
+
+2019-09-20  Lars Ingebrigtsen  <address@hidden>
+
+       Move describe-face to the new help-fns machinery
+
+       * lisp/help-fns.el (describe-face): Move to here from faces.el and
+       split up (bug#36670).
+       (help-fns--face-custom-version-info):
+       (help-fns--face-attributes): Factored out into own functions.
+       (help-fns-describe-face-functions): New variable.
+
+       * lisp/emacs-lisp/subr-x.el (when-let): Add autoload cookie.
+
+2019-09-20  Juanma Barranquero  <address@hidden>
+
+       lisp/*.el: Fix typos and other trivial doc fixes
+
+       * lisp/allout-widgets.el (allout-widgets-auto-activation)
+       (allout-current-decorated-p):
+       * lisp/auth-source.el (auth-source-protocols):
+       * lisp/autorevert.el (auto-revert-set-timer):
+       * lisp/battery.el (battery-mode-line-limit):
+       * lisp/calc/calcalg3.el (math-map-binop):
+       * lisp/calendar/cal-dst.el (calendar-dst-find-startend):
+       * lisp/calendar/cal-mayan.el (calendar-mayan-long-count-to-absolute):
+       * lisp/calendar/calendar.el (calendar-date-echo-text)
+       (calendar-generate-month, calendar-string-spread)
+       (calendar-cursor-to-date, calendar-read, calendar-read-date)
+       (calendar-mark-visible-date, calendar-dayname-on-or-before):
+       * lisp/calendar/diary-lib.el (diary-ordinal-suffix):
+       * lisp/cedet/ede/autoconf-edit.el (autoconf-new-program)
+       (autoconf-find-last-macro, autoconf-parameter-strip):
+       * lisp/cedet/ede/config.el (ede-target-with-config-build):
+       * lisp/cedet/ede/linux.el (ede-linux--detect-architecture)
+       (ede-linux--get-architecture):
+       * lisp/cedet/semantic/complete.el (semantic-collector-calculate-cache)
+       (semantic-displayer-abstract, semantic-displayer-point-position):
+       * lisp/cedet/semantic/format.el (semantic-format-face-alist)
+       (semantic-format-tag-short-doc):
+       * lisp/cedet/semantic/fw.el (semantic-find-file-noselect):
+       * lisp/cedet/semantic/idle.el (semantic-idle-scheduler-work-idle-time)
+       (semantic-idle-breadcrumbs-display-function)
+       (semantic-idle-breadcrumbs-format-tag-list-function):
+       * lisp/cedet/semantic/lex.el (semantic-lex-map-types)
+       (define-lex, define-lex-block-type-analyzer):
+       * lisp/cedet/semantic/senator.el (senator-search-default-tag-filter):
+       * lisp/cedet/semantic/symref.el (semantic-symref-result)
+       (semantic-symref-hit-to-tag-via-db):
+       * lisp/cedet/semantic/symref.el (semantic-symref-tool-baseclass):
+       * lisp/cedet/semantic/tag.el (semantic-tag-new-variable)
+       (semantic-tag-new-include, semantic-tag-new-package)
+       (semantic-tag-set-faux, semantic-create-tag-proxy)
+       (semantic-tag-function-parent)
+       (semantic-tag-components-with-overlays):
+       * lisp/cedet/srecode/cpp.el (srecode-cpp-namespaces)
+       (srecode-semantic-handle-:c, srecode-semantic-apply-tag-to-dict):
+       * lisp/cedet/srecode/dictionary.el (srecode-create-dictionary)
+       (srecode-dictionary-add-entries, srecode-dictionary-lookup-name)
+       (srecode-create-dictionaries-from-tags):
+       * lisp/cmuscheme.el (scheme-compile-region):
+       * lisp/color.el (color-lab-to-lch):
+       * lisp/doc-view.el (doc-view-image-width)
+       (doc-view-set-up-single-converter):
+       * lisp/dynamic-setting.el (font-setting-change-default-font)
+       (dynamic-setting-handle-config-changed-event):
+       * lisp/elec-pair.el (electric-pair-text-pairs)
+       (electric-pair-skip-whitespace-function)
+       (electric-pair-string-bound-function):
+       * lisp/emacs-lisp/avl-tree.el (avl-tree--del-balance)
+       (avl-tree-member, avl-tree-mapcar, avl-tree-iter):
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-generate-call-tree):
+       * lisp/emacs-lisp/checkdoc.el (checkdoc-autofix-flag)
+       (checkdoc-spellcheck-documentation-flag, checkdoc-ispell)
+       (checkdoc-ispell-current-buffer, checkdoc-ispell-interactive)
+       (checkdoc-ispell-message-interactive)
+       (checkdoc-ispell-message-text, checkdoc-ispell-start)
+       (checkdoc-ispell-continue, checkdoc-ispell-comments)
+       (checkdoc-ispell-defun):
+       * lisp/emacs-lisp/cl-generic.el (cl--generic-search-method):
+       * lisp/emacs-lisp/eieio-custom.el (eieio-read-customization-group):
+       * lisp/emacs-lisp/lisp.el (forward-sexp, up-list):
+       * lisp/emacs-lisp/package-x.el (package--archive-contents-from-file):
+       * lisp/emacs-lisp/package.el (package-desc)
+       (package--make-autoloads-and-stuff, package-hidden-regexps):
+       * lisp/emacs-lisp/tcover-ses.el (ses-exercise-startup):
+       * lisp/emacs-lisp/testcover.el (testcover-nohits)
+       (testcover-1value):
+       * lisp/epg.el (epg-receive-keys, epg-start-edit-key):
+       * lisp/erc/erc-backend.el (erc-server-processing-p)
+       (erc-split-line-length, erc-server-coding-system)
+       (erc-server-send, erc-message):
+       * lisp/erc/erc-button.el (erc-button-face, erc-button-alist)
+       (erc-browse-emacswiki):
+       * lisp/erc/erc-ezbounce.el (erc-ezbounce, erc-ezb-get-login):
+       * lisp/erc/erc-fill.el (erc-fill-variable-maximum-indentation):
+       * lisp/erc/erc-log.el (erc-current-logfile):
+       * lisp/erc/erc-match.el (erc-log-match-format)
+       (erc-text-matched-hook):
+       * lisp/erc/erc-netsplit.el (erc-netsplit, erc-netsplit-debug):
+       * lisp/erc/erc-networks.el (erc-server-alist)
+       (erc-networks-alist, erc-current-network):
+       * lisp/erc/erc-ring.el (erc-input-ring-index):
+       * lisp/erc/erc-speedbar.el (erc-speedbar)
+       (erc-speedbar-update-channel):
+       * lisp/erc/erc-stamp.el (erc-timestamp-only-if-changed-flag):
+       * lisp/erc/erc-track.el (erc-track-position-in-mode-line)
+       (erc-track-remove-from-mode-line, erc-modified-channels-update)
+       (erc-track-last-non-erc-buffer, erc-track-sort-by-importance)
+       (erc-track-get-active-buffer):
+       * lisp/erc/erc.el (erc-get-channel-user-list)
+       (erc-echo-notice-hook, erc-echo-notice-always-hook)
+       (erc-wash-quit-reason, erc-format-@nick):
+       * lisp/ffap.el (ffap-latex-mode):
+       * lisp/files.el (abort-if-file-too-large)
+       (dir-locals--get-sort-score, buffer-stale--default-function):
+       * lisp/filesets.el (filesets-tree-max-level, filesets-data)
+       (filesets-update-pre010505):
+       * lisp/gnus/gnus-agent.el (gnus-agent-flush-cache):
+       * lisp/gnus/gnus-art.el (gnus-article-encrypt-protocol)
+       (gnus-button-prefer-mid-or-mail):
+       * lisp/gnus/gnus-cus.el (gnus-group-parameters):
+       * lisp/gnus/gnus-demon.el (gnus-demon-handlers)
+       (gnus-demon-run-callback):
+       * lisp/gnus/gnus-dired.el (gnus-dired-print):
+       * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event-from-buffer):
+       * lisp/gnus/gnus-range.el (gnus-range-normalize):
+       * lisp/gnus/gnus-spec.el (gnus-pad-form):
+       * lisp/gnus/gnus-srvr.el (gnus-server-agent, gnus-server-cloud)
+       (gnus-server-opened, gnus-server-closed, gnus-server-denied)
+       (gnus-server-offline):
+       * lisp/gnus/gnus-sum.el (gnus-refer-thread-use-nnir)
+       (gnus-refer-thread-limit-to-thread)
+       (gnus-summary-limit-include-thread, gnus-summary-refer-thread)
+       (gnus-summary-find-matching):
+       * lisp/gnus/gnus-util.el (gnus-rescale-image):
+       * lisp/gnus/gnus.el (gnus-summary-line-format, gnus-no-server):
+       * lisp/gnus/mail-source.el (mail-source-incoming-file-prefix):
+       * lisp/gnus/message.el (message-cite-reply-position)
+       (message-cite-style-outlook, message-cite-style-thunderbird)
+       (message-cite-style-gmail, message--send-mail-maybe-partially):
+       * lisp/gnus/mm-extern.el (mm-inline-external-body):
+       * lisp/gnus/mm-partial.el (mm-inline-partial):
+       * lisp/gnus/mml-sec.el (mml-secure-message-sign)
+       (mml-secure-message-sign-encrypt, mml-secure-message-encrypt):
+       * lisp/gnus/mml2015.el (mml2015-epg-key-image)
+       (mml2015-epg-key-image-to-string):
+       * lisp/gnus/nndiary.el (nndiary-reminders, nndiary-get-new-mail):
+       * lisp/gnus/nnheader.el (nnheader-directory-files-is-safe):
+       * lisp/gnus/nnir.el (nnir-search-history)
+       (nnir-imap-search-other, nnir-artlist-length)
+       (nnir-artlist-article, nnir-artitem-group, nnir-artitem-number)
+       (nnir-artitem-rsv, nnir-article-group, nnir-article-number)
+       (nnir-article-rsv, nnir-article-ids, nnir-categorize)
+       (nnir-retrieve-headers-override-function)
+       (nnir-imap-default-search-key, nnir-hyrex-additional-switches)
+       (gnus-group-make-nnir-group, nnir-run-namazu, nnir-read-parms)
+       (nnir-read-parm, nnir-read-server-parm, nnir-search-thread):
+       * lisp/gnus/nnmairix.el (nnmairix-default-group)
+       (nnmairix-propagate-marks):
+       * lisp/gnus/smime.el (smime-keys, smime-crl-check)
+       (smime-verify-buffer, smime-noverify-buffer):
+       * lisp/gnus/spam-report.el (spam-report-url-ping-mm-url):
+       * lisp/gnus/spam.el (spam-spamassassin-positive-spam-flag-header)
+       (spam-spamassassin-spam-status-header, spam-sa-learn-rebuild)
+       (spam-classifications, spam-check-stat, spam-spamassassin-score):
+       * lisp/help.el (describe-minor-mode-from-symbol):
+       * lisp/hippie-exp.el (hippie-expand-ignore-buffers):
+       * lisp/htmlfontify.el (hfy-optimizations, hfy-face-resolve-face)
+       (hfy-begin-span):
+       * lisp/ibuf-ext.el (ibuffer-update-saved-filters-format)
+       (ibuffer-saved-filters, ibuffer-old-saved-filters-warning)
+       (ibuffer-filtering-qualifiers, ibuffer-repair-saved-filters)
+       (eval, ibuffer-unary-operand, file-extension, directory):
+       * lisp/image-dired.el (image-dired-cmd-pngcrush-options):
+       * lisp/image-mode.el (image-toggle-display):
+       * lisp/international/ccl.el (ccl-compile-read-multibyte-character)
+       (ccl-compile-write-multibyte-character):
+       * lisp/international/kkc.el (kkc-save-init-file):
+       * lisp/international/latin1-disp.el (latin1-display):
+       * lisp/international/ogonek.el (ogonek-name-encoding-alist)
+       (ogonek-information, ogonek-lookup-encoding)
+       (ogonek-deprefixify-region):
+       * lisp/isearch.el (isearch-filter-predicate)
+       (isearch--momentary-message):
+       * lisp/jsonrpc.el (jsonrpc-connection-send)
+       (jsonrpc-process-connection, jsonrpc-shutdown)
+       (jsonrpc--async-request-1):
+       * lisp/language/tibet-util.el (tibetan-char-p):
+       * lisp/mail/feedmail.el (feedmail-queue-use-send-time-for-date)
+       (feedmail-last-chance-hook, feedmail-before-fcc-hook)
+       (feedmail-send-it-immediately-wrapper, feedmail-find-eoh):
+       * lisp/mail/hashcash.el (hashcash-generate-payment)
+       (hashcash-generate-payment-async, hashcash-insert-payment)
+       (hashcash-verify-payment):
+       * lisp/mail/rmail.el (rmail-movemail-variant-in-use)
+       (rmail-get-attr-value):
+       * lisp/mail/rmailmm.el (rmail-mime-prefer-html, rmail-mime):
+       * lisp/mail/rmailsum.el (rmail-summary-show-message):
+       * lisp/mail/supercite.el (sc-raw-mode-toggle):
+       * lisp/man.el (Man-start-calling):
+       * lisp/mh-e/mh-acros.el (mh-do-at-event-location)
+       (mh-iterate-on-messages-in-region, mh-iterate-on-range):
+       * lisp/mh-e/mh-alias.el (mh-alias-system-aliases)
+       (mh-alias-reload, mh-alias-ali)
+       (mh-alias-canonicalize-suggestion, mh-alias-add-alias-to-file)
+       (mh-alias-add-alias):
+       * lisp/mouse.el (mouse-save-then-kill):
+       * lisp/net/browse-url.el (browse-url-default-macosx-browser):
+       * lisp/net/eudc.el (eudc-set, eudc-variable-protocol-value)
+       (eudc-variable-server-value, eudc-update-variable)
+       (eudc-expand-inline):
+       * lisp/net/eudcb-bbdb.el (eudc-bbdb-format-record-as-result):
+       * lisp/net/eudcb-ldap.el (eudc-ldap-get-field-list):
+       * lisp/net/pop3.el (pop3-list):
+       * lisp/net/soap-client.el (soap-namespace-put)
+       (soap-xs-parse-sequence, soap-parse-envelope):
+       * lisp/net/soap-inspect.el (soap-inspect-xs-complex-type):
+       * lisp/nxml/rng-xsd.el (rng-xsd-date-to-days):
+       * lisp/org/ob-C.el (org-babel-prep-session:C)
+       (org-babel-load-session:C):
+       * lisp/org/ob-J.el (org-babel-execute:J):
+       * lisp/org/ob-asymptote.el (org-babel-prep-session:asymptote):
+       * lisp/org/ob-awk.el (org-babel-execute:awk):
+       * lisp/org/ob-core.el (org-babel-process-file-name):
+       * lisp/org/ob-ebnf.el (org-babel-execute:ebnf):
+       * lisp/org/ob-forth.el (org-babel-execute:forth):
+       * lisp/org/ob-fortran.el (org-babel-execute:fortran)
+       (org-babel-prep-session:fortran, org-babel-load-session:fortran):
+       * lisp/org/ob-groovy.el (org-babel-execute:groovy):
+       * lisp/org/ob-io.el (org-babel-execute:io):
+       * lisp/org/ob-js.el (org-babel-execute:js):
+       * lisp/org/ob-lilypond.el (org-babel-default-header-args:lilypond)
+       (org-babel-lilypond-compile-post-tangle)
+       (org-babel-lilypond-display-pdf-post-tangle)
+       (org-babel-lilypond-tangle)
+       (org-babel-lilypond-execute-tangled-ly)
+       (org-babel-lilypond-compile-lilyfile)
+       (org-babel-lilypond-check-for-compile-error)
+       (org-babel-lilypond-process-compile-error)
+       (org-babel-lilypond-mark-error-line)
+       (org-babel-lilypond-parse-error-line)
+       (org-babel-lilypond-attempt-to-open-pdf)
+       (org-babel-lilypond-attempt-to-play-midi)
+       (org-babel-lilypond-switch-extension)
+       (org-babel-lilypond-set-header-args):
+       * lisp/org/ob-lua.el (org-babel-prep-session:lua):
+       * lisp/org/ob-picolisp.el (org-babel-execute:picolisp):
+       * lisp/org/ob-processing.el (org-babel-prep-session:processing):
+       * lisp/org/ob-python.el (org-babel-prep-session:python):
+       * lisp/org/ob-scheme.el (org-babel-scheme-capture-current-message)
+       (org-babel-scheme-execute-with-geiser, org-babel-execute:scheme):
+       * lisp/org/ob-shen.el (org-babel-execute:shen):
+       * lisp/org/org-agenda.el (org-agenda-entry-types)
+       (org-agenda-move-date-from-past-immediately-to-today)
+       (org-agenda-time-grid, org-agenda-sorting-strategy)
+       (org-agenda-filter-by-category, org-agenda-forward-block):
+       * lisp/org/org-colview.el (org-columns--overlay-text):
+       * lisp/org/org-faces.el (org-verbatim, org-cycle-level-faces):
+       * lisp/org/org-indent.el (org-indent-set-line-properties):
+       * lisp/org/org-macs.el (org-get-limited-outline-regexp):
+       * lisp/org/org-mobile.el (org-mobile-files):
+       * lisp/org/org.el (org-use-fast-todo-selection)
+       (org-extend-today-until, org-use-property-inheritance)
+       (org-refresh-effort-properties, org-open-at-point-global)
+       (org-track-ordered-property-with-tag, org-shiftright):
+       * lisp/org/ox-html.el (org-html-checkbox-type):
+       * lisp/org/ox-man.el (org-man-source-highlight)
+       (org-man-verse-block):
+       * lisp/org/ox-publish.el (org-publish-sitemap-default):
+       * lisp/outline.el (outline-head-from-level):
+       * lisp/progmodes/dcl-mode.el (dcl-back-to-indentation-1)
+       (dcl-calc-command-indent, dcl-indent-to):
+       * lisp/progmodes/flymake.el (flymake-make-diagnostic)
+       (flymake--overlays, flymake-diagnostic-functions)
+       (flymake-diagnostic-types-alist, flymake--backend-state)
+       (flymake-is-running, flymake--collect, flymake-mode):
+       * lisp/progmodes/gdb-mi.el (gdb-threads-list, gdb, gdb-non-stop)
+       (gdb-buffers, gdb-gud-context-call, gdb-jsonify-buffer):
+       * lisp/progmodes/grep.el (grep-error-screen-columns):
+       * lisp/progmodes/gud.el (gud-prev-expr):
+       * lisp/progmodes/ps-mode.el (ps-mode, ps-mode-target-column)
+       (ps-run-goto-error):
+       * lisp/progmodes/python.el (python-eldoc-get-doc)
+       (python-eldoc-function-timeout-permanent, python-eldoc-function):
+       * lisp/shadowfile.el (shadow-make-group):
+       * lisp/speedbar.el (speedbar-obj-do-check):
+       * lisp/textmodes/flyspell.el (flyspell-auto-correct-previous-hook):
+       * lisp/textmodes/reftex-cite.el (reftex-bib-or-thebib):
+       * lisp/textmodes/reftex-index.el (reftex-index-goto-entry)
+       (reftex-index-kill, reftex-index-undo):
+       * lisp/textmodes/reftex-parse.el (reftex-context-substring):
+       * lisp/textmodes/reftex.el (reftex-TeX-master-file):
+       * lisp/textmodes/rst.el (rst-next-hdr, rst-toc)
+       (rst-uncomment-region, rst-font-lock-extend-region-internal):
+       * lisp/thumbs.el (thumbs-mode):
+       * lisp/vc/ediff-util.el (ediff-restore-diff):
+       * lisp/vc/pcvs-defs.el (cvs-cvsroot, cvs-force-dir-tag):
+       * lisp/vc/vc-hg.el (vc-hg--ignore-patterns-valid-p):
+       * lisp/wid-edit.el (widget-field-value-set, string):
+       * lisp/x-dnd.el (x-dnd-version-from-flags)
+       (x-dnd-more-than-3-from-flags): Assorted docfixes.
+
+2019-09-20  Lars Ingebrigtsen  <address@hidden>
+
+       Make register-preview ignore empty registers
+
+       * lisp/register.el (register-preview): Ignore elements that are
+       empty (bug#37155).
+
+2019-09-20  Johan Claesson  <address@hidden>  (tiny change)
+
+       Make the reverse tabulated list sort stable
+
+       * lisp/emacs-lisp/tabulated-list.el (tabulated-list--get-sorter):
+       Make the reverse sorting stable (bug#37174).
+
+2019-09-20  Lars Ingebrigtsen  <address@hidden>
+
+       Further touch-ups to the auth-source obfuscation
+
+       * lisp/auth-source.el (auth-source--obfuscate): Avoid leaking the
+       length of the password by using PKCS#7 padding.
+
+2019-09-20  Lars Ingebrigtsen  <address@hidden>
+
+       Add some comments to the auth-source obfuscation
+
+       * lisp/auth-source.el (auth-source--obfuscate): Add comments.
+
+2019-09-20  Lars Ingebrigtsen  <address@hidden>
+
+       Make previous auth-source change not break on Windows without gnutls
+
+       * lisp/auth-source.el (auth-source--obfuscate)
+       (auth-source--deobfuscate): Check that gnutls is really available.
+
+2019-09-20  Lars Ingebrigtsen  <address@hidden>
+
+       Obfuscate auth-source memory contents even more
+
+       * lisp/auth-source.el (auth-source--deobfuscate): Use more
+       obfuscated obfuscation (bug#37196).
+       (auth-source--pad, auth-source--obfuscate)
+       (auth-source-netrc-normalize): Use it.
+       (auth-source-netrc-parse): Ditto.
+
+2019-09-20  Lars Ingebrigtsen  <address@hidden>
+
+       Obfuscate auth-source secrets more
+
+       * lisp/auth-source.el (auth-source-netrc-normalize): Obfuscate
+       passwords stored in the lexical closure (bug#37196).
+
+2019-09-20  Stefan Kangas  <address@hidden>
+
+       Recommend against SHA-1 and MD5 for security
+
+       * doc/lispref/text.texi (Checksum/Hash):
+       * src/fns.c (Fmd5, Fsecure_hash):
+       * lisp/subr.el (sha1): Doc fix to recommend against SHA-1 and MD5 for
+       security-related applications, since they are not collision
+       resistant.  (Bug#37420)
+
+2019-09-20  Lars Ingebrigtsen  <address@hidden>
+
+       Allow `process-contact' not to block
+
+       * doc/lispref/processes.texi (Process Information): Document it.
+
+       * lisp/simple.el (list-processes--refresh): Don't wait for contact
+       information for non-setup processes.
+
+       * src/process.c (Fprocess_contact): Take an optional parameter to
+       avoid blocking (bug#37408).
+
+2019-09-20  Lars Ingebrigtsen  <address@hidden>
+
+       Make number-at-point recognize some hex numbers
+
+       * lisp/thingatpt.el (number-at-point): Also return common hex
+       numbers (bug#37458).
+
+2019-09-20  Damien Cassou  <address@hidden>
+
+       Change default value of message-make-forward-subject-function
+
+       * lisp/gnus/message.el (message-make-forward-subject-function): Change
+       default value to be a list so it's easier for users to add
+       functions. Change the type so the customize interface allows selecting
+       multiple provided functions instead of just one (bug#37470).
+
+2019-09-20  Stefan Kangas  <address@hidden>
+
+       Recommend using https for package-archives
+
+       * lisp/emacs-lisp/package.el (package-archives): Recommend using https
+       sources where possible.  (Bug#33825)
+
+2019-09-20  Matthew Newton  <address@hidden>  (tiny change)
+
+       Fix the previous imenu commit
+
+       * lisp/imenu.el (imenu--make-index-alist): Always return the alist
+       (bug#30449).
+
+2019-09-20  Michael Albinus  <address@hidden>
+
+       Some Tramp methods allow to change the remote login shell
+
+       * doc/misc/tramp.texi (Inline methods) <sshx, plink, plinkx>:
+       (External methods) <scpx, pscp, psftp>: Mention, that the remote
+       login shell could be changed.
+       (Remote shell setup): Remove description of properties
+       "remote-shell-login" and "remote-shell-args", they don't matter
+       here.  Changing the default remote shell works only for some
+       methods.
+       (Frequently Asked Questions): Refer to alternative approach fixing
+       zsh problems.
+
+       * etc/NEWS: Some Tramp methods allow to change the remote login shell.
+
+       * lisp/net/tramp-sh.el (tramp-default-remote-shell): New defconst.
+       (tramp-methods): Use it.
+       (tramp-get-sh-extra-args): New defun.
+       (tramp-open-shell, tramp-maybe-open-connection): Use it.
+
+       * lisp/net/tramp.el (tramp-methods): Adapt docstring.
+
+2019-09-19  Juri Linkov  <address@hidden>
+
+       * lisp/window.el (walk-windows): Simplify to use WINDOW arg of 
window-list-1
+
+       instead of calling select-window (bug#35385).
+
+2019-09-19  Eric Abrahamsen  <address@hidden>
+
+       Only use Gnus registry for formatting when registry is loaded
+
+       See bug #36903
+
+       * lisp/gnus/gnus-registry.el (gnus-registry-article-marks-to-chars):
+         (gnus-registry-article-marks-to-names): In some circumstances it's
+         possible for the user's summary line format spec to include
+         registry-specific code, while the registry itself isn't actually
+         loaded. Make sure the database is actually a hashtable before
+         accessing it.
+
+2019-09-19  Eli Zaretskii  <address@hidden>
+
+       Fix calls to insert-*-hooks when JIT font lock is active
+
+       * src/insdel.c (signal_after_change): Save and restore
+       interval_insert_behind_hooks and
+       interval_insert_in_front_hooks across calls to various other
+       hooks, to prevent their clobbering by those other hooks.
+       (Bug#37455)
+
+2019-09-19  Lars Ingebrigtsen  <address@hidden>
+
+       Minor svg wrap tweak
+
+       * lisp/net/shr.el (svg--wrap-svg): Add the size to the wrapper to
+       avoid having the SVG images shrink (bug#37159).
+
+2019-09-19  Lars Ingebrigtsen  <address@hidden>
+
+       Further fix-ups for SVG wrapping in shr
+
+       * lisp/net/shr.el (svg--wrap-svg): Add the size to the wrapper to
+       avoid having the SVG images shrink (bug#37159).
+
+2019-09-19  Lars Ingebrigtsen  <address@hidden>
+
+       Fix :version in recent commit
+
+       * lisp/pcmpl-gnu.el (pcmpl-gnu-makefile-includes): Fix :version.
+
+2019-09-19  Lars Ingebrigtsen  <address@hidden>
+
+       Fix a bug in callback functions in align-areas
+
+       * lisp/align.el (align-areas): When given a callback function and
+       JUSTIFY, pick out the correct parameters (bug#30139).  Suggested
+       by "John Wiegley" <address@hidden>.
+
+2019-09-19  Paul Eggert  <address@hidden>
+
+       Also prefer .emacs.d if .emacs exists
+
+       Problem reported by Katsumi Yamaoka (Bug#37456).
+       * lisp/startup.el (startup--xdg-or-homedot): Also
+       prefer .emacs.d if a traditional .emacs file exists.
+
+2019-09-19  Paul Eggert  <address@hidden>
+
+       Default PICKY_ACCESS to false on non-MS
+
+       * src/fileio.c (PICKY_EACCES) [!DOS_NT]: Default to false.
+
+2019-09-18  Paul Eggert  <address@hidden>
+
+       Omit some overenthusiastic file-truename calls
+
+       Problem reported by Tino Calancha (Bug#37445).
+       * src/emacs.c (init_cmdargs): Call file-truename only if
+       needed, i.e., if invocation-directory ends in "/i386/" on
+       WINDOWSNT.
+       * src/lread.c (readevalloop): If the sourcename is not
+       absolute, make it absolute.  There is no need to convert
+       non-absolute files into truenames, since absolute files are
+       not converted into truenames.
+       (init_lread): Do not convert source-directory into a truename
+       at startup.  There is no need to do so in a dumped Emacs since
+       an absolute file name suffices.  The source directory might
+       not even exist any more, or might have been replaced by an
+       interloper who takes advantage of the truename calculation.
+       (syms_of_lread): Remove Qfile_truename; no longer needed.
+
+2019-09-18  Matt Bisson  <address@hidden>  (tiny change)
+
+       Fix ignored Motif scrollbar resources (Bug#37359)
+
+       * src/xterm.c (x_create_toolkit_scroll_bar): On Motif
+       scrollbars, "foreground" has no meaning, while "background"
+       means the truck and arrow colors, and "trough" means the
+       background of the entire widget.  This fix hooks up the Emacs
+       scrollbar "foreground" color to the XmNbackground resource
+       and the "background" color to XmNtroughColor which is more in
+       line with how Xaw scrollbars behave.
+
+2019-09-18  Juanma Barranquero  <address@hidden>
+
+       lisp/*.el, src/*.c: Fix typos in docstrings
+
+       * lisp/apropos.el (apropos-do-all):
+       * lisp/auth-source-pass.el (auth-source-pass--select-from-entries):
+       * lisp/auth-source.el (auth-source-user-or-password):
+       * lisp/calc/calc-forms.el (math-tzone-names):
+       * lisp/calendar/diary-lib.el (diary-face-attrs)
+       (diary-mark-entries-1):
+       * lisp/cedet/cedet-files.el (cedet-files-list-recursively):
+       * lisp/cedet/ede.el (ede-constructing, ede-deep-rescan):
+       * lisp/cedet/ede/cpp-root.el (ede-cpp-root-header-file-p):
+       * lisp/cedet/ede/proj.el (ede-proj-target-makefile):
+       * lisp/cedet/inversion.el (inversion-check-version)
+       (inversion-test):
+       * lisp/cedet/mode-local.el (mode-local-map-file-buffers):
+       * lisp/cedet/semantic/complete.el (semantic-displayer-ghost):
+       * lisp/cedet/semantic/db-find.el 
(semanticdb-find-translate-path-default):
+       * lisp/cedet/semantic/db.el (semanticdb-table)
+       (semanticdb-search-system-databases):
+       * lisp/cedet/semantic/imenu.el (semantic-imenu-index-directory):
+       * lisp/cedet/semantic/java.el (semantic-java-doc-keywords-map):
+       * lisp/cedet/semantic/lex-spp.el (semantic-lex-spp-use-headers-flag):
+       * lisp/cedet/semantic/lex.el (semantic-lex-make-keyword-table)
+       (semantic-lex-make-type-table, semantic-lex-debug-analyzers):
+       * lisp/cedet/semantic/tag-ls.el (semantic-tag-abstract-p)
+       (semantic-tag-leaf-p, semantic-tag-static-p)
+       (semantic-tag-prototype-p):
+       * lisp/dnd.el (dnd-open-remote-file-function, dnd-open-local-file):
+       * lisp/emacs-lisp/eieio-opt.el (eieio-build-class-alist)
+       (eieio-read-class, eieio-read-subclass):
+       * lisp/emacs-lisp/generator.el (cps--replace-variable-references)
+       (cps--handle-loop-for):
+       * lisp/erc/erc-dcc.el (erc-dcc-list, erc-dcc-member, erc-dcc-server)
+       (erc-dcc-auto-mask-p, erc-dcc-get-file, erc-dcc-chat-accept):
+       * lisp/eshell/em-pred.el (eshell-pred-file-type):
+       * lisp/faces.el (defined-colors-with-face-attributes):
+       * lisp/font-core.el (font-lock-mode):
+       * lisp/frame.el (frame-restack):
+       * lisp/net/shr.el (shr-image-animate):
+       * lisp/org/org-agenda.el (org-agenda-change-all-lines)
+       (org-agenda-today-p):
+       * lisp/org/org-id.el (org-id-get):
+       * lisp/org/org.el (org-highlight-latex-and-related)
+       (org--valid-property-p):
+       * lisp/org/ox-beamer.el (org-beamer--get-label):
+       * lisp/org/ox-latex.el (org-latex--caption-above-p):
+       * lisp/org/ox-odt.el (org-odt--copy-image-file)
+       (org-odt--copy-formula-file):
+       * lisp/org/ox.el (org-export-with-timestamps):
+       * lisp/progmodes/verilog-mode.el (verilog-indent-declaration-macros):
+       * lisp/ses.el (ses-file-format-extend-parameter-list):
+       * lisp/term.el (ansi-term):
+       * lisp/textmodes/bibtex.el (bibtex-no-opt-remove-re)
+       (bibtex-beginning-of-first-entry, bibtex-autokey-get-title)
+       (bibtex-read-key, bibtex-initialize):
+       * lisp/textmodes/flyspell.el (flyspell-word):
+       * lisp/view.el (view-mode-exit):
+       * src/composite.c:
+       * src/floatfns.c (Fisnan): Fix typos in docstrings.
+
+2019-09-18  Stephen Leake  <address@hidden>
+
+       Merge commit '107ce3050fc37b9a13d8304ae1bb73fac9de5f61'
+
+2019-09-18  Stephen Leake  <address@hidden>
+
+       Enhance 'pcomplete/make' to complete on targets in included makefiles
+
+       * lisp/pcmpl-gnu.el (pcmpl-gnu-makefile-includes): New.
+       (pcmpl-gnu-make-targets): New, factored out of 
pcmpl-gnu-make-all-targets.
+       (pcmpl-gnu-make-includes): New.
+       (pcmpl-gnu-make-all-targets): Use new functions.
+
+2019-09-18  Juri Linkov  <address@hidden>
+
+       * lisp/isearch.el (isearch-lazy-highlight-update): Remember timer object
+
+       in isearch-lazy-highlight-timer to cancel it in lazy-highlight-cleanup.
+
+       (isearch-done): No need to set isearch-lazy-highlight-start to nil -
+       it used to reset lazy-highlight loop like 
isearch-lazy-highlight-window-start,
+       but now other packages set isearch-lazy-highlight-last-string to nil to 
reset
+       lazy-highlight loop.
+
+2019-09-18  Eli Zaretskii  <address@hidden>
+
+       Fix loading .elc files on MS-Windows
+
+       * src/lread.c (Fload): Don't clobber 'found' if the .el file
+       was not found, as it is used by WINDOWSNT later on.
+
+2019-09-18  Phillip Lord  <address@hidden>
+
+       Improve logic for dependencies checking
+
+       * admin/nt/dist-build/build-dep-zips.py:
+
+2019-09-18  Lars Ingebrigtsen  <address@hidden>
+
+       Fix up the previous mh-mime warning suppression
+
+       * lisp/mh-e/mh-acros.el (mh-dlet*): Suppress warnings about
+       prefix-less bindings.
+       * lisp/mh-e/mh-mime.el (mh-insert-mime-security-button): Remove
+       the warning removal here.
+       (mh-insert-mime-button): And here.
+
+2019-09-18  Eli Zaretskii  <address@hidden>
+
+       Improve support of the Tai-Viet script
+
+       * lisp/language/tai-viet.el ("TaiViet"): Update the doc
+       string.  Suggested by Jim Brase <address@hidden>.
+       (Bug#5806)
+
+       * etc/HELLO: Add a Tai Viet entry.
+
+2019-09-18  Paul Eggert  <address@hidden>
+
+       Out-of-datedness .elc check is merely a file test
+
+       * src/fileio.c (file_test_errno): Now extern.
+       * src/lread.c (Fload): Use file_test_errno instead,
+       since this is really just a file test (the attributes
+       are not given to the user).
+
+2019-09-18  Eli Zaretskii  <address@hidden>
+
+       Fix the MS-Windows build broken by recent errno changes
+
+       * src/fileio.c (file_directory_p): If the file exists, but is
+       not a directory, set errno to ENOTDIR, like the Posix branch
+       does; openp expects that.
+
+2019-09-18  Michael Albinus  <address@hidden>
+
+       Simplify tramp-tests.el check for owncloud/nextcloud
+
+       * test/lisp/net/tramp-tests.el (tramp-test11-copy-file):
+       Simplify check for owncloud/nextcloud connections.
+
+2019-09-18  Michael Albinus  <address@hidden>
+
+       Add extra args for zsh in Tramp
+
+       * doc/misc/tramp.texi (Remote shell setup): New subsection
+       "Changing the default remote shell".
+
+       * lisp/net/tramp-sh.el (tramp-sh-extra-args): Add entry for zsh.
+
+2019-09-18  Paul Eggert  <address@hidden>
+
+       Be less picky about EACCES in file test predicates
+
+       Problem reported by Tino Calancha (Bug#37445) and others.
+       * src/fileio.c (PICKY_EACCES): New constant, false by default.
+       (file_test_errno): Ignore EACCES if not picky.
+       (check_file_access): Investigate EACCES problems further
+       if picky.
+
+2019-09-18  Paul Eggert  <address@hidden>
+
+       Fix permission-denied issue in MS-Windows startup
+
+       * src/callproc.c (init_callproc): Use file_access_p rather
+       than Ffile_exists_p during startup (Bug#37445).
+
+2019-09-17  Paul Eggert  <address@hidden>
+
+       Improve reporting of I/O, access errors
+
+       Signal an error for file-oriented errors that are not tame
+       errors like ENOENT and ENOTDIR (Bug#37389).
+       Do this for primitives exposed to Lisp; the lower
+       level internal C API merely makes errno values available
+       to higher-level C code.
+       * doc/lispref/files.texi (Testing Accessibility)
+       (File Attributes, Extended Attributes): Do not say that the
+       functions return nil when the return value cannot be determined.
+       * etc/NEWS: Mention the change.
+       * src/dired.c (Ffile_attributes): Fix doc string confusion
+       about opening a file vs getting its attributes.
+       (file_attributes): Signal serious errors.
+       * src/fileio.c (check_existing, check_executable)
+       (check_writable): Remove.  All callers changed to use
+       check_file_access or file_access_p.
+       (file_access_p, file_metadata_errno, file_attribute_errno)
+       (file_test_errno, check_file_access, check_emacs_readlinkat):
+       New functions.
+       * src/fileio.c (Ffile_executable_p, Ffile_readable_p)
+       (Ffile_name_case_insensitive_p, Frename_file, Ffile_exists_p):
+       (Ffile_symlink_p, Ffile_directory_p)
+       (Ffile_accessible_directory_p, Ffile_regular_p)
+       (Ffile_selinux_context, Ffile_acl, Ffile_modes)
+       (Ffile_newer_than_file_p, Fset_visited_file_modtime)
+       (Ffile_system_info):
+       * src/filelock.c (unlock_file, Ffile_locked_p):
+       * src/lread.c (Fload):
+       Signal serious errors.
+       * src/fileio.c (Ffile_writable_p): Remove unnecessary CHECK_STRING.
+       (emacs_readlinkat): Now static.
+       * src/filelock.c (current_lock_owner, lock_if_free): Return a
+       positive errno on error, and the negative of the old old value
+       on success.  All callers changed.
+       * src/lread.c (openp): Propagate serious errno values to caller.
+
+2019-09-17  Jimmy Aguilar Mena  <address@hidden>
+
+       Substituted deprecated WebKitGTK+ api.
+
+       * src/xwidget.c : Substituted WebKitGTK+ API calls and use
+       JavaScriptCore GLib API instead.
+
+2019-09-17  Tino Calancha  <address@hidden>
+
+       Fix an assignment to free variable warning
+
+       It fixes a bug introduced by commit
+       'query-replace-regexp undo: Update next-replacement after undo'
+       (30c4f35a6fc8a6507930923766c3126ac1c2063f)
+
+       See https://lists.gnu.org/archive/html/emacs-devel/2019-09/msg00364.html
+       * lisp/replace.el(perform-replace): Rename variable
+       to next-replacement-replaced.
+
+2019-09-17  Juanma Barranquero  <address@hidden>
+
+       * src/w32fns.c (Fw32_read_registry): Doc fix
+
+2019-09-17  Lars Ingebrigtsen  <address@hidden>
+
+       Suppress some warnings about un-prefixed dynamic variables
+
+       * lisp/mh-e/mh-mime.el (mh-insert-mime-security-button): Suppress
+       warnings about un-prefixed dynamic variables.
+       (mh-insert-mime-button): Ditto.
+
+2019-09-17  Lars Ingebrigtsen  <address@hidden>
+
+       Touch up naming of ipv6-expand
+
+       * lisp/net/net-utils.el (nslookup--ipv6-expand): Rename to avoid
+       make prefix more regular.
+       (nslookup-host-ipv6): Rename call.
+
+2019-09-17  W. Garrett Mitchener  <address@hidden>
+
+       Updated to match more recent versions of Praat.
+
+       * lisp/leim/quail/ipa-praat.el ("ipa-praat"): Update to match
+       more recent versions of Praat (bug#36198).
+
+       - \rh was used for ram's horns (a vowel) and rhoticity hook (a
+         diacritic).  Praat uses \hr for the hook, so I made that changed.
+
+       - \e3v for the slightly rounded diacritic seems to have been a typo
+         related to the use of e in the example.  Changed it to \3v to match
+         Praat.
+
+       - Added examples to the table of tone diacritics
+
+       - Added \^h for superscript h
+
+       - Added \^H for superscript h with hook
+
+       - Added \^w for superscript w (labialization)
+
+       - Added \^j for superscript j (palatalization)
+
+       - Added \^g for superscript symbol (velarization)
+
+       - Added \^9 for superscript symbol (pharyngealization)
+
+2019-09-17  Lars Ingebrigtsen  <address@hidden>
+
+       Update doc marker -- smtpmail-retries is documented
+
+2019-09-17  Eli Zaretskii  <address@hidden>
+
+       Improve font lookup on MS-Windows
+
+       * src/w32font.c (struct font_callback_data): New member
+       'known_fonts'.
+       (w32font_list_internal, w32font_match_internal): Set up
+       match_data.known_fonts if the font spec includes :script that
+       names one of the non-USB scripts.
+       (add_font_entity_to_list): If font_matches_spec returns zero
+       for a font, and we have some fonts in match_data->known_fonts,
+       consider the font to be a match if it is named in known_fonts.
+       (font_supported_scripts): Update the Unicode Subranges.  In
+       particular, map bit 74 to 'burmese', as this is the name Emacs
+       uses, not 'myanmar'.  Add a list of scripts that have no USBs
+       defined for them.
+       (syms_of_w32font) <Qburmese, Qcuneiform_numbers_and_punctuation>
+       <Qaegean_number, Qw32_non_USB_fonts>: New symbols.
+
+       * lisp/term/w32-win.el (w32-no-usb-subranges): New defconst.
+       (w32--filter-USB-scripts, w32-find-non-USB-fonts): New functions.
+       (w32-non-USB-fonts): New defvar.
+
+       * lisp/international/fontset.el (setup-default-fontset): Add
+       more scripts to automatic setup by representative characters.
+
+       * doc/emacs/msdos.texi (Windows Fonts): Document
+       'w32-find-non-USB-fonts' and 'w32-non-USB-fonts'.
+
+       * etc/NEWS: Mention 'w32-find-non-USB-fonts' and
+       'w32-non-USB-fonts'.
+
+2019-09-17  Paul Eggert  <address@hidden>
+
+       Pacify GCC -Wmaybe-uninitialized
+
+       * src/dired.c (directory_files_internal):
+       Pacify GCC 7.4.0-1ubuntu1~18.04.1 x86-64.
+
+2019-09-17  Paul Eggert  <address@hidden>
+
+       Don’t round file-system-info counts
+
+       * src/fileio.c (blocks_to_bytes): Convert the byte count to an
+       integer, since we have bignums now.  This avoids possible rounding
+       errors for file systems containing more than 8 PiB or so.
+
+2019-09-17  Mattias Engdegård  <address@hidden>
+
+       * doc/lispref/searching.texi (Rx Constructs): Fix typo.
+
+2019-09-16  Paul Eggert  <address@hidden>
+
+       Fix some file-mode races
+
+       * lisp/emacs-lisp/autoload.el (autoload-ensure-file-writeable):
+       * lisp/files.el (after-find-file):
+       * lisp/gnus/gnus-start.el (gnus-dribble-read-file):
+       * lisp/htmlfontify.el (hfy-copy-and-fontify-file):
+       * lisp/server.el (server-ensure-safe-dir):
+       Avoid a race when getting file permissions.
+
+2019-09-16  Paul Eggert  <address@hidden>
+
+       vc-cvs-revert: fix off-by-one file mode
+
+       * lisp/vc/vc-cvs.el (vc-cvs-revert): 3950 (#o7556) is wrong as
+       it keeps other-write but disables other-execute permissions.
+       3949 (#o7555) was intended here.  Use octal notation for clarity.
+
+2019-09-16  Lars Ingebrigtsen  <address@hidden>
+
+       Fix imenu menu when we're auto-refreshing
+
+       * lisp/imenu.el (imenu--make-index-alist): Don't add a *Refresh*
+       item if we're auto-refreshing (bug#30449).
+
+2019-09-16  Lars Ingebrigtsen  <address@hidden>
+
+       Add a new variable smtpmail-retries
+
+       * doc/misc/smtpmail.texi (Server workarounds): Mention it (bug#34177).
+
+       * lisp/mail/smtpmail.el (smtpmail-retries): New variable.
+       (smtpmail-via-smtp): Use it.
+
+2019-09-16  Michał Kondraciuk  <address@hidden>  (tiny change)
+
+       Allow `M-u' to work when editing fields in Customize
+
+       * lisp/cus-edit.el (custom-notify): Allow more editing commands to
+       work in the Customize buffers (bug#31205).
+
+2019-09-16  Lars Ingebrigtsen  <address@hidden>
+
+       Try resending when getting a transient 4xx SMTP code
+
+       * lisp/mail/smtpmail.el (smtpmail-via-smtp): Try resending when
+       getting a transient error message (bug#34177).
+
+2019-09-16  Paul Eggert  <address@hidden>
+
+       Remove obsolete Lint directives
+
+       Most of the directives were wrong anyway.  Apparently
+       traditional lint hasn’t been used to check Emacs for years.
+       * src/callint.c (Finteractive):
+       * src/cm.c (evalcost):
+       * src/emacs.c (main):
+       * src/eval.c (call1, call2, call3, call4, call5, call6, call7, call8):
+       * src/fns.c (concat2, concat3, nconc2):
+       * src/term.c (calculate_ins_del_char_costs):
+       Omit ARGSUSED comments.
+       * src/eval.c (call1): Omit VARARGS comment.
+
+2019-09-16  Tino Calancha  <address@hidden>
+
+       Add backquote tests
+
+       * test/lisp/emacs-lisp/backquote-tests.el: New file (bug#37432).
+
+2019-09-16  Paul Eggert  <address@hidden>
+
+       directory-files cleanup and speed tweaking
+
+       * src/dired.c (directory_files_internal):
+       Check ‘match’ before doing anything heavyweight.
+       Move decls closer to use.
+       Remove obsolete comments about GC.
+       No need to encode ‘directory’ or to call multibyte_chars_in_text.
+       Remove no-longer-needed bug check.
+       Skip finalname construction if file_attributes fails.
+
+2019-09-16  Juri Linkov  <address@hidden>
+
+       Try to fix macOS and Windows issues.
+
+2019-09-16  Lars Ingebrigtsen  <address@hidden>
+
+       mm-inline-large-images-proportion doc clarification
+
+       * lisp/gnus/mm-view.el (mm-inline-large-images-proportion): Doc
+       clarification.
+
+2019-09-16  Lars Ingebrigtsen  <address@hidden>
+
+       Default to rescaling images in mm buffers
+
+       * doc/misc/emacs-mime.texi (Display Customization): Document it.
+
+       * lisp/gnus/mm-decode.el (mm-inline-large-images): Change default
+       to `resize'.
+
+2019-09-16  Lars Ingebrigtsen  <address@hidden>
+
+       mm-inline-large-images doc string clarification
+
+       * lisp/gnus/mm-decode.el (mm-inline-large-images): Clarify doc string.
+
+2019-09-16  Mauro Aranda  <address@hidden>
+
+       With tooltip-mode disabled, don't unconditionally clear the echo area
+
+       * lisp/tooltip.el (tooltip-show-help-non-mode): Only clear the
+       echo area when the current message displayed is a tooltip message
+       (Bug#3192).
+
+2019-09-16  Lars Ingebrigtsen  <address@hidden>
+
+       Minor fix for previous maintaining.texi change
+
+       * doc/emacs/maintaining.texi (VC Directory Commands): Use @file
+       for files.
+
+2019-09-16  Lars Ingebrigtsen  <address@hidden>
+
+       Document vc-dir-ignore
+
+       * doc/emacs/maintaining.texi (VC Directory Commands): Document
+       vc-dir-ignore.
+
+2019-09-16  Eli Zaretskii  <address@hidden>
+
+       Improve error reporting in file_accessible_directory_p
+
+       * src/w32.c (w32_accessible_directory_p): Set errno, so that
+       file_accessible_directory_p does on MS-Windows, to live up to
+       its callers' expectations.
+
+2019-09-16  Eli Zaretskii  <address@hidden>
+
+       Fix initialization of shared-game-score-directory on MS-Windows
+
+       * src/callproc.c (init_callproc) [WINDOWSNT]: Run PATH_GAME
+       through w32_relocate, to expand %emacs_dir%.
+       [DOS_NT]: Accept EACCES as not "unusual" errno value.
+       Reported by Richard Copley <address@hidden>.
+
+2019-09-16  Lars Ingebrigtsen  <address@hidden>
+
+       Remove NEWS entry that talks about a change that was reverted 
(bug#37257)
+
+2019-09-16  Robert Pluim  <address@hidden>
+
+       Add bindings for ligature oe to iso-transl-char-map
+
+       * lisp/international/iso-transl.el (iso-transl-char-map): Add bindings
+       for small and capital ligature oe.  (Bug#23420)
+
+2019-09-15  Paul Eggert  <address@hidden>
+
+       Fix some file-name-case-insensitive glitches
+
+       * src/fileio.c (file_name_directory): New static function,
+       broken out of Ffile_name_directory.
+       (file_name_case_insensitive_err, Ffile_writable_p, Fdo_auto_save):
+       Use it.
+       (file_name_case_insensitive_err): Rename from
+       file_name_case_insensitive_p.  Accept an unencoded Lisp_Object
+       rather than an encoded char *, so that platforms other than
+       Cygwin and macOS need not encode the file name.  Return an int
+       -1, 0, errno rather than a bool (setting errno if false),
+       so that the caller can distinguish an error from false.
+       All callers changed.
+       (Ffile_name_case_insensitive_p): Don’t issue system calls on
+       platforms other than Cygwin and macOS.  Fix bug that broke the
+       attempt to move up the filesystem tree (it moved up only one
+       level).
+
+2019-09-15  Paul Eggert  <address@hidden>
+
+       Fix unknown-vs-nonexistent glitch for file timestamps
+
+       * src/fileio.c (time_error_value): EACCES means the file
+       timestamp is unknown, not that the file does not exist.
+
+2019-09-15  Paul Eggert  <address@hidden>
+
+       Improve directory-access diagnostics
+
+       * src/callproc.c (init_callproc): Diagnose I/O errors,
+       access errors, etc. for the game directory.
+       * src/charset.c (init_charset): Improve quality of diagnostic
+       when the charsets directory has I/O errors, access errors, etc.
+
+2019-09-15  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       30c4f35 (origin/emacs-26) query-replace-regexp undo: Update next-repl...
+       c596be0 Amend the menu caption for page "Display Property" in the Eli...
+       13b9510 Add description of chinese-sisheng
+
+2019-09-15  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       8e420c0 Clarify the use of left/right-margin-width in determining cur...
+
+2019-09-15  Glenn Morris  <address@hidden>
+
+       * admin/upload-manuals: Move a basic check earlier.
+
+2019-09-15  Juri Linkov  <address@hidden>
+
+       Use images for new/close buttons in tab-bar and tab-line.
+
+       * etc/images/tabs/new.xpm:
+       * etc/images/tabs/close.xpm:
+       New files.
+
+       * lisp/tab-bar.el (tab-bar-separator): New face.
+       (tab-bar-separator, tab-bar-button-new, tab-bar-button-close):
+       Use display property with images in default values.
+
+       * lisp/tab-line.el (tab-line-button-new, tab-line-button-close):
+       Use display property with images in default values.
+
+       * src/xdisp.c (tab_bar_item_info): Add new arg close_p and set it
+       to the value of property `close' at charpos.
+       (get_tab_bar_item): Add new arg close_p.
+       (handle_tab_bar_click): Add ctrl_modifier when close_p is non-nil.
+       (Fdump_tab_bar_row): Fix crash for non-X builds.
+
+2019-09-15  Juri Linkov  <address@hidden>
+
+       Fix assertion violations due to non-ASCII text in tabs
+
+       * src/xdisp.c (tab_bar_height, redisplay_tab_bar)
+       (display_tab_bar): If the Lisp string to be displayed in the
+       tab-bar window is multibyte, tell the display
+       engine to treat it as multibyte, instead of relying on the
+       initial determination by init_iterator (which is based on the
+       multibyteness of the current buffer).  (Bug#37385)
+
+2019-09-15  Juanma Barranquero  <address@hidden>
+
+       * lisp/subr.el (major-mode-suspend): Doc fix
+
+2019-09-15  Michael Albinus  <address@hidden>
+
+       Use also truname of temporary-file-directory in shadowfile-tests.el
+
+       * test/lisp/shadowfile-tests.el (top): Use truename of
+       `temporary-file-directory' and
+       `shadow-test-remote-temporary-file-directory'.  (Bug#37202)
+       (shadow-test08-shadow-todo, shadow-test09-shadow-copy-files):
+       Do not bind `shadow-test-remote-temporary-file-directory'.
+
+2019-09-15  Mauro Aranda  <address@hidden>
+
+       Make widget-browse-at always detect an editable-field
+
+       * lisp/wid-browse.el (widget-browse-at): Also look for the real-field
+       property when detecting a field (bug#37199).
+
+2019-09-15  Wolfgang Scherer  <address@hidden>
+
+       Do not use error messages as list of ignored files in vc-svn
+
+       * lisp/vc/vc-svn.el: (vc-svn-ignore-completion-table) Ignore buffer
+       contents, if exit status is not 0.  Split buffer by lines (bug#37214).
+
+2019-09-15  Wolfgang Scherer  <address@hidden>
+
+       Fix vc-default-ignore
+
+       * lisp/vc/vc.el: (vc-default-ignore) Treat FILE parameter as relative
+       to DIRECTORY parameter.  Construct a file-path relative to directory
+       of ignore file.  When removing, use properly anchored regexp.  Remove
+       entire line, not just the match (bug#37217).
+
+2019-09-15  Wolfgang Scherer  <address@hidden>
+
+       Provide facility to ignore all marked files in vc
+
+       * lisp/vc/vc-dir.el: (vc-dir-ignore) With prefix argument, ignore all
+       marked files (bug#37240).
+
+2019-09-15  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "emacsclient: ignore --eval parameters when starting alternate 
editor"
+
+       This reverts commit 6fe661342a24edcaea255c3ba9a37613031554da.
+
+       The alternate editor may be Emacs, which is useful when you want to 
eval something in an existing Emacs (if it exists), or in a new Emacs if 
there's no server running.
+
+2019-09-14  Paul Eggert  <address@hidden>
+
+       file_name_case_insensitive_p int->long fix
+
+       * src/fileio.c (file_name_case_insensitive_p):
+       Don’t assume ‘long int’ fits in ‘int’.
+
+2019-09-14  Paul Eggert  <address@hidden>
+
+       Fix gc-elapsed rounding bug
+
+       * src/alloc.c (garbage_collect): Don’t accumulate rounding
+       errors when computing gc-elapsed.
+
+2019-09-14  Paul Eggert  <address@hidden>
+
+       Improve doc of GC thresholds
+
+       * doc/lispref/internals.texi (Garbage Collection), etc/NEWS:
+       Warn that control over GC is only approximate.
+
+2019-09-14  Bruno Félix Rezende Ribeiro  <address@hidden>  (tiny change)
+
+       Fix picon installation instructions in the Gnus manual
+
+       * doc/misc/gnus.texi (Picons): Fix instructions for installing
+       picons on Debian (bug#37247).
+
+2019-09-14  Basil L. Contovounesios  <address@hidden>
+
+       Fix fileless eww form submission
+
+       * lisp/net/eww.el (eww-submit): Ignore file inputs with no
+       associated file name (bug#36520).
+
+2019-09-14  Lars Ingebrigtsen  <address@hidden>
+
+       Add default foreground colours to SVG images
+
+       * lisp/net/shr.el (svg--wrap-svg): Add a default foreground colour
+       to SVG images (bug#37159).  This helps with images like the ones
+       in https://en.wikipedia.org/wiki/Banach_fixed-point_theorem that
+       specify no foreground or background colours.
+       (shr-parse-image-data): Use it.
+
+2019-09-14  Lars Ingebrigtsen  <address@hidden>
+
+       Make eww more liberal when interpreting some invalid HTML
+
+       * lisp/net/eww.el (eww--preprocess-html): New function (bug#37009)
+       to be more lenient with invalid HTML and translate common invalid
+       HTML like "a <= b" into "a &lt;= b" to be more liberal in what we
+       accept before parsing.
+       (eww-display-html): Use it.
+       (eww-readable): Ditto.
+
+2019-09-14  Eli Zaretskii  <address@hidden>
+
+       * src/print.c (PRINT_CIRCLE_CANDIDATE_P): Fix a thinko.  (Bug#36566)
+
+2019-09-14  Tobias Zawada  <address@hidden>  (tiny change)
+
+       Add a debug declaration to widget-specify-insert
+
+       * lisp/wid-edit.el (widget-specify-insert): Add a debug
+       declaration (bug#37368).
+
+2019-09-14  Federico Tedin  <address@hidden>
+
+       Allow gamegrid-add-score to treat lower scores as better.
+
+       * lisp/play/gamegrid.el (gamegrid-add-score): Add 'reverse' parameter.
+       (gamegrid-add-score-with-update-game-score): Add 'reverse' parameter.
+       (gamegrid-add-score-with-update-game-score-1): Add 'reverse'
+       parameter.  Pass on "-r" argument to update-game-score.
+       (gamegrid-add-score-insecure): Add 'reverse' parameter, reverse scores
+       when it's non-nil.  (Bug#36867)
+
+       * etc/NEWS: Announce the change.
+
+2019-09-14  Paul Eggert  <address@hidden>
+
+       Improve gc-cons-percentage calculation
+
+       The old calculation relied on a hodgpodge of partly updated GC
+       stats to find a number to multiply gc-cons-percentage by.
+       The new one counts data found by the previous GC, plus half of
+       the data allocated since then; this is more systematic albeit
+       still ad hoc.
+       * src/alloc.c (consing_until_gc, gc_threshold, consing_threshold):
+       Now EMACS_INT, not intmax_t.
+       (HI_THRESHOLD): New macro.
+       (tally_consing): New function.
+       (make_interval, allocate_string, allocate_string_data)
+       (make_float, free_cons, allocate_vectorlike, Fmake_symbol): Use it.
+       (allow_garbage_collection, inhibit_garbage_collection)
+       (consing_threshold, garbage_collect):
+       Use HI_THRESHOLD rather than INTMAX_MAX.
+       (consing_threshold): New arg SINCE_GC.  All callers changed.
+       (bump_consing_until_gc): Return new consing_until_gc, instead of
+       nil.  All callers changed.  Don’t worry about overflow since we
+       now saturate at HI_THRESHOLD.  Guess that half of
+       recently-allocated objects are still alive, instead of relying on
+       the previous (even less-accurate) hodgepodge.
+       (maybe_garbage_collect): New function.
+       (garbage_collect): Work even if a finalizer disables or enables
+       memory profiling.  Do not use malloc_probe if GC reclaimed nothing.
+       * src/lisp.h (maybe_gc): Call maybe_garbage_collect instead
+       of garbage_collect.
+
+2019-09-13  Paul Eggert  <address@hidden>
+
+       Simplify GC statistics-gathering
+
+       * src/alloc.c (make_interval, allocate_string, make_float)
+       (free_cons, Fcons, setup_on_free_list)
+       (allocate_vector_from_block, Fmake_symbol):
+       Do not update gcstat, since it is for statistics from the most
+       recent GC, not for a partially-updated hodgepodge.
+       (sweep_vectors): Update gcstat, since setup_on_free_list
+       no longer does.
+       (garbage_collect_1): Rename to garbage_collect and adopt its API.
+       Remove the old garbage_collect, which is no longer needed.
+       All callers changed.
+
+2019-09-13  Gemini Lasswell  <address@hidden>
+
+       Don't build print-number-table unless it will be used
+
+       There are only a few users of print-number-table, and none of them use
+       it when print-circle is nil.  A couple of them used to.  print_object
+       was changed in 2012-04-20 "* src/print.c (print_preprocess): Only
+       check print_depth if print-circle is nil".
+       byte-compile-output-docform which uses print-number-table binds
+       print-circle to t before printing unless
+       byte-compile-disable-print-circle is set, but that variable has been
+       marked obsolete since 24.1.
+
+       * src/print.c (print_preprocess): Assert Vprint_circle is non-nil.
+       Remove code handling the case when Vprint_circle is nil.
+       (print, Fprint_preprocess): Don't call print_preprocess unless
+       Vprint_circle is non-nil.
+       (print_object): Remove comment referencing removed code in
+       print_preprocess.
+
+2019-09-13  Gemini Lasswell  <address@hidden>
+
+       Create common tests for print.c and cl-print.el
+
+       * test/lisp/emacs-lisp/cl-print-tests.el
+       (cl-print--test, cl-print-tests-1, cl-print-tests-2)
+       (cl-print-tests-3, cl-print-tests-4, cl-print-tests-5)
+       (cl-print-tests-strings, cl-print-circle, cl-print-circle-2):
+       Remove.
+       * test/src/print-tests.el (print-tests--prin1-to-string): New
+       alias.
+       (print-tests--deftest): New macro.
+       (print-hex-backslash, print-read-roundtrip, print-bignum): Define with
+       print-tests--deftest and use print-tests--prin1-to-string.
+       (print-tests--prints-with-charset-p): Use
+       print-tests--prin1-to-string.
+       (print-tests--print-charset-text-property-nil)
+       (print-tests--print-charset-text-property-t)
+       (print-tests--print-charset-text-property-default): Define with
+       print-tests--deftest.
+       (print-tests-print-gensym)
+       (print-tests-continuous-numbering, print-tests-1, print-tests-2)
+       (print-tests-3, print-tests-4, print-tests-5)
+       (print-tests-strings, print-circle, print-circle-2): New tests.
+       (print--test, print-tests-struct): New cl-defstructs.
+
+2019-09-13  Gemini Lasswell  <address@hidden>
+
+       Fix unnecessary hash table creation in cl-prin1 (bug#36566)
+
+       cl-prin1 prints all its punctuation by passing strings to prin1.  When
+       print-circle was set, print_preprocess was creating a new hash table
+       for each string, causing excessive garbage collection when printing
+       large Lisp objects with cl-prin1.
+
+       * src/print.c (print_number_index): Fix typo in comment above.
+       (PRINT_CIRCLE_CANDIDATE_P): Don't create print_number_table
+       for top-level strings with no properties, except when
+       print_continuous_numbering is on.
+
+2019-09-13  Gemini Lasswell  <address@hidden>
+
+       Improve performance of backtrace printing (bug#36566)
+
+       * lisp/emacs-lisp/cl-print.el (cl-print-to-string-with-limit): Reduce
+       print-level and print-length more quickly when the structure being
+       printed is very large.
+
+2019-09-13  Gemini Lasswell  <address@hidden>
+
+       Improve print output options commands in backtrace-mode (bug#36566)
+
+       * lisp/emacs-lisp/backtrace.el (backtrace-view): Mention
+       :print-gensym in docstring.
+       (backtrace-mode-map): Add keyboard binding for
+       backtrace-toggle-print-gensym.  Add menu entries for
+       backtrace-toggle-print-circle and backtrace-toggle-print-gensym.
+       (backtrace--with-output-variables): Bind print-gensym with value
+       of :print-gensym found in view plist.
+       (backtrace-toggle-print-circle): Remove description of
+       implementation details from docstring.
+       (backtrace-toggle-print-gensym): New command.
+       (backtrace--toggle-feature): Add echo area message describing result
+       of command.
+
+       * test/lisp/emacs-lisp/backtrace-tests.el
+       (backtrace-tests--print-circle): New test.
+
+       * doc/lispref/debugging.texi (Backtraces): Document keyboard
+       binding for backtrace-toggle-print-gensym.
+
+2019-09-13  Stefan Kangas  <address@hidden>
+
+       * lisp/help-mode.el (help-mode-menu): Fix typo.  (Bug#36485)
+
+       * doc/misc/efaq.texi: Update ancient formats. (Bug#37143)
+
+2019-09-13  Stefan Kangas  <address@hidden>
+
+       Remove leftover XEmacs compat code and doc fixes
+
+       * lisp/mail/feedmail.el (top-level): Remove outdated comment.
+       (feedmail-run-the-queue): Remove leftover XEmacs compat code.
+       (feedmail-nuke-bcc): Doc fix.
+
+       * lisp/emulation/viper.el (top-level, viper-mode)
+       * lisp/net/rfc2104.el (top-level): Doc fix.
+
+       * lisp/textmodes/table.el (top-level): Remove obsolete todo.
+
+2019-09-13  Stefan Kangas  <address@hidden>
+
+       Change gui--selection-value-internal comment into doc string
+
+       * lisp/select.el (gui--selection-value-internal): Change comment into
+       doc string.  (Bug#25528)
+
+2019-09-13  Michael Albinus  <address@hidden>
+
+       Fix problems in tramp-test33-environment-variables
+
+       * test/lisp/net/tramp-tests.el (tramp-test33-environment-variables):
+       Use ${parameter:-word} construct.  Remove PS1 entry from
+       "printenv" output.
+       (tramp--test-check-files): Use "printenv".
+
+2019-09-13  Michael Albinus  <address@hidden>
+
+       Make recent Tramp patch work for tramp-archive.el
+
+       * lisp/net/tramp.el (tramp-connectable-p): Make it work also for
+       tramp-archive.el.
+
+2019-09-13  Eli Zaretskii  <address@hidden>
+
+       Fix assertion violations due to non-ASCII text in menus
+
+       * src/xdisp.c (tool_bar_height, redisplay_tool_bar)
+       (display_menu_bar): If the Lisp string to be displayed in the
+       menu-bar or tool-bar window is multibyte, tell the display
+       engine to treat it as multibyte, instead of relying on the
+       initial determination by init_iterator (which is based on the
+       multibyteness of the current buffer).  (Bug#37385)
+
+2019-09-12  Jack Coughlin  <address@hidden>  (tiny change)
+
+       Fix saving user-defined calc commands with compositions (Bug#36720)
+
+       * lisp/calc/calc-prog.el (calc-user-define-permanent): Correctly save
+       the composition when the user specifies their formula by its command
+       name or key.
+
+2019-09-12  Noam Postavsky  <address@hidden>
+
+       Fix fill-paragraph in python docstrings (Bug#36056)
+
+       * lisp/progmodes/python.el (python-do-auto-fill): New function.
+       (python-mode): Set it as normal-auto-fill-function, and don't set
+       fill-indent-according-to-mode.  Having the latter set during
+       fill-paragraph gives wrongs result, because python-indent-line doesn't
+       remove indentation added by filling.
+       * test/lisp/progmodes/python-tests.el (python-fill-docstring): New
+       test.
+
+2019-09-12  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/sh-script.el (sh--assignment-collect): Only after `=`!
+
+2019-09-12  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/sh-script.el (sh-mode-map): Don't bind `=`
+
+       (sh-shell-initialize-variables): Use sh--assignment-collect on
+       post-self-insert-hook instead.
+       (sh--assignment-collect): New function, extracted from sh-assignment.
+       (sh-assignment): Use it and mark as obsolete.
+
+2019-09-12  Karl Fogel  <address@hidden>
+
+       Add `isearch-yank-until-char'
+
+       * lisp/isearch.el (isearch-yank-until-char): New function.
+         (isearch-mode-map, isearch-menu-bar-yank-map): Add it.
+         (isearch-forward): Document the new binding.
+
+       * doc/emacs/search.texi (Isearch Yanking): Document the feature.
+
+       * etc/NEWS: Mention the above.
+
+2019-09-12  Michael Albinus  <address@hidden>
+
+       Optimize host name completion in Tramp
+
+       * lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
+       * lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
+       * lisp/net/tramp-sh.el (tramp-maybe-open-connection):
+       * lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection):
+       Throw `non-essential' at the beginning of the function.
+
+       * lisp/net/tramp.el (tramp-handle-file-exists-p):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-file-exists-p):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-file-exists-p):
+       Run only when host is connectable.  This is due to host name
+       completion, which shall be optimized.
+
+       * lisp/net/tramp-smb.el (tramp-smb-do-file-attributes-with-stat)
+       (tramp-smb-get-file-entries): Access connection buffer only after
+       sending the command.
+
+       * lisp/net/tramp.el (tramp-get-buffer, tramp-get-connection-buffer):
+       New argument DONT-CREATE.
+       (tramp-message): Use it.
+       (tramp-get-mutex): Check, whether host is connectable.
+       (tramp-file-name-handler): Set thread only when host is connectable.
+       (tramp-connectable-p): Allow also VEC as argument.
+       (tramp-completion-handle-file-name-completion): Do not expand directory.
+
+2019-09-12  Stefan Monnier  <address@hidden>
+
+       * src/profiler.c: Leave `key` hashslots as Qunbound (bug#37382)
+
+       Now that "key == Qunbound" is used to determine if a hash table entry
+       is available, we can't stash pre-allocated vectors into the `key` slot
+       anymore, so use the `value` slot instead.
+
+       (make_log): Pre-fill the `value` slots i.s.o `key`.
+       (evict_lower_half): Stash key back into `value`, i.s.o `key`.
+       (record_backtrace): Get pre-allocated vector for `value` i.s.o `key`.
+
+2019-09-12  Paul Eggert  <address@hidden>
+
+       Fix file name encoding when open_directory signals
+
+       * src/dired.c (open_directory): New arg ENCODED_DIRNAME.
+       All callers changed.  Signal error with original name,
+       not encoded name.
+
+2019-09-11  Paul Eggert  <address@hidden>
+
+       Improve error reporting for DOC file problems
+
+       * src/doc.c (get_doc_string): Report all serious errors
+       when DOC cannot be opened, not just fd-exhaustion errors.
+
+2019-09-11  Paul Eggert  <address@hidden>
+
+       Fix directory-files-and-attributes race
+
+       * src/dired.c (directory_files_internal): Fix race condition:
+       when some other process removed a file between the readdir and
+       the ensuing lstat, directory-files-and-attributes would return
+       a list containing nil.
+
+2019-09-11  Paul Eggert  <address@hidden>
+
+       Omit duplicate test of current directory
+
+       * src/callproc.c (encode_current_directory): Remove redundant
+       call to Ffile_accessible_directory_p.  The code checks the
+       encoded name with file_accessible_directory_p anyway.
+
+2019-09-11  Paul Eggert  <address@hidden>
+
+       Improve checking of pdump load failures
+
+       * src/alloc.c (memory_full): Just report "memory exhausted" if
+       failure occurs during initialization, since fancier recovery
+       schemes are not likely to work when not initialized.
+       * src/emacs.c (dump_error_to_string): Accept int, not enum
+       pdumper_load_result, since the result might not fit in the
+       enum.  Use strerror if it was derived from errno.  This is for
+       better diagnostics of pdump load failures.
+       (load_pdump_find_executable): Return char *, not enum.  2nd
+       arg is now pointer to buffer size, rather than pointer to
+       pointer to buffer.  All callers changed.  Use Emacs allocator
+       since they should now be OK even during early startup.
+       Use check_executable instead access, to use effective rather
+       than real permissions.
+       (load_pdump): Return void since callers ignore result.
+       Use int where enum could be too narrow.  Use heap rather
+       than stack for possibly-long string.  Prefer ptrdiff_t to
+       size_t.
+       * src/fileio.c (check_executable): Now extern.
+       * src/pdumper.c (pdumper_load): Return int that may have
+       errno added to it, for better diagnostics when loads fail.
+
+2019-09-11  Paul Eggert  <address@hidden>
+
+       Reset dbus registered buses on dump load
+
+       Problem reported by Leonard Lausen (Bug#37331).
+       * src/dbusbind.c: Include pdumper.h.
+       (syms_of_dbusbind_for_pdumper):
+       New function, to reset the registered buses.
+       (syms_of_dbusbind): Use it, fixing a TODO.
+
+2019-09-11  Paul Eggert  <address@hidden>
+
+       Fix auto-save with user-emacs-directory
+
+       * lisp/startup.el (auto-save-list-file-prefix): Delay initialization,
+       since the value depends on user-emacs-directory (Bug#37354).
+
+2019-09-11  Mattias Engdegård  <address@hidden>
+
+       * lisp/emacs-lisp/elint.el (elint-directory-skip-re): Fix doc typo.
+
+2019-09-10  Katsumi Yamaoka  <address@hidden>
+
+       Create a new overlay used to mark Attachment header (bug#37370)
+
+       * lisp/gnus/gnus-art.el (gnus-mime-inline-part)
+       (gnus-mm-display-part, gnus-mime-buttonize-attachments-in-header):
+       Create a new overlay used to mark Attachment header instead of
+       using existing overlays.
+
+2019-09-10  Stephen Leake  <address@hidden>
+
+       Merge commit '74e9799bd89484b8d15bdd6597c68fc00d07e7f7'
+
+2019-09-10  Stephen Leake  <address@hidden>
+
+       Support `cl-defstruct' in autoloads
+
+       * lisp/emacs-lisp/autoload.el (make-autoload): Add `cl-defstruct' to
+       "complex cases" list.
+
+       * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Add :autoload-end to
+       limit what is declared in autoloads.el for a defstruct.
+
+2019-09-09  Ulf Jasper  <address@hidden>
+
+       Handle missing start-time when importing ical event (Bug#33277)
+
+       * lisp/calendar/icalendar.el (icalendar--convert-ical-to-diary): Set
+       start time only if it is explicitly given in ical.  Do not use
+       start-time as default for end-time (Bug#33277).
+
+       * test/lisp/calendar/icalendar-tests.el (icalendar-import-bug-33277):
+       New.  Test fix for Bug#33277.
+
+2019-09-08  Tino Calancha  <address@hidden>
+
+       query-replace-regexp undo: Update next-replacement after undo
+
+       * lisp/replace.el (perform-replace):
+       Rename the local binding to not shadow next-replacement.
+       Update next-replacement after undo (Bug#37287).
+
+       * test/lisp/replace-tests.el (query-replace-undo-bug37287): Add test.
+       (query-replace-undo-bug37073): Tweak this test.
+
+2019-09-08  Stefan Kangas  <address@hidden>
+
+       Match Python 3 code object names in "M-x pdb"
+
+       * lisp/progmodes/gud.el (gud-pdb-marker-regexp): Match Python 3 code
+       object names.  (Bug#11679)
+
+2019-09-08  Stefan Kangas  <address@hidden>
+
+       Remove final XEmacs compat code from dframe.el
+
+       * lisp/dframe.el (top-level): Doc fix.
+       (dframe-frame-parameter): Redefine as an obsolete function alias for
+       'frame-parameter'.
+
+2019-09-08  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Define setter functions.
+
+       When :noinline is specified one can't rely on setf expanding the
+       inlinable function to construct the setter.
+       Fixes bug#37283.
+
+2019-09-08  Stefan Kangas  <address@hidden>
+
+       Remove support for upgrading from old bookmark file format
+
+       * lisp/bookmark.el (bookmark-alist-from-buffer): Remove support for
+       old bookmark file format.  (Bug#37122)
+       (bookmark-upgrade-version-0-alist)
+       (bookmark-upgrade-file-format-from-0)
+       (bookmark-grok-file-format-version)
+       (bookmark-maybe-upgrade-file-format): Declare obsolete.
+       (bookmark-load): Don't call 'bookmark-maybe-upgrade-file-format'.
+       * etc/NEWS: Announce it.
+
+2019-09-08  Juri Linkov  <address@hidden>
+
+       * lisp/tmm.el: Fix broken tmm-prompt (bug#34517)
+
+       * lisp/tmm.el (tmm-prompt): Don't duplicate items of tmm--history.
+       Don't reverse tmm-km-list for completion.  Don't set the initial
+       position of 'tmm--history.  Use reverse tmm--history as the list
+       of default values for M-n.
+       (tmm-add-prompt): Don't insert initial value to the minibuffer.
+
+2019-09-08  Juri Linkov  <address@hidden>
+
+       Small fixes for tty and w32.
+
+       * lisp/menu-bar.el (showhide-tab-bar): Visible on tty too.
+       * lisp/tab-bar.el (tab-bar-mode): Add binding [(control shift tab)] for 
w32.
+       * lisp/tab-line.el (tab-line-add-tab): Use tmm-prompt for buffer-menu 
on tty.
+       * src/w32term.c (w32_read_socket): Fix tool-bar clicks.
+
+2019-09-08  Alan Mackenzie  <address@hidden>
+
+       Fix untidinesses in compile.el.
+
+       * lisp/progmodes/compile.el (compilation--margin-string): Renamed from
+       compilation-margin-string.  Use defconst rather than defvar.  Use 
propertize
+       rather than a separate put-text-property.  Trim the doc string.
+
+2019-09-08  Michael Albinus  <address@hidden>
+
+       Fix Bug#36090
+
+       * lisp/vc/vc-hg.el (vc-hg--pushpull, vc-hg-merge-branch)
+       (vc-hg-command): Disable pager.  (Bug#36090)
+
+2019-09-08  Michael Albinus  <address@hidden>
+
+       Fix Bug#37202
+
+       * test/lisp/shadowfile-tests.el (shadow-test08-shadow-todo)
+       (shadow-test09-shadow-copy-files): Use truename of
+       `shadow-test-remote-temporary-file-directory'.  (Bug#37202)
+
+2019-09-07  Paul Eggert  <address@hidden>
+
+       Fix bug when gc-cons-percentage is bumped to 0.8
+
+       Problem reported by Michael Heerdegen (Bug#37321).
+       * src/alloc.c (gc_threshold): New static var.
+       (bump_consing_until_gc): Change args from DIFF to THRESHOLD and
+       PERCENTAGE.  All uses changed.  When accounting for a changed
+       gc-cons-percentage, do not assume that total_bytes_of_live_objects
+       returns the same value now that it did the last time we were
+       called.
+
+2019-09-07  Stefan Kangas  <address@hidden>
+
+       Use derived-mode-p consistently in info.el
+
+       * lisp/info.el (Info-hide-note-references, info-display-manual)
+       (info--manual-names): Use derived-mode-p.  (Bug#27583)
+
+2019-09-07  Noam Postavsky  <address@hidden>
+
+       Let byte-compiler recognize that local-variable-p implies boundp
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-maybe-guarded): Add
+       arguments to local-variable-p to the bound list.
+       * lisp/image-mode.el (image-toggle-display-image): Remove no longer
+       needed boundp check.
+
+2019-09-07  Joel Rosdahl  <address@hidden>
+
+       Fix flymake-proc temporary file deletion bug
+
+       * lisp/progmodes/flymake-proc.el (flymake-proc-create-temp-inplace):
+       Include a time string part (hour + minute + second + nanosecond) in
+       the temporary name to make it unique enough.
+       (flymake-proc-legacy-flymake): Store temporary file names in the
+       process for usage in the sentinel.
+       (flymake-proc--process-sentinel): Bind values of temporary file names
+       dynamically to values stored in the process so that the cleanup
+       function will delete the correct temporary file(s).
+
+       Fixes bug#31981.
+
+2019-09-07  Juri Linkov  <address@hidden>
+
+       * lisp/tab-bar.el (tab-bar-make-keymap-1): Don't use fixed "Current 
tab".
+
+       * lisp/tab-bar.el (tab-bar-make-keymap-1):
+       * lisp/tab-line.el (tab-line-tab-name-add):
+       Add space after Unicode char to avoid char clobbering on terminals.
+
+2019-09-07  Alan Mackenzie  <address@hidden>
+
+       Amend the menu caption for page "Display Property" in the Elisp manual.
+
+       * doc/lispref/display.texi (Emacs Display): Replace a content-free menu
+       caption with one mentioning images, margins and text size.
+
+2019-09-07  Eli Zaretskii  <address@hidden>
+
+       Support visiting compressed image files
+
+       * lisp/image-mode.el (image-toggle-display-image): Support
+       visiting compressed image files which are uncompressed by
+       jka-compr.el.  (Bug#37330)
+
+2019-09-07  Michael Albinus  <address@hidden>
+
+       Add traces in shadowfile
+
+       * lisp/shadowfile.el (shadow-add-to-todo)
+       (shadow-remove-from-todo, shadow-save-todo-file):
+       * test/lisp/shadowfile-tests.el (shadow-test08-shadow-todo):
+       Add traces.
+
+2019-09-07  Evgeny Zajcev  <address@hidden>
+
+       Fix input method operation on read-only text
+
+       * lisp/international/quail.el (quail-input-method): Check also
+       read-only property of text in addition to the buffer's
+       read-only state.
+
+2019-09-07  Eli Zaretskii  <address@hidden>
+
+       Allow client connections when in recursive-edit
+
+       * lisp/server.el (server-goto-toplevel): Check minibuffer
+       depth, not recursion depth.  This avoids exiting
+       recursive-edit if a client connection is accepted during
+       recursive-edit.  (Bug#37176)
+
+2019-09-07  Eli Zaretskii  <address@hidden>
+
+       Set inhibit-compacting-font-caches to t by default on MS-Windows
+
+       * src/font.c (syms_of_font) [WINDOWSNT]: Set
+       inhibit-compacting-font-caches to t by default.
+
+       * etc/NEWS: Mention the change.
+
+2019-09-07  Eli Zaretskii  <address@hidden>
+
+       Allow Zs characters to be composed
+
+       * src/composite.c (char_composable_p): Allow SPC and other Zs
+       characters to be composed.
+
+       * lisp/composite.el (compose-gstring-for-graphic): Don't
+       reject characters whose general category is Zs.  (Bug#14461)
+
+2019-09-07  Eli Zaretskii  <address@hidden>
+
+       Revert "file-truename now uses realpath for local files"
+
+       This reverts commit a59839d7556ef85058e09b005f0ff32e59b20ec3.
+       This commit broke the MS-Windows build (because there's no
+       realpath on MS-Windows).  Even if I change the implementation
+       to always signal an error on MS-Windows, the build fails.
+
+2019-09-06  Paul Eggert  <address@hidden>
+
+       file-truename now uses realpath for local files
+
+       This uses fewer syscalls on GNU/Linux and other GNUish platforms.
+       * lisp/files.el (file-truename): Try fileio--truename
+       if there are no handlers.
+       * src/fileio.c: Include stdlib.h, for realpath.
+       (Ffileio__truename): New function.
+
+2019-09-06  Mauro Aranda  <address@hidden>
+
+       Improve file name completion in file and directory widgets (Bug#7779)
+
+       * lisp/wid-edit.el (widget 'file, widget 'directory): Respect the option
+       read-file-name-completion-ignore-case.
+       (widget 'directory): Filter the file names, to only perform directory 
name
+       completion.
+
+2019-09-05  Amin Bandali  <address@hidden>
+
+       Fix erc-lurker-update-status (bug#36843)
+
+       Broken since 2013-08-22 "* lisp/erc/erc.el: Use lexical-binding".
+
+       * lisp/erc/erc.el (erc-message-parsed): New variable.
+       (erc-display-message): Dynamically bind it.
+       (erc-lurker-update-status): Check it instead of using `parsed'
+       directly.  This results in `erc-lurker-state' being properly updated
+       to keep track of non-lurkers, and thus `erc-lurker-p' returning
+       correct results rather than return t for everyone.
+
+2019-09-05  Paul Eggert  <address@hidden>
+
+       Fix bugs when recalculating consing_until_gc
+
+       Problem reported by Joseph Mingrone (Bug#37006#72).
+       * src/alloc.c (watch_gc_cons_threshold)
+       (watch_gc_cons_percentage):
+       Don’t try to store an intmax_t into an int.
+       Redo to make the code clearer.
+       (watch_gc_cons_percentage):
+       Use gc_cons_threshold, not consing_until_gc.
+
+2019-09-05  Juri Linkov  <address@hidden>
+
+       Don't use hook pre-redisplay-functions.  Set buffer-local 
tab-line-format.
+
+       * lisp/tab-line.el (tab-line-format): Move to C.
+       (tab-line-update-window-parameter): Remove function.
+       (global-tab-line-mode): Set the default value of tab-line-format.
+
+       * src/buffer.c (syms_of_buffer): Define buffer-local variable
+       tab-line-format.
+
+       * src/buffer.h (struct buffer): Add tab_line_format_.
+
+       * src/window.c (window_wants_tab_line):
+       * src/xdisp.c (pos_visible_p, display_mode_lines):
+       Check for buffer-local tab_line_format.
+
+2019-09-05  Paul Eggert  <address@hidden>
+
+       Port :safe-renegotiation test to GnuTLS < 3.6.3
+
+       Problem reported by Robert Pluim in
+       https://lists.gnu.org/r/emacs-devel/2019-09/msg00127.html
+       * src/gnutls.c (Fgnutls_peer_status): Simplify test for
+       whether the :safe-renegotiation result is needed, so that it
+       works all the way back to GnuTLS 2.12.2.
+
+2019-09-05  Lars Ingebrigtsen  <address@hidden>
+
+       Further fix for network-security-protocol-checks
+
+       * lisp/net/nsm.el (network-security-protocol-checks): Fix the
+       defcustom type some more (bug#37306).
+
+2019-09-05  Lars Ingebrigtsen  <address@hidden>
+
+       Fix defcustom type of network-security-protocol-checks
+
+       * lisp/net/nsm.el (network-security-protocol-checks): Fix the
+       defcustom type (bug#37306).
+
+2019-09-04  Paul Eggert  <address@hidden>
+
+       Use plain ‘static’ for Emacs C inline functions
+
+       This improved performance of ‘make compile-always’ by 8.2%
+       on my platform (AMD Phenom II X4 910e, Fedora 30 x86-64).
+       * src/conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
+       (INLINE_HEADER_END) [!EMACS_EXTERN_INLINE]: Use plain ‘static’.
+
+2019-09-04  Paul Eggert  <address@hidden>
+
+       Tweak xd_append_arg to pacify -Wnull-dereference
+
+       * src/dbusbind.c (xd_append_arg): Redo to pacify gcc
+       -Wnull-dereference.  Also, check that the Lisp string won’t
+       overrun the C signature buffer.
+
+2019-09-04  Robert Pluim  <address@hidden>
+
+       Don't check for :safe-renegotiation with TLS1.3
+
+       * lisp/net/nsm.el (nsm-protocol-check--renegotiation-info-ext): Don't
+       check when using TLS1.3, renegotiation has been removed from TLS.
+       Reported in
+       
<https://lists.gnu.org/archive/html/help-gnu-emacs/2019-09/msg00005.html>
+
+2019-09-04  Paul Eggert  <address@hidden>
+
+       Don’t mention :safe-renegotiation in TLS 1.3
+
+       * src/gnutls.c (Fgnutls_peer_status): Don’t put the
+       safe-renegotiation indication into the status in TLS 1.3, which
+       removed support for renegotiation.
+
+2019-09-04  Robert Pluim  <address@hidden>
+
+       Fix nsm for unencrypted connections
+
+       When connecting using a cleartext connection, nsm was erroring out and
+       tearing down the connection because it was trying to display
+       nonexistent certificate information.
+
+       * lisp/net/nsm.el (nsm-query-user): Only format certificate status
+       when it is valid.  (Bug#37221)
+
+2019-09-04  Juri Linkov  <address@hidden>
+
+       Text-based nox builds compiled without X window support
+
+2019-09-04  Paul Eggert  <address@hidden>
+
+       Port pdumper mmap to AIX
+
+       * src/pdumper.c (needs_mmap_retry_p) [_AIX]: Return true.
+       Problem observed on AIX 7.1 and 7.2 in GCC compile farm.
+
+2019-09-04  Paul Eggert  <address@hidden>
+
+       Port to platforms with Xrender lib but not header
+
+       * configure.ac (HAVE_XRENDER): Also require ‘#include
+       <X11/extensions/Xrender.h>’ to work.  Problem found
+       on gcc119 in GCC compile farm.
+
+2019-09-04  Mattias Engdegård  <address@hidden>
+
+       Correct arguments to `skip-syntax-forward'
+
+       * lisp/wid-edit.el (widget-sexp-validate): Fix bad calls to
+       `skip-syntax-forward', whose argument is not a regexp.
+
+2019-09-04  Lars Ingebrigtsen  <address@hidden>
+
+       Make the NSM not pop up an X dialogue on non-mouse actions
+
+       * lisp/emacs-lisp/rmc.el (read-multiple-choice): Don't pop up X
+       dialogues on (url-retrieve "https://expired.badssl.com/"; #'ignore)
+       and the like.
+
+2019-09-04  Lars Ingebrigtsen  <address@hidden>
+
+       Preserve more markers when reverting .gpg files
+
+       * lisp/epa-file.el (epa-file--replace-text): Gingerly replace the
+       text in the buffer to preserve as many markers as possible
+       (bug#34720).  This emulates the behaviour of Finsert_file_contents
+       more accurately.
+       (epa-file-decode-and-insert): Remove compat code.
+       (epa-file-insert-file-contents): Use the new function.
+
+       * lisp/emacs-lisp/cl-lib.el (cl-incf): Add autoload cookie.
+
+2019-09-04  Mattias Engdegård  <address@hidden>
+
+       Repair change to compilation-context-lines (bug#36832)
+
+       * lisp/progmodes/compile.el (compilation-set-window):
+       Restore proper behaviour when compilation-context-lines is nil,
+       which is the default.
+
+2019-09-04  Michael Albinus  <address@hidden>
+
+       Further work on Bug#37202
+
+       * test/lisp/shadowfile-tests.el (shadow-debug): Set to t.
+       (shadow--tests-cleanup): Simplify.
+       (shadow-test*): Call `shadow-initialize'.
+       (shadow-test08-shadow-todo, shadow-test09-shadow-copy-files):
+       In cleanup, kill buffers used for test.
+       (top): Do not initialize.
+
+2019-09-04  Robert Pluim  <address@hidden>
+
+       Add description of chinese-sisheng
+
+       * doc/emacs/mule.texi (Input Methods): Add description of
+       chinese-sisheng method for entering characters using pīnyīn.
+
+2019-09-04  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-process-sentinel): Use `process-buffer'.
+
+2019-09-03  Paul Eggert  <address@hidden>
+
+       * src/systime.h (hz): #undef to work around AIX build issue.
+
+2019-09-03  Paul Eggert  <address@hidden>
+
+       Prefer functions to macros in buffer.h
+
+       In buffer.h, prefer inline functions to function-like macros
+       when either will do.  This helps avoid confusion about how
+       many times an arg is evaluated.  On my platform, this patch
+       improves performance of ‘make compile-always’ by 5.7%.
+       Also, prefer enum constants to object-like macros
+       when either will do.
+       * src/buffer.h (BEG, BEG_BYTE, GAP_BYTES_DFL, GAP_BYTES_MIN)
+       (MAX_PER_BUFFER_VARS, NONEXISTENT_MODTIME_NSECS)
+       (UNKNOWN_MODTIME_NSECS, BUFFER_LISP_SIZE, BUFFER_REST_SIZE):
+       Now enum constants, instead of macros.
+       (BUFFER_CEILING_OF, BUFFER_FLOOR_OF, BUF_BEG, BUF_BEG_BYTE)
+       (BUF_BEGV, BUF_BEGV_BYTE, BUF_PT, BUF_PT_BYTE, BUF_ZV)
+       (BUF_ZV_BYTE, BUF_GPT_ADDR, BUF_Z_ADDR, BUF_GAP_END_ADDR)
+       (BUF_COMPUTE_UNCHANGED, SET_PT, TEMP_SET_PT, SET_PT_BOTH)
+       (TEMP_SET_PT_BOTH, BUF_TEMP_SET_PT, SET_BUF_BEGV, SET_BUF_ZV)
+       (SET_BUF_BEGV_BOTH, SET_BUF_ZV_BOTH, SET_BUF_PT_BOTH)
+       (BYTE_POS_ADDR, CHAR_POS_ADDR, CHAR_TO_BYTE, BYTE_TO_CHAR)
+       (PTR_BYTE_POS, FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE)
+       (BUF_BYTE_ADDRESS, BUF_CHAR_ADDRESS, BUF_PTR_BYTE_POS)
+       (BUF_FETCH_CHAR, BUF_FETCH_CHAR_AS_MULTIBYTE, BUF_FETCH_BYTE)
+       (BUFFER_PVEC_INIT, BUFFER_LIVE_P, BUFFER_HIDDEN_P)
+       (BUFFER_CHECK_INDIRECTION, OVERLAY_POSITION, PER_BUFFER_VALUE_P)
+       (SET_PER_BUFFER_VALUE_P, PER_BUFFER_IDX):
+       Now inline functions instead of macros.
+
+2019-09-03  Paul Eggert  <address@hidden>
+
+       * src/xdisp.c (hscroll_window_tree): Fix type typo.
+
+2019-09-03  Paul Eggert  <address@hidden>
+
+       Take last_per_buffer_idx private
+
+       This will simplify future changes.  Turn the runtime check
+       into an eassert, since it’s not needed in production.
+       * src/buffer.c (last_per_buffer_idx): Now static.
+       (valid_per_buffer_idx): New function.
+       * src/buffer.h (PER_BUFFER_VALUE_P, SET_PER_BUFFER_VALUE_P): Use it.
+
+2019-09-03  Paul Eggert  <address@hidden>
+
+       Avoid macros in pdumper.c when it’s easy
+
+       Problem with DUMP_SET_REFERRER mentioned by Pip Cet at end of:
+       https://lists.gnu.org/archive/html/emacs-devel/2019-07/msg00548.html
+       * src/pdumper.c (DANGEROUS, EMACS_RELOC_TYPE_BITS)
+       (EMACS_RELOC_LENGTH_BITS, DUMP_RELOC_TYPE_BITS)
+       (DUMP_RELOC_ALIGNMENT_BITS, DUMP_RELOC_OFFSET_BITS)
+       (DUMP_RELOCATION_ALIGNMENT, DUMP_ALIGNMENT)
+       (WEIGHT_NONE, WEIGHT_NORMAL, WEIGHT_STRONG)
+       (PDUMPER_MAX_OBJECT_SIZE):
+       Now a constant, not a macro.
+       (divide_round_up): Now a function, not a macro DIVIDE_ROUND_UP.
+       All uses changed.
+       (enum link_weight_enum, WEIGHT_NONE_VALUE)
+       (WEIGHT_NORMAL_VALUE, WEIGHT_STRONG_VALUE): Remove.
+       (struct link_weight): Just use an int.
+       (dump_set_referrer): New function, replacing DUMP_SET_REFERRER
+       macro with a different API.  All uses changed.
+       (dump_clear_referrer): Rename from DUMP_CLEAR_REFERRER.
+       All uses changed.
+       (DEFINE_FROMLISP_FUNC, DEFINE_TOLISP_FUNC): Remove.
+       (intmax_t_from_lisp, intmax_t_to_lisp, dump_off_from_lisp)
+       (dump_off_to_lisp): Define without using macros,
+       (dump_off_from_lisp): Add an eassert range check.
+       (DUMP_FIELD_COPY): Simplify.
+
+2019-09-03  Paul Eggert  <address@hidden>
+
+       Avoid casting -1 to possibly-unsigned enum
+
+       * src/alloc.c (mark_maybe_pointer):
+       * src/pdumper.h (pdumper_object_p_precise):
+       Use pdumper_valid_object_type_p.
+       * src/pdumper.c (pdumper_find_object_type_impl):
+       * src/pdumper.h (pdumper_find_object_type):
+       Return int, not enum Lisp_Type.  All callers changed.
+       * src/pdumper.h (PDUMPER_NO_OBJECT): Do not cast -1 to enum
+       Lisp_Type; in theory, C18 says this could yield 7, which would
+       mean PDUMPER_NO_OBJECT == Lisp_Float (!).
+       (pdumper_valid_object_type_p): New function.
+
+2019-09-03  Juri Linkov  <address@hidden>
+
+       Small fix for text-mode display
+
+       * lisp/tab-line.el (tab-line-tab-name): Try to use 
truncate-string-to-width.
+
+       Try to fix compilation errors on macOS
+
+2019-09-03  Daniel Colascione  <address@hidden>
+
+       Run tramp cleanup in correct buffer
+
+       Fixes bug #37297.
+
+       * lisp/net/tramp.el (tramp-process-sentinel): Do process-end cleanup
+       in the tramp buffer, not a random file buffer.
+
+2019-09-03  Paul Eggert  <address@hidden>
+
+       Sync consing_until_gc with gc-cons-threshold
+
+       Add watchers for gc-cons-threshold and gc-cons-percentage
+       that update consing_until_gc accordingly.
+       Suggested by Eli Zaretskii (Bug#37006#52).
+       * src/alloc.c (consing_threshold, bump_consing_until_gc)
+       (watch_gc_cons_threshold, watch_gc_cons_percentage):
+       New functions.
+       (garbage_collect_1): Use consing_threshold.
+       (syms_of_alloc): Arrange to watch gc-cons-threshold and
+       gc-cons-percentage.
+
+2019-09-03  Juri Linkov  <address@hidden>
+
+       Text-mode display of the tab-bar and emulation of clicking on a tty.
+
+       * lisp/tab-bar.el (tab-bar-mouse): New command bound to mouse-1 on 
[tab-bar].
+
+       * lisp/xt-mouse.el (xterm-mouse-event): Use `tab-bar' when clicking
+       on the tab-bar that is on the second row below menu-bar.
+
+       * src/frame.c (set_tab_bar_lines): New function.
+       (frame_windows_min_size): Add FRAME_TAB_BAR_LINES.
+       (make_initial_frame): Call set_tab_bar_lines.
+       (store_frame_param): Call set_tab_bar_lines for Qtab_bar_lines prop.
+       (Fframe_parameters): Call store_in_alist for Qtab_bar_lines.
+
+       * src/xdisp.c (display_tab_bar): New function.
+       (redisplay_window): Call display_tab_bar when `FRAME_WINDOW_P (f)'
+       is NULL on a tty.
+
+2019-09-03  Alan Mackenzie  <address@hidden>
+
+       Use left margin to hold "=>" to indicate current error in fringeless 
windows
+
+       This applies to compilation-mode.  It amends the fix for bug #36832.
+
+       * lisp/progmodes/compile.el (compilation-arrow-overlay): renamed from
+       overlay-arrow-overlay.
+       (compilation-margin-string, compilation--dummy-string): New variables.
+       (compilation-set-up-arrow-spec-in-margin)
+       (compilation-tear-down-arrow-spec-in-margin): New functions.
+       (compilation-set-overlay-arrow): Rewritten to use the new 
variables/functions.
+
+2019-09-03  Michael Albinus  <address@hidden>
+
+       Fix Bug#37202
+
+       * lisp/shadowfile.el (shadow-debug): New defvar.
+       (shadow-read-files): Suppress error if there's no TODO file.
+
+       * test/lisp/shadowfile-tests.el (shadow-debug): Set to nil.
+       (shadow--tests-cleanup): New defun.  Apply to all tests.  (Bug#37202)
+       (shadow-test06-literal-groups): Cleanup temp buffer.
+       (shadow-test08-shadow-todo): Add debug messages.
+       (top): Cleanup initially.
+
+2019-09-02  Juri Linkov  <address@hidden>
+
+       * lisp/tab-line.el: Limit the number of window tabs to 
tab-line-tabs-limit.
+
+       * lisp/tab-line.el: Display truncated tab name in the tooltip.
+
+2019-09-02  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-08-25 intprops.h, verify.h: port better to clang
+       2019-08-21 New strip-trailing-space option for srclist-update
+       * .gitattributes: Remove doc/misc/texinfo.tex special case,
+       which is no longer needed now that Gnulib trims blank-at-eol.
+       * build-aux/install-sh, doc/misc/texinfo.tex, lib/intprops.h:
+       * lib/regex_internal.c, lib/verify.h: Copy from Gnulib.
+
+2019-09-02  Paul Eggert  <address@hidden>
+
+       * doc/lispref/files.texi (Standard File Names): Mention .emacs.d too.
+
+2019-09-02  Robert Pluim  <address@hidden>
+
+       Reword documentation markup description
+
+       * etc/NEWS: Reword temporary note about documentation updates.
+
+2019-09-02  Robert Pluim  <address@hidden>
+
+       Add 'nsm-trust-local-network' to NEWS
+
+       * etc/NEWS: Describe 'nsm-trust-local-network', and warn against its
+       use.
+
+2019-09-01  Glenn Morris  <address@hidden>
+
+       * admin/admin.el (set-version): Check for empty NEWS sections.
+
+2019-09-01  Juri Linkov  <address@hidden>
+
+       Try to add more tab-bar support on macos
+
+       Try to add more tab-bar support on Windows
+
+2019-09-01  Juri Linkov  <address@hidden>
+
+       * src/nsterm.m: Fix arguments to window_from_coordinates function call
+
+       Thanks to Jean-Christophe Helary <address@hidden>
+
+2019-09-01  Martin Rudalics  <address@hidden>
+
+       Fixes to build on Windows
+
+       * src/w32fns.c (w32_set_tab_bar_lines, w32_change_tab_bar_height):
+       New functions.
+
+       * src/w32term.c (w32_create_terminal): Set change_tab_bar_height_hook
+       to w32_change_tab_bar_height.
+
+2019-09-01  Juri Linkov  <address@hidden>
+
+       Add more aliases switch-to-tab, previous-tab, next-tab
+
+2019-09-01  Juri Linkov  <address@hidden>
+
+       Non-graphical access to frame-local tabs (named window configurations)
+
+       * lisp/tab-bar.el (make-tab, delete-tab, tab-bar-list)
+       (tab-bar-list-next-line, tab-bar-list-prev-line)
+       (tab-bar-list-unmark, tab-bar-list-backup-unmark)
+       (tab-bar-list-delete, tab-bar-list-delete-backwards)
+       (tab-bar-list-execute, tab-bar-list-select)
+       (tab-bar-list-mouse-select): New commands.
+       (tab-bar-list-noselect, tab-bar-list-current-tab)
+       (tab-bar-list-delete-from-list): New functions.
+       (tab-bar-list-column): New defvar.
+
+2019-09-01  Noam Postavsky  <address@hidden>
+
+       Fix non-deterministic process test
+
+       * test/src/process-tests.el (set-process-filter-t): Don't assume
+       subprocess output will come in a single chunk, keep waiting for more
+       data until next "prompt" is read from subprocess.
+
+       (cherry picked from commit aa49aa884053d0e8b33efe265f2aade19d1f3f3d)
+
+2019-09-01  Paul Eggert  <address@hidden>
+
+       Fix load-theme bug with user-emacs-directory
+
+       * lisp/custom.el (custom-theme-directory): Delay initialization,
+       since the value depends on user-emacs-directory (Bug#37256).
+
+2019-09-01  Mattias Engdegård  <address@hidden>
+
+       Clarify what counts as whitespace in `string-blank-p'
+
+       * lisp/emacs-lisp/subr-x.el (string-blank-p): Expand doc string.
+
+2019-08-31  Thomas Fitzsimmons  <address@hidden>
+           Noam Postavsky  <address@hidden>
+
+       package.el: Allow Package-Requires to span multiple lines (Bug#36301)
+
+       * lisp/emacs-lisp/package.el (lm-header-multiline): Declare
+       function.
+       (package-buffer-info): Parse Package-Requires with
+       lm-header-multiline instead of lm-header.
+       (Bug#36301)
+
+2019-08-31  Paul Eggert  <address@hidden>
+
+       Make user-emacs-directory a variable
+
+       This is in response to Eli’s review here:
+       https://lists.gnu.org/r/emacs-devel/2019-07/msg00712.html
+       * lisp/subr.el (user-emacs-directory): defvar, not defconst
+
+2019-08-31  Paul Eggert  <address@hidden>
+
+       Improve documentation for recent XDG-related changes
+
+       Adjust documentation in the light of Eli’s review here:
+       https://lists.gnu.org/r/emacs-devel/2019-07/msg00712.html
+       * doc/emacs/custom.texi (Init File, Find Init):
+       * doc/lispref/files.texi (Standard File Names):
+       * doc/lispref/os.texi (Init File):
+
+2019-08-31  Paul Eggert  <address@hidden>
+
+       * doc/lispref/customize.texi: Fix typo.
+
+2019-08-31  Paul Eggert  <address@hidden>
+
+       Calculate user-emacs-directory on startup
+
+       Problem reported by Glenn Morris (Bug#583#56).
+       * lisp/startup.el (startup--xdg-config-default): New constant.
+       (startup--xdg-config-home-emacs): New var.
+       (startup--xdg-or-homedot): New function.
+       (normal-top-level): Use it to set user-emacs-directory early on.
+       (command-line): Also use it to determine the startup init directory.
+       * lisp/subr.el (user-emacs-directory): Just initialize to nil.
+
+2019-08-31  Juri Linkov  <address@hidden>
+
+       Frame-local tab-bar and window-local tab-line.
+
+       * etc/NEWS: Add 'tab-bar-mode' and 'global-tab-line-mode'.
+
+       * etc/TODO: Remove tab-related items.
+
+       * lisp/cus-start.el: Add tab-bar-mode, tab-bar-max-label-size.
+
+       * lisp/frame.el (frame-notice-user-settings): handle tab-bar-lines.
+
+       * lisp/loadup.el: Load "tab-bar".
+
+       * lisp/menu-bar.el (menu-bar-options-save): Add tab-bar-mode.
+       (menu-bar-showhide-menu): Define showhide-tab-bar.
+
+       * lisp/startup.el (tab-bar-images-pixel-height): New defconst.
+       (command-line): Reset tab-bar-mode.
+       (x-apply-session-resources): Add "tabBar", "TabBar".
+
+       * lisp/subr.el (read-key): Add tab-bar.
+
+       * lisp/tab-bar.el: New file.
+       * lisp/tab-line.el: New file.
+
+       * lisp/window.el (window--dump-frame): Add tab-bar-height.
+
+       * src/dispextern.h (enum window_part): Add ON_TAB_LINE.
+       (struct glyph_matrix): Add tab_line_p.
+       (struct glyph_row): Add tab_line_p.
+       (MATRIX_TAB_LINE_ROW): New macro.
+       (MATRIX_FIRST_TEXT_ROW): Handle more mode lines.
+       (MR_PARTIALLY_VISIBLE_AT_TOP): Add WINDOW_TAB_LINE_HEIGHT.
+       (MATRIX_TAB_LINE_HEIGHT, CURRENT_TAB_LINE_HEIGHT)
+       (DESIRED_TAB_LINE_HEIGHT): New macros.
+       (enum face_id): Add TAB_BAR_FACE_ID and TAB_LINE_FACE_ID.
+       (struct it): Add tab_line_p.
+       (tab_bar_item_idx, tab_bar_item_image): New enums.
+       (DEFAULT_TAB_BAR_LABEL_SIZE, DEFAULT_TAB_BAR_BUTTON_MARGIN)
+       (DEFAULT_TAB_BAR_BUTTON_RELIEF, DEFAULT_TAB_BAR_IMAGE_HEIGHT):
+       New constants.
+
+       * src/dispnew.c (adjust_glyph_matrix): Use window_wants_tab_line.
+       (shift_glyph_matrix): Add WINDOW_TAB_LINE_HEIGHT.
+       (clear_current_matrices, clear_desired_matrices):
+       Call clear_glyph_matrix on tab_bar_window.
+       (blank_row): Add WINDOW_TAB_LINE_HEIGHT.
+       (required_matrix_height): Change 2 to 3.
+       (fake_current_matrices): Reset tab_line_p.
+       (adjust_frame_glyphs_for_window_redisplay): Handle tab_bar_window.
+       Add FRAME_TAB_BAR_HEIGHT and FRAME_TAB_BAR_LINES.
+       (free_glyphs): Handle tab_bar_window.
+       (update_frame): Handle tab_bar_window.
+       (update_window): Handle row->tab_line_p.
+       (scrolling_window): Change arg type from bool to int.
+       Change header_line_p to tab_line_p.
+       (buffer_posn_from_coords): Add window_wants_tab_line.
+       (mode_line_string): Use MATRIX_TAB_LINE_ROW for part ON_TAB_LINE.
+
+       * src/frame.c (frame_default_tab_bar_height): New internal variable.
+       (adjust_frame_size): Handle tab_bar_window.
+       (make_frame): Reset tab_bar_redisplayed, tab_bar_resized and
+       last_tab_bar_item.
+       (Ftab_bar_pixel_width): New function.
+       (frame_parms): Add tab-bar-lines.
+       (gui_figure_window_size): Add new arg tabbar_p.
+       (syms_of_frame): Add Qtab_bar_size, Qupdate_frame_tab_bar,
+       Qfree_frame_tab_bar, Qtab_bar_lines, Stab_bar_pixel_width.
+       Add Qtab_bar_lines to frame_inhibit_implied_resize.
+       (tab-bar-mode): New variable.
+
+       * src/frame.h (GCALIGNED_STRUCT): Add tab_bar_window,
+       desired_tab_bar_string, current_tab_bar_string.
+       (GCALIGNED_STRUCT): Add tab_bar_items, last_tab_bar_item,
+       minimize_tab_bar_window_p, tab_bar_redisplayed, tab_bar_resized,
+       tab_bar_lines, tab_bar_height, n_tab_bar_rows, n_tab_bar_items.
+       (fset_tab_bar_items, fset_tab_bar_window)
+       (fset_current_tab_bar_string, fset_desired_tab_bar_string):
+       New inlines.
+       (FRAME_TAB_BAR_LINES, FRAME_TAB_BAR_HEIGHT): New macros.
+       (FRAME_TOP_MARGIN, FRAME_TOP_MARGIN_HEIGHT):
+       Use FRAME_TAB_BAR_LINES.
+
+       * src/fringe.c (draw_fringe_bitmap_1, update_window_fringes):
+       Add WINDOW_TAB_LINE_HEIGHT.
+
+       * src/gtkutil.c (xg_frame_set_char_size): Add FRAME_TABBAR_WIDTH.
+       (x_wm_set_size_hint): Add FRAME_TABBAR_WIDTH.
+
+       * src/keyboard.c (read_char): Handle Qtab_bar.
+       (kbd_buffer_get_event): Handle TAB_BAR_EVENT.
+       (make_lispy_position): Add WINDOW_TAB_LINE_HEIGHT.
+       Handle TAB_BAR_EVENT.
+       (tab_bar_items_vector, tab_bar_item_properties, ntab_bar_items):
+       New internal variables.
+       (tab_bar_items, process_tab_bar_item, set_prop_tab_bar)
+       (parse_tab_bar_item, init_tab_bar_items, append_tab_bar_item):
+       New functions.
+       (read_char_x_menu_prompt, read_key_sequence): Handle Qtab_bar.
+       (tab-bar-separator-image-expression): New variable.
+
+       * src/keymap.c (syms_of_keymap): Add Qtab_bar and Qtab_line.
+
+       * src/menu.c (x_popup_menu_1, Fx_popup_dialog): Handle Qtab_bar.
+
+       * src/termhooks.h (enum event_kind): Add TAB_BAR_EVENT.
+       (GCALIGNED_STRUCT): Add change_tab_bar_height_hook.
+
+       * src/w32fns.c (w32_frame_parm_handlers): Add w32_set_tab_bar_lines.
+
+       * src/w32term.c (w32_draw_window_cursor): Add WINDOW_TAB_LINE_HEIGHT.
+
+       * src/window.c (window_body_height): Add WINDOW_TAB_LINE_HEIGHT.
+       (Fwindow_tab_line_height): New function.
+       (coordinates_in_window): Use window_wants_tab_line with
+       CURRENT_TAB_LINE_HEIGHT.
+       (window_relative_x_coord): Add ON_TAB_LINE.
+       (Fcoordinates_in_window_p): Add ON_TAB_LINE.
+       (window_from_coordinates): Add new arg tab_bar_p.
+       (Fwindow_line_height): Use window_wants_tab_line with
+       WINDOW_TAB_LINE_HEIGHT.
+       (Fwindow_lines_pixel_dimensions): Add WINDOW_TAB_LINE_HEIGHT.
+       (make_window): Set tab_line_height to -1.
+       (window_wants_tab_line): New function.
+       (window_internal_height): Use window_wants_tab_line.
+       (window_scroll_pixel_based): Add WINDOW_TAB_LINE_HEIGHT.
+       (Frecenter): Set minimize_tab_bar_window_p to 1.
+       (GCALIGNED_STRUCT): Add frame_tab_bar_lines and frame_tab_bar_height.
+       (Fcurrent_window_configuration): Set frame_tab_bar_lines and
+       frame_tab_bar_height.
+       (set_window_scroll_bars): Add WINDOW_TAB_LINE_HEIGHT.
+       (syms_of_window): Add Qtab_line_format and Swindow_tab_line_height.
+
+       * src/window.h (GCALIGNED_STRUCT): Add tab_line_height.
+       (WINDOW_TAB_BAR_P, WINDOW_TAB_LINE_HEIGHT, WINDOW_TAB_LINE_LINES):
+       New macros.
+       (WINDOW_TOP_EDGE_Y, WINDOW_BOTTOM_EDGE_Y, WINDOW_TAB_LINE_HEIGHT):
+       Add WINDOW_TAB_BAR_P.
+
+       * src/xdisp.c (window_box_height): Add window_wants_tab_line with
+       MATRIX_TAB_LINE_ROW and CURRENT_TAB_LINE_HEIGHT.
+       (pos_visible_p): Use window_wants_tab_line.
+       Add WINDOW_TAB_LINE_HEIGHT.
+       (get_glyph_string_clip_rects): Add WINDOW_TAB_LINE_HEIGHT.
+       (get_phys_cursor_geometry): Add WINDOW_TAB_LINE_HEIGHT.
+       (remember_mouse_glyph): Use MATRIX_TAB_LINE_ROW for part
+       ON_TAB_LINE.
+       (init_iterator): Use MATRIX_TAB_LINE_ROW for TAB_LINE_FACE_ID.
+       Add WINDOW_TAB_LINE_HEIGHT.  Add window_wants_tab_line.
+       (Fwindow_text_pixel_size): Add WINDOW_TAB_LINE_HEIGHT.
+       (prepare_menu_bars): Call update_tab_bar.
+       (update_tab_bar, build_desired_tab_bar_string)
+       (display_tab_bar_line, tab_bar_height, Ftab_bar_height)
+       (redisplay_tab_bar, tab_bar_item_info, get_tab_bar_item)
+       (handle_tab_bar_click, note_tab_bar_highlight): New functions.
+       (compute_window_start_on_continuation_line): Use window_wants_tab_line.
+       (try_cursor_movement): Use window_wants_tab_line with
+       CURRENT_TAB_LINE_HEIGHT.
+       (redisplay_window): Use window_wants_tab_line with
+       CURRENT_TAB_LINE_HEIGHT.
+       (try_window_reusing_current_matrix): Use window_wants_tab_line
+       with WINDOW_TAB_LINE_HEIGHT.
+       (Fdump_tab_bar_row): New function.
+       (compute_line_metrics): Add WINDOW_TAB_LINE_HEIGHT.
+       (display_line): Use window_wants_tab_line.
+       (display_mode_line): Set tab_line_p to true if face_id is
+       TAB_LINE_FACE_ID.
+       (Fformat_mode_line): Handle Qtab_line and Qtab_bar.
+       (gui_clear_end_of_line): Add WINDOW_TAB_LINE_HEIGHT.
+       (erase_phys_cursor): Use WINDOW_TAB_LINE_HEIGHT.
+       (show_mouse_face): Use tab_bar_window.
+       (note_mode_line_or_margin_highlight): Use MATRIX_TAB_LINE_ROW for
+       area ON_TAB_LINE.
+       (note_mouse_highlight): Call note_tab_bar_highlight,
+       (expose_frame): Handle tab_bar_window.
+       (syms_of_xdisp): Add Sdump_tab_bar_row and Stab_bar_height.
+       (auto-resize-tab-bars, auto-raise-tab-bar-buttons)
+       (tab-bar-border, tab-bar-button-margin, tab-bar-button-relief)
+       (tab-bar-max-label-size): New variables.
+
+       * src/xfaces.c (lookup_basic_face): Add TAB_LINE_FACE_ID and
+       TAB_BAR_FACE_ID.
+       (syms_of_xfaces): Define Qtab_bar and Qtab_line.
+
+       * src/xfns.c (x_set_tab_bar_lines, x_change_tab_bar_height):
+       New functions.
+       (xic_set_statusarea): Add FRAME_TABBAR_TOP_HEIGHT.
+       (frame_geometry): Add FRAME_TAB_BAR_HEIGHT and Qtab_bar_size.
+
+       * src/xterm.c (x_draw_image_relief): Use tab_bar_button_relief.
+       (x_draw_image_relief): Use TAB_BAR_FACE_ID.
+       (handle_one_xevent): Handle tab_bar_window.
+       (x_set_window_size_1): Add FRAME_TABBAR_WIDTH.
+       (x_create_terminal): Set change_tab_bar_height_hook.
+
+       * src/xterm.h (struct x_output): Add tabbar_top_height,
+       tabbar_bottom_height, tabbar_left_width, tabbar_right_width
+       tabbar_widget, tabbar_in_hbox, tabbar_is_packed.
+       (FRAME_TABBAR_TOP_HEIGHT): Add FRAME_TABBAR_TOP_HEIGHT,
+       FRAME_TABBAR_BOTTOM_HEIGHT, FRAME_TABBAR_HEIGHT,
+       FRAME_TABBAR_LEFT_WIDTH, FRAME_TABBAR_RIGHT_WIDTH,
+       FRAME_TABBAR_WIDTH.
+
+2019-08-31  Paul Eggert  <address@hidden>
+
+       Check instead of relying on NOTREACHED
+
+       NOTREACHED was designed for traditional lint decades ago,
+       and _Noreturn now normally subsumes its function.
+       In the one case in Emacs where NORETURN might help and _Noreturn does
+       not, check for NOTREACHED instead of assuming it.
+       * lib-src/etags.c (main):
+       * src/xterm.c (x_connection_closed):
+       Remove NOTREACHED after a call to a _Noreturn function, as NOTREACHED
+       is no longer needed there.  Also, one of the NOTREACHEDs was
+       misplaced, which defeated traditional lint checking anyway.
+       * lib-src/pop.c (pop_getline): Redo so as to not need NOTREACHED.
+       * src/emacs.c (main): Use eassume (false) rather than NOTREACHED,
+       so that running with ENABLE_CHECKING catches any internal error
+       causing the toplevel Frecursive_edit to return.
+
+2019-08-31  Glenn Morris  <address@hidden>
+
+       * test/lisp/net/tramp-tests.el (tramp-test21-file-links): More cleanup.
+
+2019-08-31  Alan Mackenzie  <address@hidden>
+
+       Clarify the use of left/right-margin-width in determining current 
margin width
+
+       * doc/lispref/display.texi (Display-Margins):  Clarify that
+       left/right-margin-width can not be used to determine the current margin 
width,
+       and that window-margins must be used instead.
+
+2019-08-31  Andreas Schwab  <address@hidden>
+
+       Fix compilation with CHECK_STRUCTS
+
+       * src/pdumper.c (dump_hash_table): Update hash of Lisp_Hash_Table.
+
+2019-08-30  Eli Zaretskii  <address@hidden>
+
+       Avoid signaling errors from ls-lisp--insert-directory on macOS
+
+       * lisp/ls-lisp.el (ls-lisp-sanitize): Don't assume the
+       directory entries for ".." and "." will either both be present
+       or both absent.  (Bug#37236)
+
+2019-08-30  Mattias Engdegård  <address@hidden>
+
+       * src/floatfns.c: Check against __FINITE_MATH_ONLY__ (bug#37140)
+
+2019-08-30  Michael Albinus  <address@hidden>
+
+       Extend tramp--test-check-files  (Bug#37228)
+
+       * test/lisp/net/tramp-tests.el (tramp--test-check-files): Test also
+       `directory-files-and-attributes'.  (Bug#37228)
+
+2019-08-30  Koichi Arakawa  <address@hidden>  (tiny change)
+
+       Fix Tramp's directory-files-and-attributes-with-stat  (Bug#37228)
+
+       * lisp/net/tramp-sh.el
+       (tramp-do-directory-files-and-attributes-with-stat): Handle file
+       names with spaces.  (Bug#37228)
+
+2019-08-30  Paul Eggert  <address@hidden>
+
+       emacsclient: adjust to new config file location
+
+       * lib-src/emacsclient.c (open_config): New arg XDG, to respect
+       XDG_CONFIG_HOME, consistently with Emacs proper.  Caller changed.
+       Use XDG convention if available, falling back on the old names
+       if not.
+
+2019-08-30  Paul Eggert  <address@hidden>
+
+       Prefer ~/.config/emacs to ~/.emacs.d if neither exists
+
+       That way, when Emacs starts in a fresh home directory,
+       it prefers the new (XDG) convention rather than the old one.
+       * lisp/files.el (locate-user-emacs-file): Make the parent
+       directories of user-emacs-directory if needed.  This is useful
+       if user-emacs-directory is "~/.config/emacs" and "~/.config"
+       does not yet exist.
+       * lisp/startup.el (command-line):
+       * lisp/subr.el (user-emacs-directory):
+       Prefer XDG_CONFIG_HOME to ~/.emacs.d if neither exists.
+
+2019-08-30  Nick Drozd  <address@hidden>
+
+       Minor copyedits in ido.texi
+
+       * doc/misc/ido.texi (Overview)
+       (Interactive Substring Matching, Prefix Matching)
+       (Regexp Matching, Hidden Buffers and Files)
+       (Changing List Order, Find File At Point, Misc)
+       (All Matching, Replacement): Fix wording, markup and punctuation.
+       (Bug#37225)
+
+2019-08-29  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       1af1240 (origin/emacs-26, emacs-26) ; Remove empty NEWS sections
+       96dd019 (tag: emacs-26.3-rc1, tag: emacs-26.3) * etc/HISTORY: Add Ema...
+
+       # Conflicts:
+       #       etc/NEWS
+
+2019-08-29  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       70829f8 ; ChangeLog.3 update
+
+       # Conflicts:
+       #       ChangeLog.3
+
+2019-08-29  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       290fe4d * ; ChangeLog.3 update
+       e8f176b * etc/NEWS: Delete temporary markup.
+
+       # Conflicts:
+       #       ChangeLog.3
+       #       etc/NEWS
+
+2019-08-29  Stefan Kangas  <address@hidden>
+
+       Add new "make help" target
+
+       * GNUmakefile: Add new "help" target that shows a brief summary of
+       common make targets.  (Bug#12411)
+       * INSTALL
+       * etc/NEWS: Announce it.
+
+2019-08-29  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak shr background colour handling
+
+       * lisp/net/shr.el (shr-fill-line): Extend the background to the
+       end of the line when folding lines.
+
+2019-08-28  Michael Albinus  <address@hidden>
+
+       Clarify meaning of <filename> in test/README
+
+2019-08-28  Paul Eggert  <address@hidden>
+
+       Don't worry about pre-1.0.0 alsa-lib include
+
+       Problem reported by Ergus in:
+       https://lists.gnu.org/r/emacs-devel/2019-08/msg00563.html
+       * configure.ac (ALSA_SUBDIR_INCLUDE): Do not define.
+       * src/sound.c: Assume ALSA_SUBDIR_INCLUDE.
+
+2019-08-27  Paul Eggert  <address@hidden>
+
+       Use XDG conventions more consistently
+
+       Fit in better with the XDG conventions.
+       Something like this was suggested in 2008 (Bug#583)
+       and the XDG conventions seem to have settled down by now.
+       * doc/emacs/custom.texi (Init File, Init Syntax, Find Init):
+       * doc/lispref/files.texi (Standard File Names):
+       * doc/lispref/os.texi (Init File):
+       * doc/misc/url.texi (Customization):
+       * etc/NEWS:
+       Adjust accordingly.
+       * lisp/startup.el (startup--load-user-init-file):
+       If init-file-name is nil, do not load from it; instead
+       just use the alt-file.
+       (find-init-path): Remove; no longer used.
+       (command-line): Don't check twice for XDG.
+       Look at XDG_CONFIG_HOME instead of assuming it's ~/.config.
+       Prefer XDG configuration if it exists; the user can disable
+       this by setting XDG_CONFIG_HOME to some other place.
+       * lisp/subr.el (user-emacs-directory):
+       Prefer XDG configuration if it exists.
+
+2019-08-27  Paul Eggert  <address@hidden>
+
+       Port recent gnutls fixes to gcc -Wpointer-sign
+
+       * src/gnutls.c (Fgnutls_format_certificate):
+       Fix pointer signedness problem.
+
+2019-08-27  Juri Linkov  <address@hidden>
+
+       Browser-like Info-history button menu (bug#37184)
+
+       * doc/misc/info.texi (Help-Int): Using tool-bar to navigate history.
+
+       * lisp/info.el (Info-history-menu): New function.
+       (Info-history-back-menu, Info-history-forward-menu): New commands.
+       (Info-mode-map): Bind Info-history-back-menu and
+       Info-history-forward-menu to tool-bar on C-key.
+
+2019-08-27  Michael Albinus  <address@hidden>
+
+       Deactivate part of tramp--test-check-files on macOS (Bug#36940)
+
+       * test/lisp/net/tramp-tests.el (tramp--test-check-files): Do not
+       search for environment variables on macOS.  (Bug#36940)
+
+2019-08-27  Eli Zaretskii  <address@hidden>
+
+       Fix crashes on MS-Windows when using GnuTLS connections
+
+       * src/gnutls.c (init_gnutls_functions) [WINDOWSNT]: Define and
+       load gnutls_free by an explicit call to GetProcAddress.
+       (gnutls_free) [WINDOWSNT]: Define as a macro that dereferences
+       a function pointer.  (Bug#31946)
+       (Fgnutls_format_certificate): Use make_string_from_bytes
+       instead of going through an intermediate malloc'ed buffer.
+
+2019-08-27  Alex Branham  <address@hidden>
+
+       Fix filename completion in shell mode buffers
+
+       * lisp/shell.el (shell-dynamic-complete-functions): Move
+       pcomplete-completions-at-point down the list so that filename
+       completion has a chance to complete before pcompletion.
+
+       Fixes bug#34330
+
+2019-08-27  Michael Albinus  <address@hidden>
+
+       * test/Makefile.in (test_template): Declare target FOO.log.
+
+2019-08-27  Lars Ingebrigtsen  <address@hidden>
+
+       Fix completion in `read-library-name'
+
+       * lisp/emacs-lisp/find-func.el (read-library-name): Only list
+       .el/.el.gz files when completing (bug#36945).
+
+2019-08-26  Mauro Aranda  <address@hidden>
+
+       Make link widgets obey mouse-1-click-follows-link
+
+       * lisp/wid-edit.el (widget-link-keymap): New variable, a keymap to use
+       inside a link widget.
+       ('link widget): Restore the :follow-link property and add
+       widget-link-keymap as the :keymap property (bug#15682).
+
+2019-08-26  Mauro Aranda  <address@hidden>
+
+       Adapt recentf.el to the change in the Widget Library
+
+       * lisp/recentf.el (recentf-open-files-item): Stop overriding
+       :follow-link property of the link widgets, since now it should
+       work as expected (bug#15682).
+
+2019-08-26  Mauro Aranda  <address@hidden>
+
+       Create push-button widgets instead of links in epa *Keys* buffer
+
+       * lisp/epa.el (epa--select-keys): Make OK and Cancel into buttons
+       (bug#15682).
+
+2019-08-26  Paul Eggert  <address@hidden>
+
+       Fix Tramp rounding of file sizes and inode numbers
+
+       * lisp/net/tramp-sh.el (tramp-perl-file-attributes)
+       (tramp-perl-directory-files-and-attributes)
+       (tramp-do-file-attributes-with-stat)
+       (tramp-do-directory-files-and-attributes-with-stat):
+       Format file sizes and inode numbers without trailing ".0",
+       to avoid rounding errors when absolute values exceed 2**53
+       (Bug#36940#94).  This fixes the problem for Emacs 27 and later,
+       and doesn't hurt in earlier Emacs.
+
+2019-08-26  Stefan Kangas  <address@hidden>
+
+       Prefer display-line-numbers over linum in docs and one defcustom
+
+       * doc/misc/efaq.texi: Replace linum with display-line-numbers.
+       * lisp/progmodes/prog-mode.el (prog-mode-hook): Replace linum-mode
+       with display-line-numbers-mode in :options.  (Bug#37120)
+
+2019-08-26  Juri Linkov  <address@hidden>
+
+       * src/keyboard.c (parse_tool_bar_item): Use CAPTION when HELP is 
unavailable
+
+       while adding equivalent key binding to the tooltip. (Bug#36156)
+
+2019-08-26  Eli Zaretskii  <address@hidden>
+
+       Fix crashes in networking with GnuTLS on MS-Windows
+
+       * src/gnutls.c (init_gnutls_functions) [WINDOWSNT]: Define and
+       load gnutls_free.
+       (Fgnutls_format_certificate): Use gnutls_free instead of
+       xfree.  This prevents crashes on MS-Windows, since the memory
+       being released was allocated inside GnuTLS.  (Bug#31946)
+
+2019-08-25  Lars Ingebrigtsen  <address@hidden>
+
+       Allow finding gpg2 binaries when gpg2 has an "unknown" version string
+
+       * lisp/epg-config.el (epg-find-configuration): Allow finding a
+       usable configuration even if the version string looks like "gpg
+       (GnuPG) 2.2.15-unknown" (bug#35629).
+
+2019-08-25  Teemu Likonen  <address@hidden>
+
+       Only use --sender for gpg when gpg supports it
+
+       * lisp/epg-config.el (epg-required-version-p): New function (bug#37025).
+
+       * lisp/gnus/mml-sec.el (mml-secure-epg-sign):
+       * lisp/epg.el (epg-start-sign):
+       (epg-start-encrypt): Use it to only use --sender when the gpg
+       binary supports it.
+
+2019-08-25  Lars Ingebrigtsen  <address@hidden>
+
+       Fix ede-proj-project class
+
+       * lisp/cedet/ede/proj.el (ede-proj-project): Make class inherit
+       from eieio-named to get object-name slot (bug#37181).
+
+2019-08-25  Paul Eggert  <address@hidden>
+
+       Fix bug with non-paletted transparent PNGs
+
+       Adapted from a fix by YAMAMOTO Mitsuharu (Bug#37153#77).
+       * src/image.c (png_load_body): Fix bug with non-paletted
+       transparent images.
+
+2019-08-25  Paul Eggert  <address@hidden>
+
+       Fix misdisplay of PNG paletted images
+
+       Problem reported by Roland Winkler (Bug#37153).
+       Derived from a patch suggested by YAMAMOTO Mitsuharu (Bug#37153#62).
+       * src/image.c (png_get_valid) [WINDOWSNT]:
+       Do not dynamically link this function.
+       (png_get_tRNS) [WINDOWSNT && PNG_tRNS_SUPPORTED]:
+       Dynamically link this function instead.
+       (png_load_body): Do not assume that every paletted image supplies
+       only transparency data.  Fix typo in use of transparent_p.
+
+2019-08-25  Michael Albinus  <address@hidden>
+
+       Fix a further part of Bug#36940
+
+       * lisp/net/tramp-sh.el (tramp-perl-file-attributes)
+       (tramp-perl-directory-files-and-attributes)
+       (tramp-do-file-attributes-with-stat)
+       (tramp-do-directory-files-and-attributes-with-stat): Return size
+       and inode as floating number.  (Bug#36940).
+
+2019-08-25  Alan Mackenzie  <address@hidden>
+
+       Introduce new value t for compilation-context-lines to eliminate 
scrolling
+
+       In particular, to prevent scrolling in a window lacking a left fringe.
+       Instead, a visible arrow "=>" is inserted before column zero.  This 
fixes
+       bug #36832.
+
+       * lisp/progmodes/compile.el (compilation-context-lines): Add the new 
value t.
+       (compilation-set-window): Amend to handle compilation-context-lines 
being t.
+       (overlay-arrow-overlay): New variable holding an overlay with 
before-string
+       property "=>".
+       (compilation-set-overlay-arrow): New function which manipulates
+       overlay-arrow-overlay.
+       (compilation-goto-locus, compilation-find-file): In addition to calling
+       compilation-set-window, also call compilation-set-overlay-arrow.
+
+       * doc/emacs/building.texi (Compilation Mode): Document the new value t 
which
+       compilation-context-lines can take.
+
+       * etc/NEWS: Add an entry for this change.
+
+2019-08-25  Alex Ott  <address@hidden>
+
+       Fix minor problems in TUTORIAL.ru
+
+       This fixes wording and avoids visiting the tutorial in
+       Ruby mode.
+
+2019-08-25  Eli Zaretskii  <address@hidden>
+
+       Fix a recent change in coding.c
+
+       This partially reverts the changes in "extern function cleanup".
+       * src/coding.c (encode_string_utf_8, decode_string_utf_8): Now
+       extern again.  They should NOT be static, as they are intended
+       to be used by the likes of json.c, where we need
+       highly-optimized code for processing UTF-8 strings.  E.g.,
+       decode_string_utf_8 beats make_string_from_utf8 by a factor of
+       2 to 5 in a large number of scenarios.
+
+2019-08-24  Lars Ingebrigtsen  <address@hidden>
+
+       Use ' instead of ` in NEWS
+
+2019-08-24  Lars Ingebrigtsen  <address@hidden>
+
+       Use `autoconf-mode' for Autoconf .m4 files
+
+       * lisp/files.el (auto-mode-alist): Use `autoconf-mode' (instead of
+       `m4-mode') for acinclude.m4/aclocal.m4/acsite.m4 files (bug#37133).
+
+2019-08-24  Alex Branham  <address@hidden>
+
+       The `gnus*-1' functions shouldn't be interactive
+
+       * lisp/gnus/gnus-start.el (gnus-no-server-1): This function
+       shouldn't be interactive (bug#37022).
+       (gnus-1): Ditto.
+
+2019-08-24  Lars Ingebrigtsen  <address@hidden>
+
+       Disallow just hitting RET in gnus-mime-replace-part
+
+       * lisp/gnus/gnus-art.el (gnus-mime-replace-part): Don't replace
+       the part if the file to replace it with doesn't exist (bug#36864).
+
+2019-08-24  Paul Eggert  <address@hidden>
+
+       Clarify Fx_parse_geometry initialization
+
+       * src/frame.c (Fx_parse_geometry): Clarify why local init
+       isn’t needed.
+
+2019-08-24  Paul Eggert  <address@hidden>
+
+       Tweak time arithmetic performance
+
+       * src/timefns.c (time_arith): Prefer mpz_divexact to mpz_tdiv_q
+       when either will do.
+
+2019-08-24  Paul Eggert  <address@hidden>
+
+       Speed up % and mod with fixnum denom
+
+       * src/data.c (integer_remainder): New function.  When the
+       numerator is a bignum and the denominator is small, this function
+       uses mpz_tdiv_ui, which should be faster than mpz_tdiv_r.
+       (Frem, Fmod): Use it.
+
+2019-08-24  Paul Eggert  <address@hidden>
+
+       Tweak integer mod performance
+
+       * src/data.c (integer_mod): Use mpz_tdiv_r not mpz_mod, as that’s
+       more similar to the fixnum case, is a bit more efficient, and
+       otherwise the later ‘sgn_r < 0’ code is useless anyway.
+
+2019-08-24  Paul Eggert  <address@hidden>
+
+       Make (mod 1.0 0) consistent with (/ 1.0 0)
+
+       * src/data.c (Fmod): Do not signal an error for (mod 1.0 0), for
+       the same reason (/ 1.0 0) does not signal an error.
+       * test/src/data-tests.el (data-tests-mod-0): New test.
+
+2019-08-24  Paul Eggert  <address@hidden>
+
+       extern function cleanup
+
+       Most of these functions can be static.  A few are unused.
+       * src/coding.c (encode_string_utf_8, decode_string_utf_8):
+       Define only if ENABLE_UTF_8_CONVERTER_TEST, as they're
+       not needed otherwise.
+       * src/coding.c (encode_string_utf_8, decode_string_utf_8):
+       * src/data.c (integer_mod):
+       * src/fns.c (base64_encode_region_1, base64_encode_string_1):
+       * src/ftfont.c (ftfont_get_fc_charset):
+       Now static.
+       * src/sysdep.c (verrprintf): Remove; unused.
+
+2019-08-24  Noam Postavsky  <address@hidden>
+
+       Fix non-deterministic process test
+
+       * test/src/process-tests.el (set-process-filter-t): Don't assume
+       subprocess output will come in a single chunk, keep waiting for more
+       data until next "prompt" is read from subprocess.
+
+2019-08-24  Eli Zaretskii  <address@hidden>
+
+       Revert "Recompute user-emacs-directory-relative defcustoms one more 
time"
+
+       This reverts commit bb5cd7c4caf415e40836edbbc4e62b0dd411d73f.
+       See bug#37173.
+
+2019-08-24  Robert Pluim  <address@hidden>
+
+       Fix DNS tests
+
+       * test/src/process-tests.el: (lookup-family-specification,
+       lookup-unicode-domains, unibyte-domain-name, lookup-google,
+       non-existent-lookup-failure): Skip on Hydra, which doesn't have DNS.
+       Fix buggy test condition.  (Bug#37165)
+
+2019-08-24  Michael Albinus  <address@hidden>
+
+       Fix some problems of Bug#36940
+
+       * test/lisp/net/tramp-tests.el (tramp-test22-file-times): Do not
+       compare time value lists by `equal'.  (Bug#36940).
+       (tramp-test30-make-process): Adapt "kill" message to match on macOS.
+
+2019-08-23  Paul Eggert  <address@hidden>
+
+       Tweak gnutls-peer-status reporting
+
+       * src/gnutls.c (Fgnutls_peer_status): Report :compression and
+       :encrypt-then-mac only if the underlying GnuTLS library has
+       the corresponding features.  This give the Elisp caller a bit
+       more information about the peer status.
+       * lisp/net/nsm.el (nsm-protocol-check--compression):
+       Don’t worry about compression in newer GnuTLS versions
+       that do not support compression.
+
+2019-08-23  Lars Ingebrigtsen  <address@hidden>
+
+       Mention new usage of `invalid-read-syntax' in the manual
+
+       * doc/lispref/errors.texi (Standard Errors): Document "trailing
+       garbage" use of `invalid-read-syntax' (bug#24649).
+
+2019-08-23  Paul Eggert  <address@hidden>
+
+       Clarify compiler-pacifier in frame.c
+
+       * src/frame.c (Fx_parse_geometry): Pacify the compiler in a
+       different way, so that the human reader can more easily see
+       that the initializations are unnecessary.
+
+2019-08-23  Eli Zaretskii  <address@hidden>
+
+       Fix compilation --without--x
+
+       * src/xdisp.c (extend_face_to_end_of_line): Fix a recent
+       change that moved the initialization of default_face.
+       Reported by Glenn Morris <address@hidden>.
+
+2019-08-23  Eli Zaretskii  <address@hidden>
+
+       Avoid a compilation warning in w32.c
+
+       * src/w32.c (logon_network_drive): Avoid compilation warning
+       about strncpy arguments.
+
+2019-08-23  Eli Zaretskii  <address@hidden>
+
+       Avoid compilation warning in frame.c
+
+       * src/frame.c (Fx_parse_geometry): Avoid compilation warning
+       about x and y being used without initializing them.
+
+2019-08-23  Noam Postavsky  <address@hidden>
+
+       Print macro modified macro keys as characters not integers
+
+       * lisp/macros.el (macros--insert-vector-macro): Pass all elements to
+       'prin1-char', not just those that satisfy characterp (because characters
+       which have modifier bits set wouldn't qualify otherwise).
+       'prin1-char' will return nil if it can't handle the argument (e.g.,
+       for symbols representing function keys).
+
+2019-08-23  Robert Pluim  <address@hidden>
+
+       Fix compilation of process.c
+
+       * src/process.c (network_lookup_address_info_1): [!HAVE_GAI_STRERROR]:
+       Use make_fixnum instead of make_number.  (Bug#37158).
+
+2019-08-23  Michael Heerdegen  <address@hidden>
+
+       Hi-lock lines up to right margin (Bug#15934)
+
+       * lisp/hi-lock.el (hi-lock-line-face-buffer): Change used regexp so
+       that a line terminating newline character is included in the match.
+
+2019-08-23  Lars Ingebrigtsen  <address@hidden>
+
+       Rename renamed nsm.el variables and functions back
+
+       * doc/emacs/misc.texi (Network Security): Start working on
+       updating the NSM bits, but it's unclear how much of the new stuff
+       to document.
+
+       * lisp/net/nsm.el: Rename all nsm-tls-check-* functions to
+       nsm-protocol-check--* to bring them back into line with the
+       documentation.
+       (network-security-protocol-checks): Renamed back again from
+       `nsm-tls-checks', as this variable is documented and can't just go
+       away.
+
+2019-08-23  Lars Ingebrigtsen  <address@hidden>
+
+       Move all NSM tests away from the `low' level
+
+       * lisp/net/nsm.el (network-security-level, nsm-tls-checks): Make
+       `low' a "check nothing" setting again, and move all the `low'
+       checks back to `medium'.  This makes the test suite work again.
+
+2019-08-23  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak previous tar-mode time stamp code
+
+       * lisp/tar-mode.el (tar-header-block-summarize): Tweak previous
+       commit to output the time stamp in the exact same way that GNU tar
+       does.
+
+2019-08-23  Paul Eggert  <address@hidden>
+
+       Get the Gnutls code compiling on Fedora 30
+
+       The recent changes caused the build to fail on Fedora 30 when built
+       with --enable-gcc-warnings, among other things with diagnostics that
+       gnutls_compression_get and gnutls_compression_get_name are deprecated
+       (this started with GnuTLS 3.6).  Fix this by refusing to call these
+       obsolescent and now-dummy functions in GnuTLS 3.6 and later.  However,
+       this is just a temporary workaround to get the build working; a real
+       fix is needed, as network-stream-tests fail.
+       * src/gnutls.c (HAVE_GNUTLS_COMPRESSION_GET): New macro.
+       (gnutls_compression_get, gnutls_compression_get_name):
+       Define only if HAVE_GNUTLS_COMPRESSION_GET.
+       (init_gnutls_functions): Load the two functions only if
+       HAVE_GNUTLS_COMPRESSION_GET.
+       (emacs_gnutls_certificate_export_pem): Use alloca instead of xmalloc.
+       (Fgnutls_peer_status): Just return "NULL" if the functions
+       are deprecated.
+       (Fgnutls_format_certificate): Fix pointer signedness glitches.
+       * src/process.c: Fix spacing.
+
+2019-08-23  Lars Ingebrigtsen  <address@hidden>
+
+       Put error output from M-! at the end of the error buffer
+
+       * lisp/simple.el (shell-command-on-region): Put the error output
+       at the end of the buffer instead of wherever point is (bug#7513).
+       This avoids interleaving error output.
+
+2019-08-23  Robert Pluim  <address@hidden>
+
+       Move default face lookup
+
+       * src/xdisp.c (extend_face_to_end_of_line): Move default face
+       lookup lower.
+
+2019-08-23  Robert Pluim  <address@hidden>
+
+       Correct description of network-lookup-address-info
+
+       * doc/lispref/processes.texi (Misc Network): Remove erroneous text
+         about port numbers
+
+2019-08-23  Lars Ingebrigtsen  <address@hidden>
+
+       Remove debugging from previous shr.el patch
+
+2019-08-23  Eli Zaretskii  <address@hidden>
+
+       Fix recent changes in gnutls.c
+
+       * src/gnutls.c: Fix typos that broke the MS-Windows build.
+       (Fgnutls_peer_status_warning_describe): Fix incomplete error
+       message string.
+
+2019-08-22  Lars Ingebrigtsen  <address@hidden>
+
+       Avoid an infloop in shr when filling text with :align-to properties
+
+       * lisp/net/shr.el (shr-fill-line): Only join together URL buttons
+       if there are any URL buttons.
+
+2019-08-22  Lars Ingebrigtsen  <address@hidden>
+
+       Fix Gnus display of timestamps that's less than a second old
+
+       * lisp/gnus/gnus-art.el (article-lapsed-string): The elapsed
+       seconds may be a fractional second.  In that case, just say "now".
+
+2019-08-22  Lars Ingebrigtsen  <address@hidden>
+
+       Really save games scores to the games scores directory
+
+       * lisp/play/gamegrid.el
+       (gamegrid-add-score-with-update-game-score): Save games scores to
+       `gamegrid-user-score-file-directory' by default (bug#36971).
+
+2019-08-22  Damien Cassou  <address@hidden>
+
+       Add imenu support to xref
+
+       * lisp/progmodes/xref.el (xref--imenu-prev-index-position)
+       (xref--imenu-extract-index-name): Add functions to get imenu support.
+       (xref--xref-buffer-mode): Set imenu variables to the new functions.
+       * etc/NEWS: Add corresponding entry (bug#36974).
+
+2019-08-22  Lars Ingebrigtsen  <address@hidden>
+
+       Give a better error message when reading invalid "\unicode" escapes.
+
+       * src/lread.c (read_escape): Give a clearer error message on
+       Unicode escape sequences (bug#36988).
+
+2019-08-22  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify doc string of cl-pushnew
+
+       * lisp/emacs-lisp/cl-lib.el (cl-pushnew): Clarify doc string
+       (bug#37016).
+
+2019-08-22  Lars Ingebrigtsen  <address@hidden>
+
+       Fix interaction between url-handler-mode and browse-url
+
+       * lisp/net/browse-url.el (browse-url): Don't expand any URLs (like
+       "man:") that have a scheme when using `url-handler-mode' (bug#37056).
+
+2019-08-22  Lars Ingebrigtsen  <address@hidden>
+
+       Use ISO8601 time formats in tar-mode
+
+       * lisp/tar-mode.el (tar-clip-time-string): Make obsolete (bug#37130).
+       (tar-header-block-summarize): Use ISO8601 time instead of
+       home-brew format.
+
+2019-08-22  Lars Ingebrigtsen  <address@hidden>
+
+       Make dired recognize .lz files
+
+       * lisp/dired-aux.el (dired-compress-file-suffixes): Recognize .lz
+       (lzip) compressed files (bug#37136).
+
+2019-08-22  Lars Ingebrigtsen  <address@hidden>
+
+       Fix too-long lines in nsm.el
+
+       * lisp/net/nsm.el: Fix some too-long lines and some terminology in
+       the doc strings/comments.
+
+2019-08-22  Lars Ingebrigtsen  <address@hidden>
+
+       Mention new NSM warnings
+
+2019-08-22  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak the warning display to be less like a TLS decoding page
+
+       * lisp/net/nsm.el (nsm-parse-subject, nsm-certificate-part):
+       Restore functions for parsing subjects.
+       (nsm-format-certificate): Use them to display more user-friendly
+       data.  Also change the display to have fewer lines again so that
+       the data of interest isn't pushed off the screen.
+
+2019-08-22  Lars Ingebrigtsen  <address@hidden>
+
+       Enable sorting paragraphs when the final paragraph has no newline
+
+       * lisp/sort.el (sort-paragraphs): Ensure that when sorting
+       paragraphs, the final paragraph ends with a newline (bug#21785).
+
+2019-08-22  Lars Ingebrigtsen  <address@hidden>
+
+       Signal an error on `M-x shell-mode'
+
+       * lisp/shell.el (shell-mode): This mode can't usefully be called
+       interactively (and is somewhat destructive, as it disables
+       `undo'), and it's usually confused with `shell-script-mode'
+       (bug#19812).  So signal an error if it's used interactively.
+
+2019-08-22  Lars Ingebrigtsen  <address@hidden>
+
+       Make ibuffer-mark-by-file-name-regexp work on the displayed file name
+
+       * lisp/ibuf-ext.el (ibuffer-mark-by-file-name-regexp): Perform the
+       matching on the abbreviated (i.e., displayed) file name, and not
+       the complete name (bug#18859).  This seems like the more expected
+       action.
+
+2019-08-22  Lars Ingebrigtsen  <address@hidden>
+
+       Have `M-x battery' list all batteries under GNU/Linux
+
+       * lisp/battery.el (battery-upower-device): Remove (bug#25559).
+       (battery--find-linux-sysfs-batteries): New function.
+       (battery-status-function, battery-linux-sysfs): Use it to list all
+       batteries, no matter what they're called.
+
+2019-08-22  Lars Ingebrigtsen  <address@hidden>
+
+       Signal `invalid-read-syntax' for "trailing garbage"
+
+       * src/minibuf.c (string_to_object): Signal `invalid-read-syntax'
+       instead of the generic `error' for "trailing garbage following
+       expression" (bug#24649).
+
+2019-08-22  Lars Ingebrigtsen  <address@hidden>
+
+       Fix skeleton edebug spec
+
+       * lisp/skeleton.el (skeleton-edebug-spec): Fix edebug spec
+       (bug#24779).
+
+2019-08-22  Lars Ingebrigtsen  <address@hidden>
+
+       Run quit-window-hook from the correct buffer
+
+       * lisp/window.el (quit-window): Run the hook from the buffer
+       specified by the WINDOW parameter.
+
+2019-08-22  Eli Zaretskii  <address@hidden>
+
+       Recompute user-emacs-directory-relative defcustoms one more time
+
+       * lisp/startup.el (command-line): Re-evaluate the
+       custom-delayed predefined variables one more time after
+       loading the user's init file.  (Bug#37116)
+
+2019-08-22  Stefan Kangas  <address@hidden>
+
+       Fix minor checkdoc errors in package.el
+
+       * lisp/emacs-lisp/package.el (package-all-keywords)
+       (package-menu--generate, package-archive-priority): Doc fixes.
+
+2019-08-22  Stefan Kangas  <address@hidden>
+
+       Signal user-error on duplicate package refresh
+
+       * lisp/emacs-lisp/package.el (package-menu-refresh): Signal a
+       user-error if there is already a refresh running in the
+       background.  Doc fix.  (Bug#36707)
+
+2019-08-22  Stefan Kangas  <address@hidden>
+
+       * doc/misc/efaq.texi: Note the inclusion year.  (Bug#37142)
+
+2019-08-22  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of 'ispell-skip-html'
+
+       * lisp/textmodes/ispell.el (ispell-skip-html): Doc fix.
+       (Bug#37141)
+
+2019-08-22  Michael Albinus  <address@hidden>
+
+       * doc/misc/tramp.texi: Use @acronym{GVFS}.
+
+2019-08-22  Paul Eggert  <address@hidden>
+
+       Fix Qunbound-Qnil confusion in clrhash patch
+
+       Problem reported by Stefan Monnier.
+       * src/fns.c (hash_clear): Fix typo I introduced in my previous
+       patch here, by setting keys to Qunbound not Qnil.
+
+2019-08-21  Paul Eggert  <address@hidden>
+
+       Remove no-longer-needed workaround for GC bug
+
+       * src/keymap.c (describe_vector): Remove old workaround for GC bug.
+       This workaround, introduced in 1993-02-19T05:43:54Z!address@hidden,
+       has not been needed for some time.  Problem reported by Pip Cet in:
+       https://lists.gnu.org/r/emacs-devel/2019-08/msg00316.html
+
+2019-08-21  Paul Eggert  <address@hidden>
+
+       Don’t debug fset by default
+
+       This GC bug seems to have been fixed, so the check is no longer
+       needed in production code.  From a suggestion by Pip Cet in:
+       https://lists.gnu.org/r/emacs-devel/2019-08/msg00316.html
+       * src/alloc.c (SUSPICIOUS_OBJECT_CHECKING) [!ENABLE_CHECKING]:
+       Do not define.
+       (find_suspicious_object_in_range, detect_suspicious_free):
+       Expand to proper dummy expressions if !SUSPICIOUS_OBJECT_CHECKING.
+       * src/data.c (Ffset): Convert test to an eassert.
+
+2019-08-21  Paul Eggert  <address@hidden>
+
+       Fix clrhash bug when hash table needs rehashing
+
+       Problem reported by Pip Cet in:
+       https://lists.gnu.org/r/emacs-devel/2019-08/msg00316.html
+       * src/fns.c (maybe_resize_hash_table): Prefer ASET to gc_aset
+       where either will do.  Simplify appending of Qunbound values.
+       Put index_size calculation closer to where it’s needed.
+       (hash_clear): If hash_rehash_needed_p (h), don’t clear the
+       nonexistent hash vector.  Use memclear to speed up clearing.
+       * src/lisp.h (HASH_TABLE_SIZE): Check that the size is positive,
+       and tell that to the compiler.
+
+2019-08-21  Paul Eggert  <address@hidden>
+
+       * src/buffer.c: Fix comment typo.
+
+2019-08-21  Paul Eggert  <address@hidden>
+
+       Don’t hard-loop on cycles in ‘read’ etc.
+
+       Problem for ‘read’ reported by Pip Cet in:
+       https://lists.gnu.org/r/emacs-devel/2019-08/msg00316.html
+       * src/fns.c (Frequire): Protect against circular current-load-list.
+       * src/lread.c (Fget_load_suffixes):
+       Protect against circular load-suffixes or load-file-rep-suffixes.
+       (Fload): Protect against circular loads-in-progress.
+       (openp): Protect against circular PATH and SUFFIXES.
+       (build_load_history): Protect against circular load-history or
+       current-load-list.
+       (readevalloop_eager_expand_eval): Protect against circular SUBFORMS.
+       (read1): Protect against circular data.
+       * test/src/lread-tests.el (lread-circular-hash): New test.
+
+2019-08-21  Nicolas Petton  <address@hidden>
+
+       * etc/HISTORY: Add Emacs 26.3 release release date.
+
+2019-08-21  Nicolas Petton  <address@hidden>
+
+       Bump Emacs version to 26.3
+
+       * README:
+       * configure.ac:
+       * msdos/sed2v2.inp:
+       * nt/README.W32: Bump Emacs version.
+
+2019-08-21  Lars Ingebrigtsen  <address@hidden>
+
+       Make hide-ifdef-mode-prefix-key customisable
+
+       * lisp/progmodes/hideif.el (hide-ifdef-mode-prefix-key): Make into
+       a defcustom since it seems like this is something that should be
+       user-customisable (bug#8922).
+
+2019-08-21  Lars Ingebrigtsen  <address@hidden>
+
+       Use `quit-window-hook' in Info instead of having its own command
+
+       * doc/misc/info.texi (Help-Q): Info now uses `quit-window'.
+
+       * lisp/info.el (info-standalone): Adjust doc string.
+       (Info-exit): Made into obsolete alias.
+       (Info-mode-map): Bind "q" to `quit-window'.
+       (Info-mode-menu): Adjust.
+       (info-tool-bar-map): Ditto.
+       (Info-mode): Adjust doc string.
+       (Info-mode): If Info is standalone, kill Emacs on "q".
+
+2019-08-21  Lars Ingebrigtsen  <address@hidden>
+
+       Adjust quit-window-hook documentation
+
+       * doc/lispref/windows.texi (Quitting Windows): Adjust
+       documentation of quit-window-hook (bug#9867).
+
+2019-08-21  Lars Ingebrigtsen  <address@hidden>
+
+       Mention quit-window-hook in "Standard Hooks"
+
+       * doc/lispref/hooks.texi (Standard Hooks): Mention
+       quit-window-hook (bug#9867).
+
+2019-08-21  Lars Ingebrigtsen  <address@hidden>
+
+       Call `quit-window-hook' in the `quit-window' command only
+
+       * lisp/window.el (quit-restore-window): Don't run quit-window-hook
+       here...
+       (quit-window): ... but here instead.  Callers that call the former
+       programmatically can decide themselves whether to call the hook.
+       (quit-window-hook): Fix doc string.
+
+2019-08-21  Lars Ingebrigtsen  <address@hidden>
+
+       Fix the interactive spec for set-frame-width/height
+
+       * src/frame.c (Fset_frame_width):
+       (Fset_frame_height): Use `prefix-numeric-value' to get the proper
+       numeric value (bug#9970).
+
+2019-08-21  Stefan Kangas  <address@hidden>
+
+       * lisp/mail/flow-fill.el: Change todo comment to not mention XEmacs.
+
+2019-08-21  Paul Eggert  <address@hidden>
+
+       Be more careful about pointers to bignum vals
+
+       This uses ‘const’ to be better at catching bugs that
+       mistakenly attempt to modify a bignum value.
+       Lisp bignums are supposed to be immutable.
+       * src/alloc.c (make_pure_bignum):
+       * src/fns.c (sxhash_bignum):
+       Accept Lisp_Object instead of struct Lisp_Bignum *, as that’s
+       simpler now.  Caller changed.
+       * src/bignum.h (bignum_val, xbignum_val): New inline functions.
+       Prefer them to &i->value and XBIGNUM (i)->value, since they
+       apply ‘const’ to the result.
+       * src/timefns.c (lisp_to_timespec): Use mpz_t const *
+       to point to a bignum value.
+
+2019-08-20  Paul Eggert  <address@hidden>
+
+       Update mini-gmp
+
+       * src/mini-gmp.c: Sync from upstream.  This incorporates:
+       2019-08-13 Silence a couple of warnings
+
+2019-08-20  Paul Eggert  <address@hidden>
+
+       Avoid some excess precision in time arithmetic
+
+       * doc/misc/emacs-mime.texi (time-date):
+       Adjust example to match new behavior.
+       * etc/NEWS: Mention this.
+       * lisp/calendar/time-date.el (decoded-time-add)
+       (decoded-time--alter-second):
+       Don’t lose underestimate precision of seconds component.
+       * src/bignum.c (mpz): Grow by 1.
+       * src/timefns.c (trillion_factor): New function.
+       (timeform_sub_ps_p): Remove.
+       (time_arith): Avoid unnecessarily-large hz, by reducing the hz
+       to a value no worse than the worse hz of the two arguments.
+       The result is always exact unless an error is signaled.
+       * test/src/timefns-tests.el (timefns-tests--decode-time):
+       New function.
+       (format-time-string-with-zone): Test (decode-time LOOK ZONE t)
+       resolution as well as its numeric value.
+
+2019-08-20  Noam Postavsky  <address@hidden>
+
+       Respect global-eldoc-mode in minibuffers (Bug#36886)
+
+       * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Accept
+       a BODY parameter.
+       * doc/lispref/modes.texi (Defining Minor Modes): Document new
+       parameter.
+       * etc/NEWS: Announce it.
+
+       * lisp/simple.el (read--expression): Move eldoc-mode setup to...
+       * lisp/emacs-lisp/eldoc.el (eldoc--eval-expression-setup): ... here,
+       new function.
+       (global-eldoc-mode): Add or remove it to
+       eval-expression-minibuffer-setup-hook when enabling or disabling
+       global-eldoc-mode.  This enables eldoc in the minibuffer (solving
+       Bug#27202), only when global-eldoc-mode is enabled.
+
+2019-08-20  Paul Eggert  <address@hidden>
+
+       Support larger TIMEs in (time-convert TIME t)
+
+       Also, improve the doc to match current behavior.
+       * doc/lispref/os.texi (Time Conversion): Document that
+       time-convert signals an error for infinite or NaN args,
+       and that (time-convert TIME t) is exact otherwise.
+       Mention float-time as an alternative to time-convert.
+       (Time Calculations): Document that time-add and time-subtract
+       are exact and do not decrease HZ below the minimum of their args.
+       * src/timefns.c (decode_float_time): Don’t signal an error for
+       floating-point arguments whose base-FLT_RADIX exponent is not less
+       than DBL_MANT_DIG.  Instead, convert them to (TICKS . 1) values.
+       Use two (instead of three) integer exponent comparisons in the
+       typical case.
+       * test/src/timefns-tests.el (time-arith-tests):
+       Add more floating-point tests, including some tests
+       that the old code fails.
+
+2019-08-20  Stephen Leake  <address@hidden>
+
+       Delete built-in ada-mode; Gnu ELPA is a good replacement
+
+       * doc/misc/Makefile.in (INFO_COMMON): Delete ada-mode.
+
+       * doc/misc/ada-mode.texi: Delete.
+
+       * etc/NEWS: Mention ada-mode deleted.
+
+       * lisp/progmodes/ada-mode.el: Delete.
+
+       * lisp/progmodes/ada-prj.el: Delete.
+
+       * lisp/progmodes/ada-stmt.el: Delete.
+
+       * lisp/progmodes/ada-xref.el: Delete.
+
+2019-08-20  Michael Albinus  <address@hidden>
+
+       Another attempt to fix bug#32645
+
+       * test/lisp/autorevert-tests.el ()
+       (auto-revert-test02-auto-revert-deleted-file):
+       * test/lisp/filenotify-tests.el (file-notify-test04-autorevert):
+       Check `file-notify-valid-p', not that the descriptor is nil.
+
+2019-08-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       615cff4 (origin/emacs-26) Fix process filter documentation (Bug#13400)
+       beb1d22 Fix query-replace-regexp undo feature
+
+       # Conflicts:
+       #       test/lisp/replace-tests.el
+
+2019-08-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       0b810eb Fix a typo in char-width-table
+       3f00db7 Minor update in admin/notes/unicode
+       bcd0115 Fix lisp indent infloop on unfinished strings (Bug#37045)
+       5f992d1 Improve commentary in composite.el
+       3a04be2 ; Improve commentary in xdisp.c
+       15de1d1 Fix markup in dired-x.texi
+       bda7fc7 ; Fix typo in a doc string of speedbar.el
+       6f57ef9 * src/callproc.c (Fcall_process): Doc fix.
+
+       # Conflicts:
+       #       doc/misc/dired-x.texi
+       #       lisp/international/characters.el
+       #       src/callproc.c
+
+2019-08-20  Ulrich Müller  <address@hidden>
+
+       * configure.ac (HAVE_JPEG): Test for window system. (Bug#36995)
+
+2019-08-20  Mauro Aranda  <address@hidden>
+
+       Don't display wrong ElDoc information when inside ELisp strings or 
comments
+
+       * lisp/progmodes/elisp-mode.el (elisp--fnsym-in-current-sexp): Since
+       forward-sexp assumes point is not in a string or comment, avoid
+       calling it and then checking if point is inside a string, since that
+       sometimes will fail with awkward results.  (Bug#35567)
+
+2019-08-19  Lars Ingebrigtsen  <address@hidden>
+
+       Output `auto-coding-alist' in `describe-current-coding-system'
+
+       * lisp/international/mule-diag.el
+       (describe-current-coding-system): Also output the contents of
+       `auto-coding-alist', which take precedence over
+       `file-coding-system-alist' (bug#9575).
+
+2019-08-19  Lars Ingebrigtsen  <address@hidden>
+
+       Add a new hook: `quit-window-hook'
+
+       * doc/lispref/windows.texi (Quitting Windows): Mention in.
+
+       * lisp/window.el (quit-restore-window): Run the new
+       `quit-window-hook' before doing anything else (bug#9867).
+       (quit-window): Note that the hook will be run in the doc string.
+
+       * lisp/window.el (quit-window-hook): New variable.
+
+2019-08-19  Paul Eggert  <address@hidden>
+
+       Fix org-table 65536-second bug
+
+       * lisp/org/org-table.el (org-table-message-once-per-second):
+       Fix bug when clock difference goes past a 65536-second boundary.
+       Don’t assume particular format for current-time result.
+
+2019-08-19  Paul Eggert  <address@hidden>
+
+       Fix time-add/time-sub validity checking
+
+       * src/timefns.c (time_arith): Check the first arg for
+       validity even if the second arg is not finite.
+       * test/src/timefns-tests.el (time-arith-tests): Test this.
+
+2019-08-19  Stefan Monnier  <address@hidden>
+
+       * lisp/erc/erc-stamp.el: Fix erc-echo-timestamp (bug#22700)
+
+       Use lexical-binding.
+       (erc-add-timestamp): Store the timestamp in a closure placed in
+       cursor-sensor-functions rather than stashing it in an ad-hoc
+       `timestamp` property.
+       (erc-echo-timestamp): Simplify accordingly.
+
+2019-08-18  Lars Ingebrigtsen  <address@hidden>
+
+       Allow set-frame-height/set-frame-width to be used interactively
+
+       * doc/lispref/frames.texi (Frame Size): Document it.
+
+       * src/frame.c (Fset_frame_height):
+       (Fset_frame_width): Make into commands that use the numeric prefix
+       to set height/width (bug#9970).
+
+2019-08-18  Štěpán Němec  <address@hidden>
+
+       Add an advice-add/interactive spec example
+
+       * doc/lispref/functions.texi (Core Advising Primitives): Add an
+       advice-add example that extends the `interactive' spec (bug#17871).
+
+2019-08-18  Johan Claesson  <address@hidden>
+
+       Invalidate dir-locals-directory-cache when writing dir-local file
+
+       * lisp/files-x.el (modify-dir-local-variable): Remove file from
+       the cache when writing to ensure that we load the new version
+       later (bug#13860).
+
+2019-08-18  Noam Postavsky  <address@hidden>
+
+       Handle more subprocess chunking in M-x man (Bug#36927)
+
+       * lisp/man.el (Man-bgproc-filter): Make sure not to chop man sections
+       by narrowing.
+       (Man-highlight-references0): Revert previous fix, as it's no longer
+       needed.
+       * test/lisp/man-tests.el (man-tests-filter-strings): New function.
+       (man-bgproc-filter-buttonize-includes): New test.
+
+2019-08-18  Paul Eggert  <address@hidden>
+
+       Improve bignum_integer static checking
+
+       * src/bignum.h (bignum_integer): Now returns pointer-to-const,
+       to catch trivial mistakes where the caller might try to modify
+       a Lisp bignum.  Lisp bignums are supposed to be immutable.
+       All callers changed.
+
+2019-08-18  Eli Zaretskii  <address@hidden>
+
+       Attempt to fix assertion violation in eval.c
+
+       * src/eval.c (Fautoload): Fix an assertion violation in
+       make_fixnum.  Reported by martin rudalics <address@hidden>.
+
+2019-08-17  Lars Ingebrigtsen  <address@hidden>
+
+       Make `browse-url-of-buffer' work from zip files
+
+       * lisp/net/browse-url.el (browse-url-of-buffer): Make `C-c C-v'
+       work in HTML buffers visited from zip files and the like
+       (bug#10318).
+
+2019-08-17  Paul Eggert  <address@hidden>
+
+       Fix org-timer-show-remaining-time > 1 hour
+
+       * lisp/org/org-timer.el (org-timer-show-remaining-time):
+       Don’t assume the remaining time is less than one hour.
+       Simplify.  The simplification removes the need for a
+       decode-time, and fixes a typo I introduced recently.
+
+2019-08-17  Lars Ingebrigtsen  <address@hidden>
+
+       Make `describe-function' say that disabled functions are disabled
+
+       * lisp/help-fns.el (help-fns--disabled): New function (bug#10853).
+       (help-fns-describe-function-functions): Add it to the list of
+       function help functions.
+
+2019-08-17  Lars Ingebrigtsen  <address@hidden>
+
+       Make newline-and-indent take a numeric prefix
+
+       * lisp/simple.el (newline-and-indent): Take a prefix argument to
+       say how many times to perform its action (bug#10927).
+
+2019-08-17  Lars Ingebrigtsen  <address@hidden>
+
+       Issue a message on `C-x o' and there's no other window
+
+       * lisp/window.el (other-window): Issue a message when the user
+       types `C-x o' and there's no other window to select (bug#10999).
+
+2019-08-17  Lars Ingebrigtsen  <address@hidden>
+
+       Issue a message on `C-x 1' when there's nothing to do
+
+       * lisp/window.el (delete-other-windows): Make `C-x 1' issue a
+       message when there's no other windows to delete (bug#10999).
+
+2019-08-17  Lars Ingebrigtsen  <address@hidden>
+
+       Doc clarification in two comment-* functions
+
+       * lisp/newcomment.el (comment-padright, comment-padleft): Note
+       that `comment-normalize-vars' must be called first (bug#11944).
+
+2019-08-17  Paul Eggert  <address@hidden>
+
+       Add FIXMEs for subsecond support
+
+       This adds FIXMEs to areas where Lisp code should support
+       subsecond information in broken-down timestamps.
+       It also fixes some unnecessary truncation of timestamps, and
+       ports the code to a hypothetical future Emacs version where
+       (decode-time) returns subsecond timestamps by default.
+       * lisp/calc/calc-forms.el (calc-time, math-iso-dt-to-date)
+       (calcFunc-now):
+       * lisp/calendar/icalendar.el (icalendar--add-decoded-times):
+       * lisp/calendar/iso8601.el (iso8601-parse-interval):
+       Truncate seconds to an integer, and add a FIXME about
+       subseconds support.
+       * lisp/calendar/icalendar.el (icalendar--decode-isodatetime)
+       (icalendar--decode-isoduration):
+       Add a FIXME about subseconds support.
+       * lisp/gnus/gnus-delay.el (gnus-delay-article):
+       Don’t truncate seconds to an integer, as there’s no need
+       to do that here.
+       * lisp/gnus/gnus-util.el (gnus-seconds-today)
+       (gnus-seconds-month, gnus-seconds-year):
+       * lisp/gnus/message.el (message-make-expires-date):
+       * lisp/org/org-timer.el (org-timer-show-remaining-time):
+       * lisp/vc/ediff-mult.el (ediff-format-date):
+       Truncate seconds to an integer, as that’s what’s wanted here.
+       * lisp/midnight.el (midnight-next):
+       Ceiling seconds to an integer, as that’s what wanted here.
+
+2019-08-17  Juri Linkov  <address@hidden>
+
+       * lisp/frameset.el (frameset-restore): Make sure last-focus frame has 
focus.
+
+       Call select-frame-set-input-focus to restore focus on the frame
+       that had last-focus-update frame parameter before saving frameset.
+       (Bug#36894)
+
+2019-08-17  Lars Ingebrigtsen  <address@hidden>
+
+       Doc clarification for call-interactively
+
+       * src/callint.c (Fcall_interactively): Be explicit about what we
+       mean by "inquire" in the doc string (bug#15653).
+
+2019-08-17  Paul Eggert  <address@hidden>
+
+       Port test harness to Solaris 10
+
+       * test/Makefile.in (ELFILES): Port to Solaris 10, where
+       ‘find’ does not support ‘-path’.
+
+2019-08-17  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-08-17 intprops: port to Oracle Developer Studio 12.6
+       2019-08-14 intprops: support uchar, ushort _WRAPV dests
+       * lib/intprops.h: Copy from Gnulib.
+
+2019-08-17  Eli Zaretskii  <address@hidden>
+
+       Improve support of the ancient Egyptian script
+
+       * lisp/international/fontset.el (script-representative-chars)
+       (setup-default-fontset): Add Egyptian.  (Bug#15420)
+
+2019-08-17  Paul Eggert  <address@hidden>
+
+       Have time-add etc. respect CURRENT_TIME_LIST too
+
+       * src/timefns.c (time_arith) [!CURRENT_TIME_LIST]:
+       Don’t generate a list, since CURRENT_TIME_LIST is false.
+
+2019-08-16  Eli Zaretskii  <address@hidden>
+
+       Fix a recent documentation change
+
+       * doc/emacs/windows.texi (Other Window): Add a cross-reference
+       to "Rebinding".  (Bug#12431)
+
+2019-08-16  Paul Eggert  <address@hidden>
+
+       More-compatible subsecond calendrical timestamps
+
+       Instead of appending a subseconds member to the result of
+       ‘decode-time’, this keeps the format unchanged unless you give
+       a new optional argument to ‘decode-time’.  Also, the augmented
+       format now puts the subsecond info in the SECONDS element, so
+       the total number of elements is unchanged; this is more
+       compatible with code that expects the traditional 9 elements,
+       such as ‘(pcase decoded-time (`(,SEC ,MIN ,HOUR ,DAY ,MON
+       ,YEAR ,DOW ,DST ,ZONE) ...) ...)’.
+       * doc/lispref/os.texi, doc/misc/emacs-mime.texi, etc/NEWS:
+       * lisp/net/soap-client.el (soap-decode-date-time):
+       * lisp/simple.el (decoded-time):
+       Document the new behavior.
+       * lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
+       * lisp/calendar/iso8601.el (iso8601-parse)
+       (iso8601-parse-time, iso8601-parse-duration)
+       (iso8601--decoded-time):
+       * lisp/calendar/parse-time.el (parse-time-string):
+       * lisp/calendar/time-date.el (decoded-time-add)
+       (decoded-time--alter-second):
+       * lisp/org/org.el (org-parse-time-string):
+       * lisp/simple.el (decoded-time):
+       * src/timefns.c (Fdecode_time, Fencode_time):
+       * test/lisp/calendar/icalendar-tests.el:
+       (icalendar--decode-isodatetime):
+       * test/lisp/calendar/iso8601-tests.el (test-iso8601-date-years)
+       (test-iso8601-date-dates, test-iso8601-date-obsolete)
+       (test-iso8601-date-weeks, test-iso8601-date-ordinals)
+       (test-iso8601-time, test-iso8601-combined)
+       (test-iso8601-duration, test-iso8601-intervals)
+       (standard-test-dates, standard-test-time-of-day-fractions)
+       (standard-test-time-of-day-beginning-of-day)
+       (standard-test-time-of-day-utc)
+       (standard-test-time-of-day-zone)
+       (standard-test-date-and-time-of-day, standard-test-interval):
+       * test/lisp/calendar/parse-time-tests.el (parse-time-tests):
+       * test/src/timefns-tests.el (format-time-string-with-zone)
+       (encode-time-dst-numeric-zone):
+       Revert recent changes that added a SUBSECS member to
+       calendrical timestamps, since that component is no longer
+       present (the info, if any, is now in the SECONDS member).
+       * lisp/calendar/time-date.el (decoded-time-add)
+       (decoded-time--alter-second):
+       Support fractional seconds in the new form.  Simplify.
+       * src/timefns.c (Fdecode_time): Support new arg FORM.
+       (Fencode_time): Support subsecond resolution.
+       * test/src/timefns-tests.el (format-time-string-with-zone)
+       (decode-then-encode-time): Test subsecond calendrical timestamps.
+
+2019-08-16  Paul Eggert  <address@hidden>
+
+       Broaden format-seconds to Lisp timestamps
+
+       * lisp/calendar/time-date.el (format-seconds):
+       Accept any Lisp timestamp instead of insisting on a number.
+
+2019-08-16  Paul Eggert  <address@hidden>
+
+       Subtracting “now” from “now” should yield zero
+
+       * src/timefns.c (time_arith): Arrange for (time-subtract nil
+       nil) to yield 0, to be consistent with (time-equal-p nil nil).
+       * test/lisp/calendar/time-date-tests.el (test-time-since): New test.
+
+2019-08-16  Paul Eggert  <address@hidden>
+
+       Fix time-add rounding bug
+
+       Without this fix, time arithmetic yielded results that were not
+       mathematically accurate, even though the exact results were
+       representable; for example, (time-add 0 1e-13) yielded a timestamp
+       equal to 0 instead of to 1e-13.
+       * lisp/timezone.el (timezone-time-from-absolute):
+       Let time-add do its thing rather than using floating point
+       internally, which has rounding errors.  We now have bignums and so
+       don’t need floating point to avoid overflow issues.
+       * src/timefns.c (timeform_sub_ps_p): New function.
+       (time_arith): If either argument is a float, represent the
+       result exactly instead of discarding sub-ps info.
+       * test/lisp/timezone-tests.el (timezone-tests-time-from-absolute):
+       Don’t assume (HI LO US PS) timestamp format.
+       * test/src/emacs-module-tests.el (mod-test-add-nanosecond/valid):
+       Don’t assume that time-add discards sub-ns info.
+       * test/src/timefns-tests.el (time-rounding-tests):
+       Add regression test to detect time-add rounding bug.
+
+2019-08-16  Lars Ingebrigtsen  <address@hidden>
+
+       Mention `next-multiframe-window' when talking about `other-window'
+
+       * doc/emacs/windows.texi (Other Window): Mention
+       the `next-multiframe-window' command here (which is otherwise not
+       documented in the manual) (bug#12431).
+
+2019-08-16  Lars Ingebrigtsen  <address@hidden>
+
+       Add missing skeleton entries in autotype.texi
+
+       * doc/misc/autotype.texi: Add missing entries found in the doc
+       string to `skeleton-insert' (bug#12563).
+
+2019-08-16  Alex Branham  <address@hidden>
+
+       Make checkdoc check cl-lib function docstrings
+
+       * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
+       Remove calls to delete-region to avoid deleting final " (bug#26328).
+       * lisp/emacs-lisp/checkdoc.el (checkdoc--next-docstring)
+       (checkdoc-defun-info): Include cl-defun, cl-defgeneric,
+       cl-defmethod.
+       (checkdoc-this-string-valid-engine): Add cl-lib supported
+       keywords.
+       (checkdoc-defun-info): Ensure function parameters are a
+       "flat" list (bug#37034).
+
+2019-08-16  Alex Branham  <address@hidden>
+
+       Avoid deleting closing quotation mark in checkdoc
+
+       * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
+       Remove calls to delete-region to avoid deleting final " (bug#26328).
+
+2019-08-16  Thomas Fitzsimmons  <address@hidden>
+
+       Revert "package.el: Allow Package-Requires to span multiple lines 
(Bug#36301)"
+
+       This reverts commit 19c1e4c81c7442dea48253e5961b6e54d78b6f0a.
+
+       This commit broke some package tests, reverting for now.
+
+2019-08-16  Lars Ingebrigtsen  <address@hidden>
+
+       Mention that text properties are removed in substitute-command-keys
+
+       * src/doc.c (Fsubstitute_command_keys): Restore the bit in the doc
+       string that mentions that text properties is removed (bug#17052).
+
+2019-08-15  Lars Ingebrigtsen  <address@hidden>
+
+       Add some examples in "Adding Generalized Variables"
+
+       * doc/lispref/variables.texi (Adding Generalized Variables): Add
+       examples for `gv-define-expander' and `gv-letplace' (bug#13343).
+
+2019-08-15  Thomas Fitzsimmons  <address@hidden>
+
+       package.el: Allow Package-Requires to span multiple lines (Bug#36301)
+
+       * lisp/emacs-lisp/package.el (lm-header-multiline): Declare
+       function.
+       (package-buffer-info): Parse Package-Requires with
+       lm-header-multiline instead of lm-header.
+       (Bug#36301)
+
+2019-08-15  Thomas Fitzsimmons  <address@hidden>
+
+       Do not recreate full URL for proxied HTTPS requests (Bug#35969)
+
+       * lisp/url/url-http.el (url-http-create-request): Do not recreate
+       full URL for proxied HTTPS requests.
+       (url-https-proxy-after-change-function): Do not bind
+       url-http-proxy to nil before calling url-http-create-request.
+       (Bug#35969)
+
+2019-08-15  Andreas Merziger  <address@hidden>
+
+       Make diary-european-date-forms elements mutually exclusive
+
+       * lisp/calendar/calendar.el (diary-european-date-forms): Make the
+       elements mutually exclusive (bug#13536).
+
+2019-08-15  Lars Ingebrigtsen  <address@hidden>
+
+       Fix up previous cl-def* changes in bovine
+
+       * lisp/cedet/semantic/bovine/el.el (lambda): cl-defun* doesn't
+       exist (bug#17005).
+       (lambda): Add cl-defstruct.
+       (semantic-up-context): Add cl- forms.
+
+2019-08-15  Lars Ingebrigtsen  <address@hidden>
+
+       Reimplement the `fill-flowed' function to respect space stuffing
+
+       * lisp/mail/flow-fill.el (fill-flowed): Reimplement the function
+       to respect space-stuffing (bug#17190).
+
+       * test/lisp/mail/flow-fill-tests.el
+       (fill-flow-tests-fill-flowed-stuffed): New test.
+       (fill-flow-tests-fill-flowed-decode): Rename the test so that it
+       actually runs.
+
+2019-08-15  Alex Branham  <address@hidden>
+
+       Fix eshell-mode-map initialization
+
+       * lisp/eshell/esh-mode.el (eshell-mode-map, eshell-command-map): Set
+       up normal keymaps and prefix commands rather than re-initializing them
+       in each eshell buffer
+
+       * lisp/eshell/em-cmpl.el (eshell-cmpl-mode-map, eshell-cmpl-mode)
+       (eshell-cmpl-initialize):
+       * lisp/eshell/em-hist.el (eshell-hist-mode-map, eshell-hist-mode)
+       (eshell-hist-initialize):
+       * lisp/eshell/em-pred.el (eshell-pred-mode-map, eshell-pred-mode)
+       (eshell-pred-initialize):
+       * lisp/eshell/em-prompt.el (eshell-prompt-mode-map, eshell-prompt-mode)
+       (eshell-prompt-initialize):
+       * lisp/eshell/em-rebind.el (eshell-rebind-mode-map, eshell-rebind-mode)
+       (eshell-rebind-initialize):
+       * lisp/eshell/esh-arg.el (eshell-arg-mode-map, eshell-arg-mode)
+       (eshell-arg-initialize):
+       * lisp/eshell/esh-proc.el (eshell-proc-mode-map, eshell-proc-mode)
+       (eshell-proc-initialize):
+       * lisp/eshell/esh-var.el (eshell-var-mode-map, eshell-var-mode)
+       (eshell-var-initialize): Create a new minor mode with a keymap and
+       call it in the module initialization function.
+
+       bug#33808
+       bug#22792
+
+2019-08-15  Lars Ingebrigtsen  <address@hidden>
+
+       Rename variables and functions with "auto-load" in their names
+
+       * doc/emacs/building.texi (Lisp Libraries): Adjust documentation.
+
+       * lisp/help-fns.el (help--symbol-completion-table): Adjust usage.
+
+       * lisp/help-fns.el (help-enable-completion-autoload): Change name
+       from auto-load and declare an obsolete alias (bug#13418).
+
+       * lisp/help.el (help-enable-autoload): Ditto.
+
+       * lisp/progmodes/vhdl-mode.el: Ditto.
+       (vhdl-create-mode-menu, vhdl-mode): Adjust usage.
+       (vhdl-autoload-project): Rename from auto-load and declare an
+       obsolete alias.
+
+2019-08-15  Lars Ingebrigtsen  <address@hidden>
+
+       Remove mentions of XEmacs from the Gnus manual and faq
+
+       * doc/misc/gnus-faq.texi:
+       * doc/misc/gnus.texi: Remove references to XEmacs throughout.
+
+2019-08-15  Lars Ingebrigtsen  <address@hidden>
+
+       Mention what effect nil has as the prompt for read-event/char/etc
+
+       * doc/lispref/commands.texi (Reading One Event): Mention that ""
+       has the same effect as nil as a prompt.
+
+       * src/lread.c (Fread_event, Fread_char_exclusive, Fread_char):
+       Mention what happens when PROMPT is nil/"" in the doc string
+       (bug#15012).
+
+2019-08-15  Lars Ingebrigtsen  <address@hidden>
+
+       etc/NEWS: Note that `list-processes' includes port numbers now.
+
+2019-08-15  Paul Eggert  <address@hidden>
+
+       Fix typeof portability issue with bitfields
+
+       Problem reported by Glenn Morris in:
+       https://lists.gnu.org/r/emacs-devel/2019-08/msg00300.html
+       * src/lisp.h (lisp_h_make_fixnum): Use typeof (+(n)) instead
+       of typeof (n), so that it works with compilers that do
+       not allow typeof to be applied to a bitfield.
+
+2019-08-15  Paul Eggert  <address@hidden>
+
+       Fix rounding errors with float timestamps
+
+       When converting from float to (TICKS . HZ) form, do the
+       conversion exactly.  When converting from (TICKS . HZ) form to
+       float, round to even precisely.  This way, successfully
+       converting a float to (TICKS . HZ) and back yields a value
+       numerically equal to the original.
+       * src/timefns.c (flt_radix_power_size): New constant.
+       (flt_radix_power): New static var.
+       (decode_float_time): Convert the exact numeric value rather
+       than guessing TIMESPEC_HZ resolution.
+       (s_ns_to_double): Remove; no longer needed.
+       (frac_to_double): New function.
+       (decode_ticks_hz): It is now the caller’s responsibility to
+       pass a valid TICKS and HZ.  All callers changed.
+       Use frac_to_double to round (TICKS . HZ) precisely.
+       (decode_time_components): When decoding nil, use
+       decode_ticks_hz since it rounds precisely.
+       (syms_of_timefns): Initialize flt_radix_power.
+       * test/src/timefns-tests.el (float-time-precision): New test.
+
+2019-08-15  Michael Albinus  <address@hidden>
+
+       Give auto-revert-test02-auto-revert-deleted-file a chance on hydra
+
+       * test/lisp/autorevert-tests.el
+       (auto-revert-test02-auto-revert-deleted-file): Don't skip on hydra.
+
+2019-08-15  Michael Albinus  <address@hidden>
+
+       Improve Tramp manual
+
+       * doc/misc/tramp.texi (GVFS based methods): Explain using `ftp'
+       and `smb' methods.
+
+2019-08-15  Paul Eggert  <address@hidden>
+
+       Debug out-of-range make_fixnum args
+
+       With --enable-checking, make_fixnum (N) now checks that N is
+       in fixnum range.  Suggested by Pip Cet in:
+       https://lists.gnu.org/r/emacs-devel/2019-07/msg00548.html
+       A new function make_ufixnum (N) is for the rare cases where N
+       is intended to be unsigned and is in the range 0..INTMASK.
+       * configure.ac (AC_C_TYPEOF): Add.
+       (HAVE_STATEMENT_EXPRESSIONS): Resurrect this macro.
+       * src/fns.c (Frandom, hashfn_eq, hashfn_equal, hashfn_user_defined):
+       * src/profiler.c (hashfn_profiler):
+       Use make_ufixnum rather than make_fixum, since the argument is
+       an unsigned integer in the range 0..INTMASK rather than a signed
+       integer in the range MOST_NEGATIVE_FIXNUM..MOST_POSITIVE_FIXNUM.
+       Typically this is for hashes.
+       * src/lisp.h (lisp_h_make_fixnum_wrap) [USE_LSB_TAG]:
+       Rename from lisp_h_make_fixnum.
+       (lisp_h_make_fixnum): Redefine in terms of lisp_h_make_fixnum_wrap.
+       Check for fixnum overflow on compilers like GCC that
+       have statement expressions and typeof.
+       (FIXNUM_OVERFLOW_P): Move up.
+       (make_fixnum): Check for fixnum overflow.
+       (make_ufixnum): New function, which checks that the arg
+       fits into 0..INTMASK range.
+
+2019-08-15  Paul Eggert  <address@hidden>
+
+       Fix some fixnum overflow problems in ccl.c
+
+       * src/ccl.c (ccl_driver, Fccl_execute, Fccl_execute_on_string):
+       Don’t assume CCL registers fit into fixnums.
+
+2019-08-15  Paul Eggert  <address@hidden>
+
+       Port mod-test-nanoseconds to 32-bit Emacs
+
+       * test/src/emacs-module-tests.el (mod-test-nanoseconds):
+       Don’t assume -1000000000 is a fixnum.
+
+2019-08-15  Lars Ingebrigtsen  <address@hidden>
+
+       Include port numbers in `M-x list-processes'
+
+       * lisp/simple.el (list-processes--refresh): Include the port
+       numbers in the network connection list (bug#13604).
+
+2019-08-15  Lars Ingebrigtsen  <address@hidden>
+
+       Add some cl- concept index entries
+
+       * doc/misc/cl.texi (Argument Lists): Add a couple of concept index
+       entried (bug#13606).
+
+2019-08-14  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify the doc string of complete-with-action
+
+       * lisp/minibuffer.el (complete-with-action): Doc string
+       clarification (bug#13993).
+
+2019-08-14  Lars Ingebrigtsen  <address@hidden>
+
+       Clean up Gnus manual reference to XEmacs variables
+
+       * doc/misc/gnus.texi (XVarious): Remove section about XEmacs
+       variables that have been removed.
+
+2019-08-14  Lars Ingebrigtsen  <address@hidden>
+
+       Minor Scroll Bars clarification
+
+       * doc/emacs/frames.texi (Scroll Bars): Clarify what we mean by
+       "customize" here (bug#14321).
+
+2019-08-14  Lars Ingebrigtsen  <address@hidden>
+
+       Arrange custom-face-attributes closer to how heavy they are
+
+       * lisp/cus-face.el (custom-face-attributes): Arrange the weights
+       more in order of how heavy they are (bug#15526).
+
+2019-08-14  Lars Ingebrigtsen  <address@hidden>
+
+       Use gnus-summary-button-forward in gnus-summary-mode-map
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-mode-map): Use
+       `gnus-summary-button-forward' instead of the obsolete
+       `gnus-summary-widget-forward'.
+
+2019-08-14  Paul Eggert  <address@hidden>
+
+       Remove INT_ADD_WRAPV bug workarounds
+
+       * src/alloc.c (free_cons):
+       * src/casefiddle.c (do_casify_multibyte_string):
+       * src/editfns.c (styled_format):
+       * src/image.c (png_load_body):
+       Remove recent workarounds for INT_ADD_WRAPV bugs since
+       the bugs have been fixed (Bug#37006).
+
+2019-08-14  Lars Ingebrigtsen  <address@hidden>
+
+       Add C-b/f/p/n keystrokes in `M-x snake'
+
+       * lisp/play/snake.el (snake-mode-map): Add the C-b/f/p/n in
+       addition to the cursor keys (bug#16720).
+
+2019-08-14  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-08-14 intprops: pacify picky GCC
+       2019-08-14 intprops: support unsigned *_WRAPV results
+       2019-08-12 verify: improve diagnostic quality in recent GCC
+       * lib/intprops.h, lib/verify.h: Copy from Gnulib.
+
+2019-08-14  Lars Ingebrigtsen  <address@hidden>
+
+       Add cl-def* forms to bovine/el.el
+
+       * lisp/cedet/semantic/bovine/el.el (lambda): Add the cl-def*
+       variations to allow semantic to find the definitions (bug#17005).
+
+2019-08-14  Lars Ingebrigtsen  <address@hidden>
+
+       Don't alter function name face height in manoj-dark theme
+
+       * etc/themes/manoj-dark-theme.el (manoj-dark): Don't alter the
+       height of function name faces, because this makes many tabulated
+       modes not longer line up (bug#17042).
+
+2019-08-14  Lars Ingebrigtsen  <address@hidden>
+
+       Respect the BUFFER parameter in `fill-flowed'
+
+       * lisp/mail/flow-fill.el (fill-flowed): `current-buffer' is always
+       non-nil, so respect the BUFFER parameter.  Also add a doc string.
+
+2019-08-14  Lars Ingebrigtsen  <address@hidden>
+
+       Output the maintainer and author(s) in the package description buffer
+
+       * lisp/emacs-lisp/package.el (describe-package-1): Output
+       maintainer and author(s) (bug#17573).
+       (package--print-email-button): New function.
+
+2019-08-14  Eli Zaretskii  <address@hidden>
+
+       Fix fetching URLs with stuff that looks like HTTP headers
+
+       * lisp/url/url-http.el (url-http-parse-headers): Narrow the
+       buffer to the headers at the beginning to make sure
+       url-handle-content-transfer-encoding uses the correct
+       headers.  (Bug#37023)
+
+2019-08-13  Paul Eggert  <address@hidden>
+
+       Don’t increase consing_until_gc when out of memory
+
+       * src/alloc.c (memory_full): Don’t increase consing_until_gc.
+       Suggested by Eli Zaretskii (Bug#37006#46).
+
+2019-08-13  Paul Eggert  <address@hidden>
+
+       Let consing_until_gc exceed EMACS_INT_MAX
+
+       This builds on the previous patch.
+       * src/alloc.c (consing_until_gc): Now of type intmax_t,
+       since gc-cons-threshold can be up to INTMAX_MAX.  All uses changed.
+       * src/lisp.h (CONSING_CT_MAX, consing_ct): Remove.
+
+2019-08-13  Paul Eggert  <address@hidden>
+
+       Let consing_until_gc exceed INTPTR_MAX
+
+       Suggested by Eli Zaretskii (Bug#37006#46).
+       * src/alloc.c (consing_until_gc): Now of type consing_ct.
+       All uses changed, so gc-cons-threshold no longer saturates
+       against OBJECT_CT_MAX.
+       (object_ct): Move typedef here from lisp.h.
+       * src/lisp.h (consing_ct, CONSING_CT_MAX): New type and macro.
+       (OBJECT_CT_MAX): Remove.  Replace all uses with CONSING_CT_MAX.
+
+2019-08-13  Paul Eggert  <address@hidden>
+
+       Fix GC threshold typo
+
+       Problem reported by Eli Zaretskii (Bug#37006#25).
+       * src/alloc.c (garbage_collect_1): Fix typo in threshold calc.
+       Go back to dividing by 10 since the numerator’s a constant now.
+       Problem introduced in 2019-07-21T02:40:03Z!address@hidden.
+
+2019-08-13  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of 'diff-font-lock-prettify'
+
+       * lisp/vc/diff-mode.el (diff-font-lock-prettify): Doc fix.
+
+       * etc/NEWS: Minor copyedits.
+
+2019-08-13  Eli Zaretskii  <address@hidden>
+
+       Fix initialization of user-defined fringe bitmaps in daemon mode
+
+       * src/fringe.c (gui_init_fringe): Rename from w32_init_fringe
+       or x_cr_init_fringe, and make unconditionally compiled; all
+       callers changed.  Do nothing if the frame's
+       redisplay_interface doesn't implement the define_fringe_bitmap
+       method.  Set up any user-defined fringe bitmaps in addition to
+       the standard bitmaps.
+       Suggested by Liam Quinlan <address@hidden> in
+       https://lists.gnu.org/archive/html/emacs-devel/2019-08/msg00259.html.
+
+       (w32_reset_fringes) [HAVE_NTGUI]: Do nothing if the frame's
+       redisplay_interface doesn't implement the
+       destroy_fringe_bitmap method.
+
+       * src/w32fns.c (Fx_create_frame): Call gui_init_fringe when
+       the first GUI frame is created for this session.
+       * src/dispextern.h (w32_init_fringe): Rename to
+       gui_init_fringe and make unconditional.
+       (x_cr_init_fringe): Remove prototype.
+
+2019-08-12  Óscar Fuentes  <address@hidden>
+
+       * lisp/password-cache.el: adapt test to change in password-in-cache-p
+
+2019-08-12  Michael Albinus  <address@hidden>
+
+       Quote file names properly in Tramp
+
+       * lisp/net/tramp.el (tramp-handle-file-truename)
+       (tramp-handle-insert-directory):
+       * lisp/net/tramp-adb.el (tramp-adb-handle-file-truename):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-file-truename)
+       (tramp-sh-handle-insert-directory):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-file-truename):
+       Use `tramp-compat-directory-name-p'.
+
+       * lisp/net/tramp.el (tramp-drop-volume-letter)
+       (tramp-handle-file-truename):
+       * lisp/net/tramp-adb.el (tramp-adb-handle-file-truename):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link)
+       (tramp-sh-handle-file-truename):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-make-symbolic-link):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-file-truename):
+       (tramp-sudoedit-handle-make-symbolic-link): Quote properly.
+
+       * lisp/net/tramp-compat.el (tramp-compat-file-name-quote)
+       (tramp-compat-file-name-unquote): Add optional argument TOP.
+
+2019-08-12  Michael Albinus  <address@hidden>
+
+       Handle symbolic links properly in Tramp gfvs methods
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-readable-p):
+       Handle symbolic links.
+
+2019-08-12  Michael Albinus  <address@hidden>
+
+       Fix caching problem in Tramp smb method
+
+       * lisp/net/tramp-cache.el (tramp-flush-file-upper-properties):
+       Add "file-entries",
+
+2019-08-11  Paul Eggert  <address@hidden>
+
+       Prefer signed when testing for signed overflow
+
+       * src/alloc.c (free_cons):
+       * src/casefiddle.c (do_casify_multibyte_string):
+       * src/editfns.c (styled_format):
+       * src/image.c (png_load_body):
+       Use signed arguments to INT_MULTIPLY_WRAPV etc.  This doesn’t fix
+       any bugs, but GCC emits better code when all args are signed.
+       Also, this removes the need for an if in free_cons (Bug#37006).
+
+2019-08-11  Óscar Fuentes  <address@hidden>
+
+       password-cache: differentiate null values from non-existent entries
+
+       * lisp/password-cache.el (password-in-cache-p, password-cache-add):
+         properly detect non-existent entry.  (Bug#36834)
+
+2019-08-11  Eli Zaretskii  <address@hidden>
+
+       Fix garbage collection
+
+       * src/alloc.c (free_cons): Avoid false positives in
+       INT_ADD_WRAPV.  (Bug#37006)
+
+2019-08-11  Eric Abrahamsen  <address@hidden>
+
+       Prompt for new sieve script names in sieve management
+
+       * lisp/net/sieve.el (sieve-edit-script): Otherwise the user ends up
+       with a script named '<new script>.sieve'.
+
+2019-08-11  Michael Albinus  <address@hidden>
+
+       Retrieve start time from remote machine, use compat attrib functions
+
+       * lisp/net/tramp-compat.el (tramp-compat-file-attribute-access-time)
+       (tramp-compat-file-attribute-status-change-time): New defaliases.
+
+       * test/lisp/net/tramp-tests.el (tramp--test-start-time): New defvar.
+       (tramp--test-file-attributes-equal-p)
+       (tramp-test19-directory-files-and-attributes): Use it.
+       (tramp-test18-file-attributes)
+       (tramp--test-file-attributes-equal-p, tramp-test20-file-modes)
+       (tramp-test22-file-times, tramp--test-check-files):
+       Use `tramp-compat-file-attribute-*' functions.
+
+2019-08-10  Glenn Morris  <address@hidden>
+
+       Set custom :version for recently modified undo options
+
+       * lisp/cus-start.el (undo-limit, undo-strong-limit, undo-outer-limit):
+       Bump :version.
+
+2019-08-10  Stefan Kangas  <address@hidden>
+
+       * doc/emacs/calendar.texi (Time Intervals): Doc fix.
+
+2019-08-10  Stefan Kangas  <address@hidden>
+
+       Double undo limits
+
+       * src/undo.c (syms_of_undo) <undo_limit, undo_strong_limit>
+       <Vundo_outer_limit>: Double undo limits.  (Bug#31104)
+
+2019-08-10  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       0860ac0 (origin/emacs-26) Improve documentation of features that use ...
+       fae1ff6 Fix docstrings in pong
+       82a2894 Improve doc strings of 'append-to-buffer' and friends
+       cb0403d Fix octave-mode ElDoc support
+       691790b Avoid Groff hanging on MS-Windows when invoked by "M-x man"
+
+2019-08-10  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       e7818cb Fix nnmail-expiry-wait docs and custom :types
+       8b7c776 * lisp/simple.el (kill-do-not-save-duplicates): Doc fix.  (Bu...
+
+2019-08-10  Michael Albinus  <address@hidden>
+
+       Use a time offset when comparing times of local and remote machines
+
+       * test/lisp/net/tramp-tests.el (tramp--test-file-attributes-equal-p):
+       Use a time offset in order to compensate different times on local
+       and remote machines.
+
+2019-08-10  Mauro Aranda  <address@hidden>
+
+       Fix pong collision detection
+
+       * lisp/play/pong.el (pong-update-game): If the ball hit the bat where
+       bats are positioned, draw again the bat cell in the old ball
+       position.  (Bug#20579).
+       Also, avoid changing the direction of the ball right after hitting the
+       bats, and improve the collision detection against the borders.
+
+2019-08-10  Alex Gramiak  <address@hidden>
+
+       Set up defined_color_hook for the initial frame
+
+       * src/terminal.c (init_initial_terminal): Set up the
+       defined_color_hook.  This avoids crashes when running
+       in batch mode with code that manipulates colors.
+       (Bug#36019)
+
+2019-08-10  Philippe Schnoebelen  <address@hidden>  (tiny change)
+
+       Support bool-vectors in cl-extra.el
+
+       * lisp/emacs-lisp/cl-extra.el (cl-coerce): Support bool-vector.
+
+2019-08-09  Juri Linkov  <address@hidden>
+
+       * lisp/frameset.el (frameset--minibufferless-last-p): Add comments 
(bug#36894)
+
+2019-08-09  Eli Zaretskii  <address@hidden>
+
+       Fix highlighting in man pages displayed by "M-x man"
+
+       * lisp/man.el (Man-highlight-references0): Handle the case
+       when a section is divided between 2 or more chunks of text
+       received from the 'man' program.  (Bug#36927)
+
+2019-08-09  Eli Zaretskii  <address@hidden>
+
+       Fix doc strings modified in recent changes
+
+       * src/xfns.c (Fx_change_window_property)
+       (Fx_delete_window_property, Fx_window_property)
+       (Fx_window_property_attributes): Doc fixes.
+
+2019-08-08  Noah Friedman  <address@hidden>
+
+       Provide better target window consistency across x window property 
functions.
+
+       Use the argument name WINDOW-ID instead of SOURCE for same.
+       Revise docstrings to clarify semantics of FRAME and WINDOW-ID.
+
+       (Fx_change_window_property): Use `target_window' instead of `w'.
+       This is consistent with other related functions.
+       Finalize its value before blocking input.
+
+       (Fx_window_property):
+       (Fx_window_property_attributes): Use `window_id' instead of `source'.
+
+       (Fx_delete_window_property): New optional arg window_id.
+
+2019-08-08  Noah Friedman  <address@hidden>
+
+       (Fx_change_window_property): Rename SOURCE arg to WINDOW-ID
+
+2019-08-08  Noah Friedman  <address@hidden>
+
+       (Fx_change_window_property): Add optional arg SOURCE.
+
+       This provides symmetry with Fx_window_property, so that the window
+       need not be an actual emacs frame.  This is useful for modifying
+       properties of parent windows (specified with --parent-id to emacs) or
+       generally assisting the window manager.
+
+2019-08-08  Stefan Kangas  <address@hidden>
+
+       Use "python -m pdb" when "pdb" is missing in M-x pdb
+
+       * lisp/progmodes/gud.el (gud-pdb-command-name): Use "python -m pdb"
+       when "pdb" is missing.  (Bug#21521)
+
+2019-08-08  Noam Postavsky  <address@hidden>
+
+       Say how to enable event designators in the eshell manual
+
+       * doc/misc/eshell.texi (History): Mention that event designators need
+       to be enabled.
+       * etc/NEWS: Mark corresponding entry as documented in manual.
+
+2019-08-08  Michael Albinus  <address@hidden>
+
+       Work on Tramp backward compatibility
+
+       * lisp/net/tramp-adb.el (tramp-adb-handle-copy-file)
+       (tramp-adb-handle-rename-file):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file):
+       * lisp/net/tramp-rclone.el (tramp-rclone-do-copy-or-rename-file):
+       * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-copy-file)
+       (tramp-smb-handle-rename-file):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-do-copy-or-rename-file):
+       Use `tramp-compat-directory-name-p'.
+
+2019-08-08  Michael Albinus  <address@hidden>
+
+       Improve time arithmetic in tramp--test-file-attributes-equal-p
+
+       * test/lisp/net/tramp-tests.el (tramp--test-file-attributes-equal-p):
+       Improve time arithmetic.
+
+2019-08-08  Michael Albinus  <address@hidden>
+
+       Suppress false alarm in Tramp
+
+       * lisp/net/tramp.el (tramp-dissect-file-name): Suppress false alarm.
+
+2019-08-08  Stefan Kangas  <address@hidden>
+
+       Suppress interactive-only warnings in undo-tests.el (Bug#36565)
+
+       * test/src/undo-tests.el (undo-test-region-deletion)
+       (undo-test-region-example, undo-test-marker-adjustment-nominal)
+       (undo-test-region-t-marker, undo-test-marker-adjustment-moved)
+       (undo-test-region-mark-adjustment): Suppress interactive-only warnings
+       by using funcall-interactively.
+
+2019-08-08  Mattias Engdegård  <address@hidden>
+
+       Suppress relint errors in fortran.el
+
+       * lisp/progmodes/fortran.el (fortran-indent-to-column):
+       Suppress relint complaints about duplicated character in skip-set;
+       it's intentional and harmless.
+
+2019-08-08  Mattias Engdegård  <address@hidden>
+
+       Fix XTerm OSC 52 selection retrieval (bug#36879)
+
+       When asking XTerm for the selection via OSC 52, use ST as string
+       terminator in the request to get ST as terminator in the reply,
+       because BEL is messy to receive in many ways.
+
+       * lisp/term/xterm.el (gui-backend-get-selection):
+       Use ST as string terminator in request and reply.
+       Use a time-out when reading the reply.
+
+2019-08-07  Glenn Morris  <address@hidden>
+
+       Tests need to be moved when source files are
+
+       * test/lisp/obsolete/cl-tests.el: Move from test/lisp/emacs-lisp.
+
+2019-08-07  Michael Albinus  <address@hidden>
+
+       Continue to work on Bug#36940
+
+       * test/lisp/net/tramp-tests.el (tramp--test-file-attributes-equal-p):
+       Make the check more precise.  (Bug#36940)
+
+2019-08-07  Robert Pluim  <address@hidden>
+
+       Change nsm-should-check to look at local subnets
+
+       * lisp/net/nsm.el (nsm-network-same-subnet): New function.  Checks
+       if an ip address is in the same subnet as another one.
+       (nsm-should-check): Use nsm-network-same-subnet to see if we're
+       connecting to a local subnet machine.  Remove checks for RFC1918 
addresses.
+
+       * test/lisp/net/nsm-tests.el: New file.  Test nsm-should-check 
functionality.
+
+2019-08-07  Robert Pluim  <address@hidden>
+
+       fixup! Implement hostname->ip lookup function
+
+2019-08-06  Paul Eggert  <address@hidden>
+
+       Re-port dump_bitset_clear to -fsanitize=undefined
+
+       * src/pdumper.c (dump_bitset_clear): Skip the memset if the
+       size is zero, because in that case the destination might be NULL.
+       This fixes a bug introduced in 2019-07-26T06:17:address@hidden.
+       Add a comment to make the bug less likely to reoccur.
+
+2019-08-06  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/message.el (message-sendmail-f-is-evil): Revert recent 
change
+
+       (bug#36937)
+
+2019-08-06  Michael Albinus  <address@hidden>
+
+       Fix Bug#36940
+
+       * test/lisp/net/tramp-tests.el (tramp--test-file-attributes-equal-p):
+       Make the check more precise.  (Bug#36940)
+       (tramp-test19-directory-files-and-attributes): Move some checks to
+       `tramp--test-file-attributes-equal-p'.
+
+2019-08-06  Alan Mackenzie  <address@hidden>
+
+       C++ Mode: Prevent End of statement being found after {} in "count << 
vec{} <<"
+
+       * lisp/progmodes/cc-engine.el (c-beginning-of-statement-1): Check for
+       operators which cannot start a statement, which may follow a closing 
brace.
+       Don't recognise an end of statement in such a case.
+
+       * lisp/progmodes/cc-langs.el (c-operator-re, c-bin-tern-operators)
+       (c-unary-operators, c-non-after-{}-operators, c-non-after-{}-ops-re): 
New lang
+       consts and vars.
+
+2019-08-06  Eli Zaretskii  <address@hidden>
+
+       Fix minor compilation problems on MS-Windows
+
+       * src/w32fns.c (Fdefault_printer_name): Fix size of local
+       buffer.
+       * src/image.c [WINDOWSNT]: Test __MINGW_MAJOR_VERSION as well
+       to shut up compiler warnings.
+
+2019-08-06  Mattias Engdegård  <address@hidden>
+
+       Fix various Calc date conversions (bug#36822)
+
+       * lisp/calc/calc-forms.el (math-absolute-from-gregorian-dt):
+       Rewrite in a way that I understand, and that actually seems to work.
+       (math-absolute-from-julian-dt): Use Julian, not Gregorian, leap year
+       rules for counting days within a year.
+       (math-julian-date-beginning, math-julian-date-beginning-int):
+       Change constants to be consistent with their doc strings and the code:
+       use Rata Die epoch at Dec 31, 1 BC Gregorian proleptic, not Julian.
+       * doc/misc/calc.texi (Date Forms): Correct difference between Julian
+       Day and Rata Die.
+       * test/lisp/calc/calc-tests.el (calc-test-calendar): New test.
+
+2019-08-06  Mattias Engdegård  <address@hidden>
+
+       Add conditional operator xor to subr.el
+
+       Suggested by Oleh Krehel and implemented by Basil Contovounesios in
+       the following thread:
+       https://lists.gnu.org/archive/html/emacs-devel/2019-07/msg00547.html
+
+       * lisp/array.el (xor): Move unused function from here...
+       * lisp/subr.el: ...to here, and improve.
+       * lisp/gnus/spam.el (spam-xor):
+       * lisp/play/5x5.el (5x5-xor):
+       * lisp/proced.el (proced-xor):
+       * lisp/progmodes/idlwave.el (idlwave-xor):
+       * lisp/vc/diff-mode.el (diff-xor): Define as obsolete aliases of,
+       and replace all uses with, xor.
+       * lisp/jsonrpc.el: Remove unused dependency on array.el.
+       * lisp/org/org.el (org-xor): Move from here...
+       * lisp/org/org-compat.el (org-xor): ...to here, as a compatibility
+       shim for xor.
+       * lisp/progmodes/idlw-shell.el (idlwave-shell-enable-all-bp):
+       * lisp/simple.el (exchange-point-and-mark):
+       * lisp/windmove.el (windmove-display-in-direction): Use xor.
+       * lisp/strokes.el (strokes-xor): Remove commented-out xor
+       implementation.
+
+       * doc/lispref/control.texi (Control Structures): Extend menu entry
+       for new combining condition.
+       (Combining Conditions):
+       * etc/NEWS (Lisp Changes): Document xor.
+
+       * test/lisp/subr-tests.el (subr-test-xor): New test.
+
+2019-08-06  Stefan Monnier  <address@hidden>
+
+       Move cl.el to lisp/obsolete
+
+       * lisp/emacs-lisp/cl.el: Move from here...
+       * lisp/obsolete/cl.el: ...to here.
+
+       * lisp/subr.el (do-after-load-evaluation): Use "deprecated" in the
+       message when loading packages from lisp/obsolete.
+
+2019-08-06  Stefan Monnier  <address@hidden>
+
+       * lisp/mail/rfc2047.el (rfc2047-encodable-p): Don't require `message`.
+
+       Use bound-and-true-p rather than requiring `message` to get
+       message-posting-charset (since it defaults to nil anyway).
+
+2019-08-06  Stefan Monnier  <address@hidden>
+
+       * lisp/mh-e: Use cl-lib
+
+       Also, use underscore prefixes and defvar in preparation for lexical 
binding
+
+       * lisp/mh-e/mh-acros.el: Require cl-lib instead of cl.
+       Rename all cl.el uses by adding `cl-` prefix.
+       (mh-require-cl): Remove.  Not needed any more.  Remove all calls.
+       (mh-defstruct): Remove.  Replace all uses with cl-defstruct.
+       (mh-dlet*): New macro.
+
+       * lisp/mh-e/mh-comp.el (mh-user-agent-compose): Fold all ignored
+       optional args into the &rest arg.
+
+       * lisp/mh-e/mh-e.el: Require cl-lib instead of using mh-require-cl.
+       (mh-variants): Don't add-to-list on a local var.
+
+       * lisp/mh-e/mh-folder.el (mh-restore-desktop-buffer): Use shorter arg
+       names that don't collide with global vars.
+
+       * lisp/mh-e/mh-mime.el (mh-insert-mime-button):
+       (mh-insert-mime-security-button): Use mh-dlet*.
+
+       * lisp/mh-e/mh-search.el (mh-swish-next-result, mh-grep-next-result)
+       (mh-namazu-next-result): Use `or`.
+
+       * lisp/mh-e/mh-thread.el (mh-thread-generate)
+       (mh-thread-prune-containers): Use underscore rather than declare+ignore.
+
+       * lisp/mh-e/mh-tool-bar.el (mh-tool-bar-define): Use mh-dlet*.
+       (mh-tool-bar-define): Prefer the more precise \`...\' regexp ops.
+       Prefer Elisp's `eval-and-compile` over `cl-eval-when`.
+
+       * lisp/mh-e/mh-xface.el (mh-picon-get-image): Don't use
+       mh-funcall-if-exists for ietf-drums-parse-address.
+       Avoid the use of `cl-return` and hence use plain `defun`.
+       Replace some `cl-loop` with `dolist`.
+
+2019-08-05  Paul Eggert  <address@hidden>
+
+       decode-time now returns subsec too
+
+       The list that decode-time returns now contains an extra
+       trailing component that counts the subseconds part of the
+       original timestamp (Bug#36549).
+       This builds on a suggestion by Lars Ingebrigtsen in:
+       https://lists.gnu.org/r/emacs-devel/2019-07/msg00734.html
+       * doc/lispref/os.texi (Time Conversion):
+       * doc/misc/emacs-mime.texi (time-date):
+       * etc/NEWS: Document this.
+       * lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
+       * lisp/calendar/iso8601.el (iso8601-parse)
+       (iso8601-parse-time, iso8601-parse-duration)
+       (iso8601--decoded-time):
+       * lisp/calendar/parse-time.el (parse-time-string):
+       * lisp/calendar/time-date.el (make-decoded-time)
+       (decoded-time-set-defaults):
+       * lisp/org/org.el (org-fix-decoded-time)
+       (org-parse-time-string):
+       * src/timefns.c (Fdecode_time):
+       Generate subsec member for decoded time.
+       * lisp/calendar/time-date.el (decoded-time-add)
+       Add the decoded subsec too.
+       * lisp/simple.el (decoded-time): New subsec member.
+       * src/data.c (Frem): Simplify zero-check to match that of new Fmod.
+       (integer_mod): New function, with most of the guts of the old Fmod.
+       Remove redundant zero-check.
+       (Fmod): Use it.
+       * src/timefns.c (Fencode_time): Handle new subsec member
+       or (with the obsolescent calling convention) subsec arg.
+       It defaults to 0.
+       * test/lisp/calendar/icalendar-tests.el:
+       (icalendar--decode-isodatetime):
+       * test/lisp/calendar/iso8601-tests.el (test-iso8601-date-years)
+       (test-iso8601-date-dates, test-iso8601-date-obsolete)
+       (test-iso8601-date-weeks, test-iso8601-date-ordinals)
+       (test-iso8601-time, test-iso8601-combined)
+       (test-iso8601-duration, test-iso8601-intervals)
+       (standard-test-dates, standard-test-time-of-day-fractions)
+       (standard-test-time-of-day-beginning-of-day)
+       (standard-test-time-of-day-utc)
+       (standard-test-time-of-day-zone)
+       (standard-test-date-and-time-of-day, standard-test-interval):
+       * test/lisp/calendar/parse-time-tests.el (parse-time-tests):
+       * test/src/timefns-tests.el (format-time-string-with-zone)
+       (encode-time-dst-numeric-zone):
+       Adjust to match new behavior.
+
+2019-08-05  Paul Eggert  <address@hidden>
+
+       New function time-convert
+
+       This replaces the awkward reuse of encode-time to both convert
+       calendrical timestamps to Lisp timestamps, and to convert Lisp
+       timestamps to other forms.  Now, encode-time does just the
+       former and the new function does just the latter.
+       The new function builds on a suggestion by Lars Ingebrigtsen in:
+       https://lists.gnu.org/r/emacs-devel/2019-07/msg00801.html
+       and refined by Stefan Monnier in:
+       https://lists.gnu.org/r/emacs-devel/2019-07/msg00803.html
+       * doc/lispref/os.texi (Time of Day, Time Conversion):
+       * doc/misc/emacs-mime.texi (time-date):
+       * etc/NEWS: Update documentation.
+       * lisp/calendar/cal-dst.el (calendar-next-time-zone-transition):
+       * lisp/calendar/time-date.el (seconds-to-time, days-to-time):
+       * lisp/calendar/timeclock.el (timeclock-seconds-to-time):
+       * lisp/cedet/ede/detect.el (ede-detect-qtest):
+       * lisp/completion.el (cmpl-hours-since-origin):
+       * lisp/ecomplete.el (ecomplete-add-item):
+       * lisp/emacs-lisp/cl-extra.el (cl--random-time):
+       * lisp/emacs-lisp/timer.el (timer--time-setter)
+       (timer-next-integral-multiple-of-time):
+       * lisp/find-lisp.el (find-lisp-format-time):
+       * lisp/gnus/gnus-diary.el (gnus-user-format-function-d):
+       * lisp/gnus/gnus-group.el (gnus-group-set-timestamp):
+       * lisp/gnus/gnus-icalendar.el (gnus-icalendar-show-org-agenda):
+       * lisp/gnus/nnrss.el (nnrss-normalize-date):
+       * lisp/gnus/nnspool.el (nnspool-request-newgroups):
+       * lisp/net/ntlm.el (ntlm-compute-timestamp):
+       * lisp/net/pop3.el (pop3-uidl-dele):
+       * lisp/obsolete/vc-arch.el (vc-arch-add-tagline):
+       * lisp/org/org-clock.el (org-clock-get-clocked-time)
+       (org-clock-resolve, org-resolve-clocks, org-clock-in)
+       (org-clock-out, org-clock-sum):
+       * lisp/org/org-id.el (org-id-uuid, org-id-time-to-b36):
+       * lisp/org/ox-publish.el (org-publish-cache-ctime-of-src):
+       * lisp/proced.el (proced-format-time):
+       * lisp/progmodes/cc-cmds.el (c-progress-init)
+       (c-progress-update):
+       * lisp/progmodes/cperl-mode.el (cperl-time-fontification):
+       * lisp/progmodes/flymake.el (flymake--schedule-timer-maybe):
+       * lisp/progmodes/vhdl-mode.el (vhdl-update-progress-info)
+       (vhdl-fix-case-region-1):
+       * lisp/tar-mode.el (tar-octal-time):
+       * lisp/time.el (emacs-uptime):
+       * lisp/url/url-auth.el (url-digest-auth-make-cnonce):
+       * lisp/url/url-util.el (url-lazy-message):
+       * lisp/vc/vc-cvs.el (vc-cvs-parse-entry):
+       * lisp/vc/vc-hg.el (vc-hg-state-fast):
+       * lisp/xt-mouse.el (xterm-mouse-event):
+       * test/lisp/emacs-lisp/timer-tests.el:
+       (timer-next-integral-multiple-of-time-2):
+       Use time-convert, not encode-time.
+       * lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
+       Don’t use now-removed FORM argument for encode-time.
+       It wasn’t crucial anyway.
+       * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Add time-convert.
+       * lisp/emacs-lisp/elint.el (elint-unknown-builtin-args):
+       Update encode-time signature to match current arg set.
+       * lisp/emacs-lisp/timer.el (timer-next-integral-multiple-of-time):
+       Use timer-convert with t rather than doing it by hand.
+       * src/timefns.c (time_hz_ticks, time_form_stamp, lisp_time_form_stamp):
+       Remove; no longer needed.
+       (decode_lisp_time): Rturn the form instead of having a *PFORM arg.
+       All uses changed.
+       (time_arith): Just return TICKS if HZ is 1.
+       (Fencode_time): Remove argument FORM.  All callers changed.
+       Do not attempt to encode time values; just encode
+       decoded (calendrical) times.
+       Unless CURRENT_TIME_LIST, just return VALUE since HZ is 1.
+       (Ftime_convert): New function, which does the time value
+       conversion that bleeding-edge encode-time formerly did.
+       Return TIME if it is easy to see that it is already
+       of the correct form.
+       (Fcurrent_time): Mention in doc that the form is planned to change.
+       * test/src/timefns-tests.el (decode-then-encode-time):
+       Don’t use (encode-time nil).
+
+2019-08-05  Paul Eggert  <address@hidden>
+
+       Fix minor Org timestamp inefficiencies
+
+       * lisp/org/org-id.el (org-id-time-to-b36):
+       Remove unnecessary ‘or’.
+       * lisp/org/org.el (org-parse-time-string):
+       Remove unnecessary ‘encode-time’.
+
+2019-08-05  Juri Linkov  <address@hidden>
+
+       * lisp/cus-start.el: Add :safe to display-fill-column-indicator 
(bug#36861)
+
+       (display-fill-column-indicator)
+       (display-fill-column-indicator-column)
+       (display-fill-column-indicator-character): Add :safe predicates.
+
+2019-08-05  Juri Linkov  <address@hidden>
+
+       * lisp/frameset.el (frameset--minibufferless-last-p): Fix pcase-let.
+
+       This makes frameset sorting stable.  (Bug#36894)
+
+2019-08-05  Juri Linkov  <address@hidden>
+
+       * lisp/dired-x.el (dired-guess-shell-alist-default): Use git when 
possible.
+
+       Check for Git backend and provide "git apply" for patch files 
(bug#36895).
+
+2019-08-05  Juri Linkov  <address@hidden>
+
+       * lisp/dired.el (dired-special): Rename face from dired-socket 
(bug#24547).
+
+       (dired-re-special): Rename from dired-re-socket.
+
+2019-08-05  Juri Linkov  <address@hidden>
+
+       * lisp/isearch.el (isearch-define-mode-toggle): Ensure isearch-mode is 
active.
+
+       Call 'isearch-mode' when it's nil.  (Bug#36871)
+
+2019-08-05  Eli Zaretskii  <address@hidden>
+
+       Fix compilation with CHECK_STRUCTS
+
+       * src/pdumper.c (dump_hash_table): Update hash of
+       HASH_Lisp_Hash_Table.  (Bug#36929)
+
+2019-08-05  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Make `view-lossage' output of chars read from `read-char' more 
logical"
+
+       This reverts commit 1abf76877847226daa5ab7e07000ac1d4aba3478.
+
+       This change apparently led to problems with kmacro.
+
+2019-08-05  Michael Albinus  <address@hidden>
+
+       Improve Tramp's caching
+
+       * lisp/net/tramp.el (tramp-handle-add-name-to-file)
+       (tramp-handle-write-region):
+       * lisp/net/tramp-adb.el (tramp-adb-handle-make-directory)
+       (tramp-adb-handle-delete-directory)
+       (tramp-adb-handle-delete-file, tramp-adb-handle-write-region)
+       (tramp-adb-handle-set-file-modes)
+       (tramp-adb-handle-set-file-times, tramp-adb-handle-copy-file)
+       (tramp-adb-handle-rename-file):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file)
+       (tramp-gvfs-handle-delete-directory)
+       (tramp-gvfs-handle-delete-file)
+       (tramp-gvfs-handle-make-directory)
+       (tramp-gvfs-handle-set-file-modes)
+       (tramp-gvfs-handle-set-file-times, tramp-gvfs-set-file-uid-gid):
+       * lisp/net/tramp-rclone.el (tramp-rclone-do-copy-or-rename-file)
+       (tramp-rclone-handle-delete-directory)
+       (tramp-rclone-handle-delete-file):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link)
+       (tramp-sh-handle-set-file-modes, tramp-sh-handle-set-file-times)
+       (tramp-sh-handle-add-name-to-file)
+       (tramp-sh-handle-copy-directory, tramp-do-copy-or-rename-file)
+       (tramp-sh-handle-delete-directory, tramp-sh-handle-delete-file)
+       (tramp-sh-handle-write-region):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-add-name-to-file)
+       (tramp-smb-handle-copy-directory, tramp-smb-handle-copy-file)
+       (tramp-smb-handle-delete-directory)
+       (tramp-smb-handle-delete-file)
+       (tramp-smb-handle-make-directory-internal)
+       (tramp-smb-handle-make-symbolic-link)
+       (tramp-smb-handle-rename-file, tramp-smb-handle-write-region):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-add-name-to-file)
+       (tramp-sudoedit-do-copy-or-rename-file)
+       (tramp-sudoedit-handle-delete-directory)
+       (tramp-sudoedit-handle-delete-file)
+       (tramp-sudoedit-handle-set-file-modes)
+       (tramp-sudoedit-handle-set-file-times)
+       (tramp-sudoedit-handle-make-symbolic-link): Do not flush all file
+       properties of upper directory.
+
+       * lisp/net/tramp-cache.el (tramp-flush-file-upper-properties):
+       New defun.
+       (tramp-flush-file-properties, tramp-flush-directory-properties):
+       Use it.
+
+       * test/lisp/net/tramp-tests.el (tramp-time-diff): Declare.
+       (tramp--test-file-attributes-equal-p): Handle also modification
+       and status change time.
+
+2019-08-05  Lars Ingebrigtsen  <address@hidden>
+
+       Make `view-lossage' output of chars read from `read-char' more logical
+
+       * lisp/help.el (view-lossage): Use the new data format to output
+       data from `read-char' and the like in a more understandable
+       fashion (bug#21867).
+
+       * src/keyboard.c (command_loop_1): Record (in recent_keys) the end
+       of commands.
+       (Frecent_keys): Don't include `end-of-command' in non-command outputs.
+       (syms_of_keyboard): Define `end-of-command'.
+
+2019-08-05  Lars Ingebrigtsen  <address@hidden>
+
+       save-some-buffers-default-predicate doc clarification
+
+       * lisp/files.el (save-some-buffers-default-predicate): Clarify
+       calling convention.
+
+2019-08-05  Martin Rudalics  <address@hidden>
+
+       Fix doc-strings of 'display-buffer-*' functions (Bug#19461)
+
+       * lisp/window.el (display-buffer-in-atom-window)
+       (display-buffer-in-side-window, display-buffer-record-window)
+       (display-buffer-use-some-frame, display-buffer-same-window)
+       (display-buffer-reuse-window, display-buffer-pop-up-frame)
+       (display-buffer-pop-up-window, display-buffer-in-child-frame)
+       (display-buffer-in-direction, display-buffer-below-selected)
+       (display-buffer-at-bottom, display-buffer-in-previous-window)
+       (display-buffer-use-some-window)
+       (display-buffer--maybe-pop-up-frame-or-window)
+       (display-buffer--maybe-pop-up-frame): Fix doc-strings
+       (Bug#19461).
+
+2019-08-04  Paul Eggert  <address@hidden>
+
+       Fix one more 2019-08-04 regex lint
+
+       Problem clarified by Mattias Engdegård in:
+       https://lists.gnu.org/r/emacs-devel/2019-08/msg00087.html
+       * lisp/isearch.el (isearch-symbol-regexp):
+       Remove \s@ from regexp as it cannot match.
+
+2019-08-04  Basil L. Contovounesios  <address@hidden>
+
+       Support reverting Apropos buffers (bug#36588)
+
+       * lisp/apropos.el (apropos--current): New variable akin to
+       help-xref-stack-item storing information for revert-buffer.
+       (apropos--revert-buffer): New function.
+       (apropos-mode): Use it as revert-buffer-function.
+       (apropos-command, apropos, apropos-library, apropos-value)
+       (apropos-local-value, apropos-documentation): Set apropos--current
+       in low-level commands, i.e., those which do not call other commands.
+
+2019-08-04  Paul Eggert  <address@hidden>
+
+       Fix 2019-08-04 regex lint
+
+       Problem reported by Mattias Engdegård in:
+       https://lists.gnu.org/r/emacs-devel/2019-08/msg00085.html
+       * lisp/calendar/diary-lib.el (diary-glob-file-regexp-prefix):
+       Omit unnecessary ‘\’ before ordinary char.
+       * lisp/cedet/inversion.el (inversion-decoders):
+       * lisp/org/ob-haskell.el (org-babel-haskell-export-to-lhs):
+       Omit unnecessary ‘?’ after nullable pattern.
+       * lisp/org/org-capture.el (org-capture-fill-template):
+       Match upper-case as well as lower-case letters.
+       * lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings)
+       (c-after-change-mark-abnormal-strings):
+       Simplify ‘.|\r’ to ‘.’.
+       * lisp/progmodes/gdb-mi.el (gdb-jsonify-buffer):
+       Put ‘-’ at end of bracket expression.
+
+2019-08-04  Paul Eggert  <address@hidden>
+
+       Tweak time arithmetic performance
+
+       * src/timefns.c (lispint_arith): New function, which
+       should be a bit faster if B is 0, or if A is a bignum
+       and B a fixnum with absolute value in unsigned long range.
+       (time_arith): Use it.
+
+2019-08-04  Paul Eggert  <address@hidden>
+
+       Improve time function doc
+
+       * doc/misc/emacs-mime.texi (time-date): Don’t give
+       parse-iso8601-time-string in the example, as the function is
+       not autoloaded.
+       * lisp/gnus/nndiary.el (nndiary-compute-reminders):
+       No need to call encode-time or use floating point here.
+
+2019-08-04  Eli Zaretskii  <address@hidden>
+
+       Fix the MS-Windows build broken by recent changes
+
+       * src/inotify.c (syms_of_inotify) <Qignored>: Don't define here...
+       * src/coding.c (syms_of_coding) <Qignored>: ...define it here,
+       because it is needed also on platforms that don't compile
+       inotify.c.
+
+2019-08-04  Paul Eggert  <address@hidden>
+
+       Minor fix to recent coding.c change
+
+       * src/coding.c (get_buffer_gap_address):
+       Don’t assume string or buffer length fits in int.
+       Also, improve wording of comments.
+
+2019-08-04  Michael Albinus  <address@hidden>
+
+       * .dir-locals.el: Enable `bug-reference-mode' for further major modes.
+
+2019-08-04  Lars Ingebrigtsen  <address@hidden>
+
+       Capitalise a couple of node names
+
+       * doc/lispref/functions.texi (Advising Functions): Capitalise node
+       names (bug#17717).
+       (Advice Combinators, Porting Old Advice): Capitalise.
+
+2019-08-04  Michael Heerdegen  <address@hidden>
+
+       Clarify macroexp-let* doc string
+
+       * lisp/emacs-lisp/macroexp.el (macroexp-let2*): Clarify doc
+       string (bug#19371).
+
+2019-08-04  K. Handa  <address@hidden>
+
+       Add Unicode-safe UTF-8 converter
+
+       * src/coding.c (encode_string_utf_8, decode_string_utf_8): New 
functions.
+       * src/coding.h (encode_string_utf_8, decode_string_utf_8): Extern them.
+
+2019-08-04  Lars Ingebrigtsen  <address@hidden>
+
+       Core Advising Primitives `interactive' clarification
+
+       * doc/lispref/functions.texi (Core Advising Primitives): Clarify
+       when the interactive spec is a function (bug#17871).
+
+2019-08-04  Michael Albinus  <address@hidden>
+
+       Implement set-file-* functions for tramp-gvfs.el
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-gio-mapping):
+       Add "gvfs-set-attribute".
+       (tramp-gvfs-file-name-handler-alist):
+       Add `tramp-gvfs-handle-set-file-modes',
+       `tramp-gvfs-handle-set-file-times' and
+       `tramp-gvfs-handle-set-file-uid-gid'.
+       (tramp-gvfs-handle-set-file-modes)
+       (tramp-gvfs-handle-set-file-times)
+       (tramp-sh-handle-set-file-uid-gid): New defuns.
+
+       * lisp/net/tramp.el (tramp-handle-write-region): Set file modes.
+
+       * test/lisp/net/tramp-tests.el (tramp-test20-file-modes)
+       (tramp-test22-file-times): Do not skip for tramp-gvfs.el.
+
+2019-08-04  Martin Rudalics  <address@hidden>
+
+       Fix two mouse drag and drop issues (Bug#28620, Bug#36269)
+
+       Allow 'mouse-drag-and-drop-region' to move/copy text from one
+       frame to another (Bug#28620).  Prevent mouse avoidance mode from
+       interfering with 'mouse-drag-and-drop-region' (Bug#36269).
+
+       * lisp/avoid.el (mouse-avoidance-ignore-p): Suspend avoidance
+       when 'track-mouse' equals 'dropping'.
+       * lisp/mouse.el (mouse-drag-and-drop-region): Set
+       'track-mouse' to 'dropping'.  Continue reading events also
+       when switching frames.
+       * src/keyboard.c (Finternal_track_mouse): Rename from
+       Ftrack_mouse.
+       (some_mouse_moved): Return NULL also when mouse is not tracked.
+       (show_help_echo, readable_events, kbd_buffer_get_event): Don't
+       check whether mouse is tracked, some_mouse_moved does it now.
+       (track_mouse): Rename variable from do_mouse_tracking.  Adjust
+       all users.  In doc-string explain meanings of special values
+       'dragging' and 'dropping'.
+       * src/nsterm.m (ns_mouse_position): During drag and drop
+       consider last mouse frame only when there is no currently
+       focused frame.
+       * src/w32fns.c (w32_wnd_proc): Don't set mouse capture during a
+       drag and drop operation.
+       * src/w32term.c (w32_mouse_position): Track frame under mouse
+       during mouse drag and drop.
+       (mouse_or_wdesc_frame): New function.
+       (w32_read_socket): Call mouse_or_wdesc_frame on mouse events.
+       * src/xdisp.c (define_frame_cursor1): Don't change mouse cursor
+       shape during mouse drag and drop.
+       (syms_of_xdisp): New symbol Qdropping.
+       * src/xterm.c (XTmouse_position): Allow mouse drag and drop move
+       to another frame
+       (mouse_or_wdesc_frame): New function.
+       (handle_one_xevent): Use mouse_or_wdesc_frame for mouse events.
+
+2019-08-03  Noam Postavsky  <address@hidden>
+
+       Improved ChangeLog generation for vc log (Bug#16301)
+
+       * lisp/vc/diff-mode.el (diff-find-source-location): Fix docstring.
+
+       * lisp/vc/add-log.el (change-log-unindented-file-names-re)
+       (change-log-read-entries, change-log-read-defuns)
+       (change-log-insert-entries):
+       * lisp/vc/diff-mode.el (diff-add-log-current-defuns):
+       * lisp/vc/log-edit.el (log-edit--insert-filled-defuns)
+       (log-edit-fill-entry): New functions.
+       (log-edit-mode): Set `log-edit-fill-entry' as
+       `fill-paragraph-function'.
+       (log-edit-generate-changelog-from-diff): New command.
+       (log-edit-mode-map): Bind it to C-c C-w.
+       * doc/emacs/maintaining.texi (Types of Log File, Log Buffer):
+       * CONTRIBUTE: Document it.
+       * etc/NEWS: Announce it.
+       * test/lisp/vc/log-edit-tests.el (log-edit-fill-entry)
+       (log-edit-fill-entry-joining): New tests.
+
+2019-08-03  Eric Abrahamsen  <address@hidden>
+
+       Fix Gnus group name reference in gnus-mark-xrefs-as-read
+
+       * lisp/gnus/gnus-sum.el (gnus-mark-xrefs-as-read): There's already a
+       local binding for "group", don't need another "name". This was left
+       over from the obarray-to-hashtable change.
+
+2019-08-03  Eric Abrahamsen  <address@hidden>
+
+       Temporarily preserve encoded Gnus group names in Gnus files
+
+       Non-ascii Gnus groups should be written to files in their encoded
+       version until we're ready to bump Gnus' version and add an upgrade
+       routine.
+
+       * lisp/gnus/gnus-start.el (gnus-gnus-to-quick-newsrc-format):
+       * lisp/gnus/gnus-agent.el (gnus-category-read):
+         (gnus-category-write): Handle non-ascii group names appropriately.
+       * lisp/gnus/gnus-registry.el (gnus-registry--munge-group-names): New
+         function to encode/decode group names.
+         (gnus-registry-fixup-registry):
+         (gnus-registry-save): Use function.
+
+2019-08-03  Eric Abrahamsen  <address@hidden>
+
+       Remove Gnus group name encoding/decoding
+
+       This completes the process started in c1b63af445. Gnus group names are
+       now fully decoded inside the Gnus system.
+
+       * lisp/gnus/gnus-agent.el (gnus-agent-file-coding-system): Change
+         default to utf-8-emacs.
+         (gnus-agent-decoded-group-names, gnus-agent-decoded-group-name):
+         Remove variable and function. Remove all usage in this file.
+       * lisp/gnus/gnus-cache.el (gnus-cache-decoded-group-names,
+         gnus-cache-unified-group-names, gnus-cache-decoded-group-name):
+         Remove these variables and function. Remove all usage in this file.
+       * lisp/gnus/gnus-group.el (gnus-tmp-decoded-group): Remove this
+         variable, gnus-tmp-group is now decoded.
+         (gnus-group-completing-read): Don't encode or decode group names
+         here.
+         (gnus-group-make-group): Remove ENCODED argument.
+       * lisp/gnus/gnus-srvr.el (gnus-browse-foreign-server): Decode group
+         names here.
+       * lisp/gnus/gnus-start.el (gnus-make-hashtable-from-newsrc-alist):
+         check for encoded group names and decode.
+         (gnus-active-to-gnus-format): Make sure incoming group names are
+         decoded.
+         (gnus-read-newsrc-el-file): Check for encoded group names in
+         gnus-topic-alist.
+       * lisp/gnus/nnagent.el: Don't use a unibyte buffer.
+       * lisp/gnus/nnheader.el (nnheader-file-coding-system): Switch default
+         from 'raw-text to 'undecided, on the assumption that 'undecided will
+         probably write 'utf-8-emacs unless the user has arranged things
+         otherwise.
+       * lisp/gnus/nnimap.el (nnimap-decode-gnus-group,
+         nnimap-encode-gnus-group): Remove functions and their use.
+       * lisp/gnus/nnmail.el (nnmail-parse-active): Remove encoding.
+         (nnmail-active-file-coding-system): Default to 'utf-8-emacs instead
+         of 'raw-text.
+         (nnmail-group-names-not-encoded-p): Obsolete this variable; stop
+         using it.
+       * lisp/gnus/gnus-art.el:
+       * lisp/gnus/gnus-cus.el:
+       * lisp/gnus/gnus-msg.el:
+       * lisp/gnus/gnus-start.el:
+       * lisp/gnus/gnus-sum.el:
+       * lisp/gnus/gnus.el:
+       * lisp/gnus/nnml.el:
+       * lisp/gnus/message.el:
+       * lisp/gnus/nnrss.el: Stop using gnus-group-decoded-name in all these
+         files.
+
+2019-08-03  Eric Abrahamsen  <address@hidden>
+
+       Fix ordering of Gnus groups after yanking
+
+       * lisp/gnus/gnus-start.el (gnus-group-change-level): Fix docstring to
+       note that the inserted group is inserted *before* the PREVIOUS
+       group. Fix indexing -- shouldn't have been adding one to the index.
+
+2019-08-03  Paul Eggert  <address@hidden>
+
+       Remove stale .pdmp files with ‘make clean’
+
+       Problem reported by Sven Joachim (Bug#36907).
+       * admin/make-emacs: Simplify, now that clean does versionclean.
+       * src/Makefile.in ($(etc)/DOC, versionclean, extraclean):
+       Don’t ignore rm -f failures.
+       (versionclean): Also remove emacs-*.*.*[0-9].pdmp and ../etc/DOC*.
+       (clean): Depend on versionclean and simplify.
+
+2019-08-03  Glenn Morris  <address@hidden>
+
+       * doc/lispref/display.texi (SVG Images): Remove menu.
+
+       Not needed since SVG Path Commands was changed to not be a node.
+
+2019-08-03  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify hi-lock-file-patterns-prefix doc string
+
+       * lisp/hi-lock.el (hi-lock-file-patterns-prefix): Clarify doc
+       string (bug#17993).
+
+2019-08-03  Lars Ingebrigtsen  <address@hidden>
+
+       Mention `themed-value' in Variable Definitions node
+
+       * doc/lispref/customize.texi (Variable Definitions): Mention
+       `themed-value' (bug#17996).
+
+2019-08-03  Oleh Krehel  <address@hidden>
+
+       calc mode line touch up
+
+       * lisp/calc/calc.el (calc-set-mode-line): Don't put excessive
+       white space in mode line (bug#18079).
+
+2019-08-03  Paul Eggert  <address@hidden>
+
+       Fix rare undefined behaviors in replace-match
+
+       * src/search.c (Freplace_match): Simplify by caching search_regs
+       components.  Fix sanity check for out-of-range subscripts;
+       it incorrectly allowed negative subscripts, subscripts
+       equal to search_regs.num_regs, and it had undefined
+       behavior for subscripts outside ptrdiff_t range.
+       Improve wording of newly-introduced replace-match diagnostic.
+       Rework use of opoint, to avoid setting point to an out-of-range value
+       in rare cases involving modification hooks.
+
+2019-08-03  Pierre-Yves Luyten  <address@hidden>  (tiny change)
+
+       cua-rect help: check for 'control value
+
+       * lisp/emulation/cua-rect.el (cua-help-for-rectangle): Check for
+       'control value (bug#18120).
+
+2019-08-03  Lars Ingebrigtsen  <address@hidden>
+
+       delete-backward/forward-char doc string clarification
+
+       * lisp/simple.el (delete-backward-char): Doc string clarification
+       (bug#18192).
+       (delete-forward-char): Ditto.
+
+2019-08-03  Lars Ingebrigtsen  <address@hidden>
+
+       ido-find-file doc string addition
+
+       * lisp/ido.el (ido-find-file): Mention ido-reread-directory
+       (bug#18275).  Suggested by Rob Browning.
+
+2019-08-03  Kevin Ryde  <address@hidden>
+
+       easy-menu-define doc string fix
+
+       * lisp/emacs-lisp/easymenu.el (easy-menu-define): Docstring :label and
+       :help of the menu itself.
+
+2019-08-03  Lars Ingebrigtsen  <address@hidden>
+
+       Add some function index entries for ido.texi
+
+       * doc/misc/ido.texi: Add index entries for functions (bug#18691).
+
+2019-08-03  Andreas Politz  <address@hidden>
+
+       Tweak tq queue processing
+
+       * lisp/emacs-lisp/tq.el (tq-process-buffer): Pop the queue before
+       calling the function because the function may add new entries to
+       the queue (bug#19016).  Also report errors.
+
+2019-08-03  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak tango-dark-theme hightlight face
+
+       * etc/themes/tango-dark-theme.el (class): Make highlight a bit
+       less yellow to make the cursor visible on it (bug#19189).
+
+2019-08-03  Lars Ingebrigtsen  <address@hidden>
+
+       Fix error message in replace-match for subexpressions
+
+       * src/search.c (Freplace_match): Output a more understandable
+       error message when replacing a subexpression (bug#19208).
+
+2019-08-03  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify Freplace_match logic
+
+       * src/search.c (Freplace_match): Add some doc strings to clarify
+       the logic and do a minor clean up (bug#19208).
+
+2019-08-03  Lars Ingebrigtsen  <address@hidden>
+
+       Don't refer to non-existent functions in mode line examples
+
+       * doc/lispintro/emacs-lisp-intro.texi (Mode Line): Ditto.
+
+       * doc/lispref/modes.texi (Mode Line Top): In the :eval example,
+       use a function that exists to avoid confusion (bug#19224).
+
+2019-08-03  Lars Ingebrigtsen  <address@hidden>
+
+       Fix previous macroexp-progn doc string fix
+
+       * lisp/emacs-lisp/macroexp.el (macroexp-progn): Fix previous doc
+       string clarification.
+
+2019-08-03  Eli Zaretskii  <address@hidden>
+
+       Minor doc fix in etags.el
+
+       * lisp/progmodes/etags.el
+       (etags-xref-find-definitions-tag-order): Doc fix.  (Bug#32510)
+
+2019-08-03  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of debugging Lisp syntax error
+
+       * doc/lispref/debugging.texi (Syntax Errors, Excess Open)
+       (Excess Close): Name the commands invoked by the key
+       sequences.  Add cross-references to appropriate sections of
+       the Emacs manual.  (Bug#21385)
+
+2019-08-03  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of 'display-buffer-*' functions
+
+       * lisp/window.el (display-buffer-in-atom-window)
+       (display-buffer-in-side-window, display-buffer-same-window)
+       (display-buffer--maybe-same-window)
+       (display-buffer-reuse-window)
+       (display-buffer-reuse-mode-window)
+       (display-buffer-pop-up-frame, display-buffer-pop-up-window)
+       (display-buffer--maybe-pop-up-frame-or-window)
+       (display-buffer--maybe-pop-up-frame)
+       (display-buffer-in-child-frame, display-buffer-in-direction)
+       (display-buffer-below-selected, display-buffer-at-bottom)
+       (display-buffer-in-previous-window)
+       (display-buffer-use-some-window, display-buffer-no-window):
+       More details about the ALIST argument in the doc string.  (Bug#19461)
+
+2019-08-02  Lars Ingebrigtsen  <address@hidden>
+
+       macroexp doc fixes
+
+       * lisp/emacs-lisp/macroexp.el (macroexp-progn): Doc clarification
+       (bug#19371).
+       (macroexp-let*): Doc fix.
+
+2019-08-02  Lars Ingebrigtsen  <address@hidden>
+
+       macroexp--cons doc fix
+
+       * lisp/emacs-lisp/macroexp.el (macroexp--cons): Doc fix (bug#19371).
+
+2019-08-02  Lars Ingebrigtsen  <address@hidden>
+
+       Fix some minor inconsistencies in the Package examples
+
+       * doc/lispref/package.texi (Simple Packages): Use one of the
+       approved keywords (bug#19490).
+
+       * doc/lispref/tips.texi (Library Headers): Use URL instead of
+       Homepage to make things consistent with "Simple Packages".
+
+2019-08-02  Lars Ingebrigtsen  <address@hidden>
+
+       Don't but out on ~/.git files in ede
+
+       * lisp/cedet/ede/detect.el (ede--detect-ldf-root-predicate): Make
+       this work with ~/ as the dir (bug#19521).
+
+2019-08-02  Lars Ingebrigtsen  <address@hidden>
+
+       browse-url doc string fixup
+
+       * lisp/net/browse-url.el (browse-url-browser-function)
+       (browse-url-secondary-browser-function): Mention each other in the
+       doc strings.
+
+2019-08-02  Lars Ingebrigtsen  <address@hidden>
+
+       Make Info-find-file ensure that Info is initialised
+
+       * lisp/info.el (Info-find-file): Ensure that Info is initialised,
+       because libraries call that function (bug#19880).
+
+2019-08-02  Lars Ingebrigtsen  <address@hidden>
+
+       Fix progression in hideshow.el
+
+       * lisp/progmodes/hideshow.el (hs-hide-all): Ensure progression in
+       a less brittle fashion (bug#19892).
+
+2019-08-02  Michael Heerdegen  <address@hidden>
+
+       Fix example code in hideshow.el
+
+       * lisp/progmodes/hideshow.el: The original example would infloop
+       (bug#19892).
+
+2019-08-02  Michael Albinus  <address@hidden>
+
+       Use default value of `parse-time-months' in tramp-smb.el
+
+       * lisp/net/tramp-smb.el (tramp-smb-read-file-entry): Use default
+       value of `parse-time-months'.
+
+2019-08-02  Tassilo Horn  <address@hidden>
+
+       Improve pretty-printing of multiple JSON snippets in a region
+
+       * lisp/json.el (json-pretty-print): Improve pretty-printing of
+       multiple JSON snippets in a region.  Don't lose the region contents
+       starting with the first non-JSON-parseable text.  Also, don't swallow
+       errors that occurred while parsing (bug#34160).
+
+2019-08-02  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Fix error in macro cache.  This fixes bug #36802
+
+       * lisp/progmodes/cc-engine.el (c-invalidate-macro-cache): Add in a cond 
arm
+       to handle the change position being less than the recorded CPP contruct 
end.
+
+2019-08-02  Basil L. Contovounesios  <address@hidden>
+
+       Make gravatar.el more configurable
+
+       For discussion, see the following thread:
+       https://lists.gnu.org/archive/html/emacs-devel/2019-07/msg00528.html
+
+       * etc/NEWS: Announce changes in gravatar.el user options.
+
+       * lisp/image/gravatar.el (gravatar-cache-ttl): Change :type to
+       number of seconds without changing the default value and while still
+       accepting other timestamp formats.
+       (gravatar-rating): Restrict :type to ratings recognized by Gravatar.
+       (gravatar-size): Allow nil as a value, in which case Gravatar's
+       default size is used.
+       (gravatar-default-image, gravatar-force-default): New user options
+       controlling the Gravatar query parameters 'default' and
+       'forcedefault', respectively.
+       (gravatar-base-url): Use HTTPS.
+       (gravatar--query-string): New helper function to facilitate testing.
+       (gravatar-build-url): Use it.
+
+       * test/lisp/image/gravatar-tests.el (gravatar-size)
+       (gravatar-default-image, gravatar-force-default)
+       (gravatar-build-url): New tests.
+
+2019-08-02  Basil L. Contovounesios  <address@hidden>
+
+       Fix some minor gravatar.el issues
+
+       For discussion, see the following thread:
+       https://lists.gnu.org/archive/html/emacs-devel/2019-07/msg00528.html
+       * lisp/image/gravatar.el (gravatar-hash): Trim leading and trailing
+       whitespace in given address, as per the Gravatar docs.
+       (gravatar-retrieve-synchronously): Silence call to
+       url-retrieve-synchronously for consistency with gravatar-retrieve.
+       (gravatar-retrieved): Only cache buffer on successful retrieval.
+       * test/lisp/image/gravatar-tests.el: New file.
+
+2019-08-02  Basil L. Contovounesios  <address@hidden>
+
+       DRY in gravatar.el
+
+       For discussion, see the following thread:
+       https://lists.gnu.org/archive/html/emacs-devel/2019-07/msg00528.html
+       * lisp/image/gravatar.el (gravatar-data->image): Remove.
+       (gravatar-retrieve, gravatar-retrieve-synchronously): Reuse
+       url-fetch-from-cache and gravatar-retrieved to reduce duplication.
+       (gravatar-retrieved): Only cache buffer if url-current-object is
+       non-nil and return result of callback.  This affords reusing this
+       function in cached URL buffers.
+
+2019-08-02  Basil L. Contovounesios  <address@hidden>
+
+       Use lexical-binding for Gravatar support
+
+       For discussion, see the following thread:
+       https://lists.gnu.org/archive/html/emacs-devel/2019-07/msg00528.html
+       * lisp/gnus/gnus-gravatar.el: Use lexical-binding.  Link custom
+       group 'gnus-gravatar' to 'gravatar'.
+       (gnus-gravatar-size, gnus-gravatar-too-ugly): Doc fix.
+       (gnus-gravatar-insert): Check liveness of article buffer sooner.
+       (gnus-treat-from-gravatar, gnus-treat-mail-gravatar): Use
+       interactive spec "p" instead of emulating it.
+       * lisp/image/gravatar.el: Use lexical-binding.
+       (gravatar-cache-expired): Remove.  Change all callers to use
+       url-cache-expired instead.
+       (gravatar-get-data, gravatar-retrieve)
+       (gravatar-retrieve-synchronously): Simplify.
+
+2019-08-02  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Fix spurious recognition of operators beginning with, e.g. "or"
+
+       This fixes bug #36801.
+
+       * lisp/progmodes/cc-langs.el (c-pre-lambda-tokens-re): Use 
c-make-keywords-re
+       rather than regexp-opt to make an optimised regexp out of a list of 
tokens.
+
+2019-08-02  Lars Ingebrigtsen  <address@hidden>
+
+       pdb doc clarification
+
+       * lisp/progmodes/gud.el (pdb): Clarify what the parameters mean
+       (bug#20106).
+
+2019-08-02  Lars Ingebrigtsen  <address@hidden>
+
+       Mention that some dired commands work on the current file, too
+
+       * lisp/dired-aux.el (dired-do-search): Mention that it works on
+       file under point (bug#20194).
+       (dired-do-find-regexp-and-replace): Ditto.
+       (dired-do-find-regexp): Ditto.
+
+2019-08-02  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Fix the timing of application and removal of string fence 
properties
+
+       This fixes bug #36897.
+
+       * lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings): 
Check
+       string fence text properties are actually present on string delimiters 
before
+       trying to remove them.
+       (c-before-change): Amend the nesting of unwind-protect, widen,
+       c-restore-string-fences, and c-clear-string-fences.  Move
+       invalidate-state-cache to outside of the widening.
+       (c-after-change): Amend the nesting of unwind-protect, widen,
+       c-restore-string-fences, and c-clear-string-fences.
+
+2019-08-02  Lars Ingebrigtsen  <address@hidden>
+
+       Use "rebinding keys" in the "Rebinding" section of the manual
+
+       * doc/emacs/custom.texi (Rebinding): Use the term "rebinding keys"
+       instead of "redefining keys", because the former seems more
+       logical (bug#21036).
+
+2019-08-02  Mattias Engdegård  <address@hidden>
+
+       Clean up file-size-function
+
+       It is now called `byte-count-to-string-function', and used instead of
+       calling `file-size-human-readable' directly where appropriate.
+
+       * lisp/files.el (file-size-human-readable-iec): New.
+       (file-size-function): Rename to byte-count-to-string-function.  Better
+       default value.  Eliminate lambda.  Better default for custom choice.
+       Put in group `files'.  More descriptive doc string.  Move.
+       (out-of-memory-warning-percentage, warn-maybe-out-of-memory)
+       (get-free-disk-space):
+       * lisp/dired.el (dired-number-of-marked-files):
+       * lisp/url/url-http.el (url-http-simple-after-change-function)
+       (url-http-content-length-after-change-function):
+       Use byte-count-to-string-function.
+       * test/lisp/files-tests.el (files-test-file-size-human-readable):
+       Test file-size-human-readable-iec.
+
+2019-08-02  Eli Zaretskii  <address@hidden>
+
+       Mention font-backend related crashes in PROBLEMS
+
+       * etc/PROBLEMS: Mention the crash in the Cairo build when
+       .emacs.desktop messes with font-backend.  (Bug#36835)
+
+2019-08-01  Paul Eggert  <address@hidden>
+
+       Fix two parse-time-months invalid assumptions
+
+       * lisp/gnus/nnimap.el: Do not require parse-time.
+       * lisp/gnus/nnimap.el (nnimap-find-expired-articles):
+       * lisp/net/pop3.el (pop3-make-date):
+       Just use system-time-locale and format-time-string; no need to
+       refer to parse-time-months.
+       * lisp/net/pop3.el (parse-time-months): Remove defvar.
+       * lisp/net/tramp-smb.el (tramp-smb-read-file-entry):
+       Add FIXME comment about this.
+
+2019-08-01  Paul Eggert  <address@hidden>
+
+       Port standard-test-interval to Los Angeles
+
+       * test/lisp/calendar/iso8601-tests.el (standard-test-interval):
+       Use UTC to avoid DST glitches in the test.
+
+2019-08-01  Lars Ingebrigtsen  <address@hidden>
+
+       Document that --eval makes emacsclient ignore -n
+
+       * doc/man/emacsclient.1: Mention that -n is ignored if --eval is
+       given (bug#20524).
+
+2019-08-01  Lars Ingebrigtsen  <address@hidden>
+
+       Document batch-byte-compile directory behavior
+
+       * lisp/emacs-lisp/bytecomp.el (batch-byte-compile): Document the
+       behaviour with directories (bug#20867).
+
+2019-08-01  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/message.el (message-sendmail-f-is-evil): Update :version
+
+2019-08-01  Lars Ingebrigtsen  <address@hidden>
+
+       Update URL in comment in gomoku.el
+
+       * lisp/play/gomoku.el: Update the URL in the comments (bug#21300).
+
+2019-08-01  Lars Ingebrigtsen  <address@hidden>
+
+       Fix reference to `tags-loop-continue' in doc string
+
+       * lisp/dired-aux.el (dired-do-search): Refer to
+       `fileloop-continue' instead of the obsolete `tags-loop-continue'
+       (bug#21475).
+
+2019-08-01  Lars Ingebrigtsen  <address@hidden>
+
+       Mention `C-h b' in the Keymaps node
+
+       * doc/emacs/custom.texi (Keymaps): Mention `C-h b' here (bug#21653).
+
+2019-08-01  Daniel Barrett  <address@hidden>  (tiny change)
+
+       Add PDF to the DocBook notation class
+
+       * etc/schema/dbnotn.rnc: PDF is among the document types accepted
+       (bug#21882).
+
+2019-08-01  Lars Ingebrigtsen  <address@hidden>
+
+       Say that while returns nil
+
+       * src/eval.c (Fwhile): Say that while always returns nil
+       (bug#22006).
+
+2019-08-01  Glenn Morris  <address@hidden>
+
+       * doc/lispref/display.texi (SVG Images): Add menu for subsection.
+
+       Again.  This is needed for makeinfo-4.13.
+
+2019-08-01  Eli Zaretskii  <address@hidden>
+
+       Fix the ELisp manual part of a recent commit
+
+       * doc/lispref/display.texi (SVG Images): Fix markup of "SVG
+       Path Commands".  It is no longer a @node, but a @subheading.
+
+2019-08-01  Basil L. Contovounesios  <address@hidden>
+
+       Fix property stripping in image-file-yank-handler
+
+       Fix proposed by Martin Rudalics <address@hidden> in:
+       https://lists.gnu.org/archive/html/emacs-devel/2008-12/msg00945.html
+       * lisp/image-file.el (image-file-yank-handler): Handle case when
+       yank-excluded-properties is t.
+
+2019-08-01  Basil L. Contovounesios  <address@hidden>
+
+       Fix usage of remove-text-properties
+
+       * lisp/allout-widgets.el (allout-decorate-item-icon):
+       * lisp/emacs-lisp/chart.el (chart-goto-xy):
+       * lisp/forms.el (forms--make-format)
+       (forms--make-format-elt-using-text-properties):
+       * lisp/htmlfontify.el (hfy-unmark-trailing-whitespace):
+       * lisp/net/newst-plainview.el (newsticker-hide-entry)
+       (newsticker-show-entry):
+       * lisp/nxml/nxml-mode.el (nxml-cleanup):
+       * lisp/obsolete/longlines.el (longlines-unshow-hard-newlines)
+       (longlines-encode-region):
+       * lisp/org/ob-exp.el (org-babel-exp-process-buffer):
+       * lisp/org/org-agenda.el (org-agenda-show-new-time):
+       * lisp/progmodes/cc-defs.el
+       (c-clear-char-property-with-value-function)
+       (c-clear-char-property-with-value-on-char-function):
+       * lisp/progmodes/ebrowse.el (ebrowse--hide):
+       * lisp/progmodes/gdb-mi.el (gdb-send):
+       * lisp/progmodes/idlw-shell.el
+       (idlwave-retrieve-expression-from-level):
+       * lisp/progmodes/make-mode.el (makefile-fill-paragraph):
+       * lisp/progmodes/prog-mode.el (prettify-symbols--post-command-hook):
+       * lisp/progmodes/ruby-mode.el (ruby-syntax-propertize):
+       * lisp/tmm.el (tmm-remove-inactive-mouse-face):
+       Always pass an explicit plist to remove-text-properties.
+
+       * lisp/dired.el (dired--unhide):
+       * lisp/facemenu.el (facemenu-add-face):
+       * lisp/htmlfontify.el (hfy-fontify-buffer):
+       * lisp/iimage.el (iimage-mode-buffer):
+       * lisp/image-file.el (image-file-yank-handler):
+       * lisp/progmodes/prog-mode.el (prettify-symbols--compose-symbol):
+       * lisp/textmodes/tex-mode.el (latex-env-before-change):
+       * test/src/undo-tests.el (undo-test0):
+       Use remove-list-of-text-properties in place of
+       remove-text-properties where appropriate.
+
+2019-08-01  Lars Ingebrigtsen  <address@hidden>
+
+       Doc string clarification for defcustom
+
+       * lisp/custom.el (defcustom): Mention `custom-declare-variable' in
+       the doc string(bug#22703).
+
+2019-08-01  Lars Ingebrigtsen  <address@hidden>
+
+       Make `C-u RET' in erc use the secondary browser
+
+       * lisp/erc/erc-button.el (erc-button-alist): Use the version of
+       `browse-url' that interprets `C-u RET' as using the secondary browser.
+
+2019-08-01  Lars Ingebrigtsen  <address@hidden>
+
+       Use decoded-time accessors in vc-cvs
+
+       * lisp/vc/vc-cvs.el (vc-cvs-parse-entry): Use decoded-time
+       accessors for results from `parse-time-string'.
+
+2019-08-01  Lars Ingebrigtsen  <address@hidden>
+
+       Use decoded-time accessors in gnus-demon
+
+       * lisp/gnus/gnus-demon.el (gnus-demon-time-to-step): Use
+       decoded-time accessors for results from `parse-time-string'.
+
+2019-08-01  Lars Ingebrigtsen  <address@hidden>
+
+       Use decoded-time accessors in esh-util
+
+       * lisp/eshell/esh-util.el (eshell-parse-ange-ls): Use decoded-time
+       accessors for results from `parse-time-string'.
+
+2019-08-01  Lars Ingebrigtsen  <address@hidden>
+
+       Remove some compat code in esh-util
+
+       * lisp/eshell/esh-util.el (eshell-parse-ange-ls): Remove
+       older-Emacs compat code.
+
+2019-08-01  Martin Rudalics  <address@hidden>
+
+       Add example for removing scroll bars/fringes from mini windows 
(Bug#8868)
+
+       * doc/lispref/display.texi (Fringe Size/Pos): Mention example
+       for how to permenantly remove fringes from minibuffer windows.
+       (Scroll Bars): Add example for how to permanently remove
+       scroll bars and fringes from minibuffer windows.
+
+2019-07-31  Paul Eggert  <address@hidden>
+
+       format-time-string subsumes time-zone-format
+
+       * lisp/calendar/time-date.el (time-zone-format):
+       * test/lisp/calendar/time-date-tests.el (test-time-zone-format):
+       Remove.
+       * lisp/gnus/nnrss.el (nnrss-normalize-date):
+       Use format-time-string instead of time-zone-format.
+
+2019-07-31  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Revert "Add support for paths to svg.el""
+
+       This reverts commit 0a2461be9edb218bf9ca56156d8966a2421f13a7.
+
+       Copyright paperwork is now in place, so the patch mistakenly applied
+       can now be re-applied.
+
+2019-07-31  Lars Ingebrigtsen  <address@hidden>
+
+       Restore `replace-region-contents' in json-pretty-print
+
+       * lisp/json.el (json-pretty-print): Switch back to using
+       `replace-region-contents' to preserve markers and fonts which went
+       missing when fixing the bug
+       (bug#34160).
+       (json-pretty-print-max-secs): Restore, too.
+
+2019-07-31  Lars Ingebrigtsen  <address@hidden>
+
+       Add more icalendar tests (for the isodatetime parser)
+
+       * test/lisp/calendar/icalendar-tests.el
+       (icalendar-tests--decode-isodatetime): Test
+       `icalendar--decode-isodatetime'.
+
+2019-07-31  Lars Ingebrigtsen  <address@hidden>
+
+       Rewrite `url-dav-process-date-property' to use parse-time
+
+       * lisp/url/url-dav.el (url-dav-iso8601-regexp): Remove.
+       (url-dav-process-date-property): Rewrite to use
+       `parse-iso8601-time-string'.
+
+2019-07-31  Lars Ingebrigtsen  <address@hidden>
+
+       Fix time zone in previous rewrite of newsticker--decode-iso8601-date
+
+       * lisp/net/newst-backend.el (newsticker--decode-iso8601-date):
+       According to the tests, this function should default to the Z time
+       zone.
+
+2019-07-31  Lars Ingebrigtsen  <address@hidden>
+
+       Rewrite `parse-iso8601-time-string' to use `iso8601-parse'
+
+       * lisp/calendar/parse-time.el (parse-iso8601-time-string): Use
+       `iso8601-parse'.
+       (parse-time-iso8601-regexp): Remove.
+
+2019-07-31  Lars Ingebrigtsen  <address@hidden>
+
+       Allow timezone defaults in decoded-time-set-defaults
+
+       * lisp/calendar/time-date.el (decoded-time-set-defaults): Allow
+       passing in a default time zone, as this seems to be something
+       callers seem to do.
+
+2019-07-31  Lars Ingebrigtsen  <address@hidden>
+
+       Default DST to "undecided" in decoded-time-set-defaults
+
+       * lisp/calendar/time-date.el (decoded-time-set-defaults): When we
+       don't have a zone or a DST, set DST to "undecided".
+
+2019-07-31  Lars Ingebrigtsen  <address@hidden>
+
+       decoded-time-dst doc fix
+
+       * lisp/simple.el (decoded-time): Doc fix for dst (note -1 value).
+
+2019-07-31  Lars Ingebrigtsen  <address@hidden>
+
+       Use iso8601-parse in nnrss
+
+       * lisp/gnus/nnrss.el (nnrss-normalize-date): Use iso8601-parse
+       instead of hand-rolled parser.
+
+       * test/lisp/gnus/nnrss-tests.el: New file.
+
+2019-07-31  Lars Ingebrigtsen  <address@hidden>
+
+       Make time-zone-format take a SHORT parameter
+
+       * lisp/calendar/time-date.el (time-zone-format): Accept an
+       optional SHORT parameter.
+
+2019-07-31  Lars Ingebrigtsen  <address@hidden>
+
+       Add new function time-zone-format
+
+       * lisp/calendar/time-date.el (time-zone-format): New function.
+
+2019-07-31  Lars Ingebrigtsen  <address@hidden>
+
+       `decoded-time-set-defaults' refactored out from iso8601 code
+
+       * lisp/calendar/iso8601.el (iso8601--encode-time):
+       * lisp/calendar/time-date.el (decoded-time-set-defaults):
+       Refactor out from `iso8601--encode-time', because it's helpful
+       in other contexts.
+
+2019-07-31  Lars Ingebrigtsen  <address@hidden>
+
+       Have newsticker use iso8601 to parse dates
+
+       * lisp/net/newst-backend.el (newsticker--decode-iso8601-date): Use
+       iso8601 to parse.
+
+2019-07-31  Michael Albinus  <address@hidden>
+
+       Call file notification actions properly in filenotify-tests.el
+
+       * test/lisp/filenotify-tests.el (file-notify--test-wait-for-events):
+       Rename from `file-notify--wait-for-events'.  Adapt all callees.
+       (file-notify--test-cleanup): Reset also `file-notify--test-event'
+       and `file-notify--test-file nil'.
+       (file-notify--test-event-desc, file-notify--test-event-action):
+       New accessor functions.
+       (file-notify-test02-rm-watch, file-notify--test-event-test)
+       (file-notify--test-with-actions-check)
+       (file-notify--test-with-actions-explainer): Use them.
+       (file-notify--test-with-actions-check)
+       (file-notify--test-with-actions-explainer)
+       (file-notify--test-with-actions): Rename them from *-events-*.
+       Rename also internal variables accordingly.  Adapt all callees.
+
+2019-07-31  Michael Albinus  <address@hidden>
+
+       Distinguish different file notification events
+
+       * lisp/filenotify.el (file-notify--watch): Add docstring.
+       (file-notify-descriptors, file-notify--rm-descriptor)
+       (file-notify--pending-rename): Adapt docstring.
+       (file-notify): New defstruct.
+       (file-notify-handle-event): Rename argument to OBJECT.  Use
+       accessor functions of the defstruct.
+
+2019-07-31  Paul Eggert  <address@hidden>
+
+       Avoid intern calls for builtin syms
+
+       * src/casefiddle.c (Fdowncase_region):
+       * src/eval.c (Fdefvaralias):
+       Use builtin symbol rather than calling intern.
+
+2019-07-31  Paul Eggert  <address@hidden>
+
+       Fix Fload infile problem
+
+       * src/lread.c (Fload): Close window of vulnerability
+       where the wrong stream could have been closed.
+
+2019-07-31  Stefan Monnier  <address@hidden>
+
+       * src/lread.c (close_infile_unwind): Remove leftover debug code
+
+2019-07-31  Stefan Monnier  <address@hidden>
+
+       * src/lread.c (infile): Set/reset it like a dynamically scoped variable
+
+       I've seen segfaults where `infile` is nil when we get to
+       readbyte_from_file, presumably because Fload set it to NULL (via
+       close_infile_unwind) just before returning to its caller which was
+       probably itself within another read/load and for some reason
+       readevalloop didn't get to re-set `infile` like it used to do at every
+       iteration.  I was not able to really track down the bug, but the way
+       `infile` was set/reset seemed fragile and managing it like a standard
+       dynamically-scoped var seems both safer (and more efficient since we
+       don't need readevalloop to constantly re-set it).
+
+       (readchar): Assert that `infile` is set if using a function the depends 
on it.
+       (readbyte_from_file): Assert that `infile` is set.
+       (close_infile_unwind): Reset `infile` to its previous value rather than
+       to NULL.
+       (Fload): Remember the previous value of `infile` before chaning it.
+       (readevalloop): Don't set `infile` any more.
+
+2019-07-31  Paul Eggert  <address@hidden>
+
+       Clarify (lognot bignum)
+
+       * doc/lispref/numbers.texi (Bitwise Operations):
+       Say that (= (lognot n) (- -1 n)).
+
+2019-07-31  Michael Albinus  <address@hidden>
+
+       Fix an error in tramp-sh-inotifywait-process-filter
+
+       * lisp/net/tramp-sh.el (tramp-sh-inotifywait-process-filter):
+       Add default FILE to returned event, if inotifywait doesn't tell us.
+
+2019-07-31  Noam Postavsky  <address@hidden>
+
+       Remove no-longer relevant xref
+
+       * doc/lispref/positions.texi (List Motion): Remove xref, the text it
+       references was removed in 2018-02-15 "Document
+       open-paren-in-column-0-is-defun-start being of less importance".
+
+2019-07-30  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       8fbe462 (origin/emacs-26) ; * doc/lispref/positions.texi (List Motion...
+       1d9efc0 Add index for "\( in strings" (Bug#25195)
+       304e96f Fix doc-string of 'fit-window-to-buffer' (Bug#36848)
+       d4c4987 Update view-mode docstring
+       d6ca1fc ; * lisp/term.el: Add missing / to esc seq commentary.
+       b3e2073 Fix subproc listening when setting filter to non-t (Bug#36591)
+       f671950 * etc/NEWS.25: Belatedly announce rcirc-reconnect-delay.
+       7f42277 Mention term.el's \032 dir tracking in commentary (Bug#19524)
+       16a529e Remove upload functionality of package-x from the elisp manual
+       78e6c2a * etc/AUTHORS: Update.
+       086a56e Clarify Gravatar docs
+       0592467 * doc/lispref/display.texi (Defining Faces): Say a face can't...
+
+       # Conflicts:
+       #       doc/emacs/programs.texi
+       #       etc/AUTHORS
+       #       lisp/term.el
+
+2019-07-30  Noam Postavsky  <address@hidden>
+
+       * lisp/emacs-lisp/let-alist.el: Bump version to 1.0.6 (Bug#23244).
+
+2019-07-30  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/message.el: Reduce redundancy with send-mail-function
+
+       (message-send-mail-function) <function>: Remove `local-library` tests
+       for libs distributed with Emacs.
+       (message-use-send-mail-function): New function.
+       (message-default-send-mail-function): Default to it, and remove cases
+       already handled by it.
+       (message--default-send-mail-function): New function.
+       (message-send-mail-function) <variable>: Use it as new default.
+       (message-sendmail-f-is-evil): Obey mail-specify-envelope-from if 
available.
+       (message-check, message-with-reply-buffer): Use `declare`.
+       (message-smtpmail-send-it): smtpmail accepts mail-header-separator,
+       so simplify and declare obsolete.
+       (message-send-mail-with-mailclient): Declare obsolete.
+       (message-check-news-body-syntax): Don't presume that the checksum is
+       a fixnum.
+
+2019-07-30  Juri Linkov  <address@hidden>
+
+       * lisp/bindings.el (mode-line-defining-kbd-macro): New defvar.
+
+       (minor-mode-alist): Use it for `defining-kbd-macro'.  (Bug#36564)
+
+2019-07-30  Stefan Monnier  <address@hidden>
+
+       * lisp/mail/sendmail.el (sendmail-send-it): Add FIXMEs.
+
+       Remove redundant :groups in the file, as well.
+
+2019-07-30  Stephen Leake  <address@hidden>
+
+       Merge commit '9b480db6732c6d2e886838f112d9bd46fc8989bf'
+
+2019-07-30  Stephen Leake  <address@hidden>
+
+       Improve doc strings for some -search-path variables
+
+       * lisp/emacs-lisp/bytecomp.el (emacs-lisp-compilation-search-path):
+       Improve doc string.
+
+       * lisp/progmodes/compile.el (compilation-search-path): Improve doc
+       string.
+
+       * lisp/progmodes/grep.el (grep-search-path): Improve doc string.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Make `C-u RET' on URLs in Gnus buffers use the secondary browser
+
+       * lisp/gnus/gnus-art.el (gnus-button-alist): Make `C-u RET' on
+       URLs use the secondary browse-url browser.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak `browse-url-add-buttons' for better button.el comp
+
+       * lisp/net/browse-url.el (browse-url-add-buttons): Make browse-url
+       buttons be understood by `forward-button' and the like.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Add a new conveniency function to browse-url
+
+       * lisp/net/browse-url.el (browse-url-button-open-url): Add a new
+       conveniency function.
+
+2019-07-30  Dmitry Gutov  <address@hidden>
+
+       Support filename matches in etags xref backend
+
+       * lisp/progmodes/etags.el (etags--xref-find-definitions):
+       Support filename matches (bug#32510).
+
+2019-07-30  Dmitry Gutov  <address@hidden>
+
+       Guard against flymake-no-changes-timeout being nil
+
+       * test/lisp/progmodes/flymake-tests.el
+       (flymake-tests--wait-for-backends): Guard against
+       flymake-no-changes-timeout being nil (in personal configurations)
+       to help when running tests interactively.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Call out the Gnus widget->button makeover in NEWS
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Convert Emacs article buffers from widget.el to button.el
+
+       * lisp/gnus/gnus-art.el (gnus-mime-button-map)
+       (gnus-url-button-commands, gnus-insert-mime-button)
+       (gnus-mime-display-alternative)
+       (gnus-article-extend-url-button, gnus-article-add-button)
+       (gnus-insert-prev-page-button, gnus-insert-next-page-button)
+       (gnus-mime-security-button-map)
+       (gnus-insert-mime-security-button): Ditto.
+
+       * lisp/gnus/gnus-html.el (gnus-html-displayed-image-map)
+       (gnus-html-wash-images, gnus-html-put-image): Ditto.
+
+       * lisp/gnus/gnus-icalendar.el (gnus-icalendar-insert-button): Ditto.
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-widget-forward)
+       (gnus-summary-button-forward, gnus-summary-widget-backward)
+       (gnus-summary-button-backward, gnus-collect-urls-primary-text)
+       (gnus-collect-urls, gnus-summary-browse-url): Stop using widgets
+       and star using button.el buttons instead.
+
+       * lisp/gnus/mm-decode.el (mm-shr, mm-handle-filename): Don't
+       convert shr buttons into widgets.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Mark shr buttons as button.el buffers
+
+       * lisp/net/shr.el (shr-urlify): Mark buttons as button.el buffers
+       for easier reuse in buttonified buffers.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Convert ` to ' in two recent NEWS entries
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Extend button.el to take callback data
+
+       * doc/lispref/display.texi (Button Buffer Commands)
+       (Button Buffer Commands): Document this.
+       * lisp/button.el (backward-button, forward-button): Accept a
+       NO-ERROR parameter.
+       (button-activate): Make it possible to have specific data in the
+       callback action.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Re-fix dired-pop-to-buffer obsoletion reference
+
+       * lisp/dired.el (dired-pop-to-buffer): Re-fix obsoletion reference
+       (bug#26243).
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Make `ispell-change-dictionary' only list installed 
dictionaries"
+
+       This reverts commit 848712b481e16f5c96fed6344c2f7d71a8d52ed1.
+
+       There could be dictionaries available (set via command-line options for 
the
+       speller, for instance) that would not be returned.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Use decoded time accessors in ediff-mult
+
+       * lisp/vc/ediff-mult.el (ediff-format-date): Use decoded time
+       accessors.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Use decoded time accessors in pop3
+
+       * lisp/net/pop3.el (pop3-make-date): Use decoded time
+       accessors.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Use decoded time accessors in esh-util
+
+       * lisp/eshell/esh-util.el (eshell-parse-ange-ls): Use decoded time
+       accessors.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Use decoded time accessors in in em-ls
+
+       * lisp/eshell/em-ls.el (eshell-ls-file): Use decoded time
+       accessors.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Use decoded time accessors in timer
+
+       * lisp/emacs-lisp/timer.el (run-at-time): Use decoded time
+       accessors.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Use decoded time accessors in timeclock
+
+       * lisp/calendar/timeclock.el (timeclock-day-base): Use decoded time
+       accessors.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Use decoded time accessors in time-date
+
+       * lisp/calendar/time-date.el (time-to-days): Use decoded time
+       accessors.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Use decoded time accessors in appt
+
+       * lisp/calendar/appt.el (appt-check, appt-make-list): Use decoded
+       time accessors.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Fix syntax error in previus calc-forms change
+
+       * lisp/calc/calc-forms.el (calc-time): Fix previous decoded time
+       change.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Use decoded time accessors in calendar
+
+       * lisp/calendar/icalendar.el (icalendar--add-decoded-times)
+       (icalendar--convert-sexp-to-ical):
+       * lisp/calendar/calendar.el (calendar-current-date):
+       * lisp/calendar/cal-dst.el (calendar-dst-find-data)
+       (calendar-dst-find-startend): Use decoded time accessors.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Use decoded time accessors in Gnus
+
+       * lisp/gnus/nnimap.el (nnimap-find-expired-articles):
+       * lisp/gnus/nndiary.el (nndiary-compute-reminders)
+       (nndiary-last-occurrence, nndiary-next-occurrence):
+       * lisp/gnus/message.el (message-make-expires-date):
+       * lisp/gnus/gnus-util.el (gnus-seconds-today)
+       (gnus-seconds-month, gnus-seconds-year):
+       * lisp/gnus/gnus-demon.el (gnus-demon-time-to-step):
+       * lisp/gnus/gnus-art.el (article-make-date-line): Use decoded time
+       accessors.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Use decoded time accessors in calc
+
+       * lisp/calc/calc-forms.el (calc-time, math-this-year)
+       (calcFunc-now): Use decoded time accessors.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Use decoded time accessors in proced
+
+       * lisp/proced.el (proced-format-start): Use decoded time accessors.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Make description of text properties on the form `(string ...)' work
+
+       * lisp/descr-text.el (describe-property-list): Don't special-case
+       for symbols that have widget properties here (bug#22957).  It's
+       not documented that this function should do that, and looking at
+       the code, it doesn't seem like this function is actually used for
+       doing that, either.  This makes describing some text properties
+       that are on the form `(string ...)' work.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Use the elisp xref backend in profiler buffers
+
+       * lisp/profiler.el (profiler--xref-backend): New function (bug#23455).
+       (profiler-report-mode): Use it to use the elisp xref handler when
+       hitting `M-.' in profiler buffers.
+
+2019-07-30  Lars Ingebrigtsen  <address@hidden>
+
+       Adjust time-date tests to tweaked format
+
+2019-07-29  Juri Linkov  <address@hidden>
+
+       Highlight keyboard macro recording mode with read color in the mode-line
+
+       * lisp/bindings.el (minor-mode-alist): Propertize " Def"
+       with 'error' face for defining-kbd-macro.  (Bug#36564)
+
+2019-07-29  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/vhdl-mode.el: Use cl-lib when available
+
+       (vhdl--pushnew): New macro.  Use it instead of `pushnew`.
+       (emacs-major-version): Don't bother checking (featurep 'xemacs)
+       since that is always (< emacs-major-version 25) as well.
+
+2019-07-29  Juri Linkov  <address@hidden>
+
+       * lisp/info.el (Info-toc-insert): Suppress same section names as node 
names.
+
+       Add indentation to section lines.  (Bug#23142)
+
+2019-07-29  Stefan Monnier  <address@hidden>
+
+       * lisp/simple.el (decoded-time): Use `cl-defstruct`
+
+2019-07-29  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Add slot option 
:documentation
+
+       Use it to improve the docstring of the accessor functions.
+
+       * doc/misc/cl.texi: Rename menu entry to "CL-Lib".
+       (Structures): Add ':documentation' and mention ':type' as well,
+       which we don't completely ignore any more.
+
+2019-07-29  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak how mm-display-external handles windows
+
+       * lisp/gnus/mm-decode.el (mm-display-external): Don't delete other
+       buffers when displaying parts (bug#22861) because that should be
+       up to the user, probably.
+
+2019-07-29  Lars Ingebrigtsen  <address@hidden>
+
+       Add further documentation about semicolon use
+
+       * doc/lispref/tips.texi (Comment Tips): Document the sub-heading
+       convention (bug#23060) as explained by Stefan on StackExchange.
+
+2019-07-29  Lars Ingebrigtsen  <address@hidden>
+
+       Add an ISO 8601 parsing library
+
+       * doc/lispref/os.texi (Time Parsing): Document it.
+
+       * lisp/calendar/iso8601.el: New file.
+
+       * test/lisp/calendar/iso8601-tests.el: Test ISO8601 parsing functions.
+
+2019-07-29  Lars Ingebrigtsen  <address@hidden>
+
+       Add support for dealing with decoded time structures
+
+       * doc/lispref/os.texi (Time Conversion): Document the new
+       functions that work on decoded time.
+       (Time Calculations): Document new date/time functions.
+
+       * lisp/simple.el (decoded-time-second, decoded-time-minute)
+       (decoded-time-hour, decoded-time-day, decoded-time-month)
+       (decoded-time-year, decoded-time-weekday, decoded-time-dst)
+       (decoded-time-zone): New accessor functions for decoded time values.
+
+       * lisp/calendar/time-date.el (date-days-in-month)
+       (date-ordinal-to-time): New functions.
+       (decoded-time--alter-month, decoded-time--alter-day)
+       (decoded-time--alter-second, make-decoded-time): New functions
+       added to manipulate decoded time structures.
+
+       * src/timefns.c (Fdecode_time): Mention the new accessors.
+
+       * test/lisp/calendar/time-date-tests.el: New file to test the
+       decoded time functions and the other new functions.
+
+2019-07-29  Lars Ingebrigtsen  <address@hidden>
+
+       Fix compilation warning in mh-*.el
+
+       * lisp/mh-e/mh-speed.el (mh-speed-parse-flists-output):
+       * lisp/mh-e/mh-search.el (mh-index-parse-search-regexp): Avoid
+       warning about `values-list' by using `cl-values-list' insead.
+
+2019-07-29  Lars Ingebrigtsen  <address@hidden>
+
+       Avoid error when killing rcirc buffer
+
+       * lisp/net/rcirc.el (rcirc-kill-buffer-hook): Delete the process
+       in the buffer when killing server buffers to avoid triggering
+       errors from the sentinel (bug#23168).
+
+2019-07-28  Juri Linkov  <address@hidden>
+
+       * lisp/char-fold.el: Rename char-fold-make-table to 
char-fold--make-table.
+
+2019-07-28  Juri Linkov  <address@hidden>
+
+       Move some uncontroversial char-folding pairs from test data to default 
values
+
+       * lisp/char-fold.el (char-fold--default-include)
+       (char-fold--default-exclude): Add some default values.
+
+       * test/lisp/char-fold-tests.el (char-fold--test-without-customization)
+       (char-fold--test-with-customization): Move some test data to
+       default values.  Add more data for tests to pass.   (Bug#35689)
+
+2019-07-28  Lars Ingebrigtsen  <address@hidden>
+
+       Rename the new `browse-url-external-browser' variable
+
+       * lisp/net/shr.el (shr-external-browser, shr-browse-url):
+       * lisp/net/eww.el (eww-browse-with-external-browser)
+       (eww-follow-link):
+       * lisp/net/browse-url.el
+       (browse-url-secondary-browser-function)
+       (browse-url-button-open):
+       * lisp/gnus/gnus-sum.el (gnus-summary-browse-url): Rename from
+       `browse-url-external-browser' to
+       `browse-url-secondary-browser-function'.
+
+2019-07-28  Lars Ingebrigtsen  <address@hidden>
+
+       Make let-alist work with vectors
+
+       * lisp/emacs-lisp/let-alist.el (let-alist--deep-dot-search):
+       Descend into vectors, too, looking for dotted variables (bug#23244).
+
+       Test case:
+
+       (let-alist '((a . 1) (b . 2))
+         `[,(+ .a) ,(+ .a .b .b)])
+
+2019-07-28  Lars Ingebrigtsen  <address@hidden>
+
+       Make the image keymaps not extend after the image
+
+       * lisp/image.el (insert-image): Make all the properties
+       rear-nonsticky.  Before this change, the keymap would extend after
+       the image.
+
+2019-07-28  Lars Ingebrigtsen  <address@hidden>
+
+       Fix when calling prettify-symbols-mode more than once
+
+       * lisp/progmodes/prog-mode.el (prettify-symbols-mode): Allow
+       calling this mode several times without the earlier symbol alist
+       shadowing the newer (bug#23255).
+
+2019-07-28  Lars Ingebrigtsen  <address@hidden>
+
+       Abbreviate directory names the same way as file names in C-x C-b
+
+       * lisp/buff-menu.el (Buffer-menu--pretty-file-name): Abbreviate
+       directory file names, too (bug#23355).
+
+2019-07-28  Andreas Schwab  <address@hidden>
+
+       * admin/notes/git-workflow: Replace git-new-workdir with git
+       worktree and remove draft marker.
+
+2019-07-28  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak tango-dark-theme
+
+       * etc/themes/tango-dark-theme.el: Add a lighter background color
+       to `header-line' (bug#23359).
+
+2019-07-28  Lars Ingebrigtsen  <address@hidden>
+
+       Scale images in iimage-mode
+
+       * lisp/iimage.el (iimage-mode-buffer): Scale images down to the
+       width/height of the buffer (bug#23434).  Also add `image-map' to
+       the images so that they can be further scaled.
+
+2019-07-28  Vincent Belaïche  <address@hidden>
+
+       Make atomic cell update in data area.
+
+       * lisp/ses.el (ses-write-cells): Set inhibit-quit to t during the data
+         area write.
+
+2019-07-28  Lars Ingebrigtsen  <address@hidden>
+
+       Make URLs in package descriptions into links
+
+       * lisp/emacs-lisp/package.el (describe-package-1): Make the URLs
+       in package descriptions into links (bug#23480).
+
+2019-07-28  Lars Ingebrigtsen  <address@hidden>
+
+       Enable browse-url to buttonize buffers
+
+       This patch also moves the internal/external browser logic from
+       shr to browse-url, where it belongs more naturally.
+
+       * doc/misc/eww.texi (Basics): Adjust to browse-url-external-browser.
+
+       * doc/misc/gnus.texi (Article Commands): Ditto.
+
+       * lisp/gnus/gnus-art.el (gnus-button-url-regexp): Default to
+       `browse-url-button-regexp', which has taken over the definition
+       previously enjoyed by this variable.
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-browse-url): Adjust usage.
+
+       * lisp/net/browse-url.el (browse-url--browser-defcustom-type): New
+       internal variable...
+       (browse-url-browser-function, browse-url-external-browser): Used
+       by these two; the latter of which is a new variable.
+       (browse-url-botton-regexp): New variable.
+       (browse-url-button-map): New keymap.
+       (browse-url-button): New face.
+       (browse-url-add-buttons): New function to add clickable browse-url
+       buttons to almost any buffer.
+       (browse-url-button-open): New command.
+       (browse-url-button-copy): New command.
+
+       * lisp/net/eww.el (eww-browse-with-external-browser)
+       (eww-follow-link): Adjust usage.
+
+       * lisp/net/shr.el (shr-external-browser): Make an obsolete alias
+       of `browse-url-external-browser'.
+       (shr-browse-url): Adjust usage.
+
+2019-07-28  Alan Mackenzie  <address@hidden>
+
+       CC Mode.  Fix (c-beginning-of-defun -1) getting stuck with structs.
+
+       In particular, with an initialization such as struct foo {..} bar = 
{...};
+
+       * lisp/progmodes/cc-cmds.el (c-forward-to-nth-EOF-{): Rename to
+       c-forward-to-nth-EOF-\;-or-}, and when the starting (or ending) 
position is in
+       the "variable" part of a struct/class/union/enum/etc., move to after the
+       terminating semicolon.  Adjust the counting such that N only gets 
decremented
+       on a successful movement over {..}.
+       (c-beginning-of-defun, c-end-of-defun): Rename the calls to
+       c-forward-to-nth-EOF-}, as above.
+
+2019-07-28  Lars Ingebrigtsen  <address@hidden>
+
+       Make cl-values-list signal an error if its argument isn't a list
+
+       * lisp/emacs-lisp/cl-lib.el (cl-values-list): Signal an error if
+       LIST isn't a list (bug#23597).
+
+2019-07-28  Lars Ingebrigtsen  <address@hidden>
+
+       Have emacsbug only warn the user when sending to the bug address
+
+       * lisp/mail/emacsbug.el (report-emacs-bug-hook): Only ask for
+       confirmation if we're really sending the bug report to the bug
+       address.  If the user is sending it somewhere else (to themselves,
+       for instance), the warning is misleading.
+
+2019-07-28  Lars Ingebrigtsen  <address@hidden>
+
+       Allow the user to send a bug report after initially saying "no"
+
+       * lisp/mail/emacsbug.el (report-emacs-bug-hook): Don't remove the
+       address in the To: header (or the hook) after the user has said
+       "no" (bug#23799).  This made it impossible for the user to do
+       touch-ups and then resent the bug report.
+
+2019-07-28  Lars Ingebrigtsen  <address@hidden>
+
+       Always set the state of the "Show hidden files" gtk button
+
+       * src/gtkutil.c (xg_get_file_with_chooser): Always set the state
+       of the "Show hidden files" button (bug#23977).  If not, the
+       visible state and the actual state get out of sync.
+
+2019-07-28  Lars Ingebrigtsen  <address@hidden>
+
+       Make `ispell-change-dictionary' only list installed dictionaries
+
+       * lisp/textmodes/ispell.el (ispell-find-aspell-dictionaries): If
+       the backend (i.e., aspell/hunspell) provided a list of languages,
+       don't add the base list (bug#24050).
+       (ispell-set-spellchecker-params): Ditto.
+
+2019-07-28  Lars Ingebrigtsen  <address@hidden>
+
+       Clean up conf-mode-syntax-table slightly
+
+       * lisp/textmodes/conf-mode.el (conf-mode-syntax-table): Remove
+       superfluous backslash in ?\'.
+
+2019-07-28  Lars Ingebrigtsen  <address@hidden>
+
+       Mark block/char devices the same as sockets in dired
+
+       * lisp/dired.el (dired-re-socket): Also mark block and char
+       devices with the socket face (bug#24547).
+
+2019-07-28  Lars Ingebrigtsen  <address@hidden>
+
+       `unknown' test case now works
+
+2019-07-28  Lars Ingebrigtsen  <address@hidden>
+
+       Fix testcover.el usage of edebug.el symbols
+
+       * lisp/emacs-lisp/testcover.el (testcover-before)
+       (testcover-after, testcover-mark)
+       (testcover-analyze-coverage-edebug-after): Adjust usage of
+       `unknown' to `edebug-unknown' in testcover.el in addition to
+       edebug.el (bug#25471).
+
+2019-07-27  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/autoload.el: Make progress info more informative.
+
+       (update-directory-autoloads): Include the name of the target file.
+
+2019-07-27  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-out-toplevel): Fix bug#34757
+
+       This fix was provided by Pip Cet <address@hidden>.  It tightens the
+       code that tries to recognize a bytecode sequence as being a simple
+       function call (to then decompile it), which occasionally misfired.
+
+       I added some minor changes found while investigating this issue.
+
+       (byte-compile): Handle corner case where byte-compile-top-level returns
+       a non-self-evaluating expression.
+       (byte-compile-out-toplevel): Remove support for `progn` and `t` values
+       of output-type which aren't used anywhere.
+
+2019-07-27  Alan Third  <address@hidden>
+
+       Fix stretch glyphs overlap with line above (bug#36633)
+
+       * src/nsterm.m (ns_dumpglyphs_stretch): Move overwriting of the
+       clipping rectangle to after performing clipping.
+
+2019-07-27  Paul Eggert  <eggert@day>
+
+       Fix arithmetic overflow in GC consing count
+
+       * src/alloc.c (allow_garbage_collection):
+       Redo expression to avoid signed arithmetic overflow
+       in an intermediate expression when CONSING is negative.
+
+2019-07-27  Alan Mackenzie  <address@hidden>
+
+       Java Mode: Fix handling of nested generics ending in >>>.
+
+       This fixes bug #24671.
+
+       * lisp/progmodes/cc-langs.el (c-multichar->-op-not->>-regexp): remove,
+       transforming into ...
+       (c-multichar->-op-not->>->>>-regexp) New lang const/var.
+
+       * lisp/progmodes/cc-engine.el (c-forward-<>-arglist-recur): use the new
+       c-multichar->-op-not->>->>>-regexp in place of the old
+       c-multichar->-op-not->>-regexp.
+
+2019-07-27  Eric Abrahamsen  <address@hidden>
+
+       Adjust location of Gnus group split setup process
+
+       Updating group splits requires the gnus-newsrc-hashtb to be
+       initialized. Previously this failed silently, now it errors.
+
+       * lisp/gnus/gnus-mlspl.el (gnus-group-split-setup): Don't call the
+       update when loading the user's init file, that's too early. Use
+       appropriate hooks depending on AUTO-UPDATE.
+       * doc/misc/gnus.texi (Group Mail Splitting): Change mention in docs.
+
+2019-07-27  Lars Ingebrigtsen  <address@hidden>
+
+       Touch of latin-ltx input method for long arrows
+
+       * lisp/leim/quail/latin-ltx.el: Map all the \\long.*arrow inputs
+       to the long characters instead of the normal ones (i.e., LONG
+       RIGHTWARDS ARROW instead of RIGHTWARDS ARROW) (bug#24302).
+
+2019-07-27  Eli Zaretskii  <address@hidden>
+
+       Fix documentation of 'redisplay-highlight-region-function'
+
+       * lisp/simple.el (redisplay-highlight-region-function): Fix
+       last change.  (Bug#24701)
+
+2019-07-27  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak font-locking in conf-mode for "#foo { bar" lines
+
+       * lisp/textmodes/conf-mode.el (conf-font-lock-keywords): Don't
+       font-lock comments as keywords (bug#24355).
+
+2019-07-27  Lars Ingebrigtsen  <address@hidden>
+
+       Make dired fontify pipes and sockets
+
+       * lisp/dired.el (dired-socket): New face for pipes and sockets
+       (bug#24547).
+       (dired-re-socket): New regexp to match them.
+       (dired-font-lock-keywords): Use them.
+
+2019-07-27  Lars Ingebrigtsen  <address@hidden>
+
+       Add a doc string to redisplay-highlight-region-function
+
+       * lisp/simple.el (redisplay-highlight-region-function): Add a doc
+       string (bug#24701).
+
+2019-07-27  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/compile.el: Fix bug#36803.
+
+       Make sure all mode-lines are updated when compilation-in-progress
+       is changed since it's visible globally.
+
+       (compilation--update-in-progress-mode-line): New function.
+       (compilation-start, compilation-sentinel): Use it.
+
+2019-07-27  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Stop /**/ spuriously fontifying as a doc comment under gtkdoc
+
+       Also fix infinite loops by correcting two regexps.
+
+       * lisp/progmodes/cc-langs.el (c-last-c-comment-end-on-line-re)
+       (c-last-open-c-comment-start-on-line-re): Correct the regexp fragments
+       "\\*+[^/]" to "\\*+\\([^*/]\\|$\\)".
+
+       * lisp/progmodes/cc-fonts.el (gtkdoc-font-lock-keywords): Disallow /**/ 
for
+       doc comment fontification.
+
+2019-07-27  Lars Ingebrigtsen  <address@hidden>
+
+       Doc fix for package-menu-filter
+
+       * lisp/emacs-lisp/package.el (package-menu-filter): Document the
+       use of arc:ARCHIVE and status:STATUS (bug#24883).
+
+2019-07-27  Lars Ingebrigtsen  <address@hidden>
+
+       Allow serial-term to take an optional argument for line-mode
+
+       * lisp/term.el (serial-term): Allow taking an optional argument to
+       avoid term-raw-mode (bug#24922).
+
+       * doc/lispref/processes.texi (Serial Ports): Document it.
+
+2019-07-27  Lars Ingebrigtsen  <address@hidden>
+
+       Only insert XML declarations in nxml-mode when the buffer is empty
+
+       * lisp/nxml/nxml-mode.el (nxml-mode): Don't insert the XML
+       declaration unless it's an empty buffer (bug#24978).  This avoids
+       the problem of the declaration being inserted by mistake when
+       opening XML files from archives and the like -- the file doesn't
+       exist on the file system there, either, so it would typically lead
+       to doubled XML declarations.
+
+2019-07-27  Lars Ingebrigtsen  <address@hidden>
+
+       edebug.el comment fix
+
+       * lisp/emacs-lisp/edebug.el: Fix comment referring to non-existent
+       variable (bug#25188).
+
+2019-07-27  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify yank-pop doc string
+
+       * lisp/simple.el (yank-pop): Mention `kill-ring' to make it more
+       clear what the command is doing (bug#25196).
+
+2019-07-27  Eli Zaretskii  <address@hidden>
+
+       Move tty-colors-tests.el to its proper directory.
+
+2019-07-27  Pip Cet  <address@hidden>
+
+       Use the CSS convention for #RGB colors (bug#36304)
+
+       * src/xterm.c (x_parse_color): Change interpretation of #RGB color
+       triplets to match CSS rather than X conventions.
+
+       * lisp/term/tty-colors.el (tty-color-standard-values): Change
+       interpretation of #RGB color triplets to match CSS rather than X
+       conventions.  Allow upper-case digits.  Fix rgb:R/G/B
+       interpretation.
+
+       * doc/emacs/display.texi (Colors): Specify the convention used for
+       "#RGB" color triplets.
+
+       * test/lisp/term/tty-colors-tests.el: New file.
+
+       * etc/NEWS: Mention the change.
+
+2019-07-27  Lars Ingebrigtsen  <address@hidden>
+
+       Allow global-auto-revert-ignore-buffer to be a predicate function
+
+       * lisp/autorevert.el (global-auto-revert-ignore-buffer): Allow
+       this to be a predicate function (bug#25277).
+       (auto-revert--global-add-current-buffer): Use it.
+
+2019-07-27  Pip Cet  <address@hidden>
+
+       Don't double-decompress cached HTTP responses (bug#36773)
+
+       * lisp/url/url-http.el (url-handle-content-transfer-encoding): Modify
+       the message headers as well as the message body to reflect
+       decompression.
+       * lisp/mail/mail-utils.el (mail-fetch-field): Add DELETE argument, to
+       delete header lines included in the result.
+
+2019-07-27  Lars Ingebrigtsen  <address@hidden>
+
+       Rename coverage symbols in edebug to avoid collisions
+
+       * lisp/emacs-lisp/edebug.el (edebug-clear-coverage): Use
+       edebug-unknown and edebug-ok-coverage instead of unknown and
+       ok-coverage to avoid naming collisions with packages that use
+       those two symbols (bug#25471).
+       (edebug--update-coverage, edebug-display-freq-count): Ditto.
+
+2019-07-27  Lars Ingebrigtsen  <address@hidden>
+
+       Allow directory-files-recursively to follow symlinks
+
+       * doc/lispref/files.texi (Contents of Directories): Document it.
+
+       * lisp/files.el (directory-files-recursively): Allow following
+       symlinks.
+
+2019-07-27  Lars Ingebrigtsen  <address@hidden>
+
+       define-derived-mode doc string clarification
+
+       * lisp/emacs-lisp/derived.el (define-derived-mode): Doc string
+       clarification about the keywords (bug#26301).
+
+2019-07-26  Noam Postavsky  <address@hidden>
+
+       Clarify docstring of last-command-event.
+
+       * src/keyboard.c (syms_of_keyboard) <last-command-event>: Reword 
docstring.
+
+2019-07-26  Stefan Monnier  <address@hidden>
+
+       Adjust remaining uses of `NILP (HASH_HASH)`.
+
+       * src/json.c (lisp_to_json_toplevel_1):
+       * src/pdumper.c (dump_hash_table_stable_p, hash_table_contents):
+       * src/print.c (print, print_vectorlike):
+       * src/minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
+       Use `EQ (HASH_KEY, Qunbound)` instead of `NILP (HASH_HASH)`.
+
+2019-07-26  Stefan Monnier  <address@hidden>
+
+       Don't dump the `hash` vector if it will need to be recomputed anyway
+
+       * src/fns.c (hash_table_rehash): Only set `hash` field at the end.
+       (sweep_weak_table): Only set slot of `hash` vector when that vector 
exists.
+       (Fhash_table_count): No need to hash_rehash_if_needed any more.
+
+       * src/lisp.h (hash_rehash_needed_p): Test the presence of `hash` 
instead.
+
+       * src/pdumper.c (check_hash_table_rehash, dump_hash_table):
+       Set `hash` to nil to indicate that the table needs to be rehashed.
+
+2019-07-26  Stefan Monnier  <address@hidden>
+
+       * src/fns.c: Use `EQ (key, Qunbound)` to check if a slot is in use
+
+       (make_hash_table): Use Qunbound for the key_and_value table.
+       (maybe_resize_hash_table): Set new key_and_value slots to Qunbound.
+       (hash_table_rehash): Don't bother copying the old table of hashes since
+       we're recomputing it completely.
+       (hash_table_rehash): Use hash_rehash_needed_p more.
+       (hash_put): Add assertion that the slot was indeed considered empty.
+       (hash_remove_from_table, hash_clear, sweep_weak_table): Set empty
+       slot's key to Qunbound.
+       (Fmaphash): Use `EQ (key, Qunbound)` to check if a slot is in use.
+
+       * src/lisp.h (struct Lisp_Hash_Table): Update comments.
+
+2019-07-26  Stefan Monnier  <address@hidden>
+
+       * src/fns.c (hash_index_size): New function, extracted from 
make_hash_table
+
+       (make_hash_table, maybe_resize_hash_table): Use it.
+
+       * src/pdumper.c (check_hash_table_rehash): Use hash_rehash_needed_p.
+
+2019-07-26  Alan Mackenzie  <address@hidden>
+
+       CC Mode.  Create lang vars for certain skipping expressions at compile 
time
+
+       This saves repeated calculations at run time.
+
+       * lisp/progmodes/cc-langs.el (c-stmt-boundary-skip-chars)
+       (c-stmt-boundary-skip-list, c-stmt-boundary-skip-chars-with-comma)
+       (c-stmt-boundary-skip-list-with-comma): New lang constants/variables.
+
+       * lisp/progmodes/cc-engine.el (c-commas-bound-stmts): New variable
+       (c-beginning-of-statement-1): Set c-commas-bound-stmts rather than
+       c-stmt-delim-chars.
+       (c-crosses-statement-barrier-p): Remove the now unneeded calculations of
+       c-stmt-delim-chars.  Set skip chars to one of the new lang variables, 
and
+       later to a substring of it.
+       (c-at-statement-start-p): Set c-syntactic-skip-backward from the new
+       variables.
+       (c-at-expression-start-p): Bind c-commas-bound-stmts.  Use
+       c-stmt-delim-chars-with-comma rather than c-stmt-delim-chars in a 
backward
+       scan.
+       (c-guess-basic-syntax): Bind c-commas-bound-stmts rather than
+       c-stmt-delim-chars to itself.  Bind c-commas-bound-stmts to t at 
another place
+       rather than setting c-stmt-delim-chars to c-stmt-delim-chars-with-comma.
+
+2019-07-26  Stefan Monnier  <address@hidden>
+
+       * src/fns.c (maybe_resize_hash_table): Obey rehash_size (bug#25743)
+
+2019-07-26  Paul Eggert  <address@hidden>
+
+       Fix recently-introduced file-name-absolute-p typo
+
+       Fix a bug introduced in 2019-07-24T21:28:13!address@hidden.
+       * src/fileio.c (file_name_absolute_p):
+       ~/foo is also absolute (Bug#36809).
+       * test/src/fileio-tests.el (fileio-tests--file-name-absolute-p):
+       Rename from fileio-tests--no-such-user and add more tests.
+
+2019-07-26  Paul Eggert  <address@hidden>
+
+       Fix ‘make check’ failure
+
+       Problem introduced in 2019-07-26T07:08:40!address@hidden.
+       * lisp/emacs-lisp/ert.el (ert-summarize-tests-batch-and-exit):
+       Don’t count "0 unexpected" as unexpected.
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak the display in gnus-summary-browse-url
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-browse-url): Don't force
+       article conf, because the command may be called from the article
+       buffer (which may be the only buffer displayed).
+
+2019-07-26  Noam Postavsky  <address@hidden>
+
+       * lisp/mail/footnote.el (footnote--local-advice): Add missing comma.
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Separate out the "/" prefix into a named keymap in ibuffer
+
+       * lisp/ibuffer.el (ibuffer--filter-map): Separate out into its own
+       keymap (bug#25797).
+       (ibuffer-mode-map): Bind the "/" key to it.
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Add version tag to smtpmail-servers-requiring-authorization
+
+       * lisp/mail/smtpmail.el
+       (smtpmail-servers-requiring-authorization): Add version tag.
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Remove interactive spec from eshell-source-file
+
+       * lisp/eshell/em-script.el (eshell-source-file): This function
+       can't work as an interactive command, so remove the interactive
+       spec (bug#26057).
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify when gpg2 and gpg are used in the epg-gpg-program doc string
+
+       * lisp/epg-config.el (epg-gpg-program): Doc string clarification
+       (bug#26090).
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Make ffap find {/etc} files again
+
+       * lisp/ffap.el (ffap-string-at-point-mode-alist): Make
+       (ffap-file-at-point) work on {/etc} again (bug#26190).
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Fix obsoletion notice in dired-pop-to-buffer
+
+       * lisp/dired.el (dired-pop-to-buffer): `dired-mark-pop-up' doesn't
+       seem to have anything to do with this function, so saying that
+       it's a replacement seems misleading (bug#26243).
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Minor rewording of a couple of sentences in define-derived-mode doc
+
+       * lisp/emacs-lisp/derived.el (define-derived-mode): Reword
+       documentation to be less whimsical (bug#26301).
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Doc clarification in time-stamp-pattern
+
+       * lisp/time-stamp.el (time-stamp-pattern): Try to document what
+       the examples mean (bug#26335).
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Add a NEWS item about smtpmail-servers-requiring-authorization
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Allow specifying that SMTP auth should always be used
+
+       * doc/misc/smtpmail.texi (Authentication): Document it.
+
+       * lisp/mail/smtpmail.el
+       (smtpmail-servers-requiring-authorization): New variable (bug#26359).
+       (smtpmail-via-smtp): Use it.
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify last-command-event doc string
+
+       * src/keyboard.c (syms_of_keyboard): Clarify the doc string
+       (bug#26626).
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Add an autoload cookie to package-upload-file
+
+       * lisp/emacs-lisp/package-x.el (package-upload-file): Add an
+       autoload cookie (bug#26724).
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak prompt when symlinking in dired
+
+       * lisp/dired-aux.el (dired-do-create-files): Fix prompt when
+       sym/hardlinking (bug#26870).
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Don't infloop in url.el when sending invalid basic auth
+
+       * lisp/url/url-http.el (url-http-handle-authentication): Bail out
+       if the wrong credentials were passed to the server instead of
+       inflooping (bug#27022).
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Further tweak dired-compress error message
+
+       * lisp/dired-aux.el (dired-compress): The function is called on
+       both compression and uncompression, so be more ambiguous in the
+       error message.
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak the error message on dired compression failures
+
+       * lisp/dired-aux.el (dired-compress): Fix error message.
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Remove debugging left in previous patch
+
+       * lisp/progmodes/elisp-mode.el (elisp-completion-at-point):
+       Provide completion for `ignore-error'.
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Add new macro `ignore-error'
+
+       * doc/lispref/control.texi (Handling Errors): Document
+       `ignore-error'.
+       * lisp/subr.el (ignore-error): New macro.
+
+       * lisp/progmodes/elisp-mode.el (elisp-completion-at-point):
+       Provide completion for `ignore-error'.
+
+2019-07-26  Lars Ingebrigtsen  <address@hidden>
+
+       Always include the number of unexpected results here too
+
+       * lisp/emacs-lisp/ert.el (ert-run-tests-batch): Always include the
+       number of unexpected results here as well.
+
+2019-07-25  Lars Ingebrigtsen  <address@hidden>
+
+       Don't run gpg when loading package.el
+
+       * lisp/emacs-lisp/package.el (package-check-signature): Don't run
+       gpg on startup, but just default to `allow-unsigned'.
+       (package-check-signature): New function to check whether a OpenPGP
+       configuration is found when `allow-unsigned'.
+       (package--check-signature-content, package--check-signature)
+       (package--download-one-archive, package-refresh-contents)
+       (package-install-from-archive): Use function instead of variable
+       throughout.
+       * doc/emacs/package.texi (Package Installation): Document this.
+
+2019-07-25  Paul Eggert  <address@hidden>
+
+       Minor pdumper tweaks
+
+       * src/pdumper.c (dump_hash_table_stable_p):
+       Bool vectors and bignums are also stable keys.
+       (decode_emacs_reloc, drain_reloc_list, Fdump_emacs_portable):
+       (dump_bitset_clear): Simplify use of memset.
+
+2019-07-25  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak the behaviour of thing-at-point--end-of-sexp
+
+       * lisp/thingatpt.el (thing-at-point--end-of-sexp): Don't return
+       nil when called with point between two parentheses (bug#29499).
+
+2019-07-25  Paul Eggert  <address@hidden>
+
+       Don't crash when parsing bad SVG data
+
+       Derived from a patch by Pip Cet (Bug#36773#47).
+       * src/image.c (svg_load_image): Work around librsvg 2.40.13 bug.
+
+2019-07-25  Lars Ingebrigtsen  <address@hidden>
+
+       Fix mouse-1 in profiler-report-mode-map
+
+       * lisp/profiler.el (profiler-report-mode-map): Make `mouse-1'
+       respect `mouse-1-click-follows-link' (bug#30515).
+
+2019-07-25  Lars Ingebrigtsen  <address@hidden>
+
+       Make cl-destructuring-bind errors a bit more understandable
+
+       * lisp/emacs-lisp/cl-macs.el (cl-destructuring-bind): Make errors
+       when giving the wrong number of arguments to the bindings form
+       more informational (bug#29345).
+
+2019-07-25  Eric Abrahamsen  <address@hidden>
+
+       Don't set marks on imap groups when there are no marks to set
+
+       * lisp/gnus/nnimap.el (nnimap-update-qresync-info): This code runs in
+       a fairly tight loop and shouldn't call all these functions if not
+       necessary.
+
+2019-07-25  Alan Mackenzie  <address@hidden>
+
+       * lisp/progmodes/cc-awk.el (c-awk-var-num-ket-re): Remove /x80-/xff 
from it.
+
+2019-07-25  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak the sizing of the shr placeholder images on HiDPI screens
+
+       * lisp/net/shr.el (shr-make-placeholder-image): We have already
+       computed the size of the placeholder including the scale, so force
+       the automatic scale to 1.  This will make the placeholder the
+       correct size on HiDPI screen.
+
+2019-07-25  Lars Ingebrigtsen  <address@hidden>
+
+       Make `C-u w' in the Gnus Summary buffer open externally
+
+       * doc/misc/gnus.texi (Article Commands): Document new behaviour.
+
+       * lisp/gnus/gnus-sum.el (gnus-shorten-url): New function.
+       (gnus-summary-browse-url): Change function to make `C-u' use the
+       external browser (as Gnus does when you hit URLs manually).  Don't
+       use an initial input.
+
+2019-07-25  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak previous footnote-mode patch
+
+       * lisp/mail/footnote.el (footnote--local-advice): Ensure that the
+       variable really is local.
+
+2019-07-25  Lars Ingebrigtsen  <address@hidden>
+
+       Fix setting fill-paragraph-function in footnote-mode
+
+       * lisp/mail/footnote.el (footnote--local-advice): New macro
+       refactored out from the code used to advice
+       footnote--adaptive-fill-function in footnote-mode.
+       (footnote-mode): Use it to advice both that variable and
+       fill-paragraph-function (the latter to avoid overwriting the major
+       mode's value) (bug#27775)
+       (footnote--fill-paragraph): Adjust calling convention now that
+       it's an :around advice.
+
+2019-07-25  Eli Zaretskii  <address@hidden>
+
+       Fix HarfBuzz support on MS-Windows
+
+       * src/w32uniscribe.c [HAVE_HARFBUZZ]: Include hb-ot.h.
+       (fn_hb_ot_font_set_funcs, hb_ot_font_set_funcs): Define.
+       (w32hb_get_font): Call hb_ot_font_set_funcs after creating the
+       hb_font_t object, to make the code work with versions of
+       HarfBuzz before 2.0.0.  Problem reported by Stephen Leake
+       <address@hidden>.  Solution suggested by
+       Khaled Hosny <address@hidden> in
+       https://lists.freedesktop.org/archives/harfbuzz/2019-July/007412.html.
+
+2019-07-25  Lars Ingebrigtsen  <address@hidden>
+
+       Fix many-compilations case of compilation-goto-in-progress-buffer
+
+       * lisp/progmodes/compile.el (compilation-goto-in-progress-buffer):
+       Fix thinko in initial version of the function in the
+       many-compilations case.
+
+2019-07-25  Eli Zaretskii  <address@hidden>
+
+       Fix recent commit in xref.el
+
+       * lisp/progmodes/xref.el (xref-file-name-display): Doc fix.
+
+       * etc/NEWS: Fix the corresponding entry.
+
+2019-07-25  Eric Abrahamsen  <address@hidden>
+
+       Leave note about removing gnus-start-news-server
+
+       * lisp/gnus/gnus-int.el (gnus-nntp-server): Once this option is gone,
+       that whole function can go.
+
+2019-07-25  Nobuyoshi Nakada  <address@hidden>
+
+       Strip trailing whitespaces at the end of converted do block
+
+       * lisp/progmodes/ruby-mode.el (ruby-brace-to-do-end):
+       Strip trailing whitespaces at the end of converted do block
+       (bug#36756).
+
+       https://bugs.ruby-lang.org/issues/16014
+       https://github.com/syl20bnr/spacemacs/issues/12548
+
+2019-07-25  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify in the manual when to use function-key-map
+
+       * doc/misc/efaq.texi (No Escape key):
+       * doc/emacs/msdos-xtra.texi (MS-DOS Keyboard): Change back to
+       function-key-map from local-function-key-map, because these
+       bindings apply to all terminals.
+
+       * doc/lispref/keymaps.texi (Translation Keymaps): Clarify in what
+       circumstances you may still want to use function-key-map.
+
+2019-07-24  Juri Linkov  <address@hidden>
+
+       * lisp/vc/vc.el (vc-log-search): Fix docstring (bug#36644).
+
+       * lisp/vc/vc-git.el (vc-git-log-search): Add docstring.
+
+2019-07-24  Paul Eggert  <address@hidden>
+
+       Do not treat ~nosuchuser as an absolute file name
+
+       Derived from Ken Brown’s patch (Bug#36502#97).
+       * doc/lispref/files.texi (Relative File Names):
+       * etc/NEWS: Document this.
+       * src/fileio.c (user_homedir): New function.
+       (Fexpand_file_name, file_name_absolute_p): Use it.
+       (search_embedded_absfilename): Simplify via file_name_absolute_p.
+       * test/src/fileio-tests.el (fileio-tests--no-such-user): New test.
+
+2019-07-24  Sam Steingold  <address@hidden>
+
+       Add `gnus-collect-urls-primary-text'
+
+       * lisp/gnus/gnus-sum.el (gnus-collect-urls-primary-text): Add defcustom.
+       (gnus-collect-urls): Use it.
+       (gnus-summary-browse-url): Mention it in the docstring.
+
+2019-07-24  Paul Eggert  <address@hidden>
+
+       Port double-slash test to z/OS
+
+       * admin/merge-gnulib (GNULIB_MODULES): Add double-slash-root.
+       Emacs was already using this Gnulib module indirectly, so this
+       is merely noting that there is now a direct dependency.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * src/fileio.c (search_embedded_absfilename):
+       Use DOUBLE_SLASH_IS_DISTINCT_ROOT instead of (WINDOWSNT || CYGWIN).
+       Simplify.
+
+2019-07-24  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-07-16 update-copyright: Make it work again
+       * build-aux/config.guess, build-aux/update-copyright:
+       Copy from Gnulib.
+
+2019-07-24  Sam Steingold  <address@hidden>
+
+       Avoid potential extensive verbosity in gnus-summary-browse-url
+
+       * lisp/wid-edit.el (widget-move): Accept suppress-echo argument.
+       * lisp/gnus/gnus-sum.el (gnus-collect-urls): Use it.
+
+2019-07-24  Lars Ingebrigtsen  <address@hidden>
+
+       Use input-decode-map in the manuals
+
+       * doc/misc/edt.texi (Changes):
+       * doc/emacs/custom.texi (Terminal Init): Use input-decode-map
+       instead of local-function-key-map, according to Stefan Monnier.
+
+2019-07-24  Mattias Engdegård  <address@hidden>
+
+       Use destructuring in filenotify backend handlers
+
+       * lisp/filenotify.el (file-notify--callback-inotify)
+       (file-notify--callback-kqueue, file-notify--callback-w32notify)
+       (file-notify--callback-gfilenotify, file-notify--callback): Use 
cl-defun.
+
+2019-07-24  Mattias Engdegård  <address@hidden>
+
+       Use defstruct instead of list for filenotify pending-rename
+
+       * lisp/filenotify.el (file-notify--rename): New defstruct.
+       (file-notify--pending-rename): Changed type.
+       (file-notify--handle-event): Adapt to new type.
+
+2019-07-24  Mattias Engdegård  <address@hidden>
+
+       Refactor the callback half of filenotify.el
+
+       Split callback code into backend-specific and general parts.  Refactor
+       pending event, which is always a rename, to include relevant
+       information only.  General clean-up.
+
+       * lisp/filenotify.el (file-notify--pending-event): Rename.
+       (file-notify--event-watched-file, file-notify--event-file-name)
+       (file-notify--event-file1-name, file-notify--event-cookie): Remove.
+       (file-notify--rename, file-notify--expand-file-name)
+       (file-notify--callback-inotify, file-notify--callback-kqueue)
+       (file-notify--callback-w32notify, file-notify--callback-gfilenotify)
+       (file-notify--call-handler, file-notify--handle-event): New.
+       (file-notify-callback): Split general parts into
+       file-notify--call-handler and file-notify--handle-event.
+       (file-notify--add-watch-inotify, file-notify--add-watch-kqueue)
+       (file-notify--add-watch-w32notify)
+       (file-notify--add-watch-gfilenotify): Use new callbacks.
+
+2019-07-24  Mattias Engdegård  <address@hidden>
+
+       Don't use internal filenotify function in test
+
+       * test/lisp/filenotify-tests.el
+       (file-notify--test-file, file-notify--test-add-watch): New.
+       (file-notify--test-event-test, file-notify--test-event-handler)
+       (file-notify-test02-rm-watch, file-notify-test03-events)
+       (file-notify-test05-file-validity, file-notify-test07-many-events)
+       (file-notify-test08-backup, 
file-notify-test09-watched-file-in-watched-dir):
+       Avoid using the internal `file-notify--event-watched-file' so that it
+       can be removed from filenotify.el.
+       Instead, pass the file name to the callback as an extra argument;
+       use `file-notify--test-add-watch' instead of `file-notify-add-watch'.
+
+2019-07-24  Mattias Engdegård  <address@hidden>
+
+       Local definitions of accessors only used in test
+
+       * test/lisp/filenotify-tests.el (file-notify--test-event-file)
+       (file-notify--test-event-file1, file-notify--test-event-test)
+       (file-notify--test-event-handler):
+       Define accessors locally, so that they can be removed from 
filenotify.el.
+
+2019-07-24  Thomas Fitzsimmons  <address@hidden>
+
+       soap-client: Do not double-encode duplicate types
+
+       * lisp/net/soap-client.el (soap-encode-xs-complex-type): Eliminate
+       duplicates from type hierarchy before encoding values.
+
+2019-07-24  Thomas Fitzsimmons  <address@hidden>
+
+       soap-client: Encode simple type attributes
+
+       * lisp/net/soap-client.el (soap-encode-xs-simple-type-attributes):
+       Encode simple type attributes.
+
+2019-07-24  Thomas Fitzsimmons  <address@hidden>
+
+       soap-client: Allow attributes and a value
+
+       * lisp/net/soap-client.el (soap-encode-xs-basic-type): Allow
+       attributes and a value to be specified in the same element.
+
+2019-07-24  Andreas Schwab  <address@hidden>
+
+       * lisp/gnus/gnus-cus.el (gnus-extra-group-parameters): Allow nil
+       for modseq.
+
+2019-07-23  Juri Linkov  <address@hidden>
+
+       Customizable char-fold with char-fold-symmetric, char-fold-include 
(bug#35689)
+
+       * doc/emacs/search.texi (Lax Search): Document
+       char-fold-symmetric, char-fold-include, char-fold-exclude.
+
+       * lisp/char-fold.el (char-fold--default-include)
+       (char-fold--default-exclude, char-fold--default-symmetric)
+       (char-fold--previous): New defconsts.
+       (char-fold-include, char-fold-exclude, char-fold-symmetric):
+       New defcustoms.
+       (char-fold-make-table): Use them.
+       (char-fold-update-table): New function called at top-level.
+
+       * test/lisp/char-fold-tests.el (char-fold--test-no-match-exactly)
+       (char-fold--permutation): New functions.
+       (char-fold--test-without-customization)
+       (char-fold--test-with-customization): New tests.
+
+2019-07-23  Paul Eggert  <address@hidden>
+
+       Merge pdumper.c and alloc.c builtin symbol tests
+
+       * src/alloc.c (c_symbol_p): Move from here ...
+       * src/lisp.h (c_symbol_p): ... to here, and make it more portable
+       to hypothetical platforms where pointers are wider than ptrdiff_t.
+       * src/pdumper.c (dump_builtin_symbol_p): Use c_symbol_p.
+
+2019-07-23  Lars Ingebrigtsen  <address@hidden>
+
+       Make "Compiling" in the mode line a clickable command
+
+       * lisp/progmodes/compile.el (compilation-goto-in-progress-buffer):
+       New command.
+       (compilation-in-progress): Don't put the in-progress mode-line
+       marker among the minor modes (because it's not a minor mode), and
+       add a command that allows you to switch to the in-progress
+       compilation buffer (bug#27252).
+
+2019-07-23  Robert Pluim  <address@hidden>
+
+       Follow decomposition chains when constructing char-fold-table
+
+       * lisp/char-fold.el (char-fold-make-table): Decompose the
+       decomposition of each character, adding equivalences to the original
+       character, until no more decompositions are left.
+
+2019-07-23  Lars Ingebrigtsen  <address@hidden>
+
+       Refer to local-function-key-map in various manuals
+
+       * doc/misc/viper.texi (Key Bindings):
+       * doc/misc/efaq.texi (X key translations for Emacs)
+       (No Escape key):
+       * doc/misc/edt.texi (Changes):
+       * doc/emacs/msdos-xtra.texi (MS-DOS Keyboard):
+       * doc/emacs/custom.texi (Terminal Init): Refer to
+       local-function-key-map instead of function-key-map, since the
+       latter isn't supposed to be changed (bug#27490).
+
+2019-07-23  Paul Eggert  <address@hidden>
+
+       Improve pdumper doc; say unexec is deprecated
+
+       Say that pdumping cannot redump unless -batch is used.  Say that
+       the traditional unexec dumping method is by default not available,
+       and is deprecated.  Don't call dump files "portable", as dump files
+       are not any more portable than the Emacs executables themselves.
+       Just call them "dump files".  Similar, prefer "portable dumper"
+       (since the dumper code is portable) to "portable dumping" (since
+       the dump file is not).  Be more systematic about calling them
+       "dump files" instead of "dumped images" or whatnot.
+
+2019-07-23  Stefan Monnier  <address@hidden>
+
+       * src/fns.c (hashfn_user_defined): Make sure we always return a fixnum.
+
+2019-07-23  Alan Mackenzie  <address@hidden>
+
+       Fix problems in CC Mode with " being entered into a comment at EOB.
+
+       * lisp/progmodes/cc-engine.el (c-full-lit-near-cache): Amend the 
definition
+       such that an element's END element will be nil if the pertinent literal 
is
+       open at EOB.
+       (c-full-pp-to-literal): Before setting the aforementioned END element, 
check
+       that we're no longer in a literal.  (c-literal-limits): When
+       c-full-pp-to-literal returns a list with a nil END element, replace 
this by
+       (point-max) to keep the interface of c-literal-limits unchanged.
+
+       * lisp/progmodes/cc-mode.el (c-after-change-mark-abnormal-strings): 
Having
+       found a string quote, check it is not inside an unterminated comment 
(i.e. one
+       at EOB).
+
+2019-07-23  Paul Eggert  <address@hidden>
+
+       Support "%x" etc. formats on more floats
+
+       * doc/lispref/strings.texi (Formatting Strings): Document this.
+       * src/editfns.c (styled_format): Support %o, %x, and %X on
+       finite floats less than zero or greater than UINTMAX_MAX.
+       * test/src/editfns-tests.el (format-%x-large-float)
+       (read-large-integer, format-%o-negative-float):
+       Adjust tests to match extended behavior.
+       Rename the latter test from format-%o-invalid-float,
+       since the float is no longer invalid.
+
+       * test/src/editfns-tests.el (format-%x-large-float)
+       (read-large-integer): Test this.
+
+2019-07-22  Paul Eggert  <address@hidden>
+
+       Tweak performance of cmpfn_profiler
+
+       * src/profiler.c (cmpfn_profiler):
+       Improve performance when VECTORP (bt1) && EQ (bt1, bt2).
+
+2019-07-22  Paul Eggert  <address@hidden>
+
+       Avoid overexposing fixnums for hash codes
+
+       Following a suggestion by Stefan Monnier in:
+       https://lists.gnu.org/r/emacs-devel/2019-07/msg00530.html
+       * doc/lispref/hash.texi (Creating Hash, Defining Hash):
+       * src/fns.c (Fsxhash_eq, Fsxhash_eql, Fsxhash_equal, Fmake_hash_table):
+       Don’t insist that hash codes be fixnums, reverting
+       the recent doc changes to the contrary.
+       * src/bytecode.c (exec_byte_code): Special-case only the eq case,
+       as the others aren’t worth tuning now that we treat bignum hashes
+       like fixnums.
+       * src/fns.c (hashfn_user_defined): If the hash code is a bignum,
+       reduce its hash down to a fixnum.
+
+2019-07-22  Stefan Kangas  <address@hidden>
+
+       Document normal usage in ibuffer.el
+
+       * lisp/ibuffer.el (Commentary): Document normal usage.  (Bug#5608)
+       Remove redundant :group args.
+
+2019-07-22  Paul Eggert  <address@hidden>
+
+       Do not pdump user-defined hashtabs
+
+       * src/pdumper.c (dump_hash_table_stable_p):
+       Signal an error if a hash table has user-defined tests (Bug#36769).
+       * src/fns.c (hashfn_user_defined): Now extern.
+
+2019-07-22  Paul Eggert  <address@hidden>
+
+       Keep track of consing while GC’s inhibited
+
+       * src/alloc.c (allow_garbage_collection): Do not discard the count
+       of consing that occurred while GC was inhibited.
+       Problem and initial fix reported by Pip Cet in:
+       https://lists.gnu.org/r/emacs-devel/2019-07/msg00523.html
+
+2019-07-22  Pip Cet  <address@hidden>
+
+       Avoid byte compiler warning for subr.el
+
+       * lisp/subr.el (number-sequence): Simplify to avoid byte compiler 
warning.
+
+2019-07-22  Paul Eggert  <address@hidden>
+
+       Remove no-longer-needed integer overflow code
+
+       * lisp/calculator.el (calculator-number-to-string):
+       Use truncate, not calculator-truncate, since integer
+       overflow cannot occur here.
+       * lisp/calendar/cal-persia.el (calendar-persian-year-from-absolute):
+       * lisp/gnus/gnus-agent.el (gnus-agent-read-article-number):
+       * lisp/gnus/nnmaildir.el (nnmaildir--group-maxnum)
+       (nnmaildir--new-number):
+       * lisp/scroll-bar.el (scroll-bar-scale):
+       * lisp/simple.el (beginning-of-buffer, end-of-buffer):
+       Simplify, now that integer overflow cannot occur.
+
+2019-07-22  Eric Abrahamsen  <address@hidden>
+
+       Adjust regexp for parsing IMAP header response
+
+       * lisp/gnus/nnimap.el (nnimap-transform-headers): The first header
+       might have no value, or a continuation header might start with a
+       newline.
+
+2019-07-22  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/opascal.el: Tweak code to ease edebugging
+
+       (opascal-strings): Inline in its sole use.
+       (opascal-save-excursion): Add Edebug spec.
+       (opascal-is): Remove.  Use `memq` directly instead.
+       (opascal--in): New pcase pattern.
+       (opascal-literal-end-pattern): Remove unused function.
+       (opascal--scan-non-whitespace-backward): New macro.
+       (opascal-block-start, opascal-else-start, opascal-is-use-clause-end)
+       (opascal-previous-indent-of, opascal-section-indent-of)
+       (opascal-enclosing-indent-of): Use it.
+       (opascal-corrected-indentation): Presume we're already at first token.
+       (opascal-indent-line): Use indent-line-to.
+       (opascal-new-comment-line): Declare obsolete.
+       (opascal-mode-map): Keep the default M-j binding instead.
+
+2019-07-22  Eric Abrahamsen  <address@hidden>
+
+       Fix case of IMAP Noselect flag
+
+       * lisp/gnus/nnimap.el (nnimap-get-groups): We should be looking for
+       %Noselect, not %NoSelect.
+
+2019-07-22  Mattias Engdegård  <address@hidden>
+
+       Remove some obsolete integer overflow handling
+
+       * lisp/subr.el (number-sequence):
+       * lisp/org/org-gnus.el (org-gnus-follow-link):
+       * lisp/ls-lisp.el (ls-lisp-insert-directory):
+       Remove dead code guarding against integer overflow.
+
+2019-07-22  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/opascal.el: Allow inline `var` decl in `for` 
(bug#36348)
+
+       (opascal-enclosing-indent-of): Ignore decls "neutered" by delimiter.
+
+2019-07-22  Mattias Engdegård  <address@hidden>
+
+       Make tramp test regexp more robust
+
+       * test/lisp/net/tramp-tests.el (tramp-test17-insert-directory):
+       Match a greater variety of human-readable size values.
+
+2019-07-22  Michael Albinus  <address@hidden>
+
+       Support history files in remote shells (Bug#36742)
+
+       * doc/emacs/misc.texi (Shell Ring): Mention history file for
+       remote shells.
+
+       * lisp/shell.el (shell--start-prog): New buffer-local variable.
+       (shell): Set it.
+       (shell-mode): Handle history file for remote shells. (Bug#36742)
+
+2019-07-22  Martin Rudalics  <address@hidden>
+
+       Handle persistence of windows' scroll bar and fringes settings 
(Bug#36193)
+
+       * doc/lispref/display.texi (Fringe Size/Pos): Document new
+       argument PERSISTENT of 'set-window-fringes'.
+       (Scroll Bars): Document new argument PERSISTENT of
+       'set-window-scroll-bars'.  Mention that HORIZONTAL-TYPE must
+       be 'bottom' to show a horizontal scroll bar on mini windows.
+       * lisp/window.el (window-min-pixel-height): For mini windows the
+       minimum height is one line.
+       (window--min-size-1): Use value returned by
+       'window-min-pixel-height' when dealing with mini windows.
+       (window--resize-mini-window): Try to handle horizontal scroll
+       bars and size restrictions more accurately.
+       (window--state-put-2): Handle persistence of scroll bar
+       settings.
+       * src/frame.c (make_frame): Allow horizontal scroll bars in
+       mini windows.
+       (adjust_frame_size): Drop PIXELWISE argument in
+       'resize_frame_windows' calls.
+       * src/window.c (set_window_buffer): Don't override WINDOW's
+       scroll bar and fringe settings when marked as persistent.
+       (resize_frame_windows): Drop fourth argument PIXELWISE - SIZE
+       is always specified in terms of pixels.  Try to handle height
+       of mini windows more accurately.
+       (grow_mini_window, shrink_mini_window): Use body height of
+       mini window when calculating expected height change.  Take
+       horizontal scroll bars into account.
+       (struct saved_window): Two new members to handle persistence
+       of window fringes and scroll bars.
+       (Fset_window_configuration, save_window_save): Handle
+       persistence of fringes and scroll bars.
+       (set_window_fringes, set_window_scroll_bars): New arguments
+       PERSISTENT.  Make dimension checks more accurate.
+       (Fset_window_fringes): New argument PERSISTENT.
+       (Fwindow_fringes, Fwindow_scroll_bars): Add PERSISTENT to
+       return values.
+       (Fset_window_scroll_bars): New argument PERSISTENT.  In
+       doc-string mention that 'bottom' must be specified to get a
+       horizontal scroll bar in mini windows.
+       (compare_window_configurations): Add checks for persistence of
+       fringes and scroll bars.
+       * src/window.h (struct window): New boolean slots
+       'fringes_persistent' and 'scroll_bars_persistent'.
+       (WINDOW_HAS_HORIZONTAL_SCROLL_BAR): Allow horizontal scroll bars
+       for mini windows.
+       (resize_frame_windows): Remove fourth argument of
+       'resize_frame_windows' in external declaration.
+       * src/xdisp.c (resize_mini_window): Use box text height to
+       tell whether mini window height changed.
+       (set_horizontal_scroll_bar): Set mini window's horizontal
+       scroll bar when its type is specified as 'bottom'.
+       * etc/NEWS: Mention new options for 'set-window-fringes' and
+       'set-window-scroll-bars'.
+
+2019-07-21  Alan Mackenzie  <address@hidden>
+
+       Implement C++ Mode attributes.  This fixes bug #36650.
+
+       * lisp/progmodes/cc-engine.el (c-looking-at-c++-attribute)
+       (c-enclosing-c++-attribute, c-slow-enclosing-c++-attribute): New macro 
and
+       functions.
+       (c-crosses-statement-barrier-p): Add [ into skip-chars for C++ Mode, 
and use
+       it to detect and skip over an attribute whilst scanning forward.
+       (c-sws-lit-type): Use the new value 'attribute.
+       (c-invalidate-sws-region-before): Put a save-match-data around this 
function.
+       Detect and handle an enclosing attribute at either END or BEG.
+       (c-invalidate-sws-region-after): Handle C++ attributes.
+       (c-forward-sws, c-backward-sws): Handle C++ attributes.
+
+       * lisp/progmodes/cc-mode.el (c-fl-decl-end): Detect and handle point 
being
+       inside a C++ attribute.
+
+2019-07-21  Paul Eggert  <address@hidden>
+
+       Fix lifetime error in previous patch
+
+       Problem reported by Pip Cet in:
+       https://lists.gnu.org/r/emacs-devel/2019-07/msg00520.html
+       * src/alloc.c (inhibit_garbage_collection): Use new function.
+       (allow_garbage_collection): Accept intmax_t, not pointer.
+       * src/eval.c (default_toplevel_binding, do_one_unbind)
+       (backtrace_eval_unrewind, Fbacktrace__locals, mark_specpdl):
+       Support SPECPDL_UNWIND_INTMAX.
+       (record_unwind_protect_excursion): New function.
+       * src/lisp.h (enum specbind_tag): New constant SPECPDL_UNWIND_INTMAX.
+       (union specbinding): New member unwind_intmax.
+
+2019-07-21  Paul Eggert  <address@hidden>
+
+       Speed up maybe_gc when GC is inhibited
+
+       * src/alloc.c (allow_garbage_collection)
+       (inhibit_garbage_collection): Temporarily bump
+       consing_until_gc, to improve performance of maybe_gc while
+       garbage collection is inhibited.  Suggested by Stefan Monnier in:
+       https://lists.gnu.org/r/emacs-devel/2019-07/msg00511.html
+
+2019-07-21  Paul Eggert  <address@hidden>
+
+       Avoid integer overflow in hash table size
+
+       * src/fns.c (INDEX_SIZE_BOUND): Use a tighter bound.
+       (maybe_resize_hash_table): Avoid integer overflow when
+       checking for hash table size overflow.  Fix confusion
+       between INDEX_SIZE_BOUND (which is for the index vector)
+       and hash table size.  Fix typo in debugging message
+       when ENABLE_CHECKING.
+
+2019-07-21  Paul Eggert  <address@hidden>
+
+       Improve doc for hash tables
+
+       * doc/lispref/hash.texi (Creating Hash, Defining Hash):
+       * src/fns.c (Fsxhash_eq, Fsxhash_eql, Fsxhash_equal):
+       Say that hashes are fixnums.
+       (Fmake_hash_table): Say that that an integer rehash-size
+       should be a fixnum.
+       * doc/lispref/hash.texi (Defining Hash): Say that hash and
+       comparison functions should be consistent and pure, and should
+       return quickly.
+
+2019-07-21  Paul Eggert  <address@hidden>
+
+       pure_alloc returns cleared memory
+
+       * src/alloc.c (pure_alloc): Clear any heap-allocated storage.
+       This is simpler than auditing all the callers to make sure
+       they don’t assume pure memory is cleared memory, and the
+       performance implication is nonexistent except when Emacs
+       is misconfigured.  Also, add an assertion to catch
+       caller misuse when pure space is exhausted.
+
+2019-07-21  Lars Ingebrigtsen  <address@hidden>
+
+       Make the unflag-p parameter in dired-mark-unmarked-files work
+
+       * lisp/dired-x.el (dired-mark-unmarked-files): Make the unflag-p
+       parameter work (bug#27465).
+
+2019-07-21  Lars Ingebrigtsen  <address@hidden>
+
+       Don't override SSH_AUTH_SOCK in the example emacs.service file
+
+       * etc/emacs.service (ExecStop): Don't override SSH_AUTH_SOCK by
+       default, because it varies by distribution where the socket is
+       (bug#27620).
+
+2019-07-21  Lars Ingebrigtsen  <address@hidden>
+
+       Fill footnotes better on `M-q'
+
+       * lisp/mail/footnote.el (footnote--fill-paragraph): New function
+       (bug#27775).
+       (footnote-mode): Use it.
+
+2019-07-21  Ken Brown  <address@hidden>
+
+       Fix expand-file-name for names starting with '~'
+
+       * src/fileio.c: (file_name_absolute_no_tilde_p):
+       New static function.
+       (Fexpand_file_name): If the current buffer's default-directory
+       starts with "~user" where "user" is not a valid user name, don't
+       give the '~' a special meaning.  Just treat the value of
+       default-directory as a relative name.  (Bug#36502)
+       * test/src/fileio-tests.el
+       (fileio-tests--relative-default-directory): Add a test.
+
+2019-07-21  Gemini Lasswell  <address@hidden>
+
+       Fix inline-quote Edebug spec
+
+       * lisp/emacs-lisp/inline.el (inline-quote): Fix the edebug spec
+       (bug#31051).
+
+2019-07-20  Paul Eggert  <address@hidden>
+
+       Tweak recent hash-table fix
+
+       * src/fns.c (maybe_resize_hash_table): Completely initialize the
+       new ‘next’ vector before allocating more vectors, as this
+       preserves locality a bit better and it’s safer not to leave an
+       uninitialized Lisp object around.  Use next_size instead of
+       new_size to compute new index size.
+
+2019-07-20  Paul Eggert  <address@hidden>
+
+       Fix crash if user test munges hash table
+
+       * src/fns.c (restore_mutability)
+       (hash_table_user_defined_call): New functions.
+       (cmpfn_user_defined, hashfn_user_defined): Use them.
+       (make_hash_table, copy_hash_table):
+       Mark new hash table as mutable.
+       (check_mutable_hash_table): New function.
+       (Fclrhash, Fputhash, Fremhash): Use it instead of CHECK_IMPURE.
+       * src/lisp.h (struct hash_table_test): User-defined functions
+       now take pointers to struct Lisp_Hash_Table, not to struct
+       hash_table_test.  All uses changed.
+       (struct Lisp_Hash_Table): New member ‘mutable’.
+       * src/pdumper.c (dump_hash_table): Copy it.
+       * test/src/fns-tests.el (test-hash-function-that-mutates-hash-table):
+       New test, which tests for the bug.
+
+2019-07-20  Paul Eggert  <address@hidden>
+
+       Simplify hashfn/cmpfn calling convention
+
+       * src/fns.c (cmpfn_eql, cmpfn_equal, cmpfn_user_defined)
+       (hashfn_eq, hashfn_equal, hashfn_eql, hashfn_user_defined):
+       * src/profiler.c (cmpfn_profiler, hashfn_profiler):
+       Use new calling convention where the return value is a fixnum
+       instead of EMACS_UINT.  While we’re at it, put the hash table
+       at the end, since that’s a bit simpler and generates better
+       code (at least on the x86-64).  All callers changed.
+       * src/fns.c (hash_lookup): Store fixnum rather than EMACS_UINT.
+       All callers changed.
+       (hash_put): Take a fixnum rather than an EMACS_UINT.
+       All callers changed.  Remove unnecessary eassert (XUFIXNUM does it).
+       * src/lisp.h (struct hash_table_test):
+       Adjust signatures of cmpfn and hashfn.
+
+2019-07-20  Paul Eggert  <address@hidden>
+
+       Inhibit GC after inhibit_garbage_collection
+
+       Without this patch, there are unlikely ways that garbage
+       collection could occur (sometimes causing undefined behavior)
+       even when inhibit_garbage_collection is in effect.
+       * src/alloc.c (garbage_collection_inhibited): New var.
+       (pure_alloc): Increment it if pure space is exhausted, so that
+       garbage_collect_1 no longer needs to inspect
+       pure_bytes_used_before_overflow.
+       (allow_garbage_collection): New function.
+       (inhibit_garbage_collection): Increment the new variable rather
+       than specbinding a user variable.
+       (garbage_collect_1): Do not garbage collect if the new variable
+       is set, rather than if pure_bytes_used_before_overflow is set.
+
+2019-07-20  Paul Eggert  <address@hidden>
+
+       Simplify maybe_gc implementation
+
+       * src/alloc.c (consing_until_gc): New variable, replacing the
+       combination of consing_since_gc and gc_relative_threshold.
+       All uses changed.
+       (byte_ct): Move decl here from lisp.h.
+       (memory_full_cons_threshold): New an enum constant.
+       (free_cons): Check for integer overflow in
+       statistics calculation.
+       * src/lisp.h (object_ct): Move decl here from alloc.c.
+       (OBJECT_CT_MAX): New macro.
+       (maybe_gc): Simplify accordingly.
+
+2019-07-20  Paul Eggert  <address@hidden>
+
+       Rename ‘pure’ to ‘purecopy’
+
+       * src/lisp.h (struct Lisp_Hash_Table): Rename ‘pure’ member to
+       ‘purecopy’, as the old name was quite confusing (it did not
+       mean the hash table was pure).  All uses changed.
+
+2019-07-20  Paul Eggert  <address@hidden>
+
+       Fix hash table overallocation etc.
+
+       * src/fns.c (set_hash_key_and_value, set_hash_next)
+       (set_hash_hash, set_hash_index): Remove.  All uses removed.
+       (maybe_resize_hash_table): Don’t update h->next until it’s
+       known that all the allocations succeeded, to avoid trashing
+       the hash table if memory is exhausted.  Don’t overallocate the
+       other vectors.  Don’t output growth message if the hash table
+       didn’t actually grow due to allocation failure.  Assume C99
+       decls after statements.
+
+2019-07-20  Noam Postavsky  <address@hidden>
+
+       Merge from emacs-26
+
+       150bdfe43a Handle completely undecoded input in term (Bug#29918)
+       021f32cca1 * doc/misc/forms.texi (Control File Format): Fix a doc error.
+       76538d09b7 Fix typo in package-alist docstring
+       b2fde4b5e8 * doc/lispref/text.texi (Mode-Specific Indent): Fix a typo...
+       7e62778548 ; Another minor change in 'bidi-display-reordering's doc s...
+       4455ddbe56 Improve doc string of 'bidi-display-reordering'
+       34ee26dd93 Add warning to bidi-display-reordering doc string
+
+       # Conflicts:
+       #       lisp/term.el
+       #       test/lisp/term-tests.el
+
+2019-07-20  Basil L. Contovounesios  <address@hidden>
+
+       Use lexical-binding in compface.el
+
+       * lisp/image/compface.el: Use lexical-binding.  Extend Keywords
+       header.
+       (uncompface): Call call-process-region directly.
+
+2019-07-20  Oleh Krehel  <address@hidden>
+
+       * lisp/files.el (file-size-function): Add :version tag
+
+2019-07-20  Stefan Monnier  <address@hidden>
+
+       * test/manual/indent/octave.m (spmd): Add test for last change
+
+       * lisp/progmodes/octave.el (matchedrules): Add `spmd...end` (bug#36703)
+
+2019-07-20  Basil L. Contovounesios  <address@hidden>
+
+       Fix last change to format-spec
+
+       * doc/lispref/text.texi (Interpolated Strings): Use @result and fix
+       typos.
+       * lisp/format-spec.el: Avoid loading subr-x at runtime.
+       (format-spec--parse-modifiers): Optimize slightly.
+
+2019-07-20  Basil L. Contovounesios  <address@hidden>
+
+       Allow counter-clockwise rotations in image-rotate
+
+       * lisp/image.el (image-rotate): Extend with an optional argument
+       specifying the rotation in degrees (bug#35421).
+       * doc/lispref/display.texi (Showing Images):
+       * etc/NEWS: Document the change.
+       * test/lisp/image-tests.el (image-rotate): New test.
+
+2019-07-20  Lars Ingebrigtsen  <address@hidden>
+
+       Mark the gnus-article-date-headers NEWS entry as documented
+
+2019-07-20  Adam Sjøgren  <address@hidden>
+
+       Enable showing local time and lapsed time in Gnus
+
+       * lisp/gnus/gnus-art.el (article-make-date-combine-with-lapsed) factor
+       code out into new function, used for providing both combined-lapsed
+       and combined-local-lapsed.
+
+2019-07-20  Lars Ingebrigtsen  <address@hidden>
+
+       Clean up code in nnimap-parse-flags slightly
+
+       * lisp/gnus/nnimap.el (nnimap-parse-flags): Clean up code
+       slightly, removing redundant checks for `end'.
+
+2019-07-20  Eli Zaretskii  <address@hidden>
+
+       Fix last change
+
+       * etc/NEWS: Call out the change in matching REGEXP.
+
+       * lisp/files.el (magic-mode-alist)
+       (magic-fallback-mode-alist): Doc fix.  (Bug#36401)
+
+2019-07-20  Benjamin Riefenstahl  <address@hidden>
+
+       Make REs in magic-(fallback-)mode-alist case-sensitive.
+
+       These variables are used for well-defined file formats where relaxed
+       case matching is not wanted usually.
+
+       * lisp/files.el (magic-mode-alist, magic-fallback-mode-alist): Update
+       the doc string.
+       (set-auto-mode): Make looking-at for elements of magic-mode-alist and
+       magic-fallback-mode-alist use case-fold-search == nil.
+       * lisp/files.el (files-test-magic-mode-alist-re-baseline)
+       (files-test-magic-mode-alist-re-no-match)
+       (files-test-magic-mode-alist-re-case-diff): Add.
+
+2019-07-20  Stefan Kangas  <address@hidden>
+
+       Make finder-exit use quit-window (Bug#33610)
+
+       * lisp/finder.el (finder-exit): Quit window instead of
+       deleting.  This restores previous contents of the window,
+       if any, that was usurped by "C-h p" to show the list of
+       packages.
+
+2019-07-20  Mauro Aranda  <address@hidden>
+
+       Remove duplicated code in octave-eldoc-function
+
+       * lisp/progmodes/octave.el (octave-eldoc-function): The
+       test of position of the opening parenthesis in
+       inferior-octave-process was duplicated.  Remove one of
+       the tests.  (Bug#36557)
+
+2019-07-19  Oleh Krehel  <address@hidden>
+
+       * lisp/files.el (file-size-function): New defcustom
+
+2019-07-19  Mattias Engdegård  <address@hidden>
+
+       Neater free disk space formatting
+
+       * lisp/files.el (get-free-disk-space): Update doc string.
+       Use `iec' style and proper spacing.
+
+2019-07-19  Martin Rudalics  <address@hidden>
+
+       Have 'display-buffer-reuse-window' prefer window on selected frame 
(Bug#36680)
+
+       * lisp/window.el (display-buffer-reuse-window): Preferably reuse
+       window on selected frame (Bug#36680).
+       * doc/lispref/windows.texi (Buffer Display Action Functions): Say
+       that 'display-buffer-reuse-window' prefers window on the selected
+       frame.
+
+2019-07-18  Noam Postavsky  <address@hidden>
+
+       Don't load elec-pair in elisp-mode (Bug#36539)
+
+       * lisp/progmodes/elisp-mode.el (emacs-lisp-set-electric-text-pairs):
+       New function.
+       (emacs-lisp-mode): Add it to electric-pair-mode-hook, if elec-pair
+       hasn't been loaded yet.
+
+2019-07-18  Stefan Kangas  <address@hidden>
+
+       Use lexical-binding in help-fns-tests.el (Bug#36585)
+
+       * test/lisp/help-fns-tests.el: Use lexical-binding.  Doc fix.
+
+2019-07-18  Stefan Kangas  <address@hidden>
+
+       Declare mwheel-install obsolete (Bug#36553)
+
+       * lisp/mwheel.el: Update `Commentary' section.
+       (mwheel-install): Declare obsolete in favor of mouse-wheel-mode.
+       * etc/NEWS: Announce it.
+
+2019-07-18  Juri Linkov  <address@hidden>
+
+       * lisp/vc/vc-git.el (vc-git-log-search): Remove shell-quote-argument.
+
+       (Bug#36644)
+
+2019-07-18  Simen Heggestøyl  <address@hidden>
+
+       Use lexical-binding in asm-mode.el and add tests
+
+       * lisp/progmodes/asm-mode.el: Use lexical-binding.
+       (asm-comment-char): Remove redundant :group arg.
+       (asm-mode): Use `setq-local'.
+       (asm-calculate-indentation): Remove moot `or'.
+
+       * test/lisp/progmodes/asm-mode-tests.el: New file with tests for
+       asm-mode.el.
+
+2019-07-18  Michael Albinus  <address@hidden>
+
+       Determine `file-notify' handler in Tramp from `special-event-map'.
+
+       * lisp/net/tramp-sh.el (tramp-sh-gio-monitor-process-filter)
+       (tramp-sh-gvfs-monitor-dir-process-filter)
+       (tramp-sh-inotifywait-process-filter): Determine `file-notify'
+       handler from `special-event-map'.
+
+2019-07-18  Stefan Monnier  <address@hidden>
+
+       * lisp/server.el (server-ensure-safe-dir): Revert part of b663c8372495
+
+       A non-cosmetic change that was mistakenly included.
+
+2019-07-18  Glenn Morris  <address@hidden>
+
+       Update a tramp test for get-free-disk-space change
+
+       * test/lisp/net/tramp-tests.el (tramp-test17-insert-directory):
+       Handle optional unit suffix in free space.
+
+2019-07-18  Oleh Krehel  <address@hidden>
+
+       * lisp/files.el (get-free-disk-space): Use file-size-human-readable
+
+       Since there is no longer an option to do:
+
+           (setq directory-free-space-args "-Pmh")
+
+2019-07-18  Eli Zaretskii  <address@hidden>
+
+       * lisp/abbrev.el (abbrev-prefix-mark): Fix a typo.  (Bug#36715)
+
+2019-07-17  Eric Abrahamsen  <address@hidden>
+
+       Fix indexing of Gnus entry in gnus-group-unsubscribe-group
+
+       * lisp/gnus/gnus-group.el (gnus-group-unsubscribe-group): Hopefully
+         that's the last of these.
+
+2019-07-17  Stephen Leake  <address@hidden>
+
+       Add xref-file-name-display
+
+       * lisp/progmodes/xref.el (xref-file-name-display): New user variable.
+       (xref-location-group): Use it.
+
+       * etc/NEWS: Mention it.
+
+2019-07-17  Nick Drozd  <address@hidden>
+
+       * test/lisp/progmodes/cc-mode-tests.el: Add a test with /***/ in 
#define lines
+
+2019-07-17  Alan Mackenzie  <address@hidden>
+
+       * lisp/progmodes/cc-fonts.el (gtkdoc-font-lock-keywords): Fix faulty 
regexp
+
+2019-07-16  Glenn Morris  <address@hidden>
+
+       An electric test is now passing
+
+       * test/lisp/electric-tests.el
+       (electric-pair-whitespace-chomping-2-at-point-4-in-c++-mode-in-strings):
+       Seems to pass since today's cc-mode changes.
+
+2019-07-16  Glenn Morris  <address@hidden>
+
+       * lisp/wid-edit.el: Previous change needs subr-x.
+
+2019-07-16  Sam Steingold  <address@hidden>
+
+       Treat the "Link" link in gnus-summary-browse-urls specially
+
+       * lisp/gnus/gnus-sum.el (gnus-collect-urls): Make sure that
+       the URL labeled "Link" is the first in the return list.
+       (gnus-summary-browse-url): Use the 1st URL as the default.
+       * lisp/wid-edit.el (widget-text): New function.
+
+2019-07-16  Alan Mackenzie  <address@hidden>
+
+       CC Mode: allow bogusly "adjacent" double quote marks to pair up 
syntactically
+
+       For this introduce the text property c-fl-syn-tab to "mirror" 
syntax-table.
+
+       * lisp/progmodes/cc-defs.el (c-is-escaped, c-will-be-escaped, 
c-put-syn-tab)
+       (c-clear-syn-tab, c-clear-syn-tab-properties, 
c-with-extended-string-fences):
+       new macros.
+       (c-point): Use c-is-escaped
+       (c-search-forward-char-property, c-search-backward-char-property)
+       (c-search-forward-char-property-with-value-on-char)
+       (c-search-forward-char-property-without-value-on-char): Fix regexp error
+       involving \n.
+
+       * lisp/progmodes/cc-engine.el (c-semi-pp-to-literal): User
+       c-with-extended-string-fences around a parse-partial-sexp.
+       (c-full-get-near-cache-entry): Fix an off-by-one error.
+       (c-full-pp-to-literal): Avoid writing duplicate entries into a cache.
+       (c-after-change-unmark-raw-strings): Use c-clear-syn-tab-properties.
+
+       * lisp/progmodes/cc-mode.el (c-leave-cc-mode-mode): Clear the 
c-fl-syn-tab
+       properties, too.
+       (c-basic-common-init): Mark c-fl-syn-tab as a non-sticky text property.
+       (c-depropertize-new-text): Also handle c-fl-syn-tab.
+       (c-multiline-string-check-final-quote, c-parse-quotes-after-change): Use
+       c-is-escaped.
+       (c-fl-syn-tab-region): New variable.
+       (c-clear-string-fences, c-restore-string-fences, 
c-remove-string-fences): New
+       functions.
+       (c-before-change-check-unbalanced-strings)
+       (c-after-change-mark-abnormal-strings, 
c-after-change-escape-NL-in-string):
+       Use the new functions and macros.
+       (c-before-change, c-after-change, c-font-lock-fontify-region): Restore 
the
+       syntax-table text properties from c-fl-syn-tab text properties for these
+       functions.
+       (c-electric-pair-inhibit-predicate): Test the c-fl-syn-tab property 
rather
+       than syntax-table.
+
+2019-07-16  Basil L. Contovounesios  <address@hidden>
+
+       Fix failing secrets-test03-items
+
+       * test/lisp/net/secrets-tests.el: Use lexical-binding.
+       (secrets-test03-items): Do not assume :xdg:schema attribute is
+       silently added to the front of the collection (bug#36694).
+       (secrets-test04-search, secrets-test-all): Quote function symbols as
+       such.
+
+2019-07-16  Mattias Engdegård  <address@hidden>
+
+       Fix calc number formatting with digit grouping (bug#36689)
+
+       The functions math-format-hex and math-format-octal were not
+       implemented, yet called, leading to a crash when using hex or octal
+       radix with digit grouping.
+
+       * test/lisp/calc/calc-tests.el (calc-test-format-radix): New test.
+       * lisp/calc/calc-ext.el: Don't declare non-existing functions.
+       (math--format-integer-fancy): Don't call non-existing functions.
+       * lisp/calc/calc-bin.el (math-format-binary, math-binary-digits):
+       Simplify, fixing 0-padding bug.
+
+2019-07-16  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Add support for paths to svg.el"
+
+       This reverts commit d6bc55ae2dc98c83e58a28e380ce4bcf2ed00bb3.
+
+       Paperwork not ready for Felix Klee; will reapply once that's in place.
+
+2019-07-16  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "* doc/lispref/display.texi (SVG Images): Add menu for 
subsection."
+
+       This reverts commit e5cd597c7736b587f80c16fde1c53f904d921310.
+
+       Paperwork nod ready for the SVG Path patch.
+
+2019-07-16  Mattias Engdegård  <address@hidden>
+
+       Set revert-buffer-function in ert-results-mode
+
+       * lisp/emacs-lisp/ert.el (ert-results-mode): Set revert-buffer-function
+       to re-run the same test selection.  It is a good fit and permits use of
+       the standard "g" key binding.
+
+2019-07-16  Stephen Berman  <address@hidden>
+
+       Prevent infinite loop on entering wdired-mode
+
+       * lisp/wdired.el (wdired-preprocess-symlinks): Remove unneeded use
+       of beginning-of-line, which also triggers an infinite loop in a
+       find-dired buffer that doesn't end with a newline (see discussion
+       in bug#35609).
+
+2019-07-15  Juri Linkov  <address@hidden>
+
+       * lisp/vc/vc.el (vc-log-search): New command (bug#36644).
+
+       * lisp/vc/vc-git.el (vc-git-log-search): New function.
+       (vc-git-log-view-mode): Check vc-log-view-type for log-search.
+
+2019-07-15  Juri Linkov  <address@hidden>
+
+       * lisp/vc/vc-dir.el (vc-dir-search): Remove lambda.
+
+       (Bug#31578) Thanks to Dmitry Gutov <address@hidden>
+
+2019-07-15  Juri Linkov  <address@hidden>
+
+       * lisp/frame.el (make-frame-on-display): Use x-display-list in 
completion.
+
+       (Bug#29713)
+
+2019-07-15  Juri Linkov  <address@hidden>
+
+       * lisp/progmodes/sh-script.el (sh-assignment): Put delete-selection on 
symbol
+
+2019-07-15  Glenn Morris  <address@hidden>
+
+       * doc/lispref/display.texi (SVG Images): Add menu for subsection.
+
+2019-07-15  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/nntp.el: Use lexical-binding
+
+       (nntp-server-action-alist): Expose the code to the compiler.
+       (nntp-with-open-group-function): No need to obfuscate identifiers any 
more.
+       (nntp-authinfo-rejected): Use `define-error`.
+
+2019-07-15  Lars Ingebrigtsen  <address@hidden>
+
+       Fix INITIAL-INPUT cons handling in ido-read-internal
+
+       * lisp/ido.el (ido-read-internal): Is INITIAL-INPUT is a cons that
+       specifies cursor position, adjust the number to be palatable for
+       `read-for-minibuffer' (bug#27807).
+
+2019-07-15  Lars Ingebrigtsen  <address@hidden>
+
+       Fix saving certificates in the NSM on high security levels
+
+       * lisp/net/nsm.el (nsm-check-certificate): `nsm-fingerprint-ok-p'
+       will save the fingerprint in the correct temporary/permanent
+       storage, so saving it once more (in the permanent storage) if the
+       security level is high or greater is a mistake (bug#27823).
+
+2019-07-15  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak mouse-face highlighting of Occur buffers
+
+       * lisp/replace.el (occur-engine): Ensure that the mouse highlight
+       is done over the entire line (bug#27846).
+
+2019-07-15  Lars Ingebrigtsen  <address@hidden>
+
+       open-dribble-file doc string clarification
+
+       * src/keyboard.c (Fopen_dribble_file): Clarify when the file is
+       closed, and when events are written to the file (bug#27996).
+
+2019-07-15  Eric Abrahamsen  <address@hidden>
+
+       Possibly skip IMAP server FETCH responses
+
+       See bug#35433
+
+       * lisp/gnus/nnimap.el (nnimap-transform-headers): Skip FETCH responses
+         that only provide message flags, not message headers.
+
+2019-07-15  Felix E. Klee  <address@hidden>
+
+       Add support for paths to svg.el
+
+       * doc/lispref/display.texi (SVG Images): Document svg-path,
+       svg-clip-path and svg-node (bug#32359).
+
+       * doc/lispref/display.texi (SVG Path Commands): New node.
+
+       * lisp/svg.el (svg--plist-delete, svg--path-command-symbol)
+       (svg--elliptical-arc-coordinates, svg--elliptical-arc-command)
+       (svg--moveto-command, svg--closepath-command)
+       (svg--lineto-command, svg--horizontal-lineto-command)
+       (svg--vertical-lineto-command, svg--curveto-command)
+       (svg--smooth-curveto-command)
+       (svg--quadratic-bezier-curveto-command)
+       (svg--smooth-quadratic-bezier-curveto-command)
+       (svg--eval-path-command, svg-path, svg-clip-path, svg-node): New
+       functions.
+
+2019-07-15  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Add edebug specs for inline.el"
+
+       This reverts commit ed29d9fe5286ab6ecfb2bfa5a015b9945a84512b.
+
+       The edebug specs were already in the declare form, and in addition, it 
didn't fix the problem.
+
+2019-07-15  Lars Ingebrigtsen  <address@hidden>
+
+       Mention changing the font size in the Emacs manual
+
+       * doc/emacs/frames.texi (Fonts): Mention changing the font scale
+       (bug#28196).
+
+2019-07-15  Samuel Bronson  <address@hidden>
+
+       Mark semantic functions correctly in defcustom
+
+       * lisp/cedet/semantic/format.el (semantic-format-tag-custom-list):
+       Mark functions correctly in defcustom (bug#28267).
+
+2019-07-15  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify doc of isearch-wrap-function
+
+       * lisp/isearch.el (isearch-wrap-function): Doc clarification
+       (bug#28388).
+
+2019-07-15  Robert Pluim  <address@hidden>
+
+       Don't delete GnuTLS boot parameters too early
+
+       * src/process.c (connect_network_socket): Don't delete the GnuTLS
+       boot parameters until after we've managed to connect at the IP
+       level (bug#36660).
+
+2019-07-15  Lars Ingebrigtsen  <address@hidden>
+
+       Fix *Messages* grouping in C-Mouse-1 buffer menu
+
+       * lisp/mouse.el (mouse-buffer-menu-mode-groups): Don't group the
+       *Messages* buffer with Mail/News (bug#32007).
+
+2019-07-15  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-cmds.el (tramp-bug, tramp-append-tramp-buffers):
+
+       Don't cancel if debug buffers aren't appended.
+
+2019-07-15  Lars Ingebrigtsen  <address@hidden>
+
+       Make directory-files-recursively take a PREDICATE parameter
+
+       * lisp/files.el (directory-files-recursively): Take an optional
+       PREDICATE parameter (bug#28567).
+
+       * doc/lispref/files.texi (Contents of Directories): Document it.
+
+2019-07-15  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak gv-define-setter debug setting
+
+       * lisp/emacs-lisp/gv.el (gv-define-setter): Change edebug spec
+       from body to def-body (bug#28729).
+
+2019-07-15  Michael Albinus  <address@hidden>
+
+       Fix edge cases in Tramp's copy
+
+       * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band):
+       Special handling for "rsync".
+       (tramp-find-inline-compress): Make check more robust on MS Windows.
+
+2019-07-14  Lars Ingebrigtsen  <address@hidden>
+
+       package-archive-priorities doc addition
+
+       * lisp/emacs-lisp/package.el (package-archive-priorities):
+       Document that negative priorities will lead to packages not being
+       updated (bug#28897).
+
+2019-07-14  Glenn Morris  <address@hidden>
+
+       Stop wdired tests leaving behind symlink /tmp/emacs1000
+
+       * test/lisp/wdired-tests.el (server-socket-dir): Make effective.
+
+2019-07-14  Lars Ingebrigtsen  <address@hidden>
+
+       Mark octave-block-offset as a safe local variable
+
+       * lisp/progmodes/octave.el (octave-block-offset): Mark as safe as
+       a local variable (bug#28916).
+
+2019-07-14  Glenn Morris  <address@hidden>
+
+       Update a ffap test
+
+       * test/lisp/ffap-tests.el (ffap-other-window--bug-25352):
+       Update for incompatible ffap-other-window change.
+
+2019-07-14  Lars Ingebrigtsen  <address@hidden>
+
+       Make elint understand condition-case-unless-debug
+
+       * lisp/emacs-lisp/elint.el (elint-special-forms): Teach elint
+       about `condition-case-unless-debug' (bug#29585).
+
+2019-07-14  Lars Ingebrigtsen  <address@hidden>
+
+       Fix prompting in functions like ffap-read-only
+
+       * lisp/ffap.el (ffap-prompter, ffap-other-window)
+       (ffap-other-frame, ffap-read-only)
+       (ffap-read-only-other-window, ffap-read-only-other-frame)
+       (ffap-alternate-file, ffap-alternate-file-other-window)
+       (ffap-literally): Rework to be able to specify different prompts
+       for different actions (bug#30284) and don't use
+       `call-interactively' all over the place.
+
+2019-07-14  Lars Ingebrigtsen  <address@hidden>
+
+       Make describe-face also output the version information
+
+       * lisp/help-fns.el (describe-variable-custom-version-info): Allow
+       taking a type as an optional input, so this can be used for faces,
+       too (bug#30527).
+
+       * lisp/faces.el (describe-face): Use this to output the version
+       information.
+
+2019-07-14  Alan Third  <address@hidden>
+
+       Use correct colorspace for XBM images
+
+       * src/nsimage.m ([EmacsImage setXBMColor:]): Use 'generic RGB' color
+       space.
+
+2019-07-14  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Make describe-face also output the version information"
+
+       This reverts commit a7aae1473c1aed7758b550a23cda61ee17668e23.
+
+       The patch broke the build.
+
+2019-07-14  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak bug ID prompting in gnus-group--read-bug-ids
+
+       * lisp/gnus/gnus-group.el (gnus-group--read-bug-ids): Default to
+       current bug id on RET.
+
+2019-07-14  Lars Ingebrigtsen  <address@hidden>
+
+       Make describe-face also output the version information
+
+       * lisp/help-fns.el (describe-variable-custom-version-info): Allow
+       taking a type as an optional input, so this can be used for faces,
+       too (bug#30527).
+
+       * lisp/faces.el (describe-face): Use this to output the version
+       information.
+
+2019-07-14  Noam Postavsky  <address@hidden>
+
+       Use ngettext in vc-dir-clean-files
+
+       * lisp/vc/vc-dir.el (vc-dir-clean-files): Use ngettext to separate
+       pluralization from format string.
+
+2019-07-14  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak background colour handling in shr
+
+       * lisp/net/shr.el (shr-fill-line): Keep the background colour on
+       the newline and the indentation.
+
+2019-07-14  Lars Ingebrigtsen  <address@hidden>
+
+       Rename vc-dir-delete-files-no-vc to vc-dir-clean-files
+
+       * doc/emacs/maintaining.texi (VC Directory Commands): Adjust
+       command name.
+
+       * lisp/vc/vc-dir.el (vc-dir-clean-files): Rename from
+       vc-dir-delete-files-no-vc, and work on unregistered files only
+       (bug#31732).
+       (vc-dir-menu-map): Adjust command name.
+
+2019-07-14  Eric Ludlam  <address@hidden>
+
+       Allow bad tags in Scheme
+
+       * admin/grammars/scheme.by (scheme-in-list): Allow bad tags in
+       Scheme (bug#36521).
+
+2019-07-13  Nick Drozd  <address@hidden>
+
+       * etc/NEWS: Announce new Georgian inputs.  (Bug#36639)
+
+       * etc/HELLO: Fix name of Georgian language
+
+       * lisp/leim/quail/georgian.el: Add georgian-nuskhuri input method
+
+       * lisp/leim/quail/georgian.el: Add missing characters to georgian input
+
+       * lisp/leim/quail/georgian.el: Add georgian-qwerty input method
+
+2019-07-13  Stefan Kangas  <address@hidden>
+
+       Restore focus to Bookmark List after editing annotation
+
+       There are two entry points to bookmark-edit-annotation-mode: the first
+       when we add a bookmark and bookmark-use-annotations is non-nil; the
+       second when bookmark-bmenu-edit-annotation is run from the bookmark
+       list.  When editing is concluded, in the first case, we should just
+       quit window.  In the second case, we should instead return to the
+       bookmark list.
+
+       * lisp/bookmark.el (text-property-search): Require.
+       (bookmark-annotation-name): Make buffer-local and improve doc string.
+       (bookmark--annotation-from-bookmark-list): New buffer-local variable.
+       (bookmark-edit-annotation): New argument from-bookmark-list sets
+       bookmark--annotation-from-bookmark-list.
+       (bookmark-bmenu-edit-annotation): Call bookmark-edit-annotation with
+       argument from-bookmark-list set to t.
+       (bookmark-send-edited-annotation): When editing originated in the
+       bookmark list, restore focus to bookmark list and move point back to
+       edited bookmark. (Bug#20150)
+
+       (bookmark-edit-annotation-mode): Fix typo.
+       (bookmark-bmenu-buffer): New variable.
+       (bookmark-bmenu-surreptitiously-rebuild-list)
+       (bookmark-bmenu-list): Use it.
+
+       * test/lisp/bookmark-tests.el (with-bookmark-bmenu-test): New macro.
+       (bookmark-tests-set/bookmark-use-annotations-t)
+       (bookmark-bmenu-edit-annotation/show-annotation)
+       (bookmark-bmenu-send-edited-annotation)
+       (bookmark-bmenu-send-edited-annotation/restore-focus): New test cases.
+
+2019-07-13  Marco Wahl  <address@hidden>
+
+       New function for scroll-lock-mode to almost always scroll
+
+       * lisp/scroll-lock.el (scroll-lock-next-line-always-scroll): New
+       function.  Opposed to scroll-lock-next-line it does not switch to
+       forward-line at eob.  S-down is the default key binding for this
+       function.  (Bug#36494)
+       * test/lisp/scroll-lock-tests.el: A few tests for
+       scroll-lock-next-line-always-scroll.
+       * etc/NEWS: Announce the new command.
+
+2019-07-13  Eli Zaretskii  <address@hidden>
+
+       Fix recent changes
+
+       * src/sysstdio.h: Include stdarg.h, for va_list.
+
+2019-07-13  Pip Cet  <address@hidden>
+
+       Avoid returning negative numbers from `hash-table-count'
+
+       * src/fns.c (Fhash_table_count): Rehash argument if necessary.
+
+2019-07-13  Paul Eggert  <address@hidden>
+
+       * src/lisp.h (struct Lisp_Hash_Table.count): Improve comment.
+
+2019-07-13  Noam Postavsky  <address@hidden>
+
+       Remove incorrect commentary about #$ in autoloads
+
+       * lisp/emacs-lisp/autoload.el (autoload-rubric):
+       `package-quickstart-refresh' does in fact support load-file-name as
+       well.
+
+2019-07-13  Noam Postavsky  <address@hidden>
+
+       Use syntax-ppss-toplevel-pos for defvar search (Bug#34233)
+
+       * lisp/progmodes/elisp-mode.el (eval-sexp-add-defvars): Use
+       syntax-ppss-toplevel-pos instead of a raw check of syntax components.
+
+2019-07-13  Paul Eggert  <address@hidden>
+
+       Avoid interleaving stderr lines when shutting down
+
+       * src/emacs.c (shut_down_emacs) [!DOS_NT]: Avoid interleaving
+       to stderr in the usual case, by using a single write and by
+       appending a newline.
+       * src/sysdep.c (emacs_backtrace) [HAVE_BACKTRACE_SYMBOLS_FD]:
+       Omit newline since shut_down_emacs now does that.
+
+2019-07-13  Paul Eggert  <address@hidden>
+
+       Use a better buffer size in emacs_perror
+
+       * src/sysdep.c (emacs_perror): Since the buffer is for avoiding
+       interleaving, size it via PIPE_BUF not BUFSIZ.
+       * src/sysstdio.h (PIPE_BUF): Provide a default.
+
+2019-07-13  Paul Eggert  <address@hidden>
+
+       Avoid interleaving stderr in dump_fingerprint
+
+       * src/fns.c (hexbuf_digest): New function, containing most of
+       the old make_digest_string.
+       (make_digest_string): Use it.
+       * src/pdumper.c (dump_fingerprint): Rewrite to use a single
+       fprintf call, to avoid interleaving on GNU/Linux.
+
+2019-07-13  Paul Eggert  <address@hidden>
+
+       Avoid interleaving stderr in a few cases
+
+       * src/sysdep.c (buferr): New static var.
+       (init_standard_fds) [_PC_PIPE_BUF]: Initialize it.
+       (errstream, errputc, verrprintf, errwrite): New functions.
+       (close_output_streams): Check buferr status too.
+       * src/xdisp.c: Include sysstdio.h instead of stdio.h.
+       (message_to_stderr, vmessage): Use the new functions
+       to avoid interleaving stderr.
+
+2019-07-13  Andreas Schwab  <address@hidden>
+
+       Revert "Fix typo in sh-assignment-regexp"
+
+       This reverts commit 194f370a3da72d560975adc2835254ce251881a7.
+
+2019-07-13  Lars Ingebrigtsen  <address@hidden>
+
+       Add edebug specs for inline.el
+
+       * lisp/emacs-lisp/inline.el (inline-quote)
+       (inline-letevals): Add edebug specs (bug#31051).
+
+2019-07-13  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak output of doc in advice--make-docstring
+
+       * lisp/emacs-lisp/nadvice.el (advice--make-docstring): Make the
+       bit about the function/macro having an advice into a complete
+       sentence (bug#31063) and make it less dramatic.
+
+2019-07-13  Lars Ingebrigtsen  <address@hidden>
+
+       Add a :format to `text' widgets
+
+       * lisp/wid-edit.el (text): Add a :format so that the 'text fields
+       work (bug#31309).  Suggested by Phil Sainty.
+
+2019-07-13  Lars Ingebrigtsen  <address@hidden>
+
+       Doc fix for Finteractive (only %s is allowed)
+
+       * src/callint.c (Finteractive): Any other format spec than %s will
+       bug out with "Format specifier doesn’t match argument type", so
+       say explicitly that only %s is supported (bug#31314).
+
+2019-07-13  Lars Ingebrigtsen  <address@hidden>
+
+       Don't have savehist-save bug out on non-existing directory
+
+       * lisp/savehist.el (savehist-save): Ensure that the directory
+       exists before saving (bug#31348).
+
+2019-07-13  Lars Ingebrigtsen  <address@hidden>
+
+       Fix display-fill-column-indicator custom spec typo
+
+       * lisp/cus-start.el (standard): Fix typo in
+       display-fill-column-indicator custom spec.
+
+       Debugger entered--Lisp error: (wrong-type-argument stringp integer)
+         string-match("\\([0-9]+\\)\\(\\.\\([0-9]+\\)\\)?" integer)
+         customize-version-lessp("25.3" integer)
+        [...]
+         customize-changed-options("")
+
+2019-07-13  Lars Ingebrigtsen  <address@hidden>
+
+       Make check-declare understand cl-defun
+
+       * lisp/emacs-lisp/check-declare.el (check-declare-verify): Add
+       cl-defun to the defun-ish regexp (bug#31396).
+
+2019-07-13  Lars Ingebrigtsen  <address@hidden>
+
+       plist-get/lax-plist-get doc fix
+
+       * src/fns.c (Fplist_get): Mention that comparison is done with eq
+       (bug#31441).
+       (Flax_plist_get): Refer to plist-get for details.
+
+2019-07-13  Lars Ingebrigtsen  <address@hidden>
+
+       citeasnoun in reftex can take an optional parameter
+
+       * lisp/textmodes/reftex-vars.el (reftex-cite-format-builtin):
+       citeasnoun can take an optional parameter (bug#31476).  Suggested
+       by Konrad Podczeck.
+
+2019-07-13  Lars Ingebrigtsen  <address@hidden>
+
+       Fix typo in sh-assignment-regexp
+
+       * lisp/progmodes/sh-script.el (sh-assignment-regexp): Fix typo in
+       bash regexp that inhibited fontification of stuff like foo.=bar
+       (bug#31710).
+
+2019-07-13  Lars Ingebrigtsen  <address@hidden>
+
+       Mark ediff-before-session-group-setup-hooks as obsolete
+
+       * lisp/vc/ediff-mult.el (ediff-before-session-group-setup-hooks):
+       Mark this apparently unused variable as obsolete (bug#36618).
+
+2019-07-13  Lars Ingebrigtsen  <address@hidden>
+
+       Add a way to more conveniently log/debug nnmail splitting
+
+       * doc/misc/gnus.texi (Fancy Mail Splitting): Mention it.
+
+       * lisp/gnus/nnmail.el (nnmail-debug-splitting): New variable.
+
+       * lisp/gnus/nnmail.el (nnmail-log-split): New function.
+       (nnmail-split-it): Use it.
+
+2019-07-13  Lars Ingebrigtsen  <address@hidden>
+
+       Fix cl-defstruct doc string fix
+
+       * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Remove sentence from
+       doc string that was left in by mistake when fixing the arglist
+       documentation.
+
+2019-07-13  Phil Sainty  <address@hidden>
+
+       * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Fix a docstring typo
+
+2019-07-13  Phil Sainty  <address@hidden>
+
+       * lisp/so-long.el (so-long-variable-overrides): Improve doc
+
+       Explain the 'line-move-visual' and 'truncate-lines' values.
+
+2019-07-13  Phil Sainty  <address@hidden>
+
+       * lisp/so-long.el (so-long-variable-overrides): Use correct bidi option
+
+       Set 'bidi-paragraph-direction' to 'left-to-right', rather than setting
+       'bidi-display-reordering' to nil, as the latter is only intended for
+       use when debugging the display code.
+
+2019-07-13  Michael Albinus  <address@hidden>
+
+       Make check for compression programs more robust in Tramp
+
+       * lisp/net/tramp-sh.el (tramp-inline-compress-start-size):
+       Revert change of init value.  We fix this differently.
+       (tramp-find-inline-compress): Check also the output of the
+       processes, not only the return code.
+
+2019-07-13  Michael Albinus  <address@hidden>
+
+       * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Adapt docstring.
+
+2019-07-13  Eli Zaretskii  <address@hidden>
+
+       Fix TTY menus in GUD and GDB-MI modes
+
+       * lisp/menu-bar.el (menu-bar-open): Accept a numerical
+       argument interactively, and drop down menu at that X
+       coordinate.
+       (popup-menu): Detect when MENU is not a list.  (Bug#36613)
+
+2019-07-13  Eli Zaretskii  <address@hidden>
+
+       Avoid loading mule-util at startup
+
+       * lisp/international/mule-util.el (char-displayable-p): Move
+       from here...
+       * lisp/international/mule.el (char-displayable-p): ...to
+       here.  This avoids always loading mule-util at startup due
+       to a call to 'char-displayable-p' in
+       'startup--setup-quote-display'.
+
+2019-07-13  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of So Long mode
+
+       * doc/emacs/trouble.texi (Long Lines): Improve wording, add
+       indexing, mention the mode name and its main customization
+       options.
+
+2019-07-13  Stefan Kangas  <address@hidden>
+
+       Fix looking up functions like "-e" in cperl-mode
+
+       * lisp/progmodes/cperl-mode.el (cperl-perldoc): Handle functions with
+       leading dash (e.g. "-f"). (Bug#6013)
+
+2019-07-13  Eli Zaretskii  <address@hidden>
+
+       Fix last commit
+
+       * etc/NEWS: Fix formatting and punctuation of last change.
+
+       * lisp/isearch.el (isearch-highlight-regexp)
+       (isearch-highlight-lines-matching-regexp): Doc fix.
+
+2019-07-13  Dima Kogan  <address@hidden>
+
+       Add ability to highlight-lines-matching-regexp directly from Isearch
+
+       * lisp/isearch.el: Implement the new functionality.
+       (isearch-highlight-lines-matching-regexp): New function bound
+       to 'M-s h l' in isearch.
+       (isearch--highlight-regexp-or-lines): New internal function.
+
+       * etc/NEWS (Search and Replace): Mention this change.
+
+       * doc/emacs/search.texi (Special Isearch): Document 'M-s h l'.
+       (Bug#18241)
+
+2019-07-12  Phil Sainty  <address@hidden>
+
+       Merge branch 'scratch/so-long'
+
+       Add tests for so-long.el
+
+2019-07-12  Phil Sainty  <address@hidden>
+
+       Add so-long library
+
+       * lisp/so-long.el: New library.
+       * doc/emacs/trouble.texi (Long Lines): New node covering so-long.el.
+       * doc/emacs/emacs.texi (Top): Add menu entry for the Long Lines node.
+       * etc/NEWS: Include under "New Modes and Packages in Emacs 27.1"
+
+2019-07-12  Paul Eggert  <address@hidden>
+
+       Replace Vdead with tagged pointer
+
+       This speeds up ‘make compile-always’ by 0.1% on my platform.
+       Suggested by Pip Cet in:
+       https://lists.gnu.org/r/emacs-devel/2019-07/msg00257.html
+       * src/.gdbinit (pwinx, pgx, xbuffer, xprintstr):
+       Output dead_object () as "DEAD".
+       * src/alloc.c (Vdead, DEADP): Remove.
+       All uses replaced by dead_object () / deadp.
+       (deadp): New function.
+       (init_alloc_once_for_pdumper): Remove no-longer-needed
+       initialization.
+       * src/lisp.h (dead_object): New function.
+
+2019-07-12  Lars Ingebrigtsen  <address@hidden>
+
+       Mention columns width variables in the buffer-menu doc string
+
+       * lisp/buff-menu.el (buffer-menu): Mention the variables that can
+       be used to change the columns widths (bug#36587).
+
+2019-07-12  Lars Ingebrigtsen  <address@hidden>
+
+       Mention `M-n' for VALUE in the `set-variable' command
+
+       * lisp/simple.el (set-variable): Mention that the current variable
+       is accessible in `M-n' (bug#36586).
+
+2019-07-12  Lars Ingebrigtsen  <address@hidden>
+
+       Mark the new vc-dir-delete command as documented
+
+2019-07-12  Lars Ingebrigtsen  <address@hidden>
+
+       Add a new command in vc-dir mode to delete files
+
+       * doc/emacs/maintaining.texi (VC Directory Commands): Document it.
+
+       * lisp/vc/vc-dir.el (vc-dir-delete-files-no-vc): New command and
+       keystroke (bug#31732).
+
+2019-07-12  Lars Ingebrigtsen  <address@hidden>
+
+       Add more spook.lines
+
+       * etc/spook.lines: Add Black Cube (bug#32309)
+       (https://en.wikipedia.org/wiki/Black_Cube).
+
+2019-07-12  Lars Ingebrigtsen  <address@hidden>
+
+       Document fix for cl-defstruct
+
+       * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Document that we can
+       have a doc string (bug#32340).
+
+2019-07-12  Lars Ingebrigtsen  <address@hidden>
+
+       Allow using wdired in all dired-derived modes
+
+       * lisp/wdired.el (wdired-change-to-wdired-mode): Allow using in
+       dired derived modes (bug#32392).  Suggested by James Nguyen.
+
+2019-07-12  Lars Ingebrigtsen  <address@hidden>
+
+       Add some indices for regexp character classes
+
+       * doc/lispref/searching.texi (Char Classes): Add some concept
+       index entries for a handful of character classes (bug#32430).
+
+2019-07-12  Tino Calancha  <address@hidden>
+
+       End predicate `dired-in-this-tree' with '-p'
+
+       * lisp/dired.el(dired-in-this-tree-p): Rename from `dired-in-this-tree'.
+       Add docstring.
+
+       (dired-in-this-tree): Define an alias to `dired-in-this-tree-p'.
+
+       (dired-buffers-for-dir)
+       * lisp/dired-aux.el (dired-tree-down, dired-kill-tree)
+       (dired-insert-subdir, dired-rename-subdir): Update all callers 
(bug#32892).
+
+2019-07-12  Lars Ingebrigtsen  <address@hidden>
+
+       Document format-spec and expand the modifiers it supports
+
+       * doc/lispref/text.texi (Interpolated Strings): New section.
+       * lisp/format-spec.el (format-spec--parse-modifiers)
+       (format-spec--pad): New functions.
+       (format-spec): Support more format modifiers (bug#32931).
+
+2019-07-12  Teemu Likonen  <address@hidden>
+
+       Use the gpg --sender option
+
+       * lisp/epg.el (epg-start-encrypt)
+       * lisp/gnus/mml-sec.el (mml-secure-epg-encrypt): When
+       'mml-secure-openpgp-sign-with-sender' is non-nil message sender's
+       email address (in addition to its old behaviour) will also be used
+       to set gpg's "--sender email@domain" option.
+
+2019-07-12  Paul Eggert  <address@hidden>
+
+       * lib-src/make-docfile.c: Fix comment typo.
+
+2019-07-12  Lars Ingebrigtsen  <address@hidden>
+
+       Always include the number of unexpected ert tests
+
+       * lisp/emacs-lisp/ert.el (ert-summarize-tests-batch-and-exit):
+       Always include the number of failed tests, because absence of the
+       text is not reassuring (bug#36616).
+
+2019-07-12  Lars Ingebrigtsen  <address@hidden>
+
+       Fix long credentials when using auth in nnimap.el
+
+       * lisp/gnus/nnimap.el (nnimap-login): When base64-ing
+       credentials, don't let bsae64-encode-string split the result into
+       several lines, because servers do not understand that (bug#34458).
+
+2019-07-12  Lars Ingebrigtsen  <address@hidden>
+
+       Fix long credentials when using auth in url.el
+
+       * lisp/url/url-auth.el (url-basic-auth): When base64-ing
+       credentials, don't let bsae64-encode-string split the result into
+       several lines, because servers do not understand that (bug#36619).
+
+2019-07-12  Lars Ingebrigtsen  <address@hidden>
+
+       Fold rfc2047 headers correctly when narrowed to header value
+
+       * lisp/mail/rfc2047.el (rfc2047-fold-region): Fold headers
+       correctly if narrowed to the header value.
+
+2019-07-12  Juri Linkov  <address@hidden>
+
+       * test/lisp/replace-tests.el (replace-tests-with-undo): Override
+
+       replace-highlight to emulate clobbering match-data (bug#36328).
+
+2019-07-12  Juri Linkov  <address@hidden>
+
+       * lisp/progmodes/compile.el (compilation-filter): 
`compilation--ensure-parse'
+
+       is used instead of `font-lock-ensure' (bug#36564).
+
+       * test/lisp/progmodes/compile-tests.el (compile-test-error-regexps)
+       (compile-test-grep-regexps): Check the number of errors.
+
+2019-07-12  Lars Ingebrigtsen  <address@hidden>
+
+       Remove initial and trailing whitespace in message-fetch-field
+
+       * lisp/gnus/message.el (message-fetch-field): Remove initial and
+       trailing whitespace.
+
+2019-07-12  Lars Ingebrigtsen  <address@hidden>
+
+       Fix breaking of rfc2047 headers with long words
+
+       * lisp/mail/rfc2047.el (rfc2047-fold-region): Don't break lines
+       right after the Header: field, but wait until the next
+       whitespace.  (This only makes a difference for words that are very
+       long (i.e., longer than, say, 60 characters, depending on the
+       header name length.)
+
+2019-07-12  Lars Ingebrigtsen  <address@hidden>
+
+       Refactor rfc2047-fold-region slightly and add a couple of tests
+
+       * lisp/mail/rfc2047.el (rfc2047--break-line): Refactor out to
+       avoid code repetition...
+       (rfc2047-fold-region): ... from this function.
+
+2019-07-12  Lars Ingebrigtsen  <address@hidden>
+
+       Add comments to rfc2047
+
+       * lisp/mail/rfc2047.el (rfc2047-fold-region): Add comments to the
+       function.
+
+2019-07-12  Michael Albinus  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       305abae50e Raise required librsvg version so as to match the current use
+       c6775bc9ca * lisp/net/tramp-sh.el (tramp-inline-compress-start-size):...
+
+2019-07-12  Michael Albinus  <address@hidden>
+
+       Check directory in Tramp's {copy,rename}-file
+
+       * lisp/net/tramp-adb.el (tramp-adb-handle-copy-file)
+       (tramp-adb-handle-rename-file):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file):
+       * lisp/net/tramp-rclone.el (tramp-rclone-do-copy-or-rename-file):
+       * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-copy-file)
+       (tramp-smb-handle-rename-file):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-do-copy-or-rename-file):
+       Check, that NEWNAME is not a directory given as file name.
+
+       * test/lisp/net/tramp-tests.el (tramp-test11-copy-file)
+       (tramp-test12-rename-file): Extend tests.
+
+2019-07-12  Michael Albinus  <address@hidden>
+
+       Re-add tramp-autoload cookie for all defcustoms
+
+       * lisp/net/tramp-adb.el (tramp-adb-program)
+       (tramp-adb-connect-if-not-connected, tramp-adb-prompt):
+       * lisp/net/tramp-cache.el (tramp-persistency-file-name):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-zeroconf-domain):
+       * lisp/net/tramp-rclone.el (tramp-rclone-program):
+       * lisp/net/tramp-sh.el (tramp-copy-size-limit, tramp-histfile-override)
+       (tramp-use-ssh-controlmaster-options):
+       * lisp/net/tramp-smb.el (tramp-smb-program, tramp-smb-acl-program)
+       (tramp-smb-conf, tramp-smb-winexe-program)
+       (tramp-smb-winexe-shell-command)
+       (tramp-smb-winexe-shell-command-switch): Re-add tramp-autoload
+       cookie for all defcustoms.
+
+       * lisp/net/tramp-adb.el (tramp-adb-handle-copy-file)
+       (tramp-adb-handle-rename-file):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file):
+       * lisp/net/tramp-rclone.el (tramp-rclone-do-copy-or-rename-file):
+       * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-copy-file)
+       (tramp-smb-handle-rename-file):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-do-copy-or-rename-file):
+       Check, that NEWNAME is not a directory given as file name.
+
+2019-07-12  Michael Albinus  <address@hidden>
+
+       * doc/misc/tramp.texi (Inline methods): Precise about used external 
programs.
+
+2019-07-12  Michael Albinus  <address@hidden>
+
+       Change Tramp version to 2.4.3-pre
+
+       * doc/misc/trampver.texi:
+       * lisp/net/trampver.el: Change version to "2.4.3-pre".
+
+       * lisp/net/tramp.el: Bump version to 2.4.3-pre.
+
+2019-07-11  Paul Eggert  <address@hidden>
+
+       Tweak builtin symbol order for speed
+
+       * lib-src/make-docfile.c (compare_globals):
+       Make symbols 1 through 4 be t, unbound, error, lambda.
+       This is in addition to symbol 0 being nil.
+       This change improved ‘make compile-always’ performance by 0.6%
+       on my platform.
+
+2019-07-11  Paul Eggert  <address@hidden>
+
+       Avoid duplicate comparison in describe_map_compare
+
+       * src/fns.c (string_version_cmp): New function.
+       This has most of the old Fstring_version_lessp,
+       with an assertion to make things a bit clearer.
+       * src/fns.c (Fstring_version_lessp):
+       * src/keymap.c (describe_map_compare): Use it (Bug#33237).
+
+2019-07-11  Juri Linkov  <address@hidden>
+
+       * lisp/progmodes/compile.el (compilation-filter): Use font-lock-ensure
+
+       to update the number of errors in compilation-mode-line-errors
+       displayed in the mode-line.  (Bug#36564)
+
+2019-07-11  Juri Linkov  <address@hidden>
+
+       Better match-data handling in perform-replace
+
+       * lisp/replace.el (perform-replace): Don't wrap replace-highlight
+       in save-match-data.  Use `(nth 0 real-match-data)' instead of
+       `(match-beginning 0)' after replace-highlight.  (Bug#36328)
+
+2019-07-11  Michael Albinus  <address@hidden>
+
+       Remove lisp/obsolete/xesam.el
+
+       * test/lisp/format-spec-tests.el (test-format-unknown): Use 
`should-error'.
+
+2019-07-11  Lars Ingebrigtsen  <address@hidden>
+
+       Allow passing unknown specs to format-spec
+
+       * lisp/format-spec.el (format-spec): Allow passing through format
+       strings that have no specs (to be able to act as a filter).  Also
+       add an example.
+       * test/lisp/format-spec-tests.el (test-format-spec): Add tests for
+       the new functionality.
+
+2019-07-11  Lars Ingebrigtsen  <address@hidden>
+
+       Add tests for format-spec
+
+       Add test to time-stamp.el
+
+2019-07-11  Phil Sainty  <address@hidden>
+
+       Support program switches in 'comint-run' command
+
+       * etc/NEWS:
+       * doc/emacs/misc.texi: Describe new behaviour (bug#33037).
+       * lisp/comint.el (comint-run): Add optional SWITCHES argument.
+       With prefix argument C-u, prompt for SWITCHES.
+
+2019-07-11  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify the expand-file-name doc string
+
+       * src/fileio.c (Fexpand_file_name): Clarify that "~" in NAME is
+       expanded, and not just "~/".  Also clarify that ~USER is not
+       expanded if USER doesn't exist (bug#36490).
+
+2019-07-11  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak the order keystrokes are sorted in keymap listings
+
+       * src/keymap.c (describe_map_compare): Change the sorting order of
+       keystrokes, so that we get the order <f1> <f2> <f11> instead of
+       <f1> <f11> <f2> (bug#33237).
+
+2019-07-11  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak misterioso header line background color
+
+       * etc/themes/misterioso-theme.el (class): Make the header line
+       background darker so that cedet function names and parameters are
+       legible (bug#33061).
+
+2019-07-11  Stefan Kangas  <address@hidden>
+
+       Remove misleading message in customize
+
+       * lisp/cus-edit.el (custom-buffer-create-internal): Remove misleading
+       message about "Resetting customization items" (bug#22451).
+
+2019-07-11  Lars Ingebrigtsen  <address@hidden>
+
+       Fix C-x C-e with defvars in comments preceding
+
+       * lisp/progmodes/elisp-mode.el (eval-sexp-add-defvars): When
+       collecting defvars in the current buffer, ignore the ones that are
+       in comments or strings (bug#34233).
+
+2019-07-11  Eli Zaretskii  <address@hidden>
+
+       Resurrect SVG support on MS-Windows
+
+       * src/image.c (syms_of_image) <Qgio> [HAVE_NTGUI]: New DEFSYM.
+       (init_svg_functions) [LIBRSVG_CHECK_VERSION >= 2.32.0]: Load
+       g_file_new_for_path and g_memory_input_stream_new_from_data
+       from libgio, not from libglib.  (Bug#35548)
+
+       * lisp/term/w32-win.el (dynamic-library-alist): Add the libgio
+       DLL.
+
+2019-07-11  Eli Zaretskii  <address@hidden>
+
+       Avoid assertion violations when resize-mini-windows is nil
+
+       * src/xdisp.c (resize_mini_window): Always reset the
+       mini-window's start point to the beginning of the buffer, even
+       if resizing is not needed.  This avoids assertion violations
+       when resize-mini-windows is nil.  (Bug#36595)
+
+2019-07-10  Paul Eggert  <address@hidden>
+
+       Avoid functions deprecated in librsvg 2.45.1
+
+       * src/image.c (init_svg_functions) [WINDOWSNT]:
+       Load the pre-2.32 or 2.32 functions,
+       depending on LIBRSVG_CHECK_VERSION.
+       (svg_load_image): In librsvg 2.32 or later, use
+       g_memory_input_stream_new_from_data, g_file_new_for_path and
+       rsvg_handle_new_from_stream_sync rather than the
+       deprecated-in-2.45 rsvg_handle_write and rsvg_handle_close.
+       From a patch by YAMAMOTO Mitsuharu (Bug#35548#11).
+
+2019-07-10  Mattias Engdegård  <address@hidden>
+
+       Fix trig simplification crash (bug#33052)
+
+       * lisp/calc/calc-alg.el (calcFunc-sec, calcFunc-csc, calcFunc-cot):
+       Check that `math-known-sin' and `math-known-tan' succeeded before
+       using their value in arithmetic.
+       * test/lisp/calc/calc-tests.el (calc-test-trig): Add regression tests.
+
+2019-07-10  Stefan Kangas  <address@hidden>
+
+       Small cleanups in asm-mode.el (Bug#36540)
+
+       * lisp/progmodes/asm-mode.el: Remove "tools" from "Keywords" header.
+       Doc fixes.
+       (asm-comment-char, asm-comment): Doc fixes.
+       (asm-newline): Redefine as an obsolete function alias for
+       'newline-and-indent' instead of using a defalias.
+
+2019-07-10  Lars Ingebrigtsen  <address@hidden>
+
+       Add recursion check for comint password prompting
+
+       * lisp/comint.el (comint--prompt-recursion-depth): New variable
+       (bug#33252).
+       (comint-watch-for-password-prompt): Use it to avoid bugging out
+       and making Emacs unusable when a shell script is prompting for
+       passwords in an infloop.
+
+2019-07-10  Lars Ingebrigtsen  <address@hidden>
+
+       Fold too-long headers in Message automatically
+
+       * lisp/gnus/message.el (message--fold-long-headers): Header lines
+       should be no longer than 79 characters before folding
+       (bug#33313).  Previous comment about 998 octets is about maximum
+       allowed header field length.
+
+2019-07-10  Lars Ingebrigtsen  <address@hidden>
+
+       Doc clarification in abbrev-prefix-mark
+
+       * lisp/abbrev.el (abbrev-prefix-mark): Clarify when the hyphen is
+       removed (bug#33382).
+
+2019-07-10  Lars Ingebrigtsen  <address@hidden>
+
+       Fix problem with files like "~" in `directory-files-recursively'
+
+       * lisp/files.el (directory-files-recursively): Don't bug out on
+       files like "~" that have special meaning to `expand-file-name'
+       (bug#36490).
+
+2019-07-10  Stefan Kangas  <address@hidden>
+
+       Add new section on reading a bug to admin/notes/bugtracker
+
+       * admin/notes/bugtracker: New section "How do I read a bug?" in
+       "Quickstart" (Bug#36560).
+
+2019-07-10  Lars Ingebrigtsen  <address@hidden>
+
+       Fix pretty-printing of {}
+
+       * lisp/json.el (json-pretty-print): Fix reading {}, which returns nil.
+
+2019-07-10  Stefan Kangas  <address@hidden>
+
+       Fix warnings in todo-mode-tests.el (Bug#36569)
+
+       * test/lisp/calendar/todo-mode-tests.el (todo-test--insert-item):
+       Fix "Unused lexical argument" warnings.
+
+2019-07-10  Stefan Kangas  <address@hidden>
+
+       Fix warning in electric-tests.el (Bug#36570)
+
+       * test/lisp/electric-tests.el (plainer-c-mode): Remove duplicate
+       definition.
+
+2019-07-09  Paul Eggert  <address@hidden>
+
+       Simplify math-get-calendar-tzinfo
+
+       * lisp/calc/calc-forms.el (calendar-current-time-zone-cache):
+       Remove defvar.
+       (math-get-calendar-tzinfo): Simplify and do not reach
+       into caldst’s cache.
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       Fix documentation of cl-member
+
+       * doc/misc/cl.texi (Lists as Sets): cl-member with no :test is not
+       equal to memq (because it uses eql) (bug#33655).
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       auth-source does not support "host" in .netrc files
+
+       * doc/misc/auth.texi (Help for users): Remove mention of "host" in
+       .netrc files, because it's not supported (bug#33826).
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       White-space fix in fortune-compile
+
+       * lisp/play/fortune.el (fortune-compile): Reindent function.
+
+2019-07-09  Benjamin Ragheb  <address@hidden>  (tiny change)
+
+       Search exec-path for fortune strfile program
+
+       * lisp/play/fortune.el (fortune-compile): Search exec-path for
+       strfile program (bug#33984).
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       Remove json-pretty-print-max-secs introduced earlier this year
+
+       * lisp/json.el (json-pretty-print-max-secs): Remove the variable
+       as it's no longer used.
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       Fix timezone east of GMT in Calv
+
+       * lisp/calc/calc-forms.el (math-calendar-tzinfo): Make timezone
+       calculation work east of Greenwich.  Fix proposed by David O'Shea
+       (bug#34075).
+
+2019-07-09  Stefan Monnier  <address@hidden>
+
+       * src/fileio.c: Fix bug#36431
+
+       (decide_coding_unwind): Re-introduce.  Move text back to the gap.
+       Return the new `inserted` via the unwind_data.
+       (Finsert_file_contents): Use it.
+       Make sure `inserted` is always 0 when we jump straight to `notfound`.
+       Don't insert the text in the buffer until we know it's properly decoded
+       for the byteness of the buffer.
+
+       * test/src/fileio-tests.el (fileio-tests--insert-file-interrupt):
+       Allow insert-file-contents to return an empty buffer in case of
+       non-local exit in set-auto-coding-function.
+
+2019-07-09  Paul Eggert  <address@hidden>
+
+       Defend fingerprint against even-smarter LTO
+
+       * src/pdumper.c (Fdump_emacs_portable, pdumper_load):
+       Don’t cast volatile to non-volatile pointer, as that does not in
+       general suffice to prevent a compiler from optimizing away memcmp
+       and/or memcpy calls.  Instead, copy the fingerprint by hand.
+
+2019-07-09  Stefan Monnier  <address@hidden>
+
+       Revert "Turn off bytecode jumptables to avoid Bug#36447"
+
+       This reverts commit 122198d2f1aaf0b74c102874cc9b04ae4789f54f.
+       Should not be needed any more thanks to Pip Cet's patch to 
hash_table_rehash.
+
+2019-07-09  Pip Cet  <address@hidden>
+
+       Don't alter shared structure in dumped purecopied hash tables.
+
+       * src/fns.c (hash_table_rehash): Make sure we're operating on
+       fresh copies of ->next, ->index, ->hash.
+
+2019-07-09  Stefan Monnier  <address@hidden>
+
+       Merge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/emacs into 
trunk
+
+2019-07-09  Paul Eggert  <address@hidden>
+
+       Do not alter match data in Fcapitalize etc.
+
+       Without this patch, (capitalize "x") can alter the match data,
+       which is not what users expect.  Problem found by running
+       morse-tests-unnato-region in a stripped-down Emacs.
+       Perhaps ‘load’ should also save and restore the match data?
+       That would be a simpler fix, though arguably incompatible.
+       * src/lread.c (save_match_data_load): New function.
+       * src/chartab.c (uniprop_table):
+       * src/doc.c (reread_doc_file):
+       * src/eval.c (Fautoload_do_load):
+       * src/fns.c (Frequire): Use it.
+
+2019-07-09  Paul Eggert  <address@hidden>
+
+       Port image-type-from-file-header-test to non-SVG Emacs
+
+       Problem reported privately by Michael Albinus.
+       * test/lisp/image-tests.el (image-type-from-file-header-test):
+       Don’t assume svg is a supported image type.
+
+2019-07-09  Andreas Schwab  <address@hidden>
+
+       Make fingerprint handling compatible with LTO
+
+       Tell the compiler that the fingerprint variable is modified 
unpredictably.
+
+       * lib/fingerprint.h (fingerprint): Remove const.
+       * lib/fingerprint.c (fingerprint): Likewise.
+       * src/pdumper.c (Fdump_emacs_portable): Cast fingerprint variable.
+       (pdumper_load): Likewise.
+       * lib-src/make-fingerprint.c (main): Likewise.
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       Fix pretty-printing of multiple JSON objects
+
+       * lisp/json.el (json-pretty-print-max-secs): Make obsolete.
+       (json-pretty-print): Pretty-print all JSON objects in the region
+       instead of just the first one (and then deleting all other
+       objects) (bug#34160).
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Fix pretty-printing of multiple JSON objects"
+
+       This reverts commit 48daf77a9d963c05ee198b3ab108c7f0b3686da6.
+
+       This apparently led to build errors.
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       Fix pretty-printing of multiple JSON objects
+
+       * lisp/json.el (json-pretty-print-max-secs): Make obsolete.
+       (json-pretty-print): Pretty-print all JSON objects in the region
+       instead of just the first one (and then deleting all other
+       objects) (bug#34160).
+
+2019-07-09  Michael Albinus  <address@hidden>
+
+       * lisp/simple.el (shell-command): Raise a user-error instead of an 
error.
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify json-read and json-encode parameters and return values
+
+       * lisp/json.el (json-read): Try to clarify what's returned (bug#34242).
+       (json-encode): Refer to `json-read' about what the input is and
+       say what error is signalled.
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       Fix alternative-email-as-from with empty To headers in Message
+
+       * lisp/gnus/message.el (message-use-alternative-email-as-from):
+       Don't add a "," at the start of the address if the To header
+       doesn't exist (bug#34293).
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       Make gnus-read-ephemeral-emacs-bug-group autoloadable
+
+       * lisp/gnus/gnus-group.el (gnus-read-ephemeral-emacs-bug-group):
+       Add an autoload cookie, because the command can be used from
+       without Gnus.
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       Checkdoc would bug out on empty files
+
+       * lisp/emacs-lisp/checkdoc.el (checkdoc--next-docstring): Don't
+       bug out on malformed Emacs Lisp (bug#34760).
+       (checkdoc-file-comments-engine): Don't bug out on empty buffers.
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify warning about unknown articles in Gnus
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-mark-article-as-unread)
+       (gnus-mark-article-as-unread): Clarify warning (bug#34990).
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       Don't try to save articles in Gnus that have disappeared
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-save-article): Stop trying
+       to save articles if the articles have disappeared (bug#35188).
+
+2019-07-09  Mattias Engdegård  <address@hidden>
+
+       Rename font_driver member close -> close_font
+
+       * src/alloc.c (cleanup_vector):
+       * src/xftfont.c (xftfont_driver):
+       * src/xfont.c (xfont_driver):
+       * src/nsfont.m (nsfont_driver):
+       * src/macfont.m (macfont_driver):
+       * src/ftxfont.c (ftxfont_driver):
+       * src/ftfont.c (ftfont_driver):
+       * src/ftcrfont.c (ftcrfont_driver):
+       * src/font.h (struct font_driver):
+       * src/font.c (font_clear_cache, font_close_object):
+       Rename `close' member to `close_font', to avoid clash with preprocessor
+       define of `close' in nt/inc/ms-w32.h and for consistency with 
`open_font'.
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       Mention `call-process-region' in the `call-process' doc string
+
+       * src/callproc.c (Fcall_process): Mention `call-process-region'
+       (bug#35187).
+
+2019-07-09  Mattias Engdegård  <address@hidden>
+
+       Rename font_driver member open -> open_font
+
+       * src/xftfont.c (xftfont_driver):
+       * src/xfont.c (xfont_driver):
+       * src/nsfont.m (nsfont_driver):
+       * src/macfont.m (macfont_driver):
+       * src/ftxfont.c (ftxfont_driver):
+       * src/ftfont.c (ftfont_driver):
+       * src/ftcrfont.c (ftcrfont_driver):
+       * src/font.h (struct font_driver):
+       * src/font.c (font_open_entity):
+       Rename `open' member to `open_font', to avoid clash with preprocessor
+       define of `open' in lib/fcntl.h and nt/inc/ms-w32.h.  Remove earlier
+       #undef hack.
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       Add a really simple nadvice example
+
+       * doc/lispref/functions.texi (Advising Functions): Add a really
+       trivial and simple example (bug#35250).
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       Make two variables for extended command suggestions mention each other
+
+       * lisp/simple.el (suggest-key-bindings):
+       (extended-command-suggest-shorter): Mention each other, because
+       they are vaguely related (bug#35309).
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       Make the manual say what undo-auto-amalgamate does
+
+       * doc/lispref/text.texi (Undo): Say what undo-auto-amalgamate does
+       in addition to describing what amalgamation is (bug#35344).
+
+2019-07-09  Eli Zaretskii  <address@hidden>
+
+       Unbreak the MS-Windows build
+
+       * src/font.c (open): Don't undef on WINDOWSNT, as ms-w32.h
+       redirects it to sys_open.
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       .har files are JSON files
+
+       * lisp/files.el (auto-mode-alist): Map .har files to
+       javascript-mode (bug#35407).
+
+2019-07-09  Ryan Brown  <address@hidden>
+
+       Fix for lisp tagbody indentation
+
+       * lisp/emacs-lisp/cl-indent.el (lisp-indent-259): Indent PROG
+       better (bug#36552).
+
+2019-07-09  Lars Ingebrigtsen  <address@hidden>
+
+       Add more quote-end characters to sentence-end-base
+
+       * lisp/textmodes/paragraphs.el (sentence-end-base): Add › and »
+       (bug#36359).
+
+2019-07-09  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/verilog-mode.el: Update Version:
+
+       Merge branch 'emacs-26' into trunk
+
+2019-07-09  Mattias Engdegård  <address@hidden>
+
+       Repair macOS build
+
+       Avoid macro redefinition of `open' in lib/fcntl.h to break use of it as
+       a struct member in src/font.c.
+
+       * src/font.c: #undef open
+
+2019-07-09  Glenn Morris  <address@hidden>
+
+       Conditionalize result of a bytecomp test
+
+       * test/lisp/emacs-lisp/bytecomp-tests.el
+       (bytecomp-test--switch-duplicates):
+       Apparently the result depends on byte-compile-cond-use-jump-table.
+
+2019-07-08  Lars Ingebrigtsen  <address@hidden>
+
+       Make delimit-columns-region say what it does
+
+       * lisp/delim-col.el (delimit-columns-region): Make the doc string
+       say a bit more about what it does (bug#35651).
+       (delimit-columns-rectangle): Refer to the first function.
+
+2019-07-08  Katsumi Yamaoka  <address@hidden>
+
+       Allow using @@ in @uref in texinfo
+
+       * lisp/textmodes/texinfmt.el (texinfo-format-uref): Allow using @@
+       in @uref (bug#36186) to allow things like
+       @uref{mailto:foo@@example.com}.
+
+2019-07-08  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak compilation face in the wheatgrass theme
+
+       * etc/themes/wheatgrass-theme.el: The compilation info was too
+       light to be readable (bug#36203).
+
+2019-07-08  Lars Ingebrigtsen  <address@hidden>
+
+       Don't set url-mime-charset-string from set-language-environment
+
+       * lisp/url/url-vars.el (url-set-mime-charset-string): Make
+       obsolete and don't add to set-language-environment-hook
+       (bug#36268).  If you loaded url-vars before calling
+       set-language-environment, you would suddenly get an unusable long
+       url-mime-charset-string.
+
+2019-07-08  Lars Ingebrigtsen  <address@hidden>
+
+       Remove compat code in url-mime-charset-string
+
+       * lisp/url/url-vars.el (url-mime-charset-string): Remove compat code.
+
+2019-07-08  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak messaging in re-builder
+
+       * lisp/emacs-lisp/re-builder.el (reb-copy): Say what we copied to
+       the kill ring.
+
+2019-07-08  Lars Ingebrigtsen  <address@hidden>
+
+       Mention {la,}tex-run-command in the TeX Print info node
+
+       * doc/emacs/text.texi (TeX Print): Mention {la,}tex-run-command,
+       too.  Suggested by Sebastian Urban (bug#36400).
+
+2019-07-08  Paul Eggert  <address@hidden>
+
+       Avoid some unnecessary stdio.h includes
+
+       * src/atimer.c, src/callproc.c, src/coding.c, src/dired.c, src/eval.c:
+       * src/fringe.c, src/ftcrfont.c, src/ftfont.c, src/ftxfont.c:
+       * src/gfilenotify.c, src/indent.c, src/kqueue.c, src/menu.c:
+       * src/scroll.c, src/terminal.c, src/unexcoff.c, src/window.c:
+       * src/xfont.c, src/xftfont.c:
+       Do not include stdio.h since it is unused.
+
+2019-07-08  Paul Eggert  <address@hidden>
+
+       Use fewer locks when accessing stdio
+
+       * src/alloc.c, src/bidi.c, src/emacs-module.c, src/pdumper.c:
+       * src/regex-emacs.c, src/unexhp9k800.c, src/unexmacosx.c:
+       * src/widget.c, src/xdisp.c, src/xselect.c, src/xterm.c:
+       Include sysstdio.h instead of stdio.h, to avoid locking
+       stdio streams in many cases.
+       * src/alloc.c (test_setjmp):
+       * src/bidi.c (bidi_dump_cached_states):
+       * src/cm.c (calccost):
+       * src/dispnew.c (init_display_interactive):
+       * src/emacs.c (main):
+       * src/image.c (convert_mono_to_color_image):
+       * src/minibuf.c (read_minibuf_noninteractive):
+       * src/nsfont.m (ns_descriptor_to_entity)
+       (ns_dump_glyphstring):
+       * src/nsterm.h (NSTRACE_MSG_NO_DASHES):
+       * src/nsterm.m (ns_mouse_position)
+       (sendEvent:, keyDown:, performDragOperation:):
+       * src/pdumper.c (dump_fingerprint, print_paths_to_root_1):
+       * src/print.c (debug_print):
+       * src/regex-emacs.c (debug_putchar, print_fastmap)
+       (print_partial_compiled_pattern, print_compiled_pattern)
+       (print_double_string, regex_compile):
+       * src/term.c (vfatal):
+       * src/unexhp9k800.c (read_header):
+       * src/unexmacosx.c (unexec_error):
+       * src/widget.c (EmacsFrameInitialize):
+       * src/xdisp.c (message_to_stderr, vmessage, dump_glyph_row)
+       (Fdump_glyph_matrix, Fdump_frame_glyph_matrix, dump_glyph_string):
+       * src/xfaces.c (Fdump_colors, Fdump_face):
+       * src/xselect.c (x_clipboard_manager_error_2):
+       * src/xterm.c (x_initialize):
+       * src/xwidget.c (WEBKIT_FN_INIT):
+       Prefer unlocked calls like fputs to locked calls like fprintf.
+       * src/charset.c (read_hex):
+       * 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/emacs-module.c (module_abort):
+       * src/fileio.c (Fdo_auto_save):
+       * 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_stdio, read1):
+       * src/minibuf.c (read_minibuf_noninteractive):
+       * src/print.c (printchar_to_stream, strout)
+       (Fredirect_debugging_output):
+       * src/sysdep.c (reset_sys_modes, close_output_streams)
+       (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):
+       Simplify by using ordinary calls like putc to explicitly-unlocked
+       calls like putc_unlocked, since the ordinary calls are now
+       unlocked anyway.
+       * src/emacs.c (main, Fdump_emacs):
+       * src/pdumper.c (Fdump_emacs_portable):
+       Coalesce adjacent printfs.
+       * src/nsterm.h: Include sysstdio.h as this file’s macros rely on it.
+       * src/regex-emacs.c (print_compiled_pattern):
+       Omit redundant fflush.
+       * src/sysstdio.h: Include unlocked-io.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_unlocked): Remove these macros; now done by unlocked-io.h.
+       * src/xwidget.c: Include sysstdio.h.
+
+2019-07-08  Basil L. Contovounesios  <address@hidden>
+
+       Tidy up sieve.el text formatting
+
+       * lisp/net/sieve.el (sieve-edit-script, sieve-upload): Do not pass
+       arbitrary string as first argument to 'message' (bug#25764).
+       (sieve-help): Split long string across multiple lines.
+       (sieve-refresh-scriptlist): Use ngettext.  Fix grammar.
+
+2019-07-08  Stefan Kangas  <address@hidden>
+
+       Delegate to rectangle version in delim-col when appropriate
+
+       * lisp/delim-col.el (delimit-columns-region): Delegate to
+       `delimit-columns-rectangle' when called with a rectangular
+       region (bug#36453).
+
+2019-07-08  Ismail S  <address@hidden>  (tiny change)
+
+       Fix minor typo in org-capture-templates
+
+       * lisp/org/org-capture.el (org-capture-templates): Fix typo in doc
+       string (bug#36491).
+
+2019-07-08  Ken Brown  <address@hidden>
+
+       Ensure that expand-file-name returns an absolute file name
+
+       * src/fileio.c (Fexpand_file_name): Don't directly use the current
+       buffer's default-directory if it is relative.  Instead replace it
+       by its expansion relative to invocation-directory.  (Bug#36502)
+       * test/src/fileio-tests.el
+       (fileio-tests--relative-default-directory): New test.
+
+2019-07-08  Noam Postavsky  <address@hidden>
+
+       Turn off bytecode jumptables to avoid Bug#36447
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-cond-use-jump-table): Set
+       to nil.  We can turn this back on again when Bug#36447 is solved and
+       we handle dumped hash tables correctly.
+
+2019-07-08  Lars Ingebrigtsen  <address@hidden>
+
+       Remove mention of :group in define-minor-mode info
+
+       * doc/lispref/modes.texi (Defining Minor Modes): The :group stuff
+       in the example and documentation isn't correct since this is not a
+       global mode and `hunger-mode' therefore isn't customizable
+       (bug#36501).
+
+2019-07-08  Eric Abrahamsen  <address@hidden>
+
+       Improvements to sieve script usability
+
+       * lisp/net/sieve-mode.el (sieve-mode-menu): Add
+         `sieve-upload-and-kill' to the mode menu.
+
+       * lisp/net/sieve.el (sieve-manage-mode-menu): Add `sieve-manage-quit'
+         to the mode menu.
+         (sieve-help): Mention quitting in mode help.
+         (sieve-manage-mode): Directly derive from special-mode.
+         (sieve-edit-script): Start off with unmodified buffer.
+         (sieve-upload): Set buffer unmodified after successful upload.
+
+       Changes are aimed at 1) increasing discoverability of commands and 2)
+       using buffer modification to help users understand what's happening.
+
+2019-07-08  Eric Abrahamsen  <address@hidden>
+
+       Make sure gnus-group-set-info sets both the hashtable and alist
+
+       * lisp/gnus/gnus-group.el (gnus-group-set-info): Apparently this
+         method of updating the group info will only apply to the
+         gnus-newsrc-hashtb, not gnus-newsrc-alist. Do the alist explicitly.
+
+2019-07-08  Michael Albinus  <address@hidden>
+
+       * doc/misc/tramp.texi (Remote processes): Fix a typo.
+
+2019-07-08  Alan Mackenzie  <address@hidden>
+
+       Fix coding error in c-forward-decl-or-cast-1.  This fixes bug #36492.
+
+       * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): While testing 
for,
+       e.g., foo(), check we've found the ( before trying to go to its 
position.
+
+2019-07-08  Michael Albinus  <address@hidden>
+
+       Allow chown/chgrp for remote directories on w32
+
+       * lisp/dired-aux.el (dired-do-chgrp, dired-do-chown):
+       Allow them for remote directories, even when run on w32.  See
+       
<https://emacs.stackexchange.com/questions/51477/chown-with-dired-over-tramp-from-windows-machine>.
+
+2019-07-08  Alan Mackenzie  <address@hidden>
+
+       Fix bug #36474, such that CC Mode quotes work properly in 
electric-pair-mode
+
+       Also finishes the fix for bug #36423.
+
+       * lisp/progmodes/cc-mode.el (c-initialize-cc-mode): Add an 
`eval-after-load'
+       to set electric-pair-inhibit-predicate for existing CC Mode buffers when
+       elec-pair.elc gets loaded.
+       (c-basic-common-init): Set electric-pair-inhibit-predicate when a CC 
Mode mode
+       gets initialized.
+       (c-electric-pair-inhibit-predicate): New function.
+
+2019-07-07  Paul Eggert  <address@hidden>
+
+       * src/xselect.c: Fix comment.
+
+       * src/dispnew.c (init_display_interactive): Fix comment to match code.
+
+2019-07-07  Juri Linkov  <address@hidden>
+
+       * lisp/vc/vc-dir.el (vc-dir-view-file): New command for consistency 
with dired
+
+       * lisp/vc/vc-git.el (vc-git-log-incoming, vc-git-log-outgoing):
+       Remove interactive spec from non-command functions.  (Bug#12492)
+
+2019-07-07  Juri Linkov  <address@hidden>
+
+       Handle scroll-error-top-bottom in follow.el and view.el (bug#21893)
+
+       * lisp/follow.el (follow-scroll-up-arg, follow-scroll-up-window):
+       Use scroll-up-command instead of scroll-up.
+       (follow-scroll-down-arg, follow-scroll-down-window):
+       Use scroll-down-command instead of scroll-down.
+       (follow-scroll-up, follow-scroll-down): Handle scroll-error-top-bottom.
+
+       * lisp/view.el (view-scroll-lines): Use scroll-down-command
+       instead of scroll-down and scroll-up-command instead of scroll-up.
+       (view-really-at-end): Handle scroll-error-top-bottom.
+
+2019-07-07  Juri Linkov  <address@hidden>
+
+       * lisp/replace.el (perform-replace): Move save-match-data here
+
+       from replace-highlight for isearch-lazy-highlight-new-loop (bug#36328).
+
+2019-07-07  Glenn Morris  <address@hidden>
+
+       Avoid makeinfo error "@code expected braces"
+
+       * doc/lispref/searching.texi (Rx Constructs): Fix for makeinfo 4.13.
+
+2019-07-07  Paul Eggert  <address@hidden>
+
+       Fix typo in previous patch
+
+       * src/editfns.c (styled_format): Fix stray ‘pMd’.
+
+2019-07-07  Paul Eggert  <address@hidden>
+
+       Remove printmax_t etc.
+
+       printmax_t etc. were needed only for platforms that lacked
+       support for printing intmax_t.  These platforms are now so
+       obsolete that they are no longer practical porting targets.
+       * src/image.c (gs_load): Fix unlikely buffer overrun
+       discovered while making these changes.  It was introduced in
+       2011-07-17T00:34:43!address@hidden.
+       * src/lisp.h (printmax_t, uprintmax_t, pMd, pMu, pMx):
+       Remove.  All uses replaced by their standard counterparts
+       intmax_t, uintmax_t, PRIdMAX, PRIuMAX, PRIxMAX.
+
+2019-07-07  Nick Drozd  <address@hidden>
+
+       Handle 'abbr' and 'acronym' tags in shr.el
+
+       * lisp/net/shr.el (shr-tag-abbr, shr-tag-acronym): New functions
+       handling 'abbr' and 'acronym' tags, respectively.
+       * etc/NEWS: Announce change in shr behavior (bug#36475).
+
+2019-07-07  Mattias Engdegård  <address@hidden>
+
+       Shorter `rx' doc string (bug#36496)
+
+       * lisp/emacs-lisp/rx.el (rx): Replace long description with a condensed
+       summary of the rx syntax, with reference to the manual section.
+
+2019-07-07  Mattias Engdegård  <address@hidden>
+
+       Describe the rx notation in the elisp manual (bug#36496)
+
+       The additions are excluded from the print version to avoid making it
+       thicker.
+
+       * doc/lispref/elisp.texi (Top): New menu entry.
+       * doc/lispref/searching.texi (Regular Expressions): New menu entry.
+       (Regexp Example): Add rx form of the example.
+       (Rx Notation, Rx Constructs, Rx Functions): New nodes.
+       * doc/lispref/control.texi (pcase Macro): Describe the rx pattern.
+
+2019-07-06  Paul Eggert  <address@hidden>
+
+       Don’t ignore stderr failure when ADDRESS_SANITIZER
+
+       * src/emacs.c (close_output_streams): Move from here ...
+       * src/sysdep.c: ... to here, where it really belongs anyway.
+       When ADDRESS_SANITIZER, fflush stderr and check for ferror,
+       to catch stderr output errors even in this case.
+
+2019-07-06  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/nadvice.el: Make it a package separate from `emacs`.
+
+       * lisp/finder.el (finder-compile-keywords): Grab version from
+       package--builtin-versions when available.
+
+2019-07-06  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       1e6d8e0 (origin/emacs-26) ; * doc/emacs/killing.texi (Secondary Selec...
+       e2344a7 * lisp/svg.el, lisp/progmodes/ada-mode.el: Fix bug#36360.
+       ff738ab Minor copyedit of "Font Lock" in user manual
+       faf99dc Improve description of image descriptors
+       21351cc ; * src/lread.c (Fread): Make the comment wording more accurate.
+       d176090 Improve documentation of secondary selections
+       8910fe1 * src/fns.c (Fmapconcat): Doc fix.  (Bug#36418)
+
+       # Conflicts:
+       #       lisp/svg.el
+
+2019-07-06  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       e97c043 Fix python.el docstring (Bug#36458)
+       e660801 ; Add thing-at-point-looking-at test (Bug#35708)
+       f5b4846 ; Fix typo, insure -> ensure in ChangeLogs
+       cb8fb59 * lisp/hi-lock.el (hi-lock-line-face-buffer): Doc fix.  (Bug3...
+
+2019-07-06  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       316f5a3 Fix typo in doc string of file-exists-p (bug#36408)
+       bfc7c6e * test/lisp/url/url-file-tests.el (url-file): Fix for POSIX f...
+       13b95e1 Fix typo in windows.texi
+       8b775c3 Clarify & update (elisp) Writing Emacs Primitives
+       7648c12 Clarify a subtle issue in the Internals chapter of lispref
+
+2019-07-06  Xu Chunyang  <address@hidden>
+
+       * lisp/dom.el (dom-texts): Simplify (Bug#36441).
+
+2019-07-06  Noam Postavsky  <address@hidden>
+
+       Use buffer's name for help-mode bookmarks (Bug#24573)
+
+       * lisp/help-mode.el (help-bookmark-make-record): Replace buffer
+       objects with their names in help-args, otherwise the bookmark won't be
+       readable from the bookmark save file.
+
+2019-07-06  Noam Postavsky  <address@hidden>
+
+       Add commentary about #$ in autoload files
+
+       * lisp/emacs-lisp/autoload.el (autoload-rubric): Add commentary about
+       `#$' trick.
+
+2019-07-06  Wilson Snyder  <address@hidden>
+
+       Fix indentation of default clocking definitions.
+
+       * lisp/progmodes/verilog-mode.el (verilog-default-clocking-re): Fix 
indentation of default
+       clocking definitions, Verilog-Mode bug1457. Reported by Paul Donahue.
+
+2019-07-06  Wilson Snyder  <address@hidden>
+
+       Backout replacing manually crafted hex regexes with [:xdigit:].
+
+       * lisp/progmodes/verilog-mode.el (verilog-delay-re):
+       (verilog-type-font-keywords, verilog-read-always-signals-recurse):
+       (verilog-is-number): Backout replacing manually crafted hex regexes with
+       [:xdigit:] (Bug#36167).  This repairs Verilog-mode regressions;
+       Verilog-mode maintains back-compatibility with Emacsen before this 
syntax
+       was supported.
+
+2019-07-06  Pip Cet  <address@hidden>
+
+       Update current buffer when changing text properties
+
+       * src/textprop.c (add_text_properties_1, set_text_properties)
+       (set_text_properties_1, Fremove_text_properties): Switch buffer if
+       necessary.  (Bug#36190)
+
+       * doc/lispref/text.texi (Examining Properties): Document performance
+       FIXME.
+
+2019-07-06  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-07-06 thread, lock, cond, tls: Remove support for Pth threads
+       2019-07-02 verify: document ‘assume’ better
+       2019-06-30 Include <stdlib.h> when needed
+       2019-06-30 inet_ntop, inet_pton: Avoid conflict with native Windows
+       * build-aux/config.sub, lib/faccessat.c, lib/fcntl.c, lib/fstatat.c:
+       * lib/readlinkat.c, lib/verify.h, m4/pthread_sigmask.m4:
+       * m4/sys_socket_h.m4: Copy from Gnulib.
+       * lib/gnulib.mk.in: Regenerate.
+
+2019-07-06  Paul Eggert  <address@hidden>
+
+       Fix [[:xdigit:]] glitch on Solaris
+
+       * admin/charsets/mapconv: Revert this [[:xdigit:]] change.
+       Solaris 10 ‘sed’ does not support [[:xdigit:]].
+
+2019-07-06  Drew Adams  <address@hidden>
+
+       Tweak point movement in view-echo-area-messages
+
+       * lisp/help.el (view-echo-area-messages): Move the point to the
+       end of the *Messages* buffer even if it's already displayed
+       (bug#36343).
+
+2019-07-06  Stefan Kangas  <address@hidden>
+
+       Remove outdated comment in uniquify.el
+
+       * lisp/uniquify.el: Remove outdated comment regarding some ancient
+       version of uniquify.el (bug#36384).
+
+2019-07-06  Stefan Kangas  <address@hidden>
+
+       Improve an error message in bookmark.el
+
+       * lisp/bookmark.el (bookmark-alist-from-buffer): Improve error
+       message (bug#36391).
+
+2019-07-06  Basil L. Contovounesios  <address@hidden>
+
+       Improve Gnus ephemeral bug group browsing
+
+       * doc/misc/gnus.texi (Foreign Groups): Update description of
+       gnus-read-ephemeral-emacs-bug-group for multiple bug
+       IDs (bug#11961).
+
+       * lisp/gnus/gnus-group.el (gnus-bug-group-download-format-alist):
+       Use HTTPS for Debian's bug tracker.
+       (gnus-group--read-bug-ids): New function for reading multiple bug
+       IDs in the minibuffer.  Improves on previous brittle approach of
+       word-at-point -> read-string -> string-to-number by a) defaulting to
+       the more accurate bug-reference-bug-regexp or number-at-point
+       without using the intrusive INITIAL-INPUT argument, and b) not
+       attempting to parse bug IDs.
+       (gnus-read-ephemeral-bug-group): Use it.  Extend docstring and
+       commentary.  Fix handling of multiple bug IDs as either numbers or
+       strings.  Hoist some string consing out of inner loop.  Delete
+       temporary file even on error.  Throw more informative error when
+       url-insert-file-contents successfully returns an error (bug#36433).
+       (gnus-read-ephemeral-debian-bug-group): Use gnus-group--read-bug-ids
+       and fix docstring for multiple bug IDs.  Accept optional WINDOW-CONF
+       like other ephemeral bug group commands.
+       (gnus-read-ephemeral-emacs-bug-group): Use gnus-group--read-bug-ids
+       and fix string/numeric ID conversions.  Try loading debbugs-gnu
+       before testing for debbugs-gnu-summary-mode (bug#36433).
+
+2019-07-06  Stefan Kangas  <address@hidden>
+
+       Add tests for text-property-search to check prop-match-value
+
+       * test/lisp/emacs-lisp/text-property-search-tests.el
+       (with-match-test): New macro.
+       (text-property-search-forward-prop-match-match-face-nil-nil)
+       (text-property-search-forward-prop-match-match-face-bold-t)
+       (text-property-search-forward-prop-match-match-face-bold-nil)
+       (text-property-search-backward-prop-match-match-face-nil-nil)
+       (text-property-search-backward-prop-match-match-face-italic-t)
+       (text-property-search-backward-prop-match-match-face-italic-nil):
+       Add test cases to also verify the value of prop-match-value
+       (bug#36486).
+
+2019-07-06  Eli Zaretskii  <address@hidden>
+
+       Improve the default value of 'doc-view-ghostscript-program'
+
+       * lisp/doc-view.el (doc-view-ghostscript-program): Make the
+       default value dependent on the underlying OS.  (Bug#36357)
+
+2019-07-06  Stefan Kangas  <address@hidden>
+
+       Make "M-x pdb" use "[:graph:]" to match file names
+
+       * lisp/progmodes/gud.el (gud-pdb-marker-regexp): Use "[:graph:]" to
+       match file name in prompt.  (Bug#34489)
+
+2019-07-06  Stefan Kangas  <address@hidden>
+
+       * lisp/net/goto-addr.el: Remove leftover XEmacs compat code.  
(Bug#36512)
+
+       * lisp/bookmark.el (bookmark-set-internal): Doc fix. (Bug#25032)
+
+2019-07-06  Stefan Kangas  <address@hidden>
+
+       * lisp/bookmark.el (bookmark-quit-flag): Mark unused variable obsolete.
+
+       (Bug#36460)
+
+2019-07-06  Stefan Kangas  <address@hidden>
+
+       Prefer progress-reporter to 'message' in bookmark.el
+
+       * lisp/bookmark.el (bookmark-upgrade-file-format-from-0)
+       (bookmark-bmenu-execute-deletions): Use progress-reporter.
+       (Bug#36462)
+
+2019-07-06  Konstantin Kharlamov  <address@hidden>
+
+       Replace manually crafted hex regexes with [:xdigit:]
+
+       * admin/charsets/mapconv:
+       * build-aux/gitlog-to-changelog (parse_amend_file, git_dir_option):
+       * lisp/progmodes/verilog-mode.el (verilog-delay-re):
+       (verilog-type-font-keywords, verilog-read-always-signals-recurse):
+       (verilog-is-number):
+       * lisp/progmodes/vera-mode.el (vera-font-lock-keywords):
+       * test/src/emacs-module-tests.el (mod-test-sum-test):
+       * lisp/xml.el: (xml--entity-replacement-text):
+       * lisp/version.el (emacs-repository-version-git):
+       * lisp/textmodes/sgml-mode.el (sgml-quote):
+       * lisp/textmodes/css-mode.el (css-escapes-re)
+       (css--colors-regexp):
+       * lisp/progmodes/prolog.el (prolog-syntax-propertize-function):
+       * lisp/progmodes/hideif.el (hif-token-regexp, hif-tokenize):
+       * lisp/progmodes/ebnf-dtd.el: (ebnf-dtd-attlistdecl)
+       (ebnf-dtd-entitydecl, ebnf-dtd-lex):
+       * lisp/progmodes/ebnf-ebx.el (ebnf-ebx-hex-character):
+       * lisp/progmodes/ebnf-abn.el (ebnf-abn-character):
+       * lisp/progmodes/cperl-mode.el (cperl-highlight-charclass)
+       (cperl-find-pods-heres):
+       * lisp/progmodes/cc-mode.el (c-maybe-quoted-number-head)
+       (c-maybe-quoted-number, c-parse-quotes-before-change)
+       (c-parse-quotes-after-change, c-quoted-number-head-before-point)
+       (c-quoted-number-straddling-point):
+       * lisp/progmodes/ada-mode.el (featurep, ada-in-numeric-literal-p)
+       (ada-font-lock-keywords):
+       * lisp/org/org-mobile.el (org-mobile-copy-agenda-files)
+       * lisp/org/org-table.el (org-table-number-regexp):
+       (org-mobile-update-checksum-for-capture-file):
+       * lisp/nxml/xsd-regexp.el (xsdre-gen-categories):
+       * lisp/nxml/xmltok.el (let*):
+       * lisp/nxml/rng-xsd.el (rng-xsd-convert-hex-binary)
+       (rng-xsd-convert-any-uri):
+       * lisp/nxml/rng-uri.el (rng-uri-file-name-1)
+       (rng-uri-unescape-multibyte, rng-uri-unescape-unibyte)
+       (rng-uri-unescape-unibyte-match)
+       (rng-uri-unescape-unibyte-replace):
+       * lisp/nxml/rng-cmpct.el (rng-c-process-escapes):
+       * lisp/nxml/nxml-maint.el (nxml-insert-target-repertoire-glyph-set):
+       * lisp/net/shr-color.el (shr-color->hexadecimal):
+       * lisp/mail/rfc2231.el (rfc2231-decode-encoded-string):
+       * lisp/international/mule-cmds.el (read-char-by-name):
+       * lisp/htmlfontify.el (hfy-hex-regex):
+       * lisp/gnus/nneething.el (nneething-decode-file-name):
+       * lisp/gnus/mml-sec.el (mml-secure-find-usable-keys):
+       * lisp/gnus/gnus-art.el (gnus-button-mid-or-mail-heuristic-alist):
+       * lisp/faces.el (read-color):
+       * lisp/epg.el (epg--status-ERRSIG, epg--status-VALIDSIG)
+       (epg--status-SIG_CREATED, epg--decode-percent-escape)
+       (epg--decode-hexstring, epg--decode-quotedstring)
+       (epg-dn-from-string):
+       * lisp/emulation/cua-rect.el (cua-incr-rectangle):
+       * lisp/dnd.el (dnd-unescape-uri):
+       * lisp/cedet/semantic/lex.el (semantic-lex-number-expression):
+       * lisp/cedet/semantic/java.el (semantic-java-number-regexp):
+       * lisp/calc/calc-lang.el (pascal):
+       * lisp/calc/calc-ext.el (math-read-number-fancy):
+       * lisp/calc/calc-aent.el (math-read-token):
+       Replace various combinations of [0-9a-fA-F] with [[:xdigit:]].
+       (Bug#36167)
+
+2019-07-05  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Add HarfBuzz fallbacks for libotf functions used in ftfont_list
+
+       * src/ftfont.c [!HAVE_LIBOTF && HAVE_HARFBUZZ]: Include hb-ot.h.
+       (OTF, OTF_tag) [!HAVE_LIBOTF && HAVE_HARFBUZZ]: New typedefs.
+       (hbotf_open, hbotf_check_features) [!HAVE_LIBOTF && HAVE_HARFBUZZ]: New
+       functions.
+       (OTF_open, OTF_close, OTF_check_features) [!HAVE_LIBOTF && 
HAVE_HARFBUZZ]:
+       New macros.
+       (ftfont_list) [!HAVE_LIBOTF && HAVE_HARFBUZZ]: Use them.
+
+2019-07-05  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Avoid crash inside CFCharacterSetIsLongCharacterMember
+
+       * src/macfont.m (macfont_supports_charset_and_languages_p)
+       (macfont_has_char): Don't pass integers outside the Unicode codespace to
+       CFCharacterSetIsLongCharacterMember.
+
+2019-07-05  Juri Linkov  <address@hidden>
+
+       * lisp/replace.el (replace-highlight): Add save-match-data (bug#36328)
+
+       * lisp/term/tty-colors.el (tty-color-canonicalize):
+       Replace string-match with string-match-p.
+
+       Thanks to Jayden Navarro <address@hidden> and Alan Mackenzie 
<address@hidden>
+
+2019-07-04  Juri Linkov  <address@hidden>
+
+       * lisp/minibuffer.el (minibuffer-message-properties): New variable.
+
+       (minibuffer-message): Use it to propertize message unless already
+       propertized by the caller.
+
+       * lisp/simple.el (minibuffer-error-function): Propertize the error.
+
+       * lisp/isearch.el (isearch-message-properties): New variable.
+       (isearch--momentary-message, isearch-message-prefix)
+       (isearch-message-suffix): Use it.  (Bug#21112)
+
+2019-07-04  Juri Linkov  <address@hidden>
+
+       * lisp/char-fold.el (char-fold-to-regexp): Implement arg LAX 
(bug#36398).
+
+       * test/lisp/char-fold-tests.el (char-fold--test-multi-lax): New test.
+
+2019-07-04  Mattias Engdegård  <address@hidden>
+
+       Optimise more inputs to `regexp-opt' (bug#36444)
+
+       Use a more precise test to determine whether the input to `regexp-opt'
+       is safe to optimise when KEEP-ORDER is non-nil, permitting more inputs
+       to be optimised than before.  For example, ("good" "goal" "go") is now
+       accepted.
+
+       * lisp/emacs-lisp/regexp-opt.el (regexp-opt):
+       More precise test for whether the list is safe w.r.t. KEEP-ORDER.
+       (regexp-opt--contains-prefix): Remove.
+
+       * test/lisp/emacs-lisp/regexp-opt-tests.el: Use lexical-binding.
+       (regexp-opt-test--permutation, regexp-opt-test--factorial)
+       (regexp-opt-test--permutations, regexp-opt-test--match-all)
+       (regexp-opt-test--check-perm, regexp-opt-test--explain-perm)
+       (regexp-opt-keep-order): Test KEEP-ORDER.
+
+2019-07-04  Stefan Monnier  <address@hidden>
+
+       * src/coding.c (decode_coding): Improve doc.
+
+2019-07-04  Lars Ingebrigtsen  <address@hidden>
+
+       In Message, respect Content-Type provided by the user
+
+       * lisp/gnus/mml.el (mml-parse-1): Respect any Content-Type
+       inserted by the user instead of insisting on text/plain.
+
+2019-07-04  Alan Mackenzie  <address@hidden>
+
+       Fix an infinite loop in c-end-of-macro.  Should fix bug #36484
+
+       Also fix two faulty regexps, save-match-data, and check c-major-mode-is
+       'c++-mode where needed.
+
+       * lisp/progmodes/cc-langs.el (c-last-c-comment-end-on-line-re)
+       (c-last-open-c-comment-start-on-line-re): Handle repeated *s in regexp
+       correctly.
+
+       * lisp/progmodes/cc-engine.el (c-beginning-of-macro, c-end-of-macro): 
Protect
+       the match-data with save-match-data around regexp operations.
+       (c-end-of-macro): In the loop handling multiline block comments, check a
+       comment actually is multiline.
+
+       * lisp/progmodes/cc-mode.el (c-depropertize-CPP): Only call
+       c-depropertize-raw-strings-in-region in C++ Mode.
+
+2019-07-03  João Távora  <address@hidden>
+
+       Fix Flymake's user-visible accessors of diagnostic positions
+
+       Diagnostics are supported by overlays, and they can legitimately move
+       around.  So flymake-diagnostic-beg and flymake-diagnostic-end must
+       look up the overlay positions, not the immutable slots of the
+       flymake--diag structure, which become stale.
+
+       * lisp/progmodes/flymake.el (version): Bump to 1.0.8.
+       (flymake-diagnostic-beg, flymake-diagnostic-end): Use diag's
+       overlay.
+       (flymake-show-diagnostic): Use flymake-diagnostic-end,
+       flymake-diagnostic-beg.
+
+2019-07-03  João Távora  <address@hidden>
+
+       Fix Flymake's treatment of region-specific reports
+
+       We're supposed to delete intersecting diagnostics in that situation,
+       but the intersection logic was way off.
+
+       * lisp/progmodes/flymake.el (version): Bump to 1.0.7.
+       (flymake--intersects-p): New helper.
+       (flymake--handle-report): Fix handling of :region.
+
+2019-07-03  Eric Abrahamsen  <address@hidden>
+
+       Small fix to writing Gnus dribble change-level entries
+
+       * lisp/gnus/gnus-start.el (gnus-group-change-level): PREVIOUS needs to
+         still be a string when the dribble entry is written, so don't
+         convert it to an entry until after that's done. Also, we're not
+         meant to write PREVIOUS itself, we're meant to write the group that
+         comes _after_ it in the sort-order of gnus-group-list, so do that
+         instead.
+
+2019-07-03  Stefan Kangas  <address@hidden>
+
+       Add tests for bookmark.el (Bug#36452)
+
+       * test/lisp/bookmark-resources/example.txt:
+       * test/lisp/bookmark-resources/test.bmk:
+       * test/lisp/bookmark-tests.el: New files.
+       * lisp/bookmark.el: Minor cleanups.
+       (bookmark-insert-annotation): Signal error on invalid bookmark.
+       (bookmark-write-file): Add newline at end of file.
+
+2019-07-03  Eli Zaretskii  <address@hidden>
+
+       Fix rotation validity test in image.c
+
+       * src/image.c (compute_image_rotation): Fix the validity test
+       for :rotation values.  This avoids logging error messages when
+       no :rotation was provided in the image spec.
+
+2019-07-03  Eli Zaretskii  <address@hidden>
+
+       Fix compiler warnings due to a recent commit
+
+       * src/xdisp.c (expose_window, expose_frame): Avoid compilation
+       warnings about printing unsigned values with %d.
+
+2019-07-03  Michael Albinus  <address@hidden>
+
+       Change expected result of a flymake test on emba
+
+       * test/lisp/progmodes/flymake-tests.el (different-diagnostic-types):
+       Test is now passing on emba.gnu.org, too.
+
+2019-07-02  Paul Eggert  <address@hidden>
+
+       Replace TRACE with redisplay_trace, etc.
+
+       This simplifies callers and catches trace printf format errors
+       even with typical (non-debugging) compiles.
+       * src/dispextern.h (TRACE) [GLYPH_DEBUG]:
+       Move definitions to xdisp.c if it’s used only there.
+       * src/xdisp.c (redisplay_trace): New function, replacing TRACE macro.
+       (move_trace): New function, replacing TRACE_MOVE macro.
+       All uses changed.
+       (dump_glyph): When tracing, don’t use %d to format ptrdiff_t,
+       or %x to format a pointer.
+       (expose_frame): Redo trace printfs to avoid interleaved output
+       on GNU/Linux.
+
+2019-07-02  Glenn Morris  <address@hidden>
+
+       Change expected result of a flymake test on hydra
+
+       * test/lisp/progmodes/flymake-tests.el (different-diagnostic-types):
+       Test is now passing on hydra.nixos.org, since today.
+
+2019-07-02  Stefan Monnier  <address@hidden>
+
+       * src/json.c (Fjson_insert): Don't temporarily insert invalid bytes in 
buffer
+
+2019-07-02  Stefan Monnier  <address@hidden>
+
+       (Finsert_file_contents): Keep buffer consistent in non-local exit
+
+       * src/fileio.c (decide_coding_unwind): Delete function.
+       (Finsert_file_contents): Don't let invalid multibyte byte sequences
+       escape when we exit non-locally.
+
+       * test/src/fileio-tests.el (fileio-tests--insert-file-interrupt): New 
test.
+
+2019-07-02  Paul Eggert  <address@hidden>
+
+       Fix printf formats when DEBUG_TRACE_MOVE
+
+       Problem caught by gcc -DDEBUG_TRACE_MOVE -Wformat.
+       * src/xdisp.c (move_it_in_display_line_to, move_it_to)
+       (move_it_vertically) [DEBUG_TRACE_MOVE]: Fix printf format typos.
+
+2019-07-02  Stefan Monnier  <address@hidden>
+
+       * src/insdel.c (insert_from_gap_1): New fun, extracted from 
insert_from_gap.
+
+       (insert_from_gap): Use it.
+       * src/lisp.h (insert_from_gap_1): Declare it.
+       * src/json.c (Fjson_insert):
+       * src/fileio.c (Finsert_file_contents): Use it.
+
+2019-07-02  Stefan Monnier  <address@hidden>
+
+       * src/coding.c (decode_coding_gap): Remove `chars` argument.
+
+       * src/json.c (Fjson_insert):
+       * src/fileio.c (Finsert_file_contents):
+       * src/coding.h (decode_coding_gap): Adjust accordingly.
+
+2019-07-02  Stefan Monnier  <address@hidden>
+
+       * test/src/editfns-tests.el (test-group-name): Accept nil group-name.
+
+2019-07-02  Andreas Schwab  <address@hidden>
+
+       Correct customize type for gnus-group-customize
+
+       * lisp/gnus/gnus-cus.el (gnus-extra-group-parameters): Add more
+       group parameters used by nnimap.
+
+2019-07-02  João Távora  <address@hidden>
+
+       Correctly reindent previous line in electric-indent-mode
+
+       (Bug#35254)
+
+       Do this even when electric-indent-inhibit is t, except when the
+       newline insertion is being performed by electric-layout-mode.
+
+       * lisp/electric.el (electric-indent-post-self-insert-function):
+       Reindent previous line unless operating under
+       electric-layout-mode.
+       (electric-layout-post-self-insert-function-1): Bind
+       electric-indent-inhibit to 'electric-layout-mode.
+
+       * test/lisp/electric-tests.el
+       (electric-layout-control-reindentation): New test.
+
+2019-07-02  João Távora  <address@hidden>
+
+       Protect Flymake from being corrupted by backends
+
+       A backend building a diagnostic with a nil :type would cause Flymake
+       to create a diagnostic without an overlay, confusing Flymake's
+       accounting of overlays and diagnostics
+
+       * lisp/progmodes/flymake.el (flymake--highlight-line): Return
+       non-nil unconditionally.
+
+2019-07-02  João Távora  <address@hidden>
+
+       More carefully cleanup Flymake C/C++ backend's temp buffers
+
+       Sometimes the Flymake process dies by some means that doesn't involve
+       a sentinel call for the "exit" status, so we clean up the temporary
+       buffer as soon as we notice it's not process-alive-p anymore.
+
+       * lisp/progmodes/flymake-cc.el (flymake-cc): Broaden cleanup
+       conditions.
+
+2019-07-02  João Távora  <address@hidden>
+
+       Don't create nil-severity diagnostics in the Flymake C/C++ backend
+
+       * lisp/progmodes/flymake-cc.el (flymake-cc--make-diagnostics): Use
+       `:error` as a diagnostic severity.
+
+2019-07-02  João Távora  <address@hidden>
+
+       Revert "Avoid occasional confusion of Flymake C/C++ backend"
+
+       This reverts commit 67c3a3af1d9e2582193d5ea33b6c190e79ad56e6, which
+       creates more problems than it solves.
+
+2019-07-02  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Improve handling of unbalanced strings
+
+       * lisp/progmodes/cc-fonts.el (c-before-font-lock-functions): Add 
function
+       c-after-change-escape-NL-in-string into value for most languages.
+
+       * lisp/progmodes/cc-mode.el (c-after-change-escape-NL-in-string): New
+       function.
+       (c-before-change-check-unbalanced-strings): Handle the making and 
breaking of
+       escaped newlines, by removal or addition of text.
+
+2019-07-02  Mattias Engdegård  <address@hidden>
+
+       Better error message for C-h P RET
+
+       Previously:
+         package--incompatible-p: Wrong type argument: package-desc, nil
+       Now:
+         No package specified
+
+       * lisp/emacs-lisp/package.el (describe-package): Don't use ## as input.
+
+2019-07-02  Paul Eggert  <address@hidden>
+
+       Fix performDragOperation: diagnostic typo
+
+       * src/nsterm.m (performDragOperation:): Fix missing newline.
+
+2019-07-01  Paul Eggert  <address@hidden>
+
+       Fix regex-emacs debug format glitches
+
+       These patches affect behavior only if REGEX_EMACS_DEBUG.
+       * src/regex-emacs.c (debug_putchar): Use unsigned for %x.
+       (print_compiled_pattern, ENSURE_FAIL_STACK, PUSH_FAILURE_POINT)
+       (POP_FAILURE_POINT): Use %td for ptrdiff_t.
+       (print_compiled_pattern, regex_compile, re_match_2_internal):
+       Put newlines at ends of lines, not at starts of next lines.
+       Omit white space at line ends.
+
+2019-07-01  Michael Albinus  <address@hidden>
+
+       Minor changes in tramp.texi
+
+       * doc/misc/tramp.texi (Obtaining Tramp): Mention file INSTALL.
+       (Cleanup remote connections): The session timer is also deleted.
+
+2019-07-01  Eli Zaretskii  <address@hidden>
+
+       More XFIXNUM fixes
+
+       * src/hbfont.c (hbfont_shape): Don't assume LGLYPH_TO is
+       always a fixnum.
+       * src/fontset.c (fontset_find_font): A cleaner test for
+       matching charset_id.
+
+2019-07-01  Eli Zaretskii  <address@hidden>
+
+       Fix assertion violations in fontset_find_font
+
+       * src/fontset.c (fontset_find_font): Don't assume REPERTORY
+       must be a fixnum.
+
+2019-07-01  Eli Zaretskii  <address@hidden>
+
+       Adjust return value of image-transforms-p
+
+       * src/image.c (Fimage_transforms_p):
+       * doc/lispref/display.texi (Image Descriptors):
+       image-transforms-p now returns at most (scale rotate90), even
+       if ImageMagick is available.
+
+2019-07-01  Sam Steingold  <address@hidden>
+
+       Extract gnus-collect-urls from gnus-summary-browse-url
+
+       * lisp/gnus/gnus-sum.el (gnus-collect-urls): Extract from ...
+       (gnus-summary-browse-url): Use it here.
+       Extracting URLs from an article will be useful in BBDB interaction.
+
+2019-07-01  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Implement the otf_capability method for HarfBuzz
+
+       * src/hbfont.c: Include hb-ot.h.
+       [HAVE_NTGUI]: Add DEF_DLL_FN and #define for hb_tag_to_string,
+       hb_font_get_face, hb_ot_layout_table_get_script_tags,
+       hb_ot_layout_table_get_feature_tags, 
hb_ot_layout_script_get_language_tags,
+       and hb_ot_layout_language_get_feature_tags.
+       (hbfont_init_w32_funcs) [HAVE_NTGUI]: Add LOAD_DLL_FN for them.
+       (hbfont_otf_features, hbfont_otf_capability): New functions.
+
+       * src/font.h (hbfont_otf_capability) [HAVE_HARFBUZZ]: Add extern.
+
+       * src/ftcrfont.c (syms_of_ftcrfont_for_pdumper) [HAVE_HARFBUZZ]:
+       * src/ftfont.c (syms_of_ftfont_for_pdumper) [HAVE_HARFBUZZ]:
+       * src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper) [HAVE_HARFBUZZ]:
+       * src/xftfont.c (syms_of_xftfont_for_pdumper) [HAVE_HARFBUZZ]: Populate
+       otf_capability method with hbfont_otf_capability.
+
+2019-06-30  Paul Eggert  <address@hidden>
+
+       Remove divide_double
+
+       * src/image.c (divide_double): Remove.  All uses replaced
+       with inline equivalents.  Suggested by Eli Zaretskii in:
+       https://lists.gnu.org/r/emacs-devel/2019-06/msg01067.html
+
+2019-06-30  Alan Mackenzie  <address@hidden>
+
+       C++ Mode: change the default doc comment style from nothing to gtkdoc
+
+       Also amend a pertinent regular expression.  This fixes bug #11865.
+
+       * lisp/progmodes/cc-vars.el (c-doc-comment-style): Insert an entry for
+       c++-mode, namely gtkdoc.
+
+       * lisp/progmodes/cc-fonts.el (gtkdoc-font-lock-keywords): Amend the 
regexp
+       recognizing the introductory "/**" to allow subsequent characters on 
that
+       line.
+
+2019-06-30  Michael Albinus  <address@hidden>
+
+       Release Tramp 2.4.2
+
+       * lisp/net/tramp.el: Bump version.
+
+       * test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case):
+       Add `add-name-to-file' error message.
+       (tramp--test-ignore-add-name-to-file-error): Make error handler
+       more explicit about the error.
+
+2019-06-30  Andreas Schwab  <address@hidden>
+
+       Doc fix
+
+       * doc/emacs/display.texi (Displaying Boundaries): Document
+       display-fill-column-indicator-character, not
+       display-fill-column-indicator-char.
+
+2019-06-30  Andreas Schwab  <address@hidden>
+
+       Fix use of undefined macro
+
+       * src/xdisp.c (append_space_for_newline): Use FRAME_FONT only
+       inside HAVE_WINDOW_SYSTEM.
+       (extend_face_to_end_of_line): Likewise.
+       (syms_of_xdisp): Doc fix.
+
+2019-06-30  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix negation in elements of OTF feature list
+
+       * src/ftfont.c (ftfont_get_open_type_spec):
+       * src/macfont.m (macfont_get_open_type_spec): Take bitwise or instead 
of and.
+
+2019-06-29  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix error in mouse-set-font on GTK 3 with Harfbuzz (Bug#36288)
+
+       * src/gtkutil.c (xg_get_font) [HAVE_GTK3]: Remove type property from 
font
+       spec.  This effectively undoes the fix for Bug#3228, but gives 
consistent
+       results overall.
+
+2019-06-29  YAMAMOTO Mitsuharu  <address@hidden>
+
+       * src/xfns.c (x_create_tip_frame): Support inhibit-double-buffering.
+
+       * src/xfns.c (Fx_show_tip): Call flush_frame.  (Bug#34819)
+
+2019-06-29  Paul Eggert  <address@hidden>
+
+       Pacify gcc and other image rotation tweaks
+
+       * src/image.c: No need to include <float.h> as lisp.h does that.
+       (matrix3x3_copy): Remove; no longer needed.
+       (divide_double): New function, to avoid undefined behavior
+       when dividing by zero on non-IEEE hosts.
+       (image_set_transform): Simplify transformation computation
+       by avoiding the need to copy a matrix.  Pacify
+       gcc 9 -Wdouble-promotion and -Wmaybe-uninitialized.
+       Avoid unnecessary assignment of width and height.
+       Improve error reporting for unsupported native image rotation.
+
+2019-06-29  Ken Brown  <address@hidden>
+
+       Simplify workaround for Cygwin O_PATH bug
+
+       Suggested by Paul Eggert (Bug#36405#22).
+       * configure.ac (HAVE_CYGWIN_O_PATH_BUG): New AC_DEFINE, for Cygwin
+       versions 3.0.0 through 3.0.7.
+       * src/dired.c (O_PATH) [__CYGWIN__]: Remove #undef.
+       (file_attributes) [HAVE_CYGWIN_O_PATH_BUG]: Don't use O_PATH.
+
+2019-06-29  Eli Zaretskii  <address@hidden>
+
+       Support native image transforms on MS-Windows
+
+       This changeset also rearranges native image transform code
+       for other platforms to make it cleaner, and also removes
+       the support for native cropping.  For the discussions, see
+       https://lists.gnu.org/archive/html/emacs-devel/2019-06/msg00242.html
+
+       * src/w32term.c (w32_image_rotations_p, transform): New functions.
+       (w32_draw_image_foreground): If image rotation is requested
+       and supported, call PlgBlt to transform the image.
+       (w32_initialize): Populate the PlgBlt function pointer if it
+       is supported.
+       * src/w32term.h (w32_image_rotations_p): Add prototype.
+       * src/dispextern.h (struct image) [HAVE_NTGUI]: New member xform.
+       * src/image.c (compute_image_rotation): Renamed from
+       image_set_rotation.  Only compute and returns the rotation
+       angle; leave the matrix calculation for later.  Log an error
+       message if the :rotation parameter is not a number.
+       (image_set_crop): Function deleted.  We no longer support
+       native cropping, as one can display an image slice instead.
+       (image_set_transform): Compute the transform matrix in its
+       entirety here, in two variants: one for XRender and Cairo, the
+       other for NS and MS-Windows.  call compute_image_size and
+       compute_image_rotation internally.
+       (lookup_image) [HAVE_NATIVE_TRANSFORMS]: Call only
+       image_set_transform.  No need to pass the transform matrix to
+       image_set_transform.
+       (Fimage_transforms_p): Return a list of transform capabilities
+       rather than a simple boolean.  Support TTY frames as well.
+       * src/nsimage.m (setTransform:): Don't invert the matrix, as
+       it is already inverted in image.c.
+
+       * test/manual/image-transforms-tests.el (test-cropping): State
+       in the text that only ImageMagick supports cropping.
+
+       * doc/lispref/display.texi (Image Descriptors): Update the
+       documentation of native image transforms.
+       (ImageMagick Images): Move the description of ':crop' here.
+
+       * etc/NEWS: Minor copyedits of the feature announcement.
+
+2019-06-29  Shuguang Sun  <address@hidden>
+
+       Fix recent change in Tramp
+
+       * lisp/net/tramp-adb.el:
+       * lisp/net/tramp-archive.el:
+       * lisp/net/tramp-integration.el: Remove superfluous `progn' in
+       `with-eval-after-load'.
+
+2019-06-29  Lars Ingebrigtsen  <address@hidden>
+
+       Cosmetic fix-up of message-forward-included-headers
+
+       * lisp/gnus/message.el (message-forward-included-headers): Use
+       consistent capitalization in the regexps.
+
+2019-06-29  Eli Zaretskii  <address@hidden>
+
+       Fix display of fringe bitmaps for tooltips in echo area
+
+       * src/xdisp.c (display_line): Force redrawing of fringe
+       bitmaps when redisplaying a minibuffer window with
+       truncate-lines set to a non-nil value.  (Bug#36308)
+
+2019-06-29  Mattias Engdegård  <address@hidden>
+
+       Allow empty argument to `regexp-opt-charset'
+
+       * test/lisp/emacs-lisp/regexp-opt-tests.el (regexp-opt-charset):
+       Handle nil argument, and use regexp-quote for singletons.
+       * lisp/emacs-lisp/regexp-opt.el (regexp-opt-charset): Expand tests.
+
+2019-06-28  Paul Eggert  <address@hidden>
+
+       Revert O_PATH change to fileio.c
+
+       Ken Brown pointed out it wasn’t needed (Bug#36405#16):
+       * src/fileio.c (O_PATH) [__CYGWIN__]: Remove #undef.
+
+2019-06-28  Andreas Schwab  <address@hidden>
+
+       * test/src/json-tests.el (json-serialize/object): Fix spacing.
+
+2019-06-28  Pip Cet  <address@hidden>
+
+       Fix json-serialize/object test failure
+
+       * test/src/json-tests.el (json-serialize/object):
+       Accept failure with different code.
+
+2019-06-28  Mattias Engdegård  <address@hidden>
+
+       Strength-reduce `equal', `eql', `member' and `memql'
+
+       When comparing against symbols, turn `equal' and `eql' into `eq',
+       and `member' and `memql' into `memq'.
+
+       * lisp/emacs-lisp/byte-opt.el (byte-optimize--constant-symbol-p)
+       (byte-optimize-equal, byte-optimize-member): New.
+       (member, memql, equal, eql): Use new byte-optimizers.
+
+2019-06-28  Stefan Kangas  <address@hidden>
+
+       Document bookmark annotations in Emacs Manual (bug#36417)
+
+       * doc/emacs/regs.texi (Bookmarks): Document annotations.
+       * lisp/bookmark.el (bookmark-use-annotations): Clarify docstring.
+
+2019-06-28  Mattias Engdegård  <address@hidden>
+
+       Correct regexp matching of raw bytes
+
+       Make regexp matching of raw bytes work in all combination of unibyte
+       and multibyte patterns and targets, as exact strings and in character
+       alternatives (bug#3687).
+
+       * src/regex-emacs.c (analyze_first):
+       Include raw byte in fastmap when pattern is a multibyte exact string.
+       Include leading byte in fastmap for raw bytes in character alternatives.
+       (re_match_2_internal):
+       Decrement the byte count by the number of bytes in the pattern 
character,
+       not 1.
+       * test/src/regex-emacs-tests.el (regexp-unibyte-unibyte)
+       (regexp-multibyte-unibyte, regexp-unibyte-mutibyte)
+       (regexp-multibyte-multibyte): New tests.
+
+2019-06-28  Michael Albinus  <address@hidden>
+
+       Tramp requires Emacs 24.4
+
+       * doc/misc/tramp.texi (Frequently Asked Questions):
+       Use `with-eval-after-load'. in example.
+
+       * doc/misc/trampver.texi: Set variable emacsver.
+
+       * lisp/net/tramp.el (tramp-send-string, tramp-call-process)
+       (tramp-call-process-region, tramp-process-lines):
+       * lisp/net/tramp-adb.el (tramp-adb-handle-file-truename)
+       (tramp-adb-sh-fix-ls-output, tramp-adb-maybe-open-connection):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-get-directory-attributes)
+       (tramp-gvfs-handle-file-notify-add-watch)
+       * lisp/net/tramp-sh.el (tramp-sh-handle-file-truename)
+       (tramp-do-copy-or-rename-file-out-of-band)
+       (tramp-sh-handle-file-notify-add-watch, tramp-find-executable)
+       (tramp-set-remote-path)
+       (tramp-open-connection-setup-interactive-shell)
+       (tramp-maybe-open-connection, tramp-send-command):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
+       (tramp-smb-handle-file-acl, tramp-smb-handle-process-file)
+       (tramp-smb-handle-set-file-acl)
+       (tramp-smb-handle-start-file-process)
+       (tramp-smb-maybe-open-connection):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-set-file-acl):
+       (tramp-sudoedit-send-command): Use `string-join' and `string-empty-p'.
+
+       * lisp/net/tramp-adb.el:
+       * lisp/net/tramp-archive.el:
+       * lisp/net/tramp-integration.el:
+       * lisp/net/tramp-ftp.el: Use `with-eval-after-load'.
+
+       * lisp/net/tramp-cmds.el (tramp-cleanup-connection)
+       (tramp-cleanup-all-connections): Cancel timer.
+
+       * lisp/net/tramp-compat.el (subr-x): Require.
+       (default-toplevel-value): Don't make it a defalias.
+
+       * lisp/net/tramp-gvfs.el: Use `dbus-event-error-functions'.  Do
+       not special handle `split-string'.
+
+       * lisp/net/tramp.el: Require Emacs 24.4.
+       (tramp-password-prompt-regexp): Use `password-word-equivalents'.
+       (tramp-user-error): Use `user-error'.
+       (tramp-replace-environment-variables): Use `substitute-env-vars'.
+       (tramp-wait-for-regexp): Rearrange `with-current-buffer' call.
+       (tramp-get-local-gid): Use `group-gid'.
+
+       * lisp/net/trampver.el: Check for Emacs 24.4.
+
+       * test/lisp/net/tramp-tests.el (tramp-test02-file-name-dissect)
+       (tramp-test02-file-name-dissect-simplified)
+       (tramp-test02-file-name-dissect-separate)
+       (tramp-test03-file-name-host-rules)
+       (tramp-test03-file-name-method-rules): Don't check for `user-error'.
+
+2019-06-28  Lars Ingebrigtsen  <address@hidden>
+
+       Doc fix for Gnus "very wide" reply commands
+
+       * lisp/gnus/gnus-msg.el (gnus-summary-very-wide-reply-with-original)
+       (gnus-summary-very-wide-reply): Clarify what a "very wide reply" is.
+
+2019-06-28  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Fontify _emphasis_ in info nodes"
+
+       This reverts commit 72963b4e82eef5767e3172f28bd9bd97f487c98a.
+
+       The change incorrectly fontified whole sentences as emphasis.
+
+2019-06-28  Lars Ingebrigtsen  <address@hidden>
+
+       Include To and Cc headers when forwarding with Message
+
+       * lisp/gnus/message.el (message-forward-included-headers): Include
+       more of the important headers when forwarded: To and Cc.
+
+2019-06-28  Michael Albinus  <address@hidden>
+
+       * lisp/gnus/gnus-art.el (gnus-article-stop-animations):
+
+       Use `cancel-function-timers'.
+
+2019-06-28  Mattias Engdegård  <address@hidden>
+
+       More readable regexp debug output
+
+       * src/regex-emacs.c (debug_putchar): New.
+       (print_fastmap, print_partial_compiled_pattern, print_double_string)
+       (regex_compile): Use debug_putchar.
+       (re_match_2_internal): Add newline.
+
+2019-06-28  Mattias Engdegård  <address@hidden>
+
+       Consistently use stderr for debug output in regexp code
+
+       * src/regex-emacs.c (DEBUG_PRINT, print_fastmap, print_compiled_pattern)
+       (print_double_string, regex_compile): Print to stderr instead of stdout.
+
+2019-06-28  Lars Ingebrigtsen  <address@hidden>
+
+       Don't inhibit quit in Gnus when prefetching articles
+
+       * lisp/gnus/gnus-async.el (gnus-async-prefetch-next): Don't
+       inhibit quit when running `gnus-async-prefetch-article'.
+
+2019-06-27  Alex Branham  <address@hidden>
+
+       * lisp/simple.el (undo): Make message less enthusiastic
+
+2019-06-27  Ola Nilsson  <address@hidden>
+
+       Allow underscore in defun-prompt-regex names for sh-script
+
+       * lisp/progmodes/sh-script.el (defun-prompt-regexp):
+       Allow underscore in function names.
+
+2019-06-27  Paul Eggert  <address@hidden>
+
+       Improve ‘equal’ and array doc
+
+       * doc/lispref/objects.texi (Array Type): Array sizes are
+       nonnegative fixnums, not arbitrary integers.
+       (Equality Predicates): Do not say that ‘eq’ equals ‘=’ on bignums.
+       Do not imply that ‘equal’ must signal an error on circular lists.
+
+2019-06-27  Paul Eggert  <address@hidden>
+
+       * src/xfaces.c (resolve_face_name): Simplify.
+
+2019-06-27  Pip Cet  <address@hidden>
+
+       Remove unnecessary tortoise checks.
+
+       * src/fns.c (Fplist_get, Fplist_put, Flax_plist_get)
+       (Flax_plist_put, Fplist_member): Remove unnecessary check.
+       * src/json.c (lisp_to_json_toplevel_1): Remove unnecessary check.
+
+2019-06-27  Paul Eggert  <address@hidden>
+
+       Work around Cygwin bug with O_PATH
+
+       Problem reported by Ken Brown (Bug#36405).
+       * src/dired.c, src/fileio.c (O_PATH) [__CYGWIN__]: Undef.
+
+2019-06-27  Paul Eggert  <address@hidden>
+
+       Omit a few minor unnecessary range checks
+
+       Based on Pip Cet’s review (Bug#36370#19).
+       * src/fileio.c (Fdo_auto_save):
+       * src/image.c (lookup_image):
+       * src/textprop.c (Fnext_single_char_property_change):
+       Prefer XFIXNUM to XFIXNAT for clarity and consistency with
+       neighboring code, and to avoid unnecessary range checks.
+       * src/image.c (lookup_image): Omit unnecessary range checks.
+
+2019-06-27  Paul Eggert  <address@hidden>
+
+       Improve XFIXNUM cleanup a bit
+
+       Based on Pip Cet’s review (Bug#36370#13).
+       * src/ccl.c (Fccl_execute_on_string): Use clearer indexing.
+       * src/dosfns.c (Fint86, Fdos_memput):
+       Avoid runtime checks for negative fixnums when debugging.
+       This restores the earlier machine code.
+       * src/lisp.h (XFIXNUM, XUFIXNUM): Use eassert, not eassume.
+       (XFIXNAT): At the start, merely eassert FIXNUMP rather
+       than eassuming FIXNATP.  At the end, eassume that the
+       result is nonnegative.  This restores help to the compiler
+       that the previous patch mistakenly removed.
+
+2019-06-27  Paul Eggert  <address@hidden>
+
+       Clean up use of XFIXNUM etc.
+
+       A few bits of the code were relying on the fact that XFIXNUM,
+       XFIXNAT, and XUFIXNUM do something even with arguments that
+       are not fixnums/fixnats.  Separate these rare uses out into
+       XFIXNUM_RAW and XUFIXNUM_RAW.
+       Problem and original patch reported by Pip Cet (Bug#36370).
+       * src/ccl.c (Fccl_execute_on_string):
+       * src/fileio.c (Finsert_file_contents, a_write)
+       (Fdo_auto_save):
+       * src/process.c (conv_lisp_to_sockaddr):
+       * src/textprop.c (Fnext_single_char_property_change)
+       (Fprevious_single_char_property_change)
+       (Fnext_property_change, Fnext_single_property_change)
+       (Fprevious_property_change)
+       (Fprevious_single_property_change):
+       Don’t assume fixnums are nonnegative.
+       * src/ccl.c (Fccl_execute_on_string):
+       Fix range-checking bug if AREF (status, i) is out of int range.
+       * src/data.c (arith_driver): Use XFIXNUM_RAW as we want
+       efficient garbage if the value is not a fixnum.
+       * src/dosfns.c (Fint86, Fdos_memput):
+       Check that args are nonnegative.
+       * src/image.c (lookup_image): Check that args are in range.
+       * src/lisp.h (lisp_h_XHASH): Use XUFIXNUM_RAW, since this
+       is for hashing.
+       (lisp_h_XFIXNAT, XFIXNAT) [USE_LSB_TAG]: Remove macros.
+       (lisp_h_XFIXNUM_RAW, XFIXNUM_RAW) [USE_LSB_TAG]: New macros, with
+       the semantics of the old macros without _RAW.
+       (XFIXNUM_RAW, XUFIXNUM_RAW): New inline functions, with the
+       semantics of the old functions without _RAW.
+       (FIXNUMP): Move definition up to avoid forward use.
+       (XFIXNUM, XFIXNAT, XUFIXNUM): Use eassume to add a runtime
+       check (when debugging) that the argument has the proper form.
+       (XFIXNUM, XFIXNAT): Now inline functions only, since they
+       refer to their arguments more than once now that they use eassume.
+       * src/textprop.c (Fprevious_single_char_property_change):
+       Avoid fixnum overflow with invalid input.
+       (set_text_properties): Fix unlikely failure
+       to validate arguments, by using EQ instead of XFIXNAT.
+       * src/w32term.c (w32_draw_glyph_string):
+       * src/xterm.c (x_draw_glyph_string):
+       Treat negative minimums as 0 rather than as garbage patterns.
+
+2019-06-27  Paul Eggert  <address@hidden>
+
+       Catch duplicate keywords in image specs
+
+       * src/image.c (struct image_keyword.count): Now bool, not int,
+       since it is either 0 or 1.
+       (parse_image_spec, xpm_image_p): Use bool for boolean.
+       (parse_image_spec): Fix a bug introduced in
+       2011-09-21T17:41:20!address@hidden that reported only
+       triplicate (or more) keywords, not duplicates.
+
+2019-06-27  Lars Ingebrigtsen  <address@hidden>
+
+       Mention the new emacsclient -a/--eval behaviour
+
+2019-06-27  Lars Ingebrigtsen  <address@hidden>
+
+       emacsclient: ignore --eval parameters when starting alternate editor
+
+       * lib-src/emacsclient.c (fail): If the user said --eval, don't
+       pass those arguments to the alternate editor as file names.
+       Suggested by a patch from Scott Turner (bug#11474).
+
+2019-06-27  Vasilij Schneidermann  <address@hidden>
+
+       Allow for retrieving profiler logs after stopping
+
+       * lisp/profiler.el (profiler-cpu-log, profiler-memory-log): New
+       variables.
+       (profiler-cpu-profile): Work even if the profiler is no longer
+       running (bug#22114).
+       (profiler-memory-profile): Ditto.
+       (profiler-stop): Save the data.
+       (profiler-reset): Clear the saved data.
+       (profiler-report-cpu, profiler-report-memory): Report on the saved
+       data.
+       (profiler-report): Save the data here, too.
+
+2019-06-27  Dan Nicolaescu  <address@hidden>
+
+       Include the date in the bzr annotation buffer
+
+       * lisp/vc/vc-bzr.el (vc-bzr-annotate-command)
+       (vc-bzr-annotate-time)
+       (vc-bzr-annotate-extract-revision-at-line): Include a date in the
+       bzr annotation buffer (bug#5428).
+
+2019-06-27  Stefan Kangas  <address@hidden>
+
+       Add new ispell-change-dictionary-hook (Bug#1110)
+
+       * lisp/textmodes/ispell.el (ispell-change-dictionary-hook): New hook.
+       (ispell-change-dictionary): Call new hook (bug#1110).
+
+2019-06-27  Thierry Volpiatto  <address@hidden>
+
+       Add a new regexp variable to control boring winner buffers
+
+       * doc/emacs/windows.texi (Window Convenience): Mention it.
+
+       * lisp/winner.el (winner-boring-buffers-regexp): New variable.
+
+       * lisp/winner.el (winner-set): Use it (bug#11151).
+
+2019-06-27  Ken Brown  <address@hidden>
+
+       Fix invoking Emacs via a symlink on Cygwin
+
+       * src/emacs.c (load_pdump) [CYGWIN]: Strip ".exe" suffix.
+
+2019-06-27  Lennart Borgman  <address@hidden>
+
+       Add more fontification to regexp builder mode
+
+       * lisp/emacs-lisp/re-builder.el (reb-copy): Work in the presence
+       of newlines in the regexps.
+       (reb-change-syntax): Use a dedicated history variable.
+       (reb-fontify-string-re): Fontify sub-matches.
+       (reb-regexp-grouping-backslash, reb-regexp-grouping-construct):
+       New faces.
+       (reb-string-font-lock-keywords): New variable.
+       (reb-mark-non-matching-parenthesis): Match parenthesis.
+       (reb-restart-font-lock): New function.
+
+       * lisp/emacs-lisp/re-builder.el (reb-mode-map): Add divider some
+       dividers (bug#6347).
+
+2019-06-27  Lars Ingebrigtsen  <address@hidden>
+
+       Rename displayor to displayer in CEDET
+
+       * doc/misc/sem-user.texi (Idle Completions Mode): Rename
+       displayor->displayer throughout.
+       (Idle Completions Mode): Ditto.
+
+       * lisp/cedet/semantic/complete.el: Rename displayor->displayer
+       throughout and add aliases for all the methods that used that name.
+
+2019-06-27  Dmitry Gutov  <address@hidden>
+
+       Use `default-indent-new-line' instead of `indent-new-comment-line'
+
+       * lisp/simple.el (default-indent-new-line): Doc string fix.
+
+       * lisp/textmodes/refill.el (refill-post-command-function): Make
+       default-indent-new-line work as indent-new-comment-line.
+
+       * lisp/textmodes/refill.el (refill-post-command-function): Bind
+       `M-C-j' and `M-j' to default-indent-new-line instead of
+       indent-new-comment-line to allow overriding via
+       `comment-line-break-function' (bug#12413).
+
+2019-06-27  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Apply font-lock in hexl-mode buffers"
+
+       This reverts commit 573de396f03684efa89ead24a371b0f4c9bf8d5d.
+
+       The change wasn't necessary -- the hexl-mode buffer is automatically 
fontified.
+
+2019-06-27  Aaron S. Hawley  <address@hidden>
+
+       Allow generating wiki and mediawiki tables
+
+       * lisp/textmodes/table.el (table--generate-source-prologue)
+       (table--generate-source-epilogue)
+       (table--generate-source-scan-rows)
+       (table--generate-source-cells-in-a-row): Insert the wiki/mediawiki
+       separators.
+
+       * lisp/textmodes/table.el (table-source-languages): Add support
+       for wiki and mediawiki tables (bug#13287).
+
+       2019-06-27  Lars Ingebrigtsen  <address@hidden>
+
+               * doc/emacs/text.texi (Table Misc): Mention the new wiki and
+               mediawiki formats.
+
+2019-06-27  Wilfred Hughes  <address@hidden>
+
+       Apply font-lock in hexl-mode buffers
+
+       * lisp/hexl.el (hexl-mode): After setting font-lock-defaults, we
+       need to call `font-lock-ensure' to apply hexl-mode faces
+       (bug#24645).
+
+2019-06-27  Juanma Barranquero  <address@hidden>
+
+       Add :local specifier to defcustom
+
+       * lisp/custom.el (custom-declare-variable): Allow the new :local
+       parameter (bug#14591).
+       (defcustom): Document it.
+
+2019-06-27  Paul Eggert  <address@hidden>
+
+       Tweak ‘error’ and ‘user-error’ doc strings
+
+       * lisp/net/tramp.el (tramp-user-error):
+       * lisp/subr.el (user-error):
+       Say that user errors are sometimes called pilot errors.
+       * lisp/subr.el (error, user-error):
+       Reorder wording to discuss mechanism first, then formatting advice,
+       rather than going back and forth between the two topics.
+       Tighten up the wording a bit.
+
+2019-06-27  Stefan Kangas  <address@hidden>
+
+       Clarify error and user-error docstrings
+
+       * lisp/subr.el (error, user-error)
+       * lisp/net/tramp.el (tramp-user-error): Change "pilot error" to "user
+       error" and improve documentation.
+
+2019-06-26  Basil L. Contovounesios  <address@hidden>
+
+       Remove gnus-bug from report-emacs-bug TODO entry
+
+       For discussion, see the following thread:
+       https://lists.gnu.org/archive/html/emacs-devel/2019-04/msg01196.html
+       https://lists.gnu.org/archive/html/emacs-devel/2019-06/msg00967.html
+
+       * etc/TODO: Remove gnus-bug from list of obsolete bug-reporting
+       commands now that it is implemented in terms of report-emacs-bug.
+
+2019-06-26  Mattias Engdegård  <address@hidden>
+
+       Document bug in `replace-regexp-in-string'
+
+       `replace-regexp-in-string' omits the first START characters of the
+       input string in its return value.  This is a clear bug, but fixing it
+       probably causes more trouble; document the behaviour instead 
(bug#36372).
+
+       * doc/lispref/searching.texi (Search and Replace)
+       * lisp/subr.el (replace-regexp-in-string):
+       Document current behaviour.
+
+2019-06-26  Stefan Monnier  <address@hidden>
+
+       * lisp/textmodes/page-ext.el (sort-pages-buffer): Fix typo
+
+       Reported by Marco Wahl <address@hidden>.
+       Update `Commentary:` to use the new command names.
+       (pages--ctl-x-ctl-p-map): Fix `mark-page` binding.
+       (pages-directory-mode-map): Update `add-new-page` => 
`pages-add-new-page`.
+
+2019-06-26  Eli Zaretskii  <address@hidden>
+
+       Support invoking Emacs via a symlink on MS-Windows
+
+       * src/w32.c (w32_my_exename): Resolve symlinks in the
+       executable name, to support searching for the pdumper file
+       when the executable is found via a symlink.
+       * src/emacs.c (load_pdump): Add a comment about symlink
+       resolution on Windows.
+
+2019-06-26  Andrzej P  <address@hidden>  (tiny change)
+
+       Fix redisplay of registers in gdb-mi
+
+       * lisp/progmodes/gdb-mi.el (gdb-update): Call
+       gdb-get-changed-registers before updating the GDB-MI buffers.
+       (Bug#16366)
+
+2019-06-26  Lars Ingebrigtsen  <address@hidden>
+
+       Restrict indirect lookups in Fdocumentation_property
+
+       * src/doc.c (Fdocumentation_property): Only look up indirect
+       variables if we've been asked for the variable documentation.
+
+2019-06-26  Stefan Monnier  <address@hidden>
+
+       Merge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/emacs into 
trunk
+
+2019-06-26  Bruce Stephens  <address@hidden>
+
+       * lisp/calc/calc-ext.el (math-scalarp): Fix typo
+
+2019-06-26  Lars Ingebrigtsen  <address@hidden>
+
+       Fdocumentation_property: Return doc string for indirect variables
+
+       * src/doc.c (Fdocumentation_property): When dealing with indirect
+       variables (i.e., aliases), also check the symbol being pointed to
+       for the doc string (bug #17180).
+
+2019-06-26  Stefan Monnier  <address@hidden>
+
+       Revert "* lisp/calc/calc-ext.el (math-scalarp): Fix typo"
+
+       This reverts commit 698ff554ac2699ec48fefc85a1307cbc4a183b0d.
+
+2019-06-26  Johan Claesson  <address@hidden>  (tiny change)
+
+       help-C-file-name shouldn't error out if we can't find the name
+
+       * lisp/help-fns.el (help-C-file-name): Make help-C-file-name
+       return nil instead of signalling an error if we can't find the
+       file name (bug#17250).
+
+2019-06-26  Stefan Monnier  <address@hidden>
+
+       * test/lisp/calc/calc-tests.el (test-math-bignum, test-calc-23889): 
Disable
+
+       Not applicable any more with native bignums.
+
+2019-06-26  Stefan Monnier  <address@hidden>
+
+       * lisp/calc/calc-ext.el (math-scalarp): Fix typo
+
+2019-06-26  Noam Postavsky  <address@hidden>
+
+       Fix (rx-to-string (and (literal STR) (regexp STR)) regression
+
+       * lisp/emacs-lisp/rx.el (rx-regexp, rx-literal): Check the cadr of the
+       form for stringness, not the form itself.
+       * test/lisp/emacs-lisp/rx-tests.el (rx-to-string-lisp-forms): New test.
+
+2019-06-26  Mattias Engdegård  <address@hidden>
+
+       Merge consecutive constant `concat' args (bug#14769)
+
+       Suggested by Shigeru Fukaya <address@hidden>
+
+       * lisp/emacs-lisp/byte-opt.el (byte-optimize-concat): New.
+       (concat): Add byte-optimizer.
+
+2019-06-25  Stefan Monnier  <address@hidden>
+
+       * lisp/calc/calc.el: Take advantage of native bignums.
+
+       Remove redundant :group args.
+
+       (calc-trail-mode): Use inhibit-read-only.
+       (math-bignum-digit-length, math-bignum-digit-size)
+       (math-small-integer-size): Delete constants.
+       (math-normalize): Use native bignums.
+       (math-bignum, math-bignum-big): Delete functions.
+       (math-make-float): The mantissa can't be a calc bignum any more.
+       (math-neg, math-scale-left, math-scale-right, math-scale-rounding)
+       (math-add, math-sub, math-mul, math-idivmod, math-quotient)
+       (math-format-number, math-read-number, math-read-number-simple):
+       Don't bother handling calc bignums.
+       (math-div10-bignum, math-scale-left-bignum, math-scale-right-bignum)
+       (math-add-bignum, math-sub-bignum, math-mul-bignum, 
math-mul-bignum-digit)
+       (math-div-bignum, math-div-bignum-digit, math-div-bignum-big)
+       (math-div-bignum-part, math-div-bignum-try, math-format-bignum)
+       (math-format-bignum-decimal, math-read-bignum): Delete functions.
+       (math-numdigs): Don't presume that native ints are small enough to use
+       a slow algorithm.
+
+       * lisp/calc/calc-aent.el (calc-do-quick-calc):
+       * lisp/calc/calc-vec.el (calcFunc-vunpack):
+       * lisp/calc/calc-alg.el (math-beforep): Don't bother handling calc 
bignums.
+
+       * lisp/calc/calc-bin.el (math-bignum-logb-digit-size)
+       (math-bignum-digit-power-of-two): Remove constants.
+       (calcFunc-and, math-binary-arg, calcFunc-or, calcFunc-xor)
+       (calcFunc-diff, calcFunc-not, math-clip, math-format-twos-complement):
+       Use Emacs's builtin bignums.
+       (math-and-bignum, math-or-bignum, math-xor-bignum, math-diff-bignum)
+       (math-not-bignum, math-clip-bignum)
+       (math-format-bignum-radix, math-format-bignum-binary)
+       (math-format-bignum-octal, math-format-bignum-hex): Delete functions.
+       (math-format-binary): Fix old copy&paste error.
+
+       * lisp/calc/calc-comb.el (calc-prime-factors): Adjust for unused arg.
+       (math-prime-test): math-fixnum is now the identity.
+
+       * lisp/calc/calc-ext.el: Require cl-lib.
+       (math-oddp): Use cl-oddp.  Don't bother with calc bignums.
+       (math-integerp, math-natnump, math-ratp, math-realp, math-anglep)
+       (math-numberp, math-scalarp, math-vectorp, math-objvecp, math-primp)
+       (math-num-natnump, math-objectp, math-check-integer, math-compare):
+       Don't bother handling calc bignums.
+       (math-check-fixnum): Use fixnump.
+       (math-fixnum, math-fixnum-big, math-bignum-test): Remove functions.
+       (math--format-integer-fancy): Rename from math-format-bignum-fancy.
+       Adjust for internal bignums.
+
+       * lisp/calc/calc-funcs.el (calcFunc-besJ): Use cl-isqrt.
+
+       * lisp/calc/calc-macs.el (Math-zerop, Math-integer-negp)
+       (Math-integer-posp, Math-negp, Math-posp, Math-integerp)
+       (Math-natnump, Math-ratp, Math-realp, Math-anglep, Math-numberp)
+       (Math-scalarp, Math-vectorp, Math-objectp, Math-objvecp)
+       (Math-integer-neg, Math-primp, Math-num-integerp):
+       Don't bother handling calc bignums.
+       (Math-bignum-test): Delete function.
+
+       * lisp/calc/calc-math.el (math-use-emacs-fn): Remove unused `fx`.
+       (math-isqrt, math-sqrt): Use cl-isqrt.  Don't bother handling calc 
bignums.
+       (math-isqrt-bignum, math-isqrt-bignum-iter, math-isqrt-small):
+       Delete function.
+
+       * lisp/calc/calc-misc.el (math-fixnump, math-fixnatnump): Use fixnump.
+       (math-evenp): Use cl-evenp.
+       (math-zerop, math-negp, math-posp, math-div2): Don't bother handling
+       calc bignums.
+       (math-div2-bignum): Delete function.
+
+2019-06-25  Noam Postavsky  <address@hidden>
+
+       Merge from emacs-26
+
+       e62ad04963 Fix sgml-mode handling of quotes within parens (Bug#36347)
+       06b35b2f92 ; * lisp/frame.el: Enhance add-variable-watcher commentary.
+       572e34bb6f Rename 'make-symbolic-link' argument NEWNAME to LINKNAME
+       04477adedc Check that length of data returned by sysctl is non-zero
+       81535eeadb * test/lisp/progmodes/python-tests.el (python-virt-bin): D...
+       9d48979ca8 Fix Python tests depending on system-type
+       fcf6cc3177 Fix problem with wdired test when symlinks cannot be created.
+       4701e0663e Improve wording of documentation of click events
+
+       # Conflicts:
+       #       lisp/textmodes/sgml-mode.el
+       #       test/lisp/textmodes/sgml-mode-tests.el
+
+2019-06-25  Noam Postavsky  <address@hidden>
+
+       Merge from emacs-26
+
+       2b765c650a Remove outdated comment in winner.el (Bug#36185)
+
+2019-06-25  Noam Postavsky  <address@hidden>
+
+       Don't bind search-spaces-regexp around possible autoload (Bug#35802)
+
+       * lisp/isearch.el (isearch-search-fun-default): Move possible autoload
+       trigger outside let-binding of search-spaces-regexp.
+       * lisp/char-fold.el (char-fold-make-table): Remove no longer needed
+       workaround.
+
+       * lisp/info.el (Info-search-whitespace-regexp):
+       * lisp/isearch.el (search-whitespace-regexp):
+       * src/search.c (syms_of_search) <search-spaces-regexp>: Add warning
+       about adding capturing groups to the value.
+
+       * test/lisp/char-fold-tests.el: Remove, binding search-spaces-regexp
+       to a different should be considered a bug.
+
+2019-06-25  Noam Postavsky  <address@hidden>
+
+       Support (rx (and (regexp EXPR) (literal EXPR))) (Bug#36237)
+
+       * lisp/emacs-lisp/rx.el (rx-regexp): Allow non-string forms.
+       (rx-constituents): Add literal constituent, which is like a plain
+       STRING form, but allows arbitrary lisp expressions.
+       (rx-literal): New function.
+       (rx-compile-to-lisp): New variable.
+       (rx--subforms): New helper function for handling subforms, including
+       non-constant case.
+       (rx-group-if, rx-and, rx-or, rx-=, rx->=, rx-repeat, rx-submatch)
+       (rx-submatch-n, rx-kleene, rx-atomic-p): Use it to handle non-constant
+       subforms.
+       (rx): Document new form, wrap non-constant forms with concat call.
+       * test/lisp/emacs-lisp/rx-tests.el (rx-tests--match): New macro.
+       (rx-nonstring-expr, rx-nonstring-expr-non-greedy): New tests.
+       * etc/NEWS: Announce changes.
+
+2019-06-25  Juanma Barranquero  <address@hidden>
+
+       Fix PATH_MAX change to lib-src/emacsclient.c
+
+       * lib-src/emacsclient.c (get_current_dir_name): Declare pwdlen.
+
+2019-06-25  Lars Ingebrigtsen  <address@hidden>
+
+       Fix previous patch to dired-mark-if
+
+       * lisp/dired.el (dired-mark-if): Don't use looking-at to check for
+       characters.
+
+2019-06-25  Paul Eggert  <address@hidden>
+
+       Prefer PATH_MAX to MAXPATHLEN
+
+       PATH_MAX is standardized, MAXPATHLEN is not.
+       Also, the Gnulib pathmax module fixes some rare bugs with PATH_MAX.
+       So prefer PATH_MAX to MAXPATHLEN unless we know the latter is
+       also correct (for some platform-specific code).
+       * admin/merge-gnulib (GNULIB_MODULES): Add pathmax.
+       This module was already present, as a dependency of canonicalize-lgpl,
+       but now Emacs is using it directly.  Sort.
+       * lib-src/emacsclient.c: Include stdint.h, pathmax.h.
+       (get_current_dir_name): Sync to current src/sysdep.c.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * src/sysdep.c: Include pathmax.h.
+       (get_current_dir_name_or_unreachable):
+       Use PATH_MAX instead of MAXPATHLEN.
+
+2019-06-25  Dima Kogan  <address@hidden>
+
+       View-search-... now hit all the matches, regardless of window position
+
+       * lisp/view.el (view-search): Jump to the next/prev occurrence of
+       the search, even if it's displayed in the buffer (bug#18131).
+       This seems more logical than the previous (undocumented) behaviour.
+
+2019-06-25  Paul Eggert  <address@hidden>
+
+       Avoid some strlen work, primarily via strnlen
+
+       * admin/merge-gnulib (GNULIB_MODULES): Add strnlen.
+       * lib-src/etags.c (find_entries):
+       * src/emacs.c (main):
+       * src/nsmenu.m (parseKeyEquiv:):
+       * src/nsterm.m (ns_xlfd_to_fontname):
+       * src/term.c (vfatal):
+       Prefer !*X to !strlen (X).
+       * lib-src/etags.c (pfnote, add_regex):
+       * lib-src/pop.c (pop_open):
+       * lib-src/update-game-score.c (main):
+       * lwlib/lwlib.c (lw_separator_p):
+       * src/doprnt.c (doprnt):
+       * src/emacs.c (main):
+       * src/inotify.c (inotifyevent_to_event):
+       * src/keyboard.c (menu_separator_name_p, parse_tool_bar_item):
+       * src/sysdep.c (get_current_dir_name_or_unreachable):
+       * src/xdisp.c (store_mode_line_string):
+       Use strnlen to avoid unnecessary work with strlen.
+       * lib-src/etags.c (Prolog_functions, prolog_pr)
+       (Erlang_functions, erlang_func):
+       Prefer ptrdiff_t to size_t when either will do.
+       (prolog_pr, erlang_func): New arg LASTLEN, to avoid
+       unnecessary strlen call. All callers changed.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * lib/strnlen.c, m4/strnlen.m4: New files, copied from Gnulib.
+       * lwlib/lwlib.c (lw_separator_p):
+       * src/json.c (json_has_prefix):
+       Use strncmp to avoid unecessary work with strlen + memcmp.
+       * src/process.c (set_socket_option): Use SBYTES instead of strlen.
+
+2019-06-25  Emilio C. Lopes  <address@hidden>  (tiny change)
+
+       Support opening a new connection when reverting a telnet buffer
+
+       * lisp/net/telnet.el (telnet-connect-command): New variable.
+       (telnet-revert-buffer): New function.
+       (telnet-mode): Use `telnet-revert-buffer' as `revert-buffer-function'.
+       (telnet, rsh): Set `telnet-connect-command' accordingly (bug#18312).
+
+2019-06-25  Arash Esbati  <address@hidden>
+
+       Suppress warning about unix-sync in nnmaildir.el
+
+       * lisp/gnus/nnmaildir.el (nnmaildir-request-replace-article): Check if 
the
+       function `unix-sync' is bound before running it.
+
+2019-06-25  Ivan Shmakov  <address@hidden>
+
+       Check labels in smerge-mode
+
+       * lisp/vc/diff.el (diff-check-labels): Separated out into its own
+       function (bug#18850)...
+       (diff-no-select): ... from here.
+
+       * lisp/vc/smerge-mode.el (smerge-diff): Use diff-check-labels.
+
+2019-06-25  Basil L. Contovounesios  <address@hidden>
+
+       Avoid using subr-x.el function in files.el
+
+       * lisp/files.el (file-size-human-readable): Open code string-empty-p
+       call.  This was the single occurrence of a subr-x.el function in
+       files.el, which does not (yet) load subr-x.el.
+
+2019-06-25  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-extra.el (cl-isqrt): Speed up bignum case
+
+2019-06-25  Jonathan Shin Hayase  <address@hidden>
+
+       Highlight zsh glob flags and qualifiers in sh-mode
+
+       * lisp/progmodes/sh-script.el (sh-syntax-propertize-function):
+       Add regexps to highlight zsh glob flags and alternate qualifiers
+       without mistaking them for comments. (bug#19455).
+
+2019-06-25  Lars Ingebrigtsen  <address@hidden>
+
+       Build fix for previous buffers.texi change
+
+2019-06-25  Stefan Monnier  <address@hidden>
+
+       * etc/NEWS: Fix vocabulary in last change
+
+2019-06-25  Stefan Monnier  <address@hidden>
+
+       * lisp/tar-mode.el: Use lexical-binding; remove redundant :groups.
+
+       (tar-new-entry): Remove unused var `buffer`.
+
+2019-06-25  Lars Ingebrigtsen  <address@hidden>
+
+       Move widen/narrow in tabulated lists to } and {
+
+       * doc/emacs/buffers.texi (Several Buffers): Document it.
+
+       * lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode-map):
+       Move widen/narrow to `}' and `{'.
+
+2019-06-25  Glenn Morris  <address@hidden>
+
+       * test/lisp/progmodes/flymake-tests.el (ruby-backend): Skip on hydra.
+
+       Another unstable test.
+
+2019-06-25  Stefan Monnier  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-file-name-handler): Use autoload-do-load
+
+2019-06-25  Ivan Shmakov  <address@hidden>
+
+       Heed default directory in tar-untar-buffer
+
+       * lisp/tar-mode.el (tar-untar-buffer): Fix use the value of
+       default-directory local to the tar-mode buffer (bug#19865).
+
+2019-06-25  David Hull  <address@hidden>
+
+       etags: Fix handling of quoted symbol names in Erlang
+
+       * lib-src/etags.c (erlang_attribute): Fix handling of quoted
+       symbol names in Erlang (bug#24960).
+
+2019-06-25  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-06-24 unistd: stddef.h and sys/types.h namespace cleanup
+       * lib/gnulib.mk.in: Regenerate.
+       * lib/unistd.in.h: Copy from gnulib.
+
+2019-06-25  Glenn Morris  <address@hidden>
+
+       * lisp/info.el (info-emphasis): Fix doc, version.
+
+2019-06-25  Vaidheeswaran C  <address@hidden>
+
+       Preserve header lines from derived modes in tabulated lists
+
+       * lisp/emacs-lisp/tabulated-list.el (tabulated-list-init-header):
+       Preserve header line set by derived modes (bug#21025).
+
+2019-06-25  Drew Adams  <address@hidden>
+
+       Make dired commands report how many files they mark
+
+       * lisp/dired.el (dired-mark-if): Report the number of files marked
+       when called, not the total number of marked files (bug#22457).
+
+2019-06-25  Stefan Monnier  <address@hidden>
+
+       * lisp/simple.el (forward-visible-line, end-of-visible-line): Use 
invisible-p
+
+2019-06-25  Lars Ingebrigtsen  <address@hidden>
+
+       Add a new command to report the number and size of the marked files
+
+       2019-06-25  Constantino Calancha  <address@hidden>
+
+               * lisp/dired.el (dired-mode-map): New keystroke and menu binding
+               (bug#22829).
+
+       2019-06-25  Lars Ingebrigtsen  <address@hidden>
+
+               * doc/emacs/dired.texi (Marks vs Flags): Document it.
+
+               * lisp/dired.el (dired-number-of-marked-files): New command.
+
+2019-06-25  Phil Sainty  <address@hidden>
+
+       Fix `goto-address-url-regexp'
+
+       * lisp/net/goto-addr.el (goto-address-uri-schemes-ignored): New
+       variable.
+       (goto-address-uri-schemes): Ditto.
+       (goto-address-url-regexp): Use them to compose the final regexp.
+
+       * lisp/net/goto-addr.el: The URI schemes to be recognised by
+       `goto-address-mode' were not regexp-quoted (Bug#23343).
+
+2019-06-25  Tino Calancha  <address@hidden>
+
+       Make winner restore point in all windows that display a buffer
+
+       * lisp/window.el (window--before-delete-windows): New defun.
+       (delete-window, delete-other-windows): Use it.
+       * lisp/winner.el (winner-set): Use marker in 'window-prev-buffers'
+       when available and different than the value returned by
+       'winner-get-point' (bug#23621).
+
+2019-06-25  Bastian Beischer  <address@hidden>  (tiny change)
+
+       Use xref in cedet
+
+       * lisp/cedet/semantic/complete.el (semantic-complete-jump-local)
+       * lisp/cedet/semantic/analyze/refs.el
+       (semantic-analyze-proto-impl-toggle): Use xref to handle jumping
+       (bug#23793).
+
+2019-06-25  Drew Adams  <address@hidden>
+
+       Fontify _emphasis_ in info nodes
+
+       * lisp/info.el (Info-fontify-node): Fontify _emphasis_ (bug#23798).
+       (info-emphasis): New face.
+
+2019-06-25  Robert Weiner  <address@hidden>
+
+       Unlispify even more in custom-unlispify-menu-entry
+
+       * lisp/cus-edit.el (custom-unlispify-menu-entry): Also allow : and
+       / as separators in symbols when making the symbols look more
+       human-readable (bug#23986).
+
+2019-06-25  Michael Shields  <address@hidden>
+
+       [PATCH 1/1] Pass frame-parameters to server-create-tty-frame
+
+       * lisp/server.el: Pass frame-parameters when creating frames, even
+       on a tty (bug#24147).
+
+2019-06-25  Basil L. Contovounesios  <address@hidden>
+
+       Fix recent tex-mode safe-local-variable changes
+
+       * lisp/textmodes/tex-mode.el (tex-verbatim-environments): Replace
+       (delq t ...) with more usual (memq nil ...).
+       (latex-noindent-environments, latex-noindent-commands): Fix typos
+       and thinkos in safe-local-variable logic.
+
+2019-06-25  Lars Ingebrigtsen  <address@hidden>
+
+       Don't delete macuvs.h in extraclean
+
+       * admin/unidata/Makefile.in (extraclean): Don't delete macuvs.h,
+       because it's a checked-in file, and make targets altering
+       checked-in files is confusing.
+
+2019-06-25  Fritz Stelzer  <address@hidden>  (tiny change)
+
+       Make xref-show-xrefs-function a defcustom
+
+       * lisp/progmodes/xref.el (xref-show-xrefs-function): Make into a
+       defcustome (bug#29206).
+
+       * lisp/progmodes/xref.el (xref-show-definitions-function): Ditto.
+
+2019-06-25  Antoine Beaupré  <address@hidden>  (tiny change)
+
+       Add imenu support to package-menu-mode
+
+       * lisp/vc/vc-git.el (vc-git-grep-template): Include <C> in
+       template to be more consistent with lgrep/rgrep (bug#35326).  This
+       will introduce the --color and -i flags to the "git grep" command.
+
+2019-06-25  Alan Mackenzie  <address@hidden>
+
+       Fix documentation of inhibit-modification-hooks in overlays + text 
properties
+
+       This fixes bug #25111.
+
+       * doc/lispref/display.texi (Overlay Properties): For the hook property
+       modification-hooks, state that inhibit-modification-hooks is bound to 
non-nil
+       when calling its functions.  This also applies to insert-in-front-hooks 
and
+       insert-behind-hooks, which refer to modification-hooks.
+
+       * doc/lispref/text.texi (Special Properties): For the hook property
+       modification-hooks, state that inhibit-modification-hooks is NOT bound 
to
+       non-nil when calling its functions.  For the hooks insert-in-fron-hooks 
and
+       insert-behind-hooks, state that that variable does get bound to non-nil.
+
+2019-06-24  Hong Xu  <address@hidden>
+
+       Add imenu support to package-menu-mode
+
+       * lisp/gnus/gnus-cite.el (gnus-message-citation-mode): Fontify if the 
major
+       mode is derived from message-mode (not necessarily equal to
+       message-mode) (bug#25124).
+
+2019-06-24  Damien Cassou  <address@hidden>
+
+       Add imenu support to package-menu-mode
+
+       * lisp/emacs-lisp/package.el
+       (package--imenu-prev-index-position-function
+       package--imenu-extract-index-name-function): Add Imenu functions
+       to package-menu-mode (bug#27134).
+
+2019-06-24  Stefan Monnier  <address@hidden>
+
+       * lisp/textmodes/tex-mode.el (latex-noindent-commands): New custom var
+
+       (latex-find-indent): Obey it.
+       (latex-noindent-environments): Make it into a defcustom as well.
+
+2019-06-24  Lars Ingebrigtsen  <address@hidden>
+
+       Make message_to_stderr do one single fwrite
+
+       * src/xdisp.c (message_to_stderr): When running as a batch
+       process, the output from `message' goes to stderr, and has a
+       newline appended.  Rewrite the code so that only one fwrite is
+       performed to enable messages that are shorter than PIPE_BUF
+       (usually 4096 on modern operating systems) are written out as one
+       chunk, as this will ensure that the messages are not interleaved
+       with messages from other processes that are writing at the same
+       time.  This does not affect other stderr outputs, just the ones
+       from `message'.
+
+2019-06-24  Kaushal Modi  <address@hidden>
+
+       Add example for enabling minor modes in .dir-local.el
+
+       * doc/emacs/custom.texi (Directory Variables): Add an example that
+       shows how a minor mode can be enabled in a .dir-local.el (Bug#27639).
+       Clarify that indent-tabs-mode is not a minor mode.
+
+2019-06-24  YAMAMOTO Mitsuharu  <address@hidden>
+
+       * configure.ac: Set HAVE_XFT to no for summary if HAVE_CAIRO is yes.
+
+2019-06-24  Stefan Monnier  <address@hidden>
+
+       * lisp/svg.el: Prepare for distribution via GNU ELPA
+
+       Add a Version: and Package-Requires:.
+       Don't require subr-x.
+       Bring Commentary: from the GNU ELPA version of the package.
+       (svg-remove): Don't use when-let*.
+
+2019-06-24  Eric Abrahamsen  <address@hidden>
+
+       Tweaks to html mode
+
+       * lisp/textmodes/sgml-mode.el (sgml-attributes): Add the "class" and
+         "id" attributes when needed.
+         (html-mode-map): Add the `html-div' and `html-span' commands to the
+         `html-quick-keys' map.
+         (html-ordered-list, html-unordered-list, html-paragraph): Use the
+         "\n" element properly.
+         (html-div, html-span): New HTML skeletons.
+
+2019-06-24  Lars Ingebrigtsen  <address@hidden>
+
+       rectangle--pos-cols shouldn't move point
+
+       * lisp/rect.el (rectangle--pos-cols): Don't move point while
+       calculating the values (bug#25777).
+
+2019-06-24  Eli Zaretskii  <address@hidden>
+
+       Fix MS-Windows build as followup to pdumper executable lookup
+
+       * src/w32.c (w32_my_exename): New function.
+       * src/w32.h (w32_my_exename): Add prototype.
+       * src/emacs.c (load_pdump_find_executable) [WINDOWSNT]: Find
+       the actual file name of the program without looking along
+       PATH, by calling w32_my_exename.
+
+       * nt/mingw-cfg.site (ac_cv_func_canonicalize_file_name)
+       (ac_cv_func_realpath, gl_cv_func_realpath_works): Disable
+       testing.
+       * nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_canonicalize-lgpl): Set
+       to true.
+
+2019-06-24  Lars Ingebrigtsen  <address@hidden>
+
+       Make C-l in iimage-mode call recenter-top-bottom
+
+       * lisp/iimage.el (iimage-recenter): Call `recenter-top-bottom'
+       instead of `recenter', since that's the default function for `C-l'
+       (bug#27610).  Suggested by Arne Frederic Maria Döring.
+
+2019-06-24  Michael Albinus  <address@hidden>
+
+       Improve error handling in Tramp
+
+       * lisp/net/tramp-compat.el (ls-lisp): Require.
+
+       * lisp/net/tramp.el (ls-lisp-use-insert-directory-program):
+       Don't declare.
+       (tramp-current-connection): Adapt docstring.
+       (tramp-debug-message): Adapt function names.
+       (tramp-error, tramp-run-real-handler): Let-bind `signal-hook-function'.
+       (tramp-signal-hook-function): New defun.
+       (tramp-debug-on-error, tramp-condition-case-unless-debug): Remove.
+       (tramp-file-name-handler): Handle `tramp-current-connection'.
+       Let-bind `signal-hook-function'.  Use `unwind-protect' instead of
+       `tramp-condition-case-unless-debug'.
+       (tramp-handle-insert-directory): Don't require ls-lisp.
+       (tramp-process-actions): Check, that
+       `tramp-password-save-function' is non-nil.
+       (tramp-equal-remote): Handle the case both files are local.
+
+       * test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case):
+       Do not bind `tramp-debug-on-error'.
+       (tramp--test-ignore-make-symbolic-link-error): Make error handler
+       more explicit about the error.
+
+2019-06-24  Lars Ingebrigtsen  <address@hidden>
+
+       Fix up key bindings in previous tabulated-list patch
+
+       * lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode-map):
+       Actually use `w'/`c' as described in previous patch.
+
+2019-06-24  Lars Ingebrigtsen  <address@hidden>
+
+       Add new commands to widen/narrow tabulated list columns
+
+       * doc/emacs/buffers.texi: Document widen/contracting commands in
+       tabulated list mode.
+       * lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode-map): Add
+       keystrokes.
+       (tabulated-list-widen-current-column): New command.
+       (tabulated-list-narrow-current-column): Ditto.  The code was
+       written by Boruch Baum and then tweaked by Drew Adams (bug#32106)
+       before some white-space changes before the commit.
+
+2019-06-24  Lars Ingebrigtsen  <address@hidden>
+
+       Remove -q from zstd invocation
+
+       * lib-src/etags.c (compressors): -q isn't necessary since standard
+       output goes to /dev/null.  From Michael Albinus (bug#33919).
+
+2019-06-24  Lars Ingebrigtsen  <address@hidden>
+
+       NEWS fix up for Zstandard patches
+
+       * etc/NEWS: tramp-archive is a new feature, so no need to say that
+       specific parts of it are new.  From Michael Albinus.
+
+2019-06-24  Lars Ingebrigtsen  <address@hidden>
+
+       Fix up Zstandard/tramp patch slightly
+
+       * lisp/net/tramp-archive.el (tramp-archive-suffixes): Fix tzst
+       suffix.  From Michael Albinus (bug#33919).
+
+2019-06-24  Alexander Gramiak  <address@hidden>
+
+       Add Zstandard compression support for Tramp
+
+       * lisp/net/tramp-archive.el (tramp-archive-suffixes)
+       (tramp-archive-compression-suffixes): Add zstd compression suffixes.
+       * lisp/net/tramp-sh.el (tramp-inline-compress-commands): Add
+       zstd (de)compression commands.
+
+2019-06-24  Alexander Gramiak  <address@hidden>
+
+       Add Zstandard compression support for dired
+
+       * lisp/dired-aux.el (dired-compress-file-suffixes): Add suffixes for
+       zstd compressed tarballs and other files.
+       (dired-compress-file): Treat options found in
+       `dired-compress-file-suffixes' as arguments instead of part of the
+       program name.
+
+2019-06-24  Alexander Gramiak  <address@hidden>
+
+       Add Zstandard compression support for etags
+
+       * lib-src/etags.c: (compressors): Add zstd support.
+       (print_language_names): Report zstd support.
+       * doc/man/etags.1: Update doc.
+
+2019-06-24  Daniel Colascione  <address@hidden>
+
+       Fix pdumper executable-finding code
+
+       * src/emacs.c:
+       (load_pdump_find_executable): New function.
+       (load_pdump): Use it.
+
+2019-06-24  Damien Cassou  <address@hidden>
+
+       * doc/misc/auth.texi (The Unix password store): Complete rewrite
+
+       * etc/NEWS: Describe changes to auth-source-pass
+
+       * lisp/auth-source-pass.el: Version 5.0.0
+
+2019-06-24  Damien Cassou  <address@hidden>
+
+       Refactoring of auth-source-pass
+
+       * lisp/auth-source-pass.el (auth-source-pass--find-match): Refactor by
+       moving some code to auth-source-pass--disambiguate.
+       (auth-source-pass--disambiguate)
+       (auth-source-pass--entries-matching-suffix): New function.
+       (auth-source-pass--find-match-unambiguous)
+       (auth-source-pass--select-from-entries)
+       (auth-source-pass--entry-reducer): Refactor to simplify and improve
+       logging.
+       (auth-source-pass--matching-entries)
+       (auth-source-pass--accumulate-matches): Remove.
+       * test/lisp/auth-source-pass-tests.el: Complete rewrite to facilitate
+       maintenance.
+       (auth-source-pass--have-message-containing): Remove.
+       (auth-source-pass--have-message-matching)
+       (auth-source-pass--explain--have-message-matching)
+       (auth-source-pass--explain-match-entry-p)
+       (auth-source-pass--includes-sorted-entries)
+       (auth-source-pass--explain-includes-sorted-entries)
+       (auth-source-pass--explain-match-any-entry-p)
+       (auth-source-pass--matching-entries)
+       (auth-source-pass-match-entry-p)
+       (auth-source-pass-match-any-entry-p): New function.
+
+2019-06-24  Keith Amidon  <address@hidden>
+
+       * lisp/auth-source-pass.el: Add Keith Amidon to authors
+
+2019-06-24  Keith Amidon  <address@hidden>
+
+       Minimize entry parsing in auth-source-pass
+
+       Prior to this commit, while searching for the most applicable entry
+       password-store entries were decrypted and parsed to ensure they were
+       valid.  The entries were parsed in the order they were found on the
+       filesystem and all applicable entries would be decrypted and parsed,
+       which varied based on the contents of the password-store and the entry
+       to be found.
+
+       This is fine when the GPG key is cached and each entry can be
+       decrypted without user interaction.  However, for security some people
+       have their GPG on a hardware token like a Yubikey setup so that they
+       have to touch a sensor on the toke for every cryptographic operation,
+       in which case it becomes inconvenient as each attempt to find an entry
+       requires a variable number of touches of the hardware token.
+
+       The implementation already assumes that names which contain more of
+       the information in the search key should be preferred so there is an
+       ordering of preference of applicable entries.  If the decrypt and
+       parsing is removed from the initial identification of applicable
+       entries in the store then in most cases a single decrypt and parse of
+       the most preferred entry will suffice, improving the experience for
+       hardware token users that require interaction with the token.
+
+       This commit implements that strategy.  It is in spirit a refactor of
+       the existing code.
+
+       * lisp/auth-source-pass.el (auth-source-pass--matching-entries): New
+       function, generate an ordered list of regular expression matchers for
+       all possible names that could be in the password-store for the entry
+       to be found and then makes a pass over the password-store entry names
+       accumulating the matching entries in a list after the regexp that
+       matched.  This implementation ensures the password-store entry list
+       still only has to be scanned once.
+       (auth-source-pass--find-match-unambiguous): Use it to obtain candidate
+       entries and then parse them one by one until an entry containing the
+       desired information is located.  When complete, return the parsed data
+       of the entry instead of the entry name so that the information can be
+       used directly to construct the auth-source response.
+       (auth-source-pass--build-result): Update accordingly.
+       (auth-source-pass--find-match): Update docstring accordingly.
+       (auth-source-pass--select-one-entry)
+       (auth-source-pass--entry-valid-p)
+       (auth-source-pass--find-all-by-entry-name)
+       (auth-source-pass--find-one-by-entry-name): Remove.
+       (auth-source-pass--select-from-entries)
+       (auth-source-pass--accumulate-matches)
+       (auth-source-pass--entry-reducer)
+       (auth-source-pass--generate-entry-suffixes)
+       (auth-source-pass--domains)
+       (auth-source-pass--name-port-user-suffixes): New functions.
+
+       * test/lisp/auth-source-pass-tests.el: One test case was added to the
+       test suite to verify that only the minimal number of entries are
+       parsed in common cases.  The
+       auth-source-pass-only-return-entries-that-can-be-open test case had to
+       be re-implemented because the function it was used eliminated as the
+       functionality is provided elsewhere.  All the other fairly substantial
+       changes to the test suite are the result of mechanical changes that
+       were required to adapt to auth-source-pass--find-match returning the
+       data from a parsed password-store entry instead of the entry name.
+
+2019-06-24  Keith Amidon  <address@hidden>
+
+       Split out the attribute retrieval form auth-source-pass-get
+
+       Eliminate the need to repeatedly retrieve and parse the data for the
+       entry.  This is generally a good thing since it eliminates repetitions
+       of the same crypto and parsing operations.  It is especially valuable
+       when protecting an entry with a yubikey with touch required for crypto
+       operations as it eliminates the need to touch the yubikey sensor for
+       each attribute retrieved.
+
+       * lisp/auth-source-pass.el (auth-source-pass-get): Extract some code to
+       `auth-source-pass--get-attr'.
+       (auth-source-pass--get-attr): New function to get a field value from a
+       parsed entry.
+       (auth-source-pass--build-result): Make use of
+       `auth-source-pass--get-attr` to avoid repeated parsing.
+
+2019-06-24  Keith Amidon  <address@hidden>
+
+       Fix auth-source-pass to search for hostname:port/username
+
+       auth-source-pass supports entries with username either prefixed to the
+       hostname with an @ as separator or in a subdirectory under the
+       hostname.  This was true when there was no port or service included in
+       the name, but got broken with the introduction of
+       auth-source-pass-port-separator.
+
+       * lisp/auth-source-pass.el (auth-source-pass--find-match-unambiguous): 
Fix
+       to match hostname:port/username.
+       * test/lisp/auth-source-pass-tests.el: Add corresponding tests.
+
+2019-06-24  Iku Iwasa  <address@hidden>
+
+       Add auth-source-pass-port-separator option
+
+       * lisp/auth-source-pass.el (auth-source-pass-port-separator): New
+       option to specify separator between host and port, default to
+       colon (":").
+       (auth-source-pass--find-match-unambiguous): Adapt to make use of the
+       new variable.
+       * test/lisp/auth-source-pass-tests.el: Add corresponding tests.
+
+2019-06-24  galaunay  <address@hidden>
+
+       Add auth-source-pass-filename option
+
+       * lisp/auth-source-pass.el (auth-source-pass)
+       (auth-source-pass-filename): Add option to specify a customized
+       password-store path.
+       (auth-source-pass--read-entry)
+       (auth-source-pass-entries): Use the new option instead of hard-coded
+       `~/.password-store'.
+
+2019-06-24  Damien Cassou  <address@hidden>
+
+       * lisp/auth-source-pass.el (auth-source-pass-get): Add autoload
+
+       * lisp/auth-source-pass.el: Version 4.0.2
+
+2019-06-24  Magnus Henoch  <address@hidden>  (tiny change)
+
+       Fix auth-source-pass to return nil if no entry found
+
+       * lisp/auth-source-pass.el (auth-source-pass-search): If there is no
+       matching entry, auth-source-pass-search should return nil, not (nil).
+       This lets auth-source fall back to other backends in the auth-sources
+       list.
+       * test/lisp/auth-source-pass-tests.el: Add corresponding test.
+
+2019-06-23  Daniel Colascione  <address@hidden>
+
+       Fix locating pdump by symlink
+
+       * admin/merge-gnulib (GNULIB_MODULES): Add canonicalize-lgpl module
+       * build-aux/config.guess, build-aux/gitlog-to-changelog,
+       build-aux/update-copyright, lib/canonicalize-lgpl.c,
+       lib/gnulib.mk.in, lib/malloca.c, lib/malloca.h, lib/pathmax.h,
+       m4/canonicalize.m4, m4/double-slash-root.m4, m4/gnulib-comp.m4,
+       m4/malloca.m4, m4/pathmax.m4: copy from GNUlib or regenerate from
+       update
+       * src/emacs.c: find dump by canonical path
+
+2019-06-23  Lars Ingebrigtsen  <address@hidden>
+
+       Document syntax-ppss-context
+
+       * doc/lispref/syntax.texi (Parser State): Document it.
+
+       * lisp/emacs-lisp/syntax.el (syntax-ppss-context): Add a doc
+       string (bug#32504).
+
+2019-06-23  Martin Kletzander  <address@hidden>  (tiny change)
+
+       Autojoin channels with same name on different servers in erc
+
+       * lisp/erc/erc-join.el (erc-autojoin-channels): Join channels with
+       the same name on different servers (bug#32723).
+
+2019-06-23  Alex Branham  <address@hidden>
+
+       (if-let): Improve docstring by mentioning let*
+
+       * lisp/emacs-lisp/subr-x.el (if-let): Clarify that if-let is like
+       let*, not like let (bug#33550).
+
+2019-06-23  Carlos Pita  <address@hidden>
+
+       Fix auto-revert resizing in image mode
+
+       * lisp/image-mode.el (image-transform-properties): Get image
+       parameters right after reverting; in particular, compute the
+       correct max size (bug#33631).
+
+2019-06-23  Paul Eggert  <address@hidden>
+
+       Don’t line-buffer stderr
+
+       * src/sysdep.c (init_standard_fds) [DOS_NT]: Don’t line-buffer stderr.
+       This reverts 2019-06-20T07:32:17!address@hidden.  See:
+       https://lists.gnu.org/r/emacs-devel/2019-06/msg00882.html
+
+2019-06-23  Mattias Engdegård  <address@hidden>
+
+       Check validity of rx submatch-n number
+
+       * lisp/emacs-lisp/rx.el (rx-submatch): Type and range check (Bug#34373).
+
+2019-06-23  Mattias Engdegård  <address@hidden>
+
+       Optional space and unit in `file-size-human-readable' (bug#35756)
+
+       To improve readability of strings produced by
+       `file-size-human-readable', add two optional arguments:
+
+       - SPACE, to provide a string (typically a space or non-breaking space)
+       to put between the number and unit.  For compatibility, the default is
+       an empty string.
+
+       - UNIT, a string to use as unit.  For compatibility, the default is
+       "B" in `iec' mode and the empty string otherwise.
+
+       Also fix a glitch with small numbers in `iec' mode which caused a
+       stray "i" in the result.
+
+       * lisp/files.el (file-size-human-readable):
+       Add optional SPACE and UNIT arguments and handle small numbers 
correctly.
+       (files--ask-user-about-large-file, warn-maybe-out-of-memory):
+       Call with `iec' and space.
+       * test/lisp/files-tests.el (files-test-file-size-human-readable): New 
test.
+       * lisp/url/url-http.el (url-http-simple-after-change-function)
+       (url-http-content-length-after-change-function): Call with `iec' and 
space.
+       * etc/NEWS (Lisp Changes): Mention the change.
+
+2019-06-23  Michael Brumlow  <address@hidden>  (tiny change)
+
+       (hfy-fontify-buffer): Inhibit read only
+
+       * lisp/htmlfontify.el (hfy-fontify-buffer): Inhibit read only to
+       enable the function to work with text that comes from buffers that
+       put read-only text properties on things (bug#35025).
+
+2019-06-23  Mauro Aranda  <address@hidden>
+
+       Document Winner mode user options
+
+       * doc/emacs/windows.texi (Window Convenience): Add documentation for
+       the user options winner-dont-bind-my-keys, winner-ring-size and
+       winner-boring-buffers (bug#35146).
+
+2019-06-23  Alexander Gramiak  <address@hidden>
+
+       src/bytecode.c (exec_byte_code) Unroll Blist3 and Blist4
+
+       * src/bytecode.c (exec_byte_code): Unroll Blist3 and Blist4
+       (bug#35321).
+
+2019-06-23  Eric Abrahamsen  <address@hidden>
+
+       Add NEWS entry for new command gnus-summary-browse-url
+
+       * etc/NEWS: It is documented in the manual.
+
+2019-06-23  Drew Adams  <address@hidden>
+
+       Make ls-lisp--dired ape dired-noselect more closely
+
+       * lisp/ls-lisp.el (ls-lisp--dired): Emulate the behaviour of
+       non-ls-lisp.el dired better by defaulting to default-directory as
+       dired-noselect does (bug#35390).
+
+2019-06-23  Van L  <van@scratch.space>
+
+       Add a Code: tag to subr.el
+
+       * lisp/subr.el: Add a Code: tag comment (bug#35595).
+
+2019-06-23  Lars Ingebrigtsen  <address@hidden>
+
+       Remove outdate comment about an utf-8 cookie that was removed in 2015
+
+2019-06-23  Nick Drozd  <address@hidden>
+
+       Handle 'code' tag in shr.el
+
+       * etc/NEWS: Announce change in shr behavior (bug#36247).
+       * lisp/net/shr.el: Add 'code' tag handling.
+
+2019-06-23  Eric Abrahamsen  <address@hidden>
+
+       New command gnus-summary-browse-url
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-browse-url): New command for
+         browsing URLs from the article buffer from the summary buffer.
+         (gnus-summary-mode-map): Bind to "w".
+         (gnus-summary-article-map): And to "A w".
+       * doc/misc/gnus.texi (Article Commands): Document.
+
+2019-06-23  Michael Albinus  <address@hidden>
+
+       Improve error handling in tramp-gvfs
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-get-directory-attributes)
+       (tramp-gvfs-get-root-attributes)
+       (tramp-gvfs-handle-file-attributes): Don't ignore errors.
+       (tramp-make-goa-name): New defun.
+       (tramp-gvfs-get-remote-prefix): Use it.
+       (tramp-gvfs-maybe-open-connection): Raise user errors in case of.
+       Check also, that GOA accounts are proper.
+       (tramp-get-goa-accounts): Cache connection property.
+
+       * lisp/net/tramp.el (tramp-handle-file-equal-p)
+       (tramp-handle-file-in-directory-p): Use `tramp-equal-remote'.
+
+2019-06-23  Lars Ingebrigtsen  <address@hidden>
+
+       Document what the `t' value for HIST in `read-string' means
+
+       * src/minibuf.c (syms_of_minibuf): Say that `t' means "no history"
+       (bug#36324).
+       (Fread_from_minibuffer): Say the same for HIST.
+
+2019-06-22  Simen Heggestøyl  <address@hidden>
+
+       Split up and add tests for two page.el functions
+
+       * lisp/textmodes/page.el (page--count-lines-page): New function
+       extracted from `count-lines-page'.
+       (count-lines-page): Extract main logic into `page--count-lines-page'.
+       (page--what-page); New function extracted from `what-page'.
+       (what-page): Extract main logic into `page--what-page'.
+
+       * test/lisp/textmodes/page-tests.el (page-tests-count-lines-page)
+       (page-tests-what-page): New tests for `page--count-lines-page' and
+       `page--what-page'.  (Bug#36009)
+
+2019-06-22  Stefan Monnier  <address@hidden>
+
+       (with-suppressed-warnings): Also suppress warnings when not 
byte-compiling
+
+       * lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): Bind
+       byte-compile--suppressed-warnings when possible.
+
+2019-06-22  Allen Li  <address@hidden>
+
+       Fix defining inverse abbrevs on previous words (Bug#36243)
+
+       * lisp/abbrev.el (inverse-add-abbrev): Skip trailing nonword
+       characters when defining abbrev.
+
+       * test/lisp/abbrev-tests.el (abbrev-edit-save-to-file-test): Add
+       regression tests.
+
+2019-06-22  Noam Postavsky  <address@hidden>
+
+       Fix python docstring auto-fill (Bug#36056)
+
+       * lisp/progmodes/python.el (python-mode): Set
+       fill-indent-according-to-mode locally to t.  This lets auto-fill do
+       the right thing when auto-filling inside a docstring.  The default was
+       to nil on 2001-11-25 "(fill-indent-according-to-mode): Default to nil"
+       with the comment that it "screws up CC-mode's filling tricks".  But
+       presumably it shouldn't be a problem for python-mode.
+       * test/lisp/progmodes/python-tests.el (python-auto-fill-docstring):
+       New test.
+
+2019-06-22  Noam Postavsky  <address@hidden>
+
+       Make rcirc parsing more RFC2812 compliant (Bug#36233)
+
+       Do continue to allow multiple spaces between arguments, even though
+       that is technically not allowed by the RFC.
+       * lisp/net/rcirc.el (rcirc-process-server-response-1): Fix parsing of
+       arguments which contain colons.
+       * test/lisp/net/rcirc-tests.el: New test.
+
+2019-06-22  Noam Postavsky  <address@hidden>
+
+       * lisp/net/rcirc.el (rcirc-prompt-for-encryption): Simplify.
+
+2019-06-22  Paul Eggert  <address@hidden>
+
+       Bring macuvs.h back under Git control
+
+       * admin/unidata/Makefile.in (maintainer-clean):
+       Instead of removing macuvs.h here ...
+       (extraclean): ... Remove it here.
+       * admin/unidata/uvs.el (uvs-print-table-ivd):
+       Add to comment explaining why macuvs.h is in Git.
+       * src/macuvs.h: Regenerate and re-add to Git.
+
+2019-06-22  Lars Ingebrigtsen  <address@hidden>
+
+       Respect case-insensite DelSp flow-fill parameter
+
+       * lisp/gnus/mm-view.el (mm-inline-text): The DelSp parameter is
+       case-insentitive, so make it work then it's "Yes" (bug#26775).
+
+2019-06-22  Andreas Schwab  <address@hidden>
+
+       (nnir-notmuch-remove-prefix): Respect MAILDIR
+
+       * lisp/gnus/nnir.el (nnir-notmuch-remove-prefix): Respect MAILDIR
+       and regexp-quote the result (bug#34940).
+
+2019-06-22  Lars Ingebrigtsen  <address@hidden>
+
+       Use plain report-emacs-bug instead of gnus-bug
+
+       * doc/misc/gnus.texi (Compatibility): Remove mention of deprecated
+       variable.
+       * lisp/gnus/gnus-msg.el (gnus-bug): Just use `report-emacs-bug'.
+       (gnus-bug-kill-buffer): Remove.
+       (gnus-bug-create-help-buffer, gnus-bug-message): Remove.
+
+2019-06-22  Robert Pluim  <address@hidden>
+
+       Export Gnus calendar events to org even if they have no description
+
+       * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event->org-entry):
+       Don't ignore events that have no description.
+
+2019-06-22  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Make ftcr font backend driver more consistent with xft
+
+       * src/ftcrfont.c: Include charset.h.
+       (ftcrfont_has_char): Import font adstyle related code from 
ftfont_has_char.
+
+2019-06-22  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from savehist.el (reworked)
+
+       * lisp/savehist.el (savehist-coding-system, savehist-install)
+       (savehist-uninstall, savehist-save): Remove XEmacs compat code.
+       (savehist-trim-history): Made obsolete.
+       (savehist-minibuffer-hook): Update comment to reflect the t value
+       of HISTORY in `read-string'.
+
+2019-06-22  Christophe Troestler  <address@hidden>  (tiny change)
+
+       epg: Use unibyte string to decode percent escapes
+
+       * lisp/epg.el (epg--status-USERID_HINT, epg--status-*SIG)
+       (epg--status-IMPORTED): Call epg--decode-percent-escape-as-utf-8.
+       (epg--decode-percent-escape): Convert STRING to unibyte.
+       (epg--decode-percent-escape-as-utf-8): New function.  (Bug#36098)
+
+2019-06-22  Stefan Kangas  <address@hidden>
+
+       Add tests for mail/flow-fill.el
+
+       * test/lisp/mail/flow-fill-tests.el: New file.
+       * lisp/mail/flow-fill.el (fill-flowed-encode-tests)
+       (fill-flowed-test): Make obsolete.  (Bug#36174)
+
+2019-06-22  Stefan Kangas  <address@hidden>
+
+       Make toolbar show keyboard equivalents in its tooltips
+
+       * src/keyboard.c (parse_tool_bar_item): Add equivalent key binding to
+       the tooltip string of toolbar buttons.
+       * etc/NEWS: Announce it.
+       * etc/TODO: Remove its entry.  (Bug#36156)
+
+2019-06-22  Teemu Likonen  <address@hidden>
+
+       Update epg.el algorithm id-name association lists
+
+       * lisp/epg.el (epg-pubkey-algorithm-alist)
+       (epg-digest-algorithm-alist, epg-compress-algorithm-alist): Add
+       new identifiers from openpgpdefs.h.
+
+2019-06-22  Stefan Kangas  <address@hidden>
+
+       Move mantemp.el to obsolete/
+
+       * lisp/progmodes/mantemp.el: Move to obsolete/. (bug#34789)
+       * doc/emacs/ack.texi (Acknowledgments): Remove obsolete library
+       mantemp.el.
+
+2019-06-22  Eli Zaretskii  <address@hidden>
+
+       Fix an off-by-one error in assertion
+
+       * src/fileio.c (Fexpand_file_name): Fix off-by-one error in an
+       assertion.  This avoids assertion violations when the home
+       directory is an empty string for some reason.  (Bug#36363)
+
+2019-06-22  Eli Zaretskii  <address@hidden>
+
+       Correct and update the mapping of LaTeX encodings
+
+       * lisp/international/latexenc.el
+       (latex-inputenc-coding-alist): Fix the association of latin5.
+       (Bug#36253) Uncomment latin10 and map it to iso-8859-16.
+
+2019-06-22  Eli Zaretskii  <address@hidden>
+
+       Avoid using string-make-unibyte in select.el
+
+       * lisp/select.el (selection-coding-system): Doc fix.
+       (xselect--encode-string): For C_STRING, if the text is not
+       already unibyte, use encode-coding-string instead of
+       string-make-multibyte to make it unibyte.
+
+2019-06-21  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Make ftcr font backend driver more consistent with xft
+
+       * src/ftcrfont.c (ftcrfont_open): Use metrics of glyph ID 0 if there is 
no
+       glyph for an ASCII printable.
+
+2019-06-21  YAMAMOTO Mitsuharu  <address@hidden>
+
+       * src/font.c (Ffont_xlfd_name): Don't use strcpy for overlapping 
strings.
+
+2019-06-21  Paul Eggert  <address@hidden>
+
+       Fix default build-from-Git on macOS
+
+       * configure.ac (NS_IMPL_COCOA): Do not default to "yes" if
+       src/macuvs.h is absent, which is possible in a build from Git.
+
+2019-06-21  Paul Eggert  <address@hidden>
+
+       Remove src/macuvs.h from Git repository
+
+       It can be generated automatically and easily during a normal
+       bootstrap, so there’s no need to keep it in the repository.
+       * admin/unidata/Makefile.in (maintainer-clean):
+       Behave like extraclean and remove macuvs.h etc.
+       * src/macuvs.h: Remove.
+
+2019-06-21  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Remove XEmacs compat code from savehist.el"
+
+       This reverts commit a97ba6eb305c9db8641c0e65748907cd53dbfa5e.
+
+       According to bug#36324, this broke savehist.el
+
+2019-06-21  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-dynamic): Mark obsolete
+
+       See bug#11649 for an example problem, and emacs-devel discussion
+       «Prickliness of the "invalid byte code" stuff».
+
+       * lisp/wid-edit.el, lisp/wdired.el, lisp/vc/pcvs-util.el:
+       * lisp/progmodes/executable.el, lisp/mail/sendmail.el:
+       * lisp/emacs-lisp/cl-seq.el, lisp/emacs-lisp/cl-macs.el:
+       * lisp/emacs-lisp/cl-lib.el, lisp/emacs-lisp/cl-extra.el:
+       * lisp/dired-x.el, lisp/dired-aux.el, lisp/calendar/calendar.el:
+       Don't use byte-compile-dynamic any more.
+
+2019-06-20  Stefan Monnier  <address@hidden>
+
+       * lisp/vc/ediff-*.el: Use lexical-binding, plus misc cleanup
+
+       Re-enable lexical-binding in ediff.  For that, change ediff-find-file
+       so as not to rely on dynamic scoping in its calling convention.
+
+       * lisp/vc/ediff-diff.el: Move `provide` to the end.
+       Remove redundant :group.
+       (ediff-exec-process): Disregard current directory.
+       (ediff-forward-word-function): Use defvar-local.
+
+       * lisp/vc/ediff-help.el (ediff-set-help-message): Use functionp.
+
+       * lisp/vc/ediff-hook.el (menu-bar-ediff-misc-menu): Make a toggle, as
+       in the XEmacs menu.
+
+       * lisp/vc/ediff-init.el (ediff-defvar-local): Add `doc-string` prop.
+       (ediff-check-version): Delete function, unused.
+
+       * lisp/vc/ediff-mult.el: Move `provide` to the end.
+       Remove redundant :groups.
+       (ediff-dir-diffs-buffer-map):
+       Move initialization into declaration.
+       (ediff-meta-mode): Use define-derived-mode.
+       (ediff-intersect-directories): Remove `comparison-func`, unused.
+       (ediff-prepare-meta-buffer): Fix use of `startup-hooks`.
+
+       * lisp/vc/ediff-ptch.el: Move `provide` to the end.
+
+       * lisp/vc/ediff-util.el (ediff-add-to-history): Use add-to-history 
instead.
+
+       * lisp/vc/ediff-vers.el (ediff-vc-internal, ediff-vc-merge-internal):
+       Use push and closures.
+
+       * lisp/vc/ediff-wind.el: Remove redundant :groups.
+
+       * lisp/vc/ediff.el: Move `provide` to the end.
+       Remove redundant :groups.
+       (ediff--magic-file-name, ediff--startup-hook): New vars.
+       (ediff-find-file): Change calling convention so as not to use
+       symbols as value cells.
+       (ediff--buffer-file-name): New function.
+       (ediff-files-internal): Adjust to new calling convention of 
ediff-find-file.
+       (ediff-directories-internal, ediff-directory-revisions-internal)
+       (ediff-regions-internal): Use push and closures.
+
+2019-06-20  YAMAMOTO Mitsuharu  <address@hidden>
+
+       * src/xterm.c (x_update_end) [USE_CAIRO]: Flush non-double-buffered 
surface.
+
+2019-06-20  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix blank tooltips on cairo (Bug#36298)
+
+       * src/xterm.h (x_cr_update_surface_desired_size) [USE_CAIRO]: Add 
extern.
+       * src/xterm.c (x_cr_update_surface_desired_size) [USE_CAIRO]: Make 
non-static.
+       * src/xfns.c (Fx_show_tip) [USE_CAIRO]: Call 
x_cr_update_surface_desired_size.
+
+2019-06-20  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix broken display by frame maximization on cairo (Bug#23925)
+
+       * src/xterm.c (handle_one_xevent) [USE_CAIRO && USE_GTK]: Make calls to
+       x_cr_update_surface_desired_size coincide with those to 
xg_frame_resized.
+
+2019-06-20  Stefan Monnier  <address@hidden>
+
+       * lisp/vc/vc-dir.el (vc-dir-search): Avoid `eval`.
+
+2019-06-20  Paul Eggert  <address@hidden>
+
+       Fix extraclean in a different way for info+lib/sys
+
+       * Makefile.in (extraclean):
+       * lib/Makefile.in (extraclean): Use rmdir but suppress any
+       error indication.  That way, ‘make extraclean’ will remove the
+       directory if it’s empty, and successfully do nothing otherwise.
+
+2019-06-20  Eli Zaretskii  <address@hidden>
+
+       Fix aborts when the value of a display property causes redisplay
+
+       * src/xdisp.c (handle_single_display_spec): Protect the bidi
+       cache from evaluation that triggers redisplay.  (Bug#36312)
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Leave the emtpy info and lib/sys in extraclean
+
+       * lib/Makefile.in: Ditto.
+
+       * Makefile.in (extraclean): Don't use GNU-specific rmdir; just
+       leave the empty directory be.
+
+2019-06-20  Paul Eggert  <address@hidden>
+
+       Simplify lib-src version printing
+
+       * lib-src/Makefile.in (etags_cflags): Remove.
+       All uses replaced by a simple ‘-o $@’.
+       (ebrowse${EXEEXT}, emacsclient${EXEEXT}, emacsclientw${EXEEXT}):
+       Omit -DVERSION= option.
+       * lib-src/ebrowse.c (VERSION):
+       * lib-src/emacsclient.c (VERSION):
+       * lib-src/etags.c (EMACS_NAME, VERSION): Remove.
+       All uses replaced by PACKAGE_NAME and PACKAGE_VERSION.
+       * lib-src/ebrowse.c (version):
+       * lib-src/etags.c (print_version):
+       Use fputs to output the version info, since that’s fputs_unlocked.
+       * lib-src/etags.c (PROGRAM_NAME): New macro.
+       (print_version): Use it.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Make extraclean return tree to pristine state by deleting more
+
+       * src/Makefile.in (extraclean): Remove TAGS and config.in.
+
+       * Makefile.in (extraclean): Remove info, configure and
+       emacsver.texi in extraclean.
+       * admin/unidata/Makefile.in (extraclean): Make it depend on
+       distclean to remove .elc files.
+
+       * leim/Makefile.in (extraclean): Depend on bootstrap-clean to
+       remove generated .el files.
+
+       * lib/Makefile.in (extraclean): Added target to remove sys
+       directory and run distclean.
+
+       * lisp/Makefile.in (extraclean): Also remove loaddefs*.el~ files.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Add doc strings to the ielm * variables
+
+       * lisp/ielm.el: (*, **, ***): Add doc strings.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Don't define *, ** and ** in ielm as real variables
+
+       * lisp/ielm.el: (*, **, ***): Change defvars into compiler
+       directives instead of real variable definitions to avoid polluting
+       the global Emacs namespace.
+       (*1, *2, *3): Ditto.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Fix compilation warning in esh-mode
+
+       * lisp/eshell/esh-mode.el (eshell-mode): Remove special binding
+       for M-. in eshell buffers: The comment indicates that this is
+       outdated code.
+       (eshell-find-tag): Make obsolete.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Fix compilation warning in viper-exp involving tags
+
+       * lisp/emulation/viper-ex.el (ex-tag): Use xref/next-error instead
+       of the deprecated tags functions.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Declare semantic-*overlay* aliases obsolete
+
+       * lisp/cedet/semantic/fw.el: Declare all the semantic-*overlay*
+       aliases obsolete.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Throughout cedet, don't use semantic-overlay-* compat aliases
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from cedet
+
+       * lisp/cedet/srecode/mode.el (srecode-menu-bar):
+       * lisp/cedet/semantic/wisent/comp.el (wisent-debug-flag)
+       (wisent-print-results):
+       * lisp/cedet/semantic/util-modes.el
+       (semantic-stickyfunc-indent-string)
+       (semantic-stickyfunc-header-line-format)
+       (semantic-highlight-func-mode-map):
+       * lisp/cedet/semantic/symref/list.el
+       (semantic-symref-list-menu-entries):
+       * lisp/cedet/semantic/idle.el ()
+       (semantic-idle-breadcrumbs-popup-menu):
+       * lisp/cedet/semantic/grammar.el (semantic-grammar-item-value)
+       (semantic-grammar-create-package)
+       (semantic-grammar-batch-build-packages)
+       (semantic-grammar-setup-menu):
+       * lisp/cedet/semantic/fw.el (semantic-overlay-live-p)
+       (semantic-event-window, semantic-make-local-hook)
+       (semantic-run-mode-hooks, semantic-subst-char-in-string)
+       (semantic-menu-item, semantic-find-file-noselect):
+       * lisp/cedet/semantic/format.el (semantic-format-face-alist)
+       (semantic--format-colorize-merge-text):
+       * lisp/cedet/semantic/decorate/include.el ()
+       (semantic-decoration-on-include-menu)
+       (semantic-decoration-on-unknown-include-menu)
+       (semantic-decoration-on-fileless-include-menu)
+       (semantic-decoration-on-unparsed-include-menu):
+       * lisp/cedet/semantic/decorate.el (semantic-set-tag-read-only)
+       (semantic-tag-read-only-p):
+       * lisp/cedet/mode-local.el (activate-mode-local-bindings):
+       * lisp/cedet/data-debug.el (data-debug-overlay-properties): Remove
+       XEmacs compat code.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from gravatar.el
+
+       * lisp/image/gravatar.el (gravatar-retrieve): Remove XEmacs compat code
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from erc
+
+       * lisp/erc/erc-button.el (button, erc-button-keymap)
+       (erc-button-setup, erc-button-add-button): Remove XEmacs compat code.
+
+       * lisp/erc/erc-compat.el (erc-replace-match-subexpression-in-string):
+
+       * lisp/erc/erc-log.el (erc-log-file-coding-system):
+
+       * lisp/erc/erc-menu.el (menu):
+
+       * lisp/erc/erc-stamp.el (erc-timestamp-use-align-to):
+
+       * lisp/erc/erc-track.el (erc-modified-channels-object, track)
+       (erc-track-mouse-face):
+
+       * lisp/erc/erc.el (erc-update-undo-list)
+       (erc-quit-reason-various, erc-part-reason-various, erc-cmd-SV)
+       (erc-input-message, erc-get-channel-mode-from-keypress)
+       (erc-update-mode-line-buffer):
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from table.el
+
+       * lisp/textmodes/table.el:
+       (table-disable-menu, null, table-recognize-cell)
+       (table--make-cell-map, table--update-cell)
+       (table--update-cell-widened, table--update-cell-heightened)
+       (table--read-from-minibuffer, table--untabify)
+       (table--update-cell-face, table--warn-incompatibility)
+       (table--fill-region, table--set-timer): Remove XEmacs compat code.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from dns-mode.el
+
+       * lisp/textmodes/dns-mode.el (dns-mode): Remove XEmacs compat code.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Clean up eieio-custom slightly
+
+       * lisp/emacs-lisp/eieio-custom.el: Remove commented out code.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from checkdoc.el
+
+       * lisp/emacs-lisp/checkdoc.el (checkdoc-minor-mode-map): Remove
+       XEmacs compat code.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Clean up after previous viper patch
+
+       * lisp/emulation/viper-ex.el (viper-get-ex-address-subr): Fix
+       syntax error in last checkin.
+       (viper-ex): Don't use now-obsolete function.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Remove most of the XEmacs compat code from viper*.el
+
+       * lisp/emulation/viper-cmd.el ()
+       (viper-insert-state-post-command-sentinel)
+       (viper-change-state-to-vi, viper-change-state-to-insert)
+       (viper-change-state-to-emacs, viper-escape-to-state)
+       (viper-special-read-and-insert-char, viper-toggle-key-action)
+       (viper-prefix-arg-value, viper-prefix-arg-com)
+       (viper-digit-argument, viper-command-argument, )
+       (viper-exec-Yank, viper-repeat, viper-forward-char)
+       (viper-backward-char, viper-forward-word, viper-forward-Word)
+       (viper-end-of-word, viper-end-of-Word, viper-backward-word)
+       (viper-backward-Word, viper-beginning-of-line)
+       (viper-bol-and-skip-white, viper-goto-eol, viper-goto-col)
+       (viper-next-line, viper-next-line-at-bol, viper-previous-line)
+       (viper-previous-line-at-bol, viper-goto-line, )
+       (viper-repeat-find, viper-repeat-find-opposite)
+       (viper-window-top, viper-window-middle, viper-window-bottom)
+       (viper-paren-match, viper-search, viper-buffer-search-enable)
+       (viper-put-back, viper-Put-back, viper-mark-point)
+       (viper-cycle-through-mark-ring, viper-goto-mark-subr)
+       (viper-brac-function, viper-register-to-point)
+       (viper-submit-report): Remove some XEmacs compat code.
+
+       * lisp/emulation/viper-ex.el (viper-get-ex-address-subr)
+       (viper-handle-!, ex-edit, ex-mark, ex-next-related-buffer)
+       (ex-help, ex-write, ex-write-info, viper-info-on-file): Ditto.
+
+       * lisp/emulation/viper-keym.el (viper-add-keymap): Ditto.
+
+       * lisp/emulation/viper-macs.el (viper-record-kbd-macro): Remove
+       XEmacs compat code.
+
+       * lisp/emulation/viper-mous.el (viper-mouse-click-insert-word)
+       (viper-mouse-click-search-word): Remove some XEmacs compat code.
+
+       * lisp/emulation/viper-util.el (viper-overlay-p)
+       (viper-color-defined-p, viper-iconify, viper-memq-char)
+       (viper-char-equal, viper=, viper-color-display-p)
+       (viper-get-cursor-color, viper-frame-value)
+       (viper-change-cursor-color, viper-save-cursor-color)
+       (viper-restore-cursor-color, viper-get-visible-buffer-window)
+       (viper-file-checked-in-p, viper-put-on-search-overlay)
+       (viper-flash-search-pattern, viper-hide-search-overlay)
+       (viper-move-replace-overlay, viper-set-replace-overlay)
+       (viper-set-replace-overlay-glyphs, viper-hide-replace-overlay)
+       (viper-replace-start, viper-replace-end)
+       (viper-set-minibuffer-overlay, viper-check-minibuffer-overlay)
+       (viper-abbreviate-file-name, viper-mark-marker)
+       (viper-set-mark-if-necessary, viper-leave-region-active)
+       (viper-copy-event, viper-read-event-convert-to-char)
+       (viper-event-key, viper-last-command-char)
+       (viper-key-to-emacs-key, viper-eventify-list-xemacs)
+       (viper-set-unread-command-events, viper-char-array-p)
+       (viper-key-press-events-to-chars, viper-read-char-exclusive):
+       Remove most of the XEmacs compat code.
+
+       * lisp/emulation/viper.el (viper-go-away, viper-set-hooks)
+       (viper-non-hook-settings): Remove some XEmacs compat code.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from viper-macs.el
+
+       * lisp/emulation/viper-macs.el (viper-char-array-to-macro):
+       Remove XEmacs compat code.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from viper-cmd.el
+
+       * lisp/emulation/viper-cmd.el (viper-change-state)
+       (viper-escape-to-state, viper-special-read-and-insert-char)
+       (viper-prefix-arg-value, viper-prefix-arg-com)
+       (viper-display-current-destructive-command)
+       (viper-file-add-suffix, viper-adjust-window)
+       (viper-set-searchstyle-toggling-macros)
+       (viper-set-parsing-style-toggling-macro)
+       (viper-set-emacs-state-searchstyle-macros): Remove XEmacs compat code.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs and old Emacs compat code from gamegrid.el
+
+       * lisp/play/gamegrid.el (gamegrid-event-x, gamegrid-event-y)
+       (gamegrid-make-glyph, image-size, gamegrid-initialize-display)
+       (gamegrid-start-timer, gamegrid-set-timer)
+       (gamegrid-kill-timer)
+       (gamegrid-add-score-with-update-game-score-1)
+       (gamegrid-add-score-insecure): Removed XEmacs compat code.
+       (gamegrid-characterp, gamegrid-set-display-table): Removed functions.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from binhex.el
+
+       * lisp/mail/binhex.el (binhex-insert-char): Remove XEmacs compat
+       code and made into a function instead of a defalias.
+       (binhex-decode-region-internal): Remove XEmacs compat code.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from uudecode.el
+
+       * lisp/mail/uudecode.el (uudecode-decode-region-external)
+       (uudecode-decode-region-internal): Remove XEmacs compat code.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from pascal.el
+
+       * lisp/progmodes/pascal.el (pascal-mark-defun): Remove XEmacs compat.
+
+2019-06-20  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs support from cperl-mode
+
+       * lisp/progmodes/cperl-mode.el (condition-case)
+       (cperl-electric-parens-mark, cperl-del-back-ch)
+       (cperl-do-not-fontify, cperl-mode, cperl-find-pods-heres)
+       (cperl-write-tags, cperl-tags-hier-init, cperl-perldoc)
+       (cperl-build-manpage): Remove XEmacs support.
+
+       There's a lot of support code in here for older versions of Emacs that
+       could be removed, too.
+
+2019-06-20  Paul Eggert  <address@hidden>
+
+       Simplify stdout buffering
+
+       * src/sysdep.c (_sobuf): Remove; we no longer need this
+       microoptimization.
+       (init_sys_modes): Simplify by assuming setvbuf.
+
+2019-06-20  Paul Eggert  <address@hidden>
+
+       Remove no-longer-needed fflushes of stderr
+
+       * src/gmalloc.c (mabort) [GC_MCHECK && !__GNU_LIBRARY__]:
+       * src/term.c (vfatal): Remove fflush (stderr) when it is now a
+       no-op because newline automatically flushes stderr.
+
+2019-06-20  Paul Eggert  <address@hidden>
+
+       Line-buffer stderr
+
+       * src/sysdep.c (init_standard_fds) [!DOS_NT]:
+       Use setvbuf to ensure stderr is line-buffered.
+
+2019-06-20  Paul Eggert  <address@hidden>
+
+       Fix arbitrary INT_MAX limit on referrer repr
+
+       * src/pdumper.c (print_paths_to_root_1):
+       Don’t assume strlen (repr) < INT_MAX.
+
+2019-06-20  Paul Eggert  <address@hidden>
+
+       Minor putc tweaks
+
+       * src/emacs-module.c (module_abort):
+       * src/xdisp.c (vmessage):
+       Prefer fputc to putc, since speed isn’t crucial here.
+       * src/region-cache.c (pp_cache) [ENABLE_CHECKING]: Simplify.
+
+2019-06-19  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Change font_put_extra value for property removal from Qnil to Qunbound
+
+       * src/font.c (font_put_extra): If VAL is Qunbound, delete the slot for 
PROP from
+       the list of extra properties.  Previous value Qnil is valid as boolean.
+       (font_clear_prop): Changed argument of font_put_extra for property 
removal.
+
+2019-06-19  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix failure of setting default face attribute in init script (Bug#36284)
+
+       * src/xsettings.c (apply_xft_settings): Undo replacing all #ifdef 
HAVE_XFT
+       with #if defined USE_CAIRO || defined HAVE_XFT for this function.
+
+2019-06-19  Roland Winkler  <address@hidden>
+
+       * lisp/bookmark.el (bookmark-set-internal): Fix format string.
+
+2019-06-19  Juri Linkov  <address@hidden>
+
+       Add file sorting options to find-dired and grep-find (bug#36110)
+
+       * lisp/find-dired.el (find-ls-option-default-ls)
+       (find-ls-option-default-exec, find-ls-option-default-xargs):
+       New variables for values used for options of 'find-ls-option'.
+       (find-ls-option): Use these variables for default values and options.
+       (find-dired-refine-function): Refine :type.
+
+       * lisp/progmodes/grep.el (grep-find-use-xargs): Use defcustom
+       instead of defvar.  Add new value 'gnu-sort'.
+       (grep-compute-defaults): Handle new 'gnu-sort' option of
+       'grep-find-use-xargs'.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs and ancient Emacs compatibility from newst-backend.el
+
+       * lisp/net/newst-backend.el: Remove compatibility with XEmacs and
+       ancient Emacs versions.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Doc string fix
+
+       * lisp/calendar/timeclock.el (timeclock-completing-read): Fix doc
+       string punctuation.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from timeclock.el
+
+       * lisp/calendar/timeclock.el (timeclock-completing-read)
+       (timeclock-ask-for-project, timeclock-ask-for-reason): Remove
+       XEmacs compat code.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Remove more XEmacs compat code from epa.el
+
+       * lisp/epa.el (epa-key-mode, epa-key-list-mode): Remove XEmacs
+       compat code.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from calc
+
+       * lisp/calc/calc.el (calc-read-key-sequence)
+       (calcDigit-start, calc-read-key, calc-unread-command)
+       (calc-clear-unread-commands):
+       * lisp/calc/calc-misc.el (calc-dispatch-help):
+       * lisp/calc/calc-help.el (calc-help-for-help)
+       (calc-describe-key):
+       * lisp/calc/calc-ext.el (calc-fancy-prefix, calc-user-key-map):
+       Remove XEmacs compat code.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from savehist.el
+
+       * lisp/savehist.el:
+       (savehist-install, savehist-uninstall, savehist-save)
+       (savehist-trim-history, savehist-printable)
+       (savehist-minibuffer-hook): Remove XEmacs compat code.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from ps-print
+
+       * lisp/ps-print.el:
+       (ps-print-color-p, ps-postscript-code-directory, ps-setup):
+       * lisp/ps-def.el:
+       (ps-mark-active-p, ps-face-foreground-name)
+       (ps-face-background-name, ps-color-device, ps-color-values)
+       (ps-face-bold-p, ps-face-italic-p, ps-face-strikeout-p)
+       (ps-face-overline-p, ps-face-box-p)
+       (ps-generate-postscript-with-faces1): Remove XEmacs compat code
+       and some outdated Emacs compat code.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from epa.el
+
+       * lisp/epa.el (epa-key-list-mode, epa-key-mode)
+       (epa--find-coding-system-for-mime-charset): Remove XEmacs compat
+       code and comments.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from dframe.el
+
+       * lisp/dframe.el (dframe-update-speed, dframe-update-keymap)
+       (dframe-frame-mode, dframe-detach, dframe-set-timer-internal)
+       (dframe-popup-kludge, dframe-mouse-event-p)
+       (dframe-track-mouse, dframe-help-echo, dframe-mouse-set-point)
+       (dframe-double-click, dframe-temp-buffer-show-function)
+       (dframe-hack-buffer-menu, dframe-mouse-hscroll): Remove XEmacs
+       compat code (and some ancient Emacs compat code).
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from ansi-color.el
+
+       * lisp/ansi-color.el (ansi-color-apply-overlay-face)
+       (ansi-color-make-face, ansi-color-make-extent)
+       (ansi-color-set-extent-face): Remove XEmacs compat code.
+
+2019-06-19  Alan Mackenzie  <address@hidden>
+
+       Update CC Mode's version number to 5.34
+
+       * doc/misc/cc-mode.texi (top level, "Introduction"),
+       lisp/progmodes/cc-defs.el (c-version): Update version number to 5.34.
+
+2019-06-19  Eli Zaretskii  <address@hidden>
+
+       Update documentation of font backends on MS-Windows
+
+       * doc/emacs/msdos.texi (Windows Fonts): Update the
+       documentation of requesting specific font backends.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Fix typo in previous erc.el change
+
+       * lisp/erc/erc.el (erc-send-input): Fix typo in previous checkin.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Use add/remove-hook on erc-pre-send-functions
+
+       * lisp/erc/erc-goodies.el (noncommands): Ditto.
+
+       * lisp/erc/erc-ring.el (ring): Use add/remove-hook.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Move around defgeneric/defmethods in eieio
+
+       * lisp/emacs-lisp/eieio.el (object-print):
+       * lisp/emacs-lisp/eieio-base.el (eieio-object-set-name-string):
+       Move the defgeneric before the defmethod, because that makes more
+       sense.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Fix previous change to erc (where commands like /me wouldn't be sent)
+
+       * lisp/erc/erc-ring.el (erc-add-to-input-ring):
+       * lisp/erc/erc-goodies.el (erc-send-distinguish-noncommands): Pass
+       in a erc-input structure instead of a simple string.
+       * lisp/erc/erc.el (erc-pre-send-functions): Document the new
+       argument to the filter functions.
+       (erc-send-input): Use the new structure to allow the filter
+       functions to alter all three things: The string, whether to insert
+       the string, and whether to send the string.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Don't have erc-goodies and erc-ring register functions multiple times
+
+       * lisp/erc/erc-goodies.el (noncommands): Don't register functions
+       twice.
+
+       * lisp/erc/erc-ring.el (ring): Ditto.
+
+2019-06-19  Stefan Monnier  <address@hidden>
+
+       (with-suppressed-warnings): Make it apply to macro-expansion as well
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment):
+       Change with-suppressed-warnings so it also affects the macro-expansion 
of
+       the body.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Rename function in completion.el to use completion- prefixes
+
+       * lisp/completion.el (locate-completion-entry)
+       (completion-locate-entry, locate-completion-entry-retry)
+       (completion-locate-entry-retry, locate-completion-db-error):
+       Rename to use a completion- prefix and make the old names obsolete
+       aliases.
+       (add-completion-to-head, delete-completion): Use the new function
+       names.
+
+2019-06-19  Stefan Monnier  <address@hidden>
+
+       * lisp/textmodes/page-ext.el: Further cleanup
+
+       (pages--ctl-x-ctl-p-map): Rename from ctl-x-ctl-p-map.
+       Move initialization into declaration.
+       (pages-ctl-x-ctl-p-prefix): Rename from ctl-x-ctl-p-prefix.
+       (sort-subr): Remove redundant autoload.
+       (pages-set-delimiter): Use explicit `interactively` arg instead of
+       `called-interactively`.  Use `setq-local`.
+       (pages-directory-for-addresses): Use `setq-local`.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Fix compilation warning in pcmpl-gnu.el
+
+       * lisp/pcmpl-gnu.el (pcomplete/tar): Remove binding of
+       pcomplete-suffix-list, because it's not consulted in any of the
+       functions called here, and has had no effect since 2011.  If we
+       want to support not inserting a space after the = sign, we have to
+       implement that, but it's not currently done.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Fix one of the tags/xref warnings in viper-ex.el"
+
+       This reverts commit 4f2f95049738be97df8647705a8fc05a029ed244.
+
+       We can't mix calls to find-tag and xref-find-definitions
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Fix up the function/variable names in page-ext.el
+
+       * lisp/textmodes/page-ext.el (previous-page)
+       (search-pages)
+       (sort-pages-in-region)
+       (sort-pages-buffer)
+       (pages-sort-buffer)
+       (pages-set-delimiter): Rename to have pages- prefixes and make the
+       previous name into aliases for the new names.
+       (ctl-x-ctl-p-map): Use the new command names.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Touch up the OKURI-NASI progress reporting
+
+       * lisp/international/ja-dic-cnv.el (skkdic-convert-okuri-ari)
+       (skkdic-convert-postfix, skkdic-convert-prefix)
+       (skkdic-collect-okuri-nasi): Use INFO progress reporting.
+       (skkdic-set-okuri-nasi): Use the progress reporter instead of a
+       per-1000 output.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak progess reporting in finder-compile-keywords
+
+       * lisp/finder.el (finder-compile-keywords): Use progress reporter
+       to report the processing.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Allow specifying the expected number of shift/reduce conflicts
+
+       * admin/grammars/grammar.wy: Add %expectedconflicts.
+
+       * lisp/cedet/semantic/grammar-wy.el
+       (semantic-grammar-wy--keyword-table): Ditto.
+
+       * lisp/cedet/semantic/grammar.el
+       (semantic-grammar-expected-conflicts): New function.
+       (semantic-grammar-insert-defconst-with-eval): New function.
+       (semantic-grammar-create-package): Output the number of expected
+       shift/reduce conflicts.
+
+       * lisp/cedet/semantic/wisent/comp.el (wisent-total-conflicts):
+       Don't output the warning if the number of shift/reduce conflicts
+       is expected.
+       (wisent-expected-conflicts): Made obsolete.
+
+2019-06-19  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak progress reporting in update-directory-autoloads
+
+       * lisp/emacs-lisp/autoload.el (update-directory-autoloads): Use
+       progress reporter so say what percentage the progress is at.
+
+2019-06-19  Mattias Engdegård  <address@hidden>
+
+       Compile any subsequence of `cond' clauses to switch (bug#36139)
+
+       A single `cond' form can how be compiled to any number of switch ops,
+       optionally interspersed with non-switch conditions.
+       Previously, switch ops would only be used for whole `cond' forms
+       containing no other tests.
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile--cond-vars):
+       Rename from `byte-compile-cond-vars'.
+       (byte-compile--default-val): Remove.
+       (byte-compile--cond-switch-prefix):
+       Replace `byte-compile-cond-jump-table-info'; now also returns
+       trailing non-switch clauses.
+       (byte-compile-cond-jump-table): New arguments; no longer compiles
+       the default case.
+       (byte-compile-cond): Look for and compile switches at any place in the
+       list of clauses.
+       * test/lisp/emacs-lisp/bytecomp-tests.el 
(byte-opt-testsuite-arith-data):
+       Add test expression.
+
+2019-06-19  Mattias Engdegård  <address@hidden>
+
+       Compile cond with heterogeneous tests into switch (bug#36139)
+
+       Allow any mixture of `eq', `eql' and `equal', `memq', `memql' and
+       `member' in a switch-like `cond' to be compiled into a single switch.
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile--common-test): New.
+       (byte-compile-cond-jump-table-info): Use most specific common test.
+       * test/lisp/emacs-lisp/bytecomp-tests.el 
(byte-opt-testsuite-arith-data):
+       Add test cases for multi-value clause cond forms.
+
+2019-06-19  Mattias Engdegård  <address@hidden>
+
+       Tighter pcase or-pattern member function selection (bug#36139)
+
+       * lisp/emacs-lisp/pcase.el (pcase--u1):
+       Use the most specific of `memq', `memql' and `member' in or-patterns
+       with constant cases.  This improves performance and may help the 
byte-code
+       compiler generate a switch.
+       * test/lisp/emacs-lisp/pcase-tests.el (pcase-tests-member):
+       Add mixed-type or-pattern test cases.
+
+2019-06-19  Mattias Engdegård  <address@hidden>
+
+       Compile list member functions in cond to switch (bug#36139)
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-cond-jump-table-info):
+       Expand `memq', `memql' and `member' to their corresponding
+       equality tests.
+       (byte-compile-cond-jump-table): Cases now have multiple values.
+       * lisp/emacs-lisp/byte-opt.el (byte-decompile-bytecode-1)
+       (byte-optimize-lapcode): Don't assume switch hash tables to be 
injective.
+
+2019-06-19  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix oversights of "support X core font driver on cairo" change
+
+       * src/Makefile.in (FONT_OBJ): Fix comment for USE_CAIRO.
+       * src/xfns.c (x_create_tip_frame) [USE_CAIRO]: Register xfont_driver.
+
+2019-06-19  Paul Eggert  <address@hidden>
+
+       --with-cairo is no longer experimental
+
+       Suggested by YAMAMOTO Mitsuharu in:
+       https://lists.gnu.org/r/emacs-devel/2019-06/msg00686.html
+       * configure.ac: Do not say --with-cairo is experimental.
+       * etc/NEWS: Say that --with-cairo is no longer experimental.
+
+2019-06-18  Glenn Morris  <address@hidden>
+
+       Disable lexical-binding in ediff
+
+       Since it breaks the thing (bug#36157, bug#36281).
+       * lisp/vc/ediff-diff.el, lisp/vc/ediff-help.el, lisp/vc/ediff-hook.el:
+       * lisp/vc/ediff-init.el, lisp/vc/ediff-merg.el, lisp/vc/ediff-mult.el:
+       * lisp/vc/ediff-ptch.el, lisp/vc/ediff-vers.el, lisp/vc/ediff-wind.el:
+       * lisp/vc/ediff.el: Set lexical-binding to nil.
+
+2019-06-18  Eli Zaretskii  <address@hidden>
+
+       Fix the handling of font backend supersedence on MS-Windows
+
+       * src/w32font.c (syms_of_w32font): Don't make the Uniscribe
+       font backend "superceded" here, ...
+       * src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper):
+       ... make it "superceded" here, only if the HarfBuzz DLL was
+       successfully loaded.  This is because Emacs compiled with
+       HarfBuzz support might run on a system without the DLL.
+       * src/w32fns.c (Fx_create_frame, w32_create_tip_frame):
+       Register the HarfBuzz font backend only if it is available.
+
+2019-06-18  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Add a mechanism to specify expected shift/reduce .wy conflicts"
+
+       This reverts commit f21ec24524c705e18674a2e9e4db37b11fa3ebab.
+
+       *sigh*  Revert again because this created a bootstrap problem in a 
different part of the process.
+
+2019-06-18  Lars Ingebrigtsen  <address@hidden>
+
+       Add a mechanism to specify expected shift/reduce .wy conflicts
+
+       * admin/grammars/python.wy: Set the expected number of
+       shift/reduce conflicts to four.
+
+       * lisp/cedet/semantic/grammar.el
+       (semantic-grammar-expected-conflicts): New function.
+
+       * lisp/cedet/semantic/wisent/comp.el (wisent-total-conflicts): Use
+       it to suppress warnings about the expected number of shift/reduce
+       conflicts.
+
+2019-06-18  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Add a mechanism to specify expected shift/reduce .wy conflicts"
+
+       This reverts commit d715ae8788e16b22f7f68cb82b51a40ad95c78c2.
+
+       This commit led to a build error, so revert for now.
+
+2019-06-18  Lars Ingebrigtsen  <address@hidden>
+
+       Add a mechanism to specify expected shift/reduce .wy conflicts
+
+       * admin/grammars/python.wy: Set the expected number of
+       shift/reduce conflicts to four.
+
+       * lisp/cedet/semantic/grammar.el
+       (semantic-grammar-expected-conflicts): New function.
+       * lisp/cedet/semantic/wisent/comp.el (wisent-total-conflicts): Use
+       it to suppress warnings about the expected number of shift/reduce
+       conflicts.
+
+2019-06-18  Lars Ingebrigtsen  <address@hidden>
+
+       Rename symbols in ind-util.el to have indian- prefixes
+
+       * lisp/language/ind-util.el (indian-ucs-to-is13194-regexp)
+       (indian-ucs-to-iscii-region, indian-iscii-to-ucs-region): Rename
+       unprefixed function to indian-*.
+
+2019-06-18  Lars Ingebrigtsen  <address@hidden>
+
+       Report progress during custom-make-dependencies instead of file count
+
+       * lisp/cus-dep.el (custom-make-dependencies): Rewrite to use
+       reporter to report progress instead of how many files we've
+       processed.
+
+       * lisp/emacs-lisp/byte-run.el (byte-compile-info-string): New function.
+       (byte-compile-info-message): Use it.
+
+2019-06-18  Lars Ingebrigtsen  <address@hidden>
+
+       Make quail conversion output quieter
+
+       * lisp/international/quail.el (quail-update-leim-list-file): Ditto.
+       * lisp/international/titdic-cnv.el (tit-process-header)
+       (tit-process-body, miscdic-convert, batch-titdic-convert): Reduce
+       messaging.
+
+2019-06-18  Lars Ingebrigtsen  <address@hidden>
+
+       Fix compilation warning in bookmark.el
+
+       * lisp/bookmark.el (bookmarks-already-loaded): Move obsolete alias
+       definition to before its referent.
+
+       In toplevel form:
+       bookmark.el:279:1:Warning: Alias for `bookmark-bookmarks-timestamp' 
should be
+           declared before its referent
+
+2019-06-18  Lars Ingebrigtsen  <address@hidden>
+
+       Output progress reports when scanning for finder/custom
+
+       * lisp/cus-dep.el (custom-make-dependencies): Ditto.
+
+       * lisp/finder.el (finder-compile-keywords): Instead of outputting
+       the directories being scanned, output progress reports on the
+       number of files being scanned.  This makes the output more similar
+       to the autoload scraping.
+
+2019-06-18  Lars Ingebrigtsen  <address@hidden>
+
+       Touch up the byte-compilation messaging in skkdic-set-okuri-nasi
+
+       * lisp/international/ja-dic-cnv.el (skkdic-set-okuri-nasi): Use
+       the "INFO" format for these informational messages, and be more
+       explicit in saying what they're doing.
+
+2019-06-18  Lars Ingebrigtsen  <address@hidden>
+
+       Add types to some no-type tokes in js.wy
+
+       * admin/grammars/js.wy: Add types to the FALSE, TRUE and QUERY tokens.
+
+       Without the types, you'd get the warning
+
+       *Warning* default value of <<no-type>> tokens changed to QUERY, was 
NULL_TOKEN
+       *Warning* default value of <<no-type>> tokens changed to TRUE, was QUERY
+       *Warning* default value of <<no-type>> tokens changed to FALSE, was TRUE
+
+       I think this should be harmless, and it doesn't seem to break handling
+       .js files.
+
+2019-06-18  Lars Ingebrigtsen  <address@hidden>
+
+       Comment out useless nonterminals from python.wy
+
+2019-06-18  Lars Ingebrigtsen  <address@hidden>
+
+       Remove nonterminals that semantic claims are useless
+
+       * admin/grammars/js.wy (VariableStatement): Remove useless
+       nonterminals.
+
+       Debug output from wisent:
+
+       Useless nonterminals:
+
+          StatementList
+          BlockExpand
+
+2019-06-18  Lars Ingebrigtsen  <address@hidden>
+
+       Silence spurious load message in latin-ltx.el
+
+       * lisp/leim/quail/latin-ltx.el (latin-ltx--define-rules): Silence
+       the `load' because it's not very informative.
+
+2019-06-18  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak implementation of byte-compile-info-message
+
+       * lisp/emacs-lisp/byte-run.el (byte-compile-info-message): Clean
+       up implementation.
+
+2019-06-17  Roland Winkler  <address@hidden>
+
+       * lisp/bookmark.el: Watch bookmark file.  Use lexical binding.
+
+       (bookmark-watch-bookmark-file): New user variable.
+       (bookmark-alist): Fix docstring.
+       (bookmark-bookmarks-timestamp): Renamed from bookmarks-already-loaded.
+       (bookmark-maybe-load-default-file, bookmark-save, bookmark-load):
+       Use bookmark-bookmarks-timestamp.
+       (bookmark-bmenu-mode-map): Define menu bar menu.
+       (bookmark-show-annotation, bookmark-show-all-annotations):
+       Make bookmarks buffer read-only.
+       (bookmark-bmenu-save): Use call-interactively.
+
+2019-06-17  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Support font driver supersession
+
+       * src/font.c (font_update_drivers): If argument NEW_DRIVERS is t, then 
don't
+       use superseded drivers.
+       (syms_of_font) <Qfont_driver_superseded_by>: New DEFSYM.
+
+       * src/ftfont.c (syms_of_ftfont) [HAVE_HARFBUZZ]:
+       * src/ftcrfont.c (syms_of_ftcrfont) [HAVE_HARFBUZZ]:
+       * src/w32font.c (syms_of_w32font) [HAVE_HARFBUZZ]:
+       * src/xftfont.c (syms_of_xftfont) [HAVE_HARFBUZZ]: Make Harfbuzz 
variants
+       supersede non-Harfbuzz ones.
+
+       * src/w32fns.c (Fx_create_frame, w32_create_tip_frame): Remove font 
backend
+       determination code.
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       Output progress messages when scraping autoloads during bootstrap
+
+       * lisp/emacs-lisp/byte-run.el (byte-compile-info-message): New
+       function to outout informational messages during byte compilation.
+
+       * lisp/emacs-lisp/autoload.el (update-directory-autoloads): Use it
+       to report progress when scraping autoloads during bootstrap (which
+       may take half a minute).
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       Silence message in latin-ltx about the normal situation
+
+       * lisp/leim/quail/latin-ltx.el (latin-ltx--define-rules): Don't
+       output the summary message unless there are conflicts.
+
+2019-06-17  Paul Eggert  <address@hidden>
+
+       * src/image.c (image_set_rotation): Do negation at compile-time.
+
+2019-06-17  Alan Mackenzie  <address@hidden>
+
+       Move defvars of c-doc-line-join-re + two others from cc-fonts.el to 
cc-mode.el
+
+       This is because these variables are needed at runtime even when 
cc-fonts.el
+       hasn't been loaded, as in XEmacs when font locking hasn't been enabled.
+
+       * lisp/progmodes/cc-fonts.el (c-doc-line-join-re)
+       (c-doc-bright-comment-start-re, c-doc-line-join-end-ch): Move 
definitions to
+       cc-mode.el.
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       Compilation work-around for obsolete eieio-object-set-name-string
+
+       * lisp/emacs-lisp/eieio-base.el (eieio-object-set-name-string):
+       Move the generic definition of this method to here from eieio.el
+       and place it after the cl-method definition.  This avoids a
+       warning about it being obsolete when doing macro expansion.
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       Work around warning from macroexpanding obsolete method
+
+       * lisp/emacs-lisp/eieio.el (object-print): Move method definition
+       to before generic definition because the generic definition
+       obsoletes the method, which will then output a warning from when
+       macroexpanding.
+
+2019-06-17  Alex Branham  <address@hidden>
+
+       Avoid a flyspell error if point is at beginning of buffer
+
+       * lisp/textmodes/flyspell.el (flyspell-generic-progmode-verify): Check
+       if point is at the beginning of the buffer.  This prevents an error
+       when e.g. 'flyspell-auto-correct-word' gets called with point at the
+       beginning of the buffer.
+
+       Bug#35967
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       Declare unknown slots to silence the compiler
+
+       * lisp/cedet/ede/config.el (classpath): Declare slot.
+       (ede-java-classpath): Revert previous hack.
+
+       * lisp/cedet/srecode/srt-mode.el (key): Declare slot.
+       (srecode-macro-help): Revert previous hack.
+       (srecode-parse-this-macro): Ditto.
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       Change the eieio-declare-slots function into a macro
+
+       * lisp/emacs-lisp/eieio-core.el (eieio-declare-slots): Change into
+       a compile-only macro.
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       New function eieio-declare-slots
+
+       * lisp/emacs-lisp/eieio-core.el (eieio-declare-slots): New
+       function to suppress compiler warnings about unknown slots.
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       Fix use of obsolete constructor in semantic/complete.el
+
+       * lisp/cedet/semantic/complete.el (make-instance): Use
+       make-instance instead of the obsolete constructor method...  which
+       didn't work, anyway.  The following would bug out
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       Fix compilation warning by having ede-target inherit from eieio-named
+
+       * lisp/cedet/ede/base.el (ede-target): Inherit from eieio-named so
+       that if you're customizing objects via eieio-object-value-get, you
+       can set the name.
+
+       * lisp/emacs-lisp/eieio-custom.el (eieio-object-value-get): Don't
+       use obsolete function `eieio-object-set-name-string'.
+
+2019-06-17  Alan Mackenzie  <address@hidden>
+
+       Remove the now unneeded c-font-lock-flush from CC Mode.
+
+       * lisp/progmodes/cc-defs.el (c-font-lock-flush): Delete this macro.
+
+       * lisp/progmodes/cc-engine.el (c-propertize-raw-string-opener): Delete 
the
+       call to the macro.
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       Make calc-macs.el lexical
+
+       * lisp/calc/calc-macs.el: Enable lexical binding.  This fixes a
+       build warning in calc.el (which is lexical).
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       Suppress warning in isearchb about iswitchb being obsolete
+
+       * lisp/isearchb.el (obsolete): Suppress warning about package
+       being obsolete.  Instead, this has been reported to the bug
+       tracker, because it requires a rewrite of isearchb.
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       Make do-after-load-evaluation check whether warnings are enabled.
+
+       * lisp/subr.el (do-after-load-evaluation): Heed
+       `byte-compile-warning-enabled-p', if defined.  This allows
+       suppressing the warning about packages being obsolete.
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       Suppress compilation warning in srt-mode
+
+       * lisp/cedet/srecode/srt-mode.el (srecode-parse-this-macro): Check
+       for the existence of `key' in the macro before using it, and
+       suppress the warning.
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       Suppress warning about out-of-tree Java class in cedet
+
+       * lisp/cedet/ede/config.el (ede-java-classpath): Hack to suppress
+       a compilation warning in glue code to out-of-tree code.
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       Suppress warning about object-print in eieio.el
+
+       * lisp/emacs-lisp/eieio.el (obsolete): Suppress warning about
+       object-print being obsolete, because there are no in-tree
+       definitions any more.
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       Add check for enabled warning before issuing
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-function-warn): Check
+       whether we want the `obsolete' warning before issuing it.
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       Suppress warning about object-print in eieio.el
+
+       * lisp/emacs-lisp/eieio.el (cl-print-object): Suppress the warning
+       about object-print being obsolete, since there are no in-tree
+       methods like that any more.
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       Make with-suppressed-warnings work in cl-defmethod
+
+       * lisp/emacs-lisp/cl-generic.el (cl-defmethod): Pass the symbol
+       name on to `byte-compile-warning-enabled-p' to make
+       with-suppressed-warnings work in cl-defmethods, too.
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       Rewrite object-print methods in cedet to be cl-print-object methods
+
+       * lisp/cedet/semantic/db-el.el (object-print): Ditto.
+       (object-print): Ditto.
+
+       * lisp/cedet/semantic/db-global.el (object-print): Ditto.
+
+       * lisp/cedet/semantic/db.el (object-print): Remove; unused.
+       * lisp/cedet/semantic/db.el (semanticdb-debug-info): New method.
+       (object-print): Rewritten to be cl-print-object.
+
+       * lisp/emacs-lisp/eieio.el (eieio-object-name): Allow the EXTRA
+       argument to be a list of strings.
+
+2019-06-17  Lars Ingebrigtsen  <address@hidden>
+
+       Add doc strings to the -at-point commands in vc-git
+
+       * lisp/vc/vc-git.el (vc-git-stash-delete-at-point)
+       (vc-git-stash-show-at-point, vc-git-stash-apply-at-point)
+       (vc-git-stash-pop-at-point): Add doc strings to these commands.
+
+2019-06-16  Roland Winkler  <address@hidden>
+
+       * lisp/find-dired.el (find-dired-refine-function): Fix defcustom.
+
+2019-06-16  Eric Abrahamsen  <address@hidden>
+
+       Prevent the Gnus registry from being loaded twice at startup
+
+       * lisp/gnus/gnus-registry.el (gnus-registry-load): Check if the
+         registry is already loaded, and don't load again unless new optional
+         FORCE argument is non-nil.
+         (gnus-registry-clear): New function to clear the registry, added as
+         a Gnus shutdown. Now that loading doesn't unilaterally reset the
+         registry, we need to make sure it is reloaded when Gnus is.
+
+2019-06-16  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Avoid rounding error in image rotation
+
+       * src/image.c (image_set_rotation): Halve translations as double values.
+
+2019-06-16  Glenn Morris  <address@hidden>
+
+       Tweak compilation mode used by byte-recompile-directory
+
+       * lisp/emacs-lisp/bytecomp.el (emacs-lisp-compilation-mode):
+       Doc fix.
+       (byte-recompile-directory): Use emacs-lisp-compilation-mode.
+
+2019-06-16  Glenn Morris  <address@hidden>
+
+       Disable filling of warnings in a bytecomp test
+
+       * test/lisp/emacs-lisp/bytecomp-tests.el (test-suppression):
+       Disable filling rather than working around it.
+
+2019-06-16  Glenn Morris  <address@hidden>
+
+       Tweak how byte-compile-print-syms fills
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-print-syms):
+       Use fill-column from the compile log buffer.
+
+2019-06-16  Glenn Morris  <address@hidden>
+
+       Don't hard-code the fill-column for display-warning
+
+       * lisp/emacs-lisp/warnings.el (warning-fill-column): New variable.
+       (display-warning): Use warning-fill-column.
+       * doc/lispref/display.texi (Warning Variables):
+       Mention warning-fill-column.
+
+2019-06-16  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-generic.el (gv-setter): Move declaration.
+
+       Move it to those places where we know gv has been loaded.
+
+2019-06-16  Lars Ingebrigtsen  <address@hidden>
+
+       Fix up the --no-print-directory changes in src/Makefile.in
+
+       * src/Makefile.in (AM_V_NO_PD): New macro written by Andreas
+       Schwab that can be either --no-print-directory or "".
+       (%.elc): Use it instead if the if statement.
+
+2019-06-16  Juanma Barranquero  <address@hidden>
+
+       Bump up max_specpdl_size to 1500.  (Bug#36216)
+
+       * src/eval.c (init_eval_once): Set max_specpdl_size to 1500.
+       * doc/lispref/variables.texi (Local Variables): Document it.
+
+2019-06-16  Lars Ingebrigtsen  <address@hidden>
+
+       Add comment to eieio-opt about why we're requiring cl-extra
+
+       * lisp/emacs-lisp/eieio-opt.el (cl-extra): Add comment about why
+       we're not requiring cl-lib.
+
+2019-06-16  Alan Third  <address@hidden>
+
+       Revert "Simplify image transforms"
+
+       This reverts commit cf3081d208814ea02fce33aac645abfc24f880a6.
+
+2019-06-16  Alan Third  <address@hidden>
+
+       Simplify image transforms
+
+       * src/image.c: (image_set_rotation, image_set_size,
+       image_set_transform): Combine into image_set_transform.
+       (image_set_crop): Remove function.
+       (lookup_image): Remove calls to removed functions and remove
+       transform_matrix.
+       * test/manual/image-transforms-tests.el (test-cropping): Remove
+       function.
+       (test-transforms): Remove reference to test-cropping.
+
+2019-06-16  Alan Third  <address@hidden>
+
+       Document image transforms
+
+       * doc/lispref/display.texi (Image Descriptors): Document :crop and
+       update :rotation.
+       * src/image.c: Describe the image transform matrix layout.
+       * test/manual/image-transforms-tests.el: New file.
+
+2019-06-16  Lars Ingebrigtsen  <address@hidden>
+
+       Fix compilation warning about gv-setter in cl-generic
+
+       * lisp/emacs-lisp/cl-generic.el (gv-setter): Declare to avoid a
+       compilation warning.
+
+2019-06-16  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Remedy recent loss in performance
+
+       * lisp/progmodes/cc-engine.el (c-back-over-member-initializers): call
+       c-parse-state outside of the narrowing operation.
+
+       * lisp/progmodes/cc-fonts.el (c-get-fontification-context)
+       (c-font-lock-cut-off-declarators): Replace calls to c-determine-limit 
with
+       crude position calculations for speed.
+
+2019-06-16  Lars Ingebrigtsen  <address@hidden>
+
+       Fix compilation warning i eieio-base
+
+       * lisp/emacs-lisp/eieio-base.el (clone): Use eieio-object-class
+       instead of obsolete function class-of.
+
+2019-06-16  Lars Ingebrigtsen  <address@hidden>
+
+       Fix compilation warning in ede.el
+
+       * lisp/cedet/ede/auto.el (ede-project-autoload): Inherit from
+       eieio-named, because we want to set the object name...
+
+       * lisp/cedet/ede.el (ede-new): ... which we do here, and fix the
+       compilation warning about the obsolete
+       eieio-object-set-name-string function.
+
+2019-06-16  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Fix compilation warning in ede.el"
+
+       This reverts commit 7bbb56bc430465a6807a8129a322c704c89e3eba.
+
+       The commit led to a bootstrap error.
+
+2019-06-16  Lars Ingebrigtsen  <address@hidden>
+
+       Fix compilation warning in ede.el
+
+       * lisp/cedet/ede.el (ede-new): ... which we do here, and fix the
+       compilation warning about the obsolete
+       eieio-object-set-name-string function.
+
+       * lisp/cedet/ede/auto.el (ede-project-autoload): Inherit from
+       eieio-named, because we want to set the object name...
+
+2019-06-16  Lars Ingebrigtsen  <address@hidden>
+
+       Remove obsolete name arg from two constructors
+
+       * lisp/cedet/semantic/grammar.el
+       (semantic-analyze-current-context): Remove obsolete name arg.
+
+       * lisp/cedet/srecode/insert.el (srecode--insert-into-buffer): Ditto.
+
+2019-06-16  Lars Ingebrigtsen  <address@hidden>
+
+       Compilation fix for previous change to eieio-opt
+
+       * lisp/emacs-lisp/eieio-opt.el (cl-extra): Require for
+       cl--describe-class.
+
+2019-06-16  Lars Ingebrigtsen  <address@hidden>
+
+       Fix compilation warning in eieio-opt
+
+       * lisp/emacs-lisp/eieio-opt.el (eieio-help-constructor): Don't
+       use obsolete function eieio-help-class.
+
+2019-06-16  Lars Ingebrigtsen  <address@hidden>
+
+       Avoid "unknown slot" compilation warning in eieio-custom
+
+       * lisp/emacs-lisp/eieio-custom.el
+       (eieio-read-customization-group): Slot `name' may not exist in all
+       classes, so protect against that (and avoid a compilation warning
+       about it).
+
+2019-06-16  Lars Ingebrigtsen  <address@hidden>
+
+       Avoid a compilation warning in srt-mode.el
+
+       * lisp/cedet/srecode/srt-mode.el (srecode-macro-help): Add hack to
+       avoid compilation warning about slot that has to exist at this
+       point.
+
+2019-06-16  Lars Ingebrigtsen  <address@hidden>
+
+       Fix one of the tags/xref warnings in viper-ex.el
+
+       * lisp/emulation/viper-ex.el (ex-tag): Avoid a compilation warning
+       about find-tag-other-window.
+
+2019-06-16  Lars Ingebrigtsen  <address@hidden>
+
+       Declare function in esh-mode before #'-ing it
+
+       * lisp/eshell/esh-mode.el (ansi-color-apply-text-property-face):
+       Declare to avoid a compilation warning.
+
+2019-06-16  Lars Ingebrigtsen  <address@hidden>
+
+       Avoid obsolete function in reftex-global.el
+
+       * lisp/textmodes/reftex-global.el (reftex-query-replace-document):
+       Rewrite to use fileloop directly to avoid the obsolete function
+       tags-query-replace.
+
+2019-06-16  Lars Ingebrigtsen  <address@hidden>
+
+       Use fileloop directly in vc-dir to avoid obsolete function
+
+       * lisp/vc/vc-dir.el (vc-dir-query-replace-regexp): Rewrite to use
+       fileloop directly to avoid the obsolete function
+       tags-query-replace.
+
+2019-06-16  Alan Mackenzie  <address@hidden>
+
+       Maintain c-syntax-table-hwm when changing syntax-table text properties
+
+       * lisp/progmodes/cc-defs.el: (c-syntax-table-hwm): Move the defvar to 
here
+       from cc-mode.el, since the variable is needed at compile time in
+       c-emacs-features.
+       (c-min-property-position): New macro.
+       (c-put-char-property, c-clear-char-property, c-clear-char-properties)
+       (c-clear-char-property-with-value-function)
+       (c-clear-char-property-with-value-on-char-function)
+       (c-put-char-properties-on-char): Adjust c-syntax-table-hwm 
appropriately when
+       syntax-table text properties are changed.
+
+       * lisp/progmodes/cc-engine.el (c-truncate-lit-pos-cache): Remove the now
+       unneeded setting of c-syntax-table-hwm, and the unneeded declaration of
+       c-syntax-table-hwm.
+
+2019-06-16  Michael Albinus  <address@hidden>
+
+       Say how Tramp is packaged with Emacs
+
+       * doc/misc/tramp.texi (Obtaining Tramp):
+       Mention `customize-package-emacs-version-alist'.
+
+2019-06-15  Dmitry Gutov  <address@hidden>
+
+       Fix regressions in xref-find-definitions and ...-other-window
+
+       * lisp/progmodes/xref.el:
+       (xref--display-buffer-in-other-window)
+       (xref--display-buffer-in-window): New functions.
+       (xref--show-pos-in-buf): Use them (bug#33870)
+
+2019-06-15  Stefan Kangas  <address@hidden>
+
+       Add MESSAGE string to bookmark-errors (bug#23408)
+
+       * lisp/bookmark.el (bookmark-errors): Add MESSAGE parameter string.
+
+2019-06-15  Noam Postavsky  <address@hidden>
+
+       Always try to display tree-widget with images (Bug#36147)
+
+       Checking the result of display-images-p doesn't make sense if the
+       display capabilities when loading the file are different from the
+       display used to actually look at the widget (which is easily possible
+       now that Emacs supports both tty and graphic frames in the same
+       instance).
+       * lisp/tree-widget.el (tree-widget-image-enable): Default to t,
+       always.  This still shows text on displays that can't show images.
+
+2019-06-15  Noam Postavsky  <address@hidden>
+
+       Allow trailing whitespace in --eval argument (Bug#36219)
+
+       * lisp/startup.el (command-line-1): Don't complain about trailing
+       garbage if it's only space, tab, or newline characters.
+
+2019-06-15  Michael Albinus  <address@hidden>
+
+       * lisp/net/trampver.el (customize-package-emacs-version-alist):
+
+       Adapt Tramp version integrated in Emacs 26.3.
+
+2019-06-15  Philipp Stephani  <address@hidden>
+
+       * src/xfaces.c (dump_realized_face): Fix incorrect format string.
+
+       * src/xfaces.c (dump_realized_face): Fix format specifier.
+
+       * src/nsterm.m (ns_row_rect): Remove unused variable ‘f.’
+
+2019-06-15  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       7a8f22b * test/lisp/url/url-file-tests.el (url-file): Use file:///, n...
+       0c5f6c6 Fix doc of srecompile-compile-split-code (Bug#36200)
+
+2019-06-15  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       6242324 * lisp/net/sieve-manage.el (sieve-manage-parse-capability): D...
+
+2019-06-15  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       f53ce87 ; ChangeLog.3 update
+       eca2677 Fix description of 'display-buffer-in-previous-window' again ...
+       7be50cd Consistently use @minus{} for negative arguments
+
+       # Conflicts:
+       #       ChangeLog.3
+
+2019-06-15  Eli Zaretskii  <address@hidden>
+
+       Update hash value in pdumper.c
+
+       * src/pdumper.c (dump_fwd_buffer_obj) [CHECK_STRUCTS]: Update
+       the hash in HASH_Lisp_Buffer_Objfwd.  (Bug#36225)
+
+2019-06-15  Eli Zaretskii  <address@hidden>
+
+       Improve error message when dmpstruct.h needs to be updated
+
+       * src/pdumper.c (dump_cons, dump_interval_tree, dump_string)
+       (dump_marker, dump_overlay, dump_finalizer)
+       (dump_bignum, dump_float, dump_fwd_int, dump_fwd_bool)
+       (dump_fwd_obj, dump_fwd_buffer_obj, dump_fwd_kboard_obj)
+       (dump_fwd, dump_blv, dump_symbol, dump_vectorlike_generic)
+       (dump_hash_table, dump_buffer, dump_bool_vector, dump_subr)
+       (dump_vectorlike, dump_object, dump_charset) [CHECK_STRUCTS]:
+       Make the error message more specific where to find the comment
+       to CHECK_STRUCTS.
+
+2019-06-15  Lars Ingebrigtsen  <address@hidden>
+
+       Probably fix the `helper' argument in feedmail.el
+
+       * lisp/mail/feedmail.el (feedmail-queue-send-edit-prompt-inner):
+       Return the helper function (instead of the symbol `helper') so
+       that the caller can actually call it.
+
+2019-06-15  Lars Ingebrigtsen  <address@hidden>
+
+       Fix compilation warning in esh-cmd.el
+
+       * lisp/eshell/esh-cmd.el (pcomplete--here): Declare function to
+       avoid byte compilation warning, which is what erc-notify.el also
+       does in a similar situation.
+
+2019-06-15  Lars Ingebrigtsen  <address@hidden>
+
+       Fix build warning in srecode/srt-mode
+
+       * lisp/cedet/srecode/srt-mode.el (srecode-inserter-prin-example):
+       Declare and require before use.
+
+2019-06-15  Lars Ingebrigtsen  <address@hidden>
+
+       Silence warnings about obsolete functions in obsolete/vip.el
+
+       * lisp/obsolete/vip.el (ex-tag): Silence warnings about obsolete
+       functions because this is an obsolete file.
+
+2019-06-15  Lars Ingebrigtsen  <address@hidden>
+
+       Suppress compilation warnings in obsolete/otodo-mode.el
+
+       * lisp/obsolete/otodo-mode.el (lexical): Suppress warnings about
+       non-prefixed variables because this file is obsolete.
+
+2019-06-15  Lars Ingebrigtsen  <address@hidden>
+
+       Silence warning in obsolete/complete.el
+
+       * lisp/obsolete/complete.el (PC-do-completion): Suppress warning
+       about obsolete variable in obsolete function.
+
+2019-06-15  Lars Ingebrigtsen  <address@hidden>
+
+       Make obsolete function zip-lists work again
+
+       * lisp/obsolete/cl-compat.el (zip-lists): Use cl-mapcan instead of
+       mapcan; mapcan now takes only two parameters.
+
+2019-06-15  Lars Ingebrigtsen  <address@hidden>
+
+       Suppress compilation warning in supercite.el
+
+       * lisp/mail/supercite.el (curline): Suppress warning about
+       non-prefixed variable used by forms in the `sc-mail-glom-frame'
+       variable.
+
+2019-06-15  Lars Ingebrigtsen  <address@hidden>
+
+       Suppress warning in mailheader.el
+
+       * lisp/mail/mailheader.el (headers): Suppress warning about
+       non-prefixed variable part of the advertised interface.
+
+2019-06-15  Lars Ingebrigtsen  <address@hidden>
+
+       Suppress warning about non-prefixed variable in mailalias.el
+
+       * lisp/mail/mailalias.el (patters): Suppress warning about
+       non-prefixed variable used by `mail-complete-alist'.
+
+2019-06-15  Lars Ingebrigtsen  <address@hidden>
+
+       Fix byte compilation warning in bindat.el
+
+       * lisp/emacs-lisp/bindat.el (bindat--unpack-item): Avoid a byte
+       compilation warning by using unibyte-string instead of concat +
+       string-make-unibyte.
+
+2019-06-15  Lars Ingebrigtsen  <address@hidden>
+
+       Avoid printing entering/leaving messages in second stage bootstrap
+
+       * src/Makefile.in (%.elc): Default to not printing the
+       entering/leaving lines when compiling .el files in the second
+       stage of bootstrapping Emacs.  V=1 will output them.
+
+2019-06-15  Lars Ingebrigtsen  <address@hidden>
+
+       Also test unpacking
+
+       Refactor for reuse
+
+       New file to test bindat functions
+
+2019-06-15  Lars Ingebrigtsen  <address@hidden>
+
+       Suppress warning about `entry' in calendar
+
+       * lisp/calendar/cal-china.el (entry):
+       * lisp/calendar/cal-hebrew.el (entry): Suppress warning about
+       dynamically bound `entry', which has to be bound for
+       diary-chinese-anniversary and diary-hebrew-birthday to work.
+       These function can be used in the sexp part of users' diary files.
+
+2019-06-15  Lars Ingebrigtsen  <address@hidden>
+
+       Suppress warning about prefixless date variable in calendar
+
+       * lisp/calendar/lunar.el (date):
+       * lisp/calendar/cal-persia.el (date):
+       * lisp/calendar/cal-mayan.el (date):
+       * lisp/calendar/cal-julian.el (date):
+       * lisp/calendar/cal-iso.el (date):
+       * lisp/calendar/cal-islam.el (date):
+       * lisp/calendar/cal-hebrew.el (date):
+       * lisp/calendar/cal-french.el (date):
+       * lisp/calendar/cal-coptic.el (date):
+       * lisp/calendar/cal-china.el (date):
+       * lisp/calendar/cal-bahai.el (date): Suppress warning about this
+       prefix-less dynamic variable, because it's part of the documented
+       calling convention used in the sexp part of users' diary files.
+
+2019-06-15  Wilson Snyder  <address@hidden>
+
+       Clean up verilog-mode.el documentation examples to match behavior.
+
+       * lisp/progmodes/verilog-mode.el (verilog-auto, verilog-auto-arg)
+       (verilog-auto-ascii-enum, verilog-auto-inout)
+       (verilog-auto-inout-comp, verilog-auto-inout-in)
+       (verilog-auto-inout-modport, verilog-auto-inout-module)
+       (verilog-auto-inout-param, verilog-auto-input)
+       (verilog-auto-insert-lisp, verilog-auto-inst)
+       (verilog-auto-inst-param, verilog-auto-inst-param-value)
+       (verilog-auto-output, verilog-auto-output-every, verilog-auto-reg)
+       (verilog-auto-reg-input, verilog-auto-reset, verilog-auto-sense)
+       (verilog-auto-tieoff, verilog-auto-undef, verilog-auto-unused)
+       (verilog-auto-wire, verilog-inject-auto, verilog-read-sub-decls):
+       Clean up documentation examples to match behavior.
+
+2019-06-15  Michael Albinus  <address@hidden>
+
+       Make url-tramp more robust
+
+       * lisp/url/url-tramp.el (url-tramp-convert-url-to-tramp)
+       (url-tramp-convert-tramp-to-url): Check, that obj is non-nil.
+
+2019-06-15  Stefan Kangas  <address@hidden>
+
+       Remove another variable obsolete since Emacs 22
+
+       * lisp/progmodes/cc-langs.el: Remove obsolete variable
+       c-opt-op-identitier-prefix.
+       * etc/NEWS: Announce it.  (Bug#36173)
+
+2019-06-15  Michael Albinus  <address@hidden>
+
+       Let tramp-archive unmount clean
+
+       * lisp/net/tramp-archive.el (tramp-archive-cleanup-hash):
+       Don't check for a proper method.
+
+2019-06-15  Michael Albinus  <address@hidden>
+
+       Make Tramp compatible to recent progress-reporter-update
+
+       * lisp/net/tramp-compat.el (tramp-compat-progress-reporter-update):
+       New defalias.
+
+       * lisp/net/tramp.el (tramp-progress-reporter-update): Add optional 
SUFFIX.
+
+2019-06-15  Michael Albinus  <address@hidden>
+
+       Some changes in process output read of Tramp
+
+       * lisp/net/tramp.el (tramp-handle-file-notify-rm-watch):
+       Read pending output.
+
+       * test/lisp/net/tramp-tests.el (tramp-test31-interrupt-process):
+       Use a timeout when reading process output.
+
+2019-06-15  Michael Albinus  <address@hidden>
+
+       Tag remote autorevert tests as unstable
+
+       * test/lisp/autorevert-tests.el (auto-revert--timeout):
+       Derive value from `auto-revert-interval'.
+       (auto-revert--deftest-remote): Tag it as `:unstable'.
+       (auto-revert-test05-global-notify, auto-revert-test06-write-file):
+       Suppress final newline.  Use `auto-revert--timeout'.
+
+2019-06-15  Stefan Kangas  <address@hidden>
+
+       Remove Lucid Emacs support from bookmark.el
+
+       * lisp/bookmark.el: Remove Lucid Emacs support.
+       (Bug#36179)
+
+2019-06-15  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of hash-code functions
+
+       * src/fns.c (Fsxhash_eq, Fsxhash_eql, Fsxhash_equal):
+       * doc/lispref/hash.texi (Defining Hash): Warn against assuming
+       that sxhash returns consistent results.
+
+2019-06-14  YAMAMOTO Mitsuharu  <address@hidden>
+
+       * configure.ac: Lower required cairo version to 1.8.0.
+
+2019-06-14  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Remove non-Xdbe double-buffering code on cairo
+
+       * src/xterm.c (x_begin_cr_clip, x_update_end) [USE_CAIRO]: Don't do
+       handcrafted double-buffering with image surface.
+
+2019-06-14  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Rework x_scroll_run on cairo
+
+       * src/xterm.c (x_scroll_run) [USE_CAIRO]: Use FRAME_CR_CONTEXT or 
surface type
+       for conditions to call XCopyArea rather than FRAME_X_DOUBLE_BUFFERED_P.
+       Set compositing operator to CAIRO_OPERATOR_SOURCE when copying image.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Silence okuri-nasi count-up messaging during compilation"
+
+       This takes long enough on some systems that the messages are useful.
+
+       This reverts commit 1d2e4d22c922f94d6f4b75a5ead18cbc679c5dfe.
+
+2019-06-14  Michael Albinus  <address@hidden>
+
+       Fix problem in remote file notification
+
+       * lisp/net/tramp-sh.el (tramp-sh-gio-monitor-process-filter)
+       (tramp-sh-gvfs-monitor-dir-process-filter)
+       (tramp-sh-inotifywait-process-filter): Do not kill the process.
+       Let `file-notify-rm-watch' do the job.
+
+       * test/lisp/filenotify-tests.el (file-notify-test03-events)
+       (file-notify-test05-file-validity)
+       (file-notify-test09-watched-file-in-watched-dir): Do not
+       special-case remote files.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       Silence okuri-nasi count-up messaging during compilation
+
+       * lisp/international/ja-dic-cnv.el (skkdic-set-okuri-nasi): Remove
+       messaging while compilation to make compilation more regular.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "srecode/srt-mode compilation fix"
+
+       This led to a recursive require.
+
+       This reverts commit 9fac0e70e3f5b7d0b12b77cac50078e01f68ee70.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       Fix previous object-print/cl-print-object changes
+
+       * lisp/cedet/srecode/insert.el
+       (srecode-insert-variable-secondname-handler):
+       * lisp/cedet/semantic/decorate/include.el
+       (semantic-decoration-fileless-include-describe):
+       (semantic-decoration-all-include-summary):
+       * lisp/cedet/semantic/db-find.el (semanticdb-find-log-activity):
+       * lisp/cedet/semantic/bovine/c.el
+       (semantic-c-describe-environment):
+       * lisp/cedet/semantic/analyze/debug.el
+       (semantic-analyzer-debug-insert-include-summary): Fix previous
+       object-print/cl-print-object changes that were nonsensical.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       Avoid using registerv-make in senator.el
+
+       * lisp/cedet/semantic/senator.el (senator-register): New class.
+       (register-val-jump-to, register-val-describe)
+       (register-val-insert): New methods.
+       (senator-copy-tag-to-register): Use this instead of the deprecated
+       registerv-make function.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       analyze/debug compilation fix
+
+       * lisp/cedet/semantic/analyze/debug.el (pulse): Require to avoid
+       byte compilation warning.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       semantic/lex-spp compilation fix
+
+       * lisp/cedet/semantic/lex-spp.el
+       (semantic-lex-spp-analyzer-push-tokens-for-symbol): Use new name
+       for `semantic-lex-spp-anlyzer-do-replace'.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       Use cl-typep instead of obsolete predicate functions throughout cedet
+
+       * lisp/cedet/srecode/dictionary.el (srecode-create-dictionary):
+       (srecode-dictionary-add-entries):
+       (srecode-compound-toString):
+       (srecode-dump):
+       * lisp/cedet/srecode/compile.el (srecode-dump-code-list):
+       * lisp/cedet/semantic/util.el (semantic-something-to-tag-table):
+       * lisp/cedet/semantic/db-typecache.el (semanticdb-typecache-length):
+       * lisp/cedet/semantic/db-ref.el (semanticdb-check-references):
+       * lisp/cedet/semantic/db-find.el
+       (semanticdb-find-incomplete-cache-entries-p):
+       (semanticdb-find-translate-path-includes-default):
+       (semanticdb-find-results-p):
+       (semanticdb-find-result-with-nil-p):
+       * lisp/cedet/semantic/analyze/complete.el
+       (semantic-analyze-possible-completions): Use cl-typep instead of
+       functions like `srecode-dictionary-compound-value-child-p' etc.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       srecode/srt-mode compilation fix
+
+       * lisp/cedet/srecode/srt-mode.el (srecode/insert): Require to
+       avoid compilation warning about unknown slot.  Remove function
+       declarations that point to that file.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       srecode/find compilation fix
+
+       * lisp/cedet/srecode/find.el (srecode/compile): Require to
+       avoid compilation warning about unknown slot.  Remove function
+       declarations that point to that file.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       srecode/dictionary compilation warning fix
+
+       * lisp/cedet/srecode/dictionary.el (srecode/fields): Require to
+       avoid compilation warning about unknown slot.  Remove function
+       declarations that point to that file.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       srecode/dictionary compilation fix
+
+       * lisp/cedet/srecode/ctxt.el (srecode/dictionary): Require to
+       avoid compilation warning about unknown slot.  Remove function
+       declarations that point to that file.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       srecode-inserter-prin-example compilation fix
+
+       * lisp/cedet/srecode/insert.el (srecode-inserter-prin-example):
+       Move prin1 example to file that defines the structure it prints.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       Move functions from semantic.el to analyze.el to avoid warnings
+
+       * lisp/cedet/semantic.el (semantic-analyze-completion-at-point-function)
+       (semantic-analyze-notc-completion-at-point-function)
+       (semantic-analyze-nolongprefix-completion-at-point-function): Add
+       autoloads for the moved functions.
+
+       * lisp/cedet/semantic/analyze.el
+       (semantic-analyze-completion-at-point-function)
+       (semantic-analyze-notc-completion-at-point-function)
+       (semantic-analyze-nolongprefix-completion-at-point-function): Move
+       here from semantic.el to avoid getting compilation warnings about
+       unknown slot `bounds'.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       Adjust erc functions after previous erc-pre-send-function change
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       Adjust erc functions after previous erc-pre-send-function change
+
+       * lisp/erc/erc-goodies.el (noncommands): Use
+       erc-pre-send-functions instead of the hook.
+       (erc-send-distinguish-noncommands): Adjust function to new interface.
+
+       * lisp/erc/erc-ring.el (ring): Ditto.
+       (erc-add-to-input-ring): Ditto.
+
+       * lisp/erc/erc.el (erc-send-this): Really make obsolete.
+       (erc-pre-send-functions): Change to a list of functions to allow
+       erc-goodies and erc-ring to work as before.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       Unobsolete string-to-multibyte
+
+       * lisp/subr.el: Un-obsolete string-to-multibyte, because it's a
+       useful function.  string-to-unibyte has already been un-obsoleted.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       Use CLOS-style accessors in oref/oset
+
+       * lisp/cedet/srecode/texi.el (srecode-semantic-handle-:texitag):
+       * lisp/cedet/srecode/table.el (srecode-mode-table-new):
+       (srecode-dump):
+       * lisp/cedet/srecode/srt-mode.el (srecode-parse-this-macro):
+       (semantic-analyze-possible-completions):
+       * lisp/cedet/srecode/semantic.el (srecode-compound-toString):
+       (srecode-semantic-apply-tag-to-dict-default):
+       * lisp/cedet/srecode/mode.el (srecode-minor-mode-templates-menu):
+       (srecode-edit):
+       * lisp/cedet/srecode/insert.el (srecode-insert-method):
+       (srecode-inserter-apply-state):
+       (srecode-insert-ask-default):
+       (srecode-insert-method-ask):
+       (srecode-insert-method-field):
+       (srecode-insert-method-helper):
+       (srecode-parse-input):
+       (srecode-match-end):
+       (srecode-insert-include-lookup):
+       (srecode-insert-method):
+       * lisp/cedet/srecode/find.el (srecode-template-table-in-project-p):
+       (srecode-template-get-table):
+       (srecode-template-get-table-for-binding):
+       (srecode-all-template-hash):
+       * lisp/cedet/srecode/extract.el (srecode-inserter-extract):
+       (srecode-inserter-extract):
+       * lisp/cedet/srecode/el.el (srecode-semantic-apply-tag-to-dict):
+       * lisp/cedet/srecode/dictionary.el (initialize-instance):
+       (srecode-dictionary-add-template-table):
+       (srecode-compound-toString):
+       * lisp/cedet/srecode/cpp.el (srecode-semantic-apply-tag-to-dict):
+       * lisp/cedet/srecode/compile.el (srecode-compile-template-table):
+       (srecode-dump):
+       * lisp/cedet/srecode/args.el (srecode-semantic-handle-:project):
+       * lisp/cedet/semantic/texi.el (semantic-analyze-possible-completions):
+       * lisp/cedet/semantic/symref/list.el (semantic-symref-results-dump):
+       (semantic-symref-list-create-macro-on-open-hit):
+       (semantic-symref-list-rename-open-hits):
+       (semantic-symref-list-map-open-hits):
+       * lisp/cedet/semantic/symref/idutils.el
+       (semantic-symref-perform-search):
+       (semantic-symref-parse-tool-output-one-line):
+       * lisp/cedet/semantic/symref/global.el (semantic-symref-perform-search):
+       (semantic-symref-parse-tool-output-one-line):
+       * lisp/cedet/semantic/symref/cscope.el (semantic-symref-perform-search):
+       (semantic-symref-parse-tool-output-one-line):
+       * lisp/cedet/semantic/mru-bookmark.el
+       (semantic-mrub-ring-to-assoc-list):
+       * lisp/cedet/semantic/grammar.el
+       (semantic-analyze-possible-completions):
+       * lisp/cedet/semantic/decorate/include.el
+       (semantic-decoration-include-describe):
+       * lisp/cedet/semantic/debug.el (semantic-debug-highlight-lexical-token):
+       (semantic-debug-highlight-rule):
+       * lisp/cedet/semantic/db-typecache.el
+       (semanticdb-typecache-for-database):
+       * lisp/cedet/semantic/complete.el
+       (semantic-collector-calculate-completions-raw):
+       * lisp/cedet/semantic/bovine/make.el
+       (semantic-analyze-possible-completions):
+       * lisp/cedet/semantic/analyze/refs.el (semantic-analyze-refs-impl):
+       (semantic-analyze-refs-proto):
+       * lisp/cedet/semantic/analyze/debug.el
+       (semantic-analyzer-debug-describe-scope):
+       * lisp/cedet/semantic/analyze.el (semantic-analyze-interesting-tag):
+       (semantic-analyze-interesting-tag):
+       (semantic-analyze-pulse):
+       * lisp/cedet/ede/util.el (ede-update-version):
+       * lisp/cedet/ede/shell.el (ede-shell-run-something):
+       * lisp/cedet/ede/project-am.el (project-am-load-makefile):
+       (project-rescan):
+       (project-am-macro):
+       (ede-buffer-mine):
+       (project-compile-target-command):
+       (project-am-package-info):
+       * lisp/cedet/ede/files.el (ede--project-inode):
+       (ede-directory-get-open-project):
+       (ede-directory-get-toplevel-open-project):
+       (ede-find-subproject-for-directory):
+       (ede-toplevel-project):
+       * lisp/cedet/ede/cpp-root.el (initialize-instance):
+       (project-compile-project):
+       (project-compile-target):
+       * lisp/cedet/ede/config.el (ede-config-get-configuration):
+       (project-debug-target):
+       (project-run-target):
+       (project-compile-project):
+       (ede-preprocessor-map):
+       (ede-java-classpath):
+       * lisp/cedet/ede/base.el (ede-normalize-file/directory): Use
+       CLOS-style oref/oset accessors instead of eieio-style :colon
+       accessors.  This avoids compilation warnings and is allegedly
+       faster.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       Obsolete erc-send-pre-hook and add new erc-pre-send-function
+
+       * lisp/erc/erc.el (erc-send-pre-hook): Make obsolete.
+       (erc-send-input): Ditto.
+       (erc-pre-send-function): New function.
+       (erc-send-input): Use the new function, and silence byte
+       compilation warning about the dynamic variable `str' used by the
+       now-obsolete hook.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       Fix compilation warning in rmailmm
+
+       * lisp/mail/rmailmm.el (rmail-mime-insert-bulk): Remove apparently
+       superfluous call to string-as-unibyte -- the buffer should be
+       unibyte already at this point.
+
+2019-06-14  Lars Ingebrigtsen  <address@hidden>
+
+       Avoid compilation warning in byte-run
+
+       * lisp/emacs-lisp/byte-run.el (macro-declaration-function): Avoid
+       compilation warning by not using `symbol-function'.
+
+2019-06-13  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/message.el: Fix NNTP sending, broken by e51adfbdb7
+
+       (message-check-news-header-syntax): 
`message--check-continuation-headers`
+       signals an error instead of returning nil on error.
+
+2019-06-13  Glenn Morris  <address@hidden>
+
+       Stop a tramp test leaving a file behind
+
+       * test/lisp/net/tramp-tests.el
+       (tramp-test10-write-region-file-precious-flag):
+       Avoid leaving a backup file after we are done.
+
+2019-06-13  Stefan Monnier  <address@hidden>
+
+       * lisp/widget.el (define-widget-keywords): Use `declare`.
+
+       * lisp/progmodes/ps-mode.el (ps-mode-octal-region): Simplify.
+
+2019-06-13  Lars Ingebrigtsen  <address@hidden>
+
+       Fix typo in object-print cleanup
+
+       * lisp/cedet/srecode/insert.el
+       (srecode-insert-variable-secondname-handler): Fix typo in
+       object-print cleanup.
+
+2019-06-13  Lars Ingebrigtsen  <address@hidden>
+
+       Remove outdated FIXME
+
+       * lisp/emacs-lisp/eieio-core.el (eieio--slot-name-index): Remove
+       comment about issuing a byte compilation warning about accessing
+       slots via :initarg -- it was implemented a few months later.
+
+2019-06-13  Lars Ingebrigtsen  <address@hidden>
+
+       semantic/senator.el byte compilation fix
+
+       * lisp/cedet/semantic/senator.el (semantic/analyze): Require to
+       avoid compilation warnings about unknown slots, and remove
+       declare-function.
+
+2019-06-13  Lars Ingebrigtsen  <address@hidden>
+
+       semantic/idle.el compilation warning fix
+
+       * lisp/cedet/semantic/idle.el (semantic/analyze): Require to
+       avoid compilation warnings about unknown slots, and remove
+       declare-function.
+
+2019-06-13  Lars Ingebrigtsen  <address@hidden>
+
+       semantic/grammar byte compilation fixes
+
+       * lisp/cedet/semantic/grammar.el (semantic/analyze): Require to
+       avoid compilation warnings about unknown slots, and remove
+       declare-function.
+
+2019-06-13  Lars Ingebrigtsen  <address@hidden>
+
+       semantic/chart.el compilation warning fixes
+
+       * lisp/cedet/semantic/chart.el (semantic/db-typecache)
+       (semantic/scope): Require to avoid byte compilation warnings about
+       undefined slots.  Remove declare-functions from these packages.
+
+2019-06-13  Lars Ingebrigtsen  <address@hidden>
+
+       Fix some cedet compilation warnings pertaining to semantic/db
+
+       * lisp/cedet/ede/config.el (semantic/db)
+       (ede-preprocessor-map): Ditto.
+
+       * lisp/cedet/ede/cpp-root.el (semantic/db): Ditto.
+
+       * lisp/cedet/ede/emacs.el (semantic/db): Ditto.
+
+       * lisp/cedet/ede/linux.el (semantic/db): Require to avoid warnings
+       about unknown slot lexical-table, and remove declare-functions
+       from the now-required semantic/db.
+
+2019-06-13  Lars Ingebrigtsen  <address@hidden>
+
+       project.el compilation warning fix
+
+       * lisp/progmodes/project.el (xref--regexp-to-extended)
+       (xref--convert-hits): Declare more xref functions to avoid
+       compilation warnings.
+
+2019-06-13  Alan Mackenzie  <address@hidden>
+
+       Depessimize bits of CC Mode for long C macros.
+
+       * lisp/progmodes/cc-engine.el (c-end-of-macro): Check for being in a
+       degenerate zero length "macro", when setting the macro cache.
+       (c-determine-+ve-limit): Add in a missing goto-char form for when 
start-pos is
+       non-nil.
+       (c-back-over-member-initializers): Add a search limit parameter.
+
+       * lisp/progmodes/cc-fonts.el (c-get-fontification-context): Add a 
search limit
+       to c-go-up-list-backward.
+       (c-font-lock-cut-off-declarators): Add a search limit to
+       c-back-over-member-initializers.
+
+       * lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings): 
Don't
+       set c-new-END to the end of logical line (which might be a long macro).
+       (c-after-change-mark-abnormal-strings): Calculate end-hwm in place of 
the
+       setting of c-new-END (above).  Use this as a search limit rather than
+       c-new-END.
+
+2019-06-13  Stefan Kangas  <address@hidden>
+
+       Remove XEmacs support from bookmark.el
+
+       * lisp/bookmark.el (bookmark-store): Remove XEmacs compat code
+       (bug#36189).
+
+2019-06-13  Lars Ingebrigtsen  <address@hidden>
+
+       Use cl-print-object instead of object-print throughout cedet
+
+       * lisp/cedet/semantic/db-find.el (semanticdb-find-log-activity):
+       Ditto.
+
+       * lisp/cedet/semantic/analyze/debug.el
+       (semantic-analyzer-debug-insert-include-summary): Ditto.
+
+       * lisp/cedet/semantic/bovine/c.el (semantic-c-describe-environment)
+       (semantic-c-describe-environment)
+       (semantic-c-describe-environment): Ditto.
+
+       * lisp/cedet/semantic/decorate/include.el
+       (semantic-decoration-fileless-include-describe): Ditto.
+       (semantic-decoration-all-include-summary): Ditto.
+
+       * lisp/cedet/srecode/insert.el
+       (srecode-insert-variable-secondname-handler): Use cl-print-object
+       instead of object-print.
+
+2019-06-13  Lars Ingebrigtsen  <address@hidden>
+
+       erc-dcc.el minor clean-ups
+
+       * lisp/erc/erc-dcc.el: Remove outdated comments.
+       (erc-dcc-get-file): Remove XEmacs compat code.
+
+2019-06-13  Lars Ingebrigtsen  <address@hidden>
+
+       Fix erc-dcc server-close code and fix compilation warning
+
+       * lisp/erc/erc-dcc.el (erc-dcc-get-filter): We receive unibyte
+       data, so no need to convert to unibyte.
+       (erc-dcc-send-filter): Kill the process before killing the buffer
+       so that we're not queried about killing the process.
+
+2019-06-13  Lars Ingebrigtsen  <address@hidden>
+
+       Make erc-dcc-server work again by making synchronous
+
+       * lisp/erc/erc-dcc.el (erc-dcc-server): :server and :nowait can't
+       be mixed, so remove the :nowait.
+
+2019-06-13  Pip Cet  <address@hidden>
+
+       Escape newlines when printing functions in timer list
+
+       * lisp/emacs-lisp/timer-list.el (list-timers): Bind
+       `print-escape-newlines' to avoid newlines in printed
+       representation (bug#36187).
+
+2019-06-13  Lars Ingebrigtsen  <address@hidden>
+
+       Compilation fix for previous change
+
+2019-06-13  Lars Ingebrigtsen  <address@hidden>
+
+       Compilation warning fix for disass.el
+
+       * lisp/emacs-lisp/disass.el (disassemble-1): Remove a
+       string-as-unibyte that probably doesn't do anything, because the
+       string in question should be unibyte anyway.  If the assert fails,
+       revert the patch.
+
+2019-06-13  Alan Mackenzie  <address@hidden>
+
+       CC Mode: replace an erroneous re-search-forward with search-forward
+
+       Move two declarations to a more suitable point in the cc-engine.el.
+
+       * lisp/progmodes/cc-engine.el (c-after-change-unmark-raw-strings): 
Change an
+       re-search-forward to search-forward.
+       (c-semi-lit-near-cache, c-semi-near-cache-limit): Move the declarations.
+
+2019-06-13  Eli Zaretskii  <address@hidden>
+
+       Fix display of Hebrew text with precomposed characters
+
+       * lisp/language/hebrew.el (base): Include precomposed
+       Hebrew characters from the Alphabetic Presentation Forms in
+       the composition patterns.  (Bug#36171)
+
+2019-06-13  Eli Zaretskii  <address@hidden>
+
+       Fix text shaping of precomposed characters with HarfBuzz
+
+       * src/hbfont.c (hbfont_shape): Fix setting TO of lglyph for
+       the case when Lisp shape-gstring function performed some
+       compositions by itself.  This happens with hebrew.el.  See
+       https://lists.freedesktop.org/archives/harfbuzz/2019-June/007396.html
+       for the details of the problem this solves.
+
+2019-06-13  Alan Mackenzie  <address@hidden>
+
+       Move declaration of c-syntax-table-hwm to avoid compiler warnings.
+
+       This variable was declared after an invocation of a defsubst which used 
it,
+       the defsubst being in another file.
+
+       * lisp/progmodes/cc-mode.el (c-syntax-table-hwm): Move the declaration 
to earlier
+       in the file.
+
+2019-06-12  Glenn Morris  <address@hidden>
+
+       Allow for line breaks in a bytecomp test
+
+       * test/lisp/emacs-lisp/bytecomp-tests.el (test-suppression):
+       Warnings from the byte compiler may be filled.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Avoid string-make-multibyte in ps-mode.el
+
+       * lisp/progmodes/ps-mode.el (ps-mode-octal-region): Avoid usage of
+       string-make-multibyte, but work in both unibyte and multibyte buffers.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Add more ps-mode octal tests
+
+       * test/lisp/progmodes/ps-mode-tests.el
+       (ps-mode-test-octal-region-multibyte): New test.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Revert previous ps-mode.el change
+
+       * lisp/progmodes/ps-mode.el (ps-mode-octal-region): Revert
+       previous change because the `string-make-unibyte' insertion was
+       the previous single change (in 2013) to this file, so it must have
+       some subtle meaning or other.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Add ps-mode-tests.el and remove a compilation warning
+
+       * lisp/progmodes/ps-mode.el (ps-mode-octal-region): Remove a
+       string-make-unibyte that apparently had no effect here.
+       * test/lisp/progmodes/ps-mode-tests.el: New file.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Suppress warnings in tildify.el
+
+       * lisp/textmodes/tildify.el (tildify--deprecated-ignore-evironments):
+       (tildify-tildify, tildify-mode): Suppress warnings about obsolete
+       internal function `tildify--pick-alist-entry'.  Apparently these
+       semi-deprecated functions rely on each other.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Add comment to clarify the use of `str'
+
+2019-06-12  Glenn Morris  <address@hidden>
+
+       Revert "Compilation warning fix for byte-run.el"
+
+       * lisp/emacs-lisp/byte-run.el (macro-declaration-function):
+       Revert change that causes a bootstrap failure.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Fix compilation warnings in rfc2104
+
+       * lisp/net/rfc2104.el (rfc2104-hash): Remove superflous calls to
+       string-make-unibyte and avoid two compilation warnings.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       New file rfc2104-tests.el
+
+       * test/lisp/net/rfc2104-tests.el: New file to test rfc2104 hashes.
+
+2019-06-12  Glenn Morris  <address@hidden>
+
+       Give more information in a bytecomp test failure
+
+       * test/lisp/emacs-lisp/bytecomp-tests.el (test-suppression):
+       More informative failure messages.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Fix compilation warning in qp.el
+
+       * lisp/mail/qp.el (quoted-printable-encode-region): No need to
+       convert the regexp to multibyte before searching.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Fix warning about obsolete func calling obsolete func in etags.el
+
+       * lisp/progmodes/etags.el (find-tag-other-frame): Don't give a
+       warning about an obsolete function calling another obsolete function.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Compilation warning fix in feedmail.el
+
+       * lisp/mail/feedmail.el (feedmail-scroll-buffer): Remove XEmacs
+       compat code (that gave a compilation warning).
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from mml.el that gave a compilation warning
+
+       * lisp/gnus/mml.el (mml-mode): Remove XEmacs compat code
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       message.el byte compilation warning fix
+
+       * lisp/gnus/message.el (message-inhibit-body-encoding): Move
+       earlier to avoid compilation warning.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Compilation warning fix for byte-run.el
+
+       * lisp/emacs-lisp/byte-run.el (macro-declaration-function):
+       Suppress warning about obsolete function used by obsolete variable.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       todo-mode.el compilation warning fix
+
+       * lisp/calendar/todo-mode.el (hl-line-highlight): Declare to avoid
+       compilation warning.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Touch ups to the XEmacs deletion patch for idlw-shell.el
+
+       * lisp/progmodes/idlw-shell.el (idlwave-xemacs-hack-mouse-track):
+       Fix up previous obsoletion.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs support from idlw-shell.el
+
+       * lisp/progmodes/idlw-shell.el (idlwave-shell-make-temp-file)
+       (idlwave-shell-mouse-examine)
+       (idlwave-xemacs-hack-mouse-track, idlwave-display-buffer)
+       (idlwave-shell-debug-line-map)
+       (idlwave-shell-make-new-bp-overlay, idlwave-shell-mode-map):
+       Remove XEmacs support.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs support from ido.el
+
+       * lisp/ido.el (ido-active, ido-completion-help)
+       (ido-minibuffer-setup): Remove XEmacs support.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Remove compat code for XEmacs and pre-Emacs 20 Emacs in pcomplete.el
+
+       * lisp/pcomplete.el (pcomplete-event-matches-key-specifier-p)
+       (pcomplete-read-event, pcomplete-show-completions): Remove XEmacs
+       support and mark now-trivial defaliases as obsolete.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs support from dig.el
+
+       * lisp/net/dig.el (dig-mode): Remove XEmacs support.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs support from goto-addr.el
+
+       * lisp/net/goto-addr.el (goto-address-highlight-keymap): Remove
+       XEmacs support.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs support from dns.el
+
+       * lisp/net/dns.el (dns-read-string-name, dns-write, dns-read)
+       (dns-make-network-process, dns-query): Remove XEmacs support.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Remove XEmacs compat code from tempo.el
+
+       * lisp/tempo.el (tempo-insert-template): Remove XEmacs compat code.
+
+2019-06-12  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Add a workaround for syntax-ppss ignoring syntax-table prop 
changes
+
+       * lisp/progmodes/cc-engine.el (c-truncate-lit-pos-cache): Maintain the 
new
+       variable c-syntax-table-hwm after buffer changes.
+
+       * lisp/progmodes/cc-mode.el (c-syntax-table-hwm): New variable.
+       (c-before-change): Set c-syntax-table-hwm to "infinity".
+       (c-after-change): Call syntax-ppss-flush-cache, just before a font 
locking is
+       due to take place.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Restore image scaling support when there's no native image scaling
+
+       * lisp/net/shr.el (shr--image-type): New function.
+       (shr-rescale-image): Use it to allow image scaling on Emacsen with
+       ImageMagick support that does not have native image scaling support.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Rewrite the kmacro register function to avoid using obsolete functions
+
+       * lisp/kmacro.el (kmacro-register): New struct to replace the
+       general registerv struct.
+       (register-val-jump-to, register-val-describe)
+       (register-val-insert): New methods to implement the register
+       interface.
+       (kmacro-to-register): Use the kmacro-register struct.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       (beginning-of-defun-raw): Suppress warning about syntax-begin-function
+
+       * lisp/emacs-lisp/lisp.el (beginning-of-defun-raw):
+       font-lock-compile-keywords also suppresses warnings about the
+       obsolete syntax-begin-function variable, so suppress the only
+       other use not in syntax.el.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Suppress warning about pi not having a prefix
+
+       * lisp/emacs-lisp/float-sup.el (pi): Suppress warning about this
+       obsolete variable not having a prefix.
+
+2019-06-12  Richard Copley  <address@hidden>
+
+       * doc/lispref/text.texi (Base 64): Fix typos.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Suppress warning about obsolete function custom-show
+
+       * lisp/cus-edit.el (custom-variable-value-create): Suppress
+       warning about obsolete function custom-show.  The widget this
+       supports has been obsolete since Emacs 24, but we should perhaps
+       be very conservative about removing widget types, so suppress the
+       warning instead of removing the widget type.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Suppress warning in display-completion-list about itself
+
+       * lisp/minibuffer.el (display-completion-list):
+       `display-completion-list' calls itself with the old, obsolete
+       callargs, so suppress this warning.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Suppress interactive-only warnings in epa*.el
+
+       * lisp/epa-mail.el (epa-mail-decrypt, epa-mail-verify)
+       (epa-mail-sign, epa-mail-encrypt): Ditto.
+
+       * lisp/epa.el (epa-verify-cleartext-in-region): Suppress warnings
+       about calling interactive-only functions, because these are
+       interactive-only thin wrappers around those functions.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       ehelp.el: Suppress warning
+
+       * lisp/ehelp.el (electric-help-execute-extended): Suppress warning
+       about `execute-extended-command' only being interactive, because
+       we're still using it interactively, but via a wrapper.
+
+2019-06-12  Lars Ingebrigtsen  <address@hidden>
+
+       Add the new macro with-suppressed-warnings
+
+       * lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): New macro.
+
+       * doc/lispref/compile.texi (Compiler Errors): Document
+       with-suppressed-warnings and deemphasise with-no-warnings
+       slightly.
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile--suppressed-warnings):
+       New internal variable.
+       (byte-compile-warning-enabled-p): Heed
+       byte-compile--suppressed-warnings, bound via with-suppressed-warnings.
+       (byte-compile-initial-macro-environment): Provide a macro
+       expansion of with-suppressed-warnings.
+       (byte-compile-file-form-with-suppressed-warnings): New byte hunk
+       handler for the suppressed symbol machinery.
+       (byte-compile-suppressed-warnings): Ditto for the byteop.
+       (byte-compile-file-form-defmumble): Ditto.
+       (byte-compile-form, byte-compile-normal-call)
+       (byte-compile-normal-call, byte-compile-variable-ref)
+       (byte-compile-set-default, byte-compile-variable-set)
+       (byte-compile-function-form, byte-compile-set-default)
+       (byte-compile-warn-obsolete, byte-compile--declare-var): Pass the
+       symbol being warned in to byte-compile-warning-enabled-p.
+
+       * test/lisp/emacs-lisp/bytecomp-tests.el (test-suppression): New
+       function.
+       (bytecomp-test--with-suppressed-warnings): Tests.
+
+2019-06-11  Roland Winkler  <address@hidden>
+
+       Fix to previous commit
+
+       * lisp/find-dired.el (find-dired-sentinel): Check whether
+       find-dired-refine-function is non-nil.
+
+2019-06-11  Roland Winkler  <address@hidden>
+
+       Allow refining the *Find* buffer of find-dired. (Bug#29513)
+
+       * lisp/find-dired.el (find-dired-refine-function): New user variable.
+       (find-dired-sentinel): Use it.  Simplify.
+       (find-dired-sort-by-filename): New function.
+
+2019-06-11  Mattias Engdegård  <address@hidden>
+
+       Keep auto-revert-mode working when changing buffer file name (bug#36159)
+
+       * lisp/autorevert.el (after-set-visited-file-name-hook):
+       Add unconditionally.
+       (global-auto-revert-mode): Don't use
+       `after-set-visited-file-name-hook' here.
+       (auto-revert-set-visited-file-name): Rename from
+       `auto-revert--global-set-visited-file-name' and generalise.
+       * test/lisp/autorevert-tests.el (auto-revert-test06-write-file): New.
+
+2019-06-11  Michael Albinus  <address@hidden>
+
+       Minor fixes on tramp-tests.el for w32
+
+       * test/lisp/net/tramp-tests.el (tramp-test32-shell-command):
+       Ignore absence of tput.
+       (tramp-test43-asynchronous-requests): Don't start watchdog on w32.
+
+2019-06-11  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       5ca093d (origin/emacs-26) Fix doc of 'display-buffer-in-previous-wind...
+       add2cac lisp/*.el: Minor docstring fixes
+
+2019-06-11  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       758e9a8 Revert "Don't mark main_thread (Bug#36155)"
+       1877b7b Don't mark main_thread (Bug#36155)
+       4904fb3 More quotation fixes (Bug#35885)
+       4cc4b5d ; * src/keyboard.c (tool_bar_items): Fix a typo.  (Bug#36143)
+       b58ecaf Minor copyedits in efaq-w32
+       48422af Tiny improvement of documentation of major mode conventions
+       25d44d2 * nt/addpm.c (main): Fix buffer overflow
+
+2019-06-11  Pip Cet  <address@hidden>
+
+       Fix list-processes typo with thread-name
+
+       * lisp/simple.el (list-processes--refresh):
+       Don’t assume thread-name succeeds (Bug#36163).
+
+2019-06-11  Eli Zaretskii  <address@hidden>
+
+       Fix shaping of Arabic test when the region is extended
+
+       * src/xdisp.c (compute_stop_pos): Set the limit for searching
+       for changes in text properties such that the limit is never in
+       the middle of composable text.  (Bug#28312)
+
+2019-06-11  Philipp Stephani  <address@hidden>
+
+       Add missing indentation declaration to a few macros.
+
+       * lisp/window.el (with-temp-buffer-window)
+       (with-current-buffer-window, with-displayed-buffer-window):
+       Add missing indentation declaration
+
+2019-06-11  Pip Cet  <address@hidden>
+
+       Fix mouse cursor movement in 'select-frame-set-input-focus' (Bug#36165)
+
+       * lisp/frame.el (select-frame-set-input-focus): With
+       'mouse-autoselect-window' use 'set-mouse-pixel-position' to
+       avoid selecting another window manager window (Bug#36165).
+
+2019-06-10  Noam Postavsky  <address@hidden>
+
+       Don't keep warning about unescaped literals (Bug#36068)
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Restore lost
+       let-binding of lread--unescaped-character-literals, so that unescaped
+       literals warning will only apply to the form just read.
+       * test/lisp/emacs-lisp/bytecomp-tests.el
+       (bytecomp-tests--unescaped-char-literals): Expand test to check that
+       we don't keep warning about old unescaped literals.
+
+2019-06-10  Michael Albinus  <address@hidden>
+
+       Make tramp-test43-asynchronous-requests working, again
+
+       * test/lisp/net/tramp-tests.el (tramp-list-tramp-buffers):
+       Declare `tramp-list-tramp-buffers'.
+       (tramp--test-ignore-make-symbolic-link-error)
+       (tramp--test-ignore-add-name-to-file-error): Improve declaration.
+       (tramp--test-with-proper-process-name-and-buffer): New macro.
+       (tramp-test43-asynchronous-requests): Use the macro for timer,
+       process filter and process sentinel.  Comment the remote file
+       operation in the timer.  Remove further async events.  Accept
+       output from all processes.
+
+2019-06-10  Michael Albinus  <address@hidden>
+
+       Fix quoting problem in Tramp on w32 systems
+
+       * lisp/net/tramp-adb.el (tramp-adb-connection-local-default-profile):
+       * lisp/net/tramp-integration.el 
(tramp-connection-local-default-profile):
+       Revert patch from 2019-05-24.  It is fixed differently.
+
+       * lisp/net/tramp.el (tramp-encoding-shell):
+       (tramp-encoding-command-switch)
+       (tramp-encoding-command-interactive, )
+       (tramp-unquote-shell-quote-argument): Suppress `shell-file-name'.
+       (tramp-set-file-uid-gid):
+       * lisp/net/tramp-sh.el (tramp-find-inline-compress)
+       (tramp-make-copy-program-file-name):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory):
+       Use `tramp-unquote-shell-quote-argument'.
+
+2019-06-10  Mattias Engdegård  <address@hidden>
+
+       Fix copy-paste error in autorevert-test
+
+       * test/lisp/autorevert-tests.el: Use correct name to define a remote 
test.
+
+2019-06-09  Juanma Barranquero  <address@hidden>
+
+       * src/editfns.c (Fngettext): Fix typos in docstring.
+
+2019-06-09  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Avoid empty menu bar on Xaw with cairo
+
+       * lwlib/lwlib-utils.c (crxft_font_open_name) [USE_CAIRO]: Return NULL if
+       font extents are bogus.
+
+2019-06-09  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Document exporting/printing text with X core fonts to outline images on 
cairo
+
+       * src/xfns.c (Fx_export_frames) [USE_CAIRO]:
+       (Fx_print_frames_dialog) [USE_CAIRO && USE_GTK]: Add notes on x font 
backend.
+
+2019-06-09  Dmitry Gutov  <address@hidden>
+
+       Omit the misplaced and unnecessary shyness qualifier
+
+       * lisp/progmodes/ruby-mode.el (ruby-find-library-file):
+       Omit the misplaced and unnecessary shyness qualifier.
+       Suggested by Mattias Engdegård <address@hidden>.
+
+2019-06-09  Dmitry Gutov  <address@hidden>
+
+       Unbreak saving xref--original-window, etc
+
+       * lisp/progmodes/xref.el (xref--show-xref-buffer)
+       (xref--show-defs-buffer-at-bottom): Move major mode calls earlier.
+       So that local variable values are not lost.
+
+2019-06-09  Stefan Kangas  <address@hidden>
+
+       Add tests for mail/uudecode.el
+
+       * lisp/mail/uudecode.el: Remove redundant :group usage.
+       * test/lisp/mail/uudecode-resources/uudecoded.txt,
+       test/lisp/mail/uudecode-resources/uuencoded.txt,
+       test/lisp/mail/uudecode-tests.el: New files.
+
+2019-06-09  Paul Eggert  <address@hidden>
+
+       Fig grammar of count-lines-page
+
+       * lisp/textmodes/page.el (count-lines-page):
+       Say "Page has 1 line", not "Page has 1 lines" (Bug#35981).
+
+2019-06-09  Stefan Kangas  <address@hidden>
+
+       Make bookmark-old-default-file variable obsolete
+
+       * lisp/bookmark.el (bookmark-old-default-file):
+       Redefine as obsolete variable alias for 'bookmark-default-file'.
+       (bookmark-maybe-load-default-file): Don't try to rename file
+       'bookmark-old-default-file' (~/.emacs-bkmrks) to new name (Bug#35940).
+
+2019-06-09  Stefan Kangas  <address@hidden>
+
+       Make bookmark-maybe-message obsolete (Bug#35918)
+
+       * lisp/bookmark.el (bookmark-maybe-message):
+       Redefine as obsolete function alias for 'message'.
+       (bookmark-write-file): Use a progress reporter.
+       (bookmark-load-file): Use a progress reporter.
+
+2019-06-09  Stefan Kangas  <address@hidden>
+
+       Make `bookmark-file' variable obsolete
+
+       * lisp/bookmark.el (bookmark-file): Redefine as obsolete variable
+       alias for `bookmark-default-file'.  (Bug#35917)
+
+2019-06-09  Glenn Morris  <address@hidden>
+
+       * make-dist: Doc fix for --help re --snapshot (since 201612 change).
+
+2019-06-09  Stefan Kangas  <address@hidden>
+
+       Remove interactive spec from bookmark-set-internal (bug#36121)
+
+       * lisp/bookmark.el (bookmark-set-internal): Remove interactive spec.
+
+2019-06-09  Stefan Kangas  <address@hidden>
+
+       Pacify compiler in paragraphs.el after lexical-binding
+
+       * lisp/textmodes/paragraphs.el: Pacify byte compiler.
+
+2019-06-09  Stefan Kangas  <address@hidden>
+
+       Use lexical-binding in password-cache.el and add tests
+
+       * lisp/password-cache.el: Use lexical-binding.
+       * test/lisp/password-cache-tests.el: New file.
+
+2019-06-09  Paul Eggert  <address@hidden>
+
+       * src/fns.c (cmpfn_eql): Simplify.
+
+2019-06-09  Alex Branham  <address@hidden>
+
+       Use lexical binding for ediff
+
+       * lisp/vc/ediff-diff.el:
+       * lisp/vc/ediff-help.el:
+       * lisp/vc/ediff-hook.el:
+       * lisp/vc/ediff-init.el:
+       * lisp/vc/ediff-merg.el:
+       * lisp/vc/ediff-vers.el:
+       * lisp/vc/ediff-wind.el:
+       * lisp/vc/ediff-mult.el:
+       * lisp/vc/ediff-ptch.el:
+       * lisp/vc/ediff.el: Use lexical binding.
+       (ediff-version): Increase.
+       (ediff-date): Remove.
+
+2019-06-09  Dmitry Gutov  <address@hidden>
+
+       Rename xref--pop-to-location to xref-pop-to-location
+
+       * lisp/progmodes/xref.el (xref-pop-to-location):
+       Rename from xref-pop-to-location.  So that third-party
+       xref-show-definitions-function implementations can use it safely
+       (bug#36144).  Update all callers.
+
+2019-06-09  Dmitry Gutov  <address@hidden>
+
+       Add a built-in alternative for xref-show-definitions-function
+
+       * lisp/progmodes/xref.el (xref--transient-buffer-mode-map):
+       New variable.
+       (xref--transient-buffer-mode): New major mode.
+       (xref--button-map): Remove the RET binding (it was unnecessary in
+       the first place).
+       (xref--show-common-initialize):
+       Extract from xref--show-xref-buffer.
+       (xref--show-defs-buffer-at-bottom): New function.
+
+2019-06-09  Stefan Kangas  <address@hidden>
+
+       Fix TODO to convert defvar with leading '*' to defcustom
+
+       * etc/TODO: Remove done TODO to remove '*' from defvar.
+       * doc/misc/gnus.texi: Remove leading '*' from defvar example.
+       * lisp/kermit.el (kermit-esc-char): Convert to defcustom.
+       * lisp/desktop.el (desktop-header):
+       * lisp/obsolete/cc-compat.el (c-indent-level)
+       (c-brace-imaginary-offset, c-brace-offset, c-argdecl-indent)
+       (c-label-offset, c-continued-statement-offset)
+       (c-continued-brace-offset): Remove leading '*' from docstring.
+       * lisp/progmodes/dcl-mode.el: Remove leading '*' from docstring in
+       comment.
+       * test/manual/cedet/tests/test.el: Add comment asking if example of
+       defvar with leading '*' should be removed.
+       (Bug#35994)  (The previous commit is also for the same bug.)
+
+2019-06-09  Stefan Kangas  <address@hidden>
+
+       Fix TODO to remove leading '*' from defcustom
+
+       * etc/TODO: Remove done TODO to remove leading '*' from defcustom
+       doc-strings.
+       * lisp/ibuffer.el (ibuffer-inline-columns): Remove leading '*' from
+       doc-string.
+
+2019-06-08  Stefan Kangas  <address@hidden>
+
+       Mark define-widget-keywords as obsolete
+
+       * lisp/widget.el (define-widget-keywords): Mark as obsolete.
+       (Bug#36065)
+
+2019-06-08  Stefan Kangas  <address@hidden>
+
+       Use lexical-binding in underline.el and add tests
+
+       * lisp/textmodes/underline.el: Use lexical-binding.
+       * test/lisp/textmodes/underline-tests.el: New file.
+       (Bug#36063)
+
+2019-06-08  Stefan Kangas  <address@hidden>
+
+       Checkdoc fixes in lisp/bookmark.el
+
+       * lisp/bookmark.el (bookmark-bmenu-inline-header-height)
+       (bookmark-bmenu-marks-width, bookmark-map, bookmark-quit-flag)
+       (bookmark-name-from-full-record, bookmark-set-internal)
+       (bookmark-insert-annotation, bookmark--jump-via)
+       (bookmark-bmenu-set-header, bookmark-show-annotation)
+       (bookmark-bmenu-other-window-with-mouse, bookmark-bmenu-relocate):
+       Checkdoc docstring fixes.  (Bug#35916)
+
+2019-06-08  Paul Eggert  <address@hidden>
+
+       Fix int overflow bug in ‘equal’
+
+       * src/fns.c (internal_equal):
+       Fix bug when vector lengths exceed INT_MAX.
+
+2019-06-08  Paul Eggert  <address@hidden>
+
+       Tune base64 decoding
+
+       This improves performance of base64-decode-region by about 7.5% on
+       my platform, and gets rid of some macros.
+       * src/fns.c (IS_ASCII, IS_BASE64, IS_BASE64_IGNORABLE)
+       (READ_QUADRUPLET_BYTE): Remove.
+       (base64_value_to_char, base64_char_to_value):
+       Now an array of two arrays.  All uses changed.
+       (base64url_value_to_char, base64url_char_to_value):
+       Remove.  All uses changed to the other array.
+       (base64_char_to_value): Entries are now of type signed char, not
+       short, since we can assume C99.  Use C99 initializers; this is
+       clearer and caters to the (theoretical) possibility of systems
+       that do not use ASCII or do not have 8-bit bytes.  Allow any index
+       in the range 0..UCHAR_MAX instead of limiting it to 0..127, so
+       that uses need not check for in-range indexes.  Also record
+       padding chars.  All uses changed.
+       (base64_decode_1): Always store number of chars in *NCHARS_RETURN,
+       for simplicity.  All callers changed.  Speed up the byte-fetching.
+
+2019-06-08  Paul Eggert  <address@hidden>
+
+       Fix out-of-source make-dist problems
+
+       Problem with jisx2131-filter reported by Phillip Lord in:
+       https://lists.gnu.org/r/emacs-devel/2019-06/msg00147.html
+       * admin/charsets/Makefile.in (SED_SCRIPT):
+       Put it in $(srcdir), which is not necessarily the working directory.
+       ($(SED_SCRIPT)): Rename from jisx2131-filter.  All uses changed.
+       (clean): Do not remove SED_SCRIPT.
+       (extraclean): Remove it here instead.
+       * make-dist (possibly_non_vc_files): Remove src/emacs-module.h.
+       Although it is portable and could be distributed in the tarball,
+       it's too much hassle to do that, so let each builder make it.
+
+2019-06-08  Bernhard Rotter  <address@hidden>
+
+       Fix path for current directory in eshell on MS-Windows
+
+       On MS-Windows, PATH implicitly includes the current directory.
+       Do it right for Eshell by adding "./" instead of ".", to
+       avoid finding .FOO instead of ./FOO.
+       * lisp/eshell/esh-util.el (eshell-get-path): New function.
+       * lisp/eshell/em-cmpl.el (eshell-complete-commands-list):
+       * lisp/eshell/esh-ext.el (eshell-search-path): Use eshell-get-path.
+
+2019-06-08  Eli Zaretskii  <address@hidden>
+
+       Minor fixes for the last commits
+
+       * src/fns.c (Fbase64url_encode_region)
+       (Fbase64url_encode_string, Fbase64_decode_region)
+       (Fbase64_decode_string): Fix doc strings.
+       (base64_decode_1): Minor stylistic code changes.
+
+       * doc/lispref/text.texi (Base 64): Fix typos and improve
+       wording of the last committed text.
+
+2019-06-08  Pierre Téchoueyres  <address@hidden>
+
+       Add support for base64url variant of base-64 encoding/decoding
+
+       Implement the RFC4648 variant of base64 encoding used by URLs.
+       * doc/lispref/text.texi (base64url-encode-region,
+       base64url-encode-string): Document new functions.
+       (base64-decode-region, base64-decode-string): Document new optional
+       parameter 'base64url' used to use url variant when decoding data.
+
+       * src/fns.c (base64url-encode-region, base64url-encode-region): New
+       functions to manage url variant.
+       (base64-decode-region, base64-decode-string): Add optional
+       parameter to indicate use of url-variant.
+       (base64_encode_region_1, base64_encode_string_1): Internal functions
+       with extracted code from 'base64_encode_region' and
+       'base64_encode_string' and optional parameters to manage padding and
+       url variant.
+       (base64-encode-region, base64-encode-string) : Use
+       base64_encode_region_1 and base64_encode_string_1.
+       (base64-encode-1): Add parameters to manage padding and url variant.
+       (base64-decode-1): Add parameter to manage url variant.
+
+       * test/src/fns-tests.el (fns-tests--with-region): New helper macro to
+       test region variant of base64 encode / decode functions.
+       (fns-tests--string-repeat): Helper function used in base64 tests.
+       (fns-tests-base64-encode-region, fns-tests-base64-encode-string):
+       Tests for standard base64 function.
+       (fns-test-base64url-encode-region,
+       fns-test-base64url-encode-string): Tests for url variant.
+       (fns-tests-base64-decode-string): Tests for decoding part.
+
+2019-06-07  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Support X core font driver on cairo (Bug#28236)
+
+       * configure.ac (HAVE_X_WINDOWS): Add xfont.o to FONT_OBJ if HAVE_CAIRO.
+
+       * doc/lispref/frames.texi (Font and Color Parameters): Mention X core 
font
+       driver with Cairo drawing.
+
+       * src/font.c (syms_of_font) [HAVE_X_WINDOWS && USE_CAIRO]: Call 
syms_of_xfont.
+
+       * src/xfns.c (x_create_tip_frame) [USE_CAIRO]: Register xfont_driver.
+
+       * src/xterm.c (x_cr_gc_clip) [USE_CAIRO]: New function extracted from
+       x_begin_cr_clip.
+       (x_begin_cr_clip) [USE_CAIRO]: Use it.
+       (xlib_surface_key, saved_drawable_key) [USE_CAIRO]: New variables.
+       (x_cr_destroy_xlib_surface, x_try_cr_xlib_drawable)
+       (x_end_cr_xlib_drawable) [USE_CAIRO]: New functions.
+       (x_draw_composite_glyph_string_foreground)
+       (x_draw_glyph_string_foreground) [USE_CAIRO]: Get Xlib surface when 
drawing
+       text with X core fonts into bitmap surfaces.  Add fallback code for 
drawing
+       into outline surfaces.
+
+2019-06-07  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Implement native image rotation and cropping on cairo
+
+       * src/dispextern.h (struct image) [USE_CAIRO]:
+       * src/image.c (free_image, image_clear_image_1)
+       (image_set_crop, image_set_size, image_set_rotation)
+       (image_create_x_image_and_pixmap) [USE_CAIRO]: #ifdef out HAVE_XRENDER 
part.
+
+       * src/image.c (cr_create_surface_from_pix_containers) [USE_CAIRO]: 
Rename
+       from cr_create_surface_from_pix_containers.  Change arguments to pair of
+       Emacs_Pix_Container:s.  Move block_input and unblock_input to caller.
+       (cr_put_image_to_cr_data) [USE_CAIRO]: New function.
+       (prepare_image_for_display) [USE_CAIRO]: Use it.
+       (image_set_transform) [USE_CAIRO]: Create dummy solid color pattern 
equipped
+       with transformation matrix and set it to img->cr_data.
+
+       * src/xterm.c (fringe_bmp) [USE_CAIRO]: Change type to cairo_pattern_t 
**.
+       (x_cr_define_fringe_bitmap, x_cr_destroy_fringe_bitmap) [USE_CAIRO]: 
Create
+       or destroy cairo pattern.
+       (x_cr_draw_image) [USE_CAIRO]: Remove arguments image_width and 
image_height.
+       Change type of image to cairo pattern.  All callers changed.
+
+       * src/gtkutil.c (xg_get_image_for_pixmap) [USE_CAIRO]: Get cairo surface
+       from img->cr_data, which is of cairo pattern now.
+
+2019-06-07  Thomas Fitzsimmons  <address@hidden>
+
+       Make icalendar-import-buffer not show diary file buffer
+
+       * lisp/calendar/diary-lib.el (diary-make-entry): Add
+       omit-trailing-space parameter.  Add do-not-show parameter to
+       allow not showing diary file buffer.
+       * lisp/calendar/icalendar.el (icalendar--add-diary-entry): Remove
+       workaround to omit trailing space in diary entry.  Have
+       diary-make-entry not display the diary file buffer.  (Bug#35645)
+
+2019-06-07  Paul Eggert  <address@hidden>
+
+       Fix commentary about fixnums and hashes.
+
+2019-06-07  Paul Eggert  <address@hidden>
+
+       Fix minor ssize_t / ptrdiff_t confusion
+
+       * src/fileio.c (Fcopy_file): This limit is because of ssize_t,
+       so use TYPE_MAXIMUM (ssize_t) not PTRDIFF_MAX.
+
+2019-06-07  Paul Eggert  <address@hidden>
+
+       Use machine pointer width for face hashes
+
+       * src/dispextern.h (struct face):
+       * src/xfaces.c (hash_string_case_insensitive, lface_hash)
+       (cache_face, lookup_face): Use uintptr_t for face hashes
+       instead of discarding the upper pointer bits on 64-bit machines.
+
+2019-06-07  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus: Further reduce assumptions about gnus-data format
+
+       * lisp/gnus/gnus-registry.el (gnus-registry-fetch-message-id-fast)
+       (gnus-registry-fetch-simplified-message-subject-fast)
+       (gnus-registry-fetch-sender-fast, gnus-registry-fetch-recipients-fast)
+       (gnus-registry--set/remove-mark): Don't hardcode assoc for 
gnus-data-find-in.
+
+       * lisp/gnus/gnus-sum.el (gnus-data-update-list): Don't hardcode `nth 2`
+       for gnus-data-pos.
+       (gnus-summary-insert-old-articles, gnus-summary-insert-new-articles)
+       (gnus-summary-first-article-p): Don't hardcode `car` for 
`gnus-data-number`.
+       (gnus-summary-move-article, gnus-summary-expire-articles)
+       (gnus-summary-delete-article): Don't hardcode assoc for 
gnus-data-find-in.
+
+       * lisp/gnus/spam.el (spam-fetch-article-header): Don't hardcode `nth 3`
+       for gnus-data-header.
+
+2019-06-07  Eli Zaretskii  <address@hidden>
+
+       Support text shaping with HarfBuzz
+
+       The code to support HarfBuzz was written by these individuals:
+
+         Khaled Hosny <address@hidden>
+         YAMAMOTO Mitsuharu <address@hidden>
+         Eli Zaretskii <address@hidden>
+
+       * src/xftfont.c (xftfont_list): Call ftfont_list2.
+       (xftfont_match): Call ftfont_match2.
+       (xftfont_open) [HAVE_HARFBUZZ]: Set the font driver to
+       xfthbfont_driver as required.  Reset xftfont_info->hb_font to
+       NULL.
+       (xftfont_close) [HAVE_HARFBUZZ]: Dispose of the hb_font object.
+       (xftfont_shape): Accept an additional argument DIRECTION and
+       pass it to ftfont_shape.
+       (xfthbfont_list, xfthbfont_match, xfthbfont_begin_hb_font)
+       (xfthbfont_end_hb_font) [HAVE_HARFBUZZ]: New functions.
+       (syms_of_xftfont): New DEFSYM 'xfthb'.
+       (syms_of_xftfont_for_pdumper) [HAVE_HARFBUZZ]: Initialize
+       xfthbfont_driver.
+
+       * src/xfns.c (Fx_create_frame, x_create_tip_frame)
+       [HAVE_HARFBUZZ]: Register the HarfBuzz font driver.
+
+       * src/w32uniscribe.c (bswap_32) [HAVE_HARFBUZZ]: Define to use
+       the builtin for GCC 4.3.9 and newer; else use byteswap.h from
+       Gnulib.
+       (struct uniscribe_font_info): New member 'scale'.  The member
+       'cache' is now used both by Uniscribe and HarfBuzz backends.
+       (uniscribe_open): Set the font backend as required by the font
+       entity's font_type field.
+       (uniscribe_close) [HAVE_HARFBUZZ]: Dispose of the hb_font
+       object.
+       (uniscribe_shape): Accept an additional argument DIRECTION.
+       (w32hb_list, w32hb_match, free_cb, w32hb_get_font_table)
+       (w32hb_get_font, w32hb_encode_char, w32hb_begin_font)
+       (w32hb_get_variation_glyphs, load_harfbuzz_funcs)
+       [HAVE_HARFBUZZ]: New functions.
+       (syms_of_w32uniscribe_for_pdumper): Initialize
+       harfbuzz_font_driver if loading the requisite functions from
+       the HarfBuzz DLL succeeded.
+
+       * src/w32font.c (syms_of_w32font): New DEFSYM 'harfbuzz'.
+
+       * src/w32fns.c (Fx_create_frame, w32_create_tip_frame):
+       Determine whether we should register the HarfBuzz backend, or
+       Uniscribe backend, or both for the new frame.
+
+       * src/w32common.h (hbfont_init_w32_funcs) [HAVE_HARFBUZZ]: Add
+       prototype.
+
+       * src/macfont.m (lgstring_direction): New enumeration.
+       (mac_font_shape_1, mac_screen_font_shape, macfont_shape):
+       Accept an additional argument DIRECTION; all callers changed.
+
+       * src/lisp.h (get_unicode_property): Add prototype.
+
+       * src/hbfont.c: New file.
+
+       * src/ftxfont.c (ftxfont_list): Call ftfont_list2.
+       (ftxfont_match): Call ftfont_match2.
+
+       * src/ftfont.h [HAVE_HARFBUZZ]: Include hb.h and hb-ft.h.
+       (struct font_info): New member hb_font.
+
+       * src/ftfont.c (ftfont_list2, ftfont_list_family): New functions.
+       (ftfont_open) [HAVE_HARFBUZZ]: Reset ftfont_info->hb_font to
+       NULL.  Set the font backend to fthbfont_driver when required.
+       (ftfont_close) [HAVE_HARFBUZZ]: Dispose of ftfont_info->hb_font.
+       (ftfont_glyph_metrics): New function.
+       (ftfont_text_extents): Call ftfont_glyph_metrics instead of
+       FT_Load_Glyph.
+       (ftfont_shape): Accept an additional argument DIRECTION.
+       (ftfont_variation_glyphs) [!HAVE_OTF_GET_VARIATION_GLYPHS]:
+       Support for variation glyphs without FLT.
+       (fthbfont_begin_hb_font) [HAVE_HARFBUZZ]: New function.
+       (syms_of_ftfont): New DEFSYM freetypehb.
+       (syms_of_ftfont_for_pdumper): Initialize fthbfont_driver.
+
+       * src/ftcrfont.c (ftcrfont_list): Call ftfont_list2.
+       (ftcrfont_match): Call ftfont_match2.
+       (ftcrfont_open) [HAVE_HARFBUZZ]: Set the font backend to
+       ftcrhbfont_driver as required.  Reset ftcrfont_info->hb_font
+       to NULL.
+       (ftcrfont_close) [HAVE_HARFBUZZ]: Discard of
+       ftcrfont_info->hb_font.
+       (ftcrfont_shape): Pass DIRECTION to ftfont_shape.
+       (ftcrhbfont_list, ftcrhbfont_match)
+       (ftcrhbfont_begin_hb_font, ftcrhbfont_end_hb_font)
+       [HAVE_HARFBUZZ]: New functions.
+       (syms_of_ftcrfont): New DEFSYM ftcrhb.
+       (syms_of_ftcrfont_for_pdumper): Initialize ftcrhbfont_driver.
+
+       * src/font.h [HAVE_HARFBUZZ]: Include hb.h.
+       (struct font_driver): Update comments and function signatures
+       to reflect the new argument DIRECTION accepted by the 'shape'
+       method.  New methods 'begin_hb_font' and 'end_hb_font'.
+       (hbfont_shape, hbfont_combining_capability)
+       (fthbfont_begin_hb_font) [HAVE_HARFBUZZ]: Add prototypes.
+
+       * src/font.c (Ffont_shape_gstring): Accept an additional
+       argument DIRECTION, and pass it to the font driver's 'shape'
+       method.
+       (Ffont_variation_glyphs): Doc fix.
+       (syms_of_font): New DEFSYMS L2R and R2L.
+
+       * src/composite.h (composition_reseat_it): Adjust prototype.
+
+       * src/composite.c (autocmp_chars): Accept additional argument
+       DIRECTION, and pass it to auto-composition-function.  All
+       callers changed.
+       (composition_reseat_it): Accept additional argument
+       BIDI_LEVEL, and use it to determine the DIRECTION argument to
+       be passed to autocmp_chars.  All callers changed.
+       (syms_of_composite) <auto-composition-function>: Improve the
+       doc string; document the meaning of the new argument
+       DIRECTION.
+
+       * src/chartab.c (get_unicode_property): New function,
+       refactored from the body of get-unicode-property-internal.
+       (Fget_unicode_property_internal): Call get_unicode_property
+       after validating the input arguments.
+
+       * src/Makefile.in (HARFBUZZ_CFLAGS, HARFBUZZ_LIBS): New macros.
+       (EMACS_CFLAGS): Use HARFBUZZ_CFLAGS.
+       (SOME_MACHINE_OBJECTS): Add hbfont.o
+       (LIBES): Add HARFBUZZ_LIBS.
+
+       * lisp/language/tv-util.el (tai-viet-composition-function):
+       * lisp/language/thai-util.el (thai-composition-function):
+       * lisp/language/misc-lang.el (arabic-shape-gstring):
+       * lisp/language/lao-util.el (lao-composition-function):
+       * lisp/language/japanese.el (compose-gstring-for-variation-glyph):
+       * lisp/language/hebrew.el (hebrew-shape-gstring):
+       * lisp/language/ethio-util.el (ethio-composition-function):
+       * lisp/composite.el (compose-chars-after)
+       (compose-gstring-for-graphic)
+       (compose-gstring-for-dotted-circle)
+       (compose-gstring-for-terminal, auto-compose-chars): All
+       composition functions that call shapers now accept an
+       additional argument DIRECTION, either L2R or R2L.
+
+       * etc/NEWS: Document the HarfBuzz support.
+
+       * etc/HELLO: Add diacritics to Hebrew greetings.
+
+       * doc/lispref/frames.texi (Font and Color Parameters):
+       * doc/emacs/msdos.texi (Windows Fonts): Describe the
+       'harfbuzz' font backend on MS-Windows and how it is preferred
+       to 'uniscribe'.
+
+       * configure.ac (--wthout-harfbuzz): New option.
+       (HAVE_HARFBUZZ): New tests.
+       (FONT_OBJ) [HAVE_HARFBUZZ]: Add hbfont.o
+       (emacs_config_features): Add HARFBUZZ.
+
+       * admin/nt/dist-build/build-dep-zips.py: Add HarfBuzz dependency.
+
+2019-06-07  Tak Kunihiro  <address@hidden>
+
+       Make mouse-wheel-scroll-amount consistent among platforms
+
+       * lisp/term/ns-win.el (mouse-wheel-scroll-amount): Do not put any
+       values on mouse-wheel-scroll-amount on ns.
+
+2019-06-07  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       9254885 (origin/emacs-26) Resurrect display-line-number-mode in clien...
+       aecbbd5 * src/fns.c (Fmapconcat): Doc fix.  (Bug#35710)
+       8e5fc38 Fix typo
+       ee21b40 * lisp/term/w32-win.el ([noname]): Bind to 'ignore'.  (Bug#36...
+       f68b33f Fix styling of Unicode codepoints in manuals
+       ff7ec6f Fix a few uses of quotes in user manual
+       b67042b More minor copyedits in the Emacs manual
+       9734b5c Fix minor issues in the Emacs manual
+       c153250 Try to improve text on atomic windows in Elisp manual
+       fb314ba Don't recommend insert-before-markers in process filters
+
+2019-06-07  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       2860285 Allow macros autoloaded as functions during bytecomp (Bug#36022)
+
+2019-06-07  Eli Zaretskii  <address@hidden>
+
+       Fix failures of term-tests on MS-Widows
+
+       * test/lisp/term-tests.el (term-simple-lines)
+       (term-carriage-return, term-line-wrap, term-cursor-movement)
+       (term-scrolling-region, term-set-directory)
+       (term-line-wrapping-then-motion, term-to-margin): Skip tests
+       on MS-Windows and MS-DOS.
+
+2019-06-07  John Shahid  <address@hidden>
+
+       Consider line spacing and font height when deriving proc window size
+
+       * lisp/window.el (window-adjust-process-window-size): Use
+         window-screen-lines instead of window-body-height.
+       * lisp/term.el (term-mode): Use window-screen-lines to set the initial
+         window height.
+
+2019-06-07  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix image_set_crop yet again
+
+       * src/image.c (image_set_crop) [HAVE_NATIVE_TRANSFORMS]: Don't call
+       compute_image_size, as it is already called from image_set_size.
+       (image_set_size, image_set_crop) [HAVE_NATIVE_TRANSFORMS]: Use harmless
+       matrix transformation code also for USE_CAIRO and HAVE_NTGUI cases,
+       though image_set_transform is not yet implemented on them.
+
+2019-06-07  Eli Zaretskii  <address@hidden>
+
+       Avoid compiler warning in copy-file-range.c on MS-Windows
+
+       * nt/mingw-cfg.site (gl_cv_func_copy_file_range): Set to "yes",
+       to avoid compiling lib/copy-file-range.c on MS-Windows.
+
+2019-06-07  Paul Eggert  <address@hidden>
+
+       Fix recently-introduced image_set_crop typo
+
+       * src/image.c (image_set_crop) [!HAVE_NATIVE_TRANSFORMS]:
+       Don’t call compute_image_size, as it does not exist and its
+       result is not needed.
+
+2019-06-07  Paul Eggert  <address@hidden>
+
+       Use copy_file_range to copy files
+
+       The copy_file_range syscall (introduced in Linux kernel
+       version 4.5) can copy files more efficiently via server-side
+       copy etc.
+       * admin/merge-gnulib (GNULIB_MODULES): Add copy-file-range.
+       * lib/copy-file-range.c, m4/copy-file-range.m4:
+       New files, copied from Gnulib.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * src/fileio.c (Fcopy_file): Try copy_file_range first,
+       falling back on read+write only if copy_file_range failed or
+       if the input is empty and so could be a /proc file.
+
+2019-06-07  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-06-04 copy-file-range: new module
+       2019-05-28 binaty-io: O_BINARY on consoles no longer fails
+       * doc/misc/texinfo.tex, lib/binary-io.c, lib/binary-io.h:
+       * lib/unistd.in.h, m4/unistd_h.m4: Copy from Gnulib.
+       * lib/gnulib.mk.in: Regenerate.
+
+2019-06-06  Noam Postavsky  <address@hidden>
+
+       Add "pin" to password-word-equivalents (Bug#35523)
+
+       * lisp/international/mule-conf.el (password-word-equivalents): Add 
"pin".
+       * test/lisp/comint-tests.el (comint-testsuite-password-strings): Add
+       test case.
+
+2019-06-06  Paul Eggert  <address@hidden>
+
+       Fix overflow issues in image rotation
+
+       Also, do some refactoring to simplify code.
+       * src/dispextern.h (INIT_MATRIX, COPY_MATRIX, MULT_MATRICES): Remove.
+       * src/image.c (matrix3x3): New type, replacing all uses of 3x3 double.
+       (matrix3x3_copy, matrix3x3_mult): New functions, replacing
+       COPY_MATRIX, MULT_MATRICES.  Replace INIT_MATRIX by C initializers.
+       (image_set_rotation): Use Fmod to avoid undefined behavior on
+       double-to-int conversion and to reduce bignum rotations correctly.
+       (image_set_crop): Finish up previous correction, by not re-setting
+       width and height if compute_image_size has set them.
+       Prefer shifting right by 1 to dividing by 2 if either will do.
+
+2019-06-06  Eli Zaretskii  <address@hidden>
+
+       Fix redisplay glitches with RTL composed text
+
+       * src/xdisp.c (init_to_row_end): Fail if the first visible
+       position on the line following ROW is bidi-reordered and could
+       be composed.  (Bug#35811)
+
+2019-06-06  Oleh Krehel  <address@hidden>
+
+       lisp/gnus/message.el (message--send-mail-maybe-partially): Extract
+
+       lisp/gnus/message.el (message--check-continuation-headers): Extract
+
+       lisp/gnus/message.el (message--fold-long-headers): Add docstring
+
+2019-06-06  Mark A. Hershberger  <address@hidden>
+
+       Restore height and with from that were accidentally removed
+
+       See 610fb73ab6d7a22b722f523d6ebc4aa8fa1db7c9
+       USE_CARIO needs these.
+
+2019-06-05  Steve Scott  <address@hidden>  (tiny change)
+
+       Check rcirc-server for auto authentication (Bug#10162)
+
+       Since the hostname returned by irc.freenode.net can be something other
+       than irc.freenode.net, e.g. niven.freenode.net, the entries for
+       rcirc-authinfo and rcirc-server-alist will not match.
+       * lisp/net/rcirc.el (rcirc-handler-001): Check rcirc-server (the
+       hostname connected to) instead of rcirc-server-name (the hostname
+       returned), this corresponds with what rcirc-authenticate does.
+       Moreover, if rcirc-auto-authenticate-flag is set, check the
+       corresponding rcirc-authinfo, regardless of whether the
+       rcirc-authenticate-before-join must happen.
+
+2019-06-05  Noam Postavsky  <address@hidden>
+
+       Keep nxml prolog updated via syntax-propertize
+
+       Instead of using after-change-functions.  Also, stop consulting
+       nxml-prolog-regions during syntax-propertize.  It turns out the
+       problems fixed by using prolog information are actually due to using
+       the wrong syntax table during propertizing.  This was fixed in
+       2019-06-04 "* lisp/emacs-lisp/syntax.el: Use syntax-ppss-table for
+       syntax-propertize." so consulting the prolog data is no longer needed.
+       * lisp/nxml/nxml-rap.el (nxml-maybe-rescan-prolog): Remove.
+       * lisp/nxml/nxml-mode.el (nxml-mode): Stop using it.
+       (nxml-syntax-propertize): Don't use nxml-prolog-regions, just call
+       nxml-scan-prolog if needed before delegating to
+       sgml-syntax-propertize.
+       * test/lisp/nxml/nxml-mode-tests.el (nxml-mode-edit-prolog): New test.
+
+2019-06-05  Alan Third  <address@hidden>
+
+       Add native image rotation and cropping
+
+       * lisp/image.el (image--get-imagemagick-and-warn): Only fallback to
+       ImageMagick if native transforms aren't available.
+       * src/dispextern.h (INIT_MATRIX, COPY_MATRIX, MULT_MATRICES): New
+       macros for matrix manipulation.
+       (HAVE_NATIVE_SCALING, HAVE_NATIVE_TRANSFORMS): Rename and change all
+       relevant locations.
+       * src/image.c (x_set_image_rotation):
+       (x_set_transform): New functions.
+       (x_set_image_size): Use transform matrix for resizing under X and NS.
+       (x_set_image_crop): New function.
+       (lookup_image): Use the new transform functions.
+       (Fimage_scaling_p, Fimage_transforms_p): Rename and update all
+       callers.
+       * src/nsimage.m (ns_load_image): Remove rotation code.
+       (ns_image_set_transform): New function.
+       ([EmacsImage dealloc]): Release the saved transform.
+       ([EmacsImage rotate:]): Remove unneeded method.
+       ([EmacsImage setTransform:]): New method.
+       * src/nsterm.h (EmacsImage): Add transform property and update method
+       definitions.
+       * src/nsterm.m (ns_dumpglyphs_image): Use the transform to draw the
+       image correctly.
+       * src/xterm.c (x_composite_image): Use PictOpSrc as we don't care
+       about alpha values here.
+       * doc/lispref/display.texi (Image Descriptors): Add :rotation.
+       (ImageMagick Images): Remove :rotation.
+
+2019-06-05  Phillip Lord  <address@hidden>
+
+       No longer add debug symbols to release build
+
+       * admin/nt/dist-build/build-zips.sh: Remove -g3 from release build and
+         install with install-strip
+
+2019-06-05  Juri Linkov  <address@hidden>
+
+       * lisp/wid-edit.el (widget-choose): Use display-buffer-in-direction
+
+       to display buffer in bottom direction with fit-window-to-buffer.
+
+       * lisp/proced.el (proced-with-processes-buffer): Idem.  (Bug#35592)
+
+2019-06-05  Michael Albinus  <address@hidden>
+
+       * doc/misc/tramp.texi (Obtaining Tramp): Explain version scheme.
+
+       (Traces and Profiles): Add `tramp-verbose' to @vindex.
+
+2019-06-05  Dario Gjorgjevski  <address@hidden>
+
+       Do not use syntax-ppss-table in syntax-propertize when nil (Bug#36095)
+
+       * lisp/emacs-lisp/syntax.el (syntax-propertize): Use (syntax-table)
+       instead of syntax-ppss-table when the latter is nil.
+
+2019-06-04  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/syntax.el: Use syntax-ppss-table for 
syntax-propertize.
+
+       `syntax-ppss` uses `syntax-ppss-table` while parsing the buffer as well
+       as when it calls `syntax-propertize`, but `syntax-propertize` can also
+       be called directly rather than via `syntax-ppss` so it needs to 
explicitly
+       use `syntax-ppss-table` as well in order to avoid using sometimes one
+       table and sometimes another.
+
+       (syntax-ppss-table): Move before new use.
+       (syntax-propertize): Use it.
+
+2019-06-04  Paul Eggert  <address@hidden>
+
+       Remove retired maintainers from comments
+
+       * lisp/international/quail.el, lisp/language/ind-util.el:
+       * lisp/language/indian.el, lisp/mail/smtpmail.el, lisp/mwheel.el:
+       * lisp/obsolete/longlines.el, lisp/progmodes/idlw-complete-structtag.el:
+       * lisp/progmodes/idlw-help.el, lisp/progmodes/idlw-shell.el:
+       * lisp/progmodes/idlw-toolbar.el, lisp/progmodes/idlwave.el:
+       * lisp/progmodes/simula.el, lisp/ps-print.el, lisp/ps-samp.el:
+       Remove Maintainer: lines for maintainers who have retired.
+
+2019-06-04  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/thunk.el (thunk-delay): Fix memory leak
+
+       Get rid of references to the free variables of `body` once the thunk has
+       been forced (bug#30626).
+
+2019-06-04  Stefan Monnier  <address@hidden>
+
+       * lisp/textmodes/sgml-mode.el (sgml-syntax-propertize-rules): More 
verbose comments
+
+2019-06-04  Jackson Ray Hamilton  <address@hidden>
+
+       Specify the matching chars for JSX open/close parenthesis
+
+       * lisp/progmodes/js.el (js-jsx--syntax-propertize-tag): Indicate the
+       matching parenthesis character (since JSX’s < and > aren’t typical
+       parenthesis) for the sake of packages like rainbow-delimiters which
+       need that information.
+
+2019-06-04  Jackson Ray Hamilton  <address@hidden>
+
+       Revert "Add extra text property to fix issue with js2-mode integration"
+
+       This reverts commit 382a508ed21e4f12ace9f8871818e25235e8f05e.
+
+       We ended up deciding against using this in js2-mode.  Instead,
+       js2-mode may eventually use js-mode’s syntax-propertize-function to
+       set syntax-table text properties.
+
+2019-06-04  Paul Eggert  <address@hidden>
+
+       Update lispref spellfile
+
+       * doc/lispref/spellfile: Omit words no longer in the manual.
+       How is this spellfile used?  Does anybody use it any more?
+
+2019-06-04  Paul Eggert  <address@hidden>
+
+       Adjust comments/debug to match C bignum code
+
+       * doc/lispintro/emacs-lisp-intro.texi (Digression into C):
+       Adjust to match current C code.
+       * lisp/emacs-lisp/ert.el (ert--force-message-log-buffer-truncation):
+       Simplify.
+       * src/.gdbinit (Lisp_Object_Printer.to_string): Return
+       a string that says "make_fixnum", not "make_number".
+
+2019-06-04  Paul Eggert  <address@hidden>
+
+       Always allow at least double-precision bignums
+
+       Without this fix, Emacs can get into a tight loop reporting
+       a range error when calculating timestamps.
+       * doc/lispref/numbers.texi (Integer Basics):
+       * src/alloc.c (syms_of_alloc): Document this.
+       * src/bignum.c (make_bignum_bits): Always allow bignums
+       of at least twice the width of (u)intmax_t.
+
+2019-06-04  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/message.el (message-send-mail): Tweak last commit
+
+2019-06-04  Noam Postavsky  <address@hidden>
+
+       Keep nxml-prolog-end up to date (Bug#18871)
+
+       The change on 2016-01-16 "lisp/nxml: Use syntax-tables for comments"
+       removed the update of nxml-prolog-end, although it already failed to
+       work correctly after 2013-10-07 "* lisp/nxml/nxml-mode.el: Use
+       lexical-binding and syntax-propertize."
+       * lisp/nxml/nxml-rap.el: New function.
+       * lisp/nxml/nxml-mode.el (nxml-mode): Add it to
+       after-change-functions.
+
+2019-06-04  Noam Postavsky  <address@hidden>
+
+       Don't sgml-syntax-propertize-inside XML prolog (Bug#32823)
+
+       * lisp/nxml/nxml-mode.el (nxml-syntax-propertize): New function.
+       (nxml-mode): Use it as the syntax-propertize-function.
+       * test/lisp/nxml/nxml-mode-tests.el (nxml-mode-doctype-and-quote-syntax)
+       (nxml-mode-prolog-comment): New tests.
+
+2019-06-04  Noam Postavsky  <address@hidden>
+
+       Don't fontify text outside of SGML/XML tags (Bug#33887)
+
+       * lisp/textmodes/sgml-mode.el (sgml-font-lock-syntactic-face): New
+       function.
+       (sgml-mode):
+       * lisp/nxml/nxml-mode.el (nxml-mode): Use it as
+       font-lock-syntactic-face-function value.
+
+2019-06-04  Noam Postavsky  <address@hidden>
+
+       Fix some SGML syntax edge cases (Bug#33887)
+
+       * lisp/textmodes/sgml-mode.el (sgml-syntax-propertize-rules): Handle
+       single and double quotes symmetrically.  Don't skip quoted comment
+       enders.
+       * test/lisp/textmodes/sgml-mode-tests.el (sgml-tests--quotes-syntax):
+       Add more test cases.
+       (sgml-mode-quote-in-long-text): New test.
+
+2019-06-04  Michael Albinus  <address@hidden>
+
+       Stronger check for Tramp method
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
+       * lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection):
+       Use `tramp-get-connection-name'.
+
+       * lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-make-symbolic-link):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-make-symbolic-link):
+       Don't check remote TARGET.
+
+       * lisp/net/tramp.el (tramp-dissect-file-name): Check for proper method.
+       (tramp-file-name-for-operation): Take only 2nd argument into
+       account for file name handler.
+       (tramp-file-name-handler): Suppress checks for `file-remote-p'.
+
+       * test/lisp/net/tramp-archive-tests.el
+       (tramp-archive-test02-file-name-dissect): Suppress check for wrong
+       method.
+
+       * test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case):
+       Dump *all* Tramp buffers.
+       (tramp-test02-file-name-dissect)
+       (tramp-test02-file-name-dissect-simplified)
+       (tramp-test02-file-name-dissect-separate): Check also wrong method.
+       (tramp-test03-file-name-defaults): Check, that the respective
+       Tramp package is loaded.
+       (tramp-test04-substitute-in-file-name)
+       (tramp-test05-expand-file-name)
+       (tramp-test06-directory-file-name, tramp-test44-auto-load):
+       Suppress check for wrong method.
+       (tramp-test30-make-process): Remove instrumentation code.
+       (tramp-test31-interrupt-process, tramp-test36-vc-registered):
+       Guarantee that connection is established prior starting process.
+
+2019-06-04  YAMAMOTO Mitsuharu  <address@hidden>
+
+       * src/xterm.c (x_scroll_run) [USE_CAIRO]: Dirty only destination 
rectangle.
+
+       * src/image.c (cr_create_cr_surface_from_image): Add const to variable 
`key'.
+
+2019-06-03  Noam Postavsky  <address@hidden>
+
+       Let untarring (and hence package installation) go faster (Bug#35909)
+
+       * lisp/subr.el (progress-reporter-update)
+       (progress-reporter-force-update, progress-reporter-do-update): Accept
+       new optional argument, SUFFIX.
+       * doc/lispref/display.texi (Progress): Document it.
+       * etc/NEWS: Announce it.
+       * lisp/tar-mode.el (tar-untar-buffer): Use a progress reporter instead
+       of calling message.  Suppress message from write-region.  Let-bind
+       write-region-inhibit-fsync to t.
+
+2019-06-03  Phillip Lord  <address@hidden>
+
+       Update dependencies
+
+       * admin/nt/dist-build/build-dep-zips.py: Add harfbuzz as dependency
+
+2019-06-03  Juri Linkov  <address@hidden>
+
+       User-friendly display of error messages at the end of minibuffer
+
+       * lisp/simple.el (minibuffer-setup-hook): Add 
minibuffer-error-initialize.
+       (minibuffer-error-initialize, minibuffer-error-function): New functions.
+       (Bug#34939)
+
+2019-06-03  Juri Linkov  <address@hidden>
+
+       * lisp/char-fold.el (char-fold-make-table): New function
+
+       with body extracted from INITVALUE of defconst (bug#35689).
+       Bind search-spaces-regexp to nil (bug#35802).
+
+       * test/lisp/char-fold-tests.el: Relocate helpers to file beginning.
+       (char-fold--test-bug-35802): New test.
+
+2019-06-03  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/gnus-async.el: Use lexical-binding
+
+       Remove redundant :group args.
+       (gnus-async-post-fetch-function): Make it always be a function.
+       (gnus-make-async-article-function, gnus-async-prefetch-headers):
+       Use a closure rather than `(lambda ...)
+
+2019-06-03  Oleh Krehel  <address@hidden>
+
+       lisp/gnus/message.el (message-send-mail): Don't wrongly assert on 
Unicode msg
+
+       Using this setting:
+
+           (setq message-send-mail-function 'message-send-mail-with-sendmail)
+           (setq sendmail-program "msmtp")
+
+       the message seding is handled by an external program, so no Unicode
+       encoding is performed in Emacs. Thus Emacs must not assert that the
+       Unicode encoding was performed.
+
+2019-06-02  Juanma Barranquero  <address@hidden>
+
+       * lisp/help-fns.el (help-fns--first-release): Do not fail if no release 
is found.
+
+2019-06-02  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/gnus-sum.el, lisp/gnus/gnus-async.el: Eliminate assumptions 
about gnus-data format
+
+       * lisp/gnus/gnus-async.el (gnus-async-with-semaphore): Use `declare`.
+       (gnus-async-prefetch-next): Don't assume gnus-data-number == car.
+
+       * lisp/gnus/gnus-sum.el (gnus-data-find-in): New function.
+       (gnus-data-find, gnus-data-find-list): Use it.
+       (gnus-summary-article-subject): Make it a function.
+       (gnus--dummy-data-list): New const.
+       (gnus-update-summary-mark-positions): Use it.
+
+2019-06-02  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/gnus.el: Fix cycle in eager macroexpansion
+
+       * lisp/gnus/gnus-sum.el (gnus-data): Use cl-defstruct.
+       (gnus-data-set-pos, gnus-data-set-header, gnus-data-set-mark)
+       (gnus-data-set-number): Delete macros; use `setf` instead.
+       (gnus-data-unread-p, gnus-data-read-p, gnus-data-pseudo-p, 
gnus-data-find)
+       (gnus-summary-skip-intangible, gnus-summary-article-number):
+       Redefine as inlinable functions rather than macros.
+
+       * lisp/gnus/gnus.el: Adjust autoloads for the macros turned functions.
+
+2019-06-02  Stefan Monnier  <address@hidden>
+
+       * lisp/help-fns.el: Make hyperlink for the "first release" info
+
+       * lisp/help-fns.el (help-fns--first-release): Return a "button".
+       (help-fns--mention-first-release): Preserve the string's 
text-properties.
+
+       * lisp/help-mode.el (help-news): New button type.
+
+2019-06-02  Alan Mackenzie  <address@hidden>
+
+       Change default offset of CC Mode syntactic symbol inlambda to 0
+
+       It's previous default was c-lineup-inexpr-block.  This change is mainly 
to
+       prevent excessive indentation of the innards of C++ lambda functions.
+
+       * lisp/progmodes/cc-vars.el (c-offsets-alist): Amend the offset for 
inlambda
+       to 0.
+
+       * doc/misc/cc-mode.texi (FAQ): Amend the answer to the question about 
this
+       matter.
+
+2019-06-01  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Implement the get_variation_glyphs method for FreeType >= 2.3.6
+
+       * configure.ac: Check availability of FT_Face_GetCharVariantIndex.
+
+       * src/ftfont.c (ftfont_variation_glyphs) 
[HAVE_FT_FACE_GETCHARVARIANTINDEX]:
+       Add function implementation.
+
+       * src/ftcrfont.c (ftcrfont_variation_glyphs)
+       [HAVE_FT_FACE_GETCHARVARIANTINDEX]: Use function implementation for
+       HAVE_OTF_GET_VARIATION_GLYPHS.
+
+       * src/ftfont.c (ftfont_driver) [HAVE_FT_FACE_GETCHARVARIANTINDEX]:
+       * src/xftfont.c (xftfont_driver) [HAVE_FT_FACE_GETCHARVARIANTINDEX]:
+       * src/ftxfont.c (ftxfont_driver) [HAVE_FT_FACE_GETCHARVARIANTINDEX]:
+       * src/ftcrfont.c (ftcrfont_driver) [HAVE_FT_FACE_GETCHARVARIANTINDEX]:
+       Populate the get_variation_glyphs method.
+
+2019-06-01  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Revert previous commit
+
+       This reverts commit 1ab69630dcb8c7a1b1b4171211a7c8ebf11b0d1c.
+       It has a wrong commit message.
+
+2019-06-01  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Make fthbfont and derivatives use common HarfBuzz code in hbfont.c
+
+       * src/font.h (fthbfont_shape, fthbfont_combining_capability)
+       [HAVE_HARFBUZZ]: Remove prototypes.
+
+       * src/ftfont.c: Don't include math.h.
+       (uni_combining, uni_general, uni_mirroring, get_hb_unicode_funcs)
+       (fthbfont_shape_by_hb, fthbfont_combining_capability, fthbfont_shape)
+       [HAVE_HARFBUZZ]: Remove functions.
+
+       * src/ftfont.c (syms_of_ftfont_for_pdumper) [HAVE_HARFBUZZ]:
+       * src/xftfont.c (syms_of_xftfont_for_pdumper) [HAVE_HARFBUZZ]:
+       * src/ftcrfont.c (syms_of_ftcrfont_for_pdumper) [HAVE_HARFBUZZ]: Use
+       hbfont_shape and hbfont_combining_capability for fthbfont_shape and
+       fthbfont_combining_capability, respectively.
+
+2019-06-01  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Make fthbfont and derivatives use common HarfBuzz code in hbfont.c
+
+       * src/font.h (fthbfont_shape, fthbfont_combining_capability)
+       [HAVE_HARFBUZZ]: Remove prototypes.
+
+       * src/ftfont.c: Don't include math.h.
+       (uni_combining, uni_general, uni_mirroring, get_hb_unicode_funcs)
+       (fthbfont_shape_by_hb, fthbfont_combining_capability, fthbfont_shape)
+       [HAVE_HARFBUZZ]: Remove functions.
+
+       * src/ftfont.c (syms_of_ftfont_for_pdumper) [HAVE_HARFBUZZ]:
+       * src/xftfont.c (syms_of_xftfont_for_pdumper) [HAVE_HARFBUZZ]:
+       * src/ftcrfont.c (syms_of_ftcrfont_for_pdumper) [HAVE_HARFBUZZ]: Use
+       hbfont_shape and hbfont_combining_capability instead of fthbfont_shape
+       and fthbfont_combining_capability, respectively.
+
+2019-06-01  Glenn Morris  <address@hidden>
+
+       Skip some flymake tests on hydra.nixos.org
+
+       * test/lisp/progmodes/flymake-tests.el (perl-backend)
+       (included-c-header-files, recurrent-backend):
+       Skip on hydra.nixos due to frequent intermittent failures.  (Bug#32764)
+
+2019-06-01  Stefan Kangas  <address@hidden>
+
+       Use lexical-binding in morse.el and studly.el and add tests
+
+       * lisp/play/morse.el: Use lexical-binding.
+       * lisp/play/studly.el: Use lexical-binding.
+       * test/lisp/play/morse-tests.el: New file.
+       * test/lisp/play/studly-tests.el: New file.
+
+2019-06-01  Stefan Kangas  <address@hidden>
+
+       Use lexical-binding in paragraphs.el and add tests
+
+       * lisp/textmodes/paragraphs.el: Use lexical-binding.
+       (repunctuate-sentences): Make it work non-interactively.
+       * test/lisp/textmodes/paragraphs-tests.el: New file.
+
+2019-06-01  Paul Eggert  <address@hidden>
+
+       Fix .gitignore spec for personal customizations
+
+       Problem reported by Mauro Aranda (Bug#35945).
+       * .gitignore: Replace .dir-locals?.el with .dir-locals-2.el.
+
+2019-06-01  Paul Eggert  <address@hidden>
+
+       Tune cl-assoc
+
+       * lisp/emacs-lisp/cl-seq.el (cl-assoc): Use assq for fixnums.
+
+2019-06-01  Mattias Engdegård  <address@hidden>
+
+       Fix `cl-member' and `cl-assoc' for bignums
+
+       * lisp/emacs-lisp/cl-seq.el (cl-member, cl-assoc): Work with bignums.
+       * test/lisp/emacs-lisp/cl-seq-tests.el (cl-seq-bignum-eql): New.
+
+2019-06-01  Daniel Ralston  <address@hidden>  (tiny change)
+
+       Make rcirc PART and QUIT reasons customizable (Bug#12857)
+
+       * lisp/net/rcirc.el: (rcirc-default-part-reason, 
rcirc-default-quit-reason):
+       New customizable vars.
+       (rcirc-cmd-quit, rcirc-cmd-part): Consult them.
+
+2019-06-01  Noam Postavsky  <address@hidden>
+
+       Handle argument to rcirc /part properly (Bug#11157)
+
+       * lisp/net/rcirc.el (part): Split out channel name and part reason.
+       * doc/misc/rcirc.texi (rcirc commands): Clarify that channel name may
+       be provided to /part.
+
+2019-06-01  Noam Postavsky  <address@hidden>
+
+       * lisp/net/rcirc.el: Remove redundant :group usage
+
+       ... and empty Todo comment section.
+
+2019-06-01  Alan Mackenzie  <address@hidden>
+
+       Debug and disentangle the literal cacheing in CC Mode
+
+       (Final Commit)
+
+       * lisp/progmodes/cc-engine.el (c-semi-trim-near-cache): Correct a 
comparison
+       with the wrong ...-limit variable.
+       (c-semi-pp-to-literal): Remove a wrong setting of c-lit-pos-cache-limit.
+       (c-full-get-near-cache-entry): Eliminate extravagant and unneeded 
coding.
+       (c-state-cache-init, c-record-parse-state-state): No longer manipulate
+       c-lit-pos-cache, which is no longer regarded as part of c-parse-state.
+
+       * lisp/progmodes/cc-mode.el (c-basic-common-init): Call
+       c-truncate-lit-pos-cache to initialize the literal cache.
+
+2019-06-01  Alan Mackenzie  <address@hidden>
+
+       * lisp/progmodes/cc-engine.el: Permute certain literal cacheing 
functions
+
+2019-06-01  Alan Mackenzie  <address@hidden>
+
+       Tidy up the literal cacheing in CC Mode, optimizing c-full-pp-to-literal
+
+       (Intermediate commit)
+
+       * lisp/progmodes/cc-engine.el, lisp/progmodes/cc-fonts.el
+       * lisp/progmodes/cc-mode.el : Rename:
+       c-state-semi-nonlit-pos-cache -> c-lit-pos-cache,
+       c-state-semi-nonlit-pos-cache-limit -> c-lit-pos-cache-limit,
+       c-state-semi-nonlit-near-cache -> c-semi-lit-near-cache,
+       c-truncate-semi-nonlit-pos-cache -> c-truncate-lit-pos-cache,
+       c-state-semi-trim-near-cache -> c-semi-trim-near-cache,
+       c-state-semi-get-near-cache-entry -> c-semi-get-near-cache-entry,
+       c-state-semi-put-near-cache-entry -> c-semi-put-near-cache-entry,
+       c-state-semi-pp-to-literal -> c-semi-pp-to-literal,
+       c-state-full-pp-to-literal -> c-full-pp-to-literal,
+       c-state-semi-trim-cache -> c-trim-lit-pos-cache.
+
+       * lisp/progmodes/cc-engine.el (c-semi-near-cache-limit): New variable.
+       (c-truncate-lit-pos-cache): This now truncates the cache variables for 
all
+       three lit- sub-caches.
+       (c-semi-put-near-cache-entry): Increase c-semi-near-cache-limit to the
+       position of the new entry.
+       (c-full-near-cache-limit, c-full-lit-near-cache): New variables.
+       (c-full-trim-near-cache, c-full-get-near-cache-entry)
+       (c-full-put-near-cache-entry): New functions.
+       (c-full-pp-to-literal): Amend to use the new functions, and to optimize 
the
+       use of the available caches, similarly to c-semi-pp-to-literal.
+
+2019-06-01  Paul Eggert  <address@hidden>
+
+       Port hbfont.c to GCC 9 with --enable-gcc-warnings
+
+       * src/hbfont.c (hbfont_shape): Use ptrdiff_t, not int,
+       for indexes that in theory might overflow int.
+       Add UNINIT to pacify GCC 9 and omit an unnecessary initialization.
+
+2019-06-01  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       008b263 (origin/emacs-26, emacs-26) * lisp/gnus/gnus.el: Mark autoloa...
+       daf32f1 Speed up redisplay of HELLO
+       d8a6d82 Improve documentation of 'safe-local-variable' property
+
+       # Conflicts:
+       #       etc/HELLO
+
+2019-06-01  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       134edc1 Warn about wrong number of args for subrs (Bug#35767)
+       5f01af6 Use plain symbols for eieio type descriptors (Bug#29220)
+       4b24b01 Pacify GCC 9 -Wredundant-decls
+
+2019-06-01  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       b2e44b4 Pacify GCC when compiling unexelf.c on Fedora 30
+
+2019-06-01  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       1b2f83b Fix docstring of bookmark-get-bookmark
+
+2019-06-01  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       2168165 ; * doc/lispref/nonascii.texi (Explicit Encoding): Fix typo.
+       8f18d12 Improve documentation of decoding into a unibyte buffer
+       7681a57 Remove redundants "See" before @xref or @pxref (Bug#35793)
+       9bee762 ; * src/coding.c: Improve commentary.  (Bug#34765)
+       e61349c Fix customization type of recentf-max-saved-items
+
+       # Conflicts:
+       #       src/coding.c
+
+2019-06-01  Eli Zaretskii  <address@hidden>
+
+       Implement the get_variation_glyphs method for HarfBuzz on MS-Windows
+
+       * src/w32uniscribe.c [HAVE_HARFBUZZ]: DEF_DLL_FN
+       hb_font_get_variation_glyph.
+       (hb_font_get_variation_glyph): New redirection macro.
+       (w32hb_get_variation_glyphs): New function.
+       (load_harfbuzz_funcs): Load hb_font_get_variation_glyph.
+       (syms_of_w32uniscribe_for_pdumper): Populate the
+       get_variation_glyphs method of harfbuzz_font_driver.
+
+2019-06-01  Simen Heggestøyl  <address@hidden>
+
+       Use lexical-binding in page.el and add tests
+
+       * lisp/textmodes/page.el: Use lexical-binding.
+       (forward-page): Replace `(if x nil y)' with `(unless x y)'.
+
+       * test/lisp/textmodes/page-tests.el: New file with tests for page.el.
+
+2019-06-01  Eli Zaretskii  <address@hidden>
+
+       Update the documentation due to changes in loading font backends
+
+       * doc/emacs/msdos.texi (Windows Fonts): Reflect the fact that
+       Uniscribe is not enabled by default.
+
+2019-06-01  Eli Zaretskii  <address@hidden>
+
+       Prefer HarfBuzz to Uniscribe on MS-Windows
+
+       * src/w32fns.c (Fx_create_frame, w32_create_tip_frame):
+       Register the Uniscribe font backend only if HarfBuzz is not
+       available, or if explicitly requested via frame parameters
+       or resources.
+
+2019-06-01  Eli Zaretskii  <address@hidden>
+
+       Move common HarfBuzz code to a common file hbfont.c
+
+       * src/hbfont.c: New file, with code moved from w32uniscribe.c
+       and renamed/modified as appropriate.
+       * src/w32uniscribe.c: Move to hbfont.c DEF_DLL_FN and macro
+       definitions for HarfBuzz functions used in hbfont.c
+       (load_harfbuzz_funcs): Move loading of HarfBuzz functions used
+       by hbfont.c to hbfont.c:hbfont_init_w32_funcs, and call that
+       function from here.
+       (syms_of_w32uniscribe_for_pdumper): Fill the 'shape' and
+       'combining_capability' members with hbfont.c function names.
+       * src/w32common.h (hbfont_init_w32_funcs) [HAVE_HARFBUZZ]: Add
+       prototype.
+       * src/font.h (hbfont_shape, hbfont_combining_capability)
+       [HAVE_HARFBUZZ]: Add prototypes.
+       * src/Makefile.in (SOME_MACHINE_OBJECTS): Add hbfont.o.
+
+       * configure.ac (FONT_OBJ): Add hbfont.o if HAVE_HARFBUZZ.
+
+2019-06-01  Stefan Kangas  <address@hidden>
+
+       Use lexical-binding in timezone.el and add tests
+
+       * lisp/timezone.el: Use lexical-binding.
+       * test/lisp/timezone-tests.el: New file.
+
+2019-05-31  Simen Heggestøyl  <address@hidden>
+
+       Use lexical-binding in autoinsert.el and add tests
+
+       * lisp/autoinsert.el: Use lexical-binding.
+       Remove redundant :group args.
+       (auto-insert): Simplify.
+
+       * test/lisp/autoinsert-tests.el: New file with tests for
+       autoinsert.el.
+
+2019-05-31  Eli Zaretskii  <address@hidden>
+
+       Unbreak MinGW64 build with pthreads.h installed
+
+       * nt/mingw-cfg.site (gl_cv_func_pthread_sigmask_macro): Set to
+       "no", to avoid compiling Gnulib's pthread_sigmask.c.
+       Reported by Richard Copley <address@hidden>.
+
+2019-05-31  Eli Zaretskii  <address@hidden>
+
+       Enhance Hebrew display in HELLO
+
+       * etc/HELLO: Show off display of Hebrew with diacriticals
+       (a.k.a. "nikkud").
+
+2019-05-31  Eli Zaretskii  <address@hidden>
+
+       Fix handling of -xrm on MS-Windows broken by recent commits
+
+       * src/w32reg.c (w32_get_string_resource): The argument V_RDB
+       is a 'char **', not a 'char *'.  This fixes -xrm handling on
+       MS-Windows, broken by conversion of x_get_string_resource to
+       terminal-specific hook.
+
+       (cherry picked from commit 833097cbc4856001ae77b33365faf09c1b3c30e3)
+
+2019-05-31  Eli Zaretskii  <address@hidden>
+
+       Unbreak display of characters on MS-Windows
+
+       * src/w32font.c (w32font_draw): Convert the glyph_string's
+       char2b array to 16-bit WCHAR data that ExtTextOutW needs.
+
+       (cherry picked from commit 38564f8a664347c42f7614d9c91e0d49e4a073e8)
+
+2019-05-31  Eli Zaretskii  <address@hidden>
+
+       Add HarfBuzz font backend for MS-Windows
+
+       * src/w32uniscribe.c [HAVE_HARFBUZZ]: Include math.h and
+       hb.h.
+       (bswap_32): Define for GCC 4.3.0 and later; else include
+       <byteswap.h> from Gnulib.
+       (struct uniscribe_font_info): Extend for HarfBuzz; 'cache' is
+       now a 'void *' (all users changed).
+       [HAVE_HARFBUZZ]: Define typedefs for HarfBuzz functions to be
+       loaded dynamically from the HarfBuzz DLL.  Define macros to
+       call those functions via function pointers.
+       (uniscribe_open) [HAVE_HARFBUZZ]: Use the HarfBuzz font driver
+       if the type of the font entity is 'harfbuzz'.
+       (uniscribe_close) [HAVE_HARFBUZZ]: For fonts using the
+       HarfBuzz backend, call hb_font_destroy to free memory used for
+       the cached hb_font data.
+       (uniscribe_shape): Fix assignment of character codepoints to
+       glyphs from a single cluster.
+       (w32hb_list, w32hb_match, free_cb, w32hb_get_font_table)
+       (w32hb_get_font, w32hb_encode_char, w32hb_begin_font)
+       (w32uni_combining, w32uni_general, w32uni_mirroring)
+       (get_hb_unicode_funcs, w32hb_shape)
+       (w32hb_combining_capability, load_harfbuzz_funcs)
+       [HAVE_HARFBUZZ]: New functions.
+       (syms_of_w32uniscribe_for_pdumper) [HAVE_HARFBUZZ]: Load the
+       HarfBuzz DLL and register the HarfBuzz backend with its
+       functions.
+       * src/w32font.c (syms_of_w32font) <Qharfbuzz>: New DEFSYM.
+       * src/w32fns.c (Fx_create_frame, w32_create_tip_frame)
+       [HAVE_HARFBUZZ]: Register the harfbuzz font backend.
+       * src/lisp.h (get_unicode_property): Declare prototype.
+       * src/font.h (harfbuzz_font_driver) [HAVE_NTGUI]: Declare.
+       * src/chartab.c (get_unicode_property): New function, body
+       taken from get-unicode-property-internal.
+       (Fget_unicode_property_internal): Call get_unicode_property
+       after validating input.
+
+       * doc/lispref/frames.texi (Font and Color Parameters):
+       * doc/emacs/msdos.texi (Windows Fonts): Document support for
+       HarfBuzz text shaping on MS-Windows.
+
+       * configure.ac (HAVE_HARFBUZZ): Move out of the X-specific
+       part, and consider HarfBuzz also for HAVE_W32 systems.
+       Require HarfBuzz v1.2.3 for w32.
+
+2019-05-30  Paul Eggert  <address@hidden>
+
+       Improve eq1/memql performance
+
+       * src/fns.c (Fmemql, Feql): Inline to tweak performance.
+
+2019-05-30  Mattias Engdegård  <address@hidden>
+
+       Fix `memql' for bignums
+
+       * src/fns.c (Fmemql): Make `memql' work for bignums.
+       * test/src/fns-tests.el (test-bignum-eql): Also test `memql'.
+
+2019-05-30  Alan Mackenzie  <address@hidden>
+
+       Optimize one of CC Mode's syntax caches for long comments and strings.
+
+       * lisp/progmodes/cc-langs.el (c-block-comment-awkward-chars): New lang
+       constant and variable.
+
+       * lisp/progmodes/cc-engine.el (c-state-semi-nonlit-pos-cache): Enhance 
the
+       doc comment.
+       (c-state-semi-get-near-cache-entry, c-state-semi-pp-to-literal): Reuse 
entry
+       if the sought position is in a literal, and lies between the literal 
start and
+       the entry's position.
+       (c-cache-to-parse-ps-state, c-parse-ps-state-below): Amend such that 
instead
+       of cacheing a state for a position after a backslash or first character 
of a
+       2-character comment delimiter, this is done for the previous character
+       position.
+
+2019-05-30  Dmitry Gutov  <address@hidden>
+
+       Fix a void-function error
+
+       * lisp/dired-aux.el (dired-do-find-regexp):
+       Require 'xref' (bug#35352).
+
+2019-05-30  Dmitry Gutov  <address@hidden>
+
+       Rename xref-refresh-results to xref-revert-buffer
+
+       * lisp/progmodes/xref.el (xref-revert-buffer): Rename from
+       'xref-refresh-results' (https://debbugs.gnu.org/35737#40).
+
+2019-05-30  Dmitry Gutov  <address@hidden>
+
+       New command ruby-find-library-file
+
+       * lisp/progmodes/ruby-mode.el (ruby-find-library-file):
+       New command.
+       (ruby-mode-map): Add binding for it.
+
+2019-05-30  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Add stipple support on cairo
+
+       * src/xterm.h (struct x_bitmap_record) [USE_CAIRO]: Remove unused 
member img.
+       Add member stipple.
+       (x_bitmap_stipple) [USE_CAIRO]: Add extern.
+
+       * src/image.c (x_bitmap_stipple) [HAVE_X_WINDOWS && USE_CAIRO]: New 
function.
+       (image_create_bitmap_from_data, image_create_bitmap_from_file)
+       (x_create_bitmap_from_xpm_data) [HAVE_X_WINDOWS && USE_CAIRO]: 
Initialize
+       stipple member of struct x_bitmap_record.
+       (free_bitmap_record) [HAVE_X_WINDOWS && USE_CAIRO]: Destroy stipple 
member.
+
+       * src/xterm.c (x_fill_rectangle) [USE_CAIRO]: Inspect gc and draw 
stipple if
+       necessary.  Use x_bitmap_stipple.
+
+2019-05-29  Basil L. Contovounesios  <address@hidden>
+
+       Simplify Gnus buffer liveness checking and killing
+
+       * lisp/gnus/gnus-agent.el (gnus-agent-synchronize-group-flags):
+       Fix indentation.
+       * lisp/gnus/gnus-util.el (gnus-buffer-exists-p): Define as obsolete
+       alias of gnus-buffer-live-p.
+       (gnus-buffer-live-p): If the given argument is or names a live
+       buffer, return the corresponding buffer object instead of a boolean.
+       * lisp/gnus/gnus-win.el (gnus-delete-windows-in-gnusey-frames)
+       (gnus-remove-some-windows): Simplify.
+       * lisp/gnus/gnus.el (gnus-prune-buffers): Redefine as alias of
+       gnus-buffers.
+       (gnus-kill-buffer, gnus-buffers, gnus-group-find-parameter):
+       * lisp/gnus/gnus-art.el (gnus-kill-sticky-article-buffers)
+       (gnus-request-article-this-buffer):
+       * lisp/gnus/gnus-bcklg.el (gnus-backlog-shutdown):
+       * lisp/gnus/gnus-cus.el (gnus-group-customize)
+       (gnus-agent-customize-category):
+       * lisp/gnus/gnus-draft.el (gnus-draft-edit-message):
+       * lisp/gnus/gnus-group.el (gnus-group-set-mode-line)
+       (gnus--abort-on-unsaved-message-buffers, gnus-group-compact-group):
+       * lisp/gnus/gnus-msg.el (gnus-inews-add-send-actions)
+       (gnus-summary-supersede-article, gnus-copy-article-buffer):
+       * lisp/gnus/gnus-score.el (gnus-score-edit-current-scores)
+       (gnus-score-edit-file):
+       * lisp/gnus/gnus-spec.el (gnus-update-format-specifications):
+       * lisp/gnus/gnus-srvr.el (gnus-server-compact-server):
+       * lisp/gnus/gnus-start.el (gnus-clear-system, gnus-dribble-enter)
+       (gnus-dribble-save, gnus-dribble-clear, gnus-save-newsrc-file):
+       * lisp/gnus/gnus-sum.el (gnus-summary-setup-buffer)
+       (gnus-update-summary-mark-positions, gnus-summary-exit)
+       (gnus-deaden-summary, gnus-kill-or-deaden-summary)
+       (gnus-summary-next-group):
+       * lisp/gnus/gnus-win.el (gnus-configure-frame):
+       * lisp/gnus/mail-source.el (mail-source-movemail):
+       * lisp/gnus/message.el (message-with-reply-buffer)
+       (message-with-reply, message-send-and-exit)
+       (message-send-mail-with-sendmail, message-pop-to-buffer)
+       (message-do-send-housekeeping, message-forward-make-body-plain)
+       (message-forward-make-body-mml):
+       * lisp/gnus/mm-decode.el (mm-display-external, mm-remove-part):
+       * lisp/gnus/nnbabyl.el (nnbabyl-server-opened)
+       (nnbabyl-possibly-change-newsgroup, nnbabyl-read-mbox)
+       (nnbabyl-check-mbox):
+       * lisp/gnus/nndiary.el (nndiary-save-nov):
+       * lisp/gnus/nndoc.el (nndoc-close-group)
+       (nndoc-possibly-change-buffer):
+       * lisp/gnus/nnfolder.el (nnfolder-close-group, nnfolder-save-nov):
+       * lisp/gnus/nnimap.el (nnimap-make-process-buffer, nnimap-keepalive)
+       (nnimap-find-connection):
+       * lisp/gnus/nnmail.el (nnmail-cache-open, nnmail-cache-close):
+       * lisp/gnus/nnmbox.el (nnmbox-close-server, nnmbox-server-opened)
+       (nnmbox-possibly-change-newsgroup, nnmbox-read-mbox):
+       * lisp/gnus/nnml.el (nnml-save-incremental-nov, nnml-open-nov)
+       (nnml-save-nov):
+       * lisp/gnus/nnoo.el (nnoo-server-opened):
+       * lisp/gnus/nntp.el (nntp-kill-buffer, nntp-make-process-buffer)
+       (nntp-open-connection, nntp-async-trigger):
+       * lisp/net/mairix.el (mairix-gnus-fetch-field): Simplify buffer
+       liveness checking and killing, replacing buffer-name with
+       buffer-live-p and gnus-buffer-exists-p with gnus-buffer-live-p or
+       equivalent where applicable.
+
+2019-05-29  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix breakage of native image scaling on XRENDER by previous change
+
+       * src/image.c (image_create_x_image_and_pixmap_1) [HAVE_XRENDER]: Get 
depth if
+       it is unspecified.
+
+2019-05-29  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-05-24 flexmember: update comments
+       2019-05-18 pthread_sigmask: fix --enable-threads=windows compilation
+       2019-05-14 close-stream, closein, closeout: simplify
+       2019-05-09 verify: remove verify_true
+       2019-05-09 verify: support C2X and C++17 static_assert
+       * build-aux/config.guess, build-aux/config.sub:
+       * doc/misc/texinfo.tex, lib/flexmember.h, lib/verify.h:
+       * m4/flexmember.m4, m4/pthread_sigmask.m4:
+       Copy from Gnulib
+       * m4/gnulib-comp.m4: Regenerate.
+
+       2019-05-26  Paul Eggert  <address@hidden>
+
+       Update author/maintainer info
+       This mostly updates email addresses and fixes spellings of
+       author and maintainer names.
+
+2019-05-29  Stefan Monnier  <address@hidden>
+
+       * lisp/subr.el (add-hook): Turn `append` into `depth` (bug#35508)
+
+       Make it possible to control the relative ordering of functions on hooks 
by
+       specifying `depth` in the same was as was possible with `add-function`.
+
+       * lisp/electric.el (electric--sort-post-self-insertion-hook):
+       Delete function.
+       (electric-indent-mode, electric-layout-mode, electric-quote-mode):
+       * lisp/elec-pair.el (electric-pair-mode): Use new `depth` arg instead of
+       electric--sort-post-self-insertion-hook.
+
+       * lisp/emacs-lisp/syntax.el (syntax-propertize, syntax-ppss):
+       Use new `depth` arg to make sure noone accidentally gets added
+       after syntax-ppss-flush-cache.
+
+       * doc/lispref/modes.texi (Setting Hooks): Document new `depth` arg.
+
+       * test/lisp/subr-tests.el (subr-tests-add-hook-depth): New test.
+
+2019-05-29  Simen Heggestøyl  <address@hidden>
+
+       Use lexical-binding in makesum.el and add tests
+
+       * lisp/makesum.el: Use lexical-binding.
+       (make-command-summary): Replace `if..progn' with `when'.
+       (double-column): Add docstring and apply trivial simplifications.
+
+       * test/lisp/makesum-tests.el: New file with tests for makesum.el.
+
+2019-05-29  Basil L. Contovounesios  <address@hidden>
+
+       Simplify gnus-or and gnus-and
+
+       * lisp/gnus/gnus-art.el: Make implicit seq.el dependency explicit.
+       (gnus-treat-predicate): Use seq-some in place of mapcar + gnus-or
+       and evaluate lambda predicate.
+       * lisp/gnus/gnus-util.el (gnus-or, gnus-and): Simplify.
+
+2019-05-29  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Rework cairo image support to improve consistency (Bug#35871)
+
+       * src/dispextern.h (Emacs_Pix_Container) [USE_CAIRO]: New struct.  Also 
used
+       as aliases of Emacs_Pixmap and Emacs_Pix_Context.
+       (x_kill_gs_process) [USE_CAIRO]: #ifdef out extern.
+       (RGB_PIXEL_COLOR) [USE_CAIRO]: Define as unsigned long.
+
+       * src/image.c: Include stdint.h.  On cairo, remove existing image 
support
+       code, use non-X11-specific code for XBM/XPM, and remove POSTSCRIPT 
support.
+       (PUT_PIXEL): New macro.  Use it instead of XPutPixel when not specific 
to X11.
+       (GET_PIXEL, NO_PIXMAP, PIX_MASK_RETAIN, PIX_MASK_DRAW)
+       (RGB_TO_ULONG, ARGB_TO_ULONG, RED_FROM_ULONG)
+       (GREEN_FROM_ULONG, BLUE_FROM_ULONG, RED16_FROM_ULONG)
+       (GREEN16_FROM_ULONG, BLUE16_FROM_ULONG) [USE_CAIRO]: New macros.
+       (image_create_pix_container, image_pix_container_put_pixel)
+       (image_pix_context_get_pixel, 
image_pix_container_create_from_bitmap_data)
+       (cr_create_cr_surface_from_image) [USE_CAIRO]: New functions.
+       (image_create_x_image_and_pixmap_1, image_destroy_x_image)
+       (image_check_image_size): Extract X11-specific code from here ...
+       (x_create_x_image_and_pixmap, x_destroy_x_image)
+       (x_check_image_size) [HAVE_X_WINDOWS]: ... to here.
+       (x_create_bitmap_mask) [HAVE_X_WINDOWS]: Use them.  Inline specialized 
version
+       of four_corners_best.
+       (prepare_image_for_display, image_clear_image_1, image_destroy_x_image)
+       (gui_put_x_image, image_put_x_image, image_get_x_image, 
image_unget_x_image)
+       (Create_Pixmap_From_Bitmap_Data, lookup_rgb_color)
+       (image_to_emacs_colors) [USE_CAIRO]: Add cairo support.
+       (image_background, png_load_body) [USE_CAIRO]: Use 
image_alloc_image_color for
+       img->background.
+       (image_sync_to_pixmaps) [USE_CAIRO]: #ifdef out function.
+       (Create_Pixmap_From_Bitmap_Data) [HAVE_X_WINDOWS]: Move 
image_check_image_size
+       call from here ...
+       (xbm_load_image): ... to here.
+       (xpm_load_image):
+       (image_build_heuristic_mask, pbm_load, gif_load) [USE_CAIRO]: Use
+       lookup_rgb_color for argument of PUT_PIXEL.
+       (image_pixmap_draw_cross) [HAVE_X_WINDOWS || USE_CAIRO]: New function.
+       (image_disable_image) [HAVE_X_WINDOWS || USE_CAIRO]: Use it.
+       (CrossForeground) [!HAVE_NTGUI && !HAVE_NS]: New macro.
+       (image_disable_image) [!HAVE_NTGUI && !HAVE_NS]: Use it.
+
+       * src/xterm.c (handle_one_xevent) <ClientMessage> [USE_CAIRO]: #ifdef 
out
+       x_kill_gs_process call.
+       (x_free_pixmap) [USE_CAIRO]: Free Emacs_Pix_Container and data it 
contains.
+
+2019-05-28  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Improve previous change for tool bar image support on GTK+2 with cairo
+
+       * src/gtkutil.c (xg_get_pixbuf_from_surface) [USE_CAIRO && !HAVE_GTK3]: 
Remove
+       unused argument f.  All callers changed.  Handle general alpha value.
+
+2019-05-28  Stefan Monnier  <address@hidden>
+
+       * lisp/international/mule-cmds.el (encoded-string-description): Require 
unibyte string as input
+
+2019-05-28  Stefan Monnier  <address@hidden>
+
+       * lisp/international/mule-cmds.el (encode-coding-char): Fix ASCII case
+
+       Don't bother with string-as-multibyte since `string` already returns
+       multibyte when needed.  Don't forget to encode when the string is
+       ASCII, e.g. for ebcdic case and to make sure we always return
+       a unibyte string.
+
+       * test/lisp/international/mule-tests.el 
(mule-cmds-tests--encode-ebcdic):
+       New test.
+
+2019-05-28  Michael Heerdegen  <address@hidden>
+
+       * doc/misc/cl.texi (Macro Bindings): Add a detail
+
+       Say that calls of 'cl-macrolet' bound macros are expanded in the
+       global environment.
+
+2019-05-28  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/gnus-art.el: Use mail-header-p
+
+       (gnus-summary-save-in-pipe, gnus-article-prepare)
+       (gnus-request-article-this-buffer): Use mail-header-p instead of 
vectorp.
+       (gnus-request-article-this-buffer): Use insert-buffer-substring since
+       it doesn't behave like string-make-multibyte any more.
+
+2019-05-28  Eli Zaretskii  <address@hidden>
+
+       Fix handling of -xrm on MS-Windows broken by recent commits
+
+       * src/w32reg.c (w32_get_string_resource): The argument V_RDB
+       is a 'char **', not a 'char *'.  This fixes -xrm handling on
+       MS-Windows, broken by conversion of x_get_string_resource to
+       terminal-specific hook.
+
+2019-05-28  Stefan Monnier  <address@hidden>
+
+       * lisp/frameset.el: Stop using obsolete registerv objects
+
+       (frameset-register): New type.
+       (register-val-jump-to): Define on this new type, replacing
+       frameset--jump-to-register.
+       (register-val-describe): Define on this new type, replacing
+       frameset--print-register.
+       (frameset-to-register): Use new frameset-make-register.
+       (frameset--reuse-frame): η-reduce.
+
+2019-05-28  Stefan Kangas  <address@hidden>
+
+       Cleanup of TODO to prefer report-emacs-bug
+
+       * etc/TODO: Remove already completed removal of `report-calc-bug'.
+       * lisp/calc/calc.el: Remove any mention of `report-calc-bug'.
+       * lisp/epg-config.el: Redefine `epg-bug-report-address' as obsolete
+       variable alias for `report-emacs-bug-address'.
+       * lisp/expand.el: Remove any mention of `expand-submit-report'.
+       * lisp/obsolete/fast-lock.el: Remove commented out code for
+       `fast-lock-submit-bug-report'.
+
+2019-05-28  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Support tool bar icon image also on GTK+2 with cairo
+
+       * src/gtkutil.c (xg_get_pixbuf_from_surface) [USE_CAIRO && !HAVE_GTK3]: 
New
+       function.
+       (xg_get_image_for_pixmap) [USE_CAIRO && !HAVE_GTK3]: Use it.
+       (xg_tool_item_stale_p, update_frame_tool_bar) [USE_CAIRO && 
!HAVE_GTK3]: Use
+       cairo code also on GTK+2.
+
+2019-05-27  Glenn Morris  <address@hidden>
+
+       * test/lisp/autorevert-tests.el: Give on on remote hydra.nixos tests.
+
+       (auto-revert--test-enabled-remote): Disable on hydra.nixos.
+
+2019-05-27  Glenn Morris  <address@hidden>
+
+       * test/lisp/autorevert-tests.el: Try to fix remote hydra.nixos tests.
+
+2019-05-27  Simen Heggestøyl  <address@hidden>
+
+       Remap `complete-symbol' in CSS mode
+
+       * lisp/textmodes/css-mode.el (css-mode-map): Remap `complete-symbol'
+       to `completion-at-point'.
+       (css-mode): Update docstring to produce the right key binding.
+
+2019-05-27  Mattias Engdegård  <address@hidden>
+
+       Correctly eliminate duplicate cases in switch compilation
+
+       Fix code mistakes that prevented the correct elimination of duplicated
+       cases when compiling a `cond' form to a switch bytecode, as in
+
+         (cond ((eq x 'a) 1)
+               ((eq x 'b) 2)
+               ((eq x 'a) 3)   ; should be elided
+               ((eq x 'c) 4))
+
+       Sometimes, this caused the bytecode to use the wrong branch (bug#35770).
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-cond-vars): Return obj2 
eval'ed.
+       (byte-compile-cond-jump-table-info):
+       Discard redundant condition.  Use `obj2' as evaluated.
+       Discard duplicated cases instead of failing the table generation.
+       * test/lisp/emacs-lisp/bytecomp-tests.el (toplevel): Require subr-x.
+       (byte-opt-testsuite-arith-data, bytecomp-test--switch-duplicates): Test.
+
+2019-05-27  Michael Albinus  <address@hidden>
+
+       Another attempt to fix Bug#35769
+
+       * lisp/net/tramp.el (tramp-call-process, tramp-call-process-region)
+       (tramp-process-lines): Suppress `process-environment' entries
+       dedicated for remote processes.  (Bug#35769)
+
+2019-05-26  Simen Heggestøyl  <address@hidden>
+
+       Add a menu bar menu for CSS mode
+
+       * lisp/textmodes/css-mode.el (css-mode-map): Add menu bar menu.
+
+2019-05-26  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-sh.el (tramp-maybe-open-connection): Revert fix for 
Bug#35769
+
+2019-05-26  Noam Postavsky  <address@hidden>
+
+       Avoid infloop in read-multiple-choice (Bug#32257)
+
+       * lisp/emacs-lisp/rmc.el (read-multiple-choice): Use `read-event'
+       which won't get stuck (return the same event over and over again) for
+       non-character events, unlike `read-char'.
+
+2019-05-26  Basil L. Contovounesios  <address@hidden>
+
+       Tweak recent additions in tabify-tests.el
+
+       * test/lisp/tabify-tests.el (tabify-tests--test-changes): Rename
+       third argument to avoid "lexical argument shadows dynamic variable"
+       warnings.  Use mapconcat in place of mapcar+concat.
+       (tabify-tests-untabify, tabify-tests-tabify): Quote function symbols
+       as such.
+
+2019-05-26  Simen Heggestøyl  <address@hidden>
+
+       Use lexical-binding in paren.el and add tests
+
+       * lisp/paren.el: Use lexical-binding.
+       (show-paren--default): Use imperative form in doc-string.
+
+       * test/lisp/paren-tests.el: New file with tests for paren.el.
+
+2019-05-26  Paul Eggert  <address@hidden>
+
+       Update author/maintainer info
+
+       Update email addresses and fix spellings of some author and
+       maintainer names.
+
+2019-05-26  Paul Eggert  <address@hidden>
+
+       Remove Maintainer: when it duplicates Author:
+
+       The convention is that a file with Author: but not Maintainer:
+       means the author is a maintainer, which makes it confusing
+       when a file lists the same person as author and maintainer.
+       Avoid the confusion by removing the duplicate Maintainer: line.
+
+2019-05-25  Stefan Kangas  <address@hidden>
+
+       Use lexical-binding in tabify.el and add tests
+
+       * lisp/tabify.el: Use lexical-binding.
+       * test/lisp/tabify-tests.el: New file.
+
+2019-05-25  Paul Eggert  <address@hidden>
+
+       * CONTRIBUTE: Split git configuration from fetch-and-build
+
+2019-05-25  Paul Eggert  <address@hidden>
+
+       Document ‘Maintainer: address@hidden’
+
+       * doc/lispref/tips.texi (Library Headers): Document that the
+       Maintainer: line now says ‘address@hidden’ rather than ‘FSF’.
+
+2019-05-25  Paul Eggert  <address@hidden>
+
+       Go back to "Maintainer: address@hidden"
+
+       Restore lines saying "Maintainer: address@hidden" when there is
+       no special maintainer for a file.  Although this wasn't documented
+       it was common practice and removing the lines didn't have consensus.
+
+2019-05-25  Dmitry Gutov  <address@hidden>
+
+       Expand some xref documentation
+
+       * lisp/progmodes/xref.el (xref-show-xrefs-function)
+       (xref-show-definitions-function, xref--create-fetcher):
+       Add or extend the docstring.
+
+2019-05-25  Eric S. Raymond  <address@hidden>
+
+       Implement and document XDG-style startup files under ~/.config.
+
+       * lisp/startup.el (command-line): Allow XDG-style as well as old
+        style init paths.
+       * doc/emacs/custom.texi: Document the above change.
+
+2019-05-25  Mauro Aranda  <address@hidden>
+
+       Remove redundants "See" before @xref or @pxref (Bug#35793)
+
+       * doc/misc/gnus.texi (Group Parameters): Remove redundant "See" before
+       cross reference, add comma after it.
+
+2019-05-25  Michael Albinus  <address@hidden>
+
+       * doc/misc/tramp.texi (Obtaining Tramp): Tramp is available via GNU 
ELPA.
+
+2019-05-24  Dmitry Gutov  <address@hidden>
+
+       Rename xref--revert-xref-buffer to xref-refresh-results
+
+       * lisp/progmodes/xref.el (xref-refresh-results):
+       Rename from xref--revert-xref-buffer (bug#35702).
+
+2019-05-24  Dmitry Gutov  <address@hidden>
+
+       Support reverting in xref-find-definitions results as well
+
+       * lisp/progmodes/xref.el (xref--show-xref-buffer): Expect the
+       first argument to always be a function (bug#35702).  Handle a
+       FETCHED-XREFS entry in ALIST.
+       (xref--show-defs-buffer): Update accordingly.
+       (xref--create-fetcher): Extract from xref--find-xrefs.
+       (xref--find-definitions): Use it.
+
+2019-05-24  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/package.el (package-install-from-archive): Fix last 
change
+
+       Don't place the unibyte content of of the downloaded file into
+       a multibyte buffer.
+
+2019-05-24  Michael Albinus  <address@hidden>
+
+       Fix Bug#35769
+
+       * lisp/net/tramp-adb.el (tramp-adb-connection-local-default-profile):
+       * lisp/net/tramp-integration.el 
(tramp-connection-local-default-profile):
+       Do not set it on w32 systems.  (Bug#35769)
+
+2019-05-24  Matthew Bauer  <address@hidden>
+
+       Add "Enter Auth" prompt handling for OpenVPN (Bug#35724)
+
+       * lisp/comint.el (comint-password-prompt-regexp): Allow "Enter Auth"
+       at the beginning.
+
+2019-05-23  Dmitry Gutov  <address@hidden>
+
+       Support "reverting" Xref buffers (bug#35702)
+
+       * lisp/progmodes/xref.el (xref--fetcher): New variable.
+       (xref--xref-buffer-mode-map): Add binding for 'g'.
+       (xref--revert-xref-buffer): New command.
+       (xref--show-xref-buffer): Accept a function as the first argument.
+       (xref--show-xrefs): Same.
+       (xref--find-xrefs): Pass the above a fetcher function.
+
+       * lisp/progmodes/project.el (project-find-regexp)
+       (project-or-external-find-regexp): Same.
+
+       * lisp/dired-aux.el (dired-do-find-regexp): Same.
+
+2019-05-23  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Undo use of Emacs_Pixmap over Pixmap for x_kill_gs_process
+
+       * src/dispextern.h (x_kill_gs_process):
+       * src/image.c (x_kill_gs_process): Undo use of Emacs_Pixmap over Pixmap.
+       * src/dispextern.h (x_kill_gs_process): Move extern inside 
HAVE_X_WINDOWS.
+
+2019-05-23  Michael Heerdegen  <address@hidden>
+
+       Improve documentation of the 'function' special form
+
+       Point out that 'function' quoting is beneficial also for symbols.
+
+       * src/eval.c (function): Enhance docstring.
+       * doc/lispref/functions.texi (Anonymous Functions): Improve
+       documentation.
+
+2019-05-23  Michael Heerdegen  <address@hidden>
+
+       * lisp/emacs-lisp/cl-macs.el (cl-callf): Tweak in docstring
+
+       Say that lambdas are also allowed as FUNC argument.
+
+2019-05-22  Paul Eggert  <address@hidden>
+
+       Avoid backslash-newline-newline in source code
+
+       * etc/refcards/Makefile (PDF_FRENCH):
+       * lib-src/etags.c (LOOP_ON_INPUT_LINES):
+       * lisp/dabbrev.el (dabbrev-check-other-buffers):
+       * lisp/org/org-id.el (org-id-link-to-org-use-id):
+       * lisp/org/org.el (org-support-shift-select, org-file-apps):
+       * src/alloc.c (CHECK_ALLOCATED_AND_LIVE)
+       (CHECK_ALLOCATED_AND_LIVE_SYMBOL):
+       * src/frame.h (FRAME_PIXEL_WIDTH_TO_TEXT_COLS):
+       * src/regex-emacs.c (PREFETCH_NOLIMIT):
+       * src/window.h (WINDOW_BUFFER):
+       Remove backslash-newline that immediately precedes another
+       newline, as this is not the usual style and is confusing.
+
+2019-05-22  Eli Zaretskii  <address@hidden>
+
+       Unbreak display of characters on MS-Windows
+
+       * src/w32font.c (w32font_draw): Convert the glyph_string's
+       char2b array to 16-bit WCHAR data that ExtTextOutW needs.
+
+2019-05-22  Stefan Monnier  <address@hidden>
+
+       * lisp/cedet/srecode/insert.el: Use lexical-binding
+
+       (srecode-insert-method): No need for lexical-let any more.
+
+2019-05-22  Stefan Monnier  <address@hidden>
+
+       * lisp/allout.el, lisp/allout-widgets.el: Use cl-lib and pcase
+
+2019-05-22  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Merge branch 'master' into harfbuzz
+
+2019-05-22  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Make Cairo build obey hint-style font setting (Bug#35781)
+
+       * src/ftfont.h (ftfont_open2): Remove extern.
+       (ftfont_fix_match, ftfont_add_rendering_parameters)
+       (ftfont_entity_pattern): Add externs.
+       (struct font_info): Remove member bitmap_strike_index.
+       (struct font_info) [USE_CAIRO]: Remove member ft_size_draw.  All uses 
removed.
+       Add member bitmap_position_unit.
+
+       * src/xftfont.c (xftfont_fix_match, xftfont_add_rendering_parameters): 
Move
+       functions from here ...
+       * src/ftfont.c (ftfont_fix_match, ftfont_add_rendering_parameters): ... 
to
+       here.  All uses changed.
+       * src/xftfont.c (xftfont_open): Extract FcPattern creation from font 
entity
+       from here ...
+       * src/ftfont.c (ftfont_entity_pattern): ... to here.
+       * src/xftfont.c (syms_of_xftfont): Move DEFSYMs for Fontconfig's 
rendering
+       parameters from here ...
+       * src/ftfont.c (syms_of_ftfont): ... to here.
+
+       * src/ftfont.c (ftfont_open, ftfont_open2): Undo introduction of
+       bitmap_strike_index.  Merge functions into ftfont_open.
+
+       * src/ftcrfont.c (ftcrfont_open): Align code with xftfont_open rather 
than
+       ftfont_open.
+       (ftcrfont_close): Likewise.
+       (ftcrfont_has_char, ftcrfont_encode_char):
+       (ftcrfont_otf_capability) [HAVE_LIBOTF]:
+       (ftcrfont_variation_glyphs) [HAVE_OTF_GET_VARIATION_GLYPHS]: New 
functions.
+       (ftcrfont_driver): Register them.
+       (ftcrfont_get_bitmap, ftcrfont_anchor_point):
+       (ftcrfont_shape) [HAVE_M17N_FLT && HAVE_LIBOTF]: Use 
bitmap_position_unit
+       instead of bitmap_strike_index to screen bitmap fonts.
+       (ftcrfont_get_bitmap, ftcrfont_anchor_point):
+       (ftcrfont_otf_capability) [HAVE_LIBOTF]:
+       (ftcrfont_shape) [HAVE_M17N_FLT && HAVE_LIBOTF]:
+       (ftcrfont_variation_glyphs) [HAVE_OTF_GET_VARIATION_GLYPHS]: Temporarily
+       assign ftcrfont_info->ft_size and call corresponding ftfont functions.
+       (ftcrfont_draw): Don't flush cairo surface when exporting.
+
+2019-05-22  Basil L. Contovounesios  <address@hidden>
+
+       Fix url-copy-file argument handling
+
+       For discussion, see the following thread:
+       https://lists.gnu.org/archive/html/emacs-devel/2019-05/msg00500.html
+       * lisp/url/url-handlers.el: Update autoloaded docstrings.
+       Quote function symbols as such.
+       (url-handler-regexp): Make grouping construct shy.
+       (url-file-handler, url-insert-buffer-contents)
+       (url-handlers-create-wrapper, url-handlers-set-buffer-mode):
+       Simplify.
+       (url-file-handler-identity): Clarify calling convention.
+       (file-name-absolute-p, url-file-local-copy): Mark ignored arguments
+       as such.
+       (url-handler-directory-file-name): Prefer string comparison over
+       regexp match where either will do.
+       (url-copy-file): Handle integer as third argument as per copy-file.
+
+2019-05-22  Stefan Monnier  <address@hidden>
+
+       * lisp/textmodes/sgml-mode.el: Fix lone `>` in sgml text
+
+       (sgml--syntax-propertize-ppss):New variable and function.
+       (sgml-syntax-propertize-rules): Use it.
+       Don't ignore quotes not followed by a matching quote or a '>' or '<'.
+       (sgml-syntax-propertize): Set up sgml--syntax-propertize-ppss.
+
+       * test/lisp/textmodes/sgml-mode-tests.el (sgml-tests--quotes-syntax):
+       Add test for lone '>'.
+
+2019-05-22  Dmitry Gutov  <address@hidden>
+
+       Make xref-find-definitions more customizable
+
+       * lisp/progmodes/xref.el (xref--show-defs-buffer): New function.
+       Move a bit of logic from xref--show-defs to make it more
+       customizable.
+       (xref--push-markers): New function, extracted from
+       xref--show-xrefs.
+       (xref-show-definitions-function): Set to the new function.
+
+2019-05-22  Dmitry Gutov  <address@hidden>
+
+       Separate xref-find-definitions' behavior from other commands
+
+       * lisp/progmodes/xref.el (xref-show-definitions-function):
+       New variable.
+       (xref--show-defs): Split off from xref--show-xrefs.
+       (xref--find-definitions): Use it.
+       (xref--not-found-error): New function.
+       (xref--show-xrefs): Simplify.  Show the list buffer even when
+       there is just one item in the list.  Remove the last argument.
+
+       * lisp/dired-aux.el (dired-do-find-regexp): Update accordingly.
+
+2019-05-22  Paul Eggert  <address@hidden>
+
+       Remove fixnum restriction on some display vars
+
+       This is a minor patch to remove some fixnum restrictions.
+       Many more such patches are needed, but one thing at a time.
+       * doc/emacs/custom.texi (Examining): Update fill-column example.
+       * src/buffer.c (fill-column, left-margin, tab-width)
+       (buffer-saved-size, left-margin-width, right-margin-width)
+       (left-fringe-width, right-fringe-width, scroll-bar-width)
+       (scroll-bar-height, buffer-display-count):
+       Allow any integer; do not restrict to fixnums.
+       * src/character.h (SANE_TAB_WIDTH): Do not assume tab_width
+       is a nonnegative fixnum.
+       (sanitize_tab_width): Take a Lisp_Object integer, not an
+       EMACS_INT.  Only use changed.
+       * src/data.c (store_symval_forwarding): Remove unnecessary
+       SYMBOLP since the predicate (e.g., Qintegerp) is always a
+       symbol (leave the test in as an eassert).  Avoid assignments
+       inside if-conditions.
+       * src/fileio.c (Fdo_auto_save): Do not assume
+       buffer-saved-size is a fixnum.  Avoid undefined behavior
+       on EMACS_INT overflow by multiplying a fixnum by at most 4,
+       not by at most 13.
+       * src/window.c (set_window_buffer): When buffer-display-count
+       is too large for a fixnum, make it a bignum.
+       * src/xdisp.c (FILL_COLUMN_INDICATOR_NEEDED): Remove macro, ...
+       (fill_column_indicator_column): ... replacing with this new function.
+       All uses changed.  The function is a bit pickier, to prevent
+       problems with non-character fixnums and columns out of range
+       for int, and to remove the assumption that integers are in
+       fixnum range.
+       (append_space_for_newline, extend_face_to_end_of_line):
+       Avoid undefined behavior with signed integer overflow.
+       Simplify.
+
+2019-05-22  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       b0da915 (origin/emacs-26, emacs-26) Fix a typo in ELisp manual
+       400907b Add option to disable help completion autoloading (Bug#28607)
+       122ba16 Don't segfault on force-window-update of deleted window
+       015b12e Fix typo in ELisp manual
+       eadf044 Remove repeated function call in picture.el
+       1228a90 ; Fix mm-destroy-parts docstring typo
+       6cfd68d Fix Hideshow key binding typo in Emacs manual
+
+2019-05-22  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       5d24af8 Remove from docs references to obsolete MULE variables
+       2bdc419 Do potentially destructive operations in prepare-commit-msg
+
+       # Conflicts:
+       #       src/search.c
+
+2019-05-21  Alexander Gramiak  <address@hidden>
+
+       * src/xfont.c (xfont_draw): Allocate the XChar2b array (Bug#35814)
+
+2019-05-21  Alan Third  <address@hidden>
+
+       Fix some deprecation notices on macOS 10.14
+
+       * src/nsimage.m ([EmacsImage setXBMColor:]): Replace colorSpaceName
+       code.
+       * src/nsmenu.m ([EmacsDialogPanel initWithContentRect:styleMask:]):
+       Remove reference to oneShot.
+       * src/nsterm.h (ns_enable_screen_updates): Remove function prototype.
+       (NSPasteboardTypeString):
+       (NSPasteboardTypeTabularText):
+       (NSControlStateValueOn):
+       (NSControlStateValueOff):
+       (NSBezelStyleRounded):
+       (NSPasteboardTypeURL): Define new names and replace all callers.
+       * src/nsterm.m ([EmacsColor colorUsingDefaultColorSpace]): Replace
+       calls to colorUsingColorSpaceName on macOS > 10.7.
+       ([EmacsView performDragOperation:]): Add FIXME about deprecation.
+       (ns_disable_screen_updates):
+       (ns_enable_screen_updates): Remove functions and all callers.
+       (disable_screen_updates_count): Remove variable.
+       * src/macfont.m (macfont_draw): Use CGContext instead of graphicsPort
+       on macOS >= 10.10
+
+2019-05-21  Paul Eggert  <address@hidden>
+
+       Pacify libpng on interlaced images (Bug#35843)
+
+       * src/image.c (png_set_interlace_handling) [WINDOWSNT]:
+       New function to link.
+       (init_png_functions): Link it.
+       (png_load_body): Call it before calling png_read_update_info.
+
+2019-05-21  Paul Eggert  <address@hidden>
+
+       Remove time-date debugging scaffolding
+
+       Problem reported by Lars Ingebrigtsen in:
+       https://lists.gnu.org/r/emacs-devel/2019-05/msg00721.html
+       * lisp/calendar/time-date.el (date-to-time):
+       Use plain condition-case, not condition-case-unless-debug.
+
+2019-05-21  Federico Tedin  <address@hidden>
+
+       Use lexical-binding in tempo.el and add tests
+
+       For discussion, see the following thread:
+       https://lists.gnu.org/archive/html/emacs-devel/2019-05/msg00395.html
+       * lisp/tempo.el: Use lexical-binding.
+       (tempo-define-template): Expand documentation to mention
+       `tempo-user-elements'.
+       (tempo-local-tags, tempo-collection, tempo-dirty-collection)
+       (tempo-marks, tempo-match-finder): Define with defvar-local.
+       (tempo-named-insertions, tempo-region-start, tempo-region-stop): Make
+       them automatically buffer-local.
+       * test/lisp/tempo-tests.el: Add tests for tempo.el.
+
+2019-05-21  Alan Mackenzie  <address@hidden>
+
+       C Mode: Fix indentation of DEFUN's function's argument list.
+
+       Formally, when DEFUNs still used knr argument lists, these were 
indented by
+       the syntactic context knr-argdecl-intro (5 columns).  Since this is no 
longer
+       the case, we now just use c-basic-offset (2 columns in "gnu" style).
+
+       * lisp/progmodes/cc-align.el (c-indent-gnu-DEFUN-intro-cont): Modernize 
the
+       indentation.  Amend the doc string accordingly.
+
+2019-05-20  YAMAMOTO Mitsuharu  <address@hidden>
+
+       * src/ftcrfont.c (ftcrfont_open): Skip zero glyph index.
+
+2019-05-20  Stephen Leake  <address@hidden>
+
+       Revert recent project-find-file change
+
+       * lisp/progmodes/project.el (project-find-file): Delete recently added
+       'filename' arg; just use project-find-file-in.
+
+2019-05-20  Mattias Engdegård  <address@hidden>
+
+       Allow zero-argument rx `or' and `seq' forms
+
+       Make the rx `or' and `seq' forms accept zero arguments to produce a
+       never-matching regexp and an empty string, respectively.
+
+       * lisp/emacs-lisp/rx.el: Require cl-extra.
+       (rx-constituents, rx-or): Permit zero args.
+       (rx): Amend doc string for `or' and `seq'.
+       * test/lisp/emacs-lisp/rx-tests.el (rx-or, rx-seq): Test the change.
+       * etc/NEWS (Changes in Specialized Modes and Packages): Mention the 
change.
+
+2019-05-20  Mattias Engdegård  <address@hidden>
+
+       Revert "Allow zero-argument rx `or' and `seq' forms"
+
+       This reverts commit b552fc05c231ca6800330a318d3a74ddd0f5a13c.
+       It caused a bootstrapping failure which I have yet to resolve - sorry.
+
+2019-05-20  Basil L. Contovounesios  <address@hidden>
+
+       Improve C and Elisp Git diff hunk headers
+
+       For discussion, see the following threads:
+       https://lists.gnu.org/archive/html/emacs-devel/2019-03/msg00457.html
+       https://lists.gnu.org/archive/html/emacs-devel/2019-05/msg00369.html
+
+       * autogen.sh: Extend the built-in Git xfuncname pattern 'cpp' to
+       match preprocessor and DEFUN macros, and the 'elisp' pattern to
+       match cl-lib and other top-level defuns.
+
+2019-05-20  Stefan Kangas  <address@hidden>
+
+       Use lexical-binding in delim-col.el and add tests
+
+       Thanks to Basil L. Contovounesios for additional cleanups.
+       For discussion, see the following thread:
+       https://lists.gnu.org/archive/html/emacs-devel/2019-05/msg00177.html
+
+       * lisp/delim-col.el: Use lexical-binding.
+
+       * test/lisp/delim-col-tests.el: New file.
+       (delim-col-tests-delimit-colummns-before-after)
+       (delim-col-tests-delimit-columns)
+       (delim-col-tests-delimit-columns-format/nil)
+       (delim-col-tests-delimit-columns-format/padding)
+       (delim-col-tests-delimit-columns-format/separator)
+       (delim-col-tests-delimit-columns-separator)
+       (delim-col-tests-delimit-columns-str-before-after)
+       (delim-col-tests-delimit-columns-str-separator)
+       (delim-col-tests-delimit-rectangle): New unit tests.
+
+2019-05-20  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Remove unused code from c-maybe-re-mark-raw-string
+
+       Acknowledge that when the function is called, it is always at the start 
of a
+       string, never in the middle or at the end of one.
+
+       * lisp/progmodes/cc-engine.el (c-maybe-re-mark-raw-string): Reformulate 
the
+       cond form into a `when' form, with all but the first arm of the cond
+       discarded.
+
+2019-05-20  Lars Ingebrigtsen  <address@hidden>
+
+       w32--os-description: Fix previous change
+
+       * lisp/w32-fns.el (w32--os-description): Fix inadvertant "o" added
+       to the end of the function name in the previous patch (bug#35807).
+
+2019-05-20  Lars Ingebrigtsen  <address@hidden>
+
+       Mark nnheader-cancel-timer as obsolete and adjust callers
+
+       * lisp/gnus/nnheader.el (nnheader-cancel-timer)
+       (nnheader-cancel-function-timers): Mark as obsolete.
+
+       * lisp/gnus/nntp.el (nntp-with-open-group-function)
+       (nntp-async-stop): Adjust caller.
+
+       * lisp/gnus/gnus-art.el (gnus-stop-date-timer): Ditto.
+
+       * lisp/gnus/gnus-async.el (gnus-async-prefetch-next): Ditto.
+
+       * lisp/gnus/gnus-demon.el (gnus-demon-run-callback)
+       (gnus-demon-cancel): Ditto.
+
+       * lisp/gnus/mail-source.el (mail-source-report-new-mail): Ditto.
+
+       * lisp/gnus/nnmaildir.el (nnmaildir-request-accept-article): Ditto.
+
+2019-05-20  Mattias Engdegård  <address@hidden>
+
+       Allow zero-argument rx `or' and `seq' forms
+
+       Make the rx `or' and `seq' forms accept zero arguments to produce a
+       never-matching regexp and an empty string, respectively.
+
+       * lisp/emacs-lisp/rx.el (rx-constituents, rx-or): Permit zero args.
+       (rx): Amend doc string for `or' and `seq'.
+       * test/lisp/emacs-lisp/rx-tests.el (rx-or, rx-seq): Test the change.
+       * etc/NEWS (Changes in Specialized Modes and Packages): Mention the 
change.
+
+2019-05-20  Mattias Engdegård  <address@hidden>
+
+       Avoid polling in global-auto-revert-mode (bug#35418)
+
+       Make `auto-revert-avoid-polling' have effect in global-auto-revert-mode.
+       Buffers actually handled by that mode are marked with a non-nil value
+       of `auto-revert--global-mode'.  When global-auto-revert-mode is
+       entered, eligible buffers are marked in that way, and hooks are set up
+       to mark new buffers and take care of buffers whose file names change.
+       This way the existing poll-avoidance logic can be used, since the
+       entire set of buffers in auto-revert is known.
+
+       A new hook, `after-set-visited-file-name-hook', was added to handle
+       the case when the file name of a tracked buffer changes.
+
+       * lisp/autorevert.el (auto-revert-avoid-polling): Amend doc string.
+       (auto-revert--global-mode): New buffer-local variable.
+       (global-auto-revert-mode): Mark existing buffers and set up hooks when
+       mode is entered; do the opposite when exited.
+       (auto-revert--global-add-current-buffer)
+       (auto-revert--global-adopt-current-buffer)
+       (auto-revert--set-visited-file-name-advice): New functions.
+       (auto-revert--polled-buffers, auto-revert--need-polling-p)
+       (auto-revert-notify-handler)
+       (auto-revert-active-p): Modify logic to cover global-auto-revert-mode.
+       * lisp/files.el (after-set-visited-file-name-hook): New hook.
+       (set-visited-file-name-hook): Call new hook.
+       * test/lisp/autorevert-tests.el (top):  Use lexical-binding.
+       (auto-revert-test--write-file, auto-revert-test--buffer-string)
+       (auto-revert-test--wait-for, auto-revert-test--wait-for-buffer-text)
+       (auto-revert-test05-global-notify): New test.
+       * doc/lispref/hooks.texi (Standard Hooks):
+       Mention new hook (in a comment, since it's unclear whether it should
+       actually be documented here)
+       * etc/NEWS (Changes in Specialized Modes and Packages): Update entry.
+
+2019-05-20  Michael Albinus  <address@hidden>
+
+       Fix problems in autorevert-tests
+
+       * test/lisp/autorevert-tests.el (auto-revert--deftest-remote):
+       Fix typo.
+       (auto-revert-test02-auto-revert-deleted-file): On emba, there are
+       no stopped events.
+
+2019-05-19  Paul Eggert  <address@hidden>
+
+       Fixes for "Maintainer:" and related lines
+
+       Mostly, this just removes "Maintainer: address@hidden" lines,
+       which are not that useful.  It also cleans up and regularizes a
+       few similar lines.
+
+2019-05-19  Alexander Gramiak  <address@hidden>
+
+       Use HAVE_WINDOW_SYSTEM over HAVE_X11 || HAVE_NTGUI || HAVE_NS
+
+       * src/keyboard.c (kbd_buffer_get_event, make_lispy_event): Use
+       HAVE_WINDOW_SYSTEM.
+
+2019-05-19  Alexander Gramiak  <address@hidden>
+
+       Introduce Emacs_Pix_Container and Emacs_Pix_Context typedefs
+
+       Emacs_Pix_Container is a pointer to a struct representing pixmap data
+       on the backend.  Emacs_Pix_Context is the context for the
+       bitmap/pixmap on the backend.  Only w32 currently makes this
+       distinction; they are otherwise the same type.
+
+       * src/dispextern.h: Remove XImagePtr in favor of
+       using XImage* directly. Rename XImagePtr_or_DC to Emacs_Pix_Context.
+       [HAVE_X_WINDOWS] Alias Emacs_Pix_Container and
+       Emacs_Pix_Context to XImage*.
+       [HAVE_NS] Alias Emacs_Pix_Container and Emacs_Pix_Context to trivial
+       Emacs_Pixmap definition.
+       [HAVE_NTGUI]: Alias Emacs_Pix_Container to XImage* and
+       Emacs_Pix_Context to HDC.
+
+       * src/dispextern.h:
+       * src/image.c: Use Emacs_Pix_Container over XImagePtr and
+       Emacs_Pix_Context over XImagePtr_or_DC.
+
+2019-05-19  Alexander Gramiak  <address@hidden>
+
+       Replace XChar2b with unsigned in all font backends
+
+       The xfont backend using XChar2b in its API doesn't mean that we should
+       use it everywhere else.
+
+       * src/dispextern.h (glyph_string):
+       * src/ftcrfont.c (ftcrfont_draw):
+       * src/ftxfont.c (ftxfont_draw):
+       * src/w32term.c (w32_draw_glyphless_glyph_string_foreground):
+       * src/xdisp.c (init_glyph_string, get_char_face_and_encoding)
+       (get_glyph_face_and_encoding, get_char_glyph_code)
+       (fill_gstring_glyph_string, fill_stretch_glyph_string)
+       (normal_char_ascent_descent, gui_get_glyph_overhangs)
+       (compute_overhangs_and_x, gui_produce_glyphs):
+       * src/xfont.c (xfont_get_pcm, xfont_chars_supported, xfont_open)
+       (xfont_encode_char, xfont_text_extents, xfont_draw)
+       * src/xftfont.c (xftfont_draw):
+       * src/xterm.c (x_compute_glyph_string_overhangs)
+       (x_draw_glyphless_glyph_string_foreground): Use unsigned over XChar2b.
+
+       * src/nsgui.h:
+       * src/w32gui.h:
+       * src/xterm.h: Remove XChar2b, STORE_XCHAR2B, XCHAR2B_BYTE1, and
+       XCHAR2B_BYTE2 typedefs and macros.
+
+       * src/font.h (font_driver):
+       (ftfont_text_extents)
+       * src/ftcrfont.c (ftcrfont_text_extents):
+       * src/ftfont.c (ftfont_text_extents):
+       * src/macfont.m (macfont_text_extents):
+       * src/nsfont.m (nsfont_text_extents):
+       * src/w32font.h (w32_font_text_extents):
+       * src/font.c (xfont_text_extents):
+       * src/xftfont.c (xftfont_text_extents): Make code parameter const.
+
+2019-05-19  Alexander Gramiak  <address@hidden>
+
+       Introduce Emacs_GC struct and typedef
+
+       * src/dispextern.h [HAVE_X_WINDOWS]: Alias Emacs_GC to XGCValues.
+       [!HAVE_X_WINDOWS]: Define Emacs_GC, GCForeground, and GCBackground.
+
+       * src/nsgui.h:
+       * src/w32gui.h:Remove obsolete XGCValues, GC, GCForeground,
+       GCBackground, and GCFont definitions.
+
+       * src/w32fns.c (w32_make_gc): Do not set unused font field.
+
+       * src/w32term.c: Use Emacs_GC over XGCValues. Do not set unused font
+       field.
+
+       * src/xfaces.c: Use Emacs_GC over XGCValues and GC.
+
+2019-05-19  Alexander Gramiak  <address@hidden>
+
+       Introduce Emacs_Rectangle struct and typedef
+
+       * src/dispextern.h [HAVE_X_WINDOWS]: Alias Emacs_Rectangle to
+       XRectangle.
+       [!HAVE_X_WINDOWS]: Define Emacs_Rectangle struct.
+       Use Emacs_Rectangle over XRectangle.
+
+       * src/frame.h (MonitorInfo):
+       * src/msdos.h:
+       * src/w32term.c:
+       * src/xdisp.c: Use Emacs_Rectangle over XRectangle.
+
+       * src/nsgui.h:
+       * src/w32gui.h: Remove old XRectangle structs.
+
+       * src/xdisp.c:
+       * src/nsgui.h:
+       * src/w32gui.h: Rename CONVERT_FROM_XRECT and CONVERT_TO_XRECT to
+       CONVERT_FROM_EMACS_RECT and CONVERT_TO_EMACS_RECT respectively.
+
+2019-05-19  Alexander Gramiak  <address@hidden>
+
+       Introduce Emacs_Pixmap typedef
+
+       * src/dispextern.h [HAVE_X_WINDOWS]: Alias Emacs_Pixmap to Pixmap.
+       (image, x_kill_gs_process): Use Emacs_Pixmap over Pixmap.
+
+       * src/image.c:
+
+       * src/nsgui.h:
+       * src/nsterm.m:
+       * src/termhooks.h:
+       * src/w32gui.h:
+       * src/w32term.c:
+       * src/w32term.h:
+       * src/xterm.c (x_free_pixmap): Use Emacs_Pixmap over Pixmap.
+
+       * src/w32gui.h: Remove unused typedef Bitmap.
+
+2019-05-19  Alexander Gramiak  <address@hidden>
+
+       Introduce Emacs_Cursor typedef
+
+       * src/dispextern.h [HAVE_X_WINDOWS]: Define Emacs_Cursor alias. Move
+       the No_Cursor definition from xterm.h.
+       (redisplay_interface): Use Emacs_Cursor over Cursor.
+
+       * src/nsgui.h:
+       * src/nsterm.h:
+       * src/nsterm.m:
+       * src/w32gui.h:
+       * src/w32term.c:
+       * src/xdisp.c:
+       * src/xterm.c (x_define_frame_cursor): Use Emacs_Cursor over Cursor.
+
+2019-05-19  Alexander Gramiak  <address@hidden>
+
+       Introduce Emacs_Color struct and typedef
+
+       This avoids clashing with the XColor struct from X.
+
+       * src/dispextern.h [HAVE_X_WINDOWS]: Define Emacs_Color alias.
+       [!HAVE_X_WINDOWS]: Rename XColor compatibility struct to
+       Emacs_Color. Remove unused fields.
+
+       * src/gtkutil.c:
+       * src/gtkutil.h:
+       * src/image.c:
+       * src/nsterm.h:
+       * src/nsterm.m:
+       * src/termhooks.h:
+       * src/w32fns.c:
+       * src/w32term.c:
+       * src/w32term.h:
+       * src/xfaces.c:
+       * src/xfns.c:
+       * src/xterm.h: Use Emacs_Color over XColor outside of X-specific
+       sections.
+
+2019-05-19  Mattias Engdegård  <address@hidden>
+
+       Comment out inexplicable condition in filenotify
+
+       * lisp/filenotify.el (file-notify-callback):
+       Comment out condition that does not seem to make any sense. All it
+       seems to do is allowing notifications for files on the form DIR/X/X
+       when we really just are watching DIR/X/Y.
+
+2019-05-19  Juri Linkov  <address@hidden>
+
+       * lisp/vc/vc-dispatcher.el (vc-do-command): Let-bind inhibit-message to 
t
+
+       in active minibuffer.  (Bug#34939)
+
+2019-05-19  Juri Linkov  <address@hidden>
+
+       Publicize behavior of log-view-diff at beginning/end of active region
+
+       * lisp/vc/log-view.el (log-view-diff, log-view-diff-changeset):
+       * doc/emacs/maintaining.texi (VC Change Log): Document behavior of
+       log-view-diff at the beginning and the end of the log buffer
+       when the region is active.  (Bug#35624)
+
+       * lisp/vc/vc-git.el (vc-git-print-log): Insert newline at the
+       beginning to enable the feature of diffing with the working revision.
+
+2019-05-19  Lars Ingebrigtsen  <address@hidden>
+
+       cus-edit.el: Remove XEmacs compat code
+
+       * lisp/cus-edit.el (custom-browse-insert-prefix): Remove XEmacs
+       compat code and make obsolete.
+       (custom-group-value-create): Use `insert' directly.
+
+       * lisp/emacs-lisp/elint.el (elint-check-conditional-form): Don't
+       refer to function that doesn't have an if any more.
+
+2019-05-19  Lars Ingebrigtsen  <address@hidden>
+
+       bs.el: Remove XEmacs compat code
+
+       * lisp/bs.el (bs-mode-font-lock-keywords): Remove XEmacs compat code.
+       (bs-mode-map): Ditto.
+
+2019-05-19  Lars Ingebrigtsen  <address@hidden>
+
+       arc-mode.el: Remove XEmacs compat code
+
+       * lisp/arc-mode.el (archive-mode-map): Remove XEmacs compat code.
+       (archive-summarize-files): Ditto.
+
+2019-05-19  Lars Ingebrigtsen  <address@hidden>
+
+       rfc2104.el: Remove XEmacs compat code.
+
+       * lisp/net/rfc2104.el (rfc2104-string-make-unibyte): Remove XEmacs
+         compat code.
+
+2019-05-19  Lars Ingebrigtsen  <address@hidden>
+
+       (mml-generate-mime-1): Remove XEmacs compat code
+
+       * lisp/gnus/mml.el (mml-generate-mime-1): Remove XEmacs compat code.
+
+2019-05-19  Stephen Leake  <address@hidden>
+
+       Minor updates to project.el
+
+       * lisp/progmodes/project.el (project-find-file): Add optional 
'filename' arg.
+       (project--completing-read-strict): Ignore 'default' set to empty string.
+
+2019-05-19  Eric Abrahamsen  <address@hidden>
+
+       Fix Gnus group sorting to use gnus-group-list
+
+       * lisp/gnus/gnus-group.el (gnus-group-sort-flat): As
+         gnus-newsrc-hashtb is now a real (unsorted) hash table, use
+         gnus-group-list to maintain group sort order.
+         (gnus-group-sort-selected-flat): Ditto.
+       * lisp/gnus/gnus-start.el (gnus-subscribe-alphabetically): Simplify
+         function using seq-find.
+         (gnus-subscribe-killed, gnus-subscribe-zombies): Use cl-pushnew to
+         avoid adding duplicates (can happen when un/subscribing multiple
+         times to one group).
+
+2019-05-19  Lars Ingebrigtsen  <address@hidden>
+
+       Remove usage of string-to-multibyte from arc-mode.el
+
+       * lisp/arc-mode.el (arc-insert-unibyte): Rename from
+       insert-unibyte, make into a function, and remove the superfluous
+       string-to-multibyte.  Change callers throughout the file.
+
+2019-05-19  Paul Eggert  <address@hidden>
+
+       * doc/lispintro/emacs-lisp-intro.texi: Remove euphemism.
+
+2019-05-19  Noam Postavsky  <address@hidden>
+
+       Fix dired-omit-files regexp (Bug#35668)
+
+       * lisp/dired-x.el (dired-omit-files): Match beginning and end of
+       string, rather than beginning and end of line.
+
+2019-05-19  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/hideshow.el: Simplify mouse binding; Use 
lexical-binding
+
+       (hs-set-up-overlay, hs-adjust-block-beginning): Use non-nil default for
+       function variables, so `add-function` can be used on them.
+       (hs-toggle-hiding): Make it work for mouse bindings as well.
+       (hs-minor-mode-map): Use it for the mouse binding.
+       (hs-grok-mode-type): Use bound-and-true-p.
+       (hs-life-goes-on): Use `declare` for the debug spec.
+       (hs-mouse-toggle-hiding): Make it an obsolete alias.
+
+2019-05-19  Michael Albinus  <address@hidden>
+
+       * test/lisp/autorevert-tests.el (auto-revert--deftest-remote):
+
+       Do not handle errors.
+
+2019-05-19  Martin Rudalics  <address@hidden>
+
+       New buffer display action function 'display-buffer-in-direction'
+
+       * lisp/window.el (windows-sharing-edge)
+       (window--try-to-split-window-in-direction)
+       (display-buffer-in-direction): New functions.
+       * doc/lispref/windows.texi (Buffer Display Action Functions):
+       Describe new action function 'display-buffer-in-direction'.
+       (Buffer Display Action Alists): Describe new entry 'direction'.
+       Amend description of 'window' entry.
+       * etc/NEWS: Mention 'display-buffer-in-direction' and 'direction'
+       and 'window' action alist entries.
+
+2019-05-18  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Avoid triple buffering with Xdbe in cairo
+
+       * src/xterm.h (struct x_output): Remove member cr_surface.
+       Add members cr_surface_desired_width and cr_surface_desired_height.
+       (x_cr_destroy_frame_context) [USE_CAIRO]: Add extern.
+
+       * src/xterm.c (x_free_cr_resources): Remove function.
+       (FRAME_CR_SURFACE) [USE_CAIRO]: Remove macro.
+       (FRAME_CR_SURFACE_DESIRED_WIDTH, FRAME_CR_SURFACE_DESIRED_HEIGHT) 
[USE_CAIRO]:
+       New macros.
+       (x_cr_destroy_frame_context) [USE_CAIRO]: Rename from 
x_cr_destroy_surface.
+       All Uses changed.  Don't use FRAME_CR_SURFACE.  Make non-static.
+       (x_cr_update_surface_desired_size) [USE_CAIRO]: New function.
+       (x_begin_cr_clip) [USE_CAIRO]: Create Xlib surface if Xdbe is in use.
+       Use FRAME_CR_SURFACE_DESIRED_WIDTH and FRAME_CR_SURFACE_DESIRED_HEIGHT.
+       (x_end_cr_clip) [USE_CAIRO]: Call x_mark_frame_dirty if Xdbe is in use.
+       (x_cr_draw_frame, x_cr_export_frames) [USE_CAIRO]: Save and restore 
cairo
+       context instead of freeing and clearing it.
+       (x_update_begin) [USE_CAIRO]: Don't create cairo surface here.
+       (show_back_buffer) [USE_CAIRO]: Call cairo_surface_flush before 
swapping.
+       (x_update_end) [USE_CAIRO]: Don't copy image surface if Xdbe is in use.
+       Get image surface by cairo_get_target instead of FRAME_CR_SURFACE.
+       (x_scroll_run) [USE_CAIRO]: Use XCopyArea if Xdbe is in use.
+       (handle_one_xevent) [USE_CAIRO] <ConfigureNotify>: Call
+       x_cr_update_surface_desired_size instead of x_cr_destroy_surface.
+       (x_free_frame_resources) [USE_CAIRO]: Call x_cr_destroy_frame_context 
instead
+       of x_free_cr_resources.
+
+       * src/xfns.c (set_up_x_back_buffer, tear_down_x_back_buffer) 
[USE_CAIRO]:
+       Call x_cr_destroy_frame_context.
+
+2019-05-18  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/package.el: Fix decoding of downloaded files
+
+       This is a different fix for bug#34909, which should also fix bug#35739.
+
+       Our downloading code used to automatically decode the result according
+       to the usual heuristics for files.  This caused problems when we later
+       needed to save the data in a file that needed to be byte-for-byte
+       equal to the original in order to pass the signature verification,
+       especially because we didn't keep track of which coding-system was
+       used to decode the data.
+
+       (package--unless-error): New macro extracted from
+       package--with-response-buffer-1, so that we can specify edebug and
+       indent specs.
+       (package--with-response-buffer-1): Use it.  More importantly, change
+       code so it runs `body` in a unibyte buffer with undecoded data.
+       (package--download-one-archive): Don't encode with utf-8 since the data
+       is not decoded yet.
+       (describe-package-1): Explicitly decode the readem.txt files here.
+
+       * lisp/url/url-handlers.el (url-insert-file-contents): Use it.
+       (url-insert): Don't decode if buffer is unibyte.
+
+       * lisp/url/url-http.el (url-http--insert-file-helper): New function,
+       extracted from url-insert-file-contents.
+
+2019-05-18  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/package.el: Reduce macrology in 
...with-response-buffer
+
+       (package--with-response-buffer-1): New function, extracted from
+       package--with-response-buffer.
+       (package--with-response-buffer): Use it.
+
+2019-05-18  Mattias Engdegård  <address@hidden>
+
+       Fix broken logic in file-notify
+
+       * lisp/filenotify.el (file-notify-callback):
+       Repair warped condition that didn't match rename-to/from events 
correctly.
+
+2019-05-18  Paul Eggert  <address@hidden>
+
+       * lisp/textmodes/texinfmt.el: Chassell is no longer maintainer.
+
+2019-05-18  Jean-Christophe Helary  <address@hidden>
+
+       Bob Chassell passed away
+
+       * doc/lispintro/emacs-lisp-intro.texi (About the Author): Update.
+
+2019-05-18  Paul Eggert  <address@hidden>
+
+       Fix recent Tramp typo that broke the build
+
+       ‘make bootstrap’ without this patch should reproduce the problem.
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-enabled):
+       Autoload zeroconf-init.
+
+2019-05-18  Basil L. Contovounesios  <address@hidden>
+
+       Remove XEmacs audio checks from mm-decode.el
+
+       For discussion, see the following threads:
+       https://lists.gnu.org/archive/html/emacs-devel/2019-03/msg01087.html
+       https://lists.gnu.org/archive/html/emacs-devel/2019-05/msg00584.html
+       * lisp/gnus/mm-decode.el (mm-inline-media-tests): Remove no-op media
+       tests for XEmacs features.
+
+2019-05-18  Paul Eggert  <address@hidden>
+
+       For SVG, 8192 is the new 256
+
+       Prefer librsvg for display of splash.svg
+       When both librsvg and Imagemagick are available, Emacs should
+       prefer librsvg to render SVG images.  However, Emacs was using
+       Imagemagick to render its own splash.svg file because
+       image-type-from-file-header returned nil for that file.
+       * lisp/image.el (image-type-from-buffer)
+       (image-type-from-file-header): Look at the first 8192 bytes of
+       the image, not just the first 256.  For Emacs’s own splash.svg
+       file, image-type-header-regexps needs to look at 939 bytes.
+       8192 bytes is a reasonable number nowadays given typical file
+       system design.
+       * test/lisp/image-tests.el (image-tests--emacs-images-directory):
+       New contant.
+       (image-type-from-file-header-test): New test.
+
+2019-05-18  Michael Albinus  <address@hidden>
+
+       Bug#35769
+
+       * lisp/net/tramp-sh.el: (tramp-maybe-open-connection):
+       Arrange `process-environment' that it doesn't work for local
+       processes.  (Bug#35769)
+
+2019-05-18  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Handle several consecutive noise macros in declaration 
contexts.
+
+       In the bug scenario, the second and subsequent noise macros with 
parentheses
+       were getting font-lock-type-face.
+
+       * lisp/progmodes/cc-engine.el (c-end-of-token)
+       (c-forward-noise-clause-not-macro-decl): New functions.
+       (c-find-decl-prefix-search): Handle noise macros by skipping over them.
+       (c-forward-decl-or-cast-1): In the loop checking for types, skip over 
all
+       consecutive noise macros with parens, not just one.
+
+2019-05-18  Bastien  <address@hidden>
+
+       Fix missing declaration in gnus-sum.el
+
+       * lisp/gnus/gnus-sum.el (gnus-tmp-name): Declare var.
+
+2019-05-18  Eli Zaretskii  <address@hidden>
+
+       Fix display of images on MS-Windows broken by a recent commit
+
+       * src/image.c (initialize_image_type): Test if the type is in
+       Vlibrary_cache up front, and return true without calling the
+       'init' method if the type was already initialized.
+
+2019-05-18  Michael Albinus  <address@hidden>
+
+       Suppress compiler warnings for older Emacsen in tramp-tests.el
+
+       * test/lisp/net/tramp-tests.el (tramp-test17-insert-directory):
+       Add error name to test.
+       (tramp-test30-make-process, tramp-test45-unload):
+       Suppress compiler warnings from older Emacsen.
+
+2019-05-18  Michael Albinus  <address@hidden>
+
+       Require less packages in Tramp
+
+       * lisp/net/tramp-compat.el (format-spec): Do not require advice, cl-lib,
+       custom, password-cache, timer and ucs-normalize.
+
+       * lisp/net/tramp-gvfs.el: Do not require zeroconf.  Declare
+       zeroconf-* functions.
+       (tramp-gvfs-enabled): Autoload `zeroconf-init'.
+
+       * lisp/net/tramp-sh.el: Do not require dired.
+
+       * lisp/net/tramp.el (tramp-get-debug-buffer): Do not require outline.
+       (tramp-file-name-for-operation): Extend docstring.
+       (tramp-parse-netrc): Do not require netrc.  Autoload `netrc-parse'.
+
+2019-05-18  Mattias Engdegård  <address@hidden>
+
+       Don't use file notification on non-file buffers
+
+       Allow non-file buffers to declare that notification on their
+       default-directory is sufficient to know when auto-revert updates are
+       required by setting the new variable 
`buffer-auto-revert-by-notification'
+       to non-nil.  If nil, the default, then auto-revert will poll
+       those buffers instead. (bug#35418).
+       Currently, only Dired sets that variable.
+
+       * lisp/autorevert.el (auto-revert-buffers):
+       Modify condition for using notification.
+       * lisp/files.el (buffer-auto-revert-by-notification): New variable.
+       * lisp/dired.el (dired-mode): Set buffer-auto-revert-by-notification.
+       * doc/emacs/arevert-xtra.texi (Non-File Buffers): Document new variable.
+       * etc/NEWS (Changes in Specialized Modes and Packages): Describe new 
variable.
+
+2019-05-18  Lars Ingebrigtsen  <address@hidden>
+
+       (epa-file-decode-and-insert): Byte compilation warning fix
+
+       * lisp/epa-file.el (epa-file-decode-and-insert): Remove
+       superfluous call to `string-to-multibyte string'.
+
+2019-05-18  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-interrupt-process): Return proper value.
+
+2019-05-18  Eli Zaretskii  <address@hidden>
+
+       Remove usage of string-as-unibyte in arc-mode
+
+       * lisp/arc-mode.el (archive-l-e): Encode with utf-8-emacs-unix
+       instead of using string-as-unibyte.
+
+2019-05-18  Eli Zaretskii  <address@hidden>
+
+       Fix visiting and saving UTF-16 encoded XML files
+
+       * lisp/international/mule.el (sgml-xml-auto-coding-function):
+       When the 'enncoding' tag specifies a UTF-16 encoding, enforce
+       saving the buffer with BOM, per the XML spec.
+       (xml-find-file-coding-system): Recognize UTF-16 encodings with
+       BOM.  (Bug#35766)  (Bug#8282)
+       * lisp/international/mule-cmds.el (select-safe-coding-system):
+       Don't consider UTF-16 encodings with and without BOM as
+       "different", so as not to annoy users with redundant questions
+       about mismatch between the XML/SGML header and the selected
+       explicit encoding.
+
+2019-05-17  Lars Ingebrigtsen  <address@hidden>
+
+       Mitigate byte-compile warning in arc-mode
+
+       * lisp/arc-mode.el (byte-after): Remove defsubst.
+       Replace all calls to byte-after with get-byte throughout the file,
+       because byte-after gave compilation warnings.
+
+2019-05-17  Eli Zaretskii  <address@hidden>
+
+       (hexl-insert-multibyte-char): Avoid using `string-as-unibyte'
+
+       * lisp/hexl.el (hexl-insert-multibyte-char): Avoid using
+       `string-as-unibyte' in the fallback case.
+
+2019-05-17  Lars Ingebrigtsen  <address@hidden>
+
+       (dirtrack-toggle, dirtrackp): Remove obsolete aliases
+
+       * lisp/dirtrack.el (dirtrack-toggle, dirtrackp): Remove
+       function/variable aliases declared obsolete in Emacs 23.1 (and
+       that issued a byte-compile warning).
+
+2019-05-17  Paul Eggert  <address@hidden>
+
+       Clean up and simplify image-type setup
+
+       This also fixes an unlikely hang involving a circular image
+       description.
+       * src/dispextern.h (struct image.type): Now pointer-to-const.
+       * src/image.c (struct image_type.init) [!WINDOWSNT]: Omit.
+       (IMAGE_TYPE_INIT): New macro.
+       (image_types): Now a small array-of-const, not a pointer.
+       (CACHE_IMAGE_TYPE): Remove; the code’s simpler without it.
+       (ADD_IMAGE_TYPE): Remove this macro, replacing with ...
+       (add_image_type): ... this equivalent function.  All uses changed.
+       (define_image_type): Remove.  All uses removed.
+       (valid_image_p): Use FOR_EACH_TAIL_SAFE to avoid Emacs hanging
+       if the user creates a circular description of an image.
+       (xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type)
+       (gif_type, imagemagick_type, svg_type, gs_type):
+       Remove; now done by image_types.
+       (init_imagemagick_functions): Remove decl of nonexistent function.
+       (gs_clear_image): Remove; all uses replaced by image_clear_image.
+       (initialize_image_type): New function, which captures a lot
+       of the previously-scattered WINDOWSNT ifdefs.
+       (lookup_image_type): Use it.
+       (reset_image_types): Remove.  All uses removed.
+       (syms_of_image): Don’t worry about ignoring image_types for
+       pdumper, since it’s a constant now.
+
+2019-05-17  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/gnus-sum.el (gnus-tmp-thread): New var
+
+       The recent change to use lexical-binding introduced a bug because
+       gnus-summary-line-format-alist refers to variable `thread` which is now
+       lexical and hence not available there any more.  Replace it with
+       a dynamically scoped var `gnus-tmp-thread` as was already done with
+       all other vars.
+
+       (gnus-summary-line-format-alist): Use it instead of `thread`.
+       (gnus-summary-prepare-threads): Bind it around call to (eval
+       gnus-summary-line-format-spec).
+
+2019-05-17  Lars Ingebrigtsen  <address@hidden>
+
+       Move Info-edit-* commands from info.el to obsolete/info-edit.el
+
+       * lisp/info.el: Move Info-edit-* commands to obsolete/info-edit.el.
+
+       * lisp/obsolete/info-edit.el: New file.
+
+2019-05-17  Lars Ingebrigtsen  <address@hidden>
+
+       Use cl-assert instead of assert in ps-print.el
+
+       * lisp/ps-print.el (ps-begin-job): Use cl-assert instead of assert
+       and require cl-lib.
+
+2019-05-17  Lars Ingebrigtsen  <address@hidden>
+
+       (ps-begin-job): Remove two unneeded string-as-unibyte calls
+
+       * lisp/ps-print.el (ps-begin-job): Remove two unneeded
+       string-as-unibyte calls to avoid byte compilation warnings.
+
+2019-05-17  Eli Zaretskii  <address@hidden>
+
+       Fix a recent commit in select.el
+
+       * lisp/select.el (gui-get-selection): Revert a recent
+       incorrect change.  Add a comment explaining what we are trying
+       to do with C_STRING and why.
+       (xselect--encode-string): Add a comment explaining what we are
+       trying to do with C_STRING and why.
+
+2019-05-16  Lars Ingebrigtsen  <address@hidden>
+
+       Remove obsolete example functions from imenu.el
+
+       * lisp/imenu.el (imenu-example--create-c-index)
+       (imenu-example--function-name-regexp-c)
+       (imenu-example--create-lisp-index)
+       (imenu-example--lisp-extract-index-name): Remove functions (and
+       internal variables used by those functions) declared obsolete in
+       Emacs 23.2.  The functions gave compilation warnings.
+
+2019-05-16  Lars Ingebrigtsen  <address@hidden>
+
+       Remove unused internal function completion-pcm--optimize-pattern
+
+       * lisp/minibuffer.el (completion-pcm--optimize-pattern): Remove
+       unused internal function (that signalled a compilation warning).
+
+2019-05-16  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus: Remove assumptions about mail-header being a vector
+
+       Use `mail-header-p` and `make-full-mail-header` instead of `vectorp` and
+       `vector`, respectively.
+
+       * lisp/gnus/message.el (message-cite-original-1, message-reply)
+       (message-followup):
+       * lisp/gnus/gnus-sum.el (gnus-get-newsgroup-headers):
+       Use make-full-mail-header instead of `vector`.
+       (gnus--dummy-mail-header): New const, using make-full-mail-header.
+       (gnus-update-summary-mark-positions): Use it instead of
+       an immediate vector.
+       (gnus-set-mode-line, gnus-summary-article-pseudo-p)
+       (gnus-summary-article-subject, gnus-summary-insert-subject)
+       (gnus-summary-find-subject, gnus-summary-goto-subject)
+       (gnus-summary-limit-to-age, gnus-summary-find-matching)
+       (gnus-summary-mark-article-as-unread, gnus-summary-mark-article)
+       (gnus-summary-save-article):
+       * lisp/gnus/gnus.el (gnus-news-group-p): Use mail-header-p instead
+       of vectorp.
+
+2019-05-16  Lars Ingebrigtsen  <address@hidden>
+
+       Declare fileloop-continue in dired-aux to avoid warning
+
+       * lisp/dired-aux.el (fileloop-continue): Declare to avoid
+       compilation warning.  `fileloop-initialize-search' (used before
+       -continue) will load fileloop.el.
+
+2019-05-16  Lars Ingebrigtsen  <address@hidden>
+
+       Avoind string-as-multibyte in ps-output-string-prim
+
+       * lisp/ps-print.el (ps-output-string-prim): Avoid
+       `string-as-multibyte', and encode as utf-8 instead if multibyte.
+
+2019-05-16  Lars Ingebrigtsen  <address@hidden>
+
+       (gui-get-selection): Avoid using `string-to-multibyte'
+
+       * lisp/select.el (gui-get-selection): Avoid using
+       `string-to-multibyte' -- instead encode as `eight-bit' if the
+       string is unibyte.
+
+2019-05-16  Lars Ingebrigtsen  <address@hidden>
+
+       Declare two w32 functions to avoid byte compilation warnings
+
+       * lisp/w32-fns.el (w32-version, w32-read-registry): Declare these
+       functions to avoid byte compilation warnings.  The functions
+       should be loaded when `w32--os-description' is called, as far as I
+       can tell.
+
+2019-05-16  Lars Ingebrigtsen  <address@hidden>
+
+       Remove obsolete epg functions
+
+       * lisp/epg.el (epg-start-sign-keys, epg-sign-keys): Remove
+       functions declared obsolete since Emacs 23.1.
+
+2019-05-16  Lars Ingebrigtsen  <address@hidden>
+
+       Declare rectangle functions in mouse.el to avoid warnings
+
+       * lisp/mouse.el (rectangle-dimensions)
+       (rectangle-position-as-coordinates, rectangle-intersect-p):
+       Declare these functions from rect.el to avoid compilation warnings.
+
+2019-05-16  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Fix docstring of accessors.
+
+2019-05-16  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/nnheader.el (mail-header-*): Define via cl-defstruct
+
+       This also has the side effect that the accessors are now defined as 
proper
+       functions rather than as macros, so they can be passed to `mapcar` etc..
+
+       * lisp/gnus/nnheader.el (mail-header-number, mail-header-subject)
+       (mail-header-from, mail-header-date, mail-header-id)
+       (mail-header-references, mail-header-chars, mail-header-lines)
+       (mail-header-xref, mail-header-extra): Define via cl-defstruct.
+       (mail-header-set-number, mail-header-set-subject)
+       (mail-header-set-from, mail-header-set-date, mail-header-set-id)
+       (mail-header-set-message-id, mail-header-set-references)
+       (mail-header-set-chars, mail-header-set-lines, mail-header-set-xref)
+       (mail-header-set-extra): Remove, use `setf` instead.  All callers 
adjusted.
+
+       * lisp/gnus/gnus-sum.el (gnus-select-newsgroup)
+       (gnus-summary-pop-limit, gnus-summary-limit-mark-excluded-as-read)
+       (gnus-summary-find-matching, gnus-find-matching-articles):
+       * lisp/gnus/gnus-kill.el (gnus-apply-kill-file-internal, gnus-execute):
+       * lisp/gnus/gnus-score.el (gnus-score-adaptive):
+       Eta-reduce, now that mail-header-FIELD are functions.
+
+2019-05-16  Katsumi Yamaoka  <address@hidden>
+
+       Fix ffap behavior in the Gnus group buffer (bug#35693)
+
+       * lisp/ffap.el (ffap-file-exists-string, ffap-file-at-point):
+       Don't recognize "" as a path or a file name (bug#35693).
+
+2019-05-16  Stefan Monnier  <address@hidden>
+
+       * lisp/international/mule.el (set-buffer-file-coding-system): Don't 
burp on iso-2022-7bit
+
+2019-05-16  Paul Pogonyshev  <address@hidden>
+
+       Make `package' not "uninhibit" messages (Bug#34037)
+
+       * lisp/emacs-lisp/package.el: Don't let-bind inhibit-message to a
+       different value if it was non-nil.
+
+2019-05-16  Basil L. Contovounesios  <address@hidden>
+
+       Fix gnus-summary-expand-window placement of point
+
+       * lisp/gnus/gnus-win.el (gnus-configure-frame): Replace
+       switch-to-buffer with pop-to-buffer-same-window to avoid messing
+       with point. (bug#35613)
+
+2019-05-16  Basil L. Contovounesios  <address@hidden>
+
+       Add docstring to project--read-file-cpd-relative
+
+       For discussion, see thread starting at:
+       https://lists.gnu.org/archive/html/emacs-devel/2019-05/msg00460.html
+       * lisp/progmodes/project.el (project--read-file-cpd-relative):
+       Describe arglist as promised by user option
+       project-read-file-name-function.
+
+2019-05-16  Stefan Monnier  <address@hidden>
+
+       * test/lisp/emacs-lisp/cl-macs-tests.el 
(cl-macs-test--symbol-macrolet): New test
+
+2019-05-16  Eric Abrahamsen  <address@hidden>
+
+       Fix stray call to make-vector
+
+       * lisp/gnus/gnus-agent.el (gnus-agent-fetch-group-1): This is meant to
+         be a hash table.
+
+2019-05-16  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-macs.el (cl--sm-macroexpand) <setq>: Rewrite
+
+       The previous code had 2 problems:
+       - It converted `setq` to `setf` in unrelated cases such as
+         (cl-symbol-macrolet ((x 1)) (setq (car foo) bar))
+       - It macroexpanded places before `setf` had a chance to see if they
+         have a gv-expander.
+
+2019-05-16  Paul Eggert  <address@hidden>
+
+       Distribute test cases in tarballs by default
+
+       * INSTALL, INSTALL.REPO, admin/make-tarball.txt:
+       Mention ‘make check’.
+       * configure.ac: Update comment.
+       * etc/NEWS: Say that tarballs have a test directory.
+       * make-dist (with_tests): Default to "yes".
+       Add an option --no-tests to make it "no".
+
+2019-05-16  Lars Ingebrigtsen  <address@hidden>
+
+       Make shr-rescale-image respect get-buffer-window again
+
+       * lisp/net/shr.el (shr-rescale-image): Partially revert previous
+       change -- ressurrect the check for `get-buffer-window'.
+
+2019-05-16  Ivan Shmakov  <address@hidden>
+
+       Improve user convenience of the rcirc debug buffer
+
+       * lisp/net/rcirc.el (rcirc-debug): Ignore rcirc-debug-buffer read-only
+       status.  Restore point after insertion unless it was at the end.
+       Ensure a newline before each [lead].  Replace %Y-%m-%d with the
+       equivalent %F in format-time-string; remove useless concat.  (Bug#32470)
+
+2019-05-16  Noam Postavsky  <address@hidden>
+
+       Accept NO-PROPERTIES in thing-at-point aliases (Bug#35491)
+
+       * lisp/thingatpt.el (word-at-point, sentence-at-point): Accept and
+       pass NO-PROPERTIES to thing-at-point.
+       * etc/NEWS: Announce change.
+
+2019-05-15  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-yesno-prompt-regexp): Extend.
+
+2019-05-15  Stefan Monnier  <address@hidden>
+
+       * lisp/textmodes/sgml-mode.el (sgml-syntax-propertize-rules): Fix typo
+
+       * test/lisp/textmodes/sgml-mode-tests.el (sgml-tests--quotes-syntax):
+       New corresponding test.
+
+2019-05-15  Noam Postavsky  <address@hidden>
+
+       Fix merge of sgml-syntax-propertize-rules
+
+       During the merge of emacs-26, the sgml-syntax-propertize-rules part of
+       2019-01-17 "* lisp/textmodes/sgml-mode.el: Try and fix bug#33887." got
+       lost in the conflict against 2019-05-09 "Recognize single quote
+       attribute values in nxml and sgml (Bug#35381)".
+       * lisp/textmodes/sgml-mode.el (sgml-syntax-propertize-rules): Reapply
+       the 2019-01-17 change to speed up sgml-syntax-propertize-rules, taking
+       into account the 2019-05-09 which means we have to handle single
+       quotes as well.
+
+2019-05-15  Anders Lindgren  <address@hidden>
+
+       Fix diff-mode face problem when used in terminals (Bug#35695)
+
+       In a terminal supporting 256 colors, both diff-added and diff-removed
+       was mapped to the same greyish color.
+
+       * lisp/vc/diff-mode.el: Modify the colors of diff-removed,
+         diff-added, diff-refine-removed, and diff-refine-added when
+         used in a 256 color environment.
+
+2019-05-15  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/gnus-sum.el: Use lexical-binding
+
+       (gnus-summary-make-menu-bar, gnus-summary-display-make-predicate)
+       (gnus-summary-refer-thread, gnus-summary-find-matching)
+       (gnus-summary-edit-article, gnus-summary-sort):
+       Replace backquoted lambda with closure.
+       (gnus-summary-article-header): Use define-inline rather than defmacro,
+       so it's also a function.
+       (gnus-save-hidden-threads, gnus-summary-iterate, gnus-with-article):
+       Use `declare`.
+       (gnus-thread-sort-by-random): Simplify.
+       (gnus-summary-display-article, gnus-summary-limit-to-address):
+       Hoist common code outside of `if`.
+
+2019-05-15  Paul Eggert  <address@hidden>
+
+       Tune reading of radix integers
+
+       This improves the performance of (read "%xFF") by about 25%
+       on my platform.
+       * src/lread.c: Include <vla.h>, so that we can better document
+       buffer sizes of arguments.
+       (invalid_radix_integer_format, stackbufsize): New constants.
+       (free_contents): Remove.  All uses removed.
+       (invalid_radix_integer): New function.
+       (read_integer): New arg STACKBUF.  Assume radix is in range.
+       All uses changed.  Use STACKBUF to avoid calling malloc in the
+       usual case.  Use grow_read_buffer to simplify.
+       (read1): Tune.  Improve quality of diagnostic when
+       MOST_POSITIVE_FIXNUM < radix <= EMACS_INT_MAX.
+
+2019-05-15  Stefan Monnier  <address@hidden>
+
+       * lisp/mail/footnote.el (footnote-prefix): Docstring typo.
+
+2019-05-15  Mattias Engdegård  <address@hidden>
+
+       Add standard unmatchable regexp
+
+       Add `regexp-unmatchable' as a standard unmatchable regexp, defined as
+       "\\`a\\`".  Use it where such a regexp is needed, replacing slower
+       expressions in several places.
+       From a suggestion by Philippe Schnoebelen.
+
+       * lisp/subr.el (regexp-unmatchable): New defconst.
+       * etc/NEWS (Lisp Changes): Mention `regexp-unmatchable'.
+       * doc/lispref/searching.texi (Regexp Functions): Document it.
+       * lisp/emacs-lisp/regexp-opt.el (regexp-opt)
+       * lisp/progmodes/cc-defs.el (cc-conditional-require-after-load)
+       (c-make-keywords-re)
+       * lisp/progmodes/cc-engine.el (c-beginning-of-statement-1)
+       (c-forward-<>-arglist-recur, c-forward-decl-or-cast-1)
+       (c-looking-at-decl-block)
+       * lisp/progmodes/cc-fonts.el (c-doc-line-join-re)
+       (c-doc-bright-comment-start-re)
+       * lisp/progmodes/cc-langs.el (c-populate-syntax-table)
+       (c-assignment-op-regexp)
+       (c-block-comment-ender-regexp, c-font-lock-comment-end-skip)
+       (c-block-comment-start-regexp, c-line-comment-start-regexp)
+       (c-doc-comment-start-regexp, c-decl-start-colon-kwd-re)
+       (c-type-decl-prefix-key, c-type-decl-operator-prefix-key)
+       (c-pre-id-bracelist-key, c-enum-clause-introduction-re)
+       (c-nonlabel-token-2-key)
+       * lisp/progmodes/cc-mode.el (c-doc-fl-decl-start, c-doc-fl-decl-end)
+       * lisp/progmodes/cc-vars.el (c-noise-macro-with-parens-name-re)
+       (c-noise-macro-name-re, c-make-noise-macro-regexps)
+       * lisp/progmodes/octave.el (octave-help-mode)
+       * lisp/vc/vc-bzr.el (vc-bzr-log-view-mode, 
vc-bzr-revision-completion-table)
+       * lisp/vc/vc-git.el (vc-git-log-view-mode)
+       * lisp/vc/vc-hg.el (vc-hg-log-view-mode)
+       * lisp/vc/vc-mtn.el (vc-mtn-log-view-mode):
+       Use `regexp-unmatchable'.
+       * lisp/textmodes/ispell.el (ispell-non-empty-string):
+       Use `regexp-unmatchable', fixing a broken never-match regexp.
+
+2019-05-15  John Shahid  <address@hidden>
+
+       Avoid infinitly looping in tramp-interrupt-process (bug#35506)
+
+       * lisp/net/tramp.el (tramp-interrupt-process): Remove with-timeout.
+       Instead pass a timeout to tramp-accept-process-output.
+       tramp-accept-process-output stops timers from running which makes the
+       with-timeout ineffective.
+
+2019-05-15  Alan Mackenzie  <address@hidden>
+
+       CC Mode: fix indentation in switch statement after "case a(1):".
+
+       * lisp/progmodes/cc-engine.el (c-beginning-of-statement-1): Enhance the
+       analysis of case labels to handle parenthesised expressions (e.g. 
macros).
+
+       * lisp/progmodes/cc-langs.el (c-nonlabel-nonparen-token-key): New lang 
const
+       and lang var.
+
+2019-05-15  Lars Ingebrigtsen  <address@hidden>
+
+       Describe error data in url-retrieve better
+
+       * lisp/url/url.el (url-retrieve): Describe the error data more in
+       depth (bug#25735).
+
+2019-05-14  Lars Ingebrigtsen  <address@hidden>
+
+       Don't have url-basic-auth bug out when called with an URL string
+
+       * lisp/url/url-auth.el (url-basic-auth): Pass the parsed URL
+       object to the prompting function instead of the parameter that's
+       possibly a string (bug#26708).  Passing url-basic-auth with a
+       string parameter would fail if passed a non-parsed URL.
+
+2019-05-14  Lars Ingebrigtsen  <address@hidden>
+
+       Fix obscure HTTP chunked parsing problem
+
+       * lisp/url/url-http.el
+       (url-http-chunked-encoding-after-change-function): Ensure that we
+       parse the entire initial chunked header as the length (bug#35658).
+
+2019-05-14  Lars Ingebrigtsen  <address@hidden>
+
+       Indent url-http-chunked-encoding-after-change-function
+
+2019-05-14  Thomas Fitzsimmons  <address@hidden>
+
+       Fix url-auth prompts when realm is empty
+
+       * lisp/url/url-auth.el (url-get-authentication): When realm is
+       empty, use the entire URL in the prompt (bug#35688).
+
+2019-05-14  Lars Ingebrigtsen  <address@hidden>
+
+       Make image scaling work without imagemagick support in eww
+
+       * lisp/net/shr.el (shr-rescale-image): Emacs has native image
+       scaling now, so images can be rescaled without imagemagick
+       support.
+
+2019-05-14  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       02bee78 Let dir locals for more specific modes override those from less
+       b1235f9 Improve documentation of Hexl mode
+       32d1813 Fix description of (move-to-column <n> t) when column <n> is ...
+       0397b7c ; Fix smtpmail-stream-type docstring
+       7dab3ee Recognize single quote attribute values in nxml and sgml (Bug...
+       e4cde42 Disable extra display of &#10; in nxml-mode (Bug#32897)
+       ca14dd1 Fix nxml-get-inside (Bug#32003)
+       e7ab351 Fix positioning client buffer as instructed by emacsclient
+
+       # Conflicts:
+       #       lisp/files.el
+       #       lisp/textmodes/sgml-mode.el
+
+2019-05-14  Juri Linkov  <address@hidden>
+
+       * lisp/progmodes/project.el (project-read-file-name-function): Fix type.
+
+2019-05-14  Stefan Monnier  <address@hidden>
+
+       * lisp/savehist.el: Use lexical-binding
+
+       Remove redundant :group args.
+       (savehist-no-conversion): Remove constant.
+       (savehist-save): Use savehist-coding-system instead since it's no 
slower.
+
+2019-05-13  Paul Eggert  <address@hidden>
+
+       Default to disabling ImageMagick (Bug#33587)
+
+       ImageMagick has continuing stability and security problems, suggesting
+       that 'configure' should disable it by default.  See Glenn Morris's notes
+       at: https://lists.gnu.org/r/emacs-devel/2018-12/msg00036.html
+       * INSTALL, etc/NEWS, nt/INSTALL.W64: Mention this.
+       * configure.ac (imagemagick): Default to off.
+
+2019-05-13  Dmitry Gutov  <address@hidden>
+
+       Allow customizing the display of project file names when reading
+
+       To hopefully resolve a long-running discussion
+       (https://lists.gnu.org/archive/html/emacs-devel/2019-05/msg00162.html).
+
+       * lisp/progmodes/project.el (project-read-file-name-function):
+       New variable.
+       (project--read-file-absolute, project--read-file-cpd-relative):
+       New functions, possible values for the above.
+       (project-find-file-in): Use the introduced variable.
+       (project--completing-read-strict): Retain just the logic that fits
+       the name.
+
+2019-05-13  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Avoid artifacts in ftx and ftcr font backend drivers
+
+       * src/ftcrfont.c (ftcrfont_open):
+       * src/ftfont.c (ftfont_open2): Make font->height equal to sum of 
font->ascent
+       and font->descent.  Respect :minspace property.
+       (ftfont_open2): Remove redundant assignment.
+       (syms_of_ftfont) <QCminspace>: New DEFSYM.
+
+2019-05-13  Basil L. Contovounesios  <address@hidden>
+
+       Fix mail-header-separator font lock in message.el
+
+       * lisp/gnus/message.el (message-font-lock-keywords): Dynamically
+       font lock mail-header-separator, in case it changes. (bug#34898)
+
+2019-05-13  Kévin Le Gouguec  <address@hidden>
+
+       Extract common code for adding text properties
+
+       * lisp/font-lock.el (font-lock--add-text-property):
+       New function.
+       (font-lock-prepend-text-property)
+       (font-lock-append-text-property): Use it.
+
+       (Bug#35476)
+
+2019-05-13  Kévin Le Gouguec  <address@hidden>
+
+       Stop splicing anonymous faces in font-lock-append-text-property
+
+       This is the same fix as 2019-04-29 "Refrain from splicing anonymous
+       faces in text properties", which was only applied to
+       font-lock-prepend-text-property.
+
+       * lisp/font-lock.el (font-lock-append-text-property): Distinguish list
+       of faces from property list.
+       * test/lisp/font-lock-tests.el: New test suite.
+
+       (Bug#35476)
+
+2019-05-13  Basil L. Contovounesios  <address@hidden>
+
+       Do not hard-code message-mode keys in docstring
+
+       * lisp/gnus/message.el (message-mode): Replace hard-coded bindings
+       in docstring with summary of message-mode-map. (bug#31388)
+
+2019-05-13  Basil L. Contovounesios  <address@hidden>
+
+       Fix last change to message-signature :type
+
+       * lisp/gnus/message.el (message-signature): List more specific :type
+       alternatives before more general ones, as per "(elisp) Composite
+       Types".
+
+2019-05-13  Robert Pluim  <address@hidden>
+
+       Document nil value of message-signature and mail-signature
+
+       * lisp/gnus/message.el (message-signature): Allow nil as a
+       customizable value, and describe its effect.
+       * lisp/mail/sendmail.el (mail-signature): Describe effect of nil
+       value (bug#32680).
+
+2019-05-13  Juri Linkov  <address@hidden>
+
+       * lisp/vc/log-view.el (log-view-diff-common): Use the previous revision
+
+       only when the end of the region is on a line after the last entry.
+       (Bug#35624)
+
+2019-05-13  Alexandre Garreau  <address@hidden>
+
+       [PATCH 1/1] Adds variable 'eww-accept-content-types'
+
+       * lisp/gnus/message.el (message-simplify-subject): Decouple
+       simplification from "Re:" adding (bug#33200).
+       (message-reply): Add the "Re:"'s here.
+       (message-followup): And here.
+
+2019-05-13  Lars Ingebrigtsen  <address@hidden>
+
+       Make mml respect the "recipient-filename" parameter
+
+       * lisp/gnus/mml.el (mml-insert-mime-headers): Implement the
+       already-documented "recipient-filename" parameter (bug#34654).
+
+2019-05-13  Lars Ingebrigtsen  <address@hidden>
+
+       Make eww understand #fragment URLs at point interactively
+
+       * lisp/net/eww.el (eww-suggest-uris): Use
+       thing-at-point-url-at-point instead of url-get-url-at-point
+       (bug#31927) because it's much better at guessing what the URL
+       actually is (especially with #fragments).
+
+2019-05-13  Paul Eggert  <address@hidden>
+
+       Fix broken build on m68k
+
+       The GCC + valgrind fix caused the m68k build to fail (Bug#35711).
+       Simplify string allocation a bit to make similar problems less
+       likely in the future.
+       * src/alloc.c (sdata, SDATA_NBYTES, SDATA_DATA) [GC_CHECK_STRING_BYTES]:
+       Use the same implementation as with !GC_CHECK_STRING_BYTES,
+       as the special case is no longer needed.
+       (SDATA_ALIGN): New constant.
+       (SDATA_SIZE): Remove this macro, replacing with ...
+       (sdata_size): ... this new function.  All uses changed.
+       Properly account for sizes and alignments even in the m68k case,
+       and even if GC_CHECK_STRING_BYTES is not defined.
+
+2019-05-13  Lars Ingebrigtsen  <address@hidden>
+
+       Add a comment about the previous shr change
+
+2019-05-13  Lars Ingebrigtsen  <address@hidden>
+
+       Fix problems in shr when indenting tables
+
+       * lisp/net/shr.el (shr-mark-fill, shr-insert-table): Fix problems
+       when block-quoting/<li>-ing a table -- the indentation/prefix was
+       inserted twice (bug#32277).
+
+2019-05-13  Federico Tedin  <address@hidden>  (tiny change)
+
+       Use a more specific Accepts header in eww
+
+       * lisp/net/eww.el (eww-accept-content-types): New variable.
+       (eww): Use it.
+       (eww-reload): Use it. (bug#33002).
+
+2019-05-12  Xu Chunyang  <address@hidden>
+
+       (eww-follow-link): Record the location properly when following #links
+
+       * lisp/net/eww.el (eww-follow-link): Record the location properly
+       when following #links (bug#35445).
+
+2019-05-12  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/package.el: Add `all` to package-check-signature
+
+       (package-check-signature): Add `all` option.
+       (package--check-signature-content): Adjust accordingly.
+
+2019-05-12  Noam Postavsky  <address@hidden>
+
+       Improve printing for named keyboard macros (Bug#35486)
+
+       * lisp/macros.el (macros--insert-vector-macro): New function,
+       extracted from insert-kbd-macro.
+       (insert-kbd-macro): Use it and kmacro-extract-lambda to produce nicer
+       expressions for macros produced by kmacro-lambda-form.
+
+2019-05-12  Noam Postavsky  <address@hidden>
+
+       Use remapping in ffap-bindings (Bug#35577)
+
+       * lisp/ffap.el (ffap-bindings): Bind to the [remap COMMAND] instead of
+       hardcoding the default keybindings.  This better adapts better if
+       non-default are used.  And lets the original keybindings be
+       remembered, so that, e.g., \[find-file] in docstrings will still be
+       substituted with C-x C-f (even though that binding has been remapped
+       to find-file-at-point.
+
+2019-05-12  Basil L. Contovounesios  <address@hidden>
+
+       Fix Gnus summary widget navigation across frames
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-widget-forward)
+       (gnus-summary-widget-backward): Signal more informative error if
+       article window is not found.  Consider other frames displaying
+       article buffer, and raise its frame before navigating its
+       widgets. (bug#35565)
+       * lisp/gnus/gnus-win.el (gnus-get-buffer-window): Simplify and add
+       docstring.
+
+2019-05-12  Basil L. Contovounesios  <address@hidden>
+
+       Make application/x-patch inlinable in mm-decode.el
+
+       * lisp/gnus/mm-decode.el (mm-inline-media-tests, mm-inlined-types):
+       Include application/x-patch as a synonym of text/x-patch and
+       text/x-diff. (bug#35236)
+
+2019-05-12  Basil L. Contovounesios  <address@hidden>
+
+       Fix some gnus-msg.el variables (bug#35239)
+
+       * lisp/gnus/gnus-msg.el (gnus-gcc-externalize-attachments):
+       Fix custom :type.
+       (gnus-debug-files, gnus-debug-exclude-variables): Mark variables
+       that have been unused since Emacs 24.1 as obsolete.
+       (gnus-check-before-posting): Remove unused variable.
+
+2019-05-11  Mauro Aranda  <address@hidden>
+
+       Use characters, not symbols for table-cell-bindings
+
+       * lisp/textmodes/table.el (table-cell-bindings): Add missing '?', to
+       avoid confusion between symbols and characters in bindings.  (Bug#35533)
+
+2019-05-11  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Document font backends for Cairo and/or HarfBuzz
+
+       * doc/lispref/frames.texi (Font and Color Parameters): Mention xfthb, 
ftcr,
+       and ftcrhb font backends.
+
+2019-05-11  YAMAMOTO Mitsuharu  <address@hidden>
+
+       * src/xfns.c (x_create_tip_frame): Register font drivers as in normal 
frames.
+
+2019-05-10  Mark Oteiza  <address@hidden>
+
+       Generate some repetitive WordStar code with macros
+
+       * lisp/obsolete/ws-mode.el (ws-set-marker-0, ws-set-marker-1):
+       (ws-set-marker-2, ws-set-marker-3, ws-set-marker-4, ws-set-marker-5):
+       (ws-set-marker-6, ws-set-marker-7, ws-set-marker-8, ws-set-marker-9):
+       (ws-find-marker-0, ws-find-marker-1, ws-find-marker-2, 
ws-find-marker-3):
+       (ws-find-marker-4, ws-find-marker-5, ws-find-marker-6, 
ws-find-marker-7):
+       (ws-find-marker-8, ws-find-marker-9): Remove.
+       (ws-set-marker, ws-find-marker): New macros.  Use them.
+
+2019-05-10  Alexander Gramiak  <address@hidden>
+
+       Convert Free_Pixmap macro into terminal hook
+
+       * src/termhooks.h (terminal) [HAVE_WINDOW_SYSTEM]: New terminal hook
+       free_pixmap.
+
+       * src/image.c: Replace Free_Pixmap with free_pixmap.
+
+       * src/msdos.h (FRAME_X_DISPLAY):
+       * src/nsgui.h (Display):
+       * src/nsterm.h (FRAME_NS_DISPLAY, FRAME_X_DISPLAY, FRAME_X_SCREEN)
+       (FRAME_X_VISUAL):
+       * src/w32term.h (FRAME_X_DISPLAY): Remove unused X-compatibility
+       macros and typedefs.
+
+       * src/nsterm.m:
+       * src/w32term.c:
+       * src/xterm.c: Implement and set free_pixmap hook.
+
+2019-05-10  Alexander Gramiak  <address@hidden>
+
+       Remove display member of glyph_string
+
+       This member has little value even on X, and it leaks internal backend
+       details to the glyph_string struct.
+
+       * src/dispextern.h (glyph_string): Remove X display member.
+
+       * src/xdisp.c (init_glyph_string): Remove initialization of display.
+
+       * src/xfont.c (xfont_draw):
+       * src/xterm.c: Use FRAME_X_DISPLAY (s->f) instead of display member.
+
+2019-05-10  Stefan Monnier  <address@hidden>
+
+       * lisp/help.el (help--read-key-sequence): Handle `switch-frame' events
+
+       If you do `C-h k ... mouse-1 in other frame` (at least if you have a 
focus
+       that follows the mouse), then additionally to the down-mouse-1 and 
mouse-1
+       events, a `switch-frame` event (and `select-window` event as well 
sometimes)
+       is generated.  When `read-key-sequence` is called with nil for
+       `can-return-switch-frame`, this event is not returned but kept for 
later,
+       which causes a subsequent `sit-for` to return nil immediately.
+       This interfered without our "wait for double-click" which in turn 
prevented
+       us from stopping after the mouse-1 click, getting stuck waiting for 
something
+       else instead.
+
+       (help--read-key-sequence): Pass a non-nil `can-return-switch-frame`, so 
the
+       subsequent `sit-for` returns more trustworthy information.
+
+2019-05-10  Michael Albinus  <address@hidden>
+
+       Handle subdomains in Tramp ad-hoc proxies
+
+       * lisp/net/tramp-sh.el (tramp-compute-multi-hops): Add proper
+       regexps to `tramp-default-proxies-alist'.
+
+2019-05-10  Noam Postavsky  <address@hidden>
+
+       Stop using message-default-charset (Bug#35370)
+
+       In 2016-02-14 "Remove compat code for older Emacsen",
+       message-default-charset was obsoleted, and a couple of uses were
+       removed, but others were left behind.
+       * lisp/gnus/message.el (message-send-mail)
+       (message-send-news, message-do-fcc)
+       (message-encode-message-body):
+       * lisp/gnus/mml.el (mml-to-mime): Stop using message-default-charset.
+
+2019-05-10  Alan Mackenzie  <address@hidden>
+
+       Optimize CC Mode a bit for repetitive insertion and replace-regexp
+
+       This is mainly by enhancing a parse-partial-sexp cache to retain 
recently
+       calculated values.  Also, there are several miscellaneous optimizations 
and
+       bug fixes.
+
+       * lisp/progmodes/cc-engine.el (c-state-semi-nonlit-near-cache): New 
buffer
+       local variable.
+       (c-state-semi-trim-near-cache, c-state-semi-get-near-cache-entry)
+       (c-state-semi-put-near-cache-entry, c-state-semi-trim-cache): New 
functions.
+       (c-state-semi-pp-to-literal, c-state-full-pp-to-literal): Use the new 
"near"
+       cache.
+       (c-parse-ps-state-below): Use the new function c-state-semi-trim-cache.
+       (c-before-change-check-<>-operators): Check simply for < or > in the
+       neighbourhood before doing more expensive processing.
+       (c-maybe-re-mark-raw-string): Give a backward search limit to an 
operation
+       which was needlessly lacking one.
+
+       * lisp/progmodes/cc-mode.el (c-doc-fl-decl-start, c-doc-fl-decl-end): 
Check a
+       certain regexp is valid before performing the (somewhat expensive) 
actions of
+       these functions.
+       (c-fl-decl-start): In the search for a C++ lambda capture list, replace 
(slow)
+       calculation of c-parse-state by a (less slow) c-go-up-list-backward.
+
+2019-05-10  Alan Mackenzie  <address@hidden>
+
+       Make uncomment-region remove obtrusive spaces before tabs.
+
+       These spaces were typically inserted earlier by comment-region.  This 
patch
+       makes these two complementary functions closer to inverses.
+
+       * lisp/newcomment.el (uncomment-region-default-1): Remove spaces before 
a tab
+       where the comment opener has just been removed.
+
+2019-05-09  Michael Heerdegen  <address@hidden>
+
+       Fix alist-get gv setter not returning VAL
+
+       This fixes Bug#35546.
+
+       * lisp/emacs-lisp/gv.el (alist-get): Make setter return the set value
+       to preserve 'setf' semantics.
+
+2019-05-09  Stefan Monnier  <address@hidden>
+
+       * lisp/mail/footnote.el: Avoid regexp-opt-charset, which is not 
autoloaded.
+
+       (footnote-hebrew-numeric-regex): Use rx-to-string instead.
+
+2019-05-09  Michael Albinus  <address@hidden>
+
+       Fix an error in tramp-vc-file-name-handler
+
+       * lisp/net/tramp.el (tramp-accept-process-output, tramp-send-string):
+       * lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
+       * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
+       (tramp-sh-handle-make-process):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
+       (tramp-smb-handle-file-acl, tramp-smb-handle-process-file)
+       (tramp-smb-handle-set-file-acl)
+       (tramp-smb-handle-start-file-process): Do not suppress timers.
+
+       * lisp/net/tramp-sh.el (tramp-vc-file-name-handler): Check, that
+       `tramp-file-name-for-operation' returns a proper Tramp file.
+
+2019-05-09  Michael Albinus  <address@hidden>
+
+       * test/lisp/net/tramp-tests.el (cl-lib): Require instead of cl-seq.
+
+2019-05-08  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/syntax.el (syntax-propertize): `ignore` is like nil
+
+       (syntax-ppss-after-change-function): Mark it as obsolete.
+       * lisp/font-lock.el (font-lock-apply-syntactic-highlight):
+       Use syntax-ppss-flush-cache instead.
+
+2019-05-08  Paul Eggert  <address@hidden>
+
+       Port LIBRSVG_CHECK_VERSION fix to picky cpp
+
+       * src/image.c (LIBRSVG_CHECK_VERSION): Define to yield false
+       if it isn’t already defined.
+       (svg_load_image): Port to C preprocessors that check the
+       syntax of the entire preprocessing expression before
+       evaluating any of it.
+
+2019-05-08  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       1c6484e (origin/emacs-26) Fix incorrect cloning of eieio-instance-inh...
+       37436fe Fix cloning of eieio-named objects (Bug#22840)
+       fb65a36 Fix ibuffer-unmark-backward synopsis (bug#35572)
+       f77bd2b ; * src/lisp.h (DEFSYM): Fix inaccurate comment.
+       3b86e0b Clarify handling of long options (Bug#24949)
+       04340a8 Improve documentation of the daemon and emacsclient
+       3e29de2 * etc/NEWS.24: Belatedly announce delete-consecutive-dups.
+
+2019-05-08  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       ec02c73 Update process filter example (Bug#35044)
+
+2019-05-08  Eli Zaretskii  <address@hidden>
+
+       Fix compilation with old versions of librsvg
+
+       * src/image.c (svg_load_image): Use LIBRSVG_CHECK_VERSION only
+       if it's defined; it isn't in old versions of librsvg.
+
+2019-05-08  Michael Albinus  <address@hidden>
+
+       Skip tramp-test10-write-region-file-precious-flag for Emacs < 27
+
+       * test/lisp/net/tramp-tests.el
+       (tramp-test10-write-region-file-precious-flag): Skip for Emacs < 27.
+
+2019-05-08  Jonathan Tomer  <address@hidden>
+
+       Don't rewrite buffer contents after saving by rename (Bug#35497)
+
+       * lisp/files.el (basic-save-buffer-2): Don't rewrite file contents
+       after saving-by-renaming.  (Bug#35497)
+
+       * test/lisp/files-tests.el (files-tests-dont-rewrite-precious-files):
+       * test/lisp/net/tramp-tests.el
+       (tramp-test10-write-region-file-precious-flag): Regression tests
+       for this change.
+
+2019-05-07  Eli Zaretskii  <address@hidden>
+
+       Add an assertion to xdisp.c
+
+       * src/xdisp.c (display_mode_element): Add an assertion where
+       we assume that 'string' returned by decode_mode_spec is always
+       either a Lisp string or nil.
+
+2019-05-07  Juri Linkov  <address@hidden>
+
+       * lisp/progmodes/flymake.el: Obsolete variable flymake-start-on-newline
+
+       (flymake-start-syntax-check-on-newline): Mark it obsolete.
+       (flymake-after-change-function): Remove obsolete variable
+       flymake-start-syntax-check-on-newline (temporarily renamed to
+       flymake-start-on-newline).  (Bug#34294)
+
+       * doc/misc/flymake.texi: Remove obsolete variable.
+
+2019-05-07  Paul Eggert  <address@hidden>
+
+       Pacify GCC 9.1
+
+       * src/intervals.c (set_intervals_multibyte_1): Omit unused temps.
+       * src/xdisp.c (display_mode_element): Use !NILP instead of
+       STRINGP.  This convinces GCC we’re not dereferencing a
+       possibly-null pointer, and should be a bit faster anyway.
+
+2019-05-07  John Shahid  <address@hidden>
+
+       Fix setting and resetting of scroll-with-delete
+
+       The start and end lines of the scroll region must to be in the range
+       [0,term-height).  There are few placees that incorrectly set the end
+       line of the scroll region to term-height which is outside the valid
+       range.  Combined with another off-by-one error in
+       term-set-scroll-region's clamping logic, this would cause
+       term-scroll-with-delete to be unnecessarily turned on.
+
+       * lisp/term.el (term-scroll-start,term-scroll-end): Use defvar-local
+       to define the variables and document the valid range of values that
+       the variables can take.
+       (term--last-line): New function to calculate the 0-based index of the
+       last line.
+       (term--reset-scroll-region): New function to reset the scroll region
+       to the full height of the terminal.
+       (term-mode,term-reset-size,term-reset-terminal): Call
+       term--reset-scroll-region to reset the scroll region.
+       (term-set-scroll-region): Fix the off-by-one error in the clamping
+       logic which allowed term-scroll-end to have values outside the valid
+       range [0,term-height).
+
+2019-05-07  Stefan Monnier  <address@hidden>
+
+       * src/marker.c (buf_bytepos_to_charpos): Re-add the CHAR_HEAD_P 
assertion
+
+       This assertion was removed in 1c349c62305d432abf0fa2b6e3f5d754fe4cab79
+       because the assumption was invalid during set_intervals_multibyte_1.
+       So we change set_intervals_multibyte_1 to solve the problem in the same
+       way as in the rest of Fset_buffer_multibyte, which actually simplifies
+       the code.
+
+       * src/buffer.c (advance_to_char_boundary): Not static any more.
+       * src/buffer.h (advance_to_char_boundary): Add prototype.
+       * src/intervals.c (set_intervals_multibyte_1): Use it.
+
+2019-05-07  Glenn Morris  <address@hidden>
+
+       * doc/emacs/text.texi (Fill Commands): Use pxref in parentheses.
+
+       * doc/emacs/files.texi (Auto Revert): Fix makeinfo-4.13 compilation.
+
+2019-05-07  Basil L. Contovounesios  <address@hidden>
+
+       Clarify what constitutes an event (bug#35238)
+
+       * doc/lispref/commands.texi (Input Events): Specify that events are
+       non-nil and remove vestiges of bug#10190.
+       * doc/lispref/os.texi (Recording Input): Document optional argument
+       of recent-keys.
+       * lisp/subr.el (eventp): Check that the car of conses is non-nil.
+       * etc/NEWS: Announce it as an incompatible change.
+       * src/keyboard.c (Frecent_keys): Clarify that returned "events" are
+       not real events.
+
+2019-05-07  Eli Zaretskii  <address@hidden>
+
+       Fix 'load-average' on MS-Windows
+
+       * src/w32.c (getloadavg): Always return at least one element
+       of the array.
+
+2019-05-06  Wilson Snyder  <address@hidden>
+
+       Fix verilog-mode module backticks; whitespace from prev commits.
+
+       * lisp/progmodes/verilog-mode.el (verilog-read-inst-module-matcher):
+       Work when point is near backtick. Reported by Mattias Engdegard.
+
+2019-05-06  Juri Linkov  <address@hidden>
+
+       * lisp/emacs-lisp/lisp.el (insert-pair-alist): Turn defvar into 
defcustom.
+
+       Revert to old default value.  (Bug#35480)
+
+2019-05-06  Stefan Monnier  <address@hidden>
+
+       Make combine-after-change-calls work in the common case again
+
+       * src/insdel.c (signal_after_change): Allow combine_after_change_calls
+       even when syntax-ppss-flush-cache is on before-change-functions.
+
+2019-05-06  John Shahid  <address@hidden>
+
+       Prevent accidental edits in the ansi-term buffer from breaking resizing
+
+       * lisp/term.el (term-unwrap-line, term-emulate-terminal): Prevent the
+         `term-line-wrap` property of newlines from spreading accidentally
+         when inserting text next to it.
+
+2019-05-06  Alan Mackenzie  <address@hidden>
+
+       c-beginning-of-statement-1: Handle syntactic WS macros properly.
+
+       * lisp/progmodes/cc-engine.el (c-beginning-of-statement-1): The variable
+       before-sws-pos should record the position of a closing 
paren/brace/bracket
+       before moving backwards over a sexp.  When there is a syntactic WS macro
+       between the starting point and the closing p/b/b, setq before-sws-pos 
again
+       after moving backward over the macro.
+
+2019-05-06  Stefan Monnier  <address@hidden>
+
+       * lisp/custom.el: Avoid adding vars to load-history multiple times
+
+       Avoid the abuse of (eval `(defvar ...)) which tends to end up
+       adding redundant entries in `load-history`, as discussed in
+       https://lists.gnu.org/r/help-gnu-emacs/2019-03/msg00237.html
+
+       (custom-initialize-default): Don't add to load-history.
+       (custom-declare-variable): Use internal--define-uninitialized-variable
+       and only add the var to load-history once.  Do it before calling
+       `initialize` so the special-variable-p flag is set.
+
+       * src/eval.c (Finternal__define_uninitialized_variable): New function.
+       (Fdefvar, Fdefconst): Use it.
+       (syms_of_eval): Defsubr' it.
+
+2019-05-06  Michael Albinus  <address@hidden>
+
+       Use lambda in tramp-compat-* functions
+
+       * lisp/net/tramp-compat.el (tramp-handle-temporary-file-directory):
+       Declare.
+       (tramp-compat-temporary-file-directory-function): Use function symbol.
+       (tramp-compat-file-attribute-type)
+       (tramp-compat-file-attribute-link-number)
+       (tramp-compat-file-attribute-user-id)
+       (tramp-compat-file-attribute-group-id)
+       (tramp-compat-file-attribute-modification-time)
+       (tramp-compat-file-attribute-size)
+       (tramp-compat-file-attribute-modes)
+       (tramp-compat-directory-name-p, tramp-compat-file-local-name)
+       (tramp-compat-file-name-quoted-p, tramp-compat-file-name-quote)
+       (tramp-compat-file-name-unquote, tramp-compat-exec-path)
+       (tramp-compat-time-equal-p, tramp-compat-flatten-tree):
+       Make them lambdas.
+
+2019-05-05  Paul Eggert  <address@hidden>
+
+       Use simpler way to print function pointers
+
+       The module code can’t possibly work on weird platforms where
+       function pointers are wider than data pointers, so there’s no need
+       to bother with the stackoverflow-like approach that is intended
+       only for portability to such platforms.  Besides, the
+       stackoverflow-like approach does not work well on weird platforms
+       where CHAR_BIT is not a multiple of 4.
+       * src/lisp.h (pMx): New macro.
+       * src/print.c (data_from_funcptr) [HAVE_MODULES]: New function.
+       (print_vectorlike) [HAVE_MODULES]: Use it.
+       (print_object): Make sure buf is big enough for this.
+
+2019-05-05  Juri Linkov  <address@hidden>
+
+       * lisp/progmodes/flymake.el (flymake-start): Check for flymake-mode.
+
+       Check for the value of flymake-mode after hooks are finished (bug#34294)
+
+2019-05-05  Juri Linkov  <address@hidden>
+
+       * lisp/progmodes/flymake.el: Rename flymake-start-on-newline (bug#34294)
+
+       * lisp/progmodes/flymake.el (flymake-start-on-newline): Rename from
+       flymake-start-syntax-check-on-newline.
+       (flymake-start-syntax-check-on-newline): Define obsolete alias.
+       (flymake-no-changes-timeout): Add customization option nil.
+
+       * doc/misc/flymake.texi (Using Flymake): Rename variable.
+
+2019-05-05  Juri Linkov  <address@hidden>
+
+       * lisp/vc/ediff-ptch.el (ediff-fixup-patch-map): Remove Git prefixes.
+
+       Strip possible source/destination prefixes such as a/ and b/
+       from directory names.   (Bug#35420)
+       (ediff-fixup-patch-map, ediff-dispatch-file-patching-job)
+       (ediff-patch-file-internal): Replace string-match with string-match-p.
+
+2019-05-05  Juri Linkov  <address@hidden>
+
+       Use ngettext instead of dired-plural-s in Dired (bug#35287)
+
+       * lisp/dired-aux.el (dired-map-over-marks-check): Use ngettext
+       instead of dired-plural-s.
+       (dired-create-files): Also add colon after operation name.
+       (dired-compare-directories): Use ngettext and format-message.
+       (dired-do-compress-to): Use ngettext.
+
+       * lisp/dired.el (dired-internal-do-deletions)
+       (dired-clean-up-after-deletion): Use ngettext instead of dired-plural-s.
+
+2019-05-05  Juri Linkov  <address@hidden>
+
+       * lisp/emacs-lisp/lisp.el (insert-pair-alist): Precompute default value.
+
+       Use unicode-property-table-internal with 'paired-bracket to append
+       pairs of open/close characters to the default value (bug#35480).
+
+2019-05-05  Juri Linkov  <address@hidden>
+
+       Rename shell-command-width to async-shell-command-width (bug#35055)
+
+       * lisp/simple.el (async-shell-command-width):
+       * lisp/net/tramp.el (tramp-handle-shell-command):
+       * test/lisp/net/tramp-tests.el (tramp-test32-shell-command):
+       * doc/misc/tramp.texi (Remote processes): Rename this variable.
+
+       * doc/emacs/misc.texi (Single Shell): Add async-shell-command-width.
+
+2019-05-05  Paul Eggert  <address@hidden>
+
+       Port mod-test to --enable-gcc-warnings
+
+       * test/data/emacs-module/mod-test.c (NDEBUG): Undef, to prevent
+       GCC from complaining “error: unused variable ‘dummy’” and failing
+       to build the test, if --enable-gcc-warnings.
+
+2019-05-05  Eli Zaretskii  <address@hidden>
+
+       Fix compilation of mod-test.c on MinGW
+
+       * test/data/emacs-module/mod-test.c (Fmod_test_nanoseconds)
+       [__MINGW32__]: Use _Static_assert, not static_assert, as the
+       latter is not available in mingw.org's MinGW's assert.h.
+
+2019-05-05  Jimmy Aguilar Mena  <address@hidden>
+
+       Fixed fill-column-indicator face removing background.
+
+       *lisp/faces.el: Removed background in default fill-column-indicator
+        face.
+       *src/xdisp.c: fill-column-indicator face merged with saved face.
+
+2019-05-05  Jimmy Aguilar Mena  <address@hidden>
+
+       ;Corrected display-fill-column-indicator mode.
+
+       Small corrections in the documentation and code format to merge into 
master.
+
+2019-05-05  Jimmy Aguilar Mena  <address@hidden>
+
+       *src/xdisp.c: Fixed fill column indicator position in terminal mode.
+
+2019-05-05  Jimmy Aguilar Mena  <address@hidden>
+
+       display-fill-column-indicator interface corrections
+
+       *lisp/display-fill-column-indicator.el: Fixed character selection for
+       the indicator based in the current faces. Extended condition to set
+       display-fill-column-indicator-character in graphical displays.
+
+       *src/xdisp.c: Fixed some long lines.
+
+2019-05-05  Jimmy Aguilar Mena  <address@hidden>
+
+       ;Small changes in the documentation
+
+       *src/xdisp.c: Fixed docstring for display-fill-column-indicator-column
+       *etc/NEWS: Concordance fix in the display-fill-column-indicator part.
+       *doc/emacs/display.texi: Name mismatch fix.
+
+2019-05-05  Jimmy Aguilar Mena  <address@hidden>
+
+       Added correction in the texinfo manual.
+
+       *doc/emacs/text.texi: Added a reference to the
+       display-fill-column-indicator section.
+
+2019-05-05  Jimmy Aguilar Mena  <address@hidden>
+
+       Added fill-column-indicator manual documentation
+
+       *etc/NEWS: reduced the comments about fill-column-indicator
+       *doc/emacs/display.texi: Added documentation for fill-column-indicator
+        in this section in the manual
+
+2019-05-05  Jimmy Aguilar Mena  <address@hidden>
+
+       Fixed fill-column-indicator for continuation lines
+
+       *src/xdisp.c: Grouped the test conditions for
+       display-fill-column-indicator mode in a macro to simplify future
+       modifications.
+
+2019-05-05  Jimmy Aguilar Mena  <address@hidden>
+
+       Display-fill-column-indicator NEWS info.
+
+       *etc/NEWS: Added information about the fill-column-indicator mode.
+       *lisp/faces.el: Added a face for the display fill column indicator.
+
+2019-05-05  Jimmy Aguilar Mena  <address@hidden>
+
+       Start display-fill-column-indicator-mode.
+
+2019-05-05  Michael Albinus  <address@hidden>
+
+       Describe, how to adapt shell command output width in Tramp
+
+       * doc/misc/tramp.texi (Quick Start Guide, GVFS based methods):
+       Fix @cindex.
+       (Remote processes): Add some @vindex.  Describe shell command
+       output width.
+
+2019-05-05  Eli Zaretskii  <address@hidden>
+
+       Avoid compiler warning in print.c
+
+       * src/print.c (print_vectorlike): Don't use %hh, as that is
+       not portable enough; we don't yet assume a C99-compliant
+       library.
+
+2019-05-05  Eli Zaretskii  <address@hidden>
+
+       Avoid crashes in read_integer
+
+       * src/lread.c (read_integer): Always allocate a buffer, since
+       we need to use it even when the radix is invalid.  (Bug#35576)
+
+2019-05-05  Stefan Monnier  <address@hidden>
+
+       * lisp/files.el (hack-local-variables): Don't burp when files-x isn't 
loaded
+
+2019-05-05  Michael Albinus  <address@hidden>
+
+       Adapt tests for recent file-notification changes in Tramp
+
+       * lisp/net/tramp.el (tramp-file-notify-process-sentinel):
+       Pacify byte compiler.
+
+       * test/lisp/autorevert-tests.el
+       (auto-revert-test02-auto-revert-deleted-file):
+       * test/lisp/filenotify-tests.el (file-notify-test03-events)
+       (file-notify-test05-file-validity)
+       (file-notify-test09-watched-file-in-watched-dir): Adapt for remote
+       files.
+
+2019-05-05  Mattias Engdegård  <address@hidden>
+
+       Reorganise (auto-)revert nodes in the manual
+
+       Put all information about auto-revert into a section of its own, and
+       organise the text in a more logical way.  Previously it was mainly
+       described in the section about reverting (bug#35418).
+
+       * doc/emacs/files.texi (Files): Adjust menu.
+       (Reverting, Auto Revert, Autorevert): Add node `Auto Revert' and move
+       text on that topic from `Reverting', rearranged.  Turn the old
+       `Autorevert' node into a subsection under `Auto Revert'.
+       * doc/emacs/arevert-xtra.texi (Autorevert): Rename and turn into
+       subsubsection.
+       * doc/emacs/buffers.texi (Several Buffers): Adjust references.
+       * doc/emacs/emacs.texi (Top): Adjust menu.
+       * doc/emacs/emacs-xtra.texi (Top): Adjust menu.
+       (Non-File Buffers): Add node and section lines.
+
+2019-05-04  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix last changes in src/ftfont.c
+
+       * src/ftfont.c (ftfont_shape): Add missing argument direction.
+       (fthbfont_shape) [HAVE_HARFBUZZ]: Remove unused variable ftfont_info.
+       (fthbfont_driver) [HAVE_HARFBUZZ]: Remove redundant redeclaration.
+
+2019-05-04  Philipp Stephani  <address@hidden>
+
+       Avoid suppressing -Wcast-function-type warning.
+
+       GCC special-cases the type ‘void (*)(void)’ to not emit warnings when
+       cast, see
+       
https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wcast-function-type.
+       Make use of this to remove a warning suppression.
+
+       * src/dynlib.h: Use void (*)(void) as generic function pointer type.
+
+       * src/emacs-module.c: Remove warning suppression.
+
+2019-05-04  Philipp Stephani  <address@hidden>
+
+       Fix compilation of test module.
+
+       Because all other objects are compiled without -fPIC, we can’t use
+       them when linking the test module.  Instead, use the source files
+       directly.
+
+       * test/Makefile.in (HYBRID_MALLOC, LIBEGNU_ARCHIVE): Remove.
+       ($(test_module)): Use source files instead of objects and archives.
+
+2019-05-04  Philipp Stephani  <address@hidden>
+
+       Use extract_time in test module.
+
+       * test/data/emacs-module/mod-test.c (Fmod_test_sleep_until): Use
+       extract_time for time argument.
+       (signal_wrong_type_argument): Remove unused function.
+
+       * test/src/emacs-module-tests.el (mod-test-sleep-until): Remove
+       unnecessary ‘float-time’.
+
+2019-05-04  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Add new font backend drivers for text shaping by HarfBuzz
+
+       * etc/NEWS: Mention new font backend drivers xfthb and ftcrhb.
+
+       * src/font.h [HAVE_HARFBUZZ]: Include hb.h.
+       (struct font_driver) [HAVE_HARFBUZZ]: New members begin_hb_font and
+       end_hb_font.
+       (ftfont_match, ftfont_list): Remove externs.
+       (ftfont_match2, ftfont_list2):
+       (fthbfont_combining_capability, fthbfont_begin_hb_font)
+       (fthbfont_shape) [HAVE_HARFBUZZ]:
+       (xfthbfont_driver) [HAVE_XFT && HAVE_HARFBUZZ]:
+       (ftcrhbfont_driver) [USE_CAIRO && HAVE_HARFBUZZ]: Add externs.
+
+       * src/ftcrfont.c (ftcrfont_list): Use ftfont_list2.
+       (ftcrfont_match): Use ftfont_match2.
+       (ftcrfont_open): Get font type from entity.
+       (ftcrfont_open) [HAVE_HARFBUZZ]: Use HarfBuzz version of driver if 
specified.
+       (ftcrfont_shape) [HAVE_HARFBUZZ]: Make shaping fail.
+       (ftcrhbfont_list, ftcrhbfont_match)
+       (ftcrhbfont_begin_hb_font) [HAVE_HARFBUZZ]: New functions.
+       (ftcrhbfont_driver) [HAVE_HARFBUZZ]: New variable.
+       (syms_of_ftcrfont_for_pdumper) [HAVE_HARFBUZZ]: Initialize and register 
it.
+       (syms_of_ftcrfont) [HAVE_HARFBUZZ]: New symbol Qftcrhb.
+
+       * src/ftfont.c: Include math.h for lround.
+       (fthbfont_driver) [HAVE_HARFBUZZ]: New variable.
+       (ftfont_get_hb_font) [HAVE_HARFBUZZ]: Remove function.
+       (ftfont_list, ftfont_match): Make static.
+       (ftfont_list2, ftfont_match2): New functions.
+       (ftfont_open2) [HAVE_HARFBUZZ]: Use HarfBuzz version of driver if 
specified.
+       (ftfont_open): Get font type from entity.
+       (ftfont_shape, ftfont_combining_capability, ftfont_driver) 
[HAVE_HARFBUZZ]:
+       Move HarfBuzz specific part from here ...
+       (fthbfont_shape, fthbfont_combining_capability)
+       (fthbfont_driver) [HAVE_HARFBUZZ]: ... to here.   New functions and 
variable.
+       (fthbfont_begin_hb_font) [HAVE_HARFBUZZ]: New function.
+       (fthbfont_shape_by_hb) [HAVE_HARFBUZZ]: Rename from ftfont_shape_by_hb.
+       Don't take FreeType specific arguments ft_face and matrix.  Use 
begin_hb_font
+       and end_hb_font font driver functions.  Use text_extents font driver 
functions
+       instead of ftfont_glyph_metrics.
+       (syms_of_ftfont) [HAVE_HARFBUZZ]: New symbol Qfreetypehb.
+       (syms_of_ftfont_for_pdumper) [HAVE_HARFBUZZ]: Initialize and register
+       fthbfont_drivert.
+
+       * src/ftxfont.c (ftxfont_list): Use ftfont_list2.
+       (ftxfont_match): Use ftfont_match2.
+       (ftxfont_driver) [HAVE_HARFBUZZ]: Don't initialize shape member 
explicitly.
+
+       * src/xfns.c (Fx_create_frame) [USE_CAIRO && HAVE_HARFBUZZ]:
+       (Fx_create_frame) [HAVE_XFT && HAVE_HARFBUZZ]: Register HarfBuzz 
versions of
+       font drivers.
+
+       * src/xftfont.c (xftfont_list): Use ftfont_list2.
+       (xftfont_match): Use ftfont_match2.
+       (xftfont_open): Get font type from entity.
+       (xftfont_open) [HAVE_HARFBUZZ]: Use HarfBuzz version of driver if 
specified.
+       (xftfont_shape) [HAVE_HARFBUZZ]: Make shaping fail.
+       (xfthbfont_list, xfthbfont_match, xfthbfont_begin_hb_font)
+       (xfthbfont_end_hb_font) [HAVE_HARFBUZZ]: New functions.
+       (xftfont_driver) [HAVE_HARFBUZZ]: Don't initialize shape member 
explicitly.
+       (xfthbfont_driver) [HAVE_HARFBUZZ]: New variable.
+       (syms_of_xftfont_for_pdumper) [HAVE_HARFBUZZ]: Initialize and register 
it.
+       (syms_of_xftfont) [HAVE_HARFBUZZ]: New symbol Qxfthb.
+
+2019-05-04  Philipp Stephani  <address@hidden>
+
+       * test/Makefile.in (src/emacs-module-tests.elc): Require test module
+
+2019-05-04  Philipp Stephani  <address@hidden>
+
+       Refactoring: Factor out a function to set an mpz_t from a Lisp int.
+
+       * src/bignum.h (mpz_set_integer): New function.
+
+       * src/emacs-module.c (module_make_big_integer): Use it.
+
+2019-05-04  Philipp Stephani  <address@hidden>
+
+       Avoid undefined behavior when printing function pointers.
+
+       * src/print.c (print_vectorlike): Don’t pass a function pointer to
+       ‘snprintf’, as that is undefined behavior.  Instead, print the
+       individual bytes making up the function pointer.
+
+2019-05-04  Michael Albinus  <address@hidden>
+
+       Notify broken file notification from Tramp
+
+       * lisp/net/tramp.el (tramp-file-notify-process-sentinel): New defun.
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
+       Set process sentinel.
+
+2019-05-04  Paul Eggert  <address@hidden>
+
+       Port new fingerprinting scheme to clang + LTO
+
+       * lib-src/make-fingerprint.c (main): Don't consider multiple
+       instances of the fingerprint to be an error, as this can
+       happen with clang and -flto.  Instead, replace all instances
+       of the fingerprint.  There is a tiny chance that this will
+       silently corrupt the Emacs executable.
+
+       This patch suggests that we should go back to fingerprinting
+       the inputs to the linker instead of its output, as the new
+       fingerprinting scheme is unnecessarily complicated and this
+       complexity reduces reliability. The old scheme (i.e., before
+       commit 2019-05-14T23:31:24Z!address@hidden) was simpler
+       and more portable and good enough, and it's looking like it
+       would be less trouble in practice than the new scheme.
+
+2019-05-04  Noam Postavsky  <address@hidden>
+
+       Avoid slow overlay ansi coloring in eshell (Bug#29854)
+
+       * lisp/ansi-color.el (ansi-color-apply-on-region): Reset temporary
+       markers after finishing with them.
+       (ansi-color-apply-text-property-face): New function.
+       * lisp/eshell/esh-mode.el (eshell-handle-ansi-color):
+       * lisp/man.el (Man-fontify-manpage): Use it as the
+       `ansi-color-apply-face-function' while calling
+       `ansi-color-apply-on-region'.  Use `font-lock-face' to propertize
+       instead of `face'.
+
+2019-05-04  Paul Eggert  <address@hidden>
+
+       Fix bytecode optimization typo
+
+       Problem reported by Simon Frankau (Bug#35562).
+       * src/bytecode.c (exec_byte_code): Fix typo when optimizing varset.
+
+2019-05-04  John Shahid  <address@hidden>
+
+       Fix Bug#35506
+
+       * lisp/net/tramp.el (tramp-interrupt-process): Kill the entire
+       process group.  (Bug#35506)
+
+2019-05-04  Eli Zaretskii  <address@hidden>
+
+       Minor fix in .gdbinit
+
+       * src/.gdbinit (xprintsym): Don't attempt to print the
+       symbol's name if it is not yet set.  This happens with
+       built-in symbols at the beginning of 'main'.
+
+2019-05-03  Paul Eggert  <address@hidden>
+
+       Skip tests if test subdir is missing
+
+       Problem reported by Jeffrey Walton in:
+       https://lists.gnu.org/r/emacs-devel/2019-05/msg00041.html
+       * Makefile.in (CHECK_TARGETS): New macro; use it
+       to simplify 'check' and similar rules.
+       ($(CHECK_TARGETS)): If tests are missing, do not fail
+       after issuing a diagnostic.  Just skip the tests.
+
+2019-05-03  Paul Eggert  <address@hidden>
+
+       Modernize INSTALL a bit
+
+       * INSTALL: Omit filesystem space estimates.  These estimates
+       were (1) wrong and (2) no longer important nowadays, as people
+       have plenty of space.  Instead, start with how to get and
+       unpack an Emacs tarball.  Don’t say "disk" as it’s often not
+       disk nowadays.  Update URLs.
+
+2019-05-03  Paul Eggert  <address@hidden>
+
+       Simplify use of NDEBUG in etags.c
+
+       * lib-src/etags.c [!DEBUG]: Do not define NDEBUG,
+       as that’s conf_post.h’s job now.
+       [NDEBUG]: Do not redefine ‘assert’, as that works around
+       ancient bugs (e.g., sunos4 pcc) that don’t matter any more,
+       as can be seen that other Emacs source files that successfully
+       use assert.h without this workaround.
+
+2019-05-03  Paul Eggert  <address@hidden>
+
+       Pacify librsvg 2.45.1 and later
+
+       * src/image.c (svg_load_image): Pacify librsvg 2.45.1 and later,
+       and add a FIXME comment about the deprecated librsvg functions.
+
+2019-05-03  Paul Eggert  <address@hidden>
+
+       Simplify xd_signature to pacify GCC 9
+
+       * src/dbusbind.c (xd_signature): Use simpler way to set up
+       the subsignature.  This also pacifies GCC 9 on Fedora 30 x86-64.
+
+2019-05-03  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-05-03 Port manywarnings to GCC 9
+       * m4/manywarnings.m4: Copy from Gnulib.
+
+2019-05-03  Michael Albinus  <address@hidden>
+
+       Add tests for remote files in auto-revert-tests
+
+       * lisp/autorevert.el (auto-revert-debug): New defvar.
+       (auto-revert-notify-handler): Write traces.
+
+       * lisp/filenotify.el (file-notify-debug): New defvar.
+       (file-notify-handle-event, file-notify-callback): Write traces.
+
+       * lisp/net/tramp-sh.el (tramp-sh-handle-vc-registered):
+       Handle nil `vc-handled-backends'.
+
+       * test/lisp/autorevert-tests.el
+       (auto-revert-test-remote-temporary-file-directory): New defconst.
+       Handle also $REMOTE_FILE_NOTIFY_LIBRARY.
+       (auto-revert--test-enabled-remote-checked): New defvar.
+       (auto-revert--test-enabled-remote): New defun.
+       (auto-revert--wait-for-revert): Rewrite without timeout.
+       (auto-revert--deftest-remote): New defmacro.
+       (auto-revert-test01-auto-revert-several-files):
+       (auto-revert-test02-auto-revert-deleted-file): Adapt for remote files.
+       (auto-revert-test02-auto-revert-deleted-file):
+       Use `auto-revert-debug' for debug messages.
+       (auto-revert-test00-auto-revert-mode-remote)
+       (auto-revert-test01-auto-revert-several-files-mode-remote)
+       (auto-revert-test02-auto-revert-deleted-file-mode-remote)
+       (auto-revert-test03-auto-revert-tail-mode-mode-remote)
+       (auto-revert-test04-auto-revert-mode-dired-mode-remote): New tests.
+
+       * test/lisp/filenotify-tests.el (file-notify--test-event-handler):
+       Use `file-notify-debug' for debug messages.
+
+2019-05-03  Basil L. Contovounesios  <address@hidden>
+
+       Fix Gnus inline attachment decoding (bug#35507)
+
+       Proposed by Andy Moreton <address@hidden>
+       and Noam Postavsky <address@hidden>.
+       * lisp/gnus/mm-view.el (mm-display-inline-fontify): Always decode
+       handle text, falling back on 'undecided' coding system.
+
+2019-05-03  Stefan Monnier  <address@hidden>
+
+       * lisp/server.el: Cosmetic changes
+
+       Remove redundant :group args.
+       (server-temp-file-regexp): Fix ^$ to  \`\'.
+
+2019-05-03  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of 'isearch-regexp-function'
+
+       * lisp/isearch.el (isearch-regexp-function): Doc fix.
+       (Bug#35498)
+
+2019-05-02  Alexander Gramiak  <address@hidden>
+
+       Refactor update_window_begin and update_window_end hooks
+
+       Bug#35464.
+
+       * src/dispnew.c (gui_update_window_begin, gui_update_window_end): New
+       procedures implementing common functionality.
+
+       * src/nsterm.m: (ns_update_window_begin, ns_update_window_end):
+       * src/xterm.c: (x_update_window_begin, x_update_window_end): Remove in
+       favor of only using the new generic versions.
+
+       * src/w32term.c: (w32_update_window_begin, w32_update_window_end):
+       Remove duplicated and unused code.
+
+2019-05-02  Dmitry Gutov  <address@hidden>
+
+       xref--find-ignores-arguments: Return "" if IGNORES is nil
+
+2019-05-02  Dmitry Gutov  <address@hidden>
+
+       Allow project-find-regexp'ing inside an ignored dir
+
+       * lisp/progmodes/project.el (project-find-regexp): Don't pass
+       project's ignores to project--files-in-directory.  The FILES glob
+       should be enough, and we don't want to prohibit searching inside
+       ignored directories this way (it can be counter-intuitive).
+
+2019-05-02  Dmitry Gutov  <address@hidden>
+
+       (xref--mouse-2): Fix not to jump to the next line
+
+       * lisp/progmodes/xref.el (xref--mouse-2): Fix not to jump to the
+       next line.
+
+2019-05-02  Dmitry Gutov  <address@hidden>
+
+       Fix an "empty identifier" problem
+
+       * lisp/progmodes/xref.el (xref--read-identifier): Abort on empty
+       input if there is no default
+       
(https://lists.gnu.org/archive/html/help-gnu-emacs/2019-05/msg00012.html).
+
+2019-05-02  Alan Mackenzie  <address@hidden>
+
+       Fix fontification of first item in CC Mode macro without parentheses
+
+       * lisp/progmodes/cc-engine.el (c-find-decl-prefix-search): Handle the 
new
+       matching possibility (of a #define construct) in the new
+       c-decl-prefix-or-start-re.
+       (c-find-decl-spots): Allow the initial search for an in-macro starting 
point
+       settle on the # of #define, to facilitate the regexp matching in
+       c-find-decl-prefix-search.
+
+       * lisp/progmodes/cc-langs.el (c-anchored-hash-define-no-parens): New 
lang
+       const.
+       (c-literal-start-regexp): Correct what was always supposed to be a 
"generic
+       string" regexp element.
+       (c-decl-prefix-or-start-re): Enhance also to match "#define 
<identifier>".
+       (c-dposr-cpp-macro-depth): New lang variable and lang constant.
+
+2019-05-02  Stefan Monnier  <address@hidden>
+
+       * lisp/mail/footnote.el: Add TEXT and POINTERS together
+
+       Rather than adding POINTERS and TEXT separately to 
footnote--markers-alist,
+       add them together, so we don't need footnote--first-text-marker because
+       the TEXT part is never nil.
+
+       (footnote--insert-numbered-footnote): Return marker.
+       (footnote--insert-text-marker, footnote--insert-pointer-marker):
+       Delete functions.
+       (footnote--insert-markers): New function to replace them.
+       (footnote--insert-footnote): Adjust accordingly.
+       Simplify pointless `unless`.
+       (footnote--first-text-marker): Remove.  Replace all calls by
+       (cadr (car footnote--markers-alist)) or just footnote--markers-alist.
+
+2019-05-02  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Fix multiline block comments in macros.
+
+       In particulr, handle multiline block comments whose newlines are not 
escaped.
+       There is an example of this in #define EXTRA_CONTEXT_FIELDS in 
editfns.c.
+
+       * lisp/progmodes/cc-engine.el (c-beginning-of-macro, c-end-of-macro): 
Enclose
+       the loops scanning escaped newlines with outer loops which check
+       heuristically for, respectively, a block comment ender and a block 
comment
+       starter on the lines we end up on.  (A rigorous syntactic check would 
be too
+       slow, here.)
+
+       * lisp/progmodes/cc-langs.el (c-last-c-comment-end-on-line-re)
+       (c-last-open-c-comment-start-on-line-re): New language 
constants/variables.
+
+2019-05-02  Stefan Monnier  <address@hidden>
+
+       * lisp/mail/footnote.el: Tweak markers convention
+
+       Instead of using markers that are sometimes before and sometimes after
+       the [...] and using `insert-before-markers` to make sure those that are
+       are before stay before, always place them before, and make them
+       "move after"so they stay with their [...] without the need for
+       insert-before-markers.
+
+       (footnote--current-regexp): Add arg to match previous style.
+       Include the start/end "tags" in the regexp.  Adjust all callers.
+       (footnote--markers-alist): Change position of POINTERS.
+       (footnote--refresh-footnotes, footnote--renumber)
+       (footnote--make-hole, footnote-delete-footnote)
+       (footnote-back-to-message): Adjust accordingly, mostly by using
+       `looking-at` instead of `looking-back`.
+       (footnote--make-hole): Always return footnote nb to use.
+       (footnote-add-footnote): Simplify call accordingly.
+
+       * test/lisp/mail/footnote-tests.el: New file.
+
+2019-05-02  Sam Steingold  <address@hidden>
+
+       use view-mode on score file for ease of scrolling and quitting
+
+       tetris-null-map: bind "q" to `quit-window`
+
+2019-05-02  Mattias Engdegård  <address@hidden>
+
+       Small code clean-up of file-notify-add-watch
+
+       * lisp/filenotify.el (file-notify-add-watch):
+       Clearly separate backend-specific code from the rest, and simplify.
+       (file-notify--add-watch-inotify, file-notify--add-watch-kqueue)
+       (file-notify--add-watch-w32notify, file-notify--add-watch-gfilenotify):
+       New functions.
+
+2019-05-02  Stefan Monnier  <address@hidden>
+
+       * lisp/mail/footnote.el: Use dolist and hoist regexps out of loops
+
+       (footnote--refresh-footnotes): Use pcase-dolist; compute regexp once
+       outside of the loops.  Use less confusing `literal` arg to 
`replace-match`
+       and specify `fixedcase` since footnote--index-to-string already chose
+       the proper case for us.
+       (footnote--renumber): Use dolist; compute regexp once
+       outside of the loops; shortcircuit when number is unchanged.
+       (footnote--text-under-cursor): Rewrite.
+       (footnote--make-hole): Use dolist.
+       (footnote-add-footnote): CSE.
+       (footnote-delete-footnote): Use dolist; compute regexp once
+       outside of the loop.
+       (footnote-delete-footnote): Don't renumber if there's no footnote left.
+       (footnote-renumber-footnotes): Use dolist.
+
+2019-05-02  Michael Albinus  <address@hidden>
+
+       Fix tramp-compat-file-name-quoted-p
+
+       * lisp/net/tramp-compat.el (tramp-compat-file-local-name)
+       (tramp-compat-file-name-quoted-p): Declare them.
+       (top): Do not use `eval-and-compile'.
+       (tramp-compat-file-name-quoted-p): Check also func-arity of
+       `file-name-quoted-p'.
+
+2019-05-01  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix NS build
+
+       * src/macfont.m: Fix prototype of macfont_shape.
+       (mac_font_shape): Fix type of 5th argument.
+
+2019-05-01  Stefan Monnier  <address@hidden>
+
+       * lisp/mail/footnote.el: Consolidate the two marker-alists
+
+       Consolidate footnote-text-marker-alist and footnote-pointer-marker-alist
+       into a single footnote--markers-alist.
+
+       (footnote--markers-alist): New var.
+       (footnote-text-marker-alist, footnote-pointer-marker-alist): Delete 
vars.
+       (footnote--refresh-footnotes, footnote--text-under-cursor)
+       (footnote--calc-fn-alignment-column, footnote-add-footnote)
+       (footnote-goto-footnote, footnote-back-to-message): Adjust accordingly.
+       (footnote--make-hole, footnote-delete-footnote)
+       (footnote-renumber-footnotes): Simplify accordingly.
+       (footnote-cycle-style): Indicate style name in echo area.
+       (footnote--renumber): Take a single `alist-elem` arg instead of
+       `pointer-alist` and `text-alist`.
+       (footnote--insert-text-marker, footnote--insert-pointer-marker):
+       Add to footnote--markers-alist instead.
+       (footnote--first-text-marker): New function.
+       (footnote--get-area-point-min): Use it.
+       footnote--goto-first): New function.
+       (footnote--insert-footnote): Use it.
+       (footnote-style-number): Use defvar-local.
+
+2019-05-01  Stefan Monnier  <address@hidden>
+
+       * lisp/mail/footnote.el: Minor simplifications
+
+       Remove redundant :group args.
+       (footnote-mode-hook): Let define-minor-mode define it.
+       (footnote--style-p): Delete function.
+       (footnote--index-to-string): Inline it instead, and simplify.
+       (footnote-cycle-style): Use a pointer into the alist as the "index"
+       instead of a number.
+       (footnote-set-style): Use footnote-style-alist as the completion table.
+       Prefer `assq` over `footnote--assoc-index`.
+       (footnote--assoc-index): Delete function.
+       (footnote--renumber): Remove first (unused) argument; Adjust all 
callers.
+       (footnote--sort): Use car-less-than-car.
+
+2019-05-01  Lars Ingebrigtsen  <address@hidden>
+
+       Restore previous calling signature of gnus-set-info
+
+2019-05-01  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/edebug.el: Better handle instrumentation of 
`end-of-defun`
+
+       Remove redundant :group args.
+       (edebug-read-top-level-form): Let-bind edebug-active.
+       (edebug-active): Move before this new first use.
+
+2019-05-01  Stefan Monnier  <address@hidden>
+
+       * lisp/help.el (function-called-at-point): Use Elisp's 
forward-sexp-function
+
+2019-04-30  Basil L. Contovounesios  <address@hidden>
+
+       Minor region-noncontiguous-p simplification
+
+       * lisp/simple.el (region-noncontiguous-p): Don't needlessly traverse
+       region-bounds.
+
+2019-04-30  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/cc-engine.el: Silence minor compiler warnings
+
+       (c-restricted-<>-arglists, c-parse-and-markup-<>-arglists):
+       Move declaration before first use.
+       (c-after-change-unmark-raw-strings): Remove unused var `found-end`.
+
+2019-04-30  Paul Eggert  <address@hidden>
+
+       Fix decode-time/encode-time roundtrip on macOS
+
+       * src/timefns.c (Fencode_time): Ignore DST flag when the zone is
+       numeric or is a cons, as the doc string says it’s ignored in that
+       case, and not ignoring it causes encode-time to not invert
+       decode-time on some platforms (Bug#35502).
+       * test/src/timefns-tests.el (encode-time-dst-numeric-zone):
+       New test.
+
+2019-04-30  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/cc-fonts.el: Silence some compiler warnings
+
+       (c-font-lock-declarators): Mark `id_end` and `not-top` as unused.
+
+2019-04-30  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       * build-aux/config.guess, doc/misc/texinfo.tex:
+       * lib/mktime-internal.h, lib/mktime.c, lib/timegm.c:
+       Copy from Gnulib.
+       * lib/gnulib.mk.in: Regenerate.
+
+2019-04-30  Mattias Engdegård  <address@hidden>
+
+       * lisp/autorevert.el (auto-revert-avoid-polling): Fix :set form.
+
+2019-04-30  Alan Mackenzie  <address@hidden>
+
+       CC Mode: in certain font lock loops, check point is not beyond limit.
+
+       * lisp/progmodes/cc-fonts.el (c-font-lock-enum-body)
+       (autodoc-font-lock-line-markup): As part of the `while' condition, 
check that
+       the previous iteration of the loop hasn't moved point past `limit', thus
+       obviating "wrong side of point" errors in re-search-forward, etc.
+
+2019-04-30  Mattias Engdegård  <address@hidden>
+
+       Don't poll auto-revert files that use notification (bug#35418)
+
+       It is a waste to periodically poll files that use change notification
+       in auto-revert mode; stop doing that.  If no files need polling,
+       turn off the periodic execution entirely to further avoid wasting power.
+       Use a timer to inhibit immediate reversion for some time after a
+       notification, for throttling.
+
+       This change does not apply to files in global-auto-revert-mode, where
+       polling is still necessary.  It is disabled by default, and enabled by
+       setting `auto-revert-avoid-polling' to non-nil.
+
+       * lisp/autorevert.el
+       (toplevel): Require cl-lib.
+       (auto-revert-avoid-polling, auto-revert--polled-buffers)
+       (auto-revert--need-polling-p, auto-revert--lockout-interval)
+       (auto-revert--lockout-timer, auto-revert--end-lockout): New.
+       (global-auto-revert-mode): Keep notifiers for buffers in auto-revert 
mode.
+       (auto-revert-set-timer): Use auto-revert--need-polling-p.
+       (auto-revert-notify-handler): Restart polling if notification stopped.
+       Use new lockout timer.
+       (auto-revert-buffers):
+       Use auto-revert--polled-buffers and auto-revert--need-polling-p.
+       (auto-revert-buffers-counter, auto-revert-buffers-counter-lockedout):
+       Remove.
+
+       * etc/NEWS (Changes in Specialized Modes and Packages):
+       Describe the new auto-revert-avoid-polling variable.
+
+       * doc/emacs/files.texi (Reverting):
+       Add paragraph describing auto-revert-avoid-polling.
+
+2019-04-29  Stefan Monnier  <address@hidden>
+
+       Refrain from splicing anonymous faces in text properties
+
+       * lisp/font-lock.el (font-lock-prepend-text-property): Distinguish
+       list of faces from property lists.
+       (font-lock-ensure-function): Remove redundant code.
+
+2019-04-29  Stefan Monnier  <address@hidden>
+
+       * lisp/international/mule-util.el: Avoid setq; clarify meaning of -1.
+
+2019-04-29  Paul Eggert  <address@hidden>
+
+       Sync latest SKK-JISYO.L
+
+       Problem reported by Tsuyoshi Kitamoto (Bug#35442).
+       * leim/SKK-DIC/README: Update to current URL.
+       * leim/SKK-DIC/SKK-JISYO.L: Sync to current upstream version.
+
+2019-04-29  Paul Eggert  <address@hidden>
+
+       Disable __attribute__ ((cold)) on MinGW
+
+       * src/conf_post.h (ATTRIBUTE_COLD) [__MINGW32__]:
+       Define to empty on this platform.
+
+2019-04-29  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       c26d452 (origin/emacs-26) * src/macfont.m (macfont_shape): Use conven...
+       140e7f8 Recommend using font-lock-face over face (Bug#35044)
+       7cb5364 Check if mouse_face_overlay was deleted (Bug#35273)
+
+       # Conflicts:
+       #       src/macfont.m
+
+2019-04-29  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       0e8d452 ; * doc/lispref/nonascii.texi (Coding System Basics): Fix gra...
+       25a2ff7 ; Add missing space in custom.texi
+       9ec18fb * admin/admin.el (set-version): Check for increase in version...
+       93912ba Be more careful about indent-sexp going over eol (Bug#35286)
+
+2019-04-29  Paul Eggert  <address@hidden>
+
+       Replace ‘/* FALLTHROUGH! */’ with ‘break;’
+
+       * src/data.c (set_internal, set_default_internal):
+       Replace obsolescent /* FALLTHROUGH! */ comments with ‘break;’,
+       as ‘FALLTHROUGH;’ is not needed here.
+
+2019-04-29  Michael Albinus  <address@hidden>
+
+       * test/lisp/net/tramp-tests.el (tramp--test-timeout-handler): 
Instrument.
+
+2019-04-29  Eli Zaretskii  <address@hidden>
+
+       Avoid compilation warnings in w32.c
+
+       * src/w32.c (unsetenv, readlink): Use memcpy instead of
+       strncpy, to avoid a compiler warning about calculating the
+       bound of the copy.
+
+2019-04-28  Noam Postavsky  <address@hidden>
+
+       Replace use of obsolete string-make-unibyte
+
+       * lisp/image-file.el (insert-image-file): Use encode-coding-region
+       instead of string-make-unibyte.
+       * test/lisp/image-file-tests.el: New test.
+
+2019-04-28  Tommi Komulainen  <address@hidden>  (tiny change)
+
+       python.el: Fix close paren indentation to match pep8 (Bug#20742)
+
+       * lisp/progmodes/python.el (python-indent--calculate-indentation):
+       When opening paren is followed by newline the closing paren should
+       follow the current indentation.  Otherwise the closing paren should be
+       aligned with the opening paren.  This fixes the latter case.
+
+2019-04-28  Paul Eggert  <address@hidden>
+
+       Update from GMP
+
+       * admin/update-copyright (updatable_files):
+       Don’t update copyright year on files copied from GMP, so that
+       they’re identical to upstream.
+       * src/mini-gmp.c, src/mini-gmp.h: Copy from GMP development
+       versions as of 2019-01-01 20:15:39 UTC.
+
+2019-04-28  Philipp Stephani  <address@hidden>
+
+       Export major version of latest Emacs supported by emacs-module.h.
+
+       This is useful if module authors want to support multiple versions of
+       emacs-module.h.
+
+       * configure.ac (emacs_major_version): Define substitution.
+
+       * src/emacs-module.h.in (EMACS_MAJOR_VERSION): Define macro.
+
+       * doc/lispref/internals.texi (Module Initialization): Document
+       EMACS_MAJOR_VERSION preprocessor macro.
+
+       * test/data/emacs-module/mod-test.c (emacs_module_init): Verify
+       behavior of EMACS_MAJOR_VERSION.
+
+2019-04-28  Philipp Stephani  <address@hidden>
+
+       Fix another compilation warning.
+
+       * test/src/emacs-module-tests.el (multiply-string): Remove unused
+       variable ‘i’.
+
+2019-04-28  Philipp Stephani  <address@hidden>
+
+       Also regenerate emacs-module.h if module-env-*.h changes.
+
+       * Makefile.in (CONFIG_STATUS_FILES_IN): Add versioned environment
+       header fragments.
+
+2019-04-28  Philipp Stephani  <address@hidden>
+
+       * src/emacs-module.c (funcall_module): Add a nontrivial assertion
+
+2019-04-28  Philipp Stephani  <address@hidden>
+
+       Fix a few minor compilation and Checkdoc warnings.
+
+       * test/src/emacs-module-tests.el: Add package name and standard
+       sections.
+       (multiply-string): Add a docstring.
+
+2019-04-28  Philipp Stephani  <address@hidden>
+
+       * test/src/emacs-module-tests.el: Switch to lexical binding.
+
+2019-04-28  Eli Zaretskii  <address@hidden>
+
+       Fix names of functions in last commit
+
+       * src/coding.h (build_string_from_utf8): Rename from
+       build_utf8_string.  All callers changed.
+       * src/coding.c (make_string_from_utf8): Rename from
+       make_utf8_string.  All callers changed.
+
+2019-04-28  Philipp Stephani  <address@hidden>
+
+       Refactoring: move UTF-8 decoding functions into coding.h.
+
+       json_make_string and json_build_string are generally useful and not
+       JSON-specific.  Move them to coding.[ch].
+
+       * src/coding.h (build_utf8_string): Move from json.c.
+
+       * src/coding.c (make_utf8_string): Move from json.c.
+
+       * src/json.c (json_make_string, json_build_string): Move to
+       coding.[ch].  Split out JSON-specific comment.
+       (json_parse_error, Fjson_serialize, json_to_lisp): Fix callers.
+
+       * src/emacs-module.c (module_make_function, module_make_string): Use
+       new functions.
+       (module_decode, module_decode_copy): Remove.
+
+2019-04-27  Alan Mackenzie  <address@hidden>
+
+       Fix slow scrolling in C++ buffers with lots of template delimiters.
+
+       * lisp/progmodes/cc-engine.el (c-update-brace-stack): bind
+       c-parse-and-markup-<>-arglists and c-restricted-<>-arglists to t around 
the
+       call to c-forward-<>-arglist, to force the marking of template 
delimiters with
+       syntax-table text properties.
+
+2019-04-27  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Merge branch 'master' into harfbuzz
+
+2019-04-27  Eli Zaretskii  <address@hidden>
+
+       Fix -nw sessions on MS-Windows broken by a recent commit
+
+       * src/w32console.c: Include dispextern.h.
+       (initialize_w32_display): Populate defined_color_hook.
+
+2019-04-27  Eli Zaretskii  <address@hidden>
+
+       Fix MS-Windows build broken by a recent commit
+
+       * src/w32term.c (w32_new_focus_frame): Fix a typo in a recent
+       commit.
+
+2019-04-26  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix --with-x-toolkit=no build breakage
+
+       * oldXMenu/Create.c (XMenuCreate): Add const modifier to variable 
def_val.
+       * oldXMenu/Create.c:
+       * src/frame.h: Add const modifier to return type of 
x_get_resource_string.
+       * src/frame.c (x_get_resource_string): Exempt x_get_string_resource from
+       renaming generic x_* identifiers.
+
+2019-04-26  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Update multicolor font support status
+
+       * etc/NEWS: Mention multicolor font support on Cairo and NS.
+       * src/macfont.m (macfont_list): Re-enable color bitmap fonts.
+
+2019-04-26  Alexander Gramiak  <address@hidden>
+
+       * src/frame.c (x_get_resource_string): Fix typo
+
+       * src/xdisp.c: Only check FRAME_RIF for graphical frames
+
+2019-04-26  Alexander Gramiak  <address@hidden>
+
+       Rename x_highlight_frame property to highlight_frame
+
+       * src/nsterm.h:
+       * src/nsterm.m:
+       * src/w32term.c:
+       * src/w32term.h:
+       * src/xdisp.c:
+       * src/xterm.c:
+       * src/xterm.h: Rename.
+
+2019-04-26  Alexander Gramiak  <address@hidden>
+
+       Check for existence of terminal hooks before use
+
+       This should not be necessary, and is merely a precaution. For
+       background, see:
+       https://lists.gnu.org/archive/html/emacs-devel/2019-04/msg00639.html
+
+       * src/frame.c:
+       * src/xdisp.c: Check for existence of terminal hooks before use.
+
+2019-04-26  Alexander Gramiak  <address@hidden>
+
+       Add terminal hook query_frame_background_color
+
+       * src/termhooks.h (query_frame_background_color): New terminal hook.
+
+       * src/image.c (image_query_frame_background_color): Remove. Use the
+       terminal hook instead.
+
+       * src/nsterm.m:
+       * src/w32term.c:
+       * src/xterm.c: Implement and set the new terminal hook.
+
+2019-04-26  Alexander Gramiak  <address@hidden>
+
+       Add terminal hook defined_color_hook
+
+       * src/termhooks.h (defined_color_hook): New terminal hook.
+
+       * src/xterm.c:
+       * src/nsterm.m:
+       * src/term.c:
+       * src/w32term.c: Set defined_color_hook.
+
+       * src/xfaces.c: Use defined_color_hook.
+       (defined_color): Remove.
+
+       * src/image.c: Remove redefinitions of x_defined_color, and use
+       defined_color_hook.
+
+2019-04-26  Alexander Gramiak  <address@hidden>
+
+       Rename generic x_* identifiers
+
+       * src/image.c: Rename x_* procedures to image_*.
+
+       * src/frame.c: Rename x_* procedures to gui_*. Rename
+       xrdb_get_resource to gui_display_get_resource. Rename x_get_arg to
+       gui_display_get arg.
+
+       * src/frame.h: Rename can_x_set_window_size to can_set_window_size.
+
+       * src/xfaces.c: Rename realize_x_face to realize_gui_face. Rename
+       x_supports_face_attributes_p to gui_supports_face_attributes_p.
+
+       * src/keyboard.c:
+       * src/lisp.h:
+       * src/nsterm.m:
+       * src/w32term.c:
+       * src/xterm.c: Rename x_get_keysym_name to get_keysym_name.
+
+       * src/nsfns.m:
+       * src/nsterm.m: Rename x_* procedures to ns_*.
+
+       * src/w32fns.c:
+       * src/w32term.c: Rename x_* procedures to w32_*.
+
+       * src/termhooks.h (query_colors, get_focus_frame, focus_frame_hook)
+       (frame_visible_invisible_hook, iconify_frame_hook)
+       (set_window_size_hook, set_frame_offset_hook, set_frame_alpha_hook)
+       (set_new_font_hook, set_bitmap_icon_hook, implicit_set_name_hook)
+       (activate_menubar_hook, change_tool_bar_height_hook)
+       (set_scroll_bar_default_width_hook)
+       (set_scroll_bar_default_height_hook, get_string_resource_hook): New
+       terminal hooks to replace backend-specific x_* procedures.
+
+       * src/dispextern.h (clear_under_internal_border): New RIF procedure.
+
+       * src/alloc.c:
+       * src/frame.c:
+       * src/xdisp.c: Use FRAME_OUTPUT_DATA instead of FRAME_X_OUTPUT.
+
+       * src/frame.c:
+       * src/w32term.c:
+       * src/w32fns.c: Use FRAME_NATIVE_WINDOW instead of FRAME_X_WINDOW.
+
+2019-04-26  Alexander Gramiak  <address@hidden>
+
+       Add prefixes to some window system-dependent procedures
+
+       * src/nsterm.m (note_mouse_movement):
+       * src/w32fns.c (construct_console_modifiers):
+       * src/w32inevt.c:
+       * src/w32term.c (frame_highlight, frame_unhighlight)
+       (construct_mouse_click, construct_mouse_wheel, construct_drag_n_drop)
+       (lispy_file_action, queue_notifications, note_mouse_movement):
+       * src/w32term.h:
+       * src/xterm.c (frame_highlight, frame_unhighlight)
+       (construct_mouse_click, note_mouse_movement, get_current_wm_state):
+       Add and use window system prefixes.
+
+2019-04-26  Alexander Gramiak  <address@hidden>
+
+       Rename generic x_* procedures in xdisp.c
+
+       * src/xdisp.c (x_consider_frame_title, x_get_glyph_overhangs)
+       (x_produce_glyphs, x_write_glyphs, x_insert_glyphs)
+       (x_clear_end_of_line), x_fix_overlapping_area)
+       (x_update_cursor, x_clear_cursor, x_clear_window_mouse_face)
+       (x_draw_vertical_border, x_draw_right_divider, x_draw_bottom_divider)
+       (x_intersect_rectangles): Rename with a gui prefix to indicate
+       non-X-specific functionality.
+
+       * src/composite.c:
+       * src/dispextern.h:
+       * src/nsfns.m:
+       * src/nsterm.m:
+       * src/w32fns.c:
+       * src/w32term.c:
+       * src/window.c:
+       * src/xfns.c:
+       * src/xterm.c: Use the renamed procedures.
+
+2019-04-26  Eli Zaretskii  <address@hidden>
+
+       Avoid assertion violations in calculating line-number width
+
+       * src/indent.c (line_number_display_width): Don't use the
+       window's start marker if it belongs to a different buffer.
+       (Bug#35429)
+
+2019-04-26  Stefan Monnier  <address@hidden>
+
+       * lib-src/profile.c: Delete long-obsolete file
+
+       This auxiliary executable was used by the old `profile.el` which later
+       inspired `elp.el`.  It was made obsolete when Emacs acquired native 
timers.
+
+       * lib-src/Makefile.in (UTILITIES): Remove profile.
+       (profile${EXEEXT}): Delete rule.
+
+2019-04-26  Michael Albinus  <address@hidden>
+
+       Handle quoted file names in tramp-archive.el
+
+       * lisp/net/tramp-archive.el (tramp-archive-file-name-p):
+       Suppress quoted file names.
+       (tramp-archive-file-name-handler): Handle quoted file names.
+
+       * lisp/net/tramp-compat.el (tramp-compat-file-name-quoted-p):
+       Add optional TOP argument.
+
+2019-04-26  Eli Zaretskii  <address@hidden>
+
+       Avoid compiler warning in dynlib.c
+
+       * src/dynlib.c (dynlib_addr) [WINDOWSNT]: Rename the first
+       argument to be consistent with other platforms.  Cast it to
+       'void *' to avoid compiler warning as result of changing the
+       function's signature as part of the last recent change in
+       dynlib.c.
+
+2019-04-25  Glenn Morris  <address@hidden>
+
+       * test/lisp/progmodes/sql-tests.el (sql-tests-buffer-naming-harness):
+       Fix previous for TEST_LOAD_EL=no.
+
+2019-04-25  Alan Mackenzie  <address@hidden>
+
+       Fix the formatting of '\' (including apostrophes) in CC Mode.
+
+       In particular, the second apostrophe must also get 
font-lock-warning-face.
+
+       * lisp/progmodes/cc-mode.el (c-parse-quotes-before-change)
+       (c-parse-quotes-after-change): Add cond arms to recognize and handle the
+       anomalous construct '\'.  Correct the handling of c-new-BEG in
+       c-parse-quotes-before-change.
+
+2019-04-25  Glenn Morris  <address@hidden>
+
+       * test/lisp/progmodes/sql-tests.el (sql-tests-buffer-naming-harness):
+       Skip if no sqlite program.
+
+2019-04-25  Stephen Leake  <address@hidden>
+
+       Fix Bug#33618; define search path variables for grep, byte-compile
+
+       * etc/NEWS: Mention new variables.
+
+       * lisp/emacs-lisp/bytecomp.el (emacs-lisp-compilation-search-path): New.
+
+       * lisp/progmodes/grep.el (grep-search-path): New.
+
+2019-04-25  Paul Eggert  <address@hidden>
+
+       Minor tweaks to recent UBSan-related fix
+
+       * src/alloc.c: No need to include stdalign.h; it’s pervasive.
+       (GC_STRING_OVERRUN_COOKIE_SIZE): Align to sdata’s alignment,
+       so that the code works even if alignof (sdata) exceeds 8.
+       Don’t require the cookie size to be 8, as this overly fattens
+       32-bit platforms and one DEADBEEF should be enough.
+       (GC_STRING_EXTRA): Omit now-unnecessary ‘verify’.
+       (allocate_string_data): Omit unnecessary cast.
+
+2019-04-25  Paul Eggert  <address@hidden>
+
+       Port to Oracle Developer Studio 12.6
+
+       This compiler is a bit pickier about checking conformance to
+       the C standard, ranging from syntax trivia (no extra ";" at
+       the top level) to portability trivia (warnings re conversion
+       between function and data pointers) to more-important stuff
+       like lack of support for some __attribute__ usages.
+       * src/dynlib.c (dynlib_addr): First argument is a function
+       pointer, not a data pointer.  All callers changed.
+       * src/emacs-module.c (module_function_address):
+       Return module_funcptr, not void *.  All uses changed.
+       * src/lisp.h (module_funcptr) [HAVE_MODULES]: New type.
+       * src/lread.c (union ieee754_double): Don’t assume the usual
+       semantics for converting signed to unsigned int when initializing
+       a bitfield, as the Oracle compiler complains and the C standard
+       is unclear.
+       * src/pdumper.c (ALLOW_IMPLICIT_CONVERSION): Make it clearer
+       that -Wsign-conversion is disabled everywhere in this file.
+       (dump_trace, dump_tailq_prepend, dump_tailq_append):
+       Don’t assume __attribute__.
+       (dump_object_self_representing_p): Don’t disable conversion
+       warnings; it’s not needed here.
+       (DEFINE_FROMLISP_FUNC): Avoid possible signal in integer
+       conversion from unsigned to signed.
+       (DEFINE_FROMLISP_FUNC, finish_dump_pvec): Avoid warning about
+       unreachable statements on platforms not supporting the
+       __attribute__.
+       (intmax_t_from_lisp, intmax_t_to_lisp, dump_off_from_lisp)
+       (dump_off_to_lisp, dump_emacs_reloc_immediate_lv)
+       (dump_emacs_reloc_immediate_ptrdiff_t)
+       (dump_emacs_reloc_immediate_intmax_t)
+       (dump_emacs_reloc_immediate_int, dump_emacs_reloc_immediate_bool):
+       Omit stray semicolon that violates C standard.
+       (dump_metadata_for_pdumper): Add cast to pacify compiler complaining
+       about conversion from function pointer to data pointer.
+       (Fdump_emacs_portable): Do not use CALLN to call a function
+       with zero arguments, as C99 prohibits empty initializers.
+       * src/xdisp.c (syms_of_xdisp): Do not nest calls to pure_list,
+       to work around a bug in Oracle Developer Studio 12.6.
+
+2019-04-25  Stefan Monnier  <address@hidden>
+
+       * lisp/simple.el (eval-expression): Fix paren typo.
+
+2019-04-25  Philipp Stephani  <address@hidden>
+
+       Make sure that ‘sdata’ objects in ‘sblock’ objects are aligned.
+
+       Issue found by Clang’s UBSan.
+
+       * src/alloc.c (GC_STRING_OVERRUN_COOKIE_SIZE): Increase to 8.
+       (string_overrun_cookie): Extend accordingly.
+       (GC_STRING_EXTRA): Ensure that it’s properly aligned for ‘sdata’.
+       (allocate_string_data): Verify that ‘sdata’ blocks remain aligned.
+
+2019-04-25  Stefan Monnier  <address@hidden>
+
+       Use lexical-binding by default for M-:, --eval, and *scratch*
+
+       * lisp/startup.el (command-line): Default to lexical-binding in 
*scratch*.
+       (normal-no-mouse-startup-screen, command-line-1):
+       Use startup--get-buffer-create-scratch.
+       (command-line-1):
+       * lisp/simple.el (eval-expression):
+       * lisp/server.el (server-eval-and-print): Use lexical-binding to
+       evaluate the expression.
+       (server-execute): Use startup--get-buffer-create-scratch.
+       * lisp/ielm.el (inferior-emacs-lisp-mode): Default to lexical-binding.
+
+2019-04-25  Alan Mackenzie  <address@hidden>
+
+       Restore fontification of delimiters of multiline CC Mode strings.
+
+       E.g., on typing the closing delimiter of a string continued onto a 
second
+       line, the opening delimiter retained its font-lock-warning-face.
+
+       * lisp/progmodes/cc-defs.el (c-c++-raw-string-opener-re)
+       (c-c++-raw-string-opener-1-re): New constants.
+       (c-sub-at-c++-raw-string-opener, c-at-c++-raw-string-opener): New 
macros.
+
+       * lisp/progmodes/cc-engine.el (c-raw-string-pos)
+       (c-depropertize-raw-strings-in-region, 
c-after-change-unmark-raw-strings):
+       Replace uses of open-coded raw string regexps by the new constants and 
macros
+       in cc-defs.el.
+
+       * lisp/progmodes/cc-fonts.el (c-font-lock-raw-strings): Ditto
+
+       * lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings): 
Set
+       c-new-BEG to the beginning of the string when we encounter its closing 
".
+       When not in a raw string, but in a string, clear syntax-table 
properties from
+       its delimiters and set c-new-BEG/END to its limits.
+       (c-after-change-mark-abnormal-strings): When applying syntax-table 
properties
+       to string delimiters, also set c-new-BEG/END to ensure subsequent
+       fontification.
+
+2019-04-25  Stephen Berman  <address@hidden>
+
+       Make wdired-mode ignore ls file indicators
+
+       * lisp/wdired.el (wdired--restore-dired-filename-prop): When
+       dired-listing-switches includes "F" or "classify", don't treat
+       appended indicator characters as part of the file name (bug#34915).
+
+       * test/lisp/wdired-tests.el (wdired-test-bug34915): New test.
+
+2019-04-25  Paul Eggert  <address@hidden>
+
+       Port emacsclient euidaccess to Solaris 10
+
+       Without this fix, linking emacsclient fails with ‘Undefined
+       symbol eaccess’ on Solaris 10 sparc.
+       * lib-src/Makefile.in (LIB_EACCESS): New macro.
+       (emacsclient${EXEEXT}, emacsclientw${EXEEXT}): Use it.
+
+2019-04-25  Alan Mackenzie  <address@hidden>
+
+       Fix some corner cases in the recognition of C++ raw strings.
+
+       These are where changing the identifier in a raw string delimiter causes
+       different delimiters to match eachother.
+
+       * lisp/progmodes/cc-engine.el (c-raw-string-end-delim-disrupted): New
+       variable.
+       (c-before-change-check-raw-strings): Use new variable.
+       (c-after-change-unmark-raw-strings): When typing into an opening 
delimiter or
+       altering its close delimiter causes the opening delimiter to match a 
later
+       closing delimiter, clear all syntax-table char properties from the 
opening
+       delimiter onwards, and set c-new-END to point max.  Also, when changing 
a
+       closing delimiter, check whether its new value matches a previously open
+       opening delimiter earlier in the buffer, and amend the syntax-table text
+       properties appropriately.
+
+2019-04-24  Michael R. Mauger  <address@hidden>
+
+       * lisp/progmodes/sql.el
+       (sql-is-sqli-buffer-p): New function.
+       (sql-generate-unique-sqli-buffer-name): Refactor and use it.
+       (sql-product-interactive): Simplify name logic.
+       * test/lisp/progmodes/sql-tests.el
+       (sql-tests-placeholder-filter-harness): New macro.
+       (sql-tests-placeholder-filter-simple)
+       (sql-tests-placeholder-filter-ampersand)
+       (sql-tests-placeholder-filter-period): Refactored tests and use macro.
+       (sql-tests-buffer-naming-harness): New macro.
+       (sql-tests-buffer-naming-default)
+       (sql-tests-buffer-naming-multiple)
+       (sql-tests-buffer-naming-explicit)
+       (sql-tests-buffer-naming-universal-argument)
+       (sql-tests-buffer-naming-existing): New tests.
+
+2019-04-24  Paul Eggert  <address@hidden>
+
+       Improve port to platforms lacking euidaccess (Bug#35406)
+
+       * lib-src/emacsclient.c (set_local_socket):
+       Use faccessat with AT_EACCESS instead of using euidaccess.
+       * admin/merge-gnulib, lib/gnulib.mk.in, m4/gnulib-comp.m4:
+       Revert previous change.
+
+2019-04-24  Paul Eggert  <address@hidden>
+
+       Port to platforms lacking euidaccess (Bug#35406)
+
+       * admin/merge-gnulib (GNULIB_MODULES): Add euidaccess.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+
+2019-04-24  Paul Eggert  <address@hidden>
+
+       Merge from gnulib
+
+2019-04-24  Mark Oteiza  <address@hidden>
+
+       Fix some strings in wordstar mode
+
+       * lisp/obsolete/ws-mode.el (ws-search-direction, ws-error, 
ws-end-block):
+       (ws-mark-word, ws-undo, ws-goto-last-cursorposition, ws-last-error):
+       (ws-kill-bol): Remove full stops from message string endings.  Minor
+       formatting tweaks.
+
+2019-04-24  Mark Oteiza  <address@hidden>
+
+       Change WordStar emulation into a minor mode (Bug#35148)
+
+       * lisp/obsolete/ws-mode.el: Turn on lexical-binding.  Update commentary.
+       (wordstar): New custom group.
+       (wordstar-mode-lighter): New custom variable.
+       (wordstar-mode): Declare with define-minor-mode.
+       (turn-on-wordstar-mode): New function.
+       (global-wordstar-mode): New function.  Use previous new function.
+
+2019-04-24  Dmitry Gutov  <address@hidden>
+
+       Fix project-find-regexp search for '--'
+
+       * lisp/progmodes/project.el (project--find-regexp-in-files):
+       Add an explicit '-e' before the pattern.  Fixing the ability to
+       search for '--'.  Reported by Juri Linkov <address@hidden>.
+
+2019-04-24  Juri Linkov  <address@hidden>
+
+       * lisp/windmove.el (windmove-display-in-direction): Support consecutive 
calls
+
+       Remember action and delete it from display-buffer-overriding-action 
afterwards
+
+2019-04-24  Philipp Stephani  <address@hidden>
+
+       Unbreak build when building without GMP support.
+
+       Add support for a new preprocessor macro EMACS_MODULE_HAVE_MPZ_T to
+       emacs-module.h.  If this macro is defined, assume that mpz_t is
+       already defined and don’t include gmp.h.
+
+       Don’t document the new macro for now, as it’s unclear whether we want
+       to support this in modules outside the Emacs tree.
+
+       * src/emacs-module.h.in: Allow user to prevent inclusion of gmp.h.
+
+       * src/emacs-module.c: Use mini-gmp if GMP is unavailable.  Don’t
+       include gmp.h.
+
+       * src/lisp.h: Don’t require gmp.h.  It’s not needed for lisp.h.
+
+       * test/Makefile.in (GMP_LIB, GMP_OBJ): New variables.
+       ($(test_module)): Use them.
+
+       * test/data/emacs-module/mod-test.c: Use mini-gmp if GMP is unavailable.
+
+2019-04-24  Philipp Stephani  <address@hidden>
+
+       Add missing GMP library to test module.
+
+       * test/Makefile.in (GMP_LIB): Define variable.
+       ($(test_module)): Use it.
+
+2019-04-24  Philipp Stephani  <address@hidden>
+
+       Move definition of Lisp_Module_Function to emacs-module.c.
+
+       * src/lisp.h: Remove include of emacs-module.h.  Remove definition
+       of Lisp_Module_Function structure.
+
+       * src/emacs-module.c (module_function_documentation)
+       (module_function_address): New accessor functions for module function
+       fields.
+       (emacs_subr, struct Lisp_Module_Function): Move from lisp.h.
+
+       * src/print.c (print_vectorlike):
+       * src/doc.c (Fdocumentation): Use the new accessor functions.
+
+2019-04-24  Paul Eggert  <address@hidden>
+
+       Simplify thread initialization and GC
+
+       * src/lisp.h (PVECHEADERSIZE): New macro.
+       (XSETPVECTYPESIZE): Use it.
+       * src/search.c (syms_of_search): No need to initialize or
+       staticpro last_thing_searched or saved_last_thing_searched, as
+       the thread code arranges for initialization and GC.
+       * src/thread.c (main_thread): Initialize statically.
+       (Fmake_mutex, Fmake_condition_variable, Fmake_thread):
+       Use ALLOCATE_ZEROED_PSEUDOVECTOR rather than zeroing by hand.
+       (mark_one_thread): No need to mark Lisp_Object members.
+       (init_main_thread, init_threads_once): Remove.  All uses removed.
+
+2019-04-24  Eli Zaretskii  <address@hidden>
+
+       Regenerate src/emacs-module.h when emacs-module.h.in changes
+
+       * Makefile.in (CONFIG_STATUS_FILES_IN): Add
+       src/emacs-module.h.in.
+
+2019-04-24  Eli Zaretskii  <address@hidden>
+
+       Fix rescheduling timers after suspension
+
+       * lisp/emacs-lisp/timer.el (timer-event-handler): Fix the
+       comparison between next invocation time and current time.
+
+2019-04-24  Eli Zaretskii  <address@hidden>
+
+       Fix posn-at-point with line-number display and display properties
+
+       * src/xdisp.c (pos_visible_p): Account for line-number display
+       width when CHARPOS is covered by display property that begins
+       at the 2nd display element of a screen line.  (Bug#35404)
+
+2019-04-24  Eli Zaretskii  <address@hidden>
+
+       Fix a typo in a recent commit
+
+       * src/timefns.c (timespec_to_lisp): Fix a typo in function
+       definition.
+
+2019-04-24  Philipp Stephani  <address@hidden>
+
+       * doc/lispref/internals.texi (Module Values): Add a GMP example
+
+2019-04-24  Philipp Stephani  <address@hidden>
+
+       Clarify rounding mode when converting to struct timespec.
+
+       * doc/lispref/internals.texi (Module Values): Clarify that the
+       truncation is towards negative infinity.
+
+       * test/data/emacs-module/mod-test.c (Fmod_test_nanoseconds): Add test
+       function.
+       (emacs_module_init): Define it.
+
+       * test/src/emacs-module-tests.el (mod-test-nanoseconds): New unit test.
+
+2019-04-24  Philipp Stephani  <address@hidden>
+
+       Fix return type of make_time.
+
+       make_time is documented to return a (TICKS . HZ) pair, so we can’t use
+       make_lisp_time.  Introduce a new conversion function instead.
+
+       * src/emacs-module.c (module_make_time): Use timespec_to_lisp to
+       correct return type.
+
+       * src/timefns.c (timespec_to_lisp): New function.
+       (make_lisp_time): Use it.
+
+       * test/src/emacs-module-tests.el (mod-test-add-nanosecond/valid):
+       Check return type.
+
+2019-04-24  Philipp Stephani  <address@hidden>
+
+       Add module functions to convert from and to big integers.
+
+       * src/module-env-27.h: Add new module functions to convert big
+       integers.
+
+       * src/emacs-module.h.in (emacs_mpz): Define if GMP is available.
+
+       * src/emacs-module.c (module_extract_big_integer)
+       (module_make_big_integer): New functions.
+       (initialize_environment): Use them.
+
+       * test/data/emacs-module/mod-test.c (Fmod_test_double): New test
+       function.
+       (emacs_module_init): Define it.
+
+       * test/src/emacs-module-tests.el (mod-test-double): New unit test.
+
+       * doc/lispref/internals.texi (Module Values): Document new functions.
+
+2019-04-24  Philipp Stephani  <address@hidden>
+
+       Add conversions to and from struct timespec to module interface.
+
+       Time values are a fundamental data type, and such conversions are hard
+       to implement within modules because of the various forms of time
+       values in Emacs Lisp.  Adding dedicated conversion functions can
+       significantly simplify module code dealing with times.
+
+       This approach uses nanosecond precision.  While Emacs in theory has
+       support for higher-precision time values, in practice most languages
+       and standards, such as POSIX, C, Java, and Go, have settled on
+       nanosecond-precision integers to represent time.
+
+       * src/emacs-module.h.in: Add header for struct timespec.
+
+       * src/module-env-27.h: Add module functions for time conversion.
+
+       * src/emacs-module.c (module_extract_time, module_make_time): New
+       functions.
+       (initialize_environment): Use them.
+
+       * test/data/emacs-module/mod-test.c (Fmod_test_add_nanosecond): New
+       test function.
+       (emacs_module_init): Define it.
+
+       * test/src/emacs-module-tests.el (mod-test-add-nanosecond/valid)
+       (mod-test-add-nanosecond/nil, mod-test-add-nanosecond/invalid): New
+       unit tests.
+
+       * doc/lispref/internals.texi (Module Values): Document time
+       conversion functions.
+
+2019-04-23  Eli Zaretskii  <address@hidden>
+
+       Revert "Remove font.c code commented out for a decade"
+
+       This reverts commit 64d0cd9810af6bd0c378fc6bc666c76ddfa97e40.
+
+       Rationale: any font-related code and comments, even if unused
+       for decades, serves as important source of useful information
+       in an area of Emacs code that is notoriously under-documented.
+
+       Please do NOT remove this stuff until we have an active
+       expert in this are on board, who will then decide whether
+       this can be retired.
+
+2019-04-23  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Don't link libXft when using cairo
+
+       * configure.ac: Check cairo early.  Don't try Xft if cairo is used.
+       * lwlib/lwlib-utils.h [USE_CAIRO]: Include cairo.h and fontconfig.h.
+       (XftFont, XftDraw, XftColor, XGlyphInfo) [USE_CAIRO]: New typedefs.
+       (XftFontOpenName, XftFontClose, XftDrawCreate, XftDrawDestroy)
+       (XftDrawRect, XftDrawStringUtf8, XftTextExtentsUtf8) [USE_CAIRO]: New 
macros.
+       (crxft_font_open_name, crxft_font_close, crxft_draw_create)
+       (crxft_draw_rect, crxft_draw_string, crxft_text_extents) [USE_CAIRO]: 
New
+       externs.
+       * lwlib/lwlib-utils.c [USE_CAIRO]: Include math.h, cairo-ft.h, and
+       cairo-xlib.h.
+       (crxft_font_open_name, crxft_font_close, crxft_draw_create)
+       (crxft_set_source_color, crxft_draw_rect, crxft_draw_string)
+       (crxft_text_extents) [USE_CAIRO]: New Xft compatibility functions.
+       * lwlib/xlwmenuP.h [USE_CAIRO]: Include lwlib-utils.h.
+       * lwlib/xlwmenu.c (display_menu_item) [USE_CAIRO]: Call
+       cairo_surface_mark_dirty and cairo_surface_flush.
+       * lwlib/lwlib-Xaw.c [USE_CAIRO]: Include stdlib.h and lwlib-utils.h.
+       (draw_text) [USE_CAIRO]: Call cairo_surface_flush.
+       * src/xsettings.c [USE_CAIRO]: Include fontconfig.h
+       (apply_xft_settings) [!HAVE_XFT]: Don't call XftDefaultSubstitute or
+       XftDefaultSet.
+       * lwlib/lwlib-Xaw.c:
+       * lwlib/lwlib-int.h:
+       * lwlib/xlwmenu.c:
+       * lwlib/xlwmenuP.h:
+       * src/xrdb.c:
+       * src/xsettings.c:
+       * src/xterm.c: Replace all #ifdef HAVE_XFT with #if defined USE_CAIRO ||
+       defined HAVE_XFT.
+       * src/xfns.c (x_default_font_parameter): Replace #ifdef HAVE_XFT with 
#if
+       defined USE_CAIRO || defined HAVE_XFT.
+
+2019-04-23  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/timer-list.el: Fix header-line alignment
+
+       Enable lexical-binding.
+       (cl-print-compiled, cl-print-compiled-button): Declare.
+       (timer-list-mode): Add spacing to align the header.
+
+2019-04-23  Philipp Stephani  <address@hidden>
+
+       * src/emacs-module.c: Add an additional requirement for API changes.
+
+2019-04-23  Paul Eggert  <address@hidden>
+
+       Remove some unnecessary #ifdef directives
+
+       These directives are in files that are compiled only if the
+       symbols are defined.
+       * src/gfilenotify.c: Remove unnecessary ‘#ifdef HAVE_GFILENOTIFY’.
+       * src/inotify.c: Remove unnecessary ‘#ifdef HAVE_INOTIFY’.
+       * src/kqueue.c: Remove unnecessary ‘#ifdef HAVE_KQUEUE’.
+
+2019-04-23  Stefan Monnier  <address@hidden>
+
+       * etc/package-keyring.gpg: Add the 2019 key
+
+2019-04-23  Paul Eggert  <address@hidden>
+
+       Remove font.c code commented out for a decade
+
+       * src/font.c (LSTRING_HEADER_SIZE, LSTRING_GLYPH_SIZE, check_gstring)
+       (check_otf_features, otf_list, otf_tag_symbol, otf_open)
+       (font_otf_capability, generate_otf_features)
+       (font_otf_DeviceTable, font_otf_ValueRecord)
+       (font_otf_Anchor, Ffont_drive_otf, Ffont_otf_alternates)
+       (Fdraw_string, syms_of_font): Remove "experimental and not
+       tested much" code that has been "#if 0"-ed out for more than a
+       decade and which was getting in the way of maintenance.
+
+2019-04-23  Philipp Stephani  <address@hidden>
+
+       Use three-argument form for out-of-range errors.
+
+       This provides more debugging hints for callers.
+
+       * src/emacs-module.c (module_copy_string_contents): Use three-argument
+       form of args-out-of-range.
+
+2019-04-23  Philipp Stephani  <address@hidden>
+
+       Use high-level integer conversion macro in a few cases.
+
+       INT_TO_INTEGER is more obviously correct and means we don’t have to
+       worry about data type sizes and signedness.
+
+       * src/json.c (json_parse_error): Use INT_TO_INTEGER.  The tiny
+       performance gain of make_fixed_natnum isn’t worth the trouble then
+       signaling an error.
+
+2019-04-23  Mattias Engdegård  <address@hidden>
+
+       Rename auto-revert-notify-watch-descriptor-hash-list
+
+       * lisp/autorevert.el
+       (auto-revert-notify-watch-descriptor-hash-list):
+       Rename to auto-revert--buffers-by-watch-descriptor.  Improved doc 
string.
+       (auto-revert-notify-rm-watch, auto-revert-notify-add-watch,
+       auto-revert-notify-handler): Use new name.
+
+2019-04-23  Michael Albinus  <address@hidden>
+
+       Remote processes cannot use a pipe process for stderr
+
+       * doc/lispref/processes.texi (Asynchronous Processes):
+       (Accepting Output): Remote processes cannot use a pipe process for
+       stderr.
+
+2019-04-23  Philipp Stephani  <address@hidden>
+
+       * src/json.c (json_make_string): Add missing cast.
+
+2019-04-23  Eli Zaretskii  <address@hidden>
+
+       Speed up JSON parsing
+
+       Thanks to Dmitry Gutov <address@hidden> for running many
+       benchmarks and for useful discussions.
+       * src/json.c (json_make_string): Speed up parsing of JSON
+       strings by optimizing the normal case of a valid UTF-8 string
+       being returned from libjansson.  (Bug#31138)
+
+2019-04-23  Philipp Stephani  <address@hidden>
+
+       Small fix for a JSON unit test.
+
+       * test/src/json-tests.el (json-parse-string/null): Make JSON object
+       syntactically valid.  This test is supposed to check whether an
+       escaped null character causes an error, but without quoting the string
+       it would be syntactically invalid in any case.
+
+2019-04-23  Alan Mackenzie  <address@hidden>
+
+       Optimize for typing characters into long C++ raw strings.
+
+       * lisp/progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare)
+       (c-font-lock-objc-methods) (c-font-lock-declarations, 
c-font-lock-enum-tail)
+       (c-font-lock-cut-off-declarators, c-font-lock-enclosing-decls): If the 
chunk
+       been fontified consists entirely of comments and strings, don't attempt 
to
+       perform the function's action.
+
+       * lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings): 
Don't
+       expand (c-new-BEG c-new-END) unnecessarily to the entire raw string 
being
+       fontified.
+       (c-fl-decl-start, c-fl-decl-end): When in a (raw or otherwise) string, 
don't
+       return a position outside of the string (which used to cause unneeded
+       fontification).
+
+2019-04-23  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Release xft_data in widget destroy callback to avoid visual distraction
+
+       * lwlib/lwlib-int.h (struct _widget_instance) [HAVE_XFT]: Remove 
nr_xft_data.
+       * lwlib/lwlib-Xaw.c (find_xft_data, xaw_update_one_widget) [HAVE_XFT]: 
Loop
+       while widget member is not NULL instead of using nr_xft_data.
+       (xaw_destroy_instance) [HAVE_XFT]: Move xft_data release code from here 
...
+       (destroy_xft_data) [HAVE_XFT]: ... to here.
+       (make_dialog) [HAVE_XFT]: Add destroy_xft_data as destroy callback for 
dialog.
+
+2019-04-22  Paul Eggert  <address@hidden>
+
+       Let plain ‘make’ work even not GNU Make
+
+       * Makefile.in (top_distclean): Clean makefile as well as Makefile.
+       * configure.ac: If not using plain ‘make’, create a makefile
+       so that plain ‘make’ simply calls $(MAKE).
+
+2019-04-22  Paul Eggert  <address@hidden>
+
+       Revert Vinternal_interpreter_environment tweak
+
+       Stefan Monnier pointed out examples like (funcall `(closure
+       ,(let ((cycle (list nil))) (setcdr cycle cycle)) () a)),
+       where the user can set Vinternal_interpreter_environment
+       indirectly.
+       * src/eval.c (Fsetq): Revert recent change, going back to Fassq.
+
+2019-04-22  Paul Eggert  <address@hidden>
+
+       Improve UBSan discussion in etc/DEBUG
+
+       * etc/DEBUG: Improve -gdwarf-N documentation.
+       Go into more detail about UndefinedBehaviorSanitizer.
+
+2019-04-22  Paul Eggert  <address@hidden>
+
+       Tweak Vinternal_interpreter_environment lookup
+
+       * src/eval.c (Fsetq, eval_sub): Use assq_no_quit instead
+       of Fassq for a list that cannot contain cycles or be that long.
+
+2019-04-22  Paul Eggert  <address@hidden>
+
+       Improve wur coverage on older GCCs
+
+       * src/conf_post.h (__has_attribute_warn_unused_result):
+       New macro for compilers lacking __has_attribute.
+       * src/systhread.h (__has_attribute): Remove ineffective define.
+       (ATTRIBUTE_WARN_UNUSED_RESULT): Work better on GCC 3.4 thru 4.
+
+2019-04-22  Paul Eggert  <address@hidden>
+
+       Go back to old way of checking json int range
+
+       Although the lisp.h macros really need improvement,
+       INTEGER_TO_INT is not the right way to go about it, as it
+       causes conversion from intmax_t to uintmax_t and back again,
+       which can cause a signal if the value is negative.
+       * src/lisp.h (INTEGER_TO_INT, ranged_integer_to_int)
+       (ranged_integer_to_uint): Remove, reverting recent changes to
+       this file.
+       * src/json.c (lisp_to_json): Revert to previous code,
+       as the change messes up with uintmax_t<->intmax_t conversion.
+
+2019-04-22  Philipp Stephani  <address@hidden>
+
+       * src/lisp.h (INTEGER_TO_INT): Fix bug.
+
+2019-04-22  Mattias Engdegård  <address@hidden>
+
+       Precise handling of filenotify `stopped' events
+
+       * lisp/autorevert.el (auto-revert-notify-handler):
+       When getting a `stopped' event, deal with it for the buffers it applies 
to,
+       rather than for all buffers in auto-revert mode.
+
+2019-04-22  Mattias Engdegård  <address@hidden>
+
+       * lisp/autorevert.el (auto-revert-notify-rm-watch): Simplify.
+
+2019-04-22  Mattias Engdegård  <address@hidden>
+
+       Revert "Don't remove notify descriptor that is already gone"
+
+       This reverts commit e9e807e9317ca7aa99a5dd220ee8586f8f4331bf,
+       which is no longer necessary as `file-notify-rm-watch' has been
+       made robust against reentry.
+
+2019-04-22  Mattias Engdegård  <address@hidden>
+
+       Make file-notify-rm-watch robust against reentry
+
+       Allow file-notify callbacks to call `file-notify-rm-watch', harmlessly,
+       after receiving a `stopped' event without triggering recursion.
+
+       * lisp/filenotify.el (file-notify--watch): Note that `callback' can be 
nil.
+       (file-notify--rm-descriptor): Set the `callback' field to nil before
+       sending `stopped'.
+       (file-notify-rm-watch): Don't do anything if the `callback' field is 
nil.
+
+2019-04-22  Philipp Stephani  <address@hidden>
+
+       Introduce a helper macro to convert a Lisp integer to a C integer.
+
+       This is similar to CONS_TO_INTEGER.  The inverse (INT_TO_INTEGER)
+       already exists.
+
+       * src/lisp.h (INTEGER_TO_INT): New macro.
+       (ranged_integer_to_int, ranged_integer_to_uint): New
+       functions.
+
+       * src/json.c (lisp_to_json): Use helper macro.
+
+2019-04-22  Philipp Stephani  <address@hidden>
+
+       Improve documentation around standard error pipes (Bug#35328).
+
+       * doc/lispref/processes.texi (Asynchronous Processes): Document
+       existence and properties of the standard error process.
+       (Accepting Output): Document that one has to accept output from the
+       standard error process separately.
+
+2019-04-22  Philipp Stephani  <address@hidden>
+
+       Module API: Don’t require null-terminated strings in make_string.
+
+       * src/emacs-module.c (module_make_string): Use make_unibyte_string, 
which
+       doesn’t require its argument to be null-terminated.  Since it always
+       returns a heap-allocated string, we don’t have to copy it any more
+       while decoding.
+       (module_decode): New helper function.
+
+2019-04-22  Philipp Stephani  <address@hidden>
+
+       Use utf-8-unix for coding system conversions in the module API.
+
+       Factor out conversions into helper functions to provide a simpler
+       interface.
+
+       * src/emacs-module.c (module_encode, module_decode_copy): New helper
+       functions.
+       (module_make_function, module_copy_string_contents)
+       (module_make_string): Use them.
+
+2019-04-22  Basil L. Contovounesios  <address@hidden>
+
+       Improve pure and side-effect-free docs
+
+       For discussion, see thread starting at:
+       https://lists.gnu.org/archive/html/emacs-devel/2019-04/msg00316.html
+       * doc/lispref/customize.texi (Composite Types): Do not overspecify
+       :match-alternatives predicates.
+       * doc/lispref/eval.texi (Intro Eval): Anchor definition of "side
+       effect" for cross-referencing...
+       * doc/lispref/functions.texi (What Is a Function): ...from here.
+       Define what a pure function is.
+       * doc/lispref/internals.texi (Writing Emacs Primitives): Describe
+       currently preferred approach to marking primitives as pure and
+       side-effect-free.
+       * doc/lispref/symbols.texi (Standard Properties): Expand description
+       of pure and side-effect-free properties.
+
+2019-04-22  Philipp Stephani  <address@hidden>
+
+       Refactoring: Inline a few macros.
+
+       Now that CATCHER_ALL catches signals as well, we can simplify
+       MODULE_HANDLE_NONLOCAL_EXIT a bit.
+
+       * src/emacs-module.c (MODULE_SETJMP, MODULE_SETJMP_1): Remove.
+       (MODULE_HANDLE_NONLOCAL_EXIT): Inline MODULE_SETJMP and
+       MODULE_SETJMP_1.
+
+2019-04-22  Michael Albinus  <address@hidden>
+
+       Some changes in tramp-tests
+
+       * test/lisp/net/tramp-tests.el (tramp-test32-shell-command):
+       Check for backward compatibility.
+       (tramp-test33-environment-variables): Apply a better check for
+       unset variable.
+
+2019-04-21  Paul Eggert  <address@hidden>
+
+       Mention AddressSanitizer etc. in etc/DEBUG
+
+       * etc/DEBUG: Modernize for AddressSanitizer etc.
+       * etc/NEWS: Defer to etc/DEBUG for this.
+
+2019-04-21  Paul Eggert  <address@hidden>
+
+       Remove --enable-checking=xmallocoverrun
+
+       It doesn’t work anymore, and these days ‘gcc -fsanitize=address’
+       does a better job anyway.
+       * configure.ac: Remove the option.
+       * configure.ac (ac_xmalloc_overrun, XMALLOC_OVERRUN_CHECK):
+       * src/alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD)
+       (XMALLOC_OVERRUN_CHECK_SIZE, XMALLOC_OVERRUN_SIZE_SIZE)
+       (xmalloc_overrun_check_header, xmalloc_overrun_check_trailer)
+       (xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
+       (overrun_check_realloc, overrun_check_free):
+       Remove.  All uses removed.
+       * etc/NEWS: Mention this.
+
+2019-04-21  Paul Eggert  <address@hidden>
+
+       Remove --enablechecking=conslist configure option
+
+       * configure.ac: Remove the option.
+       * configure.ac (ac_gc_check_cons_list, GC_CHECK_CONS_LIST):
+       * src/alloc.c (check_cons_list) [GC_CHECK_CONS_LIST]:
+       * src/lisp.h (lisp_h_check_cons_list, check_cons_list):
+       Remove.  All uses removed.
+       * etc/NEWS: Mention this.
+
+2019-04-21  Paul Eggert  <address@hidden>
+
+       Simplify XPNTR
+
+       Because XPNTR now uses ATTRIBUTE_NO_SANITIZE_UNDEFINED,
+       it can be simplified.
+       * src/alloc.c (macro_PNTR_ADD, PNTR_ADD, macro_XPNTR): Remove.
+       (XPNTR): Open-code rather than using the removed macros and
+       functions.  Also, simplify by using LISP_WORD_TAG.
+
+2019-04-21  Paul Eggert  <address@hidden>
+
+       Fix drain_reloc_list alignment bug
+
+       * src/pdumper.c (dump_charset): Use alignof (struct charset),
+       not alignof (int), since struct charset might be more strictly
+       aligned than int.  I think this is just a minor performance
+       issue, but we might as well use the correct alignment.
+       (drain_reloc_list): Use an alignment instead of a size for the
+       output alignment.  This prevents undefined behavior when
+       alignof (struct emacs_reloc) == 8 and sizeof (dump_off) == 4
+       when building on x86-64 with gcc -fsanitize=undefined.
+
+2019-04-21  Paul Eggert  <address@hidden>
+
+       Port dump_bitset_clear to -fsanitize=undefined
+
+       * src/pdumper.c (dump_bitset_clear):
+       Pacify -fsanitize=undefined by avoiding memset (NULL, x, 0),
+       which strictly speaking has undefined behavior although it
+       works on all production platforms I know.
+
+2019-04-21  Paul Eggert  <address@hidden>
+
+       Port to recent gcc -fsanitize=undefined
+
+       * src/alloc.c (XPNTR): Add ATTRIBUTE_NO_SANITIZE_UNDEFINED and
+       remove ATTRIBUTE_UNUSED.  Do not define as a macro, so that
+       ATTRIBUTE_NO_SANITIZE_UNDEFINED works.
+       * src/lisp.h (lisp_h_XSYMBOL): Remove.  All uses removed.
+       With recent GCC the macro does not work with -fsanitize=undefined,
+       and the macro can be omitted as its only function is to optimize -O0.
+
+2019-04-21  Basil L. Contovounesios  <address@hidden>
+
+       Move side-effect-free from unsafep.el to subr.el
+
+       * lisp/emacs-lisp/unsafep.el: Move side-effect-free property setting
+       from here...
+       * lisp/subr.el: ...to here, as function declarations for modularity.
+
+2019-04-21  Paul Eggert  <address@hidden>
+
+       Fix double-free in pdumper
+
+       Revert the double-free bug that I introduced in
+       2019-03-11T15:20:54Z!address@hidden.
+       * src/pdumper.c (dump_mmap_reset): Do not free the private member;
+       that’s the release function’s job.
+       (dump_mm_heap_cb_release): Free cb if its refcount goes to zero.
+       (dump_mmap_contiguous_heap): Mention memory leak in comment.
+
+2019-04-21  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       9d7e08d (origin/emacs-26) Avoid false positives and false negatives o...
+       75b589c Fix markup related to quoting in Info
+       fd6ff29 Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emac...
+       cd2204f Add a package: line to c-submit-bug-report.
+       a992dca ; Remove empty NEWS sections
+       ea67270 ; Add NEWS sections for 26.3
+       45b0946 ; Bump Emacs version to 26.2.50
+       aae8cc3 * admin/admin.el (set-version): Add NEWS headers for a .50 ve...
+
+2019-04-21  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       cd2204f Add a package: line to c-submit-bug-report.
+       a992dca ; Remove empty NEWS sections
+       ea67270 ; Add NEWS sections for 26.3
+
+       Conflicts:
+               etc/NEWS
+
+2019-04-21  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       aae8cc3 * admin/admin.el (set-version): Add NEWS headers for a .50 ve...
+
+2019-04-21  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       037970f Document insert-image-file's return value (Bug#32978)
+       598b45a Autoload cua-toggle-rectangle-mark (Bug#34947)
+       95bd56d Tell xclip not to expect job-control under eshell (Bug#35257)
+       9997bbb ; * src/emacs.c: Fix typo in comment (Bug#35320).
+       a4ad7be Fix off-by-one-link error in image--set-property
+
+2019-04-20  Paul Eggert  <address@hidden>
+
+       Port make-fingerprint to LeakSanitizer
+
+       * lib-src/make-fingerprint.c (buf): Now static,
+       to pacify LeakSanitizer.
+
+2019-04-20  Michael R. Mauger  <address@hidden>
+       Fix Bug#35307.
+
+       * lisp/progmodes/sql.el(sql-product-alist): Added
+       :prompt-cont-regexp for ms.
+
+       Looking for experience with Microsofts SQLCMD interpreter and
+       adjustments needed for Emacs to support it.
+
+2019-04-20  Michael R. Mauger  <address@hidden>
+       Fix  Bug#24483.
+
+       * lisp/progmodes/sql.el
+       (sql-interactive-remove-continuation-prompt): Properly protect
+       `sql-prompt-cont-regexp'.
+       (sql-interactive-mode): Same.
+
+        * lisp/progmodes/sql.el
+       (sql-product-alist): Corrected :terminator defns.
+       (sql-debug-send): New variable.
+       (sql-send-string): Use it and correct buffer context.
+       (sql-send-magic-terminator): Use `sql-input-sender'.
+       (sql-placeholders-filter): Bug#11481 Don't recursively replace 
placeholders
+       * test/lisp/progmodes/sql-tests.el
+       (sql-test-placeholder-filter): Test placeholder functionality.
+
+2019-04-20  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix text metrics calculation in Xft support for lwlib
+
+       * lwlib/lwlib-Xaw.c (get_text_width_and_height) [HAVE_XFT]:
+       * lwlib/xlwmenu.c (string_width) [HAVE_XFT]: Use xOff member instead of 
width.
+
+2019-04-20  Alexander Gramiak  <address@hidden>
+
+       * src/configure.ac: Check for GTK 2 features only on GTK 2
+
+2019-04-20  YAMAMOTO Mitsuharu  <address@hidden>
+
+       * lwlib/lwlib-Xaw.c (draw_text) [HAVE_XFT]: Fix memory leak.
+
+2019-04-20  Dmitry Gutov  <address@hidden>
+
+       Support amending the last commit using VC-Hg
+
+       * lisp/vc/log-edit.el (log-edit--toggle-amend): Extract from
+       vc-git-log-edit-toggle-amend (bug#34944).
+
+       * lisp/vc/vc-hg.el (vc-hg-log-edit-toggle-amend): New function.
+       Use the aforementioned.
+       (vc-hg-log-edit-mode-map): New variable.
+       (vc-hg-log-edit-mode): New major mode.
+
+2019-04-20  Michael Albinus  <address@hidden>
+
+       Mark different-diagnostic-types as failed on emba.
+
+       * test/lisp/progmodes/flymake-tests.el (different-diagnostic-types):
+       Expect also failure on emba.gnu.org.
+
+2019-04-20  Paul Eggert  <address@hidden>
+
+       Improve XDG_RUNTIME_DIR diagnostic
+
+       * lib-src/emacsclient.c (set_local_socket):
+       If there appears to be an XDG runtime directory for the user
+       but XDG_RUNTIME_DIR is unset, suggest setting it while warning
+       about potential security issues (Bug#35300).
+
+2019-04-20  Alan Mackenzie  <address@hidden>
+
+       Fix Pike Mode's autodoc doc comments style's continued lines.
+
+       * lisp/progmodes/cc-engine.el (c-forward-sws, c-backward-sws): Recognize
+       matches of c-doc-line-join-re as syntactic whitespace.
+       (c-find-decl-prefix-search): Recognize and move over matches of
+       c-doc-line-join-re as whitespace.
+       (c-find-decl-spots): Before moving backward a char, check (bobp).  
Before
+       moving forward over a comment, check it isn't possibly a "bright" 
comment.
+
+       * lisp/progmodes/cc-fonts.el (c-get-doc-comment-style): New function,
+       extracted from c-compose-keywords-list.
+       (c-compose-keywords-list): Call the above new function.
+       (pike-font-lock-keywords, pike-font-lock-keywords-2)
+       (pike-font-lock-keywords-3): Call c-set-doc-comment-res.
+       (c-doc-line-join-re, c-doc-bright-comment-start-re, 
c-doc-line-join-end-ch):
+       New variables.
+       (c-set-doc-comment-re-element, c-set-doc-comment-char-list): New macros.
+       (c-set-doc-comment-res): New function.
+       (c-font-lock-doc-comments): For consistency and repeatability, in a 
sequence
+       of C++ style doc comments, don't fontify the region between BOL and the
+       comment marker.
+       (autodoc-line-join-re, autodoc-bright-comment-start-re)
+       (autodoc-line-join-end-ch): New variables.
+
+       * lisp/progmodes/cc-mode.el (c-doc-fl-decl-start, c-doc-fl-decl-end): 
New
+       functions.
+       (c-change-expand-fl-region, c-context-expand-fl-region): Call the above 
two
+       new functions for extra possibilities for the start and end of a 
construct.
+
+       * doc/misc/cc-mode.texi (Doc Comments): Add a sentence drawing 
attention to
+       the possibility of fontifying constructs within a doc comment.
+
+2019-04-19  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/smie.el (smie-indent-comment-continue): Single-char 
case.
+
+       Make it so the comment-continue is aligned with the comment-start when
+       comment-start is a single-char.
+
+2019-04-19  YAMAMOTO Mitsuharu  <address@hidden>
+
+       * src/ftcrfont.c (ftcrfont_shape): Fix last change.
+
+2019-04-19  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Use bitmap strikes as fallbacks for ftcr font backend
+
+       * src/ftfont.h (struct font_info): New member bitmap_strike_index.
+       * src/ftfont.c (ftfont_open2): Try bitmap strikes as fallbacks.
+       (ftfont_open): Discard bitmap strikes.
+       * src/ftcrfont.c (ftcrfont_open): Recalculate metrics for bitmap 
strikes.
+       (ftcrfont_get_bitmap, ftcrfont_anchor_point, ftcrfont_shape): New 
functions.
+       (struct font_driver): Use them.
+
+2019-04-19  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/radix-tree.el (pcase-defmacro): Improve docstring
+
+       * lisp/emacs-lisp/byte-run.el (define-obsolete-variable-alias): Tweak 
doc
+
+       * lisp/calendar/time-date.el (date-to-time): 'signal' only takes 2 args
+
+       * lisp/calendar/parse-time.el (parse-time-string): Use functionp and 
setf
+
+2019-04-19  Paul Eggert  <address@hidden>
+
+       Fix GC_CHECK_STRING_BYTES false alarm with pdumper
+
+       * src/alloc.c (string_bytes): Don’t abort on strings
+       taken from the dumped file.
+
+2019-04-19  Paul Eggert  <address@hidden>
+
+       Fix another hash false alarm
+
+       * src/pdumper.c (dump_vectorlike): Fix hash.
+
+2019-04-19  Paul Eggert  <address@hidden>
+
+       * src/emacs-module.c (value_storage_contains_p): Fix typo.
+
+2019-04-19  Philipp Stephani  <address@hidden>
+
+       Remove some ineffective #ifdefs.
+
+       Since DEFSYM doesn't by itself do anything and make-docfile ignores
+       preprocessor statements, conditional compilation of DEFSYMs is
+       ineffective.
+
+       * src/data.c (syms_of_data): Remove ineffective #ifdefs.
+
+2019-04-19  Philipp Stephani  <address@hidden>
+
+       Remove some #ifdefs for user pointers.
+
+       Even if Emacs is compiled without module support, we don't have to
+       comment out every bit of user pointer support.  Defining the basic
+       structures and functions and detecting user pointers in switch
+       statements is harmless, and we're already doing the same for module
+       functions.  Removing these #ifdefs makes the code a bit easier to
+       read.
+
+       * src/lisp.h (PVEC_USER_PTR, struct Lisp_User_Ptr, USER_PTRP)
+       (XUSER_PTR): Define unconditionally.
+
+       * src/data.c (Ftype_of):
+       * src/alloc.c (cleanup_vector):
+       * src/print.c (print_vectorlike):
+       * src/pdumper.c (dump_vectorlike): Remove #ifdef for user pointers.
+
+2019-04-19  Philipp Stephani  <address@hidden>
+
+       Remove special-casing of tagged pointers.
+
+       This partially reverts commit
+       09b2b8a5ce5b542856f93b645db51eb11cf9855a.
+
+       * src/alloc.c (mark_maybe_pointer): Remove special-casing of tagged
+       pointers.  After commit 09d746dad36e4780d379f975a84b1b076da78c50,
+       modules no longer rely on tagged pointers.
+
+2019-04-19  Philipp Stephani  <address@hidden>
+
+       Refactoring: Reduce code duplication
+
+       * src/emacs-module.c (value_storage_contains_p): New function.
+       (module_free_global_ref, value_to_lisp): Use it.
+
+2019-04-19  Mattias Engdegård  <address@hidden>
+
+       Remove subsumed regexp branches
+
+       * lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings)
+       (c-after-change-mark-abnormal-strings): Remove `\r' subsumed by `.'.
+
+2019-04-19  Paul Eggert  <address@hidden>
+
+       Fix Fload dangling pointer
+
+       * src/lread.c (Fload): Expand decl’s lifetime to match its use.
+       Bug found by gcc -fsanitize=address.
+
+2019-04-19  Paul Eggert  <address@hidden>
+
+       Fix comment and tweak eval_sub
+
+       * src/eval.c (eval_sub): Check whether Fassq returns Qnil,
+       not whether it returns a cons, as NILP is faster than CONSP
+       nowadays.  Remove incorrect comment “only original_fun and
+       original_args have values that will be used below”; instead,
+       move declarations around so that the set of variables with
+       useful values is obvious.
+
+2019-04-19  Paul Eggert  <address@hidden>
+
+       Fix dump_map_file on unusual platforms
+
+       * src/pdumper.c (dump_map_file): Fix recently-introduced typo
+       on platforms that support neither POSIX nor MS-Windows VM.
+
+2019-04-19  Paul Eggert  <address@hidden>
+
+       Minor lread.c tweaks
+
+       * src/lread.c (load_warn_unescaped_character_literals):
+       Use AUTO_STRING to help the GC.
+       (Fload): Use bool for boolean.
+
+2019-04-19  Eric Abrahamsen  <address@hidden>
+
+       Clear gnus-group-list when the newsrc-hashtb is recreated
+
+       * lisp/gnus/gnus-start.el (gnus-make-hashtable-from-newsrc-alist):
+         This routine also happens when re-sorting groups; make sure we're
+         clearing the group list.
+
+2019-04-19  Philipp Stephani  <address@hidden>
+
+       Make warning about unescaped character literals more helpful.
+
+       See Bug#31676.
+
+       * lisp/emacs-lisp/byte-run.el
+       (byte-run--unescaped-character-literals-warning): New defun.
+
+       * src/lread.c (load_warn_unescaped_character_literals): Use new defun.
+       (syms_of_lread): Define symbol for new defun.
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Use new
+       defun.
+
+       * 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.
+
+2019-04-19  Philipp Stephani  <address@hidden>
+
+       Refactoring: simplify definition of some internal variables.
+
+       In some cases, we never specbind internal objects, so they don't have
+       to be symbols.  Rather than using DEFSYM/DEFVAR and then uninterning
+       the symbols, use plain static variables.  Call staticpro for all of
+       them, to protect them from the garbage collector.
+
+       * src/eval.c (syms_of_eval): Use a static variable for
+       Qcatch_all_memory_full.
+
+       * src/emacs-module.c (syms_of_module): Use static variables for
+       Vmodule_refs_hash, Vmodule_runtimes, and Vmodule_environments.
+
+2019-04-19  Eric Abrahamsen  <address@hidden>
+
+       Don't check for group existence in gnus-group-goto-group
+
+       * lisp/gnus/gnus-group.el (gnus-group-goto-group): Just look for the
+         string.
+
+2019-04-19  Paul Eggert  <address@hidden>
+
+       Fix regexp branches that subsume other branches
+
+       Problems reported by Mattias Engdegård in:
+       https://lists.gnu.org/r/emacs-devel/2019-04/msg00803.html
+       * lisp/arc-mode.el (archive-rar-summarize):
+       * lisp/eshell/em-hist.el (eshell-hist-word-designator):
+       * lisp/info.el (Info-dir-remove-duplicates):
+       * lisp/international/ja-dic-cnv.el (skkdic-convert-postfix)
+       (skkdic-convert-prefix, skkdic-collect-okuri-nasi):
+       * lisp/progmodes/cc-awk.el (c-awk-esc-pair-re):
+       * lisp/xml.el (xml-att-type-re):
+       Omit regexp branches that subsume other branches.
+       * lisp/progmodes/cperl-mode.el (cperl-beautify-regexp-piece):
+       $ and ^ aren’t simple-codes.
+
+2019-04-19  Paul Eggert  <address@hidden>
+
+       Fix mail-extr regexp typo with ".".
+
+       Problem reported by Mattias Engdegård in:
+       https://lists.gnu.org/r/emacs-devel/2019-04/msg00543.html
+       * lisp/mail/mail-extr.el (mail-extr-telephone-extension-pattern):
+       Escape the trailing optional period after an abbreviation.
+
+2019-04-19  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-adb.el (tramp-adb-prompt): Remove repetition of 
expression
+
+       matching an empty string.
+
+2019-04-19  Michael Albinus  <address@hidden>
+
+       Do not handle :stop in tramp-*-handle-make-process
+
+       * lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Do not
+       handle :stop anymore.
+
+2019-04-19  Philipp Stephani  <address@hidden>
+
+       Remove :stop key from make-process.
+
+       This has never worked and caused issues such as Bug#30460.
+
+       * src/process.c (Fmake_process): Don't accept :stop key any more.
+       (syms_of_process): Define needed symbol 'null'.
+
+       * test/src/process-tests.el (make-process/stop): New unit test.
+
+       * doc/lispref/processes.texi (Asynchronous Processes): Remove :stop
+       key from manual.
+
+2019-04-19  Michael Albinus  <address@hidden>
+
+       Adapt tramp-test32-shell-command
+
+       * test/lisp/net/tramp-tests.el (tramp-test32-shell-command):
+       Check "tput" before running `shell-command-width' test.
+
+2019-04-19  Philipp Stephani  <address@hidden>
+
+       Add a new user option 'ido-big-directories'.
+
+       This provides an alternative to 'ido-max-directory-size', for
+       directories that are statically known to be too big for Ido
+       completion.
+
+       * lisp/ido.el (ido-big-directories): New user option.
+       (ido-directory-too-big-p): Use it.
+
+       * test/lisp/ido-tests.el (ido-directory-too-big-p): New unit test.
+
+2019-04-19  Philipp Stephani  <address@hidden>
+
+       Use eassume (false) for branch that's never taken.
+
+       * src/json.c (json_handle_nonlocal_exit): Use eassume (false) since
+       this branch is never taken.
+
+2019-04-19  Eli Zaretskii  <address@hidden>
+
+       Fix compilation warning due to a recent change
+
+       * src/json.c (json_handle_nonlocal_exit): Always return a
+       value.
+
+2019-04-18  YAMAMOTO Mitsuharu  <address@hidden>
+
+       * src/ftcrfont.c (ftcrfont_glyph_extents): Activate ft_size_draw.
+
+       * src/ftcrfont.c (ftcrfont_open): Avoid returning while blocking input.
+
+2019-04-18  Philipp Stephani  <address@hidden>
+
+       Refactoring: have CATCHER_ALL also catch signals.
+
+       In all cases where we use a CATCHER_ALL handler we also want to catch
+       signals.  Therefore have 'signal' respect CATCHER_ALL.  Adapt internal
+       interfaces so that handlers can distinguish among the two types of
+       nonlocal exits in CATCHER_ALL handlers.
+
+       * src/lisp.h (enum nonlocal_exit): New enum.
+       (struct handler): Add member 'nonlocal_exit' to hold the type of
+       nonlocal exit during stack unwinding.
+
+       * src/eval.c (signal_or_quit): Also respect CATCHER_ALL handlers.
+       (unwind_to_catch): Store nonlocal exit type in catch structure.
+       (Fthrow, signal_or_quit): Adapt callers.
+       (internal_catch_all): Install only one handler.  Give handler a
+       nonlocal exit type argument.
+       (internal_catch_all_1): Remove, no longer needed.
+
+       * src/emacs-module.c (MODULE_SETJMP): Install only one handler.
+       (module_handle_nonlocal_exit): New function to handle all nonlocal
+       exits.
+       (MODULE_SETJMP_1): Pass nonlocal exit type to handler function.
+       (module_handle_signal, module_handle_throw): Remove, no longer needed.
+
+       * src/json.c (json_handle_nonlocal_exit): New helper function.
+       (json_insert_callback): Adapt to change in 'internal_catch_all'.
+
+2019-04-18  Philipp Stephani  <address@hidden>
+
+       Update module documentation for bignum support.
+
+       * doc/lispref/internals.texi (Module Values): Update documentation for
+       'make_integer' and 'extract_integer' for bignum support.
+
+2019-04-18  Philipp Stephani  <address@hidden>
+
+       * lib-src/make-fingerprint.c (main): Properly initialize 'prog'
+
+       * src/emacs-module.c: Add instructions how to change the module API
+
+2019-04-18  Paul Eggert  <address@hidden>
+
+       Fix make-fingerprint off-by-one bug
+
+       Problem reported by Alex Gramiak in:
+       https://lists.gnu.org/r/emacs-devel/2019-04/msg00784.html
+       * lib-src/make-fingerprint.c (main): Fix recently-introduced
+       off-by-one bug when accessing args after -r.
+
+2019-04-18  Eric Abrahamsen  <address@hidden>
+
+       Only encode Gnus group names if they come from symbol-name
+
+       * lisp/gnus/gnus-start.el (gnus-active-to-gnus-format): Names that
+         were strings to begin with should already be properly encoded.
+
+2019-04-18  Paul Eggert  <address@hidden>
+
+       Mark _Noreturn error functions as cold
+
+       On my platform this made ‘make compile-always’ 1.3% faster.
+       Suggested by Alex Gramiak in:
+       https://lists.gnu.org/r/emacs-devel/2019-04/msg00684.html
+       * configure.ac (nw): Don’t use -Wsuggest-attribute=cold.
+       * lib-src/make-docfile.c (write_globals):
+       Mark noreturn functions as cold.
+       * src/callproc.c (exec_failed):
+       * src/data.c (wrong_length_argument, wrong_type_argument):
+       * src/emacs-module.c (module_abort):
+       * src/emacs.c (terminate_due_to_signal):
+       * src/eval.c (unwind_to_catch):
+       * src/image.c (my_png_error, my_error_exit):
+       * src/json.c (json_out_of_memory, json_parse_error):
+       * src/keyboard.c (quit_throw_to_read_char, user_error):
+       * src/lisp.h (die, wrong_type_argument, wrong_choice)
+       (args_out_of_range, args_out_of_range_3, circular_list)
+       (buffer_overflow, memory_full, buffer_memory_full)
+       (string_overflow, xsignal, xsignal0, xsignal1, xsignal2)
+       (xsignal3, signal_error, overflow_error, error, verror)
+       (nsberror, report_file_errno, report_file_error)
+       (report_file_notify_error, terminate_due_to_signal)
+       (emacs_abort, fatal):
+       * src/lread.c (load_error_old_style_backquotes)
+       (end_of_file_error, invalid_syntax):
+       * src/pdumper.c (error_unsupported_dump_object):
+       * src/puresize.h (pure_write_error):
+       * src/search.c (matcher_overflow):
+       * src/sound.c (sound_perror, alsa_sound_perror):
+       * src/sysdep.c (handle_arith_signal):
+       * src/systime.h (time_overflow):
+       * src/term.c (maybe_fatal, vfatal):
+       * src/textprop.c (text_read_only):
+       * src/timefns.c (invalid_time_zone_specification)
+       (time_error, invalid_hz):
+       * src/xterm.c (x_connection_closed):
+       Use AVOID instead of _Noreturn void, so that it’s marked cold.
+       * src/conf_post.h (__has_attribute_cold) [!__has_attribute]:
+       New macro.
+       (ATTRIBUTE_COLD): New macro.
+       * src/frame.h (WINDOW_SYSTEM_RETURN): Add ATTRIBUTE_COLD.
+       * src/lisp.h (AVOID): New macro.
+       * src/xterm.c: Omit unnecessary static decls, so that we needn’t
+       worry about which functions should be marked cold.
+       (x_io_error_quitter): Mark as cold.
+
+2019-04-17  YAMAMOTO Mitsuharu  <address@hidden>
+
+       * src/ftcrfont.c (ftcrfont_glyph_extents): Fix last change.
+
+2019-04-17  Philipp Stephani  <address@hidden>
+
+       Add ERT explainer for 'tramp--test-file-attributes-equal-p'
+
+       * test/lisp/net/tramp-tests.el (tramp--test-file-attributes-equal-p):
+       Use ERT explainer for 'equal' to improve failure messages.
+
+2019-04-17  Michael Albinus  <address@hidden>
+
+       Fix tramp-test32-shell-command
+
+       * test/lisp/net/tramp-tests.el (tramp-test32-shell-command):
+       Run only if "tput" exist.
+
+2019-04-17  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       a1c53d4 (origin/emacs-26) * admin/admin.el (make-manuals-dist--1): Up...
+       d0f745f Document some compilation-mode faces
+       23ccba0 Mention the assignment form in "Copyright Assignment"
+       0f5568e Fix confusing wording in the user manual
+       70ec392 Fix the MSDOS build when running under CWSDPMI
+       7a608fc * lisp/progmodes/python.el: Be more careful about temp file r...
+
+2019-04-17  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       266c622 Downcase charset
+       92f3459 Update for Emacs-26
+       beb4eac * doc/lispref/display.texi (Showing Images): Fix a typo.  (Bu...
+
+2019-04-17  Michael Albinus  <address@hidden>
+
+       Fix Bug#35241
+
+       * lisp/files.el (executable-find): Quote default-directory.  (Bug#35241)
+
+       * test/lisp/files-tests.el (files-tests-executable-find): New test.
+
+2019-04-17  Michael Albinus  <address@hidden>
+
+       * test/lisp/files-tests.el: Unify test names
+
+       * test/lisp/files-tests.el (files-tests-local-variables)
+       (files-tests-bug-18141, files-tests-make-temp-file-empty-prefix)
+       (files-tests-bug-21454)
+       (files-tests-save-buffers-kill-emacs--confirm-kill-processes)
+       (files-tests-read-file-in-~)
+       (files-tests-file-name-non-special--subprocess)
+       (files-tests-file-name-non-special--buffers)
+       (files-tests-insert-directory-wildcard-in-dir-p)
+       (files-tests-make-directory, files-tests-no-file-write-contents)
+       (files-tests-copy-directory, files-tests-abbreviated-home-dir):
+       Unify test names.
+
+2019-04-17  Michael Albinus  <address@hidden>
+
+       Test `shell-command-width' in Tramp
+
+       * test/lisp/net/tramp-tests.el
+       (tramp--test-shell-command-to-string-asynchronously): Move up.
+       (tramp-test32-shell-command): Test `shell-command-width'.
+
+2019-04-16  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Use cairo_scaled_font_t object for text drawing and metrics calculation
+
+       * src/ftfont.h (struct font_info): Replace member cr_font_face of type
+       cairo_font_face_t * with cr_scaled_font of type cairo_scaled_font_t *.
+       * src/ftcrfont.c: Include math.h for floor, ceiling, and lround.
+       (ftcrfont_glyph_extents): Use cairo_scaled_font_glyph_extents.
+       (ftcrfont_open): Create cairo_scaled_font_t object and set it to
+       cr_scaled_font member of struct font_info.
+       (ftcrfont_close): Use cairo_scaled_font_destroy.
+       (ftcrfont_draw): Use cairo_set_scaled_font.
+
+2019-04-16  Andrii Kolomoiets  <address@hidden>  (tiny change)
+
+       Make python-shell-prompt-block-regexp match IPython prompt
+
+       * lisp/progmodes/python.el (python-shell-prompt-block-regexp): Match
+       also IPython's multiline prompt.  It allows to correctly disable
+       non-native completions during multiline statement in
+       inferior-python-mode that runs IPython interpreter (Bug#34582).
+
+2019-04-16  Juri Linkov  <address@hidden>
+
+       * etc/NEWS: Mention new xref faces (bug#23179)
+
+2019-04-16  Juri Linkov  <address@hidden>
+
+       * lisp/vc/diff-mode.el (diff-syntax-fontify-hunk): Erase buffer
+
+       before inserting file contents to *diff-syntax-file*.
+       Use absolute file names.
+
+2019-04-16  Paul Eggert  <address@hidden>
+
+       * GNUmakefile: Update comment.
+
+2019-04-16  Glenn Morris  <address@hidden>
+
+       * make-dist (possibly_non_vc_files): Remove recently deleted file.
+
+2019-04-15  Paul Eggert  <address@hidden>
+
+       Fix uninit var in widget.c
+
+       * src/widget.c (EmacsFrameQueryGeometry):
+       Avoid use of uninitialized variables ok_width, ok_height (Bug#35277).
+
+2019-04-15  Paul Eggert  <address@hidden>
+
+       Remove Vparam_value_alist
+
+       * src/xfaces.c (Vparam_value_alist):
+       Remove.  All uses removed.
+       (Finternal_set_lisp_face_attribute):
+       Simplify by using AUTO_FRAME_ARG.
+
+2019-04-15  Noam Postavsky  <address@hidden>
+
+       Properly bracket concat of comment-start-skip (Bug#34805)
+
+       * lisp/emacs-lisp/smie.el (smie-indent-fixindent):
+       * lisp/cedet/semantic/doc.el (semantic-doc-snarf-comment-for-tag):
+       * lisp/progmodes/fortran.el (fortran-previous-statement)
+       (fortran-next-statement)
+       (fortran-fill-statement):
+       * lisp/progmodes/vhdl-mode.el (vhdl-beginning-of-statement): Bracket
+       comment-start-skip and comment-end-skip to avoid unexpected regexp
+       operator precedence.
+
+2019-04-15  Eli Zaretskii  <address@hidden>
+
+       Minor change in a comment
+
+       * test/src/callproc-tests.el
+       (call-process-w32-debug-spawn-error): Minor copyedits of the
+       commentary.
+
+2019-04-15  Eli Zaretskii  <address@hidden>
+
+       Fix MS-Windows build broken by make-fingerprint changes
+
+       * lib-src/make-fingerprint.c (fseeko) [WNDOWSNT]: Define to
+       fseeko64 for non-MinGW64 MinGW.
+
+       * lib-src/ntlib.c (stat): Fix calculation of file size.
+       (fstat): New function, a subset of src/w32.c:fstat.  This is
+       needed because make-fingerprint.c now calls 'fstat', and the
+       MS version will fail to produce reliable results because
+       nt/inc/sys/stat.h redefines 'struct stat'.
+
+2019-04-15  Michael Albinus  <address@hidden>
+
+       * .gitlab-ci.yml (test-filenotify-gio): Add autorevert changes.
+
+2019-04-15  Mattias Engdegård  <address@hidden>
+
+       Don't remove notify descriptor that is already gone
+
+       * lisp/autorevert.el (auto-revert-use-notify, auto-revert-mode,
+       global-auto-revert-mode, auto-revert-notify-rm-watch,
+       auto-revert-notify-add-watch, auto-revert-notify-handler,
+       auto-revert-notify-rm-watch-callback):
+       Don't remove a notify descriptor after receiving a `stopped' 
notification
+       event, because the descriptor is then already gone and any attempt to
+       remove it causes a recursive call to `auto-revert-notify-handler'.
+
+2019-04-15  Michael Albinus  <address@hidden>
+
+       * doc/misc/tramp.texi: Fix direntry.
+
+2019-04-14  Paul Eggert  <address@hidden>
+
+       Remove static var system_eol_type
+
+       * src/coding.c (system_eol_type): Remove.
+       (coding_inherit_eol_type, syms_of_coding):
+       Simplify to avoid the need for system_eol_type.
+
+2019-04-14  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Avoid compiler warnings on cairo build
+
+       * src/image.c (jpeg_load_body) [USE_CAIRO]: #ifdef out USE_SAFE_ALLOCA
+       and SAFE_FREE.
+       * src/xterm.c (x_composite_image) [USE_CAIRO]: #ifdef out unused 
function.
+       (x_draw_image_glyph_string) [USE_CAIRO]: #ifdef out unused variable 
pixmap.
+
+2019-04-14  Noam Postavsky  <address@hidden>
+
+       Let debugger handle process spawn errors on w32 (Bug#33016)
+
+       Since child_setup() is called between block_input()...unblock_input(),
+       when an error is signaled the Lisp debugger is prevented from
+       starting.  Therefore, let the callers signal the error instead (which
+       they already do for non-w32 platforms, just the error message needs an
+       update).
+       * src/callproc.c (child_setup) [WINDOWSNT]: Don't call
+       report_file_error here.
+       (call_process) [WINDOWNT]:
+       * src/process.c (create_process) [WINDOWSNT]: Call report_file_errno
+       here instead, after the unblock_input() call, same as for !WINDOWSNT.
+       * src/lisp.h (CHILD_SETUP_ERROR_DESC): New preprocessor define.  Flip
+       the containing ifndef DOS_NT branches so that it's ifdef DOS_NT.
+       * src/eval.c (when_entered_debugger): Remove.
+       (syms_of_eval) <internal-when-entered-debugger>: Define it as a Lisp
+       integer variable instead.
+       (maybe_call_debugger): Update comment.
+       * test/src/process-tests.el (make-process-w32-debug-spawn-error):
+       * test/src/callproc-tests.el (call-process-w32-debug-spawn-error): New
+       tests.
+
+2019-04-14  Alexander Gramiak  <address@hidden>
+
+       Bump minimum GTK versions to 2.24 and 3.10
+
+       * configure.ac: Bump required GTK 2 and GTK 3 versions and the
+       associated GLib versions. Remove obsolete AC_CHECK_FUNCS calls. These
+       check for functions available in later GTK 2 versions. These checks
+       and can safely be removed with the exception of
+       gtk_window_set_has_resize_grip, which according to a comment in
+       gtkutil.c causes an issue in Ubuntu's GTK 2.
+
+       * src/gtkutil.c:
+       * src/xfns.c:
+       * src/xterm.c:
+       * src/xterm.h: Remove now unused conditional blocks. Use HAVE_GTK3
+       instead of GTK_CHECK_VERSION where now applicable. Remove checks of
+       now always true USE_GTK_TOOLTIP.
+
+2019-04-14  Paul Eggert  <address@hidden>
+
+       Replace executable’s fingerprint in place
+
+       * admin/merge-gnulib (GNULIB_MODULES): Add memmem-simple.
+       (AVOIDED_MODULES): Add memchr.
+       * configure.ac (HAVE_PDUMPER): AC_SUBST it, too, for use in makefiles.
+       * lib/Makefile.in (libgnu_a_OBJECTS): Add fingerprint.o.
+       * lib/fingerprint.c: New file.
+       * lib/memmem.c, lib/str-two-way.h, m4/memmem.m4: New files,
+       copied from Gnulib.
+       * lib/fingerprint.h: Rename from src/fingerprint.h.
+       * lib-src/make-fingerprint.c: Include limits.h, sys/stat.h,
+       fingerprint.h, intprops.h, min-max.h.
+       (SSIZE_MAX): New macro, if not already defined.
+       (main): Without -r, Replace the fingerprint in the input file
+       instead of generating a fingerprint.c.
+       * lib/Makefile.in (libgnu_a_OBJECTS): Add fingerprint.o.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * src/Makefile.in (HAVE_PDUMPER, MAKE_PDUMPER_FINGERPRINT):
+       New macros.
+       (temacs$(EXEEXT)): Use them to replace the fingerprint instead
+       of precalculating it.
+       (mostlyclean, ctagsfiles1): Do not worry about fingerprint.c.
+
+2019-04-14  Paul Eggert  <address@hidden>
+
+       * m4/utimbuf.m4: Remove unused file.
+
+2019-04-14  Dmitry Gutov  <address@hidden>
+
+       Sort files in the default impl of project-files alphabetically
+
+       * lisp/progmodes/project.el (project--files-in-directory):
+       Sort the files alphabetically
+       (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=23179#296).
+
+2019-04-14  Michael Albinus  <address@hidden>
+
+       Some rearragements for remote tests in filenotify-tests.el
+
+       * test/lisp/filenotify-tests.el (file-notify--deftest-remote):
+       Change argument list, EXPECTED is not needed.
+       (file-notify-test07-many-events-remote)
+       (file-notify-test09-watched-file-in-watched-dir-remote):
+       Adapt declaration accordingly.
+
+2019-04-14  Michael Albinus  <address@hidden>
+
+       Explain ad-hoc multi-hop in the Tramp Quick Start Guide
+
+       * doc/misc/tramp.texi (Quick Start Guide): New section "Combining
+       @option{ssh} or @option{plink} with @option{su} or @option{sudo}".
+
+2019-04-14  Michael Albinus  <address@hidden>
+
+       Fix Bug#35055
+
+       * lisp/net/tramp.el (tramp-handle-shell-command):
+       Handle `shell-command-width'.  (Bug#35055)
+
+2019-04-14  Alexander Gramiak  <address@hidden>
+
+       * lisp/frame.el (frame--size-history): Fix infloop. (Bug#35272)
+
+2019-04-14  Stephen Leake  <address@hidden>
+
+       Merge commit '890440a44cd5f4f09742f521c7783785d114fffc'
+
+2019-04-14  Stephen Leake  <address@hidden>
+
+       Rename new user variable `next-error-verbosity' to `next-error-verbose'
+
+       * etc/NEWS: Update entry to match renaming.
+
+       * lisp/simple.el (next-error-verbose): Rename.
+       (next-error, next-error-internal): Match rename.
+
+2019-04-14  Alexander Gramiak  <address@hidden>
+
+       Simplify gdk_monitor_get_model string duplication
+
+       * src/xfns.c (x-display-monitor-attributes-list): Use dupstring over
+       explicit if/xstrdup.
+
+       * src/frame.c (free_monitors): Remove redundant check for NULL.
+
+2019-04-14  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of a recent commit
+
+       * etc/NEWS: Fix the description of 'shell-command-width'.
+       Mark the entry as not needing the manual update.
+
+       * lisp/simple.el (shell-command-width): Doc fix.  (Bug#35055)
+
+2019-04-13  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-04-07 Add copyright notices in several files
+       * build-aux/config.sub, doc/misc/texinfo.tex, lib/_Noreturn.h:
+       Copy from Gnulib.
+       * lib/gnulib.mk.in: Regenerate.
+
+2019-04-13  Basil L. Contovounesios  <address@hidden>
+
+       Fix gnus-group-describe-all-groups (bug#35233)
+
+       This fixes oversights from
+       2018-04-26T16:26:27-07:00!address@hidden and
+       2016-02-13T18:45:11+11:00!address@hidden.
+       * lisp/gnus/gnus-group.el (gnus-group-describe-all-groups): Insert
+       group name and description instead of group name twice.  Do not pass
+       a hash-table to intern.  Call sort with correct number of arguments.
+
+2019-04-13  Alexander Gramiak  <address@hidden>
+
+       Fix segmentation fault with gdk_monitor_get_model (Bug#35259)
+
+       * src/frame.c (free_monitors): Check if NULL before freeing.
+
+       * src/xfns.c: (x-display-monitor-attributes-list): Check if NULL
+       before copying.
+
+2019-04-13  Juri Linkov  <address@hidden>
+
+       * lisp/vc/log-edit.el (log-edit-insert-changelog): Add field "Summary"
+
+       explicitly after adding field "Author".  (Bug#34972)
+
+2019-04-13  Juri Linkov  <address@hidden>
+
+       New faces in xref (bug#23179)
+
+       * lisp/progmodes/xref.el (xref-file-header, xref-line-number)
+       (xref-match):  New faces.
+       (xref--insert-xrefs, xref--collect-matches-1): Use them.
+
+2019-04-13  Juri Linkov  <address@hidden>
+
+       * lisp/simple.el (shell-command-width): New defcustom.
+
+       (shell-command): Use it.  (Bug#35055)
+
+2019-04-13  Alan Mackenzie  <address@hidden>
+
+       * lisp/progmodes/cc-langs.el (c-class-id-suffix-ws-ids-kwds): Correct a 
typo
+
+2019-04-13  Alan Mackenzie  <address@hidden>
+
+       Implement "final" before C++ class inheritance lists.
+
+       * lisp/progmodes/cc-langs.el (c-class-id-suffix-ws-ids-kwds)
+       (c-class-id-suffix-ws-ids-key): New lang const/var.
+
+       * lisp/progmodes/cc-engine.el (c-guess-basic-syntax CASE 5D.4): Check 
for and
+       skip over any matches for c-class-id-suffix-ws-ids-key (i.e. "final") 
before
+       ":".
+
+2019-04-13  Michael Albinus  <address@hidden>
+
+       Fix error in tramp-sh.el
+
+       * lisp/net/tramp-sh.el (tramp-sh-handle-make-process):
+       Revert "simplification", which was an error.
+
+2019-04-13  Michael Albinus  <address@hidden>
+
+       * doc/misc/tramp.texi: Fix minor glitches.
+
+       Fix last patch
+
+2019-04-13  Michael Albinus  <address@hidden>
+
+       Replace (skip-unless nil) by tag :unstable in test packages
+
+       * test/lisp/filenotify-tests.el (file-notify--deftest-remote):
+       Use tag :unstable if SKIP is non-nil.
+
+       * test/lisp/net/tramp-tests.el (tramp-test36-vc-registered):
+       Use ert-skip instead of (skip-unless nil).
+
+       * test/lisp/progmodes/python-tests.el
+       (python-tests--python-nav-end-of-statement--infloop): Use tag
+       :unstable instead of (skip-unless nil).
+
+2019-04-13  Eli Zaretskii  <address@hidden>
+
+       Minor cleanup in 'x_set_frame_alpha'
+
+       * src/xterm.c (x_set_frame_alpha): Remove redundant parts of
+       testing of value of 'alpha'.  Suggested by Konstantin
+       Kharlamov <address@hidden>.  (Bug#35062)
+
+2019-04-13  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of JSONRPC
+
+       * doc/lispref/text.texi (JSONRPC Overview)
+       (Process-based JSONRPC connections)
+       (JSONRPC JSON object format): Fix wording and markup.  Add
+       indexing.
+
+2019-04-13  Eli Zaretskii  <address@hidden>
+
+       Improve documentation changes of a recent commit
+
+       * doc/lispref/text.texi (Parsing JSON): Improve wording of the
+       documentation of 'json-parse-string' and 'json-parse-buffer'.
+       * src/json.c (Fjson_parse_string, Fjson_parse_buffer): Doc fix.
+       (Bug#34763)
+
+2019-04-12  Paul Eggert  <address@hidden>
+
+       Omit/rewrite useless regexp repetitions
+
+       Problem reported by Mattias Engdegård in:
+       https://lists.gnu.org/r/emacs-devel/2019-04/msg00527.html
+       * lisp/align.el (align-rules-list):
+       * lisp/cedet/srecode/srt-mode.el (srecode-font-lock-keywords):
+       * lisp/emacs-lisp/copyright.el (copyright-regexp):
+       * lisp/erc/erc-backend.el (JOIN):
+       * lisp/erc/erc-goodies.el (erc-unmorse):
+       * lisp/mail/mail-extr.el (mail-extr-telephone-extension-pattern):
+       * lisp/net/tramp-adb.el (tramp-adb-prompt):
+       * lisp/org/org-table.el (org-table-range-regexp):
+       * lisp/progmodes/idlwave.el (idlwave-where):
+       * lisp/progmodes/verilog-mode.el (verilog-declaration-re-2-no-macro)
+       (verilog-declaration-re-2-macro, verilog-delete-auto-buffer)
+       (verilog-auto-inst-port):
+       * lisp/url/url-misc.el (url-data):
+       Omit or rewrite useless repetitions that risk being very slow in
+       the backtracking regexp engine in Emacs.
+
+2019-04-12  Dmitry Gutov  <address@hidden>
+
+       Don't signal error from url debug functions
+
+       * lisp/url/url-http.el (url-http-debug): Don't signal error.
+
+       * lisp/url/url-util.el (url-debug): Same (bug#34763).
+
+2019-04-12  Dmitry Gutov  <address@hidden>
+
+       Add :array-type option to json-parse-string
+
+       * src/json.c (enum json_array_type): New type.
+       (struct json_configuration): New field array_type.
+       (json_parse_args): Rename the last argument.  Handle the
+       :array-type keyword argument (bug#32793).
+       (Fjson_parse_string): Update the docstring accordingly.
+       (json_to_lisp): Handle the case of :array-type being `list'.  Add
+       a call to 'rarely_quit' inside the loop.
+       (syms_of_json): Define new symbols.
+       (Fjson_serialize, Fjson_insert, Fjson_parse_string)
+       (Fjson_parse_buffer): Update the config struct initializers.
+
+2019-04-12  Alan Mackenzie  <address@hidden>
+
+       Analyze C++ method with & or && ref-qualifier as defun, not brace list
+
+       Also firm up detection of beginning of brace list in
+       c-looking-at-or-maybe-in-bracelist.
+
+       * lisp/progmodes/cc-engine.el (c-looking-at-or-maybe-in-bracelist): On
+       detection of such a ref-qualifier, set braceassignp to nil.  When this
+       variable has a nil value, return nil as the value of the function.  On
+       encountering a } when scanning backwards, recognise this as the end of a
+       previous construct and stop the scan.
+
+2019-04-12  Stefan Monnier  <address@hidden>
+
+       * lisp/help-fns.el (help-fns-describe-variable-functions): New hook
+
+       (help-fns--compiler-macro, help-fns--parent-mode, help-fns--obsolete)
+       (help-fns--interactive-only): Indent output by 2 spaces.
+       (help-fns--side-effects): New function extracted from
+       describe-function-1.
+       (help-fns-describe-function-functions): Use it.
+       (help-fns--first-release, help-fns--mention-first-release): New 
functions.
+       (help-fns-function-description-header): Keymaps and macros can't
+       be interactive.
+       (help-fns--ensure-empty-line): New function.
+       (describe-function-1): Use it.
+       (help-fns--var-safe-local, help-fns--var-risky)
+       (help-fns--var-ignored-local, help-fns--var-file-local)
+       (help-fns--var-watchpoints, help-fns--var-obsolete)
+       (help-fns--var-alias, help-fns--var-bufferlocal): New functions,
+       extacted from describe-variable.
+       (describe-variable): Run help-fns-describe-variable-functions instead.
+
+2019-04-12  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       818a68b * etc/HISTORY: Update for Emacs 26.2 release.
+       e04aa5a ; ChangeLog.3 update
+       8297e97 * etc/AUTHORS: Update.
+       8582936 Improve documentation of 'read-command'
+       dc81c05 ; * CONTRIBUTE: Mention where to ask for the copyright assign...
+       b77723a Fix an outdated URL in a comment
+
+2019-04-12  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       cb5a340 Update nxml-mode.texi: completion now gives xmlns="-!-"
+
+2019-04-12  Basil L. Contovounesios  <address@hidden>
+
+       Move proper-list-p tests to fns-tests.el
+
+       This follows the move of proper-list-p from lisp/subr.el to
+       src/fns.c in 2018-07-24T15:58:46-07:00!address@hidden.
+       * test/lisp/subr-tests.el (subr-tests--proper-list-p): Move from
+       here...
+       * test/src/fns-tests.el (test-proper-list-p): ...to here.
+
+2019-04-12  Basil L. Contovounesios  <address@hidden>
+
+       Optimize byte-compilation of proper-list-p
+
+       For discussion, see thread starting at:
+       https://lists.gnu.org/archive/html/emacs-devel/2019-04/msg00316.html
+       * lisp/emacs-lisp/byte-opt.el: Optimize proper-list-p as a
+       predicate.
+       * lisp/subr.el: Mark proper-list-p as pure, and side-effect and
+       error free.
+
+2019-04-12  Alex Murray  <address@hidden>  (tiny change)
+
+       Pop to originating erc buffer when clicking desktop notification
+
+       * lisp/erc/erc-desktop-notifications.el: Switch to lexical-binding.
+       (erc-notifications-notify): Add a default action to the desktop
+       notification which pops to the buffer from which the notification
+       originated.  (Bug#35141)
+
+2019-04-12  Basil L. Contovounesios  <address@hidden>
+
+       Always set gnus-group property to a group name
+
+       * lisp/gnus/gnus-group.el (gnus-group-prepare-flat-list-dead): Set
+       gnus-group property to a group name, not active info. (bug#33653)
+       Simplify surrounding logic.
+       (gnus-group-prepare-flat, gnus-group-goto-group): Use accessor
+       macros.
+       (gnus-group-insert-group-line, gnus-group-new-mail)
+       (gnus-group-mark-group): Write ?\s instead of ? .
+       (gnus-group-group-name, gnus-group-list-active): Simplify.
+
+2019-04-11  Stefan Monnier  <address@hidden>
+
+       * lisp/vc/diff-mode.el: Avoid re-initializing buffer in diff-syntax
+
+       (diff--syntax-file-attributes): New var.
+       (diff-syntax-fontify-hunk): Detect when we're reusing the same buffer as
+       last time, to avoid re-initializing it.  Skip the
+       diff-syntax-fontify-revisions hash-table, since buffer-alist plays the
+       same role.
+       (diff-syntax-fontify-revisions): Delete var.
+
+2019-04-11  Stephen Leake  <address@hidden>
+
+       Merge commit 'de238b39e335c6814283faa171b35145f124edf2'
+
+2019-04-11  Stephen Leake  <address@hidden>
+
+       Make `next-error' output fewer messages about locus
+
+       * lisp/simple.el (next-error-verbosity): New user variable.
+       (next-error, next-error-internal): Use it to control only outputting
+       locus message if locus changed.
+
+2019-04-11  Christopher Thorne  <address@hidden>  (tiny change)
+
+       Fix rgrep in dired using directory for search file pattern
+
+       * lisp/progmodes/grep.el (grep-read-files): Allow major modes to
+       define file name to use for default search pattern.
+       Add non-directory file at point as default search pattern candidate.
+
+       * lisp/dired.el (dired-grep-read-files): Use non-directory file at
+       point for grep file name pattern.  (Bug#34621)
+
+2019-04-10  Jackson Ray Hamilton  <address@hidden>
+
+       Add extra text property to fix issue with js2-mode integration
+
+       * lisp/progmodes/js.el (js-jsx--put-syntax-table): New function for
+       consistently ensuring smooth js2-mode integration.  js2-mode sets
+       syntax-table temporarily while parsing buffers—seemingly to recover
+       from parsing interruptions—and then it later clears syntax-table
+       blindly.  When integrating with js-mode, this means that unterminated
+       string quotes are re-broken in JSX (i.e., they become strings again,
+       often stringifying large regions of the buffer which should not be
+       strings).  We try to treat quotes in JSXText as non-strings by setting
+       syntax-table to a non-“string quote” syntax class, but that stops
+       working if we lose the property.  On the js2-mode end, by scanning for
+       this second js-jsx-syntax-table property, we can recover the
+       syntax-table property there.
+       (js-jsx--text-range, js-jsx--syntax-propertize-tag): Use
+       js-jsx--put-syntax-table for above reason.
+       (js-jsx--text-properties): Clear the js-jsx-syntax-table property too.
+
+2019-04-10  Paul Eggert  <address@hidden>
+
+       Bring back dmpstruct.h
+
+       Bring back the dmpstruct.h checking, and use it when
+       --enable-checking=structs is specified.  The checking can be helpful
+       to some developers, although it gets in the way of others and is
+       not needed for ordinary tarball builds.
+       * src/dmpstruct.awk: Restore this file, with mode 644 not 755.
+       * configure.ac: New option-arg --enable-checking=structs,
+       implied by --enable-checking.
+       (CHECK_STRUCTS): New macro and var.
+       * src/Makefile.in (CHECK_STRUCTS): New macro.
+       (dmpstruct_headers, dmpstruct.h, dmpstruct.h):
+       Restore these macros and rules.
+       (pdumper.o): Restore this dependency if $(CHECK_STRUCTS) is true.
+       (mostlyclean): Remove dmpstruct.h.
+       * src/pdumper.c [CHECK_STRUCTS]: Include dmpstruct.h,
+       and restore checks against hashes.
+
+2019-04-10  Katsumi Yamaoka  <address@hidden>
+
+       Enable message saving to work when first use of Gnus (bug#35208)
+
+       * lisp/gnus/gnus-group.el (gnus-group-goto-group);
+       Use gnus-active-hashtb in addition to gnus-newsrc-hashtb to check if
+       a group exists since some kinds of groups are registered in only one
+       of them (bug#35208).
+
+2019-04-10  Juri Linkov  <address@hidden>  (tiny change)
+
+       Inhibit displaying help buffer in main window in perform-replace
+
+       * lisp/replace.el (perform-replace): Use
+       display-buffer-overriding-action with inhibit-same-window to prevent
+       the help buffer from being displayed in the main window.  (Bug#34972)
+
+       Author: Michał Krzywkowski <address@hidden>
+
+2019-04-10  Paul Eggert  <address@hidden>
+
+       Fix $(MAKE) -C for out-of-tree bootstraps
+
+       Problem reported by Andy Moreton in:
+       https://lists.gnu.org/r/emacs-devel/2019-04/msg00359.html
+       * src/Makefile.in (${charsets}, $(lispsource)/loaddefs.el):
+       Revert incorrect changes to $(MAKE) -C invocations when the
+       target is in the source tree not the build tree.
+
+2019-04-10  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       5999401 (origin/emacs-26) Note that choose-completion-string-function...
+       8d2f1df Address name conflicts in EIEIO documentation (bug#31660)
+
+2019-04-10  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       a5da653 * src/editfns.c (Fnarrow_to_region): Doc fix.  (Bug#35163)
+       646d33d Fix doc strings of 'vc-version-diff' and 'vc-version-ediff'
+       a30a6c3 Improve documentation of set-window-start
+       92ce2dd Improve documentation of window parameters
+       6dc42c5 Improve commentary in frame.el
+       a8cffcf Fix typo in a doc string
+       9e79f19 (emacs-26) ; * src/fontset.c (set-fontset-font): Use uppercas...
+
+       # Conflicts:
+       #       lisp/vc/vc.el
+
+2019-04-10  Stefan Monnier  <address@hidden>
+
+       * test/lisp/progmodes/python-tests.el: "Fix" failing test
+
+       (python-tests--python-nav-end-of-statement--infloop): Disable.
+
+2019-04-10  Stefan Monnier  <address@hidden>
+
+       Eshell dependencies: Fix recent regressions
+
+       * lisp/dired.el (dired-insert-directory): Tweak bug#27817's ugly hack.
+
+       * lisp/eshell/em-ls.el: Refine 'require's.
+
+       * lisp/eshell/esh-opt.el: Require esh-util on behalf of its clients.
+
+2019-04-09  Jackson Ray Hamilton  <address@hidden>
+
+       * etc/NEWS: Document js-jsx-align->-with-<
+
+2019-04-09  Jackson Ray Hamilton  <address@hidden>
+
+       Add new defcustom js-jsx-align->-with-<
+
+       * lisp/progmodes/js.el (js-jsx-align->-with-<): New variable for users
+       to control one opinionated aspect of JSX indentation.  It defaults to
+       the style seen in the React docs, which many users expected as the
+       “correct” indentation.  Still, the old SGML-style of indentation could
+       be desirable too, especially since it was the old default.  This
+       ensures users have a way of getting back the old behavior.
+       (js-jsx--contextual-indentation): Respect js-jsx-align->-with-<.
+
+       * test/manual/indent/jsx-align-gt-with-lt.jsx: New test for
+       js-jsx-align->-with-<.
+
+2019-04-09  Jackson Ray Hamilton  <address@hidden>
+
+       * etc/NEWS: Document way to revert to old JSX indentation behavior
+
+2019-04-09  Jackson Ray Hamilton  <address@hidden>
+
+       Add new defcustom js-jsx-indent-level
+
+       * lisp/progmodes/js.el (js-jsx-indent-level): New variable for users
+       to set JSX indentation differently than JS, like before.
+       (js-jsx--contextual-indentation): Respect js-jsx-indent-level when
+       it’s set.
+
+       * test/manual/indent/jsx-indent-level.jsx: New test for
+       js-jsx-indent-level.
+
+2019-04-09  Paul Eggert  <address@hidden>
+
+       Remove the need for temacs.in
+
+       Instead of building a file temacs.in used only to compute a
+       fingerprint, compute the fingerprint directly from the .o and
+       .a files that go into temacs.in.  This speeds up the build by
+       avoiding the need to link temacs twice, once with a dummy
+       fingerprint.
+       * lib-src/make-fingerprint.c (main): No need to generate
+       a fingerprint file that includes config.h, now that fingerprint.c
+       depends on all the .o files.
+       * src/Makefile.in ($(libsrc)/make-fingerprint$(EXEEXT)):
+       Use the same rule as $(libsrc)/make-docfile$(EXEEXT).
+       * src/fingerprint-dummy.c: Remove.
+       * src/Makefile.in (${charsets}, $(libsrc)/make-docfile$(EXEEXT))
+       ($(LIBEGNU_ARCHIVE), $(lwlibdir)/liblw.a, $(oldXMenudir)/libXMenu11.a)
+       (../config.status, ${ETAGS}, ../lisp/TAGS, $(lwlibdir)/TAGS)
+       ($(lispsource)/loaddefs.el):
+       Prefer ‘$(MAKE) -C $(dir $@)’ to ‘${MAKE} -C SOMESTRING’ when
+       either will do, as the former is more regular and lets us
+       coalesce rules better.
+       (EMACS_DEPS_PRE, EMACS_DEPS_POST, BUILD_EMACS_PRE)
+       (BUILD_EMACS_POST, temacs.in$(EXEEXT)): Remove.
+       (FINGERPRINTED): New macro.
+       (fingerprint.c): Use it instead of temacs.in$(EXEEXT), to
+       avoid the need to build temacs.in at all.
+       (temacs$(EXEEXT)): No need to depend on other .o files now;
+       fingerprint.o is enough, since it depends on the rest.
+       Spell out what used to be in BUILD_EMACS_PRE and BUILD_EMACS_POST.
+       (mostlyclean): No need to remove temacs.in.
+
+2019-04-09  Paul Eggert  <address@hidden>
+
+       Remove assumption of uint64_t etc. in portable code
+
+       C11 doesn’t guarantee the existence of types like uint64_t,
+       so avoid these types in portable code, as it’s easy to do so.
+       There’s no need to avoid the types in w32-specific code,
+       since w32 is guaranteed to have them.
+       * lib-src/make-fingerprint.c (main):
+       * src/fingerprint-dummy.c:
+       * src/fingerprint.h:
+       * src/pdumper.c (dump_fingerprint, struct dump_header):
+       Prefer unsigned char to uint8_t in portable code, as either will do.
+       Put an "#include <config.h>" in fingerprint.c files, so
+       that the corresponding .o file is rebuilt after ./configure is run.
+       * lib-src/make-fingerprint.c (main):
+       Simplify loop.
+       * src/Makefile.in (fingerprint.c): Update atomically.
+       * src/pdumper.c: Omit unnecessary check that off_t is the same
+       size as int32_t or int64_t, as the code does not rely on this
+       assumption.
+       (dump_off): Use int_least32_t, not int32_t.
+       (struct dump_reloc): Use unsigned int, not uint32_t.
+       (dump_anonymous_allocate_w32, dump_anonymous_allocate_posix)
+       (dump_anonymous_allocate, dump_map_file_w32, dump_map_file_posix)
+       (dump_map_file:
+       Do the sanity checks at compile time, not at run-time, to avoid
+       usage of uint64_t etc. on non-w32 platforms.
+
+2019-04-09  Paul Eggert  <address@hidden>
+
+       Remove dmpstruct.h
+
+       The hassles of updating the dmpstruct.h-using code bit me again.
+       These updates are more trouble than they’re worth.  See:
+       https://lists.gnu.org/r/emacs-devel/2019-03/msg00122.html
+       As I’m the main person who’s made changes in this area since
+       dmpstruct.h was introduced, I’m the most motivated to clean up
+       the situation.
+       * make-dist (possibly_non_vc_files): Remove src/dmpstruct.h.
+       * src/Makefile.in (dmpstruct_headers, dmpstruct.h): Remove.
+       (pdumper.o): Do not depend on dmpstruct.h.
+       (mostlyclean): Do not remove dmpstruct.h.
+       * src/dmpstruct.awk: Remove.
+       * src/pdumper.c: Do not include dmpstruct.h.
+       (CHECK_STRUCTS): Remove.  All uses removed.
+
+2019-04-09  Stefan Monnier  <address@hidden>
+
+       diff-font-lock-syntax: clarify distinction between t and hunk-also
+
+       * lisp/vc/diff-mode.el (diff-font-lock-syntax): Rework docstring.
+       (diff-syntax-fontify-hunk): Never use the hunk method when
+       diff-font-lock-syntax is just t.
+
+2019-04-09  Alex Branham  <address@hidden>
+
+       Use lexical-binding in bug-reference.el
+
+       * .dir-locals.el: Set bug-reference-url-format in all modes, not just
+       changelog mode. Use (eval . (bug-reference-mode)) as described
+       in (info "(emacs) Specifying File Variables")
+       * lisp/progmodes/bug-reference.el: Use lexical binding.
+       (bug-reference-unfontify):
+       (bug-reference-fontify): Mention args in docstring.
+
+       Bug#35123
+
+2019-04-09  Basil L. Contovounesios  <address@hidden>
+
+       Fix Gnus duplicate suppression guards (bug#34987)
+
+       * lisp/gnus/gnus-dup.el (gnus-dup-enter-articles)
+       (gnus-dup-suppress-articles): Use gnus-dup-hashtb as an indicator of
+       initialization instead of gnus-dup-list, which may happen to be nil.
+       (gnus-dup-unsuppress-article): Do nothing if gnus-dup-hashtb is
+       uninitialized.
+
+2019-04-09  Stefan Monnier  <address@hidden>
+
+       * lisp/printing.el: Use lexical-binding
+
+       Require easy-menu instead of adding declarations.
+       Remove backward compatiblity.  Remove redundant ':group' args.
+       (pr-region-active-p): Use use-region-p.
+       (pr-set-keymap-name): Delete function and callers.
+       (pr-set-keymap-parents): Delete function; use set-keymap-parent instead.
+       (pr-read-string): Delete function; use read-string instead.
+       (pr-menu-char-height): Delete function; use frame-char-height instead.
+       (pr-menu-char-width): Delete function; use frame-char-width instead.
+       (pr-menu-position): Merge the two definitions.
+       (pr-get-symbol): Delete function; use easy-menu-intern instead.
+       (pr-update-mode-line): Delete function; use force-mode-line-update 
instead.
+       (pr-do-update-menus): Turn local save-var into dynbound pr--save-var.
+       (pr-menu-alist): Use setf.  Simplify since we don't keep key-bindings
+       in the menus any more.
+       (pr-dosify-file-name): Remove interactive spec.
+       (pr-filename-style): Rename from pr-path-style.
+       (pr-unixify-file-name): Delete function.
+       (pr-standard-file-name): Don't turn \ into / under POSIX.
+       (pr-temp-dir): Don't dosify.  Use temporary-file-directory 
unconditionally.
+       (pr-save-file-modes): Delete macro.
+       (pr-ps-directory-using-ghostscript, pr-ps-directory-print)
+       (pr-ps-directory-ps-print, pr-ps-mode-using-ghostscript, pr-ps-print)
+       (pr-ps-mode-preview, pr-ps-mode-print, pr-printify-directory)
+       (pr-txt-directory, pr-ps-file-up-preview, pr-ps-directory-preview)
+       (pr-ps-file-up-ps-print, pr-ps-preview, pr-ps-using-ghostscript):
+       Use properly prefixed, declared, and
+       explicitly let-bound dynamically bound variables around calls to
+       pr-ps-utility-args and pr-set-dir-args.
+       (pr-ps-file-using-ghostscript): Only dosify when passing to suprocess.
+       (pr-expand-file-name): Delete function; use expand-file-name instead.
+       (pr-ps-file-print): Properly dosify.
+       (pr-menu-create): Use backquotes.
+       (pr-eval-alist, pr-eval-local-alist): Use dolist.
+       (pr-ps-utility-args): Don't dosify here.
+       (pr-ps-utility-process): Dosify here instead.
+       (pr-ps-file, pr-command): Don't dosify here either.
+       (pr-interface-map): Move initialization into declaration.
+       (pr-insert-section-1): Use 'push'.
+       (pr-insert-toggle): Use closure instead of backquoted lambda.
+       (pr-insert-menu): Use apply i.s.o eval.
+       (pr-insert-radio-button): Avoid 'eval'.
+
+2019-04-09  Stefan Monnier  <address@hidden>
+
+       quail.el: Use delete-and-extract-region
+
+       * lisp/international/quail.el (quail-overlay-region-events):
+       Use delete-and-extract-region.
+       (quail-activate): Use setq-local.
+
+2019-04-09  Stefan Monnier  <address@hidden>
+
+       python.el: don't syntax-propertize single/double quoted strings
+
+       * lisp/progmodes/python.el (python-syntax-propertize-function):
+       Only mark triple-quoted strings, let the normal syntax-table handle
+       the rest.
+       (python-syntax-stringify): Adjust accordingly.
+
+2019-04-09  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/js.el (js-mode): Don't set comment-start-skip globally!
+
+2019-04-09  Stefan Monnier  <address@hidden>
+
+       Fix up Eshell 'require's after previous dependency reshuffle.
+
+       * lisp/eshell/em-unix.el:
+       * lisp/eshell/em-script.el:
+       * lisp/eshell/em-pred.el:
+       * lisp/eshell/em-dirs.el:
+       * lisp/eshell/em-alias.el:
+       Fix up 'require's to silence byte-compiler.
+
+       * lisp/eshell/esh-util.el (eshell-read-hosts-file): Don't limit number
+       of entries per line.  Preserve the structure.
+       (eshell-read-hosts): Adjust accordingly.
+
+2019-04-09  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/mm-view.el (mm-display-inline-fontify): Simplify.
+
+       Remove hacks that were needed before font-lock-ensure.
+       Don't use switch-to-buffer.  Don't assume point-min == 1.
+
+2019-04-09  Stefan Monnier  <address@hidden>
+
+       * lisp/vc/diff-mode.el: Cosmetic changes in diff-syntax-fontify-hunk
+
+       (diff-default-directory): Use defvar-local.
+       (diff-syntax-fontify-hunk): Use 'setq' less.  Fit within 80 columns.
+       Simplify some looking-at tests.
+       (diff-syntax-fontify-props): Don't check the buffer-local part of
+       find-file-hook.
+
+2019-04-09  Mattias Engdegård  <address@hidden>
+
+       Clarify the TESTFN argument to `alist-get'
+
+       * lisp/subr.el (alist-get):
+       Rephrase the initial text to clarify the meaning of the TESTFN argument.
+       It's an equality predicate, not a look-up function (Bug#35206).
+
+2019-04-09  Eli Zaretskii  <address@hidden>
+
+       Fix "M-x eshell"
+
+       * lisp/eshell/em-dirs.el (eshell-variable-aliases-list)
+       (eshell-directory-name, eshell-mode): Defvar them.
+       (eshell-dirs-initialize): Require esh-var.  (Bug#35203)
+       (eshell-apply-indices): Declare.
+
+2019-04-09  Jackson Ray Hamilton  <address@hidden>
+
+       * etc/NEWS: Document new and improved JSX support in js-mode
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Explain reasonings for JSX syntax support design decisions
+
+       * lisp/progmodes/js.el: Throughout the code, provide explanations for
+       why JSX support was implemented in the way that it was; in particular,
+       address the overlap between syntax-propertize-function, font-lock, and
+       indentation (as requested by Stefan).
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Move curly functions closer to where they’re used
+
+       * lisp/progmodes/js.el (js-jsx--enclosing-curly-pos)
+       (js-jsx--goto-outermost-enclosing-curly): As the code evolved, these
+       functions’ definitions ended up being far away from the only places
+       where they were used.  Move them there.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Add open/close parenthesis syntax to “<” and “>” in JSX
+
+       * lisp/progmodes/js.el (js-jsx--syntax-propertize-tag): Like in
+       sgml-mode, treat “<” and “>” like open/close parenthesis, making the
+       text more navigable via forward-sexp, etc.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Permit non-ASCII identifiers in JS
+
+       * lisp/progmodes/js.el (js--name-start-re): Generally allow
+       identifiers to begin with non-ASCII letters.  This is of particular
+       importance to JSX parsing.
+
+       * test/manual/indent/jsx-unclosed-2.jsx: Add test to ensure non-ASCII
+       characters are parsed properly.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Identify JSX strings (for js2-mode)
+
+       * lisp/progmodes/js.el (js-jsx--syntax-propertize-tag): Derived modes
+       like js2-mode may use font-lock-syntactic-face-function to apply faces
+       to JSX strings (and only JSX strings).  Apply the js-jsx-string text
+       property to such strings so they can be distinctly identified.
+       (js-jsx--text-properties): Ensure the js-jsx-string text property gets
+       cleaned up, too.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Properly set a dynamic, syntactic mode name
+
+       Use mode-line-format constructs to properly set mode-name, rather than
+       use the very hacky solution that was filling-in for my lack of
+       knowledge of this feature.
+
+       * lisp/progmodes/js.el (js--update-mode-name)
+       (js--idly-update-mode-name): Remove.
+
+       (js--syntactic-mode-name-part): New helper function for mode-name.
+       (js-use-syntactic-mode-name): Helper to set up the dynamic mode-name.
+
+       (js-jsx-enable): Don’t need to call any extra functions now.
+       (js-mode): Use the new setup function rather than the old ones.
+
+       (js-jsx-mode): Use the same initial mode name as js-mode so the final
+       one is identical for both modes.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Improve whitespace and unary keyword parsing
+
+       * lisp/progmodes/js.el (js--name-start-chars): Remove, adding these
+       chars back to js--name-start-re.
+       (js--name-start-re): Add chars back from js--name-start-chars.
+
+       (js-jsx--tag-start-re): Improve regexp to capture the tag name (so it
+       can be disambiguated from a unary keyword), to match newlines (which
+       are common in this spot), and to require at least one whitespace
+       character before the attribute name.
+
+       (js-jsx--matched-tag-type): Ensure the “tag name” isn’t possibly a
+       unary keyword.
+
+       (js-jsx--self-closing-re, js-jsx--matching-close-tag-pos): Allow
+       whitespace around “<” and “>”.
+
+       * test/manual/indent/jsx-unclosed-2.jsx: Add tests for unary keyword
+       and whitespace parsing.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Optimize js-jsx--enclosing-tag-pos
+
+       * lisp/progmodes/js.el (js-jsx--enclosing-tag-pos): Update docstring
+       to be more precise.  Also, remember close tag positions after they’ve
+       been calculated once to avoid many redundant calls to
+       js-jsx--matching-close-tag-pos.
+       (js-jsx--text-properties): Ensure js-jsx-close-tag-pos text properties
+       get cleaned up, too.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Optimize js-jsx--matching-close-tag-pos
+
+       This function’s performance was having a noticeable impact when
+       editing large JSX structures.  Improve its performance
+       slightly (elapsed time will be cut in half according to ELP).
+
+       * lisp/progmodes/js.el (js-jsx--tag-re): Remove.
+       (js-jsx--matched-tag-type): Simplify implementation with respect to
+       the new implementation of js-jsx--matching-close-tag-pos.
+       (js-jsx--self-closing-re): Simplify regexp slightly in sync with a
+       generally simpler matching algorithm.
+       (js-jsx--matching-close-tag-pos): Optimize matching algorithm by using
+       multiple simple regexp searches, rather than one big complex search.
+
+       * test/manual/indent/jsx-unclosed-2.jsx: Use the term “inequality” and
+       add a test for a possible parsing foible.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Add tests for miscellaneous JSX parsing feats
+
+       * test/manual/indent/jsx.jsx: Add tests for JSXMemberExpression names
+       and JSXOpeningFragment/JSXClosingFragment support (already supported).
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Split JSX indentation calculation into several functions
+
+       * lisp/progmodes/js.el (js-jsx--contextual-indentation)
+       (js-jsx--expr-attribute-pos, js-jsx--expr-indentation): Extract logic
+       from js-jsx--indentation, and improve the logic’s documentation.
+       (js-jsx--indentation): Simplify by splitting into several
+       functions (see above) and improve the logic’s documentation.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Indent expressions in JSXAttributes relative to the attribute’s name
+
+       * lisp/progmodes/js.el (js-jsx--syntax-propertize-tag): Refer to the
+       beginning of a JSXExpressionContainer’s associated JSXAttribute (so
+       line numbers can be calculated later).
+       (js-jsx--text-properties): Also clear the new text property
+       js-jsx-expr-attribute.
+
+       (js-jsx--indenting): Remove.
+       (js-jsx--indent-col, js-jsx--indent-attribute-line): New variables.
+       (js-jsx--indentation): Instead of alternating between two separate
+       column calculations, neither necessarily correct, bind the JSX column
+       such that the second call to js--proper-indentation can use it as a
+       base column.
+       (js--proper-indentation): Use JSX as the base column for some indents
+       while indenting JSX.
+
+       * test/manual/indent/jsx.jsx: Add more tests for expression indents.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Fix counting of nested self-closing JSXOpeningElements
+
+       * lisp/progmodes/js.el (js-jsx--matching-close-tag-pos): Fix bug where
+       self-closing JSXOpeningElements might be missed if one was nested
+       within another.
+
+       * test/manual/indent/jsx-self-closing.jsx: Add test for bug concerning
+       self-closing JSXOpeningElement counting.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Indent broken arrow function bodies as an N+1th arg
+
+       * lisp/progmodes/js.el (js--line-terminating-arrow-re): Revise regexp
+       for use with re-search-backward.
+       (js--looking-at-broken-arrow-function-p): Remove.
+       (js--broken-arrow-terminates-line-p): Replacement for
+       js--looking-at-broken-arrow-function-p.  Don’t consider whether an
+       arrow appears at point (in an arglist); instead, just look for an
+       arrow that terminates the line.
+       (js--proper-indentation): Use js--broken-arrow-terminates-line-p.
+
+       * test/manual/indent/js.js: Add test for a broken arrow as an N+1th
+       arg.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Rename tests to use the “.jsx” file extension
+
+       * test/manual/indent/js-jsx-quote.js: Renamed to “jsx-quote.jsx”.
+       * test/manual/indent/js-jsx-unclosed-1.js: Renamed to
+       “jsx-unclosed-1.jsx”.
+       * test/manual/indent/js-jsx-unclosed-2.js: Renamed to
+       “jsx-unclosed-2.jsx”.
+       * test/manual/indent/js-jsx.js: Renamed to “jsx.jsx”.
+
+       * test/manual/indent/jsx-quote.jsx: Renamed from “js-jsx-quote.js”.
+       * test/manual/indent/jsx-unclosed-1.jsx: Renamed from
+       “js-jsx-unclosed-1.js”.
+       * test/manual/indent/jsx-unclosed-2.jsx: Renamed from
+       “js-jsx-unclosed-2.js”.
+       * test/manual/indent/jsx.jsx: Renamed from “js-jsx.js”.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Improve JSX syntax propertization
+
+       * lisp/progmodes/js.el (js-jsx--attribute-name-re): New variable.
+       (js-jsx--syntax-propertize-tag): Allow “-” in JSXAttribute names.  Fix
+       “out of range” error when typing at the end of a buffer.  Fix/improve
+       future propertization of unfinished JSXBoundaryElements.
+
+       * test/manual/indent/js-jsx-unclosed-2.js: Add tests for allowed
+       characters in JSX.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Automatically detect JSX in JavaScript files
+
+       * lisp/files.el (auto-mode-alist): Simply enable
+       javascript-mode (js-mode) when opening “.jsx” files, since the “.jsx”
+       file extension will be used as an indicator of JSX syntax by js-mode,
+       and more code is likely to work in js-mode than js-jsx-mode, and we
+       probably want to guide users to use js-mode (with js-jsx-syntax)
+       instead.  Code that used to work exclusively in js-jsx-mode (if anyone
+       ever wrote any) ought to be updated to work in js-mode too when
+       js-jsx-syntax is set to t.
+
+       * lisp/progmodes/js.el (js-jsx-detect-syntax, js-jsx-regexps)
+       (js-jsx--detect-and-enable, js-jsx--detect-after-change): New
+       variables and functions for detecting and enabling JSX.
+
+       (js-jsx-syntax): Update docstring with respect to the widened scope of
+       the effects and use of this variable.
+
+       (js-syntactic-mode-name, js--update-mode-name)
+       (js--idly-update-mode-name, js-jsx-enable): New variable and functions
+       for indicating when JSX is enabled.
+
+       (js-mode): Detect and enable JSX.  Print all enabled syntaxes after
+       the mode name whenever Emacs goes idle; this ensures lately-enabled
+       syntaxes are evident.
+
+       (js-jsx-mode): Update mode name for consistency with the state in
+       which JSX is enabled in js-mode.  Update docstring to suggest
+       alternative means of using JSX without this mode.  Going forward, it
+       may be best to gently guide users away from js-jsx-mode, since a “one
+       mode per syntax extension” model would not scale well if more syntax
+       extensions were to be simultaneously supported (e.g. Facebook’s
+       “Flow”).
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Finish replacing SGML-based JSX detection with js-mode’s parsing
+
+       This removes the last dependency on sgml-mode for JSX-related logic.
+
+       * lisp/progmodes/js.el (js-jsx--start-tag-re)
+       (js-jsx--end-tag-re): Remove.
+       (js-jsx--looking-at-start-tag-p)
+       (js-jsx--looking-back-at-end-tag-p): Reimplement using text
+       properties, using syntax information which ought to be slightly more
+       accurate than regexps since it was found by complete parsing.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Indent JSX as parsed in a JS context
+
+       Fixes the following issues (and re-fixes indentation issues initially
+       fixed but later re-broken by previous commits in the process of adding
+       comprehensive JSX support):
+
+       - https://github.com/mooz/js2-mode/issues/389#issuecomment-390766873
+       - https://github.com/mooz/js2-mode/issues/482
+       - Bug#32158
+       - https://github.com/mooz/js2-mode/issues/462
+
+       Previously, we delegated to sgml-mode functions for JSX indentation.
+       However, there were some problems with this approach:
+
+       - sgml-mode does not anticipate tags inside attributes when indenting,
+         which compromises JSX indentation inside JSXExpressionContainers
+         inside JSXAttributes.
+
+       - In previous iterations to provide comprehensive JSX support, it
+         proved tedious to disambiguate “<” and “>” as JS inequality
+         operators and arrow functions from opening and closing angle
+         brackets as part of SGML tags.  That code evolved into a more
+         complete JSX parsing implementation for syntax-propertize rules for
+         font-locking, discarding the superfluous “<”/“>” disambiguation in
+         anticipation of using the improved JSX analysis for indentation.
+
+       - Using sgml-mode functions, we controlled JSX indentation using SGML
+         variables.  However, JSX is a different thing than SGML; referencing
+         SGML in JS was a leaky abstraction.
+
+       To resolve these issues, use the text properties added by the JSX
+       syntax-propertize code to determine the boundaries of various aspects
+       of JSX syntax, and reimplement the sgml-mode indentation code in
+       js-mode with better respect to JSX indentation conventions.
+
+       * lisp/progmodes/js.el (js-jsx-attribute-offset): New variable to
+       provide a way for users to still control JSX attribute offsets as they
+       could with sgml-attribute-offset before.  The value of this feature is
+       dubious IMO, but it’s trivial to keep it, so let’s do it just in case.
+
+       (js-jsx--goto-outermost-enclosing-curly): New function.
+
+       (js-jsx--enclosing-tag-pos): Refactor to be unbounded by curlies, so
+       this function can be used to find JSXExpressionContainers within JSX.
+       Fix bug where an enclosing JSXElement couldn’t be found when point was
+       at the start of its JSXClosingElement.  Return the JSXClosingElement’s
+       position as well, so the JSXClosingElement can be indentified when
+       indenting and be indented like the matching JSXOpeningElement.
+
+       (js-jsx--at-enclosing-tag-child-p): js-jsx--enclosing-tag-pos now
+       returns a list rather than a cons, so retrieve the JSXOpeningElement’s
+       end position from a list.
+
+       (js-jsx--context, js-jsx--indenting): New function and variable.
+       (js-jsx--indentation): New function replacing the prior
+       js-jsx--indent* functions and js-jsx-indent-line’s implementation.
+       Use the JSX parsing performed in a JS context to more accurately
+       calculate JSX indentation than by delegating to sgml-mode functions.
+       (js--proper-indentation): Use js-jsx--indentation as yet another type
+       of indentation.
+       (js-jsx--as-sgml, js-jsx--outermost-enclosing-tag-pos)
+       (js-jsx--indentation-type, js-jsx--indent-line-in-expression)
+       (js-jsx--indent-n+1th-line): Remove obsolete functions.
+
+       (js-jsx-indent-line): Refactor nearly-obsolete function to behave the
+       same as it usually would before these changes, without respect to the
+       binding of js-jsx-syntax.
+
+       (js-jsx-mode): Remove obsolete documentation about the use of SGML
+       variables to control indentation, and don’t bind indent-line-function
+       any more, because it is no longer necessary given the new
+       implementation of js-jsx-indent-line.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Update expectations for JSX indentation in JSXAttribute space
+
+       * test/manual/indent/js-jsx.js: Align expectations for dangling
+       closing constructs with other places in the tests.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Propertize and font-lock JSXText and JSXExpressionContainers
+
+       This completes highlighting support for JSX, as requested in:
+
+       - https://github.com/mooz/js2-mode/issues/140
+       - https://github.com/mooz/js2-mode/issues/330
+       - https://github.com/mooz/js2-mode/issues/409
+
+       * lisp/progmodes/js.el (js--name-start-chars): Extract part of
+       js--name-start-re so it can be reused in another regexp.
+       (js--name-start-re): Use js--name-start-chars.
+
+       (js-jsx--font-lock-keywords): Use new matchers.
+       (js-jsx--match-text, js-jsx--match-expr): New matchers to remove
+       typical JS font-locking and extend the font-locked region,
+       respectively.
+
+       (js-jsx--tag-re, js-jsx--self-closing-re): New regexps matching JSX.
+       (js-jsx--matched-tag-type, js-jsx--matching-close-tag-pos)
+       (js-jsx--enclosing-curly-pos, js-jsx--enclosing-tag-pos)
+       (js-jsx--at-enclosing-tag-child-p): New functions for parsing and
+       analyzing JSX.
+
+       (js-jsx--text-range, js-jsx--syntax-propertize-tag-text): New
+       functions for propertizing JSXText.
+       (js-jsx--syntax-propertize-tag): Propertize JSXText children of tags.
+       (js-jsx--text-properties): Remove JSXText-related text properties when
+       repropertizing.
+       (js-mode): Extend the syntax-propertize region with
+       syntax-propertize-multiline; we are now adding the syntax-multiline
+       text property to buffer ranges that are JSXText to ensure the whole
+       multiline JSX construct is reidentified.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Font-lock JSX while editing it by extending regions
+
+       * lisp/progmodes/js.el (js-jsx--font-lock-keywords):
+       Call tag beginning and end matchers.
+       (js-jsx--match-tag-beg, js-jsx--match-tag-end): New functions.
+       (js-jsx--syntax-propertize-tag): Record buffer positions of JSXElement
+       beginning and end for font-locking.
+
+       (js--syntax-propertize-extend-region)
+       (js-jsx--syntax-propertize-extend-region): New functions for extending
+       the syntax-propertize region backwards to the start of a JSXElement so
+       its JSXAttribute children on its n+1th lines can be parsed as such
+       while editing those lines.
+       (js-mode): Add js--syntax-propertize-extend-region to
+       syntax-propertize-extend-region-functions.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Add basic JSX font-locking
+
+       Font-lock JSX from the beginning of the buffer to the end.  Tends to
+       break temporarily when editing lines, because the parser doesn’t yet
+       look backwards to determine if the end of a tag in the current range
+       starts before the range.
+
+       This also re-breaks some tests fixed by previous commits, as we begin
+       to take a different direction in our parsing code, looking for JSX,
+       rather than for non-JSX.  The parsing code will eventually provide
+       information for indentation again.
+
+       * lisp/progmodes/js.el (js--dotted-captured-name-re)
+       (js-jsx--disambiguate-beginning-of-tag)
+       (js-jsx--disambiguate-end-of-tag, js-jsx--disambiguate-syntax):
+       Remove.
+       (js-jsx--font-lock-keywords): New variable.
+       (js--font-lock-keywords-3): Add JSX matchers.
+       (js-jsx--match-tag-name, js-jsx--match-attribute-name): New functions.
+       (js-jsx--syntax-propertize-tag): New function to aid in JSX
+       font-locking and eventually indentation.
+       (js-jsx--text-properties): New variable.
+       (js-syntax-propertize): Propertize JSX properly using
+       syntax-propertize-rules.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Use js-jsx- prefix for functions and variables
+
+       * lisp/progmodes/js.el (js--disambiguate-beginning-of-jsx-tag): Rename
+       to js-jsx--disambiguate-beginning-of-tag.
+       (js--disambiguate-end-of-jsx-tag): Rename to
+       js-jsx--disambiguate-end-of-tag.
+       (js--disambiguate-js-from-jsx): Rename to js-jsx--disambiguate-syntax.
+       (js--jsx-start-tag-re): Rename to js-jsx--start-tag-re.
+       (js--looking-at-jsx-start-tag-p): Rename to
+       js-jsx--looking-at-start-tag-p.
+       (js--jsx-end-tag-re): Rename to js-jsx--end-tag-re.
+       (js--looking-back-at-jsx-end-tag-p): Rename to
+       js-jsx--looking-back-at-end-tag-p.
+       (js--as-sgml): Rename to js-jsx--as-sgml.
+       (js--outermost-enclosing-jsx-tag-pos): Rename to
+       js-jsx--outermost-enclosing-tag-pos.
+       (js--jsx-indentation): Rename to js-jsx--indentation-type.
+       (js--indent-line-in-jsx-expression): Rename to
+       js-jsx--indent-line-in-expression.
+       (js--indent-n+1th-jsx-line): Rename to js-jsx--indent-n+1th-line.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       js-syntax-propertize: Disambiguate JS from JSX, fixing some indents
+
+       Fix some JSX indentation bugs:
+
+       - Bug#24896 / https://github.com/mooz/js2-mode/issues/389
+       - Bug#30225
+       - https://github.com/mooz/js2-mode/issues/459
+
+       * lisp/progmodes/js.el (js--dotted-captured-name-re)
+       (js--unary-keyword-re, js--unary-keyword-p)
+       (js--disambiguate-beginning-of-jsx-tag)
+       (js--disambiguate-end-of-jsx-tag)
+       (js--disambiguate-js-from-jsx): New variables and functions.
+
+       (js-syntax-propertize): Additionally clarify when syntax is JS so that
+       ‘(with-syntax-table sgml-mode-syntax-table …)’ does not mistake some
+       JS punctuation syntax for SGML parenthesis syntax, namely ‘<’ and ‘>’.
+
+       * test/manual/indent/js-jsx-unclosed-2.js: Add additional test for
+       unary operator parsing.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Add new (failing) unclosed JSX test and separate such tests
+
+       * test/manual/indent/js-jsx.js: Move test with intentional scan error to
+       its own file, js-jsx-unclosed-1.js.
+       * test/manual/indent/js-jsx-unclosed-1.js: New file.
+       * test/manual/indent/js-jsx-unclosed-2.js: New file with test for
+       regression caused by new ambiguous parsing of JS/JSX.
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Refactor JSX indentation code to improve enclosing JSX discovery
+
+       Fix a number of bugs reported for JSX indentation (caused by poor JSX
+       detection):
+
+       - https://github.com/mooz/js2-mode/issues/140#issuecomment-166250016
+       - https://github.com/mooz/js2-mode/issues/490
+       - Bug#24896 / https://github.com/mooz/js2-mode/issues/389 (with
+       respect to comments)
+       - Bug#26001 /
+       https://github.com/mooz/js2-mode/issues/389#issuecomment-271869380
+       - https://github.com/mooz/js2-mode/issues/411 / Bug#27000 /
+       https://github.com/mooz/js2-mode/issues/451
+
+       Potentially manifest some new bugs (due to false positives with ‘<’
+       and ‘>’ and SGML detection).  Slow down indentation a fair bit.
+
+       * lisp/progmodes/js.el (js-jsx-syntax, js--jsx-start-tag-re)
+       (js--looking-at-jsx-start-tag-p, js--looking-back-at-jsx-end-tag-p):
+       New variables and functions.
+       (js--jsx-find-before-tag, js--jsx-after-tag-re): Deleted.
+
+       (js--looking-at-operator-p): Don’t mistake a JSXOpeningElement for the
+       ‘<’ operator.
+       (js--continued-expression-p): Don’t mistake a JSXClosingElement as a
+       fragment of a continued expression including the ‘>’ operator.
+
+       (js--as-sgml): Simplify.  Probably needn’t bind forward-sexp-function
+       to nil (sgml-mode already does) and probably shouldn’t bind
+       parse-sexp-lookup-properties to nil either (see Bug#24896).
+
+       (js--outermost-enclosing-jsx-tag-pos): Find enclosing JSX more
+       accurately than js--jsx-find-before-tag.  Use sgml-mode’s parsing
+       logic, rather than unreliable heuristics like paren-wrapping.  This
+       implementation is much slower; the previous implementation was fast,
+       but at the expense of accuracy.  To make up for all the grief we’ve
+       caused users, we will prefer accuracy over speed from now on.  That
+       said, this can still probably be optimized a lot.
+
+       (js--jsx-indented-element-p): Rename to js--jsx-indentation, since it
+       doesn’t just return a boolean.
+       (js--jsx-indentation): Refactor js--jsx-indented-element-p to simplify
+       the implementation as the improved accuracy of other code allows (and
+       to repent for some awful stylistic choices I made earlier).
+
+       (js--expression-in-sgml-indent-line): Rename to
+       js--indent-line-in-jsx-expression, since it’s a private function and
+       we can give it a name that reads more like English.
+       (js--indent-line-in-jsx-expression): Restructure point adjustment
+       logic more like js-indent-line.
+
+       (js--indent-n+1th-jsx-line): New function to complement
+       js--indent-line-in-jsx-expression.
+
+       (js-jsx-indent-line): Refactor.  Don’t bind js--continued-expression-p
+       to ignore any more; instead, rely on the improved accuracy of
+       js--continued-expression-p.
+
+       (js-jsx-mode): Set js-jsx-syntax to t.  For now, this will be the flag
+       we use to determine whether ‘JSX is enabled.’  (Maybe later, we will
+       refactor the code to use this variable instead of requiring
+       js-jsx-mode to be enabled, thus rendering the mode obsolete.)
+
+2019-04-08  Jackson Ray Hamilton  <address@hidden>
+
+       Add failing tests for JSX indentation bugs
+
+       * test/manual/indent/js-jsx.js: Add failing tests for all the js-mode
+       and js2-mode JSX indentation bugs reported over the years that I could
+       find.  Some may be duplicates, so I have grouped similar reports
+       together, for now; we’ll see for certain which distinct cases we need
+       once we start actually implementing fixes.
+       * test/manual/indent/js-jsx-quote.js: New file with a nasty test.
+
+2019-04-08  Katsumi Yamaoka  <address@hidden>
+
+       Restore .dir-locals.el accidentally deleted
+
+       But this way -- git add/commit/push -- is probably wrong, sorry.
+
+2019-04-08  Katsumi Yamaoka  <address@hidden>
+
+       Fix last commit message
+
+2019-04-08  Katsumi Yamaoka  <address@hidden>
+
+       Make `jump to group' work even if it is not activated (bug#33653)
+
+       * lisp/gnus/gnus-group.el (gnus-group-goto-group):
+       Use gnus-newsrc-hashtb instead of gnus-active-hashtb to check if
+       a group exists even if its server is not activated (bug#33653).
+
+2019-04-08  Katsumi Yamaoka  <address@hidden>
+
+       Make `jump to group' work even if it is not activated (bug#33653)
+
+       * lisp/gnus/gnus-group.el (gnus-group-goto-group):
+       Use gnus-newsrc-hashtb instead of gnus-newsrc-hashtb to check if
+       a group exists even if its server is not activated (bug#33653).
+
+2019-04-08  Eric Abrahamsen  <address@hidden>
+
+       Fix encoding and access of Gnus group names
+
+       * lisp/gnus/gnus-start.el (gnus-active-to-gnus-format): Encode group
+         names as 'latin-1.
+       * lisp/gnus/nnmail.el (nnmail-parse-active): Ditto.
+       * lisp/gnus/nnml.el (nnml-request-group, nnml-request-create-group,
+         nnml-request-expire-articles, nnml-request-delete-group,
+         nnml-request-rename-group, nnml-deletable-article-p,
+         nnml-active-number, nnml-open-incremental-nov): Use assoc-string
+         with nnml-group-alist.
+       * lisp/gnus/nnrss.el (nnrss-request-delete-group,
+         nnrss-retrieve-groups, nnrss-read-group-data, nnrss-check-group,
+         nnrss-generate-download-script): Use assoc-string with
+         nnrss-group-alist.
+
+2019-04-08  Katsumi Yamaoka  <address@hidden>
+
+       Make `move article' work again (bug#33653)
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-move-article): Back to while loop
+       m dolist that blocks nov and active from saving (bug#33653).
+
+2019-04-08  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/gnus-sum.el: Prepare for lexical-binding
+
+       Add defvars for all the gnus-tmp-*.
+       (gnus-summary-make-local-variables): Move let binding to avoid setq.
+       (gnus-set-global-variables): Use dolist.
+       (gnus-summary-from-or-to-or-newsgroups, gnus-summary-insert-line)
+       (gnus-summary-insert-dummy-line): Avoid dynbind args.
+       (gnus-build-old-threads): Remove unused var 'id'.
+       (gnus-nov-parse-line): Remove unused var 'buffer'.
+       (gnus-thread-header): Prepare it for a lexbind world.
+       (gnus-adjust-marked-articles): Remove unused var 'marks'.
+       (gnus-mark-xrefs-as-read): Remove unused var 'idlist'.
+       (gnus-summary-display-article): Erase&widen before mm-enable-multibyte.
+       (gnus-summary-better-unread-subject): Remove unused var 'score'.
+       (gnus-summary-find-matching): Remove unused var 'd'.
+       (ps-right-header, ps-left-header, shr-ignore-cache): Declare vars.
+       (gnus-summary-idna-message, gnus-summary-morse-message)
+       (gnus-summary-sort-by-original):
+       Fix interactive spec since we don't actually use any prefix arg.
+       (gnus-summary-move-article, gnus-read-move-group-name): Use user-error.
+       (gnus-summary-move-article): Use dolist.
+       (gnus-summary-edit-article): Fix unquoting.
+       (gnus-summary-highlight-line-0, gnus-summary-highlight-line):
+       Declare dynbind vars documented in gnus-summary-highlight.
+
+2019-04-08  Juri Linkov  <address@hidden>
+
+       * lisp/vc/diff-mode.el (diff-syntax-fontify-props): Check both 
buffer-local
+
+       and default value of find-file-hook.
+
+2019-04-08  Paul Eggert  <address@hidden>
+
+       Allow gap before first non-Lisp pseudovec member
+
+       Problem reported by Keith David Bershatsky in:
+       https://lists.gnu.org/r/emacs-devel/2019-04/msg00259.html
+       Solution suggested by Stefan Monnier in:
+       https://lists.gnu.org/r/emacs-devel/2019-04/msg00282.html
+       * src/buffer.h (BUFFER_LISP_SIZE): Simplify by using PSEUDOVECSIZE.
+       (BUFFER_REST_SIZE): Simplify by using VECSIZE and BUFFER_LISP_SIZE.
+       * src/lisp.h (PSEUDOVECSIZE): Base it on the last Lisp field,
+       not the first non-Lisp field.  All callers changed.  Callers
+       without Lisp fields changed to use ALLOCATE_PLAIN_PSEUDOVECTOR.
+       (ALLOCATE_PLAIN_PSEUDOVECTOR): New macro.
+
+2019-04-08  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/gnus-agent.el (gnus-agent-fetch-articles): Use match-string
+
+       (gnus-agent-expire-group-1): Dial down on the 'setq'.
+
+2019-04-08  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/nadvice.el: Add ourselves to package--builtin-versions
+
+2019-04-08  Stefan Monnier  <address@hidden>
+
+       Eshell: Try to untangle the dependencies; move 'provide's to the end
+
+       * lisp/eshell/esh-arg.el: Move defsubst and vars before first use.
+       Don't require `esh-mode but esh-util instead.
+
+       * lisp/eshell/esh-cmd.el: Require esh-module and esh-io.
+
+       * lisp/eshell/esh-ext.el: Don't require esh-proc nor esh-cmd.
+       (eshell-external-command): Require esh-proc for
+       eshell-gather-process-output.
+
+       * lisp/eshell/esh-mode.el: Don't require esh-io nor esh-var, but
+       require esh-arg.
+       (eshell-directory-name): Move from eshell.el.
+
+       * lisp/eshell/esh-module.el: Don't require eshell.
+
+       * lisp/eshell/esh-opt.el: Don't require esh-ext at top-level.
+       (eshell--do-opts, eshell-show-usage): Require it here instead.
+
+       * lisp/eshell/esh-proc.el: Don't require esh-cmd, but require esh-io.
+       (eshell-reset-after-proc, eshell-record-process-object)
+       (eshell-gather-process-output, eshell-send-eof-to-process):
+       Require esh-mode and esh-var here.
+
+       * lisp/eshell/esh-var.el: Require esh-module, esh-arg, and esh-io.
+
+       * lisp/eshell/eshell.el: Require esh-module, esh-proc, esh-io, and 
esh-cmd.
+       But don't require esh-mode.
+       (eshell-directory-name): Move to esh-mode.
+       (eshell-return-exits-minibuffer): Don't bind 'return' and 'M-return'
+       since we already bind RET and M-RET.
+
+2019-04-08  Michael Albinus  <address@hidden>
+
+       Fix file-readable-p and file-executable-p in some Tramp backends
+
+       * lisp/net/tramp-archive.el (tramp-archive-handle-file-readable-p):
+       Use tramp-gvfs.
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-executable-p):
+       Check that FILENAME exists.
+       (tramp-gvfs-handle-file-readable-p): Check that FILENAME exists.
+       Use heuristic in case it cannot be determined correctly.
+
+2019-04-07  Mattias Engdegård  <address@hidden>
+
+       Rename variable for clarity
+
+       * lisp/progmodes/verilog-mode.el (verilog-sk-define-signal):
+       Rename sig-re to sig-chars, to make it clear that it isn't a regexp.
+
+2019-04-07  Alexander Gramiak  <address@hidden>
+
+       Plug memory leak in GTK x-display-monitor-attributes-list
+
+       * src/frame.c (free_monitors) [USE_GTK]: Define in the GTK case as
+         well.
+
+       * src/xfns.c (x-display-monitor-attributes-list) [USE_GTK]: Plug
+         memory leak.
+
+       * src/frame.h (MonitorInfo): Declare name as pointing to const char.
+
+2019-04-07  Paul Eggert  <address@hidden>
+
+       Simplify fill_gstring_header
+
+       * src/composite.c (fill_gstring_header): Omit first argument HEADER,
+       since in practice it is always nil.  Change caller to match.
+       Help the compiler by telling it LEN is nonnegative.
+       Problem found with --enable-gcc-warnings and gcc -O2 -Og.
+
+2019-04-07  Paul Eggert  <address@hidden>
+
+       Help the compiler with byte order
+
+       * src/xsettings.c (parse_settings): Help the compiler by
+       letting it deduce the native endianness at compile-time.
+
+2019-04-07  Paul Eggert  <address@hidden>
+
+       Fix more regexp oddities
+
+       Problems reported by Mattias Engdegård in:
+       https://lists.gnu.org/archive/html/emacs-devel/2019-04/msg00178.html
+       * lisp/progmodes/sh-script.el (sh-get-indent-info):
+       Reorder skip-chars-forward arg so that it does not look like a regexp.
+       * lisp/progmodes/verilog-mode.el (verilog-sk-define-signal):
+       Fix typo: the string is not a regexp.
+       * lisp/vc/log-edit.el (log-edit-goto-eoh): Fix typo: stray ‘:’.
+       * lisp/xml.el (xml-parse-dtd): Avoid ‘-’ right after char class.
+
+2019-04-07  Michael Albinus  <address@hidden>
+
+       Fix typo in tramp.texi
+
+       * doc/misc/tramp.texi (Change file name syntax)
+       (Frequently Asked Questions): '.' or ',' must follow xref.
+
+2019-04-07  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-parse-group): Rename third arg to SKIP-CHARS.
+
+       (tramp-parse-sconfig-group): Fix thinko.
+
+2019-04-06  Alexander Gramiak  <address@hidden>
+
+       * lisp/frame.el (display-planes): Use logb over truncate + log
+
+       Suggested by Basil L. Contovounesios:
+       https://lists.gnu.org/archive/html/bug-gnu-emacs/2019-03/msg01052.html
+
+2019-04-06  Alexander Gramiak  <address@hidden>
+
+       Introduce new defcustom for terminal CUA rectangle commands
+
+       This allows a user to set a non-meta modifier for their terminal
+       should his/her terminal support it. See bug#35058 for background on
+       this change.
+
+       * lisp/emulation/cua-base.el (cua-rectangle-terminal-modifier-key):
+       New defcustom.
+
+       * lisp/emulation/cua-base.el (cua--shift-control-x-prefix): Use new
+       defcustom.
+
+2019-04-06  Alexander Gramiak  <address@hidden>
+
+       Define and use new procedure display-symbol-keys-p
+
+       * lisp/frame.el (display-symbol-keys-p): Define.
+
+       * lisp/simple.el (normal-erase-is-backspace-setup-frame): Use eq
+       instead of memq.
+       (normal-erase-is-backspace-mode): Use display-symbol-keys-p.
+
+2019-04-06  Alexander Gramiak  <address@hidden>
+
+       Define and use new alias display-blink-cursor-p
+
+       display-graphic-p is not used in this case because it may be possible
+       in the future for terminals to allow control over cursor blinking. For
+       details, see bug#35058.
+
+       * lisp/frame.el (blink-cursor-mode): Use display-blink-cursor-p.
+
+2019-04-06  Alexander Gramiak  <address@hidden>
+
+       Use display-graphic-p and display-multi-frame-p in more cases
+
+       * lisp/disp-table.el:
+       * lisp/faces.el:
+       * lisp/frame.el:
+       * lisp/info.el (Info-fontify-node):
+       * lisp/window.el (handle-select-window): Use display-graphic-p and
+         display-multi-frame-p instead of explicit memq calls.
+
+2019-04-06  Basil L. Contovounesios  <address@hidden>
+
+       Distinguish buttons from widgets (bug#34506)
+
+       * lisp/button.el (button-at):
+       * lisp/wid-edit.el (widget-at): Avoid returning a false positive
+       when looking for a button and finding a widget, or vice versa.
+       * test/lisp/button-tests.el:
+       * test/lisp/wid-edit-tests.el: New files.
+
+2019-04-06  Stefan Monnier  <address@hidden>
+
+       * src/buffer.c (Fget_buffer_create): Apply booleans's eta-reduction
+
+2019-04-06  Stefan Monnier  <address@hidden>
+
+       * lisp/subr.el (setq-default): Fix thinko
+
+       Reported by Johan Bockgård <address@hidden>
+
+2019-04-06  Glenn Morris  <address@hidden>
+
+       * doc/misc/tramp.texi (Remote processes): '.' or ',' must follow xref.
+
+2019-04-06  Eli Zaretskii  <address@hidden>
+
+       Encode the FILENAME argument of 'file-locked-p'
+
+       * src/filelock.c (Ffile_locked_p): Encode the file name,
+       before passing it to system APIs.  (Bug#35171)
+
+2019-04-06  Basil L. Contovounesios  <address@hidden>
+
+       Don't leave inhibit_buffer_hooks uninitialized
+
+       * src/buffer.c (Fget_buffer_create): Explicitly initialize
+       inhibit_buffer_hooks. (bug#34847)
+
+2019-04-06  Michael Albinus  <address@hidden>
+
+       Fix Bug#34847
+
+       * lisp/autorevert.el (auto-revert-remove-current-buffer):
+       Add optional argument BUFFER.
+       (auto-revert-notify-rm-watch): Remove local hook.
+       (auto-revert-buffers): Check `buffer-live-p' in time.  (Bug#34847)
+
+2019-04-05  Alex Branham  <address@hidden>
+
+       Update documentation for indent-relative functions
+
+       * lisp/indent.el (indent-relative): Document what happens when there
+         is no previous nonblank line.
+       * doc/lispref/text.texi (Relative Indent): Document
+         indent-relative-first-indent-point instead of obsolete
+         indent-relative-maybe. Fix documentation of which argument from
+         'indent-relative' is used.
+
+       Bug#34858
+
+2019-04-05  Michał Krzywkowski  <address@hidden>
+
+       Small elide-head.el update
+
+       * lisp/elide-head.el (elide-head-headers-to-hide):
+       Also match https for GPL.  (Bug#34919)
+
+2019-04-05  Glenn Morris  <address@hidden>
+
+       * doc/emacs/emacs.texi (Acknowledgments): Remove duplicate.
+
+2019-04-05  Michael Albinus  <address@hidden>
+
+       Adapt tramp-tests.el
+
+       * test/lisp/net/tramp-tests.el (tramp-test30-make-process):
+       Instrument test.  Adapt check string.
+       (tramp-test34-explicit-shell-file-name)
+       (tramp-test43-asynchronous-requests): Skip tests for tramp-adb
+       with older Emacsen.
+
+2019-04-05  Konstantin Kharlamov  <address@hidden>
+
+       Minor cleanup in widget.c
+
+       * src/widget.c (update_wm_hints): Remove variables that are
+       always zero, and simplify all expressions which used them.
+       (Bug#35062)
+
+2019-04-05  Konstantin Kharlamov  <address@hidden>
+
+       Minor cleanup in gtkutil.c
+
+       * src/gtkutil.c (x_wm_set_size_hint): Remove variables that
+       are always zero, and simplify all expressions which used
+       them.  (Bug#35062)
+
+2019-04-04  Katsumi Yamaoka  <address@hidden>
+
+       Make `move article' work again (bug#33653)
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-move-article): Back to while loop
+       m dolist that blocks nov and active from saving (bug#33653).
+
+2019-04-04  Troy Hinckley  <address@hidden>
+
+       Don't check comp-buffer-name-function in derived mode (Bug#34956)
+
+       * lisp/progmodes/compile.el (define-compilation-mode): Remove
+       'compilation-buffer-name-function' from the list of overridden
+       variables to ensure that it is not mistaken for a variable that can be
+       major mode specific.  'compilation-buffer-name-function' is used
+       before the major mode is loaded, therefore overriding it here is
+       ineffectual.  Also, the function 'compilation-start' takes an optional
+       argument name-function, so there is already a mechanism to override
+       it.
+
+2019-04-04  Basil L. Contovounesios  <address@hidden>
+
+       Fix comment-empty-lines docstring (bug#35152)
+
+       * lisp/newcomment.el (comment-empty-lines): Consistently use US
+       commas in docstring.  Fix indentation of and typo in custom :type.
+
+2019-04-04  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/compile.el (compilation-error-regexp-alist): Typo
+
+       Reported by Kévin Le Gouguec <address@hidden>
+
+2019-04-04  Stefan Monnier  <address@hidden>
+
+       * lisp/desktop.el (desktop--v2s): Add case for defstructs (bug#35131)
+
+2019-04-04  Michael Albinus  <address@hidden>
+
+       * test/lisp/net/tramp-tests.el (tramp-test43-asynchronous-requests):
+
+       Make it fit for tramp-adb.  Apply better check in process filter.
+
+2019-04-03  Mauro Aranda  <address@hidden>
+
+       Avoid recursive load of eshell
+
+       * lisp/eshell/eshell.el: Provide eshell before requiring esh-mode to
+       avoid a recursive load when esh-mode requires esh-module (which in
+       turn requires eshell).  (Bug #34954)
+       The double loading can be noticed by entries in 'eshell-load-hook' or
+       forms passed to (with-eval-after-load 'eshell ...).
+
+2019-04-03  Mauro Aranda  <address@hidden>
+
+       Fix repeated 'custom-add-option' in esh-mode.el (Bug#34993)
+
+       * lisp/eshell/esh-mode.el: Call 'custom-add-option' with the right
+       argument.
+
+2019-04-03  Michael Albinus  <address@hidden>
+
+       Work on asynchronous processes for tramp-adb.el
+
+       * lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
+       Simplify.  Remove echoed first line.
+       (tramp-adb-send-command): Add NEVEROPEN and NOOUTPUT.
+
+       * lisp/net/tramp-sh.el (tramp-process-sentinel): Remove.
+       (tramp-sh-handle-make-process): Simplify.
+
+       * lisp/net/tramp.el (tramp-process-sentinel): New defun, taken from
+       tramp-sh.el.  Delete trailing shell prompt.
+
+       * test/lisp/net/tramp-tests.el (tramp-test29-start-file-process)
+       (tramp-test30-make-process): Run also for tramp-adb.
+       (tramp-test32-shell-command): Remove tramp-adb restrictions.
+       (tramp-test34-explicit-shell-file-name): Rework.  Remove :unstable tag.
+
+2019-04-03  Glenn Morris  <address@hidden>
+
+       * test/lisp/progmodes/flymake-tests.el (different-diagnostic-types):
+       Expect failure on hydra.nixos.
+
+2019-04-03  Eli Zaretskii  <address@hidden>
+
+       Improve commentary in 'field_relpos'
+
+       * src/pdumper.c (PDUMPER_MAX_OBJECT_SIZE): New macro.
+       (field_relpos): Use PDUMPER_MAX_OBJECT_SIZE, and comment on
+       why we require that relpos be not too large.
+
+2019-04-03  Eli Zaretskii  <address@hidden>
+
+       Restore process-environment after portable dumping
+
+       * src/pdumper.c (struct dump_context): New member
+       old_process_environment.
+       (Fdump_emacs_portable): Record the original value of
+       process-environment.
+       (dump_unwind_cleanup): Restore the original values of
+       process-environment and post-gc-hook.
+
+2019-04-03  Stephen Leake  <address@hidden>
+
+       Fix bug in gud-gdb-marker-filter: first marker does not start with \n
+
+2019-04-03  Basil L. Contovounesios  <address@hidden>
+
+       Avoid using obsolete indent-relative-maybe
+
+       * lisp/electric.el (electric-indent-functions-without-reindent):
+       * lisp/indent.el (indent-according-to-mode): Check for
+       indent-relative-first-indent-point in addition to its obsolete alias
+       indent-relative-maybe.
+       * lisp/obsolete/vi.el (vi-com-map): Use
+       indent-relative-first-indent-point in place of its obsolete alias
+       indent-relative-maybe.
+
+2019-04-03  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/compile.el: Use non-nil values for *-function
+
+       
(compilation-parse-errors-filename-function,compilation-exit-message-function)
+       (compilation-process-setup-function, compilation-buffer-name-function):
+       Give them non-nil default values.
+       (compilation-buffer-name): Restructure slightly.
+       (compilation--default-buffer-name): New function, extracted from it.
+       Use `name-of-mode` instead of `mode-command` to check if the current
+       buffer is already in the appropriate mode.
+
+2019-04-03  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/compile.el: Allow 'line' functions in 
error-regexp-alist
+
+       (compilation-error-properties): Allow 'line' and 'end-line' to be 
functions,
+       like 'col' and 'end-col'.
+       (compilation-error-regexp-alist): Document this.
+       (compilation-parse-errors): Drop support for old undocumented feature
+       where 'line' was a function of 2 arguments.
+       (compilation--compat-error-properties): Delete function.
+
+2019-04-02  Noam Postavsky  <address@hidden>
+
+       Allow partial decompression (Bug#33133)
+
+       * src/decompress.c (Fzlib_decompress_region): Add optional
+       ALLOW-PARTIAL parameter.
+       * lisp/url/url-http.el (url-handle-content-transfer-encoding): Use it.
+       * doc/lispref/text.texi (Decompression): Document it.
+       * etc/NEWS: Announce it.
+
+2019-04-02  Basil L. Contovounesios  <address@hidden>
+
+       * lisp/gnus/gnus-dup.el: Use lexical-binding
+
+       (gnus-dup-list-dirty): Add docstring.
+       (gnus-dup-open): Allocate gnus-dup-hashtb more conservatively now
+       that it is no longer an obarray.
+       (gnus-dup-enter-articles): Fix off-by-one error.
+       (gnus-dup-suppress-articles): DRY.
+
+       For discussion, see thread starting at:
+       https://lists.gnu.org/archive/html/emacs-devel/2019-03/msg00974.html
+
+2019-04-02  Wilson Snyder  <address@hidden>
+
+       Fix verilog-mode vmm statements and AUTOINPUTREG ignores.
+
+       * lisp/progmodes/verilog-mode.el (verilog-vmm-statement-re):
+       Fix vmm statement regexps. Reported by Mattias Engdegard.
+       (verilog-auto-reg-input)
+       (verilog-auto-reg-input-assigned-ignore-regexp): For AUTOINPUTREG,
+       allow ignoring assignments with new
+       `verilog-auto-reg-input-assigned-ignore-regexp' variable, bug1401.
+       Reported by David Rogoff.
+
+2019-04-02  Paul Eggert  <address@hidden>
+
+       Improve regexp advice again, and unchain ranges
+
+       * doc/lispref/searching.texi (Regexp Special):
+       Mention char classes earlier, in a more-logical place.
+       Advise sticking to ASCII letters and digits in ranges.
+       Reword negative advice to make it clearer that it’s negative.
+       * lisp/files.el (make-auto-save-file-name):
+       * lisp/gnus/message.el (message-mailer-swallows-blank-line):
+       * lisp/gnus/nndoc.el (nndoc-lanl-gov-announce-type-p)
+       (nndoc-generate-lanl-gov-head):
+       * lisp/org/org-eshell.el (org-eshell-open):
+       * lisp/org/org.el (org-deadline-time-hour-regexp)
+       (org-scheduled-time-hour-regexp):
+       * lisp/progmodes/bat-mode.el (bat-font-lock-keywords):
+       * lisp/progmodes/bug-reference.el (bug-reference-bug-regexp):
+       * lisp/textmodes/less-css-mode.el (less-css-font-lock-keywords):
+       * lisp/vc/vc-cvs.el (vc-cvs-valid-symbolic-tag-name-p):
+       * lisp/vc/vc-svn.el (vc-svn-valid-symbolic-tag-name-p):
+       Avoid attempts to chain ranges, as this can be confusing.
+       For example, instead of [0-9-_.], use [0-9_.-].
+
+2019-04-02  Eli Zaretskii  <address@hidden>
+
+       Fix documentation of last change
+
+       * doc/misc/cl.texi (Structures): Document :noinline.
+
+       * etc/NEWS: Mark the entry for :noinline as documented.
+
+2019-04-02  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-macs.el: Don't always inline struct functions
+
+       (cl--struct-inline): New var.
+       (cl-defstruct): Obey it along with a new :noinline keyword argument.
+
+2019-04-02  Stefan Monnier  <address@hidden>
+
+       * lisp/subr.el (prog2): Define as a macro
+
+       * src/eval.c (Fprog2): Delete function.
+       (syms_of_eval): Don't register it.
+
+       * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
+       * lisp/emacs-lisp/generator.el (cps--transform-1): Remove `prog2` case.
+
+       * lisp/emacs-lisp/bytecomp.el (prog2): Remove handlers.
+       (byte-compile-prog2): Delete.
+
+       * lisp/emacs-lisp/lisp-mode.el (prog2): Remove property.
+
+2019-04-02  Michael Albinus  <address@hidden>
+
+       Suppress timers in tramp-send-string
+
+       * lisp/net/tramp.el (tramp-send-string): Suppress timers.  Use
+       `with-local-quit'.
+
+2019-04-02  Michael Albinus  <address@hidden>
+
+       Give example for configuration in tramp.texi
+
+       * doc/misc/tramp.texi (Configuration): Explain how to call Tramp
+       configuration functions in the init file.
+
+2019-04-02  Paul Eggert  <address@hidden>
+
+       More regexp advice and clarifications
+
+       * doc/lispref/searching.texi (Regexp Special): Simplify style
+       advice for order of ], ^, and - in character alternatives.
+       Stick with saying that it’s not a good idea to put ‘-’ after a
+       range.  Remove the special case about raw 8-bit bytes and
+       unibyte characters, as this documentation is confusing and
+       seems to be incorrect in some cases.  Say that z-a is the
+       preferred style for reversed ranges, since it’s clearer and is
+       typically what’s used in practice.  Mention some bad styles:
+       duplicates in character alternatives, ranges that denote <=3
+       characters, and ‘-’ as the first character.
+
+2019-04-01  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       0924b27bca Say which regexp ranges should be avoided
+
+       # Conflicts:
+       #       doc/lispref/searching.texi
+
+2019-04-01  Eric Abrahamsen  <address@hidden>
+
+       Refactor Gnus group name extraction in group completing read
+
+       * lisp/gnus/gnus-group.el (gnus-group-completing-read): Only do the
+         unibyte check once; make sure it applies to hash table keys as
+         well.
+
+2019-04-01  Paul Eggert  <address@hidden>
+
+       Make struct Lisp_Objfwd etc. objects read-only
+
+       Initialize these objects statically, and make them constants.
+       This is a bit safer and more efficient.
+       * src/data.c (XBOOLFWD, XKBOARD_OBJFWD, XFIXNUMFWD, XOBJFWD):
+       * src/lisp.h (XBUFFER_OBJFWD):
+       Return a pointer-to-const instead of an unrestricted pointer.
+       (lispfwd): fwdptr is now a pointer-to-const instead of an
+       unrestricted pointer.  All uses changed.
+       (SET_SYMBOL_FWD): Accept pointer-to-const instead of an
+       unrestricted pointer.
+       (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL, DEFVAR_INT)
+       (DEFVAR_KBOARD): Initialize static structures statically
+       instead of dynamically, and make them const.
+       * src/lread.c (defvar_int, defvar_bool, defvar_lisp_nopro)
+       (defvar_lisp, defvar_kboard): Accept pointer-to-const instead
+       of an unrestricted pointer; it’s now the caller’s
+       responsibility to initialize the pointed-to storage.  No need
+       for a separate address argument any more.  All callers
+       changed.
+
+2019-04-01  Paul Eggert  <address@hidden>
+
+       Fix union Lisp_Fwd * alignment bug
+
+       It's not portable to cast (e.g.) struct Lisp_Objfwd * to union
+       Lisp_Fwd * and then back again, because the compiler can then assume
+       that the pointer is aligned for union Lisp_Fwd * when accessing
+       the struct Lisp_Objfwd * components, and this assumption might
+       be incorrect becase we don't force that alignment.
+       * src/lisp.h (lispfwd): New type, replacing ...
+       (union Lisp_Fwd): ... this type, which was removed.
+       All uses changed.
+       (SET_SYMBOL_FWD): 2nd arg is now void *, not lispfwd.
+       All uses changed (casts no longer needed; they were
+       not portable anyway).
+
+2019-04-01  Stefan Monnier  <address@hidden>
+
+       * lisp/subr.el (setq-default): Define as a macro
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-setq-default): Delete.
+       (byte-compile-set-default): Inline the part that it used.
+
+       * lisp/emacs-lisp/edebug.el (setq-default): Remove the debug spec.
+
+       * src/data.c (Fsetq_default): Delete.
+       (syms_of_data): Don't register.
+
+2019-04-01  Eli Zaretskii  <address@hidden>
+
+       Fix a typo in xterm.c and w32term.c
+
+       * src/xterm.c (x_window_to_scroll_bar):
+       * src/w32term.c (x_window_to_scroll_bar): Fix a typo.
+
+2019-03-31  Paul Eggert  <address@hidden>
+
+       Use update-game-score more often with Tetris
+
+       * lisp/play/gamegrid.el (gamegrid-add-score-with-update-game-score):
+       Go back to previous way of deciding whether to invoke
+       update-game-score, except do not try to invoke it if file-modes
+       fails on it (Bug#35056).
+
+2019-03-31  Basil L. Contovounesios  <address@hidden>
+
+       Do not set indent-line-function in text-mode
+
+       * lisp/textmodes/text-mode.el (text-mode): Do not reset
+       indent-line-function to its global default value of indent-relative.
+       * doc/lispref/modes.texi (Example Major Modes):
+       * etc/NEWS: Document change accordingly.
+
+2019-03-31  Basil L. Contovounesios  <address@hidden>
+
+       Do not set indent-line-function in text-mode
+
+       For discussion, see thread starting at:
+       https://lists.gnu.org/archive/html/emacs-devel/2019-03/msg01012.html
+       * lisp/textmodes/text-mode.el (text-mode): Do not reset
+       indent-line-function to its global default value of indent-relative.
+       * doc/lispref/modes.texi (Example Major Modes):
+       * etc/NEWS: Document change accordingly.
+
+2019-03-31  Basil L. Contovounesios  <address@hidden>
+
+       Use lexical-binding in text-mode.el
+
+       * lisp/textmodes/text-mode.el: Use lexical-binding.
+       (text-mode, paragraph-indent-minor-mode, text-mode-hook-identify):
+       Use setq-local.
+       (toggle-text-mode-auto-fill): Quote function symbols as such.
+       (center-line): Minor simplification.
+       * doc/lispref/modes.texi (Example Major Modes): Update code example
+       for these changes to text-mode.
+
+2019-03-31  Alan Third  <address@hidden>
+
+       Use the correct filename for dump file in NS
+
+       * nextstep/Makefile.in (all):
+       (${ns_appbindir}/Emacs.pdmp):
+       (links): Use mixed case 'Emacs.pdmp' to match the executable name.
+
+2019-03-31  Basil L. Contovounesios  <address@hidden>
+
+       Fix recently extended delete-indentation behavior
+
+       * doc/lispref/text.texi (User-Level Deletion): Document new optional
+       arguments of delete-indentation.
+
+       * lisp/simple.el (delete-indentation): Do not barf if called
+       interactively when region is inactive. (bug#35021)
+       Do not skip blank lines. (bug#35036)
+       Consistently deactivate mark even when no text was changed.
+       Handle active region spanning a single line.
+
+       * test/lisp/simple-tests.el (simple-test--buffer-substrings):
+       New convenience function.
+       (simple-test--dummy-buffer, simple-test--transpositions): Use it.
+       (simple-delete-indentation-no-region)
+       (simple-delete-indentation-inactive-region): Update commentary.
+       Call delete-indentation interactively when testing for behavior with
+       inactive region and region is not explicitly defined.
+       (simple-delete-indentation-blank-line)
+       (simple-delete-indentation-boundaries)
+       (simple-delete-indentation-region)
+       (simple-delete-indentation-prefix): New tests.
+
+2019-03-31  Eric Abrahamsen  <address@hidden>
+
+       Check gnus-newsgroup-dependencies is hash table in gnus-id-to-thread
+
+       * lisp/gnus/gnus-sum.el (gnus-id-to-thread): If dependencies haven't
+         been initialized yet, don't blow up. Mimicks previous (non hasht
+         table) behavior.
+
+2019-03-31  Mattias Engdegård  <address@hidden>
+
+       Fix typo in regexp-opt example code
+
+       * doc/lispref/searching.texi (Regexp Functions):
+       Fix typo in example code (Bug#34596).
+
+2019-03-30  Alan Mackenzie  <address@hidden>
+
+       Allow a CC Mode derived mode to have strings delimited by single quotes.
+
+       Also fix the bug where the delimiters of '\033', etc. got the error 
face.
+
+       * lisp/progmodes/cc-langs.el (c-single-quotes-quote-strings): Enhance 
the docr
+       string.
+       (c-string-delims): Change doc string to doc comment.
+
+       * lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings): 
In
+       searches and comparisons, take account of the string delimiters possibly
+       being '.  Fix argument in call of 
c-before-change-check-unbalanced-strings.
+       (c-parse-quotes-before-change, c-parse-quotes-after-change): Bind
+       case-fold-search to nil.  Analyze escape constructs inside character 
constants
+       more accurately, in particular accepting as valid more than one 
character
+       after /[0-7], /x, /u, and /U.  Amend calculations to account for this 
extra
+       length.
+
+2019-03-30  Eli Zaretskii  <address@hidden>
+
+       Fix a thinko in a recent commit
+
+       * src/buffer.c (Fkill_buffer): Fix last change.  (Bug#31138)
+       Reported by Mattias Engdegård <address@hidden>.
+
+2019-03-30  Mattias Engdegård  <address@hidden>
+
+       Release regexp before signalling overflow error
+
+       * src/search.c (looking_at_1, search_buffer_re): Unfreeze the regexp
+       buffer before signalling a matcher overflow, since the error
+       processing may require quite some regexp use as well (Bug#34910).
+
+2019-03-30  Mattias Engdegård  <address@hidden>
+
+       Fix spurious regexp reentrancy error
+
+       * src/search.c (compile_pattern): Don't give up if the last regexp
+       cache entry is busy.  Instead, use the last (least recently used)
+       non-busy entry, and only signal a reentrancy error if there is no free
+       entry at all (Bug#34910).
+
+2019-03-30  Eli Zaretskii  <address@hidden>
+
+       Don't run buffer-related hooks in " *code conversion work*" buffers
+
+       Note: portions of this change were mistakenly pushed as part
+       of an unrelated commit a35a1f6a9.
+
+       * src/buffer.c (Fget_buffer_create): Set inhibit_buffer_hooks
+       non-zero for temporary buffers created by coding.c.  Don't run
+       buffer-list-update-hook for such buffers.
+       (Frename_buffer, Fkill_buffer, record_buffer)
+       (Fbury_buffer_internal): Don't run hooks for buffers whose
+       inhibit_buffer_hooks flag is set.
+       * src/buffer.h (struct buffer): New member
+       inhibit_buffer_hooks.
+       * src/pdumper.c (dump_buffer): Dump the new field.  Update the
+       hash value in HASH_buffer_XXX.
+       * src/coding.c (make_conversion_work_buffer): Function deleted;
+       code moved to code_conversion_save.
+       (code_conversion_save): Insert code from
+       make_conversion_work_buffer, but arrange for unwind-protecting
+       the current buffer before switching to the work buffer.  This
+       avoids leaving reused_workbuf_in_use set if user presses C-g
+       during encoding/decoding.
+       (Vcode_conversion_workbuf_name): Now external variable.
+       * src/coding.h (Vcode_conversion_reused_workbuf): Declare.
+
+2019-03-29  Michael Albinus  <address@hidden>
+
+       Extend comment about scope of tramp-test05-expand-file-name-relative
+
+2019-03-29  Stefan Monnier  <address@hidden>
+
+       Gnus: Automatically render text/calendar in a human-friendly way
+
+       * lisp/gnus/mm-decode.el (mm-inline-media-tests): Add text/calendar 
entry.
+       Use (fboundp 'device-sound-enabled-p) rather than fishing for features.
+       (mm-automatic-display): Add text/calendar entry.
+
+       * lisp/gnus/gnus-icalendar.el: Use lexical-binding.
+       Remove redundant :group args.
+       (gnus-icalendar-mm-inline): Add autoload cookie.
+
+2019-03-29  Alan Mackenzie  <address@hidden>
+
+       Fix (again) regexp bug in CC Mode.
+
+       * lisp/progmodes/cc-mode.el (c-after-change-mark-abnormal-strings): 
"|\\\r" ->
+       "\\|\r".
+
+2019-03-28  Mattias Engdegård  <address@hidden>
+
+       Use memql instead of memq in pcase
+
+       * lisp/emacs-lisp/pcase.el (pcase--u1):
+       Use memql instead of memq to work with bignums (Bug#34781).
+       * test/lisp/emacs-lisp/pcase-tests.el (pcase-tests-member): Test the 
above.
+
+2019-03-28  Eric Abrahamsen  <address@hidden>
+
+       Initiate gnus-active-hashtb before making ephemeral group
+
+       * lisp/gnus/gnus-group.el (gnus-group-read-ephemeral-group): Needs to
+         be a hash table, not nil.
+
+2019-03-28  Eli Zaretskii  <address@hidden>
+
+       Fix display of sliced images on MS-Windows
+
+       * src/w32term.c (x_draw_image_foreground): Fix detection of
+       scaled images for sliced images.  Scale the original width of
+       a slice and its coordinates of origin as well.
+
+2019-03-28  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-accept-process-output): Use `push'.
+
+2019-03-27  Paul Eggert  <address@hidden>
+
+       Simpler way to export HAVE_X_WINDOWS to GDB
+
+       * src/.gdbinit: Simplify by removing dependency on globals
+       implementation.  This is useful for a future performance
+       improvement that I have in mind.
+       * src/alloc.c (enum defined_HAVE_X_WINDOWS, defined_HAVE_X_WINDOWS):
+       New enum and constant.
+       (gdb_make_enums_visible) [__GNUC__]: Use it, to make
+       defined_HAVE_X_WINDOWS visible to GDB.
+
+2019-03-27  Paul Eggert  <address@hidden>
+
+       Tweak re_registers allocation
+
+       * src/regex-emacs.c (re_match_2_internal):
+       No need to allocate one extra trailing search register;
+       Emacs does not use it.  Avoid quadratic behavior on
+       reallocation.
+
+2019-03-27  Paul Eggert  <address@hidden>
+
+       No need for m_search_regs_saved in thread.h
+
+       * src/search.c (save_search_regs, restore_search_regs):
+       Don’t use m_search_regs_saved; it’s equivalent to
+       saved_search_regs.num_regs != 0.
+       * src/thread.h (struct thread_state): Remove m_search_regs_saved.
+
+2019-03-27  Paul Eggert  <address@hidden>
+
+       Fix search_regs memory leak when thread destroyed
+
+       * src/thread.c (free_search_regs): New function.
+       (finalize_one_thread): Use it.
+
+2019-03-27  Juri Linkov  <address@hidden>
+
+       * lisp/frame.el (make-frame-on-monitor): Add default value.  (Bug#34516)
+
+2019-03-27  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-accept-process-output): Let progress 
reporter run.
+
+2019-03-27  Charles A. Roelli  <address@hidden>
+
+       * test/lisp/mail/rmail-tests.el (rmail-autoload): Fix its doc.
+
+2019-03-27  Paul Eggert  <address@hidden>
+
+       Tune css-mode regexp
+
+       * lisp/textmodes/css-mode.el (css--font-lock-keywords):
+       Omit unnecessary \(?: \) in regexp.  Suggested by Mattias Engdegård in:
+       https://lists.gnu.org/r/emacs-devel/2019-03/msg01042.html
+
+2019-03-27  Michael Heerdegen  <address@hidden>
+
+       Improve documentation of 'alist-get' (Bug#34708)
+
+       * lisp/subr.el (alist-get): Enhance part of docstring explaining usage
+       in place expressions.
+
+2019-03-27  Paul Eggert  <address@hidden>
+
+       Use regexp-opt-charset to improve regexp tweaks
+
+       * lisp/emacs-lisp/regexp-opt.el (regexp-opt):
+       Reword confusing sentence in doc string.
+       * lisp/erc/erc.el (erc-lurker-maybe-trim):
+       * lisp/mail/footnote.el (footnote-hebrew-numeric-regex):
+       Improve by using regexp-opt-charset.
+
+2019-03-27  Eli Zaretskii  <address@hidden>
+
+       Attempt to fix crashes under GDB on Windows 10
+
+       * src/pdumper.c (dump_discard_mem)
+       [VM_SUPPORTED == VM_MS_WINDOWS]: Don't pass NULL pointer as
+       last argument to VirtualProtect.  Reported by Martin Rudalics
+       <address@hidden>.
+
+2019-03-27  Paul Eggert  <address@hidden>
+
+       Minor xml.el tweaks
+
+       * lisp/xml.el (xml-name-start-char-re, xml-name-char-re):
+       No need to call concat.
+       (xml-name-char-re): Use \u escapes rather than chars inline,
+       so that the code matches the comments better and is easier
+       to audit.
+
+2019-03-27  Michael Albinus  <address@hidden>
+
+       Use connection-local setting for tramp-remote-path
+
+       * doc/misc/tramp.texi (Remote programs): Mention connection-local
+       settings for `tramp-remote-path'.
+
+       * lisp/net/tramp-sh.el (tramp-get-remote-path): Expand connection-local
+       variables.
+
+2019-03-27  Basil L. Contovounesios  <address@hidden>
+
+       Avoid recently obsolete seq-contains in css-mode
+
+       * lisp/textmodes/css-mode.el (css--join-nested-selectors): Replace
+       recently obsolete seq-contains with new predicate seq-contains-p.
+
+2019-03-27  Mattias Engdegård  <address@hidden>
+
+       * lisp/xml.el (xml-name-char-re): Remove superfluous `-' in regexp.
+
+2019-03-27  Alan Mackenzie  <address@hidden>
+
+       Improve C++ raw string fontification.
+
+       Integrate the handling of raw string and ordinary string fontification.
+
+       * lisp/progmodes/cc-defs.el (c-font-lock-flush)
+       (c-search-forward-char-property-without-value-on-char): new macros.
+       (c-point): In the 'eoll arm, check for eobp.
+       (c-search-forward-char-property-with-value-on-char): Handle the 
&optional
+       limit argument being nil.
+       (c-clear-char-property-with-value-on-char-function)
+       (c-clear-char-property-with-value-on-char): Return the position of the 
first
+       cleared property.
+
+       * lisp/progmodes/cc-engine.el (c-find-decl-prefix-search): Don't 
spuriously
+       recognize the change of face at a ) as the start of a string (a
+       "pseudo match").
+       (c-old-beg-rs c-old-end-rs): New variables.
+       (c-raw-string-pos): Analyze raw string delimiters more carefully.
+       (c-raw-string-in-end-delim): New function.
+       (c-depropertize-raw-string): Largely rewritten.
+       (c-before-change-check-raw-strings): New functionality: only remove the
+       syntax-table text properties from raw strings whose delimiters are 
about to
+       change.
+       (c-propertize-raw-string-id): New function.
+       (c-after-change-re-mark-raw-strings): Remove, incorporating 
functionality into
+       other functions.
+       (c-propertize-raw-string-opener): Largely rewritten.
+       (c-after-change-re-mark-raw-strings): Removed.
+       (c-after-change-unmark-raw-strings, c-after-change-unmark-raw-strings): 
New
+       functions.
+
+       * lisp/progmodes/cc-fonts.el (c-font-lock-raw-strings): Largely 
rewritten.
+
+       * lisp/progmodes/cc-langs.el (c-before-font-lock-functions): Replace
+       c-after-change-re-mark-unbalanced-strings by
+       c-after-change-mark-abnormal-strings in the t, c+objc, c++ and java 
sections.
+       Add c-after-change-unmark-raw-strings and remove
+       c-after-change-re-mark-raw-strings from the c++ section.
+
+       * lisp/progmodes/cc-mode.el (c-old-BEG c-old-END): Remove.
+       (c-old-END-literality): New variable.
+       (c-depropertize-CPP): Remove syntax-table properties from raw strings 
within
+       macros.
+       (c-before-change-check-unbalanced-strings): Call
+       c-truncate-semi-nonlit-pos-cache to preserve the integrity of the cache.
+       (c-before-change-check-unbalanced-strings): Call
+       c-truncate-semi-nonlit-pos-cache, largely rewritten.
+       (c-after-change-re-mark-unbalanced-strings): Renamed to
+       c-after-change-mark-abnormal-strings.  Call c-maybe-re-mark-raw-string.
+
+2019-03-27  Andreas Schwab  <address@hidden>
+
+       * lisp/calc/calc-forms.el (calc-hms-notation): Fix interactive
+       prompt.
+
+2019-03-27  Nicolas Petton  <address@hidden>
+
+       * lisp/emacs-lisp/map.el (map-inplace): Fix the message of the error.
+
+2019-03-26  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Support native image resizing on cairo
+
+       * src/xterm.c (x_cr_draw_image): Add arguments image_width and
+       image_height and support scaling.  All callers changed.
+       * src/image.c (Fimage_scaling_p): Return t when USE_CAIRO.
+       (x_set_image_size) [USE_CAIRO]: Record the scaled dimensions
+       in the image struct.
+       * src/dispextern.h (HAVE_NATIVE_SCALING): Define when
+       USE_CAIRO as well.
+
+       * etc/NEWS: Update the announcement of native image scaling.
+
+2019-03-26  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix cairo image drawing with box
+
+       * src/xterm.c (x_cr_draw_image): Don't call cr_clip for non-mask case.
+       (x_draw_image_foreground) [USE_CAIRO]: Draw image here ...
+       (x_draw_image_glyph_string) [USE_CAIRO]: ... instead of here.
+       (x_draw_image_foreground, x_draw_image_foreground_1)
+       (x_draw_image_glyph_string) [USE_CAIRO]: Ifdef away unused code path.
+
+2019-03-26  Paul Eggert  <address@hidden>
+
+       2019-03-26 regex cleanup
+
+       Problems reported by Mattias Engdegård in:
+       https://lists.gnu.org/r/emacs-devel/2019-03/msg01028.html
+       * lisp/align.el (align-rules-list):
+       * lisp/speedbar.el (speedbar-check-read-only, speedbar-check-vc):
+       * lisp/vc/diff-mode.el (diff-add-change-log-entries-other-window):
+       * lisp/woman.el (woman-parse-numeric-arg):
+       Put "-" at end of character alternatives, since a range was not 
intended.
+       * lisp/erc/erc.el (font-lock):
+       * lisp/mail/footnote.el (cl-seq):
+       Avoid duplicate character alternatives by using cl-seq API.
+       * lisp/mail/footnote.el (footnote--current-regexp):
+       * lisp/textmodes/css-mode.el (css--font-lock-keywords):
+       Avoid repetition of repetition.
+       * lisp/net/webjump.el (webjump-url-encode):
+       Add ~ to character alternatives, and rewrite confusing range.
+       * lisp/progmodes/verilog-mode.el (verilog-compiler-directives)
+       (verilog-assignment-operator-re):
+       Remove duplicate.
+       * lisp/progmodes/verilog-mode.el (verilog-preprocessor-re):
+       * lisp/textmodes/css-mode.el (css--font-lock-keywords):
+       Don’t escape a char that doesn’t need it.
+       * lisp/textmodes/picture.el (picture-tab-chars): In docstring,
+       do not say regexp characters will be quoted; merely say in
+       another way that the syntax is that of character alternatives.
+       (picture-set-tab-stops, picture-tab-search): Don’t attempt
+       to regexp-quote picture-tab-chars.
+       (picture-tab-search): Quote \ in picture-tab-chars for
+       skip-chars-backwards, which treats \ differently than
+       regexp character alternatives do.
+
+2019-03-26  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/easy-mmode.el: simplify via custom-current-group
+
+       * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
+       Don't try and guess a default :group, defcustom does it better anyway.
+
+2019-03-26  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Use cairo image surface instead of pattern for fringe bitmap
+
+       * src/xterm.c (fringe_bmp, x_cr_define_fringe_bitmap)
+       (x_cr_destroy_fringe_bitmap, x_cr_draw_image) [USE_CAIRO]:
+       Change type of fringe bitmap.
+
+2019-03-26  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Fix cairo scrolling for left scroll bars case
+
+       * src/xterm.c (x_scroll_run) [USE_CAIRO]: Fix scrolling by unusing
+       WINDOW_LEFT_EDGE_X.  (Bug#31288)
+
+2019-03-25  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Support tool bar icon image on GTK+ >= 3.10 with cairo
+
+       * src/gtkutil.c (xg_get_image_for_pixmap) [USE_CAIRO]: Use cairo image
+       surface for GtkImage source.
+       (xg_tool_item_stale_p, update_frame_tool_bar) [USE_CAIRO]: Use cairo
+       image surface instead of pixmap for data associated with tool bar item.
+
+2019-03-25  YAMAMOTO Mitsuharu  <address@hidden>
+
+       Simplify cairo image surface creation and destruction
+
+       * src/dispextern.h (struct image) [USE_CAIRO]: Remove member cr_data2.
+       * src/image.c (set_cairo_image_surface): New function split from
+       original create_cairo_image_surface.  Call cairo_surface_mark_dirty.
+       (create_cairo_image_surface): Just create image surface and return it.
+       (x_clear_image): Don't free cr_data2.
+       (xpm_load, pbm_load, png_load_body, jpeg_load_body, tiff_load)
+       (gif_load, imagemagick_load_image, svg_load_image) [USE_CAIRO]: Use
+       new create_cairo_image_surface and cairo_image_surface_get_data
+       instead of xmalloc.  Use set_cairo_image_surface instead of old
+       create_cairo_image_surface.
+       (pbm_load) [USE_CAIRO]: Call cairo_surface_destroy for surface instead
+       of xfree for data.
+       (gif_load) [USE_CAIRO]: Multiply y-coordinate value by width instead
+       of subimg_width.
+
+2019-03-25  Paul Eggert  <address@hidden>
+
+       Port recent ngettext stub to non-glibc
+
+       * src/editfns.c: Don’t try to call glibc ngettext;
+       we’re not ready for that yet.
+       (Fngettext): Do not restrict integer arguments to fixnums.
+       Improve doc string a bit.
+
+2019-03-25  Paul Eggert  <address@hidden>
+
+       Update from Gnulib.
+
+       This incorporates:
+       2019-03-23 Support cross-compilation to musl libc
+       2019-03-23 noreturn: In C++ mode with clang, use _Noreturn as fallback
+       2019-03-22 _Noreturn: beware of C's _Noreturn in C++ pre C++11
+       2019-03-19 Help making signal handlers more reliable
+       2019-03-18 _Noreturn: clang and MSVC do support [[noreturn]] in C++11
+       2019-03-17 _Noreturn: GCC 4.7 does not support [[noreturn]] in C++11
+       2019-03-14 all: Update URLs to msdn.microsoft.com
+       * doc/misc/texinfo.tex, lib/_Noreturn.h, lib/gettimeofday.c:
+       * lib/mktime.c, lib/regcomp.c, lib/regexec.c, lib/stat-time.h:
+       * lib/utimens.c, m4/fdopendir.m4, m4/getgroups.m4:
+       * m4/gettimeofday.m4, m4/gnulib-common.m4, m4/putenv.m4, m4/utimes.m4:
+       Update from gnulib.
+
+2019-03-25  Juri Linkov  <address@hidden>
+
+       * lisp/vc/vc.el (vc-diff-mergebase, vc-log-mergebase): New commands.
+
+       * lisp/vc/vc-git.el (vc-git-mergebase): New function.
+       (vc-git-print-log): Interpret string value of arg LIMIT as an 
end-revision.
+
+       * lisp/vc/vc-hooks.el (vc-prefix-map): Bind 'vc-log-mergebase' to
+       'C-x v M L', and 'vc-diff-mergebase' to 'C-x v M D'.  (Bug#33950)
+
+2019-03-25  Paul Eggert  <address@hidden>
+
+       Fix alignment bug with pure bignums
+
+       Problem found on 32-bit sparc, which has stricter alignment
+       checking than x86-64.
+       * src/alloc.c (pure_alloc): When TYPE is negative it now specifies
+       the negation of the required alignment of the result.
+       (make_pure_bignum): Specify bignum limb alignment.
+
+2019-03-25  Juri Linkov  <address@hidden>
+
+       * lisp/international/mule-cmds.el (ngettext): Move to editfns.c.
+
+       * src/editfns.c (Fngettext): Move from mule-cmds.el and use
+       gettext's ngettext when available.
+
+2019-03-25  Eric Abrahamsen  <address@hidden>
+
+       Fix text property bug in gnus-group-list-active
+
+       * lisp/gnus/gnus-group.el (gnus-group-list-active): The property value
+         should be the group name, not the value of gethash. Ie, it should be
+         the key, not the value.
+
+2019-03-25  Eric Abrahamsen  <address@hidden>
+
+       Don't save Gnus' dummy.group to the .newsrc.eld file
+
+       * lisp/gnus/gnus-start.el (gnus-gnus-to-quick-newsrc-format): Remove
+         the "dummy.group" element.
+
+2019-03-25  Eric Abrahamsen  <address@hidden>
+
+       Handle multiple possible types for Gnus group names
+
+       * lisp/gnus/gnus-start.el (gnus-active-to-gnus-format): Numbers,
+         symbols, and strings.
+
+2019-03-25  Paul Eggert  <address@hidden>
+
+       Fix a dns-mode reentrancy bug
+
+       * lisp/textmodes/dns-mode.el (dns-mode-ipv6-to-nibbles):
+       Don’t assume kill-new does no matching.
+
+2019-03-25  Basil L. Contovounesios  <address@hidden>
+
+       Fix non_local_exit_get signature in Elisp manual
+
+       * doc/lispref/internals.texi (Module Nonlocal): Fix typo in return
+       type of non_local_exit_get.
+
+2019-03-25  Michael Albinus  <address@hidden>
+
+       Explain messages with patches in CONTRIBUTE
+
+       * CONTRIBUTE: A message shall contain the string "[PATCH]" in the
+       subject if there's a patch in the message.
+
+2019-03-25  Paul Eggert  <address@hidden>
+
+       Support ./configure --with-gif=ifavailable etc.
+
+       Suggested by Stefan Monnier in:
+       https://lists.gnu.org/r/emacs-devel/2019-03/msg00789.html
+       * INSTALL, etc/NEWS: Document this.
+       * configure.ac: Implement this.
+
+2019-03-25  Stefan Monnier  <address@hidden>
+
+       * lisp/vc/diff-mode.el: Better handle empty lines in context diffs
+
+       (diff-end-of-hunk): Obey diff-valid-unified-empty-line for context 
style.
+       (diff--refine-hunk): Don't look further than the end.
+
+2019-03-25  Paul Eggert  <address@hidden>
+
+       Fix some integer issues in regex-emacs
+
+       Also, remove some duplicate comments related to thread.h.
+       * src/regex-emacs.h (struct re_registers):
+       * src/regex-emacs.c (SIGN_EXTEND_CHAR): Remove.
+       (TALLOC, RETALLOC): Remove.  All uses replaced by usual
+       allocators, which check for integer overflow.
+       (extract_number): Redo without using ‘unsigned’.
+       (CHARSET_RANGE_TABLE_EXISTS_P): Clearly return a boolean.
+       (print_fastmap, print_partial_compiled_pattern, CHECK_INFINITE_LOOP)
+       (regex_compile, analyze_first, bcmp_translate, mutually_exclusive_p)
+       (re_match_2_internal):
+       Use bool for booleans.
+       (print_fastmap, regex_compile, execute_charset):
+       Prefer int to unsigned where either will do.
+       (print_double_string): Prefer ptrdiff_t to ssize_t, since the
+       latter can in theory be narrower than the former.  Use fwrite
+       instead of repeated putchar.
+       (emacs_re_max_failures, fail_stack_type, compile_stack_type)
+       (re_wctype_parse, regex_compile, re_search, re_search_2)
+       (re_match_2, re_match_2_internal, re_compile_pattern):
+       Prefer ptrdiff_t to size_t where either will do.
+       (union fail_stack_elt, PUSH_FAILURE_REG, POP_FAILURE_REG_OR_COUNT):
+       Make the integer an intptr_t, not long.
+       (GET_BUFFER_SPACE, EXTEND_BUFFER, regex_compile):
+       Use xpalloc to simplify allocation.
+       (regex_compile): Check for integer overflow when calculating
+       register numbers.
+       * src/regex-emacs.c (re_set_registers, re_match_2_internal):
+       * src/regex-emacs.h (struct re_registers, struct re_pattern_buffer):
+       * src/search.c (Freplace_match):
+       Prefer ptrdiff_t to unsigned where either will do.
+       * src/regex-emacs.h (struct re_pattern_buffer):
+       Prefer bool_bf to unsigned where either will do.
+
+2019-03-25  Paul Eggert  <address@hidden>
+
+       * src/regex-emacs.c (regex_compile): Fix comments.
+
+2019-03-25  João Távora  <address@hidden>
+
+       Avoid occasional confusion of Flymake C/C++ backend
+
+       The regexp would sometimes match non-errors and create a diagnostic
+       with nil severity, which would have consequences for the Flymake
+       engine (these should eventually be addressed, too).
+
+       * lisp/progmodes/flymake-cc.el (flymake-cc--make-diagnostics):
+       Tighten regexp.
+
+2019-03-25  João Távora  <address@hidden>
+
+       Make bundled Flymake C backend work for C++, too
+
+       * lisp/progmodes/flymake-cc.el (flymake-cc-use-special-make-target):
+       Pass -x flag according to major-mode.
+
+2019-03-24  Juri Linkov  <address@hidden>
+
+       i18n: Add function ngettext for pluralization.
+
+       * lisp/international/mule-cmds.el (ngettext): New function.
+       https://lists.gnu.org/archive/html/emacs-devel/2019-03/msg00586.html
+
+       * lisp/replace.el (flush-lines, how-many, occur-1, occur-engine)
+       (perform-replace): Use ngettext.
+
+       * lisp/progmodes/grep.el (grep-exit-message): Use ngettext.
+       (grep-mode-font-lock-keywords): Match both singular and plural form
+       of "matches".
+
+2019-03-24  Juri Linkov  <address@hidden>
+
+       * lisp/progmodes/xref.el (xref--show-xrefs): Push mark.  (Bug#34908)
+
+2019-03-24  Basil L. Contovounesios  <address@hidden>
+
+       Fix Gnus duplicate article unsuppression
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-mode-group): Declare before
+       first use to silence byte-compiler.
+       (gnus-summary-select-article): Simplify boolean expression.
+       (gnus-summary-move-article): Do not try to unsuppress article when
+       duplicate suppression is disabled. (bug#34973, bug#34974)
+
+2019-03-24  Paul Eggert  <address@hidden>
+
+       * src/lisp.h (primary_thread): Remove unused decl.
+
+2019-03-24  Michael Albinus  <address@hidden>
+
+       Bind `enable-local-variables' in `hack-connection-local-variables'
+
+       * lisp/files-x.el (hack-connection-local-variables):
+       Bind `enable-local-variables', instead of re-declaring
+       `safe-local-variable-p'.
+
+2019-03-23  Eli Zaretskii  <address@hidden>
+
+       * src/Makefile.in ($(AM_V_GEN)POSIXLY_CORRECT): Use AM_V_GEN.
+
+2019-03-23  Michael Albinus  <address@hidden>
+
+       Fix Bug#34943
+
+       * lisp/files-x.el (cl-lib): Require when compiling.
+       (hack-connection-local-variables): Regard connection-local
+       variables as safe.  (Bug#34943)
+
+       * lisp/shell.el (shell): Use `with-connection-local-variables' for
+       the whole code block.  (Bug#34943)
+
+       * lisp/net/tramp-adb.el (tramp-connection-local-safe-shell-file-names):
+       Do not set values.
+
+       * lisp/net/tramp-integration.el
+       (tramp-connection-local-safe-shell-file-names): Remove.
+       (shell-file-name, shell-command-switch): Do not add safe-local-variable
+       property.
+
+       * lisp/net/tramp.el (tramp-handle-shell-command): Use proper
+       buffer name.
+
+       * test/lisp/net/tramp-tests.el (tramp-test34-explicit-shell-file-name):
+       Tag it :unstable.
+
+2019-03-23  Eli Zaretskii  <address@hidden>
+
+       Avoid compiler warning in w32proc.c
+
+       * src/w32proc.c (w32_executable_type): Avoid compiler warnings
+       about potential NULL pointer dereferencing.
+
+2019-03-22  Michael R. Mauger  <address@hidden>
+       Fix Bug#25424.
+       * lisp/progmodes/sql.el (sql-end-of-statement): default terminator
+       as semicolon.
+
+2019-03-22  Stephen Leake  <address@hidden>
+
+       Fix bug in delete-indentation when region is inactive
+
+       * test/lisp/simple-tests.el: Add tests for delete-indentation.
+       (simple-delete-indentation-no-region): Works with no region.
+       (simple-delete-indentation-inactive-region): Was broken with inactive
+       region; now fixed.
+
+       * lisp/simple.el (delete-indentation): Check (use-region-p) before 
using BEG.
+
+2019-03-22  Eric Abrahamsen  <address@hidden>
+
+       Change Gnus hash tables into real hash tables
+
+       Gnus has used obarrays as makeshift hash tables for groups: group
+       names are coerced to unibyte and interned in custom obarrays, and
+       their symbol-value set to whatever value needs to be stored. This
+       patch replaces those obarrays with actual hash tables.
+
+       * lisp/gnus/gnus-util.el (gnus-intern-safe, gnus-create-hash-size):
+         Remove functions.
+         (gnus-make-hashtable): Change to return a real hash table.
+         (gnus-text-property-search): Utility similar to `text-property-any',
+         but compares on `equal'. Needed because the 'gnus-group text
+         property is now a string.
+       * lisp/gnus/gnus.el (gnus-gethash, gnus-gethash-safe, gnus-sethash):
+         Remove macros.
+         (gnus-group-list): New variable holding all group names as an
+         ordered list. Used because `gnus-newsrc-hashtb' used to preserve
+         `gnus-newsrc-alist' ordering, but now doesn't.
+       * lisp/gnus/nnmaildir.el (nnmaildir--servers): Change from obarray to
+         alist.
+         (nnmaildir--up2-1): Remove function.
+       * lisp/thingatpt.el (thing-at-point-newsgroup-p): This was making use
+         of Gnus obarrays, replace with a cond that can handle many different
+         possibilities.
+       * lisp/gnus/gnus-bcklg.el (gnus-backlog-articles): Remove
+         gnus-backlog-hashtb, which wasn't doing anything. Just keep a list
+         of ident strings in gnus-backlog-articles.
+         (gnus-backlog-setup): Delete unnecessary function.
+         (gnus-backlog-enter-article, gnus-backlog-remove-oldest-article,
+         gnus-backlog-remove-article, gnus-backlog-request-article): Alter
+         calls accordingly.
+       * lisp/gnus/gnus-dup.el (gnus-duplicate-list-max-length): Rename from
+         `gnus-duplicate-list-length', for accuracy.
+       * lisp/gnus/gnus-start.el (gnus-active-to-gnus-format,
+         gnus-groups-to-gnus-format, gnus-newsrc-to-gnus-format): Read group
+         names as strings.
+         (gnus-gnus-to-quick-newsrc-format): Write `gnus-newsrc-alist' using
+         the ordering in `gnus-group-list'.
+       * lisp/gnus/gnus-agent.el:
+       * lisp/gnus/gnus-async.el:
+       * lisp/gnus/gnus-cache.el:
+       * lisp/gnus/gnus-group.el:
+       * lisp/gnus/gnus-score.el:
+       * lisp/gnus/gnus-sum.el:
+       * lisp/gnus/gnus-topic.el:
+       * lisp/gnus/message.el:
+       * lisp/gnus/mml.el:
+       * lisp/gnus/nnagent.el:
+       * lisp/gnus/nnbabyl.el:
+       * lisp/gnus/nnvirtual.el:
+       * lisp/gnus/nnweb.el: In all files, change obarrays to hash-tables,
+         and swap `gnus-sethash' for `puthash', `gnus-gethash' for `gethash',
+         `mapatoms' for `maphash', etc.
+       * test/lisp/gnus/gnus-test-headers.el 
(gnus-headers-make-dependency-table,
+         gnus-headers-loop-dependencies): New tests to make sure we're
+         building `gnus-newsgroup-dependencies' correctly.
+
+2019-03-22  Michael Albinus  <address@hidden>
+
+       Fix Bug#24394, Bug#34172
+
+       * lisp/subr.el (process-file-shell-command):
+       Use `with-connection-local-variables'.  Do not set "/bin/sh" for
+       remote buffers, trust settings of `shell-file-name'.
+
+       * lisp/net/tramp-adb.el (tramp-methods) <adb>:
+       * lisp/net/tramp-smb.el (tramp-methods) <smb>:
+       Remove `tramp-remote-shell' and `tramp-remote-shell-args'.
+
+       * lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch)
+       (tramp-maybe-open-connection): Use proper read syntax for function
+       names.
+
+       * lisp/net/tramp.el (tramp-handle-shell-command): Do not use shell
+       file names from `tramp-methods'.
+       Respect `async-shell-command-buffer'.  (Bug#24394, Bug#34172)
+       Use `start-file-process-shell-command' and `process-file-shell-command'.
+
+       * test/lisp/net/tramp-tests.el (tramp-test32-shell-command):
+       Let it run partly for tramp-adb.
+
+2019-03-22  Nicolas Petton  <address@hidden>
+
+       Fix the error message when modifying maps in-place (Bug#34941)
+
+       * lisp/emacs-lisp/map.el (map-not-inplace): Fix the message of the
+       error.
+       (map-put!): When signaling map-no-inplace error, output the map that
+       cannot be updated inplace.
+
+2019-03-22  Eli Zaretskii  <address@hidden>
+
+       Minor fixes for the last change
+
+       * lisp/simple.el (delete-indentation):
+       * doc/emacs/indent.texi (Indentation Commands):
+       * etc/NEWS: Fix last change.  (Bug#34796)
+
+2019-03-22  Łukasz Stelmach  <address@hidden>
+
+       If the region is active, join all the lines it spans
+
+       * lisp/simple.el (delete-indentation): Join lines in the active region.
+       (Bug#34796)
+
+       * doc/misc/org.texi: Describe the arguments of delete-indentation.
+
+       * etc/NEWS: Mention region support in delete-indentation.
+
+2019-03-22  Eli Zaretskii  <address@hidden>
+
+       Revert "Revert "Revert "Rely on conservative stack scanning to find 
"emacs_value"s"""
+
+       This reverts commit 093d3e78d21d3d6c718997368ef4b31f9884401c,
+       which reverted ee7ad83f20903208404a84b58b7a478b62924570,
+       which reverted 3eb93c07f7a60ac9ce8a16f10c3afd5a3a31243a.
+
+2019-03-21  Federico Tedin  <address@hidden>
+
+       Correctly handle packages without description in describe-package
+
+       * lisp/emacs-lisp/package.el (describe-package-1): Do not call insert
+         if package description is nil (Bug#34147).
+
+2019-03-21  Federico Tedin  <address@hidden>
+
+       Make edebug-eval-expression support code completion
+
+       * lisp/emacs-lisp/edebug.el (edebug-eval-expression): Use
+         read--expression instead of read-from-minibuffer. (Bug#34065)
+
+2019-03-21  Stefan Monnier  <address@hidden>
+
+       Fix misuses of NULL when talking about the NUL character
+
+       * lisp/subr.el (inhibit-null-byte-detection): Make it an obsolete alias.
+
+       * src/coding.c (setup_coding_system): Use new name.
+       (detect_coding): Rename null_byte_found => nul_byte_found.
+       (detect_coding_system): Use new name.
+       Rename null_byte_found => nul_byte_found.
+       (Fdefine_coding_system_internal): Use new name.
+       (syms_of_coding): Rename inhibit-null-byte-detection to
+       inhibit-nul-byte-detection.
+       * src/w16select.c (get_clipboard_data): null_char => nul_char.
+       * src/json.c (check_string_without_embedded_nuls): Rename from
+       check_string_without_embedded_nulls.
+       (Fjson_parse_string): Adjust accordingly.
+       * src/coding.h (enum define_coding_undecided_arg_index)
+       (enum coding_attr_index): ...null_byte... => ...nul_byte....
+       * lisp/info.el (info-insert-file-contents, Info-insert-dir):
+       * lisp/international/mule.el (define-coding-system):
+       * lisp/vc/vc-git.el (vc-git--call):
+       * doc/lispref/nonascii.texi (Lisp and Coding Systems): Use the new name.
+
+2019-03-21  Nicolas Petton  <address@hidden>
+
+       * etc/NEWS: Document seq-contains-p.
+
+       * lisp/emacs-lisp/seq.el (seq-difference): Inverse a conditional for 
clarity.
+
+2019-03-21  Nicolas Petton  <address@hidden>
+
+       New seq-contains-p predicate (Bug#34852)
+
+       * lisp/emacs-lisp/seq.el (seq-contains-p): New predicate function.  It
+       is a replacement for seq-contains which cannot be used as a predicate
+       when a sequence contains nil values as it returns the element found.
+       (seq-contains): Make obsolete.
+
+       * test/lisp/emacs-lisp/seq-tests.el (test-seq-contains-p):
+       (test-seq-intersection-with-nil, test-seq-set-equal-p-with-nil,
+       test-difference-with-nil): Add regression tests.
+
+       * doc/lispref/sequences.texi (Sequence Functions): Document
+       seq-contains-p.
+
+2019-03-21  Eli Zaretskii  <address@hidden>
+
+       Revert "Revert "Rely on conservative stack scanning to find 
"emacs_value"s""
+
+       This reverts commit ee7ad83f20903208404a84b58b7a478b62924570.
+
+       There was no consensus on reverting
+       3eb93c07f7a60ac9ce8a16f10c3afd5a3a31243a, so doing that will have to
+       wait until the discussion ends.
+
+2019-03-21  Philipp Stephani  <address@hidden>
+
+       Revert "Rely on conservative stack scanning to find "emacs_value"s"
+
+       This reverts commit 3eb93c07f7a60ac9ce8a16f10c3afd5a3a31243a.
+
+       There was no consensus for that commit, see
+       https://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00150.html.
+       Also, reverting this commit should fix Bug#31238.
+
+2019-03-21  Eli Zaretskii  <address@hidden>
+
+       Avoid duplicate entries in process-environment after re-dumping
+
+       * src/pdumper.c (Fdump_emacs_portable): Reset
+       process-environment to nil.  (Bug#34936)
+
+2019-03-21  Stefan Monnier  <address@hidden>
+
+       * doc: Recommend putting '-' as last char in Emacs charset regexps
+
+       * doc/lispref/searching.texi (Regexp Special):
+       * doc/emacs/search.texi (Regexps): Recommend - as last char in [...].
+
+2019-03-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       24b6e6e (origin/emacs-26) * etc/AUTHORS: Update.
+       2f22a17 * ; ChangeLog.3 update
+       0f523de Improve indexing of the user manual
+       bd5795e Fix url-copy-file arglist
+       eaa188a ; * admin/notes/bugtracker: Minor additions and updates.
+       5ed05fb Fix downloading updates for packages with non-ASCII descriptions
+       e9f2d1f * etc/NEWS: Remove temporary markers.
+       24fc133 * doc/misc/cc-mode.texi (Config Basics): in @itemize, @asis -...
+       0f325d1 Don't clobber 'comint-input-autoexpand' in 'read-shell-command'
+       bc75589 Document restrictions when setting window margins, fringes or...
+       cc4cebf More improvements for 'read-buffer's doc string
+       d026d9a * lisp/progmodes/cc-defs.el: Update c-version to 5.33.2 for E...
+       5dbf08b * src/minibuf.c (Fread_buffer): Minor doc fixes.  (Bug#34749)
+
+       # Conflicts:
+       #       etc/NEWS
+       #       lisp/url/url-handlers.el
+
+2019-03-20  Stefan Monnier  <address@hidden>
+
+       Eshell: Mostly cosmetic changes to be more explicit about dynbind
+
+       * lisp/eshell/em-dirs.el (eshell-dirs-initialize): Reveal the lambdas.
+       (eshell-expand-multiple-dots): Fix ^+$ => \`+\' in the regexp.
+
+       * lisp/eshell/esh-cmd.el (eshell-this-command-hook): Declare as
+       dynamically scoped.
+       (eshell-trap-errors): Use `mapc funcall` since this can't have
+       global/local settings like a true hook.
+       (eshell-do-eval): Split the `let` case from the rest so we can use
+       `cl-progv` rather than `eval` for it.
+       (eshell/which): Use `fboundp` test instead of ugly
+       gymnastics to try and hide the function call from the compiler.
+
+       * lisp/eshell/esh-var.el (eshell-variable-aliases-list): Reveal the 
lambdas.
+       (eshell-parse-variable-ref): Use backquotes.
+
+2019-03-20  Stefan Monnier  <address@hidden>
+
+       * lisp/pcomplete.el: Improve heuristic to rely less on c-t-subvert.
+
+       (pcomplete-completions-at-point): Try and take \ escapes into account
+       when guessing the beginning of the text we're completing.
+
+2019-03-20  Paul Eggert  <address@hidden>
+
+       Fix pcomplete typo in recent regex typo fix
+
+       Problem reported by Stefan Monnier in:
+       https://lists.gnu.org/r/emacs-devel/2019-03/msg00682.html
+       * lisp/pcomplete.el (pcomplete-parse-comint-arguments):
+       Restore the trailing backslash (but two of them this time).
+
+2019-03-20  Stefan Monnier  <address@hidden>
+
+       * test/lisp/minibuffer-tests.el (completion-table-subvert-test): New 
test
+
+       * lisp/minibuffer.el (completion-table-subvert): Fix typo from rev 
5697ca55cb
+
+2019-03-20  Mattias Engdegård  <address@hidden>
+
+       Repair eshell-query-kill-processes
+
+       * lisp/eshell/esh-proc.el (eshell-query-kill-processes):
+       Remove invalid `format-message' call; `eshell-round-robin-kill' wants
+       just the format string.
+
+2019-03-20  Eli Zaretskii  <address@hidden>
+
+       Fix defining keyboard macros in CUA mode
+
+       * lisp/emulation/cua-base.el (cua--prefix-override-replay):
+       Push the key to replace wrapped in '(no-record . KEY)', so
+       that it doesn't get recorded more than once.  (Bug#34901)
+
+       * src/keyboard.c (read_char): Handle the '(no-record . KEY)'
+       event by substituting KEY for it.
+       (syms_of_keyboard) <no-record>: New DEFSYM.
+       <unread-command-events>: Update the doc string.
+
+       * doc/lispref/commands.texi (Event Input Misc): Document the
+       '(no-record . EVENT)' form.
+
+2019-03-19  Stefan Monnier  <address@hidden>
+
+       * lisp/eshell/em-cmpl.el: Use completion-at-point i.s.o pcomplete
+
+       (eshell-cmpl-initialize): Refrain from binding to the `tab` key,
+       which prevents the tab -> TAB remapping.
+       Use completion-at-point and completion-help-at-point.
+       (eshell-complete-commands-list): Use `fboundp` test instead of ugly
+       gymnastics to try and hide the function call from the compiler.
+       (eshell-pcomplete): Make it an alias of completion-at-point.
+
+       * doc/misc/eshell.texi (Completion): Change wording to reflect
+       different default behavior.
+
+2019-03-19  Paul Eggert  <address@hidden>
+
+       More minor regex cleanup
+
+       Problems reported by Mattias Engdegård in:
+       https://lists.gnu.org/r/emacs-devel/2019-03/msg00643.html
+       plus a few others that I noticed.
+       * lisp/auth-source-pass.el (auth-source-pass--parse-data):
+       * lisp/org/org-datetree.el (org-datetree--find-create):
+       * lisp/org/org-pcomplete.el (org-thing-at-point):
+       * lisp/progmodes/js.el (js--end-of-do-while-loop-p):
+       * lisp/textmodes/sgml-mode.el:
+       (sgml-electric-tag-pair-before-change-function):
+       * lisp/textmodes/texnfo-upd.el (texinfo-menu-copy-old-description):
+       * lisp/url/url-http.el (url-http-parse-response):
+       Fix regular expression and similar syntax.
+
+2019-03-19  Juri Linkov  <address@hidden>
+
+       * lisp/vc/vc.el (vc-diff-build-argument-list-internal): Add arg fileset.
+
+       (vc-root-version-diff): Set vc-diff-build-argument-list-internal's
+       optional arg 'fileset' to the root directory.  (Bug#34532)
+
+2019-03-19  Juri Linkov  <address@hidden>
+
+       * lisp/frame.el (frame-monitor-attributes): Fall back to the last 
monitor
+
+       when frames monitor attributes is still uninitialized.  (Bug#34680)
+
+2019-03-19  Juri Linkov  <address@hidden>
+
+       * lisp/frame.el (make-frame-on-monitor): Don't set height and width.
+
+       Don't use x-parse-geometry.  Delete nil from completions (Bug#34516)
+
+2019-03-19  Paul Eggert  <address@hidden>
+
+       Use ‘const’ to clarify GC marking
+
+       Add ‘const’ to make the GC marking code a bit clearer.
+       This can also help the compiler in some cases, I think because
+       GCC can now determine more often that the value of a static C
+       variable can be cached when its address is now converted to
+       ‘Lisp Object const *’ before escaping.
+       * src/alloc.c (staticvec, mark_maybe_objects, mark_memory)
+       (mark_stack, staticpro, mark_object_root_visitor)
+       (garbage_collect_1):
+       * src/pdumper.c (dump_ptr_referrer, dump_emacs_reloc_to_lv)
+       (dump_emacs_reloc_to_emacs_ptr_raw, dump_root_visitor):
+       * src/lisp.h (vcopy, struct gc_root_visitor):
+       * src/sysdep.c (stack_overflow):
+       * src/thread.c (mark_one_thread):
+       * src/thread.h (struct thread_state):
+       Use pointer-to-const instead of plain pointer in some
+       GC-related places where either will do.
+
+2019-03-19  Mattias Engdegård  <address@hidden>
+
+       Disallow reversed char ranges in `rx'
+
+       (any "a-Z0-9") generated "[0-9]", and (any (?9 . ?0)) generated "[9-0]".
+       Reversed ranges are either mistakes or abuse.  Neither should be 
allowed.
+
+       etc/NEWS: Explain the change.
+       lisp/emacs-lisp/rx.el (rx): Document.
+       (rx-check-any-string, rx-check-any): Add error checks for reversed 
ranges.
+       test/lisp/emacs-lisp/rx-tests.el (rx-char-any-range-bad): New test.
+
+2019-03-18  Paul Eggert  <address@hidden>
+
+       Remove buggy regexp use in comint-output-filter
+
+       This reverts commit 2012-07-02T16:18:02!address@hidden
+       which perhaps could be rethought and recommitted, and perhaps
+       it’s no longer needed now that comint-use-prompt-regexp
+       is almost always nil.
+       * lisp/comint.el (comint-output-filter): Don’t try to skip
+       repeated prompts, since comint-prompt-regexp typically begins
+       with "^" and the resulting "^^" in the regular expression does
+       not have the desired effect.  Noted by Mattias Engdegård in:
+       https://lists.gnu.org/r/emacs-devel/2019-03/msg00380.html
+
+2019-03-18  Paul Eggert  <address@hidden>
+
+       Fix more regular expression typos
+
+       Problem reported by Mattias Engdegård in:
+       https://lists.gnu.org/r/emacs-devel/2019-03/msg00548.html
+       except that I didn’t address the issues involving Hebrew,
+       or involving comint-prompt-regexp.
+       * lisp/align.el (align-rules-list, align-exclude-rules-list):
+       * lisp/auth-source-pass.el (auth-source-pass--parse-secret)
+       (auth-source-pass--parse-data):
+       * lisp/cedet/data-debug.el (data-debug-next)
+       (data-debug-prev, data-debug-expand-or-contract):
+       * lisp/comint.el (comint-within-quotes):
+       * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
+       * lisp/emulation/viper-ex.el (ex-cmd-complete):
+       * lisp/gnus/gnus-cite.el (gnus-message-search-citation-line):
+       * lisp/gnus/nnir.el (nnir-imap-end-of-input):
+       * lisp/mail/mail-extr.el (mail-extr-all-letters):
+       * lisp/minibuffer.el (minibuffer-maybe-quote-filename):
+       * lisp/nxml/rng-nxml.el (rng-complete-tag)
+       (rng-complete-end-tag, rng-complete-attribute-name):
+       * lisp/obsolete/vip.el (vip-get-ex-token, vip-get-ex-pat):
+       * lisp/org/org-pcomplete.el (org-thing-at-point):
+       * lisp/org/org.el (org-set-tags)
+       (org-increase-number-at-point)
+       (org-fill-line-break-nobreak-p):
+       * lisp/pcomplete.el (pcomplete-parse-comint-arguments):
+       * lisp/progmodes/ada-mode.el (ada-compile-goto-error):
+       * lisp/progmodes/cperl-mode.el (cperl-highlight-charclass)
+       (cperl-find-pods-heres, cperl-not-bad-style-regexp)
+       (cperl-regext-to-level-start):
+       * lisp/progmodes/ebnf-yac.el (ebnf-yac-skip-spaces):
+       * lisp/progmodes/flymake-proc.el (flymake-proc-master-tex-init):
+       * lisp/progmodes/flymake.el (flymake-diag-region):
+       * lisp/progmodes/fortran.el (fortran-current-line-indentation):
+       * lisp/progmodes/idlw-complete-structtag.el:
+       (idlwave-complete-structure-tag):
+       * lisp/progmodes/idlwave.el (idlwave-complete-sysvar-or-tag):
+       * lisp/progmodes/prolog.el (prolog-pred-end)
+       (prolog-clause-info):
+       * lisp/progmodes/ruby-mode.el (ruby-forward-sexp)
+       (ruby-backward-sexp):
+       * lisp/progmodes/verilog-mode.el (verilog-repair-open-comma):
+       * lisp/term.el (term-within-quotes):
+       * lisp/textmodes/bib-mode.el (bib-capitalize-title-stop-words):
+       * lisp/textmodes/refbib.el (r2b-capitalize-title-stop-words):
+       * lisp/textmodes/reftex-parse.el (reftex-nth-arg):
+       * lisp/textmodes/rst.el (rst-svn-rev):
+       * lisp/url/url-http.el (url-http-parse-response):
+       * test/lisp/progmodes/f90-tests.el (f90-test-bug3730):
+       Fix regular expression typos.
+
+2019-03-18  Stefan Monnier  <address@hidden>
+
+       * src/fileio.c: Don't convert \r to \n just because of C-x $
+
+       (choose_write_coding_system): Setup the \r to \n conversion only if
+       selective-display is t.
+
+2019-03-18  Stefan Monnier  <address@hidden>
+
+       * lisp/locate.el (locate-mode): Setup invisibility for Dired commands
+
+       Also, use lexical-binding.
+
+2019-03-18  Stefan Monnier  <address@hidden>
+
+       Ebrowse: Use invisibility-spec instead of selective-display
+
+       * lisp/progmodes/ebrowse.el: Use lexical-binding.
+       (ebrowse-tree-mode): Set invisibility-spec instead of selective-display.
+       (ebrowse--hidden-p, ebrowse--hide, ebrowse--unhide): New functions.
+       (ebrowse-expand-all, ebrowse-unhide-base-classes, ebrowse-hide-line)
+       (ebrowse-mouse-1-in-tree-buffer): Use them.
+       (ebrowse-output): Remove macro, use with-silent-modifications instead.
+       (ebrowse-save-selective): Remove macro, not needed any more.
+       (ebrowse-trim-string, ebrowse-read, ebrowse-collapse-fn):
+       No need to pay attention to \r.
+       (ebrowse-files-list): Use push.
+       (ebrowse-view/find-file-and-search-pattern): Use add-hook here...
+       (ebrowse-find-pattern): ...and remove-hook here.
+       (ebrowse-view/find-position): Use add/remove-hook.
+
+2019-03-17  Stefan Monnier  <address@hidden>
+
+       Dired: Use invisibility-spec instead of selective-display
+
+       * lisp/dired.el (dired-subdir-regexp): No need to pay attention to \r.
+       (dired-remember-hidden): Use pcase-dolist and dired--hidden-p.
+       (dired-mode): Set invisibility-spec instead of selective-display.
+       (dired--hidden-p, dired--hide, dired--unhide, dired--find-hidden-pos):
+       New functions.
+       (dired-move-to-end-of-filename): Use dired--hidden-p.
+       (dired-next-subdir): No need to pay attention to \r.
+       (dired-fun-in-all-buffers): Use push.
+
+       * lisp/dired-aux.el (dired-unhide-subdir, dired-hide-subdir, 
dired-hide-all):
+       Use the new functions and with-silent-modifications.
+       (dired-add-entry): Use dired--hidden-p.
+       (dired-goto-subdir): No need to pay attention to \r.
+       (dired-hide-check): Remove.
+       (dired-subdir-hidden-p): Use dired--hidden-p.
+       (dired-do-find-regexp): Use file-name-as-directory.
+
+2019-03-17  Stefan Monnier  <address@hidden>
+
+       * doc/lispref/display.texi (Selective Display): Declare it deprecated
+
+2019-03-17  Eli Zaretskii  <address@hidden>
+
+       Fix 'define-charset' after dumping with pdumper
+
+       * src/charset.h:
+       * src/charset.c (charset_table_used): Now static.
+       (charset_table_size): Now extern.
+       * src/pdumper.c (dump_charset_table): Dump the entire
+       charset_table, not just its used slots.  (Bug#34826)
+
+2019-03-16  Stefan Monnier  <address@hidden>
+
+       * lisp/subr.el (combine-change-calls-1): Don't combine syntax-ppss 
flushes
+
+2019-03-16  Alexander Gramiak  <address@hidden>
+
+       Define macros to abstract support for external menu/tool-bars
+
+       * src/lisp.h (HAVE_EXT_MENU_BAR)
+       (HAVE_EXT_TOOL_BAR): Define.
+
+       *src/dispnew.c:
+       *src/frame.c:
+       *src/frame.h:
+       *src/keyboard.c:
+       *src/menu.c:
+       *src/menu.h:
+       *src/window.c:
+       *src/window.h:
+       *src/xdisp.c:
+       *src/xfns: Use the new macros.
+
+2019-03-16  Paul Eggert  <address@hidden>
+
+       Fix regexp typo in vc-git--program-version
+
+       * lisp/vc/vc-git.el (vc-git--program-version):
+       Require a period after ".windows", instead of allowing any char.
+
+2019-03-16  Mattias Engdegård  <address@hidden>
+
+       Fix some ineffective backslashes in string literals
+
+       Deal with lone backslashes that have no effect in string literals,
+       but indicate that something is amiss.
+
+       * lisp/auth-source-pass.el (auth-source-pass-entries):
+       * lisp/textmodes/artist.el (artist-figlet-get-font-list-windows):
+       * lisp/org/ob-abc.el (org-babel-expand-body:abc, org-babel-execute:abc):
+       * lisp/org/ob-forth.el (org-babel-forth-session-execute):
+       * lisp/vc/vc-git.el (vc-git--program-version):
+       Add backslash in regexp for correctness.
+
+       * lisp/gnus/nnmail.el (nnmail-split-abbrev-alist):
+       Replace `\||' with `\\|' to follow the obvious regexp intent.
+
+       * lisp/org/org-list.el (org-plain-list-ordered-item-terminator):
+       Add backslash in doc comment so that it appears as intended.
+
+       * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1, 
c-end-of-decl-1):
+       * lisp/progmodes/f90.el (f90-font-lock-keywords-2):
+       * lisp/progmodes/etags.el (etags-tags-completion-table):
+       * lisp/progmodes/ruby-mode.el (ruby-syntax-propertize):
+       * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-1):
+       Remove superfluous backslashes from regexp.
+
+       * test/lisp/emacs-lisp/rx-tests.el (rx-char-any):
+       Remove superfluous backslash from doc comment.
+
+2019-03-16  Eli Zaretskii  <address@hidden>
+
+       Improve locale and language environment setting at startup
+
+       * lisp/international/mule-cmds.el (locale-language-names): Add
+       more locales and their language environments.
+       (set-locale-environment): Use w32-multibyte-code-page, if
+       non-zero, as locale-coding-system.  (Bug#34684)
+
+       * src/w32fns.c (globals_of_w32fns) <w32-multibyte-code-page>:
+       New variable.
+
+       * etc/NEWS: Mention w32-multibyte-code-page.
+
+2019-03-15  Paul Eggert  <address@hidden>
+
+       Bring back Emacs 26 compatibility to flymake.el
+
+       * lisp/progmodes/flymake.el (flymake--schedule-timer-maybe):
+       Revert to using seconds-to-time, since this file is part
+       of ELPA and needs to work on Emacs 26 too.
+
+2019-03-15  Paul Eggert  <address@hidden>
+
+       Use bool for menu_items_inuse
+
+       * src/menu.c (menu_items_inuse): Now bool, instead of a
+       Lisp_Object that is always Qt or Qnil.  All uses changed.
+
+2019-03-15  Philippe Vaucher  <address@hidden>
+
+       Customize tabulated-list sort indicators
+
+       This allows the user to customize the sorting indicators displayed
+       near the current column.
+
+       * lisp/emacs-lisp/tabulated-list.el (tabulated-list): New group.
+       (tabulated-list-gui-sort-indicator-asc)
+       (tabulated-list-gui-sort-indicator-desc)
+       (tabulated-list-tty-sort-indicator-asc)
+       (tabulated-list-tty-sort-indicator-desc): New defcustomd.
+       (tabulated-list-glyphless-char-display): Remove.
+       (tabulated-list-make-glyphless-char-display-table): New function.
+
+       * doc/lispref/modes.texi (Tabulated List Mode): Add documentation
+       for new options.
+
+       * etc/NEWS: Mention the new options.
+
+2019-03-15  Eli Zaretskii  <address@hidden>
+
+       * etc/NEWS: Document Sami input methods.  (Bug#34866)
+
+2019-03-15  Wojciech Gac  <address@hidden>
+
+       Add notice and fix missing character
+
+       Add remaining Sami input methods
+
+       Add Skolt Sami and Inari Sami input methods
+
+2019-03-13  Stefan Monnier  <address@hidden>
+
+       * lisp/doc-view.el (doc-view--text-view-mode): Derive from text-mode.
+
+2019-03-13  Basil L. Contovounesios  <address@hidden>
+
+       Fix file attribute accessor typo in Elisp manual
+
+       This was introduced in 662bee7d70ccd3903e123b08c7ec9108a1a2ce0b
+       2018-09-24T01:30:46Z!address@hidden.
+       * doc/lispref/files.texi (File Attributes): Fix typo referring to
+       wrong file attribute accessor.
+
+2019-03-13  Glenn Morris  <address@hidden>
+
+       * test/lisp/progmodes/python-tests.el
+       (python-syntax-after-python-backspace): Expect failure again.
+
+2019-03-13  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/easy-mmode.el: Fix most obvious bug#34723
+
+       (easy-mmode-define-navigation): Don't scroll in the opposite direction 
of
+       the movement.
+
+2019-03-13  Stefan Monnier  <address@hidden>
+
+       * lisp/mail/hashcash.el (hashcash-insert-payment-async): Fix last change
+
+2019-03-13  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/python.el (python-rx-constituents): Fix ordering in 
`or`
+
+       The previous code worked earlier because of a bug in `rx` (which used
+       `regexp-opt` without passing it to `keep-order` argument), but now that 
`rx`
+       has been fixed the underlying bug here reared its ugly head.
+
+2019-03-13  Eli Zaretskii  <address@hidden>
+
+       Avoid gratuitous errors in 'url-retrieve-synchronously'
+
+       * lisp/url/url-http.el (url-http-debug):
+       * lisp/url/url-util.el (url-debug): Don't signal an error if
+       quit-flag is non-nil, but not t.  This could happen because
+       some unrelated code is running inside while-no-input.
+       (Bug#34763)
+
+2019-03-13  Stefan Monnier  <address@hidden>
+
+       * lisp/battery.el (battery-bsd-apm): Group indices together; use pcase
+
+2019-03-13  Ahmed Khanzada  <address@hidden>  (tiny change)
+
+       * lisp/battery.el (battery-bsd-apm): Make it work on FreeBSD
+
+
+       Use flag "t" to get remaining time, and adjust to different output 
order.
+
+2019-03-12  Christopher Wellons  <address@hidden>  (tiny change)
+
+       * lisp/mail/hashcash.el: Get rid of backquoted lambdas
+
+
+       (hashcash-generate-payment-async): η-reduce.
+       (hashcash-insert-payment-async): Use proper closure.
+
+2019-03-12  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
+
+       Use proper range when deleting the region.
+
+2019-03-12  Alan Mackenzie  <address@hidden>
+
+       Correct the indentation of CC Mode brace lists
+
+       while preserving the indentation of nested C++ uniform initialization.
+
+       * lisp/progmodes/cc-align.el (c-lineup-2nd-brace-entry-in-arglist)
+       (c-lineup-class-decl-init-+, c-lineup-class-decl-init-after-brace): New
+       indentation functions.
+
+       * lisp/progmodes/cc-engine.el (c-forward-class-decl): New function.
+       (c-do-declarators): New function, partially extracted from
+       c-font-lock-declarators, which now calls the new function.
+       (c-inside-bracelist-p): Amend the introductory comment.
+       (c-add-stmt-syntax): Add code to prevent the spurious recognition of a
+       'defun-block-intro when a brace pair is used as an initializer.
+       (c-evaluate-offset): No longer ignore vectors of length >= 2.
+       (c-calc-offset): Refactor clumsily nested `if'/`or' into a cond form.
+
+       * lisp/progmodes/cc-fonts.el (c-font-lock-declarators): Replace the 
bulk of
+       this function by a call to the new c-forward-class-decl.
+
+       * lisp/progmodes/cc-langs.el (c-type-decl-prefix-key): Recognize "~" as 
a
+       type decl operator.
+
+       * lisp/progmodes/cc-mode.el (c-fl-decl-start): While searching backward 
for a
+       "}" at an EOD, deal with actually finding the end of a brace list.
+
+       * doc/misc/cc-mode.texi (List Line-Up): document
+       c-lineup-2nd-brace-entry-in-arglist, c-lineup-class-decl-init-+, and
+       c-lineup-class-decl-init-after-brace.
+
+       * lisp/progmodes/cc-styles.el (c-style-alist): In styles "gnu", "bsd",
+       "stroustrup", "python", and "java", change the offset for 
brace-list-intro
+       from the default value or c-lineup-arglist-intro-after-paren to a list
+       beginning with the symbol first, followed by two of the new alignment
+       functions, followed by +.
+
+       * lisp/progmodes/cc-vars.el (c-offset-alist): Change the default value 
of
+       brace-list-entry from c-lineup-under-anchor back to 0.
+
+2019-03-12  Martin Rudalics  <address@hidden>
+
+       Revert last tweak in 'comint-output-filter'
+
+       * lisp/comint.el (comint-output-filter): Revert last tweak because
+       it can hang gdb indefinitely.
+
+2019-03-11  Paul Eggert  <address@hidden>
+
+       Reindent pdumper per usual Emacs style
+
+       * src/pdumper.c, src/pdumper.h: Reindent.
+
+2019-03-11  Eli Zaretskii  <address@hidden>
+
+       Fix show-trailing-whitespace in R2L text
+
+       * src/xdisp.c (highlight_trailing_whitespace): Allow for
+       stretch glyphs at the left edge of R2L lines, when skipping
+       glyphs inserted by the display engine.  This unbreaks
+       show-trailing-whitespace in R2L lines.
+
+2019-03-11  Paul Eggert  <address@hidden>
+
+       Fix a small pdumper memory leak
+
+       * src/pdumper.c (dump_mmap_reset): Free the private area here ...
+       (dump_mm_heap_cb_release): ... instead of here.
+       (dump_mmap_release_heap): Simplify by avoiding a local.
+       (dump_mmap_contiguous): Reindent GNU style.
+
+2019-03-11  Martin Rudalics  <address@hidden>
+
+       Rewrite minibuffer window resizing code
+
+       * src/frame.c (resize_mini_frames): New variable.
+       * src/window.c (resize_mini_window_apply): New function.
+       (grow_mini_window, shrink_mini_window): Remove PIXELWISE
+       argument.  Call resize_mini_window_apply to apply changes.
+       (Fresize_mini_window_internal): Call resize_mini_window_apply
+       to apply changes.
+       (Qwindow__resize_mini_frame): New symbol.
+       * src/window.h (grow_mini_window, shrink_mini_window): Adjust
+       external declarations.
+       * src/xdisp.c (resize_mini_window): For minibuffer-only frames
+       call 'window--resize-mini-frame' if resize_mini_frames is
+       non-nil.  Offload parts of logic to grow_mini_window and
+       shrink_mini_window which are now called without the PIXELWISE
+       argument.
+       (Vresize_mini_windows): Mention 'resize-mini-frames' in
+       doc-string.
+       * lisp/cus-start.el (resize-mini-frames): Add customization
+       support.
+       * lisp/window.el (window--resize-mini-window): Simplify code.
+       (window--resize-mini-frame): New function.
+       * doc/lispref/minibuf.texi (Minibuffer Windows): Describe new
+       option 'resize-mini-frames'.
+       * etc/NEWS: Mention new option 'resize-mini-frames'.
+
+2019-03-10  Paul Eggert  <address@hidden>
+
+       * src/editfns.c: Fix docstring typo.
+
+2019-03-10  Paul Eggert  <address@hidden>
+
+       Improve binary-as-unsigned treatment (Bug#34792)
+
+       * etc/NEWS:
+       * src/editfns.c (Fformat, binary_as_unsigned):
+       Update now that we always have bignums.
+       (syms_of_editfns) [!defined lisp_h_FIXNUMP]: Remove now-obsolete
+       code, since lisp_h_FIXNUMP is always defined now.
+       * test/src/editfns-tests.el (read-large-integer): Simplify,
+       now that we can assume binary-as-unsigned defaults to nil.
+
+2019-03-10  Paul Eggert  <address@hidden>
+
+       More regexp corrections and tweaks
+
+       Problems reported by Mattias Engdegård in:
+       https://lists.gnu.org/r/emacs-devel/2019-03/msg00247.html
+       * lisp/align.el (align-rules-list):
+       * lisp/comint.el (comint-output-filter):
+       * lisp/language/china-util.el (encode-hz-region):
+       * lisp/progmodes/cperl-mode.el (cperl-indent-exp):
+       * lisp/progmodes/idlwave.el (idlwave-is-pointer-dereference):
+       * lisp/progmodes/scheme.el (dsssl-font-lock-keywords):
+       * lisp/textmodes/texinfmt.el (texinfo-accent-commands):
+       * test/src/regex-emacs-tests.el (regex-tests-re-even-escapes):
+       Fix some regular-expression typos.
+
+2019-03-10  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-03-10 alloca-opt: Fix conflict mingw's new <alloca.h> file
+       2019-03-03 getloadavg: Write NULL for the null pointer
+       Reported by Michal Privoznik <address@hidden>.
+       * lib/getloadavg.c (getloadavg): Write NULL instead of 0.
+       * build-aux/config.guess, build-aux/move-if-change:
+       * doc/misc/texinfo.tex, lib/alloca.in.h, lib/getloadavg.c:
+       * m4/alloca.m4:
+       Copy from Gnulib.
+       * lib/gnulib.mk.in: Regenerate.
+
+2019-03-10  Dmitry Gutov  <address@hidden>
+
+       (ruby-add-log-current-method): Recognize methods ending with ? or !
+
+       * lisp/progmodes/ruby-mode.el (ruby-add-log-current-method):
+       Recognize method names ending with ? or !.
+
+2019-03-10  Dmitry Gutov  <address@hidden>
+
+       project--find-regexp-in-files: Use 'grep -E'
+
+       * lisp/progmodes/project.el (project--find-regexp-in-files): Use
+       'grep -E' because we convert the regexp to extended already.
+
+2019-03-10  Michael Albinus  <address@hidden>
+
+       Changes in Tramp adb process handling
+
+       * lisp/net/tramp-adb.el (tramp-methods) <adb>: Add `tramp-remote-shell'
+       and `tramp-remote-shell-args'.
+       (tramp-adb-file-name-handler-alist): Use `tramp-handle-shell-command'
+       rather than `tramp-adb-handle-shell-command'.
+       (tramp-adb-handle-shell-command): Remove.
+       (tramp-adb-handle-make-process): Use a proper prompt.
+       (tramp-adb-wait-for-output): Simplify.
+
+2019-03-10  Ken Brown  <address@hidden>
+
+       Use a runtime test for timerfd on Cygwin (Bug#34618)
+
+       * src/atimer.c [HAVE_TIMERFD] (have_buggy_timerfd): New
+       function.
+       (init_atimer) Use it.
+
+2019-03-09  Stefan Monnier  <address@hidden>
+
+       * lisp/speedbar.el: Minor tweaks
+
+       (speedbar-directory-buttons-follow): Use file-name-as-directory.
+       (speedbar-ignored-directory-expressions)
+       (speedbar-supported-extension-expressions): Use `sym` in the setter.
+       (speedbar-frame-mode): Use with-current-buffer.
+       (speedbar-item-info-tag-helper): Use 'cond'.
+       (speedbar-highlight-one-tag-line): Don't use position beyond EOB.
+
+2019-03-09  Tassilo Horn  <address@hidden>
+
+       Make doc-view work with text-mode as default major-mode (bug#34451)
+
+       * lisp/doc-view.el (doc-view--text-view-mode): New alias for view-mode.
+       (doc-view-open-text): Use it.
+       (doc-view-toggle-display): Use it.
+
+2019-03-09  Christopher Wellons  <address@hidden>  (tiny change)
+
+       * lisp/emulation/viper.el: Use user-error for "Viper bell"
+
+
+       * lisp/emulation/viper-init.el (viper-ViperBell): New constant.
+       * lisp/emulation/viper-cmd.el (viper-prefix-arg-com)
+       (viper-forward-char, viper-backward-char, viper-goto-col)
+       (viper-find-char, viper-paren-match, viper-put-back, viper-Put-back)
+       (viper-delete-char, viper-mark-point, viper-goto-mark-subr):
+       * lisp/emulation/viper-ex.el (ex-delete): Use it and `user-error`.
+
+2019-03-09  Tassilo Horn  <address@hidden>
+
+       Name buffer according to attachment filename (bug#34478).
+
+       * lisp/gnus/mm-decode.el (mm-display-external): Name buffer showing
+         the attachment according to the attachment's filename, i.e. "*mm*
+         <filename>" instead of " *mm*12345".
+
+2019-03-09  Ken Brown  <address@hidden>
+
+       Re-enable the timerfd interface on Cygwin
+
+       * configure.ac (emacs_cv_have_timerfd): No longer set this to "no"
+       on Cygwin.  (Bug#34618)
+
+2019-03-09  Ivan Andrus  <address@hidden>
+
+       Mention `binary-as-unsigned' in `format' docstring (Bug#34792)
+
+       * src/editfns.c (format): Update docstring to mention binary-as-unsigned
+       (Bug#34792)
+
+2019-03-09  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       0589de5 (origin/emacs-26) Fix markup of fake keys in the ELisp manual
+       82d4b98 Avoid errors in Auto Revert mode
+       a3b1935 Mention empty strings in file name expansion, emacs lisp refe...
+       a38da0d cc-mode.texi: Work around makeinfo alignment bug.  Fix proble...
+       464ee80 Warn against recursive invocations of 'buffer-list-update-hoo...
+       60b5c10 Provide more details in doc-string of 'delete-windows-on' (Bu...
+       f0be0f1 Improve documentation of 'delete-windows-on'
+       f1bddc7 * lisp/frame.el (make-frame-command): Doc fix.  (Bug#34715)
+       2848623 Avoid undefined behavior in gdb-mi.el
+       dbf1837 * lisp/window.el (fit-frame-to-buffer): Make doc-string more ...
+       099ef44 Minor spelling and grammar fixes (bug#34756)
+       52fd400 Minor improvement of documentation of '(when CONDITION . SPEC)'
+       f872b65 Improve documentation of 'auto-coding-functions'
+       04cad5e Fix visiting XML files with non-Unix EOL format
+       a89fabe Update example major mode code in Elisp manual
+
+       # Conflicts:
+       #       lisp/autorevert.el
+       #       lisp/window.el
+
+2019-03-09  Eli Zaretskii  <address@hidden>
+
+       Consult 'face-remapping-alist' for 'internal-border' face
+
+       * src/xterm.c (x_clear_under_internal_border)
+       (x_after_update_window_line):
+       * src/w32fns.c (x_clear_under_internal_border):
+       * src/w32term.c (x_after_update_window_line): Consult
+       'face-remapping-alist' when using the 'internal-border' face.
+
+2019-03-09  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Correct some incorrect regular expressions:
+
+       * lisp/progmodes/cc-awk.el (c-awk-regexp-char-list-re): "^" -> "\\^".  
R*x?R*
+       -> \(R*x\)?R*.
+
+       * lisp/progmodes/cc-mode.el 
(c-after-change-re-mark-unbalanced-strings): "|"
+       -> "\\|".
+
+2019-03-09  Michael Albinus  <address@hidden>
+
+       Do not hardcode "/bin/sh" in compile.  Bug#24338, Bug#29723
+
+       * doc/emacs/custom.texi (Connection Variables): New node.
+
+       * doc/emacs/emacs.texi (Top): Add entry for Connection Variables.
+
+       * doc/emacs/misc.texi (Single Shell): Mention default value for
+       remote buffers.
+
+       * doc/lispref/variables.texi (Connection Local Variables):
+       Describe `with-connection-local-variables' instead of
+       `with-connection-local-profiles'.
+
+       * doc/misc/tramp.texi (Remote processes): Refer to Emacs manual.
+       Mention default connection-local settings for `shell-file-name'
+       and `shell-command-switch'.
+
+       * etc/NEWS: Mention connection-local variables changes.
+
+       * lisp/files-x.el (hack-connection-local-variables):
+       Push connection-local variables to `file-local-variables-alist'.
+       (connection-local-criteria-for-default-directory): New defsubst.
+       (with-connection-local-variables): Rename from
+       `with-connection-local-profiles'.  Adapt implementation.
+
+       * lisp/files.el (hack-local-variables):
+       Call `hack-connection-local-variables'.
+
+       * lisp/shell.el (shell): Use `with-connection-local-variables'.
+
+       * lisp/subr.el (start-file-process-shell-command):
+       * lisp/progmodes/compile.el (compilation-start):
+       Use `with-connection-local-variables'.  Do not set "/bin/sh" for
+       remote buffers, trust settings of `shell-file-name'.  (Bug#24338),
+       (Bug#29723)
+
+       * lisp/net/ange-ftp.el (ange-ftp-compress, ange-ftp-uncompress):
+       Use `shell-command-switch'.
+
+       * lisp/net/tramp-adb.el (tramp-adb-connection-local-default-profile):
+       New defvar.  Add it to connection-local profiles after loading "shell".
+
+       * lisp/net/tramp-integration.el (tramp-compat): Require tramp-compat.
+       (tramp-compat-exec-path): Do not declare anymore.
+       (tramp-connection-local-safe-shell-file-names): New defvar.
+       (tramp-connection-local-default-profile): New defconst.  Activate
+       it after loading "shell".
+       (shell-file-name, shell-command-switch): Add safe-local-variable
+       property.
+
+       * lisp/net/tramp-sh.el (tramp-display-escape-sequence-regexp):
+       Add tramp-autoload cookie.
+
+       * test/lisp/files-x-tests.el (remote-shell-file-name):
+       Add safe-local-variable property to remote-* variables.
+       (tramp-connection-local-default-profile): Declare.
+       (files-x-test-with-connection-local-variables):
+       Rename from `files-x-test-with-connection-local-profiles'.  Adapt
+       implementation.
+
+       * test/lisp/net/tramp-tests.el
+       (tramp-test34-connection-local-variables): New test.
+       (tramp-test34-explicit-shell-file-name): Run it also for tramp-adb.
+       Bind connection-local-{profile,criteria}-alist.  Use tramp-adb
+       specific `shell-file-name'.  Add safe-local-variable property to
+       `explicit-shell-file-name' and `explicit-sh-args'.
+
+2019-03-09  Charles A. Roelli  <address@hidden>
+
+       Make help for file supersession more readable
+
+       * lisp/userlock.el (ask-user-about-supersession-help): Use
+       'substitute-command-keys' to show the command key for
+       "\\[revert-buffer]" properly.
+
+2019-03-09  Eli Zaretskii  <address@hidden>
+
+       Import Unicode 12.0 data files
+
+       * admin/unidata/copyright.html:
+       * admin/unidata/UnicodeData.txt:
+       * admin/unidata/SpecialCasing.txt:
+       * admin/unidata/NormalizationTest.txt:
+       * admin/unidata/Blocks.txt:
+       * admin/unidata/BidiMirroring.txt:
+       * admin/unidata/BidiBrackets.txt: New versions from Unicode 12.0.
+       * admin/unidata/unidata-gen.el (unidata-gen-file):
+       * admin/unidata/blocks.awk (name2alias): Adapt to changes in
+       new data files.
+       * admin/notes/unicode: Update and improve instructions for
+       importing a new Unicode Standard.
+
+       * lisp/international/characters.el (char-width-table): Update
+       lists of characters according to Unicode 12.0.
+       * lisp/international/fontset.el (script-representative-chars):
+       Add characters from new scripts to 'script-representative-chars'.
+       (otf-script-alist): Update according to data on the MS site.
+       * lisp/international/mule-cmds.el (ucs-names): Update unused
+       ranges of codepoints according to Unicode 12.0.
+
+       * test/lisp/international/ucs-normalize-tests.el
+       (ucs-normalize-tests--failing-lines-part1)
+       (ucs-normalize-tests--failing-lines-part2): Update for the new
+       NormalizationTest.txt file.
+       * test/manual/BidiCharacterTest.txt: Update with the new
+       version from Unicode 12.0.
+
+2019-03-09  Martin Rudalics  <address@hidden>
+
+       Further redesign of window change functions
+
+       * doc/lispref/windows.texi (Window Hooks): Revise description
+       of window change functions.  Add documentation for
+       'window-state-change-hook' and window state change flag.
+       * etc/NEWS: Update entry for window change functions.
+       * src/frame.c (Fframe_window_state_change)
+       (Fset_frame_window_state_change): New functions.
+       * src/frame.h (struct frame): New boolean window_state_change.
+       (FRAME_WINDOW_STATE_CHANGE): New macro.
+       * src/window.c (window_change_record_frames): New static
+       boolean.
+       (window_change_record_frame): Remove function - code moved to
+       window_change_record.
+       (window_change_record): Record frame changes here taking
+       window_change_record_frames into account.
+       (run_window_change_functions_1): Set window_change_record_frames
+       whenever we run one of our hooks.
+       (run_window_change_functions): Run hooks also when
+       FRAME_WINDOW_STATE_CHANGE has been set.  Run
+       Vwindow_state_change_hook.  Leave decision whether to record
+       changes for all frames to window_change_record.
+       (Vwindow_state_change_functions): Update doc-string.
+       (Vwindow_state_change_hook): New normal hook.
+
+2019-03-09  Alan Third  <address@hidden>
+
+       Don't redraw the glyph on top of bar cursors
+
+       * src/nsterm.m (ns_draw_window_cursor): Limit when we redraw the
+       glyph.
+
+2019-03-08  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/autoload.el (make-autoload): Don't add useless doc
+
+       More specifically, don't add a useless '(fn)' to the docstring for
+       functions which take no arguments.
+       This should fix the 'No docstring slot for pcase--make-docstring'
+       warning during bootstrap.
+
+2019-03-08  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cursor-sensor.el: Fix sensor behavior with overlays
+
+       (cursor-sensor--detect): Also consult overlay properties when checking
+       to see if we just moved inside the same "element" as opposed to
+       changing from one to another of the same type.
+
+2019-03-08  Tassilo Horn  <address@hidden>
+
+       New command ido-switch-to-completions.
+
+       * lisp/ido.el (ido-switch-to-completions): New command.
+
+2019-03-08  Paul Eggert  <address@hidden>
+
+       More regexp corrections and tweaks
+
+       From suggestions by Mattias Engdegård in:
+       https://lists.gnu.org/r/emacs-devel/2019-03/msg00131.html
+       * lisp/arc-mode.el (archive-rar-summarize):
+       * lisp/gnus/gnus-art.el (gnus-button-valid-localpart-regexp):
+       * lisp/language/ethio-util.el (ethio-fidel-to-tex-buffer):
+       * lisp/nxml/rng-uri.el (rng-file-name-uri):
+       * lisp/org/org-mobile.el (org-mobile-apply):
+       * lisp/progmodes/cperl-mode.el (cperl-init-faces):
+       * lisp/progmodes/fortran.el (fortran-fill):
+       * lisp/progmodes/mantemp.el (mantemp-remove-comments)
+       (mantemp-remove-memfuncs, mantemp-insert-cxx-syntax):
+       * lisp/speedbar.el (speedbar-directory-buttons-follow):
+       * lisp/vc/add-log.el (change-log-font-lock-keywords):
+       Fix more regular expressions that seem to be typos or infelicities.
+
+2019-03-08  Mark Diekhans  <address@hidden>  (tiny change)
+
+       Improve ispell.el diagnostics if Hunspell dictionaries aren't found
+
+       * lisp/textmodes/ispell.el (ispell-set-spellchecker-params):
+       Set ispell-last-program-name only at the end, so as to produce
+       useful diagnostics when Hunspell dictionaries are not found.
+       (Bug#34640)
+
+2019-03-07  Paul Eggert  <address@hidden>
+
+       * lisp/net/rcirc.el: Undo previous change; it was a typo.
+
+2019-03-07  Paul Eggert  <address@hidden>
+
+       Be safer about "%" in message formats
+
+       * lisp/calc/calc-store.el (calc-copy-special-constant):
+       * lisp/net/rcirc.el (rcirc-handler-PART, rcirc-handler-KICK):
+       * lisp/org/org-agenda.el (org-agenda):
+       * lisp/org/org-clock.el (org-clock-out, org-clock-display):
+       * lisp/org/org.el (org-refile):
+       * lisp/progmodes/ada-xref.el (ada-goto-declaration):
+       * lisp/progmodes/idlwave.el (idlwave-scan-library-catalogs):
+       Don’t trust arbitrary strings to not contain "%" or "`" in
+       (message (concat STRING1 STRING2 ...)).
+
+2019-03-06  Mattias Engdegård  <address@hidden>
+
+       Rename regexp-opt argument noreorder to keep-order
+
+       * doc/lispref/searching.texi (Regular Expression Functions):
+       * lisp/emacs-lisp/regexp-opt.el (regexp-opt):
+       Rename newly added `noreorder' argument to `keep-order', to avoid a
+       negative in the name.  Suggested by Phil Sainty (Bug#34641).
+
+2019-03-06  Eli Zaretskii  <address@hidden>
+
+       Fix OBJECT binding in conditional display specs
+
+       * src/xdisp.c (compute_display_string_pos): Pass OBJECT1, not
+       OBJECT to handle_display_spec, as the latter doesn't expect a
+       window object.  (Bug#34771)
+
+2019-03-06  Paul Eggert  <address@hidden>
+
+       Fix typo in fix for Bug#33498
+
+       * src/frame.c (delete_frame): Fix typo in previous patch,
+       which caused GCC to complain about the use of an uninitialized
+       variable.
+
+2019-03-06  Michael Albinus  <address@hidden>
+
+       Handle empty strings in Tramp's expand-file-name implementations
+
+       * lisp/net/tramp.el (tramp-handle-expand-file-name):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-expand-file-name):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-expand-file-name):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-expand-file-name):
+       Handle empty NAME.
+
+       * test/lisp/net/tramp-tests.el (tramp-test01-file-name-syntax)
+       (tramp-test01-file-name-syntax-simplified)
+       (tramp-test01-file-name-syntax-separate): Use neutral IPv4 address.
+       (tramp-test05-expand-file-name): Check also "." and "".
+
+2019-03-06  Martin Rudalics  <address@hidden>
+
+       * lisp/window.el (fit-frame-to-buffer): Make doc-string more accurate.
+
+2019-03-06  Martin Rudalics  <address@hidden>
+
+       In unwind_with_echo_area_buffer use set_marker_restricted_both
+
+       * src/xdisp.c (unwind_with_echo_area_buffer): Use
+       set_marker_restricted_both instead of set_marker_both to avoid
+       spurious assertion failures.
+
+2019-03-06  Martin Rudalics  <address@hidden>
+
+       Fix handling of 'window-combination-resize' with fixed-size windows
+
+       * lisp/window.el (window-combinations): New optional argument
+       IGNORE-FIXED.
+       (window--combination-resizable): New function.
+       (split-window): Fix handling of 'window-combination-resize'
+       in the presence of fixed-size windows.
+
+2019-03-06  Martin Rudalics  <address@hidden>
+
+       Fix initialization of Vwindow_state_change_functions
+
+       * src/window.c (Vwindow_state_change_functions): Initialize the
+       right variable.
+
+2019-03-05  Glenn Morris  <address@hidden>
+
+       * doc/misc/gnus-coding.texi: Remove no longer relevant sections.
+
+       * doc/misc/gnus.texi (New Features): Refer to NEWS for newer items.
+
+2019-03-05  Glenn Morris  <address@hidden>
+
+       Remove doc/misc/gnus-news.texi
+
+       * doc/misc/gnus.texi (No Gnus): Merge in gnus-news.texi.
+       * doc/misc/gnus-news.texi: Remove.
+
+2019-03-05  Glenn Morris  <address@hidden>
+
+       Remove etc/GNUS-NEWS (bug#34662)
+
+       It is not relevant since Gnus stopped being distributed separately.
+       * etc/GNUS-NEWS: Remove this generated file.
+       * etc/NEWS.26: Relocate an entry mistakenly added to GNUS-NEWS.
+       * doc/misc/gnus-coding.texi (Gnus Maintenance Guide):
+       No longer mention GNUS-NEWS.
+       * doc/misc/gnus-news.el: Remove.
+       * doc/misc/gnus-news.texi: Update a comment.
+       * lisp/Makefile.in (update-gnus-news): Remove this phony target.
+
+2019-03-05  Glenn Morris  <address@hidden>
+
+       Remove gnus-overrides.texi
+
+       * doc/misc/gnus-overrides.texi: Remove.
+       * doc/misc/auth.texi, doc/misc/emacs-mime.texi:
+       * doc/misc/gnus.texi, doc/misc/message.texi, doc/misc/pgg.texi:
+       * doc/misc/sasl.texi, doc/misc/sieve.texi:
+       Do not include gnus-overrides.texi.
+
+2019-03-05  Wilson Snyder  <address@hidden>
+
+       Fix regexp issues introduced in last trunk commit.
+
+       * lisp/progmodes/verilog-mode.el (verilog-coverpoint-re): Fix regexp 
issues introduced
+       in last trunk commit.
+
+2019-03-05  Eli Zaretskii  <address@hidden>
+
+       Remove unreliable assertion in buf_bytepos_to_charpos
+
+       * src/marker.c (buf_bytepos_to_charpos): Remove the assertion
+       regarding bytepos always at the head byte of a multibyte
+       sequence.  For the reasons, see
+       http://lists.gnu.org/archive/html/emacs-devel/2019-03/msg00100.html
+       http://lists.gnu.org/archive/html/emacs-devel/2019-03/msg00102.html
+
+2019-03-05  Wilson Snyder  <address@hidden>
+
+       Fix regular-expression glitches and typos. Update verilog-mode from 
upstream.
+
+       * lisp/progmodes/verilog-mode.el (verilog-read-decls): Fix AUTO vectors 
with
+       double brackets, msg2839.
+       (verilog-read-auto-template-middle): Fix AUTO_TEMPLATE with regexp
+       capture group reference, but1379.  Reported by David Rogoff.
+
+2019-03-05  Martin Rudalics  <address@hidden>
+
+       Fix interactive spec of some functions in window.el (Bug#34749)
+
+       * lisp/window.el (delete-windows-on, quit-windows-on)
+       (display-buffer-other-frame): Interactively, permit existing
+       buffers only (Bug#34749).
+
+2019-03-05  Martin Rudalics  <address@hidden>
+
+       Fix handling of minibuffer-only child frames (Bug#33498)
+
+       * doc/lispref/frames.texi (Buffer Parameters): Describe how to
+       make a minibuffer-only child frame.
+       (Child Frames): Describe how minbuffer child frames are
+       deleted.
+       * src/frame.c (delete_frame): Handle deletion of minibuffer
+       child frames (Bug#33498).  In the course, fix reassigning of
+       'default-minibuffer-frame' with minibuffer-only frames.
+       * lisp/frame.el (frame-notice-user-settings): Handle creation of
+       initial minibuffer-only child frame.
+       (make-frame): Handle creation of frame with a minibuffer-only
+       child frame.
+
+2019-03-05  Michael Albinus  <address@hidden>
+
+       Test an IPv4 mapped IPv6 address in Tramp
+
+       * test/lisp/net/tramp-tests.el (tramp-test01-file-name-syntax)
+       (tramp-test01-file-name-syntax-simplified)
+       (tramp-test01-file-name-syntax-separate): Check also an IPv4
+       mapped IPv6 address.
+
+2019-03-04  Paul Eggert  <address@hidden>
+
+       Fix regular-expression glitches and typos
+
+       Problems reported by Mattias Engdegård in:
+       https://lists.gnu.org/r/emacs-devel/2019-03/msg00085.html
+       * admin/admin.el (set-version):
+       * lisp/allout.el (allout-latexify-one-item):
+       * lisp/arc-mode.el (archive-arc-rename-entry)
+       (archive-rar-summarize):
+       * lisp/calc/calc-graph.el (calc-graph-set-styles)
+       (calc-graph-hide):
+       * lisp/calc/calc-help.el (calc-describe-key):
+       * lisp/calc/calc-lang.el (math-compose-tex-func, eqn):
+       * lisp/calc/calc.el (calcDigit-key):
+       * lisp/cedet/ede/makefile-edit.el (makefile-macro-file-list):
+       * lisp/cedet/ede/speedbar.el (ede-tag-expand):
+       * lisp/cedet/semantic/sb.el (semantic-sb-show-extra)
+       (semantic-sb-expand-group):
+       * lisp/comint.el (comint-substitute-in-file-name):
+       * lisp/dired.el (dired-actual-switches):
+       * lisp/emacs-lisp/chart.el (chart-rmail-from):
+       * lisp/emacs-lisp/eieio-opt.el (eieio-sb-expand):
+       * lisp/emacs-lisp/eieio-speedbar.el (eieio-speedbar-object-expand):
+       * lisp/emacs-lisp/rx.el (rx-not, rx-atomic-p):
+       * lisp/emulation/viper-ex.el (viper-get-ex-token)
+       (viper-get-ex-pat, ex-set-read-variable):
+       * lisp/epg.el (epg--status-SIG_CREATED):
+       * lisp/erc/erc-speedbar.el (erc-speedbar-expand-user):
+       (erc-speedbar-expand-channel, erc-speedbar-expand-server)
+       * lisp/erc/erc.el (erc-is-message-ctcp-and-not-action-p)
+       (erc-banlist-update):
+       * lisp/eshell/em-dirs.el (eshell-parse-drive-letter, eshell/pwd):
+       * lisp/find-dired.el (find-dired):
+       * lisp/frame.el (frame-set-background-mode):
+       * lisp/generic-x.el (apache-log-generic-mode):
+       * lisp/gnus/gnus-art.el (gnus-button-valid-localpart-regexp):
+       * lisp/gnus/gnus.el (gnus-short-group-name):
+       * lisp/gnus/message.el (message-mailer-swallows-blank-line):
+       * lisp/ibuffer.el (ibuffer-fontification-alist):
+       * lisp/ido.el (ido-set-matches-1):
+       * lisp/info-xref.el (info-xref-lock-file-p):
+       * lisp/info.el (Info-dir-remove-duplicates)
+       (Info-unescape-quotes, Info-split-parameter-string)
+       (Info-speedbar-expand-node):
+       * lisp/international/mule.el (sgml-html-meta-auto-coding-function):
+       * lisp/isearch.el (isearch-pre-command-hook):
+       * lisp/language/ethio-util.el (ethio-fidel-to-tex-buffer):
+       * lisp/mail/rmail.el (rmail-collect-deleted):
+       * lisp/mh-e/mh-alias.el (mh-alias-suggest-alias):
+       * lisp/mh-e/mh-comp.el (mh-forward):
+       * lisp/mh-e/mh-search.el (mh-index-next-folder)
+       (mh-index-create-imenu-index):
+       * lisp/mh-e/mh-xface.el (mh-picon-get-image):
+       * lisp/minibuffer.el (completion--embedded-envvar-re):
+       * lisp/net/ange-ftp.el (ange-ftp-ls-parser):
+       * lisp/net/goto-addr.el (goto-address-mail-regexp)
+       (goto-address-find-address-at-point):
+       * lisp/net/pop3.el (pop3-read-response, pop3-user)
+       (pop3-pass, pop3-apop):
+       * lisp/net/tramp.el (tramp-ipv6-regexp)
+       (tramp-replace-environment-variables):
+       * lisp/nxml/nxml-maint.el (nxml-insert-target-repertoire-glyph-set):
+       * lisp/nxml/rng-uri.el (rng-uri-escape-multibyte):
+       * lisp/nxml/rng-xsd.el (rng-xsd-convert-any-uri):
+       * lisp/obsolete/pgg.el (pgg-fetch-key):
+       * lisp/obsolete/vip.el (vip-get-ex-token):
+       * lisp/org/ob-core.el (org-babel-string-read):
+       * lisp/org/org-agenda.el:
+       (org-agenda-add-entry-to-org-agenda-diary-file):
+       * lisp/org/org-element.el (org-element-keyword-parser):
+       * lisp/org/org-list.el (org-list-indent-item-generic):
+       * lisp/org/org-mhe.el (org-mhe-get-message-folder-from-index):
+       * lisp/org/org-mobile.el (org-mobile-apply):
+       * lisp/org/org-mouse.el (org-mouse-context-menu):
+       * lisp/org/org-plot.el (org-plot/gnuplot):
+       * lisp/org/org-protocol.el (org-protocol-flatten-greedy):
+       * lisp/org/org-table.el (org-table-copy-down)
+       (org-table-formula-make-cmp-string)
+       (org-table-get-stored-formulas, org-table-recalculate)
+       (org-table-edit-formulas):
+       * lisp/org/org.el (org-translate-link-from-planner)
+       (org-fill-line-break-nobreak-p):
+       * lisp/org/ox-ascii.el (org-ascii-item):
+       * lisp/org/ox-latex.el (org-latex-clean-invalid-line-breaks):
+       * lisp/org/ox.el (org-export-expand-include-keyword):
+       * lisp/progmodes/ada-xref.el (ada-treat-cmd-string):
+       * lisp/progmodes/cfengine.el (cfengine2-font-lock-keywords):
+       * lisp/progmodes/cperl-mode.el (cperl-to-comment-or-eol)
+       (cperl-find-pods-heres, cperl-fix-line-spacing)
+       (cperl-have-help-regexp, cperl-word-at-point-hard)
+       (cperl-make-regexp-x):
+       * lisp/progmodes/dcl-mode.el (dcl-option-value-offset):
+       * lisp/progmodes/etags.el (tag-implicit-name-match-p):
+       * lisp/progmodes/fortran.el (fortran-fill):
+       * lisp/progmodes/gdb-mi.el (gdb-speedbar-expand-node)
+       (gdb-locals-handler-custom):
+       * lisp/progmodes/grep.el (grep-mode-font-lock-keywords):
+       * lisp/progmodes/gud.el (gud-jdb-find-source-using-classpath):
+       * lisp/progmodes/js.el (js--continued-expression-p):
+       * lisp/progmodes/m4-mode.el (m4-font-lock-keywords):
+       * lisp/progmodes/meta-mode.el (meta-indent-level-count):
+       * lisp/progmodes/mixal-mode.el (mixal-font-lock-keywords):
+       * lisp/progmodes/opascal.el (opascal-find-unit-in-directory):
+       * lisp/progmodes/pascal.el (pascal-progbeg-re):
+       * lisp/progmodes/ruby-mode.el (ruby-expression-expansion-re)
+       (ruby-expr-beg, ruby-parse-partial)
+       (ruby-toggle-string-quotes, ruby-font-lock-keywords):
+       * lisp/progmodes/sql.el (sql--make-help-docstring):
+       * lisp/progmodes/verilog-mode.el (verilog-coverpoint-re)
+       (verilog-skip-forward-comment-p)
+       (verilog-read-sub-decls-gate)
+       (verilog-read-auto-template-middle):
+       * lisp/progmodes/vhdl-mode.el (vhdl-resolve-env-variable)
+       (vhdl-speedbar-expand-project, vhdl-speedbar-expand-entity)
+       (vhdl-speedbar-expand-architecture)
+       (vhdl-speedbar-expand-config, vhdl-speedbar-expand-package)
+       (vhdl-speedbar-dired):
+       * lisp/speedbar.el (speedbar-dired, speedbar-tag-file)
+       (speedbar-tag-expand):
+       * lisp/textmodes/dns-mode.el (dns-mode-font-lock-keywords):
+       * lisp/textmodes/flyspell.el (flyspell-debug-signal-word-checked):
+       * lisp/textmodes/ispell.el (ispell-process-line):
+       * lisp/textmodes/reftex-cite.el (reftex-end-of-bib-entry):
+       * lisp/textmodes/reftex-ref.el (reftex-replace-prefix-escapes):
+       * lisp/url/url-parse.el (url-generic-parse-url):
+       * lisp/url/url-util.el (url-truncate-url-for-viewing):
+       * lisp/vc/diff-mode.el (diff-unified->context):
+       * lisp/vc/vc-bzr.el (vc-bzr-error-regexp-alist):
+       * lisp/vc/vc-cvs.el (vc-cvs-parse-status):
+       * lisp/woman.el (woman0-el, woman-if-ignore)
+       (woman-change-fonts):
+       * lisp/xdg.el (xdg--substitute-home-env):
+       Fix regular-expression infelicities and typos.
+
+       Fix regular expression typos
+       Fix typos reported by Mattias Engdegård in:
+       that occurred in preloaded modules.
+       * lisp/frame.el (frame-set-background-mode):
+       * lisp/international/mule.el (sgml-html-meta-auto-coding-function):
+       * lisp/isearch.el (isearch-pre-command-hook):
+       * lisp/minibuffer.el (completion--embedded-envvar-re):
+
+2019-03-04  Charles A. Roelli  <address@hidden>
+
+       Fix diff-mode tests after renaming diff-font-lock-refine
+
+       This fixes tests broken in my last change, "Merge
+       diff-font-lock-refine and diff-auto-refine-mode into diff-refine" from
+       2019-02-24.
+
+       * test/lisp/vc/diff-mode-tests.el (diff-mode-test-font-lock):
+       Bind diff-refine to symbol 'font-lock' instead of binding
+       diff-font-lock-refine to t.
+       (diff-mode-test-font-lock-syntax-one-line): Bind diff-refine
+       to nil instead of binding diff-font-lock-refine to nil.
+
+2019-03-04  Eli Zaretskii  <address@hidden>
+
+       Avoid assertion violations in buf_bytepos_to_charpos
+
+       * src/marker.c (buf_bytepos_to_charpos): Disable the assertion
+       regarding bytepos always at the head byte of a multibyte
+       sequence.
+
+2019-03-04  Eli Zaretskii  <address@hidden>
+
+       Fix invocation with -rv on the command line
+
+       * lisp/frame.el (frame-set-background-mode): Avoid errors from
+       'face-spec-match-p' when the face was not yet realized for
+       FRAME.  (Bug#34725)
+
+2019-03-04  Nicolas Petton  <address@hidden>
+
+       * lisp/emacs-lisp/map.el: Bump version to 2.0.
+
+2019-03-04  Martin Rudalics  <address@hidden>
+
+       Prevent introducing invalid scroll bar width/height values (Bug#34569)
+
+       * src/frame.c (store_frame_param): Don't store invalid values
+       for scroll_bar_width/height.
+       (x_report_frame_params): Don't report invalid values for
+       scroll_bar_width/height.
+       (x_set_scroll_bar_width, x_set_scroll_bar_height): Don't set
+       invalid values for scroll_bar_width/height.
+
+2019-03-04  Martin Rudalics  <address@hidden>
+
+       Fix minibuffer resizing with temporarily selected frames (Bug#34317)
+
+       * src/keyboard.c (command_loop_1): Resize echo area exactly
+       only if the echo area window is the minibuffer window of the
+       selected frame (Bug#34317).
+       * src/xdisp.c (x_consider_frame_title): Inhibit redisplay also
+       when restoring the selected window/frame to avoid that
+       resize_mini_window sizes back the minibuffer window of a
+       temporarily selected frame (Bug#34317).
+
+2019-03-04  Paul Eggert  <address@hidden>
+
+       * src/alloc.c (gcstat): Now static.
+
+       * src/gfilenotify.c: Fix indenting.
+
+       * src/font.h: Fix commentary.
+
+2019-03-04  Paul Eggert  <address@hidden>
+
+       Simplify list creation in C code
+
+       The main new thing here is that C code can now say
+       ‘list (a, b, c, d, e, f)’ instead of
+       ‘listn (CONSTYPE_HEAP, 6, a, b, c, d, e, f)’,
+       thus relieving callers of the responsibility of counting
+       arguments (plus, the code feels more like Lisp).  The old
+       list1 ... list5 functions remain, as they’re probably a bit
+       faster for small lists.
+       * src/alloc.c (cons_listn, pure_listn): New functions.
+       (listn): Omit enum argument.
+       All callers changed to use either new ‘list’ or ‘pure_list’ macros.
+       * src/charset.c (Fdefine_charset_internal):
+       * src/coding.c (detect_coding_system)
+       (Fset_terminal_coding_system_internal):
+       * src/frame.c (frame_size_history_add, adjust_frame_size):
+       * src/gtkutil.c (xg_frame_set_char_size):
+       * src/keyboard.c (command_loop_1):
+       * src/nsfns.m (frame_geometry):
+       * src/widget.c (set_frame_size):
+       * src/xfaces.c (Fcolor_distance):
+       * src/xfns.c (frame_geometry):
+       * src/xterm.c (x_set_window_size_1):
+       * src/xwidget.c (Fxwidget_size_request):
+       Prefer list1i, list2i, etc. to open-coding them.
+       * src/charset.c (Fset_charset_priority):
+       * src/nsterm.m (append2):
+       * src/window.c (window_list):
+       * src/xfaces.c (Fx_list_fonts):
+       Use nconc2 instead of open-coding it.
+       * src/eval.c (eval_sub, backtrace_frame_apply):
+       * src/kqueue.c (kqueue_generate_event):
+       * src/nsterm.m (performDragOperation:):
+       * src/pdumper.c (Fpdumper_stats):
+       * src/w32.c (init_environment):
+       Prefer list1, list2, etc. to open-coding them.
+       * src/font.c (font_list_entities):
+       Parenthesize to avoid expanding new ‘list’ macro.
+       * src/gtkutil.c (GETSETUP): Rename from MAKE_FLOAT_PAGE_SETUP
+       to get lines to fit.  Move outside the ‘list’ call, since it’s
+       now a macro.
+       * src/keymap.c (Fmake_keymap): Simplify.
+       * src/lisp.h (list, pure_list): New macros.
+       (list1i): New function.
+
+2019-03-03  Charles A. Roelli  <address@hidden>
+
+       Merge diff-font-lock-refine and diff-auto-refine-mode into diff-refine
+
+       This change was discussed in Bug#32991.
+
+       * admin/gitmerge.el (gitmerge-resolve): Bind 'diff-refine'
+       instead of 'diff-auto-refine-mode' to nil.
+       * doc/emacs/files.texi (Diff Mode): Explain 'diff-refine'
+       instead of 'diff-auto-refine-mode' in the documentation of
+       'diff-hunk-next' and 'diff-hunk-prev'.  Mention in the
+       documentation of 'diff-refine-hunk' that refining is already
+       done by default.
+       * etc/NEWS (Diff mode): Explain renamed 'diff-refine' variable
+       and mention deprecation and disabling of
+       'diff-auto-refine-mode'.
+       * lisp/vc/diff-mode.el (diff-font-lock-refine): Rename to
+       'diff-refine' and allow choices nil, 'font-lock' and 'navigation'.
+       (diff-auto-refine-mode): Disable it by default, make it
+       obsolete and make it set 'diff-refine' appropriately to keep
+       backward compatibility.
+       (diff-hunk-next, diff-hunk-prev): Adapt to rename of
+       diff-auto-refine-mode and ensure that refining only happens
+       when calling these commands interactively.
+       (diff--font-lock-refined): Adapt to rename of
+       diff-font-lock-refine.
+       * lisp/vc/smerge-mode.el (smerge-next, smerge-prev): Check
+       that 'diff-refine' is set instead of checking
+       'diff-auto-refine-mode' when deciding whether to refine a
+       conflict.
+
+2019-03-03  Alan Mackenzie  <address@hidden>
+
+       Correct some slightly incorrect regular expressions:
+
+       * lisp/progmodes/cc-awk.el (c-awk-harmless-char-re)
+       (c-awk-harmless-line-char-re, c-awk-_-harmless-nonws-char-re): 
[...\\\\...]
+       -> [...\\...].
+
+       * lisp/progmodes/cc-engine.el (c-literal-limits): "*/" -> "\\*/".
+
+       * lisp/progmodes/cc-mode.el (c-after-change-re-mark-unbalanced-strings):
+       "\\\r" -> "\r".
+
+2019-03-03  Eli Zaretskii  <address@hidden>
+
+       Fix starting temacs interactively
+
+       * src/dispnew.c (init_display_interactive): Don't call
+       init_faces_initial if we aren't initialized, since
+       tty-set-up-initial-frame-faces is not available then.  This
+       restores the ability to start "temacs -nw" and also avoids
+       bad crashes in "emacs -nw" if the pdumper file is not found.
+       (Bug#34707)
+
+2019-03-02  Paul Eggert  <address@hidden>
+
+       Fix typo in previous change
+
+       * src/alloc.c (memory_full_cons_threshold):
+       Move to after definition of struct cons_block.
+       Problem reported by Basil L. Contovounesios in:
+       https://lists.gnu.org/r/emacs-devel/2019-03/msg00067.html
+
+2019-03-02  Glenn Morris  <address@hidden>
+
+       * test/lisp/progmodes/python-tests.el
+       (python-syntax-after-python-backspace): Expect success.
+
+2019-03-02  Paul Eggert  <address@hidden>
+
+       memory_full_cons_threshold is a constant
+
+       * src/alloc.c (memory_full_cons_threshold): Now const.
+       (memory_full): Omit no-longer-needed initialization.
+
+2019-03-02  Paul Eggert  <address@hidden>
+
+       Avoid staticvec duplicates
+
+       * src/alloc.c (staticpro) [ENABLE_CHECKING]: Check for duplicates.
+       * src/keyboard.c (syms_of_keyboard): Define
+       while-no-input-ignore-events and inhibit--record-char here ...
+       (syms_of_keyboard_for_pdumper): ... instead of here.
+       This avoids duplicates in staticvec.
+
+2019-03-02  Alan Mackenzie  <address@hidden>
+
+       Check by eassert that a bytepos argument isn't in the middle of a 
character
+
+       * src/marker.c (buf_bytepos_to_charpos): Add an eassert to check that 
the
+       parameter bytepos is at the beginning of a character or EOB.
+
+2019-03-02  Eli Zaretskii  <address@hidden>
+
+       Fix DND on MS-Windows with files from UNC directories
+
+       * lisp/dnd.el (dnd-get-local-file-uri): Always return nil on
+       MS-Windows, as this method cannot possibly work there: URIs
+       that begin with the local system's name are UNCs, where the
+       //SERVER part cannot be removed.  (Bug#34675)
+
+2019-03-02  Phillip Lord  <address@hidden>
+
+       Revert "Add hook for all events"
+
+       This reverts commit 7b31de4d107302ed91ce7519cd778b340a9880ee.
+
+2019-03-02  Phillip Lord  <address@hidden>
+
+       Revert "; Fix typos in NEWS"
+
+       This reverts commit d52bc534d799c255f24ff2a56e8bed830d8f68ca.
+
+2019-03-02  Phillip Lord  <address@hidden>
+
+       Revert "; Document input-event-functions"
+
+       This reverts commit 27fffb2701c38090916e077d28a4a6b9e2bc09d2.
+
+2019-03-02  Mattias Engdegård  <address@hidden>
+
+       Correct regexp-opt return value for empty string list
+
+       When regexp-opt is called with an empty list of strings, return a regexp
+       that doesn't match anything instead of the empty string (Bug#20307).
+
+       * doc/lispref/searching.texi (Regular Expression Functions):
+       * etc/NEWS:
+       Document the new behaviour.
+       * lisp/emacs-lisp/regexp-opt.el (regexp-opt):
+       Return a never-match regexp for empty inputs.
+
+2019-03-02  Mattias Engdegård  <address@hidden>
+
+       rx: fix `or' ordering by adding argument to regexp-opt
+
+       The rx `or' form may reorder its arguments in an unpredictable way,
+       contrary to user expectation, since it sometimes uses `regexp-opt'.
+       Add a NOREORDER option to `regexp-opt' for preventing it from
+       producing a reordered regexp (Bug#34641).
+
+       * doc/lispref/searching.texi (Regular Expression Functions):
+       * etc/NEWS (Lisp Changes in Emacs 27.1):
+       Describe the new regexp-opt NOREORDER argument.
+       * lisp/emacs-lisp/regexp-opt.el (regexp-opt): Add NOREORDER.
+       Make no attempt at regexp improvement if the set of strings contains
+       a prefix of another string.
+       (regexp-opt--contains-prefix): New.
+       * lisp/emacs-lisp/rx.el (rx-or): Call regexp-opt with NOREORDER.
+       * test/lisp/emacs-lisp/rx-tests.el: Test rx `or' form match order.
+
+2019-03-02  Eli Zaretskii  <address@hidden>
+
+       Fix 'end-of-visual-line' with overlay strings with newlines
+
+       * src/indent.c (Fvertical_motion): Get out of overlay strings
+       with embedded newlines even if moving within the same screen
+       line.  See https://github.com/emacs-lsp/lsp-mode/issues/677
+       for more details.
+       Fix test for IT_CHARPOS being at the beginning of the
+       accessible portion of the buffer.
+
+2019-03-01  Stefan Monnier  <address@hidden>
+
+       * src/syntax.c (update_syntax_table): Prefer 'else' to 'goto'
+
+       * lisp/Makefile.in (leim): Fix void-function pinyin-convert
+
+2019-03-01  Alan Mackenzie  <address@hidden>
+
+       Maintain interval ->position fields correctly in update_interval
+
+       Also fix some anomalies in the handling of byte positions in 
regexp-emacs.c
+       This fixes bug #34525.
+
+       * src/intervals.c (SET_PARENT_POSITION): New macro.
+       (update_interval): When moving to an interval's parent, set that 
parent's
+       ->position field, to maintain the consistency of the tree.
+
+       * src/intervals.h (struct interval): Amend the comment describing when
+       ->position is valid.
+
+       * src/pdumper.c: Update the hash associated with struct interval.
+
+       * src/regex-emacs.c: (re_match_2_internal): Only invoke 
POINTER_TO_OFFSET on a
+       known character boundary.  Only perform arithmetic on character 
positions, not
+       on byte positions.  Correct the argument to an invocation of
+       UPDATE_SYNTAX_TABLE_FORWARD by adding 1 to it (in case wordend:).
+
+       * src/syntax.c: (update_syntax_table): Remove the now redundant code 
that set
+       the ->position field of all parents of the interval found by 
update_interval.
+
+2019-03-01  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       9df1365 Fix a typo in the Calc manual
+       f3dab02 Minor improvement in cross-references of the ELisp manual
+       560c84b Fix last change on 'compilation-parse-errors'
+
+2019-03-01  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       dee3cdc Minor improvement for docs of completion
+       c86d419 ; * src/image.c (imagemagick_load, svg_load): Fix typos in co...
+       6d46fa9 Disable the timerfd interface on Cygwin
+       3707ea4 Fix a typo in the doc string of 'regex-opt'
+       d9905d5 Document bash 5.0.0 misbehavior in tramp.texi (Bug#34192)
+
+       # Conflicts:
+       #       doc/misc/tramp.texi
+
+2019-03-01  Paul Eggert  <address@hidden>
+
+       Suppress GC stats when obviously not needed
+
+       This should help future improvements where these stats can be
+       bignums that do not fit into intmax_t.
+       * src/alloc.c (struct gcstat, gcstat): New type and static var,
+       to package up GC statistics into one C object.  It replaces ...
+       (total_free_intervals, total_intervals, total_strings)
+       (total_free_strings, total_string_bytes, total_vectors)
+       (total_vector_slots, total_free_vector_slots): ... these
+       removed static vars.  All uses changed.
+       (garbage_collect_1): Accept a struct gcstat *, not a void *
+       which was not used anymore anyway.  Return a bool indicating
+       success, instead of a Lisp object.  All callers changed.
+       (garbage_collect): New function.  All C callers of
+       Fgarbage_collect changed to use it, since none of them use the
+       return value.  Now, only Lisp code uses Fgarbage_collect.
+       (Fgarbage_collect): No longer noinline.  Cons up the return
+       value here, not in garbage_collect_1.
+
+2019-03-01  Eli Zaretskii  <address@hidden>
+
+       Don't signal Quit from 'while-no-input' on TTY frames
+
+       * src/keyboard.c (read_char): Don't inject quit-char after
+       longjmp if while-no-input is in effect.  (Bug#34535)
+
+2019-03-01  Evan Moses  <address@hidden>  (tiny change)
+
+       Add 'breakpoint' to builtins for Python
+
+       * lisp/progmodes/python.el (python-font-lock-keywords-level-2)
+       (python-font-lock-keywords-maxiumum-decoration): Add 'breakpoint'
+       to the list of builtins, it's new as of Python 3.7.
+
+2019-03-01  Eli Zaretskii  <address@hidden>
+
+       Be more defensive regarding elements of 'load-history'
+
+       * lisp/loadhist.el (file-dependents):
+       * lisp/apropos.el (apropos-library):
+       * lisp/help-fns.el (help-fns--autoloaded-p, help--loaded-p):
+       * lisp/emacs-lisp/package.el (package--list-loaded-files):
+       Don't assume 'load-history' elements must have a string as their
+       'car'.  (Bug#34462)
+
+2019-03-01  Alan Mackenzie  <address@hidden>
+
+       * src/pdumper.c: Clarify the message about updating hash values
+
+2019-03-01  Federico Tedin  <address@hidden>
+
+       Allow control on the threshold for using 'distant-foreground'
+
+       * src/xfaces.c (NEAR_SAME_COLOR_THRESHOLD): Macro deleted.
+       (load_face_colors): Compare against
+       face_near_same_color_threshold instead of
+       NEAR_SAME_COLOR_THRESHOLD.
+       (syms_of_xfaces) <face-near-same-color-threshold>: New
+       variable.  (Bug#34001)
+
+       * etc/NEWS: Announce the change.
+
+2019-02-28  Juri Linkov  <address@hidden>
+
+       * lisp/replace.el (flush-lines): Return the number of deleted lines.
+
+       When called interactively, also print the number. (Bug#34520)
+
+       * doc/emacs/search.texi (Other Repeating Search): Update
+       flush-lines that prints the number of deleted lines.
+
+2019-02-28  Eli Zaretskii  <address@hidden>
+
+       Avoid rare crashes in xbacktrace
+
+       * src/eval.c (backtrace_thread_p, backtrace_top): Don't
+       segfault in "xbacktrace" if called before the specpdl
+       machinery is initialized in pdumped Emacs.
+
+2019-02-28  Michael Albinus  <address@hidden>
+
+       Adapt test names in tramp-archive-tests.el
+
+       * test/lisp/net/tramp-archive-tests.el
+       (tramp-archive-test39-make-nearby-temp-file)
+       (tramp-archive-test42-file-system-info)
+       (tramp-archive-test45-auto-load)
+       (tramp-archive-test45-delay-load): Rename.
+
+2019-02-28  Michael Albinus  <address@hidden>
+
+       Use proper read syntax for all function names in Tramp
+
+       * lisp/net/tramp.el:
+       * lisp/net/tramp-adb.el:
+       * lisp/net/tramp-archive.el:
+       * lisp/net/tramp-cache.el:
+       * lisp/net/tramp-cmds.el:
+       * lisp/net/tramp-compat.el:
+       * lisp/net/tramp-ftp.el:
+       * lisp/net/tramp-gvfs.el:
+       * lisp/net/tramp-integration.el:
+       * lisp/net/tramp-rclone.el:
+       * lisp/net/tramp-sh.el:
+       * lisp/net/tramp-smb.el:
+       * lisp/net/tramp-sudoedit.el:
+       * test/lisp/net/tramp-archive-tests.el:
+       * test/lisp/net/tramp-tests.el: Use proper read syntax for all
+       function names.
+
+2019-02-27  Paul Eggert  <address@hidden>
+
+       Escape HTML NUL as &#0; in eww
+
+       * lisp/net/eww.el (eww-display-html): Escape NUL as &#0; as this
+       is more appropriate for HTML.
+
+2019-02-27  Juri Linkov  <address@hidden>
+
+       * lisp/vc/vc-annotate.el: Better error handling (bug#34532)
+
+       * lisp/vc/vc-annotate.el (vc-annotate-revision-previous-to-line):
+       Print message when prev-rev is nil.
+
+2019-02-27  Juri Linkov  <address@hidden>
+
+       Directional window swap states (bug#34656)
+
+       * lisp/windmove.el (windmove-swap-states-in-direction)
+       (windmove-swap-states-left, windmove-swap-states-up)
+       (windmove-swap-states-down, windmove-swap-states-right)
+       (windmove-swap-states-default-keybindings): New functions.
+
+2019-02-27  Juri Linkov  <address@hidden>
+
+       * doc/emacs/frames.texi (Multiple Displays): Add make-frame-on-monitor.
+
+       * doc/lispref/frames.texi (Multiple Terminals): Add 
make-frame-on-monitor.
+       (Bug#34516)
+
+2019-02-27  Arash Esbati  <address@hidden>
+
+       Improve matching of key-val labels (bug#34629)
+
+       * lisp/textmodes/reftex-vars.el (reftex-label-regexps): Improve
+       regexp for key-val labels in order to skip over content in braces.
+
+2019-02-27  Robert Pluim  <address@hidden>
+
+       Replace NUL characters when calling into libxml
+
+       2019-02-27  Robert Pluim  <address@hidden>
+
+       * lisp/net/eww.el (eww-display-html): Replace NUL characters with
+       "\0", as libxml can't handle embedded NULLs.  (Bug#34469)
+
+2019-02-27  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/pcase.el (pcase--make-docstring): Autoload
+
+2019-02-27  John Shahid  <address@hidden>
+
+       Add text properties to newlines used to unwrap long lines.
+
+       * lisp/term.el (term-emulate-terminal): do it.
+
+2019-02-27  Paul Eggert  <address@hidden>
+
+       DEFVAR_INT variables are now intmax_t
+
+       Formerly they were fixnums, which led to problems when dealing
+       with values that might not fit on 32-bit platforms, such as
+       string-chars-consed or floats_consed.  64-bit counters should
+       be good enough for these (for a while, anyway...).
+       While we’re at it, fix some unlikely integer overflow bugs
+       that have been in the code for a while.
+       * lib-src/make-docfile.c (write_globals):
+       * src/data.c (do_symval_forwarding, store_symval_forwarding):
+       * src/eval.c (restore_stack_limits, call_debugger):
+       * src/frame.h (struct frame.cost_calculation_baud_rate):
+       * src/keyboard.c (last_auto_save, bind_polling_period, read_char):
+       * src/lisp.h (struct Lisp_Intfwd.intvar):
+       * src/lread.c (defvar_int):
+       * src/pdumper.c (dump_fwd_int):
+       * src/thread.h (struct thread_state.m_lisp_eval_depth):
+       * src/undo.c (truncate_undo_list):
+       * src/xselect.c (wait_for_property_change)
+       (x_get_foreign_selection):
+       * src/xterm.c (x_emacs_to_x_modifiers):
+       DEFVAR_INT variables now have the C type intmax_t, not EMACS_INT.
+       * src/data.c (store_symval_forwarding):
+       * src/gnutls.c (Fgnutls_boot):
+       * src/keyboard.c (bind_polling_period):
+       * src/macros.c (pop_kbd_macro, Fexecute_kbd_macro):
+       * src/undo.c (truncate_undo_list):
+       Allow any integer that fits into intmax_t, instead of
+       requiring it to be a Lisp fixnum.
+       * src/dispnew.c (update_window):
+       * src/frame.c (x_figure_window_size):
+       * src/gnutls.c (init_gnutls_functions)
+       (emacs_gnutls_handle_error):
+       * src/keyboard.c (make_lisp_event):
+       * src/nsterm.m (ns_dumpglyphs_image):
+       * src/profiler.c (make_log):
+       * src/scroll.c (calculate_scrolling)
+       (calculate_direct_scrolling):
+       * src/termcap.c (tputs):
+       * src/xterm.c (x_draw_image_relief):
+       Avoid implementation-defined behavior on conversion of
+       out-of-range integers.
+       * src/eval.c (when_entered_debugger): Now intmax_t.
+       (max_ensure_room): New function, that avoids signed integer overflow.
+       (call_debugger, signal_or_quit): Use it.
+       * src/fileio.c (Fdo_auto_save):
+       * src/keyboard.c (make_lisp_event):
+       * src/term.c (calculate_costs):
+       * src/xdisp.c (build_desired_tool_bar_string)
+       (hscroll_window_tree, try_scrolling, decode_mode_spec)
+       (x_produce_glyphs):
+       Avoid signed integer overflow.
+       * src/lisp.h (clip_to_bounds): Generalize to intmax_t.
+       * src/pdumper.c (dump_emacs_reloc_immediate_emacs_int): Remove, ...
+       (dump_emacs_reloc_immediate_intmax_t): ... replacing with this
+       function.  All uses changed.
+       * src/profiler.c (make_log): Omit args.  All callers changed.
+       * src/termcap.c: Include stdlib.h, for atoi.
+       Include intprops.h.
+       * src/window.c (sanitize_next_screen_context_lines): New function.
+       (window_scroll_pixel_based, window_scroll_line_based):
+       Use it to avoid signed integer overflow.
+
+2019-02-25  Paul Eggert  <address@hidden>
+
+       Fix mod-test build failure
+
+       Problem reported by Glenn Morris in:
+       https://lists.gnu.org/r/emacs-devel/2019-02/msg00739.html
+       * test/Makefile.in (HYBRID_MALLOC, LIBEGNU_ARCHIVE):
+       New macros, taken from ../src/Makefile.in.
+       (MODULE_CFLAGS): Add -I$(srcdir)/../lib.
+       ($(test_module)): Link $(LIBEGNU_ARCHIVE) too.
+
+2019-02-25  Juri Linkov  <address@hidden>
+
+       * lisp/vc/diff-mode.el (diff-font-lock-keywords): Add more Git headers.
+
+       * lisp/gnus/mm-view.el (mm-display-inline-fontify): Set mode to
+       the selected major-mode, so diff-mode could be detected afterwards.
+
+2019-02-25  Juri Linkov  <address@hidden>
+
+       * lisp/frame.el (make-frame-on-monitor): New command.  (Bug#34516)
+
+       (make-frame-on-display): Add completion on available display names.
+
+2019-02-25  Paul Eggert  <address@hidden>
+
+       format-time-string: document new '+' flag
+
+       * doc/lispref/os.texi (Time Parsing), etc/NEWS:
+       * src/timefns.c (Fformat_time_string): Document the new
+       behavior, added for compatibility with POSIX.1-2017.
+
+2019-02-25  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-02-24 nstrftime: support the ‘+’ flag
+       2019-02-24 stat, lstat: fix conflict with relocatable-prog-wrapper
+       2019-02-23 nstrftime: tweak arg order
+       2019-02-21 nstrftime: merge glibc strftime changes
+       2019-02-02 vla: add commentary about VLA_ELEMS
+       * build-aux/config.guess, doc/misc/texinfo.tex, lib/fstatat.c:
+       * lib/lstat.c, lib/nstrftime.c, lib/vla.h:
+       Copy from Gnulib.
+
+2019-02-25  Michael Albinus  <address@hidden>
+
+       Adapt hooks in Tramp
+
+       * lisp/net/tramp-archive.el (tramp-archive-cleanup-hash):
+       Remove autoload cookie.
+       (tramp-cleanup-all-connections-hook): Add `tramp-archive-cleanup-hash'.
+
+       * lisp/net/tramp-cmds.el (tramp-cleanup-connection-hook)
+       (tramp-cleanup-all-connections-hook): New hook variables.
+       (tramp-cleanup-connection): Set `tramp-current-connection' always
+       to nil.
+       (tramp-cleanup-connection): Do not call `tramp-recentf-cleanup'.
+       Run ´tramp-cleanup-connection-hook`.
+       (tramp-cleanup-all-connections): Do not call
+       `tramp-archive-cleanup-hash' and ´tramp-recentf-cleanup'.  Run
+       `tramp-cleanup-all-connections-hook'.
+
+       * lisp/net/tramp-ftp.el (top): Simply call `tramp-disable-ange-ftp'.
+
+       * lisp/net/tramp-integration.el (tramp-recentf-cleanup-all): New defun.
+       (top): Adapt `tramp-integration-unload-hook',
+       `tramp-cleanup-connection-hook' and
+       `tramp-cleanup-all-connections-hook'.
+
+2019-02-24  Alex Branham  <address@hidden>
+
+       * lisp/comint.el (comint-skip-input): Set inhibit-read-only to t
+
+       Bug#33975
+
+2019-02-24  Philipp Stephani  <address@hidden>
+
+       Ignore pending_signals when checking for quits.
+
+       pending_signals is often set if no quit is pending.  This results in
+       bugs in module code if the module returns but no quit is actually
+       pending.
+
+       As a better alternative, add a new process_input environment function
+       for Emacs 27.  That function processes signals (like maybe_quit).
+
+       * configure.ac: Add module snippet for Emacs 27.
+
+       * src/module-env-27.h: New file.
+
+       * src/emacs-module.h.in: Add process_input function to environment
+       interface.
+
+       * src/emacs-module.c (module_should_quit): Use QUITP macro to check
+       whether the caller should quit.
+       (module_process_input): New function.
+       (initialize_environment): Use it.
+
+       * src/eval.c: Remove obsolete comment.
+
+       * test/data/emacs-module/mod-test.c (signal_wrong_type_argument)
+       (signal_errno): New helper functions.
+       (Fmod_test_sleep_until): New test module function.
+
+       * test/src/emacs-module-tests.el (mod-test-sleep-until): New unit
+       test.
+
+       * doc/lispref/internals.texi (Module Misc): Document process_input.
+
+2019-02-24  Stefan Monnier  <address@hidden>
+
+       * lisp/term.el: Fix minor compilation issues with cl-lib and lexbind
+
+       Remove left-over comment from the bulk comint->term query/replace.
+       (term-command-function): Rename from term-command-hook.
+       Give it a global default value.
+       (term-suppress-hard-newline): Mark it as generally obsolete.
+       (term-mode): Don't manually make hooks buffer-local.
+       (term--remove-fake-newlines): Fix assert -> cl-assert.
+       (term-char-mode): Use add-function.
+       (term-send-input): Use run-hook-with-args.
+       (term-dynamic-complete): Use run-hook-with-args-until-success.
+       (term-dynamic-simple-complete): Completion tables can be plain lists.
+       (serial-read-name): Simplify and fix misuse of `set`.
+
+2019-02-24  John Shahid  <address@hidden>
+
+       Adjust line wrapping on window resize and killing text
+
+       * lisp/term.el (term-mode): Advice filter-buffer-substring-function to
+       remove line unwrapping from killed text.
+       (term-reset-size): Add or remove line unwrapping depending on the new
+       terminal width.
+       (term-suppress-hard-newline): Mark obsolete.
+       (term-unwrap-line): Use text properties to be able to find the
+       newlines later.
+
+2019-02-24  Eric Abrahamsen  <address@hidden>
+
+       Make pinyin to Chinese character mapping available to elisp
+
+       * leim/Makefile.in: Build the file pinyin.el from pinyin.map.
+       * lisp/international/titdic-cnv.el (pinyin-convert): New function that
+         writes the library pinyin.el, containing a new constant
+         `pinyin-character-map'.
+       * .gitignore: Ignore the generated pinyin.el file.
+
+2019-02-24  Richard Stallman  <address@hidden>
+
+       fix rmail armor decryption problems
+
+       * lisp/mail/rmail.el (rmail-epa-decrypt): Don't decrypt an armor
+       that was copied into the message from a message it is a reply to.
+       (rmail-epa-decrypt-1): Catch and ignore errors in
+       epa-decrypt-region.  Make armor-start and armor-end markers.
+
+2019-02-24  Richard Stallman  <address@hidden>
+
+       Don't clobber epa-mail-aliases
+
+       * lisp/epa-mail.el (epa-mail-default-recipients):
+       Copy elements of epa-mail-aliases; don't clobber them.
+
+2019-02-24  Eli Zaretskii  <address@hidden>
+
+       * doc/lispref/text.texi (Replacing): Fix a typo in recent change.
+
+2019-02-24  Michael Albinus  <address@hidden>
+
+       Cleanup also recentf files in Tramp
+
+       * doc/misc/tramp.texi (Cleanup remote connections): Mention also
+       recentf cache.
+
+       * lisp/net/tramp-cmds.el (tramp-cleanup-connection)
+       (tramp-cleanup-all-connections): Call `tramp-recentf-cleanup'.
+
+       * lisp/net/tramp-integration.el: New package.
+
+       * lisp/net/tramp.el (tramp-rfn-eshadow-overlay)
+       (tramp-rfn-eshadow-setup-minibuffer)
+       (tramp-rfn-eshadow-update-overlay-regexp)
+       (tramp-rfn-eshadow-update-overlay):
+       (tramp-eshell-directory-change): Move to tramp-integration.el
+
+2019-02-23  Paul Eggert  <address@hidden>
+
+       Don’t assume timersub and gettimeofday
+
+       POSIX does not specify timersub, and marks gettimeofday as
+       obsolescent.  Avoid porting problems by using timespec.h
+       functions instead.
+       * src/editfns.c: Include systime.h instead of sys/time.h.
+       (EXTRA_CONTEXT_FIELDS): Replace start and max_secs with
+       time_limit.  All uses changed.  This removes the need to call
+       gettimeofday or timersub.
+       * src/term.c (timeval_to_Time): Remove.  Replace all uses with ...
+       (current_Time): ... this new function, removing the need to
+       call gettimeofday.
+
+2019-02-23  Tassilo Horn  <address@hidden>
+
+       Improve replace-buffer-contents/replace-region-contents
+
+       * src/editfns.c (Freplace_buffer_contents): Add two optional arguments
+         for mitigating performance issues.
+       * lisp/emacs-lisp/subr-x.el (replace-region-contents): Move from
+         subr.el.  Add the same two arguments as for replace-buffer-contents.
+       * lisp/json.el (json-pretty-print-max-secs): New variable holding the
+         default MAX-SECS value json-pretty-print passes to
+         replace-buffer-contents.
+         (json-pretty-print): Use it.
+       * doc/lispref/text.texi (Replacing): Add documentation for
+         replace-buffer-contents two new optional arguments.  Document
+         replace-region-contents.
+
+2019-02-23  Michael Albinus  <address@hidden>
+
+       Make last Tramp change backward compatible to Emacs 24
+
+       * lisp/net/tramp-cache.el (tramp-get-file-property):
+       * lisp/net/tramp-sh.el (tramp-maybe-open-connection):
+       * lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection):
+       Make them backward compatible to Emacs 24.
+
+2019-02-23  Felicián Németh  <address@hidden>
+
+       Jump to the current error in xref with zero prefix arg
+
+       * lisp/progmodes/xref.el (xref--next-error-function): Handle the corner 
case of
+       n == 0.  (Bug#34462)
+
+2019-02-22  Paul Eggert  <address@hidden>
+
+       Avoid some double-rounding of Lisp timestamps
+
+       Also, simplify some time-related Lisp timestamp code
+       while we’re in the neighborhood.
+       * lisp/battery.el (battery-linux-proc-acpi)
+       (battery-linux-sysfs, battery-upower, battery-bsd-apm):
+       * lisp/calendar/timeclock.el (timeclock-seconds-to-string)
+       (timeclock-log, timeclock-last-period)
+       (timeclock-entry-length, timeclock-entry-list-span)
+       (timeclock-find-discrep, timeclock-generate-report):
+       * lisp/cedet/ede/detect.el (ede-detect-qtest):
+       * lisp/completion.el (cmpl-hours-since-origin):
+       * lisp/ecomplete.el (ecomplete-decay-1):
+       * lisp/emacs-lisp/ert.el (ert--results-update-stats-display)
+       (ert--results-update-stats-display-maybe):
+       * lisp/emacs-lisp/timer-list.el (list-timers):
+       * lisp/emacs-lisp/timer.el (timer-until)
+       (timer-event-handler):
+       * lisp/erc/erc-backend.el (erc-server-send-ping)
+       (erc-server-send-queue, erc-handle-parsed-server-response)
+       (erc-handle-unknown-server-response):
+       * lisp/erc/erc-track.el (erc-buffer-visible):
+       * lisp/erc/erc.el (erc-lurker-cleanup, erc-lurker-p)
+       (erc-cmd-PING, erc-send-current-line):
+       * lisp/eshell/em-pred.el (eshell-pred-file-time):
+       * lisp/eshell/em-unix.el (eshell-show-elapsed-time):
+       * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event:org-timestamp):
+       * lisp/gnus/gnus-int.el (gnus-backend-trace):
+       * lisp/gnus/gnus-sum.el (gnus-user-date):
+       * lisp/gnus/mail-source.el (mail-source-delete-crash-box):
+       * lisp/gnus/nnmaildir.el (nnmaildir--scan):
+       * lisp/ibuf-ext.el (ibuffer-mark-old-buffers):
+       * lisp/gnus/nnmaildir.el (nnmaildir--scan):
+       * lisp/mouse.el (mouse--down-1-maybe-follows-link)
+       (mouse--click-1-maybe-follows-link):
+       * lisp/mpc.el (mpc--faster-toggle):
+       * lisp/net/rcirc.el (rcirc-handler-ctcp-KEEPALIVE)
+       (rcirc-sentinel):
+       * lisp/net/tramp-cache.el (tramp-get-file-property):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-file-newer-than-file-p)
+       (tramp-maybe-open-connection):
+       * lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection):
+       * lisp/org/org-clock.el (org-clock-resolve):
+       (org-resolve-clocks, org-clock-in, org-clock-out, org-clock-sum):
+       * lisp/org/org-timer.el (org-timer-start)
+       (org-timer-pause-or-continue, org-timer-seconds):
+       * lisp/org/org.el (org-evaluate-time-range):
+       * lisp/org/ox-publish.el (org-publish-cache-ctime-of-src):
+       * lisp/pixel-scroll.el (pixel-scroll-in-rush-p):
+       * lisp/play/hanoi.el (hanoi-move-ring):
+       * lisp/proced.el (proced-format-time):
+       * lisp/progmodes/cpp.el (cpp-progress-message):
+       * lisp/progmodes/flymake.el (flymake--handle-report):
+       * lisp/progmodes/js.el (js--wait-for-matching-output):
+       * lisp/subr.el (progress-reporter-do-update):
+       * lisp/term/xterm.el (xterm--read-event-for-query):
+       * lisp/time.el (display-time-update, emacs-uptime):
+       * lisp/tooltip.el (tooltip-delay):
+       * lisp/url/url-cookie.el (url-cookie-parse-file-netscape):
+       * lisp/url/url-queue.el (url-queue-prune-old-entries):
+       * lisp/url/url.el (url-retrieve-synchronously):
+       * lisp/xt-mouse.el (xterm-mouse-event):
+       Avoid double-rounding of time-related values.  Simplify.
+       * lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
+       When hoping for the best (unlikely), use a better decoded time.
+       (icalendar--convert-sexp-to-ical): Avoid unnecessary encode-time.
+       * lisp/calendar/timeclock.el (timeclock-when-to-leave):
+       * lisp/cedet/ede/detect.el (ede-detect-qtest):
+       * lisp/desktop.el (desktop-create-buffer):
+       * lisp/emacs-lisp/benchmark.el (benchmark-elapse):
+       * lisp/gnus/gnus-art.el (article-lapsed-string):
+       * lisp/gnus/gnus-group.el (gnus-group-timestamp-delta):
+       * lisp/gnus/nnmail.el (nnmail-expired-article-p):
+       * lisp/gnus/nnmaildir.el (nnmaildir-request-expire-articles):
+       * lisp/nxml/rng-maint.el (rng-time-function):
+       * lisp/org/org-clock.el (org-clock-get-clocked-time)
+       (org-clock-resolve, org-resolve-clocks, org-resolve-clocks-if-idle):
+       * lisp/org/org-habit.el (org-habit-insert-consistency-graphs):
+       * lisp/progmodes/vhdl-mode.el (vhdl-update-progress-info)
+       (vhdl-fix-case-region-1):
+       Use time-since instead of open-coding most of it.
+       * lisp/erc/erc-dcc.el (erc-dcc-get-sentinel):
+       * lisp/erc/erc.el (erc-string-to-emacs-time, erc-time-gt):
+       Now obsolete.  All uses changed.
+       (erc-time-diff): Accept all Lisp time values.
+       All uses changed.
+       * lisp/gnus/gnus-demon.el (gnus-demon-idle-since):
+       * lisp/gnus/gnus-score.el (gnus-score-headers):
+       * lisp/gnus/nneething.el (nneething-make-head):
+       * lisp/gnus/nnheader.el (nnheader-message-maybe):
+       * lisp/gnus/nnimap.el (nnimap-keepalive):
+       * lisp/image.el (image-animate-timeout):
+       * lisp/mail/feedmail.el (feedmail-rfc822-date):
+       * lisp/net/imap.el (imap-wait-for-tag):
+       * lisp/net/newst-backend.el (newsticker--image-get):
+       * lisp/net/rcirc.el (rcirc-handler-317, rcirc-handler-333):
+       * lisp/obsolete/xesam.el (xesam-refresh-entry):
+       * lisp/org/org-agenda.el (org-agenda-show-clocking-issues)
+       (org-agenda-check-clock-gap, org-agenda-to-appt):
+       * lisp/org/org-capture.el (org-capture-set-target-location):
+       * lisp/org/org-clock.el (org-clock-resolve-clock)
+       (org-clocktable-steps):
+       * lisp/org/org-colview.el (org-columns-edit-value)
+       (org-columns, org-agenda-columns):
+       * lisp/org/org-duration.el (org-duration-from-minutes):
+       * lisp/org/org-element.el (org-element-cache-sync-duration)
+       (org-element-cache-sync-break)
+       (org-element--cache-interrupt-p, org-element--cache-sync):
+       * lisp/org/org-habit.el (org-habit-get-faces)
+       * lisp/org/org-indent.el (org-indent-add-properties):
+       * lisp/org/org-table.el (org-table-sum):
+       * lisp/org/org-timer.el (org-timer-show-remaining-time)
+       (org-timer-set-timer):
+       * lisp/org/org.el (org-babel-load-file, org-today)
+       (org-auto-repeat-maybe, org-2ft, org-time-stamp)
+       (org-read-date-analyze, org-time-stamp-to-now)
+       (org-small-year-to-year, org-goto-calendar):
+       * lisp/org/ox.el (org-export-insert-default-template):
+       * lisp/ses.el (ses--time-check):
+       * lisp/type-break.el (type-break-time-warning)
+       (type-break-statistics, type-break-demo-boring):
+       * lisp/url/url-cache.el (url-cache-expired)
+       (url-cache-prune-cache):
+       * lisp/vc/vc-git.el (vc-git-stash-snapshot):
+       * lisp/erc/erc-match.el (erc-log-matches-come-back):
+       Simplify.
+
+2019-02-22  Paul Eggert  <address@hidden>
+
+       Remove some timestamp format assumptions
+
+       Don’t assume that current-time and plain encode-time return
+       timestamps in (HI LO US PS) format.
+       * lisp/gnus/gnus-art.el (article-make-date-line)
+       (article-lapsed-string):
+       * lisp/gnus/gnus-demon.el (gnus-demon-time-to-step):
+       * lisp/gnus/gnus-diary.el (gnus-user-format-function-d):
+       * lisp/gnus/nnmaildir.el (nnmaildir-request-expire-articles):
+       * lisp/net/pop3.el (pop3-uidl-dele):
+       * lisp/org/ox-publish.el (org-publish-sitemap):
+       * lisp/vc/vc-hg.el (vc-hg-state-fast):
+       Simplify and remove assumptions about timestamp format.
+       * lisp/gnus/gnus-art.el (article-lapsed-string):
+       * lisp/gnus/gnus-diary.el (gnus-user-format-function-d):
+       Do not worry about time-subtract returning nil; that's not possible.
+       * lisp/gnus/gnus-diary.el (gnus-user-format-function-d):
+       Avoid race due to duplicate current-time calls.
+       * lisp/vc/vc-hg.el (vc-hg--time-to-integer): Remove; no longer used.
+
+2019-02-22  Alex Branham  <address@hidden>
+
+       which-function: Do not display outdated imenu information
+
+       * lisp/progmodes/which-func.el (which-function): Check
+         `add-log-current-defun' before imenu. Update `imenu--index-alist' if
+         needed. Bug#33695
+
+2019-02-21  Nicholas Drozd  <address@hidden>
+
+       Handle HTML 'ol' start attribute in shr.el
+
+       * lisp/net/shr.el (shr-tag-ol): Don't automatically assume
+       1-indexing for all ordered lists, use <ol> if given.
+
+       * etc/NEWS: Announce change in shr behavior.
+
+       * test/data/shr/ol.html:
+       * test/data/shr/ol.txt: New test data files.
+
+2019-02-21  Stefan Monnier  <address@hidden>
+
+       * lisp/vc/diff-mode.el: Reduce redundancy in diff-syntax-fontify code
+
+       (diff--iterate-hunks): New function extracted from 
diff--font-lock-refined.
+       (diff--font-lock-refined, diff--font-lock-syntax): Use it.
+       (diff--overlay-auto-delete): Rename from 
diff--font-lock-refine--refresh.
+       (diff--font-lock-syntax--refresh): Delete.
+       (diff-syntax-fontify-hunk): Don't completely silence errors.
+       (diff-syntax-fontify-props): Remove `no-init` arg, testing if `file` is
+       nil instead.  Adjust all callers.
+       (diff-syntax-fontify-props): Remove redundant code since we don't
+       modify the buffer.
+
+2019-02-21  Mattias Engdegård  <address@hidden>
+
+       Replace 8-bit-specific case-manipulation
+
+       * lisp/completion.el (cmpl-coerce-string-case):
+       Rewrite case-changing code written for ASCII or latin-1 but not valid
+       in generally today.
+
+2019-02-20  Michael R. Mauger  <address@hidden>
+
+       Correct implementation of `sql-set-product-feature' (Bug#30494).
+
+       * lisp/progmodes/sql.el (sql-add-product): Correct argument spec.
+       (sql-set-product-feature): Handle all cases as intended.
+       (sql-get-product-feature): Fetch varaiable value by `eval'.
+       * test/lisp/progmodes/sql-tests.el (sql-test-feature-value-[a-d]):
+       New test variables.
+       (sql-test-product-feature-harness): New test macro.
+       (sql-test-add-product, sql-test-add-existing-product)
+       (sql-test-set-feature, sql-test-set-indirect-feature)
+       (sql-test-set-existing-feature)
+       (sql-test-set-existing-indirect-feature)
+       (sql-test-set-missing-product, sql-test-get-feature)
+       (sql-test-get-indirect-feature, sql-test-get-missing-product)
+       (sql-test-get-missing-feature)
+       (sql-test-get-missing-indirect-feature): New ERT tests
+
+2019-02-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       ff9c962 ; * lisp/ldefs-boot.el: Update.
+       b4a251c * ; ChangeLog.3 update
+       d3104e3 * etc/AUTHORS: Update.
+       a19bfb7 Remove .art from the default list of ImageMagick extensions
+       6985caa Fix input after setting x-wait-for-event-timeout nil
+       715388a Fix two warnings in eshell.texi
+       d49cdd9 * lisp/minibuffer.el (completion-table-dynamic): Improve docs...
+       5dc4e51 * lisp/emacs-lisp/debug.el (debug-on-variable-change): Doc fi...
+       76ef805 Fix a typo in ELisp manual
+       b5e66f4 Update citations of Internet RFCs
+       57ece2a Fix handling of manpage references divided by hyphenation
+       7ad0cd6 * doc/misc/eshell.texi: Fix some @ref's.
+       12b7940 Fix a typo in lispref/syntax.texi
+
+       # Conflicts:
+       #       lisp/gnus/nnrss.el
+       #       lisp/mail/ietf-drums.el
+
+2019-02-20  Tassilo Horn  <address@hidden>
+
+       Fix missing interactive spec
+
+       * lisp/json.el (json-pretty-print-buffer-ordered): Add interactive
+         spec "P" which has been missing.
+
+2019-02-20  Michael Albinus  <address@hidden>
+
+       Improve connection hand-shaking in tramp-adb.el
+
+       * lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection):
+       Send an additional RET.
+
+2019-02-20  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/sql.el (sql-is-indent-available): Remove
+
+       (sql-indent-enable): Check (fboundp 'sqlind-minor-mode) without
+       wondering which file might provide it.
+       (sql-read-connection): η-reduce 'car'.
+
+2019-02-20  Martin Rudalics  <address@hidden>
+
+       Fix handling of MINIBUF argument in 'walk-window-tree'
+
+       * lisp/window.el (walk-window-tree): Handle MINIBUF argument
+       as advertised when FRAME is minibuffer-only.
+       (window--resize-apply-p, window--sanitize-window-sizes)
+       (delete-other-windows, split-window-sensibly): Call
+       'walk-window-tree' with suitable MINIBUF argument.
+
+2019-02-19  Glenn Morris  <address@hidden>
+
+       * lisp/progmodes/sql.el: Fix use of string-empty-p in recent change.
+
+2019-02-19  Charles A. Roelli  <address@hidden>
+
+       Simplify easy-mmode-define-navigation
+
+       * lisp/emacs-lisp/easy-mmode.el (easy-mmode-define-navigation):
+       Simplify a one-argument call to "or" and use buffer-narrowed-p instead
+       of checking that condition by hand.
+
+2019-02-19  Michael Albinus  <address@hidden>
+
+       Implement access-file in Tramp
+
+       * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
+       * lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
+       * lisp/net/tramp-rclone.el (tramp-rclone-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):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
+       Add `access-file'.
+
+       * lisp/net/tramp-archive.el (tramp-archive-handle-access-file):
+       * lisp/net/tramp.el (tramp-handle-access-file): New defun.
+       (tramp-condition-case-unless-debug): Add declaration.
+       (tramp-handle-insert-directory):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory):
+       Check, whether directory is accessible.
+
+       * test/lisp/net/tramp-archive-tests.el
+       (tramp-archive-test17-insert-directory)
+       (tramp-archive-test18-file-attributes):
+       * test/lisp/net/tramp-tests.el (tramp-test17-insert-directory)
+       (tramp-test18-file-attributes): Test error cases.
+
+2019-02-19  João Távora  <address@hidden>
+
+       cycle-sort-function prevails in completion-all-sorted-completions
+
+       * lisp/minibuffer.el (completion-all-sorted-completions): If
+       completion table has cycle-sort-function, that prevails over other
+       sorting strategies.
+
+2019-02-19  João Távora  <address@hidden>
+
+       switch-to-buffer's completion table uses its own sorting
+
+       * src/minibuf.c (Finternal_complete_buffer): Add
+       Qcycle_sort_function to completion table's metadata.
+       (syms_of_minibuf): New symbol Qcycle_sort_function.
+
+2019-02-18  Michael R. Mauger  <address@hidden>
+
+       Merge branch 'wallet'
+
+       * lisp/progmodes/sql.el: Added password wallet using
+       `auth-source' package.
+       (sql-auth-source-search-wallet): New function.
+       (sql-password-wallet): New variable.
+       (sql-password-search-wallet-function): New variable.
+       (sql-get-login): Handle password wallet search.
+       (sql-product-interactive): Handle password function.
+       * test/lisp/progmodes/sql-tests.el: Test wallet changes.
+       (sql-test-login-params): New test variable.
+       (with-sql-test-connect-harness): New macro to wrap test
+       configuration around calls to `sql-connect'.
+       (sql-test-connect, sql-test-connect-password-func)
+       (sql-test-connect-wallet-server-database)
+       (sql-test-connect-wallet-database)
+       (sql-test-connect-wallet-server): New ERT tests.
+       * etc/NEWS: Updated SQL Mode descriptions.
+
+2019-02-18  Stefan Monnier  <address@hidden>
+
+       * lisp/mh-e/mh-acros.el (mh-defstruct): Minor simplification
+
+       * lisp/erc/erc.el (erc-version-string): Remove, unused
+
+2019-02-18  Michael R. Mauger  <address@hidden>
+
+       * lisp/progmodes/sql.el defensive programming
+
+       (sql-statement-regexp): if 'ansi' dialect is not defined, use "select"
+       (sql-interactive-mode): establish process sentinel iff there is a
+       process. Default values for :prompt-regexp and :prompt-length.
+       (sql-product-interactive): only check process status iff there is a
+       process.
+
+2019-02-18  Stefan Monnier  <address@hidden>
+
+       * lisp/elec-pair.el: Do modify+undo more carefully
+
+       (electric-pair-inhibit-if-helps-balance): Use the undo system
+       instead of undoing by hand.
+
+2019-02-18  Paul Eggert  <address@hidden>
+
+       Speed up cl-list-length
+
+       * lisp/emacs-lisp/cl-extra.el (cl-list-length): Use ‘length’
+       to do the real work; this is simpler and uses a better algorithm.
+
+2019-02-18  Paul Eggert  <address@hidden>
+
+       Minor profiler improvements
+
+       * src/profiler.c (evict_lower_half, record_backtrace)
+       (setup_cpu_timer, cmpfn_profiler, hashfn_profiler):
+       Assume C99.  Use bool for boolean.
+       (timer_getoverrun): Remove; simplify use to not need it.
+       (Fprofiler_cpu_start): Any negative return from setup_cpu_timer fails.
+       (Fprofiler_cpu_stop): Simplify initialization.
+
+2019-02-18  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-lib.el (cl-endp): Move to cl-seq.el
+
+       Use 'cl-check-type'.
+
+2019-02-18  Ken Brown  <address@hidden>
+
+       Use 'timer_getoverrun' on Cygwin when possible
+
+       * configure.ac: Add a check for the 'timer_getoverrun' function.
+
+       * src/profiler.c [CYGWIN] : Define 'timer_getoverrun' as a
+       macro only on versions of Cygwin where it is not already
+       defined as a function.
+
+2019-02-18  Stefan Monnier  <address@hidden>
+
+       * lisp/vc/smerge-mode.el (smerge-change-buffer-confirm): New var
+
+       (smerge-vc-next-conflict): Obey it.  Save buffer before going to
+       the next.  Don't emit message when vc-find-conflicted-file can't find
+       other conflicted file.
+
+       * lisp/vc/vc-hooks.el: Use lexical-binding.
+
+       * lisp/vc/vc.el: Remove redundant :groups.
+       (vc-find-conflicted-file): Autoload.
+
+2019-02-18  Konstantin Kharlamov  <address@hidden>  (tiny change)
+
+       * lisp/vc/smerge-mode.el (smerge-vc-next-conflict): New command
+
+2019-02-18  Michael Albinus  <address@hidden>
+
+       Increase timeout on emba for Tramp
+
+       * test/lisp/net/tramp-tests.el
+       (tramp--test-shell-command-to-string-asynchronously):
+       Increase timeout on emba.
+
+2019-02-18  Paul Eggert  <address@hidden>
+
+       * src/fns.c: Fix comment.
+
+2019-02-17  Paul Eggert  <address@hidden>
+
+       emacs-init-time outputs more digits now
+
+       * lisp/time.el (emacs-init-time): Output more digits;
+       formerly this was always outputting "0.0 seconds" for me
+       because the number of seconds was less than 0.1.
+
+2019-02-17  Paul Eggert  <address@hidden>
+
+       * lisp/emacs-lisp/cl-lib.el (cl-endp): Remove stray 'x.
+
+2019-02-17  Juri Linkov  <address@hidden>
+
+       * lisp/tar-mode.el (tar--try-jka-compr): Remove.  (Bug#34251)
+
+       (tar-extract): Call archive-try-jka-compr instead of tar--try-jka-compr.
+
+       * lisp/arc-mode.el (archive-try-jka-compr): Call set-buffer-multibyte
+       after erase-buffer.
+
+2019-02-17  Alan Mackenzie  <address@hidden>
+
+       Fontify C function identifiers in parentheses correctly (e.g. in lisp.h)
+
+       Fix handling of CC Mode's syntactic WS cache.  Make noise-macro option
+       variables buffer local.
+
+       * lisp/progmodes/cc-engine.el (c-put-is-sws, c-put-in-sws, 
c-remove-is-sws)
+       (c-remove-in-sws c-remove-is-and-in-sws): Add edebug specs.
+       (c-invalidate-sws-region-before): Add a `beg' parameter.  Handle noise
+       macros like other literals.
+       (c-invalidate-sws-region-after-del): Move the adjustment of (cdr
+       c-sws-lit-limits) due to buffer change to c-invalidate-sws-region-after.
+       (c-invalidate-sws-region-after-ins): Move (goto-char end) to the correct
+       place.
+       (c-invalidate-sws-region-after): Adjust (cdr c-sws-lit-limits) due to 
buffer
+       change.  Handle noise macros.
+       (c-backward-sws): Set simple-ws-beg appropriately when the start point 
is in
+       the middle of a noise macro.
+       (c-forward-decl-or-cast-1): Recognize a function identifier being 
declared in
+       parentheses.
+
+       * lisp/progmodes/cc-mode.el (c-before-change): Supply a `beg' argument 
to
+       c-invalidate-sws-region-before.
+
+       * lisp/progmodes/cc-vars.el (c-noise-macro-with-parens-name-re)
+       (c-noise-macro-name-re, c-noise-macro-names, 
c-noise-macro-with-parens-names):
+       Make these buffer local variables.
+
+2019-02-17  Alan Mackenzie  <address@hidden>
+
+       * Put INLINE and ATTRIBUTE_NO_SANITIZE_UNDEFINED into 
c-noise-macro-names
+
+       * .dir-locals.el (entry for c-mode): Put the two strings into
+       c-noise-macro-names.
+
+2019-02-16  Paul Eggert  <address@hidden>
+
+       * src/lread.c (readevalloop): Simplify via suffix_p.
+
+2019-02-16  Eli Zaretskii  <address@hidden>
+
+       * lisp/startup.el (load--user-init-file): Support early-init.elc as 
well.
+
+2019-02-16  Stefan Monnier  <address@hidden>
+
+       * lisp/startup.el: Rename load-user-init-file
+
+       Remove redundant :groups.
+       (startup--load-user-init-file): Rename from load-user-init-file.
+
+2019-02-16  Mattias Engdegård  <address@hidden>
+
+       Prevent over-eager rx character range condensation
+
+       `rx' incorrectly considers character ranges between ASCII and raw bytes 
to
+       cover all codes in-between, which includes all non-ASCII Unicode chars.
+       This causes (any "\000-\377" ?Å) to be simplified to (any "\000-\377"),
+       which is not at all the same thing: [\000-\377] really means
+       [\000-\177\200-\377] (Bug#34492).
+
+       * lisp/emacs-lisp/rx.el (rx-any-condense-range): Split ranges going
+       from ASCII to raw bytes.
+       * test/lisp/emacs-lisp/rx-tests.el (rx-char-any-raw-byte): Add test 
case.
+       * etc/NEWS: Mention the overall change (Bug#33205).
+
+2019-02-16  Paul Eggert  <address@hidden>
+
+       Port tramp-adb to various 'touch' platforms
+
+       * lisp/net/tramp-adb.el (tramp-adb-handle-set-file-times):
+       Try nanoseconds first, then plain seconds, then touch -t.
+
+2019-02-15  Eli Zaretskii  <address@hidden>
+
+       Fix 'early-init-file' value when file is missing
+
+       * lisp/startup.el (command-line): Pass 'early-init.el', with
+       an explicit .el extension, to load-user-init-file.
+       Reported by Radon Rosborough <address@hidden> in
+       http://lists.gnu.org/archive/html/emacs-devel/2019-01/msg00314.html.
+
+2019-02-15  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/cc-engine.el: Remove unneeded require of 'cl'
+
+       Merge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/emacs into 
trunk
+
+       * src/lread.c (readevalloop): Use filename to decide macroexpansion
+
+2019-02-15  Glenn Morris  <address@hidden>
+
+       * test/lisp/textmodes/conf-mode-tests.el (conf-test-align-assignments):
+       Fix whitespace.
+
+2019-02-15  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       f721084 (origin/emacs-26) Avoid errors in erc-dcc.el when erc-dcc-ver...
+       3cba92d Fix faces in compilation messages
+
+2019-02-15  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       25d9fe2 Work for empty MIME attachments (related to bug#34387)
+
+2019-02-15  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       3f4b8e9 * src/data.c (Fmake_local_variable): Fix bug#34318
+       b384996 Minor fixes in ELisp manual wrt syntax-table properties
+       71fc6d2 * admin/notes/emba: New file.
+       3aaa2d2 Fix Hunspell invocation for discovering its dictionaries
+
+       # Conflicts:
+       #       test/src/data-tests.el
+
+2019-02-15  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/compile.el: Remove redundant :groups
+
+       (compilation-shell-minor-mode, compilation-minor-mode): Use :lighter
+       rather than the old positional args.
+       (compilation-next-error): Make "No error here" into a user-error.
+
+2019-02-15  Eli Zaretskii  <address@hidden>
+
+       Make ls-lisp.el behave like Posix hosts when directory doesn't exist
+
+       * lisp/ls-lisp.el (ls-lisp-insert-directory): For a directory
+       that cannot be accessed, signal an error, like insert-directory
+       does on Posix systems.  This causes files-tests.el to pass on
+       MS-Windows.
+
+2019-02-15  Eli Zaretskii  <address@hidden>
+
+       Support ~USER for some names on MS-Windows
+
+       * src/w32.c (getpwnam): Support usernames provided through
+       LOGNAME or USERNAME environment variables, to mimic what
+       editfns.c:init_editfns does.
+
+2019-02-15  Alex Branham  <address@hidden>
+
+       Add basic conf-mode tests
+
+       * test/lisp/textmodes/conf-mode-tests.el: New file with tests for
+       conf-mode.  Mostly taken from conf-mode docstrings.  (Bug#34419)
+
+2019-02-15  Alex Branham  <address@hidden>
+
+       Use lexical binding for conf-mode
+
+       * lisp/textmodes/conf-mode.el: Use lexical binding.
+       (conf-align-assignments, conf-quote-normal, conf-mode-initialize):
+       Doc fix.  (Bug#34419)
+
+2019-02-15  Eli Zaretskii  <address@hidden>
+
+       Add documentation for last change in eww.el
+
+       * doc/misc/eww.texi (Basics): Document the prefix arg effect
+       on "M-x eww".  (Bug#34374)
+
+       * etc/NEWS: Mention the change in behavior of 'eww'.
+
+2019-02-15  İ. Göktuğ Kayaalp  <address@hidden>
+
+       * lisp/net/eww.el (eww): With prefix arg, open url in new buffer.
+
+       Bug#34374
+
+2019-02-14  João Távora  <address@hidden>
+
+       Change scoring strategy for 'flex' completion style
+
+       The previous strategy had problems comparing scores of matches to
+       strings of different lengths.  This one seems slightly more sensible,
+       and uses a new constant `flex-score-match-tightness' instead of the
+       more abstract `flex-score-falloff'.
+
+       It's not completely without problems, and I think it shouldn't count
+       "holes" at the front and at the back, but that needs a different
+       "pattern-to-regexp" conversion in completion-pcm--hilit-commonality.
+
+       (defun test ()
+         (mapcar (lambda (a)
+                   (cons (substring-no-properties a)
+                         (get-text-property 0 'completion-score a)))
+                 (sort (completion-pcm--hilit-commonality
+                         '(prefix "f" star "o" star "o" point)
+                         '("foo"
+                           "barfoobaz"
+                           "foobarbaz"
+                           "barbazfoo"
+                           "fabrobazo"
+                           "foot"
+                           "foto"
+                           "fotttttttttttttttttttttttto"))
+             (lambda (a b)
+               (> (get-text-property 0 'completion-score a)
+                  (get-text-property 0 'completion-score b))))))
+
+       (let ((flex-score-match-tightness 100)) (test))
+       => (("foo" . 1.0)
+           ("foot" . 0.375)
+           ("foto" . 0.375)
+           ("foobarbaz" . 0.16260162601626016) ;; one hole
+           ("barbazfoo" . 0.16260162601626016) ;; one hole
+           ("barfoobaz" . 0.10964912280701755) ;; two holes
+           ("fabrobazo" . 0.10964912280701755) ;; two holes
+           ("fotttttttttttttttttttttttto" . 0.04982561036372696))
+
+       (let ((flex-score-match-tightness 0.1)) (test))
+       => (("foo" . 1.0)
+           ("foot" . 0.375)
+           ("foto" . 0.375)
+           ("barfoobaz" . 0.007751937984496124) ;; two holes
+           ("fabrobazo" . 0.007751937984496124) ;; two holes
+           ("foobarbaz" . 0.00641025641025641)  ;; one hole
+           ("barbazfoo" . 0.00641025641025641)  ;; one hole
+           ("fotttttttttttttttttttttttto" . 0.0004789272030651341))
+
+       * lisp/minibuffer.el (flex-score-falloff): Rename to
+       flex-score-match-tightness.
+       (completion-pcm--hilit-commonality): Update function.
+
+2019-02-14  Mattias Engdegård  <address@hidden>
+
+       Add categories L, R, SPC and . to `rx' doc string
+
+       * lisp/emacs-lisp/rx.el (rx): Add new categories to doc string.
+
+2019-02-14  Mattias Engdegård  <address@hidden>
+
+       Use lexical-binding in rx.el
+
+       * lisp/emacs-lisp/rx.el: Use lexical-binding.
+       (rx-form): Use `let' to bind the dynamic variable `rx-parent' instead
+       of binding it as an argument.
+
+2019-02-14  João Távora  <address@hidden>
+
+       * lisp/minibuffer.el (completion-styles-alist): Tweak flex's docstring
+
+2019-02-14  Michael Albinus  <address@hidden>
+
+       Adapt tramp-adb-handle-set-file-times
+
+       * lisp/net/tramp-adb.el (tramp-adb-handle-set-file-times):
+       Use 'touch -d', 'touch -t' does not seem to work.  Use Universal Time.
+
+2019-02-13  Dmitry Gutov  <address@hidden>
+
+       Rename project-query-replace to project-query-replace-regexp
+
+       * lisp/progmodes/project.el (project-query-replace): Rename to
+       project-query-replace-regexp.
+
+2019-02-13  Gregor Zattler  <address@hidden>
+
+       * doc/misc/eshell.texi (Built-ins): Fix alias description
+
+       Dear eamcs developers, eshells current documentation first states
+       that alias definitions are not saved to an alias file, later that
+       they are saved to an alias file.  I tested it and the latter is
+       correct.
+
+       Please find attached a patch which fixes this.
+
+       Thanks for working on emacs which is really great, Gregor
+
+       >From 1fe51cc769ab7a30d0896fb3d6105c0561243fa7 Mon Sep 17 00:00:00 2001
+       From: Gregor Zattler <address@hidden>
+       Date: Wed, 13 Feb 2019 20:19:38 +0100
+       Subject: * doc/misc/eshell.texi (Built-ins): Fix alias description.
+
+       Bring description of built-in 'alias' in line with (info "(eshell) 
Aliases"),
+       which describes the actual behaviur.
+
+2019-02-13  Paul Eggert  <address@hidden>
+
+       Add missing dependency to ucs-normalize.el
+
+       * lisp/international/ucs-normalize.el:
+       Require regexp-opt when compiling.  Problem reported by hx in:
+       https://lists.gnu.org/r/emacs-devel/2019-02/msg00334.html
+
+2019-02-13  João Távora  <address@hidden>
+
+       Score flex-style completions according to match tightness
+
+       The new completion style needs to score completion matches so that we
+       can use it later on when sorting the completions.  This is because
+       "foo" can flex-match "foobar", "frodo" and "barfromsober" but we
+       probably want "foobar" to appear at the top of the completion list.
+
+       This change introduces a scoring formula and adds scoring hints in the
+       candidate string's `completion-score' property.
+
+       * lisp/minibuffer.el (completion-pcm--hilit-commonality): Propertize
+       completion with 'completion-score
+       (flex-score-falloff): New variable.
+
+2019-02-13  João Távora  <address@hidden>
+
+       Add a new 'flex' completion style
+
+       * lisp/minibuffer.el (completion-styles-alist): Add flex.
+       (completion-substring--all-completions): Accept
+       transform-pattern-fn arg.
+       (completion-flex-all-completions, completion-flex-try-completion)
+       (completion-flex--make-flex-pattern): New functions.
+
+2019-02-13  Eli Zaretskii  <address@hidden>
+
+       Avoid crashes upon C-g in nested invocations of 'read_char'
+
+       * src/keyboard.c (read_char, read_event_from_main_queue):
+       Ensure the global value of getcjmp is restored when the stack
+       is unwound by the likes of 'throw', by calling
+       record_unwind_protect_ptr instead of restoring the value
+       manually.  (Bug#34394)
+       (restore_getcjmp): Argument is now 'void *', to match the
+       signature of record_unwind_protect_ptr.
+
+2019-02-13  Paul Eggert  <address@hidden>
+
+       Don’t assume CURRENT_TIME_LIST
+
+       * lisp/progmodes/cc-cmds.el (c-progress-init)
+       (c-progress-update):
+       * lisp/progmodes/cperl-mode.el (cperl-time-fontification):
+       * lisp/progmodes/vhdl-mode.el (vhdl-update-progress-info)
+       (vhdl-fix-case-region-1):
+       Don’t assume (current-time) returns a list.
+       Fix unlikely bug if we’re called 65536 seconds apart.
+
+2019-02-13  Paul Eggert  <address@hidden>
+
+       Don’t assume CURRENT_TIME_LIST
+
+       * lisp/url/url-util.el (url-lazy-message):
+       Don’t assume (current-time) returns a list.
+       Fix unlikely bug if we’re called 65536 seconds apart.
+
+2019-02-12  Paul Eggert  <address@hidden>
+
+       Simplify nnspool-request-newgroups arithmetic
+
+       * lisp/gnus/nnspool.el (nnspool-request-newgroups):
+       Simplify by compute time stamps as integers, not floats,
+       since integers don’t overflow any more.
+
+2019-02-12  Jackson Ray Hamilton  <address@hidden>
+           Felipe Ochoa  <felipe@fov.space>
+
+       Indent arrows’ expression bodies like function bodies (Bug#25904)
+
+       * lisp/progmodes/js.el (js--continued-expression-p): Don’t confuse
+       ‘=>’ for a ‘>’ operator.
+       (js--line-terminating-arrow-re): New variable.
+       (js--looking-at-broken-arrow-function-p): New function.
+       (js--proper-indentation): Don’t align arrow functions’ expression
+       bodies starting on new lines like list continuations, instead align
+       them like function bodies (js-indent-align-list-continuation need not
+       be nil).
+
+       * test/manual/indent/js.js: Add test for Bug#25904.
+
+2019-02-12  Jackson Ray Hamilton  <address@hidden>
+
+       js-indent-align-list-continuation: Make variable safe
+
+       * lisp/progmodes/js.el (js-indent-align-list-continuation): Indicate
+       variable is safe as a file-local variable.  This fixes the
+       js-indent-align-list-continuation-nil test when run with make.
+
+2019-02-12  Paul Eggert  <address@hidden>
+
+       Make xterm-mouse-truncate-wrap obsolete
+
+       * lisp/xt-mouse.el (xterm-mouse-truncate-wrap): Now obsolete,
+       since we no longer need to worry about integer overflow.
+       (xterm-mouse-event): Use plain ‘truncate’ instead.
+
+2019-02-12  Glenn Morris  <address@hidden>
+
+       * admin/notes/hydra: Small updates.
+
+2019-02-11  Mattias Engdegård  <address@hidden>
+
+       Add missing categories L, R, . and SPC to rx
+
+       * lisp/emacs-lisp/rx.el (rx-categories):
+       Add missing categories L, R, . and SPC.  (Bug#34436)
+
+2019-02-11  Paul Eggert  <address@hidden>
+
+       Simplify url-digest-auth-make-cnonce
+
+       * lisp/url/url-auth.el (url-digest-auth-make-cnonce):
+       Simplify by using encode-time instead of round-tripping
+       through a format-time-string and ‘read’.
+
+2019-02-10  Paul Eggert  <address@hidden>
+
+       Don’t assume CURRENT_TIME_LIST
+
+       Use timestamp accessors instead of delving into a timestamp
+       format that is planned to change in a future version.
+       * lisp/find-lisp.el (find-lisp-format-time):
+       * lisp/gnus/gnus-group.el (gnus-group-set-timestamp):
+       * lisp/gnus/gnus-icalendar.el (gnus-icalendar-show-org-agenda):
+       Use encode-time instead of delving into timestamp format.
+       * lisp/gnus/gnus-group.el (gnus-group-timestamp-delta):
+       Use float-time instead of delving into timestamp format.
+       * lisp/gnus/nnmaildir.el (nnmaildir-request-accept-article):
+       Use format-time-string instead of delving into timestamp format.
+       * lisp/gnus/nnmaildir.el (nnmaildir-request-expire-articles):
+       Use time-less-p instead of delving into timestamp format.
+       * lisp/ido.el (ido-wash-history, ido-file-name-all-completions):
+       Use time-equal-p instead of delving into timestamp format.
+       * lisp/net/tramp-adb.el (tramp-adb-handle-set-file-times):
+       Use format-time-string to generate POSIX ‘test -t’ format instead
+       of timestamp-format-dependent code along with shell arithmetic
+       that can’t possibly do the right thing on a POSIX platform.
+
+2019-02-10  Paul Eggert  <address@hidden>
+
+       Simplify use of encode-time
+
+       Most uses of (apply #'encode-time foo) can now be replaced
+       with (encode-time foo).  Make similar simplifications.
+       * lisp/calendar/time-date.el (date-to-time):
+       * lisp/calendar/timeclock.el (timeclock-when-to-leave)
+       (timeclock-day-base, timeclock-generate-report):
+       * lisp/emacs-lisp/timer.el (timer-set-idle-time):
+       * lisp/eshell/esh-util.el (eshell-parse-ange-ls):
+       * lisp/gnus/gnus-art.el (article-make-date-line):
+       * lisp/gnus/gnus-delay.el (gnus-delay-article)
+       (gnus-delay-send-queue):
+       * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event--decode-datefield):
+       * lisp/gnus/gnus-logic.el (gnus-advanced-date):
+       * lisp/gnus/message.el (message-make-expires-date):
+       * lisp/gnus/nndiary.el (nndiary-compute-reminders):
+       * lisp/mail/ietf-drums.el (ietf-drums-parse-date):
+       * lisp/net/tramp-adb.el (tramp-adb-ls-output-time-less-p):
+       * lisp/org/org-agenda.el (org-agenda-get-timestamps)
+       (org-agenda-get-progress, org-agenda-show-clocking-issues):
+       * lisp/org/org-capture.el (org-capture-set-target-location):
+       * lisp/org/org-clock.el (org-clock-get-sum-start, org-clock-sum)
+       (org-clocktable-steps):
+       * lisp/org/org-colview.el (org-colview-construct-allowed-dates)
+       * lisp/org/org-macro.el (org-macro--vc-modified-time):
+       * lisp/org/org-table.el (org-table-eval-formula):
+       * lisp/org/org.el (org-current-time, org-store-link)
+       (org-time-today, org-read-date, org-read-date-display)
+       (org-display-custom-time, org-time-string-to-time)
+       (org-timestamp-change, org-timestamp--to-internal-time):
+       * lisp/url/url-dav.el (url-dav-process-date-property):
+       * lisp/vc/vc-cvs.el (vc-cvs-annotate-current-time)
+       (vc-cvs-parse-entry):
+       Simplify use of encode-time.
+       * lisp/org/org-clock.el (org-clock-get-clocked-time):
+       (org-clock-resolve, org-resolve-clocks, org_clock_out)
+       (org-clock-update-time-maybe):
+       Avoid some rounding problems with encode-time and float-time.
+       * lisp/org/org-clock.el (org-clock-in, org-clock-update-time-maybe):
+       * lisp/org/org-colview.el (org-columns--age-to-minutes):
+       * lisp/org/org.el (org-get-scheduled-time, org-get-deadline-time)
+       (org-add-planning-info, org-2ft, org-time-string-to-absolute)
+       (org-closest-date):
+       Use org-time-string-to-time instead of doing it by hand with
+       encode-time.
+       * lisp/org/org.el (org-current-time): Simplify rounding.
+       (org-read-date): Avoid extra trip through encode-time.
+
+2019-02-10  Paul Eggert  <address@hidden>
+
+       Fix doc string treatment of integer overflow
+
+       * lisp/calendar/cal-dst.el (calendar-dst-find-startend):
+       Fix doc string.
+
+2019-02-10  Paul Eggert  <address@hidden>
+
+       Prefer encode-time to its alias
+
+       * lisp/calendar/icalendar.el, lisp/calendar/timeclock.el:
+       * lisp/emacs-lisp/timer.el, lisp/gnus/gnus-delay.el:
+       * lisp/gnus/gnus-sum.el, lisp/gnus/nndiary.el:
+       * lisp/gnus/nnrss.el, lisp/net/newst-backend.el:
+       * lisp/net/rcirc.el, lisp/obsolete/xesam.el:
+       * lisp/org/org-agenda.el, lisp/org/org-clock.el:
+       * lisp/org/org-element.el, lisp/org/org-timer.el:
+       * lisp/org/org.el, lisp/progmodes/flymake.el:
+       * lisp/url/url-cache.el, lisp/url/url-cookie.el:
+       Use encode-time instead of its alias seconds-to-time.
+
+2019-02-10  Stefan Monnier  <address@hidden>
+
+       * test/lisp/emacs-lisp/package-tests.el: Allow extra extras
+
+       (package-test--compatible-p): New function.
+       (package-test-desc-from-buffer, package-test-install-single): Use it.
+       (package-x-test-upload-buffer, package-x-test-upload-new-version):
+       Don't burp in presence of extra extras.
+
+2019-02-10  Mattias Engdegård  <address@hidden>
+
+       Document that [:cntrl:] does not match DEL (Bug#34391)
+
+       * doc/lispref/searching.texi (Character Classes):
+       * lisp/emacs-lisp/rx.el (rx):
+       Document that [:cntrl:] excludes DEL.
+       * test/src/regex-emacs-tests.el (regex-tests-PTESTS-whitelist):
+       Swap misplaced comments and fix wrong code for DEL.
+
+2019-02-10  João Távora  <address@hidden>
+
+       Properly remove stale Flymake diagnostics on :region reports
+
+       Among other bugs fixed, modifying a list structure while iterating it
+       is a no-no.  This would again cause duplicate diagnostics.  See
+       https://github.com/joaotavora/eglot/issues/223 for an example.
+
+       * lisp/progmodes/flymake.el (Version): Bump to 1.0.5
+       (flymake--handle-report): Use cl-loop.
+
+2019-02-10  Eli Zaretskii  <address@hidden>
+
+       Unbreak the Cygw32 build
+
+       * src/emacs.c (main) [HAVE_NTGUI]: Remove code that is only
+       for WINDOWSNT or condition it on WINDOWSNT.  (Bug#34409)
+
+2019-02-10  João Távora  <address@hidden>
+
+       Cleanup stale diagnostics on Flymake restart
+
+       Not doing so would cause duplicate diagnostics.  See
+       https://github.com/joaotavora/eglot/issues/223 for an example.
+
+       * lisp/progmodes/flymake.el (Version): 1.0.4
+       (flymake-mode): Cleanup overlays before starting Flymake.
+
+2019-02-09  Paul Eggert  <address@hidden>
+
+       * lisp/ecomplete.el (ecomplete-add-item): Simplify.
+
+2019-02-09  Paul Eggert  <address@hidden>
+
+       Don’t assume CURRENT_TIME_LIST
+
+       * lisp/gnus/gnus-delay.el (gnus-delay-send-queue):
+       * lisp/gnus/nnmail.el (nnmail-activate):
+       * lisp/mh-e/mh-alias.el (mh-alias-tstamp):
+       * lisp/net/newst-backend.el (newsticker--cache-item-compare-by-time):
+       Use time-less-p instead of assuming timestamp format.
+
+2019-02-08  Alex Branham  <address@hidden>
+
+       Fix byte compile warnings in checkdoc.el
+
+       * lisp/emacs-lisp/checkdoc.el (checkdoc-file-comments-engine): Fix
+         byte compile warnings by requiring lisp-mnt top-level, remove XEmacs
+         compatibility code.
+
+       Bug#34290
+
+2019-02-08  Tassilo Horn  <address@hidden>
+
+       Impl. json-pretty-print with replace-region-contents + minimization
+
+       * lisp/json.el (json-pretty-print): Use the new
+         replace-region-contents.  Add prefix arg for minimzation.
+       (json-pretty-print-buffer): Add prefix arg for minimzation.
+       (json-pretty-print-buffer-ordered): Add prefix arg for minimzation.
+       (json-pretty-print-ordered): Add prefix arg for minimzation.
+
+2019-02-08  Tassilo Horn  <address@hidden>
+
+       Add new function replace-buffer-contents
+
+       * src/editfns.c (Freplace_buffer_contents): Use lower value of
+         too_expensive and enable heuristic.
+       * lisp/subr.el (replace-region-contents): New convenient wrapper
+         function around replace-buffer-contents.
+
+2019-02-08  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/package.el: Improve generated foo-pkg.el
+
+       (package-generate-description-file): Make first line more informative.
+       (package-buffer-info): Include keywords, to more closely match
+       elpa.git's archive--metadata.
+
+2019-02-08  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       0cd7b52 (origin/emacs-26) Minor improvements to do strings in callproc.c
+       b8c7017 Improve documentation of 'date-to-time' and 'parse-time-string'
+       46095a7 Fix downloading of URLs that end in a slash
+       3b60a0a * doc/misc/eww.texi (Basics): Fix eww keybindings.  (Bug#34291)
+       8e22025 Fix process-thread docstring
+       459b669 Fix failures of vc-find-revision with non-ASCII file names
+       e9ff190 * doc/lispref/tips.texi (Documentation Tips): Fix quotes.  (B...
+       3e49a08 ; * src/coding.h (struct coding_system): Fix a typo in a comm...
+       b657286 Add documentation for tabulated-list functions in the elisp m...
+       6e0f67b Fix URL in ucs-normalize.el
+       ce3ae1f * etc/PROBLEMS: Amend entry for profiler bug #34235 to mentio...
+
+       # Conflicts:
+       #       doc/lispref/os.texi
+
+2019-02-08  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       9d87ba1 * etc/PROBLEMS: Mention profiler-report bug (Bug#34235).
+
+2019-02-08  Robert Pluim  <address@hidden>
+
+       Unify three font info structures
+
+       * src/ftfont.h (struct font_info): New type, unifies similar types
+       from ftcrfont.c, ftfont.c and xftfont.c
+       * src/xftfont.c (struct xftfont_info): Remove, replace with struct
+       font_info.  Adjust all uses.
+       * src/ftcrfont.c (struct ftcrfont_info): Likewise.
+       * src/ftfont.c (struct ftfont_info): Likewise.
+
+       (cherry picked from commit 9e0d69b5a17a0fa3b0dd099a51584a85f3ddb5bf)
+
+2019-02-08  Robert Pluim  <address@hidden>
+
+       Unify three font info structures
+
+       * src/ftfont.h (struct font_info): New type, unifies similar types
+       from ftcrfont.c, ftfont.c and xftfont.c
+       * src/xftfont.c (struct xftfont_info): Remove, replace with struct
+       font_info.  Adjust all uses.
+       * src/ftcrfont.c (struct ftcrfont_info): Likewise.
+       * src/ftfont.c (struct ftfont_info): Likewise.
+
+2019-02-07  Eli Zaretskii  <address@hidden>
+
+       Minor fixes for last change
+
+       * etc/NEWS: Announce the change in EWW download behavior.
+
+       * lisp/net/eww.el (eww-download): Doc fix.  (Bug#34291)
+
+2019-02-07  Nick Drozd  <address@hidden>
+
+       Download of URL in EWW falls back on current URL
+
+       * lisp/net/eww.el (eww-download): If there's no URL at point,
+       download the current URL instead.  Previous behavior was to
+       signal an error if there was no URL at point.  (Bug#34291)
+       * doc/misc/eww.texi (Basics): Update documentation.
+
+2019-02-07  Eli Zaretskii  <address@hidden>
+
+       Minor fix for unexec builds.
+
+       * src/emacs.c (main): Fix assertions and logic for pdump
+       loading in builds that can both unexec and pdump.
+
+2019-02-07  Eli Zaretskii  <address@hidden>
+
+       Avoid segfaults on MS-Windows in enexec'ed Emacs
+
+       * src/emacs.c (main) [WINDOWSNT]: Fix logic of using dynamic
+       heap in unexec case.  (Bug#34277)
+
+2019-02-07  Dmitry Gutov  <address@hidden>
+
+       Avoid unnecessary consing in project--files-in-directory
+
+       * lisp/progmodes/project.el (project--remote-file-names): New function.
+       (project--files-in-directory): Use it.
+
+2019-02-07  Ian Dunn  <address@hidden>
+
+       Add vc-hg-revert-switches
+
+       * lisp/vc/vc-hg.el (vc-hg-revert-switches): New option.
+       (vc-hg-revert): Use it.
+
+2019-02-07  Dmitry Gutov  <address@hidden>
+
+       Rename multifile.el to fileloop.el
+
+       * lisp/multifile.el: Rename to fileloop.el as discussed in
+       https://lists.gnu.org/archive/html/emacs-devel/2018-12/msg00475.html.
+       Update symbol prefixes and all callers
+
+2019-02-07  Aurelien Aptel  <address@hidden>
+
+       Revert "Fix typo in add-hook doc string"
+
+       This reverts commit 7fd2ad755e7fa599697648ac4c971e834de75bf3.
+
+2019-02-06  Juri Linkov  <address@hidden>
+           João Távora  <address@hidden>
+
+       Make window choice in xref commands configurable
+
+       Previously, it wasn't easy to tell xref.el commands like
+       xref-find-definitions or xref-find-definitions-other-window how to
+       choose a window for the *xref* buffer or how to find windows for
+       displaying the results after choosing a candidate.  This patch makes
+       that task easier, but keeps the current behaviour intact.
+
+
+       * lisp/progmodes/xref.el (xref--show-pos-in-buf): Simplify.
+
+2019-02-06  Robert Pluim  <address@hidden>
+
+       Add dwim function for inserting @ref variants
+
+       * lisp/textmodes/texinfo.el (texinfo-insert-dwim-@ref): New function.
+       Insert @ref variant based on surrounding context.
+       (texinfo-mode-map): Add binding for texinfo-insert-dwim-@ref.
+
+       * etc/NEWS: Describe new texinfo dwim reference functionality.
+
+2019-02-06  Aurelien Aptel  <address@hidden>
+
+       Fix typo in add-hook doc string
+
+       * lisp/subr.el (add-hook): fix typo in doc string.
+
+2019-02-06  Eli Zaretskii  <address@hidden>
+
+       Unbreak interactive invocation of temacs on MS-Windows
+
+       * src/emacs.c (main) [WINDOWSNT]: Allow to invoke temacs
+       interactively without the --temacs= option.
+
+2019-02-06  Eli Zaretskii  <address@hidden>
+
+       Prevent segfaults when running inside docker
+
+       * src/coding.c (syms_of_coding): New symbol Qus_ascii.
+       (reset_coding_after_pdumper_load): Call
+       set-safe-terminal-system-internal to set up
+       safe_terminal_coding after restoring from pdump file.
+       Reported by Philippe Vaucher <address@hidden>.
+
+2019-02-06  Michael Albinus  <address@hidden>
+
+       Fix Bug#34196
+
+       * lisp/autorevert.el (auto-revert-buffers): Handle buffers with a
+       remote default-directory only, when they are connected.  (Bug#34196)
+
+       * lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection):
+       Set "connected" property.
+
+       * lisp/net/tramp.el (tramp-process-actions): Revert change from
+       2019-02-04.  Bug#34196 will be solved in autorevert.el.
+
+2019-02-05  Robert Pluim  <address@hidden>
+
+       Fix network stream tests
+
+       * test/lisp/net/network-stream-tests.el
+       (make-ipv6-tcp-server-with-unspecified-port): Skip if IPv6 is not 
available.
+       (make-ipv6-tcp-server-with-specified-port): Likewise.
+       (echo-server-with-local-ipv6): Likewise.
+
+2019-02-04  Glenn Morris  <address@hidden>
+
+       * make-dist: Prefer a temporary manifest file.
+
+       This prevents the manifest cluttering up the build tree,
+       and possibly getting stale if --no-update is used.
+
+2019-02-04  Eli Zaretskii  <address@hidden>
+
+       Avoid segfaults due to image cache being cleared during redisplay
+
+       * src/xdisp.c (redisplay_internal): Set the
+       inhibit_clear_image_cache flag of a frame while its windows
+       are being redisplayed, and reset the flag after the call top
+       update_frame returns.
+       * src/image.c (clear_image_cache): Do nothing if the frame's
+       inhibit_clear_image_cache flag is set.  (Bug#34256)
+       * src/frame.h (struct frame): New flag inhibit_clear_image_cache.
+
+2019-02-04  Robert Pluim  <address@hidden>
+
+       Don't map imaps to 993 anymore except on old Windows versions
+
+       'open-network-stream' will do the imaps service lookup itself, and
+       using 993 forced the user to use the numeric value in .authinfo for
+       certificate lookups.
+
+       * lisp/gnus/nnimap.el (nnimap-map-port): Only do mapping for Windows
+       XP or earlier.
+       * etc/NEWS: Describe imaps mapping change.
+
+2019-02-04  Eli Zaretskii  <address@hidden>
+
+       Support (locale-info 'paper) on MS-Windows
+
+       * src/w32proc.c (LOCALE_IPAPERSIZE): Define if undefined.
+       (nl_langinfo): Support _NL_PAPER_WIDTH and _NL_PAPER_HEIGHT
+       like glibc does.
+       * src/fns.c (Flocale_info): Update the doc string.
+
+       * nt/inc/langinfo.h: Add _NL_PAPER_WIDTH and _NL_PAPER_HEIGHT
+       to the enumeration.
+       (_NL_PAPER_WIDTH, _NL_PAPER_HEIGHT): Define namesake macros.
+       * nt/mingw-cfg.site (emacs_cv_langinfo__nl_paper_width): Set
+       to 'yes'.
+
+       * doc/lispref/nonascii.texi (Locales): Update the
+       documentation of 'locale-info' for the argument of 'paper'.
+
+       * etc/NEWS: Update the locale-info entry.
+
+2019-02-04  Federico Tedin  <address@hidden>
+
+       Allow doc-view to open password-protected PDF files (bug#33684)
+
+       * lisp/doc-view.el (doc-view-ghostscript-options): Removed "-sDEVICE"
+       option.
+       (doc-view-ghostscript-device): New customizable variable, passed as
+       "-sDEVICE" option to GhostScript.
+       (doc-view-pdf-password-protected-ghostscript-p): New function.
+       (doc-view-pdf->png-converter-ghostscript): Can now open
+       password-protected PDF files.
+       (doc-view-pdfdraw-program-subcommand): New function.
+       (doc-view-pdf-password-protected-pdfdraw-p): New function.
+       (doc-view-pdf->png-converter-mupdf): Can now open password-protected
+       PDF files.
+       * etc/NEWS: Mention new doc-view-mode feature.
+
+2019-02-04  Michael Albinus  <address@hidden>
+
+       Fix Bug#34196
+
+       * lisp/net/tramp.el (tramp-process-actions): Disable 
`global-auto-revert-mode'
+       temporarily.  (Bug#34196)
+
+2019-02-04  Michael Albinus  <address@hidden>
+
+       Improve Tramp host name completion
+
+       * lisp/net/tramp-rclone.el (tramp-default-host-alist): Add empty host.
+
+       * lisp/net/tramp.el (tramp-parse-auth-sources): Require :port.
+
+2019-02-04  Robert Pluim  <address@hidden>
+
+       Use IPv6 localhost when family is 'ipv6
+
+       This fixes Bug#34193
+
+       * src/process.c (Fmake_network_process): Explicitly use ::1 when
+       using IPv6 with 'local.  Update docstring.
+
+       * test/lisp/net/network-stream-tests.el
+       (make-ipv6-tcp-server-with-unspecified-port):
+       (make-ipv6-tcp-server-with-specified-port): Test creating ipv6
+       local server.
+       (make-server): Add optional family argument, default ipv4
+       (echo-server-with-local-ipv4): Test connecting to 'local ipv4
+       (echo-server-with-local-ipv6): Test connecting to 'local ipv6
+
+       * doc/lispref/processes.texi (Network Processes): Describe
+       behavior when using 'local.
+
+       * etc/NEWS: Document new 'make-network-process' behavior when
+       connecting to 'local with ipv6.
+
+2019-02-03  Juri Linkov  <address@hidden>
+
+       * lisp/tar-mode.el (tar-extract): Call tar--try-jka-compr (bug#34251)
+
+       * lisp/tar-mode.el (tar--try-jka-compr): New function copied from
+       archive-try-jka-compr.
+
+       * lisp/arc-mode.el (archive-try-jka-compr): Set buffer-multibyte to t
+       instead of let-binding coding-system-for-read to 'no-conversion.
+
+       * test/data/decompress/tg.tar.gz:
+       * test/data/decompress/zg.zip: New fixtures.
+
+       * test/lisp/arc-mode-tests.el (arc-mode-test-zip-extract-gz):
+       * test/lisp/tar-mode-tests.el (tar-mode-test-tar-extract-gz): New tests.
+
+       * test/lisp/vc/diff-mode-tests.el (diff-mode-test-font-lock)
+       (diff-mode-test-font-lock-syntax-one-line): Skip unless shell and
+       diff executables are found.
+
+2019-02-03  Michael Albinus  <address@hidden>
+
+       Work on accept-process-output in Tramp
+
+       * lisp/net/tramp.el (tramp-accept-process-output): Rework timer
+       handling.
+       (tramp-call-process): Adapt VEC if nil.
+       (tramp-interrupt-process): Use `tramp-accept-process-output'.
+       (tramp-process-lines): New defun.
+       * lisp/net/tramp-adb.el (tramp-adb-parse-device-names):
+       * lisp/net/tramp-rclone.el (tramp-rclone-parse-device-names): Use it.
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch):
+       Use timeout 0 in `tramp-accept-process-output'.
+
+       * test/lisp/net/tramp-tests.el (tramp--test-timeout-handler): Move up.
+       (tramp-test29-start-file-process, tramp-test30-make-process)
+       (tramp-test32-shell-command)
+       (tramp--test-shell-command-to-string-asynchronously): Use it.
+       (tramp-test35-remote-path): Suppress warning.
+       (tramp--test-asynchronous-requests-timeout): New defconst.
+       (tramp-test43-asynchronous-requests): Skip if not the only test.
+       Use `tramp--test-asynchronous-requests-timeout'.
+       Remove instrumentation.  Use `start-process-shell-command' for
+       watchdog.  Add timeout in timer function.  Print status messages.
+       Remove file operations from sentinel.  Suppress timers in
+       `accept-process-output'.
+
+2019-02-02  Paul Eggert  <address@hidden>
+
+       Support (locale-info 'paper) on GNU platforms
+
+       * configure.ac (HAVE_LANGINFO__NL_PAPER_WIDTH): New macro.
+       * src/fns.c (Flocale_info) [HAVE_LANGINFO__NL_PAPER_WIDTH]:
+       Get paper width and height from locale.
+
+2019-02-02  Juri Linkov  <address@hidden>
+
+       * test/lisp/vc/diff-mode-tests.el (diff-mode-test-font-lock): New test.
+
+       (diff-mode-test-font-lock-syntax-one-line): New test for one line.
+
+       * test/data/vc/diff-mode/hello_world.c:
+       * test/data/vc/diff-mode/hello_world_1.c:
+       * test/data/vc/diff-mode/hello_emacs.c:
+       * test/data/vc/diff-mode/hello_emacs_1.c: New fixtures.
+
+       * lisp/vc/diff-mode.el (diff-syntax-fontify): Move remove-overlays
+       from diff-syntax-fontify-hunk.  (Bug#33567)
+       (diff-syntax-fontify-hunk): Remove VISIT arg from insert-file-contents.
+
+2019-02-02  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-02-02 dtoastr, ftoastr, ldtoastr: port to c-strtod changes
+       2019-02-01 c-strtod, c-strtold: use the bug fixes
+       2019-01-30 strtold: New module
+       * doc/misc/texinfo.tex, lib/ftoastr.c, lib/regexec.c, lib/stdlib.in.h:
+       * m4/stdlib_h.m4:
+       Copy from Gnulib.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * m4/c-strtod.m4: Remove.
+
+2019-02-02  Paul Eggert  <address@hidden>
+
+       Fix unlikely user-full-name integer overflow
+
+       * src/editfns.c (Fuser_full_name):
+       Don’t assume uid fits into fixnum.
+
+2019-02-02  Eli Zaretskii  <address@hidden>
+
+       Prevent segfault in bootstrap-emacs on MinGW
+
+       * src/emacs.c (main) [WINDOWSNT]: Fix logic of determining by
+       argv[0] whether to use the static heap.  (Bug#34277)
+
+2019-02-02  Felicián Németh  <address@hidden>
+
+       Fix Bug#34221
+
+       * lisp/progmodes/project.el (project--files-in-directory):
+       Support remote files.  (Bug#34221)
+
+2019-02-02  Martin Rudalics  <address@hidden>
+
+       Fix window splitting behavior of 'display-buffer-at-bottom'
+
+       * lisp/window.el (display-buffer-at-bottom): Never split an
+       arbitrary bottom window.  Try to split the frame's main
+       window instead (Bug#33870).
+
+2019-02-02  Martin Rudalics  <address@hidden>
+
+       Fix bugs caused by running window change functions during redisplay
+
+       * src/xdisp.c (redisplay_internal): Run window change
+       functions before updating the display so changes induced by
+       these functions can get caught by redisplay (Bug#34138).
+       * src/window.c (run_window_change_functions): Bind
+       Qinhibit_redisplay to avoid that the minibuffer window gets
+       resized while running window change functions (Bug#34179,
+       Bug#34260).
+
+2019-02-01  Glenn Morris  <address@hidden>
+
+       * .gitignore: Add MANIFEST.
+
+       * make-dist: Avoid "Bad fd number" error with dash.
+
+2019-02-01  Glenn Morris  <address@hidden>
+
+       * make-dist: Remove references to src/stamp-h.in.
+
+       This file was removed two years ago in 2f89350.
+
+2019-02-01  Glenn Morris  <address@hidden>
+
+       * make-dist: Fix --no-update with no pre-existing MANIFEST.
+
+2019-02-01  Paul Eggert  <address@hidden>
+
+       Restore SETFATTR substitution
+
+       * configure.ac (SETFATTR): Restore the AC_SUBST of this
+       that was inadvertently removed when pdumper support was added.
+       Need for ./configure --with-dumping=unexec on Fedora 29.
+
+2019-02-01  Paul Eggert  <address@hidden>
+
+       Make make-dist more automatic
+
+       Simplify make-dist maintenance by having it generate its
+       list of files more automatically.  Put the list of distributed
+       files into a file MANIFEST that can be used in the unusual
+       situations when you’re making a distribution without having
+       access to a Git repository.
+       * make-dist (top_level_ChangeLog): Now nonempty if the
+       distribution tarball will contain a ChangeLog, instead of
+       being nonempty when a ChangeLog is requested, Git is present
+       and a readable ChangeLog exists.  The new interpretation makes
+       the script a bit easier to follow.
+       (possibly_non_vc_files, info_files, mkdir_verbose)
+       (file_to_skip, MANIFEST_subdir_sed, tempsubdirs):
+       New variables.
+       (MANIFEST): Update and use this file, which now records what
+       files are distributed.
+       (top_level, subdir, files, file): Remove.
+
+2019-02-01  Glenn Morris  <address@hidden>
+
+       * configure.ac (emacs_config_features): Add pdumper and unexec.
+
+2019-02-01  Paul Eggert  <address@hidden>
+
+       Rename CANNOT_DUMP to HAVE_UNEXEC
+
+       * configure.ac (CANNOT_DUMP): Remove.  All uses removed,
+       or changed to the negative of with_unexec.
+       (HAVE_UNEXEC): New macro.  All uses of CANNOT_DUMP changed
+       to the negative of this macro.
+
+2019-02-01  Paul Eggert  <address@hidden>
+
+       Omit some linker hacks if not doing unexec
+
+       * configure.ac (LDFLAGS, LD_SWITCH_SYSTEM_TEMACS):
+       Omit some funky linker flags if not supporting unexec.
+
+       Use macOS linker hacks only if needed
+       * configure.ac: On darwin, link with -fno-pie and -headerpad
+       only if configuring with unexec.
+
+2019-02-01  Paul Eggert  <address@hidden>
+
+       Stop using macOS -prebind option
+
+       * configure.ac (LD_SWITCH_SYSTEM_TEMACS): Remove -prebind,
+       which has been obsolete and ineffective since Mac OS X 10.4 (2005),
+       which was never necessary for correct operation, and which now
+       generates annoying warnings.  Problem reported by Robert Pluim in:
+       https://lists.gnu.org/r/emacs-devel/2019-01/msg00761.html
+
+2019-02-01  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       6c6b540711 Correct the docs of inserting kmacro counter
+       32555daf4c * doc/misc/calc.texi (Algebraic Tutorial): Fix a typo.  (B...
+
+2019-02-01  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       7ba8f80398 Avoid errors in 'rmail-get-new-mail'
+       9c8412a0b8 Fix process-contact bug with TCP connections
+
+       # Conflicts:
+       #       src/process.c
+
+2019-02-01  Mattias Engdegård  <address@hidden>
+
+       Make the rx operators \? and \?? behave correctly
+
+       * lisp/emacs-lisp/rx.el (rx-kleene):
+       Treat \? and \?? like ? and ?? (Bug#34100).
+       * test/lisp/emacs-lisp/rx-tests.el: Add tests for all repetition 
operators.
+
+2019-01-31  Dmitry Gutov  <address@hidden>
+
+       js--re-search-backward-inner: Fix infloop
+
+       Fix JS indentation infloop reported in
+       https://github.com/mooz/js2-mode/issues/513.
+
+       * lisp/progmodes/js.el (js--re-search-backward-inner): Account for
+       multiline string literals.
+       * test/manual/indent/js.js: New test example.
+
+2019-01-31  Paul Eggert  <address@hidden>
+
+       Prefer static to extern where either will do
+
+       * src/charset.c (charset_table_size):
+       * src/pdumper.c (dump_private):
+       * src/sysdep.c (init_sigsegv):
+       * src/window.c (old_selected_window):
+       Now static.
+       * src/charset.c (charset_table_size):
+       Now int, since the value always fits in int.
+       * src/gtkutil.c (xg_gtk_initialized): Now present only if
+       HAVE_XWIDGETS, to make it clearer that this is an xwidgets
+       hack.  All uses changed.
+       * src/lread.c (ndefsubr): Remove; unused.
+       * src/pdumper.h: Use usual GNU indenting style for functions,
+       since my static-vs-extern checking hack relies on it.
+       (dump_public): Always declare; simpler and doesn’t hurt.
+       (pdumper_handle_page_fault): Remove unused decl.
+
+2019-01-31  Paul Eggert  <address@hidden>
+
+       Widen modiff counts to avoid wraparound
+
+       Widen modification counts to at least 64 bits, to make
+       wraparound practically impossible.
+       * doc/lispref/buffers.texi (Buffer Modification):
+       Don’t say the modification-count can wrap around.
+       * src/buffer.c (Frestore_buffer_modified_p, Fbuffer_swap_text)
+       (modify_overlay):
+       * src/insdel.c (insert_1_both, insert_from_string_1)
+       (insert_from_gap, insert_from_buffer_1)
+       (adjust_after_replace, replace_range, replace_range_2)
+       (del_range_2, modify_text):
+       * src/textprop.c (modify_text_properties):
+       Use modiff_incr instead of incrementing directly.
+       (Fbuffer_modified_tick, Fbuffer_chars_modified_tick):
+       Don’t assume modification counts fit into fixnums.
+       * src/buffer.h (struct buffer_text, struct buffer):
+       * src/cmds.c (internal_self_insert):
+       * src/fileio.c (Finsert_file_contents):
+       * src/indent.c (last_known_column_modified):
+       * src/keyboard.c (command_loop_1):
+       * src/marker.c (cached_modiff):
+       * src/syntax.c (find_start_modiff, parse_sexp_propertize)
+       (find_defun_start):
+       * src/window.h (struct window):
+       Use modiff_count for modification counts.
+       * src/editfns.c (Fsubst_char_in_region):
+       Copy instead of incrementing modification counts,
+       since integer overflow checking is not needed here.
+       * src/lisp.h (modiff_count): New type.
+       (modiff_incr, modiff_to_integer): New inline functions.
+       * src/pdumper.c (dump_buffer): Update hash.
+
+2019-01-31  Paul Eggert  <address@hidden>
+
+       Minor pdumper simplification
+
+       * src/pdumper.c (dump_roots, pdumper_load): Simplify initialization.
+       (dump_bitset_init, pdumper_load): Omit unnecessary assignments.
+       (dump_bitset_destroy): Remove; never called.  All callers removed.
+       (dump_do_dump_relocation, pdumper_load): Add FIXME comment.
+       (pdumper_load): Simplify by assuming C99.  Remove unused local.
+
+2019-01-30  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       b94d767 (origin/emacs-26) Minor copyedits in last manual change
+       73508e6 Improve documentation of face numbers
+       bf235ce * doc/emacs/custom.texi (Authentication): Refer to the "Help ...
+       ceccb3c New node Authentication in the Emacs manual
+       9078f34 Fix a loop in c-fl-decl-start.  This fixes bug #34186.
+       a177fe7 Fix LaTeX output of month and day from cal-tex.el
+       90177d7 Avoid elisp crash for OpenPGP User IDs with no e-mail address
+       68e55a0 image-mode: Do not use default scaling (bug#33990)
+       b6c762a create-image: Expand documentation (bug#33990)
+       928d342 Improve documentation of 'isearch-filter-predicate'
+       9034dd6 Fix cursor column positioning on Grep hits
+
+       # Conflicts:
+       #       doc/emacs/custom.texi
+
+2019-01-30  Michael Albinus  <address@hidden>
+
+       Fix problem in filenotify-tests
+
+       * lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
+       Adapt `accept-process-output' argument.
+
+       * test/lisp/filenotify-tests.el (file-notify--deftest-remote):
+       Remove :unstable tag.
+
+2019-01-30  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-rclone.el (tramp-rclone-mounted-p): Fix thinko.
+
+2019-01-30  Michael Albinus  <address@hidden>
+
+       * test/lisp/net/tramp-tests.el
+
+       (tramp-test43-asynchronous-requests): Tag it :unstable also for
+       emba.  Adapt `accept-process-output' arguments.
+
+2019-01-29  Michael Albinus  <address@hidden>
+
+       * test/lisp/filenotify-tests.el (file-notify--deftest-remote):
+
+       Tag as :unstable.
+
+2019-01-29  Robert Pluim  <address@hidden>
+
+       Move some descriptions to the right section
+
+       * etc/NEWS: Move ibuffer and gnus change descriptions to
+       mode-specific section.
+
+2019-01-29  Eli Zaretskii  <address@hidden>
+
+       Fix documentation of pdump file installation
+
+       * doc/lispref/internals.texi (Building Emacs): Correct the
+       directory where the pdump file is installed.  (Bug#34244)
+
+2019-01-29  Michael Albinus  <address@hidden>
+
+       Adapt `accept-process-output' arguments in tramp-tests
+
+       * test/lisp/net/tramp-tests.el (tramp-test29-start-file-process)
+       (tramp-test30-make-process, tramp-test31-interrupt-process)
+       (tramp-test32-shell-command)
+       (tramp--test-shell-command-to-string-asynchronously)
+       (tramp-test43-asynchronous-requests):
+       Adapt `accept-process-output' arguments.
+
+2019-01-28  Juri Linkov  <address@hidden>
+
+       Small fixes
+
+       * lisp/generic-x.el (etc-passwd-generic-mode): Add comment.  (Bug#34225)
+
+       * lisp/vc/diff-mode.el (diff-syntax-fontify-hunk): Set overlay
+       property 'diff-mode to 'syntax.  (Bug#33567)
+       (diff-syntax-fontify-props): Reset buffer-file-name to nil.
+
+2019-01-28  Glenn Morris  <address@hidden>
+
+       * src/Makefile.in (clean): Delete versioned pdmp files.
+
+       Else build number increments without limit even in clean builds.
+
+2019-01-28  Juri Linkov  <address@hidden>
+
+       More checks for live buffers.
+
+       * lisp/dired-x.el (dired-jump): Check if archive/tar superior buffer
+       was killed by the user.
+
+       * lisp/progmodes/ruby-mode.el (ruby-flymake--helper): Check if source 
buffer
+       was killed by the user immediately after visiting and before process 
finishes.
+
+2019-01-28  Juri Linkov  <address@hidden>
+
+       * lisp/generic-x.el (etc-passwd-generic-mode): Support backups of 
passwd,
+
+       group and shadow /etc files.  (Bug#34225)
+
+2019-01-28  Eli Zaretskii  <address@hidden>
+
+       Fix last change in xfaces.c
+
+       * src/xfaces.c (init_xfaces): Don't rely of 'face'
+       property of a face to be a natural number.
+
+2019-01-28  Michael Albinus  <address@hidden>
+
+       * test/lisp/net/tramp-tests.el (tramp-test03-file-name-defaults): Adapt 
test.
+
+2019-01-28  Michael Albinus  <address@hidden>
+
+       Adapt accept-process-output timeouts in Tramp
+
+       * lisp/net/tramp.el (tramp-accept-process-output):
+       Make timeout optional.  Do not set explicit timer.
+       (tramp-action-out-of-band, tramp-process-one-action)
+       (tramp-wait-for-regexp, tramp-interrupt-process):
+       * lisp/net/tramp-adb.el (tramp-adb-parse-device-names):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch):
+       * lisp/net/tramp-rclone.el (tramp-rclone-parse-device-names):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
+       * lisp/net/tramp-smb.el (tramp-smb-action-get-acl)
+       (tramp-smb-action-set-acl, tramp-smb-wait-for-output):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-action-sudo):
+       Adapt `accept-process-output' calls wrt timeouts.
+
+2019-01-28  Eli Zaretskii  <address@hidden>
+
+       Fix bug with face-id after restoring from pdump
+
+       * src/xfaces.c (init_xfaces): New function.
+       * src/emacs.c (main) [HAVE_PDUMPER]: If dumped with pdumper,
+       call init_xfaces.  (Bug#34226)
+       * src/lisp.h (init_xfaces) [HAVE_PDUMPER]: Add prototype.
+
+       * test/lisp/faces-tests.el (faces--test-face-id): New test for
+       bug#34226.
+
+2019-01-28  Sam Steingold  <address@hidden>
+
+       links: also link pdmp
+
+2019-01-28  Alan Mackenzie  <address@hidden>
+
+       Detect when we hit limit in backward search in 
c-just-after-func-arglist-p
+
+       This fixes a bug reported by Yasushi SHOJI <address@hidden> to
+       emacs-devel on 2018-11-26, where wrong analysis and fontification 
occurred.
+
+       * lisp/progmodes/cc-engine.el (c-beginning-of-statement-1): Add new 
parameter
+       HIT-LIM which, if non-nil causes the function to return nil rather than 
'same
+       when we reach the backward search limit without finding the beginning of
+       statement.
+       (c-just-after-func-arglist-p): Supply argument t to this new parameter 
in call
+       to c-beginning-of-statement-1.
+
+2019-01-27  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2019-01-26 getloadavg: Add support for Android
+       2019-01-24 fchownat: Fix compilation error on Android 4.3
+       2019-01-24 mbtowc: Fix compilation error on Android 4.3
+       2019-01-24 random: Fix compilation error on Android 4.3
+       2019-01-24 renameat: Fix compilation error on Android 4.3
+       2019-01-24 unlinkat: Fix compilation error on Android 4.3
+       2019-01-19 gettext: support disabling use of VLAs
+       2019-01-17 sys_stat: Fix warning on OS/2 kLIBC
+       2019-01-17 fcntl: Fix syntax error (regression from 2018-10-05)
+       2019-01-10 verify: Enable _GL_HAVE_STATIC_ASSERT for recent G++
+       2018-12-22 stdioext: port to newer 32-bit Android
+       2018-12-16 libc-config: Support HP-UX cc in C99 mode.
+       * build-aux/config.guess, build-aux/config.sub, doc/misc/texinfo.tex:
+       * lib/cdefs.h, lib/fcntl.c, lib/getloadavg.c, lib/gettext.h:
+       * lib/regexec.c, lib/stdio-impl.h, lib/stdio.in.h, lib/stdlib.in.h:
+       * lib/sys_stat.in.h, lib/unistd.in.h, lib/verify.h, m4/stdlib_h.m4:
+       Copy from Gnulib.
+       * lib/gnulib.mk.in: Regenerate.
+
+2019-01-27  Paul Eggert  <address@hidden>
+
+       forward-line now works with bignums
+
+       * src/cmds.c (Fforward_line): Support bignum arg.
+       (scan_newline): Return void since no caller was using the
+       return value.
+       * src/search.c (find_newline, scan_newline_from_point)
+       (find_newline1): Return the number of newlines counted, not
+       the count shortage, so that the return value always fits in
+       ptrdiff_t even if the original count was a bignum.  All
+       callers changed.
+       * test/src/cmds-tests.el (forward-line-with-bignum): New test.
+
+2019-01-27  Eli Zaretskii  <address@hidden>
+
+       Improve pdump load diagnostics
+
+       * src/emacs.c (load_pdump): Improve diagnostics when pdump
+       file fails to load correctly.
+
+2019-01-26  Eli Zaretskii  <address@hidden>
+
+       * src/emacs.c (load_pdump): Fix a thinko in last change.
+
+2019-01-26  Eli Zaretskii  <address@hidden>
+
+       Improve pdump file search and 'pdumper-stats'
+
+       * src/pdumper.c (pdumper_record_wd): New function.
+       (pdumper_load): Use xstrdup instead of strdup, as on
+       MS-Windows the latter uses the wrong heap.  Don't free a
+       NULL pointer.
+       * src/emacs.c (load_pdump): Support the use case where the
+       Emacs binary was renamed: look in exec-directory for the
+       pdump file whose base name is derived from the Emacs binary,
+       in addition to just emacs.pdmp.
+       (main): Call pdumper_record_wd to prepend CWD to the pdump
+       file name.
+       * src/fileio.c (file_name_absolute_p): Now extern.
+       * src/lisp.h (file_name_absolute_p): Add prototype.
+       * src/pdumper.h (pdumper_record_wd): Add prototype.
+
+       * doc/emacs/cmdargs.texi (Initial Options): Update the
+       documentation of where Emacs looks for the dump file.
+
+2019-01-26  Eli Zaretskii  <address@hidden>
+
+       Fix face initializations in pdump'ed Emacs
+
+       * src/dispnew.c (init_display_interactive): Call init_faces_initial
+       in the daemon if dumped with pdumper. (Bug#34114)
+
+2019-01-25  Stefan Monnier  <address@hidden>
+
+       * lisp/loadup.el (load-file-name): Set back to nil
+
+2019-01-25  João Távora  <address@hidden>
+
+       Adjust previous electric.el and elec-pair.el change
+
+       This fixes a serious bug introduced previously
+       electric-pair-inhibit-if-helps-balance and
+       electric-pair-skip-if-helps-balance, whereby "innocent" markers were
+       being pushed by those function's new save-change-and-restore
+       semantics.  The fix can probably still be improved.
+
+       It also adds comments to parts of the code, where deemed necessary.
+
+       * lisp/elec-pair.el (electric-pair--insert): Add comment.
+       (electric-pair--save-literal-point-excursion): New helper macro.
+       (electric-pair-inhibit-if-helps-balance)
+       (electric-pair-skip-if-helps-balance): Don't use
+       insert-before-markers since it may hurt other markers that have
+       nothing to do with the 'save-excursion'.
+       (electric-pair-post-self-insert-function): Use
+       electric-pair--save-literal-point-excursion.
+
+       * lisp/electric.el (electric-indent-post-self-insert-function):
+       Remove lexical variable.
+
+2019-01-25  João Távora  <address@hidden>
+
+       Use minibuffer-default in completion-all-sorted-completions (bug#34083)
+
+       * lisp/minibuffer.el (completion-all-sorted-completions): Sort with the
+       default on top.
+
+2019-01-25  Alex Branham  <address@hidden>
+
+       Make tabulated-list-mode-map inherit from special-mode-map
+
+       * lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode-map): Use
+         'make-composed-keymap'.
+
+       Bug #30452
+
+2019-01-25  Benjamin Riefenstahl  <address@hidden>
+
+       image-mode: Make parameters buffer-local
+
+       Image parameters were treated as image specific, but because they
+       actually were global variables, their behaviour transfered to new
+       images.
+       * lisp/image-mode.el (image-transform-resize, image-transform-scale)
+       (image-transform-rotation): Declare with defvar-local.  (Bug#33990)
+
+2019-01-24  Michael Albinus  <address@hidden>
+
+       Some fixes in tramp-smb.el
+
+       * lisp/net/tramp-smb.el (tramp-smb-errors):
+       Add "NT_STATUS_NOT_A_DIRECTORY".
+       (tramp-smb-maybe-open-connection): Respect ´non-essential'.  Do
+       not record smbserver-version.
+       (tramp-smb-wait-for-output): Improve reading pending output.
+
+2019-01-24  Eli Zaretskii  <address@hidden>
+
+       Avoid byte-compiler warning in starttls.el
+
+       * lisp/net/network-stream.el (starttls-open-stream): Declare
+       to avoid compilation warning.
+
+2019-01-24  Robert Pluim  <address@hidden>
+
+       Check for client certificates when using GnuTLS
+
+       This fixes Bug#33780, and extends the documentation to describe how to
+       enable use of client certificates.
+
+       * lisp/net/network-stream.el (network-stream-certificate): Correct
+       order of parameters to plist-get.
+       (network-stream-open-tls): Pass all received parameters to
+       open-gnutls-stream as plist, not just :nowait.
+
+       * lisp/net/gnutls.el (open-gnutls-stream): Change optional nowait arg
+       to be plist.  Derive nowait and client certificate(s) and keys(s) from
+       plist (maybe via auth-source) and pass to gnutls-boot-parameters and
+       gnutls-negotiate.
+       (network-stream-certificate): Add declare-function form for it.
+
+       * doc/misc/auth.texi (Help for users): Describe format to use for
+       client key/cert specification.
+
+       * doc/misc/emacs-gnutls.texi (Help For Developers): Describe usage of
+       optional plist argument.  Add crossreference to description of
+       .authinfo format for client key/cert specification.
+
+       * etc/NEWS: Describe new client certificate functionality for
+         'open-network-stream'.
+
+       * test/lisp/net/network-stream-tests.el: Add require of network-stream.
+       (connect-to-tls-ipv4-nowait): Bind network-security-level to 'low
+       in order to bypass nsm prompting.
+       (connect-to-tls-ipv6-nowait): Likewise.
+       (open-network-stream-tls-wait): New test.
+       (open-network-stream-tls-nowait): New test.
+       (open-network-stream-tls): New test.
+       (open-network-stream-tls-nocert): New test.
+       (open-gnutls-stream-new-api-default): New test.
+       (open-gnutls-stream-new-api-wait): New test.
+       (open-gnutls-stream-old-api-wait): New test.
+       (open-gnutls-stream-new-api-nowait): New test.
+       (open-gnutls-stream-old-api-nowait): New test.
+       (open-gnutls-stream-new-api-errors): New test.
+       The new tests exercise 'open-network-stream' and the old and new
+       api of 'open-gnutls-stream'.
+
+2019-01-24  Michael Albinus  <address@hidden>
+
+       Fix error in Tramp's encoding check
+
+       * lisp/net/tramp-sh.el (tramp-find-inline-encoding):
+       Use `tramp-get-connection-buffer'.
+
+2019-01-23  Stefan Monnier  <address@hidden>
+
+       doc-view-presentation, doc-view-fit-window-to-page, and use mutool
+
+       * lisp/doc-view.el (doc-view-pdfdraw-program): Use "mutool" if 
available.
+       (doc-view-mode-map): Keep default 'g' binding of 'revert-buffer'.
+       Change 'r' binding to 'revert-buffer'.
+       (doc-view-revert-buffer): Make it an obsolete alias.
+       (doc-view--revert-buffer): Rename from doc-view-revert-buffer, change
+       calling convention for use in add-function.
+       (doc-view-fit-window-to-page): New command.
+       (doc-view-pdf->png-converter-mupdf): Make it work with "mutool".
+       (doc-view-mode): Use add-function for revert-buffer-function.
+       (doc-view-presentation-mode-map, doc-view-presentation--src-data):
+       New vars.
+       (doc-view-presentation-exit, doc-view-presentation-mode)
+       (doc-view-presentation--propagate-pn, doc-view-presentation):
+       New functions.
+
+2019-01-23  Stefan Monnier  <address@hidden>
+
+       Avoid having to build src/emacs when we just want to `make tags`
+
+       * Makefile.in (TAGS tags): Remove `src` from the dependencies.
+       * src/Makefile.in (ctagsfiles1): Strip macuvs.h and fingerprint.c.
+
+2019-01-23  Eli Zaretskii  <address@hidden>
+
+       Fix build errors with pdump fingerprint on macOS
+
+       * src/Makefile.in ($(lispsource)/international/charprop.el):
+       Remove macuvs.h from the target list, to avoid circular
+       dependency on macOS.  Reported by Alan Third <address@hidden>.
+
+2019-01-23  Stefan Monnier  <address@hidden>
+
+       Rework last commit to icomplete and minibuffer.el.
+
+       Rather than let minibuffer-force-complete set up cycling and then 
undoing it,
+       better tell it directly not to setup cycling.  Also be a bit more 
careful
+       to remove the transient map.
+       Additionally to bug#34077 and bug#34116, this also relates to bug#25644.
+
+       * lisp/minibuffer.el (completion--flush-all-sorted-completions):
+       Also take down the transient cycling map if applicable.
+       (minibuffer-force-complete): New arg dont-cycle.
+       Set completion-cycling to the actual function that takes down the
+       transient map rather than just t.
+       (minibuffer-force-complete-and-exit):
+       * lisp/icomplete.el (icomplete-force-complete): Use new dont-cycle arg.
+
+2019-01-23  João Távora  <address@hidden>
+
+       Force completion in icomplete with C-M-i, but don't cycle (bug#34077)
+
+       Cycling after forcing a completion with C-M-i in icomplete can be
+       confusing, as it leaves rotated prospects in the minibuffer.  In C-x
+       C-f, for example it is very difficult to understand if the prospects
+       refer to subdirectories of the directory being completed to, which
+       happens naturally when the completion is unique; or if they are a
+       cycled version of prospects that match the new completion pattern, in
+       case the completion happens to still match other items.
+
+       To resolve this confusion, never cycle with C-M-i in icomplete:
+       non-ambiguous cycling can be achieved with C-. and C-,
+
+       The former behaviour can still be restored with:
+
+       (define-key icomplete-minibuffer-map (kbd "C-M-i") 
'minibuffer-force-complete)
+
+       * lisp/icomplete.el (icomplete-force-complete): New command.
+       (icomplete-minibuffer-map): Bind C-M-i to icomplete-force-complete.
+
+2019-01-23  João Távora  <address@hidden>
+
+       Avoid cycling in minibuffer-force-complete-and-exit (bug#34116)
+
+       * lisp/minibuffer.el (minibuffer-force-complete-and-exit): Check
+       completion-cycling before minibuffer-force-complete.
+
+2019-01-23  Paul Eggert  <address@hidden>
+
+       * src/keyboard.c (read_char): Use CALLN.
+
+2019-01-23  Stefan Monnier  <address@hidden>
+
+       * src/emacs.c (load_pdump): Minor simplification.
+
+2019-01-23  Eli Zaretskii  <address@hidden>
+
+       Fix compilation of pdumper.c with old buggy GCC
+
+       * src/pdumper.c (emacs_ptr_at): Renamed from emacs_ptr, to
+       avoid compilation errors with GCC 4.7.  Reported by Martin
+       Rudalics <address@hidden>.  All callers changed.
+
+2019-01-23  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-set-file-uid-gid): Fix thinko.
+
+       * test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case):
+       Adapt docstring.
+
+2019-01-22  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/package.el (package--alist): New
+
+       (package-activate-all): Use it so we only initialize the local part of
+       package.el (this reduces the impact of bug#24467 and speeds up startup).
+       (package-installed-p): Use it so it works even if package is not
+       fully initialized.
+       (package-delete): Use it so we only initialize the local part of
+       package.el.
+
+2019-01-22  Phillip Lord  <address@hidden>
+
+       Add hook for all events
+
+       * lisp/subr.el (input-event-functions): Add input-event-functions
+       * src/keyboard.c (read_char): Call input-event-functions on all hooks
+
+2019-01-22  João Távora  <address@hidden>
+
+       electric-layout-mode kicks in before electric-pair-mode
+
+       This aims to solve problems with indentation.  Previously in, say, a
+       js-mode buffer with electric-layout-rules set to
+
+          (?\{ before after)
+          (?\} before)
+
+       would produce an intended:
+
+          function ()
+          {
+            <indented point>
+          }
+
+       The initial state
+
+         function () {
+
+       Would go immediately to the following by e-p-m
+
+         function () {}
+
+       Only then would e-l-m be applied to } first, and then again to {.
+       This makes lines indent in the wrong order, which can be a problem in
+       some modes.
+
+       The way we fix this is by reversing the order of e-p-m and e-l-m in
+       the post-self-insert-hook (and also fixing a number of details that
+       this uncovered).  In the end this changes the sequence from
+
+         function () {
+
+       By way of e-l-m becomes:
+
+         function () <newline>
+         {
+         <newline>
+
+       The e-p-m inserts the pair
+
+         function () <newline>
+         {
+         <newline>}
+
+       And then e-l-m kicks in for the pair again, yielding the desired result
+
+         function () <newline>
+         {
+         <indented point>
+         }
+
+       * lisp/elec-pair.el (electric-pair--insert): Bind
+       electric-layout-no-duplicate-newlines.
+       (electric-pair-inhibit-if-helps-balance)
+       (electric-pair-skip-if-helps-balance): Use insert-before-markers,
+       playing nice with save-excurion.
+       (electric-pair-post-self-insert-function): Go to correct position
+       before checking electric-pair-inhibit-predicate and
+       electric-pair-skip-self predicate.
+       (electric-pair-post-self-insert-function): Increase priority to
+       50.
+
+       * lisp/electric.el (electric-indent-post-self-insert-function):
+       Delete trailing space in reindented line only if line was
+       really reindented.  Rewrite comment.
+       (electric-layout-allow-duplicate-newlines): New variable.
+       (electric-layout-post-self-insert-function-1): Rewrite comments.
+       Honours electric-layout-allow-duplicate-newlines.  Don't reindent
+       previous line because racecar.
+
+       * test/lisp/electric-tests.el: New test.
+       (plainer-c-mode): Move up.
+       (electric-modes-int-main-allman-style)
+       (electric-layout-int-main-kernel-style): Simplify
+       electric-layout-rules.
+       (electric-layout-for-c-style-du-jour): New helper.
+       (electric-layout-plainer-c-mode-use-c-style): New test.
+
+2019-01-22  João Távora  <address@hidden>
+
+       Remove tests of electric-pair-mode and CC-based modes
+
+       The behaviour previously observed in cc-mode-based-modes (and every
+       other major-mode) when electric-pair-mode or electric-layout-mode is
+       turned on may no longer be observed: this because CC-mode goes around
+       the generic implementation of electric-pair-mode.
+
+       An alternative is to bind every delimiter key like '{', '}', etc to
+       'self-insert-command, like most major modes already do, at the cost of
+       losing c-auto-newline functionality (which was incompatible anyway
+       before the recent changes of bug#33794).
+
+       * test/lisp/electric-tests.el
+       (electric-pair-test-for): No longer set it.
+       (define-electric-pair-test): Use js-mode instead of c++ mode,
+       which broke recently.
+       (whitespace-chomping-2): Add failing C++ test explicitly.
+       (electric-layout-int-main-kernel-style): Use plainer-c-mode.
+       (electric-layout-int-main-allman-style): Deleted.
+       (electric-modes-int-main-allman-style): Renamed from
+       electric-layout-int-main-allman-style.
+
+2019-01-22  Alan Mackenzie  <address@hidden>
+
+       Extend electric-pair-mode actions to < and >, and also to ( and ) in 
literals
+
+       * lisp/progmodes/cc-cmds.el (c-electric-lt-gt): Actuate 
electric-pair-mode if
+       a < or > is typed in a context where this is meaningful (#include, or
+       template).
+       (c-electric-paren): Allow electric-pair-mode activity in a comment or 
string.
+
+       * lisp/progmodes/cc-defs.el (c-make-keywords-re): Fix a bug where lists 
of
+       source symbols could get overwritten when parameter adorn is set to
+       'appendable.
+
+       * lisp/progmodes/cc-langs.el (c-cpp-include-key): New lang const and 
var.
+
+2019-01-22  Alan Mackenzie  <address@hidden>
+
+       Revert "Fix electric-pair-tests by disabling bug#33794's fix with a 
variable"
+
+       This reverts commit be505726b68d407a44fdcd9c7ac1ef722398532d.
+
+2019-01-22  Michael Albinus  <address@hidden>
+
+       Make Tramp tests more robust
+
+       * test/lisp/net/tramp-tests.el (tramp-test06-directory-file-name):
+       Bind `tramp-default-method'.
+       (tramp--test-file-attributes-equal-p): New defsubst.
+       (tramp-test19-directory-files-and-attributes): Use it.
+
+2019-01-22  Michael Albinus  <address@hidden>
+
+       Respect setgid bit of the upper directory in Tramp
+
+       * doc/misc/trampver.texi:
+       * lisp/net/trampver.el: Change version to "2.4.2-pre".
+
+       * lisp/net/tramp.el: Bump version to 2.4.2-pre.
+       (tramp-set-file-uid-gid): Respect setgid bit of the upper directory.
+       (tramp-default-file-modes, tramp-handle-insert-file-contents)
+       (tramp-mode-string-to-int, tramp-make-tramp-temp-file):
+       * lisp/net/tramp-adb.el (tramp-adb-handle-file-local-copy)
+       (tramp-adb-handle-write-region):
+       * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-directly)
+       (tramp-sh-handle-write-region): Use octal constants.
+
+2019-01-21  Stefan Monnier  <address@hidden>
+
+       * lisp/international/titdic-cnv.el: Use lexical-binding
+
+       (tit-process-body): Remove unused vars 'template' and 'second'.
+       (tsang-quick-converter): Remove unused args 'name' and 'title'.
+       Remove unused var 'slot'.
+       (tsang-b5-converter, quick-b5-converter, tsang-cns-converter)
+       (quick-cns-converter, py-converter, ziranma-converter)
+       (ctlau-converter, ctlau-gb-converter, ctlau-b5-converter):
+       Remove unused args 'name' and 'title'.
+       (miscdic-convert): Remove unused var 'dicbuf'.
+       Don't pass 'name' and 'title' to the conversion function.
+
+2019-01-21  Paul Eggert  <address@hidden>
+
+       Simplify pdumper-load via timespectod
+
+       Suggested by Eli Zaretskii in:
+       https://lists.gnu.org/r/emacs-devel/2019-01/msg00458.html
+       * src/pdumper.c (pdumper_load): Simplify.
+
+2019-01-21  Stefan Monnier  <address@hidden>
+
+       * src/pdumper.c (dump_string) [CHECK_STRUCTS]: Fix copy&paste error
+
+       * lisp/electric.el: Fix typo in last change.
+
+2019-01-21  Stefan Monnier  <address@hidden>
+
+       (electric--sort-post-self-insertion-hook): Accept non-symbol functions
+
+       * lisp/electric.el (electric--sort-post-self-insertion-hook):
+       Don't burp on non-symbol functions.
+
+2019-01-21  Alan Third  <address@hidden>
+
+       Fix occasional pdumper/bootstrap error
+
+       * src/Makefile.in (emacs$(EXEEXT)): Copy the new executable over
+       bootstrap-emacs.
+
+2019-01-21  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-sh.el (tramp-set-remote-path): Fix usage of tmpfile.
+
+2019-01-21  Michael Albinus  <address@hidden>
+
+       Use `inhibit-read-only' in Tramp
+
+       * lisp/net/tramp.el (tramp-process-actions, tramp-accept-process-output)
+       (tramp-send-string):
+       * lisp/net/tramp-adb.el (tramp-adb-handle-make-process)
+       (tramp-adb-send-command-and-check, tramp-adb-wait-for-output):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-make-process)
+       (tramp-wait-for-output, tramp-send-command-and-check):
+       * lisp/net/tramp-smb.el (tramp-smb-wait-for-output):
+       Use `inhibit-read-only'.
+
+2019-01-20  Michael Albinus  <address@hidden>
+
+       Use POSIX "df" in Tramp, if available
+
+       * lisp/net/tramp-sh.el (tramp-get-remote-df):
+       Support also POSIX.1 "df".
+       (tramp-sh-handle-file-system-info): Adapt accordingly.
+
+2019-01-20  Eli Zaretskii  <address@hidden>
+
+       Support native image resizing on MS-Windows
+
+       * src/w32term.c (x_draw_image_foreground): Scale the image if
+       the requested dimensions are different from the bitmap
+       dimensions.
+       * src/image.c (Fimage_scaling_p): Return t when HAVE_NTGUI.
+       (x_set_image_size) [HAVE_NTGUI]: Record the scaled dimensions
+       in the image struct.
+       * src/dispextern.h (HAVE_NATIVE_SCALING): Define when
+       HAVE_NTGUI as well.
+
+       * etc/NEWS: Update the announcement of native image scaling.
+
+2019-01-19  Philipp Stephani  <address@hidden>
+
+       Improve error data when passing a wrong type to 'sort' (Bug#34104)
+
+       * src/fns.c (Fsort): Use 'list-or-vector-p' for error message.
+       (syms_of_fns): Define 'list-or-vector-p'.
+
+       * test/src/fns-tests.el (fns-tests-sort): Extend unit test.
+
+2019-01-19  Paul Eggert  <address@hidden>
+
+       pdumper-stats now returns s, not ms
+
+       * doc/lispref/internals.texi (pdumper-stats):
+       * src/pdumper.c (pdumper_load): Return seconds, not milliseconds.
+       Minimize rounding errors in the usual case.
+
+2019-01-19  Eli Zaretskii  <address@hidden>
+
+       Minor cleanup in pdumper.c
+
+       * src/pdumper.c (subtract_timespec): Function removed.
+       (pdumper_load): Use timespec_sub instead of subtract_timespec.
+
+2019-01-19  Eli Zaretskii  <address@hidden>
+
+       Improve 'pdumper-stats' and its documentation
+
+       * src/pdumper.c (Fpdumper_stats): Improve formatting and
+       wording of the doc string.  Decode the pdump file name and
+       expand-file-name it.
+
+       * doc/lispref/internals.texi (Building Emacs): Document
+       'pdumper-stats'.
+
+2019-01-19  Eli Zaretskii  <address@hidden>
+
+       Unbreak the macOS NS build
+
+       * src/xdisp.c (expose_window_tree): Declare and define 'f' on
+       NS as well.  Reported by Herbert J. Skuhra <address@hidden>.
+
+2019-01-18  Dmitry Gutov  <address@hidden>
+
+       Misc ignore-related project.el changes
+
+       * lisp/progmodes/project.el (project-ignores): Don't append the
+       default ignores list, just use vc-directory-exclusion-list.
+       (project--dir-ignores): Use the default ignores if the dir is
+       outside of the current project.
+       (project-files): Use project--dir-ignores to support external
+       roots better.
+
+2019-01-18  João Távora  <address@hidden>
+
+       Revert "Remove leftover from previous electric-layout-rules API"
+
+       This is a backward-incompatible change, and removing it isn't really
+       necessary.
+
+       This reverts commit 942dad2b519cabddf6caea7641517507dc06944b.
+
+2019-01-18  Stefan Monnier  <address@hidden>
+
+       (electric-layout-post-self-insert-function-1): Simplify.
+
+       Call electric--after-char-pos right from the start, and take advantage 
of the
+       fact that it guarantees to return the right position or nil.
+
+2019-01-18  João Távora  <address@hidden>
+
+       Ensure fns in electric-layout-rules are called in right position
+
+       * lisp/electric.el (electric-layout-rules): Ensure rules are
+       called from right spot.
+
+2019-01-18  João Távora  <address@hidden>
+
+       Remove leftover from previous electric-layout-rules API
+
+       An element of electric-layout-rules is either a function or a pair
+       (CHAR . WHERE), and WHERE can't be a function anymore.
+
+       * lisp/electric.el (electric-layout-post-self-insert-function-1):
+       Remove leftover line.
+
+2019-01-18  Paul Eggert  <address@hidden>
+
+       Port to platforms where NULL is a pointer
+
+       * src/image.c (x_create_x_image_and_pixmap):
+       The Picture type is an integer, not a pointer.
+       Come to think of it, Picture is really XID, and as
+       far as I can tell, all-bits-one is the invalid XID,
+       not all-bits-zero.  However that is a bigger issue;
+       for now, this patch just unbreaks the build.
+
+2019-01-18  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of portable dumping
+
+       * src/pdumper.c (Fdump_emacs_portable): Improve the doc string
+       and the error messages.
+
+       * doc/lispref/internals.texi (Building Emacs): Document
+       portable dumping and the 'dump-emacs-portable' function.
+
+2019-01-18  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       b6d78a0 (origin/emacs-26) Fix a typo in ELisp manual
+       c9f6f86 Prevent redrawing if frame is garbaged
+       00ba226 Attempt to fix hangs on MS-Windows due to C-g
+       b26d637 Fix Calc graph output on MS-Windows
+       03818b0 Fix a minor mistake in ELisp manual
+       6ac5985 ; Fix some trivial doc typos
+       21b9026 * etc/tutorials/TUTORIAL: Fix typo (bug#34049)
+       d223727 Fix UI of Buffer-menu
+       0f71655 Reinitialize ispell-really-enchant when changing the speller
+       9845044 Speed up loading css-mode
+
+2019-01-18  Eli Zaretskii  <address@hidden>
+
+       Clean up memory allocation and unexec support on MS-Windows
+
+       * src/w32heap.c (report_temacs_memory_usage): Condition on
+       !CANNOT_DUMP, in addition to ENABLE_CHECKING.
+       (init_heap): Accept an argument, which tells us what heap
+       allocation method to use.
+       (DUMPED_HEAP_SIZE) [CANNOT_DUMP]: Define to a small value, as
+       we don't use dumped_data[] in this case.
+       * src/w32heap.h (init_heap): Adjust prototype.
+       <using_dynamic_heap>: Remove declaration.
+       * src/emacs.c (main) [WINDOWSNT]: Determine heap allocation
+       method based on whether we are in temacs and whether unexec
+       will be used to dump Emacs.  Pass the heap allocation method
+       to init_heap, which is now called after parsing the
+       --temacs=METHOD option.
+       * src/unexw32.c (unexec): Don't fiddle with using_dynamic_heap.
+       <using_dynamic_heap>: Remove definition.
+       * src/w32proc.c (malloc_before_init, realloc_before_init)
+       (free_before_init): New functions, to catch memory allocation
+       before heap allocation method is set up.
+
+2019-01-17  Dmitry Gutov  <address@hidden>
+
+       Rebase project-find-regexp on top of project-files
+
+       * lisp/progmodes/project.el (project--files-in-directory):
+       New function.
+       (project-files, project-find-regexp): Use it.
+       (project--dir-ignores): New function.
+       (project--find-regexp-in): Remove.
+       (project--process-file-region): New function.
+       (project--find-regexp-in-files): New function.
+       (project-find-regexp, project-or-external-find-regexp): Use it, and
+       project-files as well.
+
+2019-01-17  Dmitry Gutov  <address@hidden>
+
+       Make 'project-files' the "canonical" generic of the two
+
+       * lisp/progmodes/project.el (project-files): Move the actual
+       command building and invocation here.
+       (project-file-completion-table): Delegate to 'project-files'.
+
+2019-01-17  Stefan Monnier  <address@hidden>
+
+       * lisp/textmodes/sgml-mode.el: Try and fix bug#33887.
+
+       Remove redundant :group args.
+       (sgml-syntax-propertize-rules): Speed up processing of most double 
quotes.
+
+2019-01-17  João Távora  <address@hidden>
+
+       Fix electric-pair-tests by disabling bug#33794's fix with a variable
+
+       The variable c--disable-fix-of-bug-33794, which should be removed in
+       the short term in favor of a permanent solution, is introduced.
+
+       It is bound to nil by default.  This means that breakage is still
+       happening in actual c-mode and c++-mode usage, though the tests no
+       longer show it.
+
+       To get around this breakage, put
+
+          (setq c--disable-fix-of-bug-33794 t)
+
+       In your init file.  Evidently, you will lose the fix for bug#33794,
+       but that only affects a small corner case of c-toggle-auto-newline,
+       which is not turned on by default.
+
+       See https://lists.gnu.org/archive/html/emacs-devel/2019-01/msg00360.html
+       for more information.
+
+       * lisp/progmodes/cc-cmds.el (c--disable-fix-of-bug-33794): New
+       variable.
+       (c--with-post-self-insert-hook-maybe): New macro.
+       (c-electric-pound, c-electric-brace, c-electric-slash)
+       (c-electric-star, c-electric-semi&comma, c-electric-colon)
+       (c-electric-lt-gt, c-electric-paren): Use it.
+       (c-electric-paren, c-electric-brace): Check
+       c--disable-fix-of-bug-33794.
+
+       * test/lisp/electric-tests.el (c--disable-fix-of-bug-33794):
+       Forward declare.
+       (electric-pair-test-for)
+       (electric-layout-int-main-kernel-style)
+       (electric-modes-in-c-mode-with-self-insert-command): Use it.
+
+2019-01-17  João Távora  <address@hidden>
+
+       Revert "Temporarily comment out CC Mode from tests..."
+
+       This reverts commit 54f297904e0c641fcfd81f16e9a87177124a27be.
+
+2019-01-17  Martin Rudalics  <address@hidden>
+
+       Fix wording in Window Hooks section of Elisp manual
+
+       * doc/lispref/windows.texi (Window Hooks): Fix wording in
+       description of window change functions.  Suggested by Robert
+       Pluim <address@hidden>.
+
+2019-01-17  Alan Third  <address@hidden>
+
+       Be more specific with XRender bit-depths (bug#34051)
+
+       * src/image.c (x_create_x_image_and_pixmap): Fail gracefully if a bit
+       depth is requested that XRender doesn't support.
+
+2019-01-17  João Távora  <address@hidden>
+
+       Simplify ignored extensions filtering in Icomplete (bug#34070)
+
+       * lisp/icomplete.el: Use lexical binding.
+       (icomplete-completions): Use minibuffer-completion-predicate
+       to filter out completion-ignored-extensions.
+
+2019-01-17  João Távora  <address@hidden>
+
+       Revert "Fix icomplete's cycling when filename filtering kicks in"
+
+       This reverts commit cdb082322d4209c5104bc1a98b21bf3dd75e8f17, which
+       was a fix for bug#34070.  A much better fix to be added soon.
+
+2019-01-17  João Távora  <address@hidden>
+
+       Fix flymake-proc--delete-temp-directory if temp dir ends in slash
+
+       (Bug#34074)
+
+       Reported by 林宝龙 <address@hidden>.
+
+       * lisp/progmodes/flymake-proc.el
+        (flymake-proc--delete-temp-directory):  Use directory-file-name.
+
+2019-01-17  Alan Mackenzie  <address@hidden>
+
+       Temporarily comment out CC Mode from tests which are incompatible with 
it.
+
+       * test/lisp/electric-tests.el (electric-pair-test-for): comment out 
c++-mode from the
+       list of modes to be used in tests.
+       (electric-pair-whitespace-chomping-2-at-point-4-in-c++-mode-in-strings)
+       (ert-deftest electric-layout-int-main-kernel-style)
+       (ert-deftest electric-layout-int-main-allman-style): Comment out.
+
+2019-01-17  Glenn Morris  <address@hidden>
+
+       Fix --enable-profiling builds (bug#34099)
+
+       * src/profiler.c (syms_of_profiler_for_pdumper):
+       Only set cpu_log if CPU profiling is enabled.
+
+2019-01-17  Martin Rudalics  <address@hidden>
+
+       Expand spectrum of window change functions
+
+       * src/window.c (run_window_change_functions): Run window
+       change functions for Qwindow_state_change_functions.
+       (resize_frame_windows): Set frame's window_change slot when
+       single-window frames change size.
+       (Qwindow_state_change_functions): New symbol.
+       (Vwindow_state_change_functions): New Lisp variable.
+       * doc/lispref/windows.texi (Selecting Windows): Mention
+       'window-selection/state-change-functions' and add reference to
+       Window Hooks.
+       (Window Hooks): Document 'window-state-change-functions'.
+       * etc/NEWS: Mention new hook 'window-state-change-functions'.
+
+2019-01-16  Paul Eggert  <address@hidden>
+
+       Port pdumper to older GNU/Linux
+
+       Problem reported by Colin Baxter in:
+       https://lists.gnu.org/r/emacs-devel/2019-01/msg00321.html
+       * src/alloc.c (my_heap_start): Also define if
+       GNU_LINUX && CANNOT_DUMP && DOUG_LEA_MALLOC.
+
+2019-01-16  Daniel Colascione  <address@hidden>
+
+       Fix segfault in profiler after pdump load
+
+       Move initialization of the profiler's hash test to static
+       initialization from the syms function so that pdumper doesn't need to
+       bother capturing it in any special way.
+
+       * src/profiler.c (cmpfn_profiler, hashfn_profiler):
+       forward declare.
+       (hashtest_profiler): statically initialize.
+       (syms_of_profiler): remove dynamic initialization of
+       hashtest_profiler.
+
+2019-01-16  Paul Eggert  <address@hidden>
+
+       * doc/lispref/processes.texi (Accepting Output): Simplify.
+
+2019-01-16  Daniel Colascione  <address@hidden>
+
+       Fix previous change: use correct pdumper function
+
+2019-01-16  Daniel Colascione  <address@hidden>
+
+       Fix crash in charset detection after pdumper load
+
+       * src/coding.c:
+       (reset_coding_after_pdumper_load): new function re-init character
+       classes after pdumper load.
+       (syms_of_coding): Call it.
+
+2019-01-16  Andy Moreton  <address@hidden>
+
+       Avoid compilation warnings in MS-Windows build
+
+       * src/pdumper.c (dump_cold_bignum):
+       * src/emacs.c(load_pdump) [WINDOWSNT]: Avoid compiler warnings
+       due to 64-bit vs 32-bit data type mismatches.
+
+2019-01-16  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of pdumper; minor code cleanup
+
+       * src/emacs.c (usage_message): Add the --dump-file option.
+       (string_starts_with_p, find_argument): Functions removed; use
+       'argmatch' instead.
+       (PDUMP_FILE_ARG): Macro removed; use literal strings instead,
+       as with other command-line options.  Use HAVE_PDUMPER for cpp
+       conditionals which used PDUMP_FILE_ARG.
+       (load_pdump, main): Use 'argmatch' for "--dump-file" and
+       "--temacs" arguments, thus supporting the "-dump-file" and
+       "-temacs" variants, for consistency with other options.
+       (main): Remove the extra fatal error for using --dump-file in
+       unexec'ed Emacs: load_pdump does that anyway.
+       (standard_args): Add --dump-file and --temacs, with
+       appropriate priorities.
+
+       * etc/NEWS: Expand on the pdumper support.
+
+       * doc/emacs/cmdargs.texi (Initial Options): Document the
+       '--dump-file' command-line option.
+
+2019-01-16  Eli Zaretskii  <address@hidden>
+
+       Fix minor glitch with producing 'emacs' executable
+
+       * src/Makefile.in (LC_ALL) [!DUMPING]: Don't overwrite
+       previous emacs-X.Y.Z executables with new ones.
+
+2019-01-16  Michael Albinus  <address@hidden>
+
+       Some accept-process-output cleanups in Tramp
+
+       * lisp/net/tramp.el (tramp-action-out-of-band): Read process
+       output in a loop.
+       (tramp-accept-process-output): Return result.
+       (tramp-interrupt-process):
+       * lisp/net/tramp-adb.el (tramp-adb-parse-device-names):
+       * lisp/net/tramp-rclone.el (tramp-rclone-parse-device-names):
+       Remove FIXME.
+
+       * lisp/net/tramp-sh.el (tramp-local-coding-commands): Fix docstring.
+
+       * lisp/net/tramp-smb.el (tramp-smb-wait-for-output): Adapt docstring.
+       Simplify code.
+
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-action-sudo):
+       Adapt docstring.  Read process output in a loop.
+
+       * test/lisp/net/tramp-tests.el (tramp-test43-asynchronous-requests):
+       Remove :unstable tag on emba.
+
+2019-01-16  Glenn Morris  <address@hidden>
+
+       * make-dist: Include src/dmpstruct.awk.
+
+2019-01-15  Paul Eggert  <address@hidden>
+
+       Fix unlikely races with GnuTLS, datagrams
+
+       Retry some calls if interrupted at inopportune times.
+       These were found by code inspection.
+       * src/gnutls.c (gnutls_try_handshake): Simplify by using
+       new emacs_gnutls_handle_error API.
+       (emacs_gnutls_write): Remove GNUTLS_E_AGAIN hack since
+       emacs_gnutls_handle_error now does that.
+       Use emacs_gnutls_handle_error only on errors.
+       (emacs_gnutls_read): Retry if gnutls_record_recv returns
+       GNUTLS_E_INTERRUPTED, to be consistent with emacs_read.
+       (emacs_gnutls_handle_error): Return 0 on fatal errors,
+       -1 (setting errno) on ordinary errors, to simplify callers.
+       Assume that ERR is negative, since it always is now.
+       Map non-fatal GnuTLS errors to errno values as best we can.
+       * src/process.c (read_process_output) [DATAGRAM_SOCKETS]:
+       Retry recvfrom if it is interrupted, to be consistent with
+       how things are handled when not a datagram channel.
+       (send_process) [DATAGRAM_SOCEKTS]: If sendto is interrupted,
+       process pending signals and retry it, to be consistent with
+       how things are handled when not a datagram channel.
+
+2019-01-15  Daniel Colascione  <address@hidden>
+
+       Make sure dump-mode is nil after dump
+
+       * lisp/loadup.el (dump-mode): Bind dump-mode to nil before dumping
+
+2019-01-15  Daniel Colascione  <address@hidden>
+
+       Add NEWS for pdumper
+
+2019-01-15  Daniel Colascione  <address@hidden>
+
+       Add portable dumper
+
+       Add a new portable dumper as an alternative to unexec.  Use it by 
default.
+
+       * src/dmpstruct.awk: New file.
+       * src/doc.c (get_doc_string): use will_dump_p().
+       * src/editfns.c (styled_format): silence compiler warning
+       with UNINIT.
+       * src/emacs-module.c (syms_of_module): staticpro ltv_mark.
+       * src/emacs.c (gflags): new variable.
+       (init_cmdargs): unwrap
+       (string_starts_with_p, find_argument, dump_error_to_string)
+       (load_pdump): new functions.
+       (main): detect pdumper and --temacs invocation; actually load
+       portable dump when detected; set gflags as appropriate; changes to
+       init functions throughout to avoid passing explicit
+       'initialized' argument.
+       * src/eval.c (inhibit_lisp_code): remove unused variable.
+       (init_eval_once_for_pdumper): new function.
+       (init_eval_once): call it.
+       * src/filelock.c: CANNOT_DUMP -> will_dump_p()
+       * src/fingerprint-dummy.c: new file
+       * src/fingerprint.h: new file
+       * src/fns.c: CANNOT_DUMP -> will_dump_p(), etc.
+       (weak_hash_tables): remove
+       (hashfn_equal, hashfn_eql): un-staticify
+       (make_hash_table): set new 'next_weak' hash table field; drop
+       global weak_hash_tables logic.
+       (copy_hash_table): drop global weak_hash_tables logic.
+       (hash_table_rehash): new function.
+       (hash_lookup, hash_put, hash_remove_from_table, hash_clear):
+       rehash if needed.
+       (sweep_weak_table): un-staticify; explain logic; bool-ify.
+       (sweep_weak_hash_tables): remove function.
+       * src/font.c (syms_of_font): remember pdumper stuff.
+       * src/fontset.c (syms_of_fontset): remember pdumper stuff.
+       * src/frame.c (make_initial_frame): don't reset Vframe_list.
+       (init_frame_once_for_pdumper, init_frame_once): new functions.
+       (syms_of_frame): remove redundant staticpro.
+       * src/fringe.c (init_fringe_once_for_pdumper): new functin.
+       (init_fringe_once): call it.
+       * src/ftcrfont.c (syms_of_ftcrfont_for_pdumper): new function.
+       (syms_of_ftcrfont): call it.
+       * src/ftfont.c (syms_of_ftfont_for_pdumper): new function.
+       (syms_of_ftfont): call it.
+       * src/ftxfont.c (syms_of_ftxfont_for_pdumper): new function.
+       (syms_of_ftxfont): call it.
+       * src/gmalloc.c: adjust for pdumper througout
+       (DUMPED): remove weird custom dumped indicator.
+       * src/gnutls.c (syms_of_gnutls): pdumper note for
+       gnutls_global_initialized.
+       * src/image.c (syms_of_image): add pdumper comment,
+       initializer note.
+       * src/insdel.c (prepare_to_modify_buffer_1): account
+       for buffer contents possibly being in dump image.
+       * src/keyboard.c (syms_of_keyboard_for_pdumper): new function.
+       (syms_of_keyboard): staticpro more; call pdumper syms function.
+       * src/lisp.h: add comments throughout
+       (gflags): declare.
+       (will_dump_p, will_bootstrap_p, will_dump_with_pdumper_p)
+       (dumped_with_pdumper_p, will_dump_with_unexec_p)
+       (dumped_with_unexec_p, definitely_will_not_unexec_p): new
+       functions.
+       (POWER_OF_2, ROUNDUP): move macros.
+       (PSEUDOVECTOR_TYPE, PSEUDOVECTOR_TYPEP): take vectorlike header
+       pointer instead of vector; constify.
+       (Lisp_Hash_Table): add comment about need to rehash on access; add
+       comment for next_weak.
+       (HASH_KEY, HASH_VALUE, HASH_HASH, HASH_TABLE_SIZE): const-ify.
+       (hash_table_rehash): declare.
+       (hash_rehash_needed_p, hash_rehash_if_needed): new functions.
+       (finalizers, doomed_finalizers): declare extern.
+       (SUBR_SECTION_ATTRIBUTE): new macro.
+       (staticvec, staticidx): un-static-ify.
+       (sweep_weak_hash_tables): remove declaration.
+       (sweep_weak_table): declare.
+       (hashfn_eql, hashfn_equal): declare.
+       (number_finalizers_run): new variable.
+       (Vdead): externify when ENABLE_CHECKING.
+       (gc_root_type): new enumeration.
+       (gc_root_visitor): new struct.
+       (visit_static_gc_roots): declare.
+       (vectorlike_nbytes): declare.
+       (vector_nbytes): define as trivial inline function wrapper for
+       vectorlike_nbytes.
+       (init_obarray_once): change signature.
+       (primary_thread): extern-ify.
+       (init_buffer): change signature.
+       (init_frame_once): declare.
+       * src/lread.c (readevalloop): adjust for new dumped predicates.
+       (init_obarray_once): new function.
+       (ndefsubr): new variable.
+       (defsubr): increment it.
+       (load_path_check): adjust for pdumper.
+       (load_path_default): use pdumper functions; adjust for
+       dump search.
+       * src/macfont.m (macfont_init_font_change_handler): avoid
+       shadowing global.
+       (syms_of_macfont_for_pdumper): new function.
+       (syms_of_macfont): call it.
+       * src/menu.c (syms_of_menu): staticpro more stuff.
+       * src/minibuf.c (Ftry_completion): rehash if needed.
+       (init_minibuf_once_for_pdumper): new function.
+       (init_minibuf_once): call it.
+       * src/nsfont.m (syms_of_nsfns): staticpro more.
+       * src/nsfont.m (syms_of_nsfont_for_pdumper): new function.
+       (syms_of_nsfont): call it.
+       * src/nsterm.m (syms_of_nsfont): remember pdumper stuff.
+       * src/pdumper.c: new file.
+       * src/pdumper.h: new file.
+       * src/process.c (init_process_emacs): use new pdumper functions
+       instead of CANNOT_DUMP.
+       * src/profiler.c (syms_of_profiler_for_pdumper): new function.
+       (syms_of_profiler_for_pdumper): call it.
+       * src/search.c (syms_of_search_for_pdumper): new function.
+       (syms_of_search_for_pdumper): call it.
+       * src/sheap.c (bss_sbrk_did_unexec): remove.
+       * src/sheap.h (bss_sbrk_did_unexec): remove.
+       * src/syntax.c (syms_of_syntax): don't redundantly staticpro
+       re_match_object.
+       * src/sysdep.c: use will_dump_with_unexec_p() instead of bss
+       hack thing.
+       * src/syssignal.h (init_sigsegv): declare.
+       * src/systime.h (init_timefns): remove bool from signature.
+       * src/textprop.c (syms_of_textprop): move staticpro.
+       * src/thread.c (main_thread_p): constify.
+       * src/thread.h (main_thread_p): constify.
+       * src/timefns.c (init_timefns): remove bool from signature.
+       (syms_of_timefns_for_pdumper): new function.
+       (syms_of_timefns): call it.
+       * src/w32.c: rearrange code.
+       * src/w32.h (w32_relocate): declare.
+       * src/w32fns.c (syms_of_w32fns): add pdumper note.
+       * src/w32font.c (syms_of_w32font_for_pdumper): new function.
+       (syms_of_w32font): call it.
+       * src/w32heap.c (using_dynamic_heap): new variable.
+       (init_heap): use it.
+       * src/w32menu.c (syms_of_w32menu): add pdumper note.
+       * src/w32proc.c
+       (ctrl_c_handler, mainCRTStartup, _start, open_input_file)
+       (rva_to_section, close_file_data): move here.
+       * src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper):
+       new function.
+       (syms_of_w32uniscribe): call it.
+       * src/window.c (init_window_once_for_pdumper): new function.
+       (init_window_once): call it; staticpro more stuff.
+       * src/xfont.c (syms_of_xfont_for_pdumper): new function.
+       (syms_of_xfont): call it.
+       * src/xftfont.c (syms_of_xftfont_for_pdumper): new function.
+       (syms_of_xftfont): call it.
+       * src/xmenu.c (syms_of_xmenu_for_pdumper): new function.
+       (syms_of_xmenu): call it.
+       * src/xselect.c (syms_of_xselect_for_pdumper): new function.
+       (syms_of_xselect): call it.
+       * src/xsettings.c (syms_of_xsettings): add more pdumper notes.
+       * src/term.c (syms_of_xterm): add pdumper note.
+
+       * src/dispnew.c (init_faces_initial): new function.
+       (init_display_interactive): rename from init_display; use
+       will_dump_p instead of !initialized.  Initialize faces early for
+       pdumper if needed.
+       (init_display): new function.
+       (syms_of_display_for_pdumper): new function.
+       (syms_of_display): call it.
+
+       * src/dbusbind.c (syms_of_dbusbind): Add TODO for bus reset
+       on pdumper load.
+
+       * src/data.c (Fdefalias): Use will_dump_p
+       instead of Vpurify_flag.
+       (Fmake_variable_buffer_local): silence compiler warning with -Og
+       by making valcontents UNINIT.
+       (arith_driver): silence compiler warning with UNINIT.
+
+       * src/conf_post.h (ATTRIBUTE_SECTION): new macro.
+
+       * src/composite.c (composition_gstring_put_cache): rehash hash
+       table if needed.
+
+       * src/coding.c (init_coding_once, syms_of_coding): remember
+       pdumper stuff.
+
+       * src/charset.h (charset_table_size, charset_table_user): declare.
+
+       * src/charset.c (charset_table_used, charset_table_size): un-static.
+       (init_charset_oncem, syms_of_charset): remember pdumper stuff.
+
+       * src/category.c (category_table_version): remove obsolete
+       variable.
+
+       * src/callint.c (syms_of_callint): staticpro 'preserved_fns'
+       (init_callproc): use will_dump_p instead of !CANNOT_DUMP.
+
+       * src/bytecode.c (exec_byte_code): rehash table tables if needed
+
+       * src/buffer.c (alloc_buffer_text, free_buffer_text): account for
+       pdumper
+       (init_buffer_once): add TODO; remember stuff for pdumper.
+       (init_buffer): don't take initialized argument; adjust
+       for pdumper.
+
+       * src/atimer.c (init_atimer): initialize subr only if
+       !initialized.
+
+       * src/alloc.c: (vector_marked_p, set_vector_marked)
+       (vectorlike_marked_p, set_vectorlike_marked, cons_marked_p)
+       (set_cons_marked, string_marked_p, set_string_marked)
+       (symbol_marked_p, set_symbol_marked, interval_marked_p)
+       (set_interval_marked): new accessor routines.  Use them
+       instead of raw GC access throughout.
+       (Vdead): make non-static when ENABLE_CHECKING.
+       (vectorlike_nbytes): rename of 'vector_nbytes'; take a vectorlike
+       header as input instead of a vector.
+       (number_finalizers_run): new internal C variable.
+       (mark_maybe_object): check for pdumper objects.
+       (valid_pointer_p): don't be gratuitously inefficient under rr(1).
+       (make_pure_c_string): add support for size_byte = -2 mode
+       indicating that string data points into Emacs image rodata.
+       (visit_vectorlike_root): visits GC roots embedded in
+       vectorlike objects.
+       (visit_buffer_root): visits GC roots embedded in
+       our totally-not-a-buffer buffer global objects.
+       (visit_static_gc_roots): visit GC roots in the Emacs data section.
+       (mark_object_root_visitor): root callback used for conventional GC
+       marking
+       (weak_hash_tables): new internal variable for tracking found weak
+       hash tables during GC.
+       (mark_and_sweep_weak_table_contents): new weak hash table marking.
+       (garbage_collect_1): use new GC root visitor machinery.
+       (mark_vectorlike): accept a vectorlike_header instead of a
+       Lisp_Vector.
+       (mark_frame, mark_window, mark_hash_table): new functions.
+       (mark_object): initialize 'm'; check for pdumper objects and use
+       new mark-bit accessors throughout.  Remove some object-specific
+       marking code and move to helper functions above.
+       (survives_gc_p): check for pdumper objects.
+       (gc-sweep): clear pdumper mark bits.
+       (init_alloc_once_for_pdumper): new helper function for early init
+       called both during normal init and pdumper load.
+       (init_alloc_once): pdumper integration.
+
+       * src/Makefile.in: Rewrite dumping for pdumper; add pdumper.o;
+       invoke temacs with --temacs command line option; build dmpstruct.h
+       from dmpstruct.awk; stop relying on CANNOT_DUMP; clean up pdumper
+       intermediate files during build.
+
+       * nextstep/Makefile.in: build emacs.pdmp into NS packages
+
+       * lisp/startup.el: account for new '--temacs' and '--dump-file'
+       command line option.
+
+       * lisp/loadup.el: rewrite early init to account for pdumper; use
+       injected 'dump-mode' variable (set via the new '--temacs' option)
+       instead of parsing command line.
+
+       * lisp/cus-start.el: Check 'dump-mode' instead of 'purify-flag',
+       since the new 'dump-mode'
+
+       * lib-src/make-fingerprint.c: new program
+
+       * lib-src/Makefile.in: built make-fingerprint utility program
+
+       * configure.ac: Add --with-pdumper toggle to control pdumper
+       support; add --with-unexec toggle to control unexec support.
+       Add --with-dumping option to control which dumping strategy we use
+       by default.  Adjust for pdumper throughout.  Check for
+       posix_madvise.
+
+       * Makefile.in: Add @DUMPING@ substitution; add pdumper mode.
+
+       * .gitignore: Add make-fingerprint, temacs.in, fingerprint.c,
+       dmpstruct.h, and pdumper dump files.
+
+2019-01-15  Paul Eggert  <address@hidden>
+
+       Avoid using obsolete accept-process-output arg
+
+       * lisp/gnus/nnheader.el (nnheader-accept-process-output):
+       * lisp/net/dns.el (dns-query):
+       * lisp/net/imap.el (imap-wait-for-tag):
+       * lisp/net/network-stream.el (network-stream-get-response):
+       * lisp/net/pop3.el (pop3-accept-process-output):
+       * lisp/obsolete/starttls.el (starttls-negotiate-gnutls)
+       (starttls-open-stream-gnutls):
+       * lisp/server.el (server-eval-at):
+       * lisp/textmodes/ispell.el (ispell-accept-output):
+       Do not depend on the obsolete milliseconds argument of
+       accept-process-output.
+
+2019-01-15  Paul Eggert  <address@hidden>
+
+       Fix accept-process-output/process-live-p confusion
+
+       * doc/lispref/processes.texi (Accepting Output):
+       Document the issue.
+       * lisp/net/tramp-adb.el (tramp-adb-parse-device-names):
+       * lisp/net/tramp-rclone.el (tramp-rclone-parse-device-names):
+       * lisp/net/tramp-smb.el (tramp-smb-wait-for-output):
+       * lisp/net/tramp.el (tramp-interrupt-process):
+       * test/src/process-tests.el (make-process/mix-stderr):
+       Fix code that uses accept-process-output and process-live-p.
+       Add FIXME comments as necessary.
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-action-sudo):
+       * lisp/net/tramp.el (tramp-action-out-of-band):
+       Add FIXME comments as necessary.
+
+2019-01-15  Alan Mackenzie  <address@hidden>
+
+       Make CC Mode and electric-pair-mode work together.  This fixes bug 
#33794
+
+       * lisp/progmodes/cc-cmds.el (c-electric-pound, c-electric-slash)
+       (c-electric-star, c-electric-semi&comma, c-electric-colon, 
c-electric-lt-gt):
+       Bind post-self-insert-hook to nil around calls to self-insert-command to
+       protect against arbitrary functionality confusing CC Mode.
+       (c-do-brace-electrics): New function, extracted from c-electric-brace 
and
+       enhanced.
+       (c-electric-brace): Bind post-self-insert-hook to nil around the call to
+       self-insert-command.  When electric-pair-mode is configured, call
+       electric-pair-post-self-insert-function.  Handle any deletion done by 
this
+       function.  Call c-do-brace-electrics for the inserted brace, and 
perhaps for a
+       brace inserted by electric-pair-self-insert-function.
+       (c-electric-paren): Bind post-self-insert-hook to nil around the call to
+       self-insert-command.  When electric-pair-mode is configured, call
+       electric-pair-post-self-insert-function.
+
+2019-01-14  Philipp Stephani  <address@hidden>
+
+       Disable electric quotes for most files in the Emacs codebase.
+
+       * .dir-locals.el: Disable electric quotes in comments and strings for
+       C, Emacs Lisp, and Texinfo, as the Emacs codebase doesn't use them.
+
+2019-01-14  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/package.el (package-activate-all): Fix last change
+
+       * lisp/emacs-lisp/package.el (package-activate-all): Silence load msg
+
+2019-01-14  João Távora  <address@hidden>
+
+       Fix icomplete's cycling when filename filtering kicks in
+
+       (Bug#34070)
+
+       * lisp/icomplete.el (icomplete--filtered-completions): New variable.
+       (icomplete-forward-completions, icomplete-backward-completions):
+       Use it.
+       (icomplete-completions): Set it.
+
+2019-01-14  Robert Pluim  <address@hidden>
+
+       Improve some of the breve/caron/cedilla mappings
+
+       * lisp/leim/quail/latin-pre.el ("latin-prefix"): Describe new 'c with
+       cedilla mapping'.  Extend caron description.  Correct dot above
+       description.  Add new mappings for 'a with breve' and 'c with caron'.
+       Add additional mapping for 'c with cedilla'.  Delete ~o mapping for 'g
+       with dot above'.
+
+2019-01-14  Robert Pluim  <address@hidden>
+
+       Fix some breve and dot above related doc strings
+
+       * lisp/leim/quail/latin-pre.el ("romanian-prefix"): Correct
+       description of 'a with breve'.
+       ("romanian-alt-prefix"): Correct description of 'a
+       with breve'.  Reformat other entries for consistency.
+       ("latin-3-prefix"): Correct 'dot above' description.
+
+2019-01-13  Paul Eggert  <address@hidden>
+
+       Fix translation-region bug with MAX_CHAR
+
+       Also, clean up the code a bit.
+       Actually I discovered the bug while cleaning up the code.
+       * src/editfns.c (Fsubst_char_in_region)
+       (Ftranslate_region_internal): Use bool for booleans.
+       (Ftranslate_region_internal): Fix off-by-1 bug when a
+       translation table translates the maximum char.  Assume C99
+       decl-after-statement, similar minor cleanups.
+       * test/src/editfns-tests.el (test-translate-region-internal):
+       New test.
+
+2019-01-13  Paul Eggert  <address@hidden>
+
+       Minor overflow fix in translate-region-internal
+
+       * src/editfns.c (Ftranslate_region_internal):
+       Use ptrdiff_t, not int, for a count that might exceed INT_MAX.
+
+2019-01-12  Pierre Téchoueyres  <address@hidden>
+
+       Check that feature exist in `sql-set-product-feature' (Bug#30494).
+
+       * lisp/progmodes/sql.el (sql-set-product-feature): Add test for
+       feature existence.
+
+2019-01-11  Glenn Morris  <address@hidden>
+
+       Remove some obsolete stub files from etc/
+
+       * etc/CENSORSHIP, etc/FTP, etc/GNU, etc/LINUX-GNU, etc/MORE.STUFF:
+       * etc/ORDERS, etc/THE-GNU-PROJECT, etc/WHY-FREE:
+       Remove stub files that were marked obsolete 5 years ago.
+
+2019-01-11  Martin Rudalics  <address@hidden>
+
+       Run window change functions during redisplay
+
+       * doc/lispref/windows.texi (Window Sizes): Move (and rename)
+       descriptions of 'window-pixel-height-before-size-change' and
+       'window-pixel-width-before-size-change' to Window Hooks
+       section.
+       (Window Configurations): Remove warning against use of
+       'save-window-excursion' in 'window-size-change-functions'.
+       (Window Hooks): Rewrite section according to redesign of
+       window change functions.
+       * lisp/erc/erc-track.el (erc-window-configuration-change)
+       (erc-modified-channels-update): Call latter directly from
+       'window-configuration-change-hook' instead via
+       'post-command-hook'.
+       * lisp/frame.el (frame-size-changed-p): Change nomenclature
+       in let bindings.
+       * lisp/net/rcirc.el (rcirc-window-configuration-change)
+       (rcirc-window-configuration-change-1): Call latter directly
+       from 'window-configuration-change-hook' instead via
+       'post-command-hook'.
+       * lisp/window.el (window-pixel-width-before-size-change)
+       (window-pixel-height-before-size-change): Defalias.
+       (window--resize-mini-window, window-resize)
+       (adjust-window-trailing-edge, delete-window)
+       (delete-other-windows, balance-windows): Don't run
+       'window-configuration-change-hook' any more from here.
+       (split-window): Don't run 'window-configuration-change-hook'
+       from here.  'run-window-scroll-functions' from here.
+       (window--adjust-process-windows): Run from
+       'window-configuration-change-hook' only.
+       * src/frame.c (old_selected_frame): New Lisp variable.
+       (make_frame): Initialize frame's change_stamp slot.
+       (Fold_selected_frame): New function.
+       * src/frame.h (struct frame): New slots old_selected_window,
+       window_change, change_stamp and number_of_windows.
+       (fset_old_selected_window): New inlined function.
+       (FRAME_WINDOW_CHANGE, FRAME_OLD_SELECTED_WINDOW): New macros.
+       * src/window.c (old_selected_window): New Lisp variable.
+       (wset_old_buffer): New inlined function.
+       (Fframe_old_selected_window, Fold_selected_window)
+       (Fwindow_old_buffer): New functions.
+       (Fwindow_old_pixel_width, Fwindow_old_pixel_height): Rename
+       from Fwindow_pixel_width_before_size_change and
+       Fwindow_pixel_height_before_size_change.  Update doc-strings.
+       (Fwindow_old_body_pixel_width, Fwindow_old_body_pixel_height):
+       New functions.
+       (Fdelete_other_windows_internal): Set frame's window_change
+       slot instead of running 'window-configuration-change-hook'.
+       (Frun_window_configuration_change_hook): In doc-string tell
+       that this function is no more needed.
+       (Frun_window_scroll_functions): Amend doc-string.  Run with
+       window's buffer current.
+       (window_sub_list, window_change_record_windows)
+       (window_change_record_frame, window_change_record)
+       (run_window_change_functions_1, run_window_change_functions):
+       New functions.
+       (set_window_buffer): Set frame's window_change slot instead of
+       running 'window-configuration-change-hook'.
+       (make_window): Don't initialize pixel_width_before_size_change
+       and pixel_height_before_size_change slots.
+       (window_resize_apply, Fdelete_window_internal): Set frame's
+       window_change slot.
+       (Fsplit_window_internal): Set frame's window_change slot.
+       Don't run 'window-scroll-functions' from here.
+       * src/window.h (struct window): New slots old_buffer,
+       change_stamp, old_pixel_width (renamed from
+       pixel_width_before_size_change), old_pixel_height (renamed
+       from pixel_height_before_size_change), old_body_pixel_width
+       and old_body_pixel_height.
+       * src/xdisp.c (init_iterator): Set frame's window_change slot
+       when the body height or width changes.
+       (prepare_menu_bars): Don't run_window_size_change_functions.
+       (redisplay_internal): Don't run_window_size_change_functions,
+       run_window_change_functions instead.
+
+2019-01-10  Paul Eggert  <address@hidden>
+
+       List lengths are always fixnums now
+
+       Without this patch, it was theoretically possible for a list
+       length to be a bignum, which means that safe-length could
+       signal an error (due to generating a too-large bignum) contrary
+       to its documentation.  Fix things to remove the theoretical
+       possibility, so that list lengths are always fixnums (and so
+       that list lenghts are always ptrdiff_t values too, since that
+       is assumed internally anyway).
+       * src/alloc.c (Fcons): Do not allocate so many conses that
+       a list length won’t fit into ptrdiff_t or into fixnum.
+       This matters only on weird platforms; on typical platforms,
+       list lengths always fit anyway.
+       * src/fns.c (list_length, Fsafe_length, proper-list-p):
+       Remove integer overflow checks that are no longer needed.
+
+2019-01-10  Paul Eggert  <address@hidden>
+
+       Minor tweaks to HAVE_NATIVE_SCALING code
+
+       This mostly just reindents.
+       * src/image.c (x_set_image_size): Always define, but to a no-op
+       if !HAVE_NATIVE_SCALING, to avoid an #ifdef elsewhere.
+       (x_create_x_image_and_pixmap): Move decl to avoid an #ifdef.
+       (image_create_x_image_and_pixmap): Move #ifdef outside of call.
+       * src/xterm.c (x_composite_image): Avoid ‘else #endif’.
+
+2019-01-10  Alan Third  <address@hidden>
+
+       Add native image scaling (bug#33587)
+
+       * configure.ac: Test for XRender outside of xft checks.
+       * src/Makefile.in (XRENDER_LIBS): List XRender libs separately from
+       xft libs.
+       * lisp/image.el (image--get-imagemagick-and-warn): Allow resizing if
+       native scaling is available.
+       * src/dispextern.h: Add XRender and image scaling stuff.
+       (struct image): Add XRender Pictures.
+       * src/image.c (x_create_bitmap_mask):
+       (image_create_x_image_and_pixmap): Handle XRender Picture.
+       (scale_image_size):
+       (compute_image_size): Make available when any form of scaling is
+       enabled.
+       (x_set_image_size): New function.
+       (lookup_image): Set image size.
+       (x_create_x_image_and_pixmap): Create XRender Picture when necessary.
+       (x_put_x_image): Handle the case where desired size != actual size.
+       (free_image): Free XRender Pictures.
+       (Fimage_scaling_p): New function.
+       (syms_of_image): Add image-scaling-p.
+       * src/nsimage.m (ns_load_image): Remove NS specific resizing.
+       ([EmacsImage setSizeFromSpec:]): Remove method.
+       (ns_image_set_size): New function.
+       * src/nsterm.m (ns_draw_fringe_bitmap): Cocoa and GNUstep both have
+       the same compositing functions, so remove unnecessary difference.
+       * src/xterm.c (x_composite_image): New function.
+       (x_draw_image_foreground): Use new x_composite_image function.
+       * doc/lispref/display.texi (Image Descriptors): Document
+       image-scaling-p and add resizing descriptors.
+       (ImageMagick Images): Remove resizing descriptors.
+
+2019-01-10  Alan Third  <address@hidden>
+
+       Fix drag and drop behaviour on NS (bug#30929)
+
+       * doc/emacs/macos.texi (Mac / GNUstep Events): Describe the new drag
+       and drop behaviour.
+       * lisp/term/ns-win.el (ns-drag-n-drop): Handle the new event format.
+       (ns-drag-n-drop-other-frame):
+       (ns-drag-n-drop-as-text):
+       (ns-drag-n-drop-as-text-other-frame): Remove functions and key
+       bindings.
+       * src/nsterm.m ([EmacsView performDragOperation:]): Send Emacs event
+       in new format without setting any modifiers.
+
+2019-01-10  Michael Albinus  <address@hidden>
+
+       New test custom--test-theme-variables
+
+       * test/lisp/custom-tests.el (custom--test-user-option)
+       (custom--test-variable): New variables.
+       (custom--test-theme-variables): New test.
+
+       * test/lisp/custom-resources/custom--test-theme.el (custom--test):
+       New file.
+
+2019-01-10  Martin Rudalics  <address@hidden>
+
+       Handle dedicated status in 'window--display-buffer' (Bug#33870)
+
+       * lisp/window.el (display-buffer-record-window): Rewrite
+       doc-string.
+       (window--display-buffer): Remove fifth argument DEDICATED and
+       either directly use a 'dedicated' entry in ALIST or the value
+       of 'display-buffer-mark-dedicated' instead.
+       (display-buffer-in-atom-window, display-buffer-use-some-frame)
+       (display-buffer-pop-up-frame, display-buffer-pop-up-window)
+       (display-buffer-below-selected, display-buffer-at-bottom):
+       Adjust callers of 'window--display-buffer'.
+       (window--make-major-side-window)
+       (display-buffer-in-side-window): Handle dedicated status of
+       the chosen side window via a 'dedicated' alist entry and
+       adjust 'window--display-buffer' call.
+       (display-buffer-in-child-frame): Set up TYPE correctly for and
+       adjust 'window--display-buffer' call.
+       (display-buffer-in-previous-window): Handle dedicated status
+       of a previous window already showing BUFFER.
+       * doc/lispref/windows.texi (Buffer Display Action Alists): New
+       action alist entry 'dedicated'.
+       (Dedicated Windows): Mention new buffer display action alist
+       entry 'dedicated'.
+       * etc/NEWS: Mention new buffer display action alist entry
+       'dedicated'.
+
+2019-01-09  Paul Eggert  <address@hidden>
+
+       Mention Japanese change in documentation
+
+2019-01-09  Yasuhiro KIMURA  <address@hidden>
+
+       Change preferred Japanese coding system to UTF-8
+
+       * lisp/language/japan-util.el (setup-japanese-environment-internal):
+       Use utf-8 as preferred coding system instead of japanese-iso-8bit when
+       system is not MS-Windows. And while I'm at it, fix comment to fit 
current
+       implementation.  (Bug#28705)
+
+2019-01-09  Paul Eggert  <address@hidden>
+
+       Use shortcuts for Flength
+
+       When calculating the length of a Lisp object whose type is
+       known, use a specialized length operation on it to save a bit
+       of runtime overhead.
+       * src/callint.c (Fcall_interactively):
+       * src/minibuf.c (read_minibuf_unwind):
+       Use ASIZE rather than Flength on values that must be vectors.
+       * src/charset.c (Fsort_charsets):
+       * src/coding.c (detect_coding_sjis):
+       (Fdefine_coding_system_internal):
+       * src/data.c (wrong_choice):
+       * src/eval.c (Flet, eval_sub, Fapply, apply_lambda):
+       * src/fns.c (sort_list):
+       * src/font.c (font_vconcat_entity_vectors)
+       (font_find_for_lface):
+       * src/frame.c (Fmodify_frame_parameters):
+       * src/fringe.c (get_logical_fringe_bitmap):
+       * src/ftfont.c (ftfont_get_open_type_spec):
+       * src/gtkutil.c (xg_print_frames_dialog):
+       * src/lread.c (read1, read_vector):
+       * src/keymap.c (Fkey_description):
+       * src/kqueue.c (Fkqueue_add_watch):
+       * src/macfont.m (macfont_get_open_type_spec):
+       * src/menu.c (parse_single_submenu, x_popup_menu_1):
+       * src/minibuf.c (Finternal_complete_buffer):
+       * src/nsfont.m (ns_findfonts, nsfont_list_family):
+       * src/process.c (Fmake_process):
+       * src/search.c (Fset_match_data):
+       * src/xfaces.c (Fx_family_fonts):
+       Use list_length rather than Flength on values that must be lists.
+       * src/fns.c (list_length): New function.
+       (Flength): Use it.
+       * src/nsfont.m (ns_findfonts):
+       Use !NILP (x) rather than XFIXNUM (Flength (x)) != 0.
+       * src/xdisp.c (store_mode_line_string):
+       Use SCHARS rather than Flength on values that must be strings.
+
+2019-01-08  Stefan Monnier  <address@hidden>
+
+       * src/window.c (save_window_save): Revert part of d82e73f
+
+       ...made unnecessary by a058edae.
+
+2019-01-08  Paul Eggert  <address@hidden>
+
+       * admin/notes/unicode: Update to match recent changes.
+
+2019-01-08  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/map.el: Prepare for addition to GNU ELPA
+
+       * lisp/help-fns.el (help--load-prefixes): Demote errors from files.
+
+2019-01-08  Michael Albinus  <address@hidden>
+
+       Fix nasty cut'n'waste error in Tramp
+
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-do-copy-or-rename-file):
+       Remove weird code, resulting from cut'n'waste.
+
+2019-01-08  Michael Albinus  <address@hidden>
+
+       Adapt .gitlab-ci.yml
+
+       * .gitlab-ci.yml (variables): Move outside jobs.  Use
+       "GIT_STRATEGY: fetch".
+       (before_script): Install git.
+       (test-all): Rename from test.  Install inotify-tools.  Run "make
+       check-expensive".
+       (test-filenotify-gio): New job.
+
+2019-01-07  Leo Liu  <address@hidden>
+
+       * lisp/progmodes/js.el: Remove unused (require 'thingatpt).
+
+2019-01-07  Stefan Monnier  <address@hidden>
+
+       Use utf-8 coding system for all our Elisp files
+
+       * lisp/international/ja-dic-cnv.el:
+       * lisp/international/ja-dic-utl.el:
+       * lisp/international/kinsoku.el:
+       * lisp/international/kkc.el:
+       * lisp/language/japan-util.el:
+       * lisp/language/japanese.el:
+       * lisp/leim/quail/cyril-jis.el:
+       * lisp/leim/quail/hanja-jis.el:
+       * lisp/leim/quail/japanese.el:
+       * lisp/leim/quail/py-punct.el:
+       * lisp/leim/quail/pypunct-b5.el: Use utf-8 coding system.
+       * lisp/international/titdic-cnv.el: Use utf-8-emacs coding system.
+
+2019-01-07  Stefan Monnier  <address@hidden>
+
+       * lisp/international/titdic-cnv.el: Save generated files with utf-8
+
+       (titdic-convert, miscdic-convert): Use utf-8 when writing and don't
+       bother putting a `coding:` tag since utf-8 is the default anyway.
+
+2019-01-07  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       f1ce72b ; ChangeLog.3 update
+       5b59cf0 * etc/AUTHORS: Update.
+       2cf20b6 * lisp/textmodes/mhtml-mode.el: Avoid loading flyspell.  (Bug...
+
+       # Conflicts:
+       #       ChangeLog.3
+       #       lisp/textmodes/mhtml-mode.el
+
+2019-01-07  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       0ecff00 Improve commentary in font.h
+       a058eda Fix definition of Qwindow_point_insertion_type (Bug#33871)
+
+2019-01-07  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       5f2aa32 Update Unicode copyright notice
+
+2019-01-07  Michael Albinus  <address@hidden>
+
+       Adapt tests for emba
+
+       * test/lisp/filenotify-tests.el (file-notify-test03-events)
+       (file-notify-test05-file-validity)
+       (file-notify-test06-dir-validity)
+       (file-notify-test07-many-events)
+       (file-notify-test09-watched-file-in-watched-dir): Adapt tests for emba.
+
+2019-01-06  Paul Eggert  <address@hidden>
+
+       Minor INFINITY/NAN cleanup
+
+       * src/lread.c (INFINITY): Use a more-portable way to specify
+       this macro on non-C99 platforms that lack it.
+       (NAN): Remove; unused.
+
+2019-01-06  Paul Eggert  <address@hidden>
+
+       Fix logb on zero, infinite, NaN args
+
+       Change logb to return -infinity, +infinity, and NaN respectively.
+       Formerly logb returned an extreme fixnum to represent
+       infinity, but this is no longer the right thing to do now that
+       we have bignums and there is no extreme integer.
+       * doc/lispref/numbers.texi (Float Basics), etc/NEWS: Document.
+       * src/floatfns.c (Flogb): Implement this.
+
+2019-01-06  Paul Eggert  <address@hidden>
+
+       Use integers for syntax-pps-stats
+
+       * lisp/emacs-lisp/syntax.el (syntax-ppss-stats):
+       Use integers, not floating-point, for stats, now that integers are
+       unbounded.  Almost always these should be fixnums.  Add 1 to last
+       slot’s car so that this addition need not be done at runtime.
+       (syntax-pps-stats, syntax-ppss): Use integers for calculations.
+       (syntax-ppss--update-stats): New convenience function.
+       (syntax-ppss): Use it.
+
+2019-01-06  Michael Albinus  <address@hidden>
+
+       Adapt filenotify-tests for emba
+
+       * test/lisp/filenotify-tests.el (file-notify-test03-events)
+       (file-notify-test05-file-validity)
+       (file-notify-test06-dir-validity)
+       (file-notify-test07-many-events)
+       (file-notify-test09-watched-file-in-watched-dir): Adapt tests for emba.
+
+2019-01-05  Khaled Hosny  <address@hidden>
+
+       Always set explicit HarfBuzz buffer direction
+
+       If no direction was given by the caller, I assume the text will be drawn
+       left to right, if this is not the case then callers must provide
+       sensible direction. Letting HarfBuzz guess the direction is not
+       appropriate since shaping and drawing must use the same direction.
+
+       Also move hb_buffer_guess_segment_properties() call to the end, so it
+       only guessing unset properties, until we completely get rid of it.
+
+2019-01-05  Khaled Hosny  <address@hidden>
+
+       We need the bidi level not the paragraph direction
+
+2019-01-05  Paul Eggert  <address@hidden>
+
+       Port to platforms where tputs is in libtinfow
+
+       * configure.ac (tputs_library): Also try tinfow, ncursesw (Bug#33977).
+
+2019-01-05  João Távora  <address@hidden>
+
+       New flymake-supress-zero-counters defcustom
+
+       A feature suggested by Yuri Khan <address@hidden>.
+
+       * lisp/progmodes/flymake.el (flymake-suppress-zero-counters): New
+       variable.  (flymake--mode-line-format): Use it.
+
+2019-01-05  João Távora  <address@hidden>
+
+       Fix Flymake tests for GCC 8.2.0
+
+       (Bug#33872)
+
+       "Now you have two problems..."
+
+       * lisp/progmodes/flymake-cc.el (flymake-cc--make-diagnostics):
+       Adjust regexp.
+
+2019-01-05  John Shahid  <address@hidden>  (tiny change)
+
+       Unbreak Flymake's diagnostics buffer when revisiting source
+
+       (Bug#33881)
+
+       * lisp/progmodes/flymake.el (flymake-show-diagnostics-buffer):
+       Set flymake--diagnostics-buffer-source before reverting.
+
+2019-01-05  Drew Adams  <address@hidden>
+
+       Don't signal error from "C-x C-k l" about mouse events
+
+       * lisp/edmacro.el (edmacro-fix-menu-commands): Ignore mouse
+       events instead of signaling an error.  Display unsupported
+       events in the error message.  (Bug#33930)
+
+2019-01-05  Joel Rosdahl  <address@hidden>  (tiny change)
+
+       Fix electric indent bug in python-mode after dedenting colon
+
+       * lisp/progmodes/python.el (python-indent-post-self-insert-function):
+       Use markers instead of positions when reindenting statement(s) after
+       inserting electric colon to avoid reindenting too many
+       statements (bug#22663).
+
+       * test/lisp/progmodes/python-tests.el (python-indent-electric-colon-2):
+       Improve test case to also verify the fix of bug#22663.
+
+2019-01-04  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of 'server-name'
+
+       * doc/emacs/misc.texi (Emacs Server, TCP Emacs server)
+       (emacsclient Options):
+       * lisp/server.el (server-name): Document the usage of
+       'server-name' to specify the server file as an absolute file
+       name.  (Bug#33934)
+
+2019-01-03  Michael Albinus  <address@hidden>
+
+       Mark some filenotify tests unstable on emba
+
+       * .gitlab-ci.yml (test): Add EMACS_EMBA_CI variable.
+
+       * test/lisp/filenotify-tests.el (file-notify-test03-events)
+       (file-notify-test05-file-validity)
+       (file-notify-test06-dir-validity)
+       (file-notify-test07-many-events)
+       (file-notify-test09-watched-file-in-watched-dir): Mark them as
+       :unstable on emba.
+
+2019-01-03  Michael Albinus  <address@hidden>
+
+       Adapt test/README
+
+       * test/README: Speak about continous integration tests on hydra
+       and emba.
+
+2019-01-03  Andrey Kotlarski  <address@hidden>
+
+       Fix EBROWSE parsing of classes declared final.
+
+2019-01-02  Philipp Stephani  <address@hidden>
+
+       Avoid a compiler warning on macOS.
+
+       * src/xdisp.c (expose_window_tree): Define variable f only if used.
+
+2019-01-02  Nicolas Petton  <address@hidden>
+
+       Document the new functions of seq.el
+
+       * etc/NEWS: New section documenting the addition of `seq-first' and
+       `seq-rest'.
+
+2019-01-02  Eli Zaretskii  <address@hidden>
+
+       Fix text direction of the HarfBuzz shaping buffer
+
+       * src/indent.c (scan_for_column, compute_motion):
+       * src/xdisp.c (CHAR_COMPOSED_P): Pass PDIR argument to
+       composition_reseat_it.
+       * src/composite.c (composition_reseat_it): Accept an
+       additional argument PDIR that provides the current paragraph's
+       base direction; all callers changed.  Use PDIR to fix
+       calculation of the DIRECTION argument to autocmp_chars.
+       (Bug#33944)
+       * src/composite.h: Include dispextern.h.
+       (composition_reseat_it): Update prototype.
+
+2019-01-02  João Távora  <address@hidden>
+
+       Extend electric-layout-mode to handle more complex layouts (bug#33794)
+
+       Entries in electric-layout-rules can specify multiple
+       newline-related actions which are executed in order of appearance.
+
+       Also, have it play nice with electric-pair-mode when inserting a
+       newlines, particularly with electric-pair-open-newline-between-pairs.
+
+       Entries in electric-layout-rules can also be functions.  Among other
+       things, the logic behind electric-pair-open-newline-between-pairs
+       could now be moved to electric-layout-mode, but this commit doesn't do
+       that yet.
+
+       This change was motivated by bug#33794 and is an alternative solution
+       to the problem reported in that bug.
+
+       * lisp/electric.el (electric-layout-rules): Adjust docstring.
+       (electric-layout-post-self-insert-function): Call
+       electric-layout-post-self-insert-function-1.
+       (electric-layout-post-self-insert-function-1): Rename from
+       electric-layout-post-self-insert-function.  Redesign.
+       (electric-layout-local-mode): New minor mode.
+
+       * test/lisp/electric-tests.el (electric-layout-int-main-kernel-style)
+       (electric-layout-int-main-allman-style)
+       (electric-modes-in-c-mode-with-self-insert-command)
+       (electric-pair-mode-newline-between-parens)
+       (electric-layout-mode-newline-between-parens-without-e-p-m)
+       (electric-layout-mode-newline-between-parens-without-e-p-m-2): New
+       tests.
+       (plainer-c-mode): New helper.
+
+2019-01-01  Paul Eggert  <address@hidden>
+
+       Don’t limit range error reports to fixnums
+
+       * src/lisp.h (CHECK_RANGED_INTEGER): When signaling an error,
+       don’t arbitrarily limit the reported valid range to fixnums.
+
+2019-01-01  Paul Eggert  <address@hidden>
+
+       Bignums from garbage-collect, memory-use-counts
+
+       Do not limit the results of garbage-collect and memory-use-counts
+       to fixnums, as they might be bignums now on 32-bit hosts.
+       * src/lisp.h (byte_ct): New type.
+       * src/alloc.c (object_ct): New type.
+       (consing_since_gc, gc_relative_threshold)
+       (memory_full_cons_threshold, total_string_bytes):
+       Now byte_ct, not EMACS_INT.
+       (total_conses, total_symbols, total_buffers, total_free_conses)
+       (total_free_symbols, total_free_floats, total_floats)
+       (total_free_intervals, total_intervals, total_strings)
+       (total_free_strings, total_vectors, total_vector_slots)
+       (total_free_vector_slots): Now object_ct, not EMACS_INT.
+       (bounded_number): Remove.  All uses removed.
+       (object_bytes): New function.
+       (total_bytes_of_live_objects, garbage_collect_1): Use byte_ct,
+       not size_t, to count total GC bytes where multiple objects are
+       involved.
+       (garbage_collect_1, Fmemory_use_counts):
+       Do not limit returned counts to fixnums.
+       (sweep_conses, sweep_floats, sweep_intervals, sweep_symbols):
+       Use object_ct, not EMACS_INT, to count GC objects.
+
+2019-01-01  Paul Eggert  <address@hidden>
+
+       Be consistent about list length fixnum overflow
+
+       * src/fns.c (Flength, Fproper_list_p): Use overflow_error to
+       report the (typically impossible) fixnum overflow.
+
+2019-01-01  Paul Eggert  <address@hidden>
+
+       Fix woman.el to not confuse scan-sexps
+
+       * lisp/woman.el (woman-unpadded-space-char):
+       Escape the close-bracket (Bug#33940).
+
+2019-01-01  Paul Eggert  <address@hidden>
+
+       decode-time: allow bignum years
+
+       * src/timefns.c (TM_YEAR_BASE):
+       Now a constant as it need not be a macro.
+       (Fdecode_time): Do not signal an overflow merely because the
+       Gregorian year number does not fix in a fixnum (which can
+       happen on hosts with 64-bit time_t and with 32-bit int and
+       EMACS_INT).
+
+2018-12-31  Paul Eggert  <address@hidden>
+
+       Fix integer overflow check in json code
+
+       * src/json.c (json_to_lisp): Check for ptrdiff_t overflow,
+       not fixnum overflow.
+
+2018-12-31  Paul Eggert  <address@hidden>
+
+       Update more copyright years
+
+       Update some other copyright years automatically, by running:
+       Run 'UPDATE_COPYRIGHT_YEAR=2019 \
+       UPDATE_COPYRIGHT_USE_INTERVALS=1 \
+       UPDATE_COPYRIGHT_MAX_LINE_LENGTH=79 admin/update-copyright'
+       followed by 'admin/merge-gnulib'.
+
+2018-12-31  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates mostly just copyright-year changes, plus
+       recent minor updates from glibc for the non-Emacs regular
+       expression code.
+
+2018-12-31  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       2fcf2df Fix copyright years by hand
+       26bed8b Update copyright year to 2019
+       2814292 Fix value of default frame height.  (Bug#33921)
+
+2018-12-31  Paul Eggert  <address@hidden>
+
+       Remove UCHAR typedef
+
+       * src/lisp.h (_UCHAR_T, UCHAR): Remove.  This workaround for
+       circa-1993 old-AIX has evidently not been needed for decades.
+       Tested on AIX 7.1, the oldest AIX version IBM still supports.
+
+2018-12-31  Michael Albinus  <address@hidden>
+
+       Reset `tramp-default-proxies-alist' in case of errors
+
+       * lisp/net/tramp-sh.el (tramp-compute-multi-hops):
+       Reset `tramp-default-proxies-alist' in case of errors.
+
+2018-12-31  Michael Albinus  <address@hidden>
+
+       Precise documentation of Tramp ad-hoc proxies
+
+       * doc/misc/tramp.texi (Ad-hoc multi-hops): Remove superfluous
+       first entry about %h and %u.  Describe, how to remove ad-hoc proxy
+       definitions.
+       (Cleanup remote connections): Mention, that also ad-hoc proxy
+       definitions are removed.
+
+       * etc/NEWS: Mention default host names in Tramp ad-hoc proxies.
+
+2018-12-31  Michael Albinus  <address@hidden>
+
+       * lisp/files.el (locate-file, files--splice-dirname-file): Fix 
docstring.
+
+2018-12-30  Paul Eggert  <address@hidden>
+
+       Fix assertion-violations on non-integers
+
+       These bugs were introduced after bignums were added.
+       * src/data.c (cons_to_unsigned, cons_to_signed):
+       * src/xdisp.c (calc_line_height_property):
+       Invoke integer_to_intmax and integer_to_uintmax only on integers.
+
+2018-12-30  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       82c82b1 (origin/emacs-26) In user manual fix value of default frame h...
+       2e8825d Improve documentation of 'file-local-name' and related APIs
+       11f0635 ; Remove comment in esh-proc.el
+
+       # Conflicts:
+       #       lisp/simple.el
+
+2018-12-30  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       3abebeb * lisp/files.el (cd): Fix last change.  (Bug#33791)
+       7a60a4f Fix remote directories in Eshell on MS-Windows
+       822a2d0 Fix :type 'group' in defcustom
+       a731c56 Fix NS fringe bitmap drawing bug (bug#33864)
+       0c52459 Fix commentary in dispnew.c
+       c9fdd1b Improve accept-process-process doc
+       9578c2a Fix a simple bug in display-buffer-use-some-frame
+       0f9be72 Clarify thread switching while waiting for process output
+       24ddea0 Improve process doc. with respect to handling of large input ...
+       2931016 ; Cosmetic changes in etc/NEWS
+       85516b8 Minor copyedits in landmark.el
+
+       # Conflicts:
+       #       etc/NEWS
+
+2018-12-30  Alan Mackenzie  <address@hidden>
+
+       CC Mode - use font-lock-comment-delimiter-face on block comment end 
delimiters
+
+       In particular when the default comment type is currently line comments. 
 Do
+       this by setting font-lock-comment-end-skip.
+
+       * lisp/progmodes/cc-cmds.el (c-font-lock-comment-end-skip): New lang 
const.
+       (font-lock-comment-end-skip): New c-lang-setvar.
+
+2018-12-30  Martin Rudalics  <address@hidden>
+
+       Handle 'unbound' like nil for 'window-point-insertion-type' (Bug#33871)
+
+       * src/window.c (save_window_save): When setting the marker
+       insertion type of saved window points treat a buffer local
+       value of 'unbound' for 'window-point-insertion-type' like
+       nil (Bug#33871).
+
+2018-12-29  Dmitry Gutov  <address@hidden>
+
+       Skip 'basic' completion style for project-find-file
+
+       * lisp/minibuffer.el (completion-category-defaults): Skip 'basic'
+       for 'project-file', in order not to prefer files at the top of the
+       directory tree.
+
+2018-12-29  Mattias Engdegård  <address@hidden>
+
+       Handle raw bytes, and LF in ranges, in rx `any' argument strings
+
+       * lisp/emacs-lisp/rx.el (rx-check-any-string): Rewrite to handle raw 
bytes
+       in unibyte strings and accept LF as range endpoints (Bug#33205).
+       * test/lisp/emacs-lisp/rx-tests.el: Add tests for the above.
+
+2018-12-29  Eli Zaretskii  <address@hidden>
+
+       Provide text directionality and language to HarfBuzz shaper
+
+       * lisp/language/tv-util.el (tai-viet-composition-function):
+       * lisp/language/ethio-util.el (ethio-composition-function):
+       * lisp/language/japanese.el (compose-gstring-for-variation-glyph):
+       * lisp/language/thai-util.el (thai-composition-function):
+       * lisp/language/misc-lang.el (arabic-shape-gstring):
+       * lisp/language/lao-util.el (lao-composition-function):
+       * lisp/language/hebrew.el (hebrew-shape-gstring):
+       * lisp/composite.el (compose-gstring-for-graphic)
+       (compose-gstring-for-dotted-circle, auto-compose-chars)
+       (compose-gstring-for-terminal): Accept 2nd argument DIRECTION; all
+       callers changed.
+
+       * src/composite.c (composition_reseat_it): Call
+       auto-composition-function with one more argument DIRECTION.
+       (syms_of_composite) <auto-composition-function>: Update the doc
+       string.
+       * src/ftfont.c (ftfont_shape_by_hb): Compute language and
+       direction, and set buffer properties accordingly.
+       * src/composite.c (autocmp_chars):
+       * src/w32uniscribe.c (uniscribe_shape):
+       * src/xftfont.c (xftfont_shape):
+       * src/ftfont.c (ftfont_shape, ftfont_shape_by_hb):
+       * src/font.c (Ffont_shape_gstring): Accept an additional argument
+       DIRECTION.
+       * src/macfont.m (lgstring_direction): New enum.
+       (mac_font_shape_1, mac_screen_font_shape, mac_font_shape):
+       Accept an additional argument specifying text direction.  All
+       callers changed.
+       * src/font.c (syms_of_font): New symbols QL2R and QR2L.
+       * src/font.h (shape): Accept new argument DIRECTION.  All
+       implementations changed.  (Bug#33729)
+       (ftfont_shape): Update prototype.
+
+2018-12-29  Martin Rudalics  <address@hidden>
+
+       Avoid that unwind_format_mode_line messes up buffer points (Bug#32777)
+
+       * src/xdisp.c (format_mode_line_unwind_data): Before
+       temporarily selecting a window on another frame, separately save
+       the point of that window's buffer too.
+       (unwind_format_mode_line): After undoing the temporary
+       selection of a window on another frame, separately restore the
+       buffer point of that window.  This is needed since the
+       operation that deselects that window will have stored back the
+       point of that window into its buffer's point which is wrong
+       since that window was never "officially" selected (Bug#32777).
+
+2018-12-28  Dmitry Gutov  <address@hidden>
+
+       project-find-file: Move the common parent directory to the prompt
+
+       * lisp/progmodes/project.el (project--completing-read-strict):
+       Extract the common parent directory of all files first
+       (https://lists.gnu.org/archive/html/emacs-devel/2018-12/msg00444.html).
+
+2018-12-28  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-sh.el (tramp-set-remote-path): Handle platforms w/o 
getconf.
+
+2018-12-27  Paul Eggert  <address@hidden>
+
+       Improve motivations in gomoku messages
+
+       * lisp/play/gomoku.el (gomoku-terminate-game):
+       Don't make six-year-old children cry (Bug#33803).
+
+2018-12-27  Paul Pogonyshev  <address@hidden>
+
+       Accept 1-arg 'substring' calls in byte compiler
+
+       Those have been supported by the function implementation since
+       commit 2014-03-31T12:06:34Z!address@hidden (Bug#33807).
+       * lisp/emacs-lisp/bytecomp.el: substring has 1-3 args, not 2-3.
+
+2018-12-27  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       * build-aux/config.guess, lib/regcomp.c, lib/regex.c:
+       * lib/regex_internal.h, lib/regexec.c: Copy from Gnulib.
+
+2018-12-27  Eli Zaretskii  <address@hidden>
+
+       Avoid assertion violation in directory-files
+
+       * src/dired.c (directory_files_internal): Make sure MATCH is
+       either nil or a string.  (Bug#33889)
+
+2018-12-27  Michael Albinus  <address@hidden>
+
+       Bump Tramp version to 2.4.1
+
+       * doc/misc/trampver.texi:
+       * lisp/net/tramp.el:
+       * lisp/net/trampver.el: Change version to "2.4.1".
+
+2018-12-27  Martin Rudalics  <address@hidden>
+
+       Fix last change of debug.el
+
+       * lisp/emacs-lisp/debug.el (debug): In noninteractive calls do
+       the buffer text truncation in the debugger buffer.
+
+2018-12-26  Dmitry Gutov  <address@hidden>
+
+       Tone down diff-refine-removed and diff-refine-added as well
+
+       * lisp/vc/diff-mode.el (diff-refine-removed, diff-refine-added):
+       Change backgrounds in light backgrounds themes (bug#33567).
+
+2018-12-26  Paul Eggert  <address@hidden>
+
+       Port message-checksum to bignums
+
+       * lisp/gnus/message.el (message--rotate-fixnum-left): New function.
+       (message-checksum): Use it instead of assuming fixnum-only arithmetic.
+       This should fix Bug#33083.
+
+2018-12-26  Martin Rudalics  <address@hidden>
+
+       Set up debugger buffer earlier and fit window to it (Bug#32825)
+
+       * lisp/emacs-lisp/debug.el (debug): Set up debugger buffer
+       before displaying it and advise 'display-buffer' to fit the
+       window to it (Bug#32825).
+
+2018-12-25  Dmitry Gutov  <address@hidden>
+
+       Tone down diff-added and diff-removed in light themes
+
+       * lisp/vc/diff-mode.el (diff-removed, diff-added): Tone down
+       light background colors (bug#33567).
+
+2018-12-25  Juri Linkov  <address@hidden>
+
+       * lisp/isearch.el (isearch-done): Reset 
isearch-lazy-highlight-last-string
+
+       to nil (bug#33838).
+       (isearch-lazy-highlight-new-loop)
+       (isearch-lazy-highlight-buffer-update): Don't set arg ELLIPSIS of
+       isearch-message to t to not reset the value of isearch-error.
+
+2018-12-25  Juri Linkov  <address@hidden>
+
+       * lisp/vc/diff-mode.el (diff-syntax-fontify-hunk): Add `*' to names
+
+       of ephemeral buffers like in " *org-src-fontification:%s*" from
+       `org-src-font-lock-fontify-block'.  (Bug#33567)
+       (diff-header, diff-file-header): Tone down light background colors.
+
+2018-12-25  Dmitry Gutov  <address@hidden>
+
+       Prepend 'rubocop' with 'bundle exec' when appropriate
+
+2018-12-25  Dmitry Gutov  <address@hidden>
+
+       Use rubocop --lint when no .rubocop.yml
+
+       * lisp/progmodes/ruby-mode.el (ruby-flymake-rubocop): When no
+       config file found, only run lint cops (bug#31760).
+
+2018-12-25  Michael Albinus  <address@hidden>
+
+       Provide tramp-adb-handle-make-process
+
+       * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
+       Add `tramp-adb-handle-make-process' and
+       `tramp-handle-start-file-process'.
+       (tramp-adb-handle-make-process): New defun, derived from
+       `tramp-adb-handle-start-file-process'.  (Bug#28691)
+
+2018-12-24  Michael Albinus  <address@hidden>
+
+       Provide tramp-sh-handle-make-process
+
+       * lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
+       Add `tramp-sh-handle-make-process' and
+       `tramp-handle-start-file-process'.
+       (tramp-sh-handle-make-process): New defun, derived from
+       `tramp-sh-handle-start-file-process'.  (Bug#28691)
+
+       * lisp/net/tramp.el (tramp-handle-start-file-process): New defun.
+
+       * test/lisp/net/tramp-tests.el (tramp-test30-make-process):
+       New test.
+       (tramp-test31-interrupt-process, tramp-test32-shell-command)
+       (tramp-test33-environment-variables)
+       (tramp-test33-environment-variables-and-port-numbers)
+       (tramp-test34-explicit-shell-file-name, tramp-test35-exec-path)
+       (tramp-test35-remote-path, tramp-test36-vc-registered)
+       (tramp-test37-make-auto-save-file-name)
+       (tramp-test38-find-backup-file-name)
+       (tramp-test39-make-nearby-temp-file)
+       (tramp-test40-special-characters)
+       (tramp-test40-special-characters-with-stat)
+       (tramp-test40-special-characters-with-perl)
+       (tramp-test40-special-characters-with-ls, tramp-test41-utf8)
+       (tramp-test41-utf8-with-stat, tramp-test41-utf8-with-perl)
+       (tramp-test41-utf8-with-ls, tramp-test42-file-system-info)
+       (tramp-test43-asynchronous-requests, tramp-test44-auto-load)
+       (tramp-test44-delay-load, tramp-test44-recursive-load)
+       (tramp-test44-remote-load-path, tramp-test45-unload): Rename.
+
+2018-12-23  Dmitry Gutov  <address@hidden>
+
+       xref-goto-xref: Highlight the exact symbol after the jump
+
+       * lisp/progmodes/xref.el (xref-goto-xref): Bind
+       'xref--current-item' to highlight the exact symbol after the jump
+       and not the whole line.
+
+2018-12-23  Dmitry Gutov  <address@hidden>
+
+       execute-extended-command: Skip waiting in more cases
+
+       * lisp/simple.el (execute-extended-command): Don't wait when
+       there's no binding the current command, and the user doesn't want
+       to see "shorter" suggestions, or TYPED is nil anyway.
+
+2018-12-23  Khaled Hosny  <address@hidden>
+
+       Clarify one FIXME a bit
+
+2018-12-23  Khaled Hosny  <address@hidden>
+
+       Cache HarfBuzz buffer
+
+       Potentially faster and less memory allocations. I did not do any
+       measurements though, so possibly a micro optimization.
+
+2018-12-23  Khaled Hosny  <address@hidden>
+
+       Remove one more FIXME
+
+2018-12-23  Michael Albinus  <address@hidden>
+
+       Handle `make-process' in Tramp and ange-ftp
+
+       * doc/lispref/processes.texi (Asynchronous Processes):
+       Explain, that not all file name handlers support `make-process'.
+
+       * lisp/net/ange-ftp.el:
+       * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
+       * lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
+       * lisp/net/tramp-rclone.el (tramp-rclone-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):
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
+       * lisp/net/tramp.el (tramp-file-name-for-operation): Add `make-process'.
+
+       * lisp/vc/ediff-util.el:
+       * src/process.c:
+       * test/src/process-tests.el: Use "file name handler" consequently.
+
+2018-12-22  Juri Linkov  <address@hidden>
+
+       * lisp/simple.el (next-error-no-select): Use save-selected-window.
+
+       Let-bind display alist of display-buffer-overriding-action to
+       `(inhibit-same-window . t)'.  (Bug#32607)
+
+2018-12-22  Philipp Stephani  <address@hidden>
+
+       Add file name handler support for 'make-process' (Bug#28691)
+
+       * src/process.c (Fmake_process): Add new keyword argument
+       ':file-handler'.
+       (syms_of_process) <make-process, :file-handler>: Define new symbols.
+
+       * lisp/files.el (file-name-non-special): Add support for
+       'make-process'.
+
+       * test/src/process-tests.el (make-process/file-handler/found)
+       (make-process/file-handler/not-found)
+       (make-process/file-handler/disable): New unit tests.
+       (process-tests--file-handler): New helper function.
+
+       * test/lisp/files-tests.el
+       (files-tests-file-name-non-special-make-process): New unit test.
+
+       * doc/lispref/files.texi (Magic File Names): Document that
+       'make-process' can invoke file name handlers.
+
+       * doc/lispref/processes.texi (Asynchronous Processes): Document
+       ':file-handlers' argument to 'make-process'.
+
+       * etc/NEWS (Lisp Changes in Emacs 27.1): Mention new
+       :file-handler argument for 'make-process'.
+
+2018-12-22  Eli Zaretskii  <address@hidden>
+
+       * etc/HELLO: Add missing charset properties for Japanese and Korean.
+
+2018-12-22  Charles A. Roelli  <address@hidden>
+
+       Macroexpand before evaluating in eval-expression (bis)
+
+       * lisp/simple.el (eval-expression): Macroexpand before
+       evaluating.  This repeats the fix made for Bug#20730 in
+       another branch of the code a few lines down.
+
+2018-12-22  Khaled Hosny  <address@hidden>
+
+       Replace another FIXME with a TODO and expanded comment
+
+       Replace a FIXME with an expanded comment
+
+2018-12-22  Thomas Fitzsimmons  <address@hidden>
+
+       ldap.el: Do not set process-connection-type
+
+       * lisp/net/ldap.el (ldap-search-internal): Leave
+       process-connection-type at its default value.  (Bug#33050)
+
+2018-12-22  Michael Albinus  <address@hidden>
+
+       Use "file name handler" consequently
+
+       * doc/lispref/files.texi:
+       * doc/lispref/processes.texi:
+       * doc/misc/ediff.texi:
+       * lisp/simple.el:
+       * lisp/vc/ediff-ptch.el:
+       * src/buffer.c:
+       * src/dired.c:
+       * src/fileio.c:
+       * src/image.c:
+       * src/insdel.c:
+       * src/w32fns.c: Use "file name handler" consequently.
+
+2018-12-22  Khaled Hosny  <address@hidden>
+
+       Subclass default HarfBuzz Unicode functions
+
+       Instead of creating new functions from scratch, subclass the default
+       implementation and override the selected functions we want/can
+       override.  (Bug#33729)
+
+2018-12-22  Khaled Hosny  <address@hidden>
+
+       Fix previous commit
+
+2018-12-22  Khaled Hosny  <address@hidden>
+
+       Properly fix building with HarfBuzz and without libotf
+
+       HarfBuzz support does not depend on libotf, the build breakage when
+       libotf is missing was because code guarded with:
+
+        #if defined HAVE_M17N_FLT && defined HAVE_LIBOTF
+
+       was incorrectly changed to:
+
+        #if defined HAVE_M17N_FLT || defined HAVE_HARFBUZZ
+
+       this is now properly fixed by making it:
+
+        #if (defined HAVE_M17N_FLT && defined HAVE_LIBOTF) || defined 
HAVE_HARFBUZZ
+
+       Other changes in previous commits were reverted.
+
+2018-12-21  Michael Albinus  <address@hidden>
+
+       Fix Bug#33735
+
+       * lisp/net/tramp-sh.el (tramp-sh-gio-monitor-process-filter):
+       Delete empty lines.  (Bug#33735)
+       (tramp-sh-inotifywait-process-filter): Use `string-match'.
+       (tramp-set-remote-path): Check for PIPE_BUF but PATH_MAX.
+
+       * test/lisp/filenotify-tests.el: Handle $REMOTE_FILE_NOTIFY_LIBRARY.
+       (file-notify--deftest-remote): Suppress vc-handled-backends.
+       (file-notify-test08-backup): Do not expect failure on hydra.
+       (Bug#33735).
+
+2018-12-21  Michael Albinus  <address@hidden>
+
+       * test/lisp/filenotify-tests.el, test/lisp/shadowfile-tests.el:
+
+       Don't require tramp-sh, bug#33781 is fixed.
+
+2018-12-20  Juri Linkov  <address@hidden>
+
+       * lisp/emacs-lisp/debug.el (debug): Add display-buffer-below-selected
+
+       to display actions of pop-to-buffer, and `(window-min-height . 10)'
+       to display alist.  (Bug#32825)
+
+2018-12-20  Juri Linkov  <address@hidden>
+
+       * lisp/windmove.el (windmove-delete-in-direction): Change prefix arg C-u
+
+       to kill the buffer.  Add prefix arg M-0 to delete the selected window.
+       (Bug#32790)
+
+2018-12-20  Juri Linkov  <address@hidden>
+
+       * lisp/window.el (switch-to-buffer-obey-display-actions): New defcustom.
+
+       (switch-to-buffer): Use it.  (Bug#32790)
+       (switch-to-buffer-preserve-window-point):  Mention it in docstring.
+
+       * lisp/windmove.el (windmove-display-in-direction): Mention it in 
docstring.
+
+       * doc/lispref/windows.texi (Switching Buffers):
+       Document switch-to-buffer-obey-display-actions.
+
+2018-12-20  Juri Linkov  <address@hidden>
+
+       * lisp/hi-lock.el (hi-salmon, hi-aquamarine): New faces.  (Bug#33398)
+
+       (hi-lock-face-defaults): Add them.
+       (hi-green-b, hi-red-b): Tone down foreground colors.
+
+2018-12-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       081fb69 (origin/emacs-26) Check result from c-backward-token-2 to avo...
+       f4ea746 cl-make-random-state was not copying its arg
+
+2018-12-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       4c6c327 Restrict downcasing in elisp xref tests (bug#25534)
+       ab8ed41 Avoid test failures if directory name looks like a regexp
+
+2018-12-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       5825279 * doc/lispintro/emacs-lisp-intro.texi (Finding More): Fix xref.
+
+2018-12-20  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/map.el: Add support for plists
+
+       (map--plist-p, map--plist-delete): New functions.
+       (map-elt, map-delete, map-length, map-into, map-put!, map-insert)
+       (map-apply, map-do): Handle the plist case.
+
+       * test/lisp/emacs-lisp/map-tests.el (with-maps-do): Add sample plist.
+       (test-map-put!): The behavior of map-put! is not the same for plists as
+       for alists.
+
+2018-12-20  Michael Albinus  <address@hidden>
+
+       * test/lisp/net/tramp-tests.el (tramp-test32-environment-variables):
+
+       Remove expected failure.
+
+2018-12-20  Michael Albinus  <address@hidden>
+
+       Fix Bug#33781
+
+       * lisp/net/tramp-sh.el (tramp-set-remote-path): Use a temporary
+       file for setting $PATH, if it exceeds PATH_MAX on the remote system.
+       (tramp-send-command-and-read): Ignore errors if NOERROR.  (Bug#33781)
+
+       * test/lisp/net/tramp-tests.el (tramp-test34-remote-path): New test.
+
+2018-12-19  Glenn Morris  <address@hidden>
+
+       Skip rather than fail in flymake tests
+
+       * test/lisp/progmodes/flymake-tests.el
+       (flymake-tests--wait-for-backends): Skip rather than fail if
+       backends are slow to respond.  This always seems like a temporary
+       system glitch and not something that should be reported as a failure.
+
+2018-12-19  Eric Abrahamsen  <address@hidden>
+
+       Make gnus-newsgroup-name local var available to gnus-summary-mode
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-mode-group): New defvar for
+         passing gnus-newsgroup-name (a local variable) into the body of
+         gnus-summary-mode, so that it's available to gnus-summary-mode-hook.
+
+2018-12-19  Juri Linkov  <address@hidden>
+
+       * lisp/vc/diff-mode.el (diff-syntax-fontify-props): Use font-lock-ensure
+
+       unconditionally.  (Bug#33798)
+
+2018-12-19  Paul Eggert  <address@hidden>
+
+       Minor fixes/simplifications to time functions
+
+       * doc/lispintro/emacs-lisp-intro.texi (Files List): Simplify.
+       * doc/lispref/os.texi (Time of Day): Mention format-time-string
+       as an alternative to current-time-string.
+       * lisp/arc-mode.el (archive-unixdate, archive-unixtime):
+       Port better to future versions of Emacs where (COUNT . HZ)
+       will take precedence to (HI . LO).
+       * lisp/arc-mode.el (archive-unixtime):
+       * lisp/calendar/todo-mode.el (todo-insert-item--basic)
+       (todo-item-done, todo-read-time):
+       Prefer format-time-string to substringing current-time-string.
+       * lisp/calc/calc-forms.el (calc-time, calcFunc-now):
+       Prefer decode-time to parsing the output of current-time-string.
+       * lisp/emacs-lisp/cl-extra.el (cl--random-time):
+       Prefer encode-time to hashing the output of current-time-string.
+       * lisp/gnus/gnus-score.el (gnus-score-headers)
+       (gnus-score-adaptive):
+       Avoid stringifying and then reparsing timestamp.
+       * src/timefns.c (Fencode_time): Omit redundant assignment.
+
+2018-12-19  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-sh.el (tramp-set-remote-path): Send a warning, if
+
+       $PATH exceeds PATH_MAX on the remote system.
+
+2018-12-19  Nicholas Drozd  <address@hidden>
+
+       * src/editfns.c (Finsert_char): Skip unnecessary fixnum check.
+
+2018-12-18  Glenn Morris  <address@hidden>
+
+       Skip a remote filenotify test on hydra
+
+       * test/lisp/filenotify-tests.el (file-notify--deftest-remote):
+       Add optional argument to skip test.
+       (file-notify-test07-many-events-remote): Skip on hydra.nixos.org.
+
+2018-12-18  Stefan Monnier  <address@hidden>
+
+       * lisp/font-lock.el: Use lexical-binding
+
+       (font-lock-initial-fontify, font-lock-compile-keywords):
+       Silence compiler warning.
+       (font-lock-ensure-function): Fix some problems in last commit.
+
+2018-12-18  Stefan Monnier  <address@hidden>
+
+       * lisp/font-lock.el (font-lock-ensure-function): Fix bug#33798
+
+2018-12-18  Juri Linkov  <address@hidden>
+
+       More font-lock improvements for diff-mode
+
+       * lisp/vc/diff-mode.el (diff-font-lock-keywords): Use diff-header face
+       for git index lines (like already used for bzr index lines).
+       Use diff-file-header face for binary file headers.
+       (diff-find-source-location): Use expand-file-name for vc-find-revision.
+       (diff--font-lock-prettify): Use diff-indicator-* faces for
+       left-fringe indicators.
+       (diff-syntax-fontify-props): Optimize to not use text-property-not-all
+       for font-lock-ensure.
+
+       * lisp/replace.el (occur-engine-line): Simplify to use font-lock-ensure
+       without text-property-not-all.
+
+2018-12-18  Juri Linkov  <address@hidden>
+
+       Fontify one-line diffs without the final newline (bug#33567)
+
+       * lisp/vc/diff-mode.el (diff-hunk-text, diff-syntax-fontify-hunk):
+       Skip lines beginning with backslash like "\ No newline at end of file".
+       (diff-syntax-fontify-hunk): Use string-trim-right.
+       For one-line diffs use 1 explicitly in the list of line numbers.
+
+2018-12-18  Paul Eggert  <address@hidden>
+
+       Support (ash INTEGER BIGNUM)
+
+       * src/data.c (emacs_mpz_mul_2exp): 2nd arg is now a
+       nonnegative EMACS_INT not mp_bitcnt_t, to simplify checking.
+       (Fash): Support COUNT values that are bignums or that
+       exceed mp_bitcnt_t range.
+       * test/src/data-tests.el (data-tests-ash-lsh): Test this.
+
+2018-12-18  Eli Zaretskii  <address@hidden>
+
+       Fix one last compilation warning in ftfont.c
+
+       * src/ftfont.c (ftfont_get_hb_font): Only define if
+       HAVE_LIBOTF is defined.  (Bug#33771)
+
+2018-12-18  Glenn Morris  <address@hidden>
+
+       Expect tramp environment test to fail on hydra
+
+       * test/lisp/net/tramp-tests.el (tramp-test32-environment-variables):
+       Expect failure on hydra.nixos.org.
+
+2018-12-18  Glenn Morris  <address@hidden>
+
+       A filenotify test now passes on hydra
+
+       * test/lisp/filenotify-tests.el (file-notify-test04-autorevert):
+       Remote test now passes on hydra.nixos.org, since PATH
+       workaround for bug#33781.
+
+2018-12-18  Eli Zaretskii  <address@hidden>
+
+       Condition some more hb_* functions on HAVE_LIBOTF.
+
+2018-12-18  Michael Albinus  <address@hidden>
+
+       Fix Bug#33781
+
+       * lisp/net/tramp-cache.el (tramp-connection-properties):
+       * lisp/net/tramp-sh.el (tramp-remote-path)
+       (tramp-remote-process-environment, tramp-sh-extra-args):
+       Reinsert autoload cookie.  (Bug#33781)
+
+       * test/lisp/net/tramp-tests.el: Do not require tramp-sh before
+       changing tramp-remote-path.
+
+2018-12-18  Nicolas Petton  <address@hidden>
+
+       New convenience functions in seq.el
+
+       Functions to access the first or all but the first elements of
+       sequences have been repeatedly asked for (the last occurrence being
+       https://github.com/NicolasPetton/seq.el/issues/9).
+
+       * lisp/emacs-lisp/seq.el (seq-first, seq-rest): New functions.
+       * test/lisp/emacs-lisp/seq-tests.el (test-seq-first, test-seq-rest):
+       New tests for seq-first and seq-rest.
+
+2018-12-17  Glenn Morris  <address@hidden>
+
+       Tiny ert-summarize-tests-batch-and-exit improvement
+
+       * lisp/emacs-lisp/ert.el (ert-summarize-tests-batch-and-exit):
+       Report the details of unexpected passes as well as failures.
+
+2018-12-17  Juri Linkov  <address@hidden>
+
+       Syntactic fontification of diff hunks (bug#33567)
+
+       * lisp/vc/diff-mode.el (diff-font-lock-syntax): New defcustom.
+       (diff-default-directory): New buffer-local variable.
+       (diff-indicator-removed, diff-indicator-added)
+       (diff-indicator-changed): Set foreground to distinctive colors.
+       (diff-context): Remove colors to make room for syntax highlighting.
+       (diff-font-lock-keywords): Add diff--font-lock-syntax.
+       (diff--font-lock-cleanup): Remove diff-mode syntax overlays.
+       (diff--font-lock-syntax, diff--font-lock-syntax--refresh)
+       (diff-syntax-fontify-revisions, diff-syntax-fontify-hunk)
+       (diff-syntax-fontify-props): New functions.
+
+       * lisp/vc/diff.el (diff-no-select): Set diff-default-directory to
+       default-directory.
+
+       * doc/emacs/files.texi (Diff Mode): Document diff-font-lock-syntax.
+
+2018-12-17  Paul Eggert  <address@hidden>
+
+       Make org-protocol-flatten always an alias
+
+       * lisp/org/org-protocol.el (org-protocol-flatten):
+       Rewrite as top-level alias, as per Stefan’s suggestion,
+       to avoid compiler warnings.
+
+2018-12-17  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/map.el: Avoid special casing lists.
+
+       (map-not-inplace, map-inplace): New errors.
+       (map-insert): New generic function.
+       (map-put!): Signal map-not-inplace rather than a generic 'error'.
+       (map-elt): Use map-not-inplace and map-insert to avoid hardcoding
+       a special case for lists.
+
+       * test/lisp/emacs-lisp/map-tests.el (test-map-put!): Rename from
+       test-map-put.  Also test the errors signaled.
+
+2018-12-17  Glenn Morris  <address@hidden>
+
+       Avoid tests failures on hydra due to Tramp autoload changes
+
+       * test/lisp/filenotify-tests.el, test/lisp/shadowfile-tests.el:
+       * test/lisp/net/tramp-tests.el: Require tramp-sh before changing
+       tramp-remote-path.
+
+2018-12-17  Paul Eggert  <address@hidden>
+
+       One more flatten-tree test
+
+       * test/lisp/subr-tests.el (subr-tests-flatten-tree):
+       Add a test for lots of nothing.
+
+2018-12-17  Paul Eggert  <address@hidden>
+
+       Some more flatten-tree aliases
+
+       * lisp/allout.el (allout-flatten):
+       * lisp/progmodes/hideif.el (hif-flatten):
+       Now an obsolete alias for flatten-tree.  All callers changed.
+       * lisp/org/org-protocol.el (org-protocol-flatten):
+       Make it an alias for flatten-tree if available.
+       * lisp/progmodes/js.el (js--flatten-list):
+       Remove alias.  We shouldn’t need obsolete function aliases for
+       private functions.
+
+2018-12-17  Paul Eggert  <address@hidden>
+
+       Improve flatten-tree documentation
+
+       * doc/lispref/lists.texi (Building Lists):
+       * lisp/subr.el (flatten-tree):
+       Don’t imply that flatten-tree modifies its argument.
+       Clarify wording.
+
+2018-12-17  Paul Eggert  <address@hidden>
+
+       Improve flatten-tree performance
+
+       * lisp/subr.el (flatten-tree): Improve performance by calling
+       ‘cons’ once rather than twice when a cons cell is popped.
+
+2018-12-17  Eli Zaretskii  <address@hidden>
+
+       Avoid compilation warning in ftfont.c
+
+       * src/ftfont.c (ftfont_shape_by_hb): Compile only if
+       HAVE_LIBOTF is defined.  (Bug#33771)
+
+2018-12-17  Paul Eggert  <address@hidden>
+
+       Assume ‘emacs’ is defined in Emacs-only code
+
+       * src/charset.c, src/coding.c, src/coding.h, src/gmalloc.c:
+       * src/ralloc.c, src/regex-emacs.c: Simplify slightly by
+       assuming that ‘emacs’ is defined.  These modules have long
+       been specific to Emacs, and are not used elsewhere.
+
+2018-12-17  Eli Zaretskii  <address@hidden>
+
+       Fix last change.
+
+2018-12-17  Mike Kupfer  <address@hidden>
+
+       * src/ftcrfont.c (ftcrfont_driver): Really commit last change.
+
+2018-12-17  Mike Kupfer  <address@hidden>
+
+       More fixes for build without libotf
+
+       * src/xftfont.c (xftfont_driver):
+       * src/ftxfont.c (ftxfont_driver):
+       * src/ftcrfont.c (ftcrfont_driver): Set the .shape member only
+       if HAVE_LIBOTF is defined.  (Bug#33771)
+
+2018-12-17  Eli Zaretskii  <address@hidden>
+
+       Fix compilation errors when building without libotf
+
+       * src/ftfont.c (ftfont_shape): Only compile if HAVE_LIBOTF is
+       defined.
+       (ftfont_driver): Set the .shape member only if HAVE_LIBOTF is
+       defined.  (Bug#33771)
+
+2018-12-17  Michael Albinus  <address@hidden>
+
+       Use `flatten-tree' in Tramp
+
+       * lisp/net/tramp-compat.el (tramp-compat-flatten-tree): New defun.
+       (tramp-compat-flatten-list): Remove.
+
+       * lisp/net/tramp-sudoedit.el (tramp-sudoedit-send-command): Use it.
+
+2018-12-17  Alex Branham  <address@hidden>
+           Basil L. Contovounesios  <address@hidden>
+
+       New function flatten-tree
+
+
+       * doc/lispref/lists.texi: Document `flatten-tree'.
+
+       * lisp/progmodes/js.el (js--maybe-join):
+       * lisp/printing.el (pr-switches):
+       * lisp/lpr.el (lpr-print-region):
+       * lisp/gnus/nnimap.el (nnimap-find-wanted-parts):
+       * lisp/gnus/message.el (message-talkative-question):
+       * lisp/gnus/gnus-sum.el (gnus-remove-thread)
+       (gnus-thread-highest-number, gnus-thread-latest-date):
+       * lisp/eshell/esh-util.el (eshell-flatten-and-stringify):
+       * lisp/eshell/esh-opt.el (eshell-eval-using-options):
+       * lisp/eshell/esh-ext.el (eshell-external-command):
+       * lisp/eshell/em-xtra.el (eshell/expr):
+       * lisp/eshell/em-unix.el (eshell/rm, eshell-mvcpln-template)
+       (eshell/cat, eshell/make, eshell-poor-mans-grep, eshell-grep)
+       (eshell/du, eshell/time, eshell/diff, eshell/locate):
+       * lisp/eshell/em-tramp.el (eshell/su, eshell/sudo):
+       * lisp/eshell/em-term.el (eshell-exec-visual):
+       * lisp/eshell/em-dirs.el (eshell-dirs-substitute-cd, eshell/cd):
+       * lisp/eshell/em-basic.el (eshell/printnl):
+       Use new flatten-tree.
+
+       * lisp/progmodes/js.el (js--flatten-list):
+       * lisp/lpr.el (lpr-flatten-list):
+       * lisp/gnus/message.el (message-flatten-list):
+       * lisp/eshell/esh-util.el (eshell-flatten-list):
+       Obsolete in favor of Emacs-wide `flatten-tree'.
+
+       * lisp/subr.el (flatten-list): Alias to `flatten-tree' for
+       discoverability.
+
+       * lisp/subr.el (flatten-tree): New defun.
+
+       * test/lisp/subr-tests.el (subr-tests-flatten-tree): New test.
+
+2018-12-17  Michael Albinus  <address@hidden>
+
+       Fix Bug#33524
+
+       * lisp/progmodes/flymake-proc.el
+       (flymake-proc-create-temp-with-folder-structure):
+       Unquote file-name.  (Bug#33524)
+
+2018-12-17  Michael Albinus  <address@hidden>
+
+       Reduce autoloaded objects in Tramp
+
+       * lisp/net/tramp-adb.el (tramp-adb-program)
+       (tramp-adb-connect-if-not-connected, tramp-adb-prompt):
+       Remove autoload cookie.
+
+       * lisp/net/tramp-cache.el (tramp-connection-properties)
+       (tramp-persistency-file-name): Remove autoload cookie.
+
+       * lisp/net/tramp-ftp.el (tramp-ftp-enable-ange-ftp):
+       Use `tramp-autoload' cookie.
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-zeroconf-domain):
+       Remove autoload cookie.
+
+       * lisp/net/tramp-rclone.el (tramp-rclone-program): Remove autoload
+       cookie.
+       (tramp-set-completion-function): Use `tramp--with-startup'.
+
+       * lisp/net/tramp-sh.el (tramp-inline-compress-start-size)
+       (tramp-copy-size-limit, tramp-histfile-override)
+       (tramp-use-ssh-controlmaster-options, tramp-remote-path)
+       (tramp-remote-process-environment, tramp-sh-extra-args):
+       Remove autoload cookie.
+       (tramp-stat-marker, tramp-stat-quoted-marker): Move to tramp.el.
+
+       * lisp/net/tramp-smb.el (tramp-smb-program)
+       (tramp-smb-acl-program, tramp-smb-conf)
+       (tramp-smb-winexe-program, tramp-smb-winexe-shell-command)
+       (tramp-smb-winexe-shell-command-switch): Remove autoload cookie.
+
+       * lisp/net/tramp-sudoedit.el (server, tramp-sh): Do not require.
+
+       * lisp/net/tramp.el (tramp--startup-hook): Define.
+       (tramp-stat-marker, tramp-stat-quoted-marker): New defconsts,
+       taken from tramp-sh.el.
+
+       * test/lisp/net/tramp-archive-tests.el (tramp-copy-size-limit)
+       (tramp-persistency-file-name): Declare.
+
+       * test/lisp/net/tramp-tests.el (tramp-connection-properties)
+       (tramp-display-escape-sequence-regexp)
+       (tramp-inline-compress-start-size, tramp-remote-path): Declare.
+
+2018-12-16  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/macroexp.el: Don't hide backtrace
+
+       (macroexp--compiler-macro): Use condition-case-unless-debug.
+
+2018-12-16  João Távora  <address@hidden>
+
+       Jsonrpc error handlers can now safely call jsonrpc-shutdown
+
+       Previously, if an error handler called jsonrpc-shutdown, and if that
+       error handler was being called from the process sentinel,
+       jsonrpc-shutdown would infloop waiting for jsonrpc-sentinel-done to be
+       set.
+
+       Rename the process property jsonrpc-sentinel-done to
+       jsonrpc-sentinel-cleanup-started, arrange for it to be set earlier
+       in the sentinel, and also check for it earlier in jsonrpc-shutdown.
+
+       * lisp/jsonrpc.el (Version): Bump to 1.0.7.
+       (jsonrpc--process-sentinel): Set jsonrpc-sentinel-cleanup-started
+       a bit earlier than previous jsonrpc-sentinel-done.
+       (jsonrpc-shutdown): Query jsonrpc-sentinel-cleanup-started
+
+2018-12-16  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2018-12-16 regex: propagate fix for glibc bug 18040
+       2018-12-16 obstack, libc-config: Support HP-UX cc in C99 mode
+       2018-12-15 regex: work around a bug in glibc-2.27 and prior
+       2018-12-13 localtime-buffer: Avoid endless recursion
+       * build-aux/config.guess, build-aux/config.sub, lib/cdefs.h:
+       * lib/gettext.h, lib/localtime-buffer.c, lib/regexec.c, m4/regex.m4:
+       Copy from Gnulib.
+
+2018-12-16  Stefan Monnier  <address@hidden>
+
+       * lisp/net/tramp.el: Rework mutual dependencies
+
+       Functionally split tramp-loaddefs.el into two parts: one part run
+       while loading it at the very beginning of loading tramp.el (holding 
plain
+       autoloads and declarations), and another run at the very end of loading
+       tramp.el (holding setup code).
+       This should reduce infinite-recursion problems while loading.
+
+       * lisp/net/tramp.el: Require tramp-loaddefs at beginning.
+       Run (new and internal) tramp--startup-hook at the end.
+       Remove all tramp-autoloads.  Prefer tramp--with-startup over
+       eval-after-load.
+       (tramp--with-startup): New macro.
+       (tramp-set-syntax): Show the new value rather than the old value in the
+       error message.
+       (tramp-syntax-values): Explicitly return 'values'.
+       (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-completion-file-name-regexp): Don't initialize in the 
declaration,
+       since it's recomputed at the end anyway.
+       (tramp-time-dont-know, tramp-time-doesnt-exist): Move before first use.
+
+       * lisp/net/tramp-compat.el: Don't require tramp-loaddefs any more.
+       (tramp-compat-tramp-syntax): Declare tramp-syntax.
+
+       * lisp/net/tramp-smb.el:
+       * lisp/net/tramp-rclone.el:
+       * lisp/net/tramp-gvfs.el:
+       * lisp/net/tramp-ftp.el:
+       * lisp/net/tramp-adb.el: Wrap all autoloaded setup operations within
+       tramp--with-startup.
+
+       * lisp/net/tramp-sh.el: Wrap all autoloaded setup operations within
+       tramp--with-startup.
+       (tramp-display-escape-sequence-regexp)
+       (tramp-device-escape-sequence-regexp): Don't tramp-autoload any more.
+       (tramp-stat-marker): Use eval-and-compile rather than tramp-autoload.
+
+       * lisp/net/tramp-sudoedit.el: Wrap all autoloaded setup operations 
within
+       tramp--with-startup.
+       Require tramp-sh at compile-time to precompute some regexps based on
+       tramp-stat-marker.
+
+2018-12-16  Michael Albinus  <address@hidden>
+
+       Add Tramp sudoedit method
+
+       * doc/misc/tramp.texi (Quick Start Guide): New section "Using sudoedit".
+       (External methods) <sudoedit>: Describe.
+
+       * 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-rclone.el (tramp-rclone-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):
+       Add handler.
+
+       * lisp/net/tramp-sh.el (tramp-sh-handle-set-file-uid-gid): Rename from
+       `tramp-sh-handle-set-file-uid-gid'.  Handle only remote file names.
+
+       * lisp/net/tramp-sudoedit.el: New file.
+
+       * lisp/net/tramp.el (tramp-file-name-for-operation): Handle also
+       `tramp-set-file-uid-gid'.
+       (tramp-set-file-uid-gid): New defun.
+       (tramp-get-local-uid, tramp-get-local-gid): Cache result.
+
+       * test/lisp/net/tramp-tests.el (tramp--test-sudoedit-p): New defun.
+       (tramp-test20-file-modes, tramp-test22-file-times)
+       (tramp--test-sudoedit-p): Use it.
+
+2018-12-16  João Távora  <address@hidden>
+
+       Rephrase a confusing sentence in the jsonrpc.el manual
+
+       * doc/lispref/text.texi (JSONRPC Overview): Rephrase first
+       sentence on building JSONRPC applications.
+
+2018-12-15  Glenn Morris  <address@hidden>
+
+       Expect two epg tests to fail on hydra
+
+       * test/lisp/epg-tests.el (epg-decrypt-1, epg-roundtrip-1):
+       These currently fail for unknown reasons on hydra.nixos.org.
+
+2018-12-15  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       fa953b5 (origin/emacs-26) Fix an epg test for recent GnuPG versions (...
+       3015636 Document font structure layout constraints
+       f14d574 Document font structure layout constraints
+       f519aa1 Fix display of line numbers in empty lines beyond EOB
+       24b5026 Fix redisplay when a window's scroll bar or fringes are changed
+       5d1b158 Tiny markup fix in Elisp manual
+
+2018-12-15  Glenn Morris  <address@hidden>
+
+       Ensure flymake tests use gcc rather than $CC
+
+       * test/lisp/progmodes/flymake-resources/Makefile: Force use of gcc.
+       This seems to be what the tests expect.  (Bug#33735)
+
+2018-12-15  Glenn Morris  <address@hidden>
+
+       Suppress filenotify remote test failures on hydra.nixos.org
+
+       * test/lisp/filenotify-tests.el (file-notify--deftest-remote):
+       Add optional argument to pass expected-result.
+       (file-notify-test04-autorevert-remote)
+       (file-notify-test08-backup-remote): Expect failure on hydra (bug#33735).
+
+2018-12-15  Glenn Morris  <address@hidden>
+
+       Fix an eshell ls dired test for non-recent files
+
+       * test/lisp/eshell/em-ls-tests.el (em-ls-test-bug27844):
+       Work around an eshell issue with non-recent files.  (Bug#33734)
+
+2018-12-14  Paul Eggert  <address@hidden>
+
+       Assume hb_ft_font_create_referenced if HarfBuzz
+
+       * configure.ac (HAVE_HB_FT_FONT_CREATE_REFERENCED):
+       Remove test, since we now require 0.9.42 and
+       hb_ft_font_create_referenced has been present since 0.9.38.
+       * src/ftfont.c (ft_face_destroy, hb_ft_font_create_referenced):
+       Remove; no longer needed.
+
+2018-12-14  Glenn Morris  <address@hidden>
+
+       * configure.ac: Guess at minimum harfbuzz version.  (Bug#33748)
+
+       * make-dist: Improve no-byte-compile check.
+
+2018-12-14  Glenn Morris  <address@hidden>
+
+       * make-dist: Improve tempfile handling.
+
+       Prompted by /tmp/out existing and being owned by another user.
+
+2018-12-14  Glenn Morris  <address@hidden>
+
+       * make-dist: Silence test of tar functionality.
+
+2018-12-14  Basil L. Contovounesios  <address@hidden>
+
+       * lisp/emacs-lisp/map.el: Fix recent changes
+
+       (map-empty-p): Add method for lists which avoids computing their
+       entire length.
+       (map-contains-key): Check for alist membership by comparing against
+       DEFAULT argument returned by alist-get.
+       (map-put!): Reconcile argument name with that used in docstring.
+
+2018-12-14  Ari Roponen  <address@hidden>
+
+       Fix crash in the Cairo build
+
+       * src/ftcrfont.c (struct ftcrfont_info) [HAVE_HARFBUZZ]: New
+       member 'hb_font'.  (Bug#33739)
+
+2018-12-13  Glenn Morris  <address@hidden>
+
+       * test/lisp/eshell/em-ls-tests.el (em-ls-test-bug27844): Remove debug.
+
+2018-12-13  Stephen Leake  <address@hidden>
+
+       Get long package description for installed packages from installed files
+
+       * doc/lispref/package.texi (Archive Web Server): New; document web
+       server interface.
+
+       * lisp/emacs-lisp/package.el (package--get-description): New; get long
+       description from installed files.
+       (describe-package-1): Use it, improve comments. No longer writing
+       NAME-readme.txt.
+
+       * test/lisp/emacs-lisp/package-tests.el:
+       (package-test-describe-package): There is now a description for an
+       installed package.
+       (package-test-describe-installed-multi-file-package): New test.
+
+2018-12-13  Stephen Leake  <address@hidden>
+
+       Merge commit 'd08b75abe0f0cf9ade812b189c374809a2c7836e'
+
+2018-12-13  Paul Eggert  <address@hidden>
+
+       Fix stray CHECK_FIXNUM_COERCE_MARKER
+
+       * src/xdisp.c (Fbidi_resolved_levels): Don’t allow a marker arg;
+       markers are character positions not vertical positions.
+
+2018-12-13  Paul Eggert  <address@hidden>
+
+       Default to --with-harfbuzz
+
+       * configure.ac: By default, configure with HarfBuzz if available.
+
+2018-12-13  Paul Eggert  <address@hidden>
+
+       Simplify mainline Harfbuzz-using code
+
+       * src/ftfont.c (ft_face_destroy): Omit unnecessary cast.
+       (hb_ft_font_create_referenced) [!HAVE_HB_FT_FONT_CREATE_REFERENCED]:
+       New function.
+       (ftfont_get_hb_font): Use it.
+
+2018-12-13  Glenn Morris  <address@hidden>
+
+       * test/lisp/eshell/em-ls-tests.el (em-ls-test-bug27844): Add debug.
+
+2018-12-13  Michael Albinus  <address@hidden>
+
+       * doc/misc/tramp.texi (Ad-hoc multi-hops): Reinsert lost line.
+
+2018-12-12  João Távora  <address@hidden>
+
+       Allow per-diagnostic overlay properties in Flymake
+
+       * lisp/progmodes/flymake.el (Version): Bump to 1.0.3.
+       (flymake--diag): Add new field overlay-properties.
+       (flymake-make-diagnostic): New optional arg overlay-properties.
+       (flymake--highlight-line): Use it.
+
+2018-12-12  Juri Linkov  <address@hidden>
+
+       * lisp/vc/vc.el (vc-find-revision-no-save): Use 
decode-coding-inserted-region
+
+       and after-insert-file-set-coding.  Don't let-bind coding-system-for-read
+       and coding-system-for-write.  For non-interactive use, let-bind
+       enable-local-variables to :safe and ignore errors from set-auto-mode 
call.
+       (Bug#33567)
+
+2018-12-12  Glenn Morris  <address@hidden>
+
+       Improve em-ls-test-bug27844
+
+       * test/lisp/eshell/em-ls-tests.el (em-ls-test-bug27844):
+       Skip if source-directory absent.
+
+2018-12-12  Paul Eggert  <address@hidden>
+
+       Simplify validate_interval_range and callers
+
+       * src/textprop.c (validate_interval_range):
+       Remove useless code.  Fix comment to match current behavior.
+       (set_text_properties, copy_text_properties): Simplify, as
+       validate_interval_range has not incremented START or END for
+       quite some time.
+       (copy_text_properties): Assume C99.  Fix an unlikely
+       integer overflow bug if WIDE_EMACS_INT.
+
+2018-12-12  Paul Eggert  <address@hidden>
+
+       set_text_properties_1 can assume START <= END
+
+       * src/textprop.c (set_text_properties_1):
+       Do not swap START and END.  All callers do that already,
+       and the test for swapping here is redundant.
+
+2018-12-12  Eli Zaretskii  <address@hidden>
+
+       Fix regression in expand-file-name with drive-relative HOME
+
+       * src/fileio.c (get_homedir) [DOS_NT]: Expand drive-relative
+       $HOME to begin with "X:/".
+
+       * test/src/fileio-tests.el (fileio-tests--relative-HOME): Add
+       testing of drive-relative value of $HOME on MS-Windows and
+       MS-DOS.
+
+2018-12-12  Michael Albinus  <address@hidden>
+
+       Fix Bug#33568
+
+       * test/lisp/net/secrets-tests.el (secrets-test02-collections)
+       (secrets-test03-items): Do not expect "login" collection to
+       exist.  (Bug#33568)
+
+2018-12-11  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/map.el: Make the functions generic
+
+       Make them document their delegation relationship, to clarify when
+       a method is needed.
+       (map--dispatch): Give more info in the error message.
+       (map-elt): Make it generic and deprecate the 'testfn' arg.
+       (map-put): Make it obsolete.
+       (map-length): Make it work on hash-tables.
+       (map-apply): Define it in terms of map-do.
+       (map-do, map-into): Use cl-generic dispatch instead of map--dispatch.
+       (map-empty-p): Define it in terms of map-length.
+       (map-contains-key): Deprecate 'testfn'.  Make it return a boolean, so
+       it can return non-nil even if 'key' is nil.  Improve implementation to
+       avoid constructing an intermediate list of all keys.
+       (map-merge-with): Use 'eql' rather than `eq'.
+       (map-put!): Rename from map--put and make it generic, to replace 
map-put.
+       (map--apply-alist, map--apply-hash-table, map--apply-array):
+       Turn them into methods of map-apply.
+       (map--do-alist, map--do-array): Turn them into methods of map-do.
+       (map--into-hash-table): Turn it into a method of map-into.
+
+2018-12-11  Stephen Leake  <address@hidden>
+
+       Fix bug in display-buffer-use-some-frame
+
+       * lisp/window.el (display-buffer-use-some-frame): Pass 'reuse, not
+       'frame, to window--display-buffer.
+
+2018-12-10  Martin Rudalics  <address@hidden>
+
+       Fix typo in 'dired-restore-positions'
+
+       * lisp/dired.el (dired-restore-positions): Fix typo in last
+       change fixing Bug#33458.
+
+2018-12-10  Glenn Morris  <address@hidden>
+
+       Add test/Makefile machinery to exclude test .el files
+
+       * test/Makefile.in (EXCLUDE_TESTS): New variable.
+       (ELFILES): Filter out any specified exclude files.
+
+2018-12-10  Nobuyoshi Nakada  <address@hidden>
+
+       Support Ruby block arguments ending with , or *
+
+       * lisp/progmodes/ruby-mode.el (ruby-smie--forward-token):
+       Recognize punctuation before "closing-|" as a separate token.
+       (ruby-smie--backward-token): Same (bug#33487).
+
+       * test/lisp/progmodes/ruby-mode-tests.el
+       (ruby-forward-sexp-jumps-do-end-block-with-no-args)
+       (ruby-backward-sexp-jumps-do-end-block-with-no-args)
+       (ruby-forward-sexp-jumps-do-end-block-with-empty-args)
+       (ruby-backward-sexp-jumps-do-end-block-with-empty-args)
+       (ruby-forward-sexp-jumps-do-end-block-with-args)
+       (ruby-backward-sexp-jumps-do-end-block-with-args)
+       (ruby-forward-sexp-jumps-do-end-block-with-any-args)
+       (ruby-forward-sexp-jumps-do-end-block-with-expanded-one-arg)
+       (ruby-forward-sexp-jumps-do-end-block-with-one-and-any-args)
+       (ruby-backward-sexp-jumps-do-end-block-with-one-and-any-args):
+       New tests.
+
+2018-12-10  Juri Linkov  <address@hidden>
+
+       * lisp/isearch.el (isearch-pre-command-hook): Support `isearch-move'
+
+       command properties with values `enabled' and `disabled'
+       also for the value `shift' of isearch-yank-on-move.  (Bug#15839)
+
+2018-12-10  Juri Linkov  <address@hidden>
+
+       * lisp/vc/vc.el (vc-root-version-diff): New command (bug#33650).
+
+       (vc-root-diff): Call it interactively on a prefix argument.
+
+2018-12-10  Matthias Meulien  <address@hidden>
+
+       Support git commit --no-verify
+
+       * lisp/vc/vc-git.el (vc-git-log-edit-toggle-no-verify): New function.
+       (vc-git-log-edit-mode-map): Add binding.
+       (vc-git-checkin): Add an entry for that header.
+
+2018-12-10  Paul Eggert  <address@hidden>
+
+       Fix bug when hashing reversed buffer regions
+
+       * src/fns.c (extract_data_from_object): When checking
+       file-coding-system-alist, calculate the coding system
+       correctly even if START and END are out of order.
+       Use bool for booleans.
+
+2018-12-10  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       2075864 (origin/emacs-26) CC Mode: stop extra parens on expression ca...
+
+2018-12-10  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       5a7451c CC Mode: stop wrongly recognizing "func(a * 9)" as "pointer t...
+       b0ed9d1 * lisp/emacs-lisp/cursor-sensor.el: Add motivation
+
+2018-12-10  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       908af9d Indexing followup to recent changes
+       505ac9a Improve documentation of cursor-sensor.el (bug#33664)
+       d817d2c * doc/lispref/commands.texi (Adjusting Point): Bug#33662
+       18442da Tramp multi-hop methods must be inline
+       1e3e24d ; * src/xterm.c (x_update_begin): Fix whitespace.
+       1d743d2 Fix scaling problem in Cairo builds
+       2b9e993 ; * doc/lispref/text.texi (Special Properties): Fix wording. ...
+       e568202 * lisp/simple.el (next-line-or-history-element): Use current-...
+       c7897c2 A few further fixes of window internals description
+
+       # Conflicts:
+       #       doc/misc/tramp.texi
+
+2018-12-10  Glenn Morris  <address@hidden>
+
+       * admin/gitmerge.el (gitmerge-skip-regexp): Add yet another variant.
+
+2018-12-10  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-compat.el (tramp-compat-flatten-list): New defun.
+
+2018-12-10  Stefan Monnier  <address@hidden>
+
+       * lisp/Makefile.in (compile-main): Use a more selective regexp.
+
+2018-12-09  Paul Eggert  <address@hidden>
+
+       Remove CHECK_FIXNUM_CAR etc.
+
+       * src/coding.c (CHECK_FIXNAT_CAR, CHECK_FIXNAT_CDR):
+       * src/lisp.h (CHECK_FIXNUM_CAR, CHECK_FIXNUM_CDR):
+       Remove.  All uses removed.  These seem to have been based on
+       the assumption that the argument cons needs to be modified,
+       an assumption that is incorrect for fixnums.
+       (Fdefine_coding_system_internal): Use CHECK_RANGED_INTEGER
+       instead of a special diagnostic for graphic register numbers.
+
+2018-12-09  Glenn Morris  <address@hidden>
+
+       * test/lisp/eshell/eshell-tests.el (with-temp-eshell):
+       Avoid permanently changing HISTFILE.
+
+2018-12-09  Juri Linkov  <address@hidden>
+
+       Fix occur for non-nil list-matching-lines-jump-to-current-line 
(bug#33476)
+
+       * lisp/replace.el (occur-engine): Move orig-line let-binding higher.
+       Don't use start-line in forward-line.
+
+2018-12-09  Khaled Hosny  <address@hidden>
+
+       Fix uni_combining()
+
+       WIP: implement some Unicode callback functions
+
+2018-12-09  Khaled Hosny  <address@hidden>
+
+       Set cluster level to one
+
+       Makes to possible to edit combining marks separately as now they get a
+       different cluster value from the base glyph.
+
+2018-12-09  Khaled Hosny  <address@hidden>
+
+       Cache hb_font_t
+
+       Not sure if the xftfont.c changes are really needed, but followed the
+       libotf code just in case.
+
+2018-12-09  Khaled Hosny  <address@hidden>
+
+       Allow turning HarfBuzz off at run time
+
+       Useful for comparing the shaping result with that of m17n.
+
+2018-12-09  Khaled Hosny  <address@hidden>
+
+       First attempt at HarfBuzz shaping
+
+       Barely works, and unoptimized!
+
+2018-12-09  Khaled Hosny  <address@hidden>
+
+       Add support for building with HarfBuzz
+
+       Not used yet.
+
+2018-12-09  Michael Albinus  <address@hidden>
+
+       * test/lisp/net/tramp-tests.el (tramp-test03-file-name-host-rules):
+
+       Use proper error symbol.
+
+2018-12-09  Alan Mackenzie  <address@hidden>
+
+       Don't create *Compile-Log* due to byte-compile.  Amend message to it.
+
+       This fixes bug #33602 and is a partial reversion of a commit from
+       2018-11-28T13:15:50.
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-log-file): Don't create 
buffer
+       *Compile-Log* because it doesn't already exist.  Amend message 
"Compiling no
+       file" to be clearer (?and less irritating).
+
+2018-12-09  Paul Eggert  <address@hidden>
+
+       Add make_vector and make_nil_vector
+
+       This makes the callers a bit easier to read, and doubtless
+       improves efficiency very slightly.  It also simplifies
+       possible future changes to allow bignum indexes to buffers.
+       * src/alloc.c (allocate_vectorlike):
+       Prefer ptrdiff_t to size_t when either will do.
+       (make_vector): New function.
+       (Fmake_vector): Use it.
+       * src/buffer.c (syms_of_buffer):
+       * src/bytecode.c (syms_of_bytecode):
+       * src/category.c (Fmake_category_table, init_category_once):
+       * src/ccl.c (syms_of_ccl):
+       * src/character.c (syms_of_character):
+       * src/charset.c (Fdefine_charset_internal)
+       (Ffind_charset_region, Ffind_charset_string):
+       * src/chartab.c (copy_char_table):
+       * src/coding.c (Fdefine_coding_system_internal, syms_of_coding):
+       * src/composite.c (get_composition_id, Fcomposition_get_gstring):
+       * src/composite.h (LGLYPH_NEW):
+       * src/fns.c (concat, Flocale_info, make_hash_table):
+       * src/font.c (font_otf_ValueRecord, font_otf_anchor)
+       (build_style_table, syms_of_font):
+       * src/fontset.c (RFONT_DEF_NEW, fontset_find_font)
+       (dump_fontset, syms_of_fontset):
+       * src/image.c (xpm_make_color_table_v):
+       * src/keyboard.c (modify_event_symbol, menu_bar_items)
+       (parse_menu_item, parse_tool_bar_item, init_tool_bar_items)
+       (syms_of_keyboard):
+       * src/keymap.c (Fdefine_key, describe_map, describe_vector):
+       * src/lread.c (read_vector):
+       * src/macfont.m (macfont_shape):
+       * src/menu.c (init_menu_items):
+       * src/nsfns.m (ns_make_monitor_attribute_list):
+       * src/process.c (conv_sockaddr_to_lisp, network_interface_info):
+       * src/profiler.c (make_log):
+       * src/window.c (Fcurrent_window_configuration):
+       * src/xdisp.c (with_echo_area_buffer_unwind_data)
+       (format_mode_line_unwind_data):
+       * src/xfaces.c (Finternal_make_lisp_face)
+       (Fface_attributes_as_vector):
+       * src/xfns.c (x_make_monitor_attribute_list)
+       (Fx_display_monitor_attributes_list):
+       * src/xfont.c (syms_of_xfont):
+       * src/xselect.c (x_handle_dnd_message):
+       * src/xwidget.c (save_script_callback):
+       Prefer make_nil_vector (N) to Fmake_vector (make_fixnum (N), Qnil).
+       * src/callint.c (Fcall_interactively):
+       * src/charset.c (load_charset_map):
+       * src/chartab.c (Fmake_char_table, uniprop_encode_value_numeric):
+       * src/composite.c (get_composition_id)
+       * src/dispnew.c (Fframe_or_buffer_changed_p)
+       (syms_of_display):
+       * src/fns.c (make_hash_table, maybe_resize_hash_table):
+       * src/font.c (font_style_to_value):
+       * src/fontset.c (FONTSET_ADD, fontset_add):
+       * src/json.c (json_to_lisp):
+       * src/keymap.c (syms_of_keymap):
+       * src/lread.c (init_obarray):
+       * src/profiler.c (make_log, Fprofiler_cpu_log):
+       * src/term.c (term_get_fkeys_1):
+       Prefer make_vector (N, V) to Fmake_vector (make_fixnum (N), V).
+       * src/font.c (build_style_table):
+       * src/macfont.m (macfont_shape):
+       * src/process.c (conv_sockaddr_to_lisp, network_interface_info):
+       Prefer make_uninit_vector if the vector will be initialized soon.
+       * src/lisp.h (make_nil_vector): New function.
+
+2018-12-08  Eli Zaretskii  <address@hidden>
+
+       Fix resolving symlinks in Eshell history file names
+
+       * lisp/eshell/em-dirs.el (eshell-write-last-dir-ring):
+       * lisp/eshell/em-hist.el (eshell-write-history): Don't call
+       file-truename with argument of nil.  (Bug#33477)
+
+       * test/lisp/eshell/eshell-tests.el (with-temp-eshell): Remove
+       HISTFILE from the environment, to make sure the Eshell history
+       file is nil.
+
+2018-12-08  Paul Eggert  <address@hidden>
+
+       * src/alloc.c (VECTOR_ELTS_MAX): Make sure it’s signed.
+
+2018-12-08  Paul Eggert  <address@hidden>
+
+       Port VECTOR_ELTS_MAX to older GCC etc.
+
+       Problem reported by Eli Zaretskii in:
+       https://lists.gnu.org/r/emacs-devel/2018-12/msg00182.html
+       * src/alloc.c (VECTOR_ELTS_MAX): Now a macro.
+       Needed for portability to older GCC and non-GCC.
+
+2018-12-08  Paul Eggert  <address@hidden>
+
+       Streamline and fix vector-size checks
+
+       * src/alloc.c (VECTOR_ELTS_MAX): New constant.
+       (allocate_vectorlike): LEN now must be positive.  Assume LEN
+       is in range.  All callers changed.
+       (allocate_vector): Arg is now ptrdiff_t, not EMACS_INT.
+       All callers changed.  Return zero vector here, not in
+       allocate_vectorlike.
+       * src/lisp.h (make_uninit_vector): Simplify.
+       * src/xwidget.c (webkit_js_to_lisp):
+       Check for overflow in ptrdiff_t calculations.
+
+2018-12-08  Paul Eggert  <address@hidden>
+
+       Suppress WebKitGTK+ 2.21.1 diagnostics
+
+       * src/xwidget.c: Suppress deprecation warnings (Bug#33679).
+
+2018-12-08  Michael Heerdegen  <address@hidden>
+
+       Fix quote in the copyright skeleton
+
+       Revert replacing a backquote in the "copyright" skeleton with a quote
+       done in "Replace insignificant backquotes" which broke the skeleton.
+
+       * lisp/emacs-lisp/copyright.el (copyright): Restore the correct
+       version of the skeleton that used a backquote.
+
+2018-12-08  Paul Eggert  <address@hidden>
+
+       Fix integer overflow in oversize vectors
+
+       * src/alloc.c (allocate_vector): Fix integer overflow when
+       allocating very large vectors, by taking large_vector_offset
+       into account.  Assume C99.
+
+2018-12-08  Paul Eggert  <address@hidden>
+
+       * src/alloc.c (allocate_vectorlike): Simplify.
+
+2018-12-08  Eli Zaretskii  <address@hidden>
+
+       Honor 'vc-bzr-log-switches' in 'vc-bzr-revision-table'
+
+       * lisp/vc/vc-bzr.el (vc-bzr-revision-table): Honor
+       'vc-bzr-log-switches'.
+
+2018-12-08  Steven De Herdt  <address@hidden>  (tiny change)
+
+       Honor 'vc-bzr-log-switches' in 'vc-bzr-expanded-log-entry'
+
+       * lisp/vc/vc-bzr.el (vc-bzr-expanded-log-entry): Honor
+       'vc-bzr-log-switches'.  (Bug#33494)
+
+2018-12-08  Eli Zaretskii  <address@hidden>
+
+       Document that Eshell follows symlinks in history file names
+
+       * etc/NEWS: Mention that Eshell now follows symlinks in
+       history file names.
+
+2018-12-08  Philip Hudson  <address@hidden>
+
+       Follow links in Eshell last-dir-ring
+
+       * lisp/eshell/em-hist.el (eshell-write-last-dir-ring):
+       Follow symlinks in 'eshell-last-dir-ring-file-name'.
+       (Bug#33477)
+
+2018-12-08  Philip Hudson  <address@hidden>
+
+       Follow symlink in Eshell history
+
+       * lisp/eshell/em-hist.el (eshell-write-history): Follow
+       symlinks in 'eshell-history-file-name'.  (Bug#33460)
+
+2018-12-08  Martin Rudalics  <address@hidden>
+
+       New buffer display action alist entry 'window-min-height' (Bug#32825)
+
+       * lisp/window.el (display-buffer-below-selected): Handle
+       'window-min-height' action alist entry (Bug#32825).
+       * doc/lispref/windows.texi (Buffer Display Action Functions)
+       (Buffer Display Action Alists): Add documentation for
+       'window-min-height' action alist entries.
+       * etc/NEWS: Mention 'window-min-height' action alist entry.
+
+2018-12-08  Martin Rudalics  <address@hidden>
+
+       Adjust windows' previous buffers when reverting dired buffers 
(Bug#33458)
+
+       * lisp/dired.el (dired-save-positions, dired-restore-positions):
+       For each window that showed the reverted buffer before, fix the
+       point positions in its list of previously shown buffers the way
+       these routines handle window point for all windows currently
+       showing the buffer (Bug#33458).
+
+2018-12-08  Martin Rudalics  <address@hidden>
+
+       Improve how 'balance-windows' handles fixed-size windows (Bug#33254)
+
+       * lisp/window.el (balance-windows-2): When a child window has
+       fixed size, don't count it as resizable (Bug#33254).
+       Handle case where a window has no resizable child windows.
+
+2018-12-07  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Compensate for backward-sexp ignoring trailing commas after 
{...}
+
+       This fixes bug #32808.
+
+       * lisp/progmodes/cc-engine.el (c-beginning-of-statement-1): New variable
+       comma-delimited, set when we're about to scan backward over a comma.  
Do not
+       reckon a brace block as bounding a statement when it is followed or 
preceded
+       by a comma (except when argument comma-delim is non-nil).
+       (c-guess-basic-syntax, CASE 9C): Call c-beginning-of-statement-1 with 
argument
+       comma-delim changed to non-nil.
+
+2018-12-07  Michael Albinus  <address@hidden>
+
+       Refactor some Tramp functions
+
+       * lisp/net/tramp-compat.el (tramp-compat-file-local-name): New defsubst.
+       (tramp-compat-file-name-quoted-p, tramp-compat-file-name-quote)
+       (tramp-compat-file-name-unquote):
+       * lisp/net/tramp.el (tramp-handle-file-name-case-insensitive-p)
+       (tramp-handle-file-truename, tramp-get-remote-tmpdir):
+       * lisp/net/tramp-adb.el (tramp-adb-handle-copy-file)
+       (tramp-adb-handle-rename-file, tramp-adb-handle-exec-path):
+       * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-directly)
+       (tramp-sh-handle-exec-path, tramp-find-inline-encoding)
+       (tramp-get-remote-touch): Use it.
+
+       * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
+       Use `tramp-handle-expand-file-name'.
+       (tramp-adb-handle-expand-file-name): Move to tramp.el.
+       (tramp-adb-handle-file-writable-p): Adapt docstring.
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
+       Use `tramp-handle-file-local-copy', `tramp-handle-file-writable-p'
+       and `tramp-handle-write-region'.
+       (tramp-gvfs-handle-file-local-copy)
+       (tramp-gvfs-handle-file-writable-p)
+       (tramp-gvfs-handle-write-region): Move to tramp.el.
+
+       * lisp/net/tramp-rclone.el: Dont't require `tramp-adb' and
+       `tramp-gvfs' anymore.
+       (tramp-rclone-file-name-handler-alist):
+       Use `tramp-handle-expand-file-name', `tramp-handle-file-local-copy',
+       `tramp-handle-file-writable-p' and `tramp-handle-write-region'.
+       (tramp-rclone-handle-directory-files): Simplify.
+
+       * lisp/net/tramp.el (tramp-methods): Extend docstring.
+       (tramp-parse-netrc): Require `netrc'.
+       (tramp-handle-expand-file-name, tramp-handle-file-local-copy)
+       (tramp-handle-file-writable-p, tramp-handle-write-region): New defuns.
+
+2018-12-07  Eli Zaretskii  <address@hidden>
+
+       Fix the value of default-directory upon startup on MS-Windows
+
+       * src/w32.c (w32_get_current_directory): New function.
+       (GetCachedVolumeInformation, init_environment): Use it.
+       (w32_init_current_directory): New function.
+       * src/w32.h (w32_init_current_directory): Add prototype.
+       * src/emacs.c (main) [WINDOWSNT]: Use w32_init_current_directory
+       to get the accurate value of cwd.  This is needed to record
+       the correct directory in emacs_wd, which is now initialized
+       way earlier in the startup process, when init_environment was
+       not yet called.  For details, see the problems reported in
+       http://lists.gnu.org/archive/html/emacs-devel/2018-12/msg00068.html.
+       Reported by Angelo Graziosi <address@hidden>.
+
+2018-12-06  Juri Linkov  <address@hidden>
+
+       * lisp/vc/vc.el (vc-find-revision-no-save): Add optional arg BUFFER.
+
+       (Bug#33567)
+
+2018-12-06  Paul Eggert  <address@hidden>
+
+       Mention EMACS_SOCKET_NAME, not XDG_RUNTIME_DIR.
+
+       Mention unsetting XDG_RUNTIME_DIR in doc.
+
+2018-12-06  Paul Eggert  <address@hidden>
+
+       emacsclient: avoid background chatter
+
+       * lib-src/emacsclient.c (process_grouping): New function.
+       (act_on_signals, main): Use it.
+       (main): Omit "Waiting for Emacs..." and later "\n" messages
+       if in background, since that messes up the screen.
+
+2018-12-06  Paul Eggert  <address@hidden>
+
+       Fix emacsclient hang when backgrounded
+
+       Problem reported by Kaushal Modi in:
+       https://lists.gnu.org/r/emacs-devel/2018-12/msg00083.html
+       The tcdrain call replaced an fdatasync call which had no
+       effect on the tty, so removing it entirely shouldn’t cause
+       problems.  The fdatasync call replaced an fsync call which
+       also had no effect on the tty, and the fsync call seems to be
+       badly-merged revenant of emacsclient’s old (circa 2004) way of
+       communicating to and from Emacs via FILE * streams, where
+       fsync was apparently needed when talking to sockets.
+       * lib-src/emacsclient.c [!DOS_NT]: Don’t include termios.h.
+       (flush_stdout): Remove.  All callers removed.
+       (main): Do not drain the tty after "Waiting for Emacs..."
+       message.  There should be no need to drain, and draining it
+       might send us a SIGTTOU.  Do not fflush stdout just before
+       exiting, as exiting does that for us.
+
+2018-12-06  Paul Eggert  <address@hidden>
+
+       struct image_type layout is private to image.c
+
+       * src/dispextern.h (struct image_type): Move from here ...
+       * src/image.c (struct image_type): ... to here.
+
+2018-12-06  Eli Zaretskii  <address@hidden>
+
+       Avoid an error on exit in a build without threads
+
+       * lisp/simple.el (list-processes--refresh): Avoid signaling an
+       error in a build --without-threads.  (Bug#33629)
+
+2018-12-06  Michael Albinus  <address@hidden>
+
+       Add missing handler to tramp-rclone.el, improve robustness
+
+       * lisp/net/tramp-rclone.el (tramp-adb): Require.
+       (tramp-rclone-file-name-handler-alist):
+       Use `tramp-adb-handle-expand-file-name'.
+       (tramp-rclone-flush-directory-cache): New defun, derived from
+       `tramp-rclone-flush-mount'.
+       (tramp-rclone-do-copy-or-rename-file)
+       (tramp-rclone-handle-delete-directory)
+       (tramp-rclone-handle-delete-file)
+       (tramp-rclone-handle-make-directory): Use it.
+       (tramp-rclone-handle-directory-files)
+       (tramp-rclone-local-file-name):
+       Use `tramp-compat-file-name-quoted-p',  `tramp-compat-file-name-quote'
+       and ´tramp-compat-file-name-unquote'.
+       (tramp-rclone-handle-file-executable-p)
+       (tramp-rclone-handle-file-readable-p): Cache result.
+       (tramp-rclone-handle-file-name-all-completions)
+       (tramp-rclone-mounted-p, tramp-rclone-remote-file-name)
+       (tramp-rclone-maybe-open-connection): Rewrite.
+
+       * test/lisp/net/tramp-tests.el (tramp--test-rclone-p): New defun.
+       (tramp-test05-expand-file-name-relative)
+       (tramp--test-special-characters): Use it.
+
+2018-12-06  Michael Albinus  <address@hidden>
+
+       Rework Tramp wrt string-match-p, looking-at-p, save-match-data
+
+       * lisp/net/tramp.el (tramp-find-method, tramp-find-user)
+       (tramp-find-host, tramp-dissect-file-name, tramp-make-tramp-file-name)
+       (tramp-completion-make-tramp-file-name, tramp-debug-message)
+       (tramp-message, tramp-progress-reporter-update)
+       (tramp-set-completion-function)
+       (tramp-rfn-eshadow-update-overlay)
+       (tramp-find-file-name-coding-system-alist)
+       (tramp-file-name-for-operation)
+       (tramp-use-absolute-autoload-file-names)
+       (tramp-get-completion-methods, tramp-get-completion-user-host)
+       (tramp-handle-directory-files)
+       (tramp-handle-file-name-case-insensitive-p)
+       (tramp-handle-file-name-completion, tramp-handle-file-truename)
+       (tramp-handle-insert-directory, tramp-handle-load)
+       (tramp-handle-shell-command, tramp-action-yesno)
+       (tramp-action-yn, tramp-process-actions)
+       (tramp-mode-string-to-int, tramp-get-local-locale)
+       (tramp-local-host-p):
+       * lisp/net/tramp-adb.el (tramp-adb-handle-file-system-info)
+       (tramp-adb-handle-directory-files-and-attributes)
+       (tramp-adb--gnu-switches-to-ash, tramp-adb-sh-fix-ls-output)
+       (tramp-adb-handle-file-name-all-completions)
+       (tramp-adb-handle-shell-command)
+       (tramp-adb-handle-start-file-process):
+       * lisp/net/tramp-archive.el (tramp-archive-dissect-file-name):
+       * lisp/net/tramp-cache.el (tramp-get-hash-table)
+       (tramp-flush-directory-properties, tramp-flush-file-function):
+       * lisp/net/tramp-cmds.el (tramp-reporter-dump-variable)
+       (tramp-append-tramp-buffers):
+       * lisp/net/tramp-compat.el (tramp-compat-process-running-p):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name)
+       (tramp-gvfs-get-file-attributes)
+       (tramp-gvfs-handle-file-attributes)
+       (tramp-gvfs-monitor-process-filter)
+       (tramp-gvfs-handler-mounted-unmounted)
+       (tramp-gvfs-connection-mounted-p, tramp-gvfs-mount-spec-entry)
+       (tramp-gvfs-mount-spec, tramp-gvfs-maybe-open-connection):
+       * lisp/net/tramp-sh.el (tramp-do-file-attributes-with-ls)
+       (tramp-do-file-attributes-with-stat)
+       (tramp-sh-handle-file-selinux-context)
+       (tramp-sh-handle-directory-files-and-attributes)
+       (tramp-do-directory-files-and-attributes-with-stat)
+       (tramp-sh-handle-file-name-all-completions)
+       (tramp-sh-handle-dired-compress-file)
+       (tramp-sh-handle-insert-directory)
+       (tramp-sh-handle-expand-file-name)
+       (tramp-sh-handle-start-file-process)
+       (tramp-sh-handle-process-file, tramp-sh-handle-write-region)
+       (tramp-sh-handle-file-notify-add-watch)
+       (tramp-sh-gio-monitor-process-filter)
+       (tramp-sh-gvfs-monitor-dir-process-filter)
+       (tramp-sh-inotifywait-process-filter)
+       (tramp-sh-handle-file-system-info, tramp-maybe-send-script)
+       (tramp-find-executable, tramp-open-shell, tramp-find-shell)
+       (tramp-open-connection-setup-interactive-shell)
+       (tramp-find-inline-encoding, tramp-call-local-coding-command)
+       (tramp-compute-multi-hops, tramp-maybe-open-connection)
+       (tramp-convert-file-attributes)
+       (tramp-make-copy-program-file-name, tramp-get-remote-locale)
+       (tramp-get-test-nt-command, tramp-get-remote-stat)
+       (tramp-get-inline-coding):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-directory-files)
+       (tramp-smb-action-get-acl, tramp-smb-handle-file-attributes)
+       (tramp-smb-handle-file-name-all-completions)
+       (tramp-smb-handle-file-system-info)
+       (tramp-smb-handle-file-writable-p)
+       (tramp-smb-handle-insert-directory)
+       (tramp-smb-handle-make-directory)
+       (tramp-smb-handle-make-directory-internal)
+       (tramp-smb-handle-start-file-process, tramp-smb-get-localname)
+       (tramp-smb-read-file-entry): Use `string-match-p' and
+       `looking-at-p'.  Remove superfluous `save-match-data'.  Apply
+       `eval-when-compile' on constant concat data.
+
+       * lisp/net/tramp-compat.el (tramp-compat-file-name-quoted-p-p):
+       Use `string-prefix-p'.
+       (tramp-compat-file-name-unquote): Do not use match data.
+
+2018-12-06  Michael Albinus  <address@hidden>
+
+       Make stronger tests for Tramp multi hops
+
+       * lisp/net/tramp.el (tramp-dissect-file-name, tramp-dissect-hop-name):
+       Check, that method is capable of multi hops.
+
+       * test/lisp/net/tramp-tests.el (tramp-test02-file-name-dissect)
+       (tramp-test02-file-name-dissect-simplified)
+       (tramp-test02-file-name-dissect-separate): Suppress check for multihops.
+       (tramp-test03-file-name-method-rules): Check for error if multi
+       hops cannot be applied.
+
+2018-12-06  João Távora  <address@hidden>
+
+       Keep Flymake compatible with Emacs 26.1 builds --without-x
+
+       * lisp/progmodes/flymake.el (flymake-double-exclamation-mark):
+       Don't define if 'define-fringe-bitmap isn't fbound.
+       (Version): Bump to 1.0.2
+
+2018-12-05  Glenn Morris  <address@hidden>
+
+       * admin/unidata/uvs.el (uvs-print-table-ivd): Add more header detail.
+
+2018-12-04  João Távora  <address@hidden>
+
+       Prepare lisp/progmodes/flymake.el for distribution in GNU ELPA
+
+       * lisp/progmodes/flymake.el (Package-Requires): Require Emacs
+       26.1.  (Version): Bump to 1.0.1
+
+2018-12-04  João Távora  <address@hidden>
+
+       Allow custom load paths in elisp's byte-compilation Flymake
+
+       * lisp/progmodes/elisp-mode.el
+       (elisp-flymake-byte-compile-load-path): New variable.
+       (elisp-flymake-byte-compile): Use new variable
+
+2018-12-04  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/eldoc.el: Let the user interrupt the search
+
+       (eldoc-print-current-symbol-info): Use while-no-input and non-essential.
+
+2018-12-04  Eli Zaretskii  <address@hidden>
+
+       Support IBM038 (a.k.a. "EBCDIC-INT") encoding
+
+       * lisp/international/mule-conf.el (ibm038): New charset.
+       (ebcdic-int, cp038): Alias charsets of ibm038.
+       * lisp/language/english.el (ibm038): New coding-system.
+       (ebcdic-int, cp038): Alias coding-systems of ibm038.
+       (Bug#33612)
+
+       * etc/NEWS: Announce the new coding system ibm038.
+
+2018-12-04  Glenn Morris  <address@hidden>
+
+       Skip an autorevert test on hydra.nixos.org (bug#32645)
+
+       * test/lisp/autorevert-tests.el
+       (auto-revert-test02-auto-revert-deleted-file): Skip on hydra.
+
+2018-12-04  Stefan Monnier  <address@hidden>
+
+       * lisp/shell.el (shell--parse-pcomplete-arguments): Stop at semi-colon
+
+       * test/lisp/shell-tests.el (shell-tests-completion-before-semi):
+       New corresponding test.
+
+2018-12-03  Juri Linkov  <address@hidden>
+
+       * lisp/isearch.el (isearch-yank-on-move): New defcustom
+
+       with shift-move related options extracted from `search-exit-option'.
+       (isearch-pre-command-hook): Rename search-exit-option to
+       isearch-yank-on-move in shift-move related places.
+       (isearch-post-command-hook): Check for isearch-pre-move-point
+       instead of search-exit-option.  (Bug#15839)
+
+       * doc/emacs/search.texi (Not Exiting Isearch): Rename
+       search-exit-option to isearch-yank-on-move.
+
+       * lisp/menu-bar.el (menu-bar-i-search-menu): Add more isearch commands.
+
+2018-12-03  Juri Linkov  <address@hidden>
+
+       * lisp/isearch.el (isearch-allow-scroll): New option `unlimited'.
+
+       (isearch-pre-command-hook): Call isearch-pre-scroll-point unless
+       isearch-allow-scroll is 'unlimited'.
+       (isearch-post-command-hook): Use `when' instead of `cond'.
+       Call isearch-lazy-highlight-new-loop when isearch-allow-scroll is
+       'unlimited'.  (Bug#15839)
+
+2018-12-03  Juri Linkov  <address@hidden>
+
+       * lisp/vc/vc-git.el (vc-git-stash): Call vc-dir-marked-files only
+
+       in vc-dir-mode.
+
+2018-12-03  Paul Eggert  <address@hidden>
+
+       emacsclient: fix typo on recent socket-leak change
+
+       This ports to POSIXish platforms like macOS that lack SOCK_CLOEXEC.
+       Fix suggested by Eli Zaretskii in:
+       https://lists.gnu.org/r/emacs-devel/2018-12/msg00055.html
+       * lib-src/emacsclient.c (set_local_socket):
+       Don’t use SOCK_CLOEXEC; that’s cloexec_socket’s job.
+
+2018-12-03  Eli Zaretskii  <address@hidden>
+
+       Fix WINDOWSNT/DOS_NT build
+
+       Recent changes in sysdep.c and emacsclient unnecessarily
+       removed useful code from DOS_NT builds.  This changeset
+       reinstates that code.
+       * nt/inc/ms-w32.h (tcdrain): Redirect to _commit.
+       (fdatasync): No need to redirect anymore.
+
+       * lib-src/emacsclient.c (flush_stdout): Don't avoid calling
+       tcdrain on DOS_NT platforms.
+
+       * src/sysdep.c (reset_sys_modes): Don't ifdef away the call to
+       tcdrain on DOS_NT platforms.
+
+2018-12-02  Paul Eggert  <address@hidden>
+
+       emacsclient: don’t leak socket to child processes
+
+       * lib-src/emacsclient.c [!WINDOWSNT]: Include fcntl.h.
+       (cloexec_socket): New function.
+       (set_tcp_socket, set_local_socket): Use it.
+
+2018-12-02  Paul Eggert  <address@hidden>
+
+       Use tcdrain, not fdatasync, to drain ttys
+
+       fdatasync is for storage devices, not ttys.
+       * admin/merge-gnulib (GNULIB_MODULES): Remove fdatasync.
+       * lib/fdatasync.c, m4/fdatasync.m4: Remove.
+       * lib-src/Makefile.in (LIB_FDATASYNC):
+       * src/Makefile.in (LIB_FDATASYNC):
+       Remove.  All uses removed.
+       * lib-src/emacsclient.c [!DOS_NT]:
+       Include <termios.h>, for tcdrain.
+       * lib-src/emacsclient.c (flush_stdout):
+       * src/sysdep.c (reset_sys_modes): On ttys, use tcdrain instead
+       of fdatasync (except don’t use either function if DOS_NT).
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+
+2018-12-02  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2018-11-30 memrchr: port better to clang
+       2018-11-21 mktime: add libc-config dependency
+       * build-aux/config.guess, build-aux/config.sub, lib/memrchr.c:
+       Copy from Gnulib.
+       * m4/gnulib-comp.m4: Regenerate.
+
+2018-12-02  Paul Eggert  <address@hidden>
+
+       emacsclient: fix symlink/socket race
+
+       * lib-src/emacsclient.c (socket_status): New arg UID.
+       All uses changed.
+       (set_local_socket): Don’t create the unbound socket unless the
+       initial sanity checks on the socket file succeed; this
+       simplifies cleaning it up.  Check socket ownership again
+       after connecting, to fix a race (Bug#33366).
+
+2018-12-02  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       745c9c0 (origin/emacs-26) Revert "Revert "Fix infloop in GC mark_kboa...
+       c418c85 Revert "Fix infloop in GC mark_kboards"
+       8fa0d96 * lisp/emacs-lisp/subr-x.el (if-let, when-let): Doc fix: acti...
+
+2018-12-02  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       317b354 ; Add notes about cross-compiling macOS versions
+       4b176eb Fix macOS run-time feature check
+       c03574b * etc/NEWS-*: Fix capitalization of "Emacs"
+
+       # Conflicts:
+       #       etc/NEWS
+
+2018-12-02  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       e06562c Fix "M-x man" when there's no 'man' program on PATH
+
+2018-12-02  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       cc3ad9a ; * CONTRIBUTE: Clarify rules for committing to release branc...
+       a89dbe2 * doc/misc/dbus.texi (Type Conversion): Fix typo.  (Bug#33551)
+       03ee726 ; Add comment to `customize-package-emacs-version-alist'
+       bce1d1a Improve documentation of gdb-mi.el
+
+2018-12-01  Paul Eggert  <address@hidden>
+
+       emacsclient: prefer XDG_RUNTIME_DIR (Bug#33367)
+
+       * lib-src/emacsclient.c: Disable -Wformat-truncation=2,
+       to avoid false alarms about the new snprintf calls.
+       (local_sockname): New function.
+       (set_local_socket): Use it.  Prefer XDG_RUNTIME_DIR (if set)
+       for location of socket directory.  Avoid unnecessary memory
+       allocation by using snprintf to destination.
+       * lisp/server.el (server-socket-dir): Prefer XDG_RUNTIME_DIR if set.
+
+2018-12-01  Stefan Monnier  <address@hidden>
+
+       * lisp/calendar/holidays.el: Use lexical-binding
+
+       Remove redundant :group arguments.
+       (holiday-sexp): Bind 'year' and 'date' dynamically for 'sexp' and 
'string'.
+
+2018-11-30  Paul Eggert  <address@hidden>
+
+       Fix infloop in GC mark_kboards
+
+       * src/keyboard.c (KBD_BUFFER_SIZE): Now a constant, not a macro.
+       (kbd_fetch_ptr, kbd_store_ptr): These now always point somewhere
+       into kbd_buffer, instead of sometimes pointing just past the
+       end which led to serious bugs (Bug#33547).  All uses changed.
+       (kbd_store_ptr): No longer volatile.  This variable has not been
+       accessed by a signal handler for some time, it seems.
+       (next_kbd_event, prev_kbd_event): New functions.
+       (kbd_buffer_nr_stored, process_special_events): Simplify.
+
+2018-11-30  Michael Albinus  <address@hidden>
+
+       Fix Bug#33556
+
+       * lisp/autorevert.el (auto-revert-notify-add-watch):
+       Assert that a key in `auto-revert-notify-watch-descriptor-hash-list'
+       is a valid file notification descriptor.  (Bug#33556)
+
+2018-11-29  Robert Pluim  <address@hidden>
+
+       Convert NS face colors to RGBA when comparing with frame values
+
+       The NS port uses indexes into a color table to specify the colors of
+       faces, whereas frames use RGBA pixel values.  In
+       extend_face_to_end_of_line the two needed to be compared to ensure
+       that the backgrounds of certain faces are not extended to the edge of
+       the window, which was failing because of this difference, thus causing
+       a visual difference with other platforms.  Convert from index to RGBA
+       when doing such comparisons.
+
+       * src/dispextern.h (FACE_COLOR_TO_PIXEL) [HAVE_NS]: New macro.  Call
+       ns_color_index_to_rgba under NS only.
+
+       * src/nsgui.h: Add prototype for ns_color_index_to_rgba.
+
+       * src/nsterm.m (ns_color_index_to_rgba): New function.  Converts a
+       color_table entry to corresponding RGBA pixel value.
+
+       * src/xdisp.c (extend_face_to_end_of_line): Call FACE_COLOR_TO_PIXEL
+       on face background color when comparing with frame color.
+
+2018-11-29  Filipp Gunbin  <address@hidden>
+
+       LDAP: Set process-connection-type to t
+
+         * lisp/net/ldap.el (ldap-search-internal): Set
+         process-connection-type to t.  (Bug#33050)
+
+2018-11-28  Glenn Morris  <address@hidden>
+
+       * lisp/emacs-lisp/bytecomp.el: Don't load compile at runtime.
+
+       It isn't needed and slows down compiling other files.
+
+2018-11-28  Eric Abrahamsen  <address@hidden>
+
+       Further small tweaks to Gnus modes cleanup
+
+       * lisp/gnus/gnus-sum.el: Remove explicit definition of
+         `gnus-summary-mode-hook', this is now created automatically.
+       * lisp/gnus/nnir.el (nnir-open-server): Attach `nnir-mode' to the
+         `gnus-summary-prepared-hook', instead of
+         `gnus-summary-mode-hook'. The latter no longer has access to the
+         buffer-local value of `gnus-newsgroup-name', which `nnir-mode'
+         needs.
+
+2018-11-28  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       74a3a79 (origin/emacs-26) Fix a typo in a doc string
+       911766d Minor markup fix in frames.texi
+       19ed1e9 * lisp/net/trampver.el (customize-package-emacs-version-alist...
+       d7132ad * lisp/mh-e/mh-e.el (customize-package-emacs-version-alist): ...
+       5f39260 * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Pass format to m...
+       a291f62 Don't call xwidget functions until GTK has been initialized
+       f0531b8 Improve documentation of Ediff wordwise commands
+       2925ce5 Support Hunspell 1.7.0 in ispell.el
+       03bb7a8 Avoid clearing echo-area message by auto-save-visited-file-name
+
+2018-11-28  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       094fcf6 Fix more drawing bugs in NS port (bug#32932)
+
+2018-11-28  Michael Albinus  <address@hidden>
+
+       Tramp cleanup
+
+       * lisp/net/tramp-sh.el (tramp-sh-handle-file-name-all-completions)
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-name-all-completions):
+       * lisp/net/tramp-smb.el (tramp-smb-read-file-entry):
+       Use `string-match-p'.
+
+       * lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
+       Set file properties more robust.
+
+       * lisp/net/tramp-sh.el (tramp-stat-marker)
+       (tramp-convert-file-attributes): Add tramp-autoload cookie.
+
+2018-11-28  Alan Mackenzie  <address@hidden>
+
+       Make compilation mode work with warnings from compiled buffer functions
+
+       In particular, warning messages from compile_defun now contain the 
source
+       buffer name and line and column numbers.  Typing CR on such a warning 
now
+       moves to the pertinent place in the source buffer.
+
+       This fixes bug #33475
+
+       * lisp/emacs-lisp/bytecomp.el (top-level): Require compile.elc?.
+       (emacs-lisp-compilation-file-name-or-buffer)
+       (emacs-lisp-compilation-parse-errors-filename-function): New
+       variables/constants.
+       (emacs-lisp-compilation-mode): New mode derived from compilation-mode.
+       (byte-compile-log-file): Check byte-compile-current-file for being a 
string,
+       not merely non-nil.  Change wording in message from "buffer" to "in 
buffer".
+       Go into emacs-lisp-compilation-mode rather than the plain 
compilation-mode.
+       (compile-defun): Bind byte-compile-current-file to current-buffer, not 
nil.
+
+       * lisp/progmodes/compile.el
+       (compilation-parse-errors-filename-function): Amend comments to specify 
that
+       this function may return a buffer, and that it need not save the match 
data.
+       (Several places): Amend comments to allow for the use of a buffer 
rather than
+       a file name.
+       (compilation-next-error-function): If the "file name" in file struct is
+       actually a buffer, use it rather than compilation-find-file's result.
+       (compilation-get-file-structure): save-match-data around the call to
+       compilation-parse-errors-filename-function.  Only call
+       command-line-normalize-file-name when `filename' is a string.
+
+2018-11-27  Paul Eggert  <address@hidden>
+
+       Fix core dump in dbus-message-internal
+
+       * src/dbusbind.c (Fdbus_message_internal):
+       Don’t go past array end (Bug#33530).
+
+2018-11-27  Michael Albinus  <address@hidden>
+
+       Fixes in tramp-clone.el
+
+       * lisp/net/tramp-rclone.el (tramp-rclone-parse-device-names):
+       Wrap by connection property "rclone-device-names".
+       (tramp-rclone-maybe-open-connection): Do not check for `non-essential'.
+
+2018-11-26  Michael Heerdegen  <address@hidden>
+
+       Revert "Replace insignificant backquotes" for Org files
+
+       Revert everything of commit 1808d254a5 "Replace insignificant
+       backquotes" that touches Org source files since these should not have
+       been changed.
+
+       * lisp/org/ob-C.el:
+       * lisp/org/ob-core.el:
+       * lisp/org/ob-exp.el:
+       * lisp/org/ob-groovy.el:
+       * lisp/org/ob-haskell.el:
+       * lisp/org/ob-io.el:
+       * lisp/org/ob-lisp.el:
+       * lisp/org/ob-lob.el:
+       * lisp/org/ob-lua.el:
+       * lisp/org/ob-octave.el:
+       * lisp/org/ob-perl.el:
+       * lisp/org/ob-python.el:
+       * lisp/org/ob-ref.el:
+       * lisp/org/ob-ruby.el:
+       * lisp/org/ob-sql.el:
+       * lisp/org/org-agenda.el:
+       * lisp/org/org-capture.el:
+       * lisp/org/org-clock.el:
+       * lisp/org/org-colview.el:
+       * lisp/org/org-duration.el:
+       * lisp/org/org-element.el:
+       * lisp/org/org-entities.el:
+       * lisp/org/org-gnus.el:
+       * lisp/org/org-indent.el:
+       * lisp/org/org-info.el:
+       * lisp/org/org-inlinetask.el:
+       * lisp/org/org-lint.el:
+       * lisp/org/org-list.el:
+       * lisp/org/org-mouse.el:
+       * lisp/org/org-plot.el:
+       * lisp/org/org-src.el:
+       * lisp/org/org-table.el:
+       * lisp/org/org.el:
+       * lisp/org/ox-ascii.el:
+       * lisp/org/ox-html.el:
+       * lisp/org/ox-latex.el:
+       * lisp/org/ox-man.el:
+       * lisp/org/ox-md.el:
+       * lisp/org/ox-org.el:
+       * lisp/org/ox-publish.el:
+       * lisp/org/ox-texinfo.el:
+       * lisp/org/ox.el: Undo changes made by commit "Replace insignificant
+       backquotes".
+
+2018-11-26  Eli Zaretskii  <address@hidden>
+
+       Unbreak compilation of emacsclient on MS-Windows
+
+       * lib-src/emacsclient.c (main): Make "-suspend" handling
+       conditional on !WINDOWSNT, as there's no SIGSTOP nor 'kill'
+       there.
+
+2018-11-26  Paul Eggert  <address@hidden>
+
+       emacsclient: assume HAVE_INET_SOCKETS
+
+       * configure.ac (HAVE_INET_SOCKETS): Remove.
+       * lib-src/emacsclient.c: Simplify by assuming HAVE_SOCKETS and
+       HAVE_INET_SOCKETS, which are always true nowadays, except perhaps
+       for MS-DOS and if so this program shouldn’t be built there anyway.
+       Don’t bother including sys/types.h, as it’s not needed on modern
+       systems (and syswait.h does it for us anyway).
+       (main): Simplify by assuming SIGSTOP (which is always defined
+       if SIGCONT is), and by assuming HAVE_SOCKETS && HAVE_INET_SOCKETS.
+
+2018-11-26  Paul Eggert  <address@hidden>
+
+       emacsclient: negate NO_SOCKETS_IN_FILE_SYSTEM
+
+       * lib-src/emacsclient.c (SOCKETS_IN_FILE_SYSTEM): Rename from
+       NO_SOCKETS_IN_FILE_SYSTEM, with inverted sense.  All uses changed.
+       All uses were of the form ‘#ifndef NO_SOCKETS_IN_FILE_SYSTEM’, and
+       it’s easier to read ‘#ifdef SOCKETS_IN_FILE_SYSTEM’.
+
+2018-11-26  Paul Eggert  <address@hidden>
+
+       emacsclient: fix some races on POSIX systems
+
+       Fix some longstanding race conditions due to emacsclient’s use of
+       ‘signal’ instead of ‘sigaction’ and its use of nested signal
+       handlers.  These races could cause premature exit or incorrect
+       commands sent to Emacs.
+       * lib-src/emacsclient.c (signal) [!WINDOWSNT]: Do not undef.
+       (emacs_socket): Remove this static variable.  It is now a parameter.
+       (send_to_emacs): Do not exit merely because ‘send’ was interrupted.
+       Instead, act on the signal if possible, and then retry the ‘send’.
+       (pass_signal_to_emacs): Remove; now done by act_on_signals.
+       (reinstall_handler_if_needed, handle_sigttou, handle_sigwinch)
+       (install_handler): New functions.
+       (got_sigcont, got_sigtstp, got_sigttou, got_sigwinch):
+       New globals, used for more-portable signal handling.
+       (handle_sigcont, handle_sigtstp): Just set the static var; other
+       actions are now done later by act_on_signals.
+       (install_handler): New function that arranges for signals to
+       never be reset to default, on modern POSIX platforms.
+       This fixes some races.
+       (act_on_signals): New function.  When acting on SIGCONT,
+       don’t bother calling getpgrp if tcgetpgrp fails.
+       (start_daemon_and_retry_set_socket): Return the socket
+       rather than setting a global variable.  All uses changed.
+       (flush_stdout): New function that acts on signals received while
+       flushing.
+       (main): Use it.  emacs_socket is now a local var.
+       Act on signals received during recv.
+
+2018-11-26  Michael Albinus  <address@hidden>
+
+       Rework tramp-rclone-mounted-p
+
+       * lisp/net/tramp-rclone.el (tramp-rclone-mounted-p): Rewrite.
+       (tramp-rclone-maybe-open-connection): Set "mounted" file property.
+
+2018-11-26  Wilson Snyder  <address@hidden>
+
+       Update verilog-mode with upstream patches.
+
+       * lisp/progmodes/verilog-mode.el (verilog-auto-templated-rel)
+       (verilog-load-file-at-point, verilog-read-arg-pins)
+       (verilog-read-auto-constants, verilog-read-auto-params)
+       (verilog-read-auto-template-middle, verilog-read-decls)
+       (verilog-read-includes, verilog-read-inst-pins)
+       (verilog-read-instants, verilog-read-sub-decls-gate): Don't copy
+       properties when parsing AUTOs.
+       (verilog-font-lock-keywords): Fix SystemVerilog font lock keywords to be
+       more consistent with IEEE 1364 keywords. Reported by Jeff Riley.
+       (verilog-highlight-p1800-keywords): Now ignored.
+       (verilog-simplify-range-expression): Simplify shifts in auto wire
+       declarations, bug1346.  Reported by Maghawan Punde.
+       (verilog-read-always-signals-recurse): Fix AUTORESET with pattern
+       assignments. Reported by Bhargava Narumanchi.
+       (verilog-at-constraint-p): Fix indentation of replicate with parameter.
+       Reported by Yun He.
+       (verilog-read-defines, verilog-read-includes)
+       (verilog-substitute-include-name): Fix handling define names in 
includes,
+       bug1324. Reported by John DeRoo.
+       (verilog-imenu-generic-expression): Fix speedbar for signed functions,
+       bug1312. Reported by Ian Perryman.
+       (verilog-indent-buffer): Fix verilog-batch-indent not honoring top mode
+       line. Reported by James Claffey.
+       (verilog-set-auto-endcomments): Fix end comments when have variables
+       starting with class_, bug1259. Reported by Andrea Fedeli.
+       (verilog-read-decls): Fix AUTOINST for parameterized interfaces,
+       bug1253. Reported by David Rogoff.
+       (verilog-read-sub-decls-line, verilog-signals-combine-bus): Fix 
AUTOOUTPUT
+       not including nested array references, msg2417.
+       (verilog-at-constraint-p): begin/end are illegal inside constraint 
blocks,
+       so use that knowledge to make smarter indentation decisions.
+       (verilog-auto-simplify-expressions, verilog-simplify-range-expression):
+       Add `verilog-auto-simplify-expressions' to disable range 
simplifications.
+       (verilog-auto-save-check, verilog-batch-execute-func): Fix .* causing
+       Emacs batch to always re-save files with no changes, bug1239.  Reported 
by
+       Brian Etscheid.
+
+2018-11-25  Juri Linkov  <address@hidden>
+
+       * lisp/windmove.el: Directional window deletion (bug#32790)
+
+       * lisp/windmove.el (windmove-delete-in-direction)
+       (windmove-delete-left, windmove-delete-up)
+       (windmove-delete-right, windmove-delete-down)
+       (windmove-delete-default-keybindings): New functions.
+
+2018-11-25  Michael Heerdegen  <address@hidden>
+
+       Replace insignificant backquotes
+
+       Replace most insignificant occurrences of '`' with a straight quote,
+       sharp quote or nothing.  This includes backquotes in 'pcase' patterns.
+
+       * admin/admin.el:
+       * lisp/apropos.el:
+       * lisp/arc-mode.el:
+       * lisp/auth-source.el:
+       * lisp/avoid.el:
+       * lisp/bindings.el:
+       * lisp/bs.el:
+       * lisp/calculator.el:
+       * lisp/calendar/todo-mode.el:
+       * lisp/cedet/semantic.el:
+       * lisp/cedet/semantic/analyze/debug.el:
+       * lisp/cedet/semantic/bovine.el:
+       * lisp/cedet/semantic/dep.el:
+       * lisp/cedet/semantic/grammar.el:
+       * lisp/cedet/semantic/wisent/comp.el:
+       * lisp/cedet/semantic/wisent/grammar.el:
+       * lisp/cedet/srecode/mode.el:
+       * lisp/cus-edit.el:
+       * lisp/doc-view.el:
+       * lisp/elec-pair.el:
+       * lisp/electric.el:
+       * lisp/emacs-lisp/autoload.el:
+       * lisp/emacs-lisp/benchmark.el:
+       * lisp/emacs-lisp/byte-opt.el:
+       * lisp/emacs-lisp/bytecomp.el:
+       * lisp/emacs-lisp/cconv.el:
+       * lisp/emacs-lisp/cl-extra.el:
+       * lisp/emacs-lisp/cl-generic.el:
+       * lisp/emacs-lisp/cl-macs.el:
+       * lisp/emacs-lisp/copyright.el:
+       * lisp/emacs-lisp/debug.el:
+       * lisp/emacs-lisp/eieio-compat.el:
+       * lisp/emacs-lisp/ert.el:
+       * lisp/emacs-lisp/generator.el:
+       * lisp/emacs-lisp/inline.el:
+       * lisp/emacs-lisp/macroexp.el:
+       * lisp/emacs-lisp/map.el:
+       * lisp/emacs-lisp/package-x.el:
+       * lisp/emacs-lisp/package.el:
+       * lisp/emacs-lisp/radix-tree.el:
+       * lisp/emacs-lisp/smie.el:
+       * lisp/epa.el:
+       * lisp/erc/erc-dcc.el:
+       * lisp/erc/erc-track.el:
+       * lisp/erc/erc.el:
+       * lisp/eshell/em-ls.el:
+       * lisp/eshell/esh-cmd.el:
+       * lisp/files.el:
+       * lisp/filesets.el:
+       * lisp/font-lock.el:
+       * lisp/frameset.el:
+       * lisp/gnus/gnus-agent.el:
+       * lisp/gnus/gnus-art.el:
+       * lisp/gnus/gnus-cite.el:
+       * lisp/gnus/gnus-group.el:
+       * lisp/gnus/gnus-msg.el:
+       * lisp/gnus/gnus-salt.el:
+       * lisp/gnus/gnus-srvr.el:
+       * lisp/gnus/gnus-sum.el:
+       * lisp/gnus/gnus-topic.el:
+       * lisp/gnus/gnus-util.el:
+       * lisp/gnus/gnus.el:
+       * lisp/gnus/message.el:
+       * lisp/gnus/mm-util.el:
+       * lisp/gnus/mml.el:
+       * lisp/gnus/nnheader.el:
+       * lisp/gnus/nnimap.el:
+       * lisp/gnus/nnmairix.el:
+       * lisp/gnus/spam.el:
+       * lisp/hexl.el:
+       * lisp/hi-lock.el:
+       * lisp/ibuf-ext.el:
+       * lisp/ibuffer.el:
+       * lisp/ido.el:
+       * lisp/info.el:
+       * lisp/international/mule-cmds.el:
+       * lisp/international/mule-util.el:
+       * lisp/json.el:
+       * lisp/jsonrpc.el:
+       * lisp/language/cyrillic.el:
+       * lisp/language/european.el:
+       * lisp/language/georgian.el:
+       * lisp/language/tibetan.el:
+       * lisp/language/utf-8-lang.el:
+       * lisp/language/vietnamese.el:
+       * lisp/ldefs-boot.el:
+       * lisp/mail/mail-extr.el:
+       * lisp/man.el:
+       * lisp/menu-bar.el:
+       * lisp/mh-e/mh-acros.el:
+       * lisp/mh-e/mh-folder.el:
+       * lisp/mh-e/mh-mime.el:
+       * lisp/mh-e/mh-show.el:
+       * lisp/mh-e/mh-speed.el:
+       * lisp/minibuffer.el:
+       * lisp/mpc.el:
+       * lisp/net/ange-ftp.el:
+       * lisp/net/hmac-def.el:
+       * lisp/net/newst-backend.el:
+       * lisp/net/quickurl.el:
+       * lisp/net/tramp-archive.el:
+       * lisp/net/tramp-compat.el:
+       * lisp/notifications.el:
+       * lisp/obsolete/pgg-parse.el:
+       * lisp/obsolete/vc-arch.el:
+       * lisp/obsolete/xesam.el:
+       * lisp/org/ob-C.el:
+       * lisp/org/ob-core.el:
+       * lisp/org/ob-exp.el:
+       * lisp/org/ob-groovy.el:
+       * lisp/org/ob-haskell.el:
+       * lisp/org/ob-io.el:
+       * lisp/org/ob-lisp.el:
+       * lisp/org/ob-lob.el:
+       * lisp/org/ob-lua.el:
+       * lisp/org/ob-octave.el:
+       * lisp/org/ob-perl.el:
+       * lisp/org/ob-python.el:
+       * lisp/org/ob-ref.el:
+       * lisp/org/ob-ruby.el:
+       * lisp/org/ob-sql.el:
+       * lisp/org/org-agenda.el:
+       * lisp/org/org-capture.el:
+       * lisp/org/org-clock.el:
+       * lisp/org/org-colview.el:
+       * lisp/org/org-duration.el:
+       * lisp/org/org-element.el:
+       * lisp/org/org-entities.el:
+       * lisp/org/org-gnus.el:
+       * lisp/org/org-indent.el:
+       * lisp/org/org-info.el:
+       * lisp/org/org-inlinetask.el:
+       * lisp/org/org-lint.el:
+       * lisp/org/org-list.el:
+       * lisp/org/org-mouse.el:
+       * lisp/org/org-plot.el:
+       * lisp/org/org-src.el:
+       * lisp/org/org-table.el:
+       * lisp/org/org.el:
+       * lisp/org/ox-ascii.el:
+       * lisp/org/ox-html.el:
+       * lisp/org/ox-latex.el:
+       * lisp/org/ox-man.el:
+       * lisp/org/ox-md.el:
+       * lisp/org/ox-org.el:
+       * lisp/org/ox-publish.el:
+       * lisp/org/ox-texinfo.el:
+       * lisp/org/ox.el:
+       * lisp/play/bubbles.el:
+       * lisp/play/gamegrid.el:
+       * lisp/progmodes/autoconf.el:
+       * lisp/progmodes/cc-defs.el:
+       * lisp/progmodes/cc-engine.el:
+       * lisp/progmodes/cc-fonts.el:
+       * lisp/progmodes/cc-langs.el:
+       * lisp/progmodes/cperl-mode.el:
+       * lisp/progmodes/ebrowse.el:
+       * lisp/progmodes/elisp-mode.el:
+       * lisp/progmodes/flymake-cc.el:
+       * lisp/progmodes/flymake.el:
+       * lisp/progmodes/fortran.el:
+       * lisp/progmodes/grep.el:
+       * lisp/progmodes/gud.el:
+       * lisp/progmodes/idlwave.el:
+       * lisp/progmodes/js.el:
+       * lisp/progmodes/m4-mode.el:
+       * lisp/progmodes/make-mode.el:
+       * lisp/progmodes/mixal-mode.el:
+       * lisp/progmodes/modula2.el:
+       * lisp/progmodes/octave.el:
+       * lisp/progmodes/opascal.el:
+       * lisp/progmodes/prolog.el:
+       * lisp/progmodes/ps-mode.el:
+       * lisp/progmodes/python.el:
+       * lisp/progmodes/ruby-mode.el:
+       * lisp/progmodes/sh-script.el:
+       * lisp/progmodes/sql.el:
+       * lisp/progmodes/verilog-mode.el:
+       * lisp/ps-mule.el:
+       * lisp/rtree.el:
+       * lisp/ruler-mode.el:
+       * lisp/ses.el:
+       * lisp/simple.el:
+       * lisp/startup.el:
+       * lisp/subr.el:
+       * lisp/term/ns-win.el:
+       * lisp/textmodes/bibtex.el:
+       * lisp/textmodes/conf-mode.el:
+       * lisp/textmodes/css-mode.el:
+       * lisp/textmodes/refill.el:
+       * lisp/textmodes/sgml-mode.el:
+       * lisp/textmodes/tex-mode.el:
+       * lisp/tutorial.el:
+       * lisp/url/url-dav.el:
+       * lisp/url/url-gw.el:
+       * lisp/url/url-http.el:
+       * lisp/url/url-methods.el:
+       * lisp/url/url-privacy.el:
+       * lisp/vc/cvs-status.el:
+       * lisp/vc/diff-mode.el:
+       * lisp/vc/ediff-init.el:
+       * lisp/vc/ediff-ptch.el:
+       * lisp/vc/log-edit.el:
+       * lisp/vc/log-view.el:
+       * lisp/vc/pcvs-info.el:
+       * lisp/vc/pcvs.el:
+       * lisp/vc/smerge-mode.el:
+       * lisp/vc/vc-git.el:
+       * lisp/vc/vc-hg.el:
+       * lisp/vc/vc-mtn.el:
+       * lisp/vc/vc-rcs.el:
+       * lisp/whitespace.el:
+       * lisp/window.el:
+       * test/lisp/electric-tests.el:
+       * test/lisp/emacs-lisp/cl-lib-tests.el:
+       * test/lisp/emacs-lisp/ert-tests.el:
+       * test/lisp/epg-tests.el:
+       * test/lisp/jsonrpc-tests.el:
+       * test/src/data-tests.el:
+       * test/src/json-tests.el: Replace most insignificant backquotes.
+
+2018-11-25  Stephen Berman  <address@hidden>
+
+       Handle narrowing when marking entries of included diary files
+
+       * lisp/calendar/diary-lib.el (diary-mark-entries): Widen before
+       marking entries (bug#33423).
+
+2018-11-24  Juri Linkov  <address@hidden>
+
+       Add new Isearch commands to new Isearch menu (bug#29321, bug#32990)
+
+       * lisp/isearch.el (isearch-menu-bar-map): Add menu items for
+       isearch-beginning-of-buffer and isearch-end-of-buffer.
+       (isearch-forward): Add them to docstring.
+
+2018-11-24  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       9877c03 (origin/emacs-26) Fix bug #33416, where typing a ) in a comme...
+
+2018-11-24  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       56e3e4f Improve indexing in the ELisp manual
+       7a4992a More Symbola-related extensions for default fontset
+       4ae0a75 Better support for display of U+1F900..U+1F9FF block
+       8f0c788 Improve documentation of 'edit-abbrevs-mode'
+       3c643e7 ; NEWS tweak
+       477414a Improve documentation of 'dired-do-compress'
+       9c09b1d ; * etc/NES: Minor change in the description of Dired's 'Z'.
+       52715e3 Improve doc string and display of 'describe-character'
+       93242b1 * etc/NEWS: Clarify what 'Z' does in Dired.  (Bug#33450)
+       0d59ae3 Update the docs of object internals
+
+       Conflicts:
+               etc/NEWS
+
+2018-11-24  Michael Albinus  <address@hidden>
+
+       Add Tramp rclone method
+
+       * doc/misc/tramp.texi (Top): Remove "History".
+       (History): Remove node.
+       (Quick Start Guide): New section "Using rclone".
+       (External methods) <rclone>: Describe.
+
+       * etc/NEWS: Mention Tramp rclone method.
+
+       * lisp/net/tramp-rclone.el: New file.
+
+2018-11-24  Michael Albinus  <address@hidden>
+
+       Revert patch in tramp-equal-remote
+
+       * lisp/net/tramp-sh.el (tramp-timeout-session):
+       Use `tramp-file-name-equal-p'.
+
+       * lisp/net/tramp.el (tramp-equal-remote): Revert patch.
+
+2018-11-24  Charles A. Roelli  <address@hidden>
+
+       Add tool-bar and menu-bar menu for Isearch (Bug#32990)
+
+       * etc/NEWS (Search and Replace): Mention this change.
+
+       * lisp/isearch.el: Declare the new, non-autoloaded function
+       'tmm-menubar-keymap'.
+       (isearch-tmm-menubar): New function.
+       (isearch-menu-bar-commands): New variable.
+       (isearch-menu-bar-yank-map, isearch-menu-bar-map): New variables.
+       (isearch-mode-map): Define a menu-bar search menu and remap
+       'tmm-menubar' bindings to point to 'isearch-tmm-menubar'.
+       (isearch-tool-bar-old-map): New variable.
+       (isearch-tool-bar-image): New function.
+       (isearch-tool-bar-map): New variable.
+       (minor-mode-map-alist): Add an entry for Isearch so that
+       'isearch-menu-bar-map' shows during search.
+       (isearch-mode, isearch-done): Save and restore possible
+       buffer-local 'tool-bar-map' using 'isearch-tool-bar-old-map'.
+       (iseacrh-mouse-commands): New variable.
+       (isearch-mouse-leave-buffer): Allow commands in
+       isearch-mouse-commands.
+       (with-isearch-suspended): Only push changed states of Isearch
+       after running the body argument of this macro.
+       (isearch-pre-command-hook): Additionally allow bindings in
+       'isearch-tool-bar-map' to pass through, as well as commands
+       in isearch-menu-bar-commands.
+       (isearch-post-command-hook): Call 'force-mode-line-update' at its
+       end to make sure the menu- and tool-bars are up-to-date.
+
+       * lisp/tmm.el (tmm-menubar-keymap): New function factored out from
+       'tmm-menubar'.
+       (tmm-menubar): Use 'tmm-menubar-keymap'.
+       (tmm-prompt): New optional argument 'no-execute'.
+
+2018-11-24  Michael Albinus  <address@hidden>
+
+       Remove find-file-noselect in Tramp, it was handled in XEmacs
+
+       * lisp/net/tramp.el (tramp-file-name-for-operation):
+       Remove `find-file-noselect'.
+
+2018-11-23  Eric Abrahamsen  <address@hidden>
+
+       Provide new gnus-mode, derive all gnus major modes from this
+
+       * lisp/gnus/gnus.el (gnus-mode): New do-nothing major mode, derived
+         from special mode.
+       * lisp/gnus/gnus-sum.el (gnus-summary-mode): Change from a function to
+         a major mode, derive from gnus-mode.
+         (gnus-summary-setup-buffer): Change call a bit -- can no longer pass
+         an argument to the mode function.
+       * lisp/gnus/gnus-srvr.el (gnus-browse-mode): Derive from gnus-mode.
+         (gnus-server-setup-buffer): Remove unnecessary function.
+         (gnus-enter-server-buffer): Call gnus-server-mode here, and call it
+         whether the server buffer already existed or not.
+         (gnus-server-mode): Change from a function to a major mode.
+         (gnus-server-mode-hook): Delete custom option, this is automatically
+         created.
+       * lisp/gnus/gnus-salt.el (gnus-tree-mode): Derive from gnus-mode.
+         (gnus-tree-mode-hook): Delete custom option, this is automatically
+         created.
+       * lisp/gnus/gnus-kill.el (gnus-kill-file-mode-hook): Delete custom
+         option.
+       * lisp/gnus/gnus-group.el (gnus-group-mode):
+       * lisp/gnus/gnus-art.el (gnus-article-mode):
+       * lisp/gnus/gnus-agent.el (gnus-category-mode): Derive from gnus-mode.
+         (gnus-category-mode-hook): Delete custom option.
+
+       (Bug#33263)
+
+2018-11-23  Filipp Gunbin  <address@hidden>
+
+       search.texi fix for leftover from C-M-w to C-M-d change
+
+       * doc/emacs/search.texi: Replace C-M-w with C-M-d.
+
+2018-11-23  Eli Zaretskii  <address@hidden>
+
+       Avoid compilation warning in emacsclient.c
+
+       * lib-src/emacsclient.c (set_tcp_socket): Avoid compilation
+       warning in MS-Windows build.
+
+2018-11-23  Paul Eggert  <address@hidden>
+
+       emacsclient: fix child exit when exec fails
+
+       * lib-src/emacsclient.c (start_daemon_and_retry_set_socket):
+       If the execvp of Emacs fails exit instead of having the child
+       run on and do the work of the parent.  Coalesce duplicate code.
+
+2018-11-23  Paul Eggert  <address@hidden>
+
+       emacsclient: one ‘main’ function
+
+       * lib-src/emacsclient.c (main): Simplify by having just one
+       ‘main’ function instead of two.  Don’t assume argc is positive (!).
+
+2018-11-22  Paul Eggert  <address@hidden>
+
+       emacsclient: tidy socket failure cleanup
+
+       * lib-src/emacsclient.c (set_tcp_socket, set_local_socket):
+       Close socket (instead of leaking it) when ‘connect’ fails.
+       (socket_status): Return errno if stat fails and -1 if we don’t own.
+       (set_local_socket): Simplify based on socket_status change.
+
+2018-11-22  Juri Linkov  <address@hidden>
+
+       Add Isearch commands for going to absolute occurrence of matches 
(bug#29321)
+
+       * lisp/isearch.el (isearch-mode-map): Bind 'M-s M-<' to
+       'isearch-beginning-of-buffer' and 'isearch-end-of-buffer' to 'M-s M->'.
+       (isearch-beginning-of-buffer, isearch-end-of-buffer): New commands.
+
+2018-11-22  Paul Eggert  <address@hidden>
+
+       emacsclient: coalesce WINDOWSNT-specific code
+
+       * lib-src/emacsclient.c (sock_err_message) [WINDOWSNT]:
+       Do nothing if w32_window_app () && alternate_editor.
+       Both callers changed.
+
+2018-11-22  Paul Eggert  <address@hidden>
+
+       emacsclient: sockaddr portability fixes
+
+       * lib-src/emacsclient.c (get_server_config, set_tcp_socket)
+       (set_local_socket): Initialize any platform-specific extensions
+       of struct to zero, just in case.
+       (set_tcp_socket, set_local_socket): Don’t assume struct
+       layout details that POSIX does not specify.
+       Use union to sidestep some problems with strict aliasing.
+       Remove unnecessary casts.
+
+2018-11-22  Michael Albinus  <address@hidden>
+
+       Some minor Tramp cleanups
+
+       * lisp/net/tramp-adb.el (tramp-adb-file-name-p):
+       * lisp/net/tramp-ftp.el (tramp-ftp-file-name-p):
+       * lisp/net/tramp-smb.el (tramp-smb-file-name-p): Make it more robust.
+
+       * lisp/net/tramp.el (tramp-handle-file-truename): Cache only the
+       localname.
+
+2018-11-21  Paul Eggert  <address@hidden>
+
+       emacsclient: getopt minor cleanup
+
+       * lib-src/emacsclient.c (shortopts): New constant.
+       (decode_options): Use it.  Do not assume EOF == -1.
+
+2018-11-21  Paul Eggert  <address@hidden>
+
+       emacsclient: omit EXTRA_SPACE guesswork
+
+       * lib-src/emacsclient.c: Include <intprops.h>.
+       (EXTRA_SPACE): Remove; code no longer guesses this is enough.
+       (open_config): New function.
+       (get_server_config): Use it.
+       (set_local_socket): Compute upper bound of buffer size
+       instead of guessing via EXTRA_SPACE.
+
+2018-11-21  Juri Linkov  <address@hidden>
+
+       Add prefix arg to isearch-forward-symbol-at-point (bug#29321)
+
+       * lisp/isearch.el (isearch-forward-symbol-at-point): Add optional arg.
+
+2018-11-21  Paul Eggert  <address@hidden>
+
+       emacsclient: take more care with int width
+
+       * lib-src/emacsclient.c: Include inttypes.h, stddef.h.
+       (emacs_pid, main): Don’t assume pid fits in int.
+       (fail): Don’t assume pointer difference fits in int.
+       (set_local_socket): Don’t assume uid fits in long.
+
+2018-11-21  Paul Eggert  <address@hidden>
+
+       emacsclient.c: use C99 to avoid {}
+
+       * lib-src/emacsclient.c (set_local_socket):
+       Assume C99 decl-after-statement and reindent.
+
+2018-11-21  Paul Eggert  <address@hidden>
+
+       emacsclient: improve use of locals
+
+       * lib-src/emacsclient.c (main):
+       Use smaller scopes for some locals.
+
+2018-11-21  Paul Eggert  <address@hidden>
+
+       emacsclient: fix unlikely crash with "&"
+
+       * lib-src/emacsclient.c (quote_argument):
+       Mention *DATA in comment so it’s clear DATA must be non-null.
+       (quote_argument, unquote_argument): Simplify.
+       (unquote_argument): Don’t crash if the string ends in "&".
+
+2018-11-21  Eric Abrahamsen  <address@hidden>
+
+       Fix "Allow use of Gnus search groups as notmuch path: search term"
+
+       * lisp/gnus/nnir.el (nnir-notmuch-filter-group-names-function):
+         Default to nil -- getting correct behavior requires user
+         intervention too often to have this enabled by default.
+       * lisp/gnus/nnir.el (nnir-run-notmuch): If the user has turned this
+         on, then also hardcode `gnus-group-short-name' as a filter -- things
+         will never work without it. Also move leading space to before the
+         opening parenthesis.
+       * doc/misc/gnus.texi: Document option.
+
+       (Bug#33122)
+
+2018-11-21  Eric Abrahamsen  <address@hidden>
+
+       Check Gnus group names when reading from browse server
+
+       * lisp/gnus/gnus-srvr.el (gnus-browse-read-group): If the group in
+         question belongs to the native server, the name has to be shortened
+         before we check it with `gnus-get-info'. It might work otherwise
+         with nntp, but for backends like nnmaildir that have their own
+         accounting system, creating an ephemeral group won't work.
+
+2018-11-21  Michael Albinus  <address@hidden>
+
+       * doc/misc/tramp.texi: Fix last commit.
+
+2018-11-21  Michael Albinus  <address@hidden>
+
+       Let Tramp sudo sessions expire after a timeout
+
+       * doc/misc/tramp.texi (Inline methods) <sudo, doas>: Both methods expire
+       the underlying session per default.
+       (Predefined connection information): Explain "session-timeout".
+
+       * etc/NEWS: Mention Tramp session expiration.
+
+       * lisp/net/tramp-sh.el (tramp-methods) <sudo, doas>:
+       Add `tramp-session-timeout'.
+       (tramp-timeout-session): New defun.
+       (tramp-maybe-open-connection): Handle session timeout.
+
+       * lisp/net/tramp.el (tramp-methods): Adapt docstring.
+       (tramp-equal-remote): Extend.
+
+2018-11-20  Juri Linkov  <address@hidden>
+
+       Add prefix arg to isearch-repeat-forward/backward (bug#14563, bug#29321)
+
+       * lisp/isearch.el (isearch-repeat): Add optional arg COUNT.
+       Add a while-loop that calls `isearch-search' COUNT times.
+       (isearch-repeat-forward, isearch-repeat-backward):
+       Add optional prefix ARG passed down to `isearch-repeat'.
+       Handle reversed directions.
+
+2018-11-20  Stefan Monnier  <address@hidden>
+
+       calc.el, calc-(ext|poly), calccomp: Use lexical-binding
+
+       * lisp/calc/calc-ext.el: Use lexical-binding, silence warnings.
+       (calc-init-extensions): Remove a few functions which can't be called
+       directly since they depend on dynamically scoped vars.
+       (calc-embedded-quiet): Declare.
+       (math-defcache): Use 'declare'.
+       (math-normalize-a): Remove declaration.
+       (math-normalize-nonstandard): Receive 'a' as arg instead.
+       (math-defintegral): Use 'declare'.
+       (math-exp-pos, math-exp-old-pos, math-exp-keep-spaces, math-rb-h2)
+       (math-read-big-baseline, math-read-big-h2, math-read-big-err-msg)
+       (math-exp-token, math-expr-data, math-exp-str): Declare.
+       (math-map-tree, math-read-expr): Avoid dynvars as formal arguments.
+
+       * lisp/calc/calc-poly.el: Use lexical-binding, silence warnings.
+       Turn some comments into docstrings.
+       (math-poly-div): Avoid dynvars as formal arguments.
+       (math-poly-base-top-expr): Move declaration before first use.
+       (calcFunc-factors, math-factor-expr, math-factor-expr-try)
+       (calcFunc-factor): Avoid dynvars as formal arguments.
+
+       * lisp/calc/calc.el: Use lexical-binding, silence warnings.
+       (math-normalize-a): Remove.
+       (math-normalize): Use lexical var 'a' instead.
+       (math-svo-c): Remove.
+       (math-stack-value-offset): Pass 'c' explicitly as arg to
+       math-stack-value-offset-fancy instead.
+
+       * lisp/calc/calccomp.el: Use lexical-binding, silence warnings.
+       (math-svo-c): Remove.
+       (math-stack-value-offset-fancy): Use new arg 'c' instead.
+       (math-comp-to-string-flat): Avoid dynvars as formal arguments.
+
+2018-11-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       d667318 (origin/emacs-26) Fix two Edebug defcustoms (bug#33428)
+
+2018-11-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       070e82b ; * src/window.c (window_scroll): Improve commentary.
+       60457d7 Improve documentation of the window tree
+       ea1a014 Fix window scrolling on TTY frames when there's no mode line
+       df7ed10 Fix decoding XML files encoded in ISO-8859
+       7851ae8 (tag: emacs-26.1.90) ; ChangeLog.3 update
+       1958808 * etc/AUTHORS: Update.
+       7252507 Fix description of some window hooks
+       88762b4 Run 'window--adjust-process-windows' when frame size changes ...
+       d6542ea Avoid errors in zone.el when there's overlay at EOB
+
+2018-11-20  Stefan Monnier  <address@hidden>
+
+       * lisp/calc/calc-alg.el: Use lexical-binding and silence warnings
+
+       * lisp/calc/calc-alg.el: Use lexical-binding and silence warnings.
+       (math-defsimplify): Let-bind 'expr' instead of math-simplify-expr.
+       Adjust all users.
+       (math-simplify-expr): Don't declare any more.
+       (math--simplify-divide-expr): New dynbound var.
+       (math-simplify-divide): Bind it when needed.
+       (math-simplify-divisor): Use it instead of math-simplify-expr.
+       (math-simplify-divisor): Only bind math-simplify-divisor-[nd]over
+       around the calls to math-simplify-one-divisor.
+       (math-expr-subst, math-is-polynomial): Don't use dynbound vars as
+       formal arguments.
+       (math-polynomial-base): Move binding of math-poly-base-pred.
+       Don't bind math-poly-base-top-expr any more...
+       * lisp/calc/calc-poly.el (math-total-polynomial-base): Bind it here 
instead!
+
+       * lisp/calc/calc-units.el: Use lexical-binding and silence warnings.
+       Adjust to the new 'expr' name in math-defsimplify.
+       (math-find-base-units, math-to-standard-units, math-convert-units):
+       Don't use dynbound vars as formal arguments.
+       (math-simplify-expr): Don't declare any more.
+
+2018-11-20  Robert Pluim  <address@hidden>
+
+       Remove space from end of coding cookie
+
+       * lisp/bookmark.el (bookmark-insert-file-format-version-stamp):
+       Remove unnecessary space from end of coding cookie.
+
+2018-11-19  Eli Zaretskii  <address@hidden>
+
+       Fix last change
+
+       * lib-src/emacsclient.c (start_daemon_and_retry_set_socket)
+       [!WINDOWSNT]: Condition usage of socket_name on
+       NO_SOCKETS_IN_FILE_SYSTEM being undefined.
+
+2018-11-19  Eli Zaretskii  <address@hidden>
+
+       Avoid compiler warning in emacsclient.c
+
+       * lib-src/emacsclient.c (socket_name): Define only if
+       NO_SOCKETS_IN_FILE_SYSTEM is not defined, to avoid a compiler
+       warning.
+
+2018-11-19  Paul Eggert  <address@hidden>
+
+       emacsclient.c: file name component fixes
+
+       * lib-src/emacsclient.c: Include <dosname.h>.
+       (file_name_absolute_p): Remove, as a code duplicate.
+       All uses replaced by IS_ABSOLUTE_FILE_NAME.
+       (set_local_socket): Don’t treat \ as a file name separator
+       on GNU and POSIX hosts.
+
+2018-11-19  Paul Eggert  <address@hidden>
+
+       emacsclient.c: reindent to fit in 80
+
+       * lib-src/emacsclient.c: Reindent slightly.
+
+2018-11-19  Paul Eggert  <address@hidden>
+
+       emacsclient.c: use C99 better
+
+       * lib-src/emacsclient.c (get_current_dir_name)
+       (send_to_emacs, set_tcp_socket, set_local_socket, main):
+       Take advantage of C99 stmt before decl.
+
+2018-11-19  Paul Eggert  <address@hidden>
+
+       emacsclient.c: use STDOUT_FILENO
+
+       * lib-src/emacsclient.c (find_tty, handle_sigcont, main):
+       Use STDOUT_FILENO instead of fileno (stdout) or magic 1.
+
+2018-11-19  Paul Eggert  <address@hidden>
+
+       emacsclient.c: use bool for boolean
+
+       * lib-src/emacsclient.c (nowait, quiet, suppress_output, eval, tty)
+       (decode_options, file_name_absolute_p, get_server_config)
+       (strprefix, find_tty, set_socket, main):
+       Use bool for boolean.
+       (create_frame): New static var, replacing the old current_frame
+       and with inverted sense, as this is clearer.
+
+2018-11-19  Paul Eggert  <address@hidden>
+
+       emacsclient.c: make identifiers more local
+
+       * lib-src/emacsclient.c (progname, main_argc, main_argv):
+       (nowait, quiet, suppress_output, eval, current_frame, display):
+       (alt_display, parent_id, tty, alternate_editor, socket_name):
+       (server_file, tramp_prefix, emacs_pid, frame_parameters):
+       (longopts, xstrdup, send_bufffer, sblen, emacs_socket):
+       Now static.
+       (SEND_BUFFER_SIZE, send_buffer, sblen):
+       Now local to send_to_emacs.
+
+2018-11-19  Paul Eggert  <address@hidden>
+
+       emacsclient.c: clean up preprocessing directives
+
+       * lib-src/emacsclient.c [WINDOWSNT]: Omit duplicate stdlib.h include.
+       Include min-max.h.
+       (EXIT_SUCCESS, EXIT_FAILURE, min): Remove; no longer needed.
+       (AUTH_KEY_LENGTH, SEND_BUFFER_SIZE): Now constants instead of macros.
+
+2018-11-19  Ulrich Müller  <address@hidden>
+
+       Update the calc units table
+
+       On 2018-11-16, the 26th meeting of the General Conference on Weights
+       and Measures (CGPM) has redefined the International System of Units by
+       adopting fixed values for the Planck constant, the elementary charge,
+       the Boltzmann constant, and the Avogadro constant:
+       https://www.bipm.org/utils/en/pdf/CGPM/Draft-Resolution-A-EN.pdf
+       * lisp/calc/calc-units.el (math-standard-units): Update according
+       to redefinition of the SI in 2018.
+
+2018-11-19  Stefan Monnier  <address@hidden>
+
+       * lisp/mouse.el (mouse-posn-property): Add comment
+
+2018-11-18  Stefan Monnier  <address@hidden>
+
+       Remove uses of obsolete 'CUA' symbol property
+
+       * lisp/emulation/cua-base.el (cua-scroll-up, cua-scroll-down):
+       * lisp/progmodes/subword.el (subword-forward, subword-backward):
+       * lisp/obsolete/crisp.el (crisp-home, crisp-end):
+       Remove 'CUA' prop; not used any more.
+
+2018-11-17  Juri Linkov  <address@hidden>
+
+       * lisp/vc/diff-mode.el (diff-find-source-location): Use 
vc-working-revision
+
+       when diff shows changes in working revision.  (Bug#33319)
+       (diff-goto-source): Rename variables to avoid ambiguity.
+
+2018-11-17  Juri Linkov  <address@hidden>
+
+       Don't exit Isearch while resizing windows with mouse (bug#32990)
+
+       * lisp/isearch.el (isearch-mouse-leave-buffer): New function.
+       (isearch-mode): Use isearch-mouse-leave-buffer instead of
+       isearch-done for mouse-leave-buffer-hook.
+       (isearch-done): Remove isearch-mouse-leave-buffer from
+       mouse-leave-buffer-hook.
+       (enlarge-window-horizontally, shrink-window-horizontally)
+       (shrink-window, mouse-drag-mode-line, mouse-drag-vertical-line):
+       Put property isearch-scroll with t.
+       (isearch-mode): Reset isearch-pre-scroll-point and
+       isearch-pre-move-point to nil for the case when Isearch exits
+       between isearch-pre-command-hook (that sets these values) and
+       isearch-post-command-hook (that used to reset them).
+
+2018-11-17  Stefan Monnier  <address@hidden>
+
+       * src/cmds.c (Fself_insert_command): Get last-command-event via (new) 
arg.
+
+2018-11-16  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       936a8f3 (origin/emacs-26) Document Emacs 26 behavior of Dired's 'Z' o...
+       99f99a1 ; Minor editing change in windows.texi
+       13bb665 Fix a typo in the Emacs manual
+
+       # Conflicts:
+       #       etc/NEWS
+
+2018-11-16  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       edcd6b7 Small documentation correction.
+       168a8c2 * src/coding.c (Fcheck_coding_systems_region): Doc fix.  (Bug...
+       3287a7c Fix Bug#33364
+       acee0a8 ; Cosmetic changes in etc/NEWS
+       a6ef167 * test/README: Explain $REMOTE_TEMPORARY_FILE_DIRECTORY.
+
+       # Conflicts:
+       #       etc/NEWS
+
+2018-11-16  Paul Eggert  <address@hidden>
+
+       Update from glibc and Gnulib
+
+       This incorporates:
+       2018-11-15 mktime: DEBUG_MKTIME cleanup
+       2018-11-15 mktime: fix non-EOVERFLOW errno handling
+       2018-11-15 mktime: fix bug with Y2038 DST transition
+       2018-11-15 mktime: make more room for overflow
+       2018-11-15 mktime: simplify offset guess
+       2018-11-15 mktime: new test for mktime failure
+       2018-11-15 mktime: fix EOVERFLOW bug
+       2018-11-13 longlong: fix comment typo
+       * lib/gnulib.mk.in: Regenerate.
+       * lib/mktime.c, m4/longlong.m4: Copy from Gnulib.
+
+2018-11-16  Michael Albinus  <address@hidden>
+
+       Mention ELPA packages which add new methods to Tramp
+
+       * doc/misc/tramp.texi (Customizing Methods): Mention ELPA packages
+       which add new methods to Tramp.
+
+2018-11-15  Juri Linkov  <address@hidden>
+
+       * lisp/windmove.el: Directional window display (bug#32790)
+
+       * lisp/windmove.el (windmove-display-no-select): New defcustom.
+       (windmove-display-in-direction, windmove-display-left)
+       (windmove-display-up, windmove-display-right)
+       (windmove-display-down, windmove-display-same-window)
+       (windmove-display-default-keybindings): New functions.
+
+2018-11-15  Juri Linkov  <address@hidden>
+
+       * lisp/windmove.el: Support more prefix args (bug#32790)
+
+       * lisp/windmove.el (windmove-left, windmove-up, windmove-right)
+       (windmove-down): Use prefix-numeric-value to support more prefix args
+       like 'C-u' and 'M--'.  Doc fix.
+
+2018-11-15  Michael Albinus  <address@hidden>
+
+       Fix Bug#33394
+
+       * lisp/net/trampver.el (tramp-repository-branch)
+       (tramp-repository-version): Handle out-of-tree builds.  (Bug#33394)
+
+2018-11-14  Juri Linkov  <address@hidden>
+
+       Isearch hit count.  (Bug#29321)
+
+       * lisp/isearch.el (isearch-lazy-count): New defcustom.
+       (lazy-count): New defgroup.
+       (lazy-count-prefix-format, lazy-count-suffix-format): New defcustom.
+       (isearch-lazy-count-format): New function.
+       (isearch-message-prefix, isearch-message-suffix): Use it.
+       (isearch-lazy-highlight-window-start-changed)
+       (isearch-lazy-highlight-window-end-changed)
+       (isearch-lazy-count-current, isearch-lazy-count-total)
+       (isearch-lazy-count-hash): New variables.
+       (isearch-lazy-highlight-new-loop): Reset isearch-lazy-count-total
+       and update isearch-lazy-count-current for isearch-message.
+       (isearch-lazy-highlight-update): Run full-buffer loop for
+       isearch-lazy-count.
+       (isearch-lazy-highlight-buffer-update): Count isearch-lazy-count-total.
+       Set isearch-lazy-count-current at the end.
+
+2018-11-14  Eli Zaretskii  <address@hidden>
+
+       Minor copyedits in documentation of HOME handling
+
+       * etc/NEWS: Reword the recent entry regarding the change in
+       how relative file names are interpreted in $HOME.
+
+       * doc/emacs/cmdargs.texi (General Variables): Advise against
+       using relative directory names in $HOME.
+
+2018-11-14  Paul Eggert  <address@hidden>
+
+       Fix probing for pre-1970 DST
+
+       * lisp/calendar/cal-dst.el (calendar-next-time-zone-transition):
+       Fix recently-introduced rounding bug when probing for DST
+       transitions before 1970 (Bug#33380).
+
+2018-11-14  Paul Eggert  <address@hidden>
+
+       Document recent change to HOME handling
+
+       * doc/emacs/cmdargs.texi (General Variables):
+       * doc/emacs/custom.texi (Find Init):
+       * doc/lispref/files.texi (File Name Expansion):
+       * etc/NEWS: Document behavior when HOME is a relative file name.
+
+2018-11-14  Eli Zaretskii  <address@hidden>
+
+       Fix a thinko in fileio.c
+
+       * src/fileio.c (get_homedir): Fix last change.  Suggested by
+       Paul Eggert <address@hidden>.
+
+2018-11-13  Juri Linkov  <address@hidden>
+
+       New option vc-find-revision-no-save to not write revision to file
+
+       * lisp/vc/vc.el (vc-find-revision-no-save): New defcustom (bug#33319).
+       (vc-find-revision): Depending on vc-find-revision-no-save,
+       call either vc-find-revision-no-save or vc-find-revision-save.
+       (vc-find-revision-save): Rename from vc-find-revision.
+       (vc-find-revision-no-save): New function.
+
+       * lisp/vc/diff-mode.el (diff-find-source-location):
+       Let-bind vc-find-revision-no-save to t.
+
+2018-11-13  Juri Linkov  <address@hidden>
+
+       Support VC revisions in diff-goto-source (bug#33319)
+
+       * lisp/vc/diff-mode.el (diff-vc-revisions): New defvar.
+       (diff-find-source-location): Call vc-find-revision for
+       non-nil values of 'other', diff-vc-backend, diff-vc-revisions.
+
+       * lisp/vc/vc.el (vc-diff-internal): Set buffer-local
+       diff-vc-revisions to the list of used revisions.
+
+       * doc/emacs/files.texi (Diff Mode): Update diff-goto-source
+       for VC-related prefix argument.
+
+2018-11-13  Eli Zaretskii  <address@hidden>
+
+       Fix recent change in fileio.c
+
+       * src/fileio.c (get_homedir) [WINDOWSNT]: Convert $HOME to UTF-8.
+       (Fexpand_file_name): Don't convert it here.
+
+2018-11-13  Glenn Morris  <address@hidden>
+
+       No need to pass absolute program name to call-process
+
+       * lisp/doc-view.el (doc-view-revert-buffer):
+       * lisp/net/eudcb-mab.el (eudc-mab-query-internal):
+       Remove superfluous executable-find.
+
+2018-11-13  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2018-11-03 nstrftime: simplify test for mktime failure
+       2018-11-02 gnulib-common.m4: port _Noreturn to C++
+       2018-10-22 std-gnu11: Support Autoconf versions < 2.64
+       2018-10-22 Assume Autoconf >= 2.63
+       2018-10-16 Remove support for Ultrix
+       2018-10-16 getloadavg: Remove support for ConvexOS
+       2018-10-16 getloadavg: Remove support for Sony NEWS
+       2018-10-16 Remove support for Dynix/ptx
+       2018-10-16 fsusage: Remove support for AIX 3
+       2018-10-16 fsusage, stat-size, getloadavg: Remove support for AIX PS/2
+       2018-10-16 getloadavg: Remove support for HP-UX on m68k
+       2018-10-16 fsusage, mountlist: Remove support for DolphinOS
+       2018-10-16 getloadavg: Remove support for Alliant FX/2800
+       2018-10-16 getloadavg: Remove support for tek4300
+       2018-10-16 getloadavg: Remove support for Ardent
+       * build-aux/config.guess, build-aux/config.sub, lib/_Noreturn.h:
+       * lib/fsusage.c, lib/getgroups.c, lib/getloadavg.c:
+       * lib/nstrftime.c, lib/time.in.h, m4/errno_h.m4:
+       * m4/fsusage.m4, m4/getgroups.m4, m4/gnulib-common.m4, m4/longlong.m4:
+       * m4/std-gnu11.m4, m4/stdint.m4:
+       Copy from Gnulib.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate:
+
+2018-11-13  Glenn Morris  <address@hidden>
+
+       Root emacsclient no longer connects to non-root sockets
+
+       * lib-src/emacsclient.c (set_local_socket): Don't ignore socket
+       ownership when run by root.
+       Ref: http://lists.gnu.org/r/emacs-devel/2018-11/msg00019.html
+
+2018-11-13  Eli Zaretskii  <address@hidden>
+
+       Avoid byte-compilation warning in emacsbug.el
+
+       * lisp/mail/emacsbug.el (w32--os-description): Declare it, to
+       avoid byte-compilation warning.  Reported by Live System User
+       <address@hidden>.
+
+2018-11-13  Paul Eggert  <address@hidden>
+
+       Act like POSIX sh if $HOME is relative
+
+       POSIX says sh ~/foo should act like $HOME/foo even if $HOME is
+       relative, so be consistent with that (Bug#33255).
+       * admin/merge-gnulib (GNULIB_MODULES): Add dosname.
+       * src/buffer.c (init_buffer): Use emacs_wd to get
+       initial working directory with slash appended if needed.
+       (default-directory): Say it must be absolute.
+       * src/emacs.c (emacs_wd): New global variable.
+       (init_cmdargs): Dir arg is now char const *.
+       (main): Set emacs_wd.
+       * src/emacs.c (main) [NS_IMPL_COCOA]:
+       * src/fileio.c (Fexpand_file_name):
+       Use get_homedir instead of egetenv ("HOME").
+       * src/fileio.c: Include dosname.h, for IS_ABSOLUTE_FILE_NAME.
+       (splice_dir_file, get_homedir): New functions.
+       * src/xrdb.c (gethomedir): Remove.  All callers changed
+       to use get_homedir and splice_dir_file.
+       * test/src/fileio-tests.el (fileio-tests--relative-HOME): New test.
+
+2018-11-13  Stefan Monnier  <address@hidden>
+
+       * lisp/files.el: Justify binding of read-circle with comments
+
+2018-11-13  Noam Postavsky  <address@hidden>
+
+       Fix build fail on files.el change (Bug#32352)
+
+       * lisp/files.el (dir-locals-read-from-dir): Reduce scope of
+       `read-circle' let-binding to go around the `read' call only.
+       Otherwise it can interfere with loading of files which use the
+       circular read syntax (e.g., executing the setf expression in
+       `dir-locals-set-class-variables' may require loading gv.elc).
+
+2018-11-12  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       189c49e * etc/AUTHORS: Update.
+       9723c21 ; ChangeLog.3 update
+
+2018-11-12  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       913c001 * lisp/files.el (write-file): Clarify the doc string.  (Bug#3...
+       d614b84 Fix typos in midnight.el
+       8c2778a Improve documentation of 'move-file-to-trash'
+       c7b8a51 ; * doc/lispref/functions.texi (Anonymous Functions): Fix typo.
+       92296de * src/data.c (Ftype_of): xwidget objects are possible! (bug#3...
+       a3242cc Improve documentation of Diff mode
+       39e85a0 Note that lex bound lambda forms are not self-quoting (Bug#33...
+       fa605f2 Rewrite buffer display related doc-strings and doc
+       aa55659 Fix call to GlobalMemoryStatusEx in w32.c
+
+       # Conflicts:
+       #       doc/emacs/files.texi
+       #       src/data.c
+
+2018-11-12  Sam Steingold  <address@hidden>
+
+       maybe_disable_address_randomization always returns "int argc"
+
+       maybe_disable_address_randomization needs a consistent signature
+       regardless of HAVE_PERSONALITY_ADDR_NO_RANDOMIZE.
+
+2018-11-11  Paul Eggert  <address@hidden>
+
+       Fix dumping on GNU/Linux ppc64le
+
+       Problem reported by Thomas Fitzsimmons (Bug#33174).
+       * src/emacs.c (main): Adjust to sysdep.c changes.
+       * src/sysdep.c (exec_personality): New static var.
+       (disable_address_randomization): Remove, replacing with ...
+       (maybe_disable_address_randomization): ... this new function.
+       Do not set or use an environment variable; use a command-line
+       argument instead, and set the new static var.  Migrate the emacs.c
+       personality-change code to here, where it belongs.
+       (emacs_exec_file): Simplify by using new static var.
+
+2018-11-11  Paul Eggert  <address@hidden>
+
+       Pacify gcc -Wmaybe-uninitialized without X11-XCB
+
+       I ran into this problem on Ubuntu 18.04.1 LTS.
+       * src/xterm.c (get_current_wm_state) [!USE_XCB]:
+       Mark reply_data as UNINIT here too.
+
+2018-11-11  Paul Eggert  <address@hidden>
+
+       Pacify gcc -Wunused-macros in older GnuTLS
+
+       I ran into this problem on Ubuntu 18.04.1 LTS.
+       * src/gnutls.c (HAVE_GNUTLS_CIPHER_GET_IV_SIZE)
+       (HAVE_GNUTLS_CIPHER_GET_TAG_SIZE, HAVE_GNUTLS_DIGEST_LIST):
+       New macros.  This uses the same style as the other
+       macros that depend on GnuTLS version, as opposed to trying
+       to do things a bit more cleverly.
+       (gnutls_cipher_get_iv_size, gnutls_cipher_get_tag_size)
+       (gnutls_digest_list, gnutls_digest_get_name):
+       Define these macros only if they will be used.
+
+2018-11-11  Simen Heggestøyl  <address@hidden>
+
+       Add masking module to CSS property list
+
+       * lisp/textmodes/css-mode.el (css-property-alist)
+       (css-value-class-alist): Add properties and value classes from CSS
+       Masking Module.
+
+2018-11-10  Glenn Morris  <address@hidden>
+
+       * test/src/editfns-tests.el (test-group-name): Improve test.
+
+       Make more portable and hopefully more robust using getent.  (Bug#33195)
+
+2018-11-10  Eli Zaretskii  <address@hidden>
+
+       Make 'move-file-to-trash' behave according to the documentation
+
+       * lisp/files.el (move-file-to-trash): Behave like the doc
+       string says: check whether 'system-move-file-to-trash' is
+       defined before testing that 'trash-directory' is non-nil.
+       (Bug#33335)
+
+2018-11-10  Glenn Morris  <address@hidden>
+
+       * test/src/editfns-tests.el (test-group-name): Small fix.
+
+       Do not assume user 1000 has group name = user name.
+
+2018-11-10  Paul Eggert  <address@hidden>
+
+       Dissociate controlling tty better on Darwin
+
+       * src/process.c (dissociate_controlling_tty): New function.
+       (create_process): Use it to dissociate controlling tty if setsid
+       fails, which happens on Darwin after a vfork (Bug#33154).
+       Do this on all platforms, not just on Darwin, as a similar
+       problem is plausible elsewhere.
+       * src/callproc.c (call_process): Use the new function here, too,
+       for consistency and to avoid duplicate code.
+
+2018-11-10  Michael Albinus  <address@hidden>
+
+       Provide branch information for both Emacs and Tramp (Bug#33328)
+
+       * doc/lispref/intro.texi (Version Info):
+       Document `emacs-repository-version' and `emacs-repository-branch'.
+
+       * etc/NEWS: Mention `emacs-repository-branch'.
+
+       * lisp/loadup.el: Initialize `emacs-repository-branch'.
+
+       * lisp/version.el (emacs-repository-branch): New variable.
+       (emacs-repository-branch-git, emacs-repository-get-branch):
+       New defuns.
+
+       * lisp/mail/emacsbug.el (report-emacs-bug):
+       Insert `emacs-repository-branch'.
+
+       * lisp/net/tramp.el (tramp-get-local-gid):
+       Use `group-name' if available.
+       (tramp-debug-message):
+       * lisp/net/tramp-cmds.el (tramp-bug): Report also
+       `tramp-repository-branch' and `tramp-repository-version'.
+
+       * lisp/net/trampver.el (tramp-repository-branch)
+       (tramp-repository-version): New defconst.
+       (tramp-repository-get-version): Remove.
+
+2018-11-10  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-get-local-gid): Use `group-name' if 
available.
+
+2018-11-10  Allen Li  <address@hidden>
+
+       Add setter for 'xref-marker-ring-length'
+
+       * lisp/progmodes/xref.el (xref-marker-ring-length): Add setter.
+       * etc/NEWS: Document last change.  (Bug#32849)
+
+2018-11-10  Allen Li  <address@hidden>
+
+       Add 'ring-resize' function
+
+       * lisp/emacs-lisp/ring.el (ring-resize): New function.  (Bug#32849)
+       * doc/lispref/sequences.texi (Rings): Document new function 
'ring-resize'.
+       * etc/NEWS: Document new function 'ring-resize'.
+       * test/lisp/emacs-lisp/ring-tests.el (ring-test-ring-resize): New tests.
+
+2018-11-10  Eli Zaretskii  <address@hidden>
+
+       Fix last commit
+
+       * doc/lispref/os.texi (User Identification): Fix function name
+       of 'group-name'.
+
+2018-11-10  Eli Zaretskii  <address@hidden>
+
+       Fix last change
+
+       * src/editfns.c (Fgroup_name): Fix the doc string.  Move
+       closer to the "group" functions.
+       * src/w32.c (getgrgid): Return NULL if GID is not the group ID
+       of the user of this Emacs session
+
+       * test/src/editfns-tests.el (test-group-name): Rename from
+       'group-name'.  Add tests for non-Posix hosts.  Test error when
+       the argument to group-name is invalid.
+
+       * etc/NEWS: Fix wording of last added entry.
+
+2018-11-10  Jules Tamagnan  <address@hidden>
+
+       src/editfns.c (group-name): New function.
+
+2018-11-09  Eli Zaretskii  <address@hidden>
+
+       Improve doc strings generated by 'easy-mmode-define-navigation'
+
+       * lisp/emacs-lisp/easy-mmode.el
+       (easy-mmode-define-navigation): Include the documentation of
+       prefix argument in the generated doc string.
+
+2018-11-08  Pierre-Yves Luyten  <address@hidden>
+
+       Add functions to open a bookmark in another frame
+
+       * lisp/bookmark.el (bookmark-jump-other-frame): New function.
+       Bind in bookmark-map.
+       (bookmark-bmenu-other-frame): New function.
+       Bind in bookmark-bmenu-mode-map.
+
+       Patch applied by Karl Fogel.
+
+2018-11-08  Juri Linkov  <address@hidden>
+
+       * lisp/windmove.el (windmove-create-window): New defcustom (bug#32790).
+
+       (windmove-do-window-select): Use it.
+
+2018-11-08  Michael Albinus  <address@hidden>
+
+       * doc/misc/tramp.texi (Password handling): Explain Ange FTP case.
+
+2018-11-08  Michael Albinus  <address@hidden>
+
+       Get rid of own netrc parsing implementation in Tramp
+
+       * lisp/net/tramp.el (tramp-parse-netrc): Reimplement, using
+       `netrc-parse'.
+       (tramp-parse-netrc-group): Remove.
+
+2018-11-07  Juri Linkov  <address@hidden>
+
+       Support VC single file operations from Dired (bug#32596).
+
+       * lisp/vc/vc.el (vc-ensure-vc-buffer): Use dired-get-filename for 
dired-mode.
+       Move error-checking outside of the last branch of cond.
+       (vc-dired-deduce-fileset): Remove unused error signaling.
+
+2018-11-07  Juri Linkov  <address@hidden>
+
+       * lisp/vc/log-view.el: Better error handling (bug#33295).
+
+       * lisp/vc/log-view.el (log-view-find-revision)
+       (log-view-annotate-version): Add condition to signal an error
+       when log-view-vc-fileset contains a directory.
+       Use user-error instead of error.
+
+       * lisp/dired.el (dired-get-file-for-visit):
+       * lisp/locate.el (locate-do-setup):
+       Use user-error instead of error.
+
+2018-11-07  Juri Linkov  <address@hidden>
+
+       Advertise new hi-lock 'M-s h' key prefix in lisp/bindings.el
+
+       https://lists.gnu.org/archive/html/emacs-devel/2015-07/msg00104.html
+
+2018-11-07  Juri Linkov  <address@hidden>
+
+       * lisp/files-x.el (modify-dir-local-variable): Use assoc-delete-all
+
+       instead of assq-delete-all for cases when mode is a subdirectory name.
+       (dir-locals-to-string): Call pp-to-string and string-trim-right
+       on values.  (Bug#32817)
+
+2018-11-07  Juri Linkov  <address@hidden>
+
+       * lisp/window.el (window-state-put): Create a new window
+
+       to replace the existing one on the same frame in case
+       when WINDOW is not live.  (Bug#32850)
+
+       * doc/lispref/windows.texi (Window Configurations):
+       Describe changes related to WINDOW arg of window-state-put.
+
+2018-11-07  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp.el (tramp-get-debug-buffer): Fix error in setting 
local map.
+
+2018-11-06  Michael Albinus  <address@hidden>
+
+       Handle also port and domain in Tramp proxy definitions
+
+       * doc/misc/tramp.texi (Multi-hops): Exclude ports and domains from
+       pattern expansion.
+
+       * lisp/net/tramp-cmds.el (tramp-cleanup-all-connections):
+       Remove ad-hoc proxies.
+
+       * lisp/net/tramp-sh.el (tramp-compute-multi-hops): Handle also
+       port and domain in the proxy.  Propertize ad-hoc proxies.
+
+       * lisp/net/tramp.el (tramp-default-proxies-alist): Adapt docstring.
+
+       * test/lisp/net/tramp-tests.el (tramp-test02-file-name-dissect)
+       (tramp-test02-file-name-dissect-simplified)
+       (tramp-test02-file-name-dissect-separate): Extend tests.
+
+2018-11-05  Juri Linkov  <address@hidden>
+
+       Support lazy-highlight-buffer in Info (bug#29321, bug#29360).
+
+       * lisp/isearch.el (isearch-lazy-highlight-point-min)
+       (isearch-lazy-highlight-point-max): New variables.
+       (isearch-lazy-highlight-new-loop): When lazy-highlight-buffer is
+       non-nil, compare (point-min) with isearch-lazy-highlight-point-min,
+       and (point-max) with isearch-lazy-highlight-point-max, for buffers
+       like Info where narrowing changes the values point-min and point-max.
+
+2018-11-05  Juri Linkov  <address@hidden>
+
+       * lisp/image-mode.el (image--imagemagick-wanted-p): Check for nil 
filename.
+
+       (Bug#33241)
+
+2018-11-04  Glenn Morris  <address@hidden>
+
+       * src/xfaces.c (face_at_buffer_position): Adapt lookup_basic_face call.
+
+2018-11-04  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       6937c35 (origin/emacs-26) Improve recent changes in documentation of ...
+       c04b48c Rewrite documentation of buffer display
+       7cadb32 ; * doc/lispref/control.texi (pcase Macro): Fix another typo.
+       963f1d9 ; * doc/lispref/control.texi (pcase Macro): Fix a typo.
+       e824c91 Improve documentation of destructuring-binding macros
+
+2018-11-04  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       bd1d617 Avoid race in rcirc process filter (bug#33145)
+       88ef31a Avoid file-name errors when viewing PDF from Gnus
+       c939042 Avoid crashes with remapped default face in Org mode
+       97660fa Doc fix for checkdoc-continue
+       96f055b Fix a typo in autoload.el
+
+2018-11-04  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       9962cf9 * doc/lispref/control.texi (Destructuring patterns): New subs...
+
+2018-11-04  Eli Zaretskii  <address@hidden>
+
+       A further fix for locally remapped fringe face
+
+       * src/xdisp.c (expose_window): Temporarily switch to the
+       window's buffer, in case the fringe face was remapped locally
+       in that buffer.  (Bug#33244)
+
+2018-11-04  Michael Albinus  <address@hidden>
+
+       Fix Bug#33194
+
+       * lisp/autorevert.el (auto-revert-notify-add-watch):
+       Handle buffers with same descriptor properly.
+       (auto-revert-notify-handler): Handle all buffers with same
+       descriptor.  (Bug#33194)
+
+       * lisp/filenotify.el (file-notify-callback): Simplify.
+
+2018-11-03  Paul Eggert  <address@hidden>
+
+       Improve time error reporting
+
+       * src/timefns.c (emacs_mktime_z): Remove; no longer needed.
+       (time_error): New function, replacing invalid_time.
+       All callers changed.
+       (decode_float_time, decode_ticks_hz, decode_time_components):
+       Return an error number instead of merely a boolean.
+       All callers changed.
+       (decode_lisp_time): Signal an error based on the error number,
+       instead of merely returning a boolean to the caller.
+       All callers changed.
+       (format_time_string, Fdecode_time, Fencode_time)
+       (Fcurrent_time_string):
+       Do not assume that a failure of a system time function
+       must be due to time overflow.
+       (Fencode_time): Don't report an error merely because mktime
+       returned ((time_t) -1), as that may be a valid time_t value.
+       Use a simpler error check.  See:
+       https://www.sourceware.org/ml/libc-alpha/2018-11/msg00062.html
+
+2018-11-03  Eli Zaretskii  <address@hidden>
+
+       Allow the fringe face to be remapped locally in a buffer
+
+       * src/fringe.c (draw_window_fringes): Switch to window's
+       buffer to get the local value of face-remapping-alist, if
+       necessary.  (Bug#33244)
+       * src/xfaces.c (syms_of_xfaces) <Qface_remapping_alist>: New
+       DEFSYM.
+
+2018-11-03  David Edmondson  <address@hidden>
+
+       Add URL truncation support to rcirc (bug#33043)
+
+       Suggested by David Edmondson <address@hidden>.
+       * lisp/net/rcirc.el (rcirc-url-max-length): New user option
+       controlling extent of URL truncation, defaulting to none.
+       (rcirc-markup-urls): Use it.
+       * etc/NEWS: Announce it.
+
+2018-11-03  Pierre Téchoueyres  <address@hidden>
+
+       'minor-mode-menu-from-indicator' now display full minor mode.
+
+       When there is no menu for a mode, display the mode name after the
+       indicator instead of just the indicator (which is sometime cryptic).
+       Ex:
+       before : SP
+       now    : SP - Smartparens Mode
+
+       * etc/NEWS: Add en entry for this new feature.
+       * lisp/mouse.el (minor-mode-menu-from-indicator): Append the mode name
+         after the indicator when there is no menu defined by the mode.
+
+2018-11-03  Eric Abrahamsen  <address@hidden>
+
+       Allow use of Gnus search groups as notmuch path: search term
+
+       * lisp/gnus/nnir.el (nnir-notmuch-filter-group-names-function): New
+       option governing whether and how to use Gnus' search groups as path:
+       search terms to notmuch.
+       (nnir-run-notmuch): Check and possibly use above variable.
+       (Bug#33122)
+
+2018-11-03  Daniel Pittman  <address@hidden>
+
+       Fix interaction between vc-hg find-file-hook and vc state caching
+
+       Bad assumptions in the `vc-hg-find-file-hook' prevented it from
+       working. This correctly them.  (Bug#33129).
+
+       2018-10-23  Daniel Pittman  <address@hidden>
+
+               * lisp/vc/vc-hg.el (vc-hg-find-file-hook): This function made 
two
+               assumptions about conflicted files that were not accurate,
+               preventing conflicts in files ever being detected.
+
+               The first was that the `vc-state' was cache by the time this was
+               invoked, which it is not - at least when visiting the file, or
+               using `vc-refresh-state'.
+
+               The second was that a file with the ".orig" extension would be
+               present, next to the file being visited.  This is the default
+               behavior of Mercurial, but can be overridden by the user.
+
+               Since the VC mode-line code will shortly calculate the state for
+               display, the optimization of testing for the ".orig" file only
+               delayed this work by a few moments.
+
+2018-11-02  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/syntax.el (syntax-propertize-rules): Allow empty rules
+
+       * lisp/help-fns.el (describe-symbol): Use help--symbol-completion-table
+
+       * src/data.c (Ffset): Don't signal gratuitous errors
+
+2018-11-02  Eric Abrahamsen  <address@hidden>
+
+       Obsolete gnus-correct-length in favor of string-width
+
+       * lisp/gnus/gnus-spec.el: Define an obsolete alias.
+
+2018-11-02  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/ruby-mode.el: Cosmetic changes
+
+       Remove redundant :groups.
+       (ruby-font-lock-syntax-table): Delete var.
+       (ruby-mode): Use font-lock-default's syntax-alist instead.
+
+2018-11-01  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/cc-mode.el: Silence compiler warnings
+
+       (c-parse-quotes-before-change, c-parse-quotes-after-change):
+       Flag unused args according to convention.
+
+2018-10-31  Michael Albinus  <address@hidden>
+
+       Remote file name completion is also performed by auth-sources search
+
+       * doc/misc/tramp.texi (File name completion): User and host name
+       completion is also performed by auth-sources search.
+
+       * etc/NEWS: Document remote file name completion using auth-sources.
+
+       * lisp/net/tramp.el (tramp-completion-use-auth-sources):
+       New user option.
+       (tramp-parse-auth-sources): New defun.
+       (tramp-get-completion-function): Call it.
+
+2018-10-31  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       eb903d8 * lisp/emacs-lisp/pcase.el: Improve docstrings.
+       86abbb3 * lisp/emacs-lisp/rx.el (rx): Fix typo in doc string.  (Bug#3...
+       ced58d3 Improve doc string of 'call-process'
+       38f88a7 Document that generic functions cannot be commands
+       5aeddfa * lisp/mail/rmailsum.el (rmail-summary-output): Add lost word...
+       10e0fd8 Add index entries for more isearch commands/bindings (Bug#32990)
+       de28184 * lisp/simple.el (filter-buffer-substring): Clarify doc (Bug#...
+       d192c16 Fix recent change in lispref/processes.texi.
+
+2018-10-31  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-generic.el: Clarify we can't define commands
+
+       (cl--generic-lambda): Warn about the presence of interactive specs.
+
+2018-10-30  Paul Eggert  <address@hidden>
+
+       Improve fix for Bug#33014
+
+       Although the previously-applied fix worked for its platform,
+       it doesn’t suffice in general.
+       * src/bytecode.c (exec_byte_code): Save VECTOR into stack slot
+       so that it survives GC.  The stack slot was otherwise unused,
+       so this doesn’t cost us memory, only a store insn.
+       * src/eval.c (Ffuncall): Do not make FUN volatile, reverting
+       2018-10-14T19:12:04Z!address@hidden.  Adding ‘volatile’
+       does not suffice, since storage for a volatile local can be
+       reclaimed after its last access (e.g., by tail recursion
+       elimination), which would make VECTOR invisible to GC.
+
+2018-10-30  Glenn Morris  <address@hidden>
+
+       * admin/bzrmerge.el: Remove file, long since replaced by gitmerge.el.
+
+2018-10-30  Michael Heerdegen  <address@hidden>
+
+       Don't quote self-quoting pcase patterns
+
+       * admin/bzrmerge.el:
+       * lisp/char-fold.el:
+       * lisp/dired.el:
+       * lisp/emacs-lisp/derived.el:
+       * lisp/emacs-lisp/easy-mmode.el:
+       * lisp/emacs-lisp/easymenu.el:
+       * lisp/emacs-lisp/eieio-core.el:
+       * lisp/emacs-lisp/package.el:
+       * lisp/emacs-lisp/smie.el:
+       * lisp/faces.el:
+       * lisp/filesets.el:
+       * lisp/progmodes/modula2.el:
+       * lisp/progmodes/octave.el:
+       * lisp/progmodes/opascal.el:
+       * lisp/progmodes/perl-mode.el:
+       * lisp/progmodes/prolog.el:
+       * lisp/progmodes/ruby-mode.el:
+       * lisp/progmodes/sh-script.el:
+       * lisp/server.el:
+       * lisp/subr.el:
+       * lisp/textmodes/css-mode.el:
+       * test/lisp/emacs-lisp/pcase-tests.el: Don't quote self-quoting
+       'pcase' patterns.
+
+2018-10-30  Alan Mackenzie  <address@hidden>
+
+       Fix C++ Mode dynamic error with string delimiters.
+
+       Fixes bug #33163
+
+       * lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings):
+       Use the correct variable `end' in place of the wrong `c-new-END'.
+       (c-after-change-re-mark-unbalanced-strings): Correct a logic error 
whilst
+       skipping over comments.
+
+2018-10-29  Glenn Morris  <address@hidden>
+
+       * configure.ac (emacs_config_features): Add notify backends.
+
+2018-10-29  Juri Linkov  <address@hidden>
+
+       * lisp/window.el (window--state-get-1): Check buffer-live-p in 
next-buffers
+
+       and prev-buffers.  (Bug#32850)
+
+2018-10-29  Gemini Lasswell  <address@hidden>
+
+       Keep a stack reference to bytecode objects being executed (Bug#33014)
+
+       * src/eval.c (Ffuncall): Make local variable 'fun' volatile.
+       * test/src/eval-tests.el
+       (eval-tests-byte-code-being-evaluated-is-protected-from-gc):
+       Add regression test for Bug#33014.
+       (eval-tests-33014-var): New variable.
+       (eval-tests-33014-func, eval-tests-33014-redefine): New functions.
+
+2018-10-29  Michael Albinus  <address@hidden>
+
+       Fix Bug#33006
+
+       * lisp/cedet/semantic/symref/grep.el (semantic-symref-perform-search):
+       * lisp/progmodes/xref.el (xref-collect-matches)
+       (xref--collect-matches): Handle remote files.  (Bug#33006)
+
+2018-10-29  João Távora  <address@hidden>
+
+       Fix Flymake's diagnostic count with custom error types
+
+       (Bug#33187)
+
+       * lisp/progmodes/flymake.el (flymake--mode-line-format): Replace
+       cl-union with iterative cl-pushnew.
+
+2018-10-27  Juri Linkov  <address@hidden>
+
+       * lisp/isearch.el (lazy-highlight-buffer): New defcustom.  (Bug#29360)
+
+       (lazy-highlight-buffer-max-at-a-time): New defcustom.
+       (isearch-lazy-highlight-buffer): New defvar.
+       (isearch-lazy-highlight-new-loop): Don't check changes in window
+       boundaries when lazy-highlight-buffer is non-nil.
+       Move code that extends start/end to match whole string at point
+       here from isearch-lazy-highlight-search.
+       (isearch-lazy-highlight-search): Add args string and bound
+       like in other search functions.  Move calculation of bound
+       to isearch-lazy-highlight-update.
+       (isearch-lazy-highlight-match): New function with code extracted from
+       isearch-lazy-highlight-update to be called also from
+       isearch-lazy-highlight-buffer-update.
+       (isearch-lazy-highlight-update): Reuse the values returned from
+       window-group-start and window-group-end.  At the end schedule the
+       timer to call isearch-lazy-highlight-buffer-update when
+       isearch-lazy-highlight-buffer is non-nil.
+       (isearch-lazy-highlight-buffer-update): New function.
+
+2018-10-27  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       df64da8 (origin/emacs-26) * lisp/simple.el (region-extract-function):...
+       520c486 * lisp/simple.el (region-bounds): Doc fix.  (Bug#33168)
+       9193db0 Improve documentation of 'process-connection-type'
+       106b9e1 Unify prompt for gnupg passphrase between GNU/Linux and MS-Wi...
+       2a41616 Doc fix of 'gnus-fetch-old-headers'
+       29a7644 Deactivate incorrect hyperlinking in gnus-build-sparse-thread...
+       53ae90f Minor copyedits in cmdargs.texi
+       fc2e65a Improve documentation of X resource loading
+       13132b3 * lisp/net/tramp-sh.el (tramp-inline-compress-commands):
+       8361292 ; Fix sorting in admin/MAINTAINERS
+       92de44f Don't error when indenting malformed Lisp (Bug#30891)
+       c3adbc8 Improve 'isearch-delete-char' documentation (Bug#32990)
+       6ca71ce ; * lisp/help.el (with-help-window): Remove extra space in doc.
+       f5f9583 Improve XPM load failure message (bug#33126)
+       f3d01d4 Avoid infloop in CPerl mode fontification
+       71a2d50 Fix minibuffer-help-form for lexical binding
+       7e8eee6 Fix some NS drawing issues (bug#32932)
+       d72975a * lisp/gnus/mm-util.el (mm-decompress-buffer): Fix split-stri...
+       c97a5f1 * doc/misc/calc.texi (Summary): The +/- key is 'p', not 'P'.
+
+       # Conflicts:
+       #       lisp/gnus/mm-util.el
+
+2018-10-27  Daniel Pittman  <address@hidden>  (tiny change)
+
+       Add support in emacsclient for EMACS_SOCKET_NAME
+
+       If the '--socket-name' argument is unspecified, the environment
+       variable 'EMACS_SOCKET_NAME' is now consulted with the same
+       semantics.  This mirrors the behavior of the '--server-file' argument,
+       and allows for easier configuration of emacsclient when the socket is
+       in a location other than 'TMPDIR' or '/tmp'.
+
+       * emacsclient.c (set_socket): Add support for the
+       EMACS_SOCKET_NAME environment variable.  (Bug#33095)
+
+       * doc/emacs/misc.texi (emacsclient Options):
+       * emacsclient.1: Document the EMACS_SOCKET_NAME environment
+       variable.
+
+       * etc/NEWS: Announce the new feature.
+
+2018-10-26  Federico Tedin  <address@hidden>
+
+       Subject: (mouse-drag-and-drop-region): Simplify and remove assumptions
+
+       * lisp/mouse.el (mouse-drag-and-drop-region): Use insert-for-yank for
+       insertion, remove rectangular-region-specific variables.
+       Use text-property-not-all.
+       * lisp/rect.el (rectangle-dimensions): New function.
+       (rectangle-position-as-coordinates): Use the usual 1-origin for lines.
+
+2018-10-26  Stefan Monnier  <address@hidden>
+
+       * lisp/files.el (abbreviate-file-name): Avoid save-match-data
+
+       Also, don't assume homedir doesn't contain special regexp chars.
+       And prefer \` ... \' over ^ ... $.
+       (recover-file): Use user-error.
+
+2018-10-25  Glenn Morris  <address@hidden>
+
+       * admin/automerge: Abort if NEWS gets modified.
+
+2018-10-25  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/pcase.el (pcase--u1): Fix bignums
+
+       Use 'eql' to compare integers
+
+2018-10-24  Michael Albinus  <address@hidden>
+
+       Fix Bug#33141
+
+       * lisp/net/tramp.el (tramp-make-tramp-file-name): Avoid check for
+       empty method with simplified `tramp-syntax'.  (Bug#33141)
+
+2018-10-24  Glenn Morris  <address@hidden>
+
+       * admin/gitmerge.el (gitmerge-resolve): Check NEWS patch exit status.
+
+2018-10-23  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       2efd400 (origin/emacs-26) Correct typo in GNU ELPA url
+       6239016 * doc/misc/dired-x.texi (Omitting Variables): Fix wording. (B...
+       1531bca Fix help-form binding in dired-create-files
+       cf79327 Fix a pasto in a Gnus doc string
+       a4e40f6 ; * doc/emacs/files.texi (Reverting): Improve wording in last...
+       f632ecb Update revert-buffer documentation
+       eb67689 * lisp/mail/smtpmail.el (smtpmail-send-queued-mail): Load fil...
+       433e364 ; * etc/NEWS: Announce that emacs-module.h is now installed.
+
+       # Conflicts:
+       #       lisp/mail/smtpmail.el
+
+2018-10-23  Alan Mackenzie  <address@hidden>
+
+       edebug.el: Move window focus switch into edebug-pop-to-buffer
+
+       * lisp/follow.el (edebug-focus-frame): Remove.
+       (edebug-pop-to-buffer): Call x-focus-frame for GUI frames.
+       (edebug-default-enter, edebug--display-1): Replace call to
+       edebug-focus-frame with x-focus-frame.
+       (edebug-where, edebug-bounce-point, edebug-visit-eval-list): Remove no 
longer
+       needed calls to edebug-focus-frame.
+
+2018-10-22  Paul Eggert  <address@hidden>
+
+       Improve rounding in recent timer fix
+
+       * lisp/emacs-lisp/timer.el (timer-next-integral-multiple-of-time):
+       Use more-precise arithmetic to handle some boundary cases better
+       when rounding errors occur (Bug#33071).
+       * test/lisp/emacs-lisp/timer-tests.el:
+       (timer-next-integral-multiple-of-time-3):
+       New test, to test one of the boundary cases.
+       (timer-next-integral-multiple-of-time-2):
+       Redo so as to not assume a particular way of rounding 0.01.
+
+2018-10-22  Paul Eggert  <address@hidden>
+
+       Fix epg bug with (TICKS . HZ) timestamp
+
+       Problem reported by Joseph Mingrone in:
+       https://lists.gnu.org/r/emacs-devel/2018-10/msg00380.html
+       * lisp/epg.el (epg--time-from-seconds): Just use a seconds count;
+       don’t generate an obsolete-format timestamp.
+
+2018-10-22  Stefan Monnier  <address@hidden>
+
+       * src/minibuf.c (read_minibuf_noninteractive): Remove unused args.
+
+2018-10-22  Michael Albinus  <address@hidden>
+
+       Improve Tramp backward compatibility
+
+       * lisp/net/tramp-compat.el: (tramp-unload-file-name-handlers):
+       Declare it, for backward compatibility.
+
+2018-10-21  Stefan Monnier  <address@hidden>
+
+       Always define 'define-fringe-bitmap'
+
+       * lisp/cus-start.el: Test 'fringe-bitmaps' to see if fringe.c was 
compiled.
+
+       * lisp/fringe.el: Use lexical-binding.
+       (define-fringe-bitmap): Provide a fallback implementation.
+
+       * lisp/progmodes/flymake.el (flymake-double-exclamation-mark):
+       Define unconditionally.
+
+       * lisp/progmodes/gdb-mi.el (define-fringe-bitmap): Don't declare any 
more.
+       (breakpoint, hollow-right-triangle): Define unconditionally.
+
+2018-10-21  Stefan Monnier  <address@hidden>
+
+       * lisp/vc/diff-mode.el: Improve diff-font-lock-prettify
+
+       A few tweaks to the previous code for corner case problems, and a new
+       feature, which is to move the +/- signs to the left fringe.
+
+       (diff--font-lock-cleanup, diff--filter-substring): New functions.
+       (diff-mode): Use them.
+       (diff--font-lock-refined): Mark the overall overlays as `diff-mode
+       fine` as well, so they get properly cleaned up when changing mode.
+       (diff-fringe-add, diff-fringe-del, diff-fringe-rep, diff-fringe-nul):
+       New bitmaps.
+       (diff--font-lock-prettify): Move the +/- signs to the fringe.
+       (diff-wiggle): Use 'user-error'.
+
+2018-10-20  Michael Albinus  <address@hidden>
+
+       Expand host names in Tramp's ad-hoc multi-hop file names
+
+       * doc/misc/tramp.texi (Quick Start Guide): Improve wording.
+       (Change file name syntax): Say, that `tramp-file-name-regexp' is
+       not constant.
+       (Ad-hoc multi-hops): Explain host name expansion.
+
+       * etc/NEWS: Mention that host names in Tramp ad-hoc multi-hop file
+       names must match the previous hop for methods like "su" or "sudo".
+       Fix typos.
+
+       * lisp/net/tramp.el (tramp-find-method, tramp-find-user):
+       Adapt docstring.
+       (tramp-find-host): Mark default value.
+       (tramp-dissect-file-name): Expand host name for hops.
+       (tramp-dissect-hop-name, tramp-make-tramp-hop-name): New defuns.
+       (tramp-clear-passwd): Simplify.
+
+       * test/lisp/net/tramp-tests.el (tramp-test02-file-name-dissect)
+       (tramp-test02-file-name-dissect-simplified)
+       (tramp-test02-file-name-dissect-separate)
+       (tramp-test26-file-name-completion): Extend tests.
+
+2018-10-20  Eli Zaretskii  <address@hidden>
+
+       Fix 'timer-next-integral-multiple-of-time'
+
+       * lisp/emacs-lisp/timer.el
+       (timer-next-integral-multiple-of-time): Fix recent change for
+       fractional values of SECS.  (Bug#33071)
+       * test/lisp/emacs-lisp/timer-tests.el
+       (timer-next-integral-multiple-of-time-2): New test.
+
+2018-10-19  Stefan Monnier  <address@hidden>
+
+       * lisp/mail/smtpmail.el: (smtpmail-send-queued-mail): Avoid 'load'
+
+       (smtpmail-send-it): Send metadata directly to the
+       files without bothering to write it into a temp buffer.
+
+2018-10-19  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/package.el (package-get-version): Change into a 
function
+
+       (package-quickstart-refresh): Mangle string so it doesn't turn into
+       a false positive for "no-byte-compile: t".
+
+2018-10-19  Alan Mackenzie  <address@hidden>
+
+       In edebug in GUIs, move focus to the selected frame.
+
+       Thus when entering edebug, the focus will be moved to the frame with the
+       source being debugged, and when its finished, the focus will move back.
+       Commands edebug-visit-eval-list (`E') and edebug-bounce-point (`p') 
have been
+       likewise amended.
+
+       * src/keyboard.c (readable_events): Handle FOCUS_OUT_EVENT as an 
invisible
+       event.  This prevents input-pending-p returning t when one of these 
events
+       arrives, and thus obviates an instant termination of sit-for when 
there's no
+       "real" event waiting.
+
+       * lisp/emacs-lisp/edebug.el (edebug-focus-frame): New function.
+       (edebug-default-enter, edebug--display-1, edbug-where, 
edebug-bounce-point)
+       (edebug-visit-eval-list): Call edebug-focus-frame to move focus into the
+       window newly selected by edebug-pop-to-buffer.
+
+2018-10-19  Paul Eggert  <address@hidden>
+
+       Fix struct thread alignment on FreeBSD x86
+
+       Problem reported by Joseph Mingrone in:
+       https://lists.gnu.org/r/emacs-devel/2018-10/msg00238.html
+       While we’re at it, apply a similar fix to struct Lisp_Subr; this
+       removes the need for GCALIGNED_STRUCT_MEMBER and thus can shrink
+       struct Lisp_Subr a bit.
+       * configure.ac (HAVE_STRUCT_ATTRIBUTE_ALIGNED): Bring back this macro.
+       Although used only for performance (not to actually align
+       structures), we might as well take advantage of it.
+       * src/lisp.h (GCALIGNED_STRUCT_MEMBER): Remove; all uses removed.
+       (union Aligned_Lisp_Subr): New type, like struct Lisp_Subr but aligned.
+       * src/lisp.h (XSUBR, DEFUN):
+       * src/lread.c (defsubr): Use it.  All callers changed.
+       * src/thread.c (union aligned_thread_state): New type.
+       (main_thread): Now of this type, so it’s aligned.
+       All uses changed.
+       * src/xmenu.c (syms_of_xmenu) [USE_GTK || USE_X_TOOLKIT]:
+       Adjust to union Aligned_Lisp_Subr change.
+
+2018-10-19  Alan Mackenzie  <address@hidden>
+
+       In follow mode windows in a GUI, don't display inactive cursors
+
+       This is done by setting cursor-in-non-selected-windows buffer locally.
+
+       * lisp/follow.el (follow-hide-ghost-cursors): New customizable option.
+       (follow-mode): Create and set, or kill buffer-local copy of
+       cursor-in-non-selected-windows when the mode gets enabled or disabled.
+       (follow-prev-buffer): New variable.
+       (follow-adjust-window): Manipulate cursor-in-non-selected-windows when 
the
+       current buffer changes, to ensure that cursors stay visible in 
non-selected
+       follow window groups.
+
+       * etc/NEWS: Add an entry for this change.
+
+2018-10-18  Martin Rudalics  <address@hidden>
+
+       Have 'split-window' handle 'up' and 'down' values (Bug#32790)
+
+       * lisp/window.el (split-window): Handle values of 'up' and 'down'
+       for SIDE argument (Bug#32790).
+       (window-in-direction): Amend doc-string as of yesterday's change.
+
+2018-10-18  Juri Linkov  <address@hidden>
+
+       * lisp/emacs-lisp/lisp.el (delete-pair): Add optional prefix arg.
+
+       (Bug#32896)
+
+2018-10-18  Juri Linkov  <address@hidden>
+
+       Use buffer objects for non-writable states in window-state-get.
+
+       * lisp/window.el (window--state-get-1): Use buffer objects for
+       buffer, next-buffers, prev-buffers if 'writable' is nil.  (Bug#32850)
+
+2018-10-18  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/package.el (package-get-version): New macro
+
+2018-10-18  Martin Rudalics  <address@hidden>
+
+       Have 'window-in-direction' handle 'up' and 'down' values (Bug#32790)
+
+       * lisp/window.el (window-in-direction): Handle values of 'up'
+       and 'down' for DIRECTION argument (Bug#32790).  Suggested by
+       Juri Linkov <address@hidden>.
+       * lisp/windmove.el (windmove-find-other-window): Don't convert
+       first argument of 'window-in-direction'.
+
+2018-10-17  Paul Eggert  <address@hidden>
+
+       Bring back nocombreloc if dumping
+
+       Without this patch, Emacs dumps core on Fedora 28 x86-64
+       when configured via "CC='gcc -m32' --enable-gcc-warnings
+       --without-imagemagick --without-gif --with-modules
+       PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/usr/share/pkgconfig".
+       and then when run normally in a windowing system.
+       'make check' and 'emacs -nw' work OK even without the patch.
+       * configure.ac (LD_SWITCH_SYSTEM_TEMACS): Prepend
+       -znocombreloc if supported and if dumping.  This mostly
+       reverts 2018-06-15T21:37:39!address@hidden "Remove old
+       combreloc hack".
+
+2018-10-17  Eli Zaretskii  <address@hidden>
+
+       Avoid assertion violation when comparing with main-thread
+
+       * src/thread.c (unmark_main_thread): New function.
+       * src/lisp.h (unmark_main_thread): Prototype it.
+       * src/alloc.c (garbage_collect_1): Call it after sweeping.
+       (Bug#33073)
+
+       * test/src/thread-tests.el (threads-test-bug33073): New test.
+
+2018-10-16  Federico Tedin  <address@hidden>
+
+       Allow two mouse functions to work with Rectangle Mark mode
+
+       * lisp/mouse.el (mouse-save-then-kill): Make
+       mouse-save-then-kill work with rectangular regions, including
+       when mouse-drag-copy-region is set to t. (Bug#31240)
+       (mouse-drag-and-drop-region): Allow dragging and dropping
+       rectangular regions. (Bug#31240)
+       * lisp/rect.el (rectangle-intersect-p)
+       (rectangle-position-as-coordinates): New functions.
+
+2018-10-16  Juri Linkov  <address@hidden>
+
+       Use next-buffers and prev-buffers in window-state-get and 
window-state-put
+
+       * lisp/window.el (window--state-get-1): Get next-buffers and 
prev-buffers.
+       (window--state-put-2): Set next-buffers and prev-buffers.  (Bug#32850)
+
+2018-10-16  Michael Albinus  <address@hidden>
+
+       Fix Bug#32983
+
+       * lisp/net/soap-client.el: Bump version to 3.1.5.
+       (soap-parse-server-response): Handle also "multipart/related"
+       Content-Type.  (Bug#32983)
+
+2018-10-16  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       73babba (origin/emacs-26) Clarify documentation of fractional vertica...
+       b20c51d * lisp/isearch.el (isearch-cmds): Recall absent isearch--stat...
+       700acbd doc/lispref/edebug.texi (Specification List) Remove obstrusiv...
+       1902450 Fix wording in module API documentation
+       e724a8f Fix redisplay of glyphless characters
+       8fc892d Update --without-toolkit-scroll-bars doc
+       80e0bfa Call GTK functions only on GTK scrollbars
+       91c4c46 Update the description of startup in ELisp manual
+       18b42c6 Use the 'line-number' face for line-number fields past EOB
+       a6ab8db Ensure NS frame is redrawn correctly  after scroll
+
+       Conflicts:
+               lisp/isearch.el
+
+2018-10-16  Michael Albinus  <address@hidden>
+
+       Add process thread to list-processes
+
+       * lisp/simple.el (process-menu-mode, list-processes--refresh):
+       Add process thread.
+
+2018-10-15  Stefan Monnier  <address@hidden>
+
+       * doc/lispref/display.texi (Fringe Bitmaps): Remove redundant items
+
+       * lisp/image-mode.el (image-toggle-display-image): Avoid 
string-make-unibyte
+
+2018-10-15  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/octave.el: Register on auto-mode-alist
+
+       (octave-maybe-mode): New function.
+
+2018-10-15  Stefan Monnier  <address@hidden>
+
+       * etc/NEWS.18: Tweak header to be more like the others
+
+2018-10-15  Juri Linkov  <address@hidden>
+
+       * lisp/image-mode.el (image--imagemagick-wanted-p): Check for file 
extension.
+
+       (Bug#32994)
+       (image-toggle-display-text): Let-bind create-lockfiles to nil
+       like in image-toggle-display-image.
+
+2018-10-15  Stefan Monnier  <address@hidden>
+
+       * lisp/textmodes/tex-mode.el (tex-uptodate-p): Recognize [N.N] pages
+
+2018-10-15  Alan Mackenzie  <address@hidden>
+
+       In follow mode, prevent the cursor resting on a partially displayed line
+
+       This fixes bug #32848
+
+       * lisp/follow.el (follow-adjust-window): If point ends up in a partially
+       displayed line in a left hand or middle window, move it one line 
forward, to
+       prevent unwanted scrolling should make-cursor-line-fully-visible be 
non-nil.
+
+2018-10-14  Paul Eggert  <address@hidden>
+
+       Update lib/regex from glibc via Gnulib
+
+       This syncs recent refactorings from glibc, and incorporates:
+       2018-10-15 libc-config: merge from glibc
+       2018-10-15 regex: depend on libc-config
+       * .gitignore: Do not ignore m4/_*.m4.
+       * lib/cdefs.h: New file, copied from Gnulib.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * lib/libc-config.h, m4/__inline.m4: New files, copied from Gnulib.
+       * lib/regcomp.c, lib/regex.c, lib/regex_internal.c:
+       * lib/regex_internal.h, lib/regexec.c:
+       Copy from glibc via Gnulib.
+
+2018-10-14  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This is minor refactoring that should not affect Emacs builds.
+       It incorporates:
+       2018-10-12 Make better use of Autoconf
+       * m4/environ.m4, m4/fsusage.m4, m4/manywarnings.m4, m4/socklen.m4:
+       Copy from Gnulib.
+
+2018-10-14  Alan Mackenzie  <address@hidden>
+
+       Add ~44 edebug specs to CC Mode.
+
+       * lisp/progmodes/cc-cmds.el, lisp/progmodes/cc-defs.el
+       lisp/progmodes/cc-engine.el, lisp/progmodes/cc-fonts.el
+       lisp/progmodes/cc-langs.el: Add lots of edebug specs.
+
+       * lisp/progmodes/cc-engine.el (c-state-maybe-marker): Tidy up so as to
+       evaluate an argument only once at runtime.
+
+2018-10-14  Stefan Monnier  <address@hidden>
+
+       * src/buffer.c (Fmove_overlay): Don't call Fdelete_overlay
+
+       ... because the data structure is not in a consistent state.
+
+       * test/src/buffer-tests.el (overlay-evaporation-after-killed-buffer):
+       New test.
+
+2018-10-14  Paul Eggert  <address@hidden>
+
+       Fix lisp_eval_depth in unwind-protect cleanup
+
+       Problem reported by Paul Pogonyshev (Bug#33034).
+       * src/lisp.h (union specbinding): New member unwind.eval_depth.
+       * src/eval.c (record_unwind_protect, set_unwind_protect): Set it.
+       (do_one_unbind): Use it.
+
+2018-10-13  OGAWA Hirofumi  <address@hidden>
+
+       Fix sieve-mode font lock
+
+       * lisp/net/sieve-mode.el (sieve-font-lock-keywords): Fix the
+       definition of font-lock faces.  (Bug#32881)
+
+2018-10-13  OGAWA Hirofumi  <address@hidden>  (tiny change)
+
+       Fix sieve-upload when sieve-buffer is nil
+
+       * lisp/net/sieve.el (sieve-upload): Don't rely on sieve-buffer being
+       non-nil.  (Bug#32880)
+
+2018-10-13  Eli Zaretskii  <address@hidden>
+
+       Improve 'json-insert' so it doesn't cons a string from JSON
+
+       * src/json.c (struct json_buffer_and_size): New member
+       inserted_bytes.
+       (json_insert): Instead of creating a string and inserting it
+       into the current buffer, copy the unibyte text into the gap.
+       (struct json_insert_data): New member inserted_bytes.
+       (json_insert_callback): Update commentary.  Pass the
+       inserted_bytes value to json_insert and on its return copy the
+       updated value back into DATA.
+       (Fjson_insert): Decode the unibyte text inserted into the gap.
+       Call before-change-functions and after-change-functions only
+       once, before and after processing the insertion of the entire
+       JSON representation.
+
+       * test/src/json-tests.el (json-insert/throw): Adapt to the
+       modified implementation of json-insert: it no longer calls the
+       modification hooks once for each inserted chunk of JSON
+       representation.
+
+2018-10-12  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       643df63 (origin/emacs-26) Avoid byte-compiler warning in em-rebind.el
+       d0eca49 ; * doc/emacs/mark.texi (Disabled Transient Mark): Fix last c...
+       af80b10 Improve indexing of 'C-SPC C-SPC'
+       89a7301 ; * doc/lispref/internals.texi (Writing Dynamic Modules): Fix...
+       a108eaa Fix bug with precious entries in Gnus registry
+       ce8b458 Document in the ELisp manual how to write loadable modules
+       a7ebc6b dired-do-shell-command: Notify users after abort the command
+
+       # Conflicts:
+       #       lisp/registry.el
+
+2018-10-12  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       6e54762 Fix Apple Script permissions error
+       19f705c Fix typo in 'timerp' documentation
+
+2018-10-12  Michael Albinus  <address@hidden>
+
+       * test/lisp/net/tramp-tests.el (tramp--test-timeout-handler):
+
+       Add docstring.  Remove `interactive' call.
+
+2018-10-12  Michael Albinus  <address@hidden>
+
+       * lisp/net/trampver.el (customize-package-emacs-version-alist):
+
+       Adapt Tramp version integrated in Emacs 26.2.
+
+2018-10-12  Michael Albinus  <address@hidden>
+
+       Fix error in Tramp loading, uncovered by tramp-test43-*
+
+       * lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-handler):
+       New defalias.
+       (tramp-register-archive-file-name-handler): Use it.
+
+       * lisp/net/tramp.el (tramp-file-name-for-operation): Change it for
+       `expand-file-name'.
+       (tramp-file-name-handler): Unset `file-name-handler-alist' when
+       autoloading a Tramp file name handler.
+       (tramp-autoload-file-name-handler): Always unload Tramp file name
+       handlers.
+       (tramp-register-file-name-handlers)
+       (tramp-unload-file-name-handlers): Simplify.
+
+2018-10-12  Allen Li  <address@hidden>
+
+       Rework empty abbrev table omitting
+
+       There were two problems with the original implementation:
+
+       1. It changed the behavior of insert-abbrev-table-description when
+       READABLE is nil to sometimes insert one Emacs Lisp expression and
+       sometimes insert nothing.
+       2. It broke the tests.
+
+       This commit reworks this so that insert-abbrev-table-description
+       always inserts an expressions even if no abbrevs need to be saved and
+       making only write-abbrev-file check that a table has any abbrevs to
+       save before calling insert-abbrev-table-description.  This duplicates
+       the work of filtering the table for savable abbrevs, but the benefit
+       of keeping the API is worth it.
+
+       * doc/lispref/abbrevs.texi (Abbrev Tables): Update documentation.
+       * lisp/abbrev.el (write-abbrev-file): Skip tables without user abbrevs
+       (insert-abbrev-table-description): Always insert the define
+       expression.
+       (abbrev--table-symbols): New function.
+       * test/lisp/abbrev-tests.el (abbrev--table-symbols-test):
+       Add test for abbrev--table-symbols.
+
+2018-10-10  Paul Eggert  <address@hidden>
+
+       Fix mishandling of symbols that look like numbers
+
+       * src/bignum.c (make_neg_biguint): New function.
+       * src/lread.c (read1): Do not mishandle an unquoted symbol
+       with name equal to something like "1\0x", i.e., a string
+       of numeric form followed by a NUL byte.
+       Formerly these symbols were misread as numbers.
+       (string_to_number): Change last argument from an integer flag
+       to a pointer to the length.  This lets the caller figure out
+       how much of the prefix was used.  All callers changed.
+       Add a fast path if the integer (sans sign) fits in uintmax_t.
+       Update comments and simplify now that bignums are present.
+       * src/print.c (print_object): Fix quoting of symbols that look
+       like numbers, by relying on string_to_number for the tricky
+       cases rather than trying to redo its logic, incorrectly.  For
+       example, (read (prin1-to-string '\1e+NaN)) formerly returned
+       "1e+NaN", which was wrong: a backslash is needed in the output
+       to prevent it from being read as a NaN.  Escape NO_BREAK_SPACE
+       too, since lread.c treats it like SPACE.
+       * test/src/print-tests.el (print-read-roundtrip):
+       Add tests illustrating the abovementioned bugs.
+
+2018-10-10  Stefan Monnier  <address@hidden>
+
+       * lisp/auth-source.el: Minor simplification
+
+       Remove redundant :group args.
+       (auth-source-backend-parse): Use run-hook-with-args-until-success.
+
+2018-10-10  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/lisp-mnt.el: Use lexical-binding
+
+       Remove redundant :group
+
+2018-10-09  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       4cf1eb8 (origin/emacs-26) ; * src/data.c (Fkeywordp): Remove inaccura...
+       3f1470d * doc/emacs/mark.texi (Mark): Index "(de)activating the mark".
+
+2018-10-09  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       14c032d Avoid assertion violations in nonsensical calls to 'signal'
+       b99192f * lisp/simple.el (transient-mark-mode): Correct documentation...
+       7e42294 Update the locale and language database
+       8c53d9f Fix a typo in a doc string.
+       79bda3b Make nneething allow CRLF-encoded files (bug#32940)
+
+2018-10-09  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       86d2169 Avoid ridiculously high stack limit requests on macOS
+       ac3622c Improve documentation of 'read-hide-char'
+
+       # Conflicts:
+       #       src/emacs.c
+
+2018-10-09  Charles A. Roelli  <address@hidden>
+
+       * lisp/vc/vc.el (vc-retrieve-tag-hook): Remove autoload cookie.
+
+       See https://lists.gnu.org/r/emacs-devel/2018-10/msg00108.html.
+
+2018-10-09  Paul Eggert  <address@hidden>
+
+       Port --enable-gcc-warnings to recent clang
+
+       * configure.ac: Disable -Wnull-pointer-arithmetic if clang (Bug#32924).
+
+2018-10-09  Paul Eggert  <address@hidden>
+
+       Fix malfunctioning cursor display on 32-bit Gtk
+
+       This bug on 32-bit platforms was caused by the timespec_hz
+       definition going haywire because the C expression
+       FIXNUM_OVERFLOW_P (MOST_POSITIVE_FIXNUM) did not work in #if.
+       Eventually the numeric problem showed up as a malfunctioning
+       cursor (Bug#32992).  Fix the problem with MOST_POSITIVE_FIXNUM.
+       By the way, make_fixnum should check for integer overflow when
+       debugging; this would have made it easier to track this bug down.
+       But one fix at a time.
+       * src/lisp.h (INTTYPEBITS): Now a macro, so usable in #if.
+       (MOST_POSITIVE_FIXNUM): Mention it’s used in #if.
+
+2018-10-09  Stefan Monnier  <address@hidden>
+
+       * lisp/replace.el (occur--garbage-collect-revert-args): New function
+
+       (occur-mode, occur-1): Use it.
+       (occur--region-start, occur--region-end, occur--region-start-line)
+       (occur--orig-line): Remove vars.
+       (occur-engine): Fix left over use of occur--region-start-line.
+
+2018-10-09  Eli Zaretskii  <address@hidden>
+
+       Revert part of last commit
+
+       * lisp/replace.el (occur-revert-function): Revert last change,
+       as it's no longer needed.  (Bug#32987)
+
+2018-10-09  Stefan Monnier  <address@hidden>
+
+       * lisp/replace.el: Rework implementation of the occur region
+
+       Put the region info in the "list of buffers" used for multi-occur.
+
+       (occur--parse-occur-buffer): Remove.
+       (occur): Pass the region to occur-1 as an overlay.
+       (occur-1): 'bufs' is now a list of buffers or overlays.
+       (occur-engine): 'buffers' is now a list of buffers or overlays.
+
+2018-10-09  Eli Zaretskii  <address@hidden>
+
+       Unbreak 'revert-buffer' in Occur buffers
+
+       * lisp/replace.el (occur-revert-function): Use the value of
+       occur-revert-function from the correct buffer.  (Bug#32987)
+
+       * test/lisp/replace-tests.el (replace-occur-revert-bug32543)
+       (replace-occur-revert-bug32987): New tests.
+
+2018-10-08  Stefan Monnier  <address@hidden>
+
+       * lisp/calendar/timeclock.el: Use lexical-binding
+
+       Require cl-lib.  Remove redundant :group args.
+       (timeclock-status-string): Avoid 'setq'.
+       (timeclock-ask-for-project, timeclock-ask-for-reason):
+       Completionu tables can be simple lists of strings.
+       (timeclock-read-moment): Doesn't deserve to be defsubst (most of the
+       others don't either, admittedly).
+       (timeclock-entry): New type.
+       (timeclock-entry-begin, timeclock-entry-end, timeclock-entry-project)
+       (timeclock-entry-comment): Define via 'cl-defstruct'.
+       (timeclock-entry-list-projects, timeclock-day-list-projects):
+       Avoid add-to-list on lexical vars.
+       (timeclock-day-list): Use 'push'.
+       (timeclock-log-data): Use 'pcase'.
+       (timeclock-mean): Simplify.
+       (timeclock-generate-report): Use dotimes.
+
+2018-10-08  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2018-10-05 explicit_bzero: make it possible to namespace
+       2018-10-04 fcntl: make it possible to namespace
+       2018-10-01 mkostemp, mkostemps: fix C++ compilation on Mac OS X
+       2018-09-19 maint: mktime.c now shared with glibc
+       2018-09-18 file-has-acl: fix test failure on Cygwin 2.9
+       2018-09-18 gettime: nanotime never existed
+       * admin/merge-gnulib (AVOIDED_MODULES): Add mkdir.
+       * doc/misc/texinfo.tex, lib/acl-internal.c, lib/acl-internal.h:
+       * lib/acl_entries.c, lib/explicit_bzero.c, lib/fcntl.c:
+       * lib/get-permissions.c, lib/gettime.c, lib/mktime.c:
+       * lib/set-permissions.c, lib/stdlib.in.h, m4/acl.m4, m4/gettime.m4:
+       Copy from Gnulib.
+       * lib/gnulib.mk.in: Regenerate.
+
+2018-10-08  Stefan Monnier  <address@hidden>
+
+       * lisp/net/ntlm.el: Use lexical-binding
+
+       (ntlm-string-as-unibyte): Remove.
+       (ntlm-build-auth-response): Use encode-coding-string instead.
+       (ntlm-build-auth-request, ntlm-build-auth-response, ntlm-ascii2unicode)
+       (ntlm-smb-owf-encrypt, ntlm-smb-hash, ntlm-smb-dohash, ntlm-md4hash):
+       Use fewer setq more Lisp-style.
+
+2018-10-08  Charles A. Roelli  <address@hidden>
+
+       New hook 'vc-retrieve-tag-hook' (Bug#32754)
+
+       * etc/NEWS: Mention the new variable.
+
+       * lisp/vc/vc.el (vc-retrieve-tag-hook): New hook.
+       (vc-retrieve-tag): Run the new hook and update its
+       documentation string.
+
+2018-10-07  Eli Zaretskii  <address@hidden>
+
+       Fix MinGW compilation problem in timefns.c
+
+       * src/timefns.c (lisp_to_timespec): Fix a mismatch between
+       time_t and timespec.tv_sec data types.
+
+2018-10-07  Paul Eggert  <address@hidden>
+
+       * src/scroll.c (calculate_scrolling): Remove casts.
+
+2018-10-07  Scott Corley  <address@hidden>  (tiny change)
+
+       Fix overflow lockup with frames > 255 lines
+
+       * src/scroll.c (struct matrix_elt): Change unsigned char fields to
+       int to handle frames with more than 255 lines (Bug#32951).
+
+2018-10-06  Paul Eggert  <address@hidden>
+
+       Improvements on (TICKS . HZ)
+
+       This patch is in response to Eli's review (Bug#32902#10).
+       * src/systime.h: Doc strings of affected functions now refer
+       to format-time-string instead of to Lisp manual, and
+       format-time-string's doc string covers time values.
+       * test/src/timefns-tests.el (format-time-string-with-zone):
+       Check decode-time too.
+       (decode-then-encode-time, time-arith-tests): New tests.
+
+2018-10-06  Paul Eggert  <address@hidden>
+
+       New (TICKS . HZ) timestamp format
+
+       This follows on a suggestion by Stefan Monnier in:
+       https://lists.gnu.org/r/emacs-devel/2018-08/msg00991.html
+       (Bug#32902).
+       * doc/lispref/buffers.texi (Modification Time):
+       * doc/lispref/os.texi (Processor Run Time, Time Calculations)
+       * doc/lispref/processes.texi (System Processes):
+       * doc/lispref/text.texi (Undo):
+       Let the "Time of Day" section cover timestamp format details.
+       * doc/lispref/os.texi (Time of Day):
+       Say that timestamp internal format should not be assumed.
+       Document new (ticks . hz) format.  Omit mention of seconds-to-time
+       since it is now just an alias for encode-time.
+       (Time Conversion): Document encode-time extension.
+       * etc/NEWS: Mention changes.
+       * lisp/calendar/cal-dst.el (calendar-system-time-basis): Now const.
+       * lisp/calendar/cal-dst.el (calendar-absolute-from-time)
+       (calendar-time-from-absolute)
+       (calendar-next-time-zone-transition):
+       * lisp/emacs-lisp/timer.el (timer-next-integral-multiple-of-time):
+       Simplify by using bignums, (TICKS . HZ), and new encode-time.
+       * lisp/emacs-lisp/timer.el (timer-next-integral-multiple-of-time):
+       Simplify by using bignums and new encode-time.
+       * lisp/calendar/parse-time.el (parse-iso8601-time-string):
+       Handle DST more accurately, by using new encode-time.
+       * lisp/calendar/time-date.el (seconds-to-time):
+       * lisp/calendar/timeclock.el (timeclock-seconds-to-time):
+       Now just an alias for encode-time.
+       * lisp/calendar/time-date.el (days-to-time):
+       * lisp/emacs-lisp/timer.el (timer--time-setter):
+       * lisp/net/ntlm.el (ntlm-compute-timestamp):
+       * lisp/obsolete/vc-arch.el (vc-arch-add-tagline):
+       * lisp/org/org-id.el (org-id-uuid, org-id-time-to-b36):
+       * lisp/tar-mode.el (tar-octal-time):
+       Don't assume timestamps default to list form.
+       * lisp/tar-mode.el (tar-parse-octal-long-integer):
+       Now an obsolete alias for tar-parse-octal-integer.
+       * src/keyboard.c (decode_timer): Adjust to changes to
+       time decoding functions elsewhere.
+       * src/timefns.c: Include bignum.h, limits.h.
+       (FASTER_TIMEFNS): New macro.
+       (WARN_OBSOLETE_TIMESTAMPS, CURRENT_TIME_LIST)
+       (timespec_hz, trillion, ztrillion):
+       New constants.
+       (make_timeval): Use TIME_T_MAX instead of its definiens.
+       (check_time_validity, time_add, time_subtract):
+       Remove.  All uses removed.
+       (disassemble_lisp_time): Remove; old code now folded into
+       decode_lisp_time.  All callers changed.
+       (invalid_hz, s_ns_to_double, ticks_hz_list4, mpz_set_time)
+       (timespec_mpz, timespec_ticks, time_hz_ticks)
+       (lisp_time_hz_ticks, lisp_time_seconds)
+       (time_form_stamp, lisp_time_form_stamp, decode_ticks_hz)
+       (decode_lisp_time, mpz_time, list4_to_timespec):
+       New functions.
+       (decode_float_time, decode_time_components, lisp_to_timespec):
+       Adjust to new struct lisp_time, which does not lose
+       information like the old one did.
+       (enum timeform): New enum.
+       (decode_time_components): New arg FORM.  All callers changed.
+       RESULT and DRESULT are now mutually exclusive; no callers need
+       to change because of this.
+       (decode_time_components, lisp_time_struct)
+       (lisp_seconds_argument, time_arith, make_lisp_time, Ffloat_time)
+       (Fencode_time):
+       Add support for (TICKS . HZ) form.
+       (DECODE_SECS_ONLY): New constant.
+       (lisp_time_struct): 2nd arg is now enum timeform, not int.
+       All callers changed.
+       (check_tm_member): Support bignums.m
+       (Fencode_time): Add new two-arg functionality.
+       * src/systime.h (struct lisp_time): Now ticks+hz rather than
+       hi+lo+us+ps, since ticks+hz does not lose info.
+       * test/lisp/time-stamp-tests.el (time-equal-p-nil-nil):
+       New test.
+
+2018-10-06  Paul Eggert  <address@hidden>
+
+       Export converting mpz to [u]intmax
+
+       This refactoring will help improve timestamp handling later
+       (Bug#32902).
+       * src/bignum.c (mpz_set_uintmax): Move to bignum.h,
+       and make inline.
+       (mpz_set_uintmax_slow): Now extern.
+       (mpz_to_intmax, mpz_to_uintmax): New functions, with
+       implementation taken from the old bignum_to_intmax
+       and bignum_to_uintmax.
+       (bignum_to_intmax, bignum_to_uintmax): Use them.
+
+2018-10-06  Paul Eggert  <address@hidden>
+
+       Coalesce duplicate make_lisp_timeval etc.
+
+       * src/sysdep.c (timeval_to_timespec, make_lisp_timeval):
+       Coalesce duplicate definitions (Bug#32902).
+
+2018-10-06  Paul Eggert  <address@hidden>
+
+       Move timestamp-related stuff to timefns.c
+
+       This does not change behavior; it’s just long-overdue
+       refactoring (Bug#32902).
+       * src/emacs.c (main): Call init_timefns, syms_of_timefns.
+       * src/timefns.c: New file, containing timestamp-related stuff
+       from editfns.c and sysdep.c.
+       * src/Makefile.in (base_obj): Add timefns.o.
+       * src/editfns.c: Simplify by moving a big chunk to timefns.c.
+       Do not include systime.h, sys/resource.h, sys/param.h,
+       strftime.h, coding.h.
+       (HAVE_TZALLOC_BUG, TM_YEAR_BASE, HAVE_TM_GMTOFF, tzeqlen)
+       (local_tz, utc_tz, emacs_localtime_rz, emacs_mktime_z)
+       (invalid_time_zone_specification, xtzfree, tzlookup)
+       (TIME_T_MIN, TIME_T_MAX, time_overflow, invalid_time)
+       (check_time_validity, hi_time, lo_time, Fcurrent_time)
+       (time_add, time_subtract, time_arith, Ftime_add)
+       (Ftime_subtract, Ftime_less_p, Fget_internal_run_time)
+       (make_lisp_time, disassemble_lisp_time, decode_float_time)
+       (lisp_to_timespec, lisp_time_struct, lisp_time_argument)
+       (lisp_seconds_argument, Ffloat_time, emacs_nmemftime)
+       (Fformat_time_string, format_time_string, Fdecode_time)
+       (check_tm_member, Fencode_time, Fcurrent_time_string)
+       (tm_gmtoff, Fcurrent_time_zone, Fset_time_zone_rule)
+       (emacs_getenv_TZ, emacs_setenv_TZ): Move to timefns.c.
+       * src/emacs.c (main): Adjust to initialization changes.
+       * src/sysdep.c: Include <sys/resource.h> if it's present.
+       Regularize includes a bit.
+       (Fget_internal_run_time): Move here from editfns.c.
+       (init_timefns, syms_of_timefns): New functions.
+       * src/w32.h (w32_get_internal_run_time): Move decl here
+       so that it need not be cloned.
+       * test/src/editfns-tests.el:
+       * test/src/editfns-tests.el (format-time-string-with-zone)
+       (format-time-string-with-outlandish-zone)
+       (editfns-tests--have-leap-seconds)
+       (format-time-string-with-bignum-on-32-bit):
+       Move to ...
+       * test/src/timefns-tests.el: ... this new file.
+
+2018-10-04  Michael Albinus  <address@hidden>
+
+       Some reaarangements in tramp*.texi
+
+       * doc/misc/trampver.texi (trampfn): Change check for definition of 
macro.
+       (tramp-bug-report-address): New variable.
+
+       * doc/misc/tramp.texi (Top, Bug Reports): Use it.
+
+2018-10-03  Paul Eggert  <address@hidden>
+
+       Fix emacs_re_safe_alloca calculation
+
+       Problem and draft fix noted by Eli Zaretskii in:
+       https://lists.gnu.org/r/emacs-devel/2018-10/msg00022.html
+       * src/emacs.c (main): Fix arithmetic used in calculation
+       of emacs_re_safe_alloca.
+
+2018-10-03  Glenn Morris  <address@hidden>
+
+       * Makefile.in (uninstall): Remove some stray icon files.
+
+2018-10-03  Glenn Morris  <address@hidden>
+
+       Tweak Makefile emacs-module.h handling
+
+       * Makefile.in (install-arch-indep, uninstall): Respect DESTDIR.
+       Handle whitespace.  Remove non-portable mkdir argument.
+
+2018-10-03  Philipp Stephani  <address@hidden>
+
+       Install emacs-module.h (Bug#31929)
+
+       * Makefile.in (includedir): New variable.
+       (install-arch-indep): Install emacs-module.h.
+       (uninstall): Uninstall emacs-module.h.
+
+2018-10-03  Michael Albinus  <address@hidden>
+
+       * doc/misc/trampver.texi (trampfn): Call `unmacro' prior defining
+
+       * doc/misc/trampver.texi (trampfn): Call `unmacro' prior
+       defining.  trampver.texi is included several times; it raises an
+       error otherwise.
+
+2018-10-03  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       ea77c65 Revert "Temporary workaround for bug #32848 for branch emacs-26"
+       2c8ea46 Revert "* etc/NEWS: Note setting make-cursor-line-fully-visib...
+       f8df6f2 * etc/NEWS: Note setting make-cursor-line-fully-visible to ni...
+       cdca208 Fix note about interactive advice (Bug#32905)
+       508c40e Comple fix for Bug#32550
+
+2018-10-03  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       9c028d6 * lisp/savehist.el (savehist-mode): Doc fix.  (Bug#32889)
+       3a2b5a7 ; * lisp/bindings.el (bindings--define-key): Doc fix.  (Bug#3...
+       6a7a869 Org manual: Rewrite the Org Mobile section
+
+       # Conflicts:
+       #       lisp/savehist.el
+
+2018-10-03  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       7296b6f Improve cl-do, cl-do* docstrings
+       d416109 Avoid returning early in 'while-no-input' due to subprocesses
+       e8a4d94 Cleanup when opening a new terminal fails. (Bug#32794)
+
+       # Conflicts:
+       #       etc/NEWS
+
+2018-10-03  Alan Mackenzie  <address@hidden>
+
+       Put follow-mode's engine on pre-redisplay-hook instead of 
post-command-hook
+
+       This fixes bug #32874.
+
+       * lisp/follow.el (follow-mode): Put follow-pre-redisplay-function onto
+       pre-redisplay-function instead of putting follow-post-command-hook onto
+       post-command-hook.  Amend the removal operation analogously.
+       (follow-pre-redisplay-function): New function.
+
+2018-10-02  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/autoload.el (autoload-ignored-definitions): New var
+
+       (autoload-generate-file-autoloads): Use it.
+
+2018-10-02  Michael Albinus  <address@hidden>
+
+       Rearrangements in tramp*.texi
+
+       * doc/misc/trampver.texi (trampfn): New macro, taken from tramp.texi.
+
+       * doc/misc/tramp.texi (trampfn): Moved to trampver.texi.
+       (Top): Add sections `System Requirement' and `Basic Installation'.
+
+2018-10-01  Charles A. Roelli  <address@hidden>
+
+       * lisp/vc/vc.el (vc-checkin): Simplify 'run-hook' call.
+
+2018-10-01  Michael Albinus  <address@hidden>
+
+       Use `float-time' in tramp-sh.el where needed
+
+       * lisp/net/tramp-sh.el (tramp-sh-handle-verify-visited-file-modtime):
+       Use `float-time'.
+
+2018-10-01  Michael Albinus  <address@hidden>
+
+       Minor edits in tramp.texi
+
+       * doc/misc/tramp.texi (Password handling): Say "user option".
+       (Remote shell setup): Say "environment variable".
+       (External packages): Add `non-essential' to variable index.
+
+2018-09-30  Michael R. Mauger  <address@hidden>
+
+       Automate support for `sql-indent' ELPA package
+
+       * lisp/progmodes/sql.el (sql-use-indent-support): New variable.
+       (sql-is-indent-available): New function.
+       (sql-indent-enable): Use above.
+       (sql-mode-hook, sql-interactive-mode-hook): Add `sql-indent-enable'.
+
+2018-09-30  Charles A. Roelli  <address@hidden>
+
+       * doc/emacs/help.texi (Misc Help): Document 'info-other-window'.
+
+2018-09-30  Sam Steingold  <address@hidden>
+
+       Document 2d54710c36: vc-git-stash & *vc-dir*
+
+2018-09-30  Eli Zaretskii  <address@hidden>
+
+       Allow 'make-cursor-line-fully-visible' name a function
+
+       * src/xdisp.c (cursor_row_fully_visible_p): Handle the case of
+       make-cursor-line-fully-visible being a function.  Accept a 3rd
+       argument; if non-zero, assume the caller already tested the
+       conditions for the cursor being fully-visible, and don't
+       recheck them.  All callers changed.
+       (try_cursor_movement, try_window_id): Call
+       cursor_row_fully_visible_p instead of testing the value of
+       make-cursor-line-fully-visible directly.
+       (syms_of_xdisp) <make-cursor-line-fully-visible>: Update the
+       doc string.  Define a symbol Qmake_cursor_line_fully_visible.
+       (Bug#32848)
+
+       * lisp/cus-start.el (standard): Update the Custom form.
+
+       * etc/NEWS: Mention the change in possible values of
+       'make-cursor-line-fully-visible'.
+
+2018-09-29  Alan Third  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       9ad0f1d15c Fix deprecation warning
+       7946445962 Make all NS drawing be done from drawRect
+       41fa88b99b ; Fix some doc typos
+
+2018-09-29  Michael Albinus  <address@hidden>
+
+       Rework time-* functions in Tramp
+
+       * doc/misc/emacs-mime.texi (time-date): Add time-equal-p.
+
+       * lisp/net/tramp-compat.el (tramp-compat-time-equal-p): New defsubst.
+
+       * lisp/net/tramp.el (tramp-file-name-handler): Remove `debug'
+       error handler.
+       (tramp-half-a-year): Remove.
+       (tramp-time-dont-know, tramp-time-doesnt-exist): New defconst.
+       (tramp-time-diff): Remove compat code.
+       (tramp-handle-set-visited-file-modtime)
+       (tramp-handle-verify-visited-file-modtime):
+       * lisp/net/tramp-adb.el (tramp-do-parse-file-attributes-with-ls)
+       (tramp-adb-handle-set-file-times):
+       * lisp/net/tramp-sh.el (tramp-do-file-attributes-with-ls)
+       (tramp-sh-handle-set-visited-file-modtime)
+       (tramp-sh-handle-verify-visited-file-modtime)
+       (tramp-sh-handle-set-file-times)
+       (tramp-sh-handle-file-newer-than-file-p):
+       Use `tramp-time-dont-know', `tramp-time-doesnt-exist' and
+       `tramp-compat-time-equal-p'.
+       (tramp-sh-handle-verify-visited-file-modtime): Simplify check.
+
+       * lisp/net/tramp-smb.el (tramp-smb-handle-file-attributes)
+       (tramp-smb-read-file-entry): Use `tramp-time-dont-know'.
+       (tramp-smb-handle-insert-directory): Adapt half-a-year check.
+
+       * src/editfns.c (Ftime_equal_p): Adapt docstring.
+
+       * test/lisp/net/tramp-tests.el
+       (tramp-test19-directory-files-and-attributes)
+       (tramp-test22-file-times): Use `tramp-compat-time-equal-p' and
+       `tramp-time-dont-know'.
+       (tramp-test23-visited-file-modtime): Extend test.
+
+2018-09-29  Michael Albinus  <address@hidden>
+
+       Fix minor problem in tramp-handle-substitute-in-file-name
+
+       * lisp/net/tramp.el (tramp-handle-substitute-in-file-name):
+       Suppress cygwin-mount file name handlers.
+
+2018-09-29  Michael Albinus  <address@hidden>
+
+       Finish fix for Bug#21559
+
+       * lisp/vc/vc-git.el (vc-git--call):
+       If `revert-buffer-in-progress-p' flag is set, prepend
+       "GIT_OPTIONAL_LOCKS=0" to "process-environment".  (Bug#21559)
+
+2018-09-29  Tino Calancha  <address@hidden>
+           Noam Postavsky  <address@hidden>
+
+       Ibuffer filter by modes: Accept several mode names
+
+       Extend all mode filters so that they handle >1 mode.
+       For instance, if the users want to filter all buffers in
+       C or C++ mode, then they can call the filter interactively
+       with input: 'c-mode,c++-mode' (Bug#32731).
+
+       * lisp/ibuf-macs.el(define-ibuffer-filter): Add key :accept-list.
+       If the value of this key is non-nil, then the filter accepts
+       either a single qualifier or a list of them; in the latter case,
+       the resultant filter is the `or' composition of the individual ones.
+
+       * lisp/ibuf-ext.el (ibuffer-filter-by-used-mode)
+       (ibuffer-filter-by-mode, ibuffer-filter-by-derived-mode)
+       Set :accept-list value non-nil.
+       Interactively, accept a comma separated list of mode names.
+
+       * etc/NEWS(Ibuffer): Announce this change.
+
+2018-09-29  Allen Li  <address@hidden>
+
+       Avoid writing empty abbrev tables
+
+       Fixes bug#29923
+
+       'insert-abbrev-table-description' with a non-nil READABLE inserts Lisp
+       forms suitable for evaluation to restore the defined abbrevs.  We
+       don't have to insert a form for tables that do not have any abbrevs.
+
+       To implement this, we need to filter out system abbrevs before
+       checking if a table is empty, because system abbrevs were previously
+       skipped in the 'abbrev--write' call, at which point we would already
+       have started inserting the beginning of a table definition form.
+
+       * lisp/abbrev.el (insert-abbrev-table-description):
+       Skip inserting empty tables when READABLE is non-nil.
+       Clarify behavior in documentation string.
+       (abbrev--write): Remove system abbrev check.
+
+       * doc/lispref/abbrevs.texi (Abbrev Tables): Document behavior
+       with empty tables.
+
+       * etc/NEWS: Mention the change in behavior of
+       'insert-abbrev-table-description'.
+
+2018-09-28  Andrew Schwartzmeyer  <address@hidden>  (tiny change)
+
+       Support mode aliases in 'provided-mode-derived-p'
+
+       * lisp/subr.el (provided-mode-derived-p): Check aliases of
+       MODES as well as MODES themselves.  (Bug#32795)
+
+       * test/lisp/subr-tests.el (provided-mode-derived-p): New test.
+
+2018-09-28  Trevor Murphy  <address@hidden>
+
+       Allow user customization to affect display of *Find* buffer.
+
+       * lisp/find-dired.el (find-dired): Use 'pop-to-buffer-same-window'
+       instead of 'switch-to-buffer'.
+
+2018-09-28  Stefan Monnier  <address@hidden>
+
+       * etc/NEWS.18: Use outline-mode and a more standard format
+
+       * etc/NEWS.1-17: Use outline-mode and a more standard format
+
+2018-09-28  Paul Eggert  <address@hidden>
+
+       Rename time-equal to time-equal-p
+
+       This is for consistency with time-less-p.
+       * doc/lispref/os.texi (Time Calculations), etc/NEWS:
+       * src/editfns.c (Ftime_equal_p, syms_of_editfns):
+       * test/lisp/emacs-lisp/timer-tests.el (timer-test-multiple-of-time):
+       Rename.
+
+2018-09-28  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       1908173 (origin/emacs-26) Fix Bug#32828
+       7f5086d * lisp/net/shr.el (shr-copy-url): Fix docstring.
+       d309994 Fix typos in documentation
+       25cdd65 ; Spellcheck two more documentation strings
+       c8bda05 ; * lisp/simple.el (save-interprogram-paste-before-kill): Fix...
+       dc7fdee * doc/emacs/kmacro.texi (Basic Keyboard Macro): Mention old b...
+       17766a1 Improve docs of functions/variables related to 'display-buffer'
+       a363931 * lisp/mouse.el (tear-off-window): Fix non-mouse use (bug#32799)
+       8b8a4c0 Improve documentation of directory-local variables
+       c9c9756 Don't use obsolete variable 'save-place' in documentation
+       ca208e8 Use save-place-mode instead of save-place
+
+2018-09-28  Sam Steingold  <address@hidden>
+
+       lisp/vc/vc-git.el (vc-git-stash): Respect vc-dir marked files
+
+2018-09-27  Paul Eggert  <address@hidden>
+
+       time-equal, and time values of infinity and NaN
+
+       * doc/lispref/os.texi (Time Calculations):
+       Document time-equal, and the behavior on NaNs and infinities of
+       time-less-p, time-add, time-subtract.
+       * etc/NEWS: Mention the change.
+       * src/editfns.c (time_arith): Change last arg from function
+       to bool.  All callers changed.  Do the right thing with
+       infinities and NaNs.
+       (time_cmp): New function, which handlesx infinities and NaNs.
+       (Ftime_less_p): Use it.
+       (Ftime_equal): New function.
+       * test/lisp/emacs-lisp/timer-tests.el (timer-test-multiple-of-time):
+       Use it.
+
+2018-09-26  Juri Linkov  <address@hidden>
+
+       * etc/NEWS: Mention syntax change in add-dir-local-variable (bug#32817)
+
+2018-09-26  Charles A. Roelli  <address@hidden>
+
+       * lisp/vc-bzr.el (log-view-current-tag-function): Remove unused defvar.
+
+2018-09-26  Alan Mackenzie  <address@hidden>
+
+       CC Mode: consider tails of compound identifiers when seeking found 
types.
+
+       * lisp/progmodes/cc-engine.el (c-forward-over-token): New function, 
extracted
+       from ...
+       (c-forward-over-token-and-ws): Refactor to use the above.
+       (c-forward-type): Use c-check-qualified-type in place of c-check-type
+       (twice).
+       (c-forward-over-compound-identifier): New function.
+       (c-check-qualified-type): New function.
+
+2018-09-25  Juri Linkov  <address@hidden>
+
+       Rename add-dir-local-variables-to-string to dir-locals-to-string 
(bug#32817)
+
+2018-09-24  Paul Eggert  <address@hidden>
+
+       Remove some assumptions about timestamp format
+
+       These changes remove some assumptions of Lisp code on timestamp
+       format.  Although we’re not going to change the default format any
+       time soon, I went looking for code that was too intimate about
+       details of timestamp format and removed assumptions where this was
+       easy to do with current Emacs primitives.
+       * lisp/ido.el (ido-wash-history):
+       Fix test for zero timestamp.
+       * lisp/time.el (display-time-event-handler):
+       Use time-less-p rather than doing it by hand.
+       (display-time-update): Simplify by using float-time
+       instead of doing the equivalent by hand.
+       * lisp/url/url-auth.el (url-digest-auth-make-cnonce):
+       * test/lisp/calendar/parse-time-tests.el (parse-time-tests):
+       * test/lisp/emacs-lisp/timer-tests.el (timer-test-multiple-of-time):
+       * test/lisp/net/tramp-tests.el:
+       (tramp-test19-directory-files-and-attributes)
+       (tramp-test22-file-times, tramp-test23-visited-file-modtime):
+       Don’t assume detailed format of returned Lisp timestamps.
+
+2018-09-24  Juri Linkov  <address@hidden>
+
+       Output alists with dotted pair notation in .dir-locals.el
+
+       * lisp/files-x.el (add-dir-local-variables-to-string): New function.
+       (modify-dir-local-variable): Use it.  (Bug#32817)
+
+2018-09-24  Paul Eggert  <address@hidden>
+
+       Fix ‘make clean’ with a file named ‘-.o’
+
+       Problem reported by T.V Raman in:
+       https://lists.gnu.org/r/emacs-devel/2018-09/msg00866.html
+       * Makefile.in (clean, extraclean):
+       * doc/emacs/Makefile.in (mostlyclean):
+       * doc/lispintro/Makefile.in (mostlyclean):
+       * doc/lispref/Makefile.in (mostlyclean):
+       * doc/misc/Makefile.in (mostlyclean, clean):
+       * etc/refcards/Makefile (clean):
+       * lib-src/Makefile.in (mostlyclean, extraclean):
+       * lib/Makefile.in (clean):
+       * lwlib/Makefile.in (clean mostlyclean):
+       * oldXMenu/Makefile.in (clean mostlyclean):
+       * src/Makefile.in (mostlyclean, extraclean):
+       * test/Makefile.in (mostlyclean):
+       Say ‘rm ./*.o’ instead of ‘rm *.o’ to avoid undesirable failure
+       when a file name begins with ‘-’.
+
+2018-09-23  Paul Eggert  <address@hidden>
+
+       file-attributes cleanup
+
+       Mostly, this replaces magic-number calls like (nth 4 A) with
+       more-informative calls like (file-attribute-access-time A).
+       It also fixes some documentation and minor timestamp coding
+       issues that I noticed while looking into this.
+       * doc/lispref/files.texi (File Attributes):
+       * lisp/files.el (file-attribute-size)
+       (file-attribute-inode-number, file-attribute-device-number):
+       * src/dired.c (Fdirectory_files_and_attributes)
+       (Ffile_attributes):
+       Mention which attributes must be integers, or nonnegative integers,
+       as opposed to merely being numbers.  Remove no-longer-correct
+       talk about representing large integers as conses of integers.
+       * doc/lispref/files.texi (Magic File Names):
+       * doc/misc/gnus.texi (Low-level interface to the spam-stat dictionary):
+       * lisp/autorevert.el (auto-revert-find-file-function)
+       (auto-revert-tail-mode, auto-revert-handler):
+       * lisp/auth-source.el (auth-source-netrc-parse):
+       * lisp/cedet/ede/files.el (ede--inode-for-dir):
+       * lisp/cedet/semantic/db-file.el (object-write):
+       * lisp/cedet/semantic/db-mode.el (semanticdb-kill-hook):
+       * lisp/cedet/semantic/db.el (semanticdb-needs-refresh-p)
+       (semanticdb-synchronize):
+       * lisp/cedet/srecode/table.el (srecode-mode-table-new):
+       * lisp/desktop.el (desktop-save, desktop-read):
+       * lisp/dired-aux.el (dired-file-set-difference)
+       (dired-do-chxxx, dired-do-chmod, dired-copy-file-recursive)
+       (dired-create-files):
+       * lisp/dired.el (dired-directory-changed-p, dired-readin):
+       * lisp/dos-w32.el (w32-direct-print-region-helper):
+       * lisp/emacs-lisp/autoload.el (autoload-generate-file-autoloads)
+       (autoload-find-destination, update-directory-autoloads):
+       * lisp/emacs-lisp/shadow.el 
(load-path-shadows-same-file-or-nonexistent):
+       * lisp/epg.el (epg--start, epg-wait-for-completion):
+       * lisp/eshell/em-ls.el (eshell-ls-filetype-p)
+       (eshell-ls-applicable, eshell-ls-size-string)
+       (eshell-ls-file, eshell-ls-dir, eshell-ls-files)
+       (eshell-ls-entries):
+       * lisp/eshell/em-pred.el (eshell-predicate-alist)
+       (eshell-pred-file-type, eshell-pred-file-links)
+       (eshell-pred-file-size):
+       * lisp/eshell/em-unix.el (eshell-shuffle-files, eshell/cat)
+       (eshell-du-sum-directory, eshell/du):
+       * lisp/eshell/esh-util.el (eshell-read-passwd)
+       (eshell-read-hosts):
+       * lisp/files.el (remote-file-name-inhibit-cache)
+       (find-file-noselect, insert-file-1, dir-locals-find-file)
+       (dir-locals-read-from-dir, backup-buffer)
+       (file-ownership-preserved-p, copy-directory)
+       (read-file-modes):
+       * lisp/find-lisp.el (find-lisp-format):
+       * lisp/gnus/gnus-agent.el (gnus-agent-unfetch-articles)
+       (gnus-agent-read-agentview, gnus-agent-expire-group-1)
+       (gnus-agent-request-article, gnus-agent-regenerate-group)
+       (gnus-agent-update-files-total-fetched-for)
+       (gnus-agent-update-view-total-fetched-for):
+       * lisp/gnus/gnus-cache.el (gnus-cache-read-active)
+       (gnus-cache-update-file-total-fetched-for)
+       (gnus-cache-update-overview-total-fetched-for):
+       * lisp/gnus/gnus-cloud.el (gnus-cloud-file-new-p):
+       * lisp/gnus/gnus-score.el (gnus-score-score-files):
+       * lisp/gnus/gnus-start.el (gnus-save-newsrc-file)
+       (gnus-master-read-slave-newsrc):
+       * lisp/gnus/gnus-sum.el (gnus-summary-import-article):
+       * lisp/gnus/gnus-util.el (gnus-file-newer-than)
+       (gnus-cache-file-contents):
+       * lisp/gnus/mail-source.el (mail-source-delete-old-incoming)
+       (mail-source-callback, mail-source-movemail):
+       * lisp/gnus/nneething.el (nneething-create-mapping)
+       (nneething-make-head):
+       * lisp/gnus/nnfolder.el (nnfolder-read-folder):
+       * lisp/gnus/nnheader.el (nnheader-file-size)
+       (nnheader-insert-nov-file):
+       * lisp/gnus/nnmail.el (nnmail-activate):
+       * lisp/gnus/nnmaildir.el (nnmaildir--group-maxnum)
+       (nnmaildir--new-number, nnmaildir--update-nov)
+       (nnmaildir--scan, nnmaildir-request-scan)
+       (nnmaildir-request-update-info)
+       (nnmaildir-request-expire-articles):
+       * lisp/gnus/nnmh.el (nnmh-request-list-1)
+       (nnmh-request-expire-articles, nnmh-update-gnus-unreads):
+       * lisp/gnus/nnml.el (nnml-request-expire-articles):
+       * lisp/gnus/spam-stat.el (spam-stat-save, spam-stat-load)
+       (spam-stat-process-directory, spam-stat-test-directory):
+       * lisp/ido.el (ido-directory-too-big-p)
+       (ido-file-name-all-completions):
+       * lisp/image-dired.el (image-dired-get-thumbnail-image)
+       (image-dired-create-thumb-1):
+       * lisp/info.el (info-insert-file-contents):
+       * lisp/ls-lisp.el (ls-lisp-insert-directory)
+       (ls-lisp-handle-switches, ls-lisp-classify-file)
+       (ls-lisp-format):
+       * lisp/mail/blessmail.el:
+       * lisp/mail/feedmail.el (feedmail-default-date-generator)
+       (feedmail-default-message-id-generator):
+       * lisp/mail/mailabbrev.el (mail-abbrevs-sync-aliases)
+       (mail-abbrevs-setup):
+       * lisp/mail/mspools.el (mspools-size-folder):
+       * lisp/mail/rmail.el (rmail-insert-inbox-text):
+       * lisp/mail/sendmail.el (sendmail-sync-aliases):
+       * lisp/mh-e/mh-alias.el (mh-alias-tstamp):
+       * lisp/net/ange-ftp.el (ange-ftp-parse-netrc)
+       (ange-ftp-write-region, ange-ftp-file-newer-than-file-p)
+       (ange-ftp-cf1):
+       * lisp/net/eudcb-mab.el (eudc-mab-query-internal):
+       * lisp/net/eww.el (eww-read-bookmarks):
+       * lisp/net/netrc.el (netrc-parse):
+       * lisp/net/newst-backend.el (newsticker--image-get):
+       * lisp/nxml/rng-loc.el (rng-get-parsed-schema-locating-file):
+       * lisp/obsolete/fast-lock.el (fast-lock-save-cache):
+       * lisp/obsolete/vc-arch.el (vc-arch-state)
+       (vc-arch-diff3-rej-p):
+       * lisp/org/ob-eval.el (org-babel--shell-command-on-region):
+       * lisp/org/org-attach.el (org-attach-commit):
+       * lisp/org/org-macro.el (org-macro-initialize-templates):
+       * lisp/org/org.el (org-babel-load-file)
+       (org-file-newer-than-p):
+       * lisp/org/ox-html.el (org-html-format-spec):
+       * lisp/org/ox-publish.el (org-publish-find-date)
+       (org-publish-cache-ctime-of-src):
+       * lisp/pcmpl-gnu.el (pcomplete/tar):
+       * lisp/pcmpl-rpm.el (pcmpl-rpm-packages):
+       * lisp/play/cookie1.el (cookie-snarf):
+       * lisp/progmodes/cmacexp.el (c-macro-expansion):
+       * lisp/ps-bdf.el (bdf-file-mod-time):
+       * lisp/server.el (server-ensure-safe-dir):
+       * lisp/simple.el (shell-command-on-region):
+       * lisp/speedbar.el (speedbar-item-info-file-helper)
+       (speedbar-check-obj-this-line):
+       * lisp/thumbs.el (thumbs-cleanup-thumbsdir):
+       * lisp/time.el (display-time-mail-check-directory)
+       (display-time-file-nonempty-p):
+       * lisp/url/url-cache.el (url-is-cached):
+       * lisp/url/url-file.el (url-file-asynch-callback):
+       * lisp/vc/diff-mode.el (diff-delete-if-empty):
+       * lisp/vc/pcvs-info.el (cvs-fileinfo-from-entries):
+       * lisp/vc/vc-bzr.el (vc-bzr-state-heuristic):
+       * lisp/vc/vc-cvs.el (vc-cvs-checkout-model)
+       (vc-cvs-state-heuristic, vc-cvs-merge-news)
+       (vc-cvs-retrieve-tag, vc-cvs-parse-status, vc-cvs-parse-entry):
+       * lisp/vc/vc-hg.el (vc-hg--slurp-hgignore-1)
+       (vc-hg--ignore-patterns-valid-p)
+       (vc-hg--cached-dirstate-search, vc-hg-state-fast):
+       * lisp/vc/vc-hooks.el (vc-after-save):
+       * lisp/vc/vc-rcs.el (vc-rcs-workfile-is-newer):
+       * lisp/vc/vc-svn.el (vc-svn-merge-news, vc-svn-parse-status):
+       * lisp/vc/vc.el (vc-checkout, vc-checkin, vc-revert-file):
+       * lisp/xdg.el (xdg-mime-apps):
+       Prefer (file-attribute-size A) to (nth 7 A), and similarly
+       for other file attributes accessors.
+       * doc/lispref/files.texi (File Attributes):
+       * doc/lispref/intro.texi (Version Info):
+       * doc/lispref/os.texi (Idle Timers):
+       * lisp/erc/erc.el (erc-string-to-emacs-time):
+       * lisp/files.el (file-attribute-access-time)
+       (file-attribute-modification-time)
+       (file-attribute-status-change-time):
+       * lisp/net/tramp-compat.el:
+       (tramp-compat-file-attribute-modification-time)
+       (tramp-compat-file-attribute-size):
+       * src/buffer.c (syms_of_buffer):
+       * src/editfns.c (Fget_internal_run_time):
+       * src/fileio.c (Fvisited_file_modtime)
+       (Fset_visited_file_modtime):
+       * src/keyboard.c (Fcurrent_idle_time):
+       * src/process.c (Fprocess_attributes):
+       Defer implementation details about timestamp format to the
+       section that talks about timestamp format, to make it easier
+       to change the documentation later if timestamp formats are
+       extended.
+       * lisp/gnus/gnus-util.el (gnus-file-newer-than):
+       * lisp/speedbar.el (speedbar-check-obj-this-line):
+       * lisp/vc/vc-rcs.el (vc-rcs-workfile-is-newer):
+       Prefer time-less-p to doing it by hand.
+       * lisp/ls-lisp.el (ls-lisp-format): Inode numbers are no longer conses.
+       * lisp/vc/vc-bzr.el (vc-bzr-state-heuristic):
+       Use eql, not eq, to compare integers that might be bignums.
+       * lisp/org/ox-publish.el (org-publish-cache-ctime-of-src):
+       Prefer float-time to doing time arithmetic by hand.
+
+2018-09-23  Stefan Monnier  <address@hidden>
+
+       * doc/emacs/maintaining.texi: Fix one more occurrence of `next-file`
+
+2018-09-22  Stefan Monnier  <address@hidden>
+
+       * lisp/play/bubbles.el: Use lexical-binding
+
+2018-09-22  Paul Eggert  <address@hidden>
+
+       Round bignums consistently with other integers
+
+       * src/bignum.c (mpz_bufsize): New function.
+       (bignum_bufsize): Use it.
+       (mpz_get_d_rounded): New function.
+       (bignum_to_double): Use it.
+       * src/bignum.c (bignum_to_double):
+       * src/data.c (bignum_arith_driver):
+       When converting bignums to double, round instead of
+       truncating, to be consistent with what happens with fixnums.
+       * test/src/floatfns-tests.el (bignum-to-float): Test rounding.
+
+2018-09-22  Stefan Monnier  <address@hidden>
+
+       Complement to last commit
+
+2018-09-22  Stefan Monnier  <address@hidden>
+
+       * lisp/multifile.el: New file, extracted from etags.el
+
+       The main motivation for this change was the introduction of
+       project-query-replace.  dired's multi-file query&replace was implemented
+       on top of etags.el even though it did not use TAGS in any way, so I 
moved
+       this generic multifile code into its own package, with a nicer 
interface,
+       and then used that in project.el.
+
+       * lisp/progmodes/project.el (project-files): New generic function.
+       (project-search, project-query-replace): New commands.
+
+       * lisp/dired-aux.el (dired-do-search, dired-do-query-replace-regexp):
+       Use multifile.el instead of etags.el.
+
+       * lisp/progmodes/etags.el: Remove redundant :groups.
+       (next-file-list): Remove var.
+       (tags-loop-revert-buffers): Make it an obsolete alias.
+       (next-file): Don't autoload (it can't do anything useful before some
+       other etags.el function setup the multifile operation).
+       (tags--all-files): New function, extracted from next-file.
+       (tags-next-file): Rename from next-file.
+       Rewrite using tags--all-files and multifile-next-file.
+       (next-file): Keep it as an obsolete alias.
+       (tags-loop-operate, tags-loop-scan): Mark as obsolete.
+       (tags--compat-files, tags--compat-initialize): New function.
+       (tags-loop-continue): Rewrite using multifile-continue.  Mark as 
obsolete.
+       (tags--last-search-operate-function): New var.
+       (tags-search, tags-query-replace): Rewrite using multifile.el.
+
+       * lisp/emacs-lisp/generator.el (iter-end-of-sequence): Use 
'define-error'.
+       (iter-make): New macro.
+       (iter-empty): New iterator.
+
+       * lisp/menu-bar.el (menu-bar-search-menu, menu-bar-replace-menu):
+       tags-loop-continue -> multifile-continue.
+
+2018-09-21  Paul Eggert  <address@hidden>
+
+       Fix (+ bignum float) bug
+
+       * src/data.c (bignum_arith_driver): Fix typo: missing ‘return’.
+       * test/src/data-tests.el (data-tests-bignum): Test for the typo.
+
+2018-09-21  Paul Eggert  <address@hidden>
+
+       Fix ambiguity in nil DST flag
+
+       Formerly nil meant both that DST was not in effect and that
+       the DST flag was unknown, and different functions interpreted
+       the flag differently.  Now the meaning is consistently nil for
+       DST not in effect, and -1 for DST flag not known.
+       * doc/lispref/os.texi (Time Conversion): The DST slot is
+       now three-valued, not two-.
+       * doc/misc/emacs-mime.texi (time-date): Adjust to new behavior.
+       * etc/NEWS: Mention this.
+       * lisp/calendar/parse-time.el (parse-time-string):
+       * src/editfns.c (Fdecode_time):
+       Return -1 for unknown DST flag.
+       * test/lisp/calendar/parse-time-tests.el (parse-time-tests):
+       Adjust tests to match new behavior, and add a new
+       test for nil vs -1.
+
+2018-09-21  Philipp Stephani  <address@hidden>
+
+       Avoid an overflow error in emacs-module.c
+
+       * src/emacs-module.c (Fmodule_load): Allow creating a bignum
+       to avoid overflow error
+
+2018-09-21  Philipp Stephani  <address@hidden>
+
+       Use new function overflow_error in a few places
+
+       * src/emacs-module.c (module_make_global_ref, module_funcall)
+       (module_make_string, Fmodule_load):
+       * src/json.c (json_to_lisp): Use overflow_error.
+
+2018-09-21  Philipp Stephani  <address@hidden>
+
+       Support bignums when serializing JSON
+
+       * src/json.c (lisp_to_json): Support bignums.
+       * test/src/json-tests.el (json-serialize/bignum): New test.
+
+2018-09-20  Paul Eggert  <address@hidden>
+
+       Bindat examples in source, not manual
+
+       * doc/lispref/processes.texi (Bindat Examples): Remove, fixing
+       a FIXME in the manual.  The long example had bitrotted to some
+       extent, compared to the more-up-to-date example in bindat.el
+       commentary, which apparently what people were referring to
+       anyway.  The short example was confusing and not that useful
+       and will be obsolescent anyway if we change timestamp format.
+
+2018-09-20  Tino Calancha  <address@hidden>
+
+       Fix a previous commit
+
+       Suggested by Stefan Monnier here:
+       https://lists.gnu.org/archive/html/emacs-devel/2018-09/msg00783.html
+       * lisp/replace.el (occur--parse-occur-buffer): Since point is at the
+       beginning of the buffer, use `point'.
+
+       (occur-revert-function): Prefer `pcase-let' and `point-min'.
+       Check whether `region-start' or `region-end' are non-nil.
+
+2018-09-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       d28d54c (origin/emacs-26) More accurate docs for 'text-char-description'
+       b3baf99 Document synchronous behavior of eshell/make (Bug#32513)
+       98544ea Fix bs-show with wide characters (Bug#17822)
+       85af51b Improve Custom menu labels for 2 options
+       72a2a36 Improve wording of last change in dired-x.texi
+       d4fa83b Fix GnuTLS test suite with GnuTLS versions 3.4.x
+       b5bee6b Fix build with gnutls versions 3.0 to 3.2 (Bug#32446)
+       67eb80e ; * etc/enriched.txt (hanging-indents): Remove extra indent.
+       c71cfb7 Fix the Bubbles game on TTY frames
+       3bbf21b Add choice to reshow certificate information (Bug#31877)
+       6f2c471 * src/alloc.c (Fbool_vector, Flist, Fvector): Doc tweak.
+       39eecb3 * src/alloc.c (vector): Fix grammatical error in doc string: ...
+
+2018-09-20  Bob Newell  <address@hidden>
+
+       New input methods hawaiian-postfix and hawaiian-prefix
+
+       * lisp/leim/quail/latin-pre.el ("hawaiian-prefix"):
+       * lisp/leim/quail/latin-post.el ("hawaiian-postfix"): New
+       input methods.  (Bug#32714)
+       * etc/NEWS: Mention the new input methods.
+
+2018-09-18  Tino Calancha  <address@hidden>
+
+       Fix bug 32543
+
+       Store the region and orig line into the *Occur* header line.
+       Retrieve this information in `occur-revert-function'.
+       * lisp/replace.el (occur--parse-occur-buffer): New defun.
+       (occur-revert-function): Use it.
+       (occur-engine): Store region and original position as text properties
+       into the *Occur* header line.
+       * lisp/replace.el (occur-engine): Add sensible default values for
+       (occur--orig-line and nlines.
+
+2018-09-17  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/advice.el: Only use defmacro when needed
+
+       (ad-get-advice-info): Mark it inlinable.
+       (ad-get-advice-info-macro): Make it an obsolete alias.
+       (ad-copy-advice-info, ad-is-advised, ad-get-advice-info-field)
+       (ad-find-advice, ad-macrofy, ad-lambdafy, ad-lambda-p, ad-advice-p)
+       (ad-compiled-p, ad-compiled-code, ad-get-cache-definition)
+       (ad-get-cache-id, ad-set-cache): Turn macros into defsubsts.
+       (ad-defadvice-flags): Make it into a plain list.
+       (ad-set-advice-info-field): Apply a bit of CSE.
+
+2018-09-17  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/advice.el (ad-advised-functions): Make it a plain list
+
+       (ad-read-advised-function, ad-do-advised-functions): Adjust accordingly.
+       (ad-pushnew-advised-function, ad-pop-advised-function): Also make them
+       into functions.
+
+2018-09-16  Paul Eggert  <address@hidden>
+
+       Move current_timespec decl to timespec.h
+
+       This change was motivated by the desire to remove the weird
+       dependency of lib-src/profile.o on src/systime.h.  profile.c
+       included systime.h only for current_timespec, and this
+       inclusion required systime.h to have #ifdef emacs in multiple
+       places and complicated further changes I have in mind.
+       The current_timespec decl belongs in timespec.h anyway,
+       and the main effect of this change is to move it there.
+       * lib-src/profile.c (INLINE): Remove.
+       Include timespec.h, not systime.h.
+       * lib/gettime.c (gettime): Prefer clock_gettime to nanotime,
+       and don’t worry about it failing on a CLOCK_REALTIME arg.
+       POSIX requires it to succeed and I don’t know of any
+       counterexamples where the fallbacks would work.
+       (current_timespec): Move here from src/systime.h.
+       Nowadays it seems to be better to not have this function
+       be inline.
+       * lib/timespec.h: Include arg-nonnull.h.
+       (current_timespec): New declaration.
+       (gettime, settime): Declare args to be nonnull.
+       * lib/gettime.c, lib/timespec.h: Copy from Gnulib.
+       * src/systime.h: Simplify by assuming ‘emacs’ is defined,
+       which it always is now.
+       (current_timespec): Move to lib/timespec.h.
+
+2018-09-16  Stefan Monnier  <address@hidden>
+
+       * lisp/delsel.el (minibuffer-keyboard-quit): Remove old redundant code.
+
+       The various minibuffer maps all inherit from minibuffer-local-map 
nowadays,
+       so a single binding in it is all it takes.
+
+2018-09-16  Noam Postavsky  <address@hidden>
+
+       Clarify condition-case docstring
+
+       * src/eval.c (Fcondition_case): Note that it handles non-error symbols
+       too.
+
+2018-09-16  Pierre Lorenzon  <address@hidden>  (tiny change)
+
+       Update pconf for compile.el mode-line-process changes
+
+       * lisp/cedet/ede/pconf.el (ede-proj-configure-synchronize): Check the
+       first list element of mode-line-process (Bug#32564).
+
+2018-09-16  Paul Eggert  <address@hidden>
+
+       * src/thread.h: Do not include systime.h; no longer needed.
+
+2018-09-16  Paul Eggert  <address@hidden>
+
+       Don’t assume obsolescent setitimer function
+
+       * src/atimer.c (start_atimer, debug_timer_callback):
+       Don’t assume support for setitimer merely because struct
+       itimerspec works.  POSIX no longer requires support for the
+       obsolescent setitimer function.
+
+2018-09-15  Paul Eggert  <address@hidden>
+
+       Simplify get_up_time on GNU/Linux
+
+       * src/sysdep.c (get_up_time) [GNU_LINUX && HAVE_LONG_LONG_INT]:
+       Omit unused locals.
+
+2018-09-15  Paul Eggert  <address@hidden>
+
+       Go back to old method for nnmaildir names
+
+       * lisp/gnus/nnmaildir.el (nnmaildir-request-accept-article):
+       Omit leading 0s after "M" in file name.
+       Problem reported by Glenn Morris in:
+               https://lists.gnu.org/r/emacs-devel/2018-09/msg00660.html
+
+2018-09-15  Paul Eggert  <address@hidden>
+
+       Fix icalendar tests to match new behavior
+
+       * test/lisp/calendar/icalendar-tests.el (icalendar--create-uid):
+       Do not intrude into or rely upon undocumented internal
+       implementation details of icalendar--create-uid.
+       Problem reported by Glenn Morris in:
+       https://lists.gnu.org/r/emacs-devel/2018-09/msg00660.html
+
+2018-09-15  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       e133b63 (origin/emacs-26) Avoid adverse side effects of fixing bug#21824
+       cc8f334 Document changes called out in NEWS
+       20ecc52 ; * etc/NEWS: Document recent change in 'thing-at-point'.
+       1fc5283 ; INSTALL: Fix a typo in the last commit.
+       24f240d Tiny doc updates re yum/dnf etc
+       41c2d25 Remove unused variable
+       1e3b3fa Fix (thing-at-point 'list) regression (Bug#31772)
+       219893a Clarify meaning of '*'
+       41cdda2 * etc/PROBLEMS: Document Ubuntu 16.04 issue.
+       1c22f03 Increase default value for imenu-auto-rescan-maxout
+       ee84389 Improve recent change to ELisp manual
+       ff374e4 * doc/lispref/display.texi (SVG Images): Improve wording.
+       3a0caf6 * doc/lispref/display.texi (SVG Images): Fix a typo.  (Bug#32...
+
+       Conflicts:
+               doc/lispref/lists.texi
+               etc/NEWS
+
+2018-09-15  Noam Postavsky  <address@hidden>
+
+       Don't call modification hooks unprepared
+
+       Inhibit modification hooks when performing message coalescing because
+       in that case, we aren't doing the necessary preparation for running
+       modification hooks (i.e., we pass PREPARE=false for the insert_1_both
+       and del_range_both calls).  See also Bug#30823 and Bug#21824.
+       * src/xdisp.c (message_dolog): Let-bind inhibit-modification-hooks
+       to t around del_range_both calls.
+
+2018-09-15  Wenjamin Petrenko  <address@hidden>  (tiny change)
+
+       Make 'filesets-save-config' save filesets added by 'filesets-add-buffer'
+
+       * lisp/filesets.el (filesets-set-config): Use 'customize-set-variable'
+       so that filesets are saved by 'customize-save-customized' in
+       'filesets-save-config'.  (Bug#20630)
+
+2018-09-14  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/idlw-shell.el: Use lexical-binding
+
+       (idlwave-shell-source-frame): Remove unused var 'frame'.
+       (idlwave-shell): Remove unused arg 'quick'.
+       (idlwave-shell-complete-filename, 
idlwave-shell-edit-default-command-line)
+       (idlwave-shell-retall, idlwave-shell-closeall): Remove unused arg 'arg'.
+       (idlwave-shell-move-to-bp): Remove unused var 'got-bp'.
+       (zmacs-regions): Declare.
+       (idlwave-shell-update-bp-overlays): Remove unused var 'win'.
+       (idlwave-shell-delete-expression-overlay)
+       (idlwave-shell-mouse-nop): Delete function.  Use 'ignore' instead.
+       (idlwave-shell-delete-output-overlay): Ignore 'ignore' commands rather
+       than idlwave-shell-mouse-nop commands.
+       (idlwave-shell-mode-map, idlwave-shell-electric-debug-mode-map):
+       Move (part of) the initialization into the declaration.
+       (idlwave-shell-electric-debug-mode-on-hook)
+       (idlwave-shell-electric-debug-mode-off-hook): Keep them empty, move
+       code into the minor mode's definition instead.
+       (idlwave-shell-electric-debug-mode): Don't use advice needlessly.
+
+2018-09-14  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/ada-mode.el (comment-region): Avoid defadvice
+
+       Don't load 'advice' if it won't be used!
+
+2018-09-14  Stefan Monnier  <address@hidden>
+
+       * lisp/eshell/em-dirs.el (eshell-expand-multiple-dots): Avoid defadvice.
+
+2018-09-14  Stefan Monnier  <address@hidden>
+
+       * lisp/mail/feedmail.el: Use lexical-binding
+
+       (feedmail-queue-buffer-file-name): Improve advising example.
+       (feedmail-vm-mail-mode): Improve auto-mode-alist example.
+       (feedmail-queue-runner-prompt): Remove unused function.
+
+2018-09-14  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/js.el (js--fill-c-advice): New function
+
+       (c-forward-sws, c-backward-sws, c-beginning-of-macro): Use it.
+       (js-fill-paragraph): Rename from js-c-fill-paragraph.
+
+2018-09-13  Paul Eggert  <address@hidden>
+
+       Simplify use of timestamps
+
+       * lisp/calendar/icalendar.el (icalendar--create-uid):
+       * lisp/gnus/nnmaildir.el (nnmaildir-request-accept-article):
+       Simplify by using format-time-string.
+       * lisp/gnus/nnmaildir.el (nnmaildir--scan):
+       Simplify by using float-time and time-less-p.
+
+2018-09-13  Paul Eggert  <address@hidden>
+
+       Fix (floor 54043195528445955 3.0) bug
+
+       * src/floatfns.c (rounding_driver): Fix rounding error
+       that can occur when both args have values exactly
+       representable as integers but at least one arg is a float.
+       * test/src/floatfns-tests.el (big-round): New test.
+
+2018-09-13  Stephen Berman  <address@hidden>
+
+       Fix wdired handling of symlinks when restoring filename property
+
+       * lisp/wdired.el (wdired--restore-dired-filename-prop): Use
+       dired-permission-flags-regexp instead of dired-filename to test
+       whether the file is a symlink, since calling file-symlink-p on the
+       latter may fail in wdired-mode (bug#32673).
+
+2018-09-12  Stefan Monnier  <address@hidden>
+
+       (viper-read-key, viper-read-key-sequence): Remove
+
+       Ever since the time-dependent ESC handling was moved to 
input-decode-map,
+       viper-read-key-sequence has been obsolete.  Clean up accordingly.
+
+       * lisp/emulation/viper-keym.el: Use lexical-binding.
+       (viper-overriding-map): Remove.
+
+       * lisp/emulation/viper-macs.el: Use lexical-binding and 'read-key'.
+
+       * lisp/emulation/viper-util.el: Use lexical-binding.
+       (viper-read-key, viper-read-key-sequence): Remove.
+
+       * lisp/emulation/viper.el (viper-non-hook-settings): Remove obsolete 
advice.
+
+2018-09-12  Katsumi Yamaoka  <address@hidden>
+
+       No need to run gnus-article-highlight (bug#32706)
+
+       * lisp/gnus/deuglify.el (gnus-outlook-display-article-buffer):
+       No need to run gnus-article-highlight (bug#32706).
+
+2018-09-12  Juri Linkov  <address@hidden>
+
+       * lisp/vc/vc-git.el (vc-git-grep): Set dir to default-directory
+
+       when it's not available (like it's implemented in lgrep/rgrep)
+       to prevent error in case of `C-u C-u vc-git-grep'.
+
+2018-09-12  Juri Linkov  <address@hidden>
+
+       * lisp/dired-x.el (dired-jump): Support archive-subfile-mode
+
+       exactly like tar-subfile-mode is already supported.
+
+2018-09-12  Juri Linkov  <address@hidden>
+
+       * lisp/simple.el (next-error-no-select): Set 
display-buffer-overriding-action
+
+       to display-buffer-reuse-window (bug#32607).
+
+2018-09-12  Katsumi Yamaoka  <address@hidden>
+
+       Don't highlight article if gnus-visual-p is nil (bug#32706)
+
+       * lisp/gnus/deuglify.el (gnus-outlook-display-article-buffer):
+       Don't highlight article if gnus-visual-p is nil (bug#32706).
+
+2018-09-11  Filipp Gunbin  <address@hidden>
+
+       Fix incorrect spelling of dabbrev-ignored-buffer-regexps in docstrings.
+
+       * lisp/dabbrev.el (dabbrev-check-all-buffers, dabbrev-expand): Fix 
docstrings.
+
+2018-09-11  Paul Eggert  <address@hidden>
+
+       Minor rounding_driver simplification
+
+       * src/floatfns.c (rounding_driver): Omit last arg, which is
+       now unused.  All callers changed.
+
+       Signal overflow-error for bignum overflow
+
+2018-09-11  Paul Eggert  <address@hidden>
+
+       Fix (round 1e+INF) core dump
+
+       * src/bignum.c (double_to_integer): Signal an error
+       if D cannot be converted, instead of dumping core.
+       * test/src/floatfns-tests.el (special-round): New test.
+
+2018-09-11  Paul Eggert  <address@hidden>
+
+       Use overflow-error for bignum overflow
+
+       This better corresponds to what emacs-26 did in the
+       rare cases where it checked for integer overflow.
+       * src/alloc.c (range_error): Remove.
+       All uses changed to overflow_error.
+       * src/eval.c (overflow_error): New function.
+
+2018-09-11  Michael Albinus  <address@hidden>
+
+       Precise Secret Service API in auth.texi (Bug#29575)
+
+       * doc/misc/auth.texi (Secret Service API): Item labels are not
+       unique.  Document this.  (Bug#29575)
+
+2018-09-10  Paul Eggert  <address@hidden>
+
+       Adjust to TIMESPEC_HZ renaming
+
+       Adjust to lib/timespec.h’s renaming of TIMESPEC_RESOLUTION and
+       LOG10_TIMESPEC_RESOLUTION to TIMESPEC_HZ and
+       LOG10_TIMESPEC_HZ.  The old names were misnomers.
+       All uses changed.
+
+2018-09-10  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2018-09-10 timespec: fix resolution confusion
+       2018-09-09 mktime: simplify in prep for glibc merge
+       2018-09-07 intprops: minor clarification of code
+       2018-09-06 stddef: Override max_align_t on NetBSD 8.0/x86
+       2018-09-06 fcntl: Fix F_DUPFD_CLOEXEC behaviour on Haiku
+       2018-09-06 strtoll, strtoull: Rely on limits-h module
+       2018-09-06 limits-h: Provide numerical limits macros
+       2018-09-06 fcntl: Don't access nonexistent optional argument
+       2018-09-02 mktime: fix unlikely race+overflow bug
+       2018-08-31 mktime, timegm: simplify glibc time64_t
+       2018-08-31 mktime, timegm: simplify merge to glibc
+       * build-aux/config.guess, build-aux/config.sub:
+       * lib/dtotimespec.c, lib/fcntl.c, lib/intprops.h:
+       * lib/limits.in.h, lib/mktime-internal.h, lib/mktime.c:
+       * lib/stat-time.h, lib/strtol.c, lib/timegm.c:
+       * lib/timespec-add.c, lib/timespec-sub.c, lib/timespec.h:
+       * lib/utimens.c, m4/limits-h.m4, m4/stddef_h.m4:
+       Copy from Gnulib.
+
+2018-09-10  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       7efcdf7 (origin/emacs-26) Clarify completion text in the ELisp manual
+       30b0b0e Fix handling of abbreviated control command in gdb-mi.el
+       5cf282d Clarify documentation of functions reading character events
+       96281c5 Record :version for built-in variables while dumping
+       82160cf * src/process.c (connect_network_socket): Fix memory leak.  (...
+       6c616e4 * Makefile.in (appdatadir): Use the non-obsolete location "me...
+       9618e16 Better fix for bug#32550
+       30d94e4 Fix Bug#32550
+       57bcdc7 Don't call XGetGeometry for frames without outer X window (Bu...
+       82fc6b6 * lisp/calculator.el: Fix doc typo.
+       ddc7c64 Standardize calc bug reporting instructions
+
+       Conflicts:
+               lisp/cus-start.el
+
+2018-09-10  Glenn Morris  <address@hidden>
+
+       * lisp/thread.el: Remove more useless runtime requires.
+
+2018-09-10  Glenn Morris  <address@hidden>
+
+       Remove useless requires of subr-x at runtime
+
+       * lisp/thread.el, lisp/net/nsm.el, lisp/erc/erc.el:
+       Don't require subr-x at runtime.
+
+2018-09-10  Karl Fogel  <address@hidden>
+
+       Fix build error: use string :version in defcustom
+
+       * lisp/textmodes/flyspell.el (flyspell-case-fold-duplications): Use a
+         string value for the :version keyword to `defcustom'.  Otherwise,
+         building Emacs will fail with an error like this:
+
+           Scanning ./textmodes for custom
+           Scanning ./url for custom
+           Scanning ./vc for custom
+           Generating ./cus-load.el...
+           Version must be a string
+           make[2]: *** [Makefile:152: cus-load.el] Error 255
+
+       This follows up to Reuben Thomas's commit 61f3a4b4fc of 10 Sep 2018.
+
+2018-09-10  Paul Eggert  <address@hidden>
+
+       Fix misleading name ‘double_to_bignum’
+
+       * src/bignum.c (double_to_integer): Rename from double_to_bignum,
+       since the result is not necessarily a bignum.  All uses changed.
+
+2018-09-10  Paul Eggert  <address@hidden>
+
+       * src/charset.c (Fencode_char): Tweak comment.
+
+2018-09-10  Reuben Thomas  <address@hidden>
+
+       Add flyspell option to ignore duplicates of different case
+
+       * lisp/textmodes/flyspell.el (flyspell-case-fold-duplications): Add
+         option.
+
+2018-09-10  Eli Zaretskii  <address@hidden>
+
+       Avoid compiler warnings due to get_proc_addr
+
+       * src/w32common.h (get_proc_addr): Add prototype, to shut up
+       GCC compilation warning.  Reported by Martin Rudalics
+       <address@hidden>.
+
+2018-09-10  Stefan Monnier  <address@hidden>
+
+       * src/charset.c (Fencode_char): Explain when/why bignums are used
+
+2018-09-10  Martin Rudalics  <address@hidden>
+
+       Fix last change of 'run_window_size_change_functions'
+
+       * src/window.c (run_window_size_change_functions): Fix two
+       type mixups in last change.  Reported by Michael Albinus
+       <address@hidden> on emacs-devel.
+
+2018-09-10  Martin Rudalics  <address@hidden>
+
+       Handle buffer-local 'window-size-change-functions' specially (Bug#32637)
+
+       * src/window.c (run_window_size_change_functions): Run a
+       buffer-local value once per each frame and only if at least
+       one window showing the buffer on that frame has changed its
+       size.  (Bug#32637)
+       * doc/lispref/windows.texi (Window Hooks): Describe new
+       behavior of buffer-local 'window-size-change-functions'.
+
+2018-09-09  Gemini Lasswell  <address@hidden>
+
+       Merge branch 'scratch/list-threads'
+
+2018-09-09  Gemini Lasswell  <address@hidden>
+
+       Use thread-live-p instead of obsolete thread-alive-p
+
+       * lisp/thread.el (thread-list--get-status)
+       (thread-list--send-signal, thread-list-pop-to-backtrace)
+       (thread-list-backtrace--revert-hook-function)
+       (thread-list-backtrace--insert-header): Use thread-live-p instead of
+       thread-alive-p.
+
+2018-09-09  Gemini Lasswell  <address@hidden>
+
+       Improve documentation of thread list buffer
+
+       * doc/lispref/threads.texi (The Thread List): Cross-reference
+       'Basic Thread Functions'.  Use defvar for thread-list-refresh-seconds.
+       Improve descriptions of the backtrace and signal commands.
+
+2018-09-09  Gemini Lasswell  <address@hidden>
+
+       Add tests for list-threads and the *Threads* buffer
+
+       * test/lisp/thread-tests.el: New file.
+
+2018-09-09  Gemini Lasswell  <address@hidden>
+
+       Add check in list-threads for --without-threads configuration
+
+       * lisp/thread.el (list-threads): Signal an error if the Emacs 
configuration
+       doesn't have threads.
+
+2018-09-09  Gemini Lasswell  <address@hidden>
+
+       Document list-threads and its buffer
+
+       * doc/lispref/threads.texi (Threads): Add menu item.
+       (The Thread List): New node.
+       * doc/lispref/elisp.texi (Top): Add menu item.
+
+2018-09-09  Gemini Lasswell  <address@hidden>
+
+       Show backtraces of threads from thread list buffer
+
+       * src/eval.c (backtrace_thread_p, backtrace_thread_top)
+       (backtrace_thread_next, Fbacktrace_frames_from_thread): New functions.
+       * lisp/thread.el (thread-list-mode-map): Add keybinding and
+       menu item for 'thread-list-pop-to-backtrace'.
+       (thread-list-mode): Make "Thread Name" column wide enough
+       for the result of printing a thread with no name with 'prin1'.
+       (thread-list--get-entries): Use 'thread-list--name'.
+       (thread-list--send-signal): Remove unnecessary calls to 'threadp'.
+       (thread-list-backtrace--thread): New variable.
+       (thread-list-pop-to-backtrace): New command.
+       (thread-list-backtrace--revert-hook-function)
+       (thread-list--make-backtrace-frame)
+       (thread-list-backtrace--insert-header, thread-list--name): New
+       functions.
+
+2018-09-09  Gemini Lasswell  <address@hidden>
+
+       Make small fixes to Edebug and debugger documentation
+
+       * doc/lispref/elisp.texi (Top): Update menu.
+       * doc/lispref/edebug.texi (Edebug Misc): Index
+       edebug-backtrace-show-instrumentation and
+       edebug-backtrace-hide-instrumentation.
+
+2018-09-09  Gemini Lasswell  <address@hidden>
+
+       Make list-threads refresh the *Threads* buffer if it already exists
+
+       * lisp/thread.el (list-threads): Call revert-buffer instead of waiting
+       for the timer function to do it.
+
+2018-09-09  Gemini Lasswell  <address@hidden>
+
+       Improve docstrings of thread-list functions
+
+       * lisp/thread.el (thread-list--timer-func): Change
+       argument from 'buf' to 'buffer'.
+       (thread-list--get-entries, thread-list--get-status): Improve
+       docstring.
+       (thread-list--send-signal): Change argument from 'sgnl' to
+       'signal'.  Tell the user when the thread is no longer alive.
+
+2018-09-09  Gemini Lasswell  <address@hidden>
+
+       Make lisp/thread.el the new home for thread-related Lisp functions
+
+       * lisp/emacs-lisp/thread-list.el: Remove.
+       * lisp/emacs-lisp/thread.el: Remove.
+       * lisp/thread.el: New file.
+
+2018-09-09  Gemini Lasswell  <address@hidden>
+
+       Add list-threads command and thread-list-mode
+
+       * lisp/emacs-lisp/thread-list.el: New file.
+
+2018-09-08  Eli Zaretskii  <address@hidden>
+
+       Fix documentation for conversion to bignums
+
+       * src/xselect.c (selection_data_to_lisp_data):
+       * src/w32fns.c (Fw32_read_registry):
+       * src/process.c (Fprocess_id):
+       * src/font.c (Ffont_variation_glyphs, Finternal_char_font):
+       * src/fns.c (Fsafe_length):
+       * src/editfns.c (Fuser_uid, Fuser_real_uid, Fgroup_gid)
+       (Fgroup_real_gid, Femacs_pid):
+       * src/dired.c (Ffile_attributes):
+       * src/charset.c (Fencode_char): Update commentary and doc
+       strings for recent changes that produce bignums where
+       previously cons cells of integers were produced.
+
+2018-09-07  Paul Eggert  <address@hidden>
+
+       * src/puresize.h (BASE_PURESIZE): Bump to 2000000.
+
+       Needed on Fedora 28 x86.
+
+2018-09-07  Paul Eggert  <address@hidden>
+
+       One more GC-aligned struct
+
+       * src/lisp.h (struct Lisp_Sub_Char_Table):
+       Mark this with GCALIGNED_STRUCT, too.
+
+2018-09-07  Paul Eggert  <address@hidden>
+
+       Fix overenthusiastic header size check
+
+       Problem reported by Eli Zaretskii in:
+       https://lists.gnu.org/r/emacs-devel/2018-09/msg00222.html
+       * doc/lispref/internals.texi (Garbage Collection):
+       Document vector sizes and slot counts more accurately.
+       * src/lisp.h: Omit header_size sanity check that was too picky.
+       Add some less-picky checks.
+
+2018-09-07  Eli Zaretskii  <address@hidden>
+
+       Read Windows OS info for report-emacs-bug from Registry
+
+       * lisp/w32-fns.el (w32--os-description): New function.
+       * lisp/mail/emacsbug.el (report-emacs-bug--os-description):
+       Use 'w32--os-description' instead of launching the
+       'systeminfo' program, which can be very slow, and is also
+       missing on versions of Windows before XP Professional.
+
+2018-09-06  Paul Eggert  <address@hidden>
+
+       Shrink pseudovectors a bit
+
+       sizeof (struct Lisp_Marker) was 32 on x86, where 24 would do.
+       Problem noted by Stefan Monnier in:
+       https://lists.gnu.org/r/emacs-devel/2018-09/msg00165.html
+       * src/bignum.h (struct Lisp_Bignum):
+       * src/frame.h (struct frame):
+       * src/lisp.h (struct Lisp_Vector, struct Lisp_Bool_Vector)
+       (struct Lisp_Char_Table, struct Lisp_Hash_Table)
+       (struct Lisp_Marker, struct Lisp_Overlay)
+       (struct Lisp_Misc_Ptr, struct Lisp_User_Ptr)
+       (struct Lisp_Finalizer, struct Lisp_Float)
+       (struct Lisp_Module_Function):
+       * src/process.h (struct Lisp_Process):
+       * src/termhooks.h (struct terminal):
+       * src/thread.h (struct thread_state, struct Lisp_Mutex)
+       (struct Lisp_CondVar):
+       * src/window.c (struct save_window_data):
+       * src/window.h (struct window):
+       * src/xterm.h (struct scroll_bar):
+       * src/xwidget.h (struct xwidget, struct xwidget_view):
+       Add GCALIGNED_STRUCT attribute.
+       * src/lisp.h (GCALIGNED_UNION_MEMBER): Renamed from GCALIGNED_UNION.
+       All uses changed.
+       (GCALIGNED_STRUCT_MEMBER, GCALIGNED_STRUCT, GCALIGNED): New macros.
+       All uses of open-coded GCALIGNED changed to use GCALIGNED.
+       (union vectorlike_header): No longer GC-aligned.
+       (PSEUDOVECSIZE): Yield 0 for pseudovectors without Lisp
+       objects that place a member before where the first Lisp object
+       member would be.
+
+2018-09-06  Michael Albinus  <address@hidden>
+
+       Fix Bug#31704
+
+       * lisp/eshell/esh-proc.el (eshell-gather-process-output): Do not
+       let `expand-file-name' prefix remote file names with MS Windows
+       volume letter.
+
+       * lisp/net/tramp.el (tramp-eshell-directory-change):
+       Use `path-separator' as it does eshell.  (Bug#31704)
+
+2018-09-06  Michael Albinus  <address@hidden>
+
+       * test/lisp/autorevert-tests.el
+
+       (auto-revert-test02-auto-revert-deleted-file): Extend test.
+
+2018-09-05  Paul Eggert  <address@hidden>
+
+       Fix timer.el minor rounding error
+
+       * lisp/emacs-lisp/timer.el (timer-next-integral-multiple-of-time):
+       Fix rounding error by using integers rather than floats.
+       * test/lisp/emacs-lisp/timer-tests.el (timer-test-multiple-of-time):
+       New test.
+
+2018-09-05  Stephen Gildea  <address@hidden>
+
+       Do not call mh-next-msg from mh-junk-process-* fns
+
+       * lisp/mh-e/mh-junk.el (mh-junk-process-blacklist, 
mh-junk-process-whitelist): Do
+       not call mh-next-msg.  Now that these functions are called from
+       mh-execute-commands, they should not change the current message pointer.
+       The calls to mh-next-msg are probably left over from when blacklist and
+       whitelist message processing was done immediately.
+
+2018-09-05  Paul Eggert  <address@hidden>
+
+       Improve (round FIXNUM FIXNUM) performance
+
+       * src/floatfns.c (rounding_driver):
+       New arg fixnum_divide.  All callers changed.
+       (ceiling2, floor2, truncate2, round2): New functions.
+       Not that new, actually; these are essentially taken from Emacs 26.
+       (Fceiling, Ffloor, Fround, Ftruncate): Use them.
+
+2018-09-04  Paul Eggert  <address@hidden>
+
+       Fix format-time-string bignum bug
+
+       The problem can occur on 32-bit platforms with current timestamps.
+       * src/editfns.c (disassemble_lisp_time, decode_time_components):
+       Support seconds counts that are bignums.
+       * test/src/editfns-tests.el (editfns-tests--have-leap-seconds):
+       New function.
+       (format-time-string-with-bignum-on-32-bit): New test.
+
+2018-09-04  Paul Eggert  <address@hidden>
+
+       Simplify bignum->intmax conversion
+
+       * src/lisp.h (integer_to_intmax, integer_to_uintmax): New functions.
+       * src/data.c (cons_to_unsigned, cons_to_signed)
+       (arith_driver):
+       * src/dbusbind.c (xd_extract_signed, xd_extract_unsigned):
+       * src/dispnew.c (sit_for):
+       * src/editfns.c (styled_format):
+       * src/emacs-module.c (module_extract_integer):
+       * src/fileio.c (file_offset):
+       * src/font.c (font_unparse_xlfd, Fopen_font):
+       * src/xdisp.c (calc_line_height_property):
+       * src/process.c (handle_child_signal):
+
+2018-09-04  Federico Tedin  <address@hidden>
+
+       Add variable vc-git-grep-template
+
+       * lisp/vc/vc-git.el (vc-git-grep-template): New variable, allows
+       changing the default arguments passed to git-grep when using
+       'vc-git-grep'.
+       * etc/NEWS: Mention 'vc-git-grep-template'.  (Bug#32549)
+
+2018-09-04  Noam Postavsky  <address@hidden>
+
+       Handle non-error signals in emacsclient --eval (Bug#10989)
+
+       * lisp/server.el (server-process-filter): Handle any signal, not just
+       errors.
+
+2018-09-04  Noam Postavsky  <address@hidden>
+
+       Allow t as a catch-all condition-case handler (Bug#24618)
+
+       * src/eval.c (find_handler_clause): Accept a handler of t as always
+       matching.
+       (Fcondition_case):
+       * doc/lispref/control.texi (Handling Errors): Document this.
+       * etc/NEWS: Announce it.
+
+2018-09-04  Paul Eggert  <address@hidden>
+
+       Fix (round FLOAT BIGNUM) bug
+
+       * src/floatfns.c (rounding_driver): Fix bug when one
+       argument is a float and the other is a bignum.
+       * test/src/floatfns-tests.el (bignum-round): Test for the bug.
+
+2018-09-04  Paul Eggert  <address@hidden>
+
+       Tweak nthcdr for bignum efficiency
+
+       * src/fns.c (Fnthcdr): Use mpz_tdiv_ui and mpz_tdiv_r
+       instead of mpz_mod_ui and mpz_mod, as they are more efficient.
+       Suggested by Pip Cet in:
+       https://lists.gnu.org/r/emacs-devel/2018-09/msg00073.html
+
+2018-09-04  Paul Eggert  <address@hidden>
+
+       Fix bignum initialization
+
+       Problem reported by Andy Moreton in:
+       https://lists.gnu.org/r/emacs-devel/2018-09/msg00072.html
+       and crystal-ball diagnosis by Eli Zaretskii in:
+       https://lists.gnu.org/r/emacs-devel/2018-09/msg00075.html
+       * src/alloc.c (xrealloc_for_gmp, xfree_for_gmp): Move to bignum.c.
+       (init_alloc): Move bignum initialization to init_bignum.
+       * src/bignum.c (init_bignum): Rename from init_bignum_once.
+       All users changed.
+       * src/emacs.c (main): Call init_bignum after init_alloc,
+       instead of calling init_bignum_once after init_bignum.
+
+2018-09-03  Paul Eggert  <address@hidden>
+
+       Speed up (+ 2 2) by a factor of 10
+
+       Improve arithmetic performance by avoiding bignums until needed.
+       Also, simplify bignum memory management, fixing some unlikely leaks.
+       This patch improved the performance of (+ 2 2) by a factor of ten
+       on a simple microbenchmark computing (+ x 2), byte-compiled,
+       with x a local variable initialized to 2 via means the byte
+       compiler could not predict: performance improved from 135 to 13 ns.
+       The platform was Fedora 28 x86-64, AMD Phenom II X4 910e.
+       Performance also improved 0.6% on ‘make compile-always’.
+       * src/bignum.c (init_bignum_once): New function.
+       * src/emacs.c (main): Use it.
+       * src/bignum.c (mpz): New global var.
+       (make_integer_mpz): Rename from make_integer.  All uses changed.
+       * src/bignum.c (double_to_bignum, make_bignum_bits)
+       (make_bignum, make_bigint, make_biguint, make_integer_mpz):
+       * src/data.c (bignum_arith_driver, Frem, Flogcount, Fash)
+       (expt_integer, Fadd1, Fsub1, Flognot):
+       * src/floatfns.c (Fabs, rounding_driver, rounddiv_q):
+       * src/fns.c (Fnthcdr):
+       Use mpz rather than mpz_initting and mpz_clearing private
+       temporaries.
+       * src/bignum.h (bignum_integer): New function.
+       * src/data.c (Frem, Fmod, Fash, expt_integer):
+       * src/floatfns.c (rounding_driver):
+       Use it to simplify code.
+       * src/data.c (FIXNUMS_FIT_IN_LONG, free_mpz_value):
+       Remove.  All uses removed.
+       (floating_point_op): New function.
+       (floatop_arith_driver): New function, with much of the guts
+       of the old float_arith_driver.
+       (float_arith_driver): Use it.
+       (floatop_arith_driver, arith_driver):
+       Simplify by assuming NARGS is at least 2.
+       All callers changed.
+       (float_arith_driver):
+       New arg, containing the partly converted value of the next arg.
+       Reorder args for consistency.  All uses changed.
+       (bignum_arith_driver): New function.
+       (arith_driver): Use it.  Do fixnum-only integer calculations
+       in intmax_t instead of mpz_t, when they fit.
+       Break out mpz_t calculations into bignum_arith_driver.
+       (Fquo): Use floatop_arith_driver instead of float_arith_driver,
+       since the op is known to be valid.
+       (Flogcount, Fash): Simplify by coalescing bignum and fixnum code.
+       (Fadd1, Fsub1): Simplify by using make_int.
+
+2018-09-03  Stephen Berman  <address@hidden>
+
+       Make todo-show work when adding and deleting a new todo file
+
+       * lisp/calendar/todo-mode.el (todo-add-file): Since
+       todo-current-todo-file must be set before calling todo-show, but
+       the buffer is not yet in todo-mode, which makes it buffer local,
+       explicitly set it buffer locally (bug#32627).
+
+       * test/lisp/calendar/todo-mode-tests.el (todo-test--add-file)
+       (todo-test--delete-file): New functions.
+       (todo-test-add-and-delete-file): New test.
+
+2018-09-01  Stefan Monnier  <address@hidden>
+
+       * src/lisp.h: Add explanation in a comment
+
+2018-09-01  Charles A. Roelli  <address@hidden>
+
+       * src/process.c (send_process): Fix typo in commentary.
+
+2018-08-31  Paul Eggert  <address@hidden>
+
+       Rename Emacs-specific INFINITY constants
+
+       Although these constants were not erroneous, as they were
+       used only in modules that did not include <math.h>, it's
+       less confusing to names that cannot be confused with
+       the now-standard INFINITY macro.
+       * src/dispextern.h (SCROLL_INFINITY): New constant.
+       * src/dispnew.c, src/scroll.c (INFINITY):
+       Remove.  All uses replaced with SCROLL_INFINITY.
+       * src/process.c (wait_reading_process_output):
+       Rename private constant.
+
+2018-08-31  Paul Eggert  <address@hidden>
+
+       Port better to non-IEEE platforms
+
+       * src/lread.c (string_to_number) [!IEEE_FLOATING_POINT]:
+       Do not use the INFINITY macro, since the C standard requires
+       it to provoke a compile-time error on platforms that do not
+       support infinities.
+
+2018-08-31  Michael Albinus  <address@hidden>
+
+       Mark thread-alive-p as obsolete
+
+       * etc/NEWS (thread-alive-p):
+       * lisp/emacs-lisp/thread.el (thread-alive-p): Mark it as obsolete.
+
+       * test/src/thread-tests.el (threads-join-error)
+       (threads-signal-main-thread): Use `thread-live-p'.
+
+2018-08-31  Michael Albinus  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       ac7936cb8f Rename thread-alive-p to thread-live-p
+       3d09d533d1 rcirc: Document /reconnect as a built-in command (Bug#29656)
+       a1e615618d * test/lisp/calc/calc-tests.el (calc-imaginary-i): New test.
+
+2018-08-31  Paul Eggert  <address@hidden>
+
+       Several fixes for formatting bignums
+
+       * src/bignum.c: Include stdlib.h, for abs.
+       (bignum_bufsize, bignum_to_c_string): New functions.
+       * src/bignum.c (bignum_to_string):
+       * src/print.c (print_vectorlike): Use them.
+       * src/editfns.c (styled_format): Instead of having a separate
+       buffer for sprintf (which does not work for bignums), just append
+       to the main buffer.  When formatting bignums, add support for the
+       standard integer flags -, #, 0, + and space.  Fix some comments.
+       Capitalize properly when formatting bignums with %X.  Use
+       functions like c_isdigit rather than reinventing the wheel.
+       Simplify computation of excess precision.
+       * src/print.c: Do not include bignum.h; no longer needed.
+       (print_vectorlike): Avoid recalculating string length.
+       * test/src/editfns-tests.el (format-bignum):
+       Test some of the above fixes.
+
+2018-08-31  Paul Eggert  <address@hidden>
+
+       * src/alloc.c (sweep_vectors): Simplify.
+
+2018-08-31  Michael Albinus  <address@hidden>
+
+       Construct a thread_event only if THREADS_ENABLED
+
+       * src/thread.c (Fthread_signal): Construct a thread_event only if
+       THREADS_ENABLED.
+
+2018-08-30  Paul Eggert  <address@hidden>
+
+       Fix bignum FIXME in emacs-module.c
+
+       * src/emacs-module.c: Do not include bignum.h; no longer needed.
+       (module_extract_integer): Use bignum_to_intmax to avoid
+       incorrectly signaling overflow on platforms where intmax_t
+       is wider than long int.
+
+2018-08-30  Juri Linkov  <address@hidden>
+
+       * lisp/vc/vc.el (vc-log-internal-common): Reuse the buffer object.
+
+       (Bug#32475)
+
+2018-08-30  Juri Linkov  <address@hidden>
+
+       * lisp/gnus/mm-view.el (mm-display-inline-fontify): Carry diff-mode 
overlays
+
+       to inline MIME attachments from the temp buffer along with text 
properties.
+       (Bug#32474)
+
+2018-08-30  Paul Eggert  <address@hidden>
+
+       Fix off-by-1 typo in recent bignum changes
+
+       Problem reported by Yuri D’Elia in:
+       https://lists.gnu.org/r/emacs-devel/2018-08/msg00977.html
+       and crucial clue provided by Michael Heerdegen in:
+       https://lists.gnu.org/r/emacs-devel/2018-08/msg01043.html
+       * src/font.c (font_unparse_xlfd): Fix off-by-1 typo.
+
+2018-08-30  Michael Albinus  <address@hidden>
+
+       Handle thread-signal towards the main thread  (Bug#32502)
+
+       * doc/lispref/threads.texi (Basic Thread Functions):
+       * etc/NEWS: Document thread-signal towards the main thread.
+
+       * lisp/emacs-lisp/thread.el: New package.
+
+       * src/keyboard.c (read_char): Check for Qthread_event.
+       (kbd_buffer_get_event, make_lispy_event): Handle THREAD_EVENT.
+       (syms_of_keyboard): Declare Qthread_event.
+       (keys_of_keyboard): Add thread-handle-event to special-event-map.
+
+       * src/termhooks.h (enum event_kind): Add THREAD_EVENT.
+
+       * src/thread.c: Include "keyboard.h".
+       (poll_suppress_count) Don't declare extern.
+       (Fthread_signal): Raise event if THREAD is the main thread.  (Bug#32502)
+
+       * test/src/thread-tests.el (thread): Require it.
+       (threads-signal-main-thread): New test.
+
+2018-08-30  Glenn Morris  <address@hidden>
+
+       * configure.ac: Fix goofs in my recent ImageMagick change.
+
+2018-08-30  Paul Eggert  <address@hidden>
+
+       Pacify -Wdouble-promotion in ImageMagick code
+
+       * src/image.c (imagemagick_load_image): Use double division, and
+       eliminate a cast.  This avoids a -Wdouble-promotion warning with
+       GCC 7.3 on Ubuntu 18.04.
+
+2018-08-29  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       2670cbf (origin/emacs-26) ; * configure.ac: Remove outdated comment (...
+       3b71bef admin.el: respect environment settings for makeinfo etc
+       3764ab4 * etc/PROBLEMS: New entry about GTK+ 3 crash with some X serv...
+       9d61344 Index profiler commands in elisp manual
+       f088817 Fix math-imaginary-i check
+       fca935e ; Let pre-commit git hook check merged in changes (Bug#29197)
+       fe06fcc Avoid infinite hscrolling loops when line numbers are displayed
+       63e59c8 Avoid crashes in malformed defvar
+       785682c * configure.ac (emacs_config_features): Add GLIB, XDBE, XIM.
+       2695b7e * configure.ac: Doc fixes related to --with-xim.
+       d0d162c Small checkdoc quoting fix (bug#32546)
+
+       Conflicts:
+               configure.ac
+
+2018-08-29  Stefan Monnier  <address@hidden>
+
+       * src/keymap.c: Make better use of access_keymap's functionality
+
+       (Flookup_key): Allow `keymap' to be a list of keymaps.
+       (Fcommand_remapping, Fkey_binding): Simplify accordingly.
+       (shadow_lookup, describe_map_tree): Simplify.
+
+2018-08-29  Michael Albinus  <address@hidden>
+
+       Improve tramp-convert-file-attributes backward compatibility
+
+       * lisp/net/tramp-sh.el (tramp-convert-file-attributes):
+       Use `seconds-to-time' for {access, modification, status change}
+       time.  Simplify check for inode.
+
+       * test/lisp/net/tramp-tests.el (tramp-test22-file-times):
+       Use `seconds-to-time'.
+
+2018-08-28  Glenn Morris  <address@hidden>
+
+       * lisp/mail/emacsbug.el (report-emacs-bug--os-description): Add BSD.
+
+       * lisp/mail/emacsbug.el (report-emacs-bug--os-description):
+       Add MS Windows.
+
+2018-08-28  Paul Eggert  <address@hidden>
+
+       Improve (format "%g" bignum) precision
+
+       * src/editfns.c (styled_format): When formatting bignums with
+       floating-point conversions like %g, use long double if that
+       would lose less information than double, which is what the
+       code was already doing for fixnums.  On Fedora 28 x86-64, for
+       example, (format "%.100g" (1- (ash 1 64))) now yields
+       "18446744073709551615" instead of the numerically incorrect
+       "18446744073709549568".  Also, fix a stray INTEGERP that
+       can just be FIXNUMP, since bignums are not possible there.
+
+2018-08-28  Paul Eggert  <address@hidden>
+
+       Fix Fnatnump typos
+
+       Problem reported by Glenn Morris in:
+       https://lists.gnu.org/r/emacs-devel/2018-08/msg00946.html
+       * src/floatfns.c (Fexpt):
+       * src/xselect.c (cons_to_x_long):
+       Don't assume Lisp_Object values are scalars.
+
+2018-08-28  Eli Zaretskii  <address@hidden>
+
+       Fix a recent change
+
+       * src/dispnew.c (sit_for): Don;t treat nil as zero.  Reported
+       by Glenn Morris <address@hidden>.
+
+2018-08-28  Michael Albinus  <address@hidden>
+
+       Add bignum support in Tramp
+
+       * lisp/net/tramp-adb.el (tramp-adb-handle-file-system-info):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-system-info):
+       * lisp/net/tramp-sh.el (tramp-do-file-attributes-with-stat)
+       (tramp-do-directory-files-and-attributes-with-stat)
+       (tramp-sh-handle-file-system-info):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-file-system-info): Do
+       not add "e0" to integers.
+
+       * lisp/net/tramp-sh.el (tramp-perl-file-attributes)
+       (tramp-convert-file-attributes): Do not use a consp for the inode
+       if there is bignum support.
+
+2018-08-27  Paul Eggert  <address@hidden>
+
+       Improve bignum support for system types
+
+       Use bignums when Emacs converts to and from system types like
+       off_t for file sizes whose values can exceed fixnum range.
+       Formerly, Emacs sometimes generted floats and sometimes ad-hoc
+       conses of integers.  Emacs still accepts floats and conses for
+       these system types, in case some stray Lisp code is generating
+       them, though this usage is obsolescent.
+       * doc/lispref/files.texi (File Attributes):
+       * doc/lispref/hash.texi (Defining Hash):
+       * doc/lispref/nonascii.texi (Character Sets):
+       * doc/lispref/os.texi (User Identification):
+       * doc/lispref/processes.texi (System Processes):
+       * etc/NEWS:
+       Document changes.
+       * src/bignum.c (mpz_set_uintmax, make_biguint)
+       (mpz_set_uintmax_slow, bignum_to_intmax, bignum_to_uintmax):
+       New functions.
+       (mpz_set_intmax_slow): Implement via mpz_limbs_write,
+       to avoid the need for an extra pass through a negative number.
+       * src/charset.c (Fencode_char):
+       * src/composite.h (LGLYPH_SET_CODE):
+       * src/dired.c (file_attributes):
+       * src/dosfns.c, src/w32.c (list_system_processes)
+       (system_process_attributes):
+       * src/editfns.c (init_editfns, Fuser_uid, Fuser_real_uid)
+       (Fgroup_gid, Fgroup_real_gid, Femacs_pid):
+       * src/emacs-module.c (check_vec_index):
+       * src/fns.c (Fsafe_length):
+       * src/process.c (record_deleted_pid, Fprocess_id):
+       * src/sysdep.c (list_system_processes, system_process_attributes):
+       * src/xselect.c (x_own_selection, selection_data_to_lisp_data):
+       * src/xterm.c (set_wm_state):
+       * src/inotify.c (inotifyevent_to_event, add_watch)
+       (inotify_callback):
+       If an integer is out of fixnum range, use a bignum
+       instead of converting it to a float or a cons of integers.
+       * src/coding.c (Fdefine_coding_system_internal):
+       * src/frame.c (frame_windows_min_size)
+       (x_set_frame_parameters):
+       * src/fringe.c (Fdefine_fringe_bitmap):
+       * src/nsterm.m (mouseDown:):
+       * src/syntax.c (find_defun_start):
+       * src/w32fns.c (x_set_undecorated, w32_createwindow)
+       (w32_wnd_proc, Fx_create_frame, Fx_show_tip)
+       (w32_console_toggle_lock_key):
+       * src/w32inevt.c (key_event):
+       * src/w32proc.c (Fw32_get_locale_info):
+       Do not mishandle floats by treating their addresses as their
+       values.
+       * src/data.c (store_symval_forwarding):
+       * src/gnutls.c (Fgnutls_error_fatalp, Fgnutls_error_string):
+       * src/keyboard.c (command_loop_1, make_lispy_event):
+       * src/lread.c (read_filtered_event, read1)
+       (substitute_object_recurse):
+       * src/window.c (Fcoordinates_in_window_p, Fwindow_at)
+       (window_resize_apply, Fset_window_vscroll):
+       * src/xdisp.c (handle_single_display_spec, try_scrolling)
+       (redisplay_window, calc_pixel_width_or_height)
+       (calc_line_height_property, on_hot_spot_p):
+       * src/xfaces.c (check_lface_attrs):
+       * src/xselect.c (x_get_local_selection, cons_to_x_long)
+       (lisp_data_to_selection_data, clean_local_selection_data)
+       (x_check_property_data, x_fill_property_data):
+       (x_send_client_event):
+       Do not reject bignums.
+       * src/data.c (INTBIG_TO_LISP, intbig_to_lisp)
+       (uintbig_to_lisp):
+       Remove.  All uses removed.
+       * src/data.c (cons_to_unsigned, cons_to_signed):
+       * src/dbusbind.c (xd_signature, xd_extract_signed)
+       (xd_extract_unsigned):
+       * src/dispnew.c (sit_for):
+       * src/dosfns.c, src/w32.c (system_process_attributes):
+       * src/editfns.c (Fuser_full_name):
+       * src/fileio.c (file_offset):
+       * src/fileio.c (write_region):
+       * src/font.c (font_unparse_xlfd, font_open_for_lface, Fopen_font):
+       * src/frame.c (x_set_screen_gamma):
+       * src/frame.h (NUMVAL, FRAME_PIXEL_X_FROM_CANON_X)
+       (FRAME_PIXEL_Y_FROM_CANON_Y):
+       * src/image.c (parse_image_spec, x_edge_detection)
+       (compute_image_size):
+       * src/json.c (json_to_lisp):
+       * src/lcms.c (PARSE_LAB_LIST_FIELD, Flcms_cie_de2000)
+       (PARSE_XYZ_LIST_FIELD, PARSE_JCH_LIST_FIELD)
+       (PARSE_JAB_LIST_FIELD, PARSE_VIEW_CONDITION_FLOAT)
+       (Flcms_temp_to_white_point):
+       * src/nsimage.m (ns_load_image, setSizeFromSpec):
+       * src/process.c (Fsignal_process, handle_child_signal):
+       * src/sysdep.c (system_process_attributes):
+       * src/xdisp.c (calc_line_height_property):
+       Handle bignums.
+       * src/data.c (Fnumber_to_string): Use proper predicate name in
+       signal if the argument is not a number.
+       * src/lisp.h (make_uint): New function.
+       (INT_TO_INTEGER): New macro.
+       (FIXED_OR_FLOATP, CHECK_FIXNUM_OR_FLOAT)
+       (CHECK_FIXNUM_OR_FLOAT_COERCE_MARKER, INTEGER_TO_CONS)
+       (make_fixnum_or_float): Remove; no longer used.
+       * src/nsfns.m, src/w32fns.c, src/xfns.c (Fx_create_frame):
+       Reject floating-point min-width or min-height.
+       * src/process.c (handle_child_signal): Do not worry
+       about floating-point pids, as they are no longer generated.
+
+2018-08-27  Paul Eggert  <address@hidden>
+
+       Modularize bignums better
+
+       * src/bignum.c, src/bignum.h: New files.  Only modules that
+       need to know how bignums are implemented should include
+       bignum.h.  Currently these are alloc.c, bignum.c (of course),
+       data.c, emacs.c, emacs-module.c, floatfns.c, fns.c, print.c.
+       * src/Makefile.in (base_obj): Add bignum.o.
+       * src/alloc.c (make_bignum_str): Move to bignum.c.
+       (make_number): Remove; replaced by bignum.c’s make_integer.
+       All callers changed.
+       * src/conf_post.h (ARG_NONNULL): New macro.
+       * src/json.c (json_to_lisp): Use it.
+       * src/data.c (Fnatnump):
+       Move NATNUMP’s implementation here from lisp.h.
+       * src/data.c (Fnumber_to_string):
+       * src/editfns.c (styled_format):
+       Move conversion of string to bignum to bignum_to_string, and
+       call it here.
+       * src/emacs-module.c (module_make_integer):
+       * src/floatfns.c (Fabs):
+       Simplify by using make_int.
+       * src/emacs.c: Include bignum.h, to expand its inline fns.
+       * src/floatfns.c (Ffloat): Simplify by using XFLOATINT.
+       (rounding_driver): Simplify by using double_to_bignum.
+       (rounddiv_q): Clarify use of temporaries.
+       * src/lisp.h: Move decls that need to know bignum internals to
+       bignum.h.  Do not include gmp.h or mini-gmp.h; that is now
+       bignum.h’s job.
+       (GMP_NUM_BITS, struct Lisp_Bignum, XBIGNUM, mpz_set_intmax):
+       Move to bignum.h.
+       (make_int): New function.
+       (NATNUMP): Remove; all callers changed to use Fnatnump.
+       (XFLOATINT): If arg is a bignum, use bignum_to_double, so that
+       bignum internals are not exposed here.
+       * src/print.c (print_vectorlike): Use SAFE_ALLOCA to avoid the
+       need for a record_unwind_protect_ptr.
+
+2018-08-27  Glenn Morris  <address@hidden>
+
+       * configure.ac, src/image.c: Tweak previous ImageMagick change.
+
+2018-08-27  Karl Otness  <address@hidden>  (tiny change)
+
+       Support ImageMagick version 7 (bug#25967)
+
+       * configure.ac, src/image.c: Add support for ImageMagick version 7.
+
+2018-08-27  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       * build-aux/config.sub, lib/intprops.h, lib/regex_internal.c:
+       * lib/regex_internal.h, lib/unistd.in.h, m4/limits-h.m4:
+       * m4/stdint.m4, m4/unistd_h.m4:
+       Copy from Gnulib.
+       * lib/gnulib.mk.in: Regenerate.
+
+2018-08-27  Alex Branham  <address@hidden>
+
+       New commands bibtex-next/previous-entry (Bug#32378)
+
+       * lisp/textmodes/bibtex.el (bibtex-next-entry)
+       (bibtex-previous-entry): New commands.
+       (bibtex-mode-map): Bind to to forward-paragraph and
+       backward-paragraph.  Add to menu under "Moving inside an Entry".
+
+2018-08-27  Noam Postavsky  <address@hidden>
+
+       shr: Allow skipping tags with aria-hidden (Bug#32348)
+
+       * lisp/net/shr.el (shr-discard-aria-hidden): New option.
+       (shr-descend): Suppress aria-hidden=true tags if it's set.
+       * doc/misc/eww.texi (Advanced): Document shr-discard-aria-hidden.
+       * etc/NEWS: Announce it.
+
+2018-08-27  Noam Postavsky  <address@hidden>
+
+       Allow setf of buffer-modified-p without argument (Bug#21201)
+
+       * lisp/emacs-lisp/cl-lib.el (setf buffer-modified-p): Take current
+       buffer if optional argument BUF is not passed.
+
+2018-08-27  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Fix syntactic context of BOD sometimes being 
'topmost-intro-cont
+
+       This happened when the type of the previous function was a struct, etc.,
+       declaration.
+
+       * lisp/progmodes/cc-mode.el (c-guess-basic-syntax CASE 5N): Check here 
(for
+       'topmost-intro-cont) that the first opening brace after BOD is the 
opening
+       brace preceding the starting point.
+
+2018-08-27  Alan Mackenzie  <address@hidden>
+
+       c-where-wrt-brace-construct: deal with point following a struct's 
semicolon.
+
+       More precisely, when point is right after the terminating semicolon of a
+       construct like "struct foo { .... } bar;", the function must return
+       'at-function-end.
+
+       * lisp/progmodes/cc-cmds.el (c-where-wrt-brace-construct): Surround an
+       existing test for 'at-function-end with an `or' form, the other arm 
testing
+       for being after the semicolon above.
+
+2018-08-27  Gemini Lasswell  <address@hidden>
+
+       Fix links in backtraces to work on advised built-ins (Bug#25393)
+
+       * lisp/emacs-lisp/backtrace.el (backtrace--print-func-and-args): Make
+       links to the original definition of advised functions.  Handle the
+       case when the function slot of the backtrace frame contains the
+       definition of a built-in function.
+
+2018-08-27  Michael Albinus  <address@hidden>
+
+       Bump Tramp version to 2.4.1-pre
+
+       * doc/misc/trampver.texi:
+       * lisp/net/trampver.el: Change version to "2.4.1-pre".
+
+       * lisp/net/tramp.el: Add "Package-Requires" header.
+
+2018-08-26  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       54fb383 (origin/emacs-26) Fix detection of freed emacs_values (Bug#32...
+       769d0cd ; Fix out-of-tree build for mod-test.so
+       9a1329e Avoid crashes with very wide TTY frames on MS-Windows
+       9a613d3 Prevent `modify-file-local-variable-prop-line' from adding ex...
+       624e7dc Update GNOME bugtracker URLs
+       51ef6d5 Clarify in the Emacs manual that ChangeLog files are not used
+       6e08019 Recognize codepage 65001 as a valid encoding
+       1a350d7 ; * etc/NEWS: Fix format of first lines of some entries.
+       22d1f53 Avoid compilation warning in nt/addpm.c
+       7bc9ce7 Fix duplicate custom group names in bibtex.el
+       a9cf938 Fix outdated text in the Calc manual
+
+       Conflicts:
+               etc/NEWS
+               etc/PROBLEMS
+               src/emacs-module.c
+               src/gtkutil.c
+               src/image.c
+               src/xterm.c
+               test/Makefile.in
+
+2018-08-26  Eli Zaretskii  <address@hidden>
+
+       Fix a typo in alloc.c
+
+       * src/alloc.c (Fmemory_use_counts): The list we return now has
+       only 7 elements, not 8.  (Bug#32531)
+
+2018-08-26  Alan Mackenzie  <address@hidden>
+
+       CC Mode: make c-display-defun-name work with a pointer return type.
+
+       Fixes bug #32403.
+
+       * lisp/progmodes/cc-cmds.el (c-in-function-trailer-p): No longer insist 
on
+       c-beginning-of-decl-1 returning 'same.
+       (c-where-wrt-brace-construct): Tighten up the test for looking at a 
symbol by
+       excluding keywords.  When point is after a }, do not return 
'at-function-end
+       for a struct/union/class/...
+       (c-defun-name-1): Considerably simplify, by amalgamating the two cond 
arms
+       which find structs etc., and by using functions like 
c-forward-declarator
+       rather than the faulty analysis of the source by hand.
+
+2018-08-26  Stefan Monnier  <address@hidden>
+
+       * lisp/net/tramp.el: Add "Version" header.
+
+2018-08-25  Paul Eggert  <address@hidden>
+
+       Improve format-seconds accuracy
+
+       * doc/lispref/os.texi (Time Parsing): It works with bignums.
+       * lisp/calendar/time-date.el (format-seconds):
+       Take the floor so that the resulting arithmetic is exact.
+
+2018-08-25  Paul Eggert  <address@hidden>
+
+       Prefer CONSP etc. to XTYPE
+
+       * src/nsmenu.m (process_dialog:):
+       (initFromContents:isQuestion:):
+       Prefer CONSP (x) to XTYPE (x) == Lisp_Cons,
+       and similarly for STRINGP (x).
+
+2018-08-25  Paul Eggert  <address@hidden>
+
+       Improve performance of CONSP, FIXNUMP, etc.
+
+       Optimization opportunity noted by Pip Cet in:
+       https://lists.gnu.org/r/emacs-devel/2018-08/msg00828.html
+       On my platform (Fedora 28 x86-64, AMD Phenom II X4 910e,
+       user+system time), this improved ‘make compile-always’
+       performance by 0.4% and shrank text size by a similar amount.
+       * src/lisp.h (TAGGEDP, lisp_h_TAGGEDP): New macros and function.
+       (lisp_h_CONSP, lisp_h_FLOATP, lisp_h_SYMBOLP)
+       (lisp_h_VECTORLIKEP, make_lisp_ptr, STRINGP): Use them.
+       (lisp_h_FIXNUMP): Use the same idea that lisp_h_TAGGEDP uses.
+
+2018-08-23  Noam Postavsky  <address@hidden>
+
+       Detect Chinese sudo password prompts (Bug#31075)
+
+       * lisp/comint.el (comint-password-prompt-regexp): Allow text between
+       the prompt prefix and password equivalent.
+       * lisp/eshell/esh-mode.el (eshell-password-prompt-regexp): Accept some
+       unicode alternatives to ":".
+       * test/lisp/comint-tests.el (comint-testsuite-password-strings): Add
+       test case.
+
+2018-08-23  Noam Postavsky  <address@hidden>
+
+       Fix comint-password-prompt-regexp
+
+       The change from 2017-12-22 "Support French password prompts in shell"
+       tried to allow nonbreaking space in addition to whitespace syntax
+       characters around the colon, but used square brackets which cause "\s"
+       to be interpreted literally rather than as a backslash construct.
+       * lisp/comint.el (comint-password-prompt-regexp): Use [[:blank:]]
+       instead, which also has the benefit of not relying on the major mode's
+       whitespace syntax setting.
+       * test/lisp/comint-tests.el (comint-testsuite-password-strings):
+       Update French localized entry to have a space before the colon, as
+       reported in Bug#29729.
+
+2018-08-23  Charles A. Roelli  <address@hidden>
+
+       Replace 2 checks in rmailsum.el with 'pos-visible-in-window-p'
+
+       * lisp/mail/rmailsum.el (rmail-summary-scroll-msg-up)
+       (rmail-summary-scroll-msg-down): Use 'pos-visible-in-window-p'
+       instead of checking the condition by hand.
+
+2018-08-23  Lars Ingebrigtsen  <address@hidden>
+
+       Fix binding error in nnfolder-read-folder
+
+       * lisp/gnus/nnfolder.el (nnfolder-read-folder): Fix previous
+       checkin that left `active' unbound before using it.
+
+2018-08-22  Paul Eggert  <address@hidden>
+
+       Prune most-positive-fixnum from Lisp source
+
+       I looked through all instances of most-negative-fixnum
+       and most-positive-fixnum in the Lisp source code, and
+       when it was easy I removed assumptions that integers
+       fit in fixnums.  The remaining instances are either
+       nontrivial to fix, or are inherent to the algorithm.
+       * lisp/arc-mode.el (archive-l-e): Do not convert to float,
+       since we have bignums now.  All uses changed.
+       * lisp/calc/calc.el (math-bignum):
+       Don’t special-case most-negative-fixnum.
+       * lisp/calendar/parse-time.el (parse-time-string):
+       * lisp/emacs-lisp/edebug.el (edebug-read-special):
+       * lisp/emacs-lisp/package.el (package--remove-hidden):
+       * lisp/gnus/nnfolder.el (nnfolder-read-folder):
+       * lisp/international/mule-util.el (filepos-to-bufferpos--dos):
+       * lisp/menu-bar.el (menu-bar-update-buffers):
+       * lisp/net/rcirc.el (rcirc-handler-317):
+       * lisp/org/org-agenda.el (org-cmp-ts):
+       * lisp/window.el (window--resize-child-windows):
+       Avoid arbitrary limit to most-positive-fixnum or to
+       most-negative-fixnum.
+       * lisp/calendar/time-date.el (days-to-time):
+       * lisp/erc/erc-dcc.el (erc-unpack-int):
+       Don’t worry about integer overflow.
+       * lisp/cedet/semantic/wisent/comp.el (wisent-BITS-PER-WORD):
+       * lisp/gnus/message.el (message-unique-id):
+       * lisp/org/org-footnote.el (org-footnote-new):
+       Simplify.
+       * lisp/erc/erc-dcc.el (erc-most-positive-int-bytes)
+       (erc-most-positive-int-msb): Remove; no longer needed.
+       * lisp/net/imap.el (imap-string-to-integer): Remove; unused.
+       * lisp/org/org-element.el (org-element--cache-generate-key):
+       Document fixnum limitation.
+
+2018-08-22  Paul Eggert  <address@hidden>
+
+       Fix bugs when rounding to bignums
+
+       Also, since Emacs historically reported a range error when
+       rounding operations overflowed, do that consistently for all
+       bignum overflows.
+       * doc/lispref/errors.texi (Standard Errors):
+       * doc/lispref/numbers.texi (Integer Basics): Document range errors.
+       * src/alloc.c (range_error): Rename from integer_overflow.
+       All uses changed.
+       * src/floatfns.c (rounding_driver): When the result of a floating
+       point rounding operation does not fit into a fixnum, put it
+       into a bignum instead of always signaling an range error.
+       * test/src/floatfns-tests.el (divide-extreme-sign):
+       These tests now return the mathematically-correct answer
+       instead of signaling an error.
+       (bignum-round): Check that integers round to themselves.
+
+2018-08-22  Paul Eggert  <address@hidden>
+
+       Undo part of previous change
+
+       Issue spotted by Pip Cet in:
+       https://lists.gnu.org/r/emacs-devel/2018-08/msg00758.html
+       * lisp/vc/vc-hg.el (vc-hg--raw-dirstate-search):
+       Go back to using eq on flen, since it must be a fixnum.
+
+2018-08-22  Paul Eggert  <address@hidden>
+
+       Make vc-hg safe for bignums
+
+       * lisp/vc/vc-hg.el (vc-hg--raw-dirstate-search):
+       Use eql, not eq, on integers that could be bignums.
+       (vc-hg--time-to-integer): Rename from vc-hg--time-to-fixnum.
+       All uses changed.
+       (vc-hg-state-fast): Remove test that 32-bit unsigned values
+       must be fixnums.
+
+2018-08-21  Paul Eggert  <address@hidden>
+
+       * src/buffer.h (DECODE_POSITION): Remove; unused.
+
+2018-08-21  Paul Eggert  <address@hidden>
+
+       Add bignum support to floor, ceiling, etc.
+
+       Problem reported by Andy Moreton (Bug#32463#35 (d)).
+       * src/floatfns.c (rounding_driver): Change the signature
+       of the integer rounder to use mpz_t rather than EMACS_INT.
+       All uses changed.  Support bignums.
+       (ceiling2, floor2, truncate2, round2): Remove.
+       All uses changed to rounddiv_q or to a GMP library function.
+       (rounddiv_q): New function.
+       * test/src/floatfns-tests.el (bignum-round): New test.
+
+2018-08-21  Paul Eggert  <address@hidden>
+
+       Move bignump, fixnump from C to Lisp
+
+       * doc/lispref/objects.texi (Integer Type): Mention
+       most-negative-fixnum and most-positive-fixnum as alternatives
+       to fixnump and bignump.
+       * lisp/subr.el (fixnump, bignump): Now written in Lisp.
+       * src/data.c (Ffixnump, Fbignump): No longer written in C,
+       as these new functions are not crucial for performance.
+
+2018-08-21  Paul Eggert  <address@hidden>
+
+       Fix assertion failure when reading 'BIGNUM.'
+
+       Problem reported by Stefan Monnier (Bug#32476).
+       * src/lread.c (string_to_number): Don't pass leading "+"
+       or trailing "." or junk to make_bignum_str.
+       * test/src/lread-tests.el (lread-string-to-number-trailing-dot):
+       New test.
+
+2018-08-21  Paul Eggert  <address@hidden>
+
+       Audit use of lsh and fix glitches
+
+       I audited use of lsh in the Lisp source code, and fixed the
+       glitches that I found.  While I was at it, I replaced uses of lsh
+       with ash when either will do.  Replacement is OK when either
+       argument is known to be nonnegative, or when only the low-order
+       bits of the result matter, and is a (minor) win since ash is a bit
+       more solid than lsh nowadays, and is a bit faster.
+       * lisp/calc/calc-ext.el (math-check-fixnum):
+       Prefer most-positive-fixnum to (lsh -1 -1).
+       * lisp/vc/vc-hg.el (vc-hg-state-fast): When testing fixnum width,
+       prefer (zerop (ash most-positive-fixnum -32)) to (zerop (lsh -1
+       32)) (Bug#32485#11).
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode):
+       Tighten sanity-check for bytecode overflow, by checking that the
+       result of (ash pc -8) is nonnegative.  Formerly this check was not
+       needed since lsh was used and the number overflowed differently.
+       * lisp/net/dns.el (dns-write): Fix some obvious sign typos in
+       shift counts.  Evidently this part of the code has never been
+       exercised.
+       * lisp/progmodes/hideif.el (hif-shiftleft, hif-shiftright):
+       * lisp/term/common-win.el (x-setup-function-keys):
+       Simplify.
+       * admin/unidata/unidata-gen.el, admin/unidata/uvs.el:
+       * doc/lispref/keymaps.texi, doc/lispref/syntax.texi:
+       * doc/misc/calc.texi, doc/misc/cl.texi, etc/NEWS.19:
+       * lisp/arc-mode.el, lisp/calc/calc-bin.el, lisp/calc/calc-comb.el:
+       * lisp/calc/calc-ext.el, lisp/calc/calc-math.el:
+       * lisp/cedet/semantic/wisent/comp.el, lisp/composite.el:
+       * lisp/disp-table.el, lisp/dos-fns.el, lisp/edmacro.el:
+       * lisp/emacs-lisp/bindat.el, lisp/emacs-lisp/byte-opt.el:
+       * lisp/emacs-lisp/bytecomp.el, lisp/emacs-lisp/cl-extra.el:
+       * lisp/erc/erc-dcc.el, lisp/facemenu.el, lisp/gnus/message.el:
+       * lisp/gnus/nndoc.el, lisp/gnus/nnmaildir.el, lisp/image.el:
+       * lisp/international/ccl.el, lisp/international/fontset.el:
+       * lisp/international/mule-cmds.el, lisp/international/mule.el:
+       * lisp/json.el, lisp/mail/binhex.el, lisp/mail/rmail.el:
+       * lisp/mail/uudecode.el, lisp/md4.el, lisp/net/dns.el:
+       * lisp/net/ntlm.el, lisp/net/sasl.el, lisp/net/socks.el:
+       * lisp/net/tramp.el, lisp/obsolete/levents.el:
+       * lisp/obsolete/pgg-parse.el, lisp/org/org.el:
+       * lisp/org/ox-publish.el, lisp/progmodes/cc-defs.el:
+       * lisp/progmodes/ebnf2ps.el, lisp/progmodes/hideif.el:
+       * lisp/ps-bdf.el, lisp/ps-print.el, lisp/simple.el:
+       * lisp/tar-mode.el, lisp/term/common-win.el:
+       * lisp/term/tty-colors.el, lisp/term/xterm.el, lisp/vc/vc-git.el:
+       * lisp/vc/vc-hg.el, lisp/x-dnd.el, test/src/data-tests.el:
+       Prefer ash to lsh when either will do.
+
+2018-08-21  Paul Eggert  <address@hidden>
+
+       Fix bignum bugs with nth, elt, =
+
+       * src/bytecode.c (exec_byte_code): Support bignums
+       when implementing nth, elt, and =.
+       * src/lisp.h (SMALL_LIST_LEN_MAX): New constant.
+       * src/fns.c (Fnthcdr): Use it.
+       (Felt): Do not reject bignum indexes.
+
+2018-08-21  Glenn Morris  <address@hidden>
+
+       Restore compatibility with Texinfo < 6
+
+       * doc/lispref/numbers.texi (Integer Basics, Bitwise Operations):
+       Don't use Texinfo 6.0's "@sup" command.
+
+2018-08-21  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of 'integer-width'
+
+       * etc/NEWS: Minor rewording of the recent addition.
+
+       * doc/lispref/numbers.texi (Bitwise Operations): Use @dots{}
+       for ellipsis.  Improve indexing.
+
+2018-08-21  Paul Eggert  <address@hidden>
+
+       Avoid libgmp aborts by imposing limits
+
+       libgmp calls ‘abort’ when given numbers too big for its
+       internal data structures.  The numeric limit is large and
+       platform-dependent; with 64-bit GMP 6.1.2 it is around
+       2**2**37.  Work around the problem by refusing to call libgmp
+       functions with arguments that would cause an abort.  With luck
+       libgmp will have a better way to do this in the future.
+       Also, introduce a variable integer-width that lets the user
+       control how large bignums can be.  This currently defaults
+       to 2**16, i.e., it allows bignums up to 2**2**16.  This
+       should be enough for ordinary computation, and should
+       help Emacs to avoid thrashing or hanging.
+       Problem noted by Pip Cet (Bug#32463#71).
+       * doc/lispref/numbers.texi, etc/NEWS:
+       Document recent bignum changes, including this one.
+       Improve documentation for bitwise operations, in the light
+       of bignums.
+       * src/alloc.c (make_number): Enforce integer-width.
+       (integer_overflow): New function.
+       (xrealloc_for_gmp, xfree_for_gmp):
+       Move here from emacs.c, as it's memory allocation.
+       (init_alloc): Initialize GMP here, rather than in emacs.c.
+       (integer_width): New var.
+       * src/data.c (GMP_NLIMBS_MAX, NLIMBS_LIMIT): New constants.
+       (emacs_mpz_size, emacs_mpz_mul)
+       (emacs_mpz_mul_2exp, emacs_mpz_pow_ui): New functions.
+       (arith_driver, Fash, expt_integer): Use them.
+       (expt_integer): New function, containing integer code
+       that was out of place in floatfns.c.
+       (check_bignum_size, xmalloc_for_gmp): Remove.
+       * src/emacs.c (main): Do not initialize GMP here.
+       * src/floatfns.c (Fexpt): Use expt_integer, which
+       now contains integer code moved from here.
+       * src/lisp.h (GMP_NUMB_BITS): Define if gmp.h doesn’t.
+
+2018-08-21  Paul Eggert  <address@hidden>
+
+       Fix glitches introduced by nthcdr changes
+
+       * src/fns.c (Fnthcdr): Fix recently-introduced bug when
+       nthcdr is supposed to yield a non-nil non-cons.
+       Reported by Glenn Morris and by Pip Cet here:
+       https://lists.gnu.org/r/emacs-devel/2018-08/msg00699.html
+       https://lists.gnu.org/r/emacs-devel/2018-08/msg00708.html
+       Speed up nthcdr for small N, as suggested by Pip Cet here:
+       https://lists.gnu.org/r/emacs-devel/2018-08/msg00707.html
+       * test/src/fns-tests.el (test-nthcdr-simple): New test.
+
+2018-08-20  Paul Eggert  <address@hidden>
+
+       Speed up (nthcdr N L) when L is circular
+
+       Also, fix bug when N is a positive bignum, a problem reported
+       by Eli Zaretskii and Pip Cet in:
+       https://lists.gnu.org/r/emacs-devel/2018-08/msg00690.html
+       * src/fns.c (Fnthcdr): If a cycle is found, reduce the count
+       modulo the cycle length before continuing.  This reduces the
+       worst-case cost of (nthcdr N L) from N to min(N, C) where C is
+       the number of distinct cdrs of L.  Reducing modulo the cycle
+       length also allows us to do arithmetic with machine words
+       instead of with GMP.
+       * test/src/fns-tests.el (test-nthcdr-circular): New test.
+
+2018-08-20  Andy Moreton  <address@hidden>
+
+       Define get_proc_addr in Cygwin-w32 build
+
+       * src/w32common.h (get_proc_addr, DEF_DLL_FN, LOAD_DLL_FN): Move
+       definitions here from src/w32.h.
+       * src/decompress.c [WINDOWSNT]:
+       * src/gnutls.c [WINDOWSNT]:
+       * src/image.c [WINDOWSNT]:
+       * src/json.c [WINDOWSNT]:
+       * src/lcms.c [WINDOWSNT]:
+       * src/w32font.c [WINDOWSNT]:
+       * src/w32uniscribe.c:
+       * src/xml.c [WINDOWSNT]: Include w32common.h.
+
+2018-08-20  Paul Eggert  <address@hidden>
+
+       nthcdr now works with bignums
+
+       Problem reported by Karl Fogel in:
+       https://lists.gnu.org/r/emacs-devel/2018-08/msg00671.html
+       * src/fns.c (Fnthcdr): Support bignum counts.
+
+2018-08-19  Paul Eggert  <address@hidden>
+
+       Fix expt signedness bug --without-wide-int
+
+       Problem reported by Federico in:
+       https://lists.gnu.org/r/emacs-devel/2018-08/msg00619.html
+       * src/floatfns.c (Fexpt): Use TYPE_RANGED_FIXNUMP, not
+       RANGED_FIXNUMP, to fix bug with unsigned comparison on
+       platforms built --without-wide-int.
+
+2018-08-19  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/cc-mode.el: Add version header
+
+2018-08-19  Paul Eggert  <address@hidden>
+
+       Add bignum support to expt
+
+       Problem and initial solution reported by Andy Moreton in:
+       https://lists.gnu.org/r/emacs-devel/2018-08/msg00503.html
+       * doc/lispref/numbers.texi (Math Functions): expt integer
+       overflow no longer causes truncation; it now signals an error
+       since bignum overflow is a big deal.
+       * src/floatfns.c (Fexpt): Support bignum arguments.
+       * test/src/floatfns-tests.el (bignum-expt): New test.
+
+2018-08-18  Paul Eggert  <address@hidden>
+
+       Fix bug with ‘mod’ and float+bignum
+
+       Problem reported by Andy Moreton in:
+       https://lists.gnu.org/r/emacs-devel/2018-08/msg00442.html
+       * src/floatfns.c (fmod_float): Work even if an arg is a bignum.
+       * test/src/floatfns-tests.el (bignum-mod): New test.
+
+2018-08-18  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2018-08-18 Avoid -Wcast-function-type warnings from casts
+       * build-aux/config.sub, lib/gettimeofday.c: Copy from Gnulib.
+
+2018-08-18  Paul Eggert  <address@hidden>
+
+       Tweak integer division
+
+       * src/data.c (arith_driver): Reorder to remove unnecessary
+       FIXNUMP.  Tighten test for whether to convert the divisor from
+       fixnum to mpz_t.  Simplify.
+
+2018-08-18  Paul Eggert  <address@hidden>
+
+       Simplify float_arith_driver
+
+       * src/data.c (float_arith_driver): Simplify, as we needn’t
+       worry about that 30-year-old compiler bug any more.
+
+2018-08-18  Paul Eggert  <address@hidden>
+
+       Minor fixups for intmax_t→mpz_t conversion
+
+       * src/alloc.c (mpz_set_intmax_slow): Tighten assertion.
+       Work even in the unlikely case where libgmp uses nails.
+       * src/data.c (FIXNUMS_FIT_IN_LONG): New constant.
+       (arith_driver): Use it to tighten compile-time checks.
+       * src/lisp.h (mpz_set_intmax): Do not assume that converting
+       an out-of-range value to ‘long’ is harmless, as it might raise
+       a signal.  Use simpler expression; compiler can optimize.
+
+2018-08-18  Paul Eggert  <address@hidden>
+
+       Improve --with-wide-int mpz_t→fixnum conversion
+
+       These tuneups and minor simplifications should affect only
+       platforms with EMACS_INT wider than ‘long’.
+       * src/alloc.c (make_number): If the number fits in long but
+       not in fixnum, do not attempt to convert to fixnum again.
+       Tighten the compile-time check for whether the second attempt
+       is worth trying, from sizeof (long) < sizeof (EMACS_INT) to
+       LONG_WIDTH < FIXNUM_BITS.  Do not bother computing the sign of
+       the value to tighten the bounds for whether to try the second
+       attempt, as it’s not worth the effort.  Do not call mpz_size,
+       which is unnecessary since the number of bits is already known
+       and the loop can iterate over a shift count instead.  Avoid
+       unnecessary casts.  Use + instead of | where either will do,
+       as + is typically better for optimization.
+
+       Improve mpz_t to fixnum when --with-wide-int
+       * src/alloc.c (make_number): Avoid undefined behavior
+       when shifting an EMACS_UINT by more than EMACS_UINT_WIDTH bits.
+       Check for integer overflow when shifting.
+
+2018-08-18  Paul Eggert  <address@hidden>
+
+       Improve bignum comparison (Bug#32463#50)
+
+       * src/data.c (isnan): Remove, as we can assume C99.
+       (bignumcompare): Remove, folding its functionality
+       into arithcompare.
+       (arithcompare): Compare bignums directly here.
+       Fix bugs when comparing NaNs to bignums.
+       When comparing a bignum to a fixnum, just look at the
+       bignum’s sign, as that’s all that is needed.
+       Decrease scope of locals when this is easy.
+       * test/src/data-tests.el (data-tests-bignum): Test bignum vs NaN.
+
+2018-08-18  Paul Eggert  <address@hidden>
+
+       Document that ‘random’ is limited to fixnums
+
+       Problem reported by Pip Cet (Bug#32463#20).
+       * doc/lispref/numbers.texi (Random Numbers):
+       * src/fns.c (Frandom): Adjust doc.
+
+2018-08-18  Paul Eggert  <address@hidden>
+
+       Restore traditional lsh behavior on fixnums
+
+       * doc/lispref/numbers.texi (Bitwise Operations): Document that
+       the traditional (lsh A B) behavior is for fixnums, and that it
+       is an error if A and B are both negative and A is a bignum.
+       See Bug#32463.
+       * lisp/subr.el (lsh): New function, moved here from src/data.c.
+       * src/data.c (ash_lsh_impl): Remove, moving body into Fash
+       since it’s the only caller now.
+       (Fash): Check for out-of-range counts.  If COUNT is zero,
+       return first argument instead of going through libgmp.  Omit
+       lsh code since lsh is now done in Lisp.  Add code for shifting
+       fixnums right, to avoid a round trip through libgmp.
+       (Flsh): Remove; moved to lisp/subr.el.
+       * test/lisp/international/ccl-tests.el (shift):
+       Test for traditional lsh behavior, instead of assuming
+       lsh is like ash when bignums are present.
+       * test/src/data-tests.el (data-tests-logand)
+       (data-tests-logior, data-tests-logxor, data-tests-ash-lsh):
+       New tests.
+
+2018-08-17  Eli Zaretskii  <address@hidden>
+
+       Avoid compilation warning in w32fns.c
+
+       * src/w32fns.c (Fw32_read_registry): Avoid compiler warning
+       regarding possible use of 'rootkey' without initializing it
+       first.  Reported by Andy Moreton <address@hidden>.
+
+2018-08-17  Paul Eggert  <address@hidden>
+
+       Improve ‘abs’ performance
+
+       * src/floatfns.c (Fabs): Improve performance by not copying
+       the argument if it would eql the result.  As a minor detail,
+       don't assume fixnums are two’s complement.
+
+2018-08-17  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of bignums
+
+       * etc/NEWS: Enhance the announcement of bignums.
+
+       * doc/lispref/numbers.texi (Integer Basics): Add a missing
+       period.  Reported by Basil L. Contovounesios <address@hidden>.
+
+2018-08-17  Andy Moreton  <address@hidden>
+
+       Pacify -Wcast-function-type warnings in GCC 8.1
+
+       * src/image.c: Move attributes into DEF_DLL_FN call.
+       * src/dynlib.c (dynlib_addr): Use get_proc_addr.
+       * src/w32.h: (get_proc_addr): New function.
+       (LOAD_DLL_FN): Use it.
+       (DEF_DLL_FN): Allow function attributes after argument
+       list.  Add function pointer type used by LOAD_DLL_FN.
+       * src/w32.c (open_process_token, get_token_information)
+       (lookup_account_sid, get_sid_sub_authority)
+       (get_sid_sub_authority_count, get_security_info)
+       (get_file_security, set_file_security)
+       (set_named_security_info)
+       (get_security_descriptor_owner, get_security_descriptor_group)
+       (get_security_descriptor_dacl, is_valid_sid, equal_sid)
+       (get_length_sid, copy_sid, get_native_system_info)
+       (get_system_times, create_symbolic_link)
+       (is_valid_security_descriptor, convert_sd_to_sddl)
+       (convert_sddl_to_sd, get_adapters_info, reg_open_key_ex_w)
+       (reg_query_value_ex_w, expand_environment_strings_w)
+       (init_environment, create_toolhelp32_snapshot)
+       (process32_first, process32_next, open_thread_token)
+       (impersonate_self, revert_to_self, get_process_memory_info)
+       (get_process_working_set_size, global_memory_status)
+       (global_memory_status_ex, init_winsock)
+       (maybe_load_unicows_dll, globals_of_w32): Use get_proc_addr.
+       * src/w32fns.c (setup_w32_kbdhook, Ffile_system_info)
+       (get_dll_version, w32_reset_stack_overflow_guard)
+       (w32_backtrace, globals_of_w32fns): Use get_proc_addr.
+       * src/w32font.c (get_outline_metrics_w, get_text_metrics_w)
+       (get_glyph_outline_w, get_char_width_32_w): Use get_proc_addr.
+       * src/w32heap.c (init_heap): Use get_proc_addr.
+       * src/w32menu.c (globals_of_w32menu): Use get_proc_addr.
+       * src/w32proc.c (init_timers, sys_kill, w32_compare_strings):
+       Use get_proc_addr.
+       * src/w32uniscribe.c (syms_of_w32uniscribe): Use get_proc_addr.
+
+2018-08-17  Allen Li  <address@hidden>
+
+       Don't include text properties when making autoloads
+
+       * lisp/emacs-lisp/autoload.el (autoload-generate-file-autoloads):
+       Ignore text properties when finding autoload defs.  Otherwise,
+       autoload generation is less deterministic, as the exact format of the
+       generated autoloads depends on whether the files are visited in
+       Emacs.  (Bug#32395)
+
+2018-08-17  Paul Eggert  <address@hidden>
+
+       Fix problems with logxor etc. and fixnums
+
+       These operations incorrectly treated negative fixnums as
+       bignums greater than most-positive-fixnum.
+       * src/alloc.c (mpz_set_intmax_slow): Avoid undefined
+       behavior if signed unary negation overflows, while
+       we’re in the neighborhood.
+       (mpz_set_uintmax_slow): Remove.  All uses removed.
+       * src/data.c (arith_driver): Treat fixnums as signed, not
+       unsigned, even for logical operations.
+       * src/lisp.h (mpz_set_uintmax): Remove.  All uses removed.
+       * test/src/data-tests.el (data-tests-logand)
+       (data-tests-logior, data-tests-logxor): New tests.
+
+2018-08-16  Paul Eggert  <address@hidden>
+
+       Reject outlandishly-wide bignums
+
+       Do not allow bignums that are so wide that their log base 2
+       might not fit into a fixnum, as this will cause problems elsewhere.
+       We already have a similar limitation for bool-vectors.
+       * src/emacs.c (check_bignum_size, xmalloc_for_gmp): New function.
+       (xrealloc_for_gmp): Check for too-large bignum.
+       (main): Use xmalloc_for_gmp.
+
+2018-08-16  Paul Eggert  <address@hidden>
+
+       Speed up logcount on bignums
+
+       * src/data.c (Flogcount): Speed up by using the mpz equivalent
+       of ~X instead of -X-1.
+
+2018-08-16  Michael Albinus  <address@hidden>
+
+       Fix Bug#32454
+
+       * lisp/files.el (find-alternate-file): Handle the wildcards case.
+       (Bug#32454)
+
+2018-08-16  Ken Brown  <address@hidden>
+
+       Pacify GCC with -Wunused-but-set-variable
+
+       * src/unexcw.c (read_exe_header):
+       (fixup_executable):
+       (unexec): Specify the "unused" attribute for variables that
+       are used only in assertions.
+
+2018-08-15  Thomas Fitzsimmons  <address@hidden>
+
+       EUDC: Add more BBDB >= 3 support
+
+       * lisp/net/eudcb-bbdb.el: Declare BBDB >= 3 functions.
+       (eudc-bbdb-field): Add translation from company to
+       organization.
+       (eudc-bbdb-extract-phones, eudc-bbdb-extract-addresses)
+       (eudc-bbdb-format-record-as-result): Call BBDB >= 3 functions.
+
+2018-08-15  Thomas Fitzsimmons  <address@hidden>
+
+       EUDC: Remove XEmacs support
+
+       * lisp/net/eudc.el (eudc-mode, eudc-install-menu): Remove
+       XEmacs support.
+       * lisp/net/eudc-hotlist.el (eudc-hotlist-mode)
+       (eudc-hotlist-emacs-menu): Likewise.
+       * lisp/net/eudc-bob.el (eudc-bob-toggle-inline-display)
+       (eudc-bob-popup-menu, eudc-bob-generic-keymap)
+       (eudc-bob-sound-keymap, eudc-bob-url-keymap)
+       (eudc-bob-mail-keymap): Likewise.
+       * etc/NEWS (EUDC): Mention removal of XEmacs support.
+
+2018-08-15  Thomas Fitzsimmons  <address@hidden>
+
+       EUDC: Shorten eudc-tools-menu autoload
+
+       * lisp/net/eudc.el: Remove XEmacs support from eudc-tools-menu
+       autoload.
+
+2018-08-15  Thomas Fitzsimmons  <address@hidden>
+
+       EUDC: Add commentary to eudc-bob.el
+
+       * lisp/net/eudc-bob.el: Add commentary.
+
+2018-08-14  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of last change
+
+       * lisp/hi-lock.el (hi-lock-set-pattern, hi-lock-face-buffer):
+       Improve the doc strings.  (Bug#32365)
+
+       * etc/NEWS:
+       * doc/emacs/display.texi (Highlight Interactively): Clarify
+       wording.
+
+2018-08-14  Grégory Mounié  <address@hidden>  (tiny change)
+
+       Interactive Highlighting: prefix argument to select subexp
+
+       * doc/emacs/display.texi (Highlight Interactively):
+       * etc/NEWS: Document the change.
+       * lisp/hi-lock.el (hi-lock-face-buffer, hi-lock-set-pattern): Use
+       the prefix argument to highlight only the corresponding sub-expression
+       of the regexp (Bug#32365).
+
+2018-08-14  Paul Eggert  <address@hidden>
+
+       Rename --without-mini-gmp to --with-libgmp
+
+       * configure.ac (HAVE_GMP): Rename ‘configure’ option from
+       --without-mini-gmp to --with-libgmp.  All uses changed.
+       * doc/lispref/numbers.texi (Predicates on Numbers): Large
+       integers are always available.  Clarify how eq works on them.
+
+2018-08-14  Stephen Berman  <address@hidden>
+
+       Fix last todo-edit-mode change
+
+       * lisp/calendar/todo-mode.el (todo-edit-mode): For editing an item
+       instead of the whole file, the current todo-file must be set from
+       todo-global-current-todo-file.
+
+       * test/lisp/calendar/todo-mode-tests.el 
(todo-test-current-file-in-edit-mode):
+       New test.
+
+2018-08-14  Stephen Berman  <address@hidden>
+
+       Fix exiting from editing todo archive file (bug#32437)
+
+       * lisp/calendar/todo-mode.el (todo-edit-file): Make the warning
+       also suitable for Todo Archive mode, and add more space to it.
+       (todo-edit-quit): On quitting editing an archive file, return to
+       the Todo Archive mode buffer editing was invoked in.
+       (todo-check-format): Display a warning instead of a message when
+       the categories sexp isn't as expected.
+       (todo-mode-external-set): Remove.
+       (todo-edit-mode): Set buffer local values of
+       todo-current-todo-file and todo-categories from the todo or
+       archive file being edited.
+       (todo-categories-mode): Set buffer local values of
+       todo-current-todo-file and todo-categories as before but directly
+       instead of using superfluous todo-mode-external-set function.
+
+       * test/lisp/calendar/todo-mode-tests.el (todo-test-edit-quit): New test.
+
+2018-08-14  Paul Eggert  <address@hidden>
+
+       Remove more traces of misc (Bug#32405)
+
+       Remove misc-objects-consed and the misc component of
+       memory-use-count, since misc objects no longer exist.
+       * doc/lispref/internals.texi, etc/NEWS: Mention this,
+       and adjust better to recent removal of misc objects.
+       * src/alloc.c (MEM_TYPE_MISC): Remove; no longer used.
+       (Fmemory_use_counts): Omit misc count, since miscs
+       no longer exist.
+       (misc-objects-consed): Remove.
+
+2018-08-14  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       34e75c1 Add comment about floating point test
+       e73e683 Ibuffer: Add toggle ibuffer-do-toggle-lock
+       12f7116 Ibuffer: Detect correctly the buffers running a process
+
+2018-08-14  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       614cc65 ; * lisp/simple.el (line-move-visual): Fix typo.
+       d2ad4ba Do not consider external packages to be removable (Bug#27822)
+       ec0995c * src/alloc.c: Remove obsolete comments.
+       ec6f588 Better support utf-8-with-signature and utf-8-hfs in HTML
+       eb026a8 Don't use -Wabi compiler option
+
+2018-08-14  Paul Eggert  <address@hidden>
+
+       Port recent changes to older GCC
+
+       Problem reported by Glenn Morris in:
+       https://lists.gnu.org/r/emacs-devel/2018-08/msg00446.html
+       * src/lisp.h (make_pointer_integer_unsafe):
+       Port to older GCC.
+
+2018-08-13  Paul Eggert  <address@hidden>
+
+       Update doc strings for fixnum constants
+
+       * src/data.c (most-positive-fixnum, most-negative-fixnum):
+       Update doc strings in the light of fixnums.
+
+2018-08-13  Paul Eggert  <address@hidden>
+
+       Fix check for unsafe watch descriptor
+
+       * src/lisp.h (make_pointer_integer_unsafe): New function.
+       (make_pointer_integer): Use it.
+       * src/gfilenotify.c (dir_monitor_callback): Omit redundant eassert.
+       (Fgfile_add_watch): Signal an error instead of failing an
+       assertion if the pointer does not work.
+
+2018-08-13  Raimon Grau  <address@hidden>
+
+       Add uuid as allowed thingatpt symbol (Bug#32372)
+
+       * etc/NEWS: Mention changes in thingatpt.el.
+       * lisp/thingatpt.el (thing-at-point-uuid-regexp): Add regexp for uuid.
+       (top-level): Add 'bounds-of-thing-at-point' operation for 'uuid'.
+       * test/lisp/thingatpt-tests.el: Add tests for uuid at point.
+
+2018-08-12  Paul Eggert  <address@hidden>
+
+       Pacify gcc -Og -Wuninitialized
+
+       This addresses the -Og uninitialized variable warnings I ran
+       into on Fedora 28, which uses 8.1.1 20180712 (Red Hat 8.1.1-5).
+       It also changes some explicit initializations to UNINIT
+       when the variable does not actually need to be initialized.
+       * src/process.c (connect_network_socket):
+       * src/sysdep.c (system_process_attributes):
+       * src/xfns.c (x_real_pos_and_offsets):
+       * src/xterm.c (get_current_wm_state) [USE_XCB]:
+       Add UNINIT.
+       * src/editfns.c (tzlookup):
+       * src/fns.c (Fnconc):
+       * src/font.c (font_parse_fcname):
+       * src/frame.c (x_set_frame_parameters):
+       Prefer UNINIT to explicit initialization.
+
+2018-08-12  Paul Eggert  <address@hidden>
+
+       * configure.ac (GMP_LIB): Set to -lgmp if --without-mini-gmp.
+
+2018-08-12  Paul Eggert  <address@hidden>
+
+       Port better to x86 -fexcess-precision=fast
+
+       Problem reported by Eli Zaretskii in:
+       https://lists.gnu.org/r/emacs-devel/2018-08/msg00380.html
+       * src/data.c (arithcompare): Work around incompatibility
+       between gcc -fexcess-precision=fast and the C standard on x86,
+       by capturing the results of floating-point comparisons before
+       the excess precision spontaneously decays.  Although this fix
+       might not work in general, it does work here and is probably
+       good enough for the platforms we care about.
+
+2018-08-12  Stephen Berman  <address@hidden>
+
+       Update and improve todo-mode item insertion and editing code
+
+       * lisp/calendar/todo-mode.el (todo-insert-item--param-key-alist)
+       (todo-insert-item--keyof, todo-insert-item--this-key)
+       (todo-insert-item--keys-so-far, todo-insert-item--args)
+       (todo-insert-item--argleft. todo-insert-item--argsleft)
+       (todo-insert-item--newargsleft, todo-insert-item--apply-args)
+       (todo-edit-item--param-key-alist, todo-edit-item--prompt)
+       (todo-edit-item--date-param-key-alist)
+       (todo-edit-done-item--param-key-alist): Remove.
+       (todo-insert-item--next-param): Reimplement to take advantage of
+       lexical binding.
+       (todo-insert-item): Adjust to new implementation of the above.
+       (todo-edit-item--next-key): Incorporate now removed global
+       variables, adjust signature accordingly, update use of pcase.
+       (todo-edit-item): Adjust to changed signature of the above.
+
+2018-08-12  Paul Eggert  <address@hidden>
+
+       Adjust .gdbinit to removal of misc objects
+
+       * src/.gdbinit (xtype, xpr): Adjust.
+       (xmisctype, xmiscfree): Remove.
+
+2018-08-12  Paul Eggert  <address@hidden>
+
+       Make mini-gmp safe for --enable-gcc-warnings
+
+       * configure.ac (GMP_OBJ): When building mini-gmp, compile
+       mini-gmp-emacs.c, not mini-gmp.c.
+       * lib-src/etags.c (NDEBUG): Don't attempt to redefine, in
+       case the builder compiles with -DNDEBUG.
+       * src/conf_post.h (NDEBUG) [!ENABLE_CHECKING && !NDEBUG]: Define.
+       This avoids bloat in mini-gmp-emacs.o.
+       * src/mini-gmp-emacs.c: New file, which pacifies --enable-gcc-warnings.
+
+2018-08-12  Paul Eggert  <address@hidden>
+
+       Fix typo caught by zsh
+
+       * lisp/Makefile.in (compile-clean): Fix typo; missing ";" (Bug#32423).
+
+2018-08-12  João Távora  <address@hidden>
+
+       jsonrpc-shutdown's cleanup also kills stderr buffer
+
+       * lisp/jsonrpc.el
+       (Version): Bump to 1.0.6
+       (jsonrpc-shutdown): Also kill stderr buffer
+
+2018-08-12  João Távora  <address@hidden>
+
+       Revert "Make jsonrpc-shutdown a noop if process isn't running"
+
+       This reverts commit c580443325a3d071625185876a8f28e04793c625.  It
+       leads to situations where the sentinel hasn't run yet, which brings
+       problems if the normal process isn't running, but the stderr
+       pseudo-process still is.
+
+       * lisp/jsonrpc.el (jsonrpc-shutdown): Always enter loop.
+
+2018-08-12  Andreas Schwab  <address@hidden>
+
+       Ensure no padding after union vectorlike_header
+
+       Instead of increasing GCALIGNMENT align union vectorlike_header by
+       adding a Lisp_Object member.
+
+       * src/lisp.h (GCALIGNMENT): Revert last change.
+       (union vectorlike_header): Add align member.
+       (header_size): Verify the same as sizeof (union
+       vectorlike_header)
+
+2018-08-12  Andreas Schwab  <address@hidden>
+
+       Avoid padding after union vectorlike_header
+
+       The PSEUDOVECTORSIZE macro requires that the first member after union
+       vectorlike_header has the same offset in all pseudo vector structures.
+
+       * src/lisp.h (GCALIGNMENT) [!USE_LSB_TAG]: Use alignment of
+       Lisp_Object.
+
+2018-08-12  Paul Eggert  <address@hidden>
+
+       New 'configure' arg --with-mini-gmp
+
+       * configure.ac: It lets the builder override default of whther
+       mini-gmp is used.  Use AC_SEARCH_LIBS as per Autoconf manual.
+
+2018-08-11  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2018-08-11 verify: port 'assume' to traditional tools
+       * build-aux/config.sub, lib/regcomp.c, lib/verify.h:
+       Copy from Gnulib.
+       * lib/gnulib.mk.in: Regenerate.
+
+2018-08-11  Paul Eggert  <address@hidden>
+
+       Remove stray union Lisp_Misc doc (Bug#32405#35).
+
+2018-08-11  Paul Eggert  <address@hidden>
+
+       Simplify mark_object for pseudovectors
+
+       Suggested by Pip Cet (Bug#32405#14).
+       * src/alloc.c (mark_object): Remove unnecessary special cases for
+       PVEC_MARKER, PVEC_BOOL_VECTOR, PVEC_MISC_PTR, PVEC_USER_PTR, and
+       PVEC_FINALIZER.
+
+       change is to free up an enum Lisp_Type tag value, a scarce
+
+2018-08-11  Paul Eggert  <address@hidden>
+
+       Turn misc objects into pseudovectors
+
+       Eliminate the category of miscellaneous objects, and turn all
+       such objects into pseudovectors.  The immediate motivation
+       for this change is to free up an enum Lisp_Type tag value, a
+       scarce resource that can be better used elsewhere.  However,
+       this change is worthwhile in its own right, as it improves
+       performance slightly on my platform, 0.3% faster for 'make
+       compile-always' on Fedora 28, and it simplifies the garbage
+       collector and interpreter (Bug#32405).
+       * doc/lispref/internals.texi (Garbage Collection):
+       * etc/NEWS:
+       Document change to garbage-collect return value.
+       * src/alloc.c (total_markers, total_free_markers):
+       (union aligned_Lisp_Misc, MARKER_BLOCK_SIZE)
+       (struct marker_block, marker_block, marker_block_index)
+       (misc_free_list, allocate_misc, live_misc_holding)
+       (live_misc_p, sweep_misc):
+       * src/lisp.h (lisp_h_MARKERP, lisp_h_MISCP, MARKERP, MISCP)
+       (Lisp_Misc, enum Lisp_Misc_Type, Lisp_Misc_Free)
+       (Lisp_Misc_Marker, Lisp_Misc_Overlay, Lisp_Misc_Finalizer)
+       (Lisp_Misc_Ptr, Lisp_Misc_User_Ptr, Lisp_Misc_Limit)
+       (Lisp_Misc_Bignum)
+       (XSETMISC, struct Lisp_Misc_Any, XMISCANY, XMISCTYPE)
+       (struct Lisp_Free, union Lisp_Misc, XMISC):
+       Remove.  All uses removed.
+       (cleanup_vector): Clean up objects that were formerly misc
+       and are now pseudovectors.
+       (make_misc_ptr, build_overlay, Fmake_marker, build_marker)
+       (make_bignum_str, make_number, make_pure_bignum)
+       (make_user_ptr, Fmake_finalizer):
+       Build as pseudovectors, not as misc objects.
+       (mark_finalizer_list, queue_doomed_finalizers)
+       (compact_undo_list, mark_overlay, mark_object)
+       (unchain_dead_markers):
+       Mark as vector-like objects, not as misc objects.
+       (mark_maybe_object, mark_maybe_pointer, valid_lisp_object_p)
+       (total_bytes_of_live_objects, survives_gc_p):
+       * src/fns.c (sxhash):
+       No need to worry about misc objects.
+       (garbage_collect_1): Do not generate a 'misc' component.
+       (syms_of_alloc): No need for 'misc' symbol.
+       * src/buffer.c (overlays_at, overlays_in, overlay_touches_p)
+       (overlay_strings, recenter_overlay_lists)
+       (fix_start_end_in_overlays, fix_overlays_before)
+       (Foverlay_lists, report_overlay_modification)
+       (evaporate_overlays):
+       * src/editfns.c (overlays_around):
+       * src/data.c (Ftype_of):
+       * src/fns.c (internal_equal):
+       * src/lisp.h (mint_ptrp, xmint_pointer, FINALIZERP)
+       (XFINALIZER, MARKERP, XMARKER, OVERLAYP, XOVERLAY, USER_PTRP)
+       (XUSER_PTR, BIGNUMP, XBIGNUM):
+       * src/print.c (print_vectorlike, print_object):
+       * src/undo.c (record_marker_adjustments):
+       * src/xdisp.c (load_overlay_strings):
+       Formerly misc objects are now pseudovectors.
+       * src/lisp.h (PVEC_MARKER, PVEC_OVERLAY, PVEC_FINALIZER)
+       (PVEC_BIGNUM, PVEC_MISC_PTR, PVEC_USER_PTR):
+       New constants, replacing their misc versions.  All uses changed.
+       (struct Lisp_Marker, struct Lisp_Overlay, struct Lisp_Misc_Ptr)
+       (struct Lisp_Bignum, struct Lisp_User_Ptr, struct Lisp_Finalizer):
+       Make usable as a pseudovector by using a pseudovector header,
+       replacing any DIY components, and putting Lisp_Object members
+       first.  All uses changed.
+
+2018-08-11  Paul Eggert  <address@hidden>
+
+       Pacify Oracle Studio 12.6
+
+       * src/xfns.c (Fx_frame_restack):
+       * src/xterm.c (x_io_error_quitter): Omit unreachable code.
+
+2018-08-11  Paul Eggert  <address@hidden>
+
+       Reject old libgmp that lack mpz_roinit_n
+
+       * configure.ac (HAVE_GMP): Port to RHEL 6.9, which has
+       libgmp 3.5, which predates mpz_roinit_n.
+
+2018-08-11  Tom Tromey  <address@hidden>
+
+       Merge branch 'feature/bignum'
+
+2018-08-11  Michael Albinus  <address@hidden>
+
+       Fix Bug#32226, hopefully
+
+       * test/lisp/shadowfile-tests.el: Set Tramp variables for hydra.
+
+2018-08-11  João Távora  <address@hidden>
+
+       Fix blunder in last commit for lisp/jsonrpc.el
+
+       * lisp/jsonrpc.el (jsonrpc-shutdown): Use jsonrpc--process.
+
+2018-08-11  João Távora  <address@hidden>
+
+       Add option to cleanup buffers to jsonrpc-shutdown
+
+       * lisp/jsonrpc.el (Version): Bump to 1.0.5
+       (jsonrpc-shutdown): Add an option to cleanup process buffer.
+
+2018-08-11  João Távora  <address@hidden>
+
+       * lisp/jsonrpc.el (jsonrpc-request): Clarify comment.
+
+2018-08-11  João Távora  <address@hidden>
+
+       Make jsonrpc-shutdown a noop if process isn't running
+
+       * lisp/jsonrpc.el
+       (Version): Bump to 1.0.4
+       (jsonrpc-shutdown): Noop if server isn't running.
+
+2018-08-11  Andy Moreton  <address@hidden>
+
+       Avoid calling vc backend if 'vc-display-status' is nil
+
+       * lisp/vc/vc-hooks.el (vc-mode-line): Avoid calling VC backend if
+       'vc-display-status' is nil.  (Bug#32225)
+
+2018-08-11  Eli Zaretskii  <address@hidden>
+
+       Give auto-save-no-message a proper version attribute
+
+       * lisp/cus-start.el (standard): Give 'auto-save-no-message' the
+       proper version attribute.  (Bug#31039)
+
+2018-08-11  Federico Tedin  <address@hidden>
+
+       Add variable auto-save-no-message
+
+       * src/keyboard.c (auto-save-no-message): New variable, allows
+       suppressing auto-saving message.
+       * lisp/cus-start.el (standard): Add 'auto-save-no-message' variable.
+       * doc/emacs/files.texi (Auto Save): Document 'auto-save-no-message'.
+       * etc/NEWS: Mention 'auto-save-no-message'.  (Bug#31039)
+
+2018-08-11  Eli Zaretskii  <address@hidden>
+
+       Reinstate the 'tis620-2533' character set
+
+       This is a partial revert of "Make 'tis620-2533' character set be an
+       alias for 'thai-iso8859-11'" commit from Jul 28, 2018.
+       * lisp/international/mule-conf.el (tis620-2533): No longer an
+       alias for thai-iso8859-11.  Instead, reinstate the original
+       definition of tis620-2533, but without eight-bit-control in
+       the :superset attribute.  For the details, see
+       http://lists.gnu.org/archive/html/emacs-devel/2018-08/msg00117.html
+       and the surrounding discussions.
+       * lisp/international/fontset.el (font-encoding-alist)
+       (font-encoding-charset-alist): Reinstate tis620-2533 charset.
+       * lisp/language/thai.el (thai-tis620): Restore the original
+       :charset-list.
+       ("Thai"): Restore the original nonascii-translation.
+       * lisp/w32-fns.el: Use tis620-2533 instead of thai-iso8859-11.
+
+2018-08-11  Michael Albinus  <address@hidden>
+
+       Editorial changes in tramp.texi
+
+       * doc/misc/tramp.texi (Bug Reports): Tramp buffers shall be
+       appended as attachments to bug reports.
+       (Frequently Asked Questions): New item, determining remote buffers.
+
+2018-08-11  Nikolaus Rath  <address@hidden>
+
+       Make nnimap support IMAP namespaces
+
+       * lisp/gnus/nnimap.el (nnimap-use-namespaces): Introduce new
+       server variable.
+       (nnimap-group-to-imap, nnimap-get-groups): Transform IMAP group
+       names to Gnus group name by stripping / prefixing personal
+       namespace prefix.
+       (nnimap-open-connection-1): Ask server for namespaces and store
+       them.
+
+       * lisp/gnus/nnimap.el (nnimap-request-group-scan)
+       (nnimap-request-create-group, nnimap-request-delete-group)
+       (nnimap-request-rename-group, nnimap-request-move-article)
+       (nnimap-process-expiry-targets)
+       (nnimap-request-update-group-status)
+       (nnimap-request-accept-article, nnimap-request-list)
+       (nnimap-retrieve-group-data-early, nnimap-change-group)
+       (nnimap-split-incoming-mail): Use nnimap-group-to-imap.
+       (nnimap-group-to-imap): New function to map Gnus group names to
+       IMAP folder names.  (Bug#21057)
+
+2018-08-11  Eli Zaretskii  <address@hidden>
+
+       Improve error message when Hunspell dictionaries are misconfigured
+
+       * lisp/textmodes/ispell.el
+       (ispell-find-hunspell-dictionaries): Produce a meaningful
+       error message if Hunspell dictionaries are misconfigured.
+       (Bug#32319)
+
+2018-08-10  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       71c92d8 Fix copying text properties by 'format'
+       96be6b6 Improve error messages regarding initial-buffer-choice (Bug#2...
+       00fb127 * test/lisp/wdired-tests.el (wdired-test-unfinished-edit-01):...
+
+       Conflicts:
+               lisp/startup.el
+
+2018-08-10  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       5afbf62 Fix emacsclient check for term.el buffer (Bug#21041)
+       5132a58 Improve documentation of 'set-fontset-font'
+       cd90325 Improve documentation of M-?
+       155a885 Reinterpret Esperanto characters in iso-transl as iso-8859-3.
+       a0ef733 Fix Flyspell mode when several languages are mixed in a buffer
+
+2018-08-10  Michael Albinus  <address@hidden>
+
+       Another try to fix Bug#32226
+
+       * test/lisp/shadowfile-tests.el (shadow-test06-literal-groups)
+       (shadow-test07-regexp-groups, shadow-test08-shadow-todo)
+       (shadow-test09-shadow-copy-files): Use `set-visited-file-name'
+       instead of setting the value in `buffer-file-name' directly.
+       (Bug#32226)
+
+2018-08-09  João Távora  <address@hidden>
+
+       Allow completely disabling event logging in jsonrpc.el
+
+       Pretty printing the event sexp can be very slow when very big messages
+       are involved.
+
+       * lisp/jsonrpc.el (Version): Bump to 1.0.3
+       (jsonrpc-connection): Tweak docstring for
+       jsonrpc--event-buffer-scrollback-size.
+       (jsonrpc--log-event): Only log if max size is positive.
+
+2018-08-09  Tom Tromey  <address@hidden>
+
+       Fix up for bignums after merge from trunk
+
+       * src/character.c (char_width): Use XFIXNUM.
+       * src/editfns.c (styled_format): Use XFIXNUM, XUFIXNUM.
+       * src/fns.c (Fproper_list_p): Use make_fixnum.
+
+2018-08-09  Tom Tromey  <address@hidden>
+
+       Merge remote-tracking branch 'origin/master' into feature/bignum
+
+2018-08-09  Tom Tromey  <address@hidden>
+
+       Use mpz_sgn rather than comparisons against 0
+
+       * src/data.c (Fmod): Use mpz_sgn.
+       * src/lisp.h (NATNUMP): Use mpz_sgn.
+
+2018-08-09  Andy Moreton  <address@hidden>
+
+       Do not use GMP_NUMB_BITS
+
+       * src/alloc.c (make_number): Use mp_bits_per_limb, not GMP_NUMB_BITS.
+
+2018-08-09  Charles A. Roelli  <address@hidden>
+
+       Update src/{ns,mac}*.m to use bignum-compatible macros
+
+       * src/nsterm.m:
+       * src/nsselect.m:
+       * src/nsmenu.m:
+       * src/nsimage.m:
+       * src/nsfont.m:
+       * src/nsfns.m:
+       * src/macfont.m: Replace
+       "make_number"           -> "make_fixnum",
+       "XINT"                  -> "XFIXNUM",
+       "XFASTINT"              -> "XFIXNAT",
+       "TYPE_RANGED_INTEGERP"  -> "TYPE_RANGED_FIXNUMP",
+       "RANGED_INTEGERP"       -> "RANGED_FIXNUMP",
+       "CHECK_NATNUM"          -> "CHECK_FIXNAT",
+       "CHECK_NUMBER"          -> "CHECK_FIXNUM",
+       "INTEGERP"              -> "FIXNUMP",
+       "NUMBERP"               -> "FIXED_OR_FLOATP",
+       as done in the following changes:
+       2018-07-06 Rename integerp->fixnum, etc, in preparation
+       for bignums (42fe787b)
+       2018-08-07 More macro renamings for bignum (d1ec3a0a)
+
+2018-08-09  Michael Albinus  <address@hidden>
+
+       Fix Bug#32304
+
+       * test/lisp/net/tramp-tests.el (tramp-test45-unload):
+       Handle tramp-archive autoloaded objects.  Remove tag :unstable.
+
+2018-08-09  João Távora  <address@hidden>
+
+       Trim JSONRPC events buffer when it's too large
+
+       * lisp/jsonrpc.el (Version): Bump to 1.0.2
+       (jsonrpc--events-buffer-scrollback-size): New
+       jsonrpc-connection slot.
+       (jsonrpc--log-event): Use it to trim buffer.
+
+2018-08-09  João Távora  <address@hidden>
+
+       Synchronous JSONRPC requests can be cancelled on user input
+
+       This allows building more responsive interfaces, such as a snappier
+       completion backend.
+
+       * lisp/jsonrpc.el (Version): Bump to 1.0.1
+       (jsonrpc-connection-receive): Don't warn when continuation isn't
+       found.
+       (jsonrpc-request): Add parameters CANCEL-ON-INPUT and
+       CANCEL-ON-INPUT-RETVAL.
+
+2018-08-08  Paul Eggert  <address@hidden>
+
+       Minor pseudovector allocation cleanups
+
+       * src/alloc.c (VECTOR_BLOCK_SIZE, VECTOR_BLOCK_BYTES)
+       (VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX):
+       Prefer enums to macros where either will do.
+       (allocate_vector_from_block): Arg is ptrdiff_t, not size_t.
+       Use eassume instead of eassert.
+       (PSEUDOVEC_STRUCT): New macro, which verifies the already-existing
+       assumption that the vector-like objects are small.
+       (cleanup_vector): Use it.  Use if-then-else systematically;
+       this lets GCC do a bit better job.
+
+       2018-08-08  Paul Eggert  <address@hidden>
+
+       * src/alloc.c (VBLOCK_BYTES_MAX): Use vroundup_ct, not
+       vroundup, so that can be used in static assertions.
+
+2018-08-08  Tom Tromey  <address@hidden>
+
+       Fix mod-test-sum-test for bignums
+
+       * test/src/emacs-module-tests.el (mod-test-sum-test): Update
+       for bignums.
+
+2018-08-08  Tom Tromey  <address@hidden>
+
+       Handle leading "+" when converting string to bignum
+
+       * src/lread.c (string_to_number): Skip leading "+" when calling
+       make_bignum_str.
+
+2018-08-08  Tom Tromey  <address@hidden>
+
+       Use mpz_import in mpz_set_uintmax_slow
+
+       * src/alloc.c (mpz_set_uintmax_slow): Use mpz_import.
+
+2018-08-08  Tom Tromey  <address@hidden>
+
+       Make purecopy work for bignums
+
+       * src/alloc.c (make_pure_bignum): New function.
+       (purecopy): Use it.
+
+2018-08-08  Michael Albinus  <address@hidden>
+
+       Fix problems in tramp-tests
+
+       * test/lisp/net/tramp-tests.el (tramp-test45-unload): Filter out
+       tramp-archive objects.  (Bug#32304)
+
+       * test/lisp/net/tramp-tests.el (tramp-test43-auto-load):
+       Add skip condition.  (Bug#32304)
+       (tramp-test43-unload): Tag as :unstable.
+
+2018-08-08  Michael Albinus  <address@hidden>
+
+       Filter out tramp-archive objects in tramp-test45-unload
+
+       * test/lisp/net/tramp-tests.el (tramp-test45-unload): Filter out
+       tramp-archive objects.  (Bug#32304)
+
+2018-08-08  Michael Albinus  <address@hidden>
+
+       Tag expensive tests in tramp-archive.el  (Bug#30807)
+
+       * test/lisp/net/tramp-archive-tests.el (tramp-archive-test44-auto-load)
+       (tramp-archive-test44-delay-load): Rename.
+       (tramp-archive-test07-file-exists-p)
+       (tramp-archive-test08-file-local-copy)
+       (tramp-archive-test09-insert-file-contents)
+       (tramp-archive-test11-copy-file)
+       (tramp-archive-test15-copy-directory)
+       (tramp-archive-test16-directory-files)
+       (tramp-archive-test17-insert-directory)
+       (tramp-archive-test18-file-attributes)
+       (tramp-archive-test19-directory-files-and-attributes)
+       (tramp-archive-test20-file-modes)
+       (tramp-archive-test21-file-links)
+       (tramp-archive-test26-file-name-completion)
+       (tramp-archive-test44-auto-load)
+       (tramp-archive-test44-delay-load): Tag them as :expensive-test,
+       because they run longer than 10 seconds.  (Bug#30807)
+
+2018-08-07  Tom Tromey  <address@hidden>
+
+       More macro renamings for bignum
+
+       * src/alloc.c, src/bidi.c, src/buffer.c, src/buffer.h, src/bytecode.c,
+       src/callint.c, src/callproc.c, src/casefiddle.c, src/casetab.c,
+       src/category.c, src/ccl.c, src/character.c, src/character.h,
+       src/charset.c, src/charset.h, src/chartab.c, src/cmds.c, src/coding.c,
+       src/composite.c, src/composite.h, src/data.c, src/dbusbind.c,
+       src/decompress.c, src/dired.c, src/dispextern.h, src/dispnew.c,
+       src/disptab.h, src/doc.c, src/dosfns.c, src/editfns.c,
+       src/emacs-module.c, src/emacs.c, src/eval.c, src/fileio.c,
+       src/floatfns.c, src/fns.c, src/font.c, src/font.h, src/fontset.c,
+       src/frame.c, src/frame.h, src/fringe.c, src/ftcrfont.c, src/ftfont.c,
+       src/gfilenotify.c, src/gnutls.c, src/gtkutil.c, src/image.c,
+       src/indent.c, src/insdel.c, src/intervals.c, src/json.c,
+       src/keyboard.c, src/keymap.c, src/kqueue.c, src/lcms.c, src/lisp.h,
+       src/lread.c, src/macros.c, src/marker.c, src/menu.c, src/minibuf.c,
+       src/msdos.c, src/print.c, src/process.c, src/profiler.c, src/search.c,
+       src/sound.c, src/syntax.c, src/syntax.h, src/sysdep.c, src/term.c,
+       src/termhooks.h, src/textprop.c, src/undo.c, src/w32.c,
+       src/w32console.c, src/w32fns.c, src/w32font.c, src/w32inevt.c,
+       src/w32proc.c, src/w32select.c, src/w32term.c, src/w32term.h,
+       src/w32uniscribe.c, src/window.c, src/xdisp.c, src/xfaces.c,
+       src/xfns.c, src/xfont.c, src/xftfont.c, src/xmenu.c, src/xml.c,
+       src/xrdb.c, src/xselect.c, src/xsettings.c, src/xterm.c, src/xwidget.c
+       Rename XINT->XFIXNUM, XFASTINT->XFIXNAT, XUINT->XUFIXNUM.
+
+2018-08-07  Eli Zaretskii  <address@hidden>
+
+       Avoid segfaults in jason-serialize on MS-Windows
+
+       * src/json.c (Fjson_serialize): Free the string with
+       'json_free', not 'free', since it was allocated with
+       'json_malloc'.  (Bug#32381)
+
+2018-08-06  Stephen Berman  <address@hidden>
+
+       Fix todo-mode bug involving active region (bug#32379)
+
+       * lisp/calendar/todo-mode.el (todo-forward-category)
+       (todo-jump-to-category, todo-toggle-view-done-items)
+       (todo-toggle-view-done-only, todo-edit-quit, todo-search)
+       (todo-go-to-source-item, todo-diary-goto-entry): Deactivate the
+       mark when the region is active.
+
+2018-08-06  Stephen Berman  <address@hidden>
+
+       Correct and improve part of previous todo-mode.el fix
+
+       * lisp/calendar/todo-mode.el (todo-jump-to-category): Improve code
+       by using bound-and-true-p.  This leaves a byte-compiler warning
+       unsilenced, but ideally, there shouldn't be a warning here (see
+       https://lists.gnu.org/archive/html/emacs-devel/2018-08/msg00131.html).
+       (todo--fifiles-history): New variable.
+       (todo-find-filtered-items-file): Use it to fix the filtered items
+       files history list for completing-read.
+
+2018-08-06  Eli Zaretskii  <address@hidden>
+
+       Fix the MS-Windows build as followup to Gnulib regex import
+
+       * lib-src/ntlib.c (nl_langinfo): New function.  (Bug#32194)
+
+2018-08-05  Paul Eggert  <address@hidden>
+
+       Spruce up some regex-emacs comments
+
+       * src/regex-emacs.c, src/regex-emacs.h: Update comments.
+
+2018-08-05  Paul Eggert  <address@hidden>
+
+       Remove always-0 struct re_pattern_buffer members
+
+       * src/regex-emacs.h (struct re_pattern_buffer):
+       Remove no_sub, not_bol, not_eol.  They are always zero.
+       All uses removed, and code simplified.
+
+2018-08-05  Paul Eggert  <address@hidden>
+
+       Simplify regex-emacs by assuming Emacs syntax
+
+       * src/regex-emacs.c (reg_syntax_t)
+       (RE_BACKSLASH_ESCAPE_IN_LISTS, RE_BK_PLUS_QM)
+       (RE_CHAR_CLASSES, RE_CONTEXT_INDEP_ANCHORS)
+       (RE_CONTEXT_INDEP_OPS, RE_CONTEXT_INVALID_OPS)
+       (RE_DOT_NEWLINE, RE_DOT_NOT_NULL, RE_HAT_LISTS_NOT_NEWLINE)
+       (RE_INTERVALS, RE_LIMITED_OPS, RE_NEWLINE_ALT)
+       (RE_NO_BK_BRACES, RE_NO_BK_PARENS, RE_NO_BK_REFS)
+       (RE_NO_BK_VBAR, RE_NO_EMPTY_RANGES)
+       (RE_UNMATCHED_RIGHT_PAREN_ORD, RE_NO_POSIX_BACKTRACKING)
+       (RE_NO_GNU_OPS, RE_FRUGAL, RE_SHY_GROUPS)
+       (RE_NO_NEWLINE_ANCHOR, RE_SYNTAX_EMACS, RE_TRANSLATE_P):
+       Remove.  All uses removed and resulting code simplified.
+       (TRANSLATE): Treat nil as an absent translation table, not zero.
+       All uses changed.
+
+2018-08-05  Paul Eggert  <address@hidden>
+
+       Simplify regex-emacs code by assuming Emacs
+
+       * src/regex-emacs.c: Omit no-longer-needed AIX code.
+       Don’t ignore GCC warnings.
+       Include regex-emacs.h immediately after config.h,
+       to test that it’s independent.
+       Omit the "#ifndef emacs" and "#ifdef REGEX_MALLOC" and
+       "#if WIDE_CHAR_SUPPORT" or "#ifdef _REGEX_RE_COMP",
+       code, as we are no longer interested in compiling outside
+       Emacs (with or without debugging or native wide char support)
+       or in avoiding alloca.
+       (REGEX_EMACS_DEBUG, regex_emacs_debug): Rename from DEBUG and debug,
+       to avoid collision with other DEBUGS.  All uses changed.
+       In debugging output, change %ld and %zd to %zu when appropriate.
+       No need to include stddef.h, stdlib.h, sys/types.h, wchar.h,
+       wctype.h, locale/localeinfo.h, locale/elem-hash.h, langinfo.h,
+       libintl.h, unistd.h, stdbool.h, string.h, stdio.h, assert.h.
+       All uses of assert changed to eassert.
+       (RE_DUP_MAX, reg_syntax_t, RE_BACKSLASH_ESCAPE_IN_LISTS)
+       (RE_BK_PLUS_QM, RE_CHAR_CLASSES, RE_CONTEXT_INDEP_ANCHORS)
+       (RE_CONTEXT_INDEP_OPS, RE_CONTEXT_INVALID_OPS, RE_DOT_NEWLINE)
+       (RE_DOT_NOT_NULL, RE_HAT_LISTS_NOT_NEWLINE, RE_INTERVALS)
+       (RE_LIMITED_OPS, RE_NEWLINE_ALT, RE_NO_BK_BRACES)
+       (RE_NO_BK_PARENS, RE_NO_BK_REFS, RE_NO_BK_VBAR)
+       (RE_NO_EMPTY_RANGES, RE_UNMATCHED_RIGHT_PAREN_ORD)
+       (RE_NO_POSIX_BACKTRACKING, RE_NO_GNU_OPS, RE_FRUGAL)
+       (RE_SHY_GROUPS, RE_NO_NEWLINE_ANCHOR, RE_SYNTAX_EMACS)
+       (REG_NOERROR, REG_NOMATCH, REG_BADPAT, REG_ECOLLATE)
+       (REG_ECTYPE, REG_EESCAPE, REG_ESUBREG, REG_EBRACK, REG_EPAREN)
+       (REG_EBRACE, REG_BADBR, REG_ERANGE, REG_ESPACE, REG_BADRPT)
+       (REG_EEND, REG_ESIZE, REG_ERPAREN, REG_ERANGEX, REG_ESIZEBR)
+       (reg_errcode_t, REGS_UNALLOCATED, REGS_REALLOCATE, REGS_FIXED)
+       (RE_NREGS, RE_TRANSLATE, RE_TRANSLATE_P):
+       Move here from regex-emacs.h.
+       (RE_NREGS): Define unconditionally.
+       (boolean): Remove.  All uses replaced by bool.
+       (WIDE_CHAR_SUPPORT, regfree, regexec, regcomp, regerror):
+       (re_set_syntax, re_syntax_options, WEAK_ALIAS, gettext, gettext_noop):
+       Remove.  All uses removed.
+       (malloc, realloc, free): Do not redefine.  Adjust all callers
+       to use xmalloc, xrealloc, xfree instead.
+       (re_error_msgid): Use C99 to avoid need to keep in same order
+       as reg_error_t.
+       (REGEX_USE_SAFE_ALLOCA): Simplify by using USE_SAFE_ALLOCA.
+       (REGEX_ALLOCATE, REGEX_REALLOCATE, REGEX_FREE, REGEX_ALLOCATE_STACK)
+       (REGEX_REALLOCATE_STACK, REGEX_FREE_STACK): Remove.
+       All callers changed to use the non-REGEX_MALLOC version.
+       (REGEX_TALLOC): Remove.  All callers changed to use SAFE_ALLOCA.
+       (re_set_syntax): Remove; unused.
+       (MATCH_MAY_ALLOCATE): Remove; now always true.  All uses simplified.
+       (INIT_FAILURE_ALLOC): Define unconditionally.
+       (re_compile_fastmap): Now static.
+       (re_compile_pattern): Avoid unnecessary cast.
+       * src/regex-emacs.h (EMACS_REGEX_H): Renamed from _REGEX_H to
+       avoid possible collision with glibc.
+       Don’t include sys/types.h.  All uses of ssize_t changed to ptrdiff_t.
+       Don’t worry about C++ or VMS.
+       Assume emacs is defined and that _REGEX_RE_COMP and WIDE_CHAR_SUPPORT
+       are not.
+       Define struct re_registers before including lisp.h.
+       (REG_ENOSYS, RE_TRANSLATE_TYPE): Remove; all uses replaced by
+       Lisp_Object.
+       (regoff_t): Remove.  All uses replaced with ptrdiff_t.
+       (re_match, regcomp, regexec, regerror, regfree):
+       Remove decl of nonexistent functions.
+       (RE_DEBUG, RE_SYNTAX_AWK, RE_SYNTAX_GNU_AWK)
+       (RE_SYNTAX_POSIX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
+       (RE_SYNTAX_POSIX_EGREP, RE_SYNTAX_ED, RE_SYNTAX_SED)
+       (_RE_SYNTAX_POSIX_COMMON, RE_SYNTAX_POSIX_BASIC)
+       (RE_SYNTAX_POSIX_MINIMAL_BASIC, RE_SYNTAX_POSIX_EXTENDED)
+       (RE_SYNTAX_POSIX_MINIMAL_EXTENDED, REG_EXTENDED, REG_ICASE)
+       (REG_NEWLINE, REG_NOSUB, REG_NOTBOL, REG_NOTEOL, regmatch_t):
+       Remove; unused.
+       * src/search.c (Fset_match_data): Simplify range test now that
+       we know it’s ptrdiff_t.
+
+2018-08-05  Paul Eggert  <address@hidden>
+
+       Use Gnulib regex for lib-src
+
+       Emacs regular expressions forked from everyone else long ago.
+       This makes it official and should allow simplification later.
+       etags.c now uses the glibc regex API, falling back on a
+       Gnulib-supplied substitute lib/regex.c if necessary.
+       Emacs proper now uses its own regular expression module.
+       Although this patch may look dauntingly large, most of it
+       was generated automatically by admin/merge-gnulib
+       and contains an exact copy of the glibc regex source,
+       and the by-hand changes do not grow the Emacs source code.
+       * admin/merge-gnulib (GNULIB_MODULES): Add regex.
+       (AVOIDED_MODULES): Add btowc, langinfo, lock, mbrtowc, mbsinit,
+       nl_langinfo, wchar, wcrtomb, wctype-h.
+       * lib-src/Makefile.in (regex-emacs.o): Remove; Gnulib does it now.
+       (etags_deps, etags_libs): Remove regex-emacs.o.
+       * lib-src/etags.c: Go back to including regex.h.
+       (add_regex): Use unsigned char translation array,
+       since glibc regex requires that.
+       * lib/Makefile.in (not_emacs_OBJECTS, for_emacs_OBJECTS): New macros.
+       (libegnu_a_OBJECTS): Use them, to avoid building e-regex.o.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * lib/regcomp.c, lib/regex.c, lib/regex.h, lib/regex_internal.c:
+       * lib/regex_internal.h, lib/regexec.c, m4/builtin-expect.m4:
+       * m4/eealloc.m4, m4/glibc21.m4, m4/mbstate_t.m4, m4/regex.m4:
+       New files, copied from Gnulib.
+       * src/regex-emacs.h, src/conf_post.h:
+       (RE_TRANSLATE_TYPE, RE_TRANSLATE, RE_TRANSLATE_P):
+       Move from src/conf_post.h to src/regex-emacs.h,
+       so that they don’t interfere with compiling lib/regex.c.
+
+2018-08-05  Paul Eggert  <address@hidden>
+
+       Rename src/regex.c to src/regex-emacs.c.
+
+       This is in preparation for using Gnulib regex for etags,
+       to avoid collisions in include directives.
+       * src/regex-emacs.c: Rename from src/regex.c.
+       * src/regex-emacs.h: Rename from src/regex.h.  All uses changed.
+       * test/src/regex-emacs-tests.el: Rename from test/src/regex-tests.el.
+
+2018-08-05  Paul Eggert  <address@hidden>
+
+       Update from gnulib
+
+       This incorporates:
+       2018-08-05 Fix link error regarding 'rpl_environ'
+       * build-aux/config.guess, lib/unistd.in.h, lib/warn-on-use.h:
+       * m4/extern-inline.m4: Copy from Gnulib.
+
+2018-08-05  Andy Moreton  <address@hidden>
+
+       Fix test and comment in CCL change
+
+       * lisp/international/ccl.el (ccl-fixnum): Update comment.
+       * test/lisp/international/ccl-tests.el (prog-midi-dump): Add
+       trailing space to expected result.
+
+2018-08-04  Mike Kupfer  <address@hidden>
+           Jeffrey C Honig  <address@hidden>
+
+       Fix mh-redistribute to work with nmh 1.5 and identities (SF#268)
+
+
+       * lisp/mh-e/mh-comp.el (mh-redistribute): Add a non-optional
+       identity parameter.  Use mh-bare-components to generate a draft,
+       then apply identity-specific settings.  Add more details to the
+       "Resent" annotation line.
+       (mh-dist-formfile): New.
+       (mh-bare-components): Add a formfile argument.
+       (mh-edit-again, mh-send-sub): Track the change to
+       mh-bare-components.
+       * lisp/mh-e/mh-identity.el (mh-select-identity)
+       (mh-identity-field): New.
+
+2018-08-04  Tom Tromey  <address@hidden>
+
+       Fix hash functions for bignums
+
+       * src/fns.c (cmpfn_eql, hashfn_eql): Handle bignums.
+       (sxhash_bignum): New function.
+       (sxhash): Use it.
+       * test/src/fns-tests.el (test-bignum-hash): New test.
+
+2018-08-04  Tom Tromey  <address@hidden>
+
+       Fix bignum comparisons with NaN
+
+       * src/data.c (isnan): Move earlier.
+       (bignumcompare): Explicitly handle NaN.
+       * test/src/data-tests.el (data-tests-min): Add NaN tests
+       for bignum.
+       (data-check-sign): Fix for previous patch.
+       * test/src/fns-tests.el (test-bignum-eql): Add NaN test.
+
+2018-08-04  Andy Moreton  <address@hidden>
+
+       Make bignums work better when EMACS_INT is larger than long
+
+       * lisp/international/ccl.el (ccl-fixnum): New function.
+       (ccl-embed-data, ccl-embed-current-address, ccl-dump): Use it.
+       * src/alloc.c (make_number): Handle case where EMACS_INT is
+       larger than long.
+       * src/data.c (bignumcompare): Handle case where EMACS_INT is
+       larger than long.
+       (arith_driver): Likewise.  Coerce markers.
+       (float_arith_driver): Coerce markers.
+       (Flogcount): Use mpz_sgn.
+       (ash_lsh_impl): Fix bugs.
+       (Fsub1): Fix underflow check.
+       * src/lisp.h (NUMBERP): Don't check BIGNUMP.
+       (CHECK_FIXNUM_OR_FLOAT_COERCE_MARKER): Fix indentation.
+       * test/lisp/international/ccl-tests.el: New file.
+
+2018-08-04  Stephen Berman  <address@hidden>
+
+       Fix assorted todo-mode bugs (bug#32366)
+
+       * lisp/calendar/todo-mode.el (todo-forward-category): Fix
+       calculation for skipping backward over archived categories.
+       (todo-jump-to-category): When hl-line-mode is enabled, force
+       highlighting to compensate for apparent failure of
+       post-command-hook to run.
+       (todo-insert-item--basic): Prevent inserting a new todo item in an
+       archive category.
+       (todo-delete-item): Ensure done items separator disappears when
+       the last done item is deleted.
+       (todo-edit-item--header): Fix calculation for choosing a month
+       prior to the current one.
+       (todo-find-filtered-items-file): Fix use of completing-read,
+       correcting typo in default value passed to it and confining
+       history to filtered items files.
+       (todo-go-to-source-item): Make a noop when point is not on an item.
+       (todo-save-filtered-items-buffer): Make buffer read-only after
+       saving and improve buffer name.
+       (todo-key-bindings-t+a+f): Remove three mistakenly included bindings.
+       (todo-key-bindings-t+a): Add two mistakenly omitted bindings.
+
+2018-08-04  Noam Postavsky  <address@hidden>
+
+       Respect non-saved value of `read-short-answer' (Bug#31782)
+
+       * lisp/emacs-lisp/map-ynp.el (read-answer-short): Add an `auto'
+       setting.
+       (read-answer): Check the function cell of `yes-or-no-p' when
+       `read-answer-short' is `auto' rather than calling
+       `custom-reevaluate-setting' which would reset the option to its saved
+       value.
+
+2018-08-04  Noam Postavsky  <address@hidden>
+
+       Merge from emacs-26
+
+       f0b8e64fb7 Avoid assertion violations in maybe_produce_line_number
+       7669bf7880 Avoid assertion violations in set_text_properties_1
+
+2018-08-04  Noam Postavsky  <address@hidden>
+
+       Merge from emacs-26
+
+       951c5a127f Fix wdired test failure when byte compiled (bug#32318)
+       0252f7311f * test/lisp/wdired-tests.el (wdired-test-symlink-name): Ne...
+       dd51434714 Fix url's thing-at-point beginning-op (Bug#32028)
+
+2018-08-04  Michael Albinus  <address@hidden>
+
+       * lisp/international/mule-cmds.el (universal-coding-system-argument):
+
+       Use `current-input-mode' for determining quit char.
+
+2018-08-04  Michael Albinus  <address@hidden>
+
+       Rename Tramp method "owncloud" to "nextcloud"
+
+       In the spirit of freedom, "nextcloud" is preferred over "owncloud".
+
+       * doc/misc/tramp.texi (Quick Start Guide, GVFS based methods):
+       * etc/NEWS: Rename "owncloud" method to "nextcloud".
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-methods, tramp-goa-methods)
+       (tramp-gvfs-url-file-name, tramp-gvfs-handler-mounted-unmounted)
+       (tramp-gvfs-connection-mounted-p, tramp-gvfs-mount-spec)
+       (tramp-get-goa-accounts): Use "nextcloud" instead of "owncloud".
+       (tramp-gvfs-nextcloud-default-prefix)
+       (tramp-gvfs-nextcloud-default-prefix-regexp): Rename them.  Adapt
+       all callees.
+
+       * test/lisp/net/tramp-tests.el (tramp--test-nextcloud-p):
+       Rename from `tramp--test-owncloud-p'.
+       (tramp-test11-copy-file, tramp-test12-rename-file): Use it.
+
+2018-08-03  Ken Brown  <address@hidden>
+
+       Fix a filenotify test failure on Cygwin
+
+       * test/lisp/filenotify-tests.el
+       (file-notify-test04-autorevert): Increase a sleep-for time
+       from 2 to 3 on Cygwin.  This avoids sporadic failures of the
+       test.  (Bug#32363)
+
+2018-08-03  Gemini Lasswell  <address@hidden>
+
+       Merge branch 'scratch/backtrace-mode'
+
+2018-08-03  Gemini Lasswell  <address@hidden>
+
+       Fix some documentation formatting nits
+
+       * doc/misc/ert.texi (Running Tests Interactively): Correct
+       Elisp manual titile in xref.
+       * doc/lispref/edebug.texi (Edebug Misc): Use single argument
+       form of xref.
+       * doc/lispref/debugging.texi (Backtraces): Add comma and
+       period after xref braces.
+       (Backtraces): Correct Emacs manual title.
+       (Internals of Debugger): Add a space before period.
+
+2018-08-03  Gemini Lasswell  <address@hidden>
+
+       Fix typo in edebug-backtrace-hide-instrumentation's docstring.
+
+       * lisp/emacs-lisp/edebug.el (edebug-backtrace-hide-instrumentation):
+       Fix docstring copypasta.
+
+2018-08-03  Gemini Lasswell  <address@hidden>
+
+       Give two backtrace-mode commands better names
+
+       * lisp/emacs-lisp/backtrace.el (backtrace-mode-map): Update
+       bindings and menu items with new function names.
+       (backtrace-collapse, backtrace-pretty-print)
+       (backtrace--collapse, backtrace--pretty-print): Remove functions.
+       (backtrace-single-line, backtrace-multi-line)
+       (backtrace--single-line, backtrace--multi-line): New functions.
+       (backtrace--reformat-sexp): Remove 'error-message' argument.
+       * test/lisp/emacs-lisp/backtrace-tests.el
+       (backtrace-tests--pretty-print-and-collapse): Remove.
+       (backtrace-tests--single-and-multi-line): New test.
+       (backtrace-tests--verify-pp-and-collapse): Remove.
+       (backtrace-tests--verify-single-and-multi-line): New function.
+
+2018-08-03  Gemini Lasswell  <address@hidden>
+
+       Move 'backtrace' from subr.el to backtrace.el
+
+       * lisp/subr.el (backtrace, backtrace--print-frame): Remove functions.
+       * lisp/emacs-lisp/backtrace.el (backtrace-backtrace): Remove function.
+       (backtrace): New function.
+       (backtrace-to-string): Make argument optional.
+       * doc/lispref/debugging.texi (Internals of Debugger): Update
+       description of 'backtrace' function.
+
+2018-08-03  Gemini Lasswell  <address@hidden>
+
+       Add new commands to Edebug backtraces
+
+       Add commands to go to source if available, and to show and hide
+       Edebug's instrumentation.  Make Edebug pop to backtraces instead of
+       displaying them, which makes Edebug consistant with the behavior of
+       ERT and the Lisp Debugger.
+       * doc/lispref/edebug.texi (Edebug Misc): Document when and how you can
+       jump to source code from an Edebug backtrace.  Document
+       'edebug-backtrace-show-instrumentation' and
+       'edebug-backtrace-hide-instrumentation'.
+       * lisp/emacs-lisp/backtrace.el (backtrace-frame): Add comments to
+       describe the fields.
+       (backtrace-goto-source-functions): New
+       abnormal hook.
+       (backtrace-mode-map): Add keybinding and menu item for
+       backtrace-goto-source.
+       (backtrace--flags-width): New constant.
+       (backtrace-update-flags): Use it.
+       (backtrace-goto-source): New command.
+       (backtrace--print-flags): Print the :source-available flag.
+       * lisp/emacs-lisp/edebug.el (edebug-backtrace-frames)
+       (edebug-instrumented-backtrace-frames): New variables.
+       (edebug-backtrace, edebug--backtrace-frames): Remove functions.
+       (edebug-pop-to-backtrace, edebug--backtrace-goto-source)
+       (edebug--add-source-info): New functions.
+       (edebug-mode-map, edebug-mode-menus): Replace 'edebug-backtrace' with
+       'edebug-pop-to-backtrace'.
+       (edebug--strip-instrumentation): New function.
+       (edebug--unwrap-and-add-info): Remove.
+       (edebug-unwrap-frame, edebug-add-source-info): New functions.
+       (edebug-backtrace-show-instrumentation)
+       (edebug-backtrace-hide-instrumentation): New commands.
+       * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-check-keymap):
+       Verify keybindings in backtrace-mode-map used by new test.
+       Update with binding for 'edebug-pop-to-backtrace'.
+       (edebug-tests-backtrace-goto-source): New test.
+       * test/lisp/emacs-lisp/edebug-resources/edebug-test-code.el
+       (edebug-test-code-range): Add a new stop point.
+
+2018-08-03  Gemini Lasswell  <address@hidden>
+
+       Add a menu for backtrace-mode
+
+       * lisp/emacs-lisp/backtrace.el (backtrace-mode-map): Add a menu.
+       * lisp/emacs-lisp/debug.el (debugger-mode-map): Change menu text for
+       'backtrace-help-follow-symbol' to better describe what it does.
+
+2018-08-03  Gemini Lasswell  <address@hidden>
+
+       * lisp/emacs-lisp/debug.el (debugger-mode-map): Use easy-menu-define.
+
+2018-08-03  Gemini Lasswell  <address@hidden>
+
+       Add new command to expand all "..."s in a backtrace frame
+
+       * doc/lispref/debugging.texi (Backtraces): Document new keybinding.
+       * lisp/emacs-lisp/backtrace.el (backtrace-line-length): Add the
+       option of unlimited line length.
+       (backtrace--match-ellipsis-in-string): Add a comment to explain
+       why this function is necessary.
+       (backtrace-mode-map): Add keybinding for 'backtrace-expand-ellipses'.
+       (backtrace-expand-ellipsis): Use 'cl-print-to-string-with-limit'.
+       (backtrace-expand-ellipses): New command.
+       (backtrace-print-to-string): Use 'cl-print-to-string-with-limit'.
+       Tag the printed forms with a gensym instead of the values of
+       print-length and print-level.
+       (backtrace--print): Add 'stream' argument.
+       * test/lisp/emacs-lisp/backtrace-tests.el
+       (backtrace-tests--expand-ellipsis): Make the test less dependent
+       on the implementation.
+       (backtrace-tests--expand-ellipses): New test.
+
+       Move the fitting of a printed representation into a limited number of
+       characters using appropriate values of print-level and print-length
+       from 'backtrace-print-to-string' to cl-print.el for future use by
+       other parts of Emacs.
+       * lisp/emacs-lisp/cl-print.el (cl-print-to-string-with-limit): New
+       function.
+       * test/lisp/emacs-lisp/cl-print-tests.el
+       (cl-print-tests-print-to-string-with-limit): New test.
+
+2018-08-03  Gemini Lasswell  <address@hidden>
+
+       Change keybinding for backtrace-collapse from '=' to '-'
+
+       '+' and '-' make a more intuitive pair of keybindings for
+       backtrace-pretty-print and backtrace-collapse than '+' and '='.
+       * lisp/emacs-lisp/backtrace.el (backtrace-mode-map):
+       * doc/lispref/debugging.texi (Backtraces): Change
+       keybinding for backtrace-collapse.
+
+2018-08-03  Gemini Lasswell  <address@hidden>
+
+       Add more tests for backtrace-mode
+
+       * test/lisp/emacs-lisp/backtrace-tests.el (backtrace-tests--variables)
+       (backtrace-tests--backward-frame, backtrace-tests--forward-frame)
+       (backtrace-tests--pretty-print-and-collapse)
+       (backtrace-tests--verify-pp-and-collapse)
+       (backtrace-tests--print-circle, backtrace-tests--make-regexp)
+       (backtrace-tests--expand-ellipsis): New tests.
+       (backtrace-tests--to-string): Use backtrace-tests--make-backtrace.
+       (backtrace-tests--get-substring): New function.
+
+       Change the method of generating sample backtraces in backtrace tests
+       to work whether or not the tests are byte-compiled.
+       * test/lisp/emacs-lisp/backtrace-tests.el (backtrace-tests--func1)
+       (backtrace-tests--func2, backtrace-tests--func3)
+       (backtrace-tests--create-backtrace-frames): Remove.
+       (backtrace-tests--uncompiled-functions): New constant.
+       (backtrace-tests--make-backtrace, backtrace-tests--setup-buffer):
+       New functions.
+       (backtrace-tests--backtrace-lines)
+       (backtrace-tests--backtrace-lines-with-locals): New functions.
+       (backtrace-tests--line-count): New constant.
+       (backtrace-tests--result, backtrace-tests--result-with-locals):
+       New functions.
+       (backtrace-tests--header): New constant.
+       (backtrace-tests--insert-header): Use backtrace-tests--header.
+       (backtrace-tests--with-buffer): Remove.
+
+2018-08-03  Gemini Lasswell  <address@hidden>
+
+       Add link in backtraces to position in buffer being evaluated (bug#14081)
+
+       * lisp/emacs-lisp/backtrace.el (backtrace-frame): Add buffer field.
+       (backtrace-get-frames): Set buffer field of frame.
+       (backtrace-buffer-pos): New button type.
+       (backtrace--pop-to-buffer-pos): New function.
+       (backtrace--print-func-and-args): Create a button for the buffer
+       position if it is set.
+
+2018-08-03  Gemini Lasswell  <address@hidden>
+
+       Add links in backtraces to functions written in C (bug#25393)
+
+       * lisp/emacs-lisp/backtrace.el (backtrace--print-func-and-args):
+       Look up file names for built-in functions with evaluated arguments.
+
+2018-08-03  Gemini Lasswell  <address@hidden>
+
+       Add prefix argument to backtrace-toggle-print-circle
+
+       With prefix argument, toggle print-circle for the whole buffer.
+       * lisp/emacs-lisp/backtrace.el (backtrace-toggle-print-circle): Add
+       universal prefix argument.
+       (backtrace--toggle-feature): Add new argument 'all' to toggle all
+       frames.
+       (backtrace--set-feature): New function.
+       (backtrace-mode): Use indent functions from Lisp modes.
+
+2018-08-03  Gemini Lasswell  <address@hidden>
+
+       Lazily print backtrace frame local variables
+
+       Instead of printing the local variables for all frames when the
+       backtrace buffer is created, print them when they are first made
+       visible.  Add a prefix argument to backtrace-toggle-locals to toggle
+       local variables display for the entire buffer.
+       * lisp/emacs-lisp/backtrace.el (backtrace-view): Mention
+       :show-locals in docstring.
+       (backtrace-get-section-end): Remove function.
+       (backtrace-toggle-locals): Add prefix argument.
+       (backtrace--with-output-variables): Move before first use.
+       (backtrace--set-frame-locals-visible): New function.
+       (backtrace--set-locals-visible-overlay): New function.
+       (backtrace--set-locals-visible): Remove function.
+       (backtrace-toggle-feature): Remove TODO comment.
+       (backtrace--print-locals): Skip printing the locals if they are not
+       visible.
+
+2018-08-03  Gemini Lasswell  <address@hidden>
+
+       Always make buttons from function names in backtraces
+
+       * lisp/emacs-lisp/backtrace.el (backtrace-view)
+       (backtrace--print-func-and-args, backtrace-mode): Always
+       make buttons.  Remove all uses of ':do-xrefs'.
+       * lisp/emacs-lisp/debug.el (debugger-setup-buffer): Modify
+       backtrace-view instead of setting it.
+       * lisp/emacs-lisp/edebug.el (edebug-backtrace):
+       * lisp/emacs-lisp/ert.el
+       (ert-results-pop-to-backtrace-for-test-at-point):
+       Remove initialization of backtrace-view.
+
+2018-08-03  Gemini Lasswell  <address@hidden>
+
+       Add backtrace-mode and use it in the debugger, ERT and Edebug
+
+       * doc/lispref/debugging.texi (Using Debugger): Remove explanation of
+       backtrace buffer.  Refer to new node.
+       (Backtraces): New node.
+       (Debugger Commands): Refer to new node.  Remove 'v'.
+       * doc/lispref/edebug.texi (Edebug Misc): Refer to new node.
+       * doc/misc/ert.texi (Running Tests Interactively): Refer to new node.
+
+       * lisp/emacs-lisp/backtrace.el: New file.
+       * test/lisp/emacs-lisp/backtrace-tests.el: New file.
+
+       * lisp/emacs-lisp/debug.el: (debugger-buffer-state): New cl-defstruct.
+       (debugger--restore-buffer-state): New function.
+       (debug): Use a debugger-buffer-state object to save and restore buffer
+       state.  Fix bug#15749 by leaving an unused buffer in debugger-mode,
+       empty, instead of in fundamental-mode, and then when reusing a buffer,
+       not calling debugger-mode if the buffer is already in debugger-mode.
+       (debugger-insert-backtrace): Remove.
+       (debugger-setup-buffer): Use backtrace-mode.
+       (debugger--insert-header): New function.
+       (debugger-continue, debugger-return-value): Change check for flags to
+       use backtrace-frames.
+       (debugger-frame-number): Determine backtrace frame number from
+       backtrace-frames.
+       (debugger--locals-visible-p, debugger--insert-locals)
+       (debugger--show-locals, debugger--hide-locals)
+       (debugger-toggle-locals): Remove.
+       (debugger-mode-map): Make a child of backtrace-mode-map.  Move
+       navigation commands to backtrace-mode-map.  Bind 'q' to debugger-quit
+       instead of top-level.  Make Help Follow menu item call
+       backtrace-help-follow-symbol.
+       (debugger-mode): Derive from backtrace-mode.
+       (debug-help-follow): Remove.  Move body of this function to
+       'backtrace-help-follow-symbol' in backtrace.el.
+       (debugger-quit): New function.
+
+       * lisp/emacs-lisp/edebug.el (edebug-unwrap-results): Remove warning
+       in docstring about circular results.
+       (edebug-unwrap): Use pcase.
+       (edebug-unwrap1): New function to unwrap circular objects.
+       (edebug-unwrap*): Use it.
+       (edebug--frame): New cl-defstruct.
+       (edebug-backtrace): Call the buffer *Edebug Backtrace* and use
+       backtrace-mode.  Get the frames from edebug--backtrace-frames.
+       (edebug--backtrace-frames, edebug--unwrap-and-add-info)
+       (edebug--symbol-not-prefixed-p): New functions.
+
+       * lisp/emacs-lisp/lisp-mode.el
+       (lisp-el-font-lock-keywords-for-backtraces)
+       (lisp-el-font-lock-keywords-for-backtraces-1)
+       (lisp-el-font-lock-keywords-for-backtraces-2): New constants.
+
+       * lisp/emacs-lisp/ert.el (ert--print-backtrace): Remove.
+       (ert--run-test-debugger): Use backtrace-get-frames.
+       (ert-run-tests-batch): Use backtrace-to-string.
+       (ert-results-pop-to-backtrace-for-test-at-point): Use backtrace-mode.
+       (ert--insert-backtrace-header): New function.
+
+       * test/lisp/emacs-lisp/ert-tests.el (ert-test--which-file):
+       Use backtrace-frame slot accessor.
+
+2018-08-03  Gemini Lasswell  <address@hidden>
+
+       Add methods for strings to cl-print
+
+       * lisp/emacs-lisp/cl-print.el (cl-print-object) <string>: New method.
+       (cl-print-object-contents) <string>: New method.
+       (cl-print--find-sharing): Look in string property lists.
+
+       * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-3): Test
+       printing of long strings.
+       (cl-print-tests-4): Test printing of strings nested in other objects.
+       (cl-print-tests-strings, cl-print-tests-ellipsis-string): New
+       tests.
+
+2018-08-03  Gemini Lasswell  <address@hidden>
+
+       Support ellipsis expansion in cl-print
+
+       * lisp/emacs-lisp/cl-print.el (cl-print-object-contents): New
+       generic method.
+       (cl-print-object-contents) <cons, vector,cl-structure-object>: New
+       methods.
+       (cl-print-object) <cons>: Use cl-print-insert-ellipsis.
+       (cl-print-object) <vector, cl-structure-object>: Elide whole object if
+       print-level exceeded.  Use cl-print-insert-ellipsis.
+       (cl-print-insert-ellipsis, cl-print-propertize-ellipsis)
+       (cl-print-expand-ellipsis): New functions.
+
+       * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-4): Test
+       printing of objects nested in other objects.
+       (cl-print-tests-strings, cl-print-tests-ellipsis-cons)
+       (cl-print-tests-ellipsis-vector, cl-print-tests-ellipsis-struct)
+       (cl-print-tests-ellipsis-circular): New tests.
+       (cl-print-tests-check-ellipsis-expansion)
+       (cl-print-tests-check-ellipsis-expansion-rx): New functions.
+
+2018-08-01  Tino Calancha  <address@hidden>
+
+       New commands to create an empty file
+
+       Similarly as `create-directory', `dired-create-directory',
+       the new commands create the parent dirs as needed (Bug#24150).
+       * lisp/files.el (make-empty-file): New command.
+
+       * lisp/dired-aux.el (dired-create-empty-file): New command.
+       (dired--find-topmost-parent-dir): New function extracted
+       from `dired-create-directory'.
+       (dired-create-directory, dired-create-empty-file): Use it.
+
+       * lisp/dired.el (dired-mode-map):
+       Add menu entry for `dired-create-empty-file'.
+
+       * doc/emacs/dired.texi (Misc Dired Features)
+       * doc/lispref/files.texi (Create/Delete Dirs): Update manual.
+
+2018-08-01  Paul Eggert  <address@hidden>
+
+       Substitute a <ieee754.h> on hosts lacking it
+
+       * .gitignore: Add lib/ieee754.h.
+       * admin/merge-gnulib (GNULIB_MODULES): Add ieee754-h.
+       * configure.ac: Remove ieee754.h check, as Gnulib now does that.
+       * etc/NEWS: Mention this.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * lib/ieee754.in.h, m4/ieee754-h.m4: New files, from Gnulib.
+       * src/lisp.h (IEEE_FLOATING_POINT): Now a macro so that it
+       can be used in #if.
+       * src/lread.c, src/print.c: Include <ieee754.h> if
+       IEEE_FLOATING_POINT, not if HAVE_IEEE754_H.
+       * src/lread.c (string_to_number):
+       * src/print.c (float_to_string):
+       Process NaNs only on IEEE hosts, and assume <ieee754.h>
+       in that case.
+
+2018-08-01  Michael Albinus  <address@hidden>
+
+       Fix Bug#32325
+
+       * lisp/net/tramp-sh.el (tramp-sh-handle-make-directory): In case
+       of PARENTS flush also upper directories caches.  (Bug#32325)
+
+2018-08-01  Gemini Lasswell  <address@hidden>
+
+       Fix Edebug spec for cl-macrolet (bug#29919)
+
+       Add an Edebug matching function for cl-macrolet which keeps track of
+       its bindings and treats them as macros without Edebug specs when found
+       in the body of the expression.
+       * lisp/emacs-lisp/edebug.el (edebug--cl-macrolet-defs): New variable.
+       (edebug-list-form-args): Use it.
+       (edebug--current-cl-macrolet-defs): New variable.
+       (edebug-match-cl-macrolet-expr, edebug-match-cl-macrolet-name)
+       (edebug-match-cl-macrolet-body): New functions.
+       * lisp/emacs-lisp/cl-macs.el (cl-macrolet): Use cl-macrolet-expr
+       for Edebug spec.
+       * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-cl-macrolet):
+       New test.
+       * test/lisp/emacs-lisp/edebug-resources/edebug-test-code.el
+       (edebug-test-code-use-cl-macrolet): New function.
+
+2018-08-01  Stephen Berman  <address@hidden>
+
+       Fix todo-mode commands called on done items separator
+
+       The done items separator is not reachable by todo-mode navigation
+       commands, but it is e.g. by C-n and C-p.  Ensure that invoking
+       todo-mode commands with point on the separator does not result in
+       unexpected results, errors or file corruption (bug#32343).
+
+       * lisp/calendar/todo-mode.el (todo-insert-item--basic): Make
+       copying item and inserting item "here" noops when invoked on done
+       items separator.  Consolidate error handling of these cases.  Also
+       restrict "here" insertion to valid positions in the current
+       category, since this is simpler than the previous behavior of
+       inserting as the first item, which was moreover undocumented,
+       counterintuitive and superfluous.
+       (todo-set-item-priority, todo-move-item, todo-item-done)
+       (todo-item-start, todo-item-end): Make noops when invoked on done
+       items separator.
+
+       * test/lisp/calendar/todo-mode-tests.el: Require ert-x.
+       (todo-test--insert-item): Add formal parameters of
+       todo-insert-item--basic.
+       (todo-test--done-items-separator): New function.
+       (todo-test-done-items-separator01-bol)
+       (todo-test-done-items-separator01-eol)
+       (todo-test-done-items-separator02-bol)
+       (todo-test-done-items-separator02-eol)
+       (todo-test-done-items-separator03-bol)
+       (todo-test-done-items-separator03-eol)
+       (todo-test-done-items-separator04-bol)
+       (todo-test-done-items-separator04-eol)
+       (todo-test-done-items-separator05-bol)
+       (todo-test-done-items-separator05-eol)
+       (todo-test-done-items-separator06-bol)
+       (todo-test-done-items-separator06-eol)
+       (todo-test-done-items-separator07): New tests.
+
+2018-08-01  Paul Eggert  <address@hidden>
+
+       Read and print NaN significand if <ieee754.h>
+
+       * configure.ac: Check for ieee754.h.
+       * doc/lispref/numbers.texi (Float Basics): Document
+       that NaN string representation digits are machine-dependent.
+       * etc/NEWS: Mention the change.
+       * src/lread.c, src/print.c [HAVE_IEEE754_H]: Include ieee754.h.
+       * src/lread.c (string_to_number) [HAVE_IEEE754_H]:
+       * src/print.c (float_to_string) [HAVE_IEEE754_H]:
+       Read and print NaN significand.
+
+2018-07-31  Paul Eggert  <address@hidden>
+
+       Simplify by assuming C99 math.h isnan etc.
+
+       These should be portable nowadays.
+       * src/data.c (isnan): Remove.
+       * src/floatfns.c (isfinite, isnan): Remove.
+       * src/print.c: Include math.h, for isinf and isnan.
+       (float_to_string): Simplify by using them.
+
+2018-07-31  Stephen Gildea  <address@hidden>
+
+       Reset mh-blacklist and mh-whitelist on folder undo
+
+       * lisp/mh-e/mh-funcs.el (mh-undo-folder): Set mh-blacklist and 
mh-whitelist
+       to nil, as is done with the other lists of pending operations.
+
+2018-07-30  Michael Albinus  <address@hidden>
+
+       Fix Bug#32304
+
+       * lisp/net/tramp.el (tramp-handle-substitute-in-file-name):
+       Handle special cas on Cygwin and MS-Windows.  (Bug#32304)
+
+2018-07-29  Noam Postavsky  <address@hidden>
+
+       * lisp/term.el (term-read-noecho): Mark obsolete.
+
+2018-07-29  Eli Zaretskii  <address@hidden>
+
+       Avoid gettimeofday deprecation warnings with MinGW
+
+       * nt/inc/ms-w32.h (__POSIX_2008_DEPRECATED)
+       [__MINGW32_VERSION >= 5001000L]: Define to nothing, to avoid
+       deprecation warnings about gettimeofday with mingw.org's MinGW
+       runtime 5.1 and later.
+
+2018-07-29  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       39d3e8b Fix last change in 'char_width'
+       67679f0 Add initial tests for wdired.el
+
+2018-07-29  Tino Calancha  <address@hidden>
+
+       Prefer ?* to hide passwords
+
+       It might be argued that a hidden string is more legible when using
+       ?* as the hidden character instead of ?.
+       For example, the following strings have the same length:
+       "......"
+
+       "******"
+
+       It's slighly easier to visually count the number of characters in the 
second
+       string (Bug#32220).
+
+       * lisp/subr.el (read-passwd): Prefer ?* as default char instead of ?.
+       * doc/lispref/minibuf.texi (Reading a Password): Update manual.
+
+2018-07-29  Stephen Berman  <address@hidden>
+
+       Handle symlinks in wdired.el when restoring filename property
+
+       * lisp/wdired.el (wdired--restore-dired-filename-prop): If the
+       file name is a symbolic link, only propertize the link name.  This
+       prevents wdired-create-parentdirs from turning the link into a
+       directory.
+
+2018-07-28  Stephen Berman  <address@hidden>
+
+       Fix bugs in wdired.el involving dired-filename property
+
+       After every change in wdired-mode, put the dired-filename text
+       property on the file name.  This ensures that changing some but not
+       all characters in the name succeeds with non-nil
+       wdired-use-interactive-rename (bug#32173) and it also ensures that
+       changed names can be found (e.g. by dired-isearch-filenames) while
+       still in wdired-mode.
+
+       * lisp/wdired.el (wdired--restore-dired-filename-prop): New function.
+       (wdired-change-to-wdired-mode): Add it to after-change-functions.
+       (wdired-change-to-dired-mode): Remove it from after-change-functions.
+       (wdired-finish-edit): Move invocation of
+       wdired-change-to-dired-mode below invocation of wdired-do-renames,
+       so that the latter runs wdired--restore-dired-filename-prop, but
+       above the invocation of revert-buffer to avoid using
+       wdired-revert, which changes back to wdired-mode.
+       (wdired-search-and-rename): Wrap renaming in unwind-protect and if
+       user types C-g when prompted to change the file name, make sure we
+       return to dired-mode.
+
+2018-07-28  Eli Zaretskii  <address@hidden>
+
+       Make 'tis620-2533' character set be an alias for 'thai-iso8859-11'
+
+       * lisp/simple.el (what-cursor-position): Revert ad-hoc change
+       to work around tis620-2533 charset.
+       * lisp/w32-fns.el: Use thai-iso8859-11 instead of tis620-2533.
+       * lisp/international/mule-conf.el (tis620-2533): Now an alias
+       for thai-iso8859-11, not a separate character set.
+       * lisp/international/fontset.el (charset-script-alist): Add
+       thai-iso8859-11; fix entries for greek and hebrew.
+       (font-encoding-alist, font-encoding-charset-alist): Use
+       thai-iso8859-11 instead of tis620-2533.
+       * lisp/descr-text.el (describe-char): Remove the ad-hoc code
+       that assigns eight-bit-control characters to the eight-bit
+       charset.
+
+2018-07-28  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       bd52f37 (origin/emacs-26) ; Fix last change: only MinGW runtime 5.0.2...
+       024d20f Fix compilation with mingw.org's MinGW 5.x headers
+       38b6748 Update the list of special forms in the ELisp manual
+       8579105 Don't fail to indent-sexp before a full sexp (Bug#31984)
+       d24c5f2 Fix calls to modifications hooks in replace-buffer-contents
+       71a9151 * src/character.c (char_width): Support glyphs with faces.  (...
+       0feb673 Display raw bytes as belonging to 'eight-bit' charset
+       2e2f00f ; * doc/emacs/mule.texi (International Chars): Fix last change.
+       00561b5 Fix inaccurate text in the user manual
+       5cfb7a3 Copyedits in tramp.texi, improved example with bash's readline
+       6f8f358 Minor Tramp doc update
+       2585fcb File Shadowing is not available on MS Windows
+       39da592 ; Minor markup change in indent.texi
+       2f00ffe ; bookmark-jump: Add comment about last change.
+
+2018-07-28  Phil Sainty  <address@hidden>
+
+       * lisp/vc/diff.el (diff-buffer-with-file): Support indirect buffers.
+
+       (Bug#32195)
+
+2018-07-28  João Távora  <address@hidden>
+
+       Fix @include directive in Flymake doc again
+
+       Problem was reintroduced by commit titled:
+       "Mention use of C-h . (display-local-help) in Flymake manual"
+
+       * doc/misc/flymake.texi: Don't @include a relative path.
+
+2018-07-28  Martin Rudalics  <address@hidden>
+
+       Fix problem with 'scroll-bar-adjust-thumb-portion' nil (Bug#32002)
+
+       * lisp/scroll-bar.el (scroll-bar-drag-1): Do not scroll window
+       when its buffer is fully visible and
+       'scroll-bar-adjust-thumb-portion' is nil (Bug#32002).
+
+2018-07-27  Ken Brown  <address@hidden>
+
+       Fix file-name-case-insensitive-p on non-existent files
+
+       * src/fileio.c (Ffile_name_case_insensitive_p): If the file
+       doesn't exist, move up the filesystem tree until an existing
+       directory is found.  Then test that directory for
+       case-insensitivity.  (Bug#32246)
+
+2018-07-27  Stefan Monnier  <address@hidden>
+
+       * lisp/simple.el (event-apply-modifier): Map control+[ to C-[
+
+2018-07-26  Alan Mackenzie  <address@hidden>
+
+       Correctly indent C++ brace lists in member init lists.
+
+       * lisp/progmodes/cc-engine.el (c-guess-basic-syntax; CASE 9B, CASE 9C): 
Set a
+       limit for a backward search to the ":" introducing the member init 
list, when
+       there is one, rather than the enclosing "{" or nil.
+
+2018-07-26  Paul Eggert  <address@hidden>
+
+       * src/editfns.c (syms_of_editfns): Fix typo in previous change.
+
+2018-07-26  Paul Eggert  <address@hidden>
+
+       %o and %x can now format signed integers
+
+       Optionally treat integers as signed numbers with %o
+       and %x format specifiers, instead of treating them as
+       a machine-dependent two’s complement representation.
+       This option is more machine-independent, allows formats
+       like "#x%x" to be useful for reading later, and is
+       better-insulated for future changes involving bignums.
+       Setting the new variable ‘binary-as-unsigned’ to nil
+       enables the new behavior (Bug#32252).
+       This is a simplified version of the change proposed in:
+       https://lists.gnu.org/r/emacs-devel/2018-07/msg00763.html
+       I simplified that proposal by omitting bitwidth modifiers, as
+       I could not find an any example uses in the Emacs source code
+       that needed them and doing them correctly would have been
+       quite a bit more work for apparently little benefit.
+       * doc/lispref/strings.texi (Formatting Strings):
+       Document that %x and %o format negative integers in a
+       platform-dependent way.  Also, document how to format
+       numbers so that the same values can be read back in.
+       * etc/NEWS: Document the change.
+       * src/editfns.c (styled_format): Treat integers as signed
+       numbers even with %o and %x, if binary-as-unsigned is nil.
+       Support the + and space flags with %o and %x, since they’re
+       about signs.
+       (syms_of_editfns): New variable binary-as-unsigned.
+       * test/src/editfns-tests.el (read-large-integer):
+       Test that maximal integers can be read after printing
+       with all integer formats, if binary-as-unsigned is nil.
+
+2018-07-25  Lucas Werkmeister  <address@hidden>
+
+       Notify systemd in daemon-initialized and kill-emacs (Bug#31498)
+
+       With --[bg-]daemon and Type=forking, systemd will only consider the
+       daemon to have fully started up once the original process exits, and
+       will wait until then to start units depending on the Emacs service.  To
+       get the same functionality with --fg-daemon, use Type=notify instead of
+       Type=simple and explicitly send a readiness notification to systemd at
+       the point where the forked process would in --bg-daemon mode notify its
+       parent process and cause it to exit.  Similarly, notify systemd at the
+       beginning of the shutdown process as well.  (Both of these calls are
+       successful no-ops if emacs was not started by systemd.)
+       * etc/emacs.service: Update Type.
+       * src/emacs.c (daemon-initialized) [HAVE_LIBSYSTEMD]:
+       * src/emacs.c (kill-emacs) [HAVE_LIBSYSTEMD]: Call sd_notify().
+
+2018-07-25  Eric Abrahamsen  <address@hidden>
+
+       Fix docstring of gnus-dependencies-add-header
+
+       * lisp/gnus/gnus-sum.el (gnus-dependencies-add-header): Code is
+         correct, but docs had logic of `gnus-summary-ignore-duplicates'
+         backwards: if it's t, the Message-IDs will not be renamed.
+
+2018-07-25  Michael Albinus  <address@hidden>
+
+       Instrument shadowfile{-tests} for error hunting on hydra.
+
+       * lisp/shadowfile.el (shadow-make-fullname): Use changed
+       `tramp-make-tramp-file-name' from Tramp 2.4.
+
+       * test/lisp/shadowfile-tests.el (shadow-test08-shadow-todo):
+       Instrument test.  Suppress errors in cleanup.
+       (shadow-test09-shadow-copy-files): Suppress errors in cleanup.
+
+2018-07-24  Paul Eggert  <address@hidden>
+
+       Move proper-list-p to C
+
+       Since C code can use it and it’s simple, we might as well use C.
+       * lisp/subr.el (proper-list-p): Move to C code.
+       * src/eval.c (signal_error): Simplify by using Fproper_list_p.
+       * src/fns.c (Fproper_list_p): New function, moved here from Lisp.
+
+       Simplify signal_error
+       * src/eval.c (signal_error): Simplify by using FOR_EACH_TAIL_SAFE.
+
+2018-07-24  Paul Eggert  <address@hidden>
+
+       * etc/NEWS: Omit bug# when not needed.
+
+2018-07-24  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       f64c277 (origin/emacs-26) Let bookmark-jump override window-point (Bu...
+       1208aaa Omit keymap from subword-mode docstring (Bug#32212)
+       2b70b54 Prevent line-mode term from showing user passwords
+       5de4441 Check for special filenames in eshell (Bug#30724)
+       1b4b965 Fix indent-sexp of #s(...) (Bug#31984)
+       59e8533 Add save-match-data to abbreviate-file-name (Bug#32201)
+       47f75b1 Fix last change in editfns.c
+       671dc5a Fix calls to buffer modification hooks from replace-buffer-co...
+       cc4ceed ; etc/NEWS: Remove unnecessary reference to a bug number.
+       e0f33ea Fix Bug#32226
+       7308fa0 Improve doc strings of several variables in keyboard.c
+
+2018-07-24  Michael Albinus  <address@hidden>
+
+       Fix typo in `find-alternate-file'
+
+       * lisp/files.el (find-alternate-file): Add missing arguments to
+       `find-file-noselect' call.
+
+2018-07-23  Paul Eggert  <address@hidden>
+
+       (format "%#x" 0) yields "0", not "0x0"
+
+       * doc/lispref/strings.texi (Formatting Strings):
+       * src/editfns.c (Fformat): Document this.
+
+2018-07-23  Paul Eggert  <address@hidden>
+
+       0x%x → %#x in elisp formats
+
+       * lisp/emacs-lisp/cl-print.el (cl-print-object):
+       * lisp/profiler.el (profiler-format-entry):
+       * lisp/progmodes/hideif.el (hif-evaluate-macro):
+       Prefer %#x to 0x%x in elisp formats when formatting arbitrary
+       integers, as it’ll produce more-readable output with negative args
+       should we change how negative values are printed with %x.
+
+2018-07-23  Paul Eggert  <address@hidden>
+
+       positive → nonnegative doc fixes
+
+       * doc/lispref/numbers.texi (Bitwise Operations)
+       (Math Functions):
+       * doc/lispref/strings.texi (Formatting Strings):
+       * src/editfns.c (Fformat):
+       Correct “positive” with “nonnegative” in some documentation.
+
+2018-07-23  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Make nnimap support IMAP namespaces"
+
+       This reverts commit 7b5b3ddb2dfa98d640aff7b5b160f777e22cc794.
+
+       Insufficiently tested before committing -- bugs out several places
+       when not using namespaces.
+
+2018-07-22  Arash Esbati  <address@hidden>
+
+       Add \eqref to RefTeX's reference styles (Bug#32203)
+
+       * lisp/textmodes/reftex-vars.el (reftex-ref-style-alist): Add entry
+       for \eqref provided by amsmath.sty and bind it to "e" key.
+
+2018-07-22  Noam Postavsky  <address@hidden>
+
+       Preserve nonblank whitespace when indenting (Bug#32200)
+
+       * lisp/indent.el (indent-line-to): Remove only spaces and tabs, not
+       any whitespace syntax characters.
+
+2018-07-22  Lars Ingebrigtsen  <address@hidden>
+
+       Add further clarifications to gnus-blocked-images
+
+       * lisp/gnus/gnus-art.el (gnus-blocked-images): Add further
+       clarifications.
+
+2018-07-22  Nikolaus Rath  <address@hidden>
+
+       Make nnimap support IMAP namespaces
+
+       * lisp/gnus/nnimap.el (nnimap-use-namespaces): Introduc new
+       server variable.
+       (nnimap-group-to-imap, nnimap-get-groups): Transform IMAP group
+       names to Gnus group name by stripping / prefixing personal
+       namespace prefix.
+       (nnimap-open-connection-1): Ask server for namespaces and store them.
+
+       * lisp/gnus/nnimap.el (nnimap-request-group-scan)
+       (nnimap-request-create-group, nnimap-request-delete-group)
+       (nnimap-request-rename-group, nnimap-request-move-article)
+       (nnimap-process-expiry-targets)
+       (nnimap-request-update-group-status)
+       (nnimap-request-accept-article, nnimap-request-list)
+       (nnimap-retrieve-group-data-early, nnimap-change-group)
+       (nnimap-split-incoming-mail): Use nnimap-group-to-imap.
+       (nnimap-group-to-imap): New function to map Gnus group names to
+       IMAP folder names.
+
+2018-07-22  Lars Ingebrigtsen  <address@hidden>
+
+       Make async :family 'local failures fail correctly again
+
+       * src/fileio.c (get_file_errno_data): Refactor out into its own
+       function so that we can reuse the error handling from an async
+       context (bug#31901).
+
+       * src/process.c (connect_network_socket): When an async :family
+       'local client fails (with a file error, for instance), mark the
+       process as failed.
+
+2018-07-22  Michael Albinus  <address@hidden>
+
+       thread-join returns the result of finished thread
+
+       * doc/lispref/threads.texi (Basic Thread Functions):
+       * etc/NEWS: Document return value of `thread-join'.
+
+       * src/thread.c (invoke_thread_function, Fmake_thread)
+       (init_main_thread): Set result.
+       (Fthread_join): Propagate signals, and return result.
+       (Vmain_thread): New defvar.
+
+       * src/thread.h (struct thread_state): Add `result' field.
+
+       * test/src/thread-tests.el (threads-join): Test also return value.
+       (threads-join-error): New test.
+       (threads-mutex-signal): Check for propagation of `quit' signal.
+
+2018-07-21  John Shahid  <address@hidden>
+
+       Avoid destroying match data in 'setenv' (Bug#32201)
+
+       * lisp/env.el (setenv,setenv-internal): Replace string-match with
+       string-match-p.
+
+2018-07-21  Ken Brown  <address@hidden>
+
+       Pacify GCC 7 with -Wformat-overflow
+
+       * src/w32term.c (x_draw_glyphless_glyph_string_foreground):
+       Force sprintf to write at most 6 bytes, excluding the
+       terminating null byte.
+
+2018-07-21  Eli Zaretskii  <address@hidden>
+
+       Minor rewording of last change
+
+       * lisp/vc/add-log.el (add-log-dont-create-changelog-file)
+       (add-log--pseudo-changelog-buffer-name)
+       (add-log--changelog-buffer-p, add-change-log-entry): Doc fixes.
+
+       * etc/NEWS: Improve wording of last change.
+
+       * doc/emacs/maintaining.texi (Change Log Commands): Improve
+       wording of last change.
+
+2018-07-21  João Távora  <address@hidden>
+
+       New option to make 'C-x 4 a' use file-less ChangeLog buffers
+
+       * doc/emacs/maintaining.texi (Change Log Commands): Document
+       add-log-dont-create-changelog-file.
+
+       * etc/NEWS (Change Logs Mode): Mention
+       add-log-dont-create-changelog-file.
+
+       * lisp/vc/add-log.el (add-log-file-name): Add comment.
+       (add-log-dont-create-changelog-file): New variable.
+       (add-log--pseudo-changelog-buffer-name)
+       (add-log--changelog-buffer-p): New helpers.
+       (add-log-find-changelog-buffer): New function.
+       (add-log--pseudo-changelog-buffer-name): Respect
+       add-log-dont-create-changelog-file.
+
+       * lisp/vc/log-edit.el (log-edit-changelog-entries): Use
+       add-log-find-changelog-buffer.
+
+2018-07-21  Bozhidar Batsov  <address@hidden>
+
+       Make ielm accept an optional buffer name param
+
+       The ielm buffer name was hardcoded which made it hard for programs to
+       interactively create ielm buffers with different names and switch to
+       them (e.g. perhaps you want to have one ielm buffer for each of the
+       Elisp projects you're working on).
+
+2018-07-21  Eli Zaretskii  <address@hidden>
+
+       Fix recording keyboard macros when input method is active
+
+       * lisp/international/quail.el (quail-start-translation)
+       (quail-start-conversion): Bind inhibit--record-char to t for
+       the first character of a translated sequence.
+
+       * src/keyboard.c (record_char): Don't record events from
+       macros to dribble file, per documentation.
+       (Fopen_dribble_file): Doc fix.
+       (syms_of_keyboard) <inhibit--record-char>: New variable.
+       (record_char): Don't record input event if
+       inhibit--record-char is non-nil.  (Bug#32108)
+
+2018-07-21  Paul Eggert  <address@hidden>
+
+       Report base of out-of-range input fixnums
+
+       * src/lread.c (string_to_number): Report the base of an
+       out-of-range fixnum.  Problem reported by Andy Moreton in:
+       https://lists.gnu.org/r/emacs-devel/2018-07/msg00696.html
+
+2018-07-20  Paul Eggert  <address@hidden>
+
+       * src/fns.c (Feql, Fequal): Improve floating-point doc.
+
+2018-07-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       3e72298 Improve documentation of 'pcase-defmacro rx'
+       ba9b9bb Fix TTY colors breakage by 'clear-face-cache'
+       f56ad42 * admin/MAINTAINERS: Add files maintained by me (Michael Albi...
+       7a258fa Adapt shadowfile.el for Tramp  (Bug#4526, Bug#4846)
+       cb50077 Fix auth-source-delete (Bug#26184)
+       a4767a6 Avoid assertion violations in gnutls.c
+       90110f8 Don't use a literal "C-u" in ispell.el  help message text
+       f4e7f6d Improve documentation of 'seqp'
+       ed13639 Clarify usage and dependencies between several Flyspell features
+
+       Conflicts:
+               etc/NEWS
+               test/lisp/auth-source-tests.el
+
+2018-07-20  Paul Eggert  <address@hidden>
+
+       Simplify w32cygwinx.c and pacify GCC (Bug#32189)
+
+       * src/w32cygwinx.c (format_string): New function.
+       (Fw32_battery_status): Use it.
+
+2018-07-20  Michael Albinus  <address@hidden>
+
+       * lisp/net/trampver.el (customize-package-emacs-version-alist):
+
+       Add Tramp version integrated in Emacs 26.2.
+
+2018-07-19  Paul Eggert  <address@hidden>
+
+       Prefer NILP (x) to EQ (x, Qnil)
+
+       This simplifies the code a bit, and also simplifies some
+       potential future changes slightly (e.g., altering eq vs eql).
+       * src/alloc.c (mark_object):
+       * src/callint.c (fix_command):
+       * src/chartab.c (Fchar_table_range, Fset_char_table_range):
+       * src/dbusbind.c (XD_OBJECT_TO_DBUS_TYPE, xd_signature):
+       * src/dired.c (Fsystem_users):
+       * src/fileio.c (Fdo_auto_save):
+       * src/fns.c (concat):
+       * src/frame.c (get_frame_param, frame_inhibit_resize)
+       (store_in_alist, store_frame_param, x_set_autoraise)
+       (x_set_autolower, x_get_arg):
+       * src/image.c (Fclear_image_cache):
+       * src/intervals.c (intervals_equal):
+       * src/intervals.h (DEFAULT_INTERVAL_P):
+       * src/lread.c (substitute_object_recurse):
+       * src/menu.c (digest_single_submenu)
+       (find_and_call_menu_selection)
+       (find_and_return_menu_selection):
+       * src/nsfns.m (x_set_icon_name, Fx_create_frame):
+       * src/nsmenu.m (ns_menu_show):
+       * src/nsselect.m (ns_string_to_pasteboard_internal)
+       (Fns_selection_exists_p, Fns_selection_owner_p):
+       * src/process.c (Faccept_process_output)
+       (wait_reading_process_output):
+       * src/terminal.c (store_terminal_param):
+       * src/textprop.c (verify_interval_modification):
+       * src/xdisp.c (next_element_from_buffer):
+       * src/xfaces.c (Finternal_set_lisp_face_attribute):
+       * src/xfns.c (x_set_icon_type, Fx_synchronize):
+       * src/xmenu.c (x_menu_show):
+       * src/xselect.c (Fx_selection_owner_p)
+       (Fx_selection_exists_p):
+       * src/xwidget.c (xwidget_view_lookup):
+       Prefer NILP (x) to EQ (x, Qnil).
+
+2018-07-19  Tom Tromey  <address@hidden>
+
+       Fix bignum creation when EMACS_INT is wider than long
+
+       * src/alloc.c (mpz_set_intmax_slow, mpz_set_uintmax_slow): New
+       functions.
+       * src/data.c (arith_driver, Frem, Fmod, ash_lsh_impl, Fadd1)
+       (Fsub1): Use mpz_set_intmax, mpz_set_uintmax.
+       * src/emacs-module.c (module_make_integer): Use mpz_set_intmax.
+       * src/floatfns.c (Fabs): Use mpz_set_intmax.
+       * src/lisp.h (mpz_set_intmax, mpz_set_uintmax): New inline
+       functions.
+       (mpz_set_uintmax_slow, mpz_set_intmax_slow): Declare.
+
+2018-07-19  Tom Tromey  <address@hidden>
+
+       Add missing @end defun
+
+       * doc/lispref/numbers.texi (Bitwise Operations): Add missing @end defun.
+
+2018-07-19  Paul Eggert  <address@hidden>
+
+       Improve doc for floating point ‘=’ vs ‘eql’
+
+       * doc/lispref/numbers.texi (Float Basics, Comparison of Numbers):
+       Improve documentation of ‘=’ vs ‘eq’, ‘eql’ and ‘equal’
+       when NaNs and signed zeros are involved.
+
+2018-07-19  Charles A. Roelli  <address@hidden>
+
+       Add 'font-lock-maximum-decoration' levels for Python
+
+       * etc/NEWS: New entry under Python mode.
+
+       * lisp/progmodes/python.el (python-font-lock-keywords-level-1)
+       (python-font-lock-keywords-level-2)
+       (python-font-lock-keywords-maximum-decoration): New variables
+       based off the incumbent 'python-font-lock-keywords'.
+       (python-font-lock-keywords): Change it to a list of the new
+       symbols, for use in the 'car' of 'font-lock-defaults'.
+       (python-mode): Set the 'car' of 'font-lock-defaults' to the
+       value of 'python-font-lock-keywords', instead of the symbol
+       'python-font-lock-keywords'.
+
+2018-07-18  Paul Eggert  <address@hidden>
+
+       * etc/NEWS: Fix eql typo in previous change.
+
+2018-07-18  Stefan Monnier  <address@hidden>
+
+       * lisp/comint.el: Clean up namespace
+
+       (shell-strip-ctrl-m): Mark as obsolete.
+       (comint-send-invisible): Rename from `send-invisible`.
+       (send-invisible): Make it an obsolete alias.
+       * lisp/net/rlogin.el: Adjust accordingly; Use lexical-binding.
+       * lisp/shell.el: Adjust accordingly.
+
+2018-07-18  Filipp Gunbin  <address@hidden>
+
+       Fix imenu--generic-function after fix for Bug#32024.
+
+       * lisp/imenu.el (imenu--generic-function): Restore returning of nconc
+         result from the function.  Move filtering out empty menus so it is
+         done before removing dummy element and splicing main element into
+         index-alist.
+
+2018-07-18  Paul Eggert  <address@hidden>
+
+       * etc/NEWS: Mention eql etc. NaN fix.
+
+2018-07-18  Paul Eggert  <address@hidden>
+
+       Fix bug with eql etc. on NaNs
+
+       Fix a bug where eql, sxhash-eql, memql, and make-hash-table
+       were not consistent on NaNs.  Likewise for equal,
+       sxhash-equal, member, and make-hash-table.  Some of these
+       functions ignored NaN significands, whereas others treated
+       them as significant.  It's more logical to treat significands
+       as significant, and this typically makes eql a bit more
+       efficient on floats, with just one integer comparison instead
+       of one to three floating-point comparisons.
+       * doc/lispref/numbers.texi (Float Basics): Document that
+       NaNs are never numerically equal, but might be eql.
+       * src/fns.c (WORDS_PER_DOUBLE): Move to top level of this file.
+       (union double_and_words): Now named, and at the top level of this file.
+       (same_float): New function.
+       (Fmemql, Feql, internal_equal, cmpfn_eql): Use it, so that
+       the corresponding functions treat NaNs consistently.
+       (sxhash_float): Simplify based on above-mentioned changes.
+
+       * test/src/fns-tests.el (fns-tests-equality-nan): New test.
+
+2018-07-17  Stefan Monnier  <address@hidden>
+
+       * lisp/net/soap-client.el (soap-type-of): Optimize for Emacs≥26
+
+2018-07-17  Alex  <address@hidden>
+
+       Remove menu name from emacs-lisp-mode-map (Bug#27114)
+
+       * lisp/progmodes/elisp-mode.el (emacs-lisp-mode-map): Don't give a
+       menu name to the top-level map, the menu name is only useful for the
+       menu-map.
+
+2018-07-17  Paul Eggert  <address@hidden>
+
+       Update from gnulib
+
+       This incorporates:
+       2018-07-17 gnulib-tool: limit line length for git send-email
+       * lib/gnulib.mk.in: Regenerate.
+
+2018-07-17  Robert Pluim  <address@hidden>
+
+       Don't check unibyte hostnames for pure-ASCII
+
+       * src/process.c (network_lookup_address_info_1): Only check multibyte
+       hostnames for pure-ASCII.
+
+       * test/src/process-tests.el (unibyte-domain-name): Test unibyte domain
+       names with network-lookup-address-info.
+
+2018-07-17  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This causes config.guess to assume support for shell functions,
+       a safe assumption nowadays.
+       * build-aux/config.guess, build-aux/config.sub: Copy from Gnulib.
+
+2018-07-17  Robert Pluim  <address@hidden>
+
+       Add network-lookup-address-info description
+
+       * doc/lispref/processes.texi (Misc Network): Document
+         network-lookup-address-info.
+
+2018-07-17  Robert Pluim  <address@hidden>
+
+       Add tests for network-lookup-address-info
+
+       * test/src/process-tests.el (lookup-family-specification): Test
+       network-lookup-address-info api.
+       (lookup-unicode-domains): Test that unicode domains fail.
+       (lookup-google): Test that normal lookups succeed.
+       (non-existent-lookup-failure): Check that known non-existent
+       domains fail.
+
+2018-07-17  Robert Pluim  <address@hidden>
+
+       Refactor getaddrinfo usage
+
+       * src/process.c:
+       (network_lookup_address_info_1): New function, does most of the
+       work to call getaddrinfo.  Now checks hostname for pure-ASCII.
+       (Fmake_network_process): Use it.
+       (Fnetwork_lookup_address_info): Likewise.  Error check family
+       argument.
+
+2018-07-17  Michael Albinus  <address@hidden>
+
+       Add variable main-thread, fix Bug#32169
+
+       * doc/lispref/threads.texi (Basic Thread Functions): Add example,
+       how to propagate signals to the main thread.  Describe variable
+       `main-thread'.  Document optional argument CLEANUP of
+       `thread-last-error'.
+
+       * src/thread.c (Fthread_last_error): Add optional argument
+       CLEANUP.  (Bug#32169)
+       (main-thread): New defvar.
+
+       * test/src/thread-tests.el (thread-last-error): Adapt declaration.
+       (main-thread): Declare.
+       (threads-main-thread): New test.
+       (threads-errors): Extend test.
+
+2018-07-16  Charles A. Roelli  <address@hidden>
+
+       Improve description of window configs in 'register-val-describe'
+
+       * etc/NEWS: Describe the change.
+       * lisp/register.el (register-val-describe)
+       [(window-configuration-p (car val))]: Include the shown
+       buffers in the return value to make
+       'register-read-with-preview' more useful.  (Bug#30863)
+
+2018-07-16  Charles A. Roelli  <address@hidden>
+
+       * configure.ac [$HAVE_NS]: Correct build instructions.
+
+       Running 'make install' to test a repo build on macOS used to
+       be required, but is no longer needed.
+
+2018-07-16  Robert Pluim  <address@hidden>
+
+       Implement hostname->ip lookup function
+
+       * src/process.c (conv_sockaddr_to_lisp): Add include_port
+       argument.  Don't put a port in the result if this is false.
+       (conv_addrinfo_to_lisp, Fprocess_datagram_address)
+       (connect_network_socket, network_interface_list)
+       (network_interface_info, server_accept_connection)
+       (init_process_emacs): Update callers.
+       (Fnetwork_lookup_address_info): New function.  Performs hostname to
+       ip address lookups.
+
+       * src/w32.c (network_interface_get_info): Update callers of
+         conv_sockaddr_to_lisp
+
+       * etc/NEWS : mention addition of 'network-lookup-address-info'
+
+2018-07-15  Noam Postavsky  <address@hidden>
+
+       Reject gpg 2.0 for epg configs by default (Bug#23561)
+
+       Previously, gpg2 2.0 would be rejected, but the same version installed
+       as "gpg" would be accepted.
+
+       * lisp/epg-config.el (epg-gpg2-minimum-version): New constant.
+       (epg-config--program-alist) <OpenPGP>: Require a version in 1.4.3..2.0
+       or 2.1.6+., not just anything above 1.4.3.
+       (epg-check-configuration): Accept a list of required version
+       intervals, in addtion to just a single minimum.
+
+2018-07-15  Paul Eggert  <address@hidden>
+
+       * lisp/format.el (format-proper-list-p): New alias.
+
+2018-07-15  Noam Postavsky  <address@hidden>
+
+       Don't test symmetric operations on gpg 2.0 (Bug#23561)
+
+       On the Hydra test machines, which have gpg 2.0, the symmetric tests
+       fail.
+       * test/lisp/epg-tests.el (with-epg-tests): Pass REQUIRE-PUBLIC-KEY to
+       `epg-tests-find-usable-gpg-configuration' and call it before
+       `epg-make-context' so that the latter uses the resulting cached
+       config.
+       (epg-tests-find-usable-gpg-configuration): Only allow gpg 2.0 for
+       symmetric operations.  Clear `epg--configurations' and don't pass
+       NO-CACHE to `epg-find-configuration'.
+       (epg-tests--config-program-alist): Use copy-tree to avoid modifying
+       the epg-config--program-alist cons values.
+       * test/lisp/emacs-lisp/package-tests.el (package-test-signed): Allow
+       running with gpg 2.0.
+
+2018-07-15  Michael Albinus  <address@hidden>
+
+       Precise dav/davs in Tramp manual
+
+       * doc/misc/tramp.texi (GVFS based methods): Mention `owncloud'
+       method for special `dav'/`davs' file names.
+
+2018-07-15  Michael Albinus  <address@hidden>
+
+       Fix Bug#32147
+
+       * test/lisp/net/secrets-tests.el (secrets-test02-collections)
+       (secrets-test03-items): Test for both "Login" or "login"
+       collection.  (Bug#32147)
+
+2018-07-14  Noam Postavsky  <address@hidden>
+
+       Update package.el test for message format changes
+
+       * test/lisp/emacs-lisp/package-tests.el (package-test-signed): Update
+       the expected message.  The message was changed in 2018-06-25 "Reformat
+       package.el message strings for future l10n".
+       (with-package-test, with-fake-help-buffer): Add debug declarations.
+
+2018-07-14  Noam Postavsky  <address@hidden>
+
+       Fix gpg detection for tests (Bug#23561)
+
+       * test/lisp/emacs-lisp/package-tests.el (package-test-signed): Stop
+       using epg-check-configuration and ignore-errors, they're redundant
+       because epg-find-configuration already does all that.
+       * test/lisp/epg-tests.el (epg-tests-find-usable-gpg-configuration):
+       Remove tracing.
+       (with-epg-tests): Skip test if no gpg config is found.
+       (epg-decrypt-1 epg-roundtrip-1, epg-sign-verify-1, epg-sign-verify-2)
+       (epg-import-1): Don't check gpg configuration at top-level, rely on
+       `with-epg-tests' instead.  Checking the gpg configuration requires a
+       valid HOME (or GNUPGHOME), which is provided by `with-epg-tests'.
+
+2018-07-14  Jimmy Yuen Ho Wong  <address@hidden>
+
+       Show full issuer and subject distinguished names
+
+       CAs like Let's Encrypt do not put O and OU into the Subject's DN.
+       Similarly, O and OU are often used to indicate Domain Validated or
+       Organization Validation as opposed to the actual OU.
+
+       Issuer CN often contains the issuer's server or as an indication of
+       Extended Validation certificate as opposed to the actual issuer
+       organization.
+
+       The Hostname part as extracted from the Subject is also confusing, as
+       in the case of a hostname mismatch, the Subject's CN, which
+       `nsm-format-certificate' naively calls the Hostname, will not actually
+       match the hostname in the problem preamble.
+
+       * lisp/net/nsm.el (nsm-format-certificate): Show full DN of Issuer and
+         Subject.  Remove Hostname.
+         (nsm-certificate-part, nsm-parse-subject): Removed.
+
+2018-07-14  Jimmy Yuen Ho Wong  <address@hidden>
+
+       Full certificate chain details for NSM
+
+       * lisp/net/nsm.el (nsm-check-tls-connection): Fix issue with plural
+         problems in message.  Prefix every problem with a bullet.
+         (nsm-query-user): Add new view the full certificate chain by
+         pressing d.
+         (nsm-format-certificate): Improve basic certificate and session info
+         formatting.
+
+       * src/gnutls.c (emacs_gnutls_certificate_export_pem): New function.
+         (gnutls_certificate_details): Rename to
+         emacs_gnutls_certificate_details.  Add :pem to result list.
+         (Fgnutls_format_certificate):  New function for formatting a PEM to
+         human-readable text.
+
+2018-07-14  Jimmy Yuen Ho Wong  <address@hidden>
+
+       Add option to bypass NSM TLS checks on local networks
+
+       * lisp/net/net-utils.el (nslookup-host-ipv4, nslookup-host-ipv6,
+         ipv6-expand): New functions to lookup IPv4 and IPv6 addresses from
+         DNS.
+
+       * lisp/net/nsm.el (nsm-trust-local-network, nsm-should-check,
+         nsm-check-tls-connection, nsm-check-plain-connection): New defcustom
+         `nsm-trust-local-network' lets users customize whether NSM should
+         check for TLS problems when connecting to the hosts on their local
+         networks.  `nsm-should-check' determines whether
+         `nsm-check-tls-connection' and `nsm-check-plain-connection' should
+         perform checks.  localhost is implicitly trusted, thus checks are
+         never performed there.
+
+2018-07-14  Jimmy Yuen Ho Wong  <address@hidden>
+
+       Revamp Network Security manager checks for TLS
+
+       * lisp/net/nsm.el (network-security-level, nsm-level,
+         nsm-new-fingerprint-ok-p): Remove `paranoid' level and related code.
+
+       * lisp/net/nsm.el (nsm-tls-checks, nsm-tls-check-version,
+           nsm-tls-check-compression, nsm-tls-check-renegotiation-info-ext,
+           nsm-tls-check-verify-cert, nsm-tls-check-same-cert,
+           nsm-tls-check-null-suite, nsm-tls-check-export-kx,
+           nsm-tls-check-anon-kx, nsm-tls-check-md5-sig,
+           nsm-tls-check-rc4-cipher, nsm-tls-check-dhe-prime-kx,
+           nsm-tls-check-sha1-sig, nsm-tls-check-ecdsa-cbc-cipher
+           nsm-tls-check-dhe-kx, nsm-tls-check-rsa-kx,
+           nsm-tls-check-3des-cipher, nsm-tls-check-cbc-cipher,
+           nsm-save-fingerprint-maybe, nsm-tls-post-check-functions): New
+           options and functions for checking TLS handshake problems.
+
+       * lisp/net/nsm.el (nsm-check-certificate,
+         network-security-protocol-checks,
+         nsm-protocol-check--diffie-hellman-prime-bits,
+         nsm-protocol-check--3des, nsm-protocol-check--rc4,
+         nsm-protocol-check--signature-sha1,
+         nsm-protocol-check--intermediate-sha1, nsm-protocol-check--ssl,
+         nsm-check-protocol): Remove in favor of `nsm-tls-checks' and
+         `nsm-tls-check-*' functions.
+
+       * lisp/net/nsm.el (nsm-verify-connection): Ensure connection is
+         checked even when `network-security-level' is `low'.
+
+       * lisp/net/nsm.el (nsm-check-tls-connection): Batch all problems found
+         before querying the user.
+
+       * lisp/net/nsm.el (nsm--encryption): Renamed to `nsm-cipher-suite'.
+
+       * lisp/net/nsm.el (nsm-fingerprint-ok-p): No longer prompt when
+         certificate fingerprints mismatch.  Returns a boolean instead when
+         the fingerprint of the certificate received matches the saved
+         fingerprints.
+
+       * lisp/net/nsm.el (nsm-query): Change signature.  Accepts a list of
+         problems and a preformatted message instead of just a message format
+         and the arguments for the message.
+
+       * lisp/net/nsm.el (nsm-query-user): Change signature.  Accepts a
+         preformatted message and the peer status of the handshake instead of
+         a message format, its arguments and the certificate for the host.
+
+       * lisp/net/nsm.el (nsm-save-host): Change signature.  Accepts a list of
+         problems after the WHAT parameter.  Saves multiple fingerprints for
+         the same host in case the host load balances a TLS server with more
+         than one certificates signed with different keys.  Makes sure
+         conditions are not removed when updating a fingerprint.
+
+       * lisp/net/nsm.el (nsm-format-certificate): Display the TLS handshake's
+         renegotiation info extension, compression level, encrypt-then-MAC
+         extension, and key exchange prime bit length.
+
+       * src/gnutls.c (gnutls-peer-status-warning-describe,
+         gnutls-peer-status): Check for certificate verification problems
+         introduced since GnuTLS 3.1.
+
+       * src/gnutls.c (gnutls-peer-status): `:compression', `:encrypt-then-mac'
+         and `:safe-renegotiation' are now contained in the peer status
+         result return value.
+
+2018-07-14  Jimmy Yuen Ho Wong  <address@hidden>
+
+       Set standard value of `gnutls-min-primes-bits' to nil
+
+       * lisp/net/gnutls.el (gnutls-min-prime-bits): Set standard value to
+         nil in order to let GnuTLS manage the minimum DH prime bits
+         accepted.
+
+2018-07-14  Jimmy Yuen Ho Wong  <address@hidden>
+
+       Check TLS certs against CRL
+
+       * lisp/net/gnutls.el (gnutls-boot-parameters): Return
+         `gnutls-crlfiles' in `:crlfiles'.
+         (gnutls-crlfiles): New defcustom.
+         (gnutls--get-files): New defun.
+         (gnutls-trustfiles, gnutls-crlfiles): Delegate to
+         `gnutls--get-files' to return a list of filenames, accepts glob 
pattern.
+
+2018-07-14  Charles A. Roelli  <address@hidden>
+
+       Add to documentation of 'jump-to-register'
+
+       * lisp/register.el (jump-to-register):
+       * doc/emacs/regs.texi (Position Registers): Document that
+       jumping to a register can push the mark.
+
+2018-07-14  Jonathan Kyle Mitchell  <address@hidden>
+
+       Avoid infloop in redisplay due to faulty mode-line properties
+
+       * src/xdisp.c (safe_set_text_properties): New function.
+       (display_mode_element): Call Fset_text_properties through
+       internal_condition_case_n, using safe_set_text_properties as a
+       wrapper.  (Bug#32038)
+
+2018-07-13  Stefan Monnier  <address@hidden>
+
+       * lisp/vc/diff-mode.el (diff-font-lock-prettify): New var
+
+       (diff--font-lock-prettify): New function.
+       (diff-font-lock-keywords): Use it.
+
+2018-07-13  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       17ebb6e (origin/emacs-26) Use consistent function names in thread-tes...
+       1c86229 Fix format error in Faccept_process_output
+       b38b91a Lessen stack consumption in recursive read1
+       3eb4603 Match w32 paths in grep sans --null hits (Bug#32051)
+       5cc7c4b Fix previous make-network-process change
+       d6a1b69 Another documentation improvement in flyspell.el
+       9b49a8e Improve documentation of Flyspell
+       3744fda Provide feature 'threads
+       ef9025f Save the server alias on reconnect (Bug#29657)
+       db3874b Refer to "proper lists" instead of "true lists"
+       35e0305 Avoid turning on the global-minor-mode recursively
+       51bf4e4 Fix Bug#32085
+
+2018-07-13  Basil L. Contovounesios  <address@hidden>
+
+       Tweak subr-x.el substring functions
+
+       * lisp/emacs-lisp/subr-x.el (string-join): #'-quote function symbol.
+       (string-trim-left, string-trim-right):
+       Make better use of substring for minor speedup.
+       * test/lisp/emacs-lisp/subr-x-tests.el
+       (subr-x-test-string-trim-left, subr-x-test-string-trim-right)
+       (subr-x-test-string-remove-prefix)
+       (subr-x-test-string-remove-suffix): New tests.
+
+2018-07-13  Basil L. Contovounesios  <address@hidden>
+
+       Minor cus-theme.el simplifications
+
+       * lisp/cus-theme.el (custom-new-theme-mode, customize-themes)
+       (custom-theme-choose-mode): Use setq-local.
+       (customize-create-theme): Ditto.  Use delete-all-overlays.
+       (describe-theme-1, custom-theme-summary): Simplify logic.
+
+2018-07-13  Basil L. Contovounesios  <address@hidden>
+
+       Minor custom.el simplifications
+
+       * lisp/custom.el (custom-quote): Duplicate macroexp-quote.
+       (custom-load-symbol, customize-mark-to-save, customize-mark-as-set)
+       (custom-theme-name-valid-p, enable-theme, custom-enabled-themes)
+       (disable-theme): Simplify logic.
+
+2018-07-13  Basil L. Contovounesios  <address@hidden>
+
+       * lisp/cus-theme.el: Use lexical-binding
+
+2018-07-13  Basil L. Contovounesios  <address@hidden>
+
+       * lisp/custom.el: Use lexical-binding
+
+       Remove duplicate 'Custom Themes' comment heading.
+       (deftheme, custom-declare-theme): Fix advertised calling convention.
+       (custom-enabled-themes): Fix message grammar.
+
+2018-07-13  Basil L. Contovounesios  <address@hidden>
+
+       Fix custom-available-themes file expansion
+
+       For discussion, see thread starting at
+       https://lists.gnu.org/archive/html/emacs-devel/2018-05/msg00222.html.
+       * lisp/custom.el: (custom-available-themes): Use directory-files
+       instead of performing arbitrary wildcard expansion in file names.
+       (custom-theme--load-path): Document return value.
+       * test/lisp/custom-tests.el: New file.
+       (custom-theme--load-path): New test.
+
+2018-07-13  Basil L. Contovounesios  <address@hidden>
+
+       Disable no-byte-compile in built-in themes
+
+       * etc/themes/adwaita-theme.el:
+       * etc/themes/deeper-blue-theme.el:
+       * etc/themes/dichromacy-theme.el:
+       * etc/themes/leuven-theme.el:
+       * etc/themes/light-blue-theme.el:
+       * etc/themes/manoj-dark-theme.el:
+       * etc/themes/misterioso-theme.el:
+       * etc/themes/tango-dark-theme.el:
+       * etc/themes/tango-theme.el:
+       * etc/themes/tsdh-dark-theme.el:
+       * etc/themes/tsdh-light-theme.el:
+       * etc/themes/wheatgrass-theme.el:
+       * etc/themes/whiteboard-theme.el:
+       * etc/themes/wombat-theme.el: Disable no-byte-compile.
+
+       https://lists.gnu.org/archive/html/emacs-devel/2018-01/msg00614.html
+       https://lists.gnu.org/archive/html/emacs-devel/2018-02/msg00060.html
+
+2018-07-13  Basil L. Contovounesios  <address@hidden>
+
+       Improve loading of byte-compiled custom themes
+
+       * lisp/custom.el (load-theme):
+       Load byte-compiled file of safe themes when available.
+
+       https://lists.gnu.org/archive/html/emacs-devel/2018-01/msg00614.html
+       https://lists.gnu.org/archive/html/emacs-devel/2018-02/msg00060.html
+
+2018-07-13  Robert Pluim  <address@hidden>
+
+       Add GMP to emacs_config_features
+
+       * configure.ac : Add GMP to emacs_config_features.  This allows us
+       to determine whether the built-in gmp-mini is being used or not.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Document bignums
+
+       * doc/lispref/numbers.texi (Numbers, Integer Basics)
+       (Predicates on Numbers, Comparison of Numbers)
+       (Arithmetic Operations, Bitwise Operations): Update for bignums.
+       * doc/lispref/objects.texi (Integer Type, Type Predicates):
+       Update for bignums.
+       * etc/NEWS: Update for bigums.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Bignum fixes for byte-compiler and bytecode interpreter
+
+       * lisp/emacs-lisp/byte-opt.el: Mark bignump and fixnump as
+       side-effect-and-error-free-fns.
+       * src/bytecode.c (exec_byte_code): Handle bignums.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Use fixnump rather than integerp in some spots
+
+       * src/buffer.c (syms_of_buffer): Use Qfixnump, not Qintegerp.
+       * src/data.c (syms_of_data): Define fixnump symbol.
+       * src/lisp.h (lisp_h_CHECK_FIXNUM): Use Qfixnump.
+       (struct Lisp_Buffer_Objfwd): Update comment.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Make ash and lsh handle bignums
+
+       * src/data.c (ash_lsh_impl): Handle bignums.
+       * test/src/data-tests.el (data-tests-ash-lsh): New test.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Make logb handle bignums
+
+       * src/floatfns.c (Flogb): Handle bignums.
+       * test/src/floatfns-tests.el (bignum-logb): New test.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Make % and mod handle bignums
+
+       * src/data.c (Frem, Fmod): Handle bignums.
+       * src/lisp.h (CHECK_INTEGER_COERCE_MARKER): New macro.
+       * test/src/data-tests.el (data-tests-check-sign)
+       (data-tests-%-mod): New tests.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Let C modules access bignum values
+
+       * src/emacs-module.c (module_extract_integer, module_make_integer):
+       Handle bignums.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Make min and max handle bignums
+
+       * src/data.c (minmax_driver): Handle bignums.
+       * test/src/data-tests.el (data-tests-minmax): New test.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Make logcount handle bignums
+
+       * src/data.c (Flogcount): Handle bignums.
+       * test/src/data-tests.el (data-tests-logcount): New test.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Make lognot handle bignums
+
+       * src/data.c (Flognot): Handle bignums.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Make 1+ and 1- handle bignums
+
+       * src/data.c (Fadd1, Fsub1): Handle bignums.
+       * test/src/data-tests.el (data-tests-1+, data-tests-1-): New tests.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Make abs handle bignums
+
+       * src/floatfns.c (Fabs): Handle bignums.
+       * test/src/floatfns-tests.el (bignum-abs): New test.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Allow conversion of bignums to floats
+
+       * src/floatfns.c (extract_float, Ffloat): Handle bignums.
+       * src/lisp.h (XFLOATINT): Handle bignums.
+       * test/src/floatfns-tests.el (bignum-to-float): New test.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Make format handle bignums
+
+       * src/editfns.c (styled_format): Handle bignums.
+       * test/src/editfns-tests.el (read-large-integer): Update.
+       (format-bignum): New test.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Make number-to-string work for bignums
+
+       * src/data.c (Fnumber_to_string): Handle bignum.
+       * test/src/data-tests.el (data-tests-number-to-string): New test.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Add some bignum tests
+
+       * test/src/data-tests.el (data-tests-bignum, data-tests-+)
+       (data-tests-/, data-tests-number-predicates): New tests.
+       * test/src/fns-tests.el (test-bignum-eql): New test.
+       * test/src/lread-tests.el (lread-long-hex-integer): Expect bignum.
+       * test/src/print-tests.el (print-bignum): New test.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Make arithmetic work with bignums
+
+       * src/data.c (free_mpz_value): New function.
+       (arith_driver): Rewrite.
+       (float_arith_driver): Handle bignums.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Make comparison operators handle bignums
+
+       * src/data.c (bignumcompare): New function.
+       (arithcompare): Handle bignums.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Make the reader accept bignums
+
+       * src/data.c (Fstring_to_number): Update.
+       * src/lisp.h (S2N_OVERFLOW_TO_FLOAT): Remove.
+       * src/lread.c (free_contents): New function.
+       (read_integer): Handle bignums.
+       (read1): Update.
+       (string_to_number): Handle bignums.
+       (syms_of_lread): Remove read-integer-overflow-as-float.
+       * src/process.c (Fsignal_process): Update.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Make eql work for bignums
+
+       * src/fns.c (Feql, internal_equal): Handle bignums.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Provide new functions to create bignums
+
+       * src/alloc.c (make_bignum_str, make_number): New functions.
+       * src/lisp.h (make_bignum_str, make_number): Declare.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Introduce the bignum type
+
+       * src/alloc.c (mark_object): Handle Lisp_Misc_Bignum.
+       (sweep_misc): Call mpz_clear for Lisp_Misc_Bignum.
+       * src/data.c (Ftype_of): Handle Lisp_Misc_Bignum.
+       (Fintegerp, Finteger_or_marker_p, Fnatnump, Fnumberp)
+       (Fnumber_or_marker_p): Update for bignum.
+       (Ffixnump, Fbignump): New defuns.
+       (syms_of_data): Update.
+       * src/emacs.c (xrealloc_for_gmp, xfree_for_gmp): New functions.
+       (main): Call mp_set_memory_functions.
+       * src/lisp.h (enum Lisp_Misc_Type) <Lisp_Misc_Bignum>: New constant.
+       (struct Lisp_Bignum): New.
+       (union Lisp_Misc): Add u_bignum.
+       (BIGNUMP, XBIGNUM, INTEGERP, NATNUMP, NUMBERP, CHECK_NUMBER)
+       (CHECK_INTEGER, CHECK_NUMBER_COERCE_MARKER): New functions.
+       * src/print.c (print_object): Handle Lisp_Misc_Bignum.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Add configury for GMP library
+
+       * configure.ac (GMP_LIB, GMP_OBJ): New substs.
+       * src/Makefile.in (GMP_OBJ, GMP_OBJ): New variables.
+       (base_obj): Add GMP_OBJ.
+       (LIBES): Add GMP_LIB.
+       * src/mini-gmp.h: New file.
+       * src/mini-gmp.c: New file.
+
+2018-07-12  Tom Tromey  <address@hidden>
+
+       Rename integerp->fixnum, etc, in preparation for bignums
+
+       * src/json.c, src/keyboard.c, src/keyboard.h, src/keymap.c,
+       src/kqueue.c, src/lcms.c, src/lisp.h, src/lread.c, src/macros.c,
+       src/marker.c, src/menu.c, src/minibuf.c, src/msdos.c, src/print.c,
+       src/process.c, src/profiler.c, src/search.c, src/sound.c,
+       src/syntax.c, src/sysdep.c, src/term.c, src/terminal.c,
+       src/textprop.c, src/undo.c, src/w16select.c, src/w32.c,
+       src/w32console.c, src/w32cygwinx.c, src/w32fns.c, src/w32font.c,
+       src/w32inevt.c, src/w32proc.c, src/w32select.c, src/w32term.c,
+       src/w32uniscribe.c, src/widget.c, src/window.c, src/xdisp.c,
+       src/xfaces.c, src/xfns.c, src/xfont.c, src/xftfont.c, src/xmenu.c,
+       src/xrdb.c, src/xselect.c, src/xterm.c, src/xwidget.c: Rename
+       INTEGERP->FIXNUM, make_number->make_fixnum, CHECK_NUMBER->CHECK_FIXNUM,
+       make_natnum->make_fixed_natum, NUMBERP->FIXED_OR_FLOATP,
+       NATNUMP->FIXNATP, CHECK_NATNUM->CHECK_FIXNAT.
+
+2018-07-12  Noam Postavsky  <address@hidden>
+
+       Speed up smerge-refine-regions by avoiding fsync
+
+       * lisp/vc/smerge-mode.el (smerge-refine-regions): Bind
+       write-region-inhibit-fsync to t.  This was reported in
+       https://github.com/magit/magit/pull/2834 to give a noticable speedup.
+
+2018-07-12  Noam Postavsky  <address@hidden>
+
+       Don't skip epg-tests even with gpg 2.0 (Bug#23561)
+
+       * test/lisp/epg-tests.el (epg-tests--config-program-alist): New
+       constant, which allows gpg2 version 2.0+.
+       (epg-tests-find-usable-gpg-configuration): Pass it to
+       epg-find-configuration.
+
+2018-07-12  Stefan Monnier  <address@hidden>
+
+       Fix the bootstrap differently, so zerop can be where it belongs
+
+       Suggested by Robert Pluim <address@hidden>.
+
+       * lisp/emacs-lisp/byte-run.el (defun-declarations-alist): Avoid 
cadr/cddr.
+       * lisp/subr.el (zerop): Un-revert 
2018-07-10T23:08:58-07:00!address@hidden.
+
+2018-07-11  Glenn Morris  <address@hidden>
+
+       Unbreak bootstrap
+
+       * lisp/subr.el (zerop): Revert previous change, which caused
+       bootstrap to fail with void function cadr.
+
+2018-07-10  Stefan Monnier  <address@hidden>
+
+       * lisp/vc/diff-mode.el: Perform hunk refinement from font-lock
+
+       Remove redundant :group arguments.
+       (diff-font-lock-refine): New var.
+       (diff--refine-hunk): New function, extracted from diff-refine-hunk.
+       (diff-refine-hunk): Use it.
+       (diff--font-lock-refine--refresh): New function.
+       (diff--font-lock-refined): New function.
+       (diff-font-lock-keywords): Use it.
+
+2018-07-10  Filipp Gunbin  <address@hidden>
+
+       Fix Bug#32107
+
+       * lisp/progmodes/sql.el (sql-buffer-live-p): Fix handling of optional
+         connection argument.  (Bug#32107)
+
+2018-07-10  Jonathan Kyle Mitchell  <address@hidden>
+
+       Fix infinite recursion in eshell/clear (Bug#31326)
+
+       * lisp/eshell/esh-mode.el (eshell/clear): Bind
+       eshell-input-filter-functions to nil to prevent entries like
+       eshell-smart-display-setup from causing infinite recursion.
+
+2018-07-10  Noam Postavsky  <address@hidden>
+
+       * lisp/indent.el (indent-line-to): Fix dedenting of tabs.
+
+2018-07-09  Paul Eggert  <address@hidden>
+
+       * lisp/format.el (format-annotate-single-property-change): Simplify.
+
+2018-07-09  Basil L. Contovounesios  <address@hidden>
+
+       Add predicate proper-list-p
+
+       For discussion, see emacs-devel thread starting at
+       https://lists.gnu.org/archive/html/emacs-devel/2018-04/msg00460.html.
+
+       * lisp/subr.el (proper-list-p): New function.
+       Implementation suggested by Paul Eggert <address@hidden> in
+       https://lists.gnu.org/archive/html/emacs-devel/2018-06/msg00138.html.
+       * doc/lispref/lists.texi (List Elements):
+       * etc/NEWS: Document proper-list-p.
+       * lisp/org/ob-core.el (org-babel-insert-result):
+       * lisp/emacs-lisp/byte-opt.el (byte-optimize-if):
+       * lisp/emacs-lisp/cl-macs.el (cl--make-usage-args): Use proper-list-p.
+       * lisp/emacs-lisp/ert.el (ert--proper-list-p): Remove.
+       Replaced by proper-list-p in lisp/subr.el.
+       (ert--explain-equal-rec): Use proper-list-length.
+       * lisp/format.el (format-proper-list-p): Remove.
+       Replaced by proper-list-p in lisp/subr.el.
+       (format-annotate-single-property-change): Use proper-list-p.
+       * test/lisp/emacs-lisp/ert-tests.el (ert-test-proper-list-p):
+       Move from here...
+       * test/lisp/subr-tests.el (subr-tests--proper-list-length):
+       ...to here, mutatis mutandis.
+
+2018-07-09  Noam Postavsky  <address@hidden>
+
+       Respect field boundaries in indent-line-to (Bug#32014)
+
+       * lisp/indent.el (indent-line-to): Use the back-to-indentation point
+       as the end-point of whitespace removal, rather than
+       backward-to-indentation which doesn't respect field boundaries.
+       * test/lisp/emacs-lisp/lisp-mode-tests.el
+       (lisp-indent-with-read-only-field): Don't expect to fail.
+
+2018-07-09  Noam Postavsky  <address@hidden>
+
+       Merge from emacs-26
+
+       db3f779780 ; Test for Bug#32014
+       90d95b000c Explicitly reject :server and :nowait (Bug#31903)
+       917158f8c9 Fix Bug#32090
+
+       # Conflicts:
+       #       src/process.c
+
+2018-07-09  Noam Postavsky  <address@hidden>
+
+       Merge from emacs-26
+
+       65889a6d12 Fix bootstrap infloop in GNU/Linux alpha
+       48efd1c98b Minor fix of a recent documentation change
+       3302b7cd7f Mention the NSM in the gnutls variable doc strings
+       40c2ce743b Remove test code from last commit
+       e02d8e29c6 Fix Bug#32084
+       da5d6dbe39 Fix (length NON-SEQUENCE) documentation
+
+2018-07-09  Sam Steingold  <address@hidden>
+
+       dired-do-find-regexp: Use rgrep-find-ignored-directories.
+
+2018-07-08  Paul Eggert  <address@hidden>
+
+       Fix etc/HELLO searching in grep.el
+
+       * lisp/progmodes/grep.el (grep-compute-defaults):
+       Search for "^Copyright", not "^English", as the latter is no
+       longer present in etc/HELLO and the former is more likely to
+       survive future changes to etc/HELLO (Bug#32093).
+
+2018-07-08  Paul Eggert  <address@hidden>
+
+       Fix floating point exceptions on Alpha (Bug#32086)
+
+       * admin/merge-gnulib (GNULIB_MODULES): Add fpieee.
+       * m4/fpieee.m4: New file, copied from Gnulib.
+       * m4/gnulib-comp.m4: Regenerate.
+
+2018-07-08  Eli Zaretskii  <address@hidden>
+
+       Minor improvements in recent NSM documentation changes
+
+       * doc/emacs/misc.texi (Network Security): Improve wording and
+       markup of last change.
+
+       * src/gnutls.c (Fgnutls_peer_status): Doc fix.
+
+       * etc/NEWS: Improve wording of last change.
+
+2018-07-08  Lars Ingebrigtsen  <address@hidden>
+
+       Fix typo in sha1-intermediate check
+
+       * lisp/net/nsm.el (nsm-protocol-check--intermediate-sha1): Allow
+       storing the exception with a correct name.
+
+2018-07-08  Lars Ingebrigtsen  <address@hidden>
+
+       Document network-security-protocol-checks better
+
+       * doc/emacs/misc.texi (Network Security): Rearrange the
+       network-security-protocol-checks documentation and try to explain
+       more what this all means and what checks are triggered.
+
+2018-07-08  Lars Ingebrigtsen  <address@hidden>
+
+       NSM-related doc fixes
+
+       * src/gnutls.c (Fgnutls_peer_status): Mention :certificates in the
+       doc string.
+
+       * etc/NEWS: Mention how to switch off the additional TLS checks.
+
+2018-07-07  Glenn Morris  <address@hidden>
+
+       * lisp/imenu.el: Require cl-lib, not internal components of same.
+
+       * admin/make-tarball.txt, admin/release-process: Refcard tweaks.
+
+2018-07-07  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       a427de9 (origin/emacs-26) Fix bug #11732
+       3a04e15 Improve documentation of 'emacs-lock-mode'
+       9d6ca5a * lisp/imenu.el (imenu-generic-expression): Doc fix.  (Bug#32...
+       fdd7e7d Improve indexing of 'eval-defun' in ELisp manual
+       10af989 Fix (length CIRCULAR) documentation
+       271d1f7 Tramp editorials
+       4abf94f Clarify and improve doc strings of 'eval-last-sexp' and friends
+       6cfc7a7 Automate upload of Emacs manuals to gnu.org
+       b73cde5 Fix MH-E mail composition with GNU Mailutils (SF#485)
+       0dce5e5 Speed up 'replace-buffer-contents' some more
+       00fdce0 * doc/emacs/docstyle.texi: Avoid messing up the html output.
+
+       Conflicts:
+               admin/make-tarball.txt
+
+2018-07-07  Drew Adams  <address@hidden>
+
+       Fix 2 minor bugs in 'imenu--generic-function'
+
+       * lisp/imenu.el (imenu--generic-function): Move point to START
+       before checking whether the current item is inside a comment
+       or a string.  Remove any empty menus that could have been
+       added before returning.  (Bug#32024)
+
+2018-07-07  John Shahid  <address@hidden>
+
+       Keep interactive uses of 'recenter' backward compatible (Bug#31325)
+
+       * src/window.c (Frecenter): Change the interactive spec to always pass
+       a non-nil value to the REDISPLAY argument when called interactively.
+       * lisp/window.el (recenter-top-bottom): Make sure 'recenter's second
+       argument is non-nil everywhere.
+       * doc/emacs/windows.texi (Textual Scrolling): Update documentation of
+       'recenter'.
+
+2018-07-07  Eli Zaretskii  <address@hidden>
+
+       Documentation followup for bug#32029
+
+       * etc/NEWS: Mention 'xref-find-definitions-at-mouse'
+
+       * doc/emacs/maintaining.texi (Looking Up Identifiers):
+       Document 'xref-find-definitions-at-mouse'.
+
+2018-07-07  Tobias Gerdin  <address@hidden>  (tiny change)
+
+       New function 'xref-find-definitions-at-mouse'
+
+       * lisp/progmodes/xref.el (xref-find-definitions-at-mouse): New
+       function.  (Bug32029)
+
+2018-07-07  Eli Zaretskii  <address@hidden>
+
+       Fix recent change in window.c
+
+       * src/window.c (scroll_command): Fix minor inefficiency in
+       last change: don't call Fset_buffer if the buffer is already set to be
+       what we want.  (Bug#31988)
+
+2018-07-06  Paul Eggert  <address@hidden>
+
+       Update from gnulib
+
+       This incorporates:
+       2018-07-04 gnulib-tool: minor tweaks for --gnu-make
+       * build-aux/config.guess, build-aux/config.sub: Copy from Gnulib.
+       * lib/gnulib.mk.in: Regenerate.
+
+2018-07-06  Basil L. Contovounesios  <address@hidden>
+
+       Fix scrolling
+
+       * src/window.c (scroll_command): Fix scrolling.
+
+2018-07-04  Michael Albinus  <address@hidden>
+
+       * lisp/shell.el (shell-completion-vars):
+
+       Set `comint-file-name-prefix' to "" for local default directory.
+
+2018-07-03  Paul Eggert  <address@hidden>
+
+       Adjust to Gnulib change with -Wswitch-default
+
+       * configure.ac: Simplify by not bothering to omit
+       -Wswitch-default, as Gnulib no longer enables it by default.
+
+2018-07-03  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2018-07-01 getloadavg: don't redefine WINDOWS32
+       2018-07-01 manywarnings: omit -Wswitch-default
+       * build-aux/config.sub, lib/getloadavg.c, m4/manywarnings.m4:
+       Copy from Gnulib.
+
+2018-07-03  Tom Tromey  <address@hidden>
+
+       Fix Tcl indentation in a namespace
+
+       Fixes bug#32035
+       * lisp/progmodes/tcl.el (tcl-proc-list): Add "namespace".
+       * test/lisp/progmodes/tcl-tests.el (tcl-mode-namespace-indent): New
+       test.
+
+2018-07-03  Stefan Monnier  <address@hidden>
+
+       * lisp/mail/sendmail.el: Use lexical-binding
+
+       (mail-recover-1): Declare dired-trivial-filenames.
+
+2018-07-03  Paul Eggert  <address@hidden>
+
+       Fix typo in --with-x-toolkit=no code
+
+       * src/xmenu.c (pop_down_menu) [!USE_X_TOOLKIT && !USE_GTK]:
+       Fix type typo introduced by 2018-06-14T22:59:08!address@hidden.
+
+2018-07-03  João Távora  <address@hidden>
+
+       Adjust previous jsonrpc change
+
+       (nth 2) is probably a better alternative to caddr, and in Emacs 26.1
+       we can pass 0 as :service to automatically find an available port.
+
+       * lisp/jsonrpc.el (jsonrpc--call-deferred): Use cl-caddr.
+
+       * test/lisp/jsonrpc-tests.el
+       (jsonrpc--call-with-emacsrpc-fixture): Pass 0 as :service to when
+       making the listen server.
+
+2018-07-02  Glenn Morris  <address@hidden>
+
+       * lisp/mail/sendmail.el (mail-from-style):
+       Improve obsolescence message.
+
+2018-07-02  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       fc5cae7 ; Fix ChangeLog typo.
+       e17a5e5 ; make change-history-commit
+       f205928 * etc/HISTORY: Cite Brinkoff on early history.
+       4e58ca8 Document internal use of 'above-suspended' z-group frame para...
+       4bd43b0 Increase max-lisp-eval-depth adjustment while in debugger (bu...
+       ab98352 Improve on last change in replace-buffer-contents
+       2f149c0 Fix a factual error in Introduction to Emacs Lisp
+       8ad50a3 ; * lisp/files.el (buffer-offer-save): Doc fix.  (Bug#32000)
+       c80f31f Minor improvements in documentation of imenu.el
+       8ebb683 Avoid errors with recentering in 'skeleton-insert'
+       e980a3c * src/lisp.h: Omit obsolete comment re bytecode stack.
+       eec71eb Speed up replace-buffer-contents
+       93c41ce Remove extra process call from vc-git-find-file-hook
+       7ea0873 ; Update some commentary
+       4a7f423 Speed up vc-git-dir-status-files
+       9134c84 Avoid compiler warning using coding.h
+
+       Conflicts:
+               src/editfns.c
+
+2018-07-02  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       d008ef3 * src/xdisp.c (Vmouse_autoselect_window): Clarify doc-string ...
+       6f6d525 Detect a non-list package archive content properly (Bug#22311)
+
+2018-07-02  João Távora  <address@hidden>
+
+       Make lisp/jsonrpc.el work with Emacs 25.1
+
+       * lisp/jsonrpc.el (Package-Requires): Require Emacs 25.1
+       (jsonrpc-lambda): Use cl-gensym.
+       (jsonrpc--call-deferred): Caddr doesn't exist in
+       emacs 25.1.
+
+       * test/lisp/jsonrpc-tests.el
+       (jsonrpc--call-with-emacsrpc-fixture): New function.
+       (jsonrpc--with-emacsrpc-fixture): Use it.
+       (deferred-action-complex-tests): Adjust test for Emacs 25.1
+
+2018-07-01  John Shahid  <address@hidden>
+
+       Optionally add argument description in minor mode DOC (bug#10754)
+
+       Add a paragraph to minor mode's docstring documenting the mode's ARG
+       usage if the supplied docstring doesn't already contain the word "ARG".
+
+       * lisp/emacs-lisp/easy-mmode.el (easy-mmode--arg-docstring): New const.
+       (easy-mmode--arg-docstring): New function.
+       (define-minor-mode): Use them.
+
+       Remove argument documentation from all minor modes.
+
+2018-07-01  Eli Zaretskii  <address@hidden>
+
+       Fix last change
+
+       * src/w32console.c (Fset_screen_color): Call Frecenter with 2
+       arguments.  (Bug#31325)
+
+       * etc/NEWS:
+       * doc/lispref/windows.texi (Textual Scrolling): Clarify the
+       role of the second argument to 'recenter'.
+
+2018-07-01  John Shahid  <address@hidden>
+
+       Add a new argument to 'recenter' to allow finer control of redisplay
+
+       * src/window.c (recenter): Add a new REDISPLAY argument to allow the
+       caller to control the redisplay behavior.  'recenter' will only
+       redisplay the frame if this new arg and 'recenter-redisplay' are
+       both non-nil.
+       (recenter-top-bottom): Pass an extra non-nil argument to
+       'recenter' to force a redisplay.  (Bug#31325)
+
+2018-07-01  Michael Albinus  <address@hidden>
+
+       Minor change in tramp-tests.el
+
+       * test/lisp/net/tramp-tests.el (tramp-test03-file-name-host-rules):
+       Cleanup before running the test.
+
+2018-06-30  Stefan Monnier  <address@hidden>
+
+       * lisp/hexl.el (hexl-follow-ascii-mode): Fix last fix (bug#32021)
+
+2018-06-30  Glenn Morris  <address@hidden>
+
+       Unbreak bootstrap
+
+       * lisp/jsonrpc.el (jsonrpc-connection, jsonrpc-process-connection):
+       Don't autoload defclass, else dumping fails loading loaddefs.el
+       due to trying to autoload eieio-defclass-autoload.
+
+2018-06-30  Glenn Morris  <address@hidden>
+
+       * doc/lispref/text.texi (JSONRPC): Add missing menu.
+
+2018-06-30  João Távora  <address@hidden>
+
+       * lisp/jsonrpc.el (subr-x): Only require when compiling
+
+       * lisp/jsonrpc.el: Add "Package-Requires" and "Version" headers
+
+2018-06-30  João Távora  <address@hidden>
+
+       Add lisp/jsonrpc.el
+
+       * doc/lispref/text.texi (Text): Add JSONRPC.
+       (JSONRPC): New node.
+
+       * etc/NEWS (New Modes and Packages in Emacs 27.1): Mention jsonrpc.el
+
+       * lisp/jsonrpc.el: New file.
+
+       * test/lisp/jsonrpc-tests.el: New file.
+
+2018-06-30  Eli Zaretskii  <address@hidden>
+
+       * lisp/hexl.el (hexl-follow-ascii-mode): Fix a typo.  (Bug#32021)
+
+2018-06-30  Eli Zaretskii  <address@hidden>
+
+       Speed up reading sub-process output on MS-Windows
+
+       * src/w32proc.c (syms_of_ntproc) <w32-pipe-read-delay>: Set to
+       zero.  For the details, see this discussion:
+       http://lists.gnu.org/archive/html/emacs-devel/2018-06/msg00711.html.
+       * src/w32.c (_sys_read_ahead): Update the commentary for
+       w32-pipe-read-delay usage.
+
+       * doc/emacs/msdos.texi (Windows Processes): Document
+       w32-pipe-read-delay.
+
+       * etc/NEWS: Mention the change of the value of w32-pipe-read-delay.
+
+2018-06-30  Eli Zaretskii  <address@hidden>
+
+       Speed-up let-binding of automatically-local variables
+
+       * src/data.c (set_default_internal): Use FOR_EACH_LIVE_BUFFER
+       when binding variables that don't nominally have a local
+       value, to avoid slowing down due to a large number of dead
+       buffers.  (Bug#18522) (Bug#31853)
+
+2018-06-29  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2018-06-29 regex: glibc does not use intprops.h
+       2018-06-28 regex: port to recently proposed glibc regex merge
+       2018-06-25 Continue to use spaces for indentation, not tabs
+       2018-06-25 manywarnings: Don't enable -Wjump-misses-init by default
+       2018-06-25 acl-internal.h: remove _GL_ATTRIBUTE_CONST on void function
+       2018-06-24 manywarnings: accommodate GCC 9: remove -Wchkp and -Wabi
+       2018-06-24 maint: clarify comments about sticky EOF
+       2018-06-24 af_alg: avoid hangs when reading from streams
+       2018-06-17 crypto: use byteswap
+       2018-06-17 getloadavg: Return 0 on MS-Windows without Cygwi
+       2018-06-17 getloadavg: Allow building on MS-Windows without Cygwin
+       * build-aux/config.guess, build-aux/config.sub, doc/misc/texinfo.tex:
+       * lib/acl-internal.c, lib/acl-internal.h, lib/get-permissions.c:
+       * lib/getloadavg.c, lib/gettimeofday.c, lib/md5.c, lib/pselect.c:
+       * lib/set-permissions.c, lib/sha1.c, lib/sha256.c, lib/sha512.c:
+       * lib/time.in.h, m4/getloadavg.m4, m4/gnulib-common.m4:
+       * m4/manywarnings.m4, m4/pthread_sigmask.m4, m4/vararrays.m4:
+       Copy from Gnulib.
+
+2018-06-29  Paul Eggert  <address@hidden>
+
+       unbind_to performance tuning
+
+       * src/alloc.c (which_symbols):
+       * src/dispnew.c (Fredisplay):
+       * src/editfns.c (Fsubst_char_in_region):
+       * src/fileio.c (Fdo_auto_save):
+       * src/indent.c (Fvertical_motion):
+       * src/keymap.c (Fcurrent_active_maps):
+       * src/lread.c (Feval_buffer):
+       * src/minibuf.c (get_minibuffer):
+       * src/sysdep.c (system_process_attributes):
+       * src/textprop.c (Fnext_single_char_property_change)
+       (Fprevious_single_char_property_change):
+       * src/window.c (Fscroll_other_window, Fscroll_other_window_down):
+       * src/xdisp.c (Fformat_mode_line):
+       Help the compiler eliminate tail recursion in call to unbind_to.
+       * src/coding.c (decode_coding_gap):
+       Omit unnecessary unbind_to, as we’re about to call unbind_to anyway.
+       * src/coding.c (Fread_coding_system):
+       * src/eval.c (eval_sub):
+       * src/xdisp.c (handle_single_display_spec, decode_mode_spec):
+       * src/xselect.c (x_get_local_selection):
+       Avoid need to save a machine register when calling unbind_to.
+       * src/minibuf.c (Ftry_completion, Fall_completions):
+       Omit unnecessary assignment.
+
+2018-06-29  Andreas Schwab  <address@hidden>
+
+       * lisp/url/url-http.el (url-http-create-request): Doc fix.
+
+2018-06-29  Andreas Schwab  <address@hidden>
+
+       Use a non-proxy request when retrieving https URLs via a proxy
+
+       * lisp/url/url-http.el
+       (url-https-proxy-after-change-function): Bind url-http-proxy
+       to nil around url-http-create-request.
+
+2018-06-29  Michael Albinus  <address@hidden>
+
+       Sync with Tramp 2.4.0
+
+       * doc/misc/trampver.texi:
+       * lisp/net/trampver.el: Change version to "2.4.0".
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handler-mounted-unmounted):
+       Ignore unknown GVFS methods.
+
+       * test/lisp/net/tramp-tests.el (tramp-test42-asynchronous-requests):
+       Tag as :unstable.
+
+2018-06-29  Paul Eggert  <address@hidden>
+
+       * src/lisp.h: Add comment (Bug#31996#25).
+
+2018-06-28  Noam Postavsky  <address@hidden>
+
+       Let ediff '=' compare against ancestor buffer (Bug#11320)
+
+       * lisp/vc/ediff-util.el (ediff-inferior-compare-regions): Ask user
+       whether to compare against the ancestor or merge buffer.  Use
+       read-multiple-choice for A vs B buffer query.
+
+2018-06-28  Paul Eggert  <address@hidden>
+
+       Fix recently-introduced SAFE_FREE bug
+
+       Problem reported by Andy Moreton (Bug#31996).
+       * src/lisp.h (union specbinding.unwind_array):
+       Remove unused member func.  Move array after nelts, as this is
+       likely to generate more efficient code in safe_free, which can
+       call xfree with the same value either way.
+       (safe_free): Also handle SPECPDL_UNWIND_AWAY.
+
+2018-06-28  Paul Eggert  <address@hidden>
+
+       Tune SAFE_FREE
+
+       On my platform (Fedora 28 x86-64, AMD Phenom II X4 910e) this sped
+       up a SAFE_FREE-using microbenchmark (string-distance "abc" "abc")
+       by about 18%, and shrank the Emacs text size by about 0.1%.
+       * src/callint.c (Fcall_interactively):
+       * src/callproc.c (call_process):
+       * src/doc.c (get_doc_string, Fsnarf_documentation):
+       * src/editfns.c (Freplace_buffer_contents):
+       * src/emacs-module.c (funcall_module):
+       * src/eval.c (Flet):
+       * src/process.c (Fmake_process):
+       * src/term.c (tty_menu_show):
+       * src/xdisp.c (safe__call):
+       * src/xmenu.c (x_menu_show):
+       Use SAFE_FREE_UNBIND_TO.
+       * src/data.c (wrong_choice): No need to call SAFE_FREE here.
+       * src/lisp.h (USE_SAFE_ALLOCA):
+       * src/regex.c (REGEX_USE_SAFE_ALLOCA):
+       Do not declare sa_must_free local; no longer needed.
+       All uses removed.
+       (SAFE_FREE): Rewrite in terms of safe_free.
+       (safe_free): New function, optimized to use xfree.
+       (SAFE_FREE_UNBIND_TO): New macro.
+       (safe_free_unbind_to): New function.
+
+2018-06-27  João Távora  <address@hidden>
+
+       Respect s-s-b-default-predicate when killing terminal
+
+       Fixes: Bug#31951
+
+       * lisp/server.el (server-save-buffers-kill-terminal): Only pass
+       PRED=t to save-some-bufers if ARG in non-nil.
+
+2018-06-27  Vincent Belaïche  <address@hidden>
+
+       Allow 'file:' protocol for Info-follow-nearest-node.
+
+2018-06-26  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       12c77f6 (origin/emacs-26) Add ido-fallback special variable (Bug#31707)
+       826e8d1 Merge branch 'emacs-26' of git.sv.gnu.org:/srv/git/emacs into...
+       c784876 Tighten a cross-reference in documentation
+       517dc0b Fix last change in tramp-sh.el
+       f43186f Revert previous patch; comment was OK after all.
+       4c3306e Fix lead comment for count_trailing_zero_bits
+       b419f27 ; * doc/emacs/files.texi (Interlocking): Fix a non-portable @...
+       7488de4 * lisp/emacs-lisp/regexp-opt.el (regexp-opt): Fix docstring q...
+       0b69807 Make a minor update to the CSS mode docstring
+       9a53b6d Say how to override a primitive interactive spec
+       1d77078 Fix Bug#31941
+
+2018-06-25  Jean-Christophe Helary  <address@hidden>
+
+       Reformat package.el message strings for future l10n
+
+       * lisp/emacs-lisp/package.el (package-buffer-info)
+       (package--download-one-archive, package-install-selected-packages)
+       (package-autoremove, describe-package-1, package-menu-toggle-hiding)
+       (package-menu-hide-package, package-menu--mark-upgrades-1)
+       (package-menu--list-to-prompt, package-menu--prompt-transaction-p)
+       (package-menu-execute, package-menu--find-and-notify-upgrades):
+       Reformat message strings to remove need for plural computation.  Try
+       to put full sentences in source string literals.
+       * test/lisp/emacs-lisp/package-tests.el
+       (package-test-describe-package): Update to match new message format.
+
+2018-06-25  Noam Postavsky  <address@hidden>
+
+       Suppress indent errors during electric indentation (Bug#18764)
+
+       * lisp/electric.el (electric-indent-post-self-insert-function):
+       Suppress errors from indent code, but don't suppress errors from
+       elsewhere in this function.  That way, if trouble is encountered with
+       electric indent "not working", the error should be reproducible by
+       calling indent directly (as is the case for Bug#18764), or else it's
+       from the electric indent code and will be reported normally.
+
+2018-06-25  Paul Eggert  <address@hidden>
+
+       (format "%d" F) now truncates floating F
+
+       Problem reported by Paul Pogonyshev (Bug#31938).
+       * src/editfns.c: Include math.h, for trunc.
+       (styled_format): For %d, truncate floating-point numbers and
+       convert -0 to 0, going back to how Emacs 26 did things.
+       * doc/lispref/strings.texi (Formatting Strings):
+       Document behavior of %o, %d, %x, %X on floating-point numbers.
+       * src/floatfns.c (trunc) [!HAVE_TRUNC]: Rename from emacs_trunc
+       and make it an extern function, so that editfns.c can use it.
+       All callers changed.
+       * test/src/editfns-tests.el (format-%d-float): New test.
+
+2018-06-25  Lars Ingebrigtsen  <address@hidden>
+
+       Fix spelling of "intermediate" (it's not "intermediary")
+
+       * doc/emacs/misc.texi (Network Security): Ditto.
+
+       * lisp/net/nsm.el (network-security-protocol-checks): Fix spelling
+       on "intermediate".
+       (nsm-protocol-check--intermediate-sha1): Ditto.
+
+2018-06-25  Lars Ingebrigtsen  <address@hidden>
+
+       Clean up redundant code from previous checkins
+
+       * src/gnutls.c (gnutls_verify_boot): Remove reduntant setting of
+       p->gnutls_certificates, which is now performed by
+       gnutls_deinit_certificates.
+
+2018-06-25  João Távora  <address@hidden>
+
+       Mention use of C-h . (display-local-help) in Flymake manual
+
+       Fixes: Bug#31921
+
+       * doc/misc/flymake.texi (Using Flymake): Mention display-local-help.
+
+2018-06-24  Lars Ingebrigtsen  <address@hidden>
+
+       Make the intermediary-sha1 check work
+
+       * lisp/net/nsm.el (nsm-protocol-check--intermediary-sha1): Make
+       the "skip the root cert" logic work (suggested by Noam Postavsky).
+
+2018-06-24  Lars Ingebrigtsen  <address@hidden>
+
+       Don't use XCAR in possibly-nil situations
+
+       * src/gnutls.c (Fgnutls_peer_status): certs theoretically may be
+       nil, so don't use XCAR.
+
+2018-06-24  Noam Postavsky  <address@hidden>
+
+       (Network Security): Fix the description of the 3DES weakness
+
+       * doc/emacs/misc.texi (Network Security): Fix the description of
+       the 3DES weakness.
+
+2018-06-24  Lars Ingebrigtsen  <address@hidden>
+
+       Make more TLS checks trigger on the default `medium' level
+
+       * doc/emacs/misc.texi (Network Security): Update the doc to say
+       what's on the different levels.
+
+       * lisp/net/nsm.el (nsm-protocol-check--intermediary-sha1): Check
+       intermediary certificates for SHA1.
+       (nsm-protocol-check--3des): Check for 3DES ciphers.
+       (network-security-protocol-checks): Put most of the checks on
+       `medium'.
+
+2018-06-24  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak previous gnutls change for efficiency
+
+       * src/gnutls.c (Fgnutls_peer_status): Minor optimisation to avoid
+       computing the topmost certificate twice.
+
+2018-06-24  Lars Ingebrigtsen  <address@hidden>
+
+       Return the entire TLS certificate chain back to the caller
+
+       * src/gnutls.c (gnutls_deinit_certificates): New function.
+       (Fgnutls_peer_status): Return all certificates in the chain back
+       to Lisp land.
+       (gnutls_verify_boot): Compute all the x509 certificates in the
+       chain.
+
+       * src/process.h (struct Lisp_Process): Adjust gnutls fields so
+       that we can keep tracks of all certificates in the chain instead
+       of just the host certificate.
+
+2018-06-24  Tom Tromey  <address@hidden>
+
+       Fix two tcl-mode defun-related bugs
+
+       Fixes bug#23565
+       * lisp/progmodes/tcl.el (tcl-mode): Set beginning-of-defun-function
+       and end-of-defun-function.
+       (tcl-beginning-of-defun-function, tcl-end-of-defun-function): New
+       defuns.
+       * test/lisp/progmodes/tcl-tests.el: New file.
+
+2018-06-24  Lars Ingebrigtsen  <address@hidden>
+
+       Fix reverse test in previous check-in
+
+       * lisp/net/nsm.el (nsm-check-protocol): Fix reverse test in
+       previous check-in.
+
+2018-06-24  Lars Ingebrigtsen  <address@hidden>
+
+       Refactor the protocol NSM checks for flexibility
+
+       * doc/emacs/misc.texi (Network Security): Mention
+       network-security-protocol-checks.
+
+       * lisp/net/nsm.el (network-security-protocol-checks): New variable.
+       (nsm-check-protocol): Refactor the checks into separate functions
+       for greater flexibility.
+       (nsm-protocol-check--diffie-hellman-prime-bits)
+       (nsm-protocol-check--rc4, nsm-protocol-check--ssl)
+       (nsm-protocol-check--signature-sha1): Refactored out of the big
+       function.
+
+2018-06-23  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       bbc9d37 (origin/emacs-26) Fix previous change in minibuffer-default-a...
+       7caeef1 * src/editfns.c (Fformat): Make %x easier to spot in doc stri...
+       ecc29fb Improve responsiveness while in 'replace-buffer-contents'
+       8182d64 Improve documentation of 'server-start' and friends
+       decdfed Clarify wording about functions' argument lists
+       5abac8b * lisp/doc-view.el: Fix typos in the commentary.  (Bug#31937)
+
+2018-06-23  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       5cb3991 Fix a typo in emacs-lisp-intro.texi
+       d6aa55e Avoid segfaults in replace-buffer-contents with large buffers
+       d22b8d1 Adjust for scaling for mode-line popup menus (Bug#31880)
+       3d2e3dc Change name of `seqp' argument (Bug#26411)
+       40e1db8 Change index of ";" to better reflect it's usage (Bug#31623)
+       d289e7e Fix bug of 'mouse-drag-and-drop-region' to detect edges of re...
+       e292c09 Fix #'fun handling inside `labels' (Bug#31792)
+
+2018-06-23  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-sh.el (tramp-get-ls-command-with): Fix typo.
+
+2018-06-22  Stefan Monnier  <address@hidden>
+
+       * lisp/net/tramp-sh.el (tramp-sh--quoting-style-options): New function
+
+       (tramp-do-directory-files-and-attributes-with-stat)
+       (tramp-do-file-attributes-with-ls): Use it.
+
+2018-06-22  Michael Albinus  <address@hidden>
+
+       Improve backward compatibility of Tramp
+
+       * lisp/net/tramp-adb.el (tramp-adb-handle-exec-path):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-exec-path): Use ´file-remote-p'.
+       (tramp-get-ls-command-with): Handle busybox specially.
+
+       * test/lisp/net/tramp-tests.el (tramp-test34-exec-path): Check for
+       `fboundp'.  Use `file-remote-p'.  Hide compiler warning for older
+       Emacsen.
+
+2018-06-22  Eli Zaretskii  <address@hidden>
+
+       Document 'major-mode-suspend' and 'major-mode-restore'
+
+       * doc/lispref/modes.texi (Major Modes): Document
+       'major-mode-suspend' and 'major-mode-restore'.  (Bug#31551)
+
+       * etc/NEWS: Mark the corresponding entry as documented in
+       manuals.
+
+2018-06-21  Stefan Monnier  <address@hidden>
+
+       New functions to switch back and forth to another major mode
+
+       * lisp/subr.el (major-mode--suspended): New var.
+       (major-mode-suspend, major-mode-restore): New funs, extracted from 
doc-view.
+       * lisp/doc-view.el (doc-view--previous-major-mode): Remove.
+       (doc-view-mode): Use major-mode-suspend.
+       (doc-view-fallback-mode): Use major-mode-restore.
+       * lisp/hexl.el: (hexl-mode--minor-mode-p, hexl-mode--setq-local): 
Remove.
+       (hexl-mode): Use major-mode-suspend and hexl-follow-ascii-mode.
+       (hexl-mode-exit): Use major-mode-restore.
+       (hexl-activate-ruler, hexl-follow-line): Don't bother trying to preserve
+       earlier state, now that entering/leaving hexl-mode kills local vars.
+       (hexl-follow-ascii-mode): New proper local minor mode.
+       (hexl-follow-ascii): Rewrite, using it.
+       * lisp/image-mode.el (image-mode-previous-major-mode): Remove.
+       (image-mode): Use major-mode-suspend.
+       (image-mode-to-text): Use major-mode-restore.
+
+2018-06-21  memeplex  <address@hidden>
+
+       Remove broken icon from tooltip (Bug#31884)
+
+       * src/gtkutil.c (xg_show_tooltip): Call gtk_widget_show instead of
+       gtk_widget_show_all, the latter displays an extra placeholder icon.
+
+2018-06-21  Paul Eggert  <address@hidden>
+
+       Set group when installing, too
+
+       From a patch by Ulrich Mueller in:
+       https://lists.gnu.org/r/emacs-devel/2018-06/msg00687.html
+       * Makefile.in (set_installuser): Also set the group, in order
+       to match install(1) behavior.  Also, don’t clutter stderr
+       with a diagnostic if ‘id’ is missing.
+
+2018-06-20  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of a recent change
+
+       * doc/lispref/processes.texi (Subprocess Creation): Improve
+       wording of documentation for the function 'exec-path'.
+
+       * etc/NEWS: Improve wording and formatting of recently added
+       entries.
+
+       * lisp/files.el (exec-path): Doc fix.
+
+2018-06-20  Michael Albinus  <address@hidden>
+
+       Implement command completion in remote shells.  (Bug#31704)
+
+       * doc/lispref/files.texi (Locating Files): Describe optional
+       argument REMOTE of `executable-find'.
+       (Magic File Names): Add `exec-path'.
+
+       * doc/lispref/processes.texi (Subprocess Creation): Describe
+       function `exec-path'.
+
+       * doc/misc/tramp.texi (Remote programs): Explain refresh of search
+       paths by `tramp-cleanup-this-connection'.
+
+       * etc/NEWS: Mention 'exec-path' and 'executable-find'.
+
+       * lisp/files.el (exec-path): New defun.
+       (executable-find): Add optional argument REMOTE.
+
+       * lisp/shell.el (shell-completion-vars): Set `comint-file-name-prefix'.
+       (shell--command-completion-data): Use `(exec-path)'.  (Bug#31704)
+
+       * lisp/net/ange-ftp.el (exec-path):
+       * lisp/net/tramp.el (tramp-file-name-for-operation):
+       * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
+       * lisp/net/tramp-archive.el (tramp-archive-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)
+       <exec-path>: Add handler.
+
+       * lisp/net/tramp-adb.el (tramp-adb-handle-exec-path): New defun.
+       (tramp-adb-maybe-open-connection): Do not set "remote-path"
+       connection property.
+
+       * lisp/net/tramp-compat.el (tramp-compat-exec-path): New defun.
+
+       * lisp/net/tramp-sh.el (tramp-sh-handle-exec-path): New defun.
+
+       * lisp/net/tramp.el (tramp-eshell-directory-change): Use it.
+
+       * test/lisp/net/tramp-archive-tests.el
+       (tramp-archive-test38-make-nearby-temp-file)
+       (tramp-archive-test41-file-system-info)
+       (tramp-archive-test43-auto-load)
+       (tramp-archive-test43-delay-load): Rename.
+
+       * test/lisp/net/tramp-tests.el (tramp-test34-exec-path): New test.
+       (tramp-test36-make-auto-save-file-name)
+       (tramp-test37-find-backup-file-name)
+       (tramp-test38-make-nearby-temp-file)
+       (tramp-test39-special-characters)
+       (tramp-test39-special-characters-with-stat)
+       (tramp-test39-special-characters-with-perl)
+       (tramp-test39-special-characters-with-ls, tramp-test40-utf8)
+       (tramp-test40-utf8-with-stat, tramp-test40-utf8-with-perl)
+       (tramp-test40-utf8-with-ls, tramp-test41-file-system-info)
+       (tramp-test42-asynchronous-requests, tramp-test43-auto-load)
+       (tramp-test43-delay-load, tramp-test43-recursive-load)
+       (tramp-test43-remote-load-path, tramp-test44-unload): Rename.
+
+2018-06-19  João Távora  <address@hidden>
+
+       Properly ignore stderr in elisp Flymake backend
+
+       Naively passing `null-device' as stderr creates a buffer named
+       "/dev/null" instead.  Pass a hidden buffer name instead.  (Bug#31902).
+
+       * lisp/progmodes/elisp-mode.el (elisp-flymake-byte-compile): Pass
+       hidden buffer as make-process :stderr instead of null-device.
+
+2018-06-19  Daniel Colascione  <address@hidden>
+
+       Fix theme application
+
+       Fix an inverted test.  Patch due to Andy Moreton.
+
+       * lisp/cus-face.el (custom-theme-set-faces): Correct sense of
+       `custom--should-apply-setting' test.
+
+2018-06-19  Daniel Colascione  <address@hidden>
+
+       Unbreak dabbrev
+
+       This commit partially reverts
+       edb1f85a27817a3fac38bb85752671414819203b, which results in dabbev
+       expansion failing due to trying to switch to the null buffer.
+
+       * lisp/dabbrev.el (dabbrev--progress-reporter): Restore variable.
+       (dabbrev--find-expansion): Restore original code.
+
+2018-06-18  Stefan Monnier  <address@hidden>
+
+       lisp/obsolete/*tls.el: Note when obsolescence was decided
+
+2018-06-18  João Távora  <address@hidden>
+
+       Skip a json.c test unless functions being tested exist
+
+       * test/src/json-tests.el
+       (json-parse-with-custom-null-and-false-objects): Skip this test
+       unless functions being tested exist.
+
+2018-06-18  João Távora  <address@hidden>
+
+       Mark a specific electric-pair-mode test as an expected failure
+
+       See https://lists.gnu.org/archive/html/emacs-devel/2018-06/msg00535.html
+
+       * test/lisp/electric-tests.el
+       (electric-pair-whitespace-chomping-2-at-point-4-in-c++-mode-in-strings):
+       Mark as failing.
+
+2018-06-18  Mark Oteiza  <address@hidden>
+
+       Change errant if to when (Bug#31840)
+
+       * lisp/emacs-lisp/subr-x.el: Expand to 'when' instead of 'if'.
+
+2018-06-18  João Távora  <address@hidden>
+
+       Electric-pair-mode lets modes choose how to skip whitespace
+
+       cc-mode.el-based major-modes with stricter syntax for invalid
+       NL-terminated strings might choose to have electric-pair-mode skip
+       some of whitespace into non-string-syntax regions, for the sake of
+       letting electric-pair-mode chomp that whitespace and make the string
+       valid again.
+
+       * lisp/elec-pair.el (electric-pair-post-self-insert-function): Call it.
+       (electric-pair-skip-whitespace-function): New buffer-local variable.
+
+2018-06-18  Noam Postavsky  <address@hidden>
+
+       Stop assuming .git is a directory in gitmerge.el
+
+       * admin/gitmerge.el (gitmerge-maybe-resume): Use 'git rev-parse
+       --git-dir' to find the git directory rather than assuming it is
+       .git/ (that assumption fails for separated worktrees).
+
+2018-06-18  Noam Postavsky  <address@hidden>
+
+       Default to splash on current frame, if none visible (Bug#31169)
+
+       * lisp/startup.el (fancy-splash-frame): Default to current frame.
+
+2018-06-18  Noam Postavsky  <address@hidden>
+
+       Move tls.el and starttls.el to lisp/obsolete/ (Bug#31457)
+
+       * lisp/obsolete/tls.el: Moved from lisp/net/tls.el.
+       * lisp/gnus/nnimap.el:
+       * lisp/url/url-http.el: Don't require tls, since it's obsolete.
+       * lisp/net/network-stream.el: Only require tls if we actually try to
+       use it (i.e., when (gnutls-available-p) returns nil).  Declare some
+       functions to fix compilation warnings.
+
+       * lisp/obsolete/starttls.el: Moved from lisp/net/starttls.el.
+       * lisp/net/sieve-manage.el:
+       * lisp/net/network-stream.el: Don't require `starttls' at the
+       top-level, declare the variables and functions used instead.
+       (network-stream-open-starttls): Only require `starttls' if
+       needed (i.e., gnutls-available-p fails).
+
+       * etc/NEWS: Announce obsoletion.
+
+2018-06-18  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       3673770 (origin/emacs-26) Fix vertical-motion with 'visual' line-numb...
+       d8bff53 ; CONTRIBUTE: Add a couple of nits.
+
+2018-06-18  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       ebe065f Prevent errant scroll on mouse click (Bug#31546)
+       ffd2018 Minor documentation fix
+       cf4dc95 * lisp/window.el (window-toggle-side-windows): Doc fix.  (Bug...
+
+2018-06-18  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       63ba73a Fix documentation of ':propertize' in mode-line-format
+       22aa665 Reject invalid 5-byte sequences when detecting UTF-8 encoding
+       0d3c358 Fix 'replace-buffer-contents' in multibyte buffers
+       c79a627 Update etc/NEWS for mail-source-movemail-program change
+       63f1dc4 Improve movemail default
+       0b1a2ae Delete description of deleted Customize functions
+       fcd66d0 Keep vc-print-log from putting point at buffer end (Bug#31764)
+
+       Conflicts:
+               etc/NEWS
+
+2018-06-18  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       a933ebe Improve commentary in info.el
+       94e84a9 ; Further wording fix in tramp.texi
+       a5a0b11 Fix wording in tramp.texi
+       2933242 * doc/misc/tramp.texi (Remote shell setup): Fix typo.
+
+2018-06-18  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       5bdc344 ; Reduce quoting for SELECTOR in 'make -C test' (Bug#31744)
+       b6b793b ; test/Makefile.in: Add TEST_INTERACTIVE option (Bug#31744).
+       1aa906f Make 'tags' targets respect --with-silent-rules (Bug#31744)
+
+       Conflicts:
+               test/Makefile.in
+               test/README
+
+2018-06-18  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       9c6f35a * doc/lispref/files.texi (Unique File Names): Fix a typo.  (B...
+
+2018-06-18  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of recent changes in Comint
+
+       * lisp/comint.el (comint-insert-previous-argument)
+       (comint-arguments, comint-insert-previous-argument-from-end):
+       Doc fixes.
+       (comint-insert-previous-argument-from-end): Add :version.
+
+       * doc/emacs/misc.texi (Shell Ring): Fix a typo in the name of
+       'comint-insert-previous-argument'.  Document
+       'comint-insert-previous-argument-from-end'.  (Bug#25271)
+
+       * etc/NEWS: Reformat and rephrase the entry for recent Comint
+       changes.
+
+2018-06-18  Richard Stallman  <address@hidden>
+
+       rmail-summary-by-senders defaults to sender
+
+       * etc/NEWS: Mention this.
+       * lisp/mail/rmailsum.el (rmail-summary-by-senders):
+       Offer From field of current message as a default argument.
+
+2018-06-17  Dima Kogan  <address@hidden>
+
+       comint-insert-previous-argument doesn't detect and ignore trailing &
+
+       This function is invoked in shell-mode by the user, and is meant to
+       emulate what M-. does in zsh and bash: it inserts an argument from a
+       previous command.  Neither zsh nor bash treat a trailing & specially:
+       M-. simply inserts it if it is encountered.  Emacs DID have extra
+       logic to detect and discard trailing &, but this logic was buggy, and
+       a && anywhere in the sequence would confuse it.  This patch simply
+       removes that logic to fix the bug and to emulate zsh and bash more
+       closely
+
+       * lisp/comint.el (comint-insert-previous-argument): don't detect and
+         ignore trailing &
+         (Bug#25271)
+       * etc/NEWS: Document this.
+
+2018-06-17  Dima Kogan  <address@hidden>
+
+       comint-insert-previous-argument counts args from start or from end
+
+       This function is invoked in shell-mode by the user, and is meant to
+       emulate what M-. does in zsh and bash: it inserts an argument from a
+       previous command.  Without a prefix argument, it inserts the last arg
+       from the previous command; with an argument INDEX, it inserts the
+       INDEX-th argument.  bash counts from the start, while zsh counts from
+       the end.  This patch adds a variable
+       `comint-insert-previous-argument-from-end' that emulates the zsh
+       behavior if non-nil.
+
+       * lisp/comint.el (comint-arguments): can take in negative arguments to 
count
+         from the end, same as indexing in python.
+         (comint-insert-previous-argument): if
+         comint-insert-previous-argument-from-end is non-nil, INDEX counts
+         arguments from the end; if nil, from the beginning
+         (Bug#25271)
+       * etc/NEWS: Document this.
+
+2018-06-17  Glenn Morris  <address@hidden>
+
+       * test/lisp/simple-tests.el (simple-tests-async-shell-command-30280):
+       Use the correct emacs executable, not first in PATH.
+
+2018-06-17  Michael Heerdegen  <address@hidden>
+
+       Allow floats as 'pcase' QPATS
+
+       * lisp/emacs-lisp/pcase.el (\`): Extend semantics of QPATS to all
+       numbers.  Add a comment explaining why we disallow some atoms as
+       QPATS.
+       * doc/lispref/control.texi (Backquote Patterns): Update the paragraph
+       explaining QPATS.  Remove a sentence suggesting an analogy between
+       QPATS to self-quoting objects.
+
+2018-06-17  João Távora  <address@hidden>
+
+       Minor Flymake docstring fixes
+
+       * lisp/progmodes/flymake.el (flymake-diagnostic-functions):
+       Clarify meaning of :region in docstring.
+       (flymake-start): Fix broken docstring.
+
+2018-06-17  Eli Zaretskii  <address@hidden>
+
+       Fix last change
+
+       * etc/NEWS: Fix last added entry.
+
+       * lisp/subr.el (dotimes-with-progress-reporter)
+       (dolist-with-progress-reporter): Fix the advertised signature.
+
+       * doc/lispref/display.texi (Progress): Fix last change.
+       (Bug#31696)  (Bug#31697)
+
+2018-06-17  Tino Calancha  <address@hidden>
+
+       Add new macro dolist-with-progress-reporter
+
+       * lisp/subr.el (dolist-with-progress-reporter): New macro (Bug#31697).
+       * lisp/cus-edit.el (custom-group-value-create): Use it.
+       * lisp/dabbrev.el (dabbrev--progress-reporter): Delete variable.
+       (dabbrev--find-expansion): Use dotimes-with-progress-reporter.
+
+       * doc/lispref/display.texi: Document the macro.
+
+2018-06-17  Tino Calancha  <address@hidden>
+
+       dotimes-with-progress-reporter: Polymorphic 2nd argument
+
+       * lisp/subr.el (dotimes-with-progress-reporter): Allow 2nd arg to be
+       a string or a progress reporter (Bug#31696).
+       * doc/lispref/display.texi (node Progress): Update manual.
+
+2018-06-17  Michael Albinus  <address@hidden>
+
+       Cleanup secrets-tests
+
+       * test/lisp/net/secrets-tests.el (secrets-test03-items)
+       (secrets-test04-search): Cleanup "session" collection initially.
+
+2018-06-17  Eli Zaretskii  <address@hidden>
+
+       When possible, prefer UTF-8 as the safe encoding for saving
+
+       * lisp/international/mule-cmds.el (select-safe-coding-system):
+       If possible, offer UTF-8 as the default encoding.  (Bug#31807)
+
+2018-06-16  Daniel Colascione  <address@hidden>
+
+       Apply non-user themes only when asked
+
+       Theme settings now generally aren't actually applied until a call to
+       `enable-theme-, either one made explicitly or implicitly through
+       `load-theme' with NO-ENABLE nil.  This change has the effect of not
+       applying theme changes just because we load a lisp file containing a
+       theme specification.  The previous behavior is preserved for the
+       special case of the `user' theme, which is frequently used for
+       ad-hoc customization.
+
+       * lisp/cus-face.el (custom-theme-set-faces): Call
+       `custom--should-apply-setting' to decide whether to apply
+       a setting.
+
+       * lisp/custom.el (custom--should-apply-setting): New function.
+       (custom--inhibit-theme-enable): Add `apply-only-user' option;
+       default to it.
+       (custom-push-theme, custom-theme-set-variables): Call
+       `custom--should-apply-setting' to decide whether to apply
+       a setting.
+
+2018-06-16  Noam Postavsky  <address@hidden>
+
+       Don't forget to analyze args of lambda lifted functions (Bug#30872)
+
+       * lisp/emacs-lisp/cconv.el (cconv--convert-funcbody): New function.
+       (cconv--convert-function): Extracted from here.
+       (cconv-convert): Also use it here, in the lambda lifted case, so that
+       mutated args are properly accounted for.
+       * test/lisp/emacs-lisp/cconv-tests.el: New test.
+
+2018-06-16  Noam Postavsky  <address@hidden>
+
+       Fix off by one error in python-mode assertion (Bug#30964)
+
+       * lisp/progmodes/python.el (python-nav-end-of-statement): Don't assert
+       that string-start is strictly greater than last-string-end, because
+       the string end is a position outside of the string and may therefore
+       be the same as the following string's start.
+       * test/lisp/progmodes/python-tests.el (python-nav-end-of-statement-2):
+       New test.
+
+2018-06-16  Daniel Colascione  <address@hidden>
+
+       Restore old echo_truncate condition
+
+       * src/keyboard.c (read_key_sequence): Restore old
+       echo_truncate condition.
+
+2018-06-16  Daniel Colascione  <address@hidden>
+
+       Make regex matching reentrant; update syntax during match
+
+       * src/lisp.h (compile_pattern): Remove prototype of
+       now-internal function.
+
+       * src/regex.c (POS_AS_IN_BUFFER): Consult gl_state instead of
+       re_match_object: the latter can change in Lisp.
+       (re_match_2_internal): Switch back to UPDATE_SYNTAX_* FROM
+       UPDATE_SYNTAX_FAST*, allowing calls into Lisp.
+
+       * src/regex.h (re_match_object): Uncomment declaration.
+
+       * src/search.c (struct regexp_cache): Add `busy' field.
+       (thaw_buffer_relocation): Delete; rely on unbind.
+       (compile_pattern_1): Assert pattern isn't busy.
+       (shrink_regexp_cache): Don't shrink busy patterns.
+       (clear_regexp_cache): Don't nuke busy patterns.
+       (unfreeze_pattern, freeze_pattern): New functions.
+       (compile_pattern): Return a regexp_cache pointer instead of the
+       re_pattern_buffer, allowing callers to use `freeze_pattern' if
+       needed.  Do not consider busy patterns as cache hit candidates;
+       error if we run out of non-busy cache entries.
+       (looking_at_1, fast_looking_at): Snapshot
+       Vinhibit_changing_match_data; mark pattern busy while we're
+       matching it; unbind.
+       (string_match_1, fast_string_match_internal)
+       (fast_c_string_match_ignore_case): Adjust for compile_pattern
+       return type.
+       (search_buffer_re): Regex code from old search_buffer moved here;
+       snapshot Vinhibit_changing_match_data; mark pattern busy while
+       we're matching it; unbind.
+       (search_buffer_non_re): Non-regex code from old search_buffer
+       moved here.
+       (search_buffer): Split into search_buffer_re,
+       search_buffer_non_re.
+       (syms_of_search): Staticpro re_match_object, even though we really
+       shouldn't have to.
+
+       * src/syntax.h (UPDATE_SYNTAX_TABLE_FORWARD_FAST):
+       (UPDATE_SYNTAX_TABLE_FAST): Remove.
+
+       * src/thread.h (struct thread_state): Remove m_re_match_object,
+       which is global again.  (It never needs to be preserved across
+       thread switch.)
+
+2018-06-16  Daniel Colascione  <address@hidden>
+
+       Decouple dired from regex internals
+
+       * src/dired.c: Remove use of regex.h
+       (directory_files_internal): Use higher-level regular
+       expression functions.
+
+2018-06-16  Daniel Colascione  <address@hidden>
+
+       Remove commented-out code in compile_pattern_1
+
+       * src/search.c (compile_pattern_1): Remove commented-out code.
+
+2018-06-16  Daniel Colascione  <address@hidden>
+
+       Tweak field ordering in re_pattern_buffer
+
+       * src/regex.h (struct re_pattern_buffer): Reorder charset_unibyte
+       field to keep bitfields together.
+
+2018-06-16  Bozhidar Batsov  <address@hidden>
+
+       Fix a docstring
+
+       Fix references to RuboCop in ruby-mode.el
+
+2018-06-16  João Távora  <address@hidden>
+
+       Fix bug in elisp-flymake-byte-compile
+
+       * lisp/progmodes/elisp-mode.el (elisp-flymake-byte-compile): Pass
+       keyword args to make-process.
+
+2018-06-16  Paul Eggert  <address@hidden>
+
+       Rewrite memory-limit in Lisp
+
+       Have it return Emacs virtual memory size, not the sbrk value
+       which is often useless newadays.
+       * doc/lispref/internals.texi (Garbage Collection):
+       * etc/NEWS: Document this.
+       * lisp/subr.el (memory-limit): New implementation in Lisp,
+       written in terms of process-attributes, and which returns
+       virtual memory size.
+       * src/alloc.c (Fmemory_limit): Remove C implementation.
+
+2018-06-16  Paul Eggert  <address@hidden>
+
+       Fix byte compilation of (eq foo 'default)
+
+       Do not use the symbol ‘default’ as a special marker.
+       Instead, use a value that cannot appear in the program,
+       improving on a patch proposed by Robert Cochran (Bug#31718#14).
+       * lisp/emacs-lisp/bytecomp.el (byte-compile--default-val):
+       New constant.
+       (byte-compile-cond-jump-table-info)
+       (byte-compile-cond-jump-table): Use it instead of 'default.
+       * test/lisp/emacs-lisp/bytecomp-tests.el:
+       (byte-opt-testsuite-arith-data): Add a test for the bug.
+
+2018-06-16  Eli Zaretskii  <address@hidden>
+
+       Use mint_ptr in w32notify.c
+
+       * src/w32notify.c (Fw32notify_add_watch, Fw32notify_rm_watch)
+       (Fw32notify_valid_p, w32_get_watch_object): Use make_mint_ptr and
+       xmint_pointer.
+
+2018-06-16  Eli Zaretskii  <address@hidden>
+
+       * doc/lispref/text.texi (Parsing JSON): Minor formatting changes.
+
+2018-06-16  Eli Zaretskii  <address@hidden>
+
+       Minor doc string fixes in json.c
+
+       * src/json.c (Fjson_serialize, Fjson_insert): Fix 'usage'.
+
+2018-06-16  Eli Zaretskii  <address@hidden>
+
+       Formatting and doc fixes in recent changes
+
+       * src/xfaces.c (evaluate_face_filter): Explain the inner braces.
+       (merge_face_ref): Fix whitespace.
+       (syms_of_xfaces) <face-filters-always-match>: Doc fix.
+       * src/xdisp.c (extend_face_to_end_of_line): Fix whitespace.
+
+2018-06-16  Eli Zaretskii  <address@hidden>
+
+       Improve documentation of several recent changes
+
+       * src/xfaces.c (merge_face_ref): Fix a typo in the commentary.
+       (evaluate_face_filter, filter_face_ref): Minor copyedits in
+       the commentary.
+       * doc/lispref/display.texi (Face Remapping):
+       * doc/lispref/text.texi (Special Properties): Document the
+       ':filter' face specs and their effects.  Document
+       'face-filters-always-match'.
+
+       * doc/emacs/files.texi (Visiting): Document the new
+       possibility to visit large files literally in response to
+       question asked by Emacs.
+       * etc/NEWS: Mention the new possibility to visit large files
+       literally.
+       * lisp/files.el (files--ask-user-about-large-file): Use
+       "literally" instead of "raw", for consistency with
+       find-file-literally.
+
+       * doc/lispref/frames.texi (Input Focus): Tell explicitly that
+       focus-change events are sometimes supported on TTY frames.
+
+2018-06-16  Eli Zaretskii  <address@hidden>
+
+       Prevent QUIT to top level inside 'while-no-input'
+
+       * lisp/subr.el (while-no-input): Handle the case when BODY
+       never tests quit-flag, and runs to completion even though
+       input arrives while BODY executes.  (Bug#31692)
+
+2018-06-16  Eli Zaretskii  <address@hidden>
+
+       Fix a typo in xmenu.c
+
+       * src/xmenu.c (x_menu_show): Replace a call to
+       record_unwind_protect_pointer with record_unwind_protect_ptr.
+       (Bug#31856)
+
+2018-06-16  Ari Roponen  <address@hidden>
+
+       Fix --with-cairo build
+
+       * src/xterm.c (x_cr_destroy): Remove extra semicolon.
+       (x_cr_export_frames): Fix a typo in calling
+       record_unwind_protect_ptr.  (Bug#31856)
+
+2018-06-15  Paul Eggert  <address@hidden>
+
+       * src/Makefile.in: Update paxctl comment.
+
+2018-06-15  Paul Eggert  <address@hidden>
+
+       Minor CANNOT_DUMP cleanups
+
+       Mostly, this avoids munging executables when CANNOT_DUMP = yes,
+       as the munging is needed only for unexec.
+       * configure.ac (PAXCTL_dumped, PAXCTL_notdumped) [CANNOT_DUMP]:
+       Leave these empty.
+       (LD_SWITCH_SYSTEM_TEMACS) [CANNOT_DUMP]:
+       Do not append -no-pie or -nopie.
+       * src/alloc.c (my_heap_start) [CANNOT_DUMP]: Omit; not used.
+
+2018-06-15  Paul Eggert  <address@hidden>
+
+       Remove old combreloc hack
+
+       It has not been needed for many years and gets in the way of
+       portable dumping, address sanitization, etc.  See:
+       https://lists.gnu.org/r/emacs-devel/2016-12/msg00147.html
+       * configure.ac (LDFLAGS_NOCOMBRELOC, emacs_cv_znocombreloc):
+       Remove.  All uses removed.
+       * etc/PROBLEMS: Remove discussion of combreloc problems.
+
+2018-06-15  Paul Eggert  <address@hidden>
+
+       Fix typo in previous macfont.m change
+
+       * src/macfont.m (macfont_descriptor_entity): Fix typo.
+       Problem reported by Clemens Schüller.
+
+2018-06-15  Paul Eggert  <address@hidden>
+
+       Restore macfont.m casts to void *
+
+       * src/macfont.m (macfont_set_family_cache): Restore casts
+       to void * that were mistakenly removed in my recent change.
+       The types in question are pointer-to-const.  Problem
+       reported by Clemens Schüller.
+
+2018-06-15  João Távora  <address@hidden>
+
+       Fix a bug in Flymake handling of region-specific reports
+
+       The backend's diagnostic list must be updated too, not just cleared.
+
+       * lisp/progmodes/flymake.el (flymake--diag): Add overlay field.
+       (flymake--highlight-line): Return created overlay.
+       (flymake--handle-report): Iterate the backend's diagnostics, not
+       the overlays.  Set diagnostic overlay.
+       (flymake--run-backend): Don't clean diagnostic list here.
+       (flymake-mode): Call delete-overlay directly.
+
+2018-06-15  Eli Zaretskii  <address@hidden>
+
+       Fix building --without-x and similar
+
+       * src/keyboard.c (make_lispy_focus_out): Compile it
+       unconditionally, as it is now supported on TTYs as well.
+       Reported by Filipp Gunbin <address@hidden>.
+
+2018-06-15  João Távora  <address@hidden>
+
+       Flymake and backends exchange hints abouts changed regions
+
+       * lisp/progmodes/flymake.el (flymake--delete-own-overlays): Accept
+       BEG and END.  Rename from flymake-delete-own-overlays.
+       (flymake-diagnostic-functions): Describe :region, :recent-changes
+       in docstring.
+       (flymake--handle-report): Accept REGION.
+       (flymake--run-backend): Accept optional ARGS to pass to backend
+       fn.
+       (flymake--recent-changes): New buffer-local variable.
+       (flymake-start): Call flymake--run-backend with recent changes.
+       (flymake-mode): Initialize flymake--recent-changes.  Call
+       flymake--delete-own-overlays.
+       (flymake-after-change-function): Collect recent changes.
+
+       * doc/misc/flymake.texi (Backend functions): Describe
+       :recent-changes and :region.
+
+       * etc/NEWS (Flymake): Mention improvements in backend communication.
+
+2018-06-15  Tino Calancha  <address@hidden>
+
+       customize-apropos: Separate package name from its description
+
+       * lisp/cus-edit.el (custom-group-value-create):
+       Always insert documentation indented from its package name (Bug#31466).
+
+2018-06-14  Paul Eggert  <address@hidden>
+
+       Remove Lisp_Misc_Save_Value
+
+       This type and its associated routines are no longer used.
+       * src/alloc.c (voidfuncptr): Move here from src/lisp.h.
+       (free_misc, make_save_int_int_int)
+       (make_save_obj_obj_obj_obj, make_save_ptr)
+       (make_save_ptr_int, make_save_ptr_ptr)
+       (make_save_funcptr_ptr_obj, make_save_memory)
+       (free_save_value, mark_save_value):
+       Remove.
+       (mark_object): Remove mention of Lisp_Misc_Save_Value.
+       * src/lisp.h (Lisp_Misc_Save_Value, SAVE_SLOT_BITS)
+       (SAVE_VALUE_SLOTS, SAVE_TYPE_BITS, enum Lisp_Save_Type)
+       (struct Lisp_Save_Value, SAVE_VALUEP, XSAVE_VALUE)
+       (save_type, XSAVE_POINTER, set_save_pointer)
+       (XSAVE_FUNCPOINTER, XSAVE_INTEGER, set_save_integer)
+       (XSAVE_OBJECT): Remove.
+       (union Lisp_Misc): Remove u_save_value.
+       (voidfuncptr): Move from here to src/alloc.c.
+       * src/print.c (print_object):
+       Remove support for printing Lisp_Misc_Save_Value.
+
+2018-06-14  Paul Eggert  <address@hidden>
+
+       New type Lisp_Misc_Ptr
+
+       This is a streamlined version of Lisp_Save_Value, which contains just
+       a pointer, as that is all Lisp_Save_Values are used for any more.
+       With the previous changes, these objects are not primarily used as
+       save values, so just call them "Misc" rather than "Save".
+       * src/alloc.c (make_misc_ptr): New function.
+       (mark_object): Mark Lisp_Misc_Ptr too.
+       * src/lisp.h (Lisp_Misc_Ptr): New constant.
+       (struct Lisp_Misc_Ptr): New type.
+       (make_mint_ptr, mint_ptrp, xmint_pointer):
+       Use Lisp_Misc_Ptr, not Lisp_Save_Value.
+       (union Lisp_Misc): Add Lisp_Misc_Ptr.
+       * src/print.c (print_object): Print Lisp_Misc_Ptr.
+
+2018-06-14  Paul Eggert  <address@hidden>
+
+       Avoid allocating Lisp_Save_Value for arrays
+
+       * src/alloc.c (mark_maybe_objects): New function.
+       * src/eval.c (default_toplevel_binding)
+       (backtrace_eval_unrewind, Fbacktrace__locals):
+       Treat array unwindings like other miscellaneous pdl types.
+       (record_unwind_protect_array): New function.
+       (do_one_unbind): Free the array while unwinding.
+       (mark_specpdl): Mark arrays directly.
+       * src/lisp.h (SPECPDL_UNWIND_ARRAY): New constant.
+       (union specbinding): New member unwind_array.
+       (SAFE_ALLOCA_LISP_EXTRA): Use record_unwind_protect_array
+       instead of make_save_memory + record_unwind_protect.
+
+2018-06-14  Paul Eggert  <address@hidden>
+
+       Avoid allocating Lisp_Save_Value for excursions
+
+       * src/editfns.c (save_excursion_save): New arg PDL,
+       specifying where to save the state.  All uses changed.
+       (save_excursion_restore): Args are now the marker and info
+       rather than a pointer to a Lisp_Save_Value containing them.
+       All uses changed.
+       * src/eval.c (default_toplevel_binding, Fbacktrace__locals):
+       Treat excursions like other miscellaneous pdl types.
+       (record_unwind_protect_excursion): Save data directly
+       into the pdl rather than creating an object on the heap.
+       This avoids the need to allocate and free an object.
+       (do_one_unbind, backtrace_eval_unrewind):
+       Unwind excursions directly.
+       (mark_specpdl): Mark excursions directly.
+       * src/lisp.h (SPECPDL_UNWIND_EXCURSION): New constant.
+       (union specbinding): New member unwind_excursion.
+
+2018-06-14  Paul Eggert  <address@hidden>
+
+       Just use cons in macfont_descriptor_entity
+
+       * src/macfont.m (macfont_descriptor_entity): Use cons instead
+       of make_save_ptr_int, as this avoids the need for a special
+       type and function for this one-off.
+
+2018-06-14  Paul Eggert  <address@hidden>
+
+       Avoid allocating a Lisp_Save_Value in ftfont.c
+
+       * src/ftfont.c (struct ftfont_cache_data): New member face_refcount.
+       (ftfont_lookup_cache): Clear it when initializing.
+       Use make_mint_ptr, since this typically avoids the need to
+       allocate a Lisp_Save_Value as refcount is now stored elsewhere.
+       (ftfont_open2, ftfont_close): Manipulate the reference
+       count in the struct, not in the save object.
+
+2018-06-14  Paul Eggert  <address@hidden>
+
+       Use record_unwind_protect_ptr to avoid allocation
+
+       * src/term.c (struct tty_pop_down_menu): New type.
+       (tty_pop_down_menu, tty_menu_show): Use it, along with
+       record_unwind_protect_ptr, to avoid allocating a Lisp_Misc.
+       * src/xmenu.c (struct pop_down_menu): New type.
+       (pop_down_menu, x_menu_show): Use it, likewise.
+       * src/xterm.c (x_cr_destroy, x_cr_export_frames):
+       Use record_unwind_protect_pointer to avoid possibly allocating
+       a Lisp_Misc.
+
+2018-06-14  Paul Eggert  <address@hidden>
+
+       Avoid Lisp_Misc allocation if C stack suffices
+
+       * src/fileio.c (union read_non_regular): New type.
+       (read_non_regular, Finsert_file_contents):
+       Use it to avoid allocating a Lisp_Misc.
+       * src/keymap.c (union map_keymap): New type.
+       (map_keymap_char_table_item, map_keymap_internal):
+       Use it to avoid allocating a Lisp_Misc.
+
+2018-06-14  Paul Eggert  <address@hidden>
+
+       Simplify init_module_assertions
+
+       * src/emacs-module.c (init_module_assertions): Just use NULL
+       instead of allocating a dummy on the stack and then using
+       eassert.  Practical platforms check for null pointer
+       dereferencing nowadays, so this is good enough.
+
+2018-06-14  Paul Eggert  <address@hidden>
+
+       New mint_ptr representation for C pointers
+
+       * src/lisp.h (make_mint_ptr, mint_ptrp, xmint_pointer): New functions.
+       * src/dbusbind.c (xd_lisp_dbus_to_dbus, Fdbus__init_bus):
+       * src/emacs-module.c (module_free_global_ref, Fmodule_load)
+       (module_assert_runtime, module_assert_env, value_to_lisp)
+       (lisp_to_value, initialize_environment)
+       (finalize_environment, finalize_runtime_unwind)
+       (mark_modules):
+       * src/font.c (otf_open, font_put_frame_data)
+       (font_get_frame_data):
+       * src/macfont.m (macfont_invalidate_family_cache)
+       (macfont_get_family_cache_if_present)
+       (macfont_set_family_cache):
+       * src/nsterm.h (XNS_SCROLL_BAR):
+       * src/nsterm.m (ns_set_vertical_scroll_bar)
+       (ns_set_horizontal_scroll_bar):
+       * src/w32fns.c (w32_monitor_enum)
+       (w32_display_monitor_attributes_list):
+       * src/xterm.c (x_cr_destroy, x_cr_export_frames):
+       * src/xwidget.c (webkit_javascript_finished_cb)
+       (save_script_callback, Fxwidget_webkit_execute_script)
+       (kill_buffer_xwidgets):
+       Use mint pointers instead of merely save pointers.
+
+2018-06-14  João Távora  <address@hidden>
+
+       Also allow custom false and null when serializing to JSON
+
+       * doc/lispref/text.texi (Parsing JSON): Describe new arguments of
+       json-serialize and json-insert.
+
+       * src/json.c (enum json_object_type, struct json_configuration):
+       Move up in file before first usage.
+       (lisp_to_json_toplevel, lisp_to_json_toplevel_1, lisp_to_json):
+       Accept a struct json_configuration*.
+       (Fjson_serialize, Fjson_insert): Accept multiple args.
+       (json_parse_args): Accept new boolean configure_object_type.
+
+       * test/src/json-tests.el
+       (json-serialize, json-insert): Update forward decls.
+       (json-parse-with-custom-null-and-false-objects): Add assertions for
+       json-serialize.
+
+2018-06-14  João Távora  <address@hidden>
+
+       Support custom null and false objects when parsing JSON
+
+       * doc/lispref/text.texi (Parsing JSON): Describe new :null-object
+       and :false-object kwargs to json-parse-string and
+       json-parse-buffer.
+
+       * src/json.c
+       (struct json_configuration): New type.
+       (json_to_lisp): Accept a struct json_configuration* param.
+       (json_parse_args): Rename from json_parse_object_type.
+       (Fjson_parse_string): Rework docstring.
+       (Fjson_parse_string, Fjson_parse_buffer): Update call to
+       json_to_lisp.
+       (syms_of_json): Two new syms, QCnull_object and QCfalse_object.
+
+       * test/src/json-tests.el
+       (json-parse-with-custom-null-and-false-objects): New test.
+
+2018-06-14  Damien Cassou  <address@hidden>
+
+       Fix pretty-printing empty objects as null
+
+       * lisp/json.el (json-pretty-print): Force distinction between empty
+         objects and null.
+       (json-encode-list): Remove responsibility to print "null" as this
+       value is not a list.
+       (json-encode): Give higher precedence to lists so that an empty list
+       is printed as an empty object, not as "null".
+
+       * test/lisp/json-tests.el (test-json-encode): Add many tests to check
+         the behavior of pretty-printing.
+
+2018-06-13  Paul Eggert  <address@hidden>
+
+       Remove some wrong 8-byte alignment assumptions
+
+       Do not assume that 8-byte alignment suffices for all C objects,
+       as some platforms require 16-byte alignment for some objects,
+       and this will start to bite us as time goes on (e.g., if an
+       Emacs module ever uses an object containing a long
+       double, which requires 16-byte alignment on x86-64).
+       Conversely, on !USE_LSB_TAG platforms, do not insist on
+       aligning Lisp objects to a multiple of 8, as this is not
+       needed for high-order tag bits.
+       * src/alloc.c (LISP_ALIGNMENT, MALLOC_IS_LISP_ALIGNED):
+       New constants.
+       (XMALLOC_BASE_ALIGNMENT, XMALLOC_HEADER_ALIGNMENT):
+       Removed.  All uses replaced by LISP_ALIGNMENT.
+       (aligned_alloc, laligned, lmalloc, lrealloc, union aligned_Lisp_Misc)
+       (maybe_lisp_pointer, pure_alloc):
+       Use LISP_ALIGNMENT rather than GCALIGNMENT.
+       (aligned_alloc): Do not worry about an alignment of
+       LISP_ALIGNMENT when MALLOC_IS_LISP_ALIGNED, as the code never
+       uses aligned_alloc with alignment == LISP_ALIGNMENT in that case.
+       (__alignof__): Remove.  All uses removed.
+       (MALLOC_IS_GC_ALIGNED): Remove.
+       All uses replaced with MALLOC_IS_LISP_ALIGNED.
+       (vector_alignment): Remove.
+       All uses replaced with LISP_ALIGNMENT.
+       * src/alloc.c (mark_maybe_pointer):
+       * src/emacs-module.c (value_to_lisp_bits):
+       Do not assume GCALIGNMENT == 1 << GCTYPEBITS, as GCALIGNMENT
+       is 1 on !USE_LSB_TAG platforms now.
+       * src/lisp.h (GCALIGNMENT) [!USE_LSB_TAG]: Now 1.
+       (struct Lisp_Symbol, union vectorlike_header, struct Lisp_Cons)
+       (struct Lisp_String): Simplify test for verifying alignment.
+
+2018-06-12  Daniel Colascione  <address@hidden>
+
+       Clarify that enabling a theme does not disable other themes
+
+       Avoid user confusion by explicitly stating that enabling a theme does
+       not imply disabling other themes and that theme load functions are not
+       theme switch functions.
+
+       * lisp/custom.el (load-theme, enable-theme): Clarify docstrings.
+
+2018-06-12  Daniel Colascione  <address@hidden>
+
+       Ignore focus events for dead frames
+
+       Frames can die between the time we generate a focus event and the time
+       we get around to processing it.  Do run after-focus-change-function,
+       since that's idempotent and we want to make sure not to miss
+       any changes.
+
+       * lisp/frame.el (handle-focus-in, handle-focus-out): Check for dead 
frames.
+
+2018-06-12  Stefan Monnier  <address@hidden>
+
+       * lisp/textmodes/ispell.el (ispell-menu-map): Init in declaration
+
+       (ispell-menu-map-needed): Remove, now that the menu doesn't include
+       the list of dictionaries any more, so it's basically constant.
+
+2018-06-12  Eli Zaretskii  <address@hidden>
+
+       Fix initialization of custom-delayed-init-variables
+
+       * lisp/startup.el (command-line): Re-evaluate delayed-init custom
+       variables one more time after setting up the initial
+       window-system.  (Bug#30994)
+
+       * doc/emacs/custom.texi (Early Init File):
+       * etc/NEWS: Warn against using early-init.el as a substitute for
+       .emacs.
+
+2018-06-12  Noam Postavsky  <address@hidden>
+
+       Give warning if losing value to defvaralias (Bug#5950)
+
+       * src/eval.c (Fdefvaralias): Call `display-warning' if the alias
+       target has a non-eq value to the variable being aliased.
+       * test/src/eval-tests.el (defvaralias-overwrite-warning): New test.
+
+2018-06-12  Noam Postavsky  <address@hidden>
+
+       Let display-warning work during bootstrap
+
+       * lisp/emacs-lisp/warnings.el (display-warning): Only call
+       `special-mode' and `newline' if they are `fbound'.
+
+2018-06-11  Michael R. Mauger  <address@hidden>
+
+       * lisp/progmodes/sql.el: Add MariaDB support (Robert Cochran)
+         (sql-product-alist): Add MariaDB entry
+         (sql-mariadb-program, sql-mariadb-options, sql-mariadb-login-params,
+         sql-mode-mariadb-font-lock): New variables, aliases of the MySQL
+         equivalents
+         (sql-mariadb, sql-comint-mariadb): New interaction mode functions
+         for MariaDB
+         (sql-mode-mysql-font-lock-keywords): Updated font-lock for MySQL
+         and MariaDB
+
+2018-06-11  Thomas Fitzsimmons  <address@hidden>
+           Noam Postavsky  <address@hidden>
+
+       soap-client: Add byte-code compatibility function (Bug#31742)
+
+       * lisp/net/soap-client.el: Bump version to 3.1.4.
+       (soap-type-of): New function.
+       (soap-resolve-references, soap-decode-type)
+       (soap-encode-attributes, soap-encode-value): Replace aref
+       calls with calls to soap-type-of.
+
+       * lisp/net/soap-inspect.el (soap-sample-value, soap-inspect):
+       Replace aref calls with calls to soap-type-of.
+
+2018-06-11  Daniel Colascione  <address@hidden>
+
+       Add after-delete-frame-functions
+
+       Instead of working around the behavior delete-frame-functions, just
+       add an after-delete-frame-functions hook.
+
+       * doc/lispref/frames.texi (Deleting Frames): Document
+       `after-delete-frame-functions'.
+
+       * etc/NEWS: Mention `after-delete-frame-functions'.
+
+       * lisp/frame.el (blink-cursor--should-blink):
+       (blink-cursor--rescan-frames, blink-frame-mode): Get rid of the
+       ugly ignored-frame parameter and switch from
+       `delete-frame-functions' to `after-delete-frame-functions'.
+
+       * src/frame.c (syms_of_frame): New variable
+       `after-delete-frame-functions'.
+       (delete_frame): Use it.
+
+2018-06-11  Daniel Colascione  <address@hidden>
+
+       Make blink-cursor-mode use new focus functions
+
+       * lisp/frame.el (blink-cursor--should-blink): New function.
+       (blink-cursor-check): Call it.
+       (blink-cursor--rescan-frames): New function.
+       (blink-cursor-mode): Wire up `blink-cursor--rescan-frames`; stop
+       using `focus-in-hook' and `focus-out-hook'.
+
+2018-06-11  Daniel Colascione  <address@hidden>
+
+       Losing focus should not stop idleness
+
+       * src/keyboard.c (read_char): Make Qfocus_out not break idle.
+
+2018-06-11  Daniel Colascione  <address@hidden>
+
+       New focus management interface
+
+       focus-in-hook and focus-out-hook don't accurately reflect actual
+       user-visible focus states.  Add a new focus interface and mark the old
+       one obsolete.
+
+       * doc/lispref/frames.texi (Input Focus): Document new focus
+       functions.  Remove references to the now-obsolete focus hooks.
+
+       * lisp/frame.el (frame-focus-state): New function.
+       (after-focus-change-function): New variable.
+       (focus-in-hook, focus-out-hook): Move to lisp from C;
+       mark obsolete.
+
+       * lisp/term/xterm.el (xterm-translate-focus-in)
+       (xterm-translate-focus-out): Track tty focus in `tty-focus-state'
+       terminal parameter; call `after-focus-change-function'.
+       (xterm--suspend-tty-function): New function.
+
+       * src/frame.c (Fhandle_switch_frame): Update docstring; don't call
+       focus hooks.
+       (focus-in-hook, focus-out-hook): Remove: moved to lisp.
+       (syms_of_frame): Remove unread_switch_frame; add
+       Vunread_switch_frame.
+
+       * src/keyboard.c:
+       (Finternal_handle_focus_in): New function.
+       (make_lispy_event): Always report focus events to lisp; don't
+       translate them to switch events sometimes.  Lisp can take care of
+       creating synthetic switch-frame events via
+       `internal-handle-focus-in'.
+
+       * src/w32term.c (x_focus_changed): Remove switch-avoidance logic:
+       just directly report focus changes to lisp.
+
+       * src/xterm.c (x_focus_changed): Remove switch-avoidance logic:
+       just directly report focus changes to lisp.
+
+2018-06-11  Daniel Colascione  <address@hidden>
+
+       Remove code #if-0-ed terminal-local code
+
+       This code hasn't been used since 2005.
+
+       * src/data.c
+       (get_terminal, Fterminal_local_value, Fset_terminal_local_value): 
Remove.
+
+2018-06-11  Daniel Colascione  <address@hidden>
+
+       Remove obsolete keyboard.c code
+
+       * src/keyboard.c (any_kboard_state, single_kboard_state): Remove
+       #if-0-ed functions.
+
+2018-06-11  Lars Ingebrigtsen  <address@hidden>
+
+       Don't have shr bug out on degenerate <img> tags
+
+       * lisp/net/shr.el (shr-tag-img): Protect against contructs like
+       <img src=" ">.
+
+2018-06-10  Stefan Monnier  <address@hidden>
+
+       * lisp/textmodes/ispell.el (ispell--call-enchant-lsmod): Use \' i.s.o $.
+
+2018-06-10  Noam Postavsky  <address@hidden>
+
+       Merge from emacs-26
+
+       8a1576cc03 Fix term.el cursor movement at bottom margin (Bug#31690)
+
+2018-06-10  Noam Postavsky  <address@hidden>
+
+       Merge from emacs-26
+
+       3434edc731 Enlarge DUMPED_HEAP_SIZE for 64-bit Windows builds
+       36bbdfc017 Update Unicode data files to version 11.0.0 of Unicode
+       b7b7a5f4f3 * etc/NEWS: Belatedly call out vc-hg changes in v26.1.  (B...
+       5b6f8b54d1 Clarify the documentation of 'dired-recursive-deletes'
+       9db97b49cd ; * etc/DEBUG: Add information about debugging libXft prob...
+       0214ffbe60 Clarify doc string of 'update-glyphless-char-display'
+       ef35d405b1 Clarify subtle issues with 'eq' in byte-compiled code
+       c6ef3c8321 Make cl-print respect print-quoted (bug#31649)
+       26b52ac40e Fix unexpected jumps of window-point in 'set-window-config...
+       4af077ab4d * etc/emacs.appdata.xml: Update Emacs screenshot.
+       e5ab25deae Fix cursor movement by 'next-logical-line' after 'next-line'
+       d20beef5f1 Fix prompt in bookmark.el (Bug#24726)
+       c57e7eaae8 Improve documentation of 'empty' whitespace-style
+
+       # Conflicts:
+       #       etc/NEWS
+
+2018-06-10  Noam Postavsky  <address@hidden>
+
+       Merge from emacs-26
+
+       55c9bb9f3c Fix comint-get-old-input-default for output field case (Bu...
+       26819cd1c0 ; ChangeLog.3: Fix typo.
+       e35a08ea4b Prevent infloop in 'delete-trailing-whitespace'
+
+       * lisp/progmodes/cperl-mode.el:
+       * lisp/progmodes/cc-engine.el:
+       * lisp/progmodes/cc-mode.el: Fix tabs mixed with space preventing
+       commit hook from succeeding.
+
+2018-06-10  Paul Eggert  <address@hidden>
+
+       Pacify gcc -Wnull-dereference some more
+
+       * src/keyboard.c (read_char): Use xevent_start in a couple
+       more places where it is safe.  This is needed with
+       --enable-gcc-warnings --enable-checking on Fedora 28 x86-64.
+
+2018-06-10  Paul Eggert  <address@hidden>
+
+       Use native alignment to access Lisp object data
+
+       Instead of using __builtin_assume_aligned (P, GCALIGNMENT) to
+       tell GCC that P has alignment 8, use (T *) P where T is the
+       type of the pointed-to object, to tell GCC that P has native
+       alignment.  This is simpler, matches the intent better, and
+       should help simplify future improvements.  Some of these
+       changes are to pacify gcc -Wnull-dereference, since GCC is
+       smarter about pointers now that Emacs no longer uses
+       __builtin_assume_aligned; these minor changes should improve
+       code efficiency slightly.  On Fedora 28 x86-64 with default
+       optimization this patch shrinks the size of the Emacs text
+       segment by 0.36%.
+       * src/conf_post.h (__has_builtin, __builtin_assume_aligned):
+       Remove; no longer used.
+       * src/dbusbind.c (XD_OBJECT_TO_DBUS_TYPE):
+       Pacify -Wnull-dereference by using XCAR instead of CAR_SAFE
+       and XCDR instead of CDR_SAFE when this is safe.
+       * src/fileio.c (Fexpand_file_name):
+       * src/font.c (clear_font_cache):
+       Pacify -Wnull-dereference by removing unnecessary NILP test.
+       * src/keyboard.c (xevent_start): New function.
+       (read_char, read_key_sequence): Pacify -Wnull-dereference by
+       using xevent_start instead of EVENT_START.
+       * src/lisp.h (lisp_h_XUNTAG): Remove; XUNTAG is always a macro
+       now, since it can no longer be implemented as a function.
+       (XUNTAG): New third argument CTYPE.  All uses changed.
+       Cast result to CTYPE * instead of using __builtin_assume_aligned.
+       Simplify by using LISP_WORD_TAG.
+       (LISP_WORD_TAG): New macro.
+       (TAG_PTR): Use it.
+       * src/menu.c (x_popup_menu_1):
+       Pacify -Wnull-dereference by using XCAR instead of Fcar and
+       XCDR instead of Fcdr where this is safe.
+
+2018-06-09  Paul Eggert  <address@hidden>
+
+       Simplify read_key_sequence
+
+       * src/keyboard.c (READ_KEY_ELTS): New constant.
+       (keyremap_step, read_key_sequence): Omit BUFSIZE arg, since it's
+       always READ_KEY_ELTS.  All callers changed.
+       (grow_bool_vector): Remove; no longer needed.
+       (read_key_sequence): Use a bool array instead of a Lisp bool
+       vector, since it's small and this puts less pressure on the GC.
+
+2018-06-09  Daniel Colascione  <address@hidden>
+
+       Unbreak echoing
+
+       * src/keyboard.c (read_key_sequence): Don't echo_truncate the first 
time.
+
+2018-06-09  Paul Eggert  <address@hidden>
+
+       Fix pointer misuse in JSON parser
+
+       * src/json.c (lisp_to_json_toplevel_1): Fix pointer misuse not
+       caught by C type checking (json_t ** converted to void * where
+       the program expected json_t *).  Bug caught on Fedora 28 x86-64 via
+       './configure CFLAGS="-g3 -O2 -fsanitize=address" CANNOT_DUMP=yes'.
+       Avoid similar problems in the future by rewriting to use
+       json_t * instead of json_t **.
+
+2018-06-09  Daniel Colascione  <address@hidden>
+
+       Correctly set last_nonmenu_event when replaying
+
+       read_key_sequence can, in various circumstances, play back recorded
+       events.  Make sure that we set last_nonmenu_event as if we weren't
+       replaying.  Without this change, we leave last_nonmenu_event set to
+       whatever it was before we started replaying, leading to spurious
+       random keymap menu prompts appearing after reading terminal control
+       sequences, the translation of which sometimes causes event replays.
+
+       * src/keyboard.c:
+       (grow_bool_vector): New function
+       (read_key_sequence): Remember menu event history per-event.
+
+2018-06-09  Daniel Colascione  <address@hidden>
+
+       Add debug facility for formatting in rr sessions
+
+       The existing debug print commands don't work in rr, since they touch
+       stderr. The new xfmt command just calls Fformat and doesn't touch the
+       stdio streams.
+
+       * src/.gdbinit:
+       (xfmt): New GDB command.
+
+       * src/print.c:
+       (debug_format): New function.
+
+2018-06-09  Daniel Colascione  <address@hidden>
+
+       Fix typo in docstring
+
+       * lisp/term/xterm.el: (xterm-paste-ending-sequence): Fix typo
+
+2018-06-09  Paul Eggert  <address@hidden>
+
+       Fix read buffer overrun on overflowed integers
+
+       * src/lread.c (read_integer): Fix off-by-1 buffer overrun
+       introduced in 2018-04-17T23:23:16Z!address@hidden.  The
+       bug could occur when Emacs read radixed integers containing
+       more than 100 digits.  Bug caught by AddressSanitizer.
+
+2018-06-09  Alan Mackenzie  <address@hidden>
+
+       Implement the C++11 "using" type definition.
+
+       Cease using the long obsolete c++-template-syntax-table.
+
+       * lisp/progmodes/cc-align.el (c-lineup-template-args): Cease using
+       c++-template-syntax-table.
+
+       * lisp/progmodes/cc-engine.el (c-beginning-of-inheritance-list)
+       (c-search-decl-header-end, c-beginning-of-decl-1, c-end-of-decl-1)
+       (c-guess-continued-construct, c-guess-basic-syntax): Cease using
+       c++-template-syntax-table.
+       (c-guess-basic-syntax): Add CASE 5D.6 to handle C++11's "using" type
+       definition.
+
+       * lisp/progmodes/cc-langs.el (c++-make-template-syntax-table)
+       (c++-template-syntax-table): Remove.
+       (c-equals-type-clause-kwds, c-equals-type-clause-key): New language
+       constants/variables.
+
+2018-06-09  Daniel Colascione  <address@hidden>
+
+       Improve robustness xterm event processing
+
+       We used to treat the start of a focus-in, focus-out, and the start of
+       a paste sequence as normal events bound in global-map, but this
+       approach produces problems when we recognize events in the middle of
+       actions that don't immediately dispatch to the command loop.
+
+       Now we handle these events internally inside read-key, translating the
+       focus events to nothing and paste-start into an xterm-paste event that
+       neatly encapsulates the entire paste sequence.
+
+       * lisp/term/xterm.el:
+       (xterm-paste): Accept an event argument; insert text from event.
+       (xterm-translate-focus-in,xterm-translate-focus-out)
+       (xterm-translate-bracketed-paste): New functions.
+       (xterm-handle-focus-in,xterm-handle-focus-out): Remove.
+       (xterm-rxvt-function-map): Bind new translation functions.
+
+2018-06-09  Alan Mackenzie  <address@hidden>
+
+       CC Mode: In brace lists, anchor an elt on its predecessor, not on first 
elt
+
+       * lisp/progmodes/cc-engine.el (c-beginning-of-statement-1): At the end, 
accept
+       "." as a unary operator (which it now is in brace lists in, e.g., C 
Mode).
+       (c-guess-basic-syntax): Just before CASE 9C, move back to the previous 
brace
+       list entry in the block, rather than to the first one.
+
+2018-06-09  Philipp Stephani  <address@hidden>
+
+       Make error checking for thread functions stricter.
+
+       * src/systhread.c (sys_thread_create): Change return type to bool.
+       Check for errors returned by pthread_attr_setstacksize and
+       pthread_attr_destroy.
+       (sys_mutex_init): Abort on errors.  Enable mutex checks when checking
+       is enabled.
+       (sys_cond_init): Abort on errors.
+       (sys_mutex_lock, sys_mutex_unlock, sys_cond_wait)
+       (sys_cond_signal, sys_cond_broadcast, sys_cond_destroy): Check for
+       errors in debug mode.
+
+2018-06-09  Eli Zaretskii  <address@hidden>
+
+       Allow to reset Deleted flag when exporting messages in Rmail
+
+       * lisp/mail/rmailout.el (rmail-output-reset-deleted-flag): New
+       defcustom.
+       (rmail-output): When 'rmail-output-reset-deleted-flag' is non-nil,
+       reset the Deleted flag of the appended messages, and if COUNT is
+       greater than 1, do not ignore deleted messages.  Update the doc
+       string accordingly.  (Bug#31271)
+
+       * doc/emacs/rmail.texi (Rmail Output): Document
+       'rmail-output-reset-deleted-flag'.
+
+       * etc/NEWS: Mention the new user option.
+
+2018-06-08  Paul Eggert  <address@hidden>
+
+       Remove AddressSanitizer bug workaround
+
+       This workaround no longer appears to be needed.
+       * src/alloc.c (USE_ALIGNED_ALLOC): Don’t leave undefined
+       merely because ADDRESS_SANITIZER is defined, as that bug
+       in -fsanitize=address appears to have been fixed.  See:
+       https://github.com/google/sanitizers/issues/337
+       * src/conf_post.h (vfork): Improve comment.
+
+2018-06-08  Basil L. Contovounesios  <address@hidden>
+
+       Fix default candidate of find-face-definition
+
+       * lisp/emacs-lisp/find-func.el (find-function-read): Use
+       face-at-point instead of variable-at-point for faces. (bug#31699)
+
+2018-06-08  Daniel Colascione  <address@hidden>
+
+       Avoid unnecessary readahead early in TTY frame init
+
+       We query some properties of the terminal early in initialization, and
+       just before we do, we perform ordinary redisplay.  This redisplay can
+       result in unsightly flickering if we change some aspects of the
+       display immediately afterward and redisplay again.  By avoiding
+       redisplay in xquery--query as long as we get timely responses from the
+       terminal, we can avoid this early unwanted redisplay.
+
+       * lisp/term/xterm.el:
+       (xterm-query-redisplay-timeout): New variable.
+       (xterm--read-event-for-query): New function.
+       (xterm--report-background-handler,xterm--version-handler,xterm--query):
+       Call it.
+
+2018-06-08  Daniel Colascione  <address@hidden>
+
+       Support terminal focus notifications
+
+       * lisp/frame.el (handle-focus-in,handle-focus-out): Make event
+       argument optional.
+       (blink-cursor-check): Make sure that the current frame is a
+       window-system frame before restarting the blink timer. TTY frames
+       can get focus, but don't need a blink timer because the terminal
+       will do the blinking.
+
+       * lisp/term/xterm.el
+       (xterm-handle-focus-in,xterm-handle-focus-out): New functions.
+       (xterm-rxvt-function-map): Recognize focus notification sequences.
+       (xterm--init-focus-tracking): New function.
+       (terminal-init-xterm): Call it.
+
+2018-06-08  Daniel Colascione  <address@hidden>
+
+       Fix formatting in the face filter change
+
+       * src/xfaces.c:
+       (evaluate_face_filter,filter_face_ref)
+       (merge_face_ref,syms_of_xfaces): Fix comments, formatting.
+
+2018-06-08  Daniel Colascione  <address@hidden>
+
+       Make setting inhibit-startup-screen in early init work
+
+       * lisp/startup.el (command-line): Bind `inhibit-startup-screen'
+       around loading the site file instead of unconditionally
+       resetting it.
+
+2018-06-08  João Távora  <address@hidden>
+
+       Describe flymake-start-on-save-buffer in manual and NEWS
+
+       (Bug#31738)
+
+       * doc/misc/flymake.texi (Using Flymake, Customizable variables):
+       Mention flymake-start-on-save-buffer.
+
+       * etc/NEWS: Mention flymake-start-on-save-buffer.
+
+2018-06-08  João Távora  <address@hidden>
+
+       New flymake-start-on-save-buffer custom variable
+
+       (Bug#21419)
+
+       * lisp/progmodes/flymake.el (flymake-after-save-hook): Use
+       flymake-start-on-save-buffer.
+       (flymake-start-on-save-buffer): New custom variable.
+       (flymake-start-on-flymake-mode): Tweak docstring.
+
+2018-06-08  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Fontify unbalanced quotes in unconstrained multiline strings, 
etc.
+
+       ("Unconstrained" meaning that every string is multiline, without 
needing such
+       special marking as used by Pike Mode.)
+
+       * lisp/progmodes/cc-mode.el (c-pps-to-string-delim): Don't process the 
char
+       before BOB.
+       (c-multiline-string-check-final-quote): New function.
+       (c-bc-changed-stringiness): New variable.
+       (c-before-change-check-unbalanced-strings): Add handling for 
unconstrained
+       multiline strings.
+       (c-after-change-re-mark-unbalanced-strings): Add handling for 
unconstrained
+       multiline strings.  Handle escaped double quotes more accurately.
+
+2018-06-08  Paul Eggert  <address@hidden>
+
+       Port alignment verification to x86 --with-wide-int
+
+       Problem reported by Eli Zaretskii in:
+       https://lists.gnu.org/r/emacs-devel/2018-06/msg00238.html
+       * src/lisp.h (struct Lisp_Symbol, union vectorlike_header)
+       (struct Lisp_Cons, struct Lisp_String):
+       Do not check alignment if !USE_LSB_TAG, as alignment is
+       needed only if we are tagging the low-order bits.
+
+2018-06-07  Daniel Colascione  <address@hidden>
+
+       Offer to open large files without modes
+
+       * lisp/files.el:
+       (files--ask-user-about-large-file): New function.
+       (abort-if-file-too-large): Call it.
+       (find-file-noselect): Support new raw open.
+
+2018-06-07  Daniel Colascione  <address@hidden>
+
+       Add support for per-window face remapping
+
+       Extend face specifications to support the notion of filtering to a
+       specific context and add a filter that limits a face specification to
+       windows having a certain parameter.
+
+       * src/xfaces.c:
+       (evaluate_face_filter,filter_face_ref): New functions.
+       (merge_face_ref): Ignore filtered face specifications.
+       (Fx_list_fonts,get_lface_attributes,merge_face_vectors)
+       (merge_named_face,merge_face_ref,merge_face_ref)
+       (Finternal_merge_in_global_face,Fface_font,lookup_named_face)
+       (lookup_basic_face,Fface_attributes_as_vector)
+       (x_supports_face_attributes_p)
+       (Fdisplay_supports_face_attributes_p,realize_named_face)
+       (compute_char_face,face_at_buffer_position)
+       (face_at_buffer_position,face_at_buffer_position)
+       (face_at_buffer_position)
+       (face_for_overlay_string,face_at_string_position,merge_faces):
+       Pass window to face machinery.
+       (syms_of_xfaces): Add :window and :filtered
+
+       * src/xdisp.c (init_iterator, handle_face_prop)
+       (handle_single_display_spec, merge_escape_glyph_face)
+       (merge_glyphless_glyph_face, get_next_display_element)
+       (next_element_from_display_vector, append_space_for_newline)
+       (extend_face_to_end_of_line,highlight_trailing_whitespace)
+       (maybe_produce_line_number)
+       (display_line, calc_line_height_property): Pass window to
+       face machinery.
+
+       * src/term.c (tty_menu_activate): Adjust to new face core
+       function signature.
+
+       * src/msdos.c (XMenuActivate): Adjust to new face core
+       function signature.
+
+       * src/fringe.c (draw_fringe_bitmap_1, Fset_fringe_bitmap_face):
+       Pass window to face machinery.
+
+       * src/font.c (font_range, Finternal_char_font): Pass window to
+       face machinery.
+
+       * src/dispnew.c (spec_glyph_lookup_face): Pass window to
+       face machinery.
+
+       * src/dispextern.h:
+       (lookup_named_face,lookup_basic_face)
+       (lookup_derived_face,merge_faces):
+       Add struct window arguments to prototypes.
+
+2018-06-07  Paul Eggert  <address@hidden>
+
+       Fit kill_buffer_xwidgets into 80
+
+       * src/xwidget.c (kill_buffer_xwidgets): Reindent and use C99
+       style to fit in 80 columns.
+
+2018-06-07  Paul Eggert  <address@hidden>
+
+       Minor cleanup of save_excursion_restore
+
+       * src/editfns.c (save_excursion_restore): Use clearer names
+       for locals.  Free earlier, removing the need for a label and goto.
+
+2018-06-07  Paul Eggert  <address@hidden>
+
+       New function record_unwind_protect_excursion
+
+       This simplifies callers a bit, and will simplify future changes.
+       * src/eval.c (record_unwind_protect_excursion): New function.
+       * src/buffer.c (Fkill_buffer):
+       * src/bytecode.c (exec_byte_code):
+       * src/editfns.c (Fsave_excursion, Freplace_buffer_contents):
+       * src/lread.c (readevalloop, Feval_buffer):
+       * src/window.c (scroll_command):
+       Use it.
+
+2018-06-07  Paul Eggert  <address@hidden>
+
+       * src/.gdbinit: Omit soon-obsolete comment.
+
+2018-06-07  Paul Eggert  <address@hidden>
+
+       Fix ftfont_open2 failure cleanup
+
+       * src/ftfont.c (ftfont_open2): Don’t increment counter if failing.
+       Avoid use-after-free once the increment bug is fixed.
+
+2018-06-07  Paul Eggert  <address@hidden>
+
+       Don’t over-align if WIDE_EMACS_INT
+
+       * src/lisp.h (GCALIGNED_UNION): New macro.
+       (struct Lisp_Symbol, union vectorlike_header)
+       (struct Lisp_Cons, struct Lisp_String):
+       Use it to avoid possible over-alignment if !USE_LSB_TAG.
+
+2018-06-07  Paul Eggert  <address@hidden>
+
+       Fix GC-related commentary
+
+       * src/lisp.h: USE_STACK_LISP_OBJECTS is no longer experimental.
+       Also, remove confusion about scope vs lifetime.
+       And say that stack-allocated strings should not be given
+       text properties.
+
+2018-06-07  Noam Postavsky  <address@hidden>
+
+       Let isearch-yank-kill enable isearch-mode if needed (Bug#21419)
+
+       * lisp/isearch.el (isearch-yank-kill): Enable isearch-mode if needed.
+
+2018-06-07  João Távora  <address@hidden>
+
+       Accept plists when serializing and parsing JSON
+
+       * doc/lispref/text.texi (Parsing JSON): Mention plist support.
+
+       * src/json.c (lisp_to_json_toplevel_1): Serialize plists to json.
+       (Fjson_serialize): Mention plists in docstring.
+       (enum json_object_type): Add json_object_plist.
+       (json_to_lisp): Parse JSON into plists.
+       (json_parse_object_type): Consider plists.
+       (Fjson_parse_string): Mention plists in docstring.
+       (syms_of_json): New Qplist sym_of_json.
+       (lisp_to_json): Update comment.
+
+       * test/src/json-tests.el (json-serialize/object)
+       (json-parse-string/object): New plist tests.
+
+2018-06-07  Michael Albinus  <address@hidden>
+
+       Remove Tramp "obex" and "synce" methods
+
+       * doc/misc/tramp.texi (GVFS based methods): Remove `obex' and `synce'.
+
+       * etc/NEWS: Mention obsolete Tramp "obex" and "synce" methods.
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-methods):
+       Remove "obex" and "synce".
+       (top): Do not add defaults for "obex" and "synce".
+       (tramp-bluez-service, tramp-bluez-interface-manager)
+       (tramp-bluez-interface-adapter)
+       (tramp-bluez-discover-devices-timeout, tramp-bluez-discovery)
+       (tramp-bluez-devices, tramp-hal-service, tramp-hal-path-manager)
+       (tramp-hal-interface-manager, tramp-hal-interface-device)
+       (tramp-bluez-address, tramp-bluez-device)
+       (tramp-bluez-list-devices, tramp-bluez-property-changed)
+       (tramp-bluez-device-found, tramp-bluez-parse-device-names)
+       (tramp-synce-list-devices, tramp-synce-parse-device-names): Remove.
+       (tramp-gvfs-handler-mounted-unmounted)
+       (tramp-gvfs-connection-mounted-p, tramp-gvfs-mount-spec): Do not
+       handle "obex" and "synce".
+
+2018-06-05  João Távora  <address@hidden>
+
+       When navigating Flymake diagnostics, consider their severity
+
+       The FILTER arg of flymake-goto-next-error, a list of types, includes
+       every diagnostic with a severity number `eq` to those types.
+
+       * lisp/progmodes/flymake.el (flymake--severity): New helper.
+       (flymake-goto-next-error, flymake-goto-prev-error): Clarify
+       meaning of FILTER.
+       (flymake-goto-next-error): Interpret filter as a severity filter.
+       (flymake--mode-line-format): Simplify.
+
+2018-06-05  João Távora  <address@hidden>
+
+       Obsolete Flymake's flymake-diagnostic-types-alist
+
+       That varaiable was an association between symbols and properties,
+       effecively duplicating symbol's property lists.  It is simpler to just
+       put properties on symbols.  Backward compatibility to the old variable
+       has been kept.
+
+       * doc/misc/flymake.texi (Flymake error types): Don't mention
+       flymake-diagnostic-types-alist.
+       (Flymake error types): Rework section.
+       (Backend functions): Refill a paragraph.
+       (Flymake utility functions): Don't mention
+       flymake-diagnostic-types-alist.
+       (Proc customization variables): Don't mention
+       flymake-diagnostic-types-alist.
+
+       * etc/NEWS: Mention obsoletion of flymake-diagnostic-types-alist.
+
+       * lisp/progmodes/flymake-proc.el
+       (flymake-proc--diagnostics-for-pattern): Don't use
+       flymake-diagnostic-types-alist.
+
+       * lisp/progmodes/flymake.el: Rewrite commentary.
+       (flymake-make-diagnostic, flymake-mode, flymake-goto-next-error)
+       (flymake-goto-prev-error): Don't mention
+       flymake-diagnostic-types-alist in docstring.
+       (flymake-diagnostic-types-alist): Make obsolete.
+       (:error, :warning, :note): Put flymake-category in these symbols.
+       (flymake-error, flymake-warning, flymake-note): Put
+       `flymake-bitmap', not `bitmap' in these symbols.
+       (flymake--lookup-type-property, flymake--highlight-line): Rewrite.
+       Honor flymake-diagnostic-types-alist for backward
+       compatibility.
+
+       * lisp/progmodes/python.el (python-flymake-msg-alist): Don't
+       mention flymake-diagnostic-types-alist.
+
+2018-06-05  João Távora  <address@hidden>
+
+       Correctly filter Flymake diagnostic types shown in mode-line
+
+       Thus, if a package foo has its own types foo-error and
+       foo-warning, and if the buffer has no errors, the mode-line
+       will correctly show `[0 0]' (zero errors and warnings) instead
+       of `[0 0 0 0]' (zero errors, zero foo-errors, zero warnings,
+       zero  foo-warnings).
+
+       * lisp/progmodes/flymake.el
+       (flymake--mode-line-format): Coalesce diagnostic types based on
+       the severity, not the symbol.
+
+2018-06-05  João Távora  <address@hidden>
+
+       Let Flymake backends attach arbitrary data to diagnostics
+
+       This is easier that setting properties on diagnostics' text.
+
+       * lisp/progmodes/flymake.el (flymake--diag): Add data slot.
+       (flymake-make-diagnostic): Add DATA arg.
+       (flymake-diagnostic-data): New accessor.
+
+2018-06-05  João Távora  <address@hidden>
+
+       Update version information for Flymake package and manual
+
+       * doc/misc/flymake.texi: Update date and version.
+       Make myself the first author.
+
+       * lisp/progmodes/flymake.el: Update Maintainer and Version fields.
+
+       * lisp/progmodes/flymake-proc.el
+       (flymake-proc--diagnostics-for-pattern): Update Maintainer and Version 
fields.
+
+2018-06-05  Damien Cassou  <address@hidden>
+
+       * lisp/auth-source-pass.el: Update version to 4.0.1
+
+2018-06-05  Damien Cassou  <address@hidden>
+
+       Test checking that auth-source-pass backend is correctly installed
+
+       * test/lisp/auth-source-pass-tests.el
+       (auth-source-pass-can-start-from-auth-source-search): Add test.
+
+2018-06-05  Damien Cassou  <address@hidden>
+
+       Make sure auth-source-pass is compatible with Emacs 25
+
+       * lisp/auth-source-pass.el: Use `advice-add' for Emacs 25 users as
+       `auth-source-backend-parser-functions' does not exist there.
+
+2018-06-05  Damien Cassou  <address@hidden>
+
+       * lisp/auth-source-pass.el: Update version to 4.0.0
+
+2018-06-05  Damien Cassou  <address@hidden>
+
+       Fix prefix messages of auth-source-pass debug messages
+
+       * lisp/auth-source-pass.el (auth-source-pass--do-debug): Fix message
+       prefix.
+
+2018-06-05  Damien Cassou  <address@hidden>
+
+       * lisp/auth-source-pass.el: Update version to 3.0.0
+
+2018-06-05  Alex Branham  <address@hidden>
+
+       Silence byte compiler warning in auth-source-pass
+
+       * lisp/auth-source-pass.el (auth-source-pass-backend): Silence byte
+       compiler warning by only passing a parameter to `auth-source-backend'
+       in Emacs <= 25.
+
+2018-06-05  Jelle Licht  <address@hidden>
+
+       Fix auth-source-pass.el to properly handle special inputs
+
+       * lisp/auth-source-pass.el (auth-source-pass-search): Warn when
+       passing multiple hosts in SPEC. Early return and warn when passing a
+       wildcard as host in SPEC. Early return when host is nil.
+       * test/lisp/auth-source-pass-tests.el (auth-source-pass-any-host,
+       auth-source-pass-undefined-host): Add corresponding tests.
+
+2018-06-05  Damien Cassou  <address@hidden>
+
+       auth-source-pass: Take care of matching hosts when port is provided
+
+       * lisp/auth-source-pass.el (auth-source-pass--find-match): Add PORT
+       parameter and reorganize code by extracting `find-match-unambiguous'.
+       (auth-source-pass--find-match-unambiguous): New function.
+       (auth-source-pass--build-result): Fix the call to `find-match'.
+       (auth-source-pass--hostname, auth-source-pass--hostname-with-user,
+       auth-source-pass--user): Remove functions.
+       * test/lisp/auth-source-pass-tests.el: Fix the calls to `find-match'.
+       (auth-source-pass-find-host-without-port) Add corresponding test.
+
+2018-06-05  Damien Cassou  <address@hidden>
+
+       Add missing test cases to auth-source-pass-tests.el
+
+       * test/lisp/auth-source-pass-tests.el
+       (auth-source-pass-build-result-passes-full-host-to-find-match): Add
+       missing test cases.
+
+2018-06-05  Damien Cassou  <address@hidden>
+
+       Add a test to auth-source-pass-tests.el
+
+       * test/lisp/auth-source-pass-tests.el
+       (auth-source-pass-build-result-passes-full-host-to-find-match): Add
+       test making sure find-match is called with full host.
+
+2018-06-05  Damien Cassou  <address@hidden>
+
+       Fix indentation in auth-source-pass-tests.el
+
+       * test/lisp/auth-source-pass-tests.el
+       (auth-source-pass-only-return-entries-that-can-be-open): Fix 
indentation.
+
+2018-06-05  Edison Ibañez  <address@hidden>
+
+       * test/lisp/auth-source-pass-tests.el: Add assertions for host:port
+
+2018-06-05  Damien Cassou  <address@hidden>
+
+       * lisp/auth-source-pass.el: Fix headers.
+
+2018-06-05  Michael Albinus  <address@hidden>
+
+       Fix selinux test in files-tests.el
+
+       * test/lisp/files-tests.el
+       (files-tests-file-name-non-special-set-file-selinux-context):
+       Adapt test.
+
+2018-06-04  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       03697e6 Fix remote-host directory tracking for shells in `term' buffers
+       16e8541 Update doc string of 'rx'
+
+2018-06-04  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       defd53a Set accessibility subroles for child frame (bug#31324)
+       de6a876 Fix redefinition of child frames on NS
+
+2018-06-04  Michael Albinus  <address@hidden>
+
+       Fix Bug#31489
+
+       * lisp/files.el (file-name-unquote-non-special): Remove.
+       (file-name-quoted-p, file-name-quote, file-name-unquote):
+       Add optional argument TOP.
+       (file-name-non-special): Adapt callees.  Finish implementation of
+       functions which need a local copy.  (Bug#31489)
+
+2018-06-03  João Távora  <address@hidden>
+
+       Add proper Flymake support to cc-mode.el
+
+       Except for the important detail that it doesn't make temporary files,
+       the new flymake-cc backend doesn't yet behave much differently from
+       the old flymake-proc-legacy-flymake, i.e. it still needs a special
+       `check-syntax' Makefile target to provide the compiler and compilation
+       flags.  However, the new infrastructure created should allow less
+       intrusive cleverer flag guessers (yet to be written) to replace that
+       mechanism.
+
+       * lisp/progmodes/cc-mode.el (c-mode, c++-mode): Add to
+       flymake-diagnostic-functions.
+
+       * lisp/progmodes/flymake-cc.el: New file.
+
+2018-06-03  Alan Third  <address@hidden>
+
+       Add NS style text scale keybindings
+
+       * lisp/term/ns-win.el: Add super-based keybindings for adjusting text
+       zoom.
+
+2018-06-03  Michael Albinus  <address@hidden>
+
+       Extend file-name-non-special
+
+       * lisp/files.el (insert-file-contents-literally):
+       Bind `inhibit-file-name-handlers' the default way.
+       (file-name-non-special): Rework, mainly for operations with two
+       file name arguments.
+       (file-name-unquote-non-special): New defsubst.
+       (file-name-unquote): Use it.
+
+       * test/lisp/files-tests.el (files-test-bug-18141): Skip if needed.
+       (files-tests--with-temp-non-special): Add docstring.  Delete also
+       `non-special-name' if the file/directory exists.
+       (files-tests--special-file-name-extension)
+       (files-tests--special-file-name-regexp): New defconst.
+       (files-tests--special-file-name-handler, files-tests--new-name):
+       New defuns.
+       (files-tests--with-temp-non-special-and-file-name-handler): New macro.
+       (files-tests-file-name-non-special-access-file)
+       (files-tests-file-name-non-special-add-name-to-file)
+       (files-tests-file-name-non-special-byte-compiler-base-file-name)
+       (files-tests-file-name-non-special-copy-directory)
+       (files-tests-file-name-non-special-copy-file)
+       (files-tests-file-name-non-special-delete-directory)
+       (files-tests-file-name-non-special-delete-file)
+       (files-tests-file-name-non-special-diff-latest-backup-file)
+       (files-tests-file-name-non-special-directory-file-name)
+       (files-tests-file-name-non-special-directory-files)
+       (files-tests-file-name-non-special-directory-files-and-attributes)
+       (files-tests-file-name-non-special-dired-compress-handler)
+       (files-tests-file-name-non-special-dired-uncache)
+       (files-tests-file-name-non-special-expand-file-name)
+       (files-tests-file-name-non-special-file-accessible-directory-p)
+       (files-tests-file-name-non-special-file-acl)
+       (files-tests-file-name-non-special-file-attributes)
+       (files-tests-file-name-non-special-file-directory-p)
+       (files-tests-file-name-non-special-file-equal-p)
+       (files-tests-file-name-non-special-file-executable-p)
+       (files-tests-file-name-non-special-file-exists-p)
+       (files-tests-file-name-non-special-file-in-directory-p)
+       (files-tests-file-name-non-special-file-local-copy)
+       (files-tests-file-name-non-special-file-modes)
+       (files-tests-file-name-non-special-file-name-all-completions)
+       (files-tests-file-name-non-special-file-name-as-directory)
+       (files-tests-file-name-non-special-file-name-case-insensitive-p)
+       (files-tests-file-name-non-special-file-name-completion)
+       (files-tests-file-name-non-special-file-name-directory)
+       (files-tests-file-name-non-special-file-name-nondirectory)
+       (files-tests-file-name-non-special-file-name-sans-versions)
+       (files-tests-file-name-non-special-file-newer-than-file-p)
+       (files-tests-file-name-non-special-notify-handlers)
+       (files-tests-file-name-non-special-file-ownership-preserved-p)
+       (files-tests-file-name-non-special-file-readable-p)
+       (files-tests-file-name-non-special-file-regular-p)
+       (files-tests-file-name-non-special-file-remote-p)
+       (files-tests-file-name-non-special-file-selinux-context)
+       (files-tests-file-name-non-special-file-symlink-p)
+       (files-tests-file-name-non-special-file-truename)
+       (files-tests-file-name-non-special-file-writable-p)
+       (files-tests-file-name-non-special-find-backup-file-name)
+       (files-tests-file-name-non-special-get-file-buffer)
+       (files-tests-file-name-non-special-insert-directory)
+       (files-tests-file-name-non-special-insert-file-contents)
+       (files-tests-file-name-non-special-load)
+       (files-tests-file-name-non-special-make-auto-save-file-name)
+       (files-tests-file-name-non-special-make-directory)
+       (files-tests-file-name-non-special-make-directory-internal)
+       (files-tests-file-name-non-special-make-symbolic-link)
+       (files-tests-file-name-non-special-rename-file)
+       (files-tests-file-name-non-special-set-file-acl)
+       (files-tests-file-name-non-special-set-file-modes)
+       (files-tests-file-name-non-special-set-file-selinux-context)
+       (files-tests-file-name-non-special-set-file-times)
+       (files-tests-file-name-non-special-set-visited-file-modtime)
+       (files-tests-file-name-non-special-shell-command)
+       (files-tests-file-name-non-special-start-file-process)
+       (files-tests-file-name-non-special-substitute-in-file-name)
+       (files-tests-file-name-non-special-temporary-file-directory)
+       (files-tests-file-name-non-special-unhandled-file-name-directory)
+       (files-tests-file-name-non-special-vc-registered)
+       (files-tests-file-name-non-special-write-region): Extends tests to
+       quoted file names, which would require a file name handler if unquoted.
+       (files-test-no-file-write-contents): Make test more robust.
+
+       * test/lisp/net/tramp-tests.el (tramp-test21-file-links): Adapt test.
+       (tramp--test-emacs25-p): New defun.
+       (tramp-test34-vc-registered): Use it.
+
+2018-06-02  Michael R. Mauger  <address@hidden>
+
+       Improve buffer naming in sql.el (Bug#31446)
+
+2018-06-02  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       4cfe531 (origin/emacs-26) Improve ELisp documentation of 'clone-indir...
+       9089b02 Improve documentation of 'inhibit-message'
+       6107e12 Improve documentation of comment styles
+       fb45125 Documentation improvements in newcomment.el
+       641c94c Imp[rove documentation of 'with-silent-modifications'
+
+2018-06-02  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       76f692e Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emac...
+
+2018-06-02  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       90bea37 ; * etc/PROBLEMS: Fix fvwm version number in last commit
+       af82d1f * etc/PROBLEMS: Document stickyness problem with FVWM (Bug#31...
+       4a3aed2 Update Emacs Lisp Intro to match current behavior
+       21f2247 Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emac...
+       3257085 Fix previous commit
+       6d23525 Fix typos in several manuals (Bug#31610)
+       9188291 Add detailed documentation about lock files
+       e5471b2 Add commentary for subtle aspect of frame.el
+
+       Conflicts:
+               doc/lispintro/emacs-lisp-intro.texi
+
+2018-06-02  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       ca3f0a8 ; * etc/NEWS: Belated announcement of 2 changes made in Emacs...
+       99f92da Improve documentation of 'directory-files-and-attributes'
+       df8649a * lisp/gnus/message.el (message-remove-header): Don't remove ...
+       b682a7e ; * etc/NEWS: Add headings for Emacs 26.2
+       aa175a4 Adapt hexl-mode to native line-number display
+       b8e7749 Fix example in Tramp manual
+       f212fe5 Handle case where Xft is found but not XRender
+       186280f * doc/misc/tramp.texi (Frequently Asked Questions): Adapt zsh...
+       24ba633 Improve read-multiple-choice docstring (Bug#31628)
+
+       Conflicts:
+               etc/NEWS
+               src/dired.c
+
+2018-06-02  Eli Zaretskii  <address@hidden>
+
+       Un-obsolete 'string-to-unibyte'
+
+       * lisp/subr.el (string-to-unibyte): No longer obsolete.  See the
+       emacs-devel discussion around this message:
+       http://lists.gnu.org/archive/html/emacs-devel/2018-05/msg00656.html.
+
+       * etc/NEWS: Announce the change.
+
+2018-06-01  John Shahid  <address@hidden>
+
+       Fix column double counting in term.el (Bug#31662)
+
+       * lisp/term.el (term-emulate-terminal): Invalidate
+       `term-current-column' after deleting overwritten text.
+
+2018-06-01  João Távora  <address@hidden>
+
+       Minimally support Flymake in Emacs C sources
+
+       The check-syntax target is enabled the use of Flymake's "legacy"
+       backend, flymake-proc-legacy-flymake in src/*.c.  It works quite well
+       with C sources.  The green light for this change had already been
+       given some time ago in
+
+       https://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00385.html
+
+       * src/Makefile.in (check-syntax): New target.
+       (.PHONY): Add check-syntax.
+
+2018-06-01  Ville Skyttä  <address@hidden>  (tiny change)
+
+       Fix a typo in emacs-mime.texi (Bug#31610)
+
+2018-05-31  Robert Pluim  <address@hidden>
+
+       Obsolete image-jpeg-p
+
+       * lisp/image.el (image-jpeg-p): Declare obsolete.
+
+2018-05-31  Lars Ingebrigtsen  <address@hidden>
+
+       Fdirectory_files_and_attributes doc string clarification
+
+       * src/dired.c (Fdirectory_files_and_attributes): Clarify what data
+       is returned.
+
+2018-05-31  Alan Mackenzie  <address@hidden>
+
+       Amend c-before-change-check-unbalanced-strings to handle a quote at EOB.
+
+       * lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings): 
Before
+       going back a sexp from the \n marked with a string-fence syntax-table 
text
+       property, check that it is indeed a \n.  If not, simply delete that text
+       property from the isolated quote, not the quote and the \n which 
otherwise
+       delimit an unterminated string.  Should we encounter a double quote 
marked
+       with a string-fence syntax-table text property at the end of the last 
line,
+       remove that property.
+
+2018-05-30  Paul Eggert  <address@hidden>
+
+       Work around GCC bug 81401
+
+       * src/xterm.c (x_draw_glyphless_glyph_string_foreground):
+       Make the buffer a byte longer than it needs to be, if
+       --enable-gcc-warnings.
+
+2018-05-30  Roland Winkler  <address@hidden>
+
+       bibtex-search-entry: Reuse the window displaying the buffer.
+
+       * lisp/textmodes/bibtex-style.el (bibtex-reposition-window): New 
optional arg
+       pos.
+       (bibtex-search-crossref, bibtex-search-entry): Use it.
+       (bibtex-search-entry): If possible, reuse the window displaying
+       the buffer that contains the entry found.
+
+2018-05-30  Roland Winkler  <address@hidden>
+
+       bibtex-mark-entry: Display no message.
+
+       * lisp/textmodes/bibtex.el (bibtex-mark-entry): Display no message.
+
+2018-05-30  Roland Winkler  <address@hidden>
+
+       bibtex-format-entry: Preserve opt-alt if possible.
+
+       * lisp/textmodes/bibtex.el (bibtex-format-entry):
+       Preserve opt-alt unless its removal is selected.
+       (bibtex-parse-entry):  New optional arg keep-opt-alt.
+
+2018-05-29  Simen Heggestøyl  <address@hidden>
+
+       Add Imenu support to CSS mode and its derivatives
+
+       * lisp/textmodes/css-mode.el (css--join-nested-selectors)
+       (css--prev-index-position, css--extract-index-name): New helper
+       functions for supporting Imenu.
+       (css-mode): Set `imenu-space-replacement',
+       `imenu-prev-index-position-function', and
+       `imenu-extract-index-name-function'.
+       (css-current-defun-name): Reuse `css--prev-index-position' and
+       `css--extract-index-name' to support nested selectors.
+
+       * test/lisp/textmodes/css-mode-tests.el (css-test-current-defun-name):
+       Fix character index.
+       (css-test-join-nested-selectors): New tests for
+       `css--join-nested-selectors'.
+
+       * etc/NEWS: Add news entry.
+
+2018-05-29  Eli Zaretskii  <address@hidden>
+
+       Allow access to MS-Windows Registry from Lisp programs
+
+       * src/w32.c (g_b_init_reg_open_key_ex_w)
+       (g_b_init_reg_query_value_ex_w)
+       (g_b_init_expand_environment_strings_w): New init flags.
+       (globals_of_w32): Initialize them at startup.
+       (RegOpenKeyExW_Proc, RegQueryValueExW_Proc)
+       (ExpandEnvironmentStringsW_Proc): New function typedefs.
+       (reg_open_key_ex_w, reg_query_value_ex_w)
+       (expand_environment_strings_w): New wrapper function.
+       (w32_read_registry): New function.
+       * src/w32fns.c (Fw32_read_registry) [WINDOWSNT]: New primitive.
+       (syms_of_w32fns) [WINDOWSNT]: Defsubr it.  DEFSYM "HKLM", "HKCU",
+       etc. root keys.
+
+       * etc/NEWS: Mention the new primitive.
+
+2018-05-29  Michael Albinus  <address@hidden>
+
+       * doc/misc/tramp.texi (All): Use @code instead of @option for user 
options.
+
+2018-05-29  Michael Albinus  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       13963a3a5c * doc/misc/tramp.texi (All): Use @code instead of @option ...
+       6e5f19ada4 Fix Bug#31605
+
+2018-05-29  Michael Albinus  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       9a7a2e919a ; ChangeLog.3: Remove stray phrase.
+
+2018-05-29  Michael Albinus  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       9d6a3ac73a Mention pcase as a fifth conditional form
+       567cb9046d Overhaul pcase documentation
+       4d7e54acff Use EXPVAL in docstrings of patterns defined using pcase-d...
+       7e8227ed68 Introduce EXPVAL for pcase, pcase-defmacro docstrings
+       e6de5b3d51 Ensure pcase doc shows `QPAT first among extensions
+
+2018-05-27  Gemini Lasswell  <address@hidden>
+
+       Make cl-print respect print-level and print-length (bug#31559)
+
+       * lisp/emacs-lisp/cl-print.el (cl-print--depth): New variable.
+       (cl-print-object) <cons>: Print ellipsis if printing depth greater
+       than 'print-level' or length of list greater than 'print-length'.
+       (cl-print-object) <vector>: Truncate printing with ellipsis if
+       vector is longer than 'print-length'.
+       (cl-print-object) <cl-structure-object>: Truncate printing with
+       ellipsis if structure has more slots than 'print-length'.
+       (cl-print-object) <:around>: Bind 'cl-print--depth'.
+       * test/lisp/emacs-lisp/cl-print-tests.el
+       (cl-print-tests-3, cl-print-tests-4): New tests.
+
+2018-05-27  Basil L. Contovounesios  <address@hidden>
+
+       Place epg-pinentry-mode varalias before defcustom
+
+       This is needed to avoid losing user settings made under the obsolete
+       name (Bug#31603).
+       * lisp/epa.el (epa-pinentry-mode): Move obsolete varalias from here...
+       * lisp/epg-config.el (epg-pinentry-mode): ...to here.
+
+2018-05-26  Paul Eggert  <address@hidden>
+
+       Port .gdbinit to unsigned-pointer platforms
+
+       * src/.gdbinit (Lisp_Object_Printer.to_string):
+       Don’t assume that GDB treats C pointers as signed integers.
+       Problem found with GDB Fedora 8.1-15.fc28.
+
+2018-05-26  Paul Eggert  <address@hidden>
+
+       GNOME moved URLs for its active bug reports
+
+       * src/emacs.c (main) [USE_GTK]:
+       * src/gtkutil.c (xg_display_close):
+       * src/xterm.c (x_connection_closed):
+       Update GNOME bug report URLs.
+
+2018-05-26  Paul Eggert  <address@hidden>
+
+       Don’t set EMACS=t if Bash is 4.4 or newer
+
+       (Thanks to Stefan Monnier for improvements to this patch.)
+       * lisp/term.el (term--bash-needs-EMACS-status): New var.
+       (term--bash-needs-EMACSp): New function.
+       (term-exec-1): Use it instead of always setting EMACS.
+
+2018-05-26  Tino Calancha  <address@hidden>
+
+       replace-tests.el: Refactor undo tests
+
+       * test/lisp/replace-tests.el (replace-tests-bind-read-string): New 
variable.
+       (replace-tests-with-undo): Add helper macro to generate the boilerplate 
code.
+       (replace-tests--query-replace-undo, query-replace-undo-bug31073)
+       (query-replace-undo-bug31492, query-replace-undo-bug31538): Use it.
+
+2018-05-26  Michael Albinus  <address@hidden>
+
+       Make `tramp-make-tramp-file-name' calls consistent.
+
+       * lisp/net/tramp.el (tramp-get-buffer)
+       (tramp-handle-file-name-as-directory)
+       (tramp-handle-file-name-directory, tramp-handle-file-remote-p)
+       (tramp-handle-file-truename, tramp-handle-find-backup-file-name)
+       (tramp-handle-insert-file-contents):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name)
+       (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-sh-handle-expand-file-name, )
+       (tramp-sh-handle-process-file, tramp-get-remote-path):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-expand-file-name)
+       (tramp-smb-handle-process-file): Make `tramp-make-tramp-file-name'
+       calls consistent.
+
+2018-05-26  Eli Zaretskii  <address@hidden>
+
+       * etc/HELLO: Add a few more scripts.
+
+2018-05-25  Tino Calancha  <address@hidden>
+
+       replace-tests.el: Fix broken tests
+
+       After previous commit, all tests using helper function
+       `replace-tests-clauses' fail: during the expansion
+       of macro `replace-tests-with-undo', the function
+       `replace-tests-clauses' is unbound.
+
+       Delete those helpers and reimplement test
+       `query-replace-undo-bug31538'.
+       * test/lisp/replace-tests.el (query-replace-undo-bug31538):
+       Reimplement this test without using any helper function/macro.
+
+2018-05-25  Tino Calancha  <address@hidden>
+
+       query-replace undo: Handle when user edits the replacement string
+
+       * lisp/replace.el (perform-replace): Update the replacement string
+       after the user edit it (Fix Bug#31538).
+
+       * test/lisp/replace-tests.el (replace-tests-clauses): New function.
+       (replace-tests-bind-read-string): New variable.
+       (replace-tests-with-undo): Macro to create boilerplate code.
+       (query-replace-undo-bug31073): Use it.
+       (query-replace-undo-bug31538): New test.
+
+2018-05-25  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       07f8f9b (origin/emacs-26) ; * lisp/ldefs-boot.el: Update.
+       5cec2b0 * etc/HISTORY: Update for Emacs 26.1 release.
+       7c474e1 * etc/AUTHORS: Update.
+       ddc7bea ; * ChangeLog.3: Update.
+       3557460 ; * admin/authors.el: Update.
+       2f44d2d Note caveat for backward regexp searching in docstring (Bug#3...
+       3145d08 Update backtrace in Emacs Lisp Intro
+       43a9c26 Move window-point in bibtex-search-entry
+       4bb2741 More fixes of Intro to Emacs Lisp
+       c57c226 ; * doc/emacs/misc.texi (FFAP): Fix a typo.  (Bug#31580)
+       0a51113 Add a footnote to Emacs Lisp Intro
+       5eabe4a ; * doc/emacs/msdos.texi (ls in Lisp): Fix a typo.  (Bug#31575)
+       d5e0ceb * lisp/help.el (with-help-window): Doc fix.  (Bug#31574)
+       e7952bd Fix some cross-references in emacs-lisp-intro.texi
+       a897959 Minor copyedits in Emacs manual in macos.texi
+
+       Conflicts:
+               lisp/ldefs-boot.el
+
+2018-05-24  Michael Albinus  <address@hidden>
+
+       Fix file name completion in Tramp
+
+       * lisp/net/tramp.el (tramp-handle-file-name-directory): Fix case
+       of localname starts w/o a slash.
+
+       * test/lisp/net/tramp-tests.el (tramp-test06-directory-file-name):
+       Extend test.
+
+2018-05-24  Michael Albinus  <address@hidden>
+
+       Fix Bug#31558
+
+       * lisp/net/tramp.el (tramp-mode, tramp-verbose)
+       (tramp-backup-directory-alist, tramp-auto-save-directory)
+       (tramp-encoding-shell, tramp-encoding-command-switch)
+       (tramp-encoding-command-interactive, tramp-default-method)
+       (tramp-default-method-alist, tramp-default-user)
+       (tramp-default-user-alist, tramp-default-host)
+       (tramp-default-host-alist, tramp-default-proxies-alist)
+       (tramp-save-ad-hoc-proxies, tramp-restricted-shell-hosts-alist)
+       (tramp-local-host-regexp, tramp-local-end-of-line)
+       (tramp-rsh-end-of-line, tramp-login-prompt-regexp)
+       (tramp-shell-prompt-pattern, tramp-password-prompt-regexp)
+       (tramp-wrong-passwd-regexp, tramp-yesno-prompt-regexp)
+       (tramp-yn-prompt-regexp, tramp-terminal-prompt-regexp)
+       (tramp-operation-not-permitted-regexp, tramp-copy-failed-regexp)
+       (tramp-process-alive-regexp, tramp-ignored-file-name-regexp)
+       (tramp-chunksize, tramp-process-connection-type)
+       (tramp-connection-timeout, tramp-connection-min-time-diff)
+       (tramp-completion-reread-directory-timeout)
+       * lisp/net/tramp-adb.el (tramp-adb-program)
+       (tramp-adb-connect-if-not-connected, tramp-adb-prompt):
+       * lisp/net/tramp-cache.el (tramp-connection-properties)
+       (tramp-persistency-file-name):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-methods)
+       (tramp-gvfs-zeroconf-domain)
+       (tramp-bluez-discover-devices-timeout):
+       * lisp/net/tramp-sh.el (tramp-inline-compress-start-size)
+       (tramp-copy-size-limit, tramp-terminal-type)
+       (tramp-histfile-override, tramp-use-ssh-controlmaster-options)
+       (tramp-remote-path, tramp-remote-process-environment)
+       (tramp-sh-extra-args):
+       * lisp/net/tramp-smb.el (tramp-smb-program, tramp-smb-acl-program)
+       (tramp-smb-conf, tramp-smb-winexe-program)
+       (tramp-smb-winexe-shell-command)
+       (tramp-smb-winexe-shell-command-switch):
+       Dont't require 'tramp.  (Bug#31558)
+
+       * lisp/net/tramp.el (tramp-ignored-file-name-regexp): Use type regexp.
+
+2018-05-23  Noam Postavsky  <address@hidden>
+
+       Honor print-charset-text-property value of nil (Bug#31376)
+
+       * src/print.c (print_check_string_charset_prop): Move check
+       for nil Vprint_charset_text_property from here...
+       (print_prune_string_charset): ... to here.
+       (syms_of_print) <print-charset-text-property>: Clarify that any
+       non-boolean values are treated the same as `default'.
+       * doc/lispref/streams.texi (Output Variables): Add
+       print-prune-string-charset.
+       * test/src/print-tests.el (print-charset-text-property-nil)
+       (print-charset-text-property-default)
+       (print-charset-text-property-t): New tests.
+       (print-tests--prints-with-charset-p): New helper function.
+
+2018-05-23  Michael Welsh Duggan  <address@hidden>
+
+       Avoid messing up buffer list when starting gud (Bug#22374)
+
+       * lisp/progmodes/gud.el (gud-common-init): Use `display-buffer'
+       instead of `switch-to-buffer'.
+
+2018-05-23  Noam Postavsky  <address@hidden>
+
+       Move epa-pinentry-mode to epg-config (Bug#26298)
+
+       * lisp/epa.el (epa-pinentry-mode): Make into obsolete alias for...
+       * lisp/epg-config.el (epg-pinentry-mode): ...this new user option.
+       * lisp/epg.el (epg-context): Use it as the default value for
+       pinentry-mode.
+       * etc/NEWS: Announce name change.
+
+       * lisp/epa-file.el (epa-file-insert-file-contents)
+       (epa-file-write-region):
+       * lisp/epa.el (epa-decrypt-file, epa-sign-file)
+       (epa-encrypt-file, epa-decrypt-region)
+       (epa-sign-region, epa-encrypt-region): Don't change
+       epg-context-pinentry-mode from the default.
+
+2018-05-23  Noam Postavsky  <address@hidden>
+
+       Drop some epg/epa backwards compat code for ancient Emacs versions
+
+       * lisp/epa.el (epa--select-safe-coding-system): Remove,
+       `select-safe-coding-system' has been present since Emacs 20.3.
+       (epa--encode-coding-string, epa--decode-coding-string):
+       * lisp/epg.el (epg--decode-coding-string, epg--encode-coding-string)
+       (epg--clear-string): Remove, the corresponding Emacs functions are so
+       old they don't show up in NEWS.  Furthermore, the fallback for
+       the *-coding-string functions was `identity' which wouldn't have
+       worked anyway, since it only takes a single argument.
+       (epg--make-temp-file): Remove, `make-temp-file' has been present since
+       Emacs 21.1.
+       * lisp/epg-config.el (epg-gpg-program, epg-gpgsm-program)
+       (epg-gpgconf-program, epg-gpg-home-directory)
+       (epg-passphrase-coding-system, epg-debug): Remove unneeded :group
+       parameter.
+
+2018-05-23  Tino Calancha  <address@hidden>
+
+       Fix corner case in query-replace-regexp undo
+
+       This commit fixes Bug#31492.
+       * lisp/replace.el (replace-match-maybe-edit): Preserve match data.
+
+       * test/lisp/replace-tests.el (query-replace-undo-bug31492): Add test.
+
+2018-05-23  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       e3f00f5 (origin/emacs-26) Clarify when to use advice-add vs add-function
+       c0f3e6b Minor formatting tweak in the Emacs manual
+       fadf653 Update comments in Intro to Emacs Lisp
+       52ccb24 ; * doc/os.texi (Batch Mode): use = after --eval
+       d65430f * etc/NEWS: Mention change in `edebug-prin1-to-string'.
+       ef4aec1 ; * doc/lispref/hash.texi (Defining Hash): Fix typos.
+       2981952 Another attempt to fix sql.el
+       b1b96d7 Update binding of 'M-.' in Intro to Emacs Lisp
+       b239a09 Fix a typo in last change in sql.el
+       0d8bae5 Fix capitalization of mail headers
+       845fe03 Fix buffer names in sql.el
+       a3885f5 Minor fixes in the Emacs manual
+       542f830 Fix a typo in rmail.texi
+       eb0bc6f * etc/PROBLEMS: Document Bug#31305.
+
+       Conflicts:
+               doc/emacs/sending.texi
+               etc/NEWS
+
+2018-05-23  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       73bc6f8 Fix a typo in describing input methods
+       6b4bafe ; Add a comment to emacs-lisp-intro.texi
+
+2018-05-22  João Távora  <address@hidden>
+
+       More helpful docstrings for tests of electric-tests.el
+
+       * test/lisp/electric-tests.el (electric-pair-define-test-form):
+       Improve automatically generated docstring.
+
+2018-05-22  Paul Eggert  <address@hidden>
+
+       Work around GCC bug with function attributes
+
+       * src/alloc.c (PNTR_ADD): Put attributes after ‘static’ and before
+       returned type.  Problem reported by Eli Zaretskii in:
+       https://lists.gnu.org/r/emacs-devel/2018-05/msg00559.html
+
+2018-05-22  Paul Eggert  <address@hidden>
+
+       Fix failed assertion when load-force-doc-strings
+
+       Problem reported by Philipp Stephani (Bug#31556).
+       * src/lread.c (read_vector): When load_force_doc_strings, check
+       for byte code vectors that are invalid because they are too short.
+       * test/src/lread-tests.el (lread-invalid-bytecodes): New test.
+
+2018-05-22  Paul Eggert  <address@hidden>
+
+       Minor tweaks to recent fix for Bug#31545
+
+       * src/xwidget.c (webkit_javascript_finished_cb)
+       (Fxwidget_webkit_execute_script): Use intptr_t to avoid warnings
+       in the (unlikely) event that ptrdiff_t and void * differ in width.
+       (save_script_callback): Simplify by using xlispdstrdup and
+       larger_vector.
+
+2018-05-22  Michael Albinus  <address@hidden>
+
+       Extend secrets.el by searching for object paths.
+
+       * lisp/net/secrets.el (secrets-search-item-paths): New function.
+       (secrets-search-items): Use it.
+       (secrets-create-item): Adapt docstring.
+
+       * test/lisp/net/secrets-tests.el (secrets-test04-search): Extend test.
+
+2018-05-21  Andreas Schwab  <address@hidden>
+
+       * src/xwidget.c (Fxwidget_webkit_goto_uri): Encode uri.
+
+2018-05-21  Andreas Schwab  <address@hidden>
+
+       Make xwidget-webkit-execute-script safe against GC (Bug#31545)
+
+       * src/xwidget.h (struct xwidget): Add script_callbacks.
+       * src/xwidget.c (save_script_callback): New function.
+       (Fxwidget_webkit_execute_script): Use it.  Encode script
+       before passing to execution engine.  Always use a callback.
+       (webkit_javascript_finished_cb): Deallocate script.
+       (kill_buffer_xwidgets): Deallocate remaining scripts.
+       (Fxwidget_webkit_zoom): Doc fix.
+       (Fxwidget_resize): Doc fix.
+
+2018-05-21  Paul Eggert  <address@hidden>
+
+       Don’t assume ordering in make-process/mix-stderr
+
+       * test/src/process-tests.el (process-tests--mixable): New function.
+       (make-process/mix-stderr): Don’t assume stdout is merged before
+       stderr.  POSIX does not require this, and the assumption failed to
+       hold on my Fedora 28 platform.  See Bug#31214.
+
+2018-05-21  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2018-05-21 crypto: omit stream ops Emacs doesn’t need
+       2018-05-13 truncate: Fix compilation error on Android
+       2018-05-13 imaxdiv: Fix compilation error on Android
+       2018-05-13 Support selective inclusion of recent mingw.org headers
+       2018-05-13 Add cross-compilation guesses for Linux systems sans glibc
+       2018-05-13 stdioext: Fix compilation errors with newer Android headers
+       2018-05-07 af_alg: Pacify --enable-gcc-warnings
+       2018-05-06 af_alg: Fix bug with streams that are not at position 0
+       2018-05-06 Followup to 'af_alg: New module'
+       2018-05-05 crypto/{md5,sha1,sha256,sha512}: simplify
+       2018-05-05 af_alg: New module
+       2018-05-05 af_alg: Improve function signature
+       2018-04-28 md5sum: Use AF_ALG when available
+       2018-04-28 sha512sum: Use AF_ALG when available
+       2018-04-28 sha256sum: Use AF_ALG when available
+       2018-04-28 sha1sum: Use AF_ALG when available
+       2018-05-05 all: Replace more http URLs by https URLs
+       2018-05-03 maint: port more modules to GCC 8
+       2018-05-03 Simplify code; drop support for Borland C++ on Windows
+       * admin/merge-gnulib (GNULIB_MODULES): Use crypto/md5-buffer
+       rather than crypto/md5, since Emacs doesn’t use the stream
+       operations that in recent Gnulib pull in other stuff Emacs doesn’t
+       need.  Similarly for crypto/sha1-buffer, crypto/sha256-buffer,
+       crypto/sha512-buffer.
+       * build-aux/config.guess, build-aux/config.sub, lib/dosname.h:
+       * lib/dup2.c, lib/errno.in.h, lib/euidaccess.c, lib/fcntl.c:
+       * lib/fcntl.in.h, lib/fpending.c, lib/fsync.c, lib/getdtablesize.c:
+       * lib/getopt.c, lib/gettimeofday.c, lib/inttypes.in.h, lib/md5.c:
+       * lib/md5.h, lib/open.c, lib/pipe2.c, lib/putenv.c, lib/sha1.c:
+       * lib/sha1.h, lib/sha256.c, lib/sha256.h, lib/sha512.c:
+       * lib/sha512.h, lib/stat-time.h, lib/stdio-impl.h, lib/stdio.in.h:
+       * lib/stdlib.in.h, lib/sys_stat.in.h, lib/sys_types.in.h:
+       * lib/timespec.h, lib/unistd.in.h, lib/utimens.c, m4/c-strtod.m4:
+       * m4/gnulib-common.m4, m4/inttypes.m4, m4/lstat.m4, m4/nocrash.m4:
+       * m4/pselect.m4, m4/readlink.m4, m4/stdio_h.m4, m4/symlink.m4:
+       * m4/unistd_h.m4, m4/utimens.m4:
+       Copy from Gnulib.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+
+2018-05-21  João Távora  <address@hidden>
+
+       Fix Flymake's ruby-mode tests when user has "rubocop" installed
+
+       The Flymake test suite fails if the "rubocop" program is installed,
+       because the ruby-flymake-rubocop backend is selected automatically by
+       ruby-flymake-auto.  The test was designed for ruby-flymake-simple,
+       tough, and fails.
+
+       * test/lisp/progmodes/flymake-tests.el (ruby-backend): Ensure
+       this test runs exclusively with the ruby-flymake-simple backend.
+
+2018-05-21  Michael Albinus  <address@hidden>
+
+       Fix Bug#31489
+
+       * doc/misc/tramp.texi (Frequently Asked Questions):
+       Mention `tramp-ignored-file-name-regexp'.  Improve index.
+
+
+       * lisp/net/tramp.el (tramp-ignored-file-name-regexp): New defcustom.
+       (tramp-tramp-file-p): Use it.  Check also for `tramp-mode'.
+       (tramp-file-name-handler): Don't check for `tramp-mode'.  (Bug#31489)
+
+       * test/lisp/net/tramp-tests.el (tramp-test01-file-name-syntax):
+       Extend test.
+
+2018-05-20  Eli Zaretskii  <address@hidden>
+
+       Revert part of the previous change
+
+       * doc/misc/message.texi:
+       * doc/misc/efaq.texi:
+       * doc/emacs/sending.texi:
+       * doc/emacs/rmail.texi: Revert the CC => Cc etc. conversions.
+
+2018-05-20  Paul Eggert  <address@hidden>
+
+       Use “Cc” for email copies, as per RFC 5322.
+
+       Also fix similar problems with Bcc, Fcc, In-Reply-To,
+       and similar email headers.  See thread starting at:
+       https://lists.gnu.org/r/emacs-devel/2018-05/msg00463.html
+
+2018-05-20  Noam Postavsky  <address@hidden>
+
+       * make-dist: Add '--no-info' option.
+
+2018-05-20  Alan Mackenzie  <address@hidden>
+
+       Enhance CC Mode's fontification, etc., of unterminated strings.
+
+       String delimiters, including escaped new lines, of correctly terminated
+       strings are left in font-lock-string-face.  All others get
+       font-lock-warning-face.  The latter get syntax-table text properties on 
the
+       opening string delim and the "terminating EOL".
+
+       Correct two miscellaneous bugs: the handling of text properties on Java 
Mode's
+       generic delimiters; the handling of c-just-done-before-change.
+
+       * lisp/progmodes/cc-defs.el (c-point): New position 'eoll "end of 
logical line".
+       (c-characterp): New macro.
+
+       * lisp/progmodes/cc-fonts.el (c-font-lock-invalid-string): Removed.
+       (c-basic-matchers-before): Use a simple matcher in place of the form 
around
+       c-font-lock-invalid-string.
+
+       * lisp/progmodes/cc-langs.el (c-get-state-before-change-functions): Add
+       c-before-change-check-unbalanced-strings to the value for all modes 
except AWK
+       Mode.  Also add c-before-change-check-<>-operators to Java Mode, 
correcting an
+       error in that mode's handling of generic delimiters.
+       (c-before-font-lock-functions): Add 
c-after-change-re-mark-unbalanced-strings
+       to the value for all modes except AWK Mode.
+       (c-single-quotes-quote-strings, c-string-delims): New lang variables for
+       future enhancements.
+       (c-string-innards-re-alist): New lang variable.
+
+       * lisp/progmodes/cc-mode.el (c-just-done-before-change): Do not set this
+       variable when a change is the alteration of text properties.
+       (c-basic-common-init): Set parse-sexp-lookup-properties (and the XEmacs
+       equivalent) also for Pike Mode.
+       (c-neutralize-CPP-line): No longer neutralize unbalanced quotes here.
+       (c-unescaped-nls-in-string-p, 
c-multiline-string-start-is-being-detached)
+       (c-pps-to-string-delim, c-before-change-check-unbalanced-strings)
+       (c-after-change-re-mark-unbalanced-strings): New functions.
+       (c-after-change): Fix a bug with the handling of 
c-just-done-before-change.
+
+2018-05-20  Eli Zaretskii  <address@hidden>
+
+       * etc/HELLO: More reasonable placement of 'charset' properties.
+
+2018-05-19  Paul Eggert  <address@hidden>
+
+       * admin/notes/unicode: HELLO is again UTF-8.
+
+2018-05-19  Eli Zaretskii  <address@hidden>
+
+       Use Enriched mode in etc/HELLO to keep charset information
+
+       This allows to encode HELLO in UTF-8, thus supporting the entire
+       repertory of Unicode, while still keeping the charset info where
+       that is important.  Suggested by Michael Welsh Duggan <address@hidden>.
+       * lisp/textmodes/enriched.el (enriched-translations): Add
+       translations for 'charset'.
+       (enriched-decode-charset, enriched-handle-charset-prop): New
+       functions.
+       * lisp/facemenu.el (facemenu-special-menu): Add sub-menu for
+       'charset' property.
+       (facemenu-set-charset): New function.
+       (facemenu-remove-special): Remove the 'charset' property as well.
+
+       * etc/NEWS: Announce the new feature of Enriched mode.
+       * etc/HELLO: Recode in UTF-8 and place under Enriched mode.
+
+       * doc/emacs/text.texi (Enriched Properties): Mention the support
+       for 'charset'.
+
+2018-05-18  Paul Eggert  <address@hidden>
+
+       * src/alloc.c: Fix comment.
+
+2018-05-18  Paul Eggert  <address@hidden>
+
+       Port to GCC 8 -fsanitize=undefined
+
+       In GCC 8, gcc -fsanitize=undefined flags the undefined behavior
+       that Emacs relies on in its XPNTR and XSYMBOL low-level functions.
+       Disable undefined sanitization in these functions.  Although this
+       disabling doesn’t suffice if DEFINE_KEY_OPS_AS_MACROS is true, it
+       works for -fsanitize=undefined -DINLINING=0, which is good enough.
+       * src/alloc.c (macro_PNTR_ADD): New macro.
+       (PNTR_ADD): New function and macro.
+       The function disables -fsanitize=undefined.
+       (macro_XPNTR): Use it.
+       * src/conf_post.h (ATTRIBUTE_NO_SANITIZE_UNDEFINED): New macro.
+       * src/lisp.h (XSYMBOL): Disable -fsanitize=undefined.
+
+2018-05-18  Lars Ingebrigtsen  <address@hidden>
+
+       (gnus-blocked-images): Clarify privacy implications
+
+       * lisp/gnus/gnus-art.el (gnus-blocked-images): Clarify the privacy
+       implication of altering the value of this variable.
+
+2018-05-18  Eli Zaretskii  <address@hidden>
+
+       Fix decoding of directories when "~" includes non-ASCII chars
+
+       * src/fileio.c (Fexpand_file_name): Don't build multibyte strings
+       from unibyte non-ASCII strings when NAME and DEFAULT_DIRECTORY
+       have different multibyteness, as this adds bytes to the byte
+       sequence, and in some situations, e.g., when the home directory
+       includes non-ASCII characters, can fail file APIs.  (Bug#30755)
+
+       * lisp/startup.el (normal-top-level): Make sure default-directory
+       is set to a multibyte string when decoded on MS-Windows.
+
+2018-05-17  Filipp Gunbin  <address@hidden>
+
+       Fix bugs in `auth-source-netrc-parse-one'.
+
+       * lisp/auth-source.el (auth-source-netrc-parse-one): Ensure that match
+         data is not overwritten in `auth-source-netrc-parse-next-interesting'.
+         Ensure that blanks are skipped before and after going over comments
+         and eols.
+       * test/lisp/auth-source-tests.el (auth-source-test-netrc-parse-one): 
New test.
+
+2018-05-16  Michael Albinus  <address@hidden>
+
+       Fix creation of Secret Service items in auth-source
+
+       * lisp/auth-source.el (auth-source-secrets-create): Use ´apply'.
+       (auth-source-secrets-saver): Handle `auth-source-save-behavior'
+       equal t.
+
+       * lisp/net/secrets.el (secrets-get-items): Do not call
+       `secrets-open-session' here ...
+       (top): ... but here.
+
+       * test/lisp/auth-source-tests.el
+       (auth-source-test-secrets-create-secret): Bind
+       `auth-source-save-behavior' to t.  Cleanup.
+
+       * test/lisp/net/secrets-tests.el (secrets-test00-availability):
+       After loading secets.el, a session is already opened.
+       (secrets-test02-collections, secrets-test03-items)
+       (secrets-test04-search): Open a new session.
+
+2018-05-15  Dima Kogan  <address@hidden>
+
+       Give '$' punctuation syntax in make-mode (Bug#24477)
+
+       * lisp/progmodes/make-mode.el (makefile-mode-syntax-table): Set syntax
+       of '$' to punctuation.
+
+2018-05-15  Noam Postavsky  <address@hidden>
+
+       Simplify eshell arg processing with (pop (nthcdr ...))
+
+       * lisp/eshell/esh-opt.el (eshell--set-option)
+       (eshell--process-args): Use (pop (nthcdr ...)) instead of writing it
+       out by hand.
+
+2018-05-15  Jay Kamat  <address@hidden>
+
+       esh-opt.el: Add a :parse-leading-options-only argument (Bug#28323)
+
+       * lisp/eshell/esh-opt.el (eshell-eval-using-options): Add a new
+       :parse-leading-options-only argument which ignores dash/switch
+       arguments after the first positional argument.
+       (eshell--process-args): Abort processing of arguments if we see one
+       positional argument and :parse-leading-options-only is set.
+       * lisp/eshell/em-tramp.el (eshell/sudo): Use
+       :parse-leading-options-only, to avoid parsing subcommand switches as
+       switches of sudo itself.
+       * test/lisp/eshell/esh-opt-tests.el: Add tests for new and old behavior.
+
+2018-05-15  Jay Kamat  <address@hidden>
+
+       esh-opt.el: Fix improper parsing of first argument (Bug#28323)
+
+       Examples of broken behavior:
+
+           sudo -u root whoami
+           Outputs: -u
+           ls -I '*.txt' /dev/null
+           Errors with: *.txt: No such file or directory
+
+       * lisp/eshell/esh-opt.el (eshell--process-args): Refactor usage of
+       args to eshell--args, as we rely on modifications from
+       eshell--process-option and vice versa.  These modifications were not
+       being propogated in the (if (= ai 0)) case, since popping the first
+       element of a list doesn't destructively modify the underlying list
+       object.
+
+2018-05-15  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       c2ef847 (origin/emacs-26) Clarify the mode-line indicators in CC Mode
+
+2018-05-15  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       b98cf9c ; Fix a typo in the Emacs manual
+       700fcd7 * doc/emacs/help.texi: Fix paren typo.
+       c9c0e40 More minor changes in shell-related nodes of Emacs manual
+       e6bf19c Fix inaccuracies in "Shell Ring" node of Emacs manual
+       087681b8 Improve documentation of kmacro commands and variables.
+       be2e8cb * doc/man/emacs.1.in: Document --fg-daemon and --bg-daemon.
+       1d9e66a Don't check non-X frames for z order (Bug#31373)
+       7dc028e Check NSWindow is actually a frame
+
+       Conflicts:
+               src/nsfns.m
+
+2018-05-15  Michael Albinus  <address@hidden>
+
+       Fix Bug#29575
+
+       * lisp/net/secrets.el (secrets-create-item): The new item does not
+       need a unique label.
+       (secrets-item-path, secrets-get-secret, secrets-get-attributes)
+       (secrets-get-attribute, secrets-delete-item): ITEM can also be an
+       object path.  (Bug#29575)
+
+       * test/lisp/net/secrets-tests.el (secrets-test03-items):
+       Test also creation of two items with same label.  Test
+       `secrets-get-secret', `secrets-get-attribute' and
+       `secrets-get-attributes' with object path.
+       (secrets-test04-search): Harden test.
+
+2018-05-15  Michael Albinus  <address@hidden>
+
+       Fix Bug#31068
+
+       * lisp/net/tramp-archive.el (tramp-archive-file-name-handler):
+       Unregister unless `tramp-archive-enabled'.  (Bug#31068)
+
+2018-05-14  Tino Calancha  <address@hidden>
+
+       Run python test if the python executable is found
+
+       * test/lisp/progmodes/python-tests.el (python-tests--bug31398):
+       Skip test when executable python is no found.
+
+2018-05-14  Tino Calancha  <address@hidden>
+
+       run-python: Make the buffer running python current
+
+       * lisp/progmodes/python.el (run-python, python-shell-make-comint):
+       Make the buffer running the inferior python process the current buffer
+       (Bug#31398).
+       * test/lisp/progmodes/python-tests.el (python-tests--bug31398):
+       Add test.
+
+2018-05-14  Basil L. Contovounesios  <address@hidden>
+
+       Minor refactoring in shell-command
+
+       * lisp/simple.el (shell-command): Use call-process-shell-command,
+       start-process-shell-command, and file-attribute-size. (bug#30280).
+
+2018-05-14  Basil L. Contovounesios  <address@hidden>
+
+       Fix a broken test
+
+       * lisp/simple.el (shell-command): Use call-process-shell-command,
+       start-process-shell-command, and file-attribute-size. (bug#30280)
+
+2018-05-14  Michael Albinus  <address@hidden>
+
+       * lisp/net/ange-ftp.el (ange-ftp-allow-child-lookup):
+
+       Do not use obsolete ´dired-local-variables-file'.
+
+2018-05-14  Michael Albinus  <address@hidden>
+
+       Fix Bug#30663
+
+       * lisp/dired.el (dired-revert):
+       Call `hack-dir-local-variables-non-file-buffer'.  (Bug#30663)
+
+2018-05-14  Michael Albinus  <address@hidden>
+
+       Improve `dired-buffer-stale-p' for remote files
+
+       * lisp/dired.el (dired-buffer-stale-p): Check for ´file-remote-p'
+       only if `auto-revert-remote-files' is non-nil.
+
+2018-05-14  Michael Albinus  <address@hidden>
+
+       Remove obsolete objects from dired-x.el
+
+       * doc/misc/dired-x.texi (Local Variables): Remove node.
+
+       * lisp/dired-x.el (dired-enable-local-variables)
+       (default-directory-alist, dired-default-directory-alist)
+       (dired-default-directory, dired-local-variables-file)
+       (dired-hack-local-variables, dired-omit-here-always):
+       Remove obsolete variables, constants and functions.
+
+2018-05-11  João Távora  <address@hidden>
+
+       Fix filesystem littering by Flymake's legacy backend
+
+       The Flymake legacy "proc" backend, which is active by default will try
+       to syntax-check foo.c/foo.cpp and many other types of files, but on
+       failing to find a suitable Makefile target, will fail.  There's
+       nothing wrong with that except that it used to leave behind the
+       foo_flymake.c and foo_flymake.cpp auxiliary files behind, littering
+       the filesystem.
+
+       * lisp/progmodes/flymake-proc.el (flymake-proc-legacy-flymake):
+       Call init-function inside of the unwind-protect.
+
+2018-05-11  Michael Albinus  <address@hidden>
+
+       Tramp updates
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-attributes):
+       Parse multibyte symlinks correctly.
+
+       * test/lisp/net/tramp-tests.el (tramp--test-utf8):
+       Improve backward compatibility.
+
+2018-05-10  Basil L. Contovounesios  <address@hidden>
+
+       Rewrite scroll-other-window-down in C (bug#30207)
+
+       * lisp/window.el (scroll-other-window-down):
+       Move to src/window.c as Fscroll_other_window_down.
+       * src/window.c (scroll_command): Generalise for arbitrary windows.
+       (Fscroll_up, Fscroll_down): Use scroll_command with selected_window.
+       (Fscroll_other_window, Fscroll_other_window_down):
+       Rewrite in terms of scroll_command.
+       (syms_of_window): Add Sscroll_other_window_down.
+
+2018-05-10  Basil L. Contovounesios  <address@hidden>
+
+       Simplify "other window" bob/eob motion commands
+
+       * lisp/window.el (beginning-of-buffer-other-window)
+       (end-of-buffer-other-window):
+       Simplify via with-selected-window. (bug#30207)
+
+2018-05-10  Basil L. Contovounesios  <address@hidden>
+
+       Improve documentation for "other window" scrolling
+
+       * doc/emacs/windows.texi (Other Window):
+       * doc/lispref/windows.texi (Textual Scrolling):
+       Document scroll-other-window-down.
+       * doc/lispref/minibuf.texi (Minibuffer Misc):
+       Cross-reference minibuffer-scroll-window with Textual Scrolling.
+       * src/window.c (Fother_window_for_scrolling):
+       Clarify how "other window" is determined in docstring.
+       (Fscroll_other_window): Simplify docstring, pointing to that of
+       Fother_window_for_scrolling. (bug#30207)
+
+2018-05-10  Basil L. Contovounesios  <address@hidden>
+
+       Limit "other window" scrolling to current terminal
+
+       * src/window.c (Fother_window_for_scrolling): Limit next-window
+       search to visible frames on the current terminal. (bug#30207)
+
+2018-05-07  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       1d732d6 (origin/emacs-26) Fix gud-statement for pdb
+       91a68b5 ; * msdos/INSTALL: Add info about GCC versions.
+       7ddcc9a Document 'custom-group'
+       58f9e15 A minor addition to etc/DEBUG
+       4590414 Avoid errors in ispell.el when Enchant returns empty extra chars
+       d0d75f9 Make 'ispell-initialize-spellchecker-hook' work again
+       b90ce66 Handle selected_window change in prepare_menu_bars (Bug#31312)
+       79ad0b3 ; * INSTALL: Fix Emacs version number.  (Bug#31358)
+       91de88b Fix report-emacs-bug via mailclient on MS-Windows
+       f4b5ff2 Port collation tests to glibc 2.27
+
+2018-05-06  Ari Roponen  <address@hidden>
+
+       Fix cairo scrolling for side-by-side windows
+
+       * src/xterm.c (x_scroll_run) [USE_CAIRO]: Fix scrolling for
+       side-by-side split windows.  (Bug#31288)
+
+2018-05-06  Eli Zaretskii  <address@hidden>
+
+       Don't remove highlight of misspelled word on pdict save
+
+       * lisp/textmodes/ispell.el (ispell-pdict-save): Don't restart
+       flyspell-mode, as bug#11963, which this was supposed to fix, is
+       fixed better by ispell-command-loop, when the user types 'i' or
+       'a'.  Restarting Flyspell mode when the personal dictionary is
+       saved caused bug#31372 as side effect.
+       (ispell-command-loop): Test 'flyspell-mode', not whether
+       flyspell-unhighlight-at is fboundp, to determine whether Flyspell
+       mode is turned on in the current buffer.
+       (flyspell-unhighlight-at): Add declare-function form for it.
+
+2018-05-06  Michael Albinus  <address@hidden>
+
+       Fix Bug#31272
+
+       * lisp/net/tramp-sh.el (tramp-do-file-attributes-with-ls)
+       (tramp-do-directory-files-and-attributes-with-stat)
+       (tramp-sh-handle-insert-directory): Use "--show-control-chars".
+       (tramp-convert-file-attributes): Decode multibyte strings,
+       produced by "stat".  (Bug#31272)
+
+       * test/lisp/net/tramp-tests.el (tramp--test-utf8): Extend test.
+
+2018-05-05  Michael Hendricks  <address@hidden>  (tiny change)
+
+       Include narrowing indication in describe-mode
+
+       * lisp/help.el (describe-mode): Include "Narrow", if narrowing is
+       active.  (Bug#31139)
+
+2018-05-05  Ari Roponen  <address@hidden>
+
+       Fix some problems in the Cairo build
+
+       * src/xterm.c (x_begin_cr_clip): Create image surface.
+       (x_update_end) [USE_CAIRO]: Remove GTK3-specific code.
+       (x_scroll_run) [USE_CAIRO]: Implement scrolling.
+       * src/image.c (lookup_rgb_color) [USE_CAIRO]: Support Cairo.
+       (jpeg_load_body) [USE_CAIRO]: Support Cairo.  Use USE_CAIRO
+       instead of CAIRO for #ifdef's.
+       (imagemagick_load_image) [USE_CAIRO]: Support Cairo.
+       (Bug#31288)
+
+2018-05-05  Eli Zaretskii  <address@hidden>
+
+       Avoid infloops in font_open_entity
+
+       * src/font.c (font_open_entity): Fail after 15 iterations through
+       the loop that looks for a font whose average_width and height are
+       both positive.  This avoids infinite loops for fonts that, e.g.,
+       report average_width of zero for any possible size we try.
+       (Bug#31316)
+
+2018-05-05  Eli Zaretskii  <address@hidden>
+
+       Fix encoding of characters when using GB18030 fonts
+
+       * lisp/international/fontset.el (font-encoding-alist): Fix the
+       GB18030 entry to encode characters correctly when passing them to
+       the xfont back-end.  (Bug#31315)  See also
+       http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg00754.html.
+
+2018-05-04  Noam Postavsky  <address@hidden>
+
+       * make-dist: Don't fail if building --without-makeinfo.
+
+2018-05-03  Phillip Lord  <address@hidden>
+
+       Fix windows snapshot building
+
+       * admin/nt/dist-build/build-zips.sh: Fix broken if statement
+
+2018-05-03  Phillip Lord  <address@hidden>
+
+       * admin/nt/dist-build/build-zips.sh: Support building of branches
+
+2018-05-03  Paul Eggert  <address@hidden>
+
+       More porting to GCC 8 of --enable-gcc-warnings
+
+       * lwlib/lwlib-Xaw.h (xaw_update_one_value, xaw_popup_menu):
+       * lwlib/lwlib-Xlw.h (xlw_update_one_value, xlw_pop_instance):
+       * lwlib/lwlib.h (lw_allow_resizing, lw_set_main_areas) [!USE_MOTIF]:
+       No longer const.
+       * src/emacs-module.c: Ignore -Wcast-function-type.
+
+2018-05-02  Marco Wahl  <address@hidden>
+           Noam Postavsky  <address@hidden>
+
+       Fix next-page for dired (Bug#31061)
+
+       * lisp/textmodes/page-ext.el (next-page): Don't go back any pages if
+       COUNT is 0.  For negative COUNT, end with point just after the last
+       delimiter.
+
+2018-05-02  Basil L. Contovounesios  <address@hidden>
+
+       Minor simple.el simplifications (Bug#31211)
+
+       * lisp/simple.el (kill-append, push-mark, pop-mark):
+       Simplify conditionals and surrounding code.
+
+2018-05-02  Basil L. Contovounesios  <address@hidden>
+
+       Fix off-by-one history pruning (bug#31211)
+
+       * lisp/subr.el (add-to-history): Clarify docstring.
+       Protect against negative history-length and unnecessary variable
+       modification, as per read_minibuf.
+
+       * lisp/ido.el (ido-record-command):
+       * lisp/international/mule-cmds.el (deactivate-input-method):
+       (set-language-environment-input-method):
+       * lisp/isearch.el (isearch-done):
+       * lisp/minibuffer.el (read-file-name-default):
+       * lisp/net/eww.el (eww-save-history):
+       * lisp/simple.el (edit-and-eval-command, repeat-complex-command):
+       (command-execute, kill-new, push-mark):
+       * src/callint.c (Fcall_interactively):
+       * src/minibuf.c (read_minibuf): Delegate to add-to-history.
+
+       * test/lisp/simple-tests.el (command-execute-prune-command-history):
+       * test/src/callint-tests.el
+       (call-interactively-prune-command-history): New tests.
+
+2018-05-02  Glenn Morris  <address@hidden>
+
+       * lisp/textmodes/ispell.el (ispell-use-framepop-p): Doc fix.
+
+2018-05-02  Michael Albinus  <address@hidden>
+
+       Adapt Tramp for auth-source
+
+       * lisp/net/tramp.el (tramp-read-passwd): auth-source could return
+       cascaded functions.
+
+2018-05-02  Michael Albinus  <address@hidden>
+
+       Fix some edge cases of tramp-smb
+
+       * lisp/net/tramp-smb.el (tramp-smb-errors):
+       Add "NT_STATUS_REVISION_MISMATCH".
+       (tramp-smb-handle-delete-directory): Check, that the directory
+       has been removed indeed.
+       (tramp-smb-get-localname): Add further checks on filename syntax.
+
+       * lisp/net/tramp.el (tramp-localname-regexp): Do not allow linefeeds.
+
+       * test/lisp/net/tramp-tests.el (tramp-smb-get-localname): Declare.
+       (auth-source-save-behavior): Set it to nil.
+       (tramp-test01-file-name-syntax): Extend, checking for linefeeds.
+       (tramp-test03-file-name-host-rules, tramp--test-utf8): Refine tests.
+       (tramp-test03-file-name-method-rules): New test.
+       (tramp--test-ignore-add-name-to-file-error): New defmacro.
+       (tramp-test21-file-links): Use it.
+
+2018-05-01  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       71be806 ; * etc/DEBUG: Minor clarification.
+       4403f89 Update the Emacs FAQ
+       40b3317 * etc/DEBUG: Minor copyedits.
+       850ff18 Clarify wording of NS drag n drop documentation
+       343d70b1 Improve kill-related documentation (bug#31209)
+       0b43224 * lisp/simple.el (region-extract-function): Don't hide the 'n...
+       d6e2c59 Fix pre- and post-command-hook errors in term.el
+       6cf83131e * doc/lispref/display.texi (Glyphless Chars): Fix grammar.
+       88d178c Fix macOS drag n drop event documentation
+
+2018-05-01  Lars Ingebrigtsen  <address@hidden>
+
+       `url-domain' doc clarification
+
+       * lisp/url/url-util.el (url-domain): Add an example to the doc
+       string.
+
+2018-05-01  Lars Ingebrigtsen  <address@hidden>
+
+       Rewrite `url-domain' to avoid network traffic
+
+       * lisp/url/url-util.el (url-domain): Don't talk DNS to determine
+       the domain, because this is slow.
+
+       * test/lisp/url/url-util-tests.el (url-domain-tests): Add tests
+       for `url-domain'.
+
+2018-04-30  Glenn Morris  <address@hidden>
+
+       * test/src/process-tests.el (make-process/mix-stderr): Skip on hydra.
+
+2018-04-29  Stefan Monnier  <address@hidden>
+
+       * lisp/net/socks.el: Use lexical-binding and process properties
+
+       Remove unneeded requires.  Better following commenting conventions.
+       (socks-connections): Remove (use process properties instead).
+       (socks-wait-for-state-change): Make it a function.
+       (open-network-stream): Use an advice when overriding.
+       (socks-send-command): Avoid string-make-unibyte.
+       (socks--open-network-stream): New function (extracted from
+       socks-open-network-stream).
+       (socks-open-network-stream): Rewrite using it.
+
+2018-04-29  Paul Eggert  <address@hidden>
+
+       Advise CFLAGS= operand, not in environment, when configuring
+
+2018-04-28  Noam Postavsky  <address@hidden>
+
+       Replace epg--gv-nreverse with (cl-callf nreverse ...)
+
+       * lisp/epg.el (epg--gv-nreverse): Remove.
+       (epg-list-keys): Replace it with (cl-callf nreverse ...).
+
+2018-04-28  Paul Eggert  <address@hidden>
+
+       Port --enable-gcc-warnings to GCC 8
+
+       * configure.ac: Do not use GCC 8’s new -Wcast-align flag.
+       * lib-src/ebrowse.c (xmalloc):
+       * lib-src/emacsclient.c (xmalloc, xstrdup):
+       * lib-src/etags.c (xmalloc):
+       * lib-src/make-docfile.c (xmalloc):
+       * lib-src/movemail.c (xmalloc):
+       * src/dispnew.c (new_glyph_pool):
+       * src/regex.c (xmalloc):
+       * src/term.c (tty_menu_create):
+       * src/tparam.h (tparam):
+       Use ATTRIBUTE_MALLOC.  Also see GCC bug 85562.
+       * lib-src/emacsclient.c (fail):
+       Do not dereference a null pointer.
+       * src/frame.c (delete_frame):
+       Add a decl with UNINIT to work around GCC bug 85563.
+       * src/menu.h (finish_menu_items):
+       Do not use attribute const.
+       * src/regex.c (analyze_first): Use FALLTHROUGH, not a comment.
+
+2018-04-28  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2018-04-27 manywarnings: port to GCC 8.0
+       * build-aux/config.sub, m4/manywarnings.m4: Copy from Gnulib.
+
+2018-04-28  Juri Linkov  <address@hidden>
+
+       * lisp/vc/add-log.el (change-log-mode-syntax-table): New defvar
+
+       that redefines syntax of quotes to "expression quote or prefix 
operator".
+       (Bug#31231)
+
+2018-04-28  Juri Linkov  <address@hidden>
+
+       * lisp/subr.el (dotimes): Deprecate RESULT field.  (Bug#16206)
+
+       * doc/lispref/control.texi (Iteration):
+       * doc/misc/cl.texi (Iteration): Document deprecation of its use.
+       * doc/lispintro/emacs-lisp-intro.texi (dotimes):
+       * test/src/emacs-module-tests.el (multiply-string):
+       * test/lisp/filenotify-tests.el (file-notify-test07-many-events):
+       Place RESULT field after the form.
+
+2018-04-28  Eli Zaretskii  <address@hidden>
+
+       * src/fns.c (Fstring_distance): Minor code reformatting.
+
+2018-04-28  Eli Zaretskii  <address@hidden>
+
+       Fix documentation and tests for 'string-distance'
+
+       * src/fns.c (Fstring_distance): Doc fix.
+
+       * doc/lispref/strings.texi (Text Comparison): Document
+       'string-distance'.
+
+       * etc/NEWS: Fix wording and mark as documented in the manuals.
+
+       * test/src/fns-tests.el (test-string-distance): Move from
+       subr-tests.el and rename.
+
+2018-04-27  Chen Bin  <address@hidden>
+
+       New function 'string-distance'
+
+       * src/fns.c (Fstring_distance): New primitive.
+       (syms_of_fns): Defsubr it.
+
+       * test/lisp/subr-tests.el (subr-tests--string-distance): New test.
+
+       * etc/NEWS: Mention 'string-distance'.
+
+2018-04-27  Michael Albinus  <address@hidden>
+
+       Manual update for Tramp
+
+       * doc/misc/tramp.texi (Password handling): Explain, how passwords
+       are saved permanently.
+
+       * etc/NEWS: auth-source Secret Service backend supports :create.
+       Tramp saves validated passwords.
+
+2018-04-27  Noam Postavsky  <address@hidden>
+
+       * lisp/epa.el (epa-decrypt-file): Apply epa-pinentry-mode (Bug#30363).
+
+2018-04-26  Lars Ingebrigtsen  <address@hidden>
+
+       Strip most headers when forwarding messages
+
+       * lisp/gnus/message.el (message-forward-included-headers): Change
+       the default to exclude most messages.
+       (message-remove-ignored-headers): Make
+       message-forward-included-headers actually work -- it's a list of
+       regexps, not a list of strings.
+
+2018-04-26  Paul Eggert  <address@hidden>
+
+       * etc/NEWS: Fix minor quoting and spacing bugs.
+
+2018-04-26  Noam Postavsky  <address@hidden>
+
+       Add missing calendar-dlet* (Bug#31267)
+
+       * lisp/calendar/calendar.el (calendar-generate-month): Use
+       calendar-dlet* around evaluation of calendar-date-echo-text.
+
+2018-04-26  Ivan Shmakov  <address@hidden>
+
+       Ensure woman2-roff-buffer restores functions on error (Bug#30908)
+
+       * lisp/woman.el (woman2-roff-buffer): Put the fallback paragraph
+       processing inside the protected part of the unwind-protect form,
+       rather than the cleanup forms.  Attempting to format paragraphs again
+       after an error has been signaled is unlikely to be helpful.  The
+       fallback processing should be triggered only in case the loop
+       terminated normally, but did not reach the end of the buffer for some
+       reason.
+
+2018-04-26  Noam Postavsky  <address@hidden>
+
+       Fix cl-print for circular sublists (Bug#31146)
+
+       * lisp/emacs-lisp/cl-print.el (cl-print-object) <cons>: Push each
+       element of list being printed onto cl-print--currently-printing.
+       * test/lisp/emacs-lisp/cl-print-tests.el (cl-print-circle-2): New
+       test.
+
+2018-04-25  Paul Eggert  <address@hidden>
+
+       Don’t set print-escape-newlines in the minibuffer
+
+       This appears to be an unnecessary and possibly-confusing
+       revenant from ancient code (Bug#31251).  See thread containing:
+       https://lists.gnu.org/r/emacs-devel/2018-04/msg00654.html
+       * src/minibuf.c (read_minibuf): Do not set print-escape-newlines.
+       * src/print.c (syms_of_print): Do not defsym print-escape-newlines
+       or print-escape-control-characters, as these symbols are not used
+       in C code.
+
+2018-04-25  Glenn Morris  <address@hidden>
+
+       * lisp/foldout.el (outline-minor-mode): Remove pointless check.
+
+2018-04-25  Glenn Morris  <address@hidden>
+
+       speedbar: remove support for missing custom.el
+
+       * lisp/speedbar.el (speedbar-file-regexp)
+       (speedbar-ignored-directory-regexp): Remove support for no custom.el.
+
+2018-04-25  Glenn Morris  <address@hidden>
+
+       * lisp/progmodes/sql.el (comint-line-beginning-position):
+       Remove pre-21 fallback definition.
+
+       * lisp/net/eudc.el (split-string): Remove pre-21 fallback definition.
+
+2018-04-25  Basil L. Contovounesios  <address@hidden>
+
+       Do not call interprogram-paste-function repeatedly
+
+       * lisp/simple.el (current-kill): Disable interprogram-paste-function
+       so that kill-new doesn't call it repeatedly when
+       save-interprogram-paste-before-kill is enabled.  (bug#31209)
+
+2018-04-24  Glenn Morris  <address@hidden>
+
+       socks.el: remove pre-21 compatibility code
+
+       * lisp/net/socks.el (socks-split-string): Remove.
+       (socks-nslookup-host): Just use split-string.
+
+2018-04-24  Paul Eggert  <address@hidden>
+
+       * src/minibuf.c (read_minibuf): Add a FIXME comment.
+
+2018-04-24  Lars Ingebrigtsen  <address@hidden>
+
+       (add-to-invisibility-spec): Further doc tweak
+
+       * lisp/subr.el (add-to-invisibility-spec): Tweak doc fix from
+       previous patch.
+
+2018-04-24  Lars Ingebrigtsen  <address@hidden>
+
+       Doc fix for `*-*-invisibility-spec'
+
+       * lisp/subr.el (add-to-invisibility-spec)
+       (remove-from-invisibility-spec): Make the doc string say what
+       happens if `buffer-invisibility-spec' is an atom (bug#30171).
+
+2018-04-24  Lars Ingebrigtsen  <address@hidden>
+
+       libxml-parse-*-region calling convention fix
+
+       * lisp/subr.el (libxml-parse-xml-region)
+       (libxml-parse-html-region): Adjust the calling convention to note
+       that the final parameter is optional.
+
+2018-04-24  Lars Ingebrigtsen  <address@hidden>
+
+       Make url-http-create-request work with non-ASCII data again
+
+       * lisp/url/url-http.el (url-http-create-request): Ensure that the
+       entire request string is unibyte (bug#31248).
+
+2018-04-23  Eli Zaretskii  <address@hidden>
+
+       Fix recent change in lread.c
+
+       * src/lread.c (openp): Avoid assertion violations in XCDR when
+       PATH is nil.  (Bug#31229)
+
+2018-04-23  Paul Eggert  <address@hidden>
+
+       Backspace is not a paragraph separator in Texinfo files
+
+       * lisp/textmodes/texinfo.el (texinfo-mode): Omit backspace from
+       paragraph separator and start.  Perhaps there was some confusion
+       about .texi vs .info files long ago?
+
+2018-04-23  Eli Zaretskii  <address@hidden>
+
+       * etc/NEWS: Improve wording of next-error entries.
+
+2018-04-23  Michael Albinus  <address@hidden>
+
+       Let Tramp save passwords
+
+       * lisp/auth-source.el (auth-source-secrets-saver): New defun.
+       (auth-source-secrets-create): Use it.
+
+       * lisp/net/secrets.el (secrets-struct-secret-content-type):
+       (secrets-create-item): Do not hard-code :xdg:schema.
+
+       * lisp/net/tramp.el (tramp-password-save-function): New defvar.
+       (tramp-read-passwd): Set it properly.
+       (tramp-process-actions):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
+       Save password.
+
+       * lisp/net/tramp-cmds.el (tramp-bug): Don't report
+       `tramp-password-save-function'.
+
+       * test/lisp/net/secrets-tests.el (secrets-test03-items):
+       Extend test with another :xdg:schema.
+
+2018-04-23  Michael Albinus  <address@hidden>
+
+       Ensure proper EOL handling for Tramp on macOS
+
+       * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
+       Ensure proper EOL handling for Darwin.
+
+2018-04-22  Juri Linkov  <address@hidden>
+
+       Improve Isearch error handling
+
+       * lisp/isearch.el (isearch--momentary-message): Propertize message
+       suffix with minibuffer-prompt face.
+       (isearch--describe-regexp-mode): Do not omit description in case
+       of error in default non-literal search.
+       (isearch-message-prefix): Display “case-sensitive” in case of error.
+       (isearch-message-suffix): Propertize message suffix with
+       minibuffer-prompt face.
+       (isearch-search-fun-default): Remove unused error handling.
+
+       * lisp/vc/add-log.el (change-log-next-buffer): Better handle
+       errors during wrapping.
+
+2018-04-22  Lars Ingebrigtsen  <address@hidden>
+
+       (text-property-search-forward): Copy edits in doc string
+
+       * lisp/emacs-lisp/text-property-search.el
+       (text-property-search-forward): Copy edits in doc string.
+
+2018-04-22  Eli Zaretskii  <address@hidden>
+
+       Minor improvements of next-error docs
+
+       * lisp/simple.el (next-error-find-buffer-function)
+       (previous-error, next-error-select-buffer): Doc fixes.
+       * doc/emacs/maintaining.texi (Change Log Commands):
+       * doc/emacs/building.texi (Compilation Mode): Index the new
+       commands and variables.  Improve wording.
+       (Bug#20493)
+
+2018-04-22  Lars Ingebrigtsen  <address@hidden>
+
+       (text-property-search-forward): Doc string tweak
+
+       * lisp/emacs-lisp/text-property-search.el
+       (text-property-search-forward): Doc string tweak.
+
+2018-04-22  Lars Ingebrigtsen  <address@hidden>
+
+       (text-property-search-forward): Fix search at the end
+
+       * lisp/emacs-lisp/text-property-search.el
+       (text-property-search-forward): Fix search at the end of the
+       buffer with no text properties.
+
+2018-04-22  Lars Ingebrigtsen  <address@hidden>
+
+       Add a test suite for text-property-search
+
+2018-04-21  Juri Linkov  <address@hidden>
+
+       Update documentation for more next-error features
+
+       * doc/emacs/maintaining.texi (Change Log Commands): Mention
+       change-log-goto-source.
+
+       * doc/emacs/building.texi (Compilation Mode): Document
+       next-error-find-buffer-function and next-error-select-buffer.
+
+       * doc/emacs/building.texi (Grep Searching):
+       * doc/emacs/files.texi (Diff Mode):
+       * doc/emacs/search.texi (Other Repeating Search):
+       * doc/emacs/windows.texi (Displaying Buffers):
+       Prefer ‘M-g M-n’ over ‘C-x `’.
+
+       * lisp/simple.el (next-error-find-buffer-function, next-error)
+       (next-error-select-buffer): Elaborate docstrings.  (Bug#20493)
+
+2018-04-20  Glenn Morris  <address@hidden>
+
+       Tweak recent bytecomp defvaralias change
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defvar-function):
+       Respect with-no-warnings.
+
+2018-04-20  Glenn Morris  <address@hidden>
+
+       More alias-related tedium
+
+       * lisp/comint.el (comint-scroll-to-bottom-on-output):
+       * lisp/completion.el (cmpl-syntax-table):
+       * lisp/erc/erc-button.el (erc-button-google-url):
+       * lisp/font-lock.el (font-lock-reference-face):
+       * lisp/hfy-cmap.el (hfy-fallback-colour-map, hfy-rgb-txt-colour-map):
+       * lisp/isearch.el (isearch-regexp-function, isearch-new-word):
+       * lisp/startup.el (argv):
+       * lisp/version.el (emacs-bzr-version):
+       * lisp/org/org.el (org-CUA-compatible)
+       (org-popup-calendar-for-date-prompt):
+       Move aliases before targets, to silence new compiler warning.
+
+2018-04-20  Glenn Morris  <address@hidden>
+
+       The tedious game of whack-a-mole with compiler warnings continues
+
+       * lisp/abbrev.el (edit-abbrevs-map):
+       * lisp/emacs-lock.el (emacs-lock-from-exiting):
+       * lisp/htmlfontify.el (hfy-optimisations):
+       * lisp/ielm.el (inferior-emacs-lisp-mode-hook)
+       (inferior-emacs-lisp-mode-map):
+       * lisp/isearch.el (isearch-lazy-highlight-word):
+       * lisp/select.el (x-select-enable-clipboard, x-select-enable-primary):
+       * lisp/shell.el (shell-dirtrack-mode):
+       * lisp/skeleton.el (skeleton-transformation, skeleton-filter):
+       * lisp/startup.el (inhibit-splash-screen, inhibit-startup-message):
+       * lisp/window.el (even-window-heights):
+       * lisp/calendar/timeclock.el (timeclock-modeline-display):
+       * lisp/cedet/semantic/db-mode.el (semanticdb-mode-hook)
+       (semanticdb-global-mode):
+       * lisp/emacs-lisp/edebug.el (gud-inhibit-global-bindings):
+       * lisp/emacs-lisp/warnings.el (display-warning-minimum-level)
+       (log-warning-minimum-level):
+       * lisp/erc/erc-dcc.el (erc-dcc-chat-filter-hook):
+       * lisp/gnus/nnspool.el (news-path):
+       * lisp/org/org-agenda.el (org-agenda-search-view-search-words-only)
+       (org-agenda-remove-tags-when-in-prefix)
+       (org-agenda-align-tags-to-column, org-agenda-keymap):
+       * lisp/org/org.el (org-special-ctrl-a)
+       (org-log-state-notes-into-drawer)
+       (org-agenda-multi-occur-extra-files):
+       * lisp/progmodes/flymake-proc.el (flymake-err-line-patterns)
+       (flymake-check-file-limit):
+       * lisp/progmodes/make-mode.el (makefile-query-one-target-method):
+       * lisp/progmodes/octave.el (inferior-octave-startup-hook):
+       * lisp/progmodes/python.el (python-buffer)
+       (python-preoutput-result):
+       * lisp/progmodes/sql.el (sql-dialect):
+       * lisp/textmodes/artist.el (artist-text-renderer):
+       * lisp/textmodes/bibtex.el (bibtex-autokey-name-case-convert)
+       (bibtex-autokey-titleword-case-convert):
+       * lisp/textmodes/flyspell.el (flyspell-generic-check-word-p):
+       * lisp/textmodes/ispell.el (ispell-format-word):
+       * lisp/textmodes/rst.el (rst-preferred-decorations):
+       * lisp/textmodes/sgml-mode.el (sgml-transformation):
+       Move aliases before targets, to silence new compiler warning.
+       * lisp/term/ns-win.el (ns-option-modifier, ns-right-option-modifier):
+       Silence warning.
+
+2018-04-20  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defvar-function):
+
+       Warn about defvaralias that follows instead of precedes its var.
+
+2018-04-20  Stefan Monnier  <address@hidden>
+
+       * lisp/url/url-file.el: Use lexical-binding.
+
+2018-04-20  Glenn Morris  <address@hidden>
+
+       * lisp/net/newst-backend.el (newsticker--sentinel-work):
+       Replace obsolete form of libxml-parse-xml-region.
+
+       * lisp/replace.el (query-replace-descr): Silence compiler.
+
+2018-04-20  Michael Albinus  <address@hidden>
+
+       Revert "* etc/HELLO: Add langugae Emoji.  Use utf-8 coding."
+
+       This reverts commit c4cfb5d20487f9912f5896b3f1d291fe7ccc9804.
+
+2018-04-20  Michael Albinus  <address@hidden>
+
+       Revert "* admin/notes/unicode: HELLO is now UTF-8."
+
+       This reverts commit 0585bd643dae2592214e77998b875347e6e59bab.
+
+2018-04-20  Paul Eggert  <address@hidden>
+
+       * admin/notes/unicode: HELLO is now UTF-8.
+
+2018-04-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       5de608f (origin/emacs-26) Update the documentation of 'perform-replace'
+       06245b6 * etc/NEWS: Another fix for the last change (noted by Juri Li...
+       8f6293c Fix use of @key in Texinfo manuals
+       f4c9894 Improve documentation of actual arglist
+       ce0e253 ; * etc/NEWS: Improve last change as proposed by Phil Sainty
+       b89ff0e Don't assume term-current-row cache is valid (Bug#31193)
+       326a296 ; * etc/NEWS: Mention 'display-buffer-in-major-side-window' c...
+       3bdc9a1 Fix flyspell-auto-correct-previous-word broken by recent change
+       a539eb5 * test/src/lread-tests.el (lread-test-bug-31186): New test.
+       3fa472b Fix undefined behaviour while looking for lexical-binding fil...
+       4341aac Minor wording improvement in "Bookmarks"
+
+       Conflicts:
+               test/src/lread-tests.el
+
+2018-04-20  Stefan Monnier  <address@hidden>
+
+       * lisp/international/mule-cmds.el (view-hello-file): Avoid duplicate
+
+       Don't hardcode the coding-system, now that it's specified with a 
"coding:" tag
+
+2018-04-20  Michael Albinus  <address@hidden>
+
+       * lisp/international/mule-cmds.el (view-hello-file):  Use utf-8 coding.
+
+       * etc/HELLO: Add langugae Emoji.  Use utf-8 coding.
+
+2018-04-19  Glenn Morris  <address@hidden>
+
+       * lisp/url/url-util.el (puny-encode-domain): Autoload it.
+
+2018-04-19  Juri Linkov  <address@hidden>
+
+       Mention next-error-select-buffer in etc/NEWS
+
+2018-04-19  Alan Mackenzie  <address@hidden>
+
+       Amend c-colon-type-list-re also to handle compound identifiers
+
+       * lisp/progmodes/cc-langs.el (c-colon-type-list-re): Amend to recognize 
and
+       skip over "::" in C++ and "." in Java.
+
+2018-04-19  Juri Linkov  <address@hidden>
+
+       Use text properties to save search parameters.  (Bug#22479)
+
+       * lisp/isearch.el (isearch-update-ring): Call isearch-string-propertize.
+       Delete duplicates with possibly different text properties.
+       (isearch-string-propertize)
+       (isearch-update-from-string-properties): New functions.
+       (with-isearch-suspended, isearch-ring-adjust1):
+       Call isearch-update-from-string-properties.
+       (isearch-edit-string): Let-bind minibuffer-allow-text-properties to t.
+       (isearch-query-replace): Use propertized isearch-string.
+       (isearch--lax-regexp-function-p): Simplify.
+
+       * lisp/replace.el (query-replace-descr): Rewrite to keep text properties
+       non-destructively in the replacement string.
+       (query-replace--split-string): Don't remove text properties
+       by substring-no-properties.
+       (query-replace-read-args): Try to get isearch-regexp-function
+       from text-properties.
+       (perform-replace): Display parameters in the replacement message.
+
+       * lisp/desktop.el (desktop--v2s): Check if text properties are 
unreadable.
+       (Bug#30786)
+
+2018-04-19  Juri Linkov  <address@hidden>
+
+       * lisp/isearch.el (isearch-mode-map): Restore advertised bindings.
+
+       Remove obsolete comments and code.
+
+       * lisp/replace.el (occur-find-match): Use user-error instead of error.
+       (Bug#14912)
+
+2018-04-19  Drew Adams  <address@hidden>
+
+       Add REGION-NONCONTIGUOUS-P arg to other replace.el commands
+
+       * lisp/replace.el (query-replace, query-replace-regexp): Doc fix.
+       (query-replace-regexp-eval, map-query-replace-regexp)
+       (replace-string, replace-regexp): Add REGION-NONCONTIGUOUS-P arg.
+       (perform-replace): Doc fix.  (Bug#27897)
+
+2018-04-19  Glenn Morris  <address@hidden>
+
+       * lisp/emacs-lisp/autoload.el (autoload--make-defs-autoload):
+       Sort definition-prefixes, for stability.
+
+2018-04-19  Michael Albinus  <address@hidden>
+
+       Handle chrooted environments in Tramp
+
+       * doc/misc/tramp.texi (Frequently Asked Questions): New item, chrooted
+       environments.
+
+       * lisp/net/tramp.el (tramp-local-host-regexp): Make it a defcustom.
+       Allow nil.
+       (tramp-local-host-p):
+       * lisp/net/tramp-sh.el (tramp-compute-multi-hops): Handle this.
+
+2018-04-18  Glenn Morris  <address@hidden>
+
+       * test/src/process-tests.el (make-process/mix-stderr): Use bash.
+
+       Not all shells support ">&2".
+
+2018-04-18  Paul Eggert  <address@hidden>
+
+       Fix botched merge of FQDNs in PROBLEMS
+
+       This text was originally removed in
+       2014-12-30T04:42:26Z!address@hidden but then was
+       mistakenly re-added in the merge in
+       2015-03-23T17:30:30Z!address@hidden.
+       * etc/PROBLEMS: Omit obsolete mention of FQDNs.
+
+2018-04-18  Paul Eggert  <address@hidden>
+
+       Tweak mark_object to avoid a conditional branch
+
+       * src/alloc.c (LAST_MARKED_SIZE): Now an enum.  Make it a power of 2.
+       (mark_object): Take advantage of the power of 2.
+
+2018-04-18  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/gv.el (gv-define-setter): Silence compiler warning
+
+       Code placed in the `gv-expander` property will presumably only be used
+       when gv is loaded (bug#14529).
+
+2018-04-18  Paul Eggert  <address@hidden>
+
+       Tell user about read-integer-overflow-as-float
+
+       * src/lread.c (string_to_number): Suggest
+       read-integer-overflow-as-float in signal message.
+       Suggested by Stefan Monnier (Bug#31118#58).
+
+2018-04-17  Paul Eggert  <address@hidden>
+
+       Fix signal for large integers with valid syntax
+
+       * src/lread.c (read_integer): If a radixed integer has valid syntax
+       but is waayyy too large, signal overflow instead of invalid syntax.
+       * test/src/lread-tests.el (lread-long-hex-integer): New test.
+
+2018-04-17  Lars Ingebrigtsen  <address@hidden>
+
+       (sql-stop): Don't bug out if the SQL buffer is killed
+
+       * lisp/progmodes/sql.el (sql-stop): Don't bug out if the SQL
+       buffer is killed (bug#30244).
+
+2018-04-17  David Beswick  <address@hidden>  (tiny change)
+
+       Don't display an initial-buffer-choice buffer twice
+
+       * lisp/startup.el (command-line-1): Don't display an
+       initial-buffer-choice buffer twice if the user is also explicitly
+       specifying it on the mode line, but shift it to the initial place
+       (bug#29999).
+
+2018-04-17  Lars Ingebrigtsen  <address@hidden>
+
+       Revert hunk mistakenly applied in last patch
+
+2018-04-17  Lars Ingebrigtsen  <address@hidden>
+
+       Fix problem in `g' in Info with strings like "(foo)"
+
+       * lisp/info.el (Info-find-file): Add a new parameter to avoid
+       jumping to the directory if the user looks for a filename on the
+       form "(foo)" that doesn't exist.
+       (Info-read-node-name-1): Use it to allow completing over strings
+       like "(foo)" without losing focus (bug#30091).
+
+2018-04-17  Basil L. Contovounesios  <address@hidden>
+
+       Set :version of shr faces
+
+       * lisp/net/shr.el (shr-strike-through, shr-link, shr-selected-link):
+       Set :version tag (bug#31200).
+
+2018-04-17  Lars Ingebrigtsen  <address@hidden>
+
+       shr doc string fix
+
+       * lisp/net/shr.el (shr-strike-through, shr-link)
+       (shr-selected-link): Doc string fix.
+
+2018-04-17  Basil L. Contovounesios  <address@hidden>
+
+       Modernise face specs and set version tags in eww/shr
+
+       * lisp/net/shr.el (shr-strike-through, shr-link, shr-selected-link):
+       Set :version tag (bug#31200).
+
+       * lisp/net/eww.el (eww-form-text, eww-form-textarea):
+       * lisp/net/shr.el (shr-strike-through, shr-link, shr-selected-link):
+       Use (DISPLAY . PLIST) face spec syntax as recommended in
+       '(elisp) Defining Faces'.
+
+2018-04-17  Lars Ingebrigtsen  <address@hidden>
+
+       When undoing a mark-as-read, display the group if it isn't
+
+       * lisp/gnus/gnus-group.el (gnus-group-jump-to-group): Return
+       whether we found the group.
+       (gnus-info-clear-data): Make the group visible if it wasn't.
+
+       * lisp/gnus/gnus-sum.el (gnus-group-make-articles-read): Ditto.
+       (gnus-update-read-articles): Ditto.
+
+2018-04-17  Juri Linkov  <address@hidden>
+
+       Use next-error-found to set next-error-last-buffer.
+
+       https://lists.gnu.org/archive/html/emacs-devel/2018-04/msg00207.html
+
+       * lisp/simple.el (next-error-buffer): New buffer-local variable
+       instead of making buffer-local next-error-last-buffer.  (Bug#20489)
+       (next-error-found-function): New defcustom.
+       (next-error-buffer-on-selected-frame): Use t for avoid-current arg
+       of next-error-buffer-p.
+       (next-error-find-buffer): Add second rule for using the current
+       next-error-buffer if it's not visited by other navigation.
+       (next-error, next-error-internal): Call next-error-found.
+       (next-error-found): New function with body extracted mostly from
+       next-error.
+
+       * lisp/vc/add-log.el (change-log-goto-source-internal): New function
+       with body from change-log-goto-source.
+       (change-log-goto-source): Call change-log-goto-source-internal and
+       next-error-found.
+       (change-log-next-error): Call change-log-goto-source-internal
+       instead of change-log-goto-source.
+       (change-log-mode): Don't set next-error-last-buffer.  (Bug#28864)
+
+       * lisp/vc/diff-mode.el (diff-goto-source): Call next-error-found.
+
+       * lisp/progmodes/xref.el (xref-goto-xref): Call next-error-found.
+
+       * lisp/replace.el (occur-mode-goto-occurrence)
+       (occur-mode-goto-occurrence-other-window)
+       (occur-mode-display-occurrence): Call next-error-found.
+       (occur-next-error): Remove unnecessary with-current-buffer.
+       (Bug#27362, bug#30646)
+
+2018-04-17  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak shr window width computation
+
+       * lisp/net/shr.el (shr-insert-document): The computation of the
+       window width is apparently one pixel too wide for the shr line
+       folding algorithm (bug#31196).
+
+2018-04-17  Lars Ingebrigtsen  <address@hidden>
+
+       (gnus-summary-select-article-buffer): Further point placing tweak
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-select-article-buffer):
+       Further tweak for the previous point-placing tweak.
+
+2018-04-17  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak point placement in gnus-summary-select-article-buffer
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-select-article-buffer):
+       Ensure that point is where it's supposed to be after switching to
+       the article buffer.
+
+2018-04-17  Lars Ingebrigtsen  <address@hidden>
+
+       Make the `c' command work in a single-article Gnus view
+
+       * lisp/gnus/gnus-art.el (gnus-article-read-summary-keys): Make `c'
+       work from the article buffer (bug#31195) when no summary buffer is
+       shown.
+
+2018-04-17  Lars Ingebrigtsen  <address@hidden>
+
+       Place point consistently in the Gnus group buffer on exit
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-exit): Place point correctly
+       when exiting with `q' (and the like) from the article buffer when
+       only the article buffer is displayed (bug#31195).  This is
+       apparently yet another fall-out from the "preserve-visible-point-
+       in-windows" patches of yesteryear...
+
+2018-04-17  Lars Ingebrigtsen  <address@hidden>
+
+       Reimplement `shr-next-link' and `shr-previous-link'
+
+       * lisp/net/shr.el (shr-next-link): Use
+       `text-property-search-forward'.
+       (shr-previous-link): Use `text-property-search-backward'.
+
+2018-04-17  Lars Ingebrigtsen  <address@hidden>
+
+       Add `text-property-search-forward' and `-backward'
+
+       * doc/lispref/text.texi (Property Search): Document
+       `text-property-search-forward' and `text-property-search-backward'.
+
+       * lisp/emacs-lisp/text-property-search.el: New file.
+
+2018-04-17  Tino Calancha  <address@hidden>
+
+       * lisp/textmodes/artist.el (artist-mode): Ensure we have a font
+
+2018-04-16  Katsumi Yamaoka  <address@hidden>
+
+       * lisp/mail/sendmail.el (mail-sendmail-undelimit-header): Work for
+       the case where the mail header separator has already been deleted.
+
+2018-04-16  Lars Ingebrigtsen  <address@hidden>
+
+       (gnus-group-goto-group): Return correct value after previous patch
+
+       * lisp/gnus/gnus-group.el (gnus-group-goto-group): Return the
+       correct value after the previous patch.
+
+2018-04-16  Lars Ingebrigtsen  <address@hidden>
+
+       Fix inconsistent point movement in the Gnus group buffer
+
+       * lisp/gnus/gnus-group.el (gnus-group-goto-group): If we can't
+       find the group we're looking for, then don't move point at all
+       (bug#23021).
+
+2018-04-16  Lars Ingebrigtsen  <address@hidden>
+
+       (artist-mode): Warn about proportional fonts
+
+       * lisp/textmodes/artist.el (artist-mode): Warn about proportional
+       fonts (bug#24175).
+
+2018-04-16  Lars Ingebrigtsen  <address@hidden>
+
+       Make mail-sendmail-undelimit-header actually remove the delimiter
+
+       * lisp/mail/sendmail.el (mail-sendmail-undelimit-header): Actually
+       remove the mail header separator (bug#17488).  In all the cases
+       where this is called, the separator will probably already have
+       been removed, so the only thing this does is place point at the
+       end of the headers.
+
+2018-04-16  Lars Ingebrigtsen  <address@hidden>
+
+       (semantic-symref-results-mode-map): Fix typo in previous check-in
+
+       * lisp/cedet/semantic/symref/list.el
+       (semantic-symref-results-mode-map): Fix typo in previous check-in.
+
+2018-04-15  Philipp Stephani  <address@hidden>
+
+       Avoid undefined behavior in 'defvar' (Bug#31072)
+
+       * src/eval.c (Fdefvar): Check that first argument is a symbol.
+       * test/src/eval-tests.el (defvar/bug31072): New unit test.
+
+2018-04-15  Stefan Monnier  <address@hidden>
+
+       EUDC: Enable lexical binding and do some cleanups
+
+       * lisp/net/eudc.el: Enable lexical binding.
+       (cl-lib): Always require cl-lib, not only when byte compiling.
+       (eudc-mode-map): Set parent keymap within let form.
+       (eudc-update-local-variables): Use #' read syntax for function
+       argument to map function.
+       (eudc-select): Likewise.
+       (eudc-format-attribute-name-for-display): Likewise
+       (eudc-filter-duplicate-attributes): Likewise.
+       (eudc-format-query): Likewise.
+       (eudc-expand-inline): Likewise.
+       (eudc-query-form): Likewise.
+       (eudc-print-attribute-value): Use mapc instead of mapcar.
+       (eudc-filter-partial-records): Use cl-every.
+       (eudc-distribute-field-on-records): Use delete-dups to
+       simplify function.
+       (eudc-expand-inline): Replace while with dolist and let form.
+       (eudc-query-form): Set inhibit-read-only after switching
+       buffers.  Remove useless and call.
+       (eudc-load-eudc): Add a FIXME comment.
+
+2018-04-15  Rüdiger Sonderfeld  <address@hidden>
+
+       In HTML mode, don't match </ with the wrong /
+
+       * lisp/textmodes/sgml-mode.el (sgml-slash): In HTML mode, don't
+       match <br /><h1>...</ with the preceding / (bug#16508).
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       Use quit-buffer instead of semantic-symref-hide-buffer
+
+       * lisp/cedet/semantic/symref/list.el
+       (semantic-symref-hide-buffer): Removed (bug#15857).
+       (semantic-symref-results-mode-map): Use quit-buffer instead.
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       Doc string update for gnus-extract-address-components
+
+       * lisp/gnus/gnus-util.el (gnus-extract-address-components): Doc
+       update.
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       Add an undo command to url-cookie-mode
+
+       * lisp/url/url-cookie.el (url-cookie-undo): New command and
+       keystroke (bug#16650).
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak the look of the cookie buffer after cookie deletion
+
+       * lisp/url/url-cookie.el (url-cookie--generate-buffer): Factor out
+       into its own function.
+       (url-cookie-delete): Use it to make the buffer look consistent
+       after deleting a cookie.
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       Make eww handle "http://a/../../../g";
+
+       * lisp/net/eww.el (eww): Strip leading elements off URLs on the
+       form "http://a/../../../g";, because that's what all the other
+       browsers do (bug#8622).
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       Make url-cookie-write-file be more permissive
+
+       * lisp/url/url-cookie.el (url-cookie-write-file): If
+       `url-cookie-file' isn't set (due to url.el not being used yet),
+       don't error out in this function (bug#23183).
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       Don't warn the user about large files if they are unreadable
+
+       * lisp/files.el (abort-if-file-too-large): There's no point in
+       warning the user about a too-large file if we're not able to read
+       it (bug#29549).  Hopefully this doesn't introduce a race condition
+       between this test and the `file-readable-p' test later.
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       Only save the mailer choice after sending the mail
+
+       * lisp/mail/sendmail.el (sendmail-query-once): Only save the
+       mailer choice after we've sent the mail, so that if that fails,
+       the user has an easy way to back out of the choice and make
+       another (bug#14487).
+       (sendmail-query-user-about-smtp): Return the choice; don't save it.
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       (compose-mail): Give a better error message for `mail-user-agent'
+
+       * lisp/simple.el (compose-mail): Give a better error message for
+       invalid values for `mail-user-agent' (bug#17979).
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       Fix typo in gnus.texi
+
+       * doc/misc/gnus.texi (Summary Message Commands): Fix typo in last
+       change.
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       Update doc string after previous ietf-drums change
+
+       * lisp/mail/ietf-drums.el (ietf-drums-parse-address): Doc fix
+       after previous change.
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       mail-extr.el: Mention `mail-header-parse-address' in the doc string
+
+       * lisp/mail/mail-extr.el (mail-extract-address-components):
+       Mention `mail-header-parse-address' in the doc string.
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       Allow `mail-header-parse-address' to decode encoded words
+
+       * lisp/mail/ietf-drums.el (ietf-drums-parse-address): Take an
+       optional parameter to decode the display name.
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Make mail-extract-address-components return the user name more"
+
+       This reverts commit 8b50ae8b2284b5652c2843a9d0d076f4f657be28.
+
+       According to tests in bug#27656 by OGAWA Hirofumi, this patch
+       led to wrong results when binding
+
+       (dolist (addr '("Rasmus <address@hidden>" "Rasmus <address@hidden>"))
+         (dolist (ignore-single '(t nil))
+           (dolist (ignore-same '(t nil))
+             (let ((mail-extr-ignore-single-names ignore-single)
+                   (mail-extr-ignore-realname-equals-mailbox-name ignore-same))
+               (message "%s" (mail-extract-address-components addr))))))
+
+       in combination.
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       Query the user whether to increase stack depth in shr
+
+       * lisp/net/shr.el (shr-insert-document): Bind `max-specpdl-size'
+       here... (bug#30675).
+       (shr-descend): So that we can increase it temporarily here if the
+       user wants to.
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       Minor copy edit of etc/NEWS
+
+       * src/lread.c (openp): Add a comment before the now-obscure loop.
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify menu entry in previous check-in
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-make-menu-bar): Menu bar
+       entry for it.
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       Add new command `gnus-summary-attach-article'
+
+       * doc/misc/gnus.texi (Summary Message Commands): Document it.
+
+       * lisp/gnus/gnus-msg.el (gnus-summary-attach-article): New command
+       and keystroke (bug#19788).
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-make-menu-bar): Menu bar
+       entry for it.
+
+2018-04-15  Daiki Ueno  <address@hidden>
+
+       Divert to call `gnus-activate-group' with the SCAN argument set
+
+       * lisp/gnus/gnus-group.el (gnus-group-get-new-news-this-group):
+       Divert to call `gnus-activate-group' with the SCAN argument set,
+       if request-group-scan is not defined for the backend.  Ensure that
+       the server is open when calling `gnus-request-group-scan'
+       (bug#22649).
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       Abort Gnus exit if we have unsaved Message buffers
+
+       * lisp/gnus/gnus-group.el
+       (gnus--abort-on-unsaved-message-buffers): New function (bug#28843).
+       (gnus-group-exit): Use it to abort exit if we have unsaved Message
+       buffers.
+
+2018-04-15  Lars Ingebrigtsen  <address@hidden>
+
+       Avoid an infloop in shr filling when not using fonts
+
+       * lisp/net/shr.el (shr-fill-line): If we have an indentation
+       that's wider than the width of what we're trying to fill, just
+       give up.  This avoids an infloop when `shr-use-fonts' in nil.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Remove calls from string-to-multibyte in nnheader/nntp
+
+       * lisp/gnus/nntp.el (nntp-copy-to-buffer): Apparently `insert' now
+       behaves more like string-make-multibyte, but it now behaves more
+       like string-to-multibyte, so remove that call here.  I'm not quite
+       sure I follow that logic, but apparently there are no ill effects.
+
+       * lisp/gnus/nnheader.el (nnheader-insert-buffer-substring): Ditto.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Remove a string-to-multibyte from nnmh.el
+
+       * lisp/gnus/nnmh.el (nnmh-request-list-1): Remove superfluous
+       string-to-multibyte.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Remove call to string-to-multibyte from nndoc.el
+
+       * lisp/gnus/nndoc.el (nndoc-oe-dbx-type-p): My testing shows that
+       no matter whether we're in a unibyte or a multibyte buffer, doing
+       the looking-at here without the string-to-multibyte, we'll get a
+       match.  We did not get a match with the call in and if we were in
+       a unibyte buffer, but we presumably never are.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Fix calculation in gnus-update-group-mark-positions
+
+       * lisp/gnus/gnus-group.el (gnus-update-group-mark-positions):
+       Rewrite a call to string-to-multibyte that didn't even work.
+       After the rewrite it gives the correct result and should allow
+       people to customise Gnus group process mark positions (but that's
+       a pretty obscure feature).
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Removed outdated comment from nnweb.el
+
+       * lisp/gnus/nnweb.el (nnweb-insert-html): Removed ten year old
+       comment from Stefan about string-as-multibyte.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Rewrite Gnus calls to compat function mm-multibyte-p
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Rewrite string-as-unibyte/string-as-multibyte logic in nnmail
+
+       * lisp/gnus/nnmail.el (nnmail-insert-xref): Rewrite
+       string-as-unibyte/string-as-multibyte logic and confirm that the
+       result is the same in both multibyte and unibyte buffers after the
+       change.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Remove call to string-as-unibyte from nnmail
+
+       * lisp/gnus/nnmail.el (nnmail-parse-active): Remove call to
+       string-as-unibyte; the alist before and after the change are
+       `equal' to each other, so it should presumably have no impact.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Remove calls to string-as-unibyte from nnir.el
+
+       * lisp/gnus/nnir.el (nnir-get-active): Remove two calls to
+       string-as-unibyte from code that seems cargo-culted from Gnus
+       functions where it is not needed, so it's presumably not needed
+       here, either.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Remove call to string-as-unibyte in gnus-start.el
+
+       * lisp/gnus/gnus-start.el (gnus-read-newsrc-el-file): Remove
+       string-as-unibyte call, which appears not to do anything much in
+       modern Emacsen.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Remove call to string-as-unibyte from gnus-start.el
+
+       * lisp/gnus/gnus-start.el (gnus-update-active-hashtb-from-killed):
+       Remove a string-as-unibyte call here, which appears not to be
+       necessary: I'm able to complete over non-ASCII names both before
+       and after.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Modernise a Gnus function a bit
+
+       * lisp/gnus/gnus-start.el (gnus-update-active-hashtb-from-killed):
+       Modernise code a bit.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Remove two string-as-unibyte in gnus-srvr.el
+
+       * lisp/gnus/gnus-srvr.el (gnus-browse-foreign-server): We do not
+       seem to need the string-as-unibyte here: We read a multibyte
+       string from the *nntpd* buffer and then decode it later, and this
+       apparently by some strange magic leads to the correct results in
+       my test cases.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Fix a `string-to-multibyte' in Gnus
+
+       * lisp/gnus/gnus-art.el (gnus-request-article-this-buffer): The
+       original article buffer is multibyte, and we're inserting into the
+       article buffer, which is also multibyte, so the `string-to-multibyte'
+       here should be unnecessary?
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Fix a string-as-unibyte in Gnus
+
+       * lisp/gnus/gnus-art.el (gnus-article-browse-html-parts): Get rid
+       of a string-as-unibyte.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Further shr line folding/link continuation tweaks
+
+       * lisp/net/shr.el (shr-fill-line): Tweak the link continuations
+       further when folding lines.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Indent after transforming for loop into do/while
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Make call-process work if exec-path is nil
+
+       * src/lread.c (openp): If exec-path is nil, no files would be
+       found to execute (bug#30564).
+
+       Test cases:
+
+        (let ((exec-path ()))
+          (call-process "/bin/ls" nil (current-buffer)))
+
+       This would previously fail, but now works.
+
+        (let ((exec-path '("/bin/")))
+          (call-process "ls" nil (current-buffer)))
+
+       This worked, and still works.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Make erc-current-logfile work with explicit parameter
+
+       * lisp/erc/erc-log.el (erc-current-logfile): This function
+       apparently refers to buffer-local variables, so switch to the
+       buffer given before calculating the file name (bug#16111).
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak shr link text property adjustments when folding
+
+       * lisp/net/shr.el (shr-fill-line): If a link starts at the first
+       word on a new folded line, then don't copy the link properties to
+       the newline inserted.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       * lisp/erc/erc-button.el (erc-button-search-url): Doc fix.
+
+       erc build fix for the previous patch
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       erc-truncate-buffer-on-save doc string clarification
+
+       * lisp/erc/erc-log.el (erc-truncate-buffer-on-save): Doc
+       clarification (bug#18207) since "truncate" is a word used by
+       erc-truncate to mean something else.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Ignore all-whitespace topics in erc
+
+       * lisp/erc/erc.el (erc-cmd-TOPIC): Ignore all-whitespace topics
+       (bug#25153).
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Rename url-button-google-url
+
+       * lisp/erc/erc-button.el (erc-button-search-url): Renamed from
+       url-button-google-url (bug#25717).  Suggested by Andrew Robbins.
+       (erc-button-alist): Use it.
+
+2018-04-14  John Goerzen  <address@hidden>  (tiny change)
+
+       Subject: Fix problem with erc buffer renames after reconnect
+
+       * lisp/erc/erc.el (erc-generate-new-buffer-name): Solve problem
+       with renamed buffers on different servers after reconnect (bug#30639).
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       (libxml-parse-html-region): Make DISCARD-COMMENTS obsolete
+
+       * lisp/subr.el (libxml-parse-xml-region)
+       (libxml-parse-html-region): Make DISCARD-COMMENTS obsolete.
+
+       * src/xml.c (Flibxml_parse_html_region)
+       (Flibxml_parse_xml_region): Don't mention DISCARD-COMMENTS, since
+       it's now no longer part of the advertised signature (bug#27178).
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Revert "Give better errors in signing failures in Gnus""
+
+       This reverts commit 42141da5b0885b199636524c1e57f08ee1723aea.
+
+       This patch was reverted in error.  I misinterpreted an email saying that
+       it didn't work, but apparently it worked as it should.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Make DISCARD-COMMENTS in `libxml-parse-{html,xml}-region' obsolete
+
+       * doc/lispref/text.texi (Parsing HTML/XML): Mention that
+       discard-comments is obsolete.
+
+       * lisp/xml.el (xml-remove-comments): New function (bug#27178).
+
+       * src/xml.c (Flibxml_parse_html_region): Clarify what
+       DISCARD-COMMENTS actually does, and say that the parameter is
+       obsolete.
+       (Flibxml_parse_xml_region): Ditto.
+
+2018-04-14  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       5a6bb01 (origin/emacs-26) Fix building etc/DOC in the MSDOS port
+       274c979 * lisp/select.el (gui-get-selection): Doc fix.
+       ad731b0 ; * doc/lispref/display.texi (Temporary Displays): Fix typos.
+       f1450e9 Complete documentation of syntax flags by adding `c'
+       6bdcaec Fix typos and minor wording issues in ELisp manual
+       febac27 Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emac...
+       6c2e21e Avoid segfault in processes of type 'pipe'
+       60e10c5 Remove repetitions in documentation strings
+       208e752 * lisp/image.el (image-load-path): Doc fix.
+       92e0fd8 ; * etc/NEWS: Remove a FIXME.  (Bug#31122)
+
+       Conflicts:
+               etc/NEWS
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Change the default From style to `angles' and make obsolete
+
+       * lisp/gnus/message.el (message-from-style): Make `angles' the
+       default (bug#29309) and mark as obsolete.
+
+       * lisp/mail/sendmail.el (mail-from-style): Ditto.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Make image-mode respect `imagemagick-types-inhibit'
+
+       * lisp/image-mode.el (image--imagemagick-wanted-p): New function
+       (bug#29584).
+       (image-toggle-display-image): Use it to see whether we want to use
+       imagemagick.
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Give better errors in signing failures in Gnus"
+
+       This reverts commit ef2059e877d104bfe5abd24df05bb09c7295e4fa.
+
+       Apparently this test triggered both when signing was successful
+       and unsuccessful (bug#26298).
+
+2018-04-14  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak mailcap precedence so that Emacs values are heeded better
+
+       * lisp/net/mailcap.el (mailcap-parse-mailcaps): Place entries from
+       system-wide mailcap files after the values that are distributed
+       with Emacs, and the ones from ~/.mailcap before.
+       (mailcap-parse-mailcap): Take an optional `after' parameter to
+       achieve that.
+       (mailcap-add-mailcap-entry): Ditto.
+
+2018-04-14  Tino Calancha  <address@hidden>
+
+       Subject: Fix circular dependency for mm-decode
+
+       * lisp/gnus/mm-decode.el: Do not require shr.el at the top
+       of the file; `mm-shr' already requires shr.el in its body, and
+       this function is the only `mm-convert-shr-links' caller (Bug#31151).
+
+2018-04-13  Basil L. Contovounesios  <address@hidden>
+
+       Do not destructively modify interprogram paste
+
+       * lisp/simple.el (kill-new, current-kill): Non-destructively reverse 
list
+       returned by interprogram-paste-function. (bug#31097)
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Don't bind image commands on eww non-image links
+
+       * lisp/net/eww.el (eww-link-keymap): Only inherit the normal shr
+       keymap.
+       (eww-image-link-keymap): New keymap with the image bindings.
+       (eww-tag-a): Use the appropriate one on links (bug#30148).
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Move utility function to mm-util.el
+
+       * lisp/gnus/mm-util.el (mm-images-in-region-p): Move from
+       mm-decode.el and renamed, since it is generally useful.
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Make the url file: handler be less clever
+
+       * doc/misc/url.texi (file/ftp): Remove mention of the
+       url-directory-index-file variable, which is no longer consulted.
+
+       * lisp/url/url-file.el (url-file-build-filename): Remove the DWIM
+       code from the file: handler (bug#30195): It would look for
+       index.html in a directory if we asked it to fetch the directory.
+       Determining what to do in a directory should be left up to the
+       programs that use this low-level library.  If the library decides
+       to load a different file than we specified, then things start
+       falling apart, as demonstrated by this bug report.
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Don't bind image commands on non-image links in Gnus
+
+       * lisp/gnus/mm-decode.el (mm--images-in-region-p): New utility
+       function.
+       (mm-convert-shr-links): Only use the shr image map on links that
+       contain images.  This avoids binding commands like `r' on links
+       that don't need it.
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Revert "Add colors to faces that lack them."
+
+       This reverts commit 16748a5f6bd57ec0967ecb5e14ffe8af5f43d888.
+
+       From the discussion on the ding mailing list, I said:
+
+       I think the colours should be reverted back to what they were before the
+       change.  Normal text should be white on black (if you have a dark
+       background), and colours should be used to emphasise or de-emphasise
+       certain text.  Following that principle, normal Gnus groups should be
+       white, not ... er...  what are they now?  Teal?
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak the fonts applied to shr indentation
+
+       * lisp/net/shr.el (shr-fill-line): Don't use fonts (especially
+       link fonts) over indentation, because that's ugly..
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Further tweak point placement on gnus-summary-select-article-buffer
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-select-article-buffer):
+       Place point in the empty space between headers and body.
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak point placement in *Group* on `Q' exit
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-exit-no-update): When
+       exiting the summary buffer with `Q', move point to the next unread
+       group (which is the same thing that happens on `q' exit.)
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak point placement in gnus-summary-select-article-buffer
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-select-article-buffer):
+       Tweak where point is placed because when the user selects the
+       article buffer, it's probably to cite something or click on
+       something, and not do anything with the headers.
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Compute erc line lengths correctly for utf-8 (etc.)
+
+       * lisp/erc/erc-backend.el (erc-split-line): Fold the lines
+       according to octet length, not the number of characters (bug#23047).
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Clean up some defvoo doc strings
+
+       * lisp/gnus/nndiary.el: Remove "*" from doc strings from defvoo
+       elements (bug#23392).
+
+       * lisp/gnus/nndir.el: Ditto
+
+       * lisp/gnus/nndoc.el: Ditto.
+
+       * lisp/gnus/nnrss.el: Ditto.
+
+       * lisp/gnus/nnspool.el: Ditto.
+
+       * lisp/gnus/nntp.el: Ditto.
+
+2018-04-13  Eric Abrahamsen  <address@hidden>
+
+       Further fix to eieio-persistent
+
+       * lisp/emacs-lisp/eieio-base.el 
(eieio-persistent-validate/fix-slot-value):
+         Make handling of hash tables and vectors recursive. This is
+         necessary because the write process, in `eieio-override-prin1' is
+         also recursive. With any luck, this will be the last fix of its
+         kind. If that's true, cherry-pick to Emacs 26.2 later on.
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Make nnimap parse pathological spam headers better
+
+       * lisp/gnus/nnimap.el (nnimap-transform-headers): Unfold certain
+       pathological IMAP headers more correctly (bug#25502).  Perhaps
+       this function should be re-implemented.
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Fix syntax error in emacs-mime.texi in last check-in
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Prefer settings from ~/.mailcap over system and Emacs settings
+
+       * doc/misc/emacs-mime.texi (mailcap): Document the variable and
+       how mailcap chooses which viewer to use.
+
+       * lisp/net/mailcap.el (mailcap-prefer-mailcap-viewers): New variable.
+       (mailcap-mime-info): Use it.
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Fix bug in shr-urlify introduced in previous patch
+
+       * lisp/net/shr.el (shr-urlify): Not all URLs have domains, so
+       check for that before doing IDNA.
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Make shr support inline <div>s
+
+       * lisp/net/shr.el (shr-tag-div): Support display: inline; for
+       <div>, since that's a very common thing (bug#25588).
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Notify the user a bit more before clicking IDNA links
+
+       * lisp/net/shr.el (shr-urlify): Show the puny-encoded domain name
+       in the mouseover string (bug#25600).
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       (nnimap-sequence): Add comment
+
+       * lisp/gnus/nnimap.el (nnimap-sequence): Add comment.
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       (url-http): Ensure that the referrer is all-ASCII
+
+       * lisp/url/url-http.el (url-http): Ensure that the referrer is 
all-ASCII.
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       gnutls.el now needs punycode
+
+       * lisp/net/gnutls.el (puny): Require punycode.
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Make Unicode domain names work again in URL after recent changes
+
+       * lisp/net/gnutls.el (open-gnutls-stream): IDNA-encode hostnames
+       before passing them on to gnutls for verification.
+
+       * lisp/net/network-stream.el (network-stream-open-starttls): Ditto.
+
+       * lisp/url/url-http.el (url-http--get-referer): Be IDNA-aware.
+       (url-http-create-request): Don't de-Unicodify host names, because
+       they may be IDNA names (that are later encoded).
+
+       * lisp/url/url-util.el (url-domain): Be IDNA-aware when doing
+       domain name computations.
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Update defcustom version for last patch to url-vars.el
+
+       * lisp/url/url-vars.el (url-lastloc-privacy-level): Update
+       defcustom version.
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Use a separate history for the eww prompt
+
+       * lisp/net/eww.el (eww-prompt-history): A separate history
+       variable for the interactive eww prompt.
+       (eww): Use it.
+
+2018-04-13  Michael Albinus  <address@hidden>
+
+       Fix Bug#30246
+
+       * lisp/auth-source.el (auth-source-secrets-search): Do not
+       suppress creation.
+       (auth-source-secrets-create): Implement it.  (Bug#30246)
+
+       * lisp/net/secrets.el (secrets-debug): Set default to nil.
+
+       * test/lisp/auth-source-tests.el (secrets): Require it.
+       (auth-source-test-secrets-create-secret): New test.
+
+2018-04-13  Peder O. Klingenberg  <address@hidden>
+
+       Change gnutls-verify-error to be first-match
+
+       * doc/misc/url.texi (Customization): Describe the new user
+       option url-lastloc-privacy-level.
+
+       * lisp/net/eww.el (eww-render): Set url-current-lastloc to the
+       url we are rendering, to get the referer header right on
+       subsequent requests.
+
+       * lisp/url/url-http.el (url-http--get-referer): New function
+       to determine which referer to send, if any, considering the
+       users privacy settings and the target url we are visiting.
+       (url-http-referer): New variable keeping track of the referer
+       computed by url-http--get-referer
+       (url-http-create-request): Use url-http-referer instead of the
+       optional argument to set up the referer header.  Leave
+       checking of privacy settings to url-http--get-referer.
+       (url-http): Set up url-http-referer by using
+       url-http--get-referer.
+
+       * lisp/url/url-queue.el (url-queue): New struct member
+       context-buffer for keeping track of the context a queued job
+       started from.
+       (url-queue-retrieve): Store the current buffer in the queue
+       object.
+       (url-queue-start-retrieve): Make sure url-retrieve is called
+       in the context of the original buffer, if available.
+
+       * lisp/url/url-util.el (url-domain): New function to determine
+       the domain of a given URL.
+
+       * lisp/url/url-vars.el (url-current-lastloc): New variable to
+       keep track of the desired "last location" (referer header).
+       (url-lastloc-privacy-level): New custom setting for more
+       fine-grained control over how lastloc (referer) is sent to
+       servers (Bug#27012).
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Make #anchors work again in eww
+
+       * lisp/net/eww.el (eww-render): When we have a #link link, then
+       url.el will say that we have a redirect to a non-#link link, so
+       get the anchor before url.el mangles the URL (bug#28441).
+       (eww-display-html): ... and don't get it here, because it's gone
+       by now.
+
+       Test URL: http://www.gnu.org/s/hyperbole/#summary
+
+2018-04-13  Robert Pluim  <address@hidden>
+
+       Doc fix after previous gnutls patch
+
+       * lisp/net/gnutls.el (gnutls-verify-error): Mention that the
+       matching is first-match (bug#29977).
+
+2018-04-13  Robert Pluim  <address@hidden>
+
+       Change gnutls-verify-error to be first-match
+
+       * lisp/net/gnutls.el (gnutls-boot-parameters): Convert to
+       first-match for gnutls-verify-error rather than any-match
+       (bug#29977).
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Mention the new `shr-selected-link' face
+
+       Clean up the double Gnus section
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       When opening external links in eww, blink the link
+
+       * lisp/net/eww.el (eww-follow-link): Ditto.
+
+       * lisp/net/shr.el (shr-selected-link): New face (bug#25096).
+       (shr--blink-link): New function to blink links.
+       (shr--current-link-region): New utility function.
+       (shr-browse-url): Use it to blink external links.
+
+       Blinking the link allows the user to get immediate feedback that the
+       action has been performed.  Opening the external browser may take a
+       while, and may not be obvious that is going on.
+
+2018-04-13  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak nnimap sequence numbers to avoid reuse
+
+       * lisp/gnus/nnimap.el (nnimap-sequence): Start the sequence at a
+       higher number to avoid reusing the sequence number used by
+       `open-network-stream' (bug#30022).
+
+2018-04-13  martin rudalics  <address@hidden>
+
+       * lisp/gnus/gnus-art.el (gnus-article-prepare): Fix previous commit,
+       in which selecting the article window is not necessary (bug#25526).
+
+2018-04-12  Lars Ingebrigtsen  <address@hidden>
+
+       Remove unused local variable
+
+2018-04-12  Lars Ingebrigtsen  <address@hidden>
+
+       Treat 302 redirects as if they were 303 redirects
+
+       * lisp/url/url-http.el (url-http-parse-headers): Treat 302 as 303,
+       since this is what the standards recommend these days (bug#25703).
+       See 
https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection
+
+2018-04-12  Lars Ingebrigtsen  <address@hidden>
+
+       Make eww render <select> elements again
+
+       * lisp/net/eww.el (eww-tag-select): Actually render <select>
+       elements (bug#25703).
+
+2018-04-12  Lars Ingebrigtsen  <address@hidden>
+
+       <label> shouldn't introduce a line break
+
+       * lisp/net/shr.el (shr-tag-label): Remove so that labels don't
+       break lines (because they shouldn't: They're usually part of a
+       selection interface) (bug#30557).
+
+2018-04-12  Katsumi Yamaoka  <address@hidden>
+
+       * lisp/gnus/gnus-art.el (gnus-article-prepare): Make sure the article
+       begins with the top of the header (bug#25526).
+
+2018-04-12  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak the eww readability function
+
+       * lisp/net/eww.el (eww-highest-readability): Require that the
+       readable bit is at least 100 words (bug#30445).
+
+2018-04-12  Lars Ingebrigtsen  <address@hidden>
+
+       (dom-texts): Don't return contents of <script> as text
+
+       From: Lars Ingebrigtsen <address@hidden>
+
+       * lisp/dom.el (dom-texts): Don't return contents of <script> as
+       text, because it isn't and makes reasoning about textual parts
+       more difficult.
+
+2018-04-12  Basil L. Contovounesios  <address@hidden>
+
+       Support list of default values in completing-read-multiple
+
+       * lisp/emacs-lisp/crm.el (completing-read-multiple):
+       Consider head of DEF argument when specified as a list,
+       as per completing-read-default. (bug#30072)
+
+2018-04-12  Jonathan Marten  <address@hidden>  (tiny change)
+
+       From: Lars Ingebrigtsen <address@hidden>
+
+       * lisp/gnus/nnimap.el (nnimap-login): Allow anonymous logins
+       (bug#24704).
+
+2018-04-12  Lars Ingebrigtsen  <address@hidden>
+
+       Default message-forward-as-mime to nil
+
+       * doc/misc/gnus.texi (Summary Mail Commands): Ditto.
+
+       * doc/misc/message.texi (Forwarding): Note the new default.
+
+       * lisp/gnus/message.el (message-forward-as-mime): Default to nil
+       since it's been reported that many recipients can't read MIME
+       digest forwards (bug#24878).
+
+2018-04-12  Lars Ingebrigtsen  <address@hidden>
+
+       Load w3m in Gnus if required
+
+       * lisp/gnus/gnus-art.el (gnus-article-show-images): Ensure that
+       w3m is loaded if the user requests that we use it.
+
+2018-04-12  Tim Landscheidt  <address@hidden>
+
+       Don't autoload function from w3m
+
+       * lisp/gnus/gnus-art.el (w3m-toggle-inline-images): Don't use
+       autoload for packages that may not be installed (bug#25604).
+
+2018-04-12  Oleg Pykhalov  <address@hidden>
+
+       From: Lars Ingebrigtseb <address@hidden>
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-limit-to-score): Allow limit
+       to articles that have a score below the stated number, too
+       (bug#30356).
+
+2018-04-12  Lars Ingebrigtsen  <address@hidden>
+
+       message-forward-as-mime doc clarification
+
+       * lisp/gnus/message.el (message-forward-as-mime): Doc
+       clarification (bug#27714).
+
+2018-04-12  Lars Ingebrigtsen  <address@hidden>
+
+       message-forward-ignored-headers doc clarification
+
+       * lisp/gnus/message.el (message-forward-ignored-headers): Doc
+       clarification (bug#27715).
+
+2018-04-12  Lars Ingebrigtsen  <address@hidden>
+
+       Restore point in summary buffer after sorting
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-sort): Keep point on the
+       current article when sorting (bug#30615).
+
+2018-04-12  Lars Ingebrigtsen  <address@hidden>
+
+       nil is no longer an allowed value for mm-inline-text-html
+
+       * doc/misc/emacs-mime.texi (Display Customization): Remove the doc
+       for the nil case of mm-inline-text-html.
+
+       * doc/misc/mh-e.texi (HTML): Ditto.
+
+       * lisp/gnus/mm-view.el (mm-inline-text-html): If no
+       mm-text-html-renderer is specified, just insert the raw text
+       instead of erroring out (bug#30870).
+
+2018-04-12  Lars Ingebrigtsen  <address@hidden>
+
+       Ensure that non-QRESYNC nnimap can proceed after a QRESYNC fail
+
+       * lisp/gnus/nnimap.el (nnimap-update-info): If we don't have a
+       start-article in the non-QRESYNC case, then the start has to be 1
+       (bug#23241).
+
+2018-04-12  Lars Ingebrigtsen  <address@hidden>
+
+       Make it possible to exit Gnus without saving .newsrc.eld
+
+       * lisp/gnus/gnus-start.el (gnus-save-newsrc-file): Don't error out
+       here so that we can proceed with shutting down Gnus without saving
+       the .newsrc.eld file when it has been updated externally (bug#23761).
+
+2018-04-12  Lars Ingebrigtsen  <address@hidden>
+
+       Make nnml save the .overview file when used as an expiry target
+
+       * lisp/gnus/nnmail.el (nnmail-expiry-target-group): Always pass in
+       the `last' parameter to the acceptance function so that backends
+       like nnml save the .overview file (bug#24499).  This may slow down
+       some use cases.
+
+2018-04-12  Lars Ingebrigtsen  <address@hidden>
+
+       Clarify Gnus doc string
+
+       * lisp/gnus/gnus-cite.el (gnus-article-fill-cited-article):
+       Clarify doc string (bug#24578).
+
+2018-04-12  Lars Ingebrigtsen  <address@hidden>
+
+       Elide XEmacs-relevant comment
+
+       * lisp/gnus/gnus-cite.el (gnus-article-fill-cited-article): Remove
+       mention of XEmacs, since we no longer support XEmacs.
+
+2018-04-12  Lars Ingebrigtsen  <address@hidden>
+
+       Make message-simplify-recipients obsolete
+
+       * lisp/gnus/message.el (message-simplify-recipients)
+       (message-recipients-without-full-name): Made obsolete since
+       Message now simplifies all addresses by default.
+
+2018-04-12  Lars Ingebrigtsen  <address@hidden>
+
+       Remove repetitions from recipient addresses in Message
+
+       * lisp/gnus/message.el (message--alter-repeat-address): New function.
+       (message-get-reply-headers): Use it to remove repetitions on the
+       form "address@hidden" <address@hidden>.
+
+2018-04-11  Damien Cassou  <address@hidden>
+
+       * etc/NEWS: Fix entry regarding automatic encryption of (Bug#31124) 
messages
+
+2018-04-11  Shanavas M  <address@hidden>
+
+       Add tests for buffer-base-buffer function (Bug#30905)
+
+       * test/src/buffer-tests.el (test-buffer-base-buffer-indirect)
+       (test-buffer-base-buffer-non-indirect): New tests for
+       `buffer-base-buffer'.
+
+2018-04-11  Paul Eggert  <address@hidden>
+
+       make-dist: fix bug with top-level ChangeLog
+
+       Problem reported by Glenn Morris in:
+       https://lists.gnu.org/r/emacs-devel/2018-04/msg00307.html
+       * make-dist (top_level_ChangeLog): New var.  Use it to link
+       top-level ChangeLog only when desired.
+
+2018-04-11  Alain Schneble  <address@hidden>
+
+       Support port number in Gnus X-Message-SMTP-Method header
+
+       * lisp/gnus/message.el (message-multi-smtp-send-mail): Try to parse
+       service as port number.  If it succeeds, use parsed number, else use
+       supplied service name as before (bug#24653).  (This only matters
+       on some operating systems.)
+
+2018-04-11  Daniel Dehennin  <address@hidden>
+
+       Gnus Group Mail Spliting on mailing-list headers
+
+       * doc/misc/gnus.texi: Document the new `list' split abbreviation and
+       `match-list' group parameter (bug#25346).
+
+       * lisp/gnus/gnus-mlspl.el: Use the `list' abbreviation when the new
+       `match-list' group parameter is set to `t'.
+       The split regexp is modified to match either `@` or `.` as domain
+       separator to comply with RFC2919 IDs too.
+
+       * lisp/nnmail.el: Add new `list' split abbreviation matching common
+       mailing-list headers.
+
+2018-04-11  Lars Ingebrigtsen  <address@hidden>
+
+       Tweak previous patch to respect quiet next group selection again
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-next-article): Tweak
+       previous patch to be quieter if the user has requested `quietly'
+       next group selection.
+
+2018-04-11  Lars Ingebrigtsen  <address@hidden>
+
+       Display "No more ... articles" on `n' in Gnus
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-next-article): Display the
+       "No more"... messages if gnus-auto-select-next is nil and the user
+       has default messaging levels (bug#25582).
+
+2018-04-11  Łukasz Stelmach  <address@hidden>  (tiny change)
+
+       Rung new-news-hook from `M-g' in the Gnus summary buffer
+
+       * lisp/gnus/gnus-group.el (gnus-group-get-new-news-this-group):
+       Run `gnus-after-getting-new-news-hook' when doing `M-g' in the
+       summary buffer, too (bug#25892).  This makes `M-g' in both group
+       and summary buffers work more similar.
+
+2018-04-11  Noam Postavsky  <address@hidden>
+
+       Give better errors in signing failures in Gnus
+
+       * lisp/gnus/mml1991.el (mml1991-epg-sign): Give better error
+       messages when signing fails (bug#26298).
+
+       * lisp/gnus/mml2015.el (mml2015-epg-sign): Ditto.
+
+2018-04-11  Lars Ingebrigtsen  <address@hidden>
+
+       Remove the Gmane backend from nnir
+
+       * lisp/gnus/nnir.el (nnir-engines): Remove Gmane backend, which no
+       longer exists.
+       (nnir-method-default-engines): Ditto.
+       (nnir-run-gmane): Removed function (bug#28234).
+
+2018-04-11  Basil L. Contovounesios  <address@hidden>
+
+       Heed switch-function argument in gnus-user-agent
+
+       * lisp/gnus/gnus-msg.el (gnus-msg-mail): Heed switch-action argument
+       when falling back to message-user-agent because Gnus is not
+       running (bug#28992).
+
+2018-04-11  Lars Ingebrigtsen  <address@hidden>
+
+       Always rescale images in gnus-rescale-image
+
+       * lisp/gnus/gnus-util.el (gnus-rescale-image): Rescale images even
+       if we don't have a visible article buffer.  Reported and fix
+       suggested by Kevin Brubeck Unhammer.
+
+2018-04-11  Michael Albinus  <address@hidden>
+
+       Some minor Tramp changes
+
+       * lisp/net/tramp-sh.el (tramp-get-ls-command-with):
+       New defun, replacing ...
+       (tramp-get-ls-command-with-dired)
+       (tramp-get-ls-command-with-quoting-style)
+       (tramp-get-ls-command-with-w-option): Removed.
+       (tramp-do-file-attributes-with-ls)
+       (tramp-do-directory-files-and-attributes-with-stat)
+       (tramp-sh-handle-insert-directory): Adapt callees.
+
+       * lisp/net/tramp-smb.el (tramp-smb-errors):
+       Add "NT_STATUS_CONNECTION_RESET".
+
+2018-04-11  Lars Ingebrigtsen  <address@hidden>
+
+       Don't kill off LibreOffice when selecting the next article in Gnus
+
+       * lisp/gnus/mm-decode.el (mm-keep-viewer-alive-types): Add the
+       media types that LibreOffice uses to the list, since we don't want
+       to kill off LibreOffice willy-nilly.
+
+2018-04-11  Lars Ingebrigtsen  <address@hidden>
+
+       Doc fix for mm-keep-viewer-alive-types
+
+       * lisp/gnus/mm-decode.el (mm-keep-viewer-alive-types): Clarify doc
+       string.
+
+2018-04-10  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       c267421 (tag: emacs-26.1-rc1, origin/emacs-26) ; * ChangeLog.3: Update.
+       aa77415 * etc/AUTHORS: Regenerate.
+       c8ffca5 * lisp/files.el (kept-new-versions): Improve documentation st...
+       3a798f6 Fix a minor mistake in the ELisp manual
+       6afa868 ; * src/dispextern.h (struct it): Fix a typo in a comment.
+       5659b2f * lisp/files.el (find-file-literally): Doc fix.
+       9b24a79 Fix typos in doc strings
+
+2018-04-10  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       f674c89 ; * ChangeLog.3: Update.
+       80d868e * lisp/emacs-lisp/inline.el: Clarify apparent typos
+       9f54f28 ; * lisp/auth-source.el (auth-sources): Update the :version tag.
+
+2018-04-09  Paul Eggert  <address@hidden>
+
+       make-dist: check exit statuses more carefully
+
+       * make-dist: Do a better job checking for subprocess failure.
+
+2018-04-08  Tino Calancha  <address@hidden>
+
+       Preserve case in query-replace undo
+
+       If the user query and replaces 'foo' with 'BAR', then
+       undo must comeback to 'foo', not to 'FOO' (Bug#31073).
+       * lisp/replace.el (perform-replace): Bind nocasify to non-nil
+       value during undo/undo-all actions.
+       * test/lisp/replace-tests.el (query-replace-undo-bug31073): Add test.
+
+2018-04-08  Michael Albinus  <address@hidden>
+
+       * lisp/auth-source.el (auth-source-secrets-search): Fix docstring.
+
+2018-04-08  nitishch  <address@hidden>  (tiny change)
+
+       Fix python-shell-send-defun at start of buffer (Bug#30822)
+
+       * lisp/progmodes/python.el (python-shell-send-defun): Handle the case
+       when we hit the beginning of buffer.
+
+2018-04-07  Philipp Stephani  <address@hidden>
+
+       Document that 'make-process' mixes the output streams
+
+       * doc/lispref/processes.texi (Asynchronous Processes):
+       * src/process.c (Fmake_process): Document that standard error is mixed
+       with standard output if STDERR is nil.
+
+       * test/src/process-tests.el (make-process/mix-stderr): New unit test.
+
+2018-04-07  Stefan Monnier  <address@hidden>
+
+       * lisp/simple.el (undo-auto--undoable-change): Avoid leak
+
+2018-04-07  Marco Wahl  <address@hidden>
+
+       Fix goto page from page directory (Bug#28909)
+
+       * lisp/textmodes/page-ext.el (pages-directory-goto): Use the
+       interactive spec as in `occur-mode-goto-occurrence'.
+
+2018-04-07  Michal Nazarewicz  <address@hidden>
+
+       Handle quotation marks and apostrophes in ‘sgml-quote’
+
+       To be able to use text in an HTML argument, quotation marks need
+       to be replaced with an appropriate character reference.  Make
+       ‘sgml-quote’ do that.
+
+       While at it, fix entiteis not being unquoted if they lack closing
+       semicolon (e.g. ‘&amp’) occuring at the very end of a region.
+       Even though unlikely, make ‘sgml-quote’ handle this scenario.
+
+       * lisp/textmodes/sgml-mode.el (sgml-quote): Handle quotation marks and
+       apostrophes.  Match entities lacking semicolon at the end of regions.
+       * test/lisp/textmodes/sgml-mode-tests.el (sgml-quote-works): New test
+       case for ‘sgml-quote’ function.
+
+2018-04-06  Michael Albinus  <address@hidden>
+
+       Make dbus.el fitter for Emacs configured --without-dbus
+
+       * lisp/net/dbus.el (dbus-error, dbus-debug): Define if not exist.
+
+       * test/lisp/net/secrets-tests.el: Revert 51c8369fa2 and 79a3ad9592.
+
+2018-04-05  Tino Calancha  <address@hidden>
+
+       Require secrets.el iif Emacs has dbusbind support
+
+       * test/lisp/net/secrets-tests.el: Require secrets.el if
+       and only if, Emacs has been compiled with dbusbind support.
+
+2018-04-05  Tino Calancha  <address@hidden>
+
+       Run secrets suite test when Emacs has dbus support
+
+       * test/lisp/net/secrets-tests.el (secrets-test00-availability)
+       (secrets-test01-sessions, secrets-test02-collections)
+       (secrets-test03-items, secrets-test04-search): Skip test
+       unless Emacs is compiled with dbus support.
+
+2018-04-05  Michael Albinus  <address@hidden>
+
+       Add tests for secrets.el
+
+       * lisp/net/secrets.el (secrets-lock-collection): New defun.
+       (secrets-search-items, secrets-create-item): Fix structure of 
:dict-entry.
+
+       * test/lisp/net/secrets-tests.el: New package.
+
+2018-04-05  Glenn Morris  <address@hidden>
+
+       * test/lisp/gnus/message-tests.el (message-all-epg-keys-available-p):
+       Add skip condition.
+
+2018-04-04  Tino Calancha  <address@hidden>
+
+       Honor dired-create-destination-dirs if copying/renaming >1 files
+
+       Check `dired-create-destination-dirs' when the user wants to
+       copy/rename several files.
+       * lisp/dired-aux.el (dired-do-create-files):
+       Call `dired-maybe-create-dirs' right before bind `into-dir' (Bug#30624).
+       * test/lisp/dired-aux-tests.el (dired-test-bug30624): Add test.
+
+2018-04-04  Paul Eggert  <address@hidden>
+
+       Move password-word-equivalents defn to mule-conf
+
+       * lisp/international/mule-conf.el (password-word-equivalents):
+       Move here ...
+       * lisp/simple.el (password-word-equivalents): ... from here.
+       This variable belongs in an i18n file somewhere, not in simple.el,
+       since it’s i18n-related.  Also, having it in simple.el tickles
+       Emacs performance bugs on some platforms when developers visit
+       simple.el.  Problem reported by Drew Adams in, for example:
+       https://lists.gnu.org/r/emacs-devel/2018-04/msg00124.html
+
+2018-04-04  Juri Linkov  <address@hidden>
+
+       * lisp/isearch.el (isearch-pre-command-hook): Default to 
shift-translated
+
+       move commands that can be enabled by the `isearch-move' property 
`enabled',
+       and disabled by `disabled'.
+       (search-exit-option): Doc fix.
+       (isearch-post-command-hook): Check for isearch-forward.
+       https://lists.gnu.org/archive/html/emacs-devel/2018-03/msg00438.html
+
+2018-04-04  Juri Linkov  <address@hidden>
+
+       * lisp/shell.el (shell-mode): Check if buffer has a live process.
+
+       (Bug#31028)
+
+2018-04-04  Damien Cassou  <address@hidden>
+
+       Detect if a message can be encrypted and add an MML tag
+
+       * lisp/gnus/message.el (message-all-recipients): Return a list of
+       pairs, one for each recipient in To, Cc, Bcc.
+       (message-all-epg-keys-available-p): Check that there is a public key
+       in epg for each recipient of the current message.
+       (message-sign-encrypt-if-all-keys-available): Add MML tag to sign and
+       encrypt current message if there is a public key for every recipient
+       in current message.
+
+       * test/lisp/gnus/message-tests.el (message-all-recipients): Test for
+       message-all-recipients.
+
+2018-04-04  Ted Zlatanov  <address@hidden>
+
+       * lisp/auth-source.el (auth-sources): Allow sexp customization type
+
+2018-04-04  Paul Eggert  <address@hidden>
+
+       Improve GC+Cairo workaround
+
+       Suggested by Eli Zaretskii (Bug#20890#31).
+       * src/font.h (font_data_structures_may_be_ill_formed): New function.
+       * src/ftfont.c (ftfont_close):
+       * src/ftcrfont.c (ftcrfont_close): Use it.
+
+2018-04-04  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       3109d2b (origin/emacs-26) ; * lisp/ldefs-boot.el: Update.
+       86825c4 * etc/NEWS: Remove temporary markup.
+       737d0a2 * Update etc/AUTHORS
+       fbd03ba * ChangeLog.3: Update
+       56794ac Fix Bug#31022
+       a231c33 Update "Calendrical Calculations" cites
+       1527235 ; * doc/lispref/compile.texi (Compilation Functions): Fix wor...
+       b07decd ; * doc/lispref/compile.texi (Compilation Functions): Fix typo
+       a64c11a Fix term.el rendering following a window resize (Bug#30544)
+       1e6f09a * files.el (auto-save-visited-mode): Don't prompt for filenames.
+       eb8b13f ; * etc/NEWS: Improve the entry about pinentry.el removal.
+       52501ec Quote a few backticks in docstrings.
+
+       Conflicts:
+               etc/NEWS
+               lisp/ldefs-boot.el
+
+2018-04-03  Martin Rudalics  <address@hidden>
+
+       * etc/NEWS: Mention that output of 'help-for-help' is searchable now
+
+2018-04-03  Stefan Monnier  <address@hidden>
+
+       * lisp/vc/emerge.el: Use lexical-binding
+
+       Replace all `(lambda ...) with closures.  Use inhibit-read-only.
+       (emerge-mode): Use define-minor-mode.
+       (emerge-setup, emerge-setup-with-ancestor):
+       Don't use 'run-hooks' on local var.
+       (emerge-files, emerge-files-with-ancestor):
+       Don't use 'add-hook' on local var.
+       (emerge-convert-diffs-to-markers): Remove unused var 'B-point-min'.
+       Simplify 'offset'.
+       (emerge--current-beg, emerge--current-end): New macros.
+       (emerge-select-version): Pass 'diff-vector' to the function it calls.
+       Change all callers to use it instead of dyn-bound vars.
+
+2018-04-03  Paul Eggert  <address@hidden>
+
+       Pacify GCC when --enable-profiling
+
+       * src/conf_post.h (PROFILING): Undef if not on a platform that
+       supports it.  Simplify uses accordingly.
+       * src/emacs.c (etext) [PROFILING]:
+       Declare at top level to avoid GCC warning.
+
+2018-04-03  Alan Mackenzie  <address@hidden>
+
+       Put combine-change-calls around comment-region and uncomment-region
+
+       * lisp/newcomment.el (comment-combine-change-calls): New buffer local
+       variable.
+       (uncomment-region-default-1, comment-region-default-1): Functions 
renamed from
+       uncomment-region-default and comment-region-default.
+       (uncomment-region-default, comment-region-default): New functions, 
which call
+       the above either enclosed in combine-change-calls or not.
+
+2018-04-03  Alan Mackenzie  <address@hidden>
+
+       Introduce new macro combine-change-calls
+
+       This macro is a bit like combine-after-change-calls, but also works 
with a
+       non-null before-change-functions.  It suppresses the operation of the 
change
+       hooks on a possibly large sequence of buffer modifications, replacing 
them
+       with a single invocation of before-change-functions at the start, and a 
single
+       invocation of after-change-functions at the end.
+
+       * lisp/subr.el (undo--combining-change-calls): New variable.
+       (combine-change-calls-1, undo--wrap-and-run-primitive-undo): New 
functions.
+       (combine-change-calls): New macro.
+
+       * doc/lispref/text.texi (Change Hooks): Document combine-change-calls.
+
+       * etc/NEWS: Add an entry under "Lisp Changes" for combine-change-calls.
+
+2018-04-03  Paul Eggert  <address@hidden>
+
+       Work around GC+Cairo bug
+
+       Workaround suggested by Robert Pluim (Bug#20890#13).
+       * src/ftfont.c (ftfont_close) [USE_CAIRO]:
+       Do nothing if GC is in progress.
+
+2018-04-03  Paul Eggert  <address@hidden>
+
+       Port FC_COLOR change to older fontconfig
+
+       Problem reported by John ff in:
+       https://lists.gnu.org/r/emacs-devel/2018-04/msg00058.html
+       * src/ftfont.c (ftfont_spec_pattern) [!FC_COLOR]:
+       Don’t use FC_COLOR on older fontconfigs that don’t have it.
+
+2018-04-03  Robert Pluim  <address@hidden>
+
+       Ignore color fonts when using Xft
+
+       * src/font.c (syms_of_font): New configuration variable
+       xft-ignore-color-fonts, default t.
+       * src/ftfont.c (ftfont_spec_pattern): Tell fontconfig to ignore
+       color fonts if xft-ignore-color-fonts is t.  (Bug#30874, Bug#30045)
+       * etc/NEWS: Document xft-ignore-color-fonts.
+
+2018-04-03  Eli Zaretskii  <address@hidden>
+
+       Document custom-variable-history
+
+       * etc/NEWS:
+       * doc/lispref/minibuf.texi (Minibuffer History): Document
+       'custom-variable-history'.
+
+2018-04-02  Alan Mackenzie  <address@hidden>
+
+       * lisp/progmodes/cc-defs.el:
+       * lisp/progmodes/cc-engine.el:
+       * lisp/progmodes/cc-langs.el:
+       * lisp/progmodes/cc-vars.el: Comment the use of "a\\`"
+
+2018-04-02  Paul Eggert  <address@hidden>
+
+       Clarify eq on floats
+
+       * doc/lispref/objects.texi (Equality Predicates):
+       Say that two floats with the same values might or might not be eq.
+
+2018-04-02  Gemini Lasswell  <address@hidden>
+
+       Fix Testcover bug in handling of vectors containing dotted lists
+
+       * lisp/emacs-lisp/testcover.el (testcover-analyze-coverage-compose):
+       Handle dotted lists. Fix bug#30909.
+       * test/lisp/emacs-lisp/testcover-resources/testcases.el:
+       (dotted-list-in-vector-bug-30909): New test case.
+       (quotes-within-backquotes-bug-25316, dotted-backquote)
+       (quoted-backquote, backquoted-vector-bug-25316)
+       (vector-in-macro-spec-bug, backquoted-dotted-alist): Change
+       docstrings to mention analyzing code instead of reinstrumenting
+       it.
+
+2018-04-02  Charles A. Roelli  <address@hidden>
+
+       Add a history variable for `read-variable'
+
+       * src/minibuf.c (Fread_variable): Use the history variable when
+       calling Fcompleting_read.
+       (syms_of_minibuf): New history variable, custom-variable-history.
+
+2018-04-02  Alan Mackenzie  <address@hidden>
+
+       Optimize c-syntactic-skip-backward, c-determine-limit for large comment 
blocks
+
+       * lisp/progmodes/cc-engine.el (c-ssb-lit-begin): Remove.
+       (c-syntactic-skip-backward): Remove the surrounding 
c-self-bind-state-cache.
+       Use the standard function c-literal-start in place of the special 
purpose
+       c-ssb-lit-begin.  With a suitable skip-chars argument (the usual case),
+       optimize by invoking c-backward-syntactic-ws to move back over comment 
blocks.
+       (c-determine-limit-get-base): Inovke an early c-backward-syntactic-ws.
+       (c-determine-limit): Use c-forward-comment whilst moving forward.  Cope 
with
+       an empty position stack whilst looking for non-literals (bug fix).  In 
the
+       recursive call, double try-size to prevent Lisp stack overflow.
+
+2018-04-02  Simona Arizanova  <address@hidden>  (tiny change)
+
+       Make help-for-help window searchable (Bug#19655)
+
+       * lisp/help.el (help-map): Map C-s to new function
+       search-forward-help-for-help.
+       (help-for-help-internal): In doc-string add entry for C-s.
+       (search-forward-help-for-help): New function.
+
+2018-04-01  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/debug.el (debug): Don't hang upon error in 
initial-frame.
+
+2018-04-01  Paul Eggert  <address@hidden>
+
+       Further improve advice in make-tarball.txt
+
+       See comments by Glenn Morris in:
+       https://lists.gnu.org/r/emacs-devel/2018-03/msg00968.html
+       * admin/make-tarball.txt: Bring back refcard advice.
+
+2018-04-01  Paul Eggert  <address@hidden>
+
+       Port make-dist to tar 1.27 and earlier
+
+       Problem reported by Glenn Morris in:
+       https://lists.gnu.org/r/emacs-devel/2018-03/msg00984.html
+       * make-dist: Use --sort=name only if Tar supports it.
+
+2018-04-01  Glenn Morris  <address@hidden>
+
+       * lisp/nxml/nxml-mode.el (nxml-sexp-element-flag): Set :version.
+
+2018-04-01  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       af1624f * lisp/net/shr.el (shr-browse-url): Doc fix.  (Bug#30957)
+       3a451bd ; * doc/emacs/msdos.texi: Fix wording of last change.
+       3bc1e2f Mention `key-description' as inverse of `kbd' (Bug#30942)
+       e50196e Document return value of pcase (Bug#30425)
+       8a2466f * doc/emacs/macos.texi: Tweak grammar and capitalization.
+       9db62bf Distinguish free from non-free OSes
+       ff49d86 * doc/emacs/misc.texi (Amusements): Avoid non-printing charac...
+       5bab671 Fix xrefs in pdf Emacs manual
+
+2018-04-01  Eli Zaretskii  <address@hidden>
+
+       Followup to last change
+
+       * etc/NEWS: Mark nxml-sexp-element-flag entry as not needing
+       documentation updates.
+
+       * lisp/nxml/nxml-mode.el (nxml-mode, nxml-forward-balanced-item):
+       Doc fixes.
+
+2018-04-01  Jostein Kjønigsen  <address@hidden>
+
+       Change the default value of nxml-sexp-element-flag.
+
+       * lisp/nxml/nxml-mode.el (nxml-sexp-element-flag): Default value
+       is now t.
+
+2018-04-01  Eli Zaretskii  <address@hidden>
+
+       Minor copyedits of completion-at-point-functions documentation
+
+       * lisp/minibuffer.el (completion-at-point-functions):
+       * doc/lispref/minibuf.texi (Completion in Buffers): Fix wording
+       and filling.
+
+2018-03-31  Eli Zaretskii  <address@hidden>
+
+       Support more separators in rmail-retry-failure
+
+       * lisp/mail/rmail.el (mail-unsent-separator): Add a form of
+       separator that confused rmail-retry-failure due to additional
+       lines that start with a series of dashes.  (Bug#30965)
+
+2018-03-30  Paul Eggert  <address@hidden>
+
+       Improve doc for web pages; reproducible tarballs
+
+       * admin/make-tarball.txt: Make the tarballs more reproducible.
+       Fix instructions for web pages as best I can (they are still
+       incomplete).
+       * make-dist (default_gzip): Add --no-name for gzip.
+       (taropt): Add options to make the build more reproducible.
+
+2018-03-30  Paul Eggert  <address@hidden>
+
+       Do not assume --with-file-notification
+
+       * src/fileio.c (report_file_notify_error) [!USE_FILE_NOTIFY]: Omit.
+
+2018-03-30  Paul Eggert  <address@hidden>
+
+       Centralize Bug#30931 fix
+
+       * src/marker.c (detach_marker): New function.
+       * src/editfns.c (save_restriction_restore):
+       * src/insdel.c (signal_before_change): Use it.
+
+2018-03-30  Noam Postavsky  <address@hidden>
+
+       Fix another case of freed markers in the undo-list (Bug#30931)
+
+       * src/alloc.c (free_marker): Remove.
+       * src/editfns.c (save_restriction_restore):
+       * src/insdel.c (signal_before_change): Detach the markers from the
+       buffer when we're done with them instead of calling free_marker on
+       them.
+       * test/src/editfns-tests.el (delete-region-undo-markers-1)
+       (delete-region-undo-markers-2): New tests.
+
+2018-03-30  Eli Zaretskii  <address@hidden>
+
+       Add Capital sharp s to 2 more Latin input methods
+
+       * lisp/leim/quail/latin-pre.el ("latin-prefix"):
+       * lisp/leim/quail/latin-post.el ("latin-postfix"): Support Capital
+       sharp s.  (Bug#30988)
+
+2018-03-30  Eli Zaretskii  <address@hidden>
+
+       Fix C-p and C-n when wrap-prefix is too wide
+
+       * src/xdisp.c (move_it_in_display_line_to): Avoid looping in
+       previous/next-line when wrap-prefix is set to a too-wide
+       stretch of whitespace.  (Bug#30432)
+
+2018-03-30  Alan Third  <address@hidden>
+
+       Simplify represented filename handling (bug#30800)
+
+       * src/nsfns.m (ns_set_represented_filename): Move function from
+       nsterm.m and set represented filename directly.
+       * src/nsterm.h (ns_set_represented_filename): Remove definition.
+       * src/nsterm.m (ns_set_represented_filename): Move function to
+       nsfns.m.
+       (x_free_frame_resources): Remove references to represented_frame.
+       (sendEvent): Don't set represented filename.
+
+2018-03-30  Michael Albinus  <address@hidden>
+
+       Improve Tramp test performance
+
+       * lisp/net/tramp.el (tramp-backtrace): Improve performance.
+
+       * test/lisp/net/tramp-tests.el (tramp-test03-file-name-host-rules):
+       Skip for older Emacsen.
+       (tramp-test39-utf8): Remove instrumentation.
+
+2018-03-29  Paul Eggert  <address@hidden>
+
+       Fix CHECK_ALLOCATED_AND_LIVE abort during GC
+
+       * src/editfns.c (save_restriction_restore):
+       Wait for the GC to free the temporary markers (Bug#30931).
+
+2018-03-29  Paul Eggert  <address@hidden>
+
+       Prefer \... to control chars in .el literals
+
+2018-03-29  Noam Postavsky  <address@hidden>
+
+       * src/xterm.c (x_make_frame_visible): Fix typo in previous change.
+
+2018-03-29  Noam Postavsky  <address@hidden>
+
+       Don't wait for visible frames to become visible
+
+       For discussion, see thread starting at
+       https://lists.gnu.org/archive/html/emacs-devel/2018-03/msg00807.html.
+       * src/xterm.c (x_make_frame_visible): Check FRAME_VISIBLE_P before
+       calling x_wait_for_event.
+
+2018-03-29  Paul Eggert  <address@hidden>
+
+       New experimental variable read-integer-overflow-as-float.
+
+       Following a suggestion by Eli Zaretskii (Bug#30408#46).
+       * etc/NEWS: Mention it.
+       * src/lread.c (syms_of_lread): Add it.
+       (read1): Treat out-of-range integers as floats if
+       read-integer-overflow-as-float is non-nil.
+
+2018-03-29  Paul Eggert  <address@hidden>
+
+       Lisp reader now checks for integer overflow
+
+       * doc/lispref/numbers.texi (Integer Basics), etc/NEWS:
+       Document this.
+       * src/lisp.h (S2N_IGNORE_TRAILING, S2N_OVERFLOW_TO_FLOAT):
+       New constants.
+       * src/lread.c (string_to_number): Change trailing bool arg to
+       integer argument with flags, to support S2N_OVERFLOW_TO_FLOAT.
+       All uses changed.
+       * test/src/editfns-tests.el (read-large-integer): New test.
+
+2018-03-29  Eli Zaretskii  <address@hidden>
+
+       Support Capital sharp S in German input methods
+
+       * lisp/leim/quail/latin-post.el ("german-postfix"):
+       * lisp/leim/quail/latin-pre.el ("german-prefix"): Add Capital
+       sharp S.  (Bug#30988)
+
+       * etc/NEWS: Mention the support of Capital sharp S.
+
+2018-03-29  Michael Albinus  <address@hidden>
+
+       Fix Bug#30946
+
+       * doc/misc/tramp.texi (Multi-hops): Mention host name checks.
+
+       * lisp/net/tramp.el (tramp-set-syntax, tramp-dissect-file-name)
+       (tramp-debug-message, tramp-handle-shell-command):
+       * lisp/net/tramp-adb.el (tramp-adb-handle-shell-command):
+       * lisp/net/tramp-archive.el (tramp-archive-file-name-handler)
+       (tramp-archive-dissect-file-name):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler): Adapt callees.
+
+       * lisp/net/tramp-compat.el (tramp-compat-user-error): Move defsubst ---
+
+       * lisp/net/tramp-sh.el (tramp-compute-multi-hops): Check for proper
+       host names in multi-hop.  (Bug#30946)
+
+       * lisp/net/tramp.el (tramp-user-error): ... here.  Make it a defun.
+
+       * test/lisp/net/tramp-tests.el (tramp-test03-file-name-host-rules):
+       New test.
+
+2018-03-29  Stefan Monnier  <address@hidden>
+
+       * src/keyboard.c (record_char, read_key_sequence): Copy raw events
+
+2018-03-28  Paul Eggert  <address@hidden>
+
+       Test notify handlers only if file notification
+
+       * test/lisp/files-tests.el:
+       (files-file-name-non-special-notify-handlers):
+       Skip if file notification is not available.
+
+2018-03-28  Paul Eggert  <address@hidden>
+
+       Port recent org-clock fix to POSIX time_t
+
+       * lisp/org/org-clock.el (org-clock-special-range):
+       Don't assume support for time_t values less than 0, or less than
+       -2**31 for that matter (Bug#27736).
+
+2018-03-28  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2018-03-28 time_rz: fix workaround for Mac OS X 10.6 infloop
+       * m4/time_rz.m4: Copy from Gnulib.
+
+2018-03-28  Alan Mackenzie  <address@hidden>
+
+       Handle C++17's constexpr keyword in if statements
+
+       * lisp/progmodes/cc-engine.el (c-after-conditional): Test for matches to
+       c-block-stmt-hangon-key.
+
+       * lisp/progmodes/cc-langs.el (c-block-stmt-hangon-kwds): New lang const.
+       (c-block-stmt-hangon-key): New lang const/var matching any element of 
the
+       above.
+
+2018-03-28  Alan Mackenzie  <address@hidden>
+
+       Replace faulty non-matching regexp "\\<\\>" with "a\\`"
+
+       The regexp "\\<\\>", which is supposed never to match, actually 
matches, for
+       instance, where a Chinese character is directly followed by an ASCII 
letter.
+       So, replace it with "a\\`".
+
+       * lisp/progmodes/cc-defs.el (cc-fix, c-make-keywords-re)
+       * lisp/progmodes/cc-engine.el (c-beginning-of-statement-1)
+       (c-forward-<>-arglist-recur, c-forward-decl-or-cast-1)
+       (c-looking-at-decl-block)
+       * lisp/progmodes/cc-langs.el (c-assignment-op-regexp)
+       (c-block-comment-ender-regexp, c-block-comment-start-regexp)
+       (c-line-comment-start-regexp, c-doc-comment-start-regexp)
+       (c-decl-start-colon-kwd-re, c-type-decl-prefix-key)
+       (c-type-decl-operator-prefix-key, c-pre-id-bracelist-key)
+       (c-enum-clause-introduction-re, c-nonlabel-token-2-key)
+       * lisp/progmodes/cc-vars.el (c-noise-macro-with-parens-name-re)
+       (c-make-noise-macro-regexps):
+       Replace "\\<\\>" by "a\\`".
+
+2018-03-28  Michael Albinus  <address@hidden>
+
+       Remove unstable tags in Tramp
+
+       * test/lisp/net/tramp-tests.el (tramp-test39-utf8)
+       (tramp-test39-utf8-with-stat, tramp-test39-utf8-with-perl)
+       (tramp-test39-utf8-with-ls): Remove :unstable tag.
+
+2018-03-28  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       9bff405 (origin/emacs-26) * doc/misc/org.texi (Installation): Fix clo...
+       613c9a5 Update Org to v9.1.9
+       1b075a9 ; Fix some tiny doc typos
+       441fe20 De-obsolete `if-let' and `when-let'
+       8696038 * lisp/htmlfontify.el (hfy-begin-span-handler): Doc fix.
+       930f7b1 * doc/lispref/functions.texi (Defining Functions): Improve in...
+       95ccf50 Fix crash after frame is freed on macOS (bug#30800)
+       45d0475 More manual editing
+       2acb9f0 Minor manual changes changes
+       d481cba * lisp/calculator.el (calculator-paste-decimals): Add version.
+       7d6c7d0 ; Use GNU not Gnu in docs
+       1bc4def More proofreading of the Emacs manual
+
+       Conflicts:
+               doc/misc/org.texi
+               etc/NEWS
+               lisp/org/org-clock.el
+
+2018-03-28  Michael Albinus  <address@hidden>
+
+       Improve tramp--test-utf8
+
+       * test/lisp/net/tramp-tests.el (tramp--test-check-files):
+       Encode string when testing environment variables.
+       (tramp--test-utf8): Remove "TaiViet" test.
+
+2018-03-28  Phillip Lord  <address@hidden>
+
+       Reduce parallelism to Windows build
+
+       * admin/nt/dist-build/build-zips.sh: Reduce make parallelism to 2.
+
+2018-03-27  Paul Eggert  <address@hidden>
+
+       Avoid using unportable integer in org-clock
+
+       * lisp/org/org-clock.el (org-clock--oldest-date): Avoid use of an
+       integer outside portable Emacs range.  Go back to using a simple
+       check, since decode-time should no longer infloop.
+
+2018-03-27  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This incorporates:
+       2018-03-26 time_rz: work around Mac OS X 10.6 infloop
+       2018-03-20 euidaccess: Port to native Windows.
+       * lib/euidaccess.c, lib/time_rz.c, m4/time_rz.m4: Copy from Gnulib.
+
+2018-03-27  Stefan Monnier  <address@hidden>
+
+       (benchmark-run-compiled): Make it work like 'benchmark-run' again
+
+       * lisp/emacs-lisp/benchmark.el (benchmark-run): Add special case for
+       nil repetitions.
+
+2018-03-27  Stefan Monnier  <address@hidden>
+
+       (completion-at-point-functions): Improve doc
+
+2018-03-27  Stefan Monnier  <address@hidden>
+
+       (read_key_sewuence): Use POSN in second event when needed (bug#30955)
+
+       * src/keyboard.c (active_maps): Add arg 'second_event'.
+       (read_key_sequence): Pass it.
+
+       * lisp/mouse.el (mouse--click-1-maybe-follows-link): Modify event in 
place.
+
+2018-03-27  Stefan Monnier  <address@hidden>
+
+       * lisp/mouse.el: Remove redundant ':group's.
+
+2018-03-26  Glenn Morris  <address@hidden>
+
+       * test/lisp/emacs-lisp/bytecomp-tests.el
+       (bytecomp-test-featurep-warnings): New.
+
+2018-03-26  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/benchmark.el (benchmark-run): Allow variable.
+
+       (benchmark-run): Allow `repetitions` to be a variable rather than a 
constant.
+
+2018-03-26  Paul Eggert  <address@hidden>
+
+       Fix constant folding of overflows
+
+       This suppresses some byte-code optimizations that were invalid in
+       the presence of integer overflows, because they meant that .elc
+       files assumed the runtime behavior of the compiling platform, as
+       opposed to the runtime platform.  Problem reported by Pip Cet in:
+       https://lists.gnu.org/r/emacs-devel/2018-03/msg00753.html
+       * lisp/emacs-lisp/byte-opt.el (byte-opt--portable-max)
+       (byte-opt--portable-min): New constants.
+       (byte-opt--portable-numberp, byte-opt--arith-reduce)
+       (byte-optimize-1+, byte-optimize-1-): New functions.
+       (byte-optimize-plus, byte-optimize-minus, byte-optimize-multiply)
+       (byte-optimize-divide): Avoid invalid optimizations.
+       (1+, 1-): Use new optimizers.
+       (byte-optimize-or, byte-optimize-cond): Simplify by using
+       remq instead of delq and copy-sequence.
+
+2018-03-26  Stefan Monnier  <address@hidden>
+
+       Trivial fixes for last changes to package.el and marker.c
+
+       * lisp/emacs-lisp/package.el (package-quickstart): Add missing version.
+       * src/marker.c (verify_bytepos): Fix typo.
+
+2018-03-26  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/package.el: New quickstart feature
+
+       (package--quickstart-pkgs): New var.
+       (package-activate-1): Obey and fill it.
+       (package-activate-all): New function.
+       (package-initialize): Call it.
+       Set package-initialized before activating the packages.
+       (package-installed-p): Make it work before package.el is initialized in
+       the case where min-version is not specified.
+       (package-install, package-delete): Refresh the quickstart if applicable.
+       (package-quickstart, package-quickstart-file): New vars.
+       (package--quickstart-maybe-refresh, package-quickstart-refresh):
+       New functions.
+
+       * lisp/startup.el (command-line): Use package-activate-all rather than
+       package-initialize.
+
+       * doc/lispref/package.texi (Packaging Basics):
+       * doc/emacs/package.texi (Package Installation):
+       * doc/lispref/os.texi (Startup Summary): Refer to package-activate-all.
+
+2018-03-26  Stefan Monnier  <address@hidden>
+
+       * src/marker.c: Try and speed up byte<->char conversion with many 
markers.
+
+       When considering markers (to find a starting point for the conversion),
+       typically one of the two bounds is nearby (coming from
+       cached_(byte|char)pos) but the other is far (point-min or point-max),
+       so change the exit condition so we stop as soon as *one* of the bounds
+       is near.
+
+       (BYTECHAR_DISTANCE_INITIAL, BYTECHAR_DISTANCE_INCREMENT): New constants.
+       (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Use them to try and
+       reduce the number of markers we consider.
+
+2018-03-26  Michael Albinus  <address@hidden>
+
+       Fix problem with trailing slash in Tramp
+
+       * lisp/net/tramp.el (tramp-handle-file-truename):
+       * lisp/net/tramp-adb.el (tramp-adb-handle-file-truename):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-file-truename):
+       Fix problem with trailing slash.
+
+       * test/lisp/net/tramp-tests.el (tramp-test21-file-links):
+       Test also quoted directories.
+
+2018-03-26  Phillip Lord  <address@hidden>
+
+       Remove architecture dependent source downloads
+
+       * admin/nt/dist-build/build-dep-zips.py:
+
+2018-03-25  Eric Skoglund  <address@hidden>
+
+       Make eshell/kill handle -<signal> and -<SIGNALNAME> (Bug#29156)
+
+       * lisp/eshell/esh-proc.el (eshell/kill): Handle the argument parsing
+       and numeric conversion in function in order to parse -signal and
+       -SIGNALNAME correctly.
+       * doc/misc/eshell.texi (kill): Update docs to reflect new function
+       behaviour.
+       * etc/NEWS: Mention new eshell/kill behaviour.
+
+2018-03-25  Noam Postavsky  <address@hidden>
+
+       Allow `&rest' or `&optional' without following variable (Bug#29165)
+
+       This is sometimes convenient when writing macros, so that the empty
+       variable case doesn't need to be handled specially.  Older versions of
+       Emacs accepted this in some cases (especially the interpreter in Emacs
+       25 and below was very accepting).
+
+                                   |   interpreted/compiled   |
+       | arglist                   | 25 & earlier | 26  | 27  |
+       |---------------------------+--------------+-----+-----|
+       | (&rest)                   | y/n          | n/n | y/y |
+       | (&rest &rest)             | y/n          | n/n | n/n |
+       | (&rest &rest x)           | y/n          | n/n | n/n |
+       | (&rest x &rest)           | y/n          | n/n | n/n |
+       | (&rest x &rest y)         | y/n          | n/n | n/n |
+       |---------------------------+--------------+-----+-----|
+       | (&optional)               | y/n          | n/n | y/y |
+       | (&optional &optional)     | y/n          | n/n | n/n |
+       | (&optional x &optional)   | y/n          | n/n | n/n |
+       | (&optional x &optional y) | y/y          | n/n | n/n |
+       |---------------------------+--------------+-----+-----|
+       | (&optional &rest)         | y/n          | n/n | y/y |
+       | (&optional x &rest)       | y/n          | n/n | y/y |
+       | (&optional &rest y)       | y/y          | n/n | y/y |
+       |---------------------------+--------------+-----+-----|
+       | (&rest &optional)         | y/n          | n/n | n/n |
+       | (&rest &optional y)       | y/n          | n/n | n/n |
+       | (&rest x &optional y)     | y/n          | n/n | n/n |
+
+       The values in the table above can be produced with the following code:
+
+       (with-current-buffer (get-buffer-create "*ck-args*")
+         (erase-buffer)
+         (dolist (arglist '((&rest)
+                            (&rest &rest)
+                            (&rest &rest x)
+                            (&rest x &rest)
+                            (&rest x &rest y)
+                            (&optional)
+                            (&optional &optional)
+                            (&optional x &optional)
+                            (&optional x &optional y)
+                            (&optional &rest)
+                            (&optional x &rest)
+                            (&optional &rest y)
+                            (&rest &optional)
+                            (&rest &optional y)
+                            (&rest x &optional y)))
+           (insert
+            (format "%c/%c\n"
+                    (condition-case err
+                        (progn (funcall `(lambda ,arglist 'ok))
+                               ?y)
+                      (error ?n))
+                    (condition-case err
+                        (progn (byte-compile-check-lambda-list arglist)
+                               ?y)
+                      (error ?n))))
+           (display-buffer (current-buffer))))
+
+       * src/eval.c (funcall_lambda):
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-check-lambda-list): Don't
+       check for missing variables after `&rest' and `&optional'.
+       * test/src/eval-tests.el (eval-tests--bugs-24912-and-24913)
+       (eval-tests-accept-empty-optional-rest): Update tests accordingly.
+       * etc/NEWS: Update announcement accordingly.
+       * doc/lispref/functions.texi (Argument List): Update manual to
+       indicate that variable names are optional.
+
+2018-03-24  Vibhav Pant  <address@hidden>
+
+       Fix byte-optimize-memq incorrectly optimizing some memq forms.
+
+       * lisp/emacs-lisp/byte-opt.el (byte-optimize-memq): Call
+         byte-optimize-and only for memq forms that can be optimized, use
+         byte-optimize-predicate to optimize the final form.
+
+2018-03-24  Vibhav Pant  <address@hidden>
+
+       Optimize certain memq forms during byte-compilation.
+
+       * lisp/emacs-lisp/byte-opt.el (byte-optimize-memq): New function.
+         Set the byte optimizer function for memq to byte-optimize-memq.
+
+2018-03-24  Phillip Lord  <address@hidden>
+
+       Reduce build load
+
+       * admin/nt/dist-build/build-zips.sh: Reduce parallelism to 8
+
+2018-03-23  Glenn Morris  <address@hidden>
+
+       * lisp/emulation/viper.el (viper-set-hooks): Replace obsolete func.
+
+       * lisp/vc/vc.el (vc-initial-comment): Remove var unused since 23.2.
+
+2018-03-23  Glenn Morris  <address@hidden>
+
+       Remove some unused gnus-registry variables
+
+       * lisp/gnus/gnus-registry.el (gnus-registry-clean-empty)
+       (gnus-registry-use-long-group-names)
+       (gnus-registry-max-track-groups, gnus-registry-entry-caching)
+       (gnus-registry-trim-articles-without-groups):
+       Remove variables labeled as obsolete since 23.4 that do nothing.
+
+2018-03-23  Glenn Morris  <address@hidden>
+
+       Remove variables labeled as obsolete that do nothing
+
+       * lisp/allout.el (allout-passphrase-verifier-string)
+       (allout-passphrase-hint-string):
+       * lisp/w32-vars.el (w32-list-proportional-fonts):
+       Remove variables that are unused since Emacs 23.x.
+
+2018-03-23  Phillip Lord  <address@hidden>
+
+       Limit build load
+
+       * admin/nt/dist-build/build-zips.sh: Limit build load.
+
+2018-03-23  Phillip Lord  <address@hidden>
+
+       Ensure configure is running if necessary
+
+       * admin/nt/dist-build/build-zips.sh: Check for missing Makefile.
+
+2018-03-23  Glenn Morris  <address@hidden>
+
+       * lisp/progmodes/cc-langs.el: Silence compiler.
+
+2018-03-23  Glenn Morris  <address@hidden>
+
+       Quieten lisp/obsolete compilation
+
+       * lisp/obsolete/vi.el (vi-mark-region):
+       * lisp/obsolete/vip.el (vip-delete-backward-char): Silence compiler.
+
+2018-03-23  Paul Eggert  <address@hidden>
+
+       Clarify syntax of radixed integers
+
+       * doc/lispref/numbers.texi (Integer Basics): Specify what digits
+       are allowed in radixed integers, and that there is no initial sign
+       or final period.
+
+2018-03-23  Glenn Morris  <address@hidden>
+
+       Remove some declare-function stub definitions
+
+       * lisp/emulation/viper-cmd.el, lisp/emulation/viper-keym.el:
+       * lisp/emulation/viper-util.el, lisp/net/newst-plainview.el:
+       * lisp/net/newst-treeview.el, lisp/ps-def.el, lisp/vc/ediff.el:
+       * lisp/vc/ediff-util.el, lisp/vc/ediff-wind.el:
+       Remove stub declare-function definitions.
+       It exists since Emacs 22.2, released 10 years ago.
+       Most of these files are using even newer features, such as
+       lexical-binding and cl-lib anyway, making the stubs pointless.
+
+2018-03-23  Glenn Morris  <address@hidden>
+
+       Replace some uses of cl with cl-lib
+
+       * lisp/progmodes/idlw-toolbar.el: No need for cl.
+       * lisp/progmodes/antlr-mode.el, lisp/progmodes/idlw-shell.el:
+       * lisp/progmodes/idlwave.el: Replace cl with cl-lib.
+
+2018-03-23  Glenn Morris  <address@hidden>
+
+       Replace cl in some obsolete files
+
+       * lisp/obsolete/assoc.el, lisp/obsolete/fast-lock.el:
+       * lisp/obsolete/mouse-sel.el: No need for cl.
+       * lisp/obsolete/lazy-lock.el, lisp/obsolete/pgg-gpg.el:
+       * lisp/obsolete/pgg-parse.el, lisp/obsolete/pgg-pgp.el:
+       * lisp/obsolete/pgg-pgp5.el, lisp/obsolete/pgg.el:
+       * lisp/obsolete/sregex.el: Replace cl with cl-lib.
+
+2018-03-23  Glenn Morris  <address@hidden>
+
+       cedet: replace cl with cl-lib
+
+       * lisp/cedet/ede/linux.el, lisp/cedet/semantic/decorate/mode.el:
+       * lisp/cedet/semantic/wisent/comp.el: Replace cl with cl-lib.
+       * lisp/cedet/cedet.el, lisp/cedet/mode-local.el:
+       * lisp/cedet/ede/dired.el, lisp/cedet/ede/pmake.el:
+       * lisp/cedet/ede/proj-comp.el, lisp/cedet/ede/proj-misc.el:
+       * lisp/cedet/ede/proj-obj.el, lisp/cedet/ede/proj-prog.el:
+       * lisp/cedet/ede/speedbar.el, lisp/cedet/semantic/analyze.el:
+       * lisp/cedet/semantic/complete.el:
+       * lisp/cedet/semantic/mru-bookmark.el, lisp/cedet/semantic/debug.el:
+       * lisp/cedet/semantic/wisent/python.el:
+       * lisp/cedet/srecode/compile.el, lisp/cedet/srecode/dictionary.el:
+       * lisp/cedet/srecode/srt.el: No need for cl.
+
+2018-03-23  Glenn Morris  <address@hidden>
+
+       gnus: replace cl with cl-lib
+
+       * lisp/gnus/gnus-agent.el, lisp/gnus/gnus-art.el:
+       * lisp/gnus/gnus-async.el, lisp/gnus/gnus-cache.el:
+       * lisp/gnus/gnus-demon.el, lisp/gnus/gnus-group.el:
+       * lisp/gnus/gnus-icalendar.el, lisp/gnus/gnus-logic.el:
+       * lisp/gnus/gnus-msg.el, lisp/gnus/gnus-picon.el:
+       * lisp/gnus/gnus-registry.el, lisp/gnus/gnus-salt.el:
+       * lisp/gnus/gnus-score.el, lisp/gnus/gnus-spec.el:
+       * lisp/gnus/gnus-srvr.el, lisp/gnus/gnus-start.el:
+       * lisp/gnus/gnus-sum.el, lisp/gnus/gnus-topic.el:
+       * lisp/gnus/gnus-util.el, lisp/gnus/gnus-uu.el, lisp/gnus/gnus-win.el:
+       * lisp/gnus/mail-source.el, lisp/gnus/mm-decode.el:
+       * lisp/gnus/mm-encode.el, lisp/gnus/mm-url.el, lisp/gnus/mm-view.el:
+       * lisp/gnus/mml-smime.el, lisp/gnus/mml.el, lisp/gnus/mml2015.el:
+       * lisp/gnus/nnbabyl.el, lisp/gnus/nndoc.el, lisp/gnus/nneething.el:
+       * lisp/gnus/nnheader.el, lisp/gnus/nnimap.el, lisp/gnus/nnmail.el:
+       * lisp/gnus/nnmaildir.el, lisp/gnus/nnoo.el, lisp/gnus/nnrss.el:
+       * lisp/gnus/nnspool.el, lisp/gnus/nntp.el, lisp/gnus/nnvirtual.el:
+       * lisp/gnus/nnweb.el, lisp/gnus/spam.el: Replace cl with cl-lib.
+       * lisp/gnus/canlock.el, lisp/gnus/gnus-bcklg.el:
+       * lisp/gnus/gnus-cite.el, lisp/gnus/gnus-cloud.el:
+       * lisp/gnus/gnus-draft.el, lisp/gnus/gnus-dup.el:
+       * lisp/gnus/gnus-fun.el, lisp/gnus/gnus-html.el:
+       * lisp/gnus/gnus-int.el, lisp/gnus/gnus-kill.el, lisp/gnus/gnus-ml.el:
+       * lisp/gnus/gnus-mlspl.el, lisp/gnus/gnus-range.el:
+       * lisp/gnus/gnus-undo.el, lisp/gnus/gnus-vm.el:
+       * lisp/gnus/mm-partial.el, lisp/gnus/mm-uu.el, lisp/gnus/mml1991.el:
+       * lisp/gnus/nnagent.el, lisp/gnus/nndiary.el, lisp/gnus/nndir.el:
+       * lisp/gnus/nndraft.el, lisp/gnus/nnfolder.el, lisp/gnus/nngateway.el:
+       * lisp/gnus/nnmairix.el, lisp/gnus/nnmbox.el, lisp/gnus/nnmh.el:
+       * lisp/gnus/nnml.el, lisp/gnus/score-mode.el, lisp/gnus/smiley.el:
+       No need for cl.
+
+2018-03-23  Glenn Morris  <address@hidden>
+
+       * lisp/gnus/gnus-vm.el (vm-mode, vm-save-message):
+       Declare rather than autoload.
+
+2018-03-23  Paul Eggert  <address@hidden>
+
+       * src/process.c (Fsignal_process): Simplify.
+
+2018-03-23  Paul Eggert  <address@hidden>
+
+       Fix too-large integer in Hg backend
+
+       * lisp/vc/vc-hg.el (vc-hg-state-fast):
+       Don’t assume that 2**32 - 1 is representable as a fixnum.
+
+2018-03-23  Paul Eggert  <address@hidden>
+
+       Avoid Fortran-style floating-point optimization
+
+       When optimizing arithmetic operations, avoid optimizations that
+       are valid for mathematical numbers but invalid for floating-point.
+       For example, do not optimize (+ 1 v 0.5) to (+ v 1.5), as they may
+       not be the same due to rounding errors.  In general,
+       floating-point numbers cannot be constant-folded, since that would
+       make .elc files platform-dependent.
+       * lisp/emacs-lisp/byte-opt.el (byte-optimize-associative-math):
+       Do not optimize floats.
+       (byte-optimize-nonassociative-math, byte-optimize-approx-equal)
+       (byte-optimize-delay-constants-math, byte-compile-butlast)
+       (byte-optimize-logmumble):
+       Remove; no longer used.
+       (byte-optimize-minus): Do not optimize (- 0 x) to (- x).
+       (byte-optimize-multiply): Do not optimize (* -1 x) to (- x).
+       (byte-optimize-divide): Do not optimize (/ x -1) to (- x).
+       (logand, logior, logxor): Optimize with byte-optimize-predicate
+       instead of with byte-optimize-logmumble.
+       * test/lisp/emacs-lisp/bytecomp-tests.el:
+       (byte-opt-testsuite-arith-data): Add a couple of test cases.
+
+2018-03-23  Michael Albinus  <address@hidden>
+
+       Instrument tramp-test39-utf8
+
+       * test/lisp/net/tramp-tests.el (tramp--test-expensive-test):
+       Add the test name to the template.
+       (tramp-test39-utf8): Instrument test.
+
+2018-03-23  Glenn Morris  <address@hidden>
+
+       sql.el defcustom fixes
+
+       * lisp/progmodes/sql.el (sql-login-params): Update.
+       Avoids type mismatch with postgres and sqlite login params.
+       (sql-postgres-login-params): Bump version.
+
+2018-03-23  Stefan Monnier  <address@hidden>
+
+       Fix bug#30846, along with misc cleanups found along the way
+
+       * test/src/data-tests.el (data-tests-kill-all-local-variables): New 
test.
+
+       * src/buffer.c (swap_out_buffer_local_variables): Remove.
+       Fuse the body of its loop into that of reset_buffer_local_variables.
+       (Fkill_buffer, Fkill_all_local_variables): Don't call it any more.
+       (reset_buffer_local_variables): Make sure the buffer's local binding
+       is swapped out before removing it from the alist (bug#30846).
+       Call watchers before actually killing the var.
+
+       * src/data.c (Fmake_local_variable): Simplify.
+       Use swap_in_global_binding to swap out any local binding, instead of
+       a mix of find_symbol_value followed by messing with where&found.
+       Don't call swap_in_symval_forwarding since the currently swapped
+       binding is never one we've modified.
+       (Fkill_local_variable): Use swap_in_global_binding rather than messing
+       with where&found to try and trick find_symbol_value into doing the same.
+
+       * src/alloc.c (mark_localized_symbol): 'where' can't be a frame any 
more.
+
+2018-03-23  Stefan Monnier  <address@hidden>
+
+       * src/alloc.c: Avoid O(N²) complexity when unchaining markers 
(bug#24548).
+
+       Unchain all dead markers with a single scan of the markers list,
+       instead of calling the O(N) 'unchain_marker' N times.
+
+       (unchain_dead_markers): New function.
+       (sweep_buffers): Use it.
+       (gc_sweep): Sweep buffers before markers.
+       (sweep_misc): Check that markers have been unchained when reclaiming 
them.
+
+2018-03-23  Stefan Monnier  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       b8ebf5fb64 * src/lisp.h (struct Lisp_Buffer_Local_Value): Update comm...
+       8c92a37cb4 * doc/emacs/trouble.texi: Fix location of `emacs-version' ...
+       10b1f2fdd5 Explain more about (defvar foo) form (Bug#18059)
+       68c2f336b1 * doc/lispref/buffers.texi (Buffer List): Fix grammar.
+       7e720c6851 * doc/lispref/anti.texi (Antinews): Fix grammar.
+       a6a821d29b * lisp/org/ob-lisp.el (org-babel-lisp-eval-fn): Tweak type.
+
+2018-03-23  Robert Pluim  <address@hidden>
+
+       Make update_autogen work in git worktrees
+
+       * admin/update_autogen: Make it work in a git worktree
+
+2018-03-22  Glenn Morris  <address@hidden>
+
+       Quieten cl-lib related compiler warnings
+
+       * lisp/completion.el (cl-set-difference):
+       * lisp/files.el (map-merge-with, map-merge):
+       * lisp/emacs-lisp/radix-tree.el (map-apply): Declare.
+       * lisp/emacs-lisp/thunk.el: Load cl-lib at run-time, not
+       cl-macs at compile.
+       * lisp/gnus/gnus-group.el: Load cl-lib at run-time, not cl at compile.
+       * lisp/emacs-lisp/checkdoc.el, lisp/emacs-lisp/package.el
+       * lisp/gnus/gnus-sum.el, lisp/gnus/message.el, lisp/net/shr.el:
+       Load cl-lib at run-time.
+       * lisp/gnus/mml-sec.el (mml-signencrypt-style)
+       (mml-secure-cust-record-keys): Replace cl with cl-lib,
+       and load it at run-time.
+       * lisp/cedet/ede/linux.el, lisp/vc/vc-hg.el: Reorder requires.
+
+2018-03-22  Stefan Monnier  <address@hidden>
+
+       Try and fix the more obvious sources of bug#30635
+
+       * lisp/files.el (dir-locals-read-from-dir): Handle the easy cases
+       without loading `map`.
+
+       * lisp/emacs-lisp/bytecomp.el: Don't require cl-lib at run-time.
+       (byte-compile-and-folded): Avoid cl-every.
+
+2018-03-22  Charles A. Roelli  <address@hidden>
+
+       Add new command vc-git-stash-delete
+
+       * lisp/vc/vc-git.el (vc-git-stash-delete): New command, in line with
+       vc-git-stash-delete-at-point.
+       (vc-git-extra-menu-map): Add menu entry.
+
+2018-03-22  Paul Eggert  <address@hidden>
+
+       Fix byte-opt lists of pure functions etc.
+
+       This fixes a bug where a byte-compiler running on 64-bit Emacs
+       optimized (lsh -1 -1) to #x1fffffffffffffff, an optimization
+       that is incorrect for .elc files intended for either 32- or
+       64-bit Emacs.  While I was in the neighborhood, I noticed other
+       glitches in the lists of pure and side-effect-free functions, and
+       fixed the errors that I found.
+       * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns):
+       Move some functions here from side-effect-and-error-free-fns,
+       since they can now signal errors.  The affected functions are
+       current-time-string, current-time-zone,
+       line-beginning-position, line-end-position.  Rename langinfo
+       to locale-info.  Add logcount.  Remove string-to-int.
+       (side-effect-and-error-free-fns): Remove minibuffer-window, a
+       function that can signal errors, and that is already in
+       side-effect-free-fns.
+       (pure-fns): Remove ash, lsh, and logb, since they are
+       platform-dependent and .elc files should be
+       platform-independent.  Add %, logand, logcount.  Sort.
+       Clarify what is meant by “pure”.
+
+2018-03-22  Paul Eggert  <address@hidden>
+
+       Port emacs-module-tests to 32-bit Emacs
+
+       Fix a portability bug when emacs-module-tests.el is byte-compiled
+       with a 32-bit Emacs (where #x20000000 evaluates to a
+       floating-point number) and then is run on a 64-bit Emacs (where
+       the floating-point number causes a test failure).
+       * test/src/emacs-module-tests.el (mod-test-sum-test):
+       Don’t assume #x20000000 can be represented as an Emacs integer.
+
+2018-03-22  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       8ac621b (origin/emacs-26) Document DEFUN attributes
+       16d0cc7 * etc/NEWS: Add an entry for auth-source-pass.
+       cc1702f Fix the MSDOS build
+       daa9e85 Improve warning and error messages
+       7612dd1 Adjust eieio persistence tests for expected failure
+       f0cf4dc Let eieio-persistent-read read what object-write has written
+       40ad1ff Handle possible classtype values in eieio-persistent-read
+       4ec935d Add new tests for eieio persistence
+       47917d8 * lisp/gnus/gnus-cloud.el (gnus-cloud-synced-files): Fix doc ...
+       e32f352 * lisp/ibuf-ext.el (ibuffer-never-search-content-mode): Fix t...
+       5268f30 * doc/lispref/windows.texi (Selecting Windows): Fix a typo.
+       143b485 * doc/lispref/internals.texi (Writing Emacs Primitives): Fix ...
+       4ab4551 Firm up documentation of generalized variables
+       a5bf099 Improve documentation of Auto-Revert mode
+       ed05eaa Improvements in dired.texi
+
+       Conflicts:
+               etc/NEWS
+
+2018-03-22  Michael Albinus  <address@hidden>
+
+       Fix commit c24c5dc4a4
+
+       * lisp/net/tramp.el (tramp-handle-substitute-in-file-name): Drop volume
+       letter of localname substitution.  Reported by Chris Zheng
+       <address@hidden>.
+
+2018-03-22  Michael Albinus  <address@hidden>
+
+       Tag tramp-test39-utf8* as :unstable
+
+       * test/lisp/net/tramp-tests.el (tramp-test39-utf8)
+       (tramp-test39-utf8-with-stat, tramp-test39-utf8-with-perl)
+       (tramp-test39-utf8-with-ls): Tag the tests as :unstable.
+
+2018-03-22  Michael Albinus  <address@hidden>
+
+       Fix Bug#30904
+
+       * lisp/net/tramp.el (tramp-dissect-file-name): Adapt docstring.  
(Bug#30904)
+
+2018-03-21  Paul Eggert  <address@hidden>
+
+       Port data-tests-popcnt to 32-bit Emacs
+
+       * test/src/data-tests.el (data-tests-popcnt):
+       Don’t assume Emacs integers can represent 32-bit quantities.
+       Change to a simple and straightforward approach, since runtime
+       performance is not important here.
+
+2018-03-21  Glenn Morris  <address@hidden>
+
+       * lisp/play/fortune.el (fortune-in-buffer): Revert previous nonsense.
+
+2018-03-21  Charles A. Roelli  <address@hidden>
+
+       Provide completion in vc-git-stash-* commands
+
+       * lisp/vc/vc-git.el (vc-git-stash-read-history)
+       (vc-git-stash-read): New history variable and function.
+       (vc-git-stash-show, vc-git-stash-apply, vc-git-stash-pop): Update
+       their interactive specifications.
+
+2018-03-21  Paul Eggert  <address@hidden>
+
+       Add tests for Bug#30408
+
+       * test/src/editfns-tests.el (format-%d-large-float)
+       (format-%x-large-float, format-%o-invalid-float): New tests.
+
+2018-03-21  Glenn Morris  <address@hidden>
+
+       Quieten eieio-test compilation
+
+       * test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:
+       * test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el:
+       * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el:
+       Remove obsolete name args where not being explicitly tested.
+
+2018-03-21  Glenn Morris  <address@hidden>
+
+       * lisp/play/fortune.el (fortune-in-buffer): Unadvertise no-op arg.
+
+       * lisp/play/fortune.el (fortune-message):
+       Avoid trailing newline.  (Bug#30887)
+
+2018-03-20  Glenn Morris  <address@hidden>
+
+       * lisp/isearch.el (isearch-pre-command-hook): Replace cl-lib function.
+
+       As a preloaded file, isearch.el cannot require cl-lib at runtime.
+
+2018-03-20  Alan Mackenzie  <address@hidden>
+
+       * lisp/progmodes/cc-engine.el (c-looking-at-or-maybe-in-bracelist): 
Remove pessimization
+
+2018-03-20  Eli Zaretskii  <address@hidden>
+
+       Avoid redisplay problems with too wide wrap-prefix
+
+       * src/xdisp.c (display_line): Avoid looping in redisplay when
+       wrap-prefix is set to a too-wide stretch of whitespace.
+       (Bug#30432)
+
+2018-03-20  Paul Eggert  <address@hidden>
+
+       Port to 32-bit sparc64
+
+       Problem reported by Ulrich Mueller; fix suggested by Eli Zaretskii
+       and Andreas Schwab (Bug#30855).
+       * src/alloc.c (mark_memory): Call mark_maybe_object only on
+       pointers that are properly aligned for Lisp_Object.
+
+2018-03-20  Paul Eggert  <address@hidden>
+
+       Autoupdate from Gnulib
+
+2018-03-20  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       23527013c7 ; Rewrap doc string
+       4328d5f744 Correct Info link markup
+       2fb52abd9e Improve documentation of 'with-help-window'
+       ec08c62f03 Minor improvements in building.texi
+       663aafe1ff * lisp/textmodes/bibtex.el (bibtex-mark-entry): activate mark
+       05781b2e88 ; Spelling fix
+       aa40014ba3 * doc/emacs/building.texi (Starting GUD): Mention 'guiler'.
+       23072e468f Yet more proofreading of the Emacs manual
+       ba5a372540 * doc/emacs/rmail.texi: Fix broken link.
+       6b2210cc29 ; Spelling fix
+       067c8c4f5b Fix recently-added POP doc glitch
+       fb3dc0e8aa More proofreading of the Emacs manual
+       a776ce7be6 Fix typo in the Emacs manual's VC chapter
+       7f27d42f0b Pass json-readtable-error data as a list (bug#30489)
+       10bd3b3af8 Improve word motion docs (Bug#30815)
+       2b8507fbdc Replace "carriage-return" by "carriage return" in manuals
+       2616cd94f1 Minor copyedits in mule.texi
+       36a1d52814 Fix problems caused by fontconfig-2.13.0
+
+2018-03-20  Michael Albinus  <address@hidden>
+
+       Extend Tramp's UTF8 tests
+
+       * test/lisp/net/tramp-tests.el (tramp--test-utf8):
+       Apply more exhaustive tests.
+
+2018-03-20  Aaron Jensen  <address@hidden>
+
+       Better support for 'transpose-chars' in Flyspell mode
+
+       * lisp/textmodes/flyspell.el (flyspell-post-command-hook): Check
+       word  before previous point location after 'transpose-chars'.
+       (Bug#30813)
+
+2018-03-19  Paul Eggert  <address@hidden>
+
+       Improve port to NetBSD tzalloc
+
+       Problem reported by Valery Ushakov (Bug#30738#22).
+       * src/editfns.c (HAVE_TZALLOC_BUG): New macro.
+       (tzlookup): Use it.  Compile on all platforms, not just on NetBSD.
+
+2018-03-19  Glenn Morris  <address@hidden>
+
+       * test/lisp/info-xref-tests.el (info-xref-test-emacs-manuals): New.
+
+2018-03-19  Paul Eggert  <address@hidden>
+
+       Tune time zone 0
+
+       * src/editfns.c (tzlookup): Treat time zone 0 like t, for speed.
+       Suggested by Valery Ushakov (Bug#30738#19).
+
+2018-03-19  Charles A. Roelli  <address@hidden>
+
+       Normalize and fix some mistakes in NS-related commentary
+
+       * lisp/term/ns-win.el (ns-insert-working-text): Normalize
+       commentary.
+       (x-file-dialog): Fix indentation.
+
+       * src/nsfns.m (ns_get_window, interpret_services_menu)
+       (x_set_background_color, x_set_icon_name, x_set_tool_bar_lines)
+       (x_set_icon_type, x_set_mouse_color, Fx_create_frame)
+       (ns_window_is_ancestor, Fns_popup_font_panel)
+       (Fx_display_visual_class, Fns_font_name, Fns_do_applescript)
+       (ns_screen_name, compute_tip_xy, Fns_mouse_absolute_pixel_position)
+       (handlePanelKeys): Normalize commentary (also in top-level
+       declarations) and remove two outdated comments (one in
+       Fx_create_frame, the other in compute_tip_xy).
+
+       * src/nsterm.h (NSApplication, NSWindow, ns_bitmap_record):
+       * src/nsselect.m:
+       * src/nsmenu.m (ns_update_menubar, addItemWithWidgetValue:)
+       (runMenuAt:forFrame:keymaps:, ns_menu_show, free_frame_tool_bar)
+       (update_frame_tool_bar, init)
+       (initWithContentRect:styleMask:backing:defer:)
+       (initFromContents:isQuestion:, timeout_handler:)
+       (Fmenu_or_popup_active_p):
+       * src/nsimage.m (initFromXBM, initFromXBMWithDepth):
+       * src/nsgui.h:
+       * src/nsfont.m (ns_spec_to_descriptor, ns_descriptor_to_entity)
+       (ns_charset_covers, ns_get_req_script, ns_findfonts)
+       (nsfont_list_family, nsfont_open, nsfont_encode_char)
+       (nsfont_draw, ns_uni_to_glyphs, ns_glyph_metrics)
+       (syms_of_nsfont): Normalize commentary (also in top-level
+       declarations).
+
+       * src/nsterm.m (ns_init_locale, ns_retain_object)
+       (ns_screen_margins_ignoring_hidden_dock, ns_unfocus, NSImageView)
+       (x_make_frame_visible, x_iconify_frame, x_destroy_window)
+       (x_set_undecorated, x_set_no_focus_on_map, x_set_z_group)
+       (ns_index_color, ns_get_color, ns_lisp_to_color)
+       (note_mouse_movement, scrollbar, ns_scroll_run)
+       (ns_draw_fringe_bitmap, ns_draw_window_cursor)
+       (ns_draw_text_decoration, ns_draw_relief)
+       (ns_dumpglyphs_box_or_relief, ns_dumpglyphs_image)
+       (ns_dumpglyphs_stretch, ns_draw_glyph_string, ns_send_appdefined)
+       (ns_check_menu_open, ns_read_socket, ns_select, ns_run_loop_break)
+       (ns_set_vertical_scroll_bar, ns_set_horizontal_scroll_bar)
+       (ns_string_to_lispmod, ns_default, ns_initialize_display_info)
+       (ns_delete_display, ns_term_init, sendEvent:)
+       (applicationDidFinishLaunching:, applicationDidBecomeActive:)
+       (fd_handler:, setWindowClosing:, keyDown:, insertText:)
+       (mouseDown:, mouseMoved:, updateFrameSize:)
+       (windowWillResize:toSize:, windowDidResize:, windowDidResignKey:)
+       (initFrameFromEmacs:, toggleFullScreen:, toolbarClicked:)
+       (writeSelectionToPasteboard:types:, setMiniwindowImage:)
+       (scrollerWidth, initFrame:window:, setFrame:, repeatScroll:)
+       (ns_xlfd_to_fontname, syms_of_nsterm): Normalize commentary (also in
+       top-level declarations), and in ns_get_color, replace a Gmane link
+       with one from lists.gnu.org, which does not require JS to view the
+       message.
+
+2018-03-19  Karl Fogel  <address@hidden>
+
+       Revert move of interactive `transpose-regions' to Lisp
+
+       This reverts my commit 3a3aa0e056a of 2018-03-18 at 21:43:18 UTC.
+       I thought consensus had been reached, but it had not: Eli Zaretskii
+       felt the pre-3a3aa0e056a situation was fine and would not like to
+       see it changed without at least further discussion.
+
+2018-03-19  Alan Third  <address@hidden>
+
+       Fix frame resize flicker on macOS (bug#30699)
+
+       * src/nsterm.h (ns_enable_screen_updates): New function.
+       * src/nsterm.m (ns_enable_screen_updates):
+       (ns_disable_screen_updates): New functions.
+       (disable_screen_updates_count): Count of number of times we've called
+       NSDisableScreenUpdates.
+       (x_set_window_size): Disable screen updates when not in a live resize
+       loop.
+       * src/xdisp.c (redisplay_internal): Reenable screen updates when
+       redisplay doesn't complete due to a popup.
+       (unwind_redisplay): Reenable screen updates.
+
+2018-03-19  Michael Albinus  <address@hidden>
+
+       Print top time consuming tests if advised
+
+       * lisp/emacs-lisp/ert.el (ert-summarize-tests-batch-and-exit):
+       New argument HIGH.  Print top-running tests.
+
+       * test/Makefile.in (check-doit): Use ${SUMMARIZE_TESTS}.
+
+       * test/README: Explain SUMMARIZE_TESTS.
+
+2018-03-19  Eli Zaretskii  <address@hidden>
+
+       Followup to last change in browse-url.el
+
+       * lisp/net/browse-url.el (browse-url-emacs): Doc fix to follow up
+       the previous change.  (Bug#30673)
+
+       * etc/NEWS: Mention the change in 'browse-url-emacs'.
+
+2018-03-19  Pierre Téchoueyres  <address@hidden>
+
+       Allow 'browse-url-emacs' to fetch URL in the selected window
+
+       * lisp/net/browse-url.el (browse-url-emacs): Use same-window argument.
+       (Bug#30673)
+
+2018-03-19  Radon Rosborough  <address@hidden>
+
+       Various follow-ups for early init file changes
+
+       * doc/emacs/custom.texi (Early Init File): Add more details about
+       which variables must be set in the early init file rather than the
+       regular init file.  See
+       
https://lists.nongnu.org/archive/html/bug-gnu-emacs/2018-02/msg00827.html
+
+       * lisp/emacs-lisp/package.el (package-enable-at-startup): Update
+       docstring to note that packages are now made available before loading
+       the init file, rather than afterwards.  See
+       https://lists.gnu.org/archive/html/emacs-devel/2018-02/msg00632.html
+       (package-load-list): Refer to "making available" rather than "loading"
+       for packages.  See
+       https://lists.gnu.org/archive/html/emacs-devel/2018-02/msg00298.html
+
+       * lisp/startup.el (command-line): Call `custom-reevaluate-setting' on
+       predefined variables before loading the early init file and before
+       `package-initialize' is called.  This prevents
+       `Info-default-directory-list' from being unbound when
+       `package-initialize' tries to access it during startup.  See
+       https://lists.gnu.org/archive/html/emacs-devel/2018-02/msg00545.html
+
+       * lisp/emacs-lisp/package.el (package-initialize): Issue a warning
+       if called twice.
+       See: 
https://lists.gnu.org/archive/html/emacs-devel/2018-02/msg00626.html
+            
https://lists.gnu.org/archive/html/emacs-devel/2018-03/msg00301.html
+
+2018-03-18  Glenn Morris  <address@hidden>
+
+       * lisp/url/url-handlers.el: No need for subr-x at run-time.
+
+2018-03-18  Karl Fogel  <address@hidden>
+
+       Move interactive `transpose-regions' to Lisp
+
+       Define `transpose-regions' in Lisp, because its complex interactive
+       spec was ungainly in C, and change the C version to non-interactive
+       `transpose-regions-internal'.  The Lisp function is just a wrapper
+       around the C function, which still does all the work.
+
+       * lisp/simple.el (transpose-regions): New wrapper function, with
+         interactive spec taken from old C `transpose-regions'.
+
+       * src/editfns.c (Ftranspose_regions): Rename to...
+         (Ftranspose_regions_internal): ...here, and remove interactive spec.
+
+       Discussion on Emacs Devel:
+
+         From: Karl Fogel
+         To: Emacs Development
+         Cc: Richard Copley, Charles A. Roelli
+         Subject: Re: [Emacs-diffs] master b88e7c8: \
+                  Make transpose-regions interactive (Bug#30343)
+         Date: Fri, 16 Mar 2018 10:23:31 -0500
+         Message-ID: <address@hidden>
+
+         https://lists.gnu.org/archive/html/emacs-devel/2018-03/msg00555.html
+
+2018-03-18  Nicolas Petton  <address@hidden>
+
+       Fix compilation warnings in subr-x-tests.el
+
+       * test/lisp/emacs-lisp/subr-x-tests.el (subr-x-test-if-let*-false)
+       (subr-x-test-when-let*-false): Make tests simpler and compiler warning
+       free.
+
+2018-03-18  Nicolas Petton  <address@hidden>
+
+       * lisp/url/url-handlers.el: Require subr-x.
+
+2018-03-18  Nicolas Petton  <address@hidden>
+
+       Add URL handler for file-name-directory  (Bug#30444)
+
+       * lisp/url/url-handlers.el (url-handler-file-name-directory): New
+       function which handles special cases for `file-name-directory' and
+       URLs.
+       * test/lisp/url/url-handlers-test.el: New file.  Add tests for
+       `url-handler-file-name-directory'.
+
+2018-03-18  Michael Albinus  <address@hidden>
+
+       * lisp/emacs-lisp/ert.el (ert-run-tests-batch): Print selector.
+
+2018-03-17  Michael Albinus  <address@hidden>
+
+       Optimize tramp-tests.el
+
+       * test/lisp/net/tramp-tests.el (tramp--test-expensive-test):
+       Make it a defsubst.  Adapt all callees.
+       (tramp--test-print-duration): New defmacro.
+       (tramp-test11-copy-file, tramp-test12-rename-file)
+       (tramp-test21-file-links, tramp--test-special-characters):
+       Run some parts only if expensive tests are enabled.  (Bug#30807)
+
+2018-03-17  Aaron Jensen  <address@hidden>
+
+       In frameset save pixel values with frame-resize-pixelwise non-nil  
(Bug#30141)
+
+       * lisp/frameset.el (frameset--record-relationships): Replace
+       check for text width/height and replace with check for
+       frame-resize-pixelwise.  (Bug#30141)
+
+2018-03-17  Michael Albinus  <address@hidden>
+
+       Print test timings unconditionally
+
+       * lisp/emacs-lisp/ert.el (ert-batch-print-duration): Remove.
+       (ert-run-tests-batch): Adapt accordingly.
+
+       * test/Makefile.in:
+       * test/README: Remove TEST_PRINT_TEST_DURATION.
+
+2018-03-16  Glenn Morris  <address@hidden>
+
+       Explicitly require cl-lib where needed
+
+       Rather than relying on the byte-compiler happening to use it.
+       * lisp/completion.el, lisp/ffap.el, lisp/loadhist.el:
+       * lisp/userlock.el, lisp/emacs-lisp/debug.el, lisp/emacs-lisp/rx.el:
+       * lisp/emacs-lisp/testcover.el, lisp/mail/rfc2231.el:
+       * lisp/net/newst-treeview.el, lisp/net/puny.el:
+       * lisp/net/tramp-archive.el, lisp/net/tramp-gvfs.el:
+       * lisp/net/tramp-sh.el, lisp/net/tramp-smb.el, lisp/org/org-ctags.el:
+       * lisp/org/org-macs.el, lisp/progmodes/grep.el:
+       * lisp/progmodes/perl-mode.el, lisp/progmodes/ruby-mode.el:
+       * lisp/textmodes/dns-mode.el, lisp/textmodes/mhtml-mode.el:
+       * lisp/vc/pcvs-parse.el: Explicitly require cl-lib as needed.
+
+2018-03-16  Glenn Morris  <address@hidden>
+
+       cedet: remove obsolete name args to constructors
+
+       * lisp/cedet/ede/proj-archive.el, lisp/cedet/ede/proj-aux.el:
+       * lisp/cedet/ede/proj-elisp.el, lisp/cedet/ede/proj-info.el:
+       * lisp/cedet/ede/proj-misc.el, lisp/cedet/ede/proj-obj.el:
+       * lisp/cedet/ede/proj-shared.el, lisp/cedet/ede/simple.el:
+       * lisp/cedet/ede/source.el, lisp/cedet/semantic/:
+       * lisp/cedet/semantic/analyze.el, lisp/cedet/semantic/complete.el:
+       * lisp/cedet/semantic/db-javascript.el:
+       * lisp/cedet/semantic/db-ref.el, lisp/cedet/semantic/debug.el:
+       * lisp/cedet/semantic/ede-grammar.el:
+       * lisp/cedet/semantic/mru-bookmark.el, lisp/cedet/semantic/scope.el:
+       * lisp/cedet/semantic/texi.el, lisp/cedet/semantic/bovine/:
+       * lisp/cedet/semantic/bovine/c.el:
+       * lisp/cedet/semantic/bovine/debug.el, lisp/cedet/srecode/:
+       * lisp/cedet/srecode/extract.el, lisp/cedet/srecode/map.el:
+       * lisp/cedet/srecode/srt-mode.el:
+       Remove obsolete name args to constructors.
+
+2018-03-16  Glenn Morris  <address@hidden>
+
+       Quieten semantic re-compilation when .elc already exist
+
+       * lisp/cedet/semantic/db-find.el, lisp/cedet/semantic/util.el:
+       Add some function declarations.
+
+2018-03-16  Glenn Morris  <address@hidden>
+
+       * lisp/gnus/gnus-registry.el: Add missing compile-time requirement.
+
+2018-03-16  Eli Zaretskii  <address@hidden>
+
+       Fix 'posn-at-point' when line numbers are displayed
+
+       * src/xdisp.c (pos_visible_p): For the leftmost glyph, adjust the X
+       coordinate due to line-number display.  (Bug#30834)
+
+2018-03-16  Eli Zaretskii  <address@hidden>
+
+       Another followup to fixing 'window-text-pixel-width'
+
+       * src/xdisp.c (Fwindow_text_pixel_size): Adjust the return value
+       when we stop one buffer position short of TO.  (Bug#30746)
+
+2018-03-16  Michael Albinus  <address@hidden>
+
+       Optimize "make check" and "make check-maybe"
+
+       * lisp/emacs-lisp/ert.el (ert-run-tests-batch): Print summary duration.
+
+       * test/Makefile.in (TEST_LOAD_EL): Set default to "no" for
+       targets all, check, and check-maybe.  (Bug#30807)
+
+       * test/README: Reflect recent changes in Makefile.
+
+       * test/lisp/net/tramp-archive-tests.el
+       (tramp-archive-test99-libarchive-tests): Tag it :unstable.
+
+2018-03-16  Reuben Thomas  <address@hidden>
+
+       Call enchant-lsmod correctly when Enchant is installed with a suffix
+
+       * lisp/textmodes/ispell.el (ispell--call-enchant-lsmod): Cope with a
+       version suffix on the binary name, so enchant-2 is converted to
+       enchant-lsmod-2, not enchant-2-lsmod.
+
+2018-03-15  Glenn Morris  <address@hidden>
+
+       Suppress warnings about obsolete generics (bug#25556)
+
+       * lisp/Makefile.in (MAIN_FIRST): New variable.
+       (compile-main): Put some files at the head of the queue.
+
+2018-03-15  Glenn Morris  <address@hidden>
+
+       Replace some obsolete uses of filter-buffer-substring-functions
+
+       * lisp/org/org-agenda.el (org-agenda-mode):
+       * lisp/org/org-indent.el (org-indent-mode):
+       Replace filter-buffer-substring-functions, obsolete since 24.4.
+
+2018-03-15  Glenn Morris  <address@hidden>
+
+       * lisp/gnus/nnmaildir.el (nnmaildir-close-server):
+       Remove unused locals.
+
+       * lisp/emulation/cua-base.el (cua-paste): Quieten compilation.
+
+       * lisp/progmodes/verilog-mode.el (verilog-mode): Quieten compilation.
+
+2018-03-15  Paul Eggert  <address@hidden>
+
+       Improve port to NetBSD tzalloc
+
+       Problem reported by Valery Ushakov (Bug#30738#13).
+       * src/editfns.c (tzlookup) [__NetBSD_Version__ < 700000000]:
+       If tzalloc fails for any reason other than memory exhaustion,
+       assume it’s because NetBSD 6 does not support tzalloc on
+       POSIX-format TZ strings, and fall back on tzdb if possible.
+
+2018-03-15  Glenn Morris  <address@hidden>
+
+       * test/lisp/ses-tests.el: Quieten compilation.
+
+       * lisp/pcomplete.el (pcomplete-here): Move before first reference.
+
+2018-03-15  Michael Albinus  <address@hidden>
+
+       Improve robustness in tramp-sh.el
+
+       * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
+       Wrap both echo calls in parentheses, in order to avoid double prompt.
+
+2018-03-15  Eli Zaretskii  <address@hidden>
+
+       Support variable-unquoting syntax in bat-mode
+
+       * lisp/progmodes/bat-mode.el (bat-font-lock-keywords): Fontify
+       argument numbers in %~n.  Suggested by Jostein Kjønigsen
+       <address@hidden> in emacs-devel.
+
+       * test/lisp/progmodes/bat-mode-tests.el
+       (bat-test-fontification-iter-var-1): Update the test to check also
+       the %~n construct.
+
+2018-03-15  Eli Zaretskii  <address@hidden>
+
+       Fix mouse-set-point when line numbers are displayed
+
+       * src/xdisp.c (move_it_to): Initialize the line_number_produced_p
+       flag before iterating on a new line.  (Bug#30818)
+
+2018-03-15  Michael Albinus  <address@hidden>
+
+       Fix an error in tramp-archive-test42-auto-load
+
+       * test/lisp/net/tramp-archive-tests.el (tramp-archive-test42-auto-load):
+       Do not use "/ssh::" as test directory, it could harm.  (Bug#30807)
+
+2018-03-14  Glenn Morris  <address@hidden>
+
+       More hydra.nixos.org logging for unfinished tests
+
+       * lisp/emacs-lisp/ert.el (ert-summarize-tests-batch-and-exit):
+       Dump contents of any unfinished log files on hydra.nixos.org.
+
+2018-03-14  Stefan Monnier  <address@hidden>
+
+       * lisp/desktop.el: Make use some "new" functionality
+
+       (desktop-files-not-to-save, desktop-clear):
+       Use \` and \' when we don't intend to match newlines.
+       (desktop-minor-mode-table): Remove auto-fill-function entry.
+       (desktop-buffer-info): Use :minor-mode-function instead.
+       (desktop--v2s): Use a closure rather than a backquoted lambda.
+       (desktop-save): Set 'lexical-binding' in the saved file.
+       Use 'utf-8-emacs' encoding rather than the old 'emacs-mule'.
+       (desktop-read): Use 'default-value' to get the global part of a hook.
+
+2018-03-14  Michael Albinus  <address@hidden>
+
+       Extend ert to print duration of single tests
+
+       * lisp/emacs-lisp/ert.el (ert-test-result): New slot ´duration'.
+       (ert-run-or-rerun-test): Set it.
+       (ert-batch-print-duration): New defvar.
+       (ert-run-tests-batch): Print duration if needed.
+
+       * test/Makefile.in (TEST_PRINT_TEST_DURATION): New variable.
+
+       * test/README: Explain TEST_PRINT_TEST_DURATION.
+
+2018-03-13  Noam Postavsky  <address@hidden>
+
+       Fix line-wrapping for term.el (Bug#30775)
+
+       * lisp/term.el (term-emulate-terminal): Leave line-wrapping state if
+       point was moved after we entered it.
+       * test/lisp/term-tests.el (term-line-wrapping-then-motion): New test.
+
+2018-03-13  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       675edec (origin/emacs-26) Fix some allout.el aliases
+       b2c069a * lisp/progmodes/ada-mode.el (ada-clean-buffer-before-saving)...
+       2f5420c Doc fixes re obsolete items
+       9edf82a Replace an obsolete alias in tpu-mapper
+       a643792 Doc fixes re obsolete items
+       3060fb8 Minor changes in mule.texi
+       3e39897 Avoid assertion violation under visual-order-cursor-movement
+       e4b73ab Stop mentioning options.el in doc
+       05669f0 ; * lisp/minibuffer.el (completion-cycle-threshold): Fix last...
+       758597f * lisp/vc/vc-dir.el (vc-dir-unmark): Fix documentation.
+       62f0a2b * lisp/minibuffer.el (completion-cycle-threshold): Doc fix.
+       761845c Fix last change in Xref documentation
+       5186675 More changes in the Emacs manual
+       b1aaa72 Improve documentation of Xref
+
+       Conflicts:
+               lisp/w32-fns.el
+
+2018-03-13  Glenn Morris  <address@hidden>
+
+       Try to stop tramp test hangs on hydra
+
+       * test/lisp/net/tramp-tests.el (tramp-test41-asynchronous-requests):
+       Use fewer processes on hydra.
+
+2018-03-13  Eli Zaretskii  <address@hidden>
+
+       * src/xdisp.c (Fwindow_text_pixel_size): Fix last change.
+
+2018-03-12  Glenn Morris  <address@hidden>
+
+       * lisp/subr.el (focus-frame, unfocus-frame): Remove obsolete no-ops.
+
+       * lisp/vc/ediff-util.el (ediff-recenter):
+       Don't try focus-frame on Emacs.
+
+2018-03-12  Glenn Morris  <address@hidden>
+
+       * lisp/obsolete/options.el: Remove file.
+
+       * lisp/loadhist.el (unload-hook-features-list): Remove obsolete alias.
+
+2018-03-12  Glenn Morris  <address@hidden>
+
+       Make compiler warn about use of obsolete hooks
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-form):
+       Warn about using obsolete hooks.
+
+2018-03-12  Glenn Morris  <address@hidden>
+
+       Replace use of the obsolete write-contents-hooks
+
+       * lisp/play/gametree.el (gametree-mode):
+       Replace write-contents-hooks, obsolete since 22.1,
+       with write-contents-functions.
+
+2018-03-12  Paul Eggert  <address@hidden>
+
+       Revert overenthusiastic procfs fixup
+
+       Also, be more systematic in calls to string_to_number.
+       * src/sysdep.c (list_system_processes) [HAVE_PROCFS]: Allow pids
+       to be floating-point if they exceed fixnum range.  This partially
+       reverts my patch 2018-03-09T20:06:05Z!address@hidden, which
+       went too far in fixing string-to-number mishandling.
+
+2018-03-11  Charles A. Roelli  <address@hidden>
+
+       Allow toggling Grep command abbreviation, and rename related symbols
+
+       * lisp/progmodes/grep.el (grep-find-hide): Rename 'grep-find-hide'
+       to 'grep-find-abbreviate'.
+       (grep-find-hide-properties): Rename to
+       'grep-find-abbreviate-properties'.
+       (grep-mode-font-lock-keywords): Even when 'grep-find-abbreviate'
+       is nil, fontify the verbose command options with property
+       'abbreviated-command', so that the toggling command can later find
+       these parts without refontifying.
+       (grep-find-show): Rename to 'grep-find-toggle-abbreviation',
+       simplify the code, and permit toggling the hidden command options.
+       (grep-mode-map): Add a menu-bar item and new separator for
+       'grep-find-toggle-abbreviation', and fix the incumbent separators
+       in the "Grep" menu-bar, of which only one was showing before this
+       commit, even though two were specified.
+       * etc/NEWS (grep):
+       * doc/emacs/building.texi (Grep Searching): Document these
+       changes, and mention 'grep-find-toggle-abbreviation'.
+
+2018-03-11  Charles A. Roelli  <address@hidden>
+
+       Document 'transpose-sentences' and 'transpose-paragraphs'
+
+       * doc/emacs/fixit.texi (Transpose): Add documentation and index
+       entries for 'transpose-sentences' and 'transpose-paragraphs'
+       (Bug#30343 in passing).
+
+2018-03-11  Charles A. Roelli  <address@hidden>
+
+       Make transpose-regions interactive (Bug#30343)
+
+       * doc/emacs/fixit.texi (Transpose): Mention and explain the new
+       command.
+       * src/editfns.c (Ftranspose_regions): Add an interactive calling
+       specification, and add documentation for it.
+
+2018-03-11  Charles A. Roelli  <address@hidden>
+
+       Unify documentation on 'save-some-buffers'
+
+       * doc/emacs/files.texi (Save Commands): Include some more keys
+       that can be used in 'save-some-buffers'.
+
+       * lisp/files.el (save-some-buffers): Include the same keys as
+       above, and document all missing ones.
+
+2018-03-11  Charles A. Roelli  <address@hidden>
+
+       * lisp/simple.el (mark-whole-buffer): Clarify its behavior.
+
+2018-03-11  Charles A. Roelli  <address@hidden>
+
+       Improve and make use of 'image--get-image'
+
+       * lisp/image.el (image--get-image): Add documentation, and
+       check overlays for images too (since function 'put-image' from
+       the same library uses overlays to insert images).
+       (image-save): Use 'image--get-image'.
+
+2018-03-11  Paul Eggert  <address@hidden>
+
+       Port to NetBSD tzalloc
+
+       Problem reported by Valery Ushakov (Bug#30738).
+       * src/editfns.c (xtzalloc): Remove.
+       (invalid_time_zone_specification): New function.
+       (tzlookup): Port to NetBSD, where tzalloc can fail when the TZ
+       string has an invalid value.
+
+2018-03-10  Glenn Morris  <address@hidden>
+
+       Remove many items obsolete since Emacs 22.1
+
+       Emacs 22.1 was five major releases and over decade ago.
+       In bug reporting statistics, it's been absent for around 5 years.
+       Ref: https://debbugs.gnu.org/stats/emacs.html
+       This list can be reviewed before to the next release, but for
+       now hopefully this motivates any needed external updates.
+       * lisp/arc-mode.el (archive-mouse-extract):
+       * lisp/bookmark.el (bookmark-exit-hooks):
+       * lisp/comint.el (comint-use-prompt-regexp-instead-of-fields):
+       * lisp/cus-edit.el (custom-face-save-command):
+       * lisp/descr-text.el (describe-char-after):
+       * lisp/desktop.el (desktop-enable, desktop-basefilename)
+       (desktop-buffer-modes-to-save, desktop-buffer-misc-functions)
+       (desktop-buffer-handlers, desktop-load-default):
+       * lisp/dired-x.el (dired-omit-files-p):
+       * lisp/frame.el (new-frame, set-default-font, delete-frame-hook)
+       (blink-cursor):
+       * lisp/generic-x.el (generic-define-mswindows-modes)
+       (generic-define-unix-modes):
+       * lisp/help.el (describe-project, view-todo):
+       * lisp/hilit-chg.el (highlight-changes-colours):
+       * lisp/ibuffer.el (ibuffer-elide-long-columns, ibuffer-hooks)
+       (ibuffer-mode-hooks):
+       * lisp/imenu.el (imenu-always-use-completion-buffer-p):
+       * lisp/isearch.el (isearch-lazy-highlight-cleanup)
+       (isearch-lazy-highlight-initial-delay)
+       (isearch-lazy-highlight-interval)
+       (isearch-lazy-highlight-max-at-a-time)
+       (isearch-lazy-highlight-cleanup):
+       * lisp/mwheel.el (mouse-wheel-down-button)
+       (mouse-wheel-up-button, mouse-wheel-click-button):
+       * lisp/novice.el (disabled-command-hook):
+       * lisp/recentf.el (recentf-menu-append-commands-p):
+       * lisp/savehist.el (savehist-load):
+       * lisp/speedbar.el (speedbar-ignored-path-expressions)
+       (speedbar-ignored-path-regexp, speedbar-add-ignored-path-regexp)
+       (speedbar-line-path, speedbar-buffers-line-path, speedbar-path-line):
+       * lisp/subr.el (assoc-ignore-case, assoc-ignore-representation)
+       (x-lost-selection-hooks, x-sent-selection-hooks)
+       (process-kill-without-query):
+       * lisp/calendar/icalendar.el (icalendar-convert-diary-to-ical)
+       (icalendar-extract-ical-from-buffer):
+       * lisp/emacs-lisp/autoload.el (update-autoloads-from-directories):
+       * lisp/emacs-lisp/derived.el (derived-mode-class):
+       * lisp/emacs-lisp/generic.el (generic-font-lock-defaults):
+       * lisp/emacs-lisp/timer.el (timer-set-time-with-usecs):
+       * lisp/gnus/spam.el (spam-list-of-processors):
+       * lisp/international/latin1-disp.el (latin1-char-displayable-p):
+       * lisp/mail/rmail.el (rmail-pop-password, rmail-pop-password-required):
+       * lisp/net/goto-addr.el (goto-address-at-mouse):
+       * lisp/net/net-utils.el (ipconfig-program, ipconfig-program-options):
+       * lisp/obsolete/iswitchb.el (iswitchb-use-fonts):
+       * lisp/play/dunnet.el (dungeon-mode-map):
+       * lisp/progmodes/compile.el (compilation-finish-function)
+       * lisp/progmodes/cperl-mode.el (cperl-vc-header-alist)
+       * lisp/progmodes/gud.el (tooltip-gud-modes, tooltip-gud-display)
+       (tooltip-gud-toggle-dereference):
+       * lisp/progmodes/pascal.el (pascal-outline):
+       * lisp/progmodes/perl-mode.el (electric-perl-terminator):
+       * lisp/textmodes/nroff-mode.el (count-text-lines)
+       (forward-text-line, backward-text-line, electric-nroff-newline)
+       (electric-nroff-mode):
+       * lisp/vc/log-edit.el (vc-comment-ring, vc-comment-ring-index)
+       (vc-previous-comment, vc-next-comment)
+       (vc-comment-search-reverse, vc-comment-search-forward)
+       (vc-comment-to-change-log):
+       * lisp/vc/pcvs-info.el (cvs-display-full-path)
+       (cvs-fileinfo->full-path):
+       * lisp/vc/vc.el (vc-diff-switches-list):
+       Remove items, obsolete since Emacs 22.1.
+       * lisp/ibuffer.el (ibuffer-cached-elide-long-columns):
+       Remove internal variable.
+       (ibuffer-compile-make-eliding-form, ibuffer-check-formats):
+       (ibuffer-mode): Remove support for ibuffer-elide-long-columns.
+       * lisp/cedet/semantic/sb.el (semantic-sb-token-jump):
+       Remove support for speedbar-line-path.
+       * lisp/emacs-lisp/unsafep.el (assoc-ignore-case):
+       Stop marking as side-effect-free.
+       * lisp/gnus/spam.el (spam-group-processor-p):
+       Remove support for spam-list-of-processors.
+       * lisp/progmodes/compile.el (define-compilation-mode)
+       (compilation-handle-exit):
+       Remove support for compilation-finish-function.
+       * lisp/progmodes/cperl-mode.el (cperl-mode):
+       Remove support for cperl-vc-header-alist.
+
+2018-03-10  Stefan Monnier  <address@hidden>
+
+       eshell-eval-using-options: Avoid compiler warning differently
+
+       * lisp/eshell/em-unix.el (eshell/time):
+       * lisp/eshell/em-tramp.el (eshell/sudo):
+       * lisp/eshell/esh-var.el (eshell/env): Remove artificial use of `args'.
+
+       * lisp/eshell/esh-opt.el (eshell-eval-using-options): Silence warning
+       when `args' is not used by `body-forms'.
+
+2018-03-10  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       5c91ca8 Fix create_process bug breaking eudc-expand-inline
+       e244fed Clarify that nil doesn't match itself as a cl-case clause (Bu...
+       df0e7e2 Improve SVG documentation
+       a34ef52 Document the "URL" keyword in library headers
+       fbc7f9a * test/lisp/international/mule-tests.el: Avoid local variable...
+       16faff6 ; * lisp/org/org-table.el: Replace obsolete alias in comment.
+
+2018-03-10  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       6af509e Replace the obsolete process-kill-without-query in documentation
+       4df0d15 ; Tiny fix for recent doc change
+
+2018-03-10  Noam Postavsky  <address@hidden>
+
+       Let warning about (:foo) be suppressible (Bug#30499)
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-form): Check
+       byte-compile-warning-enabled-p before warning about funcalling const
+       symbol.
+
+2018-03-10  Dmitry Safronov  <address@hidden>
+
+       Fix wrong behavior of 'outline-headers-as-kill' command (Bug#30209)
+
+       * lisp/outline.el (outline-headers-as-kill): Fix heading duplication.
+
+2018-03-10  Eli Zaretskii  <address@hidden>
+
+       Improve support for desktop restoration in daemon mode
+
+       * lisp/server.el (server-after-make-frame-hook): New hook.
+       (server-execute): Call it after creating a new frame or before
+       switching to a buffer shown in a client frame.  (Bug#30421)
+
+       * doc/emacs/misc.texi (Saving Emacs Sessions): Adjust advice for
+       restoring desktop in daemon mode to the new hook.
+       * doc/lispref/frames.texi (Creating Frames, Standard Hooks):
+       Document server-after-make-frame-hook.
+
+       * etc/NEWS: Mention server-after-make-frame-hook.
+
+2018-03-10  Aaron Jensen  <address@hidden>
+
+       Allow underline position variables be buffer-local
+
+       * src/nsterm.m (ns_draw_text_decoration):
+       * src/w32term.c (x_draw_glyph_string):
+       * src/xterm.c (x_draw_glyph_string): Allow underline-minimum-offset,
+       underline-at-descent-line, and x-use-underline-position-properties
+       be buffer local variables.  (Bug#30553)
+       * src/xdisp.c (syms_of_xdisp) <underline-minimum-offset>: Add DEFSYM.
+
+2018-03-09  Glenn Morris  <address@hidden>
+
+       * Makefile.in (check-declare): Also check test/ directory.
+
+       * test/Makefile.in (check-declare): New PHONY rule.
+
+2018-03-09  Glenn Morris  <address@hidden>
+
+       Quieten --without-json compilation of json-tests.el
+
+       * test/src/json-tests.el (json-serialize, json-insert)
+       (json-parse-string, json-parse-buffer): Declare.
+
+2018-03-09  Glenn Morris  <address@hidden>
+
+       * test/lisp/vc/vc-tests.el (w32-application-type): Fix declaration.
+
+2018-03-09  Paul Eggert  <address@hidden>
+
+       Fix string-to-number C-level mishandling
+
+       * src/sysdep.c (list_system_processes):
+       * src/xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
+       Defend against Fstring_to_number returning a float or a nonsense
+       integer.
+
+2018-03-09  Glenn Morris  <address@hidden>
+
+       Quieten compilation of some test/lisp files
+
+       * test/lisp/dired-tests.el (dired-test-bug27243-02)
+       (dired-test-bug27243-03, dired-test-bug27899)
+       (dired-test-with-temp-dirs): Remove unused local variables.
+       * test/lisp/hi-lock-tests.el (hi-lock-bug26666)
+       (hi-lock-test-set-pattern): Mark unused arguments.
+       * test/lisp/ses-tests.el (ses-tests-renamed-cells-row-insertion):
+       Remove unused global "ses-tests-trigger".
+       * test/lisp/simple-tests.el (line-number-at-pos-when-passing-point):
+       Remove unused local "pos".
+       * test/lisp/emacs-lisp/benchmark-tests.el (benchmark-tests):
+       Pacify compiler.
+       * test/lisp/emacs-lisp/package-tests.el (package-test-signed):
+       Replace obsolete function epg-configuration.
+       * test/lisp/ls-lisp-tests.el:
+       * test/lisp/eshell/em-ls-tests.el: Require dired.
+       * test/lisp/progmodes/ruby-mode-tests.el
+       (ruby-forward-sexp-skips-method-calls-with-keyword-names):
+       * test/lisp/vc/diff-mode-tests.el
+       (diff-mode-test-ignore-trailing-dashes): Replace interactive funcs.
+
+2018-03-08  Paul Eggert  <address@hidden>
+
+       Avoid losing info when formatting integers
+
+       * doc/lispref/numbers.texi (Integer Basics): Clarify that
+       out-of-range integers are treated as floating point only when the
+       integers are decimal.
+       * etc/NEWS: Mention changes.
+       * src/editfns.c (styled_format): Use %.0f when formatting %d or %i
+       values outside machine integer range, to avoid losing info.
+       Signal an error for %o or %x values that are too large to be
+       formatted, to avoid losing info.
+
+2018-03-08  Glenn Morris  <address@hidden>
+
+       Replace uses of the obsolete local-write-file-hooks
+
+       * lisp/net/quickurl.el (quickurl-reread-hook-postfix):
+       * lisp/progmodes/ebrowse.el (ebrowse-tree-mode)
+       (ebrowse-write-file-hook-fn):
+       * lisp/progmodes/glasses.el (glasses-mode):
+       * lisp/progmodes/vhdl-mode.el (vhdl-write-file-hooks-init):
+       * lisp/vc/ediff-merg.el (ediff-set-merge-mode):
+       * lisp/vc/ediff-util.el (ediff-setup):
+       Replace local-write-file-hooks, obsolete since 22.1,
+       with write-file-functions.
+
+2018-03-08  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This includes:
+       2018-03-08 fflush: be more paranoid about libio.h change
+       * lib/fpending.c: Copy from Gnulib.
+
+2018-03-08  Juri Linkov  <address@hidden>
+
+       * lisp/isearch.el (search-exit-option): Add option 'append'.
+
+       (isearch-pre-command-hook): Use it.
+
+       * doc/emacs/search.texi: Replace search-exit-option option nil with 
append.
+
+       https://lists.gnu.org/archive/html/emacs-devel/2018-03/msg00202.html
+
+2018-03-08  Charles A. Roelli  <address@hidden>
+
+       Add to "Completion Commands" Info node
+
+       * doc/emacs/mini.texi (Completion Commands): Mention other keys
+       for 'next-completion' and 'previous-completion', and explain 'q'
+       and 'z' which are relatively new additions.
+
+2018-03-08  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       cb0d40e (origin/emacs-26) Minor change in the manual
+       7e26d83 More minor changes in the manual
+       6851754 Replace some obsolete aliases in code
+       6bcb48c Replace some obsolete aliases in documentation
+       317da2a Minor improvements in manuals
+       61c1f80 Minor copyedits in display.texi
+       d523e4a Remove some unused spam.el variables
+       501808c Replace some obsolete aliases in code
+       19afff3 Replace some obsolete aliases in documentation
+       c797bc9 Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emac...
+       0efe0bd Obsolete eshell-cmpl-suffix-list
+       add48d2 More minor changes in the Glossary of the Emacs manual
+       f6bd7e0 Revert last commit
+       af4697f Define if-let* and derivatives as aliases for if-let etc
+       ec79bdc Minor fix in Emacs manual's Glossary
+
+2018-03-08  Eli Zaretskii  <address@hidden>
+
+       Fix 'window-text-pixel-size' when display properties are around
+
+       * src/xdisp.c (Fwindow_text_pixel_size): Correct the result when
+       there's a display property at the  TO position, and the call to
+       move_it_to overshoots.  (Bug#30746)
+
+2018-03-08  Michael Albinus  <address@hidden>
+
+       Add OpenDocument formats to Tramp file archives
+
+       * doc/misc/tramp.texi (Archive file names):
+       * lisp/net/tramp-archive.el (tramp-archive-suffixes):
+       Add OpenDocument formats.
+
+2018-03-07  Mike Kupfer  <address@hidden>
+
+       * lisp/mh-e/mh-e.el (mh-variant-set): Tweak failure message.
+
+       * lisp/mh-e/mh-utils.el (mh-find-path): Add missing part of previous.
+
+2018-03-07  Glenn Morris  <address@hidden>
+
+       Suppress "No MH variant found" message (bug#30669)
+
+       * lisp/mh-e/mh-e.el (mh-variant): Don't try to detect till needed.
+       * lisp/mh-e/mh-e.el (mh-version, mh-variant-p):
+       * lisp/mh-e/mh-comp.el (mh-insert-x-mailer):
+       Ensure mh-variant-in-use is set.
+
+2018-03-07  Paul Eggert  <address@hidden>
+
+       Update from Gnulib
+
+       This includes:
+       2018-03-07 maint: write-file-hooks -> before-save-hook
+       2018-03-05 binary-io: pacify gcc -Wunused-parameter
+       2018-03-05 fflush: adjust to glibc 2.28 libio.h removal
+       * build-aux/config.guess, build-aux/config.sub:
+       * build-aux/gitlog-to-changelog, build-aux/install-sh:
+       * build-aux/move-if-change, build-aux/update-copyright:
+       * doc/misc/texinfo.tex, lib/binary-io.h, lib/fpending.c:
+       * lib/stdio-impl.h: Copy from Gnulib.
+
+2018-03-07  Eli Zaretskii  <address@hidden>
+
+       Fix display of TABs in hscrolled windows with line numbers
+
+       * src/dispextern.h (struct it): New members tab_offset and
+       line_number_produced_p.
+       * src/xdisp.c (display_line): Don't set row->x to a negative value
+       if line numbers are being displayed.  (Bug#30582)
+       Reset the line_number_produced_p flag before laying out the glyph
+       row.
+       (x_produce_glyphs): Use the line_number_produced_p flag to decide
+       whether to offset the X coordinate due to line-number display.
+       Use the tab_offset member to restore the original TAB width for
+       alignment purposes.
+       (move_it_in_display_line_to): Don't produce line numbers when moving
+       in hscrolled window to the left of first_visible_x.
+       (maybe_produce_line_number): Set the line_number_produced_p flag.
+       (Bug#30584)
+       * src/term.c (produce_glyphs): Correct TAB width only when
+       line_number_produced_p flag is set.
+
+2018-03-06  Glenn Morris  <address@hidden>
+
+       Condition em-cmpl's setting of pcomplete-suffix-list
+
+       * lisp/eshell/em-cmpl.el (eshell-cmpl-initialize):
+       Only set pcomplete-suffix-list if it is defined.
+
+2018-03-05  Glenn Morris  <address@hidden>
+
+       Suppress some font-lock-fontify-buffer compiler warnings
+
+       * lisp/htmlfontify.el (hfy-force-fontification):
+       * lisp/progmodes/idlw-help.el (idlwave-help-fontify):
+       Suppress compiler warning from backwards compatibility branch.
+
+2018-03-05  Glenn Morris  <address@hidden>
+
+       Small auth-source-netrc-create fix
+
+       * lisp/auth-source.el (auth-source-netrc-create):
+       Fix handling of auth-source-netrc-use-gpg-tokens being a list.
+
+2018-03-05  Glenn Morris  <address@hidden>
+
+       * lisp/emacs-lisp/ewoc.el (ewoc-goto-node):
+       Simplify and quieten compiler.
+
+2018-03-05  Glenn Morris  <address@hidden>
+
+       Suppress some unused lexical variable warnings in eshell
+
+       * lisp/eshell/em-tramp.el (eshell/sudo):
+       * lisp/eshell/em-unix.el (eshell/time):
+       * lisp/eshell/esh-var.el (eshell/env):
+       Pretend to use "args" to quieten compiler.
+
+2018-03-05  Glenn Morris  <address@hidden>
+
+       Suppress some compiler warnings about pcomplete
+
+       * lisp/erc/erc-dcc.el, lisp/eshell/em-xtra.el:
+       Load pcomplete at run-time too, to silence compiler.
+
+2018-03-05  Glenn Morris  <address@hidden>
+
+       * lisp/pcmpl-rpm.el (pcmpl-rpm-all-query): Fix typo in previous.
+
+2018-03-04  Paul Eggert  <address@hidden>
+
+       uniqify -> uniquify
+
+       The latter spelling is more common both within Emacs and in
+       English-language sources in general (Bug#10048).
+       * lisp/eshell/esh-util.el (eshell-uniquify-list):
+       Rename from eshell-uniqify-list.  All callers changed.
+       * lisp/pcomplete.el (pcomplete-uniquify-list):
+       Rename from pcomplete-uniqify-list.  All callers changed.
+
+2018-03-04  Paul Eggert  <address@hidden>
+
+       Spelling fixes (Bug#10068)
+
+       * lisp/gnus/gnus-score.el (gnus-score-find-favorite-words):
+       Rename from gnus-score-find-favourite-words.
+       * lisp/hfy-cmap.el (hfy-fallback-color-map)
+       (hfy-rgb-txt-color-map, hfy-fallback-color-values):
+       * lisp/htmlfontify.el (hfy-color-vals, hfy-color):
+       Rename from names that used 'colour' instead of 'color'.
+
+2018-03-04  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       f2caf08ca6 ; Spelling fixes
+       f0e5f220b6 * lisp/progmodes/grep.el (zrgrep):
+       a0f71260f8 Minor copyedits in doc/emacs/text.texi
+       adfe2f580f Remove outdated comment in syntax.el
+       b80e15b6a6 Prevent Flyspell from changing unrelated words
+       e385599457 Avoid errors in flymake in builds --without-x
+       d691e30cb0 More improvements of the Emacs manual
+
+2018-03-04  Daniel Colascione  <address@hidden>
+
+       Rename marker_free_list to misc_free_list
+
+       * src/alloc.c: 'marker_free_list' -> 'misc_free_list' throughout
+
+2018-03-03  Glenn Morris  <address@hidden>
+
+       * lisp/epa-mail.el (epa-mail-default-recipients): Replace obsolete func.
+
+2018-03-03  Glenn Morris  <address@hidden>
+
+       Replace some obsolete functions in gnus
+
+       * lisp/gnus/mml-sec.el (mml-secure-epg-encrypt):
+       * lisp/gnus/smime.el (smime-ask-passphrase): Replace obsolete functions.
+
+2018-03-03  Bill Wohler  <address@hidden>
+
+       Add missing findex entries for recently removed kindex entries
+
+       * doc/misc/mh-e.texi:
+
+2018-03-03  Juri Linkov  <address@hidden>
+
+       * lisp/isearch.el (search-exit-option): Add options ‘shift-move’ and 
‘move’.
+
+       Change type from ‘boolean’ to ‘choice’.  Extend docstring.
+       (isearch-pre-move-point): New variable.
+       (isearch-pre-command-hook, isearch-post-command-hook):
+       Handle search-exit-option for values ‘move’ and ‘shift-move’.
+
+       * doc/emacs/search.texi (Not Exiting Isearch): Document new
+       values ‘shift-move’ and ‘move’ of search-exit-option.
+
+       https://lists.gnu.org/archive/html/emacs-devel/2018-03/msg00013.html
+
+2018-03-03  Glenn Morris  <address@hidden>
+
+       Quieten gud.el and gdb-mi.el compilation
+
+       * lisp/progmodes/gud.el (gud-gdb):
+       * lisp/progmodes/gdb-mi.el (gdb):
+       Suppress "unused lexical argument" warning.
+
+2018-03-03  Eli Zaretskii  <address@hidden>
+
+       Improve commentary in simple,el
+
+       * lisp/simple.el (next-error-last-buffer): Improve commentary.
+       (Bug#20489)
+
+2018-03-03  Evgeni Kolev  <address@hidden>
+
+       Fix font-lock in perl-mode
+
+       * lisp/progmodes/perl-mode.el (perl-font-lock-keywords-1): Prevent
+       the regexp from matching keywords if they start with a Perl sigil.
+       (Bug#30549)
+
+2018-03-02  Glenn Morris  <address@hidden>
+
+       Quieten eshell compilation
+
+       * lisp/eshell/em-dirs.el (eshell-dirs-initialize, eshell/pwd):
+       * lisp/eshell/em-script.el (eshell-script-initialize):
+       * lisp/eshell/em-unix.el (eshell/whoami):
+       * lisp/eshell/esh-proc.el (eshell/jobs): Mark unused arguments.
+
+2018-03-02  Glenn Morris  <address@hidden>
+
+       * lisp/gnus/gnus.el (image-load-path): Declare for without-x builds.
+
+2018-03-02  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       0213c8b (origin/emacs-26) mwheel minor consistency fix
+       82f12b2 * src/window.c (Frecenter): Improve commentary.
+       04da8f4 Fix downloading non-text files in EWW
+       832b9ec ; Spelling fixes
+       dd88499 ; Spelling fixes
+       3968f72 Rename some mwheel options, for consistency
+       d6e78de * lisp/vc/add-log.el (add-change-log-entry): Replace obsolete...
+       5fe0387 Improve the Emacs manual
+       56ab8e3 * lisp/dired-aux.el (dired-do-create-files): Doc fix.  (Bug#3...
+
+       Conflicts:
+               etc/NEWS
+               lisp/mwheel.el
+
+2018-03-02  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       304278c Further improvements on manuals
+
+2018-03-01  Noam Postavsky  <address@hidden>
+
+       Fix issues turned up by previous python.el change
+
+       See [1] for more discussion.
+       * lisp/progmodes/python.el (python--prettify-symbols-alist): Define
+       the obsolete alias before the variable proper, so that we correctly
+       get the user's settings regardless of which name they set.
+       (python-nav-end-of-statement): Add missing backslash.
+       (python-shell-send-file): Call `expand-file-name' before
+       `file-local-name', the expansion of "~" could be different on remote
+       filenames.
+       (python-mode): Declare prettify-symbols-alist instead of checking if
+       it's bound.  Use the non-obsolete python-prettify-symbols-alist name,
+       rather than checking if the obsolete name is bound (it always is too,
+       but the Emacs 24 byte compiler doesn't recognize that
+       define-obsolete-variable-alias defines a variable).
+
+       [1]: 
https://lists.gnu.org/archive/html/emacs-devel/2018-02/msg00826.html
+
+2018-03-01  Glenn Morris  <address@hidden>
+
+       * admin/automerge: Quieten initial reset.
+
+2018-03-01  Paul Eggert  <address@hidden>
+
+       Arrange for loaddefs files to be greppable
+
+       Without this change, ldefs-boot.el contains a couple of stray NUL
+       bytes, which cause it to be considered to be a non-text file by
+       tools like GNU grep.
+       * lisp/emacs-lisp/autoload.el (autoload-print-form):
+       Set print-escape-control-characters to t.
+
+2018-03-01  Paul Eggert  <address@hidden>
+
+       Improve octal-escape output in bool vectors and strings
+
+       * src/print.c (octalout): New function.
+       (print_vectorlike): When printing bool vectors, use
+       octal escapes for control characters when
+       print-escape-control-characters is non-nil, so that
+       the printed representation avoids encoding issues.
+       Rename locals to avoid byte-vs-char confusion.
+       (print_object): Don't output unnecessary zeros when
+       printing octal escapes.  Simplify by using octalout.
+
+2018-03-01  Glenn Morris  <address@hidden>
+
+       Quieten nnir.el compilation
+
+       * lisp/gnus/nnir.el (gnus-inhibit-demon, gnus-article-decode-hook):
+       Declare dynamic variables.
+       (nnir-request-group, nnir-retrieve-headers)
+       (nnir-request-move-article, nnir-request-update-mark)
+       (nnir-run-swish++, nnir-run-swish-e, nnir-run-namazu)
+       (nnir-run-notmuch, nnir-registry-action)
+       (nnir-request-create-group, nnir-request-delete-group)
+       (nnir-request-list, nnir-request-scan): Mark unused arguments.
+       (nnir-warp-to-article, nnir-run-imap, nnir-run-gmane)
+       (nnir-get-active): Remove unused local variables.
+
+2018-03-01  Glenn Morris  <address@hidden>
+
+       * lisp/progmodes/sql.el (sql-comint-oracle): Silence compiler.
+
+2018-03-01  Glenn Morris  <address@hidden>
+
+       Quieten url-auth.el compilation
+
+       * lisp/url/url-auth.el (url-digest-auth-nonce-count):
+       Mark unused argument.
+
+2018-03-01  Glenn Morris  <address@hidden>
+
+       Quieten ses.el compilation
+
+       * lisp/ses.el (ses--edit-cell-completion-at-point-function)
+       (ses--read-printer-completion-at-point-function):
+       Mark unused arguments.
+
+2018-03-01  Paul Eggert  <address@hidden>
+
+       make-docfile: minor fixes and cleanups
+
+       * lib-src/make-docfile.c: Include c-ctype.h.
+       (read_c_string_or_comment, write_c_args, scan_c_stream, skip_white)
+       (read_lisp_symbol, scan_lisp_file):
+       Prefer c_isspace etc. to listing characters by hand.
+       (read_c_string_or_comment): Simplify.
+       (scan_c_stream, read_lisp_symbol): Use true for boolean 1.
+       (scan_c_stream): Fix typo (c >= 'Z' && c <= 'Z').
+       Minor rewrites to avoid duplicate code.
+       (scan_c_stream, read_lisp_symbol, scan_lisp_file):
+       Avoid infloop if at EOF.
+       (skip_white, read_lisp_symbol): Don’t stuff getc result into
+       ‘char’, as this mishandles EOF.
+
+2018-03-01  Glenn Morris  <address@hidden>
+
+       * lisp/emulation/viper-ex.el (ex-cmd-read-exit): Silence compiler.
+
+2018-03-01  Glenn Morris  <address@hidden>
+
+       Quieten defun-mh compilation
+
+       * lisp/mh-e/mh-acros.el (defun-mh):
+       Rewrite so the compiler can see it always defines target function.
+
+2018-03-01  Glenn Morris  <address@hidden>
+
+       Quieten mh-compat compilation
+
+       * lisp/mh-e/mh-compat.el (mh-assoc-string)
+       (mh-replace-regexp-in-string): Silence compiler warnings.
+
+2018-03-01  Glenn Morris  <address@hidden>
+
+       Simplify mh-thread-set-tables
+
+       * lisp/mh-e/mh-thread.el (mh-thread-set-tables):
+       Rewrite to simplify and remove compiler warning.
+
+2018-03-01  Glenn Morris  <address@hidden>
+
+       Use select-message-coding-system in mh-comp
+
+       * lisp/mh-e/mh-comp.el (mh-send-letter):
+       Use select-message-coding-system.  (Bug#30060)
+
+2018-03-01  Eli Zaretskii  <address@hidden>
+
+       Remove redundant test in fns.c
+
+       * src/fns.c (extract_data_from_object): Remove redundant
+       CHECK_BUFFER test.
+
+2018-02-28  Glenn Morris  <address@hidden>
+
+       Quieten without-x org compilation
+
+       * lisp/org/org.el (image-refresh):
+       * lisp/org/ox-odt.el (clear-image-cache, image-size): Declare.
+
+2018-02-28  Glenn Morris  <address@hidden>
+
+       Quieten compilation of octave.el
+
+       * lisp/progmodes/octave.el (compilation-forget-errors): Re-declare.
+
+2018-02-28  Glenn Morris  <address@hidden>
+
+       * configure.ac (with_gconf): Respect --without-all.
+
+2018-02-28  Glenn Morris  <address@hidden>
+
+       Quieten eshell compilation
+
+       * lisp/eshell/em-tramp.el: Require esh-cmd.
+       * lisp/eshell/esh-ext.el: Requie esh-io at runtime too.
+
+2018-02-28  Glenn Morris  <address@hidden>
+
+       * lisp/url/url-handlers.el (mm-charset-to-coding-system): Declare.
+
+2018-02-28  Glenn Morris  <address@hidden>
+
+       Fix header comment in generated bovine grammar file
+
+       * lisp/cedet/semantic/bovine/grammar.el (bovine--make-parser-1):
+       Fix header comment in generated scm-by.el.
+
+2018-02-28  Glenn Morris  <address@hidden>
+
+       Quieten cedet "might not be defined at runtime" compile warnings
+
+       * admin/grammars/scheme.by (semantic-parse-region):
+       * lisp/cedet/ede.el (ede--project-inode):
+       * lisp/cedet/semantic/texi.el (semantic-analyze-context):
+       Declare.
+
+2018-02-28  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       fd50238 (origin/emacs-26) * doc/lispref/streams.texi (Output Variable...
+       769ea57 Use "GTK+" where applicable in the manual
+       5e69219 Document print-escape-control-characters
+       c00fea9 Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emac...
+       a2ab0d0 * doc/emacs/killing.texi (Rectangles): Don't use @key for cha...
+       6288c3d * lisp/emulation/viper.el: Unbreak it.
+       bf3535e More fixes in the Emacs manual
+       c87d04e Avoid aborts in 'md5'
+       9743f48 Mark keys consistently in manuals
+       ce557a9 Remove @key{} markups from @kindex entries in manuals
+       71243f0 * doc/emacs/display.texi (Standard Faces): Fix markup of inde...
+       7a069f3 Fix @kindex entries in manuals
+       6218933 Fix @cindex entries in manuals
+       57c9f12 Merge branch 'emacs-26' of git.sv.gnu.org:/srv/git/emacs into...
+       e415309 Fix @cindex entries in org.texi
+       560a23e Document reserved keys
+       105d085 * doc/misc/ebrowse.texi: Use @key{} for keys.
+
+       Conflicts:
+               doc/misc/tramp.texi
+               etc/NEWS
+
+2018-02-28  Michael Albinus  <address@hidden>
+
+       Some minor Tramp tweaks
+
+       * lisp/net/tramp-adb.el (tramp-adb-get-ls-command): Fix docstring.
+
+       * lisp/net/tramp-sh.el (tramp-vc-registered-read-file-names):
+       Quote file.
+
+       * lisp/net/tramp.el (tramp-handle-substitute-in-file-name):
+       Make it more robust.
+
+2018-02-28  Dmitry Gutov  <address@hidden>
+
+       Support PREDICATE in ido-read-buffer
+
+       * lisp/ido.el (ido-predicate): New variable.
+       (ido-read-buffer): Bind it.
+       (ido-make-buffer-list): Use it.
+
+2018-02-27  Dmitry Gutov  <address@hidden>
+
+       xref--next-error-function: Move xref's window point
+
+       * lisp/progmodes/xref.el (xref--next-error-function): Move
+       xref's window point if it's visible.  When we don't do that,
+       navigation can start looping after a while.
+
+2018-02-27  Dmitry Gutov  <address@hidden>
+
+       Fix xref--next-error-function behavior WRT current buffer
+
+       * lisp/progmodes/xref.el (xref--show-location): Make sure to
+       make the target window selected at the end, and its buffer
+       current (bug#20489).
+
+2018-02-27  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/mm-decode.el: Use lexical-binding and use cl-lib
+
+       (mm-display-parts): Remove unused arg 'no-default'.  Use 'cond'.
+       (mm-display-external): Use closures rather than `(lambda ...).
+       Don't bother with 'lexical-let'.
+       (mm-insert-part): No need for string-to-multibyte now that
+       'insert' will do that for us now (it used to behave more like
+       string-make-multibyte).
+       (mm-pipe-part): Remove unused var 'name'.
+       (shr-width, shr-content-function, shr-inhibit-images): Declare.
+       (mm-shr): Use a closure rather than `(lambda ...).
+
+2018-02-27  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/mm-extern.el: Use lexical-binding
+
+       Don't require 'cl'.
+       (mm-extern-anon-ftp): Remove unused var 'mode'.
+
+2018-02-27  Noam Postavsky  <address@hidden>
+
+       Fix python.el for Emacs 24, bump ELPA version to 0.26.1 (Bug#30633)
+
+       Since python.el is distributed via GNU ELPA, it should be functional
+       in earlier Emacs versions.  Also fix some compile warnings.
+       * lisp/progmodes/python.el: Bump version to 0.26.1.  Define
+       `prog-first-column' and `file-local-name' also at compile time, as
+       needed.
+       (inferior-python-mode-hook): Declare for the benefit of Emacs 24.3.
+       (python-nav-end-of-statement): Fix format string for assertion error.
+       (python-shell-tramp-refresh-process-environment): Don't `function'
+       quote a symbol which might not be fbound.
+       (python-mode): Only use prettify-symbols settings if they're bound.
+
+2018-02-27  Glenn Morris  <address@hidden>
+
+       * lisp/nxml/nxml-mode.el (nxml-mode): Remove warning due to #'.
+
+2018-02-27  Glenn Morris  <address@hidden>
+
+       Quieten without-x gnus compilation
+
+       * lisp/gnus/gnus-group.el (image-load-path-for-library):
+       * lisp/gnus/gnus-sum.el (image-load-path-for-library):
+       * lisp/gnus/message.el (image-load-path-for-library): Declare.
+       * lisp/gnus/gnus-cloud.el (gnus-group-refresh-group):
+       * lisp/gnus/mml.el (image-property): Autoload.
+
+2018-02-27  Juri Linkov  <address@hidden>
+
+       * lisp/simple.el (next-error-find-buffer-function): Set default to 
#'ignore.
+
+       (next-error-find-buffer): Don't check next-error-find-buffer-function
+       for nil.  (Bug#20489)
+
+2018-02-27  Stefan Monnier  <address@hidden>
+
+       * lisp/dired.el (dired-get-filename): Don't string-to-multibyte
+
+       We don't need to convert manually to multibyte now that Emacs doesn't 
silently
+       convert (uni)bytes into latin-N chars depending on locale any more.
+
+2018-02-27  Glenn Morris  <address@hidden>
+
+       Remove last vestiges of obsolete font-lock-face-attributes
+
+       * lisp/ps-print.el (ps-font-lock-face-attributes): Remove function.
+       (ps-build-reference-face-lists):
+       No longer call ps-font-lock-face-attributes.
+       * lisp/font-lock.el (font-lock-face-attributes):
+       Remove stale declaration.
+
+2018-02-27  Glenn Morris  <address@hidden>
+
+       Remove free variable warning when compiling viper using .el files
+
+       * lisp/emulation/viper-cmd.el (viper-saved-mark): Move definition...
+       * lisp/emulation/viper-util.el (viper-saved-mark): ... to here.
+
+2018-02-27  Aaron Jensen  <address@hidden>
+
+       Require a larger stack size for threads (bug#30364)
+
+       * src/systhread.c (sys_thread_create) [THREADS_ENABLED && HAVE_PTHREAD]:
+       Require at least 8MB stack size for x64 and 4MB for x86.
+
+2018-02-27  Paul Eggert  <address@hidden>
+
+       Update from gnulib
+
+       This includes:
+       2018-02-27 environ: fix link error on 32-bit Cygwin
+       * doc/misc/texinfo.tex, lib/unistd.in.h: Copy from gnulib.
+
+2018-02-27  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/mm-util.el: Use lexical-binding and use cl-lib
+
+       (mm-iso-8859-x-to-15-region): Remove unused var 'charset'.
+       (mm-with-unibyte-buffer, mm-with-multibyte-buffer): Use 'declare'.
+       (mm-with-unibyte-current-buffer): Remove.
+
+2018-02-27  Michael Albinus  <address@hidden>
+
+       Add ".msu" to Tramp file archives
+
+       * doc/misc/tramp.texi (Archive file names):
+       * lisp/net/tramp-archive.el (tramp-archive-suffixes):  Add ".msu".
+
+2018-02-26  Glenn Morris  <address@hidden>
+
+       * lisp/dired-aux.el (dired-create-destination-dirs): Doc fix.
+
+2018-02-26  Mathieu Othacehe  <address@hidden>  (tiny change)
+
+       Add coreutils 'ls' support for tramp adb
+
+       * lisp/net/tramp-adb.el (tramp-adb-ls-toolbox-regexp): Allow '.'
+       character in file permissions. It indicates an SELinux security
+       context.
+       (tramp-adb-get-ls-command): Detect Coreutils version of 'ls'.
+       Use 'ls -1' instead of passing COLUMNS=1 env variable. This is
+       isofunctional.  (Bug#30594)
+
+2018-02-26  Michael Albinus  <address@hidden>
+
+       Fix problem in tramp-handle-substitute-in-file-name
+
+       * lisp/net/tramp.el (tramp-handle-substitute-in-file-name): Concat "/"
+       only for local file "~".
+
+2018-02-26  Glenn Morris  <address@hidden>
+
+       Remove leading * from two defcustom doc strings
+
+       * lisp/gnus/mm-util.el (mm-extra-numeric-entities):
+       * lisp/progmodes/cperl-mode.el (cperl-indent-subs-specially):
+       Remove obsolete leading * from defcustom doc string.
+
+2018-02-26  Glenn Morris  <address@hidden>
+
+       Quieten without-x, without-xml2 builds
+
+       * lisp/help.el (x-display-pixel-height, x-display-pixel-width):
+       * lisp/image.el (image-flush, image-size):
+       * lisp/textmodes/sgml-mode.el (libxml-parse-html-region):
+       Declare for compiler.
+
+2018-02-26  Glenn Morris  <address@hidden>
+
+       Quieten without-x mwheel.el compilation
+
+       * lisp/mwheel.el (mwheel-tilt-scroll-p, mwheel-flip-direction)
+       (mwheel-scroll-left-function, mwheel-scroll-right-function)
+       (mouse-wheel-left-event, mouse-wheel-right-event):
+       Move definitions before use.
+
+2018-02-26  Glenn Morris  <address@hidden>
+
+       * lisp/net/zeroconf.el (dbus-debug): Declare for builds without dbus.
+
+2018-02-26  Glenn Morris  <address@hidden>
+
+       Quieten without-x lisp compilation
+
+       * lisp/international/fontset.el (fontset-alias-alist):
+       * lisp/term/ns-win.el (mouse-wheel-scroll-amount)
+       (mouse-wheel-progressive-speed): Declare for without-x builds.
+
+2018-02-26  Glenn Morris  <address@hidden>
+
+       * lisp/net/rcirc.el (rcirc-prompt-start-marker): Define before using.
+
+       * lisp/term/ns-win.el (ns-version-string): Declare for non-ns builds.
+
+2018-02-26  Glenn Morris  <address@hidden>
+
+       Remove compiler warnings due to #'
+
+       * lisp/gnus/mm-decode.el (mm-convert-shr-links):
+       * lisp/ps-print.el (ps-print-region-function):
+       Remove compiler warnings due to #'.
+
+2018-02-26  Glenn Morris  <address@hidden>
+
+       Update some lisp function declarations
+
+2018-02-26  Daniel Colascione  <address@hidden>
+
+       Make bare "make" in src actually build emacs again
+
+       * src/Makefile.in (all): Move target ahead of dep-file inclusion.
+
+2018-02-26  Paul Eggert  <address@hidden>
+
+       Update from gnulib
+
+       * build-aux/config.guess, build-aux/config.sub: Copy from gnulib.
+
+2018-02-24  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       560a23e (origin/emacs-26) Document reserved keys
+       b0be19b ; * doc/emacs/xresources.texi (Table of Resources): Fix last ...
+
+2018-02-24  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       7e7f2ea (origin/emacs-26) * src/keyboard.c (syms_of_keyboard): Doc fi...
+       c0676d4 Improve documentation of X resources
+       d806d69 ; Use @minus for negative numbers in some texi files
+       4a8ea7d * lisp/international/mule.el (keyboard-coding-system): Doc fix.
+       8a73b80 Minor doc fixes, mostly for timestamp issues
+       361a8b9 * doc/emacs/mini.texi (Completion Styles): Improve indexing.
+       2dc24d5 Fix @findex and @vindex entries in manuals
+       76f5242 Document, in the Elisp manual, how to get a character's raw s...
+       5fb2957 Improvements in the Emacs manual
+       de17b8e Tiny doc/misc markup fixes
+
+2018-02-24  Robert Pluim  <address@hidden>
+
+       Describe 'view-lossage' changes in its docstring and NEWS
+
+       * lisp/help.el (view-lossage): Mention that this now uses the same
+       format as `edit-last-kbd-macro'.  (Bug#30560)
+
+       * etc/NEWS: Improve the wording of the entry.
+
+2018-02-23  Paul Eggert  <address@hidden>
+
+       * .gitignore: revert latest change; not currently needed
+
+2018-02-23  Glenn Morris  <address@hidden>
+
+       * lisp/vc/vc-git.el: Silence compiler.
+
+       * admin/automerge: Quieten initial pull if start with reset.
+
+2018-02-22  Eli Zaretskii  <address@hidden>
+
+       Fix documentation from recent changes
+
+       * lisp/isearch.el (isearch-yank-symbol-or-char): Doc fix.
+
+       * doc/emacs/search.texi (Isearch Yank): Fix wording.
+       * doc/emacs/building.texi (Grep Searching): Fix last change.
+
+2018-02-22  Daniel Colascione  <address@hidden>
+
+       Add more build outputs to .gitignore
+
+       * .gitignore: Add more generated files
+
+2018-02-22  Daniel Colascione  <address@hidden>
+
+       Add isearch-yank-symbol-or-char
+
+       * doc/emacs/search.texi (Isearch Yank): Document new
+       function, keybindings.
+
+       * etc/NEWS: Mention isearch changes.
+
+       * lisp/isearch.el (isearch--yank-char-or-syntax): New function.
+       (isearch-yank-word-or-char): Call it.
+       (isearch-yank-symbol-or-char): New function.
+       (isearch-mode-map): Change 'C-M-w' binding from
+       'isearch-del-char' to isearch-yank-symbol-or-char; add 'C-M-d'
+       binding for 'isearch-del-char'.
+
+2018-02-22  Daniel Colascione  <address@hidden>
+
+       Remove unnecessary explicit subword-mode use from isearch
+
+       * lisp/isearch.el (isearch-yank-word-or-char): Remove explicit
+       use of subword-mode. These days, subword-mode use is an
+       automatic side effect of forward-word.
+
+2018-02-22  Glenn Morris  <address@hidden>
+
+       * lisp/vc/vc-git.el: Avoid bootstrap errors since recent grep change.
+
+       The introduction of grep-find-hide-properties caused an
+       "invalid read syntax" failure when saving ja-dic.el,
+       when vc-git.el loaded grep.el.  Fortunately, vc-git doesn't
+       actually need to load grep when being compiled.
+
+2018-02-22  Stefan Monnier  <address@hidden>
+
+       * test/lisp/emacs-lisp/package-tests.el: Improve signature tests
+
+       (package-test-signed): Don't rely on return value of 'package-install'.
+       Make sure 'package-install' does indeed install the package.
+
+2018-02-22  Juri Linkov  <address@hidden>
+
+       * lisp/help.el (view-lossage): Use the same format as in 
edit-last-kbd-macro.
+
+       Call comment-indent with let-bound comment-start and comment-column.
+       (Bug#30560)
+
+2018-02-22  Juri Linkov  <address@hidden>
+
+       * lisp/progmodes/grep.el (grep-find-hide): New defcustom (bug#30503).
+
+       (grep-find-hide-properties): New variable.
+       (grep-mode-font-lock-keywords): Put grep-find-hide-properties
+       on part of grep command line.
+       (grep-find-show): New function.
+       * doc/emacs/building.texi (Grep Searching): Document grep-find-hide.
+
+2018-02-22  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       83187cd (origin/emacs-26) Skip mouse-face overlap check when mouse-fa...
+       a6d8f2b Fix capitalization of "Mail-Followup-To"
+       f9640f9 * lisp/progmodes/grep.el (grep-compute-defaults):
+       3a26c8a Semantic manual fixes
+       106a9f6 More improvements in the Emacs manual
+       244db85 * doc/misc/viper.texi (File and Buffer Handling): Add missing...
+       f0d6a16 Fix documentation of 'x-underline-at-descent-line'
+       69a8f45 * lisp/textmodes/flyspell.el (flyspell-get-word): Doc fix.
+       05214c6 Correct variable markup in manuals
+       355c644 Improve the "Sending Mail" chapter of Emacs manual
+
+       Conflicts:
+               src/nsterm.m
+               src/w32term.c
+
+2018-02-22  Alexei Khlebnikov  <address@hidden>
+
+       Fix for: "25.0.50; auto-revert-mode breaks git rebase" (Bug#21559)
+
+       * lisp/autorevert.el (auto-revert-handler):
+       Set "revert-buffer-in-progress-p" flag before calling
+       "vc-refresh-state".
+
+       * lisp/vc/vc-git.el (vc-git-command):
+       If "revert-buffer-in-progress-p" flag is set, prepend
+       "GIT_OPTIONAL_LOCKS=0" to "process-environment".  (Bug#21559)
+
+2018-02-22  Michael Albinus  <address@hidden>
+
+       Fix Bug#30533
+
+       * lisp/net/ange-ftp.el (ange-ftp-file-regular-p)
+       (ange-ftp-real-file-regular-p): New defuns.  (Bug#30533)
+
+2018-02-21  Glenn Morris  <address@hidden>
+
+       * admin/automerge (merge): Report no. of commits if too few.
+
+2018-02-21  Glenn Morris  <address@hidden>
+
+       Speed up parallel make check by testing slower files first
+
+       * test/Makefile.in (SLOW_TESTS): New variable.
+       (ELFILES): Move slow tests to the front.
+
+2018-02-21  Glenn Morris  <address@hidden>
+
+       * admin/automerge: Speed up check phase.
+
+2018-02-21  Juri Linkov  <address@hidden>
+
+       * lisp/simple.el (next-error-find-buffer-function): New defcustom.
+
+       (next-error-last-buffer): Make variable buffer-local.
+       (next-error-buffer-on-selected-frame): New function.
+       (next-error-find-buffer): Use next-error-find-buffer-function
+       at the first step instead of ad-hoc logic of using one window
+       on the selected frame.
+       (next-error, next-error-internal): Set default value of
+       next-error-last-buffer.  Display message with the name of last
+       next-error buffer.
+       (next-error-select-buffer): New command.
+       (Bug#20489)
+
+2018-02-21  Juri Linkov  <address@hidden>
+
+       * lisp/vc/vc-dispatcher.el (vc-do-command): Bind message-truncate-lines 
to t
+
+       to keep entire commands in *Messages* but avoid resizing the echo area.
+       Rephrase messages in a such way that the important parts are
+       at the beginning.  (Bug#19045)
+
+2018-02-21  Eli Zaretskii  <address@hidden>
+
+       Another fix for cross-references
+
+       * doc/emacs/package.texi (Package Installation): Fix references to
+       "Early Init".  (Bug#30552)
+
+2018-02-20  Paul Eggert  <address@hidden>
+
+       Port recent MAX_RW_COUNT checks to POSIX
+
+       * src/sysdep.c (MAX_RW_COUNT): Verify that it fits in POSIX standard
+       types, to go along with already-existing checks for MS-Windows types.
+       (emacs_intr_read): eassert on all platforms, not just MS-Windows.
+
+2018-02-20  Paul Eggert  <address@hidden>
+
+       Update from gnulib
+
+       This includes:
+       2018-02-18 warnings: Add support for Objective C
+       2018-02-03 stdlib: Fix compilation error on OpenIndiana
+       * lib/gnulib.mk.in: Regenerate.
+       * lib/stdlib.in.h, m4/getloadavg.m4, m4/stdlib_h.m4, m4/warnings.m4:
+       Copy from gnulib.
+
+2018-02-20  Sam Steingold  <address@hidden>
+
+       command-history-mode inherits from special-mode
+
+       (command-history-mode-map): Add `special-mode-map' to parents.
+       (command-history-mode): Parent is `special-mode', not
+       `fundamental-mode', set `revert-buffer-function'.
+       (command-history-revert): Define for `revert-buffer-function'.
+
+2018-02-20  Eli Zaretskii  <address@hidden>
+
+       Fix reference in Emacs manual
+
+       * doc/emacs/custom.texi (Early Init File): Fix reference to ELisp
+       manual.  (Bug#30552)
+
+2018-02-20  Paul Eggert  <address@hidden>
+
+       Fix false alarm with recent GCC x86
+
+       * src/lread.c (Fload): Use UNINIT to pacify -Wmaybe-uninitialized
+       false alarm on Fedora 27 x86 with GCC 7.3.1 20180130 (Red Hat 7.3.1-2).
+
+2018-02-20  Sam Steingold  <address@hidden>
+
+       ns_appsrc is not disjoint with srcdir/ns_appsrc
+
+       (links): Avoid "file already exists" errors
+       by removing the existing file.
+
+2018-02-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       226aca3 (origin/emacs-26) Fix documentation of 'flyspell-auto-correct...
+       a8c8434 * doc/emacs/misc.texi (Saving Emacs Sessions): Fix markup.
+       275e735 More changes in the Emacs manuals
+       d962be5 More fixes in the Emacs manual
+       6dc2846 * src/data.c (Faref): Fix a typo in the doc string.  (Bug#30510)
+       36e729f Minor edit in tramp.texi
+       6537f99 ; Fix oversight from last commit
+       eb94588 ; * doc/emacs/maintaining.texi: Fix two typos.
+       258135f More improvements in the Emacs manual
+       f138bca Improve documentation of 'electric-pair-mode'
+       f74ab96 ; Spelling and grammar fixes.
+       42f9dc4 ; * lisp/textmodes/flyspell.el (flyspell-auto-correct-word): ...
+
+2018-02-19  Eli Zaretskii  <address@hidden>
+
+       Add assertion to guard 'read' calls on MS-Windows
+
+       * src/sysdep.c (emacs_intr_read): Assert that NBYTES never
+       overflows a 32-bit int.
+
+2018-02-19  Michael Albinus  <address@hidden>
+
+       Add ".xpi" to Tramp file archives
+
+       * doc/misc/tramp.texi (Archive file names):
+       * lisp/net/tramp-archive.el (tramp-archive-suffixes): Add ".xpi".
+
+2018-02-18  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/elisp-mode.el (eval-sexp-add-defvars): Don't 
macroexpand.
+
+       Otherwise it breaks C-M-x on (progn (defmacro x ..) (... (x ...))).
+       Furthermore, many callers do their own macroexpansion anyway.
+       (elisp--eval-last-sexp): Do macroexpansion to make up for it.
+
+2018-02-17  Stefan Monnier  <address@hidden>
+
+       * lisp/vc/diff-mode.el (diff-wiggle): New command.
+
+2018-02-17  Stefan Monnier  <address@hidden>
+
+       * lisp/startup.el (load-user-init-file): Use 
condition-case-unless-debug.
+
+       (argv, argi): Silence compiler warning.
+
+2018-02-17  Stefan Monnier  <address@hidden>
+
+       * lisp/calendar/icalendar.el: Fix compilation warnings
+
+       (icalendar-export-region): Remove unused vars 'start', 'sum', and
+       'contents-n-summary'.
+       (icalendar--parse-summary-and-rest): Remove unused var 'pos-sum' and 
'sum'.
+       (icalendar--convert-float-to-ical): Use calendar-let* to bind vars
+       'date' and 'entry'.
+       (icalendar--convert-non-recurring-all-day-to-diary):
+       Remove 'event' arg.  Update callers.
+       (icalendar--convert-non-recurring-not-all-day-to-diary): Remove 'event'
+       and 'dtend-dec' args.  Update callers.
+
+2018-02-17  Glenn Morris  <address@hidden>
+
+       * doc/lispref/package.texi (Packaging Basics): Fix xref.
+
+2018-02-17  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       e5a2933 (origin/emacs-26) lisp/vc/: documentation fixes
+       f21f8e6 Document 'desktop-files-not-to-save'
+       d8917eb Improve documentation of Profiling features
+       b228839 Improve indexing of "performance" in ELisp manual
+       ab67b3e Minor change in Emacs manual's VC chapter
+       c352434 Avoid memory corruption with specpdl overflow + edebug (Bug#3...
+       593bbda Document comment-fill-column in the manual (Bug#11636)
+       bd4cc8d * doc/emacs/dired.texi (Marks vs Flags): Copyedits.
+       69107f3 ; Fix doc typos related to indefinite articles
+       aaad1e6 Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emac...
+       5906418 More fixes for the Emacs manual
+       9ab3df1 ; Fix doc typos related to indefinite articles
+       66a4e65 ; Fix doc typos related to indefinite articles
+       35e5c57 ; Fix doc typos related to indefinite articles
+
+2018-02-17  Noam Postavsky  <address@hidden>
+
+       Use pkg-config to find lcms2 CFLAGS and LIBS (Bug#30346)
+
+       * configure.ac: Use EMACS_CHECK_MODULES fors LCMS2 rather than
+       AC_SEARCH_LIBS.
+       * src/Makefile.in: Get LCMS2_LIBS and LCMS2_CFLAGS from configure,
+       instead of just LIBLCMS2.
+
+2018-02-17  Allen Li  <address@hidden>
+
+       Preserve special abbrev properties when writing
+
+       Fixes bug#29924
+
+       * lisp/abbrev.el (abbrev--write): Write abbrev properties when set.
+
+2018-02-17  Alan Third  <address@hidden>
+
+       Fix modifier key handling on macOS
+
+       * configure.ac: Use the Carbon framework on macOS.
+       * src/nsterm.m (ns_get_shifted_character) [NS_IMPL_COCOA]: New function.
+       (EmacsView::keyDown) [NS_IMPL_COCOA]: Use ns_get_shifted_character
+       when we have shift style modifiers.
+
+2018-02-17  Eli Zaretskii  <address@hidden>
+
+       Make echo-area buffers  almost always multibyte
+
+       * src/xdisp.c (setup_echo_area_for_printing, set_message_1): Ensure
+       the echo-area buffer is multibyte, unless
+       unibyte-display-via-language-environment is non-nil, and the text
+       we are to display is or could be unibyte.  (Bug#30405)
+
+2018-02-17  Radon Rosborough  <address@hidden>
+
+       Add early init file, stop package-initialize insertion
+
+       Discussion on emacs-devel leading up to this change (approximately 150
+       messages):
+
+       - https://lists.gnu.org/archive/html/emacs-devel/2017-08/msg00154.html
+       - https://lists.gnu.org/archive/html/emacs-devel/2017-08/msg00433.html
+       - https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00023.html
+       - https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00599.html
+       - https://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00332.html
+
+       * lisp/startup.el (early-init-file): New variable.
+       (load-user-init-file): New function.
+       (command-line): Load the early init file using `load-user-init-file'.
+       Move the check for an invalid username to just before that, and move
+       the initialization of the package system to just after.  Load the
+       regular init file using `load-user-init-file'.
+       * lisp/emacs-lisp/package.el (package--ensure-init-file): Remove
+       definition, usage, and documentation.
+       (package--init-file-ensured): Remove definition and usage.
+
+       * src/lread.c (Vuser_init_file): Note change in semantics due to its
+       usage while loading the early init file.
+
+       * doc/emacs/custom.texi: Document early init file.
+       * doc/emacs/package.texi: Document changes to when package-initialize
+       is called.  Change terminology for package 'loading'.
+       * doc/lispref/os.texi: Document early init file.  Update startup
+       summary.
+       * doc/lispref/package.texi: Document changes to when
+       package-initialize is called, and advise against calling it in the
+       init file.  Change terminology for package 'loading'.
+       * doc/misc/org.texi: Don't recommend to call package-initialize in the
+       init file.
+
+2018-02-17  Alan Mackenzie  <address@hidden>
+
+       Fix the change from 2018-02-15 which didn't mention literals
+
+       * doc/emacs/programs.texi (Left Margin Paren): Document that opening
+       delimiters at column 0 which are inside strings or comments aren't 
regarded as
+       defun starts.
+
+2018-02-16  Glenn Morris  <address@hidden>
+
+       Quieten compilation of icalendar.el
+
+       * lisp/calendar/icalendar.el (icalendar-import-buffer)
+       (icalendar--convert-ical-to-diary, icalendar--add-diary-entry):
+       Eliminate "Lexical argument shadows the dynamic variable" warning.
+
+2018-02-16  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       a06a8ed (origin/emacs-26) ; * lisp/vc/vc-git.el (vc-git--program-vers...
+       edc06ad Make 'byte-compile-error-on-warn' a safe file variable
+       9f5d8da ; * lisp/textmodes/flyspell.el (flyspell-auto-correct-word): ...
+       f73905a Fix the doc string of flyspell-auto-correct-word
+       e9c7ddc Improve the MS-Windows appendix of the Emacs manual
+       6ddb4bd Fix 'vc-git--program-version'
+       63c93f7 Fix typos and wording in the Emacs manual
+       42f15b0 * doc/emacs/programs.texi (Semantic): Order programming langu...
+       b46be29 More improvements for the Emacs manual
+       874c0ed Minor wording change in Emacs manual
+       53511f9 Another set of changes for the manual
+       78426b8 Improvements on tramp.texi
+       0dca618 Tramp minor doc fixes
+
+       Conflicts:
+               doc/misc/tramp.texi
+
+2018-02-16  Matthias Dahl  <address@hidden>
+
+       Fix wait_reading_process_output wait_proc hang
+
+       * src/process.c (read_process_output): Track bytes read from
+       a process.
+       (wait_reading_process_output): If called recursively through
+       timers and/or process filters via accept-process-output, it is
+       possible that the output of wait_proc has already been read by
+       one of those recursive calls, leaving the original call hanging
+       forever if no further output arrives through that fd and no
+       timeout has been set.  Fix that by using the process read
+       accounting to keep track of how many bytes have been read and
+       use that as a condition to break out of the infinite loop and
+       return to the caller as well as to calculate the proper return
+       value (if a wait_proc is given that is).
+
+       * src/process.h (struct Lisp_Process): Add nbytes_read to track
+       bytes read from a process.
+
+2018-02-16  Aaron Jensen  <address@hidden>
+
+       Don't flash previous buffer when connecting with emacsclient
+
+       * lisp/server.el (server-execute): Accept lambda for creating
+       frame rather than frame.  Ensure newly created tty frame
+       initially shows the correct buffer.
+       (server-process-filter): Pass a lambda to server-execute to create
+       a frame.  (Bug#24218)
+
+2018-02-15  Alan Mackenzie  <address@hidden>
+
+       Document open-paren-in-column-0-is-defun-start being of less importance
+
+       * doc/emacs/programs.texi (Left Margin Paren): Update to reflect the 
recent
+       change in syntax.c, whereby a paren at column 0 is no longer taken as a
+       beginning of defun in moving backwards over comments.
+
+2018-02-14  Stefan Monnier  <address@hidden>
+
+       * lisp/calendar/diary-lib.el (diary-remind): Fix bug#30455.
+
+       (diary-remind): Bind `days' as documented for diary-remind-message.
+
+2018-02-13  Glenn Morris  <address@hidden>
+
+       Stop keeping multiple doc copies for items defined multiple times
+
+       It was always a nuisance to keep all the copies in sync.
+       * src/doc.c (Fsnarf_documentation): Don't skip entire files.
+       Instead, skip individual doc strings starting with "SKIP".
+       * doc/lispref/internals.texi (Writing Emacs Primitives):
+       Mention this skipping.
+       * lisp/term/ns-win.el, lisp/term/pc-win.el, src/dosfns.c:
+       * src/frame.c, src/nsfns.m, src/nsmenu.m, src/nsterm.m:
+       * src/w16select.c, src/w32fns.c, src/w32menu.c, src/w32select.c:
+       * src/w32term.c, src/xmenu.c: Remove duplicated doc strings.
+       * src/xfns.c: Merge in information from doc string duplicates.
+
+2018-02-13  Glenn Morris  <address@hidden>
+
+       Doc tweak for x-use-underline-position-properties
+
+       * src/xterm.c (syms_of_xterm) <x-use-underline-position-properties>:
+       Remove ancient information from doc.
+       * etc/PROBLEMS: Related edit.
+
+2018-02-13  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       333d6f4 (origin/emacs-26) More changes in the Emacs manual
+       52ca0d1 * lisp/vc/vc.el (vc-deduce-backend): Use ignore-errors.
+       69e8046 Don't signal error in vc-deduce-backend
+       f568c91 * doc/misc/tramp.texi: Index more user options.
+       92ca881 Minor change in the Emacs manual
+       e055a12 NEWS update about 'string-trim'
+       96b6e24 Clarify TRAMP process-environment interaction (Bug#30419)
+       4fa467e * lisp/progmodes/grep.el (grep-num-matches-found): New variable.
+       a22820a Avoid aborts in cm.c due to too small TTY frame
+       26f6441 Another set of improvements in the Emacs manual
+       cef3b42 Fix help in mode-line-mode-menu
+       f8a493c Improve documentation of desktop restoring
+       10637af Improve the Emacs manual's chapter "Frames"
+       d924953 Fix unbound mm-uu-entry in mm-uu
+       cb2487b Improve Emacs user manual in fixit.texi
+       66e9527 Another minor change in the manual
+       6a1c03d More minor changes in the Emacs manual
+       32fb8c4 Avoid printing garbled error message from image.el
+
+       Conflicts:
+               etc/NEWS
+               lisp/image.el
+
+2018-02-13  Philipp Stephani  <address@hidden>
+
+       Fix NS-related compilation errors.
+
+       * src/nsterm.m (ns_set_represented_filename): Remove unused variable
+       'view'.
+
+       * src/nsfns.m (x_implicitly_set_name, syms_of_nsfns): The type of a
+       variable defined with DEFVAR_BOOL is 'bool', not 'Lisp_Object'.
+
+2018-02-12  Rami Ylimäki  <address@hidden>
+
+       Expand direct color description in Emacs FAQ
+
+       * doc/misc/efaq.texi (Colors on a TTY): Show how to list direct
+       mode TERM definitions.  (Bug#30429)
+
+2018-02-12  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/message.el (message-ecomplete-capf): Fix call convention.
+
+2018-02-12  Noam Postavsky  <address@hidden>
+
+       * lisp/progmodes/python.el: Bump package version to 0.26.
+
+2018-02-12  Paul Eggert  <address@hidden>
+
+       Work if libpng is in /usr/local (2nd try)
+
+       Problem reported by Werner Lemberg in:
+       https://lists.gnu.org/r/emacs-devel/2018-02/msg00304.html
+       with a further fix suggested by Glenn Morris in Bug#30431#14.
+       * configure.ac: Try pkg-config before libpng-config.
+       Adjust LIBPNG accordingly, and append -lz regardless of
+       whether it was pkg-config.
+
+2018-02-12  Paul Eggert  <address@hidden>
+
+       Finish renaming to internal--daemon-sockname
+
+       * doc/lispref/processes.texi (Misc Network): Omit discussion of
+       internal--daemon-sockname, as non-Emacs code shouldn't rely on it.
+       * src/process.c (syms_of_process): Rename internal-daemon-sockname
+       to internal--daemon-sockname.  All uses changed.
+
+2018-02-12  Matthew Leach  <address@hidden>
+
+       Rename internal--external-sockname and document (Bug#24218)
+
+       * lisp/server.el: Rename `internal--external-sockname' to
+         `internal-daemon-sockname'.
+       * src/process.c: Likewise.
+       * doc/lispref/processes.texi: Document `internal-daemon-sockname'.
+
+2018-02-12  Matthew Leach  <address@hidden>
+
+       Update `server-name' :version & document sockname (Bug#24218)
+
+       * lisp/server.el: (server-name): Update :version tag.
+       * etc/NEWS: Document that `server-name' and `server-socket-dir'
+         automatically update.
+       * doc/emacs/misc.texi: (Emacs Server): Likewise.
+
+2018-02-12  Paul Eggert  <address@hidden>
+
+       Minor cleanups for server-name fix (Bug#24218)
+
+       * lisp/server.el (server--external-socket-initialized): Rename
+       from server-external-socket-initialised, since it should be
+       private and Emacs uses American spelling.  All uses changed.
+       * src/emacs.c, src/lisp.h: Revert previous changes, as the
+       initialization is now done in src/process.c, which already
+       includes the relevant files.
+       * src/process.c (union u_sockaddr): Move decl to top level.
+       (external_sock_name, Fget_external_sockname): Remove, replacing
+       with Vinternal__external_sockname.  All uses changed.
+       (init_process_emacs): Deduce socket name ourselves rather than
+       have main.c do it.  Use conv_sockaddr_to_lisp instead of doing
+       it by hand.  Conditionalize it on HAVE_GETSOCKNAME.
+
+2018-02-12  Matthew Leach  <address@hidden>
+
+       Fix `server-name' and `server-socket-dir' for (Bug#24218)
+
+       * lisp/server.el: (server-external-socket-initialised): New
+       (server-name): Compute server name from `get-external-sockname'.
+       (server-socket-dir): Compute socket dir from
+       `get-external-sockname'.
+       (server-start): Don't check for existing server when an
+       uninitialised external socket has been passed to Emacs.
+       * src/emacs.c: (main): Obtain socket name via getsockname and pass
+       to `init_process_emacs'.
+       * src/lisp.h: (init_process_emacs): Add second parameter.
+       * src/process.c: (external_sock_name): New.
+       (get-external-sockname): New.
+       (init_process_emacs): Set `external_sock_name' to `sockname'
+       parameter.
+
+2018-02-12  Tom Tromey  <address@hidden>
+
+       Minor fixes to .gdbinit
+
+       * src/.gdbinit (xcompiled): Emit a final newline.
+       (python): Define "long" if not already defined.  Use casts to long,
+       not int.
+
+2018-02-12  Paul Eggert  <address@hidden>
+
+       Revert libpng /usr/local patch
+
+       It broke builds on Arch, Debian, OpenSuSE; see thread containing:
+       https://lists.gnu.org/r/2018-02/msg00330.html
+       * configure.ac: Don't try pkg-config; just use libpng-config.
+
+2018-02-11  Paul Eggert  <address@hidden>
+
+       Work even if libpng is installed in /usr/local
+
+       Problem reported by Werner Lemberg in:
+       https://lists.gnu.org/r/emacs-devel/2018-02/msg00304.html
+       * configure.ac: Try pkg-config before libpng-config.
+
+2018-02-11  Dmitry Gutov  <address@hidden>
+
+       Fix an infloop in python-nav-beginning-of-statement
+
+       * lisp/progmodes/python.el (python-nav-beginning-of-statement):
+       Fix an infloop (bug#30277).
+
+2018-02-11  Paul Eggert  <address@hidden>
+
+       Merge from pkg-config
+
+       * m4/pkg.m4: Copy from pkg-config 0.29.2.
+
+2018-02-11  Alan Third  <address@hidden>
+
+       Fix modifier keys on NS port
+
+       * src/nsterm.m (EV_MODIFIERS_OPTION):
+       (EV_MODIFIERS_CONTROL):
+       (EV_MODIFIERS_COMMAND): New macros.
+       (ev_modifiers_helper): New function.
+       (EV_MODIFIERS2): Use new helper function.
+       (EmacsView::keyDown): Remove duplicate functionality and handle fn key
+       correctly.
+
+2018-02-11  Alan Third  <address@hidden>
+
+       Tidy up NS keybindings
+
+       * lisp/term/ns-win.el: Remove unneeded mappings to super-shifted keys.
+
+2018-02-11  Alan Third  <address@hidden>
+
+       Remove NS special handling of 'frame-title-format'
+
+       * lisp/term/ns-win.el (frame-title-format, icon-title-format): Change
+       default format to just the filename.
+       * src/nsfns.m (ns-use-proxy-icon): New variable.
+       (ns_set_name_as_filename): Remove function.
+       (x_implicitly_set_name): Get rid of special handling of
+       frame-title-format.
+       * src/nsterm.h (ns_set_represented_filename): Use new definition.
+       * src/nsterm.m (ns_set_represented_filename): Move some of the logic
+       from ns_set_name_as_filename into this function.
+
+2018-02-11  Paul Eggert  <address@hidden>
+
+       * src/xdisp.c (Vmessage_stack): Fix comment to match code.
+
+2018-02-11  Michael Albinus  <address@hidden>
+
+       Fix handling of file notifications in tramp-gvfs.el
+
+       * lisp/net/tramp-archive.el (tramp-archive-dissect-file-name):
+       Fix docstring.
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch):
+       Use consequently "gio monitor".
+       (tramp-gvfs-monitor-process-filter): Rename from
+       `tramp-gvfs-monitor-file-process-filter'.  Adapt implementation.
+
+       * lisp/net/tramp-sh.el (tramp-gio-events): Move this ...
+       * lisp/net/tramp.el (tramp-gio-events): ... here.
+
+2018-02-10  Juri Linkov  <address@hidden>
+
+       * lisp/window.el (display-buffer--maybe-at-bottom): New function 
(bug#30314).
+
+       (display-buffer--maybe-pop-up-frame)
+       (display-buffer--maybe-pop-up-window): New functions created from
+       display-buffer--maybe-pop-up-frame-or-window.
+       (display-buffer--maybe-pop-up-frame-or-window): Call
+       display-buffer--maybe-pop-up-frame or
+       display-buffer--maybe-pop-up-window.
+       (display-buffer-at-bottom): Fix parens.
+
+       * lisp/minibuffer.el (minibuffer-completion-help): Use
+       display-buffer--maybe-pop-up-frame instead of let-binding
+       pop-up-windows to nil.
+
+       * lisp/files.el (hack-local-variables-confirm)
+       (save-buffers-kill-emacs): Use display-buffer--maybe-at-bottom.
+
+2018-02-10  Juri Linkov  <address@hidden>
+
+       * lisp/comint.el (comint-after-pmark-p): Check if buffer has a live 
process.
+
+       Return nil if not.
+       (comint-history-isearch-setup): Don't check if process is live.
+       Always check if shell prompt is empty regardless of the value
+       of comint-history-isearch. (Bug#30187)
+
+2018-02-10  Rami Ylimäki  <address@hidden>
+
+       Support standard Terminfo direct mode terminals
+
+       Latest Terminfo introduces terminal definitions that support direct
+       color mode.  The "Co"/"colors" capability is set to 0x1000000 on these
+       terminals and Emacs is already compatible with them.
+       However, if used Terminfo library hasn't been compiled with 32-bit
+       value support, "Co"/"colors" is truncated to 0x7fff.  In this case
+       direct color mode support can be detected from the "RGB" capability
+       flag.
+       There are some minor problems if the color count isn't corrected from
+       0x7fff.  First eight standard colors defined in xterm-standard-colors
+       are shown correctly.  However, their RGB values match the terminal
+       settings, not the RGB values defined in xterm-standard-colors.  Bright
+       versions of these colors are shown incorrectly.  They are interpreted
+       as pixels #000008 - #000015, which are very dark shades of blue.
+
+       * src/term.c (init_tty): Force terminal color count to 0x1000000 if
+       "RGB" capability is present.
+       * src/tparam.h: Define prototype for tigetflag.  (Bug#30308)
+
+       * doc/misc/efaq.texi (Colors on a TTY): Add information about direct
+       mode terminals supported by Terminfo.
+
+2018-02-10  Eli Zaretskii  <address@hidden>
+
+       Avoid infinite recursion in file_directory_p
+
+       * src/fileio.c (file_directory_p) [DOS_NT]: Call faccessat on
+       MS-DOS as well, to avoid infinite recursion introduced by last
+       change in this function.
+
+2018-02-10  Martin Rudalics  <address@hidden>
+
+       Make tooltip code handle scenarios from Bug#30182 and Bug#30399
+
+       Move calculation of the mode line default help echo from
+       note_mode_line_or_margin_highlight to display_mode_lines
+       (Bug#30182).  Fix cursor type for dragging the mode line.
+       Normalize FRAME argument of Fx_show_tip before assigning it to
+       tip_last_frame and handle the transition from GTK+ to Emacs
+       tooltips and vice-versa in x_hide_tip (Bug#30399).
+
+       * src/window.h (struct window): New Lisp member
+       mode_line_help_echo.
+       (wset_mode_line_help_echo): New function.
+       * src/w32fns.c (Fx_show_tip): Normalize the FRAME argument
+       bevore storing it in tip_last_frame (Bug#30399).
+       * src/xdisp.c (display_mode_lines): Calculate mode line
+       default help echo string here and store it in the window's
+       mode_line_help_echo slot (Bug#30182).
+       (note_mode_line_or_margin_highlight): Use value in window's
+       mode_line_help_echo slot as mode line default help echo.  When
+       the window is resizable show a vertical drag cursor instead of
+       the vertical scroll bar cursor.
+       * src/xfns.c (x_hide_tip): Rewrite the GTK+ part to correctly
+       handle the transition from GTK+ system to Emacs tooltips and
+       vice-versa (Bug#30399).
+       (Fx_show_tip): Normalize the FRAME argument bevore storing it
+       in tip_last_frame (Bug#30399).
+
+2018-02-10  Michael Albinus  <address@hidden>
+
+       Handle "gio monitor" in tramp-sh.el
+
+       * lisp/net/tramp-sh.el (tramp-gio-events): New defconst.
+       (tramp-sh-handle-file-notify-add-watch): Handle "gio monitor" extra.
+       (tramp-sh-gio-monitor-process-filter)
+       (tramp-get-remote-gio-monitor): New defuns.
+       (tramp-sh-gvfs-monitor-dir-process-filter)
+       (tramp-get-remote-gvfs-monitor-dir): Do not check for gio anymore.
+
+2018-02-09  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       0276743 (origin/emacs-26) Doc string fix in latin-alt.el
+       c9269af Minor improvements in package.texi
+       898a3e4 Minor improvement in Emacs user manual
+       8f7d718 * doc/lispref/anti.texi (Antinews): Replace 25.2 with 25.3.
+       989d0af Improve documentation of mini-window resizing
+       923e415 More changes in the Emacs manual
+       565adf2 Clarify that text-quoting-style doesn't affect *Info* (Bug#24...
+       2dd273b Mention that shell quoting of % on w32 may fail (Bug#19350)
+       19fa6d5 Fix --no-build-details for w32 and macOS
+       979944c * doc/lispref/anti.texi (Antinews): Add some more antinews.
+       c2727e3 Fix crashes when run with --no-build-details
+       dc08490 More changes for the manual
+       04c5bd5 Doc fixes for process functions (Bug#30349)
+       e209034 Fix shr and CSS 4 color maps
+       5fe8192 Yet another round of improvements in the manual
+
+       Conflicts:
+               doc/emacs/files.texi
+               test/lisp/subr-tests.el
+
+2018-02-08  Daniel Colascione  <address@hidden>
+
+       Fix iswitchb highlighting: don't mutate buffer name
+
+       * lisp/obsolete/iswitchb.el (iswitchb-completions): Copy buffer name
+         before applying face
+
+2018-02-08  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-macs.el (cl--sm-macroexpand): Handle lambda!
+
+       (cl--old-macroexpand): Remove.
+       (cl--sm-macroexpand): Change its calling convention, so it can use
+       advice-add.  Extend re-binding treatment of vars so it applies to all
+       var-introducing forms rather than only to 'let'.
+       (cl-symbol-macrolet): Use advice-add rather than fset.
+
+2018-02-08  Glenn Morris  <address@hidden>
+
+       Remove unused duplicate of minibuffer-completion-contents
+
+       * src/minibuf.c (Fminibuffer_completion_contents): Remove.
+       Unused since introduction of minubuffer.el 2008-04-09.
+       (syms_of_minibuf): Remove Sminibuffer_completion_contents.
+       * lisp/minibuffer.el (minibuffer-completion-contents): Doc tweak.
+
+2018-02-06  Juri Linkov  <address@hidden>
+
+       * lisp/comint.el (comint-history-isearch-setup): Check if process is 
live.
+
+       Don't activate comint-history isearch when shell prompt is empty
+       like in all *Async Shell Command* buffers. (Bug#30187)
+
+2018-02-06  Juri Linkov  <address@hidden>
+
+       * lisp/dired.el (dired-get-marked-files): Add new optional arg 'error'.
+
+       Call user-error when it's non-nil and result is empty (bug#30285).
+
+       * lisp/dired-aux.el (dired-do-chxxx, dired-do-chmod)
+       (dired-do-print, dired-do-async-shell-command)
+       (dired-do-shell-command, dired-do-compress-to)
+       (dired-mark-confirm, dired-do-create-files)
+       (dired-do-isearch, dired-do-isearch-regexp)
+       (dired-do-query-replace-regexp, dired-do-find-regexp):
+       * lisp/dired-x.el (dired-do-find-marked-files):
+       Set arg 'error' of dired-get-marked-files call to t.
+
+2018-02-06  Juri Linkov  <address@hidden>
+
+       Support occur command operating on the region from Isearch.
+
+       * lisp/isearch.el (isearch-occur): Use region-bounds as region arg of 
occur.
+       (isearch-query-replace): Use use-region-p.
+
+       * lisp/replace.el (occur--region-start-line): Rename from
+       occur--matches-threshold.
+       (occur): Use complete lines when region is active for line-oriented 
occur.
+       (occur-engine): Count lines either from occur--region-start-line or 1.
+
+2018-02-05  Paul Eggert  <address@hidden>
+
+       Work around macOS faccessat bug
+
+       * src/fileio.c (file_accessible_directory_p): Append an
+       extra "/" to work around macOS bug in faccessat (Bug#30350).
+
+2018-02-05  Juri Linkov  <address@hidden>
+
+       Support list-matching-lines-jump-to-current-line for context lines.
+
+       * lisp/replace.el (occur--orig-line-str): Remove.
+       (occur): Remove occur--orig-line-str.
+       (occur-engine): Use add-face-text-property to add the face
+       list-matching-lines-current-line-face to the current line.
+       Use previous-single-property-change to find occur--final-pos.
+       (occur-context-lines): New args orig-line and multi-occur-p.
+       Find the current line in context lines and add face to it.
+       (Bug#30281)
+
+2018-02-05  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       c787a49 (origin/emacs-26) * lisp/vc/vc-git.el (vc-git-print-log): Res...
+       b654791 * doc/emacs/misc.texi (Interactive Shell): Refer to node "Min...
+       f1102d2 Yet another round of fixing the Emacs manual
+       76b5a68 * etc/NEWS: Expunge the solecism "allow(s)" + infinitive
+       b4ff8cc Two minor fixes in Antinews
+       aafcd12 * etc/NEWS: Rename image-dired-thumb-job-limit
+       a893924 * lisp/simple.el (async-shell-command, shell-command): Fix gr...
+       699081f Fix deferred display of async shell-command buffers
+       d2d5e54 Mention remote file name completion in Emacs manual
+       f589f5a Yest another round of manual copyedits
+       1ed4089 Update xdisp.c commentary
+       e23de39 Fix Bug#30324
+       e1a9dc0 Recognize Org as builtin package (bug#30310)
+
+       Conflicts:
+               etc/NEWS
+
+2018-02-05  Michael Albinus  <address@hidden>
+
+       Fix inconsistency expanding "//" in Tramp
+
+       * doc/misc/tramp.texi (File name completion): Adapt example
+       expanding "//".
+
+       * lisp/net/tramp.el (tramp-handle-substitute-in-file-name): "//" shall
+       expand the localname only, even when on top of the local part.
+
+       * test/lisp/net/tramp-tests.el (tramp-test04-substitute-in-file-name):
+       Adapt test.
+
+2018-02-04  Philipp Stephani  <address@hidden>
+
+       Fix handling of modifier keys on macOS
+
+       * src/nsterm.m (keyDown:): Distinguish between shift-like and
+       control-like modifier keys.  Allow treating ⌘ as shift-like
+       modifier (e.g. for the Gujarati – QUERTY input method, where ⌘
+       switches to QUERTY.)
+
+       * lisp/cus-start.el (standard): Change nil to none for
+       ns-command-modifier; update description.
+
+       * etc/NEWS: Add NEWS entry.
+
+2018-02-04  Michael Albinus  <address@hidden>
+
+       Make tramp-archive fit for older Emacsen
+
+       * lisp/net/tramp-archive.el (tramp-archive-enabled)
+       (tramp-archive-file-name-handler-alist)
+       (tramp-archive-file-name-handler): Adapt docstring.
+       (tramp-register-archive-file-name-handler): Remove it from
+       `after-init-hook' when unloading.
+       (tramp-archive-gvfs-host): New defsubst.
+       (tramp-archive-dissect-file-name): Use it.
+
+       * lisp/net/tramp-cmds.el (tramp-cleanup-all-connections):
+       Check that `tramp-archive-enabled' is bound.
+
+       * test/lisp/net/tramp-archive-tests.el (tramp-archive-test42-auto-load):
+       Check also that tramp-archive is not loaded when Tramp is loaded.
+       (tramp-archive-test42-delay-load): Adapt test messages.
+
+2018-02-03  Paul Eggert  <address@hidden>
+
+       Avoid EOVERFLOW problems with file-directory-p
+
+       This fixes a bug where (file-directory-p FOO) would fail if FOO
+       had an inode number out of range for ‘stat’.
+       * src/fileio.c (file_directory_p): Accept a Lisp string instead of
+       a C string.  All callers changed.  On non-MS-Windows hosts, use
+       openat with O_PATH|O_DIRECTORY if available, otherwise
+       file_accessible_directory_p unless it fails due to EACCESS,
+       otherwise stat.
+
+2018-02-03  Philipp Stephani  <address@hidden>
+
+       Add tests to verify error propagation in 'json-insert'.
+
+       * test/src/json-tests.el (json-tests--error): New error symbol.
+       (json-insert/signal, json-insert/throw): New tests.
+
+2018-02-03  Noam Postavsky  <address@hidden>
+
+       Don't require all file-attributes to be equal (Bug#30327)
+
+       * test/lisp/files-tests.el (files-tests-file-attributes-equal): New
+       function.
+       (files-tests-file-name-non-special-directory-files-and-attributes)
+       (files-tests-file-name-non-special-file-attributes): Use it instead of
+       `equal'.
+
+2018-02-03  Michael Albinus  <address@hidden>
+
+       * test/lisp/files-tests.el (files-tests--with-temp-non-special):
+
+       Expand `temporary-file-directory' by `file-truename', in case
+       it is located on a symlinked directory.  (Bug#30327)
+
+2018-02-03  Michael Albinus  <address@hidden>
+
+       Prevent loading tramp-archive when it cannot be used
+
+       * lisp/files.el (locate-dominating-file): Check, that FILE is
+       a directory when traversing the tree.
+
+       * lisp/net/tramp-archive.el (tramp-archive-enabled): New defvar.
+       (tramp-archive-file-name-regexp): Protect against errors.
+       (tramp-archive-file-name-handler)
+       (tramp-register-archive-file-name-handler): Use it.
+       (all) Call `tramp-register-archive-file-name-handler'.
+
+       * lisp/net/tramp.el (tramp-register-file-name-handlers):
+       Use `tramp-archive-enabled'.
+
+       * test/lisp/net/tramp-archive-tests.el (all):
+       Use `tramp-archive-enabled' instead of `tramp-gvfs-enabled'.
+       (tramp-archive--test-emacs27-p): New defun.
+       (tramp-archive-test42-auto-load): Skip for older Emacsen.
+       (tramp-archive-test42-delay-load): Skip for older Emacsen.
+       Test also behavior when `tramp-archive-enabled' is nil.
+
+2018-02-03  Michael Albinus  <address@hidden>
+
+       Autoload tramp-archive
+
+       * doc/misc/tramp.texi (Archive file names): Do not require to
+       load Tramp explicitly, this is autoloaded now also for file archives.
+
+       * lisp/net/tramp-archive.el (tramp-archive-suffixes)
+       (tramp-archive-compression-suffixes): Autoload them.
+       (tramp-archive-autoload-file-name-regexp): New defmacro.
+       (tramp-archive-file-name-regexp): Use it.
+       (tramp-register-archive-file-name-handler): New defun.  Call
+       it in `after-init-hook'.
+
+       * test/lisp/net/tramp-archive-tests.el
+       (tramp-archive-test40-file-system-info): Rename from
+       `tramp-archive-test40-archive-file-system-info.
+       (tramp-archive-test42-auto-load)
+       (tramp-archive-test42-delay-load): New tests.
+
+2018-02-02  Glenn Morris  <address@hidden>
+
+       Try to work around intermittent autogen failure on hydra.nixos.org
+
+       * autogen.sh (check_version): Try to handle odd systems where
+       /bin/sh does not define the "command" builtin.
+
+2018-02-02  Glenn Morris  <address@hidden>
+
+       * autogen.sh: Remove temporary debug statements.
+
+       * autogen.sh: Add some temporary debug statements, for hydra.nixos.org.
+
+2018-02-02  Alan Mackenzie  <address@hidden>
+
+       CC Mode: Fix an enum intro being parsed as defun-block-intro
+
+       * lisp/progmodes/cc-engine.el (c-inside-bracelist-p): Return a bufpos 
rather
+       than t for the enum case.
+       (c-add-stmt-syntax, c-guess-continued-construct): Replace
+       c-looking-at-or-maybe-in-bracelist by c-inside-bracelist-p, since the 
former
+       does not recognize enum brace lists, but the latter does.
+
+       * lisp/progmodes/cc-fonts.el (c-get-fontification-context): Replace
+       c-looking-at-or-maybe-in-bracelist by c-inside-bracelist-p.
+
+2018-02-02  Philipp Stephani  <address@hidden>
+
+       Properly integrate modules into the loading process (Bug#30164).
+
+       * src/lread.c (Fload): Don't defer to module-load immediately when
+       encountering a module, but use the normal loading machinery to
+       properly set up load-history, check for recursive loads, print
+       messages, etc.
+
+       * test/src/emacs-module-tests.el (module/load-history): New test.
+       (module/describe-function-1): Adapt test.
+
+       * etc/NEWS: Mention fixed behavior.
+
+2018-02-02  Philipp Stephani  <address@hidden>
+
+       Use 'defalias' in test module instead of 'fset'.
+
+       This puts functions defined in the module into the 'load-history'.
+
+       * test/data/emacs-module/mod-test.c (bind_function): Use 'defalias'
+       instead of 'fset'.
+
+       * test/src/emacs-module-tests.el (module/describe-function-1): Adapt
+       unit test.
+
+2018-02-02  Philipp Stephani  <address@hidden>
+
+       Add support for module functions to C-h f (Bug#30163).
+
+       * lisp/help-fns.el (help-fns-function-description-header): Handle
+       module functions.
+
+       * test/src/emacs-module-tests.el (module/describe-function-1): New
+       test.
+
+2018-02-02  Michael Albinus  <address@hidden>
+
+       Handle quoted remote file names for file notifications
+
+       * lisp/filenotify.el (file-notify-add-watch): Do not suppress
+       other file name handlers when FILE is quoted.
+
+       * test/lisp/filenotify-tests.el
+       (file-notify-test-remote-temporary-file-directory):
+       Beware quoted `temporary-file-directory'.
+
+       * test/lisp/files-tests.el
+       (files-tests-file-name-non-special-quote-unquote): Improve test.
+
+2018-02-02  Michael Albinus  <address@hidden>
+
+       Minor tweaks in tramp-archive.el
+
+       * lisp/net/tramp-archive.el (tramp-archive-file-name-handler):
+       Bind `tramp-unknown-id-integer' and `tramp-unknown-id-string'
+       in order to have minimal ownership information.
+
+2018-02-02  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       6f495ab (origin/emacs-26) Another round of manual fixups
+       59344c4 * doc/lispref/customize.texi (Custom Themes): Clarify .el pre...
+       6386efc * doc/emacs/entering.texi (Entering Emacs): Another wording fix.
+       e21f018 * doc/lispref/functions.texi (Inline Functions): Fix typo (Bu...
+       1c2fb04 * lisp/imenu.el (imenu-generic-expression): Rephrase doc (Bug...
+       b90e91c Fix last change of @key markup
+       f180075 * doc/emacs/entering.texi (Entering Emacs): Fix markup.
+
+2018-02-02  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       56c37bb Use @key{} where it is missing in the manuals
+       25c0198 Another round of manual fixes from proofreading
+
+2018-02-02  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cconv.el (cconv-convert): Fix compiling compiled code
+
+       Don't conv-convert the docstring arg of defvar/defconst.
+
+2018-02-02  Michael Albinus  <address@hidden>
+
+       Fix quoting in tramp-find-inline-compress for w32
+
+       * lisp/net/tramp-sh.el (tramp-find-inline-compress): Improve command
+       quoting for w32.  Reported by Chris Zheng <address@hidden>.
+
+2018-02-01  Michael Albinus  <address@hidden>
+
+       Handle quoted file names in filenotify.el
+
+       * lisp/filenotify.el (file-notify-add-watch): Do not save
+       quoted file names in `file-notify-descriptors'.
+
+       * test/lisp/files-tests.el
+       (files-file-name-non-special-notify-handlers): Do not expect
+       to fail.
+
+2018-02-01  Michael Albinus  <address@hidden>
+
+       Use file-name-quote{,d-p} in files-tests.el
+
+       * test/lisp/files-tests.el
+       (files-tests-file-name-non-special-quote-unquote): New test.
+       (files-tests--file-name-non-special--subprocess): Simplify.
+       (files-tests--file-name-non-special--buffers)
+       (files-tests--with-temp-non-special)
+       (files-tests-file-name-non-special-directory-file-name)
+       (files-tests-file-name-non-special-file-in-directory-p)
+       (files-tests-file-name-non-special-file-name-all-completions)
+       (files-tests-file-name-non-special-file-name-as-directory)
+       (files-tests-file-name-non-special-file-name-completion)
+       (files-tests-file-name-non-special-file-name-directory)
+       (files-tests-file-name-non-special-find-backup-file-name)
+       (files-tests-file-name-non-special-make-nearby-temp-file):
+       Use `file-name-quote' and `file-name-quoted-p', respectively.
+
+2018-02-01  Noam Postavsky  <address@hidden>
+
+       Test and fix "/:" quoted file name handlers (Bug#30243)
+
+       Some w32 specific problems were discovered, but only worked around, as
+       these are not serious, and not the focus of this bug fix:
+           - The w32 implementation of `insert-directory doesn't handle a nil
+           SWITCHES argument.
+           - `dired-compress-file' does not operate correctly if the unquoted
+           filename contains a ":" (e.g., C:/foo/bar).
+
+       * lisp/files.el (file-name-non-special): Strip the "/:" from
+       `default-directory' for `temporary-file-directory' operation; both
+       arguments to `file-name-completion', `file-name-all-completion', and
+       `file-equal-p' operations; `buffer-file-name' for
+       `make-auto-save-file-name' and 'set-visited-file-modtime' operations.
+       Don't touch any operands of `file-notify-rm-watch' and
+       `file-notify-valid-p' as they receive descriptors; not file
+       names (this is not sufficient to fix these operations for "/:" quoted
+       file names though, these are fixed in a later commit).
+
+       * test/lisp/files-tests.el (files-tests--with-temp-file): Give it a
+       `debug' property.
+       (files-tests--with-temp-non-special): New helper macro.
+       (files-tests--file-name-non-special--subprocess): Simplify.
+       (files-tests-file-name-non-special-quote-unquote)
+       (files-file-name-non-special-notify-handlers)
+       (files-file-name-non-special-handlers)
+       (files-tests-file-name-non-special-access-file)
+       (files-tests-file-name-non-special-add-name-to-file)
+       (files-tests-file-name-non-special-byte-compiler-base-file-name)
+       (files-tests-file-name-non-special-copy-directory)
+       (files-tests-file-name-non-special-copy-file)
+       (files-tests-file-name-non-special-delete-directory)
+       (files-tests-file-name-non-special-delete-file)
+       (files-tests-file-name-non-special-diff-latest-backup-file)
+       (files-tests-file-name-non-special-directory-file-name)
+       (files-tests-file-name-non-special-directory-files)
+       (files-tests-file-name-non-special-directory-files-and-attributes)
+       (files-tests-file-name-non-special-dired-uncache)
+       (files-tests-file-name-non-special-dired-compress-handler)
+       (files-tests-file-name-non-special-expand-file-name)
+       (files-tests-file-name-non-special-file-accessible-directory-p)
+       (files-tests-file-name-non-special-file-acl)
+       (files-tests-file-name-non-special-file-attributes)
+       (files-tests-file-name-non-special-file-directory-p)
+       (files-tests-file-name-non-special-file-equal-p)
+       (files-tests-file-name-non-special-file-executable-p)
+       (files-tests-file-name-non-special-file-exists-p)
+       (files-tests-file-name-non-special-file-in-directory-p)
+       (files-tests-file-name-non-special-file-local-copy)
+       (files-tests-file-name-non-special-file-modes)
+       (files-tests-file-name-non-special-file-name-all-completions)
+       (files-tests-file-name-non-special-file-name-as-directory)
+       (files-tests-file-name-non-special-file-name-case-insensitive-p)
+       (files-tests-file-name-non-special-file-name-completion)
+       (files-tests-file-name-non-special-file-name-directory)
+       (files-tests-file-name-non-special-file-name-nondirectory)
+       (files-tests-file-name-non-special-file-name-sans-versions)
+       (files-tests-file-name-non-special-file-newer-than-file-p)
+       (files-tests-file-name-non-special-file-ownership-preserved-p)
+       (files-tests-file-name-non-special-file-readable-p)
+       (files-tests-file-name-non-special-file-regular-p)
+       (files-tests-file-name-non-special-file-remote-p)
+       (files-tests-file-name-non-special-file-selinux-context)
+       (files-tests-file-name-non-special-file-symlink-p)
+       (files-tests-file-name-non-special-file-truename)
+       (files-tests-file-name-non-special-file-writable-p)
+       (files-tests-file-name-non-special-find-backup-file-name)
+       (files-tests-file-name-non-special-get-file-buffer)
+       (files-tests-file-name-non-special-insert-directory)
+       (files-tests-file-name-non-special-insert-file-contents)
+       (files-tests-file-name-non-special-load)
+       (files-tests-file-name-non-special-make-auto-save-file-name)
+       (files-tests-file-name-non-special-make-directory)
+       (files-tests-file-name-non-special-make-directory-internal)
+       (files-tests-file-name-non-special-make-nearby-temp-file)
+       (files-tests-file-name-non-special-make-symbolic-link)
+       (files-tests-file-name-non-special-rename-file)
+       (files-tests-file-name-non-special-set-file-acl)
+       (files-tests-file-name-non-special-set-file-modes)
+       (files-tests-file-name-non-special-set-file-selinux-context)
+       (files-tests-file-name-non-special-set-file-times)
+       (files-tests-file-name-non-special-set-visited-file-modtime)
+       (files-tests-file-name-non-special-shell-command)
+       (files-tests-file-name-non-special-start-file-process)
+       (files-tests-file-name-non-special-substitute-in-file-name)
+       (files-tests-file-name-non-special-temporary-file-directory)
+       (files-tests-file-name-non-special-unhandled-file-name-directory)
+       (files-tests-file-name-non-special-vc-registered)
+       (files-tests-file-name-non-special-write-region): New tests.
+
+2018-02-01  Paul Eggert  <address@hidden>
+
+       Update from gnulib
+
+       This includes:
+       2018-01-31 environ: Fix link error on 64-bit Cygwin
+       2018-01-27 Fix malfunction of socket functions on HP-UX in 64-bit mode
+       2018-01-26 manywarnings: fix maintainer comment
+       2018-01-23 Merge strftime.c changes from glibc
+       * build-aux/config.guess, build-aux/config.sub, doc/misc/texinfo.tex:
+       * lib/gnulib.mk.in, lib/nstrftime.c, lib/unistd.in.h, m4/extensions.m4:
+       * m4/manywarnings.m4: Update.
+
+2018-02-01  Paul Eggert  <address@hidden>
+
+       * src/xfns.c: Make some non-exported vars static.
+
+2018-02-01  Michael Albinus  <address@hidden>
+
+       Adapt tramp-tests.el according to Bug#30243
+
+       * test/lisp/net/tramp-tests.el (tramp--test-emacs27-p): New defun.
+       (tramp-test11-copy-file, tramp-test12-rename-file)
+       (tramp-test21-file-links, tramp-test24-file-acl)
+       (tramp-test25-file-selinux, tramp--test-check-files): Use it.
+
+2018-01-31  Michael Albinus  <address@hidden>
+
+       * lisp/files.el (get-free-disk-space): Wrap body with `save-match-data'.
+
+       Several `*-insert-directory' functions could fail otherwise.
+
+2018-01-31  Michael Albinus  <address@hidden>
+
+       * lisp/net/tramp-archive.el (tramp-archive-run-real-handler): New defun.
+
+       (tramp-archive-file-name-handler): Use it.
+
+2018-01-31  Glenn Morris  <address@hidden>
+
+       automerge: adjust meaning of -d option
+
+       * admin/automerge (nocd): New variable, replacing $dir.
+       (usage, -d): Option -d no longer takes an argument.
+
+2018-01-31  Glenn Morris  <address@hidden>
+
+       automerge: add option to work in specific directory
+
+       * admin/automerge (usage): Mention -d.
+       (dir): New variable.
+       (-d): New option.
+       (main): If requested, cd to specified directory.
+
+2018-01-31  Glenn Morris  <address@hidden>
+
+       automerge: add option to start with a reset
+
+       * admin/automerge (usage): Mention -r.
+       (reset): New variable.
+       (-r): New option.
+       (main): If requested, do a reset and pull.
+
+2018-01-31  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       22922c7 (origin/emacs-26) * doc/emacs/entering.texi (Entering Emacs):...
+       59657c4 Document 'window-at-side-p' in the Elisp manual
+       2b35ed0 Document external-debugging-output in the Elisp Manual (Bug#2...
+       db6564c Fix scroll-margin docstring (Bug#13791)
+       732d1b9 Clarify that `ansi-term' is almost the same as `term' (Bug#18...
+       f706c59 Update manual description of locate-file (Bug#23650)
+       1602262 Clarify effect of print-gensym (Bug#27776)
+       53e9fa2 * lisp/custom.el (defcustom): Fix docstring (Bug#27891).
+       607cc4e Define cl-type-definition button type as needed (Bug#28899)
+       9e6889c Emphasize that GPG passphrase caching is temporary (Bug#29907)
+       4b5711b Fix @examples in cc-mode.info, where lines were getting glued...
+       71961f1 Minor change in "Mode Line" section of Emacs manual
+       55a2b76 More fixes in the Emacs manual
+
+2018-01-31  Michael Albinus  <address@hidden>
+
+       Fix Bug#30293
+
+       * lisp/net/tramp-archive.el (tramp-archive-file-name-for-operation):
+       New defsubst.
+       (tramp-archive-file-name-archive, tramp-archive-file-name-localname):
+       New defuns.
+       (tramp-archive-file-name-handler, tramp-archive-dissect-file-name)
+       (tramp-archive-handle-not-implemented): Use them.  (Bug#30293)
+
+       * test/lisp/net/tramp-archive-tests.el (tramp-archive-test-directory):
+       New defconst.
+       (tramp-archive-test01-file-name-syntax): Extend test.
+       (tramp-archive-test05-expand-file-name-non-archive-directory):
+       New test.  (Bug#30293)
+
+       * test/lisp/net/tramp-archive-resources/foo.iso/foo: New file.
+
+2018-01-30  Glenn Morris  <address@hidden>
+
+       automerge: handle upstream changes during operation
+
+       * admin/automerge (merge): New function, split from pre-existing code.
+       (main): If upstream changed during building and testing,
+       reset local and try merging again.
+
+2018-01-30  Stefan Monnier  <address@hidden>
+
+       * test/lisp/mouse-tests.el: Fix tests broken by mouse.el change
+
+       * test/lisp/mouse-tests.el (bug23288-use-return-value)
+       (bug23288-translate-to-mouse-2): Don't rely as much on details of the
+       implementation, so it also works with the new code.
+
+2018-01-30  Michael Albinus  <address@hidden>
+
+       Simplify last change in tramp-archive
+
+2018-01-30  Stefan Monnier  <address@hidden>
+
+       * lisp/mouse.el: Rework the mouse-1-click remapping
+
+       Avoid peeking ahead at the next event because this had undesirable 
effects,
+       such as making 'this-single-command-raw-keys' return bogus information.
+
+       (mouse--last-down): New variable.
+       (mouse--down-1-maybe-follows-link): Don't do the remapping here.
+       Instead, just keep track of the time when the down happened.
+       (mouse--down-1-maybe-follows-link): Do the remapping here.
+       (key-translation-map): Add bindings for (double-)mouse-1.
+
+2018-01-30  Stefan Monnier  <address@hidden>
+
+       * lisp/help.el: Rework describe-key's handling of up and double clicks
+
+       Use lexical-binding.
+       (help--binding-undefined-p): New function, extracted from 
help--analyze-key.
+       (help--analyze-key): Use it.
+       (help--filter-info-list): New function.
+       (describe-key-briefly): Change calling convention.
+       Handle a list of key sequences now.
+       (help--binding-locus): Remove unused var 'found'.
+       (help--read-key-sequence): Rename from help-read-key-sequence.
+       Almost complete rewrite, with a different return value.
+       (help-downify-mouse-event-type): Remove.
+       (describe-key): Change calling convention.
+       Handle a list of key sequences now.
+
+2018-01-30  Michael Albinus  <address@hidden>
+
+       Fix Bug#30262
+
+       * lisp/net/tramp-archive.el (tramp-archive-hash): Document (changed)
+       layout.
+       (tramp-archive-dissect-file-name): Merge with
+       `tramp-archive-local-copy', which has been removed by this.
+       (tramp-archive-cleanup-hash): Adapt to changed
+       `tramp-archive-hash'.  (Bug#30262)
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-unmount): Flush
+       connection properties.
+
+       * test/lisp/net/tramp-archive-tests.el
+       (tramp-archive-test01-file-name-syntax)
+       (tramp-archive-test02-file-name-dissect)
+       (tramp-archive-test16-directory-files)
+       (tramp-archive-test26-file-name-completion): Adapt to changed
+       test file.
+       (tramp-archive-test08-file-local-copy): Be more robust in cleanup.
+
+       * test/lisp/net/tramp-archive-resources/foo.tar.gz: Adapt to
+       extended test.
+
+2018-01-30  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       bc8dc37 (origin/emacs-26) Minor copyedits in "Distribution" chapter o...
+       1c7a936 Minor copyedits in "Entering" chapter of Emacs manual.
+       1d4498b Minor wording change in the Emacs manual
+       2bf49e7 Fix a typo in the Emacs manual
+       f3546a2 Improve the "Basic" chapter of the Emacs manual
+       691431e Resurrect lost text in lispref
+       956807b * lisp/emacs-lisp/rx.el (rx): Fix the definition of 'blank'.
+       7d90d2e Proofread os.texi and files.texi
+       490c736 Minor improvements in the "International" chapter of Emacs ma...
+       79252d3 Minor improvement in "Text" chapter of Emacs manual
+
+2018-01-30  Stefan Monnier  <address@hidden>
+
+       * lisp/subr.el (atomic-change-group): Fix return value
+
+       Suggested by Jarosław Rzeszótko <address@hidden>.
+
+2018-01-29  Glenn Morris  <address@hidden>
+
+       Recognize more system descriptions in report-emacs-bug
+
+       * lisp/mail/emacsbug.el (report-emacs-bug--os-description):
+       New function, split from report-emacs-bug.  Also parse the
+       standard /etc files that can contain release information.
+       (report-emacs-bug): Call report-emacs-bug--os-description.
+
+2018-01-29  Paul Eggert  <address@hidden>
+
+       Simplify Fcall_interactively
+
+       * src/callint.c (Fcall_interactively): Use C99 constructs to
+       simplify the code a bit.  Stop worrying about circa-1990
+       compiler bugs.
+
+2018-01-29  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       8d45000 (origin/emacs-26) Fix some issues in the emacs/lispref manuals
+       194ded5 Fix multiple spaces in Emacs manual
+       57a5461 * lisp/files.el (save-some-buffers): Doc fix.  (Bug#30215)
+       231474f Adjudicate comments to "International" chapter of Emacs manual
+
+2018-01-29  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       6415b2d Allow read-passwd to hide characters inserted by C-y.  (Secur...
+       8cb4ffb * etc/PROBLEMS: Document issues with double-buffering.  (Bug#...
+       fd10070 * lisp/window.el (window-largest-empty-rectangle): Fix grammar.
+       e1a4403 Minor changes in the Emacs manual
+       372fda6 Improve the "Files" chapter of the Emacs manual
+       9afc86d Improve the "Search" chapter of the Emacs manual
+       22f98b3 * src/indent.c (Findent_to): Doc fix.  (Bug#30260)
+       085ee43 Improve documentation of 'edebug-defun'
+       4dd1b33 Mention crashes due to Noto Serif Kannada fonts
+
+2018-01-29  tino calancha  <address@hidden>
+
+       * test/lisp/simple-tests.el (simple-tests-async-shell-command-30280): 
Add test
+
+2018-01-28  Glenn Morris  <address@hidden>
+
+       * configure.ac: Improve recent libtof version test.
+
+2018-01-28  Juri Linkov  <address@hidden>
+
+       * lisp/simple.el: Move definitions shell-command-saved-pos
+
+       and shell-command-dont-erase-buffer closer to their usage.
+
+2018-01-28  Juri Linkov  <address@hidden>
+
+       * lisp/simple.el (upcase-dwim, downcase-dwim): Add 
region-noncontiguous-p
+
+       to the calls of region functions to support rectangular regions.
+
+2018-01-28  Juri Linkov  <address@hidden>
+
+       * lisp/tar-mode.el (tar-summarize-buffer): Let-bind `create-lockfiles' 
to nil
+
+       instead of `buffer-file-truename'.  (Bug#30215)
+
+       * lisp/image-mode.el (image-toggle-display-image): Idem.
+
+2018-01-28  Philipp Stephani  <address@hidden>
+
+       Add missing module types to cl--typeof-types.
+
+       * lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Add module
+       types.
+
+       * test/src/emacs-module-tests.el (emacs-module-tests--generic): New
+       helper function.
+       (module-function-object, mod-test-userptr-fun-test): Test that type
+       dispatching works with module types.
+
+2018-01-28  Philipp Stephani  <address@hidden>
+
+       Test that module functions are functions.
+
+       * test/src/emacs-module-tests.el (module-function-object): Verify that
+       a module function is treated as a function.
+
+2018-01-28  Philipp Stephani  <address@hidden>
+
+       * src/lisp.h: Tell developers to add new types to cl--typeof-types.
+
+2018-01-28  Philipp Stephani  <address@hidden>
+
+       Prevent name clashes between CL structures and builtin types
+
+       * lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Don't allow
+       structures with the same names as builtin types.
+       (cl--typeof-types, cl--all-builtin-types): Move from cl-generic.el and
+       rename.
+       (cl--struct-name-p): New helper function.
+
+       * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Don't allow structures
+       with the same names as builtin types.
+
+       * lisp/emacs-lisp/cl-generic.el (cl--generic-typeof-generalizer)
+       (cl-generic-generalizers): Adapt to name change.
+
+       * test/lisp/emacs-lisp/cl-macs-tests.el (cl-defstruct/builtin-type):
+       * test/lisp/emacs-lisp/cl-preloaded-tests.el
+       (cl-struct-define/builtin-type): New unit tests.
+
+       * etc/NEWS: Document changed behavior.
+
+2018-01-28  Alan Mackenzie  <address@hidden>
+
+       Fix some errors in c-display-defun-name when the type is "struct {..}", 
etc.
+
+       Also fix some errors with c-display-defun-name when there are nested 
classes.
+
+       * lisp/progmodes/cc-cmds.el (c-in-function-trailer-p): Deal with a 
struct {..}
+       being merely the type of a function.
+       (c-where-wrt-brace-construct): Deal with a struct {..} being merely the 
type
+       of a function.  Rearrange the order of some Lisp forms.  Insert a check 
for
+       c-protection-key ("private", etc.) alongside the checking for a label.
+       (c-defun-name-1): New function extracted form c-defun-name, which works 
within
+       the existing restriction.  Don't regard 'at-function-end as being 
within the
+       defun any more.  Recognize "struct", etc., with the new
+       c-defun-type-name-decl-key rather than c-type-prefix-key.  Make the
+       recognition of a normal function more accurate.
+       (c-defun-name): Part left after extracting the above function.  It now 
just
+       widens and calls c-defun-name-1.
+       (c-declaration-limits-1): New function extracted from 
c-declaration-limits,
+       which works within the existing restriction.  Move LIM back one block to
+       account for the possibility of struct {..} as a function type.  Check 
we're
+       not inside a declaration without braces.
+       (c-declaration-limits): Part left after extracting the above function.  
It now
+       just narrows to an enclosing decl block and calls 
c-declaration-limits-1.
+       (c-defun-name-and-limits): New function which identifies the name and 
limits
+       of the most nested enclosing declaration or macro.
+       (c-display-defun-name): Use c-defun-name-and-limits rather than two 
separate
+       functions (which didn't always agree on which function).
+
+       * lisp/progmodes/cc-engine.el (c-beginning-of-statement-1): If we have 
struct
+       {..} as the type of a function, go back over this, too.
+
+       * lisp/progmodes/cc-langs.el (c-defun-type-name-decl-kwds)
+       (c-defun-type-name-decl-key): New lang const/var.
+
+2018-01-28  Noam Postavsky  <address@hidden>
+
+       Fix round tripping of read->print for symbols with strange quotes
+
+       Since 2017-07-22 "Signal error for symbol names with strange
+       quotes (Bug#2967)", symbol names beginning with certain quote
+       characters require an escaping backslash.  However, the corresponding
+       change for printing missed, so that (eq (read (prin1-to-string SYM))
+       SYM) does not give `t' for such symbols.
+       * src/character.c (confusable_symbol_character_p): New function,
+       extracted from test `read1'.
+       * src/lread.c (read1): Use it.
+       * src/print.c (print_object): Use it to print a backslash for symbols
+       starting with characters that `read1' requires to be escaped.
+       * test/src/print-tests.el (print-read-roundtrip): New test.
+       * etc/NEWS.26:
+       * etc/NEWS: Clarify the announcement for the earlier reader
+       change (Bug#30217).
+
+2018-01-28  Simen Heggestøyl  <address@hidden>
+
+       Shorten CSS hex colors when possible
+
+       * lisp/textmodes/css-mode.el (css--format-hex): New function for
+       shortening CSS hex colors when possible.
+       (css--named-color-to-hex, css--rgb-to-named-color-or-hex): Use it.
+
+       * test/lisp/textmodes/css-mode-tests.el (css-test-format-hex): New
+       tests for 'css--format-hex'.
+       (css-test-named-color-to-hex, css-test-cycle-color-format): Adjust for
+       the changes to 'css--named-color-to-hex' and
+       'css--rgb-to-named-color-or-hex'.
+
+2018-01-28  Simen Heggestøyl  <address@hidden>
+
+       Fix off-by-one error in 'css--hex-to-rgb'
+
+       * lisp/textmodes/css-mode.el (css--hex-to-rgb): Fix off-by-one error.
+
+       * test/lisp/textmodes/css-mode-tests.el (css-test-hex-to-rgb): Add
+       regression tests for the above fix.
+
+2018-01-27  tino calancha  <address@hidden>
+
+       Code refactoring assoc-delete-all assq-delete-all
+
+       * lisp/subr.el (assoc-delete-all): Add optional arg TEST.
+       (assq-delete-all): Use assoc-delete-all.
+
+       * test/lisp/subr-tests.el (subr-tests--assoc-delete-all)
+       (subr-tests--assq-delete-all): New tests.
+
+       * doc/lispref/lists.texi (Association Lists): Document
+       assoc-delete-all in the manual.
+
+2018-01-27  Simen Heggestøyl  <address@hidden>
+
+       Fix indentation bug with multi-line CSS values
+
+       * lisp/textmodes/css-mode.el (css-smie-rules): Fix indentation of
+       multi-line CSS values that are separated by spaces.
+
+       * test/manual/indent/css-mode.css: Add a test case for the fix.
+
+2018-01-27  Alan Third  <address@hidden>
+
+       Allow configure to find Homebrew installed imagemagick
+
+       * configure.ac: Add the imagemagick pkgconfig dir to pkg-config's
+       search path.
+
+2018-01-26  Martin Rudalics  <address@hidden>
+
+       In bindings.el fix check whether mode line can be dragged
+
+       * lisp/bindings.el (mode-line-default-help-echo): Use check
+       whether mode line can be dragged from 'mouse-drag-mode-line'.
+
+2018-01-26  Glenn Morris  <address@hidden>
+
+       Workaround a libotf crash with Kannada font (bug#30193)
+
+       * configure.ac (HAVE_OTF_KANNADA_BUG): New define.
+       * src/xfaces.c (syms_of_xfaces) <Vface_ignored_fonts>:
+       Add problematic Kannada font if necessary.
+
+2018-01-26  Noah Friedman  <address@hidden>
+
+       Bring emacs-buffer.gdb up to date with recent lisp.h changes.
+
+2018-01-26  Noam Postavsky  <address@hidden>
+
+       Raise limit of regexp repetition (Bug#24914)
+
+       * src/regex.h (RE_DUP_MAX): Raise limit to 2^16-1.
+       * etc/NEWS: Announce it.
+       * doc/lispref/searching.texi (Regexp Backslash): Document it.
+       * test/src/regex-tests.el (regex-repeat-limit): Test it.
+
+       * src/regex.h (reg_errcode_t): Add REG_ESIZEBR code.
+       * src/regex.c (re_error_msgid): Add corresponding entry.
+       (GET_INTERVAL_COUNT): Return it instead of the more generic REG_EBADBR
+       when encountering a repetition greater than RE_DUP_MAX.
+
+       * lisp/isearch.el (isearch-search): Don't convert errors starting with
+       "Invalid" into "incomplete".  Such errors are not incomplete, in the
+       sense that they cannot be corrected by appending more characters to
+       the end of the regexp.  The affected error messages are:
+
+       - REG_BADPAT "Invalid regular expression"
+         - \\(?X:\\) where X is not a legal group number
+         - \\_X where X is not < or >
+
+       - REG_ECOLLATE "Invalid collation character"
+         - There is no code to throw this.
+
+       - REG_ECTYPE "Invalid character class name"
+         - [[:foo:] where foo is not a valid class name
+
+       - REG_ESUBREG "Invalid back reference"
+         - \N where N is referenced before matching group N
+
+       - REG_BADBR "Invalid content of \\{\\}"
+         - \\{N,M\\} where N < 0, M < N, M or N larger than max
+         - \\{NX where X is not a digit or backslash
+         - \\{N\\X where X is not a }
+
+       - REG_ERANGE "Invalid range end"
+         - There is no code to throw this.
+
+       - REG_BADRPT "Invalid preceding regular expression"
+         - We never throw this.  It would usually indicate a "*" with no
+           preceding regexp text, but Emacs allows that to match a literal
+           "*".
+
+2018-01-26  Noam Postavsky  <address@hidden>
+
+       Merge from emacs-26
+
+       463f96b481 * doc/lispref/searching.texi: Document regexp repetition l...
+       08a6195571 ; test/README: Document TEST_LOAD_EL parameter.
+       7bbea90b1a * src/syntax.c (char-syntax): Warn about ignoring text pro...
+       50fcbb5f61 ; * src/process.c (Fprocess_contact): Fix docstring typo.
+       81ae9c8c05 Load mm-util as needed for url-file and url-data (Bug#30258)
+       5a1ee67ae1 Another minor copyedit in the manual's "Scroll Bars"
+       226a651e9e Minor fix in documentation of 'equal'
+       b26786c8d9 * lisp/dired-x.el (dired-guess-shell-alist-user): Doc fix....
+       5699a824f0 Minor rewording in Emacs manual's "Help Mode" node
+       f35ff0156e Fixes for Emacs manual in frames.texi
+       6cd4e8dcc5 * doc/misc/cl.texi (Efficiency Concerns): Fix 2012-10-27 t...
+       1412cf3edd Fix a few issues with latest GTK scaling changes
+       59db8dca03 Use scaled coordinates when calling into GTK
+       2892f05792 Scale monitor dimensions obtained from GTK
+
+2018-01-26  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-preloaded.el: Update cl-slot-descriptor name.
+
+2018-01-26  Francesco Potortì  <address@hidden>
+
+       Fix a typo in rmail.el
+
+       * lisp/mail/rmail.el (rmail-simplified-subject): Fix a typo in the
+       regexp.  (Bug#29659)
+
+2018-01-26  Eli Zaretskii  <address@hidden>
+
+       Minor fix for "M-x pdb"
+
+       * lisp/progmodes/gud.el (gud-pdb-marker-regexp): Add @ and SPC to
+       the regexp.  (Bug#30208)
+
+2018-01-26  Andy Moreton  <address@hidden>
+
+       Fix emacs-module-tests to work out of build tree
+
+       * test/Makefile.in (test_module_dir): Build the test module library in
+       a subdirectory of the build directory (not the source tree).
+       (MODULE_CFLAGS): Fix location of emacs-module.h header file.
+       (test_module): Move built library out of the source tree.
+       * test/src/emacs-module-tests.el (mod-test-file): Locate the test module
+       library relative to the running Emacs executable.
+
+2018-01-25  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/gv.el (char-table-range): Add gv-setter.
+
+2018-01-25  Juri Linkov  <address@hidden>
+
+       * lisp/arc-mode.el (archive-extract): Let-bind `create-lockfiles' to nil
+
+       to prevent directory time modification by lock_file on visiting
+       a file from archive.  (Bug#30215)
+       (archive-summarize): Let-bind `create-lockfiles' to nil
+       instead of `buffer-file-truename'.
+
+2018-01-25  Stefan Monnier  <address@hidden>
+
+       Replace (default-value 'enable-multibyte-characters) with t
+
+       Since Emacs-24, (default-value 'enable-multibyte-characters) can't be
+       changed any more, so we can remove all code which checks this value.
+
+       * lisp/x-dnd.el (x-dnd-handle-file-name):
+       * lisp/w32-fns.el (w32-set-default-process-coding-system):
+       * lisp/textmodes/ispell.el (ispell-send-string):
+       * lisp/term/internal.el (dos-codepage-setup):
+       * lisp/tar-mode.el (tar-header-block-tokenize, tar--extract):
+       * lisp/startup.el (command-line):
+       * lisp/server.el (server-process-filter):
+       * lisp/net/browse-url.el (browse-url-file-url):
+       * lisp/menu-bar.el (menu-bar-options-menu, menu-bar-describe-menu):
+       * lisp/mail/sendmail.el (mail-setup):
+       * lisp/mail/rmail.el (rmail-mode, rmail-get-new-mail):
+       * lisp/mail/rfc2047.el (rfc2047-encode-message-header):
+       * lisp/mail/emacsbug.el (report-emacs-bug):
+       * lisp/international/mule-diag.el (mule-diag):
+       * lisp/files.el (find-file-noselect-1):
+       * lisp/dos-fns.el (dos-set-default-process-coding-system):
+       * lisp/arc-mode.el (archive-mode):
+       * lisp/international/mule-cmds.el (mule-menu-keymap)
+       (set-default-coding-systems, set-language-info)
+       (set-language-environment, standard-display-european-internal)
+       (set-locale-environment): Simplify code.
+
+2018-01-25  Michael Albinus  <address@hidden>
+
+       * lisp/simple.el (shell-command-to-string):
+
+       Call `shell-command' in order to respect file name handlers.
+
+2018-01-25  Michael Albinus  <address@hidden>
+
+       * lisp/net/trampver.el: Simplify version check.
+
+2018-01-24  Juri Linkov  <address@hidden>
+
+       * lisp/dired.el (dired-internal-do-deletions): Remove nreverse
+
+       to compensate the changes that added nreverse to dired-do-delete
+       and dired-do-flagged-delete in 9ecbdee (bug#30162)
+
+2018-01-24  Stefan Monnier  <address@hidden>
+
+       * lisp/net/tramp.el: Require trampver here instead of...
+
+       * lisp/net/tramp-compat.el: ... there.
+
+2018-01-24  Glenn Morris  <address@hidden>
+
+       * admin/automerge: Disable rebasing.
+
+2018-01-24  Marcin Borkowski  <address@hidden>
+
+       Merge branch 'fix/bug-20871-cur'
+
+2018-01-23  Glenn Morris  <address@hidden>
+
+       Avoid kill-emacs-hook errors hanging batch mode
+
+       * src/emacs.c (Fkill_emacs): Prevent errors from kill-emacs-hook
+       hanging Emacs in batch mode.  (Bug#29955)
+
+2018-01-23  Philipp Stephani  <address@hidden>
+
+       Add unit test for Bug#30005.
+
+       * test/src/callint-tests.el (call-interactively/embedded-nulls): New
+       unit test.
+
+2018-01-23  Stefan Monnier  <address@hidden>
+
+       Remove final uses of 'cl' in lisp/net
+
+       * lisp/net/pop3.el: Use lexical-binding and cl-lib.
+       (pop3-write-to-file): Remove unused var 'start'.
+       (pop3-make-date): Remove unused var 'sign'.
+
+       * lisp/net/rfc2104.el: Use lexical-binding and cl-lib.
+
+       * lisp/net/shr-color.el: Use lexical-binding and cl-lib.
+
+       * lisp/net/sieve-manage.el: Use lexical-binding and cl-lib.
+
+2018-01-23  Stefan Monnier  <address@hidden>
+
+       * lisp/net/imap.el: Use lexical-binding and cl-lib
+
+       Require packages instead of autoloading their functions.
+       (imap-send-command): Remove unused vars 'stream' and 'eol'.
+       (imap-parse-response): Use pcase.
+       (imap-parse-fetch): Remove unused arg 'response'.
+
+       * lisp/format-spec.el: Don't require CL.
+
+2018-01-23  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/message.el: Tweak header font-lock and ecomplete completion
+
+       (message-font-lock-make-header-matcher): Delete.
+       (message-match-to-eoh): New function to replace it.
+       (message-font-lock-keywords): Use it.
+       (message-strip-forbidden-properties): Remove redundant binding.
+       (message-goto-body): Avoid called-interactively-p, only use
+       push-mark when called interactively.
+       (message-goto-body-1): Merge into message-goto-body.  Redefine as alias.
+       (message-goto-eoh): Call message-goto-body interactively.
+       (message--in-tocc-p): New function, extracted from 
message-display-abbrev.
+       (message-ecomplete-capf): New function.
+
+2018-01-23  Stefan Monnier  <address@hidden>
+
+       * lisp/ecomplete.el: Add completion-table; use lexical-binding and 
cl-lib
+
+       Also remove redundant :group args.
+       (ecomplete-database-file): Use locate-user-emacs-file.
+       (ecomplete-completion-table): New completion table.
+       (completion-category-defaults): Set default behavior for that table.
+
+2018-01-23  Eli Zaretskii  <address@hidden>
+
+       Support null characters in interactive specs
+
+       * src/callint.c (Fcall_interactively): Support 'interactive'
+       specifications with embedded null characters.  (Bug#30005)
+
+2018-01-22  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/ert.el (describe-symbol-backends): Add ourselves
+
+       (ert-describe-test): Return the description text as well.
+       Remove left over version check.
+       * lisp/help-mode.el (describe-symbol-backends): Add docstring.
+
+2018-01-22  Philipp Stephani  <address@hidden>
+
+       Add a regression test for Bug#30004.
+
+       * test/src/callint-tests.el
+       (call-interactively/incomplete-multibyte-sequence): New unit test.
+
+2018-01-22  Philipp Stephani  <address@hidden>
+
+       * src/nsterm.m (x_set_offset): Remove unused variable 'screens'.
+
+2018-01-22  Juri Linkov  <address@hidden>
+
+       Restore isearch correctly after M-e in special modes (bug#30187)
+
+       * lisp/isearch.el (isearch-suspended): New defvar.
+       (with-isearch-suspended): Set isearch-suspended to t
+       at the beginning, then set it back to nil at the end.
+
+       * lisp/comint.el (comint-history-isearch-backward)
+       (comint-history-isearch-backward-regexp): Set global value of
+       comint-history-isearch to t.
+       (comint-history-isearch-end): Reevaluate
+       comint-history-isearch when isearch-edit-string finishes.
+
+       * lisp/dired-aux.el (dired-isearch-filenames)
+       (dired-isearch-filenames-regexp): Set global value of
+       dired-isearch-filenames to t.
+       (dired-isearch-filenames-end): Reevaluate
+       dired-isearch-filenames when isearch-edit-string finishes.
+
+2018-01-22  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       1fc98ed073 ; Spelling fix
+       bb396a369c Update Org to v9.1.6
+       fa582153f7 Use text-pixels values only when saving framesets (Bug#30141)
+       6b01b9475d Minor improvement in section "Pages" of the usere manual
+       e8c8bd3de2 Minor improvements in user manual
+       26b8b92e63 Improve the "Mark" chapter of the user manual
+       759569fe40 Improve the "Buffers" chapter of the user manual
+       c2e6d121ff * lisp/term.el (term-send-input): Fix text duplication in ...
+       854a1c0a61 Improve "Buffers" in the user manual
+
+       # Conflicts:
+       #       etc/NEWS
+
+2018-01-22  Michael Albinus  <address@hidden>
+
+       Fix byte-compiler warning in tramp-sh.el
+
+       * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
+       Use `set-process-coding-system' rather than interactive
+       `set-buffer-process-coding-system'.
+
+       * lisp/net/tramp.el (tramp-default-user-alist)
+       (tramp-default-host-alist): Fix docstring.
+
+2018-01-22  Michael Albinus  <address@hidden>
+
+       Finish changes in autorevert from commit 530bb2dc68
+
+       * lisp/autorevert.el (auto-revert-buffers):
+       Check `auto-revert-timer' being a timerp.
+
+       * test/lisp/filenotify-tests.el (file-notify-test04-autorevert):
+       Adapt test in order to cover changed behavior of autorevert.
+
+2018-01-21  Juri Linkov  <address@hidden>
+
+       * lisp/vc/add-log.el (change-log-next-buffer): Check file for nil.
+
+2018-01-21  Juri Linkov  <address@hidden>
+
+       New function read-answer (bug#30073)
+
+       * lisp/emacs-lisp/map-ynp.el (read-answer): New function.
+       (read-answer-short): New defcustom.
+
+       * lisp/dired.el (dired-delete-file): Use read-answer.
+       (dired--yes-no-all-quit-help): Remove function.
+       (dired-delete-help): Remove defconst.
+
+       * lisp/subr.el (assoc-delete-all): New function.
+
+2018-01-21  Lars Ingebrigtsen  <address@hidden>
+
+       (archive-rar-summarize): Adjust parsing to be more permissive
+
+       * lisp/arc-mode.el (archive-rar-summarize): Adjust parsing to
+       be more permissive.
+
+       The previous code would stop parsing if we had a directory entry or a
+       negative ratio as seen from the output of lsar on Debian jessie:
+
+         0. D----    16221659  -----  Nr20  2005-12-24 19:30  foo/
+         4. -----      466509  -0.0%  Nr20  2005-12-24 19:19  foo/bar.jpg
+
+2018-01-21  Alan Mackenzie  <address@hidden>
+
+       Handle C99 Compound Literals in return statements and argument lists.
+
+       * lisp/progmodes/cc-engine.el (c-looking-at-or-maybe-in-bracelist): 
Recognize
+       a brace list when preceded by "return" or inside parentheses, either
+       immediately after the "(" or following a comma.
+       (c-looking-at-inexpr-block): Test c-has-compound-literals rather than 
hard
+       coded C++ Mode.
+       (c-guess-basic-syntax, CASE 7B): Test additionally for not being just 
inside a
+       parenthesis or being at a Java "new" keyword.  CASE 9: Remove the simple
+       minded test on the contents of a block to determine a brace list.
+
+       * lisp/progmodes/cc-langs.el (c-has-compound-literals): New lang const 
and lang var.
+
+2018-01-21  Simen Heggestøyl  <address@hidden>
+
+       Parse percent values in CSS alpha components
+
+       * lisp/textmodes/css-mode.el (css--rgb-color): Support parsing percent
+       values in the alpha component.
+
+       * test/lisp/textmodes/css-mode-tests.el
+       (css-test-rgb-to-named-color-or-hex, css-test-rgb-parser): Update for
+       the above changes.
+
+2018-01-20  Paul Eggert  <address@hidden>
+
+       Fix tempfile creation when byte compiling
+
+       This improves on the recent fix for master failing to build
+       on FreeBSD.  Suggested by Stefan Monnier in:
+       https://lists.gnu.org/r/emacs-devel/2018-01/msg00600.html
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-file):
+       Put tempfile next to the target file, as was the original intent.
+
+2018-01-20  Michael Albinus  <address@hidden>
+
+       Extend tramp-test02-file-name-dissect* tests
+
+       * test/lisp/net/tramp-tests.el (tramp-test02-file-name-dissect)
+       (tramp-test02-file-name-dissect-simplified)
+       (tramp-test02-file-name-dissect-separate): Test also
+       `tramp-default-method-alist', `tramp-default-user-alist' and
+       `tramp-default-host-alist'.
+
+2018-01-20  Jarosław Rzeszótko  <address@hidden>  (tiny change)
+
+       * lisp/ielm.el: Bring up the debugger when requested
+
+
+       (ielm-eval-input): Don't catch errors during evaluation
+       of the expression if debug-on-error is set.
+
+2018-01-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       cfc94fd (origin/emacs-26) Don't mention 'vc-stay-local' in the user m...
+       8ce430b Fix a typo in calendar.texi
+       bb748b3 Minor improvement in wording of the Emacs manual
+       b603aff Revert "Fix tempfile creation when byte compiling"
+       4fd446e Fix tempfile creation when byte compiling
+       7f48a11 Improve the Emacs manual as suggested in emacs-manual-bugs
+       728ded0 * lisp/emacs-lisp/bytecomp.el: Tweak last change
+       c6c05e2 Unbreak building Emacs on FreeBSD
+       a41ad3d Don't unnecessarily use non-ASCII characters in C sources
+       c28d4b6 Portability fixes in emacs-module-tests
+       1d50c18 Add tests for term.el
+
+2018-01-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       297dc41 * configure.ac (emacs_config_features): Add threads.
+
+       Conflicts:
+               configure.ac
+
+2018-01-20  Michael Albinus  <address@hidden>
+
+       Use file notification in autorevert also for recreated files
+
+       * lisp/autorevert.el (auto-revert-mode)
+       (global-auto-revert-mode, auto-revert-notify-add-watch)
+       (auto-revert-notify-handler, auto-revert-handler): Do not use
+       buffer local `auto-revert-use-notify' anymore.
+
+       * test/lisp/autorevert-tests.el
+       (auto-revert-test02-auto-revert-deleted-file): Adapt test in
+       order to check, that file notification is reenabled when possible.
+
+2018-01-20  Michael Albinus  <address@hidden>
+
+       * doc/misc/tramp.texi: Highlight @cindex entries properly.
+
+2018-01-20  Basil L. Contovounesios  <address@hidden>
+
+       Improve and simplify 'map-y-or-n-p'
+
+       * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Do not follow a
+       definite article with an action verb in C-h help text.  Use
+       'with-help-window' instead of 'with-output-to-temp-buffer'.
+       Simplify string concatenation.  (Bug#30064)
+
+2018-01-20  Basil L. Contovounesios  <address@hidden>
+
+       Use map-y-or-n-p in bibtex.el
+
+       * lisp/textmodes/bibtex.el (bibtex-reformat): Use map-y-or-n-p.
+       (Bug#30065)
+
+2018-01-20  Basil L. Contovounesios  <address@hidden>
+
+       Reverse bibtex-reference-keys in 'bibtex-parse-keys'
+
+       * lisp/textmodes/bibtex.el (bibtex-parse-keys): Reverse
+       bibtex-reference-keys.  (Bug#30048)
+
+2018-01-19  Michael Albinus  <address@hidden>
+
+       Add new entry in tramp-smb-errors
+
+       * lisp/net/tramp-smb.el (tramp-smb-errors):
+       Add "NT_STATUS_RESOURCE_NAME_NOT_FOUND".
+
+2018-01-19  Eli Zaretskii  <address@hidden>
+
+       Fix posn-at-point in Flycheck buffers
+
+       * src/dispnew.c (buffer_posn_from_coords): Improve commentary.
+
+       * src/xdisp.c (move_it_in_display_line_to): Don't exit the loop
+       under truncate-lines if the glyph at TO_CHARPOS was not yet
+       produced.  This avoids bailing out too early when we are at
+       TO_CHARPOS, but didn't yet produce glyphs for that buffer
+       position, because the last call to PRODUCE_GLYPHS at this position
+       was for an object other than the buffer.  For further details, see
+       http://lists.gnu.org/archive/html/emacs-devel/2018-01/msg00537.html.
+
+2018-01-19  Reuben Thomas  <address@hidden>
+
+       etags(1): fix formatting problem
+
+       * doc/man/etags.1: Remove spurious space.
+
+2018-01-19  Michael Albinus  <address@hidden>
+
+       * test/lisp/filenotify-tests.el (file-notify-test03-events): Cleanup 
subtests.
+
+2018-01-18  Stefan Monnier  <address@hidden>
+
+       * lisp/calendar/calendar.el: Use lexical-binding
+
+       (calendar-generate-window): Remove unused variable `day'.
+       (calendar-generate-month): Use calendar-dlet* to provide the dynbind
+       vars promised by the respective docstrings.
+       (calendar-update-mode-line): Use calendar-dlet* to provide `date' to
+       calendar-mode-line-format.  Don't call `eval' here since it's called in
+       calendar-string-spread anyway!
+       (calendar-date-string): Use calendar-dlet* to provide the dynbind
+       vars promised by the docstring of calendar-date-display-form.
+
+       * lisp/calendar/diary-lib.el (diary--date-string): Rename from 
date-string.
+
+2018-01-18  Noam Postavsky  <address@hidden>
+
+       Switch term.el to lexical binding, and clean up code a bit
+
+       * lisp/term.el (term-terminal-state): Remove.
+       (term-do-line-wrapping): New variable, equivalent to state 1.
+       (term-terminal-previous-parameter, term-terminal-parameter)
+       (term-terminal-more-parameters)
+       (term-terminal-previous-parameter-2)
+       (term-terminal-previous-parameter-3)
+       (term-terminal-previous-parameter-4): Remove.
+       (term-move-to-column): New function, for absolute column movement.
+       (term-control-seq-regexp, term-control-seq-prefix-regexp): New
+       constants.
+       (term-emulate-terminal, term-pager-discard): Use them via string-match
+       instead of implementing a state machine in elisp.  Handle all
+       unprocessed input via term-terminal-undecoded-bytes (this solves
+       Bug#17231).
+       (term-handle-ansi-escape): Take a list of escape sequence parameters
+       as an argument, rather than via dynamic variables.
+       (term-erase-in-display): Consult the argument, not the dynamically
+       bound term-terminal-parameter (which happened to be the same as the
+       argument up until now).
+
+2018-01-18  Glenn Morris  <address@hidden>
+
+       * admin/automerge: New script.
+
+2018-01-18  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       76040d1 (origin/emacs-26) Handle case-insensitive filenames for load-...
+       0c9b050 ; * test/file-organization.org: Fix typo.
+
+2018-01-18  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       779b2ac Use recommended long options syntax in man page
+       c433e87 An overdue update of GNUstep emacs.tiff
+       188a9d9 Add some test skip conditions
+
+2018-01-18  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       7efb366 ; * etc/AUTHORS: Regenerate.
+       3dc7f68 * admin/authors.el (authors-aliases): Tighten more entries.
+       7428062 ; * lisp/vc/vc.el: Comment fixes.
+       f4e6b6e Small startup fix for current-load-list
+       5b776bf ; * etc/AUTHORS: Regenerate.
+       d80295c authors-aliases is based on regexps, not literals
+
+2018-01-18  Stefan Monnier  <address@hidden>
+
+       * lisp/vc/vc-hg.el, lisp/vc/vc-git.el: Flush the 'vc-functions' cache.
+
+2018-01-18  Juri Linkov  <address@hidden>
+
+       Improve "*Process List*" and "*Local Variables*".  (Bug#30016)
+
+       * lisp/files.el (save-buffers-kill-emacs): Display "*Process List*"
+       buffer at bottom.
+       (hack-local-variables-confirm): Display "*Local Variables*" buffer
+       at bottom.
+
+       * lisp/simple.el (process-menu-mode): Increase buffer column width
+       from 15 to 25.
+
+2018-01-18  Philipp Stephani  <address@hidden>
+
+       Fix module support if threads are disabled (Bug#30106)
+
+       * src/systhread.c (sys_thread_equal): New function.
+       * src/thread.c (in_current_thread): Move from emacs-module.c; use
+       sys_thread_equal.
+
+2018-01-18  Michael Albinus  <address@hidden>
+
+       * doc/misc/message.texi (Mail Aliases): Mention also down and up keys.
+
+2018-01-18  Lars Ingebrigtsen  <address@hidden>
+
+       Bind up/down in ecomplete
+
+       * lisp/ecomplete.el (ecomplete-display-matches): Allow using
+       up/down in addition to M-p/M-n.
+
+2018-01-18  Martin Rudalics  <address@hidden>
+
+       Fix some tooltip related problems
+
+       Replace 'tooltip' frame parameter with a 'tooltip' member in
+       the frame structure.  For GTK+ builds use 'tip_last_frame' to
+       find the frame for which the currently visible tooltip was
+       made.  For modeline help-echoing have tooltips show applicable
+       actions only.
+
+       * lisp/bindings.el (mode-line-default-help-echo): New function
+       as default value of homonymous option.
+       * src/dispextern.h (tip_frame, tip_window): Remove
+       declarations.
+       * src/frame.c (make_frame): Initialize new frame structure
+       member 'tooltip'.
+       (Fframe_list, other_frames): Rewrite with new macro
+       FRAME_TOOLTIP_P.
+       * src/frame.h (struct frame): New member 'tooltip'.
+       (FRAME_TOOLTIP_P): New macro.
+       * src/gtkutil.c (xg_prepare_tooltip, xg_hide_tooltip): Rewrite
+       using boolean return values.
+       * src/nsfns.m (tip_frame): Remove declaration.
+       * src/w32fns.c (w32_display_monitor_attributes_list)
+       (w32_display_monitor_attributes_list_fallback): Rewrite with
+       new macro FRAME_TOOLTIP_P.
+       (tip_last_string, tip_last_frame, tip_last_parms): New Lisp
+       scalars replacing Lisp vector last_show_tip_args.
+       (x_create_tip_frame): Set new frame's 'tooltip' structure
+       member to true.
+       (x_hide_tip): Additionally test tip_frame for liveness.
+       (Fx_show_tip): Handle last_show_tip_args to tip_last_frame,
+       tip_last_string and tip_last_parms conversion.
+       (syms_of_w32fns): staticpro tip_last_frame, tip_last_string
+       and tip_last_parms instead of last_show_tip_args.
+       * src/w32term.c (w32_read_socket, x_new_font): Rewrite with
+       new macro FRAME_TOOLTIP_P.
+       * src/w32term.h (tip_window): Add external declaration.
+       * src/xdisp.c (x_consider_frame_title, prepare_menu_bars)
+       (should_produce_line_number): Rewrite with new macro
+       FRAME_TOOLTIP_P.
+       (note_mode_line_or_margin_highlight): If
+       `mode-line-default-help-echo' specifies a function, call it to
+       produce help echo string.
+       * src/xfns.c (x_make_monitor_attribute_list)
+       (Fx_display_monitor_attributes_list): Rewrite with
+       new macro FRAME_TOOLTIP_P.
+       (tip_last_string, tip_last_frame, tip_last_parms): New Lisp
+       scalars replacing Lisp vector last_show_tip_args.
+       (x_create_tip_frame): Set new frame's 'tooltip' structure
+       member to true.
+       (x_hide_tip): Rewrite with additional tests of frames for
+       liveness and taking into account that for GTK+ tips the
+       reference frame is now stored in tip_last_frame instead of
+       tip_frame.
+       (Fx_show_tip): Handle last_show_tip_args to tip_last_frame,
+       tip_last_string and tip_last_parms conversion.  For GTK+ store
+       FRAME argument in tip_last-frame.
+       (syms_of_xfns): staticpro tip_last_frame, tip_last_string
+       and tip_last_parms instead of last_show_tip_args.
+       * src/xterm.c (x_update_begin, handle_one_xevent, x_new_font)
+       (x_set_window_size): Rewrite with new macro FRAME_TOOLTIP_P.
+       * src/xterm.h (tip_window): Add external declaration.
+       * etc/NEWS: Mention new modeline tooltips behavior.
+
+2018-01-16  Glenn Morris  <address@hidden>
+
+       Small cus-start fix for custom-delayed-init-variables
+
+       * lisp/cus-start.el (custom-delayed-init-variables):
+       Only modify it during startup.
+
+2018-01-16  Lars Ingebrigtsen  <address@hidden>
+
+       Introduce a variable to control ecomplete sorting
+
+       * lisp/ecomplete.el (ecomplete-sort-predicate): New variable.
+       (ecomplete-get-matches): Use it.
+
+2018-01-16  Alan Mackenzie  <address@hidden>
+
+       C++ Mode: Fontify correctly uniform initialisation with inner 
parentheses.
+
+       E.g.: someStruct x ( (nullptr != y) ? 3 : 4 )
+       Also fontify declarations of function pointers correctly.
+
+       * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): While testing 
for a
+       typeless declaration, additionally test the variable `got-prefix' to
+       recognize a function pointer in parentheses.  Allow 
c-fdoc-shift-type-backward
+       to be invoked when we have nested parens.
+
+2018-01-16  Lars Ingebrigtsen  <address@hidden>
+
+       Add documentation to ecomplete.el
+
+       * lisp/ecomplete.el: Add doc strings and document the format.
+
+2018-01-15  Paul Eggert  <address@hidden>
+
+       Fix macOS breakage in make_lispy_event
+
+       Problem reported by John Wiegley in:
+       https://lists.gnu.org/r/emacs-devel/2018-01/msg00499.html
+       * src/keyboard.c (kbd_buffer_get_event) [HAVE_NS]:
+       Act on used_mouse_menu here...
+       (make_lispy_event) [HAVE_NS]: ... instead of here.
+
+2018-01-15  Stefan Monnier  <address@hidden>
+
+       * lisp/ielm.el (ielm-eval-input): Use cl-print.
+
+2018-01-15  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       98e5fb9bf3 (origin/emacs-26) Remove incorrect documentation in comint.el
+       8ba5b85161 An overdue update of src/emacs-icon.h
+       155b211133 Minor copyedit in ELisp manual
+
+2018-01-15  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       c9c1add6a4 * doc/lispref/variables.texi (File Local Variables): Fix l...
+       752fba992b (tag: emacs-26.0.91) ; * Update ldefs-boot.el
+       4f46a5098d * ChangeLog.3: Update
+       8f705ba44d Update etc/AUTHORS
+       6c63204b8c Fix an entry in authors-aliases
+       5dd0e5c54d Mention trace.el facilities in the ELisp manual
+       97b0e41c5d Improve documentation of safe values of variables
+       a502ee9dc4 ; * doc/emacs/misc.texi (Amusements): Really add "games" t...
+       106bf8adc3 Improve the Emacs manual's "Misc" node
+       47aa85c7ec In nsterm.m use FRAME_NS_P instead of FRAME_X_P (Bug#30019)
+       e9e32d3475 ; * Update ldefs-boot.el
+
+2018-01-15  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       2c0cfa6455 * ChangeLog.3: Update
+       4387bb44ae Update authors
+       bce51bd6f7 * lisp/gnus/message.el (message-do-auto-fill): Prevent do-...
+       bd2a2a1e84 Improve documentation of etags
+       7ba75b9637 Teach etags new interpreters for some languages
+       1f7f03742d * lisp/emacs-lisp/generator.el (iter-defun): Add 'doc-stri...
+       dbb4aac212 * lisp/emacs-lisp/syntax.el (syntax-propertize): Fix bug#2...
+       80463a43da Improve documentation of fill-separate-heterogeneous-words...
+       4bd2416d55 Fix documentation of some x-* functions
+       9c2b11484f Inherit query-on-exit flag to stderr process (Bug#30031)
+       3efb1e7def Fix Bug#30057
+       a9b884c60f Tag some unstable tests, and skip by default (bug#24503)
+
+       # Conflicts:
+       #       test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
+
+2018-01-15  Nicolas Petton  <address@hidden>
+
+       * admin/authors.el (authors-aliases): Additions.
+
+2018-01-15  Nicolas Petton  <address@hidden>
+
+       Update authors.el
+
+       * admin/authors.el (authors-valid-file-names)
+       (authors-renamed-files-alist): Additions.
+
+2018-01-15  Glenn Morris  <address@hidden>
+
+       Small improvement for noninteractive gitmerge
+
+       * admin/gitmerge.el (gitmerge-resolve-unmerged):
+       In batch mode, report conflicted files.
+
+2018-01-15  Glenn Morris  <address@hidden>
+
+       Small gitmerge-skip-regexp fix
+
+       * admin/gitmerge.el (gitmerge-skip-regexp): Update for new format
+       of "bump version" message that seems to have appeared.
+
+2018-01-15  Stefan Monnier  <address@hidden>
+
+       * src/print.c (syms_of_print) <print_quoted>: Set default to true
+
+2018-01-15  Stefan Monnier  <address@hidden>
+
+       * lisp/mail/smtpmail.el (smtpmail-send-data-1): No string-as-multibyte
+
+       This is not needed any more since unibyte strings will be sent as-is
+       anyway by process-send-string.
+       (smtpmail-via-smtp): Avoid set-buffer-process-coding-system.
+
+2018-01-15  Stefan Monnier  <address@hidden>
+
+       (set-buffer-process-coding-system): Mark as interactive-only.
+
+       * lisp/international/mule.el (set-buffer-process-coding-system):
+       Mark as interactive-only.
+
+2018-01-15  Jeremie Courreges-Anglas  <address@hidden>
+
+       Use fcntl.h in kqueue.c
+
+       * src/kqueue.c: Use fcntl.h (specified by POSIX) instead of
+       non-standard sys/file.h to access O_* open(2) flags.
+
+2018-01-14  Marcin Borkowski  <address@hidden>
+
+       Add simple tests for the `fill-polish-nobreak-p' function
+
+       * test/lisp/textmodes/fill-tests.el:
+       (fill-test-no-fill-polish-nobreak-p): New test
+
+2018-01-14  Marcin Borkowski  <address@hidden>
+
+       Add the function `fill-polish-nobreak-p'
+
+       * lisp/textmodes/fill.el (fill-polish-nobreak-p): Prevent
+       line-breaking after a single-letter word even if this word is not
+       preceded by a space.  Fixes bug #20871.
+
+2018-01-13  Ken Brown  <address@hidden>
+
+       Add battery support to all Cygwin builds
+
+       It already exists in the Cygwin-w32 build.
+       * src/w32fns.c (Fw32_battery_status): Move to...
+       * src/w32cygwinx.c: New file, to be used for functions common to
+       the MS Windows and Cygwin builds.
+       (syms_of_w32cygwinx): New function.
+       * src/lisp.h: Add prototype of syms_of_w32cygwinx.
+       * src/emacs.c (main) [HAVE_NTGUI or CYGWIN]: Call syms_of_w32cygwinx.
+       * src/Makefile.in (SOME_MACHINE_OBJECTS):
+       * configure.ac (W32_OBJ) [HAVE_W32]: Add w32cygwinx.o.
+       (W32_LIBS) [CYGWIN]: Set equal to "-lkernel32" in non-w32 build.
+       (W32_OBJ) [CYGWIN]: Set equal to "w32cygwinx.o" in non-w32 build.
+       * etc/NEWS: Document the new battery support.
+
+2018-01-13  Shuguang Sun  <address@hidden>
+
+       Fix Bug#29149 in dired-aux.el
+
+       * lisp/dired-aux.el (dired-shell-stuff-it): Handle remote
+       commands on w32 properly.  (Bug#29149)
+
+2018-01-13  Michael Albinus  <address@hidden>
+
+       Fix Bug#29149 in shell.el
+
+       * lisp/shell.el (shell): Change order of `file-local-name' and
+       `expand-file-name' calls.  Otherwise, the local file name
+       would be extended by a drive letter, even when it is a remote
+       file, seen from w32.  (Bug#29149)
+
+2018-01-13  Michael Albinus  <address@hidden>
+
+       Improve Tramp robustness
+
+       * lisp/net/tramp.el (tramp-message, tramp-process-actions)
+       (tramp-read-passwd, tramp-interrupt-process):
+       * lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch)
+       (tramp-gvfs-maybe-open-connection):
+       * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
+       (tramp-process-sentinel)
+       (tramp-sh-handle-file-notify-add-watch)
+       (tramp-barf-if-no-shell-prompt, 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): Use process property rather
+       than connection property "vector".
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch):
+       Fix scoping error.  Let error traces use process buffer.
+
+       * lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
+       Move "inotifywait" up.  GVFS based monitoring is not stable.
+       Let error traces use process buffer.
+       (tramp-sh-gvfs-monitor-dir-process-filter): Check more error
+       messages.
+       (tramp-get-remote-gvfs-monitor-dir): Search also for "gio".
+
+       * lisp/net/tramp.el (tramp-get-debug-buffer):
+       Use `special-mode-map' as parent map in debug buffer.
+       (tramp-message): Ensure, that proper process buffer is dumped
+       in error case.
+
+2018-01-12  Stefan Monnier  <address@hidden>
+
+       * src/keyboard.c: Consolidate code into make_lispy_event
+
+       (clear_event): Change arg type.  Adjust callers.
+       (kbd_buffer_get_event): Move most special event handling to
+       make_lispy_event.
+       (make_lispy_event): Add missing cases, taken from kbd_buffer_get_event.
+       <SAVE_SESSION_EVENT>: Change return value to match what used to be built
+       in kbd_buffer_get_event.
+
+2018-01-12  Stefan Monnier  <address@hidden>
+
+       * src/keyboard.c (kbd_buffer_get_event): Use 'switch' ...
+
+       ...rather than a sequence of else-if.
+
+2018-01-12  Alan Mackenzie  <address@hidden>
+
+       Make Fzlib_decompress_region always call the change hooks in a balanced 
way.
+
+       This means there will be exactly one call of each of before- and
+       after-change-functions, regardless of whether or not the decompression
+       succeeds, and these calls will refer to corresponding buffer regions.
+
+       src/decompress.c (struct decompress_unwind_data): add a new field, orig.
+       (unwind_decompress): Use del_range_2 and update_compositions in place of
+       del_range, to avoid unwanted change hook calls.  Call 
signal_after_change for
+       the failed case.
+       (Fzlib_decompress_region): Call modify_txt for a 
before-change-functions.  Set
+       the new field orig of unwind_data to the region's start.  Use 
del_range_2 and
+       update_compositions in place of del_range to avoid unwanted change hook
+       calls.  Call signal_after_change for the successful case.
+
+2018-01-11  Juri Linkov  <address@hidden>
+
+       * lisp/frame.el (toggle-frame-maximized/fullscreen): Add frame arg.
+
+       (Bug#29986)
+
+2018-01-11  Juri Linkov  <address@hidden>
+
+       * lisp/windmove.el (windmove-default-keybindings): Allow list of 
modifiers.
+
+       (Bug#29985)
+
+2018-01-11  Ken Brown  <address@hidden>
+
+       Unbreak the Cygwin-w32 build
+
+       * src/keyboard.c (input_polling_used) [CYGWIN]: Restore.  This was
+       removed on Cygwin in the commit "On non-MS-Windows, omit unnecessary
+       polling functions".  But it is used in w32fns.c:x_make_frame_visible
+       in the Cygwin-w32 build.
+
+2018-01-11  Stefan Monnier  <address@hidden>
+
+       * lisp/mail/smtpmail.el: Use lexical-binding and cl-generic
+
+       (smtpmail-auth-supported): Mark it as non-constant.
+       (smtpmail-try-auth-methods): Remove unused var 'ret'.
+       Test non-nullness of mech user and password before calling
+       smtpmail-try-auth-method.
+       (smtpmail-try-auth-method): Make it into a generic function.
+       (smtpmail-via-smtp): Remove unused var 'response-code'.
+
+2018-01-11  Stefan Monnier  <address@hidden>
+
+       * lisp/org/org-element.el: Add comment about use of internal functions
+
+2018-01-10  Glenn Morris  <address@hidden>
+
+       Remove some more face aliases obsolete since 22.1
+
+       * lisp/generic-x.el (show-tabs-tab-face, show-tabs-space-face):
+       * lisp/eshell/em-prompt.el (eshell-prompt-face):
+       * lisp/vc/smerge-mode.el (smerge-base-face, smerge-markers-face):
+       Remove face "-face" aliases, obsolete since 22.1.
+
+2018-01-10  Glenn Morris  <address@hidden>
+
+       Remove message.el face aliases obsolete since 22.1
+
+       * lisp/gnus/message.el: Remove face "-face" aliases,
+       obsolete since 22.1.
+
+2018-01-10  Glenn Morris  <address@hidden>
+
+       Remove Gnus face aliases obsolete since 22.1
+
+       * lisp/gnus/gnus-art.el, lisp/gnus/gnus-cite.el:
+       * lisp/gnus/gnus-srvr.el, lisp/gnus/gnus.el:
+       * lisp/gnus/spam.el: Remove face "-face" aliases, obsolete since 22.1.
+
+2018-01-10  Glenn Morris  <address@hidden>
+
+       Remove obsolete variable sun-raw-prefix-hooks
+
+       * lisp/term/sun.el (sun-raw-prefix-hooks): Remove, obsolete since 21.1.
+       (terminal-init-sun): No longer consult sun-raw-prefix-hooks.
+
+2018-01-10  Stefan Monnier  <address@hidden>
+
+       * lisp/calendar/appt.el: Use lexical-binding
+
+       (appt-display-message): Remove unused variable 'err'.
+       (appt-check): Fix typo in search for a function on a hook.
+       (number, original-date): Move declaration into 'appt-make-list'.
+
+2018-01-10  Stefan Monnier  <address@hidden>
+
+       * lisp/calendar/diary-lib.el: Fix bug#30051
+
+       (diary-list-entries): Dynamically bind 'number' and 'original-date' 
around
+       diary-hook as documented in the docstring.
+
+2018-01-09  Glenn Morris  <address@hidden>
+
+       Remove some obsolete calendar functions and variables
+
+       * lisp/calendar/cal-tex.el (cal-tex-list-holidays):
+       Remove alias, obsolete since 24.4.
+       * lisp/calendar/calendar.el (calendar-mode):
+       No longer use calendar-font-lock-keywords.
+       (calendar-font-lock-keywords): Delete variable, obsolete since 24.4.
+
+2018-01-09  Glenn Morris  <address@hidden>
+
+       Remove some obsolete compat code in supercite.el
+
+       * lisp/mail/supercite.el (sc-ask, sc-cite-original):
+       Remove obsolete compat code.  This file uses modern features.
+
+2018-01-09  Glenn Morris  <address@hidden>
+
+       Remove some obsolete compat code in f90.el
+
+       * lisp/progmodes/f90.el (f90-mark-subprogram, f90-indent-region)
+       (f90-fill-region): Remove obsolete compat code.
+       This file uses modern features.
+
+2018-01-09  Glenn Morris  <address@hidden>
+
+       Remove some obsolete compat code in fortran.el
+
+       * lisp/progmodes/fortran.el (fortran-abbrev-start):
+       Remove obsolete compat code.  This file uses modern features.
+
+2018-01-09  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       7668717d6f Merge from Gnulib
+       9e4d523427 * lisp/epg.el (epg-start-sign): Replace obsolete functions.
+       26c58f31a8 Small fix for erc-logging-enabled
+       34b41e3bc6 Quieten semantic normal usage
+       e25f961e37 Avoid irrelevant hyperlink in doc string of 'epa-pinentry-...
+       ec2636513c * doc/misc/tramp.texi (Remote processes): Mention gdb rest...
+       918a052a42 Query background for gnome terminal version 3.22 (Bug#29716)
+       1dfc27576a Make pixel-wise scrolling less laggy
+       f92264fc2a Fix child frame placement issues (bug#29953)
+       a5f718c4c5 ; * doc/lispref/text.texi (Change Hooks): Fix last change.
+       e876f5f9fb Describe the precise interaction of complex primitives wit...
+       3a22097cf6 Fix valgrind report in call-interactively
+       d5f1c87bfe * src/editfns.c (Fsave_excursion): Doc fix.  (Bug#30001)
+       b8d74c4578 Fix mark-defun when there's no spaces between successive d...
+       a377c652b5 Fix Dired display and operations on file names with raw bytes
+       d9d6e8a04c ; Comments related to src/termcap.c
+       f8a07fa6b1 Improve documentation of 'gdb-many-windows'
+       f82400798e Fix failures in smerge-mode on MS-Windows
+
+2018-01-09  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       d382d2bfc5 * etc/DEBUG (Getting control to the debugger): Fix grammar.
+       687af4c8e8 * lisp/vc/vc.el (vc-region-history): log-view-vc-fileset h...
+       43e2aafae3 Don't bind dframe events on load (Bug#29599)
+       ab31bf3c5f * lisp/textmodes/picture.el (picture-mode-exit): Doc fix. ...
+       ed44d92fa6 * lisp/textmodes/picture.el (picture-open-line): Doc fix. ...
+       b87a772612 Fix description of 'emacs-internal'
+       a5256da588 Update PROBLEMS with selection-related issues
+       c59ecb005e New customization variable for python-mode indentation (Bu...
+       4e20c8f220 Fix menu keyboard shortcuts on macOS (Bug#29595)
+
+       # Conflicts:
+       #       etc/NEWS
+
+2018-01-09  Michael Albinus  <address@hidden>
+
+       Fix Bug#30038
+
+       * lisp/net/tramp.el (tramp-make-tramp-file-name): Check, that
+       method is not empty.  (Bug#30038)
+
+2018-01-08  Tino Calancha  <address@hidden>
+
+       cl-loop: Add missing guard condition
+
+       Consider the expansion of `cl-loop' with a `for' clause and more
+       than one internal variables, X, Y, processed in parallel.
+       Each step updates X and Y right after update the loop variable, K; if
+       either X or Y depend on K, then some forms of the body are
+       evaluated with the wrong K (Bug#29799).
+
+       For instance, consider the following code:
+       (cl-loop for k below 2
+                for x = (progn (message "k = %d" k) 1)
+                and y = 1)
+
+       This code should show in *Messages*:
+       k = 0
+       k = 1
+
+       Instead, the code shows:
+       k = 0
+       k = 1
+       k = 2
+
+       To prevent this we must ensure that the loop condition is still
+       satisfied right after update the loop variable.
+       In the macro expansion of the example above, right after:
+       (setq k (+ k 1))
+
+       evaluate the rest of the body forms iif the condition
+       (< k 2)
+       is still valid.
+
+       * lisp/emacs-lisp/cl-macs.el (cl--loop-guard-cond): New variable.
+       (cl--parse-loop-clause): Set it non-nil if the loop contains
+       a for/as clause.
+       (cl-loop): After update the loop variable, evaluate the remaining of
+       the body forms just if the loop condition is still valid (Bug#29799).
+
+       * test/lisp/emacs-lisp/cl-macs-tests.el 
(cl-macs-loop-for-as-equals-and):
+       New test.
+
+2018-01-07  Alan Third  <address@hidden>
+
+       Add macOS character-palette (bug#29837)
+
+       * lisp/term/ns-win.el (ns-do-show-character-palette): New function.
+       * src/nsfns.m (Sns_show_character_palette): New function.
+       * src/nsterm.m (EmacsView::insertText): Handle NSAttributedString.
+
+2018-01-07  Alan Third  <address@hidden>
+
+       Fix build issues on macOS (bug#29931)
+
+       * configure.ac: On darwin add check for Homebrew texinfo install, and
+       fix incorrect quoting of libxml2 includes.
+
+2018-01-07  Philipp Stephani  <address@hidden>
+
+       Allow inserting non-BMP characters
+
+       * src/coding.h (UTF_16_HIGH_SURROGATE_P, UTF_16_LOW_SURROGATE_P): Move
+       from coding.c and document.
+       (surrogates_to_codepoint): New function.
+
+       * src/nsterm.m (insertText:): Properly handle surrogate pairs.
+
+2018-01-07  Michael Albinus  <address@hidden>
+
+       Make tramp-tests.el more robust on w32
+
+       * test/lisp/net/tramp-tests.el (tramp-test21-file-links):
+       Do not call `make-symbolic-link' on w32.
+       (tramp-test36-find-backup-file-name): Call also
+       `convert-standard-filename' due to w32.
+       (tramp--test-windows-nt): New defun.
+       (tramp-test42-auto-load, tramp-test42-delay-load)
+       (tramp-test42-recursive-load, tramp-test42-remote-load-path):
+       Quote command due to w32.
+
+2018-01-07  Philipp Stephani  <address@hidden>
+
+       Remove incorrect use of AUTO_STRING
+
+       * src/lread.c (load_error_old_style_backquotes): Remove incorrect use
+       of AUTO_STRING.
+
+2018-01-07  Tino Calancha  <address@hidden>
+
+       cl-loop: Calculate the array length just once
+
+       * lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause):
+       Dont calculate the array length on each iteration (Bug#29866).
+
+2018-01-07  Philipp Stephani  <address@hidden>
+
+       Improve error message for old-style backquotes
+
+       * src/lread.c (load_error_old_style_backquotes): Improve error message
+       if no file is being loaded.
+
+       * test/src/lread-tests.el (lread-tests--force-new-style-backquotes):
+       Adapt test.
+
+2018-01-07  Philipp Stephani  <address@hidden>
+
+       Add new variable to force new-style backquote interpretation.
+
+       * src/lread.c (syms_of_lread): Add new variable
+       'force-new-style-backquotes'.
+       (read_internal_start): Use it.
+
+       * test/src/lread-tests.el (lread-tests--force-new-style-backquotes):
+       New test.
+
+       * etc/NEWS: Document new variable.
+
+2018-01-07  Philipp Stephani  <address@hidden>
+
+       Revert "Prevent name clashes between CL structures and builtin types"
+
+       This reverts commit 151496a4b96430924bc148f85b9c8471d1e132b1.
+       That commit breaks bootstrap builds due to a cyclic dependency.
+
+2018-01-07  Philipp Stephani  <address@hidden>
+
+       Ignore escape characters for context-sensitive quotes (Bug#29812)
+
+       * lisp/electric.el (electric-quote-post-self-insert-function): Skip
+       over escape characters when determining whether a context-sensitive
+       quote should be opening or closing.
+
+       * test/lisp/electric-tests.el
+       (electric-quote-replace-double-escaped-open)
+       (electric-quote-replace-double-escaped-close): New unit tests.
+
+2018-01-07  Philipp Stephani  <address@hidden>
+
+       Fix a small bug in electric quoting.
+
+       Before this commit, if 'electric-quote-replace-double' is non-nil,
+       typing " '" turned into " ‘" even if
+       'electric-quote-context-sensitive' was nil.
+
+       * lisp/electric.el (electric-quote-post-self-insert-function): Insert
+       context-sensitive double quote only if the last character is actually
+       a double quote character.
+
+       * test/lisp/electric-tests.el
+       (electric-quote-replace-double-no-context-single): New unit test.
+
+2018-01-07  Philipp Stephani  <address@hidden>
+
+       Prevent name clashes between CL structures and builtin types
+
+       * lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Don't allow
+       structures with the same names as builtin types.
+       (cl--struct-name-p): New helper function.
+
+       * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Don't allow structures
+       with the same names as builtin types.
+
+       * test/lisp/emacs-lisp/cl-macs-tests.el (cl-defstruct/builtin-type):
+       * test/lisp/emacs-lisp/cl-preloaded-tests.el
+       (cl-struct-define/builtin-type): New unit tests.
+
+       * etc/NEWS: Document changed behavior.
+
+2018-01-07  Alan Mackenzie  <address@hidden>
+
+       * src/fns.c (base64-decode-region): Add signal_after_change call for 
insertion.
+
+2018-01-06  Noam Postavsky  <address@hidden>
+
+       Revert "Fix command repetition with lexical-binding (Bug#29334)"
+
+       It does not work with more complicated interactive forms, because
+       byte-compile-lambda actually receives an intermediate form of code
+       rather than valid lisp source (Bug#29988).
+       * src/callint.c (Fcall_interactively):
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Revert previous
+       change, and update commentary.
+
+2018-01-06  Alan Third  <address@hidden>
+
+       Allow setting tooltip colors in NS port
+
+       * src/nsfns.m (Fx_show_tip): Get face colors and apply them to the
+       tooltip.
+       * src/nsmenu.m (EmacsTooltip::setBackgroundColor):
+       (EmacsTooltip::setForegroundColor): New functions.
+       * src/nsterm.h (EmacsTooltip::setBackgroundColor):
+       (EmacsTooltip::setForegroundColor): New function prototypes.
+
+2018-01-06  Alan Mackenzie  <address@hidden>
+
+       Make transpose-regions invoke before-change-functions only once.
+
+       In the case of two non-contiguous regions the same size, 
transpose-regions has
+       been calling before-change-functions twice, once for each region.  It 
now
+       calls it just once, for the minimal region spanning both single regions.
+
+       * src/editfns.c (Ftranspose_regions): Combine two calls of modify_text 
into
+       one.
+
+2018-01-06  Michael Albinus  <address@hidden>
+
+       Minor tramp-gvfs.el cleanup
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-enabled): Move up.
+       (top): Delete goa methods only when `tramp-gvfs-enabled' is not nil.
+
+2018-01-05  Michael Albinus  <address@hidden>
+
+       Add new Tramp connection method "owncloud"
+
+       * doc/misc/tramp.texi (all): Use @acronym{GNOME} thoroughly.
+       (Using GNOME Online Accounts based methods): Rename from
+       "Using Google Drive".  Add `owncloud'.
+       (GVFS based methods): Add `owncloud'.
+
+       * etc/NEWS: Add Tramp connection method "owncloud".
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-methods): Add "owncloud".
+       Remove goa methods if not supported.
+       (tramp-goa-methods, tramp-goa-service, tramp-goa-path)
+       (tramp-goa-path-accounts, tramp-goa-interface-documents)
+       (tramp-goa-interface-printers, tramp-goa-interface-files)
+       (tramp-goa-interface-contacts, tramp-goa-interface-calendar)
+       (tramp-goa-interface-oauth2based)
+       (tramp-goa-interface-account, tramp-goa-identity-regexp)
+       (tramp-goa-interface-mail, tramp-goa-interface-chat)
+       (tramp-goa-interface-photos, tramp-goa-path-manager)
+       (tramp-goa-interface-documents)
+       (tramp-gvfs-owncloud-default-prefix)
+       (tramp-gvfs-owncloud-default-prefix-regexp): New defconst.
+       (tramp-goa-name): New defstruct.
+       (tramp-gvfs-stringify-dbus-message): Handle all consp messages.
+       (tramp-dbus-function, tramp-gvfs-get-remote-prefix)
+       (tramp-get-goa-accounts): New defun.
+       (with-tramp-dbus-call-method): Use it.
+       (with-tramp-dbus-get-all-properties): New defmacro.
+       (tramp-gvfs-url-file-name)
+       (tramp-gvfs-handler-mounted-unmounted)
+       (tramp-gvfs-connection-mounted-p, tramp-gvfs-mount-spec):
+       Map between "owncloud" and "davs".
+       (tramp-gvfs-maybe-open-connection): Set "vector" connection property.
+
+       * test/lisp/net/tramp-tests.el (tramp-gvfs-handler-askquestion):
+       Suppress run in tests.
+       (tramp--test-owncloud-p): New defun.
+       (tramp-test11-copy-file, tramp-test12-rename-file): Use it.
+
+2018-01-05  Jay Kamat  <address@hidden>
+
+       Make eshell history expansion more like bash (Bug#29821)
+
+       - Prevent expansion of quick substitutions when the initial "^" is not
+         at start of line (Bug#29157).
+       - Allow spaces inside substitutions, so "^foo bar^baz" works.
+       - Allow trailing characters after substitution, so "^foo^bar^trailing"
+         works.
+       - Throw an error when substitution does not match.
+
+       * lisp/eshell/em-hist.el (eshell-expand-history-references): Expand
+       history substitution before other types of expansions, and expand them
+       with the whole line.
+       (eshell-history-substitution): New function to expand only
+       substitutions, taking in the entire typed line rather than individual
+       arguments.
+
+2018-01-04  Michael Albinus  <address@hidden>
+
+       Improve backward compatibility in tramp-archive
+
+       * lisp/net/tramp-archive.el
+       (tramp-archive-handle-temporary-file-directory):
+       Use `tramp-compat-temporary-file-directory'.
+
+       * test/lisp/net/tramp-archive-tests.el
+       (tramp-archive-test37-make-nearby-temp-file):
+       Wrap `temporary-file-directory' call with `with-no-warnings'.
+
+2018-01-04  Michael Albinus  <address@hidden>
+
+       Write proper `write-region' message in Tramp backends
+
+       * 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):
+       Write proper message.
+
+       * lisp/net/tramp.el (tramp-message-show-message): Change default.
+
+       * test/lisp/net/tramp-tests.el (ert-x): Require it.
+       (tramp-test10-write-region): Extend test.
+
+2018-01-03  Noam Postavsky  <address@hidden>
+
+       Fix command repetition with lexical-binding (Bug#29334)
+
+       `call-interactively' relies on analyzing the source of `interactive'
+       forms in order to preserve arguments like (region-end) in the command
+       history, rather than just storing the resulting position.  However,
+       the byte-compiler does not preserve the source of the interactive form
+       when lexical-binding is in effect, because `call-interactively' would
+       evaluate the form with dynamic binding in that case.
+
+       To fix this, change `call-interactively' so that it checks compiled
+       functions for lexical-binding as well.  Then the byte-compiler can
+       preserve the source of interactive forms regardless of the value of
+       lexical-binding.
+
+       * src/callint.c (Fcall_interactively): Functions compiled with
+       lexical-binding have their arglist encoded as an integer, use this to
+       choose the right kind of binding for compiled functions too.
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Preserve the
+       uncompiled form of the interactive form when lexical-binding is
+       enabled too.
+
+2018-01-02  Paul Eggert  <address@hidden>
+
+       Fix .gdbinit to work with Lisp_Word
+
+       Problem reported by Stefan Monnier (Bug#29957).
+       * src/.gdbinit (xgetptr, xgetint, xgettype):
+       Cast Lisp_Word value to EMACS_INT, since it might be a pointer now.
+
+2018-01-02  Stephen Leake  <address@hidden>
+
+       Fix description of 'struct' generic function specializer
+
+       * doc/lispref/functions.texi (Generic Functions): Fix description of
+       'struct' specializer; it must be the named struct or a child, not a
+       parent.
+
+2018-01-02  Michael Albinus  <address@hidden>
+
+       Remove superfluous test data for Tramp
+
+2018-01-01  Paul Eggert  <address@hidden>
+
+       * etc/NEWS: Improve -fcheck-pointer-bounds wording.
+
+       Merge from gnulib, mostly to fix copyright years
+
+2018-01-01  Paul Eggert  <address@hidden>
+
+       Update copyright year to 2018
+
+       Run admin/update-copyright.
+
+2018-01-01  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       63b04c11d5 Fix copyright years by hand
+       5c7dd8a783 Update copyright year to 2018
+       220a9ecba1 Merge from Gnulib
+       312c565566 Don't add empty keyboard macro to macro ring (Bug#24992)
+       39ca289a7a Allow customization of decoding of "man" command
+       f8240815ea * etc/NEWS: Add security consideration note on passphrase ...
+       0c78822c70 Fix subtle problem with scroll-down when scroll-margin is ...
+       acd289c5a4 Fix problems with indexing in User manual
+       b240c7846b * lisp/help.el (describe-key): Only (copy-sequence elt) wh...
+       e879a5444a * src/buffer.c (Frestore_buffer_modified_p): Fix bug#29846
+       81b1028b63 Improve documentation of 'inhibit-modification-hooks' and ...
+       7175496d7a Fix doc string of 'enable-recursive-minibuffers'
+       5b38406491 Fix documentation of delsel and of killing text
+
+       # Conflicts:
+       #       etc/NEWS
+       #       etc/refcards/ru-refcard.tex
+
+2017-12-30  Philipp Stephani  <address@hidden>
+
+       Improve error reporting when serializing non-Unicode strings to JSON
+
+       * src/coding.c (utf8_string_p): New helper function.
+       (syms_of_coding) <utf-8-unix>: Move from json.c.
+
+       * src/json.c (json_check_utf8): New helper function.
+       (lisp_to_json_toplevel_1, lisp_to_json): Use it.  To save a bit of
+       time, check for invalid UTF-8 strings only after encountering an
+       error, since Jansson already rejects them.
+
+       * test/src/json-tests.el (json-serialize/invalid-unicode): Adapt
+       expected error symbol.
+
+2017-12-30  David McFarland  <address@hidden>  (tiny change)
+
+       Fix regex stack overflow in gdb-mi.el when parsing complex locals
+
+       * lisp/progmodes/gdb-mi.el (gdb-jsonify-buffer): Skip string
+       literals with (forward-sexp) instead of matching with regex.
+       (Bug#29868)
+
+2017-12-30  Sebastian Reuße  <address@hidden>  (tiny change)
+
+       Fix output alignment in 'find-dired' for "ls -h"
+
+       * lisp/find-dired.el (find-dired-filter): Fix alignment of
+       the file size column when the -h ls option is used in
+       'find-ls-option'.  (Bug#29803)
+
+2017-12-28  Eric Abrahamsen  <address@hidden>
+
+       Make gnus-alter-articles-to-read-function a constant lambda
+
+       * lisp/gnus/gnus-sum.el (gnus-alter-articles-to-read-function):
+         Default to a no-op lambda form, mention the use of `add-function' in
+         the docstring.
+       * lisp/gnus/gnus-sum.el (gnus-articles-to-read): Check if the option
+         value is callable.
+
+2017-12-28  Stefan Monnier  <address@hidden>
+
+       * lisp/net/ange-ftp.el: Use lexical-binding
+
+2017-12-28  Michael Albinus  <address@hidden>
+
+       Fix Bug#29874
+
+       * lisp/net/ange-ftp.el (ange-ftp-file-accessible-directory-p)
+       (ange-ftp-real-file-accessible-directory-p): New defuns.
+       (ange-ftp-nslookup-host, ange-ftp-start-process):
+       Use `ange-ftp-real-file-accessible-directory-p'.
+       (file-accessible-directory-p): Put `ange-ftp' property.  (Bug#29874)
+
+2017-12-27  Stefan Monnier  <address@hidden>
+
+       Remove uses of `cl` from test/ subdirectory
+
+       * test/lisp/gnus/gnus-tests.el: Remove unneeded (require 'cl).
+
+       * test/lisp/net/gnutls-tests.el: Use cl-lib and pcase.
+
+2017-12-27  Stefan Monnier  <address@hidden>
+
+       (delayed-after-hook-functions): Tighten the code a bit
+
+       * lisp/subr.el (delayed-mode-hooks, delayed-after-hook-functions):
+       Use defvar-local.
+       (run-mode-hooks): Reset delayed-after-hook-functions before running
+       those functions, in case an error is signaled.
+
+       * lisp/emacs-lisp/derived.el (define-derived-mode): Don't duplicate 
code.
+
+2017-12-27  Glenn Morris  <address@hidden>
+
+       Fix recent rfc2231 avoidance of cl
+
+       * lisp/mail/rfc2231.el (rfc2231-parse-string)
+       (rfc2231-encode-string): Replace cl forms with cl-lib versions.
+
+2017-12-27  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       fd35804971 (origin/emacs-26) * doc/lispref/strings.texi (Case Convers...
+       89e257d71b * doc/misc/speedbar.texi (Top): Fix grammar.
+       a31ab5ffb5 * lisp/subr.el (with-silent-modifications): Doc fixes.
+       2ebc8dc3b6 Fix curved quotes in printed manual
+       e4a881b5cf Say that "gnus-cloud" is a parody name
+       13c59d0a83 More improvements for text.texi
+       7850b7620e Adjudicate review comments for the "Text" chapter of user ...
+       d7d3b14a99 * lisp/url/url-http.el (url-http-wait-for-headers-change-f...
+       f3819ad13e In C-h k <mouse-n>, alert user to existence of any matchin...
+       99054fbef9 * net/eww.el (eww): Handle URLs without host part.
+       de89c0b641 Make C-h c/k S-mouse-1 display message for mouse-appearanc...
+       720ed0b533 Avoid crashes when ':eval' deletes our frame
+       9105c9aa34 Fix scrolling up in pixel-scroll.el
+       b882d4ef11 Fix problems with ligatures in PDF version of ELisp manual
+       289dd53bb3 (elisp-flymake-byte-compile): Handle killed buffer in sent...
+       cf36c82127 Avoid some overfull lines in PDF lispref
+       b07b56a351 Avoid some overfull lines in PDF manual
+       6b3118f025 * doc/emacs/arevert-xtra.texi (Auto Reverting the Buffer M...
+       7ffb7b1e01 ; lispref nil/t markup fixes
+
+       # Conflicts:
+       #       doc/emacs/text.texi
+
+2017-12-26  Stefan Monnier  <address@hidden>
+
+       Eliminate last uses of 'cl' in lisp/mail/
+
+       * lisp/mail/binhex.el: Use lexical-binding and avoid cl.
+       (binhex-push-char): Remove unused arg 'count'.
+       (binhex-decode-region-external): Remove unused var 'status'.
+
+       * lisp/mail/flow-fill.el: Use lexical-binding and avoid cl.
+
+       * lisp/mail/footnote.el: Reduce redundancy.
+       (footnote-roman-lower-regexp, footnote-roman-upper-regexp)
+       (footnote-roman-upper-list): Auto-generate from 
footnote-roman-lower-list.
+       (footnote-hebrew-numeric-regex): Auto-generate from 
footnote-hebrew-numeric.
+       (footnote--hebrew-numeric): Simplify.
+       (footnote-hebrew-symbolic-regex): Generate from 
footnote-hebrew-symbolic.
+
+       * lisp/mail/hashcash.el: Use lexical-binding and avoid cl.
+       (hashcash-verify-payment): Use pcase.
+
+       * lisp/mail/ietf-drums.el: Use lexical-binding and avoid cl.
+       (ietf-drums-token-to-list): Remove unused var 'e'.
+
+       * lisp/mail/rfc2231.el: Use lexical-binding and avoid cl.
+
+       * lisp/mail/uudecode.el: Use lexical-binding and avoid cl.
+       (uudecode-char-int): Remove unused 'eval-and-compile' wrapper.
+       (uudecode-decode-region-external): Remove unused 'status' var.
+       (uudecode-string-to-multibyte): Remove.
+       (uudecode-decode-region-internal): Use decode-coding-string instead.
+
+       * lisp/mail/yenc.el: Use lexical-binding and avoid cl.
+
+2017-12-26  Charles A. Roelli  <address@hidden>
+
+       Fix highlighting in query-replace with non-nil replace-char-fold
+
+       * lisp/replace.el (replace-highlight): Bind
+       'isearch-regexp-function' in the same way that function
+       'replace-search' does, so as to respect the value of
+       'replace-char-fold'.  (Bug#24356)
+
+2017-12-25  Stefan Monnier  <address@hidden>
+
+       * lisp/mail/footnote.el: Reduce redundancy in roman&hebrew defs
+
+       (footnote-roman-lower-regexp, footnote-roman-upper-regexp)
+       (footnote-roman-upper-list): Auto-generate from 
footnote-roman-lower-list.
+       (footnote-hebrew-numeric-regex): Auto-generate from 
footnote-hebrew-numeric.
+       (footnote--hebrew-numeric): Simplify.
+       (footnote-hebrew-symbolic-regex): Generate from 
footnote-hebrew-symbolic.
+
+2017-12-25  Stefan Monnier  <address@hidden>
+
+       * lisp/mail/footnote.el: Use lexical-binding
+
+       (footnote--renumber): Mark arg 'from' as unused.
+       (footnote-add-footnote, footnote-renumber-footnotes)
+       (footnote-back-to-message): Remove unused argument 'arg'.
+
+2017-12-25  Boruch Baum  <address@hidden>
+
+       * lisp/mail/footnote.el: Replace "Footnote-" prefix with "footnote--"
+
+       (footnote-section-tag): Remove trailing space.
+
+2017-12-25  Stefan Monnier  <address@hidden>
+
+       * lisp/register.el: Use cl-generic
+
+       (registerv): Make it a "normal"struct.
+       (registerv-make): Declare obsolete.
+       (register-val-jump-to, register-val-describe, register-val-insert):
+       New generic functions.
+       (jump-to-register, describe-register-1, insert-register): Use them.
+
+       * lisp/emacs-lisp/cl-generic.el: Prefill a combination of struct+typeof.
+       (cl--generic-prefill-dispatchers): Allow a list of specializers.
+
+2017-12-25  Chris Zheng  <address@hidden>  (tiny change)
+
+       Fix MS-Windows build broken by recent changes in json.c
+
+       * src/json.c [WINDOWSNT] (fn_json_object_get): Define.
+       (init_json_functions) [WINDOWSNT]: Load json_object_get from DLL.
+       (Bug#29848)
+
+2017-12-25  Stefan Monnier  <address@hidden>
+
+       * lisp/rtree.el: Use lexical-binding and not 'cl'.
+
+2017-12-25  Lars Ingebrigtsen  <address@hidden>
+
+       lisp/net/mailcap.el (mailcap-file-name-to-mime-type): New function.
+
+       * lisp/net/mailcap.el (mailcap-file-name-to-mime-type): New function.
+
+2017-12-25  Michael Albinus  <address@hidden>
+
+       Fix Bug#29822
+
+       * lisp/net/tramp-sh.el (tramp-maybe-open-connection):
+       Fix handling of restricted shells.  (Bug#29822)
+
+2017-12-24  Paul Eggert  <address@hidden>
+
+       Make main_thread_id private
+
+       * src/sysdep.c (main_thread_id) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
+       Now static.
+
+2017-12-24  Paul Eggert  <address@hidden>
+
+       On non-MS-Windows, omit unnecessary polling functions
+
+       * src/keyboard.c (poll_for_input_1) [!CYGWIN && !DOS_NT]: Remove.
+       (input_polling_used) [!DOS_NT]: Remove.
+
+2017-12-24  Philipp Stephani  <address@hidden>
+
+       Add more Unicode test cases for JSON conversion
+
+       * test/src/json-tests.el (json-parse-string/string)
+       (json-serialize/string, json-serialize/invalid-unicode)
+       (json-parse-string/invalid-unicode): Add more Unicode test cases.
+
+2017-12-24  Philipp Stephani  <address@hidden>
+
+       Accept alists when serializing JSON
+
+       * src/json.c (lisp_to_json_toplevel_1): Also accept alists
+       representing objects.
+
+       * src/json.c (Fjson_serialize): Update docstring.
+
+       * test/src/json-tests.el (json-serialize/object): Add unit tests for
+       serializing alists.
+
+       * doc/lispref/text.texi (Parsing JSON): Document that serialization
+       functions accept alists.
+
+2017-12-24  Philipp Stephani  <address@hidden>
+
+       JSON serialization: reject duplicate keys in hashtables
+
+       * src/json.c (lisp_to_json_toplevel_1): Reject duplicate keys in
+       hashtables.
+
+       * test/src/json-tests.el (json-serialize/object-with-duplicate-keys):
+       Add unit tests.
+
+2017-12-22  Boruch Baum  <address@hidden>
+
+       * lisp/mail/footnote.el (footnote-align-to-fn-text): New config var
+
+       (footnote-mode): Declare.
+       (Footnote--get-area-point-min): Fix last change to use 'car` instead of
+       the undefined 'first'.
+       (Footnote--calc-fn-alignment-column, Footnote--fill-prefix-string)
+       (Footnote--adaptive-fill-function): New functions.
+       (footnote-mode): Use them.
+
+2017-12-22  Stefan Monnier  <address@hidden>
+
+       * lisp/textmodes/fill.el (adaptive-fill-function): Change default
+
+       Use 'ignore' rather than nil since they behave identically, except that
+       'ignore' interacts correctly with add/remove-function.
+
+2017-12-22  Boruch Baum  <address@hidden>
+
+       * lisp/mail/footnote.el: Misc changes in preparation for more
+
+       (footnote-section-tag-regexp): Don't require the trailing space.
+       (Footnote--point-in-body-p, Footnote--get-area-point-min)
+       (Footnote--get-area-point-max): New functions.
+       (Footnote-narrow-to-footnotes, Footnote-text-under-cursor): Use them.
+
+2017-12-22  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       34fcfc5 (origin/emacs-26, emacs-26) * lisp/emacs-lisp/inline.el (defi...
+       f7a62c2 Fix doc string of 'footnote-style-alist'
+       c3b6742 Improve documentation of selecting windows
+       861d110 Improve documentation of records
+       22b3075 * etc/NEWS: Mention the removal of pinentry.el.  (Bug#27445)
+       689526b Fix interactive spec of 'semantic-ia-show-variants'
+       90ca37f Fix documentation of 'mouse-drag-and-drop-region' and friends
+       d60faf3 Improve detection of speller version in ispell.el
+       a0e3b06 Document 'mouse-drag-and-drop-region' options and mention the...
+       164e84c Fix uses of 'nil' and 'non-nil' in manuals and a few more min...
+       798f07f Document that mode commands should be idempotent.
+       ad2a47c ; * src/xdisp.c (extend_face_to_end_of_line): Fix last change.
+       88ddf53 Fontify a CPP construct correctly when a comment follows with...
+       de7de9c Prevent infloop in redisplay on TTY frames
+       293720e Fix loss of documentation face in certain CC Mode doc comment...
+
+       # Conflicts:
+       #       etc/NEWS
+       #       lisp/mail/footnote.el
+
+2017-12-22  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/cperl-mode.el: Split table for electric kwd abbrevs
+
+       (cperl-mode-electric-keywords-abbrev-table): New abbrev table.
+       (cperl-mode-abbrev-table): Use it.
+
+2017-12-22  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/cperl-mode.el: Use cl-lib.  Fix comment convention
+
+       (defgroup, defcustom, defface, x-color-defined-p, uncomment-region)
+       (ps-extend-face-list, eval-after-load, turn-on-font-lock):
+       Assume defined.
+       (cperl-calculate-indent): Use 'functionp' to test if a value is a 
function.
+
+2017-12-22  Boruch Baum  <address@hidden>
+
+       Support Hebrew-style footnotes in footnote.el
+
+       * lisp/mail/footnote.el (footnote-hebrew-numeric-regex)
+       (footnote-hebrew-symbolic-regex): New defconsts.
+       (Footnote-hebrew-numeric, Footnote-hebrew-symbolic): New functions.
+       (footnote-style-alist): Add new Hebrew styles.  Doc fix.
+       (footnote-style): Add new Hebrew styles.  (Bug#29759)
+
+2017-12-22  Ian Johnson  <address@hidden>  (tiny change)
+
+       Support French password prompts in shell
+
+       French punctuation rules require a space (preferably non-breaking)
+       before the colon.
+
+       * lisp/comint.el (comint-password-prompt-regexp): Support
+       spaces (including non-breaking spaces) before and after password
+       prompt colon.  (Bug#29729)
+
+2017-12-22  Ted Zlatanov  <address@hidden>
+
+       * lisp/registry.el (registry-collect-prune-candidates): Skip invalid 
entries
+
+2017-12-22  Francesco Potortì  <address@hidden>
+
+       Improve Rmail Subject normalization when replying
+
+       * lisp/mail/rmail.el (rmail-simplified-subject): A more thorough
+       implementation which removes more prefixes from Subject.
+       (Bug#29659)
+
+2017-12-22  Eli Zaretskii  <address@hidden>
+
+       Improve the description of 'electric-quote-replace-double'
+
+       * etc/NEWS: Improve the description of 'electric-quote-replace-double'.
+       (Bug#29806)
+
+2017-12-21  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/cperl-mode.el: Use lexical-binding
+
+       Drop some support code for Emacs-19.  Remove unused args and vars.
+       (cperl-mark-active): Remove, use region-active-p.
+       (cperl-use-region-p): Remove, use use-region-p.
+       (cperl-can-font-lock, cperl-enable-font-lock, cperl-emacs-can-parse):
+       Remove, obsolete.
+       (cperl-mode-map): Move initialization into declaration.
+
+2017-12-21  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/cperl-mode.el: Merge from Jonathan Rockway's version
+
+       (cperl-indent-subs-specially): New var.
+       (cperl-mode-abbrev-table): Add '=begin'.  Obey cperl-electric-keywords.
+       (cperl-sub-keywords, cperl-sub-regexp): New vars.
+       (cperl-char-ends-sub-keyword-p): New function.
+       (cperl-mode): Use them.
+       (cperl-db): Pass `-d` arg to perl.
+       (cperl-electric-keyword, cperl-linefeed): Accept also '=end'.
+       (cperl-sniff-for-indent): Obey cperl-indent-parens-as-block and
+       cperl-indent-subs-specially.
+       (cperl-calculate-indent): Fix handling of numbers in
+       cperl-indent-rules-alist, and add a case for functions.
+       (cperl-find-pods-heres): Use cperl-sub-regexp and allow =begin/=end.
+       Also recognize 'say'.
+       (cperl-block-p): Use cperl-sub-regexp
+       (cperl-after-block-p): Use cperl-char-ends-sub-keyword-p and
+       cperl-sub-regexp.
+       (cperl-after-block-and-statement-beg): Accept 'say'.
+       (cperl-indent-exp): Accept 'state'.
+       (cperl-fix-line-spacing): Accept 'state'.
+       (cperl-init-faces): Add 'given', 'when', 'default', 'break', 'try',
+       'catch', 'finally', 'evalbytes', 'state', '__SUB__', 'fc', 'sysseek'.
+       Use cperl-sub-regexp.
+       (cperl-etags): Use cperl-sub-regexp.
+       (cperl-not-bad-style-regexp): Add '//'.
+       (cperl-short-docs): Add ~~, UNITCHECK, 'break', 'default', 'evalbytes',
+       'given', 'say', 'state', //, 'fc', 'prototype', =begin', and '=end'.
+
+2017-12-21  Philipp Stephani  <address@hidden>
+
+       Add a few more unit tests for JSON
+
+       * test/src/json-tests.el (json-serialize/invalid-unicode)
+       (json-parse-string/null): Add more tests.
+       (json-parse-string/invalid-unicode): New test.
+
+2017-12-21  Philipp Stephani  <address@hidden>
+
+       JSON: improve some comments
+
+       * src/json.c (json_make_string, json_build_string): Document why
+       these functions are OK as-is.
+
+2017-12-21  Philipp Stephani  <address@hidden>
+
+       Simplify a JSON test
+
+       * test/src/json-tests.el (json-serialize/invalid-unicode):
+       Simplify test.  Hexadecimal escape sequences allow putting
+       non-Unicode characters in strings directly.
+
+2017-12-21  Philipp Stephani  <address@hidden>
+
+       Fix bugs in JSON test
+
+       * test/src/json-tests.el (json-serialize/invalid-unicode): Fix two
+       bugs that canceled each other out.  "a\xCCb" is actually a valid
+       Unicode string because the hexadecimal character escape isn't
+       terminated by the "b".  But this was masked by an incorrect
+       closing parentheses, causing an unrelated error.
+
+2017-12-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       b3f4a3a (origin/emacs-26) Special-case %DUMBFW for GnuTLS between 3.2...
+       c2ae057 Work around GnuTLS version issues with %DUMBFW (tiny change)
+       2f9d9ef ; Remove the mention of "plain C code" in the docstring as well
+       aca827b Merge branch 'widen-less' into emacs-26
+       87548f5 ; Rephrase NEWS entry a bit
+       da0d773 (emacs-26) ; * lisp/erc/erc.el: Update URL.
+       3a60515 * lisp/erc/erc.el (erc-shorten-server-name): Silence compiler...
+       471b6c1 ; Replace non-ascii quote characters in doc strings etc
+       7af7f5e Fix some more aliases to user options
+       79fb4b5 Fix some flymake aliases
+       b9fbc03 (origin/widen-less) Widen in indent-for-tab-command in the no...
+       446faf3 Replace the mention of c-indent-defun with js-indent-line
+       7e9eef0 Consolidate 'widen' calls
+
+       # Conflicts:
+       #       etc/NEWS
+       #       lisp/progmodes/flymake-proc.el
+
+2017-12-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       4122d54 Fix updating scrollbar sizes when scaling is in effect
+       21a212f Collect GnuTLS extensions and use them to set %DUMBFW if supp...
+       936136e * test/lisp/emacs-lisp/derived-tests.el: Fix copy&paste lefto...
+       07b7fb9 * lisp/subr.el (delayed-after-hook-functions): Rename from .....
+       a5b0a4e * lisp/net/shr.el (shr-string-pixel-width): Return pixel-widt...
+       c51e797 python.el doc fixes
+       c62ced5 Make 'mouse-drag-and-drop-region' more robust and customizable
+
+2017-12-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       89cfdbf Don't mess up syntax-ppss cache in electric-pair (Bug#29710)
+       c5061d8 * etc/emacs.appdata.xml: Update file format.
+       080f227 Use utf-8-hfs-unix on macOS (Bug#29712)
+       28e0261 * lisp/progmodes/cc-defs.el (c-version): Update to 5.33.1.
+       ac53084 Improve fix for Bug#29712
+       ffd4771 * doc/lispref/sequences.texi (Sequence Functions): Improve in...
+       f274cbd Avoid reordering of output in 'shr-insert-document'
+       7890864 Improve documentation of 'invisible-p'
+       a1327bb Remove one more check that Vframe_list is non-nil
+       63b6281 Fix off-by-one error in 'css--hex-color'
+       804b37c Save and restore text-pixel height and width of frames (Bug#2...
+       777fe94 Partially revert "Mention new strictness for &optional, &rest...
+       ad17db7 * lisp/vc/smerge-mode.el (smerge-refine): Respect font-lock-m...
+       5a7d009 * lisp/vc/smerge-mode.el (smerge-refine): Replace obsolete al...
+       e019c35 FOR_EACH_FRAME no longer assumes frame-list
+       d64b88d * src/font.c (Ffont_info): Doc fix.  (Bug#29682)
+       92b2604 Modernise message.el face spec syntax
+       b1efbe6 Update message.el obsolete face aliases
+       2494c14 ; * lisp/comint.el (comint-terminfo-terminal): Add a :version...
+       12ad276 Improve documentation of TERM environment variable
+       8ed529f Add option to configure comint TERM
+       889f07c Better support utf-8-with-signature and utf-8-hfs in XML/HTML
+       a2697fa * lisp/menu-bar.el (menu-bar-mode): Doc fix.
+       ffb50ea ; * etc/NEWS: Fix last change.
+       95606af Fix Bug#29712 in tramp-tests.el
+       9bf66c6 Don't run FOR_EACH_FRAME when there's no frame left (Bug#29961)
+       c2a88ec * lisp/textmodes/tex-mode.el: Ensure uncompiled file is loada...
+       b178870 Remember password change for IMAP in Gnus (Bug#29692)
+       a21dac1 Add %DUMBFW to the default GnuTLS priority strings
+       780407c Small fixes prompted by make check-declare
+       541a601 Fix some custom groups
+       e220d6e Fix fontification of first declaration within a C++ lambda form.
+       aa66da2 * src/data.c (Fadd_variable_watcher): Doc fix.
+       f838210 Fix misfontification of C++ member initialization list after ...
+       232c646 Fix doc-string of Fbuffer_list
+       3f9aac6 Don't raise an extraneous frame (bug#29696)
+       e7b1111 Mention new strictness for &optional, &rest in arglists (Bug#...
+       4cb8696 Don't misfontify "foo ()" inside C++ initialization parenthes...
+       ce31e72 Fixes for defcustoms, prompted by cus-test-opts
+       aacd1e1 * lisp/net/newst-backend.el (newsticker--raw-url-list-default...
+       7e2f4d3 * lisp/htmlfontify.el (hfy-which-etags): Fix it.
+       52d2a69 Add missing :version tags revealed by cusver-check
+       f5d0360 Escape column-zero doc parens
+       45099bb Remove ObjC blocks (Bug#23753)
+       b0369d0 Import the latest IVD_Sequences.txt
+       cd53b63 Fix dired-do-compress when tar doesn't default to stdin (Bug#...
+       51911da Suppress warnings during elisp completion macroexpansion
+       a36a090 * lisp/progmodes/verilog-mode.el (verilog-mode): Fix typo (Bu...
+       6a6e8e6 Make tramp-interrupt-process more robust
+       5bcd468 Make quail-input-method work when inhibit-read-only is non-ni...
+       87baf12 Fix 'fontset-name-p'
+       d231587 Fix fontset documentation inconsistencies for bug#29630
+       a829cb8 Remove sentence from child frames section in Elisp manual
+       ad491c8 Avoid crashes in 'font-at' after 'set-fontset-font'
+       c73d2cd * lisp/files-x.el (connection-local-set-profile-variables): F...
+       cefca2b Add /etc/ssl/cert.pem to gnutls-trustfiles for macOS
+       122e726 Fix tool-tip display when display margins are non-zero by def...
+       e1cc203 Handle hash tables and vectors when reading/writing EIEIO obj...
+       cda219c Improve interactive debugging commands in xdisp.c
+       1056b3c Fix calculation of continuation_pixel_width in display engine
+       90e2080 Improve documentation of 'save-abbrevs'.
+       14f0230 Improve documentation of Dired
+       161b0e5 * lisp/bookmark.el (bookmark-alist): Doc fix.  (Bug#29551)
+       7eea314 Minor Tramp fixes
+       c0a670a * lisp/help-mode.el (help-function-def): Allow help-make-xref...
+       0572016 Fix doc-string of 'display-buffer-in-side-window'
+       a1bbc49 Fix Bug#29579
+       cb3d979 ; NEWS: Update Org version number
+       445eefd Backport: Update Org to v9.1.4
+       5381c70 In windows.texi mention special splitting behavior of side an...
+       46d62b9 * lisp/gnus/gnus-group.el (gnus-group-mode-map): Bind [follow...
+       1ef1dbd Avoid compilation warning in xterm.c
+       5cf3c26 * README: Document all the top-level directories.  (Bug#29558)
+       e9ea206 Don't enable erc modules on simply loading erc.el
+       4b06af0 Allow shr to use data: URLs without encoding
+       1fdac2d Don't add newlines in minibuffer history
+       de68f33 modhelp.py: Support Python 3 (Bug#24954)
+       afb04f7 Use forward slashes for python w32 config example (Bug#21656)
+       04e5b28 Fix bug in i18n/l10n optimization
+       8227087 Let autoload-compute-prefix be set file-locally (Bug#29471)
+       98ca7d5 Improve edit-kbd-macro prompting in case of remapped keys (Bu...
+       c02c1f6 Add tests on electric-indentation and Python multiline string...
+       946bb6d Disable electric indent for python strings (Bug#29305)
+       35f1ed1 ; ChangeLog.2: Fix bug reference.
+       ac31663 Fix buffer overflow in fontname conversion (Bug#29523)
+       bf9b972 Fix byte compilation of files with leading directories
+       ac144dc * lisp/files.el (make-backup-file-name-1): Fix scoping error.
+       1b351c8 Revert Tramp commit from 2017-11-20
+       77cf972 Improve documentation of buffer-list commands and features
+       66ec92a Fix backing up remote files in local directories on MS-Windows
+       7e61e74 * doc/emacs/mule.texi (Output Coding): Clarify sendmail coding.
+       1e25cd7 Revert "Fix backing up remote files in local directories on M...
+       f52d795 Fix a typo in ELisp manual
+       bf26fc3 * lisp/composite.el (find-composition): Fix a typo in the doc...
+       34a21c3 ; Auto-commit of loaddefs files.
+       8c8b673 Fix backing up remote files in local directories on MS-Windows
+       8eb6870 Fix vertical cursor motion in pixel-scroll.el
+       625e84f Fix typos in doc strings of message.el
+       9292276 Fix a typo in the Emacs manual
+       42509c0 Improve the documentation of 'table-insert-sequence'
+       93dc7ae Port better to QNX
+       ad99550 Make tramp-test42-auto-load more robust
+       af0ce33 ; * lisp/composite.el (find-composition): Fix a typo in last ...
+       bdbcdba Avoid assertions in find-composition
+       408862f ; * lisp/emacs-lisp/bytecomp.el: Tweak message formatting in ...
+       9964db4 Restore obsolete method of changing byte-compile-dest-file
+       3dd25ae Some minor Tramp corrections
+       d670a15 * doc/misc/url.texi (http/https): Fix typo
+       99d07e8 Remove some bogus definition-prefixes from loaddefs
+
+2017-12-20  Charles A. Roelli  <address@hidden>
+
+       Fix vc-region-history when narrowed
+
+       * lisp/vc/vc.el (vc-region-history): Fix behavior when narrowed, by 
using
+       line numbers starting from (point-min).
+
+2017-12-20  Charles A. Roelli  <address@hidden>
+
+       Ensure current buffer is version-controlled in vc-region-history
+
+       * lisp/vc/vc.el (vc-region-history): Ensure buffer is
+       version-controlled.  Otherwise if a user runs it in a
+       non-version-controlled buffer, they get the error:
+
+         Cannot open load file: No such file or directory, vc-nil
+
+2017-12-20  Philipp Stephani  <address@hidden>
+
+       Define helper functions only if needed
+
+       * src/json.c (JSON_HAS_ERROR_CODE): New define.
+       (json_parse_error): Use it.
+       (json_has_prefix, json_has_suffix): Define only if needed.
+
+2017-12-20  Philipp Stephani  <address@hidden>
+
+       * src/json.c (json_parse_error): Fix embarrassing bug.
+
+2017-12-20  Philipp Stephani  <address@hidden>
+
+       Fix a few compiler warnings in auth-source.el
+
+       * lisp/auth-source.el (json): Add missing require.
+       (auth-source-json-search): Remove unused argument.
+
+2017-12-19  Ted Zlatanov  <address@hidden>
+
+       * lisp/auth-source.el (auth-source-backends-parser-file): Fix missing 
stringp.
+
+2017-12-19  Philipp Stephani  <address@hidden>
+
+       Use Jansson's error code support if available
+
+       * src/json.c (json_parse_error): Use Jansson's error code support if
+       available.
+
+2017-12-19  Glenn Morris  <address@hidden>
+
+       * doc/misc/auth.texi: Fix use of {} and wrapping in previous change.
+
+2017-12-19  Philipp Stephani  <address@hidden>
+
+       Allow JSON parser functions to return alists
+
+       * src/json.c (Fjson_parse_string, Fjson_parse_buffer): Give these
+       functions a keyword argument to specify the return type for JSON
+       objects.
+       (json_to_lisp): Convert objects to alists if requested.
+       (json_parse_object_type): New helper function to parse keyword
+       arguments.
+
+       * test/src/json-tests.el (json-parse-string/object): Add a unit test.
+
+       * doc/lispref/text.texi (Parsing JSON): Document new functionality.
+
+2017-12-19  Ted Zlatanov  <address@hidden>
+
+       * doc/misc/auth.texi (Help for users): Mention JSON backend.
+
+2017-12-19  Ted Zlatanov  <address@hidden>
+
+       auth-source: support JSON backend with .json extension
+
+       * lisp/auth-source.el (auth-source-backends-parser-file): Look
+       for .gpg extension and make backend decision without it. Add
+       JSON case to backends.
+
+       (auth-source-json-check): Parse JSON data.
+
+2017-12-18  Glenn Morris  <address@hidden>
+
+       Add a Makefile rule for running gitmerge
+
+       * Makefile.in (GITMERGE_EMACS, GITMERGE_NMIN): New variables.
+       (gitmerge): New phony target.
+
+2017-12-18  Glenn Morris  <address@hidden>
+
+       Set minimum number of commits for gitmerge in batch mode
+
+       * admin/gitmerge.el (gitmerge-minimum-missing): New variable.
+       (gitmerge): In batch mode, respect gitmerge-minimum-missing.
+
+2017-12-18  Glenn Morris  <address@hidden>
+
+       * admin/gitmerge.el (gitmerge-skip-regexp): Be stricter in batch mode.
+
+2017-12-18  Glenn Morris  <address@hidden>
+
+       Make gitmerge usable in batch mode
+
+       * admin/gitmerge.el (gitmerge-missing): Add progress messages.
+       (gitmerge-maybe-resume): In batch mode, never resume.
+       (gitmerge): Handle batch mode.
+
+2017-12-18  Philipp Stephani  <address@hidden>
+
+       JSON: Add tests for Unicode edge cases
+
+       * test/src/json-tests.el (json-serialize/string): Add test for
+       serializing the null character.
+       (json-parse-string/null): Add test for parsing the null character.
+       (json-serialize/invalid-unicode): Add tests for invalid Unicode
+       strings.
+       (json-serialize/roundtrip): Add Unicode
+       noncharacter, non-BMP characters, and syntactic characters.
+
+2017-12-18  Charles A. Roelli  <address@hidden>
+
+       Fix infinite loop in vc-dir-mark-unmark
+
+       * lisp/vc/vc-dir.el (vc-dir-mark-unmark): Prevent from getting
+       stuck on the same line in an infinite loop.  (Bug#24017)
+
+2017-12-18  Eric Abrahamsen  <address@hidden>
+
+       Fix Gnus registry header extraction
+
+       * lisp/gnus/gnus-registry.el (gnus-registry-fetch-recipients-fast,
+         gnus-registry-fetch-sender-fast): First, delete
+         `gnus-registry-fetch-header-fast'. It was being called with reversed
+         arguments, and thus always returned nil, but even if the argument
+         order was correct it would have raised an error, as it was trying to
+         `assq' a string in a vector. Instead, just have these two functions
+         do their own work, as they're doing fairly different things.
+
+2017-12-17  Paul Eggert  <address@hidden>
+
+       Default CHECK_LISP_OBJECT_TYPE to "no"
+
+       * configure.ac: Go back to not defining CHECK_LISP_OBJECT_TYPE by
+       default for developer builds, since it is no longer that useful.
+       We can make it a no-op entirely later, if in practice it's not
+       that helpful to enable it.
+
+2017-12-17  Michael Albinus  <address@hidden>
+
+       Minor fixes in Tramp
+
+       * lisp/net/tramp-archive.el
+       (tramp-archive-handle-temporary-file-directory): New defun.
+       (tramp-archive-file-name-handler-alist): Use it.
+
+       * test/lisp/net/tramp-archive-tests.el
+       (tramp-archive-test99-libarchive-tests): Rename it.
+
+       * test/lisp/net/tramp-tests.el (tramp-test34-vc-registered):
+       Skip for older Emacsen.
+
+2017-12-17  Simen Heggestøyl  <address@hidden>
+
+       Add command for cycling between CSS color formats
+
+       * lisp/textmodes/css-mode.el (css-mode-map): Add keybinding for
+       'css-cycle-color-format'.
+       (css--rgb-color): Add support for extracting alpha component.
+       (css--hex-alpha, css--color-to-4-dpc, css--named-color-to-hex)
+       (css--format-rgba-alpha, css--hex-to-rgb)
+       (css--rgb-to-named-color-or-hex): New functions.
+       (css-cycle-color-format): New command for cycling between color
+       formats.
+
+       * test/lisp/textmodes/css-mode-tests.el (css-test-color-to-4-dpc):
+       (css-test-named-color-to-hex, css-test-format-rgba-alpha)
+       (css-test-hex-to-rgb, css-test-rgb-to-named-color-or-hex)
+       (css-test-cycle-color-format, css-test-hex-alpha): New tests for the
+       changes mentioned above.
+
+       * etc/NEWS: Mention the new command.
+
+2017-12-16  Stefan Monnier  <address@hidden>
+
+       * lisp/textmodes/css-mode.el (css--hex-color): Trivial simplification
+
+2017-12-16  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       28e0261890 * lisp/progmodes/cc-defs.el (c-version): Update to 5.33.1.
+       ac53084f9b Improve fix for Bug#29712
+       ffd4771560 * doc/lispref/sequences.texi (Sequence Functions): Improve...
+       f274cbd185 Avoid reordering of output in 'shr-insert-document'
+       7890864413 Improve documentation of 'invisible-p'
+       a1327bbc64 Remove one more check that Vframe_list is non-nil
+       63b6281fdd Fix off-by-one error in 'css--hex-color'
+       804b37ca63 Save and restore text-pixel height and width of frames (Bu...
+       777fe94661 Partially revert "Mention new strictness for &optional, &r...
+       ad17db7964 * lisp/vc/smerge-mode.el (smerge-refine): Respect font-loc...
+       5a7d0095a4 * lisp/vc/smerge-mode.el (smerge-refine): Replace obsolete...
+       e019c35df6 FOR_EACH_FRAME no longer assumes frame-list
+       d64b88da2f * src/font.c (Ffont_info): Doc fix.  (Bug#29682)
+       92b2604a7f Modernise message.el face spec syntax
+       b1efbe6564 Update message.el obsolete face aliases
+       2494c14e76 ; * lisp/comint.el (comint-terminfo-terminal): Add a :vers...
+       12ad276d15 Improve documentation of TERM environment variable
+       8ed529f0f3 Add option to configure comint TERM
+       889f07c352 Better support utf-8-with-signature and utf-8-hfs in XML/HTML
+       a2697fac0e * lisp/menu-bar.el (menu-bar-mode): Doc fix.
+       ffb50eace6 ; * etc/NEWS: Fix last change.
+       95606af8b0 Fix Bug#29712 in tramp-tests.el
+       9bf66c6bee Don't run FOR_EACH_FRAME when there's no frame left (Bug#2...
+       c2a88ec8e8 * lisp/textmodes/tex-mode.el: Ensure uncompiled file is lo...
+       b178870528 Remember password change for IMAP in Gnus (Bug#29692)
+       a21dac18bb Add %DUMBFW to the default GnuTLS priority strings
+       780407cff1 Small fixes prompted by make check-declare
+       541a60108d Fix some custom groups
+       e220d6e112 Fix fontification of first declaration within a C++ lambda...
+       aa66da220c * src/data.c (Fadd_variable_watcher): Doc fix.
+       f838210b01 Fix misfontification of C++ member initialization list aft...
+       232c6465ce Fix doc-string of Fbuffer_list
+       3f9aac68d7 Don't raise an extraneous frame (bug#29696)
+       e7b1111155 Mention new strictness for &optional, &rest in arglists (B...
+       4cb8696e47 Don't misfontify "foo ()" inside C++ initialization parent...
+       ce31e726ad Fixes for defcustoms, prompted by cus-test-opts
+       aacd1e14fc * lisp/net/newst-backend.el (newsticker--raw-url-list-defa...
+       7e2f4d3d41 * lisp/htmlfontify.el (hfy-which-etags): Fix it.
+       52d2a690f6 Add missing :version tags revealed by cusver-check
+       f5d0360234 Escape column-zero doc parens
+
+       # Conflicts:
+       #       etc/NEWS
+
+2017-12-16  Philipp Stephani  <address@hidden>
+
+       Remove two unused variables in macfont.m
+
+       * src/macfont.m (macfont_get_glyph_for_character): Remove two unused
+       variables.
+
+2017-12-16  Alan Third  <address@hidden>
+
+       Use utf-8-hfs-unix on macOS (Bug#29712)
+
+       * lisp/term/ns-win.el: Use utf-8-hfs-unix instead of utf-8-hfs.
+
+2017-12-16  Alan Third  <address@hidden>
+
+       Silence macOS 10.13 deprecation notices (Bug#29643)
+
+       * src/nsfns.m (Fx_display_backing_store):
+       (Fx_display_save_under): Don't use NSBackingStoreRetained or
+       NSBackingStoreNonretained on macOS 10.13+.
+       * src/nsselect.m (symbol_to_nsstring):
+       (ns_string_to_symbol):
+       (nxatoms_of_nsselect): Replace NSGeneralPboard with
+       NSPasteboardNameGeneral.
+       * src/nsterm.h: #define NSPasteboardNameGeneral to NSGeneralPboard on
+       GNUstep and macOS < 10.13.
+       * src/nsterm.m (EmacsView::resetCursorRects):
+       (EmacsScroller::resetCursorRects): Don't use setOnMouseEntered on
+       macOS 10.13+.
+
+2017-12-16  Michael Albinus  <address@hidden>
+
+       Suppress timers in Tramp operations
+
+       * lisp/net/tramp.el (tramp-accept-process-output):
+       * lisp/net/tramp-adb.el (tramp-adb-handle-start-file-process):
+       * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
+       (tramp-sh-handle-start-file-process):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
+       (tramp-smb-handle-file-acl, tramp-smb-handle-process-file)
+       (tramp-smb-handle-set-file-acl)
+       (tramp-smb-handle-start-file-process): Suppress timers.
+
+       * test/lisp/net/tramp-tests.el (tramp-test41-asynchronous-requests):
+       Use $REMOTE_PARALLEL_PROCESSES.  Flush cache prior file operations.
+       Add instrumentation messages.
+
+2017-12-15  Oscar Fuentes  <address@hidden>
+
+       Don't compare arguments that can be nil
+
+       copy-region-as-kill can be called passing nil as `beg' and
+       `end'. Magit does that, which caused an error when this advice was in
+       effect.
+
+       * lisp/ses.el (ses--advice-copy-region-as-kill): avoid comparison
+         unless `beg' and `end' are non-nil.
+
+2017-12-15  Glenn Morris  <address@hidden>
+
+       Automatically evaluate top-level define-obsolete-function-alias etc
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-make-obsolete):
+       New handler.
+
+2017-12-14  Paul Eggert  <address@hidden>
+
+       Spelling fix
+
+       * lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
+       Fix misspelling of ‘delete-directory’.
+
+2017-12-14  Glenn Morris  <address@hidden>
+
+       Make w32-fns.el loadable on any platform (bug#6997)
+
+       * lisp/w32-fns.el (find-file-visit-truename): Only set on MS Windows.
+       (set-message-beep, w32-charset-info-alist): Check bound before using.
+
+2017-12-14  Glenn Morris  <address@hidden>
+
+       Improve Custom's treatment of obsolete options (bug#5742)
+
+       * lisp/cus-edit.el (custom-variable-obsolete): New face.
+       (custom-variable-documentation): Include obsolescence information.
+       (custom-variable-value-create): Use different face for obsolete items.
+       (custom-face-documentation): New function.
+       (custom-face): Use custom-face-documentation.
+       * lisp/info-look.el (info-lookup-guess-custom-symbol):
+       Add custom-variable-obsolete face.
+
+2017-12-14  Eric Abrahamsen  <address@hidden>
+
+       Clarify manual section on &context specializer for methods
+
+       * doc/lispref/functions.texi (Generic Functions): Provide a little
+         more information on how they work.
+
+2017-12-13  Stefan Monnier  <address@hidden>
+
+       Don't get fooled by open parens in column 0 within strings
+
+       * lisp/emacs-lisp/lisp.el (beginning-of-defun-raw):
+       Skip defun-prompt-regexp and open-paren-in-0 within strings and 
comments.
+
+2017-12-12  Glenn Morris  <address@hidden>
+
+       * admin/gitmerge.el (gitmerge-missing):
+       Don't get confused by decorations.
+
+2017-12-12  Stefan Monnier  <address@hidden>
+
+       * src/syntax.c (find_defun_start): Use syntax-ppss
+
+       (syms_of_syntax): New variable comment-use-syntax-ppss.
+
+2017-12-12  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       b0369d0536 Import the latest IVD_Sequences.txt
+       cd53b6399b Fix dired-do-compress when tar doesn't default to stdin (B...
+       51911dae14 Suppress warnings during elisp completion macroexpansion
+       a36a090a95 * lisp/progmodes/verilog-mode.el (verilog-mode): Fix typo ...
+       6a6e8e6e8d Make tramp-interrupt-process more robust
+       5bcd468a9e Make quail-input-method work when inhibit-read-only is non...
+       87baf1242e Fix 'fontset-name-p'
+       d23158777d Fix fontset documentation inconsistencies for bug#29630
+       a829cb8c8b Remove sentence from child frames section in Elisp manual
+       ad491c80e4 Avoid crashes in 'font-at' after 'set-fontset-font'
+       c73d2cdfd7 * lisp/files-x.el (connection-local-set-profile-variables)...
+       cefca2b8ac Add /etc/ssl/cert.pem to gnutls-trustfiles for macOS
+       122e7264b8 Fix tool-tip display when display margins are non-zero by ...
+       e1cc2037a9 Handle hash tables and vectors when reading/writing EIEIO ...
+       cda219c3df Improve interactive debugging commands in xdisp.c
+       1056b3cbcd Fix calculation of continuation_pixel_width in display engine
+       90e20804f5 Improve documentation of 'save-abbrevs'.
+       14f0230a48 Improve documentation of Dired
+       161b0e5493 * lisp/bookmark.el (bookmark-alist): Doc fix.  (Bug#29551)
+
+2017-12-12  Stefan Monnier  <address@hidden>
+
+       * lisp/subr.el (backtrace--print-frame): Use cl-prin1
+
+       * lisp/emacs-lisp/cl-print.el (cl-prin1): Catch errors, since callers
+       generally don't expect errors.
+
+2017-12-12  Glenn Morris  <address@hidden>
+
+       Fix gitmerge handling of automatic conflict reslution
+
+       * admin/gitmerge.el (gitmerge-resolve): Reenable NEWS handling.
+       (gitmerge-resolve-unmerged): Commit after successful resolution.
+       (gitmerge-commit): New function, extracted from gitmerge-maybe-resume.
+       (gitmerge-maybe-resume): Use gitmerge-commit.
+
+2017-12-12  Paul Eggert  <address@hidden>
+
+       Fix recently-introduced cast typo
+
+       * src/alloc.c (SDATA_OF_STRING): Put cast in right spot.
+       This matters only if GC_CHECK_STRING_BYTES, which is sort
+       of a coals-to-Newcastle situation if pointer bounds checking
+       is also enabled.
+
+2017-12-12  Paul Eggert  <address@hidden>
+
+       Port --fcheck-pointer-bounds to --with-wide-int
+
+       * src/lisp (XSYMBOL) [__CHKP__ && !USE_LSB_TAG]:
+       Bypass pointer bounds checking here,
+       instead of failing the entire build.
+       (make_lisp_symbol): Improve comment.
+
+2017-12-12  Paul Eggert  <address@hidden>
+
+       Narrow pointer bounds when appropriate
+
+       This typically occurs in a storage manager, where the caller
+       is expected to access only the newly-allocated object,
+       instead of using the returned value to access unrelated
+       parts of the heap.
+       * src/alloc.c (allocate_string, allocate_string_data)
+       (compact_small_strings, find_string_data_in_pure)
+       (sweep_strings, setup_on_free_list, allocate_vectorlike
+       (pure_alloc):
+       * src/bytecode.c (exec_byte_code):
+       * src/callint.c (Fcall_interactively):
+       * src/dispnew.c (scrolling):
+       * src/editfns.c (styled_format):
+       * src/frame.c (xrdb_get_resource, x_get_resource_string):
+       * src/fringe.c (Fdefine_fringe_bitmap):
+       * src/gmalloc.c (malloc, realloc, aligned_alloc):
+       Narrow pointer bounds when appropriate.
+       * src/alloc.c (SDATA_OF_STRING):
+       * src/lisp.h (make_lisp_symbol) [__CHKP__]:
+       Widen bounds here, though.
+       * src/bytecode.c, src/callint.c, src/dispnew.c, src/editfns.c:
+       * src/emacs.c, src/frame.c, src/fringe.c:
+       Include ptr-bounds.h.
+       * src/ptr-bounds.h (ptr_bounds_clip): New function.
+
+2017-12-12  Paul Eggert  <address@hidden>
+
+       Port to gcc -fcheck-pointer-bounds
+
+       This is a minimal port, just to get Emacs running;
+       it does not attempt to make the pointer bounds at all tight.
+       * src/ptr-bounds.h: New file.
+       * src/alloc.c, src/gmalloc.c: Include it.
+       * src/alloc.c (live_string_holding, live_cons_holding)
+       (live_symbol_holding, live_misc_holding, garbage_collect_1)
+       (sweep_conses, sweep_floats):
+       * src/gmalloc.c (malloc_initialize_1, _free_internal_nolock)
+       (_realloc_internal_nolock):
+       Widen pointer bounds as necessary.
+       We're in a memory allocator so this is OK.
+       * src/lisp.h (lisp_h_XSYMBOL, make_lisp_symbol) [__CHKP__]:
+       Do not convert from pointer to integer and back again, so
+       that GCC does not lose track of pointer bounds.
+       (XSYMBOL) [__CHKP__ && !USE_LSB_TAG]: Now a compile-time error.
+       Although it's possible to support both -fcheck-pointer-bounds and
+       --with-wide-int, it's more work; keep things simple for now.
+       (DEFINE_LISP_SYMBOL) [__CHKP__]: Now a no-op, to avoid
+       trouble with unbounded pointers.
+
+2017-12-12  Paul Eggert  <address@hidden>
+
+       Reimplement Lisp_Object as pointer-to-incomplete
+
+       This makes Lisp_Object values opaque pointers instead of integers,
+       which helps avoid the same sort of typos that
+       CHECK_LISP_OBJECT_TYPE helps to avoid, without having to wrap
+       pointers inside structures.  This also looks forward to supporting
+       -fcheck-pointer-bounds.
+       * etc/DEBUG:
+       * src/.gdbinit (Lisp_Object_Printer.to_string):
+       Lisp_Object can be a pointer type now.
+       * src/alloc.c (macro_XPNTR, XPNTR):
+       * src/emacs-module.c (value_to_lisp_bits, lisp_to_value_bits):
+       * src/lisp.h (lisp_h_XLI, lisp_h_XIL):
+       (lisp_h_XUNTAG) [USE_LSB_TAG]:
+       (XUNTAG) [!USE_LSB_TAG]:
+       (Lisp_Object, TAG_PTR, make_lisp_symbol):
+       Support new Lisp_Object implementation as a pointer to an
+       incomplete type.  Keep pointers pointers, as much as possible.
+       * src/alloc.c (macro_XPNTR_OR_SYMBOL_OFFSET, XPNTR_OR_SYMBOL_OFFSET):
+       Remove.  All uses replaced by plain XPNTR.
+       * src/emacs-module.c: Work around GCC bug 83162.
+       * src/lisp.h (LISP_WORDS_ARE_POINTERS, lisp_h_XLP, lisp_h_XPL):
+       (XLP, XPL) [DEFINE_KEY_OPS_AS_MACROS]:
+       New macros.
+       (Lisp_Word, untagged_ptr, Lisp_Word_tag): New types.
+       (XLP, XPL): New inline functions.
+       (TAG_PTR): Now expands to an initializer, not an expression.
+       All uses changed.
+       (TAG_SYMOFFSET, XLI_BUILTIN_LISPSYM): Remove.  All uses removed.
+       (LISPSYM_INITIALLY): Redo in terms of the new TAG_PTR.
+       (NIL_IS_ZERO): Redo without XLI_BUILTIN_LISPSYM.
+       * src/xwidget.c (webkit_javascript_finished_cb): Use XPL
+       instead of XIL with a non-EMACS_INT arg.
+       (Fxwidget_webkit_execute_script): Use XLP instead of XLI
+       followed by two conversions.
+
+2017-12-12  Ted Zlatanov  <address@hidden>
+
+       Rename gnus-cloud method setter
+
+       * lisp/gnus/gnus-srvr.el (gnus-server-set-cloud-method-server)
+         (gnus-server-make-menu-bar, gnus-server-mode-map): Rename
+         `gnus-server-toggle-cloud-method-server' to
+         `gnus-server-set-cloud-method-server' (Bug#28845).
+         (gnus-server-toggle-cloud-server): Use "toggle" in docstring.
+
+       * lisp/gnus/gnus-cloud.el: Fix docstring.
+
+2017-12-12  Stefan Monnier  <address@hidden>
+
+       * lisp/subr.el (run-mode-hooks): Fix last change
+
+2017-12-12  Alan Third  <address@hidden>
+
+       Remove ObjC blocks (Bug#23753)
+
+       * src/macfont.m (macfont_get_glyph_for_character):
+       (mac_font_get_glyphs_for_variants): Inline Objective-C blocks.
+
+2017-12-12  Michael Albinus  <address@hidden>
+
+       Extend tramp-cache.el interface
+
+       * lisp/net/tramp.el (tramp-handle-add-name-to-file)
+       (tramp-handle-dired-uncache):
+       * lisp/net/tramp-adb.el (tramp-adb-handle-make-directory)
+       (tramp-adb-handle-delete-directory, tramp-adb-handle-delete-file)
+       (tramp-adb-handle-write-region, tramp-adb-handle-set-file-modes)
+       (tramp-adb-handle-set-file-times, tramp-adb-handle-copy-file)
+       (tramp-adb-handle-rename-file, tramp-adb-handle-process-file)
+       (tramp-adb-handle-start-file-process, tramp-adb-get-device)
+       (tramp-adb-maybe-open-connection):
+       * lisp/net/tramp-cache.el (tramp-flush-file-properties)
+       (tramp-flush-directory-properties, tramp-flush-file-function):
+       * lisp/net/tramp-cmds.el (tramp-cleanup-connection):
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file)
+       (tramp-gvfs-handle-delete-directory, tramp-gvfs-handle-delete-file)
+       (tramp-gvfs-handle-file-system-info, tramp-gvfs-handle-make-directory)
+       (tramp-gvfs-handle-write-region, tramp-gvfs-handler-mounted-unmounted)
+       (tramp-gvfs-send-command):
+       * lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link)
+       (tramp-sh-handle-set-file-modes, tramp-sh-handle-set-file-times)
+       (tramp-sh-handle-set-file-selinux-context, tramp-sh-handle-set-file-acl)
+       (tramp-sh-handle-add-name-to-file, tramp-sh-handle-copy-directory)
+       (tramp-do-copy-or-rename-file, tramp-do-copy-or-rename-file-out-of-band)
+       (tramp-sh-handle-make-directory, tramp-sh-handle-delete-directory)
+       (tramp-sh-handle-delete-file, tramp-sh-handle-dired-compress-file)
+       (tramp-process-sentinel, tramp-sh-handle-start-file-process)
+       (tramp-sh-handle-process-file, tramp-sh-handle-write-region):
+       * lisp/net/tramp-smb.el (tramp-smb-handle-add-name-to-file)
+       (tramp-smb-handle-copy-directory, tramp-smb-handle-copy-file)
+       (tramp-smb-handle-delete-directory, tramp-smb-handle-delete-file)
+       (tramp-smb-handle-file-acl, tramp-smb-handle-make-directory-internal)
+       (tramp-smb-handle-make-symbolic-link, tramp-smb-handle-process-file)
+       (tramp-smb-handle-rename-file, tramp-smb-handle-set-file-acl)
+       (tramp-smb-handle-set-file-modes, tramp-smb-handle-start-file-process)
+       (tramp-smb-handle-write-region, tramp-smb-maybe-open-connection):
+       Use them.
+
+       * lisp/net/tramp-cache.el (tramp-flush-file-properties)
+       (tramp-flush-directory-properties, tramp-flush-connection-properties):
+       Rename from `tramp-flush-file-property',`tramp-flush-directory-property'
+       and `tramp-flush-connection-property', respectively.
+       (tramp-flush-file-property, tramp-flush-connection-property):
+       New defuns.
+
+2017-12-12  Stefan Monnier  <address@hidden>
+
+       * lisp/subr.el (run-mode-hooks): Set parse-sexp-lookup-properties
+
+       if syntax-propertize-function is set (bug#24749).
+       * lisp/progmodes/sh-script.el (sh-set-shell):
+       * lisp/textmodes/texinfo.el (texinfo-mode):
+       * lisp/textmodes/mhtml-mode.el (mhtml-mode):
+       * lisp/progmodes/js.el (js-mode): Don't set 
parse-sexp-lookup-properties.
+
+2017-12-12  Glenn Morris  <address@hidden>
+
+       Make functions invocation-directory and invocation-name obsolete
+
+       * lisp/subr.el (invocation-directory, invocation-name):
+       Mark the function versions as obsolete.  (Bug#10476)
+       * lisp/startup.el (tty-handle-args):
+       * lisp/term/common-win.el (x-handle-xrm-switch, x-handle-name-switch):
+       * lisp/term/ns-win.el (top-level):
+       * lisp/term/pc-win.el (top-level):
+       * lisp/term/w32-win.el (window-system-initialization):
+       * lisp/term/x-win.el (top-level, x-handle-parent-id)
+       (x-handle-smid, window-system-initialization):
+       * test/lisp/htmlfontify-tests.el (htmlfontify-bug25468):
+       Use invocation-directory and invocation-name as variables.
+
+2017-12-11  Glenn Morris  <address@hidden>
+
+       * lisp/mail/emacsbug.el (report-emacs-bug): Try "sw_vers" on Darwin.
+
+       * admin/gitmerge.el (gitmerge-resolve): Disable buggy NEWS handling.
+
+2017-12-10  Eric Abrahamsen  <address@hidden>
+
+       Obsolete gnus-remove-if and gnus-remove-if-not
+
+       Use seq-remove and seq-filter, respectively, instead.
+
+       * lisp/gnus/gnus-util.el: Remove functions and replace with
+         define-obsolete-function-alias calls.
+       * lisp/gnus/gnus.el: Require seq here.
+       * lisp/gnus/gnus-art.el (gnus-mime-view-part-as-type):
+       * lisp/gnus/gnus-icalendar.el 
(gnus-icalendar-event--get-attendee-names):
+       * lisp/gnus/gnus-score.el (gnus-summary-score-effect):
+       * lisp/gnus/gnus-sum.el (gnus-read-move-group-name):
+       * lisp/gnus/gnus-topic.el (gnus-group-prepare-topics):
+       * lisp/gnus/gnus-win.el (gnus-get-buffer-window):
+       * lisp/gnus/nnmail.el (nnmail-purge-split-history):
+       * lisp/gnus/nnmaildir.el (nnmaildir-request-scan):
+       * lisp/gnus/nnrss.el (nnrss-make-hash-index): Replace calls in all
+         these locations.
+
+2017-12-10  Philipp Stephani  <address@hidden>
+
+       Skip tests for json.c unless compiled with native JSON support.
+
+       * test/src/json-tests.el (json-serialize/roundtrip)
+       (json-serialize/object, json-parse-string/object)
+       (json-parse-string/string, json-serialize/string)
+       (json-parse-string/incomplete, json-parse-string/trailing)
+       (json-parse-buffer/incomplete, json-parse-buffer/trailing): Skip if
+       JSON functions aren't available.
+
+2017-12-10  Eli Zaretskii  <address@hidden>
+
+       Support dynamic loading of libjansson on MS-Windows
+
+       * src/json.c [WINDOWSNT]: Define fn_* function pointers to jansson
+       functions.
+       (json_delete) [WINDOWSNT]: A wrapper around fn_json_delete, needed
+       by json_decref.
+       (init_json_functions) [WINDOWSNT]: New function.
+       (Fjson_serialize, Fjson_insert, Fjson_parse_string)
+       (Fjson_parse_buffer) [WINDOWSNT]: Call init_json_functions if
+       needed, and record JSON in Vlibrary_cache.
+       * src/emacs.c (main): Don't call init_json on WINDOWSNT.
+       * src/w32fns.c (syms_of_w32fns): DEFSYM "json".
+
+       * lisp/term/w32-win.el (dynamic-library-alist): Add JSON DLL to
+       the list.
+
+       * configure.ac (HAVE_JSON): Empty JSON_LIBS for MinGW.
+
+       * nt/INSTALL.W64:
+       * nt/INSTALL: Add information about libjansson.
+
+2017-12-10  Philipp Stephani  <address@hidden>
+
+       * configure.ac: Fix minimum Jansson version requirement.
+
+2017-12-10  Wilfred Hughes  <address@hidden>
+
+       Ensure that we can find definitions when buffer is narrowed
+
+       find-function-search-for-symbol will reuse the existing buffer if
+       we've already opened the file that contains this symbol. However, if
+       the user has narrowed that buffer, we can't find definitions outside
+       the narrowed area.
+
+       Instead, search the whole file to find definitions, and teach the help
+       buttons to widen if necessary.
+
+       * lisp/emacs-lisp/find-func.el (find-function-search-for-symbol):
+         Search the whole buffer for the target symbol.
+
+       * lisp/help-mode.el: Help buttons now widen the target buffer, if
+         narrowing is in effect and the target position is not in that range.
+
+2017-12-10  Philipp Stephani  <address@hidden>
+
+       Implement native JSON support using Jansson
+
+       * configure.ac: New option --with-json.
+
+       * src/json.c (Fjson_serialize, Fjson_insert, Fjson_parse_string)
+       (Fjson_parse_buffer): New defuns.
+       (json_malloc, json_free, json_has_prefix, json_has_suffix)
+       (json_make_string, json_build_string, json_encode)
+       (json_out_of_memory, json_parse_error)
+       (json_release_object, check_string_without_embedded_nulls, json_check)
+       (lisp_to_json, lisp_to_json_toplevel, lisp_to_json_toplevel_1)
+       (json_insert, json_insert_callback, json_to_lisp)
+       (json_read_buffer_callback, Fjson_parse_buffer, define_error): New
+       helper functions.
+       (init_json, syms_of_json): New file.
+
+       * src/lisp.h: Declaration for init_json and syms_of_json.
+
+       * src/emacs.c (main): Enable JSON functions.
+
+       * src/eval.c (internal_catch_all, internal_catch_all_1): New helper
+       functions to catch all signals.
+       (syms_of_eval): Add uninterned symbol to signify out of memory.
+
+       * src/Makefile.in (JSON_LIBS, JSON_CFLAGS, JSON_OBJ, EMACS_CFLAGS)
+       (base_obj, LIBES): Compile json.c if --with-json is enabled.
+
+       * test/src/json-tests.el (json-serialize/roundtrip)
+       (json-serialize/object, json-parse-string/object)
+       (json-parse-string/string, json-serialize/string)
+       (json-parse-string/incomplete, json-parse-string/trailing)
+       (json-parse-buffer/incomplete, json-parse-buffer/trailing): New unit
+       tests.
+
+       * doc/lispref/text.texi (Parsing JSON): New manual section.
+
+2017-12-10  Michael Albinus  <address@hidden>
+
+       * doc/misc/tramp.texi (Archive file names): Precise example.
+
+2017-12-09  Glenn Morris  <address@hidden>
+
+       * test/lisp/net/tramp-archive-tests.el
+       (tramp-archive-test06-directory-file-name): Add skip condition.
+
+2017-12-09  Philipp Stephani  <address@hidden>
+
+       * lisp/emacs-lisp/advice.el: Stop using old-style backquotes
+
+2017-12-09  Philipp Stephani  <address@hidden>
+
+       Raise an error when detecting old-style backquotes.
+
+       They have been deprecated for a decade now.
+
+       * src/lread.c (Fload): Don't use record_unwind_protect to warn about
+       old-style backquotes any more.  They now generate a hard error.
+       (read1): Signal an error when detecting old-style backquotes.  Remove
+       unused label.
+       (syms_of_lread): Remove unused internal variable
+       'lread--old-style-backquotes'.
+       (load_error_old_style_backquotes): Rename from
+       'load_warn_oldstyle_backquotes'.  Signal an error.
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Remove check
+       from byte compiler.  It isn't triggered any more.
+
+       * test/src/lread-tests.el (lread-tests--old-style-backquotes): Adapt
+       unit test.
+
+       * test/lisp/emacs-lisp/bytecomp-tests.el
+       (bytecomp-tests--old-style-backquotes)
+       (bytecomp-tests-function-put): Adapt unit tests.
+
+       * etc/NEWS: Document change.
+
+2017-12-09  Philipp Stephani  <address@hidden>
+
+       Work around reader limitations for old-style backquotes.
+
+       See Bug#28759.
+
+       * admin/grammars/make.by: Escape ,@ to avoid old-style backquote
+       detection
+
+2017-12-09  Michael Albinus  <address@hidden>
+
+       Support for archive file names
+
+       * doc/misc/tramp.texi (Top, Usage): Add entry "Archive file names".
+       (History): Mention archive file names.
+       (GVFS based methods): Mentio "http" and "https" methods.
+       (Archive file names): New node.
+       (Frequently Asked Questions): Add Emacs 27 as supported version.
+
+       * etc/NEWS: Mention tramp-archive.el.
+
+       * lisp/net/tramp.el (tramp-run-real-handler)
+       (tramp-register-file-name-handlers)
+       (tramp-register-file-name-handlers, tramp-unload-file-name-handlers):
+       Add `tramp-archive-file-name-handler'.
+       (tramp-handle-file-name-completion): Do not insist in Tramp
+       file names.
+
+       * lisp/net/tramp-archive.el: New package.
+
+       * lisp/net/tramp-cache.el (tramp-dump-connection-properties): Check for
+       "archive" method.
+
+       * lisp/net/tramp-cmds.el (tramp-cleanup-all-connections): Cleanup also
+       local copies of archives.
+
+       * lisp/net/tramp-compat.el (tramp-compat-use-url-tramp-p): New defconst.
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-methods): Add "http" and "https".
+       (tramp-gvfs-gio-mapping): Add "gvfs-mount".
+       (tramp-gvfs-handler-mounted-unmounted)
+       (tramp-gvfs-connection-mounted-p, tramp-gvfs-mount-spec):
+       Handle "uri" and "http".
+       (tramp-gvfs-unmount): New defun.
+
+       * test/lisp/net/tramp-archive-tests.el: New package.
+
+2017-12-09  Michael Albinus  <address@hidden>
+
+       * test/Makefile.in (url-tramp-test.log): Do not handle special.
+
+2017-12-09  Michael Albinus  <address@hidden>
+
+       Sync with Tramp 2.4.0-pre
+
+       * doc/misc/trampver.texi:
+       * lisp/net/trampver.el: Change version to "2.4.0-pre".
+
+       * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
+       Use `tramp-handle-file-directory-p'.
+       (tramp-adb-parse-device-names)
+       (tramp-adb-handle-expand-file-name)
+       (tramp-adb-handle-file-truename, tramp-adb-handle-process-file):
+       Adapt `tramp-make-tramp-file-name' call.
+       (tramp-adb-handle-file-directory-p): Remove.
+       (tramp-adb-maybe-open-connection): Do not set
+       tramp-current-*.
+
+       * lisp/net/tramp-cache.el (tramp-get-hash-table):
+       Adapt `tramp-make-tramp-file-name' call.
+
+       * lisp/net/tramp-cmds.el (tramp-cleanup-connection): Do not set
+       tramp-current-*.
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
+       Use `tramp-handle-file-directory-p'.
+       (tramp-gvfs-dbus-event-error): Trace with verbosity 6.
+       (tramp-gvfs-do-copy-or-rename-file): Use `file-truename'.
+       (tramp-gvfs-handle-file-directory-p): Remove.
+       (tramp-gvfs-handler-askpassword): Do not set tramp-current-*.
+
+       * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
+       (tramp-sh-handle-start-file-process)
+       (tramp-maybe-open-connection, tramp-get-remote-path): Do not
+       set tramp-current-*.
+       (tramp-maybe-open-connection): Set "password-vector" property.
+
+       * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
+       Use `tramp-handle-file-accessible-directory-p' and
+       `tramp-handle-file-directory-p'.
+       (tramp-smb-handle-copy-directory, tramp-smb-handle-file-acl)
+       (tramp-smb-handle-set-file-acl)
+       (tramp-smb-maybe-open-connection): Do not set tramp-current-*.
+       (tramp-smb-handle-file-directory-p): Remove.
+       (tramp-smb-handle-make-symbolic-link):
+       Use `tramp-get-connection-buffer' rather than `buffer-name'.
+
+       * lisp/net/tramp.el (tramp-current-method, tramp-current-user)
+       (tramp-current-domain, tramp-current-host)
+       (tramp-current-port): Remove.
+       (tramp-dissect-file-name): No special handling of localname anymore.
+       (tramp-make-tramp-file-name): Reimplemnt with new signature.
+       (tramp-completion-make-tramp-file-name): Fix docstring.
+       (tramp-get-buffer, tramp-handle-file-name-as-directory)
+       (tramp-handle-file-name-directory)
+       (tramp-check-cached-permissions, tramp-local-host-p)
+       (tramp-get-remote-tmpdir, tramp-clear-passwd):
+       Adapt `tramp-make-tramp-file-name' call.
+       (tramp-completion-handle-file-name-all-completions)
+       (tramp-action-login, tramp-read-passwd): Do not set
+       tramp-current-*.
+       (tramp-handle-file-directory-p): New defun.
+       (tramp-handle-verify-visited-file-modtime): Remove superfluous
+       `with-parsed-tramp-file-name'.
+       (tramp-process-actions, tramp-read-passwd):
+       Use "password-vector" property.
+       (tramp-call-process, tramp-call-process-region): No special
+       setting of vec.
+       (tramp-read-passwd): Handle "login-as" property.
+
+       * test/lisp/net/tramp-tests.el (tramp-test21-file-links):
+       Special code for "smb".
+
+2017-12-09  Michael Albinus  <address@hidden>
+
+       Minor Tramp fixes
+
+       * lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file):
+       Fix a bug when renaming.
+
+       * test/lisp/net/tramp-tests.el (tramp-test21-file-links): Extend test.
+       (tramp-test42-delay-load, tramp-test42-remote-load-path):
+       Skip unless Emacs >= 26.
+
+2017-12-09  Glenn Morris  <address@hidden>
+
+       * lisp/help-mode.el (help-function-def):
+       Allow help-make-xrefs to call with one argument.  (Bug#29611)
+
+2017-12-09  Martin Rudalics  <address@hidden>
+
+       Fix doc-string of 'display-buffer-in-side-window'
+
+       * lisp/window.el (display-buffer-in-side-window): In doc-string
+       clarify why the window returned gets dedicated to its buffer.
+
+2017-12-09  Michael Albinus  <address@hidden>
+
+       Fix Bug#29579
+
+       * lisp/files.el (file-name-non-special):
+       Inhibit `file-name-handler-alist' only for some operations.
+       Add missing operations.  (Bug#29579)
+
+       * lisp/net/tramp-compat.el (tramp-compat-file-name-quote):
+       Do not quote if it is quoted already.
+
+       * lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory):
+       Use `copy-tree' but `copy-sequence'.
+
+       * lisp/net/tramp.el (tramp-handle-file-truename): Handle several
+       trailing slashes correctly.
+
+       * test/lisp/net/tramp-tests.el (tramp-test11-copy-file)
+       (tramp-test12-rename-file, tramp-test24-file-acl)
+       (tramp-test25-file-selinux, tramp--test-check-files):
+       Handle also quoted file names.
+       (tramp-test21-file-links): Fix file name quoting test.
+       (tramp-test24-file-acl): Be more robust for "smb" method.
+       (tramp-test35-make-auto-save-file-name): Enable hidden test cases.
+
+2017-12-09  Michael Albinus  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       7eea3144d4 Minor Tramp fixes
+       c0a670a8b5 * lisp/help-mode.el (help-function-def): Allow help-make-x...
+       05720162c1 Fix doc-string of 'display-buffer-in-side-window'
+       a1bbc49015 Fix Bug#29579
+       cb3d979b74 ; NEWS: Update Org version number
+
+2017-12-09  Michael Albinus  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       5381c70b7a In windows.texi mention special splitting behavior of side...
+       46d62b9f36 * lisp/gnus/gnus-group.el (gnus-group-mode-map): Bind [fol...
+       1ef1dbdbc5 Avoid compilation warning in xterm.c
+       5cf3c26f2d * README: Document all the top-level directories.  (Bug#29...
+       e9ea2065a8 Don't enable erc modules on simply loading erc.el
+
+2017-12-09  Michael Albinus  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       1fdac2d65c Don't add newlines in minibuffer history
+       de68f337e3 modhelp.py: Support Python 3 (Bug#24954)
+       afb04f7f3c Use forward slashes for python w32 config example (Bug#21656)
+
+2017-12-08  Paul Eggert  <address@hidden>
+
+       Fix core dump from (format "%#08x" n) patch
+
+       Problem reported by Glenn Morris (Bug#29609#13).
+       * src/editfns.c (styled_format): Null-terminate output,
+       as later code now expects this.
+
+2017-12-08  Paul Eggert  <address@hidden>
+
+       Fix daylight-saving inference for Irish time
+
+       * lisp/calendar/cal-dst.el (calendar-dst-find-data): Do not assume
+       that daylight-saving time has a greater UT offset than standard
+       time.  The reverse is true in Ireland, where standard time "IST"
+       is UTC +01 in summer and daylight-saving time "GMT" is UTC +00 in
+       winter.  The current Irish rules are given by the POSIX setting
+       TZ='IST-1GMT0,M10.5.0,M3.5.0/1'.
+
+2017-12-07  Paul Eggert  <address@hidden>
+
+       Fix zero-padding bug with (format "%#08x" n)
+
+       Problem reported by Gustaf Waldemarson (Bug#29609).
+       * src/editfns.c (styled_format):
+       Put zero padding after a leading "0x", not before.
+       * test/src/editfns-tests.el (format-sharp-0-x): New test.
+
+2017-12-06  Rasmus  <address@hidden>
+
+       Revert "; Add entry for new Org version in NEWS file"
+
+       This reverts commit 793ba92c50d69e1796ea2122520dea872007bca7.
+
+2017-12-06  Rasmus  <address@hidden>
+
+       Update Org to v9.1.4
+
+       Please note this is a bugfix release. See etc/ORG-NEWS for details.
+
+2017-12-05  Stefan Monnier  <address@hidden>
+
+       * lisp/files.el (find-alternate-file): Use selected-window even if 
dedicated
+
+2017-12-04  Stefan Monnier  <address@hidden>
+
+       * lisp/calendar/diary-lib.el: Use lexical-binding
+
+       (diary-pull-attrs): Avoid let...setq.
+       (diary-list-entries-2, diary-mark-entries-1)
+       (diary-font-lock-date-forms, diary-fancy-date-pattern):
+       Use calendar-dlet* around uses of diary-date-forms.
+       (list-only, number, date, entry): Don't declare globally.
+       (diary-including): Declare.
+       (diary-saved-point, date-string): Move before first use.
+       (diary-list-entries): Use calendar-dlet* around
+       diary-nongregorian-listing-hook and 'diary-list-entries-hook.
+       (displayed-year, displayed-month): Move before first use.
+       (diary-sexp-entry): Use calendar-let* around evaluation of the sexp.
+       (diary-remind): Use calendar-let* around evaluation of sexp.
+
+2017-12-04  Stefan Monnier  <address@hidden>
+
+       * lisp/calendar/cal-dst.el: Use lexical-binding
+
+       (calendar-time-zone-daylight-rules, calendar-dst-starts)
+       (calendar-dst-ends, dst-in-effect): Bind `year' explicitly around 
`eval'.
+
+2017-12-04  Stefan Monnier  <address@hidden>
+
+       * lisp/calendar/todo-mode.el: Use calendar-dlet*
+
+       (dayname, monthname, day, month, year): Don't declare globally.
+       (todo-date-pattern, todo-edit-item--header)
+       (todo-convert-legacy-date-time, todo-read-date):
+       Use calendar-dlet* around uses of calendar-date-display-form.
+
+2017-12-04  Stefan Monnier  <address@hidden>
+
+       * lisp/calendar/solar.el: Use lexical-binding
+
+       (date): Don't declare globally.
+       (solar-time-string): Use calendar-dlet*.
+
+       * lisp/calendar/calendar.el (calendar-dlet*): New macro.
+
+2017-12-04  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/faceup.el: Don't require CL
+
+       (faceup-markup-start-char, faceup-markup-end-char): Use char immediates.
+
+2017-12-04  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/elint.el (elint-init-form): Remove outdated CL hack
+
+2017-12-04  Eli Zaretskii  <address@hidden>
+
+       Fix an omission in lookup_basic_face
+
+       * src/xfaces.c (lookup_basic_face): Handle 'vertical-border' face
+       as well.  (Bug#29557)
+
+2017-12-03  Paul Eggert  <address@hidden>
+
+       allocate_vectorlike minor cleanup
+
+       * src/alloc.c (allocate_vectorlike): Move a bit of code out of the
+       critical section.  Although this doesn’t really help performance,
+       it cleans up the code a bit and should make it easier to add
+       pointer bounds checking.
+
+2017-12-03  Paul Eggert  <address@hidden>
+
+       Omit exprintf if modules but no X
+
+       * src/doprnt.c (exprintf): Do not define if HAVE_MODULES &&
+       !(have_X_WINDOWS || USE_X_TOOLKIT), as the modules code no longer
+       uses exprintf.
+
+2017-12-03  Paul Eggert  <eggert@union>
+
+       Pacify GCC on Ubuntu 17.10 x86-64
+
+       * src/xfns.c (x_real_pos_and_offsets): Pull out parent frame
+       into a local, so that GCC doesn't warn about dereferencing
+       a possibly-null pointer.
+
+2017-12-03  Lars Ingebrigtsen  <address@hidden>
+
+       Allow shr to use data: URLs without encoding
+
+       * lisp/net/shr.el (shr-image-from-data): Don't bug out on
+       image data: URLs that have no base64 encoding like
+       (shr-image-from-data
+       "text/html,%3Ch1%3EHello%2C%20World!%3C%2Fh1%3E").
+
+2017-12-03  Alan Third  <address@hidden>
+
+       Add image resizing and rotation to NS port
+
+       * lisp/image.el (image--get-imagemagick-and-warn): Bypass imagemagick
+       check when using NS.
+       * src/nsimage.m (ns_load_image): Add rotation and resizing
+       functionality. Move the getMetaData call to before the resize/rotation
+       so it returns correct metadata.
+       (EmacsImage::setSizeFromSpec, EmacsImage::rotate): New functions.
+       * src/nsterm.h (EmacsImage): Add new function prototypes.
+       (NSCompositingOperationCopy): Add define to older equivalent for
+       GNUstep and pre-10.12 macOS.
+       * configure.ac: Don't use libjpeg on Cocoa.
+
+2017-12-03  Noam Postavsky  <address@hidden>
+
+       Disable history expansion in eshell (Bug#29157)
+
+       History expansion is not so useful since interactive history commands
+       are already provided.  It can produce surprising errors when the user
+       is not aware of the history designator syntax.
+       * lisp/eshell/em-hist.el (eshell-hist-initialize): Don't add
+       eshell-expand-history-references to eshell-expand-input-functions.
+       * etc/NEWS: Announce it.
+
+2017-12-03  Noam Postavsky  <address@hidden>
+
+       * lisp/emacs-lisp/package.el (package-read-from-string): Simplify.
+
+2017-12-03  Noam Postavsky  <address@hidden>
+
+       Fix faceup tests when run from elc
+
+       String literals may be shared by the compiler, so the test string
+       needs to be copied before adding properties to it.  For single
+       properties, just use a string literal with properties.
+       * test/lisp/emacs-lisp/faceup-tests/faceup-test-basics.el
+       (faceup-markup): Split into...
+       (faceup-markup-basics, faceup-markup-escaping, faceup-markup-plain)
+       (faceup-markup-plain-full-text, faceup-markup-anonymous-face)
+       (faceup-markup-anonymous-face-2keys, faceup-markup-anonymous-nested)
+       (faceup-markup-nested, faceup-markup-overlapping)
+       (faceup-markup-multi-face, faceup-markup-multi-property): New tests.
+
+2017-12-02  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       04e5b28ff1 Fix bug in i18n/l10n optimization
+       8227087194 Let autoload-compute-prefix be set file-locally (Bug#29471)
+       98ca7d5f26 Improve edit-kbd-macro prompting in case of remapped keys ...
+       c02c1f6be7 Add tests on electric-indentation and Python multiline str...
+       946bb6d225 Disable electric indent for python strings (Bug#29305)
+       35f1ed10e4 ; ChangeLog.2: Fix bug reference.
+       ac316634e4 Fix buffer overflow in fontname conversion (Bug#29523)
+       bf9b972843 Fix byte compilation of files with leading directories
+       ac144dc835 * lisp/files.el (make-backup-file-name-1): Fix scoping error.
+       1b351c8a47 Revert Tramp commit from 2017-11-20
+       77cf972592 Improve documentation of buffer-list commands and features
+       66ec92af00 Fix backing up remote files in local directories on MS-Win...
+       7e61e74da7 * doc/emacs/mule.texi (Output Coding): Clarify sendmail co...
+       1e25cd79ff Revert "Fix backing up remote files in local directories o...
+       f52d79500b Fix a typo in ELisp manual
+       bf26fc3656 * lisp/composite.el (find-composition): Fix a typo in the ...
+
+2017-12-02  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       8c8b673288 Fix backing up remote files in local directories on MS-Win...
+       8eb6870be6 Fix vertical cursor motion in pixel-scroll.el
+       625e84f156 Fix typos in doc strings of message.el
+       9292276a44 Fix a typo in the Emacs manual
+       42509c0649 Improve the documentation of 'table-insert-sequence'
+       93dc7ae4a4 Port better to QNX
+       ad99550610 Make tramp-test42-auto-load more robust
+       af0ce33d08 ; * lisp/composite.el (find-composition): Fix a typo in la...
+       bdbcdbac43 Avoid assertions in find-composition
+
+2017-12-02  Alan Mackenzie  <address@hidden>
+
+       For help commands, ensure all keys of a mouse sequence are reported.
+
+       This solves the problem where read_key_sequence initializes and uses a 
global
+       buffer raw_keybuf, yet is called recusrsively.  The initialization is 
now done
+       elsewhere, avoiding the reinitialization of that global buffer.
+
+       * src/keyboard.c (command_loop_1, read_key_sequence_vs): Initialize
+       raw_event_count before calling read_key_sequence.
+       (read_char_x_menu_prompt): Call x_popup_menu_1 in place of 
Fx_popup_menu.
+       (init_raw_keybuf_count): New function.
+       (read_key_sequence): Remove initialization of raw_event_count.  Add a 
missing
+       GROW_RAW_KEYBUF invocation.
+
+       * src/keyboard.h: (init_raw_keybuf_count): New declaration.
+
+       * src/menu.c: (x_popup_menu_1): New function with the functionality of 
the
+       former Fx_popup_menu.
+       (Fx_popup_menu): Replace with function which initializes 
raw_event_count then
+       calls x_popup_menu_1.
+
+       * src/menu.h: (x_popup_menu_1): New declaration.
+
+2017-12-01  Vibhav Pant  <address@hidden>
+
+       lisp/erc/erc.el: Use inline-letevals for when args are buffer local.
+
+       * lisp/erc/erc.el: (erc-get-server-user, erc-add-server-user,
+         erc-remove-server-user): Use inline-letevals for when the arguments
+         refer to buffer-local variables.
+
+2017-12-01  Glenn Morris  <address@hidden>
+
+       * admin/gitmerge.el (gitmerge-resolve): Handle NEWS.  (Bug#29366)
+
+2017-12-01  Glenn Morris  <address@hidden>
+
+       Don't hard-code gitmerge.el's default merge branch
+
+       * admin/gitmerge.el (gitmerge-default-branch): Make it a variable,
+       defaulting to nil.
+       (gitmerge-emacs-version, gitmerge-default-branch): New functions.
+       (gitmerge): Guess the branch to merge from.
+
+2017-12-01  Glenn Morris  <address@hidden>
+
+       * admin/gitmerge.el (gitmerge-resolve):
+       Fix treatment of generated files.
+
+2017-11-30  Michael Heerdegen  <address@hidden>
+
+       Add macros `thunk-let' and `thunk-let*'
+
+       * lisp/emacs-lisp/thunk.el (thunk-let, thunk-let*): New macros.
+       * test/lisp/emacs-lisp/thunk-tests.el:
+       (thunk-let-basic-test, thunk-let*-basic-test)
+       (thunk-let-bound-vars-cant-be-set-test)
+       (thunk-let-laziness-test, thunk-let*-laziness-test)
+       (thunk-let-bad-binding-test): New tests for `thunk-let' and
+       `thunk-let*.
+
+       * doc/lispref/eval.texi (Deferred Eval): New section.
+       * doc/lispref/elisp.texi: Update menu.
+
+2017-11-30  Phillip Lord  <address@hidden>
+
+       Add date to dependency and source zips for snapshots
+
+       * admin/nt/dist-build/build-zips.sh,
+         admin/nt/dist-build/build-dep-zips.py: Support snapshot naming
+
+2017-11-30  Glenn Morris  <address@hidden>
+
+       Make truncate-lines permanently local (bug#15396)
+
+       Width of lines relative to display is rarely a function of major mode.
+       * src/buffer.c (init_buffer_once) <truncate-lines>:
+       Flag as permanently local.
+       * lisp/bindings.el (truncate-lines): Add permanent-local property.
+
+2017-11-29  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       408862f02a (origin/emacs-26) ; * lisp/emacs-lisp/bytecomp.el: Tweak m...
+       9964db4c34 Restore obsolete method of changing byte-compile-dest-file
+       3dd25aeecb Some minor Tramp corrections
+       d670a15f25 * doc/misc/url.texi (http/https): Fix typo
+       99d07e8d5e Remove some bogus definition-prefixes from loaddefs
+       6067f0c702 Shell-quote wildcards when invoking 'vc-git-grep'
+       0540df10e6 Update documentation of '.dir-locals-2.el'
+       f2441ab320 ; Fix some tiny doc and comment typos
+       22ff46e6d8 ; Fix some comment typos
+
+       # Conflicts:
+       #       etc/NEWS
+
+2017-11-29  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       f2e6961a1b ; * lisp/emacs-lisp/bytecomp.el (byte-compile-dest-file): ...
+       1c8bd8a119 A few small doc fixes for bytecomp.el
+
+2017-11-29  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       02d114d6b8 * lisp/tree-widget.el (tree-widget-end-guide): Escape it. ...
+       0a85d12474 Fix ELisp "Warning Tips"
+       06d05fec84 Fix Bug#29163
+       ac64fdb248 Harden exec_byte_code against redefining 'error'
+       700f74e4c8 Fix Edebug specs for if-let* and and-let* (Bug#29236)
+       0ded1b41a9 Fix Edebug's handling of dotted specs (bug#6415)
+       16358d4fcb Improve documentation of "constant" symbols
+
+2017-11-29  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/message.el: Use pcase and cl-lib
+
+       (message-check-news-body-syntax): Avoid string-to-multibyte.
+
+2017-11-28  Glenn Morris  <address@hidden>
+
+       Put most erc autoloads in a dedicated file erc-loaddefs.el
+
+       These are features that are only useful after erc.el is loaded.
+       * lisp/erc/erc.el (top-level): Load erc-loaddefs.
+       * lisp/erc/erc-autoaway.el, lisp/erc/erc-button.el:
+       * lisp/erc/erc-capab.el, lisp/erc/erc-compat.el:
+       * lisp/erc/erc-dcc.el, lisp/erc/erc-desktop-notifications.el:
+       * lisp/erc/erc-ezbounce.el, lisp/erc/erc-fill.el:
+       * lisp/erc/erc-identd.el, lisp/erc/erc-imenu.el:
+       * lisp/erc/erc-join.el, lisp/erc/erc-list.el, lisp/erc/erc-log.el:
+       * lisp/erc/erc-match.el, lisp/erc/erc-menu.el:
+       * lisp/erc/erc-netsplit.el, lisp/erc/erc-notify.el:
+       * lisp/erc/erc-page.el, lisp/erc/erc-pcomplete.el:
+       * lisp/erc/erc-replace.el, lisp/erc/erc-ring.el:
+       * lisp/erc/erc-services.el, lisp/erc/erc-sound.el:
+       * lisp/erc/erc-speedbar.el, lisp/erc/erc-spelling.el:
+       * lisp/erc/erc-stamp.el, lisp/erc/erc-track.el:
+       * lisp/erc/erc-truncate.el, lisp/erc/erc-xdcc.el:
+       Set generated-autoload-file to "erc-loaddefs.el".
+
+2017-11-27  Glenn Morris  <address@hidden>
+
+       Fix probable typo in elisp-mode constant name
+
+       * lisp/progmodes/elisp-mode.el (emacs-lisp-byte-code-comment-re):
+       Rename from emacs-list-byte-code-comment-re.  Add doc string.
+       (elisp--byte-code-comment, elisp-byte-code-syntax-propertize):
+       Update for the above.
+
+2017-11-27  Phillip Lord  <address@hidden>
+
+       Update Build files for Emacs-27
+
+       * admin/nt/dist-build/README-windows-binaries,
+         admin/nt/dist-build/build-dep-zips.py,
+         admin/nt/dist-build/build-zips.sh: Update Version
+
+2017-11-27  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-macs.el: Fix bug#26073.
+
+       * lisp/emacs-lisp/cl-macs.el (cl--sm-macroexpand):
+       Implement Common-Lisp's behavior for symbol-macro's let-rebindings.
+       (cl--letf, cl-letf): Don't get fooled into using a plain `let` for
+       symbol-macros.
+
+       * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-symbol-macrolet-hide):
+       New test.
+
+2017-11-27  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/cl-macs.el: Fix &key with no key arg
+
+       * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-empty-keyargs): New test.
+       * lisp/emacs-lisp/cl-macs.el (cl--do-arglist): Fix it.
+
+2017-11-27  Stefan Monnier  <address@hidden>
+
+       * src/lread.c (syms_of_lread): Fix thinko in commit b1573a97e17b5.
+
+2017-11-26  Paul Eggert  <eggert@union>
+
+       Pacify --enable-gcc-warnings on Ubuntu 17.10 x86-64
+
+       * src/process.c (Fmake_network_process):
+       Avoid duplicate test of NILP (host), which apparently confuses
+       GCC into thinking that portstringlen might be used uninitialized.
+
+2017-11-26  Charles A. Roelli  <address@hidden>
+
+       * src/process.c (wait_reading_process_output): Deduplicate check.
+
+       (Bug#29454)
+
+2017-11-25  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       a89f0b6f33 maint: shorten https://lists.gnu.org/archive/html/... links
+       8be3aee281 Merge from Gnulib
+       265cee553f Work around GCC bug 80776 on Fedora 27 x86
+       dc7a97fb84 Tweak copy-file, rename-file doc
+       cfa2a944d4 Change font-lock-extend-region-multiline handling in mhtml...
+       a8664cc998 Minor cleanup in tramp-gvfs-handle-file-local-copy
+       55c5b12fa0 Add test for Bug#29423 in Tramp.
+       3198a1646e Avoid jumbled order in HTML rendered by shr.el
+       23bfc2d2db Make sure 'dired-filename' property is always put by ls-lisp
+       f7fdaea4c0 A better solution for bug#29347
+       86e6ed8521 ; * src/thread.c (acquire_global_lock): Fix thinko in last...
+       f300852037 Avoid a hang after C-g while sit-for on a Unix TTY
+       d7fc719ff1 Improve the doc string of 'list-packages'
+       b4f67ebb92 Improve discoverability of 'defvar' for suppressing warnings
+       8a2b204e64 Improve discoverability of 'read-buffer-completion-ignore-...
+       eea4e9194c Improve documentation of self-insert-uses-region-functions
+       e6e41dac87 Reflect changes in copy-file and rename-file in doc strings
+       0ec534070f * lisp/progmodes/cc-vars.el (c-offsets-alist): Doc fix.  (...
+       1d0dbdff6c Reorder type predicates in ELisp manual
+       b081ec9dd7 Fix backward scrolling in buffers with header-line
+       8e40429c96 ; Fix some doc typos
+       ed2c542920 * lisp/bindings.el (buffer-file-coding-system): Add explic...
+       d82474e452 * src/fns.c (syms_of_fns) <overriding-plist-environment>: ...
+       292c09ff6d Fix incorrect interaction of drag/drop and double click (b...
+       d6fadb1d26 * lisp/menu-bar.el (menu-bar-options-save): Add display-li...
+       daa959efbc * lisp/menu-bar.el (menu-bar-options-save): Add global-dis...
+       17fc74d1b9 * lisp/follow.el (follow-mode): Restore mode line lighter....
+       f20c2e2f3d ; Compare process status against 127 exactly
+       2d203ffb7e Extract the common part of ruby-flymake-simple and ruby-fl...
+       09944d499a Add Rubocop Flymake backend
+       c65a0ae7c4 ; Fix a typo
+       7ab7603125 Update nt/INSTALL.W64 (Bug#28601)
+       11db253c08 Remove incorrect NEWS item about VC state indicator (Bug#2...
+       2fdc01c036 * lisp/emacs-lisp/byte-run.el (defsubst): Doc fix.
+       735c8b516e Make c-defun-name analyze more thoroughly a function type ...
+       92f0c4cd56 Avoid bogus abbreviated file names if HOME changes
+       8d450453fa * lisp/emacs-lisp/byte-run.el (inline): Give it a doc.
+       37a3b4ea40 Fix erc keep-place module with new defaults (Bug#29111)
+       6c312605bf Add window divider faces to NS (bug#29353)
+
+       # Conflicts:
+       #       etc/NEWS
+       #       lisp/ruler-mode.el
+
+2017-11-24  Eric Abrahamsen  <address@hidden>
+
+       Obsolete gnus-copy-sequence and gnus-last-element
+
+       (Bug#28856, Bug#28867)
+
+       * lisp/gnus/gnus-range.el: Leave gnus-last-element in place, but
+         obsolete it and point to car of last. Remove gnus-copy-sequence and
+         define as an obsolete alias for copy-tree.
+         (gnus-remove-from-range):
+       * lisp/gnus/gnus-cache.el (gnus-cache-generate-active):
+       * lisp/gnus/gnus-sum.el (gnus-summary-insert-articles,
+         gnus-select-newsgroup, gnus-summary-read-group-1,
+         gnus-select-newsgroup, gnus-update-marks,
+         gnus-summary-insert-articles, gnus-summary-insert-new-articles):
+         Replace calls in these locations.
+       * lisp/gnus/gnus-agent.el (gnus-agent-catchup,
+         gnus-agent-summary-fetch-series, gnus-category-copy):
+       * lisp/gnus/gnus-cus.el (gnus-group-customize):
+       * lisp/gnus/gnus-group.el (gnus-group-edit-group-done,
+         gnus-group-make-useful-group):
+       * lisp/gnus/gnus-score.el (gnus-score-adaptive):
+       * lisp/gnus/gnus-srvr.el (gnus-server-copy-server): Replace calls in
+         these locations.
+
+2017-11-24  Stefan Monnier  <address@hidden>
+
+       * src/data.c: Fix regression in last clone-buffer change
+
+       * src/data.c (Fmake_local_variable, Fmake_variable_buffer_local):
+       Signal more precise error when applied to read-only variable.
+
+2017-11-24  Sam Steingold  <address@hidden>
+
+       Fix last patch: ensure the return value of tags-verify-table.
+
+       * lisp/progmodes/etags.el (tags-verify-table): Since `(tags-table-mode)'
+       always return nil now that it is a derived mode, call
+       `verify-tags-table-function' explicitly.
+
+2017-11-24  Pip Cet  <address@hidden>
+
+       Use NULL for NULL rather than false
+
+       * src/xdisp.c (x_draw_bottom_divider): Fix type typo.
+
+2017-11-24  Stefan Monnier  <address@hidden>
+
+       * lisp/macros.el (insert-kbd-macro): Recognize kmacros reliably
+
+       * lisp/macros.el (name-last-kbd-macro): Make it an alias of
+       kmacro-name-last-macro.
+       (insert-kbd-macro): Use kmacro-keyboard-macro-p so it also works for
+       kmacros that fail to have a `kmacro' property.
+       (see https://emacs.stackexchange.com/questions/37065, for an example).
+
+       * lisp/kmacro.el: Remove redundant :group args.
+       (kmacro-insert-counter): Simplify.
+       (kmacro-extract-lambda): Use car/cdr-safe.
+       (kmacro-p, kmacro-keyboard-macro-p): New functions.
+       (kmacro-name-last-macro): Use them.
+
+2017-11-24  Daiki Ueno  <address@hidden>
+
+       Remove pinentry.el
+
+       * lisp/epg.el (epg--start): Remove the use of pinentry.el.
+       * lisp/net/pinentry.el: Remove (bug#27445).
+
+2017-11-24  Jaesup Kwak  <address@hidden>  (tiny change)
+
+       Avoid unnecessary xwidget_view creations
+
+       * src/xwidget.c (x_draw_xwidget_glyph_string): Don't create new
+       xwidget view if we have a usable one already.
+
+2017-11-24  Alex Branham  <address@hidden>
+
+       More informative error when autosave file is not available
+
+       * lisp/files.el (recover-file): Distinguish in error messages
+       between autosave file not existing and not being current.
+       (Bug#29179)
+
+2017-11-23  Stefan Monnier  <address@hidden>
+
+       * lisp/simple.el (clone-buffer): Adjust `mark-ring'
+
+2017-11-22  Eric Abrahamsen  <address@hidden>
+
+       Marked groups should always be visible in *Group* buffer
+
+       * lisp/gnus/gnus-group.el (gnus-group-prepare-flat): Check for the
+         mark in these two locations.
+       * lisp/gnus/gnus-topic.el (gnus-topic-find-groups)
+
+2017-11-22  Sam Steingold  <address@hidden>
+
+       Use special-mode for read-only buffers.
+
+       * lisp/progmodes/etags.el (tags-table-mode): Define using
+       `define-derived-mode', inheriting from `special-mode'.
+       Not only the buffer is now read-only, but you can bury it with "q".
+       (select-tags-table-mode): No need to set `buffer-read-only'
+       explicitly, `special-mode' takes care of that.
+       * lisp/vc/log-edit.el (log-edit-show-files): Use `special-mode'
+       instead of setting `buffer-read-only' explicitly.
+
+2017-11-22  Sam Steingold  <address@hidden>
+
+       Remove variable alias executing-macro, obsolete since before 19.34.
+
+2017-11-22  Sam Steingold  <address@hidden>
+
+       Remove *-yank-hooks aliases for -citation-hook, obsolete since 19.34.
+
+       * lisp/simple.el (compose-mail): Use `mail-citation-hook'
+       instead of `mail-yank-hooks'.
+       * lisp/mail/sendmail.el (mail-yank-hooks): Remove.
+       (mail-yank-original, mail-yank-region): Drop `mail-yank-hooks'.
+       * lisp/mh-e/mh-letter.el (mh-yank-hooks): Remove.
+       (mh-insert-prefix-string): Drop `mh-yank-hooks'.
+
+2017-11-20  Phillip Lord  <address@hidden>
+
+       Fix lower case installer name
+
+       * admin/nt/dist-build/build-zips.sh (build_installer):
+
+2017-11-20  Eric Abrahamsen  <address@hidden>
+
+       Use message instead of gnus-message in gnus-summary-current-score
+
+       * lisp/gnus/gnus-score.el (gnus-summary-current-score): The only point
+         of this function is to display the score to the user, there's no
+         need to do gnus-message filtering.
+
+2017-11-20  Phillip Lord  <address@hidden>
+
+       Add date to snapshot file
+
+       * admin/nt/dist-build/build-zips.sh: Add date to all out files.
+       * admin/nt/dist-build/emacs.nsi: Lower case and date installer.
+
+2017-11-20  Alan Mackenzie  <address@hidden>
+
+       read_key_sequence: correct the handling of raw_keybuf in recursive calls
+
+       This fixes bug #29349.
+
+       * src/keyboard.c (raw_keybuf_buffer, raw_keybuf_count_buffer): New 
variables
+       pointed to by ...
+       (raw_keybuf, raw_keybuf_count): Variables converted to pointers.
+       (GROW_RAW_KEYBUF): enhance with a length argument.
+       (command_loop_1): Initialize the above two pointers to their canonical 
values.
+
+       (read_key_sequence): In recursive calls (for menus) the function was
+       overwriting the raw event buffer of the outer call.  Correct this by
+       introducing a local buffer for each level of call, and setting this up 
to be
+       used by the call to read_char.  Any contents of this local buffer are 
appended
+       to the global buffer afterwards.
+
+2017-11-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       fc5b8f1 Fix Bug#29149
+       5622b2e Merge branch 'emacs-26' of git.sv.gnu.org:/srv/git/emacs into...
+       4da8799 (emacs-26) Fix misbehavior when drawing three-pixel high hori...
+       1b082c8 MH-E: don't automatically download external-body parts
+       069f978 ; * lisp/emacs-lisp/byte-run.el: Fix a typo in a comment.
+       504a56c ; Fix last commit
+       a34e44e ; Fix last commit
+       a8892b4 Further fix for Bug#29291
+       d14923b Fix divider frame params on NS (bug#29352)
+       b2518ac Spelling fixes
+
+       # Conflicts:
+       #       etc/NEWS
+       #       test/lisp/net/tramp-tests.el
+
+2017-11-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       6e6bf60 Don't let delete_frame select a tooltip frame (Bug#27647)
+       e9dd580 Filter obtrusive events in help-read-key-sequence.
+       90075e8 Fix symlink flag in tramp-gvfs-handle-file-attributes
+       c355529 Fix bug in tramp-handle-file-truename
+       4c21d04 Fix a typo in doc string of electric-indent-functions-without...
+       319c2de Avoid assertion violations in echo_area_display
+       63c7733 ; * lisp/ido.el (ido-find-alternate-file): Doc fix.  (Bug#29278)
+       cbd319a Fix case-folding in Occur
+       29520b0 Fix quick-calc in C mode with hex values
+       3e80124 Improve documentation of dired-next/prev-marked-file
+       90add18 Prevent aborts in line-move-visual
+       648c128 More fixes in src/.gdbinit
+       104f3e5 Document how to enter whitespace when using grep-read-files
+
+2017-11-20  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       42c8768 Fix .gdbinit following lisp.h changes
+       720322a ; Spelling fixes
+       617c556 * lisp/simple.el (shell-command): Doc fixes.
+       1faade8 Fix marker adjustment for undo (Bug#29118)
+
+2017-11-20  Stefan Monnier  <address@hidden>
+
+       * lisp/erc/erc-services.el: Use lexical-binding
+
+2017-11-20  Olaf Rogalsky  <address@hidden>  (tiny change)
+
+       * src/keyboard.c: Make xterm-mouse clicks on mode-line work
+
+
+       (read_key_sequence): Recompute first_event
+       after replay_sequence, since it might have changed (bug#29104).
+
+2017-11-19  Johan Bockgård  <address@hidden>
+
+       copyright.el: Avoid inadvertent point motion
+
+       * lisp/emacs-lisp/copyright.el (copyright-update-year): Enlarge the
+       scope of save-excursion. Reported in:
+       https://lists.gnu.org/archive/html/emacs-devel/2017-04/msg00271.html
+
+2017-11-19  Vibhav Pant  <address@hidden>
+
+       lisp/erc/erc-services.el: Fix arg eval order of inline functions.
+
+       * lisp/erc/erc-services.el (erc-nickserv-alist-sender,
+         erc-nickserv-alist-regexp, erc-nickserv-alist-nickserv,
+         erc-nickserv-alist-ident-keyword, erc-nickserv-alist-use-nick-p,
+         erc-nickserv-alist-ident-command,
+         erc-nickserv-alist-identified-regexp): Use `inline-letevals' to make
+         sure that `network' is evaluated first and independently of `entry'.
+
+2017-11-18  Eric Abrahamsen  <address@hidden>
+
+       Further fixes to writing of object names
+
+       Pursuant to 1ef6d2b0e6
+
+       * lisp/emacs-lisp/eieio.el (object-write): Only write the name in the
+         comment when the comment's also present. Newline should only be
+         printed if the name is.
+
+2017-11-18  Vibhav Pant  <address@hidden>
+
+       Reimplement inline functions in ERC with define-inline.
+
+       * lisp/erc/erc-backend.el: (erc-server-reconnect-p): Reimplement using
+         define-inline.
+
+       * lisp/erc/erc-dcc.el: (erc-dcc-unquote-filename, erc-dcc-get-parent):
+         Reimplement using define-inline.
+
+       * lisp/erc/erc-services.el: (erc-nickserv-alist-sender,
+         erc-nickserv-alist-regexp, erc-nickserv-alist-nickserv,
+         erc-nickserv-alist-ident-keyword, erc-nickserv-alist-use-nick-p,
+         erc-nickserv-alist-ident-command,
+         erc-nickserv-alist-identified-regexp): Reimplement using 
define-inline.
+
+       * lisp/erc/erc.el: (erc-get-channel-user, erc-get-server-user,
+         erc-add-server-user, erc-remove-server-user, erc-channel-user-owner-p,
+         erc-channel-user-admin-p, erc-channel-user-op-p,
+         erc-channel-user-halfop-p, erc-channel-user-voice-p, erc-log):
+         Reimplement using define-inline.
+
+2017-11-17  Phillip Lord  <address@hidden>
+
+       Rebrand Uninstaller
+
+       * admin/nt/dist-build/emacs.nsi: Add MUI_UNICON
+
+2017-11-17  Phillip Lord  <address@hidden>
+
+       Fix install location for windows installer
+
+2017-11-15  Phillip Lord  <address@hidden>
+
+       Rebrand Windows installer
+
+        * admin/nt/dist-build/emacs.nsi: Use two icons.
+        * 
etc/images/splash.bmp,etc/images/icons/hicolor/scalable/apps/emacs.ico:
+          New files.
+
+2017-11-14  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       796c7f7 (origin/emacs-26) ; Fix last fix of 'mouse-drag-and-drop-region'
+       40d41dd (emacs-26) Fix Bug#28139
+       a5ec644 Fix Bug#29291
+       8b900e5 Fix Bug#2928
+       ff7bd84 Make 'mouse-drag-and-drop-region' work with 'mouse-autoselect...
+       0491de8 * etc/PROBLEMS: Remove fixed xterm-mouse-mode problems
+       caa39f4 Fix cookie handling (bug#29282)
+       93304e3 Improve documentation of Edebug and macros
+
+2017-11-13  Eric Abrahamsen  <address@hidden>
+
+       Fix name of gnus-summary-sort-by-mark(s)
+
+       * lisp/gnus/gnus-sum.el (gnus-summary-sort-by-marks): Needs the
+         "s", according to docs and keymap both.
+
+2017-11-13  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       79108894db Port to IBM xlc 12.01
+       d14956099d Simplify by removing HAVE_STRUCT_ATTRIBUTE_ALIGNED
+       b1573a97e1 Use alignas to fix GCALIGN-related bugs
+       5d68dc9a2f Change vectorlike from struct to union
+       6aa0a26b46 Don't enable cursor-sensor-mode in mhtml-mode
+       2b8ef8dddf * lisp/files.el (abbreviate-file-name): Doc fix.  (Bug#29267)
+       fe85ce1e16 Unbreak interactive run of a flymake test (bug#29267)
+       48ad00390d Fix Bug#29225
+       42daf83f08 CC Mode: Fix defun-open being recognized as brace-list-ope...
+       7775c47298 Merge from Gnulib
+       e470d16448 Pacify GCC when configured --with-x-toolkit=no
+       49450d0951 * lisp/find-dired.el (find-grep-dired): Doc fix.  (Bug#29262)
+       e286b3381f Fix more flymake-diag-region eob corner cases and add test...
+
+       # Conflicts:
+       #       src/lisp.h
+
+2017-11-13  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/gnus-srvr.el: Avoid custom-set-variables
+
+       * lisp/gnus/gnus-srvr.el (gnus-server-toggle-cloud-method-server):
+       Prefer customize-set-variable.
+
+2017-11-11  Basil L. Contovounesios  <address@hidden>
+
+       Rename Man-build-section-alist (bug#28998)
+
+       The defsubst Man-build-section-alist builds and returns a list of
+       strings, so rename it to Man-build-section-list and make it a defun.
+
+       * lisp/man.el (Man-build-section-alist): Do it and reduce syntax.
+       (Man-goto-page):
+       * lisp/woman.el (woman-find-file): Use it.
+
+2017-11-10  Eric Abrahamsen  <address@hidden>
+
+       Provide more control over writing of objects in object-write
+
+       * lisp/emacs-lisp/eieio.el (eieio-print-indentation,
+         eieio-print-object-name): New variables controlling whether an
+         object name is printed for each object, and whether an object's
+         contents are indented or not. Object names are obsoleted; omitting
+         indentation reduces the size of persistence files.
+
+2017-11-08  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       9e59de9449 Use GCALIGNED properly for GCC
+       b9d7c90260 In f90.el, set fill-paragraph-function to a useful value
+
+       # Conflicts:
+       #       src/lisp.h
+
+2017-11-08  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       6c3031399b * admin/gitmerge.el (gitmerge-resolve-unmerged): Fix doc t...
+       98288ecaff Further workaround for faulty localtime() under macOS 10.6
+
+2017-11-08  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       255ba01148 Fix handling of nil PRED2 arg for completion-table-with-pr...
+       949b70a7d8 ; Minor comment copyedit in window.c
+       20f9bf30f0 Describe Lao rendering problem
+       3d61657694 Fix docstring of arabic-shaper-ZWNJ-handling
+       db949166ec Handle single-line comments correctly (Bug#26049)
+       795bb233a5 * test/lisp/net/tramp-tests.el (tramp-test16-file-expand-w...
+       ba00ea7d0d * etc/PROBLEMS: Add URL to relevant issues for xterm+evil bug
+       4a6015811e ; In text.texi fix typo spotted by Štěpán Němec
+       93cd8415b2 Document new treatment of 'comment-auto-fill-only-comments'
+       ca2d94ba61 Do not load Tramp unless `tramp-mode' is non-nil
+       709478eaa8 Prefer `customize-set-variable' in tramp.texi
+       5d36f2227f Fix last change in hscroll_window_tree
+       72d07d1950 Ediff: add some missing documentation
+       18af404ef3 Support python virtualenv on w32 (Bug#24464)
+       efd0371c23 Improve dired deletion error handling (Bug#28797)
+       5d744e032f Don't replace user input when completion prefix is empty (...
+       ec6cf35c5f ; Describe xt-mouse problems with Evil mode
+       c572e1f329 Return non-nil from gnutls-available-p under GnuTLS 2.x
+       a2cc6d74c5 Fix Flymake help-echo functions across windows (bug#29142)
+       58bb3462ee Add tests for Flymake backends for Ruby and Perl
+       58e742b21d Add a Flymake backend for Perl
+       9dee764165 Add a Flymake backend for Ruby
+       3ad712ebc9 Add a Flymake backend for Python (bug#28808)
+       8db2b3a79b Allow "%" in Tramp host names
+       8c50842790 ; Fix typo in test/file-organization.org
+       00fa4449cd ; Fix typo
+       918a2dda07 Use hybrid malloc for FreeBSD (Bug#28308)
+       725ab635d9 Add html-, mhtml- and python-mode support to semantic symref
+       369da28702 Improve documentation of 'window-scroll-functions'
+       93818eed8a Fix subtle problems in tabulated-list-mode with line numbers
+       1f1de8e872 Make gdb-non-stop-setting default to nil on MS-Windows
+       680e8e119b Fix gdb-mi prompt after "attach PID" command
+       ff33074546 Fix doc string of 'window-configuration-change-hook'
+       787b75ad71 Improve documentation of window hooks
+       d9be8704ae Fix hscroll suspension after cursor motion
+       6f43d29d29 ; * CONTRIBUTE, admin/make-tarball.txt: Doc tweaks re 'ema...
+       a0d30d6369 Introduce a function to CC Mode which displays the current...
+       383abc8898 ; Fix some comment typos
+       b02c2714c3 Fix typos in ediff-wind.el
+       4f38bdec74 Examine tex-chktex--process in the correct buffer
+       94b490529a * nt/INSTALL.W64: Update to current mingw64 install instru...
+       c25113d4ac Don't resignal errors in flymake-diag-region
+       e950f329c0 New xref-quit-and-goto-xref command bound to TAB (bug#28814)
+       5d34e1b288 Allow split-window-sensibly to split threshold in further ...
+       2a973edeac Honor window-switching intents in xref-find-definitions (b...
+       78e9065e9f * lisp/emacs-lisp/generator.el (iter-do): Add a debug decl...
+       caa63cc96c * lisp/progmodes/flymake.el (flymake-start): Fix dead buff...
+       9f4f130b79 Fix buffer name comparison in async shell-command
+
+       # Conflicts:
+       #       etc/NEWS
+       #       lisp/vc/ediff-wind.el
+
+2017-11-07  Stefan Monnier  <address@hidden>
+
+       * lisp/net/tramp-cmds.el, lisp/allout.el: Avoid custom-set-variables
+
+       * lisp/net/tramp-cmds.el (tramp-change-syntax):
+       * lisp/allout.el (allout-init): Avoid custom-set-variables.
+
+2017-11-07  John Mastro  <address@hidden>
+
+       Increase DUMPED_HEAP_SIZE in w32heap.c
+
+       * src/w32heap.c (DUMPED_HEAP_SIZE) [_WIN64 || WIDE_EMACS_INT]: Bump
+       up DUMPED_HEAP_SIZE to 22 MiB.  (Bug#29180)
+
+2017-11-07  Stefan Monnier  <address@hidden>
+
+       * lisp/minibuffer.el: Put completions-common-part on all common parts
+
+       (completion-pcm--pattern-point-idx): New function.
+       (completion-pcm--hilit-commonality): Use it.
+       Put completions-common-part on all the common parts.
+
+2017-11-07  Stefan Monnier  <address@hidden>
+
+       * lisp/filecache.el: Use lexical-binding.  Simplify.
+
+       Remove redundant :group args, use with-tmep-buffer and let
+       completion-all-completions do its work.
+
+       (file-cache-minibuffer-complete): Skip `completion-hilit-commonality`
+       since `completion-all-completions' already hilighted its output.
+       Call our setup function directly rather than via 
`completion-setup-hook`.
+       (file-cache-buffer): Remove variable.
+       (file-cache-buffer-default-regexp): Make it a defvar.
+       (file-cache--add-from-buffer): Rename from
+       file-cache-add-from-file-cache-buffer and use current-buffer and
+       match-string-no-properties.
+       (file-cache-add-directory-using-find)
+       (file-cache-add-directory-using-locate): Adjust accordingly and use
+       with-temp-buffer.
+
+2017-11-07  Chris Feng  <address@hidden>
+
+       Handle unread-command-events consistently (bug#23980)
+
+       * src/keyboard.c (read_char): Events put into `unread-command-events'
+       with the form (t . EVENT) should always have the t stripped when read
+       out.
+       * test/src/keyboard-tests.el: New tests for `unread-command-events'.
+
+2017-11-07  Sam Steingold  <address@hidden>
+
+       Mark flymake-diagnostic-functions as save to set locally to nil.
+
+       * lisp/progmodes/flymake.el (flymake-diagnostic-functions): Set
+       `safe-local-variable' property to `null'.
+       Now one can disable flymake-mode locally in a file by setting
+       `flymake-diagnostic-functions' to nil, see `(Emacs)File Variables'.
+
+2017-11-06  Juri Linkov  <address@hidden>
+
+       Override possible change of next-error-last-buffer in 
next-error-function
+
+       * lisp/simple.el (next-error, next-error-internal):
+       Setq next-error-last-buffer after next-error-function call.
+       (Bug#28864)
+
+2017-11-05  Phillip Lord  <address@hidden>
+
+       Add support for Windows installer build
+
+       * etc/images/slash.bmp:
+       * admin/nt/dist-build/emacs.nsi: New files
+       * admin/nt/dist-build/build-zips.sh: Support building installer
+
+2017-11-04  Andreas Politz  <address@hidden>
+
+       Make filecache use extended completion
+
+       * lisp/filecache.el (file-cache-minibuffer-complete): Use
+       completion-try-completion and completion-all-completions.
+
+       * etc/NEWS: Add news entry.
+
+2017-11-04  Eli Zaretskii  <address@hidden>
+
+       Allow 'make-string' callers force creation of multibyte strings
+
+       * src/alloc.c (Fmake_string): Accept additional argument
+       MULTIBYTE, and produce a multibyte string if it is non-nil.
+       (make_event_array):
+       * src/lread.c (read0):
+       * src/editfns.c (Ftranslate_region_internal):
+       * src/coding.c (Fdefine_coding_system_internal):
+       * src/cmds.c (internal_self_insert):
+       * src/xdisp.c (build_desired_tool_bar_string)
+       (store_mode_line_string): All C callers changed.
+
+       * doc/lispref/strings.texi (Creating Strings): Document the new
+       optional argument.
+
+       * etc/NEWS: Mention the new optional argument.
+
+       * lisp/ruler-mode.el (ruler-mode-ruler): Call make-string with the
+       3rd argument non-nil.
+
+2017-11-04  Łukasz Jędrzejewski  <address@hidden>  (tiny change)
+
+       Extract user from host when searching for entries in auth-source-pass
+
+       * lisp/auth-source-pass.el (auth-source-pass--user): New function.
+       (auth-source-pass--find-match): Use it.  When the user is not
+       explicitly specified and no entry is found, extract the user from
+       the host and then search again.  (Bug#29045)
+       * test/lisp/auth-source-pass-tests.el
+       (auth-source-pass-find-match-matching-extracting-user-from-host):
+       Add a new test case.
+
+2017-11-03  Sam Steingold  <address@hidden>
+
+       Finish the Bug#11728 work: hg & git
+
+       * lisp/vc/vc-git.el (vc-git--pushpull): Make `extra-args' a list.
+       Do not set `compilation-error-regexp-alist', this is done in
+       `vc-compilation-mode'.
+       (vc-git-error-regexp-alist): Tweak the regexp.
+       * lisp/vc/vc-hg.el (vc-hg-error-regexp-alist): Make non-trivial.
+       (vc-hg--pushpull): Accept `post-processing' argument.
+       Call them after the `command'.
+       (vc-hg-pull): Pass the `post-processing' commands that show which
+       are to be modified by the `update', and then run `update'.
+
+2017-11-03  Sam Steingold  <address@hidden>
+
+       Add colors to faces that lack them.
+
+       (gnus-group-news-X-empty): Add colors for X=3,4,5.
+
+2017-11-03  Robert Pluim  <address@hidden>
+
+       New function 'libxml-available-p'
+
+       * src/emacs.c (main): Call syms_of_xml unconditionally.
+       * src/lisp.h: Provide syms_of_xml prototype even when
+       HAVE_LIBXML2 is not defined.
+       * src/xml.c (Flibxml_available_p): New function, cloned from
+       Fgnutls_available_p.
+       (syms_of_xml): Provide Slibxml_available_p.
+
+       * doc/lispref/text.texi (Parsing HTML/XML): Document libxml-available-p.
+       (GnuTLS Cryptography, Format of GnuTLS Cryptography Inputs)
+       (Document Object Model): Fix indentation of the first paragraph.
+
+       * etc/NEWS (libxml-available-p): Mention libxml-available-p.
+
+2017-11-03  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       c911b27 Change GCALIGNMENT back to an integer literal
+
+2017-11-02  Paul Eggert  <address@hidden>
+
+       Simplify by assuming !_MSC_VER.
+
+       Emacs has not been portable to MSVC for some time (Bug#29040#57).
+       * admin/CPP-DEFINES (_MSC_VER): Remove.
+       * src/lisp.h (ENUM_BF, DEFUN):
+       * src/regex.c (re_char):
+       Simplify by assuming _MSC_VER is not defined.
+       * src/regex.c (const_re_char): Remove.
+       All uses replaced by re_char.
+
+2017-11-02  Paul Eggert  <address@hidden>
+
+       * etc/NEWS.26: Copy from emacs-26/etc/NEWS.
+
+2017-11-02  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       a87ce5c4b4 * src/lisp.h (GCALIGNED): Clarify comment (Bug#29040).
+       8a31e9993f ; etc/NEWS: Add cpp-message-min-time-interval.  (Bug#28961)
+       ac0bb9a192 Improve the doc of eshell-cmpl-* custom variables (Bug#25069)
+       36400c7dc9 Fix mouse-scrollbar offset on GNUstep and old macOS (bug#2...
+       04bc1410c2 Merge from Gnulib
+       6b08ad5263 Fix alignment portability problems
+       a9f8706fa8 Fix completion of colon after CSS property (Bug#29056)
+       9031dec527 ; * src/alloc.c (sweep_symbols): Fix last change.
+       fdd3dcfa4e * src/alloc.c (sweep_symbols): Tweak last change
+       27964af438 In frame parameters documentation mention desktop saving/r...
+       1bd4e7c243 ; Fix typo in ChangeLog.3
+       4182a60d31 Don't have frameset save the 'client' parameter (Bug#29067)
+       9d31a97092 ; Spelling fixes
+       460a25f212 Handle generic variables in cl-defgeneric Edebug spec
+       dc0a25c2f9 Give a more sensible message if file-attributes fails (Bug...
+       8453423c7c Avoid wrong value from file-attributes on Linux kernel bef...
+       70621e2571 Fix customization of debugger-print-function (Bug#29077)
+
+       # Conflicts:
+       #       etc/NEWS
+
+2017-11-02  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       460fe4a1bc ; Doc fixes
+       41adf3281e Avoid duplicate calls to xfree for the same pointer
+       3e7ebbe1bd Don't clobber docstrings of explicitly-defined mode hook v...
+       9c8fe0248b Avoid fullscreen ediff control frames by default (Bug#29026)
+       7d32176acc Fix the bug#24034 change (revno 9eb028f) causing infloop (...
+       ee493663ba Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/e...
+       ca5eb0d0b7 Fix a typo in the ELisp manual
+       d10c9479ca Fix doc and doc-strings for minibuffer window related func...
+       18331d00da Fix "Args out of range" error in c-determine-limit.  Fixes...
+       edde35e6f8 * lisp/progmodes/perl-mode.el: Fix electric indentation wi...
+       056587c45f Extend mhtml submode region when in comment
+       4c4ad80848 Fix mthml submode lighting at end of buffer
+       557e252aa2 Remember more variables in mhtml-mode
+       336cd0a11a ; * lisp/select.el (select-enable-primary): Add missing pe...
+       134099bc90 ; * etc/NEWS (EUDC): Mark as not requiring documentation.
+       1a340274bf * etc/NEWS (EUDC): Deprecate BBDB 2.x backward compatibility.
+       4189d0ef7b Fix minibuffer window related docs and strings (Bug#28978)
+       2ebdde6e9c Add ChkTeX flymake backend for latex-mode
+       5b59841791 Fix doc typos
+       82a16c547b Fix some duplicate word typos
+       266888b1d7 * doc/lispref/commands.texi (Adjusting Point): Fix wording...
+       00c3c6d88d Avoid segfaults in 64-bit Windows builds
+       a8e6741066 Fix conversion of pixel coordinates to buffer position
+       d43b486f6c Fix doc strings in desktop.el
+       9102fb603e Add Index to ERT manual
+       68182a4710 Make manuals and NEWS consistent
+       451823b0e5 Don't allow (minibuffer-window-active-p nil) to return t
+       cc8f72ca22 Clarify obsolescence message for 'whitespace-tab'
+       50f711e7fa Fix some duplicate words typos
+       8bd9524a7c * lisp/button.el (button-activate): Fix doc typo.
+       0b0d91e60a * lisp/calendar/todo-mode.el (todo-toggle-mark-item): Fix ...
+       e6b4e5ffdf Fix some doc typos
+       e8636ac8cc Fix startup display on Cygwin
+       3926c5ad83 * src/fileio.c (Fset_default_file_modes): Fix typo in doc ...
+       9715317dfd * lisp/dired.el (dired-find-alternate-file): Doc fix.  (Bu...
+       9e442a001a Improve documentation of how faces are applied to display ...
+       1bda71ec3b Improve pixel-scroll-mode
+       196106d37d Support Certification Authority Authorization in dns-mode.el
+       ec08d70b4f Improve documentation of set-default-file-modes
+
+       # Conflicts:
+       #       etc/NEWS
+
+2017-11-02  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       7f089aa5f6 Require seq in rmc.el
+       53aaad1dfc Make an example code introduced in the Gnus info work (bug...
+       7b29db222f Enable gnus-read-ephemeral-* to run multiple times (bug#29...
+       015f0bb2d8 Port thread.c to OpenBSD ARM
+       ad68bbd0da Fix another "wrong side of point" error in CC Mode.
+       646e56e150 Fix Bug#28959
+       685fd77959 Fix duplicate .o file on QNX
+       e562356c3f Fix two js indentation problems
+       b8cf159bbc Update documentation for windows build
+       46540a1c7a Fix a "wrong side of point" error in CC Mode.  Fixes bug #...
+       57ca409111 Fix autoload of flymake from elisp-mode during bootstrap (...
+       aee0bc8775 Fix non-native fullscreen on NS (bug#28872)
+       d6c1a9cb8a ; Fix author email address in test/lisp/url/url-tramp-test...
+       761c630766 Fix Bug#28982
+       628b653209 Fix windows build errors
+       e8a06a5f9a Fix compile warning for non-w32 builds
+       0c536a20fb Display commit in package description, if available (Bug#2...
+       1d83257a1d Port to QNX
+       19667f44ef * configure.ac: Tweak libcurses diagnostic.
+       3fc05cfaec Scripts to automate windows binary distribution
+       928a106939 Fix Edebug specs for map-let and with-maps-do
+       46f2ee0d4c * test/lisp/net/tramp-tests.el (tramp-test41-delay-load): ...
+       b51009d7f0 * admin/authors.el (authors-canonical-author-name): Ignore...
+       a015db90e3 * test/lisp/progmodes/sql-tests.el (sql-tests-postgres-lis...
+       529a9c09d3 Further work on Bug#28889
+       c6deabaf4d Improve Tramp backward compatibility
+       8093e82e42 Improve backward compatibility of tramp-tests.el
+       46cdc01daa Fix some ‘window-normalize-’ prefixed functions (Bug#28947)
+       6360611457 Port to OpenIndiana
+       a012ec766c Don't fill keywords after Emacs Lisp docstring
+       b7c4aa951c Refactor c-forward-token-2 with new function c-forward-ove...
+       3aee7be62e Avoid unnecessary rounding errors in timestamps
+       2bfa42855b Fix xdg timestamp error on 32-bit Emacs
+       237e96bc52 Test that advice doesn't trigger bytecomp warnings (Bug#28...
+       d719ea6ad5 Another fix for unsafe directory error message (Bug#865)
+       b060e091c3 Handle https url for debbugs mbox (Bug#28831)
+       9e4265ef91 Ignore string properties when saving eshell history (Bug#2...
+       0f286ca85a Fix Bug#28889
+
+2017-11-02  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/gnus.el: Use lexical-binding and cl-lib
+
+       Remove unneeded use of `eval-when' for gnus-splash hack.
+       (gnus-find-subscribed-addresses): Don't use `add-to-list' with local 
var.
+       (gnus-info-buffer): Declare var.
+       (gnus-interactive): Remove unused arg `params'.
+       (gnus-symbolic-argument): Remove unused arg `arg`.
+       (gnus-sloppily-equal-method-parameters): Use \' to match end of string.
+       (gnus-short-group-name): Remove unused var `name'.
+
+2017-11-02  Sam Steingold  <address@hidden>
+
+       make all related faces inherit from each other
+
+       * lisp/gnus/gnus.el (gnus-group-A-B): Inherit from 
`gnus-group-A-B-empty',
+       where "A" is "mail" and "news" and "B" is "1".."6" and "low".
+       (gnus-summary-high-A, gnus-summary-low-A): Inherit from
+       `gnus-summary-normal-A', where "A" is "ticked", "ancient",
+       "undownloaded", "unread", "read".
+
+2017-11-01  Sam Steingold  <address@hidden>
+
+       Fix Bug#11728: show files updated by git
+
+       * lisp/vc/vc-git.el (vc-git--pushpull): Accept extra-args and set
+       `compilation-error-regexp-alist' to `vc-git-error-regexp-alist'.
+       (vc-git-pull): Pass "--stat" as `extra-args' to `vc-git--pushpull'.
+       (vc-git-push): Pass "" as `extra-args' to `vc-git--pushpull'.
+
+2017-11-01  Michael Heerdegen  <address@hidden>
+
+       * lisp/emacs-lisp/thunk.el: Assert lexical-binding
+
+       This fixes Bug#28990.  Also add a note to the file header that
+       creating thunks requires lexical-binding.
+       (thunk-delay): `cl-assert' lexical-binding.
+
+2017-11-01  Sam Steingold  <address@hidden>
+
+       User can specify files never subject to flymake.
+
+       * lisp/progmodes/flymake-proc.el 
(flymake-proc-ignored-file-name-regexps):
+       Add user customization option.
+       (flymake-proc--get-file-name-mode-and-masks): Check it before
+       `flymake-proc-allowed-file-name-masks'.
+
+2017-10-31  Sam Steingold  <address@hidden>
+
+       The user can now specify the time stamp format.
+
+       * lisp/textmodes/remember.el (remember-time-format): New user variable.
+       (remember-append-to-file): Pass it to `format-time-string' instead of
+       calling `current-time-string'.
+
+2017-10-31  Sam Steingold  <address@hidden>
+
+       Highlight CL `with-' (context) and `do-' (iteration)
+
+       * lisp/emacs-lisp/lisp-mode.el (lisp-cl-font-lock-keywords-2):
+       Highlight the Common Lisp conventional names as described in
+       http://www.cliki.net/Naming+conventions.
+       (lisp-el-font-lock-keywords-2): Remove the already commented out
+       code for `do-' and `with-' because Emacs Lisp does not have a similar
+       convention.
+
+2017-10-31  Sam Steingold  <address@hidden>
+
+       Highlight uninterned symbols.
+
+       * lisp/emacs-lisp/lisp-mode.el (lisp-cl-font-lock-keywords-2):
+       Highlight uninterned symbols, often used as string designators to
+       avoid namespace pollution (https://stackoverflow.com/a/46981940/850781).
+
+2017-10-30  Stefan Monnier  <address@hidden>
+
+       * lisp/progmodes/ebnf2ps.el: Use lexical-binding; fix warnings
+
+       (ebnf-eps-executing): Declare var.
+       (ebnf-eps-string): Clarify regexp; don't use string-as-unibyte since 
we're
+       manipulating chars rather than bytes.
+       (ebnf-tree): Move declaration before first use.
+       (ebnf-generate-eps, ebnf-generate): Don't use dyn-var as argument.
+       (ebnf-generate-eps): Use cl-letf and unwind-protect.
+       (ebnf-eps-production-list): Get a ref rather than a symbol.
+       (ebnf-generate-eps): Adjust call accordingly.
+
+2017-10-30  Stefan Monnier  <address@hidden>
+
+       * lisp/net/newst-backend.el: Use lexical scoping and fix warnings
+
+       (newsticker-stop, newsticker-get-all-news)
+       (newsticker--decode-rfc822-date, newsticker--lists-intersect-p)
+       (newsticker--update-process-ids, newsticker--cache-read)
+       (newsticker-opml-export, newsticker--run-auto-mark-filter)
+       (newsticker--do-run-auto-mark-filter): Use dolist.
+       (newsticker--insert-bytes): New function, to avoid string-to-multibyte.
+       (newsticker--get-news-by-funcall, newsticker--get-news-by-url-callback)
+       (newsticker--image-download-by-url-callback): Use it.
+       (newsticker--parse-rss-0.91, newsticker--parse-rss-0.92):
+       Remove unused var `pub-date`.
+       (newsticker--parse-generic-feed): Remove unused var `old-item`.
+       (newsticker--parse-generic-items): Use dolist and let rather than mapc
+       and setq.
+       (newsticker--image-download-by-url-callback): Simplify boolean 
expression.
+
+2017-10-30  viniciusjl  <address@hidden>
+
+       Remove last entry.
+
+2017-10-29  viniciusjl  <address@hidden>
+
+       Email replacement.
+
+2017-10-28  Paul Pogonyshev  <address@hidden>
+
+       Add 'ert-quiet' variable
+
+       * lisp/emacs-lisp/ert.el (ert-quiet): New variable.
+       (ert-run-tests-batch): When 'ert-quiet' is non-nil, don't
+       print non-important information.  (Bug#29025)
+
+       * doc/misc/ert.texi (Running Tests in Batch Mode): Document it.
+
+       * etc/NEWS: Mention the new variable.
+
+2017-10-27  Ulf Jasper  <address@hidden>
+
+       Fix documentation of `newsticker-new-item-functions' (bug#29023).
+
+       * lisp/net/newst-backend.el (newsticker-new-item-functions),
+       (newsticker-new-item-functions-sample),
+       (newsticker-download-enclosures): Fix docstring, rename
+       variable feed to feedname (bug#29023).
+
+       * doc/misc/newsticker.texi (Automatic Processing)
+       (Automatic Processing): Fix documentation of
+       `newsticker-new-item-functions' (bug#29023).
+
+2017-10-26  Stefan Monnier  <address@hidden>
+
+       * lisp/vc/ediff-wind.el: Don't pop spurious frame in corner case
+
+       (ediff-setup-windows-multiframe-compare): Clarify control-flow.
+       Postpone the initial call to ediff-skip-unsuitable-frames until we're
+       sure it's needed to avoid creating a spurious new frame.
+       (ediff-setup-windows, ediff-setup-windows-plain)
+       (ediff-setup-windows-plain-merge, ediff-setup-control-frame)
+       (ediff-setup-windows-plain-compare, ediff-setup-windows-multiframe)
+       (ediff-setup-windows-multiframe-merge): Use with-current-buffer.
+
+2017-10-26  Lars Ingebrigtsen  <address@hidden>
+
+       Fix up svg text encoding
+
+       * lisp/svg.el (svg--encode-text): The SVG driver doesn't like
+       it if we use &apos; for apostrophe, so use our own encoding
+       function instead of relying on the xml one.
+
+2017-10-26  Anders Lindgren  <address@hidden>
+
+       New package, `faceup'
+
+       `faceup' is a framework for regression testing of font-lock
+       keywords in ert.  It is based on a human-readable markup
+       language.  (Bug#16063 and bug#28311).
+
+       * lisp/emacs-lisp/faceup.el:
+       * test/lisp/emacs-lisp/faceup-tests/faceup-test-basics.el:
+       * test/lisp/emacs-lisp/faceup-tests/faceup-test-files.el:
+       * test/lisp/emacs-lisp/faceup-resources/faceup-test-mode.el:
+       * 
test/lisp/emacs-lisp/faceup-resources/faceup-test-this-file-directory.el:
+       * test/lisp/emacs-lisp/faceup-resources/files/test1.txt:
+       * test/lisp/emacs-lisp/faceup-resources/files/test1.txt.faceup:
+       New files.
+
+2017-10-25  Stefan Monnier  <address@hidden>
+
+       Fix misleading error during autoload (bug#28994)
+
+       * src/eval.c (Fautoload_do_load): Don't silence `load` errors when
+       autoloading a macro.  If silencing load errors, also silence the
+       subsequent check.
+
+2017-10-25  Stefan Monnier  <address@hidden>
+
+       * lisp/play/gamegrid.el: Use lexical-binding to silence warnings
+
+       (gamegrid-init-buffer): Silence another warning.
+
+2017-10-24  Gemini Lasswell  <address@hidden>
+
+       Make Snake, Tetris and Pong adjust to display DPI
+
+       Replace gamegrid's constant 16x16 glyph with a generated one based
+       on display dimensions (bug#24658).
+       * lisp/play/gamegrid.el (gamegrid-glyph-height-mm): New variable.
+       (gamegrid-glyph-height): Deleted.
+       (gamegrid-xpm, gamegrid-xbm): Constants replaced with functions.
+       (gamegrid-colorize-glyph): Use new functions instead of constants.
+       (gamegrid-calculate-glyph-size, gamegrid-insert-xbm-bits): New
+       functions.
+
+2017-10-23  Glenn Morris  <address@hidden>
+
+       * configure.ac (AC_INIT): Use https for package url.
+
+       * lisp/format.el (format-alist): Use internal rot13.
+
+2017-10-22  Eric Abrahamsen  <address@hidden>
+
+       Fix to 2fddfb7ce7
+
+       * lisp/emacs-lisp/eieio-base.el 
(eieio-persistent-convert-list-to-object):
+         Fix bogus paren wrapping.
+
+2017-10-22  Gemini Lasswell  <address@hidden>
+
+       Change Edebug's behavior-changing hooks to variables
+
+       * lisp/emacs-lisp/edebug.el (edebug-after-instrumentation-functions)
+       (edebug-new-definition-functions): Deleted.
+       (edebug-after-instrumentation-function)
+       (edebug-new-definition-function): New variables.
+       (edebug-behavior-alist): Update docstring.
+       (edebug-read-and-maybe-wrap-form1, edebug-make-form-wrapper): Use new
+       variables.
+
+       * lisp/emacs-lisp/testcover.el (testcover-start)
+       (testcover-this-defun): Use `edebug-after-instrumentation-function' and
+       `edebug-new-definition-function'.
+       (testcover-after-instrumentation): Return passed form.
+       (testcover-init-definition): Use argument instead of `edebug-def-name'.
+
+       * doc/lispref/edebug.texi (Edebug Options): Replace descriptions of
+       `edebug-after-instrumentation-functions' and 
`edebug-new-definition-functions'
+       with `edebug-after-instrumentation-function' and
+       `edebug-new-definition-function'.
+
+2017-10-22  Masatake YAMATO  <address@hidden>
+
+       Put cpp config file to ~/.emacs.d/cpp.el if possible (Bug#28685)
+
+       If `cpp-config-file` starts with '.', remove the '.'
+       when putting the file to ~/.emacs.d.
+       Suggested by Noam Postavsky <address@hidden>
+
+       * lisp/progmodes/cpp.el (cpp-locate-user-emacs-file): New
+       function wrapping `locate-user-emacs-file`.
+       (cpp-edit-load, cpp-edit-save): Use it.
+
+2017-10-22  Masatake YAMATO  <address@hidden>
+
+       Fix reading and writing cpp-config-file under home directory (Bug#28685)
+
+       * lisp/progmodes/cpp.el (cpp-edit-load): Load ~/.cpp.el when
+       it is readable.
+       (cpp-edit-save): Write to ~/.cpp.el when it is wriable.
+
+2017-10-22  Eric Abrahamsen  <address@hidden>
+
+       Handle object string name in eieio-persistent-convert-list-object
+
+       * lisp/emacs-lisp/eieio-base.el 
(eieio-persistent-convert-list-to-object):
+         Starting to phase out the printing of object names in
+         `object-write', handle either case.
+
+2017-10-21  Glenn Morris  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       888e51f220 (origin/emacs-26) Update describe-function for recent Fdoc...
+       75bb482763 Make flymake's mouse-wheel interaction portable (Bug#28732)
+       035d7ac7e4 Prevent eldoc from changing the mode line
+       c9d71b31bf Fix doc strings in simple.el
+       0d8e4f45d6 Avoid creating inconsistent buffer states in term-char-mode
+       79d57f4b7a New input method 'usbek-cyrillic'
+       4587d8e0ef Document 'minibuffer-with-setup-hook'
+
+       # Conflicts:
+       #       etc/NEWS
+
+2017-10-20  Paul Eggert  <address@hidden>
+
+       * etc/NEWS.26: Sync from emacs-26 etc/NEWS.
+
+2017-10-20  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       868eb74f91 Simplify make-progress-reporter vs float-time
+       83db9a1bba Fix two more minor Gnus typos
+       e655946ce0 Fix two minor Gnus typos
+       6a00914d6d Tweak Fdocumentation's error for an undefined function
+       7c63655e39 Tweak format of list of old files in NEWS header
+
+       # Conflicts:
+       #       etc/NEWS
+
+2017-10-20  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       11bd8aa24b Fix flymake's loading of subr-x
+       b500e06f4d Fix Bug#28896
+       d815de017b Skip a Flymake test for old gcc versions
+       fd3d8610b2 Make :align-to account for display-line-numbers
+       831eafc8ae Augment Flymake API for third-party extensions
+       ddd547fada Improve treatment of Fortran's "class default"
+       234b1e3864 Flymake backends must check proc obsoleteness in source bu...
+       3ea6a4d4ba Skip an rsync test in tramp-tests.el
+       25f83fa7c5 ; Indentation fixes
+       4d578d432d On Windows default a frame's border width to zero (Bug#28873)
+       6f1dea5c74 Spelling fixes
+       b8433b0954 Use pop-to-buffer-same-window instead of switch-to-buffer
+       2f7163fb72 Fix the MSDOS build.
+       2551d28fe8 Fix line number display after 'widen'
+       dc8812829b Remove resizable attribute on macOS undecorated frames (bu...
+       b970a4a52a Fix handling of `border-width' in `frameset--restore-frame...
+       445e92658f Mention how to send CC to > 1 address in a bug report
+       8ca6fa585a Improve format-time-string doc
+       2e1b3522b8 Improve documentation of 'line-number-display-width'
+       5b6e59cfdb Implement vc-default-dir-extra-headers for vc-rcs
+       22adeca42a In NEWS give advice on use of `switch-to-buffer' (Bug#28645)
+       2c3e6f1ddc Dont update primary selection with winner-undo
+       b38724ab67 Work around ImageMagick bug 825
+       20cc68e871 Document rectangle-preview option more (Bug#27974)
+       a0b7b301dd Do not reject https://gnu.org in commit messages
+       fb4200a875 Fix Edebug spec for cl-defun (bug#24255)
+       db68cefe72 Fix errors in kmacro.el post-command-hook
+       c63b344c3d Fix range-error in image-dired.el
+       081d2187c4 Fix 'line-number-display-width' in hscrolled windows
+       16e85456e7 Fix error in tramp-smb-handle-insert-directory
+       613db8d35c Don't reject PBM header whitespace unnecessarily
+       3205b12a78 Fix regression in display of PPM images
+       1ca9ae7069 Require subr-x when compiling nnimap.el
+       de60992053 Fix ert-test finding by symbol (Bug#28849)
+       51615a8082 Don't remember old debugger window (Bug#17882)
+       5980de3727 Disable python native completion on w32 (Bug#28580)
+       616b4c5956 Let select-frame-by-name choose any frame when called from...
+       8eb3c01dbd * lisp/dired-aux.el (dired-create-directory): Doc fix.
+       325dfdae13 Avoid compilation warnings in optimized builds
+       f79382819c ; * src/composite.c (Fclear_composition_cache): Fix last c...
+       f95cd5cd70 Improve customization of arabic-shaper-ZWNJ-handling.
+       a7f154688d Improve customization type of 'mouse-drag-and-drop-region'
+       864734d112 ; Prefer https: to http: in GNU URLs
+       3c78960a47 Encourage https: in commit messages
+       def9715282 ; Cleanup of etc/NEWS
+       4e59ecc646 Fix wording in Elisp manual's child frames section (Bug#28...
+       eda9f5018c Another fix for C mode fontification of w32 source files
+       05aadd8990 Fix fontification of ALIGN_STACK functions
+       aa0c38f358 Make sure thread stack is properly aligned on MS-Windows
+       d7038020aa Do not under-align pseudovectors
+       ff33053012 Fix indentation bug in multi-line CSS selectors
+       8968be822e ; * etc/NEWS: Grammar and spelling fixes
+       716b84034d gnutls_mac_get_nonce_size has been added in gnutls 3.3
+       55e313f7be ; * CONTRIBUTE: More suggestions for using US English.
+       622c675648 * CONTRIBUTE: Suggest American English.
+
+       # Conflicts:
+       #       etc/NEWS
+       #       msdos/sed2v2.inp
+
+2017-10-20  Tino Calancha  <address@hidden>
+
+       Allow to copy/rename file into a non-existent dir
+
+       * lisp/dired-aux.el (dired-create-destination-dirs): New option.
+       (dired-maybe-create-dirs): New defun.
+       (dired-copy-file-recursive, dired-rename-file): Use it (Bug#28834).
+       * test/lisp/dired-aux-tests.el (dired-test-bug28834): Add test.
+       * doc/emacs/dired.texi (Operating on Files): Update manual.
+       * etc/NEWS (Changes in Specialized Modes and Packages in Emacs 27.1)
+       Announce this change.
+
+2017-10-20  Paul Eggert  <address@hidden>
+
+       Prefer nil to (current-time) when either works
+
+       * doc/misc/gnus.texi (Category Syntax):
+       * lisp/allout-widgets.el (allout-widgets-post-command-business):
+       * lisp/cedet/ede/detect.el (ede-detect-qtest):
+       * lisp/cedet/pulse.el (pulse-momentary-highlight-overlay)
+       (pulse-tick):
+       * lisp/cedet/semantic.el (bovinate):
+       * lisp/cedet/semantic/analyze.el:
+       (semantic-analyze-current-symbol-default, semantic-adebug-analyze):
+       * lisp/cedet/semantic/analyze/refs.el (semantic-analyze-current-tag):
+       * lisp/cedet/semantic/lex.el (semantic-lex-test):
+       * lisp/cedet/semantic/symref/filter.el:
+       (semantic-symref-test-count-hits-in-tag):
+       * lisp/cedet/srecode/dictionary.el (srecode-adebug-dictionary):
+       * lisp/cedet/srecode/map.el (srecode-adebug-maps):
+       * lisp/desktop.el (desktop-create-buffer):
+       * lisp/emacs-lisp/benchmark.el (benchmark-elapse):
+       * lisp/emacs-lisp/elp.el (elp--make-wrapper):
+       * lisp/epa.el (epa--show-key):
+       * lisp/erc/erc.el (erc-lurker-cleanup, erc-lurker-p):
+       * lisp/gnus/gnus-agent.el (gnus-agent-fetch-articles)
+       (gnus-agent-expire-group-1, gnus-agent-store-article):
+       * lisp/gnus/gnus-art.el (article-lapsed-string):
+       * lisp/gnus/gnus-cloud.el (gnus-cloud-update-newsrc-data)
+       (gnus-cloud-collect-full-newsrc):
+       * lisp/gnus/gnus-group.el (gnus-group-timestamp-delta):
+       * lisp/gnus/gnus-html.el (gnus-html-cache-expired):
+       * lisp/gnus/gnus-score.el (gnus-score-load-file)
+       (gnus-decay-scores):
+       * lisp/gnus/nndiary.el (nndiary-expired-article-p):
+       * lisp/gnus/nnmail.el (nnmail-expired-article-p):
+       * lisp/gnus/nnmaildir.el (nnmaildir--scan):
+       * lisp/gnus/score-mode.el (gnus-score-edit-insert-date):
+       * lisp/image/gravatar.el (gravatar-cache-expired):
+       * lisp/net/newst-backend.el (newsticker--image-get)
+       (newsticker--cache-mark-expired):
+       * lisp/nxml/rng-maint.el (rng-time-function):
+       * lisp/org/org-agenda.el (org-agenda-to-appt):
+       * lisp/org/org-clock.el (org-clock-resolve-clock)
+       (org-clock-resolve, org-resolve-clocks-if-idle):
+       * lisp/org/org-colview.el (org-columns-edit-value, org-columns)
+       (org-columns-compute-all, org-agenda-columns):
+       * lisp/org/org-element.el (org-element--cache-interrupt-p)
+       (org-element--cache-sync):
+       * lisp/org/org-habit.el (org-habit-get-faces)
+       (org-habit-insert-consistency-graphs):
+       * lisp/org/org-indent.el (org-indent-add-properties):
+       * lisp/org/org-timer.el (org-timer-start)
+       (org-timer-pause-or-continue, org-timer-seconds)
+       (org-timer-show-remaining-time, org-timer-set-timer):
+       * lisp/org/org.el (org-babel-load-file, org-current-time)
+       (org-today, org-auto-repeat-maybe, org-read-date-analyze)
+       (org-small-year-to-year, org-goto-calendar):
+       * lisp/org/ox.el (org-export-insert-default-template):
+       * lisp/time.el (emacs-uptime):
+       * lisp/type-break.el (type-break-mode, type-break)
+       (type-break-time-warning-schedule, type-break-check):
+       * lisp/url/url-cache.el (url-cache-expired):
+       * lisp/url/url.el (url-retrieve-synchronously):
+       * test/lisp/char-fold-tests.el (char-fold--speed-test):
+       * test/manual/cedet/semantic-ia-utest.el:
+       (semantic-symref-test-count-hits-in-tag):
+       * test/manual/cedet/semantic-tests.el (semantic-idle-pnf-test)
+       (semantic-lex-test-full-depth):
+       Use nil instead of (current-time) where either will do, as nil is
+       a bit more efficient and should have less timing error.
+
+2017-10-20  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/debug.el: Use cl-print more systematically
+
+       (debugger-return-value, debugger-eval-expression, 
debugger--insert-locals):
+       Use debugger--print.
+
+2017-10-20  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/eieio.el (eieio-object-name-string): De-obsolete
+
+       This is apparently the advertised method to use for `eieio-named' 
objects.
+       Also use sxhash-eq to get a more precise default "object name".
+       (eieio-object-set-name-string): Clarify obsolescence message.
+
+       * lisp/emacs-lisp/eieio-base.el (eieio-object-name-string): Delegate to
+       the default method when applicable.
+
+2017-10-20  Stefan Monnier  <address@hidden>
+
+       * lisp/help-fns.el (describe-function-1): Fix 
help-fns-test-dangling-alias.
+
+2017-10-20  Wilfred Hughes  <address@hidden>
+
+       css-mode: Don't confuse variable names with class names
+
+       This fixes highlighting for class names that contain --, for example:
+
+       .foo--bar {
+           display: none;
+       }
+
+       * lisp/textmodes/css-mode.el (css--font-lock-keywords): Make regular
+         expression stricter.
+
+2017-10-20  Tino Calancha  <address@hidden>
+
+       ibuffer: new filter to list buffers running a process
+
+       * lisp/ibuf-ext.el (ibuffer-filter-by-process): Add new filter 
(Bug#28825).
+       * lisp/ibuffer.el (ibuffer-mode-map): Bound it to '/E'.
+
+2017-10-20  Tino Calancha  <address@hidden>
+
+       Make ibuffer filters idempotent
+
+       * lisp/ibuf-ext.el (ibuffer-push-filter): Check if the
+       filter is already in effect (Bug#28826).
+       * lisp/ibuf-macs.el (define-ibuffer-filter):
+       Report to user if the filter was already enabled.
+
+2017-10-18  Lars Ingebrigtsen  <address@hidden>
+
+       * lisp/svg.el (svg--encode-text): Fix off-by-one error in previous 
patch.
+
+2017-10-18  Lars Ingebrigtsen  <address@hidden>
+
+       (svg--encode-text): Make strings even more valid
+
+       * lisp/svg.el (svg--encode-text): Quote &<>, too.
+
+2017-10-18  Lars Ingebrigtsen  <address@hidden>
+
+       Encode non-ASCII SVG texts
+
+       * lisp/svg.el (svg--encode-text): Encode non-ASCII texts.
+
+2017-10-16  Eric Abrahamsen  <address@hidden>
+
+       Documentation and error-message edits re gnus-server-alist
+
+       * lisp/gnus/gnus.el (gnus-server-alist): Expand docstring.
+       * lisp/gnus/gnus-srvr.el (gnus-server-kill-server,
+         gnus-server-edit-server): Return error messages that tell the user
+         what the actual problem is.
+       * doc/misc/gnus.texi (Server Commands): Note that not all servers are
+         editable via the server buffer.
+
+2017-10-13  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/debug.el: Don't bail on errors inside cl-print
+
+       (debugger--print): New function.
+       (debugger-insert-backtrace, debugger-setup-buffer): Use it.
+
+2017-10-12  Thien-Thi Nguyen  <address@hidden>
+
+       [admin] Add some notes on US-v-UK spelling; nfc.
+
+2017-10-12  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       59b5dc60d6 Fix this-command-keys for "M-x foo" commands
+       2f4bd2fbda Let rename-file rename dirs across filesystems
+       413978727c Simplify Flymake user documentation
+       6ff18c3995 * etc/NEWS: Mention the new version of Org.
+       b78332c3c6 Don't use (format "%s" ...) for string copying (Bug#28774)
+       078fb7f6df Make frame-list-z-order on NS match Windows behaviour (bug...
+
+       # Conflicts:
+       #       etc/NEWS
+
+2017-10-12  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       05d0c0f802 ; * ChangeLog.3: ChangeLog fixes.
+       fbabae6b24 * ChangeLog.3: Update.
+       eab051991e Fix docstring style for 'functionp'
+       e8a7c41b4e Format shell commands in tramp.texi
+       0526aac4eb Unbreak the button in the Flymake diagnostics buffer again
+       c89f001de1 Add mode map to Flymake diagnostic button
+       f9cd8ee681 Tweak the Flymake diagnostics buffer again
+       0e83f5f279 Simplify Flymake diagnostics buffer UX
+       cf4a15b9b6 First stab at a Flymake diagnostics buffer
+       e4a1556392 * etc/NEWS (Flymake): Rewrite entry.
+       00adeb43e9 Improve the Flymake manual
+       44c6401733 ; * etc/NEWS: Clarify the description of "---" and "+++".
+       042b3cfbd2 Fix two Flymake bugs
+       3dfa2ca4dc Don't log "emergencies" in the Flymake legacy backend
+       1c2e188440 Add full documentation on new Flymake API
+       0f7f677f82 Fix some Flymake docstrings and messages
+       21e7075781 Make three new Flymake commands for debugging common problems
+       c9be9a3678 ; INSTALL.REPO: Add -d to "thorough cleaning" suggestion.
+       5d51403ceb ; Typo fixes, mostly repeated words
+       0d004ed01a ; Spelling fixes
+       0485aa76c9 ; * src/lread.c (syms_of_lread) <module-file-suffix>: Fix ...
+       ba7fb37d6a * admin/authors.el (authors-renamed-files-alist): addition.
+       14dca4a79a ; ChangeLog.3 fixes
+       f352d0257c Fix PWD check on DOS_NT
+       934f08f3de Fix unlikely overflows with wd length
+       6c2b1e89ef * lisp/gnus/message.el: Improve last commit
+       7ed7360855 Fix problems when editing raw undecoded message (Bug#28671)
+       aca5f0072b Avoid encoding errors in message.el
+       0c36663db5 Improve doc string and prompt of 'grep-read-files'
+       2da83c9d36 Avoid assertion violations when line numbers are displayed
+       5b81f65ad0 ; * lisp/emacs-lisp/rmc.el: Minor fix for copyright and li...
+       11b37b4a9f Be lazy when starting Flymake checks
+       36ed9a9ede Fix last change in frameset.el
+       62e5c119af Describe how window dividers can replicate vertical border...
+       e2150d994a Add line-number faces to the display-line-numbers group
+       89b0023044 Increase xterm click count only within double-click-fuzz
+       745aea2296 Change pause in fullscreen toggling for NS port (bug#28496)
+       1cd334cd47 Handle PARENTS properly in tramp-*-handle-make-directory
+       f1c73de47d ; Merge from Gnulib (comment changes only)
+       7c2c117c91 Improve test for unreachable dirs
+       2202952b83 * src/xsmfns.c (x_session_initialize): Fix memory leak.
+       a9b72976de Merge branch 'emacs-26' of git.sv.gnu.org:/srv/git/emacs i...
+       64baaff8c5 New option for handling ZWNJ in Arabic text rendering
+       c194fb61c6 Make python prettify symbols into a defvar (Bug#28713)
+       6dfc778d54 Fix fullscreen crash on macOS (bug#28496)
+       3db0dc2168 Fix crash when closing fullscreen frame on macOS (bug#28661)
+       bc80da5bd3 Support gio tool in Tramp
+       349e0eb5ff Fix flymake-goto-next-error when message has %-constructs
+       0fa353b504 * src/gnutls.c (syms_of_gnutls): Remove duplicated call to...
+       dc6ae15a8d Move the entry about 'format' into Incompatible Lisp Changes
+       75174a632d Fix glitches in displaying TTY menus
+       238fbcb20e Create new Edebug spec for docstrings and use it in closures
+       2d58d51329 Avoid byte-compilation warnings in message.el
+
+       # Conflicts:
+       #       etc/NEWS
+
+2017-10-12  Stefan Monnier  <address@hidden>
+
+       * lisp/gnus/message.el (message-check-recipients): Bogus adr is a user 
error.
+
+       * test/lisp/help-fns-tests.el (help-fns-test-dangling-alias): New test.
+
+       * lisp/ansi-color.el (ansi-color-make-extent): Let overlays evaporate.
+
+2017-10-10  Stefan Monnier  <address@hidden>
+
+       * lisp/url/url-cookie.el: Fix warning and miscompilation
+
+       (url-cookie-parse-file-netscape): Remove unused var `match', fix
+       undefined `incf' misuse.
+
+2017-10-10  Aurelien Aptel  <address@hidden>
+
+       Add parser for Netscape/Mozilla cookie file format
+
+       * lisp/url/url-cookie.el (url-cookie-parse-file-netscape): New function.
+
+2017-10-09  Philipp Stephani  <address@hidden>
+
+       Revert "Raise an error when detecting old-style backquotes."
+
+       This reverts commit 9613690f6e51e2f2aa2bcbbede3e209d08cfaaad.
+
+2017-10-09  Mark Oteiza  <address@hidden>
+
+       Disable XTerm titles (Bug#28591)
+
+       * etc/NEWS: Mention it.
+       * lisp/term/xterm.el (xterm-set-window-title): Disable it.
+
+2017-10-08  Gemini Lasswell  <address@hidden>
+
+       Stop Testcover from producing spurious 1value errors
+
+       Fix bug#25351 by copying results of form evaluations for later
+       comparison.
+       * lisp/emacs-lisp/testcover.el (testcover-after): Copy the result
+       of a form's first evaluation and compare subsequent evaluations to
+       the copy. Improve the error message used when a form's value
+       changes.
+       (testcover--copy-object, testcover--copy-object1): New functions.
+       * test/lisp/emacs-lisp/testcover-resources/testcases.el
+       (by-value-vs-by-reference-bug-25351): Remove expected failure tag.
+       (circular-lists-bug-24402): Add another circular list case.
+
+2017-10-08  Gemini Lasswell  <address@hidden>
+
+       Rewrite Testcover's internals, fixing several bugs
+
+       * lisp/emacs-lisp/testcover.el: Rewrite the internals of Testcover
+       to analyze instrumented code instead of reinstrumenting it.  Use new
+       hooks in Edebug to collect code coverage information at runtime
+       using Edebug's instrumentation.
+       Includes fixes for: (bug#11307) (bug#24509) (bug#24688) (bug#24743)
+       (bug#25316) (bug#25326).
+       (testcover-compose-functions): Remove mapcar.
+       (testcover-start, testcover-this-defun): Analyze code instead of
+       reinstrumenting it. Set edebug-behavior for each definition.
+       (testcover--read, testcover-1value, testcover-reinstrument)
+       (testcover-reinstrument-list, testcover-reinstrument-compose):
+       Deleted.
+       (testcover-after-instrumentation, testcover-init-definition)
+       (testcover-before): New functions.
+       (testcover-enter): Change call signature to match edebug-enter.
+       (testcover-after, testcover-mark): Add handling of 'maybe and
+       'noreturn.
+       (testcover-analyze-coverage, testcover-analyze-coverage-progn)
+       (testcover-analyze-coverage-edebug-after)
+       (testcover-analyze-coverage-wrapped-form)
+       (testcover-analyze-coverage-wrapped-application)
+       (testcover-analyze-coverage-compose)
+       (testcover-analyze-coverage-backquote)
+       (testcover-analyze-coverage-backquote-form)
+       (testcover-coverage-combine): New functions to analyze instrumented
+       code.
+
+       * lisp/emacs-lisp/gv.el: Modify edebug-after's gv-expander to
+       instrument in the setter as well as the getter.
+
+       * test/lisp/emacs-lisp/testcover-tests.el
+       (testcover-tests-run-test-case): Use `edebug-default-enter'
+       instead of `edebug-enter' to detect Edebug invocation
+       during tests.
+
+       * test/lisp/emacs-lisp/testcover-resources/testcases.el
+       (constants-bug-25316)
+       (customize-defcustom-bug-25326)
+       (1-value-symbol-bug-25316)
+       (quotes-within-backquotes-bug-25316)
+       (backquote-1value-bug-24509)
+       (pcase-bug-24688)
+       (defun-in-backquote-bug-11307-and-24743)
+       (closure-1value-bug)
+       (backquoted-vector-bug-25316)
+       (vector-in-macro-spec-bug-25316)
+       (mapcar-is-not-compose): Remove expected failure tags.
+       (function-with-edebug-spec-bug-25316): Remove expected failure tag
+       and modify expected result.
+       (quoted-backquote): New test.
+
+       * lisp/textmodes/rst.el: Remove workarounds for bugs in Testcover.
+       (rst-testcover-defcustom): Deleted.
+
+       * lisp/subr.el (1value): Remove incorrect description of
+       testcover-1value from docstring, replace with description of
+       Testcover's treatment of 1value.
+
+2017-10-08  Gemini Lasswell  <address@hidden>
+
+       Allow Edebug's instrumentation to be used for other purposes
+
+       * lisp/emacs-lisp/edebug.el:
+       (edebug-after-instrumentation-functions)
+       (edebug-new-definition-functions): New hook variables.
+       (edebug-behavior-alist): New variable.
+       (edebug-read-and-maybe-wrap-form): Run a hook after a form is
+       wrapped.
+       (edebug-make-form-wrapper): Run a hook after a definition is
+       wrapped. Remove message for each definition.
+       (edebug-announce-definition): New function.
+       (edebug-enter): Rewritten to change behavior of Edebug based
+       on symbol property `edebug-behavior' and `edebug-behavior-alist'.
+       (edebug-default-enter): New function which does what `edebug-enter'
+       used to do.
+       (edebug-run-slow, edebug-run-fast): Modify edebug-behavior-alist.
+       (edebug-before, edebug-after): Function definitions are now set by
+       `edebug-enter'.
+
+2017-10-08  Stefan Monnier  <address@hidden>
+
+       * lisp/emacs-lisp/checkdoc.el: cl-defstruct + minor simplifications
+
+       (checkdoc-make-overlay, checkdoc-overlay-put, checkdoc-delete-overlay)
+       (checkdoc-overlay-start, checkdoc-overlay-end, checkdoc-char=)
+       (checkdoc-mode-line-update): Remove old compatibility aliases.
+       (checkdoc, checkdoc-interactive-loop):
+       Consolidate common code in if branches.
+       (checkdoc-error): New struct type.
+       (checkdoc-error-text, checkdoc-error-start, checkdoc-error-end)
+       (checkdoc-error-unfixable): Now defined by cl-defstruct.
+
+2017-10-08  Philipp Stephani  <address@hidden>
+
+       Raise an error when detecting old-style backquotes.
+
+       They have been deprecated for a decade now.
+
+       * src/lread.c (Fload): Don't use record_unwind_protect to warn about
+       old-style backquotes any more.  They now generate a hard error.
+       (read1): Signal an error when detecting old-style backquotes.  Remove
+       unused label.
+       (syms_of_lread): Remove unused internal variable
+       'lread--old-style-backquotes'.
+       (load_error_old_style_backquotes): Rename from
+       'load_warn_oldstyle_backquotes'.  Signal an error.
+
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Remove check
+       from byte compiler.  It isn't triggered any more.
+
+       * test/src/lread-tests.el (lread-tests--old-style-backquotes): Adapt
+       unit test.
+
+       * test/lisp/emacs-lisp/bytecomp-tests.el
+       (bytecomp-tests--old-style-backquotes)
+       (bytecomp-tests-function-put): Adapt unit tests.
+
+       * etc/NEWS: Document change.
+
+2017-10-08  Philipp Stephani  <address@hidden>
+
+       Say that side effect-free functions don't change the matchd data
+
+       * lisp/help-fns.el (describe-function-1): Add note if a function is
+       known not to change the match data.
+
+2017-10-07  Eli Zaretskii  <address@hidden>
+
+       New defcustom 'tooltip-resize-echo-area'
+
+       * lisp/tooltip.el (tooltip-resize-echo-area): New defcustom.
+       (tooltip-show-help-non-mode): Use it to avoid truncating the
+       tooltip text in the echo area.  (Bug#28724)
+
+       * etc/NEWS: Mention 'tooltip-resize-echo-area'.
+
+2017-10-06  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       9226cf3254 Fix bug in recent styled_format change
+       fa92f0c447 Cleanup emacs-lisp-mode's use of Flymake
+       0d0265bf50 Fix @include directive in Flymake doc
+       295457ae52 Move read-multiple-choice to its own library
+       560dd9b573 * src/process.c (syms_of_process): Remove duplicated call ...
+
+2017-10-06  Stefan Monnier  <address@hidden>
+
+       Merge emacs-26
+
+2017-10-03  Michael Albinus  <address@hidden>
+
+       Add file name handler support for file-system-info
+
+       * doc/lispref/files.texi (Magic File Names): Add file-system-info.
+
+       * etc/NEWS: Mention get-free-disk-space working on remote systems.
+
+       * lisp/files.el (get-free-disk-space): Do not block on remote systems.
+
+       * src/w32fns.c (Ffile_system_info):
+       * src/fileio.c (Ffile_system_info): Call file name handler if exists.
+       (syms_of_fileio): Add Qfile_system_info.
+
+2017-10-02  Paul Eggert  <address@hidden>
+
+       Merge from Gnulib
+
+       This incorporates:
+       2017-10-02 fsusage: fix typo in previous change
+       * lib/fsusage.c: Copy from Gnulib.
+
+2017-10-01  Paul Eggert  <address@hidden>
+
+       Port file-system-info to non-Microsoft
+
+       * admin/merge-gnulib (GNULIB_MODULES): Add fsusage.
+       * doc/emacs/files.texi (Directories): Remove documentation of
+       now-obsolete directory-free-space-program and
+       directory-free-space-args.
+       * etc/NEWS: Mention change.
+       * etc/PROBLEMS: Slow df is no longer a problem.
+       * lib/fsusage.c, lib/fsusage.h, m4/fsusage.m4:
+       New files, copied from Gnulib.
+       * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
+       * lisp/dired.el (dired-free-space-program)
+       (dired-free-space-args): These aliases are now obsolete.
+       * lisp/files.el (directory-free-space-program)
+       (directory-free-space-args): Now obsolete.
+       (get-free-disk-space): Just call file-system-info instead
+       of the now-obsolete directory-free-space-program.
+       * nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_fsusage): New macro.
+       * src/fileio.c: Include fsusage.h.
+       (blocks_to_bytes, Ffile_system_info) [!DOS_NT]: New functions.
+       (syms_of_fileio) [!DOS_NT]: Defsubr file-system-info.
+
+2017-10-01  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       5172fa02cc Prefer HTTPS to HTTP for gnu.org
+       8cdd8b920a Merge from Gnulib
+       60b7668b89 Keep eww buffer current when looking up CSS on MDN
+       bd49b6f1b3 Workaround for faulty localtime() under macOS 10.6
+       913808e224 Doc amendment for syntax-ppss.
+       98dc91fda8 Remove incorrect NEWS entry about 'find-library'
+       539d8626cd Remove inadvertent changes to syntax.texi in last commit.
+       8c18dcbc78 Amend documentation for text-quoting-style becoming a user...
+       5f76ac150a Make the value nil in text-quoting-style mean what it does...
+       d5e4e004fa Make text-quoting-style customizable.  Introduce t and new...
+       1ba3471b9b eshell.texi improvements
+       7abb5c3960 Fix ns-win.el on GNUstep
+       07ea5ef99a Fix reference style in org.texi
+       b03b4f6d79 Improve handling of iconification of child frames (Bug#28611)
+       ba9139c501 Revert "Don't lose arguments to eshell aliases (Bug#27954)"
+       43fac3beae Make "unsafe directory" error message more informative (Bu...
+       c59ddb2120 Fix slot typecheck in eieio-persistent
+       8b2ab5014b Fix semantic-ia-fast-jump
+       5b45e7e1c3 Bind vc-region-history
+       f172894595 Exit macro definition on undefined keys
+       289fe6c0d1 Reset bidi-paragraph-direction on article rendering
+       a4f7518817 Fix url-http use of url-current-object
+       4a755ed421 Avoid assertions in vc-hg.el on MS-Windows
+       cb93a6ce72 Improve documentation of 'copy-sequence'
+       200ef6f721 Minor update of ack.texi
+       cb407d3e87 * doc/emacs/emacs.texi (Acknowledgments): Add more contrib...
+       82b6c765ff Improve indexing of multi-file/buffer Isearch commands
+       645ff6c702 Add CAM02 JCh and CAM02-UCS J'a'b' conversions
+       157007b58e Fix uses of @kindex in the Emacs manual
+       63a45e8837 Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/e...
+       3ab2f9bbb9 Merge from gnulib
+       cbc8324488 Prefer HTTPS to HTTP for gnu.org
+       bbda601d1d ; Spelling fixes
+       695cf5300b Wait for frame visibility with timeout in w32term too
+       e1f6e3127a Bring back the busy wait after x_make_frame_visible (Bug#2...
+       bccf635217 ; * src/gtkutil.c (xg_check_special_colors): Add another G...
+       f428757cdb Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/e...
+       26d58f0c58 ; Standardize license notices
+       73dba0f466 Fix last doc string change in simple.el
+
+2017-10-01  Stefan Monnier  <address@hidden>
+
+       * lisp/electric.el: Break recursive loading loop
+
+       (electric-pair-text-pairs): Declare instead of requiring elec-pair.
+
+2017-10-01  Philipp Stephani  <address@hidden>
+
+       * src/editfns.c (Fchar_after): Small optimization.
+
+2017-10-01  Eli Zaretskii  <address@hidden>
+
+       Avoid compilation warning in electric.el
+
+       * lisp/electric.el: Require 'elec-pair' when compiling, to avoid a
+       compiler warning.
+
+2017-09-30  Paul Eggert  <address@hidden>
+
+       Make logcount act like CL on negative arg
+
+       Behaving like Common Lisp is less likely to lead to surprises,
+       as it yields the same answers on 32- vs 64-bit machines.
+       * doc/lispref/numbers.texi (Bitwise Operations):
+       Document behavior on negative integers.
+       * src/data.c (Flogcount):
+       Behave like Common Lisp for negative arguments.
+       * test/src/data-tests.el (data-tests-popcnt)
+       (data-tests-logcount): Test negative args too.
+
+2017-09-30  Philipp Stephani  <address@hidden>
+
+       Electric quote mode: Conditionally replace " (Bug#24710)
+
+       * lisp/electric.el (electric-quote-replace-double): New user option.
+       (electric-quote-post-self-insert-function): Use it.
+
+       * test/lisp/electric-tests.el (electric-quote-replace-double-disabled)
+       (electric-quote-replace-double-bob)
+       (electric-quote-replace-double-bol)
+       (electric-quote-replace-double-after-space)
+       (electric-quote-replace-double-after-letter)
+       (electric-quote-replace-double-after-paren): New unit tests.
+
+       * doc/emacs/text.texi (Quotation Marks): Document
+       'electric-quote-replace-double'.
+
+2017-09-30  Paul Eggert  <address@hidden>
+
+       Simplify logcount implementation
+
+       * src/data.c (HAVE_BUILTIN_POPCOUNTLL, logcount32, logcount64):
+       Remove.
+       (Flogcount): Simplify by using count_one_bits.
+
+2017-09-30  Mark Oteiza  <address@hidden>
+
+       Add logcount (Bug#22689)
+
+       * doc/lispref/numbers.texi (Bitwise Operations): Add documentation.
+       * etc/NEWS: Mention.
+       * src/data.c (logcount32, logcount64): New functions.
+       (logcount): New Lisp function.
+       (syms_of_data): Declare it.
+       * test/src/data-tests.el (data-tests-popcnt, data-tests-logcount): New
+       test.
+
+2017-09-29  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       3ab2f9bbb9 Merge from gnulib
+       cbc8324488 Prefer HTTPS to HTTP for gnu.org
+       bbda601d1d ; Spelling fixes
+       695cf5300b Wait for frame visibility with timeout in w32term too
+       e1f6e3127a Bring back the busy wait after x_make_frame_visible (Bug#2...
+       bccf635217 ; * src/gtkutil.c (xg_check_special_colors): Add another G...
+       26d58f0c58 ; Standardize license notices
+       61225964ed Revert "bug#28609: simple.el"
+       a75ab3b3fb bug#28609: simple.el
+       c7a21430c1 ; * etc/NEWS: Fix last change.
+       33401b26b1 Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/e...
+       d4b2bbdc73 Merge branch 'emacs-26' into scratch/org-mode-merge
+       c1ac8c170f Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/e...
+       af130f900f Fix ert backtrace saving for non-`signal'ed errors (Bug#28...
+       7476eeaa23 Revert "Fix build on macOS (bug#28571)"
+       fec63089d5 Fix build on macOS (bug#28571)
+       0f9a78e770 Add tests for `css-current-defun-name'
+       88a0dd71f1 In w32fullscreen_hook don't add decorations to undecorated...
+       18073beb14 Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/e...
+       1eef11b7be Fix doc string of 'dired-listing-switches'
+       eaefbc26d5 ; Add files missing in ab351d442d7
+       ab351d442d Update Org to v9.1.1
+
+2017-09-29  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       a3f647c5c8 * src/editfns.c (styled_format): Fix typo in previous change.
+       0e82fa3416 Avoid some unnecessary copying in Fformat etc.
+
+2017-09-29  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       1e5949642a ; * src/gtkutil.c (xg_create_frame_widgets): Add FIXME re....
+       e7c8da4d05 bug#28609: simple.el
+       827db6b559 Use a separate syntax-ppss cache for narrowed buffers
+       a2244f417a Improve python3-compatibility of fallback completion (Bug#...
+       79162cb0db Fix subr-x-tests when running from elc
+       66d35ae49d * lisp/eshell/esh-util.el (eshell-condition-case): Add deb...
+       f5e72b04d9 Make sh-indentation into an alias for sh-basic-offset (Bug...
+       a58d0c590a Fix loading of smie-config rules (Bug#24848)
+       3a68dec327 ; Update NEWS for the change in eldoc-message
+       5a41dd0a1f Reset default-directory inside *xref-grep* buffer
+       49cd561dc6 * test/lisp/tramp-tests.el (tramp-test21-file-links): Spec...
+       b719f6b20b Loosen strict parsing requirement for desktop files
+       c7a0c13777 * lisp/xdg.el (xdg-thumb-uri): Fix doc string.
+       dc6b3560e5 Fix documentation of `make-frame' and related variables an...
+       3d3778d82a Accept new `always' value for option `buffer-offer-save'
+       638f64c40a Improve new NS scrolling variable names
+       d93301242f Document 'replace-buffer-contents' in the manual.
+       00e4e3e9d2 Fix undecorated frame resizing issues on NS (bug#28512)
+       820739bbb5 ; * doc/emacs/display.texi (Display Custom): Fix wording.
+       f2b2201594 ; Spelling and URL fixes
+       0e143b1fc5 Documentation improvements for 'display-line-numbers'
+       f656ccdb43 ; Fix typo
+       d64da52d57 Fix last change in bat-mode.el
+       908af46abd Fix restoring in GUI sessions desktop saved in TTY sessions
+       51cbd85454 Improve syntax highlighting in bat-mode
+       0273916618 Document the 'list-FOO' convention
+       d24ec58540 Expose viewing conditions in CAM02-UCS metric
+       a81d5a3d3f Revert "Set frame size to actual requested size (bug#18215)"
+       0bf066d4b2 Add tests for Edebug
+       68baca3ee1 Catch more messages in ert-with-message-capture
+       28e0c410c9 ; * lisp/mouse.el (secondary-selection-exist-p): Doc fix.
+       31e1d9ef2f Support setting region from secondary selection and vice v...
+       047f02f00f Fix new copy-directory bug with empty dirs
+       fbd15836af * doc/lispref/strings.texi (Formatting Strings): Improve i...
+       f16a8d5dbd Fix 2 testsuite tests for MS-Windows
+       965cffd89c Rename timer-list to list-timers
+       a5fec62b51 Provide native touchpad scrolling on macOS
+       7b3d1c6beb Fix MinGW64 build broken by recent MinGW64 import libraries
+       c83d0c5fdf Fix crashes in 'move-point-visually' in minibuffer windows
+       7f3d5f929d * src/emacs.c (usage_message): Don't mention 'find-file'.
+       6845282200 Fix a minor inaccuracy in the Emacs manual
+       74d7bb9498 Fix errors in flyspell-post-command-hook
+       40fdbb01d0 Work on Tramp's file-truename
+       1a01423b3c Fix bug with make-directory on MS-Windows root
+       066efb8666 Fix log-view-diff-common when point is after last entry
+       3f006b56cd Adapt fileio-tests--symlink-failure to Cygwin
+       ee512e9a82 Ignore buffers whose name begins with a space in save-some...
+       9e1b5bd92c Improve tramp-interrupt-process robustness
+       8d4223e61b Minor Tramp doc update
+       331d0e520f Fix gensym
+       466df76f7d Cleanup in files-tests.el
+       6359fe630a Remove old cl-assert calls in 'newline'
+       059184e645 Avoid crash with C-g C-g in GC
+       541006c536 Fix format-time-string %Z bug with negative tz
+       679e05eeb9 message-citation-line-format %Z is now tz name
+       4e8888d438 Use doc-view or pdf-tools on any window-system
+       5f28f0db73 Fix bug with min and max and NaNs
+       37b5e661d2 Fix recently-introduced copy-directory bug
+       6bbbc38b34 Merge from Gnulib
+       57249fb297 Fix compatibility problem in Tramp
+       411bec82c4 Avoid GCC 7 compilation warning in eval.c
+       34a6774daa ; Partially revert c3445aed5194
+       3003ac0469 Adapt Tramp version.  Do not merge
+       48d39c39e8 Search for Syntax section when viewing MDN
+       9d101376b4 Allow smerge-keep-current to work for empty hunks
+       13aba24add Call vc-setup-buffer in vc-git-log-{in,out}going
+       1d599df5e0 Fix last change to textmodes/page-ext.el
+       a726e09a9a * test/src/lcms-tests.el (lcms-cri-cam02-ucs): Skip if lcm...
+       546413e1ac * test/src/lcms-tests.el (lcms-whitepoint): Skip if lcms2 ...
+       96aaeaaffa ; * src/lcms.c: Minor stylistic changes in comments.
+       c3df816585 Fix compilation warning in etags.c
+
+2017-09-29  Philipp Stephani  <address@hidden>
+
+       Revert "GTK+: Stop querying for background colors."
+
+       This reverts commit f6818e761eaafe095e07249180dc8f9a329f1473.
+
+2017-09-28  Charles A. Roelli  <address@hidden>
+
+       Fix 'point-to-register' prompt with prefix arg
+
+       * lisp/register.el (point-to-register): Fix prompt when a prefix
+       argument is given.
+
+2017-09-28  Mark Oteiza  <address@hidden>
+
+       Add indent spec to easy-mmode macros
+
+       Ideally these macros should expand to the proper code instead of
+       relegating all the work to a function call.
+       * lisp/emacs-lisp/easy-mmode.el (easy-mmode-defmap):
+       (easy-mmode-define-syntax): Add indent spec.
+
+2017-09-27  Mark Oteiza  <address@hidden>
+
+       Mark some functions as pure
+
+       * lisp/emacs-lisp/byte-opt.el: Add some functions that return integral
+       values to the builtin list of pure functions.
+
+2017-09-27  Stefan Monnier  <address@hidden>
+
+       * lisp/textmodes/page-ext.el: Misc cleanup, add RET binding
+
+       Use lexical-binding.
+       Remove redundant :group args.
+       (pages-directory-mode-map): Bind RET.
+       (pages-buffer, pages-pos-list): Define as buffer-local.
+       (pages-directory-map): Define as alias *before* the defvar.
+       Mark as obsolete.
+       (pages-buffer-original-position, pages-buffer-original-page):
+       Move declaration to before the first use.
+       (pages-directory): Remove unused var `linenum`.
+       (pages-directory-goto): Add optional `event` arg and make it work when
+       bound to mouse events.
+       (pages-directory-goto-with-mouse): Make it an obsolete alias.
+
+2017-09-26  Mark Oteiza  <address@hidden>
+
+       Add MIME apps spec utilities
+
+       Facilitates finding associations between MIME types and desktop files
+       that report an association with that type.  Combined with mailcap.el's
+       MIME facilities, it should be easy to use desktop files.
+       * lisp/xdg.el (xdg-mime-table): New variable.
+       (xdg-mime-apps-files, xdg-mime-collect-associations, xdg-mime-apps):
+       New functions.
+       * test/data/xdg/mimeapps.list: New file.
+       * test/data/xdg/mimeinfo.cache: New file.
+       * test/lisp/xdg-tests.el (xdg-mime-associations): New test.
+
+2017-09-26  John Wiegley  <address@hidden>
+
+       lisp/simple.el: Indicate when a list of pairs is meant in a docstring
+
+2017-09-26  Philipp Stephani  <address@hidden>
+
+       Revert "Don't attempt to disable double buffering in newer GTK+ 
versions"
+
+       This reverts commit c0af83b6ccf2dab9a515dd7f52eb9d4500275ae3.
+
+2017-09-26  Devon Sean McCullough  <address@hidden>
+
+       bug#28609: simple.el
+
+       Correct grammar; also, call a pair a pair.
+
+2017-09-25  Paul Eggert  <address@hidden>
+
+       * etc/NEWS.26: Copy from emacs-26/etc/NEWS.
+
+2017-09-25  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       49cd561dc6 * test/lisp/tramp-tests.el (tramp-test21-file-links): Spec...
+       b719f6b20b Loosen strict parsing requirement for desktop files
+       c7a0c13777 * lisp/xdg.el (xdg-thumb-uri): Fix doc string.
+       dc6b3560e5 Fix documentation of `make-frame' and related variables an...
+       3d3778d82a Accept new `always' value for option `buffer-offer-save'
+       638f64c40a Improve new NS scrolling variable names
+       d93301242f Document 'replace-buffer-contents' in the manual.
+       00e4e3e9d2 Fix undecorated frame resizing issues on NS (bug#28512)
+       820739bbb5 ; * doc/emacs/display.texi (Display Custom): Fix wording.
+       f2b2201594 ; Spelling and URL fixes
+       0e143b1fc5 Documentation improvements for 'display-line-numbers'
+       f656ccdb43 ; Fix typo
+       d64da52d57 Fix last change in bat-mode.el
+       908af46abd Fix restoring in GUI sessions desktop saved in TTY sessions
+       51cbd85454 Improve syntax highlighting in bat-mode
+       0273916618 Document the 'list-FOO' convention
+       d24ec58540 Expose viewing conditions in CAM02-UCS metric
+       a81d5a3d3f Revert "Set frame size to actual requested size (bug#18215)"
+       0bf066d4b2 Add tests for Edebug
+       68baca3ee1 Catch more messages in ert-with-message-capture
+       28e0c410c9 ; * lisp/mouse.el (secondary-selection-exist-p): Doc fix.
+       31e1d9ef2f Support setting region from secondary selection and vice v...
+       047f02f00f Fix new copy-directory bug with empty dirs
+       fbd15836af * doc/lispref/strings.texi (Formatting Strings): Improve i...
+       f16a8d5dbd Fix 2 testsuite tests for MS-Windows
+       965cffd89c Rename timer-list to list-timers
+       a5fec62b51 Provide native touchpad scrolling on macOS
+       7b3d1c6beb Fix MinGW64 build broken by recent MinGW64 import libraries
+       c83d0c5fdf Fix crashes in 'move-point-visually' in minibuffer windows
+       7f3d5f929d * src/emacs.c (usage_message): Don't mention 'find-file'.
+       6845282200 Fix a minor inaccuracy in the Emacs manual
+       74d7bb9498 Fix errors in flyspell-post-command-hook
+       40fdbb01d0 Work on Tramp's file-truename
+       1a01423b3c Fix bug with make-directory on MS-Windows root
+       066efb8666 Fix log-view-diff-common when point is after last entry
+       3f006b56cd Adapt fileio-tests--symlink-failure to Cygwin
+       ee512e9a82 Ignore buffers whose name begins with a space in save-some...
+       9e1b5bd92c Improve tramp-interrupt-process robustness
+       8d4223e61b Minor Tramp doc update
+       331d0e520f Fix gensym
+       466df76f7d Cleanup in files-tests.el
+       6359fe630a Remove old cl-assert calls in 'newline'
+       059184e645 Avoid crash with C-g C-g in GC
+       541006c536 Fix format-time-string %Z bug with negative tz
+       679e05eeb9 message-citation-line-format %Z is now tz name
+       4e8888d438 Use doc-view or pdf-tools on any window-system
+       5f28f0db73 Fix bug with min and max and NaNs
+       37b5e661d2 Fix recently-introduced copy-directory bug
+       6bbbc38b34 Merge from Gnulib
+       57249fb297 Fix compatibility problem in Tramp
+       411bec82c4 Avoid GCC 7 compilation warning in eval.c
+       34a6774daa ; Partially revert c3445aed5194
+
+2017-09-25  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       48d39c39e8 Search for Syntax section when viewing MDN
+       9d101376b4 Allow smerge-keep-current to work for empty hunks
+       13aba24add Call vc-setup-buffer in vc-git-log-{in,out}going
+       1d599df5e0 Fix last change to textmodes/page-ext.el
+       a726e09a9a * test/src/lcms-tests.el (lcms-cri-cam02-ucs): Skip if lcm...
+
+2017-09-25  Paul Eggert  <address@hidden>
+
+       Merge from origin/emacs-26
+
+       96aaeaaffa ; * src/lcms.c: Minor stylistic changes in comments.
+       c3df816585 Fix compilation warning in etags.c
+       5490ccc5eb Add lisp variable lcms-d65-xyz
+       dee96f4a17 * lisp/emacs-lisp/cl-macs.el (cl-letf): Fix Edebug spec (b...
+       12e864eb30 Avoid MinGW64 compiler warnings in unexw32.c
+       625cee5316 Start emacs-26 release branch
+
+       # Conflicts:
+       #       README
+       #       configure.ac
+       #       msdos/sed2v2.inp
+       #       nt/README.W32
+
+2017-09-25  Paul Eggert  <address@hidden>
+
+       emacs-25 → emacs-26
+
+       * admin/gitmerge.el (gitmerge-default-branch): Now emacs-26.
+
+2017-09-24  Mark Oteiza  <address@hidden>
+
+       Expand recognized time intervals for MPC seeking
+
+       Now accepts [+-]H:M:S and subsets.  Also accepts some odd variations of
+       it since the regexp is not strict.  One unpleasant caveat is that
+       string-to-number simply returns zero on failure instead of signaling an
+       error.  At the moment, there are cases where instead of getting
+       a user-error, the seek may simply not go where one expects it.
+       * lisp/mpc.el (mpc-read-seek): New function.
+       (mpc-seek-current): Use it.
+
+2017-09-24  Philipp Stephani  <address@hidden>
+
+       Add configuration for clang-format.
+
+       This allows developers to auto-format the C code with clang-format.
+       It’s not 100% accurate, but works pretty well for most of the C code.
+
+2017-09-24  Philipp Stephani  <address@hidden>
+
+       Make FILENAME argument of 'file-name-base' mandatory
+
+       * lisp/files.el (file-name-base): Make FILENAME argument mandatory.
+
+       * lisp/autoinsert.el (auto-insert-alist):
+       * lisp/progmodes/cperl-mode.el (cperl-electric-pod):
+       * lisp/progmodes/idlwave.el (idlwave-parse-definition):
+       * lisp/textmodes/reftex-ref.el (reftex-replace-prefix-escapes): Fix
+       all callers.
+
+2017-09-23  Stefan Monnier  <address@hidden>
+
+       * lisp/newcomment.el (comment-search-backward): Obey the docstring 
(bug#28428)
+
+2017-09-23  Philipp Stephani  <address@hidden>
+
+       Don't attempt to disable double buffering in newer GTK+ versions
+
+       * src/gtkutil.c (xg_create_frame_widgets): Stop calling deprecated
+       function gtk_widget_set_double_buffered.
+
+2017-09-23  Philipp Stephani  <address@hidden>
+
+       GTK+: Stop querying for background colors.
+
+       * src/gtkutil.c (xg_check_special_colors): Don't call deprecated
+       function gtk_style_context_get_background_color in newer versions of
+       GTK+.
+
+2017-09-23  Philipp Stephani  <address@hidden>
+
+       GTK+: stop calling 'gtk_window_set_wmclass' in new versions
+
+       * src/gtkutil.c (xg_create_frame_widgets): Stop calling deprecated
+       function 'gtk_window_set_wmclass' in GTK+ 3.22.
+
+2017-09-23  Philipp Stephani  <address@hidden>
+
+       GTK+: Use a style provider instead of deprecated function
+
+       * src/gtkutil.c (xg_set_widget_bg): Use a CSS style provider instead
+       of the deprecated gtk_widget_override_background_color.
+
+2017-09-20  Mark Oteiza  <address@hidden>
+
+       Teach Emacs to set XTerm window titles
+
+       * lisp/term/xterm.el (terminal-init-xterm): Add initialization.
+       (xterm--init-frame-title, xterm-set-window-title-flag):
+       (xterm-unset-window-title-flag, xterm-set-window-title): New functions.
+       (xterm-window-title-flag): New variable.
+       (xterm-set-window-title): New custom variable.
+       * etc/NEWS: Mention it.
+
+2017-09-19  Philipp Stephani  <address@hidden>
+
+       Don't call deprecated GTK function gtk_adjustment_changed
+
+       * src/gtkutil.c (xg_set_toolkit_scroll_bar_thumb)
+       (xg_set_toolkit_horizontal_scroll_bar_thumb): Remove calls to
+       deprecated function gtk_adjustment_changed.  This function has been
+       deprecated since GTK+ 3.18.
+
+2017-09-18  Sam Steingold  <address@hidden>
+
+       Fix bug#28435: "all" score file is ignored
+
+       (gnus-score-find-bnews): Fix removing the empty suffix.
+
+2017-09-18  Sam Steingold  <address@hidden>
+
+       Add define-thing-chars and use it for filename.
+
+       (define-thing-chars): New defmacro.
+       (filename): Define this thing using `define-thing-chars'.
+
+2017-09-18  Philipp Stephani  <address@hidden>
+
+       Revert "Implement native JSON support using Jansson"
+
+       This reverts commit cb99cf5a99680af7dc2c49fdf5b840d1ff4dd928.
+
+2017-09-18  Philipp Stephani  <address@hidden>
+
+       Implement native JSON support using Jansson
+
+       * configure.ac: New option --with-json.
+
+       * src/json.c (Fjson_serialize, Fjson_insert, Fjson_parse_string)
+       (Fjson_parse_buffer): New defuns.
+       (json_out_of_memory, json_parse_error, json_release_object)
+       (check_string_without_embedded_nulls, json_check, lisp_to_json)
+       (json_insert, json_insert_callback, json_to_lisp)
+       (json_read_buffer_callback, Fjson_parse_buffer, define_error): New
+       helper function.
+       (syms_of_json): New file.
+
+       * src/lisp.h: Declaration for syms_of_json.
+
+       * src/emacs.c (main): Enable JSON functions.
+
+       * src/Makefile.in (JSON_LIBS, JSON_CFLAGS, JSON_OBJ, EMACS_CFLAGS)
+       (base_obj, LIBES): Compile json.c if --with-json is enabled.
+
+       * test/src/json-tests.el (json-serialize/roundtrip)
+       (json-serialize/object, json-parse-string/object): New unit tests.
+
+2017-09-18  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-09-17  Michael Albinus  <address@hidden>
+
+       * lisp/net/trampver.el (customize-package-emacs-version-alist):
+
+       Add Tramp version integrated in Emacs 26.1.
+
+2017-09-16  Glenn Morris  <address@hidden>
+
+       * test/src/lcms-tests.el (lcms-whitepoint): Skip if lcms2 not present.
+
+2017-09-16  Eli Zaretskii  <address@hidden>
+
+       Increment Emacs version to 27.0.50
+
+       * README:
+       * configure.ac:
+       * nt/README.W32:
+       * src/msdos.c (internal_terminal_init):
+       * msdos/sed2v2.inp:
+       * etc/refcards/ru-refcard.tex: Increment Emacs version to 27.0.50.
+       * etc/NEWS: New file with sections for Emacs 27.1.
+       * etc/NEWS.26: Renamed from etc/NEWS.
+
 2019-08-29  Nicolas Petton  <address@hidden>
 
        * etc/AUTHORS: Update.
@@ -66528,8 +139450,8 @@
 
 This file records repository revisions from
 commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to
-commit a6d0172e8330a5683517eba78356d4c70ad979d7 (inclusive).
-See ChangeLog.1 for earlier changes.
+commit 9261b1ed49755284bb9dc194b6c2a9b407151ee5 (inclusive).
+See ChangeLog.2 for earlier changes.
 
 ;; Local Variables:
 ;; coding: utf-8
diff --git a/Makefile.in b/Makefile.in
index 2c82c49..67e15cf 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1136,7 +1136,7 @@ ChangeLog:
          ./$(emacslog) -o $(CHANGELOG) -n $(CHANGELOG_HISTORY_INDEX_MAX)
 
 # Check that we are in a good state for changing history.
-PREFERRED_BRANCH = emacs-26
+PREFERRED_BRANCH = emacs-27
 preferred-branch-is-current:
        git branch | grep -q '^\* $(PREFERRED_BRANCH)$$'
 unchanged-history-files:
diff --git a/admin/authors.el b/admin/authors.el
index f8f7287..dc42bc7 100644
--- a/admin/authors.el
+++ b/admin/authors.el
@@ -294,7 +294,10 @@ If REALNAME is nil, ignore that author.")
     "preferences\\.\\(nib\\|gorm\\)"
     ;; Generated files that have since been removed.
     "\\(refcard\\(-de\\|-pl\\)?\\|calccard\\|dired-ref\\|orgcard\\|\
-gnus-booklet\\|fr-drdref\\)\\.p\\(df\\|s\\)\\'")
+gnus-booklet\\|fr-drdref\\)\\.p\\(df\\|s\\)\\'"
+    ;; Removed as obsolete
+    "README-ftp-server"
+    )
   "List of regexps matching obsolete files.
 Changes to files matching one of the regexps in this list are not listed.")
 
@@ -459,6 +462,12 @@ Changes to files matching one of the regexps in this list 
are not listed.")
     ;; ada-mode has been deleted, now in GNU ELPA
     "ada-mode.texi"
     "GNUS-NEWS"
+    "doc/misc/gnus-news.el"
+    "src/fingerprint-dummy.c"
+    "src/fingerprint.h"
+    ;; Replaced by lisp/thread.el
+    "lisp/emacs-lisp/thread-list.el"
+    "etc/images/slash.bmp"
     )
   "List of files and directories to ignore.
 Changes to files in this list are not listed.")
@@ -1103,6 +1112,8 @@ in the repository.")
     ("lisp/net/starttls.el" . "lisp/obsolete/starttls.el")
     ("url-ns.el" . "lisp/obsolete/url-ns.el")
     ("gnus-news.texi" . "doc/misc/gnus.texi")
+    ("lisp/multifile.el". "lisp/fileloop.el")
+    ("lisp/emacs-lisp/thread.el". "lisp/thread.el")
     )
   "Alist of files which have been renamed during their lifetime.
 Elements are (OLDNAME . NEWNAME).")
diff --git a/admin/merge-gnulib b/admin/merge-gnulib
index 48c81e6..768e505 100755
--- a/admin/merge-gnulib
+++ b/admin/merge-gnulib
@@ -33,8 +33,8 @@ GNULIB_MODULES='
   crypto/md5-buffer crypto/sha1-buffer crypto/sha256-buffer 
crypto/sha512-buffer
   d-type diffseq dosname double-slash-root dtoastr dtotimespec dup2
   environ execinfo explicit_bzero faccessat
-  fcntl fcntl-h fdopendir
-  filemode filevercmp flexmember fpieee fstatat fsusage fsync
+  fchmodat fcntl fcntl-h fdopendir
+  filemode filevercmp flexmember fpieee fstatat fsusage fsync futimens
   getloadavg getopt-gnu gettime gettimeofday gitlog-to-changelog
   ieee754-h ignore-value intprops largefile lstat
   manywarnings memmem-simple mempcpy memrchr minmax mkostemp mktime nstrftime
@@ -43,7 +43,7 @@ GNULIB_MODULES='
   sig2str socklen stat-time std-gnu11 stdalign stddef stdio
   stpcpy strnlen strtoimax symlink sys_stat sys_time
   tempname time time_r time_rz timegm timer-time timespec-add timespec-sub
-  update-copyright unlocked-io utimens
+  update-copyright unlocked-io utimensat
   vla warnings
 '
 
diff --git a/admin/nt/dist-build/build-dep-zips.py 
b/admin/nt/dist-build/build-dep-zips.py
index 9d19fe0..b0345a4 100755
--- a/admin/nt/dist-build/build-dep-zips.py
+++ b/admin/nt/dist-build/build-dep-zips.py
@@ -31,6 +31,7 @@ EMACS_MAJOR_VERSION="28"
 # This list derives from the features we want Emacs to compile with.
 PKG_REQ='''mingw-w64-x86_64-giflib
 mingw-w64-x86_64-gnutls
+mingw-w64-x86_64-harfbuzz
 mingw-w64-x86_64-lcms2
 mingw-w64-x86_64-libjpeg-turbo
 mingw-w64-x86_64-libpng
diff --git a/admin/release-process b/admin/release-process
index b3dfad5..1ed7a2e 100644
--- a/admin/release-process
+++ b/admin/release-process
@@ -197,16 +197,11 @@ and change key bindings where necessary.  The current 
list of modes:
 2. Minibuffer binds 'M-s' to 'next-matching-history-element'
    (not useful any more since C-s can now search in the history).
 
-3. 'center-line' in Text mode was already moved to the text formatting
-   keymap as 'M-o M-s' (thus this binding is not necessary any more
-   in 'nroff-mode-map' too and can be removed now from the nroff mode
-   because it can now use the global key binding 'M-o M-s' 'center-line').
-
-4. PCL-CVS binds 'M-s' to 'cvs-status', and log-edit-mode binds it to
+3. PCL-CVS binds 'M-s' to 'cvs-status', and log-edit-mode binds it to
    'log-edit-comment-search-forward'.  Perhaps search commands
    on the global key binding 'M-s' are useless in these modes.
 
-5. Rmail binds '\es' to 'rmail-search'/'rmail-summary-search'.
+4. Rmail binds '\es' to 'rmail-search'/'rmail-summary-search'.
 
 
 * DOCUMENTATION
diff --git a/admin/unidata/BidiBrackets.txt b/admin/unidata/BidiBrackets.txt
index 9e51834..a95e5ca 100644
--- a/admin/unidata/BidiBrackets.txt
+++ b/admin/unidata/BidiBrackets.txt
@@ -1,6 +1,6 @@
-# BidiBrackets-12.0.0.txt
-# Date: 2018-11-02, 16:32:00 GMT [AG, LI, KW]
-# © 2018 Unicode®, Inc.
+# BidiBrackets-13.0.0.txt
+# Date: 2019-09-09, 19:31:00 GMT [AG, LI, KW]
+# © 2019 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in 
the U.S. and other countries.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 #
diff --git a/admin/unidata/BidiMirroring.txt b/admin/unidata/BidiMirroring.txt
index 80dab88..34e42ae 100644
--- a/admin/unidata/BidiMirroring.txt
+++ b/admin/unidata/BidiMirroring.txt
@@ -1,6 +1,6 @@
-# BidiMirroring-12.0.0.txt
-# Date: 2018-11-02, 16:33:00 GMT [KW, LI, RP]
-# © 2018 Unicode®, Inc.
+# BidiMirroring-13.0.0.txt
+# Date: 2019-09-09, 19:34:00 GMT [KW, LI, RP]
+# © 2019 Unicode®, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
@@ -15,7 +15,7 @@
 # value, for which there is another Unicode character that typically has a 
glyph
 # that is the mirror image of the original character's glyph.
 #
-# The repertoire covered by the file is Unicode 12.0.0.
+# The repertoire covered by the file is Unicode 13.0.0.
 #
 # The file contains a list of lines with mappings from one code point
 # to another one for character-based mirroring.
diff --git a/admin/unidata/Blocks.txt b/admin/unidata/Blocks.txt
index 7216614..56877db 100644
--- a/admin/unidata/Blocks.txt
+++ b/admin/unidata/Blocks.txt
@@ -1,6 +1,6 @@
-# Blocks-12.0.0.txt
-# Date: 2018-07-30, 19:40:00 GMT [KW]
-# © 2018 Unicode®, Inc.
+# Blocks-13.0.0.txt
+# Date: 2019-07-10, 19:06:00 GMT [KW]
+# © 2019 Unicode®, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
@@ -237,8 +237,10 @@ FFF0..FFFF; Specials
 10C80..10CFF; Old Hungarian
 10D00..10D3F; Hanifi Rohingya
 10E60..10E7F; Rumi Numeral Symbols
+10E80..10EBF; Yezidi
 10F00..10F2F; Old Sogdian
 10F30..10F6F; Sogdian
+10FB0..10FDF; Chorasmian
 10FE0..10FFF; Elymaic
 11000..1107F; Brahmi
 11080..110CF; Kaithi
@@ -260,6 +262,7 @@ FFF0..FFFF; Specials
 11700..1173F; Ahom
 11800..1184F; Dogra
 118A0..118FF; Warang Citi
+11900..1195F; Dives Akuru
 119A0..119FF; Nandinagari
 11A00..11A4F; Zanabazar Square
 11A50..11AAF; Soyombo
@@ -269,6 +272,7 @@ FFF0..FFFF; Specials
 11D00..11D5F; Masaram Gondi
 11D60..11DAF; Gunjala Gondi
 11EE0..11EFF; Makasar
+11FB0..11FBF; Lisu Supplement
 11FC0..11FFF; Tamil Supplement
 12000..123FF; Cuneiform
 12400..1247F; Cuneiform Numbers and Punctuation
@@ -285,6 +289,8 @@ FFF0..FFFF; Specials
 16FE0..16FFF; Ideographic Symbols and Punctuation
 17000..187FF; Tangut
 18800..18AFF; Tangut Components
+18B00..18CFF; Khitan Small Script
+18D00..18D8F; Tangut Supplement
 1B000..1B0FF; Kana Supplement
 1B100..1B12F; Kana Extended-A
 1B130..1B16F; Small Kana Extension
@@ -322,12 +328,14 @@ FFF0..FFFF; Specials
 1F900..1F9FF; Supplemental Symbols and Pictographs
 1FA00..1FA6F; Chess Symbols
 1FA70..1FAFF; Symbols and Pictographs Extended-A
+1FB00..1FBFF; Symbols for Legacy Computing
 20000..2A6DF; CJK Unified Ideographs Extension B
 2A700..2B73F; CJK Unified Ideographs Extension C
 2B740..2B81F; CJK Unified Ideographs Extension D
 2B820..2CEAF; CJK Unified Ideographs Extension E
 2CEB0..2EBEF; CJK Unified Ideographs Extension F
 2F800..2FA1F; CJK Compatibility Ideographs Supplement
+30000..3134F; CJK Unified Ideographs Extension G
 E0000..E007F; Tags
 E0100..E01EF; Variation Selectors Supplement
 F0000..FFFFF; Supplementary Private Use Area-A
diff --git a/admin/unidata/NormalizationTest.txt 
b/admin/unidata/NormalizationTest.txt
index 04c935c..fa9b0d9 100644
--- a/admin/unidata/NormalizationTest.txt
+++ b/admin/unidata/NormalizationTest.txt
@@ -1,5 +1,5 @@
-# NormalizationTest-12.0.0.txt
-# Date: 2019-01-22, 08:18:33 GMT
+# NormalizationTest-13.0.0.txt
+# Date: 2019-09-08, 23:31:12 GMT
 # © 2019 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in 
the U.S. and other countries.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
@@ -2149,6 +2149,7 @@
 32FC;32FC;32FC;30F0;30F0; # (㋼; ㋼; ㋼; ヰ; ヰ; ) CIRCLED KATAKANA WI
 32FD;32FD;32FD;30F1;30F1; # (㋽; ㋽; ㋽; ヱ; ヱ; ) CIRCLED KATAKANA WE
 32FE;32FE;32FE;30F2;30F2; # (㋾; ㋾; ㋾; ヲ; ヲ; ) CIRCLED KATAKANA WO
+32FF;32FF;32FF;4EE4 548C;4EE4 548C; # (㋿; ㋿; ㋿; 令和; 令和; ) SQUARE ERA NAME REIWA
 3300;3300;3300;30A2 30D1 30FC 30C8;30A2 30CF 309A 30FC 30C8; # (㌀; ㌀; ㌀; アパート; 
アハ◌゚ート; ) SQUARE APAATO
 3301;3301;3301;30A2 30EB 30D5 30A1;30A2 30EB 30D5 30A1; # (㌁; ㌁; ㌁; アルファ; 
アルファ; ) SQUARE ARUHUA
 3302;3302;3302;30A2 30F3 30DA 30A2;30A2 30F3 30D8 309A 30A2; # (㌂; ㌂; ㌂; アンペア; 
アンヘ◌゚ア; ) SQUARE ANPEA
@@ -2414,6 +2415,7 @@ AB5C;AB5C;AB5C;A727;A727; # (ꭜ; ꭜ; ꭜ; ꜧ; ꜧ; ) MODIFIER 
LETTER SMALL HE
 AB5D;AB5D;AB5D;AB37;AB37; # (ꭝ; ꭝ; ꭝ; ꬷ; ꬷ; ) MODIFIER LETTER SMALL L WITH 
INVERTED LAZY S
 AB5E;AB5E;AB5E;026B;026B; # (ꭞ; ꭞ; ꭞ; ɫ; ɫ; ) MODIFIER LETTER SMALL L WITH 
MIDDLE TILDE
 AB5F;AB5F;AB5F;AB52;AB52; # (ꭟ; ꭟ; ꭟ; ꭒ; ꭒ; ) MODIFIER LETTER SMALL U WITH 
LEFT HOOK
+AB69;AB69;AB69;028D;028D; # (ꭩ; ꭩ; ꭩ; ʍ; ʍ; ) MODIFIER LETTER SMALL TURNED W
 AC00;AC00;1100 1161;AC00;1100 1161; # (가; 가; 가; 가; 가; ) HANGUL SYLLABLE GA
 AC01;AC01;1100 1161 11A8;AC01;1100 1161 11A8; # (각; 각; 각; 각; 각; ) HANGUL 
SYLLABLE GAG
 AC02;AC02;1100 1161 11A9;AC02;1100 1161 11A9; # (갂; 갂; 갂; 갂; 갂; ) HANGUL 
SYLLABLE GAGG
@@ -15137,6 +15139,7 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH 
WHITE CIRCLE
 114BE;114BE;114B9 114BD;114BE;114B9 114BD; # (𑒾; 𑒾; 𑒾; 𑒾; 𑒾; ) TIRHUTA VOWEL 
SIGN AU
 115BA;115BA;115B8 115AF;115BA;115B8 115AF; # (𑖺; 𑖺; 𑖺; 𑖺; 𑖺; ) SIDDHAM VOWEL 
SIGN O
 115BB;115BB;115B9 115AF;115BB;115B9 115AF; # (𑖻; 𑖻; 𑖻; 𑖻; 𑖻; ) SIDDHAM VOWEL 
SIGN AU
+11938;11938;11935 11930;11938;11935 11930; # (𑤸; 𑤸; 𑤸; 𑤸; 𑤸; ) DIVES AKURU 
VOWEL SIGN O
 1D15E;1D157 1D165;1D157 1D165;1D157 1D165;1D157 1D165; # (𝅗𝅥; 𝅗𝅥; 𝅗𝅥; 𝅗𝅥; 𝅗𝅥; ) 
MUSICAL SYMBOL HALF NOTE
 1D15F;1D158 1D165;1D158 1D165;1D158 1D165;1D158 1D165; # (𝅘𝅥; 𝅘𝅥; 𝅘𝅥; 𝅘𝅥; 𝅘𝅥; ) 
MUSICAL SYMBOL QUARTER NOTE
 1D160;1D158 1D165 1D16E;1D158 1D165 1D16E;1D158 1D165 1D16E;1D158 1D165 1D16E; 
# (𝅘𝅥𝅮; 𝅘𝅥𝅮; 𝅘𝅥𝅮; 𝅘𝅥𝅮; 𝅘𝅥𝅮; ) MUSICAL SYMBOL EIGHTH NOTE
@@ -16423,6 +16426,16 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) 
HALFWIDTH WHITE CIRCLE
 1F248;1F248;1F248;3014 6557 3015;3014 6557 3015; # (🉈; 🉈; 🉈; 〔敗〕; 〔敗〕; ) 
TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
 1F250;1F250;1F250;5F97;5F97; # (🉐; 🉐; 🉐; 得; 得; ) CIRCLED IDEOGRAPH ADVANTAGE
 1F251;1F251;1F251;53EF;53EF; # (🉑; 🉑; 🉑; 可; 可; ) CIRCLED IDEOGRAPH ACCEPT
+1FBF0;1FBF0;1FBF0;0030;0030; # (🯰; 🯰; 🯰; 0; 0; ) SEGMENTED DIGIT ZERO
+1FBF1;1FBF1;1FBF1;0031;0031; # (🯱; 🯱; 🯱; 1; 1; ) SEGMENTED DIGIT ONE
+1FBF2;1FBF2;1FBF2;0032;0032; # (🯲; 🯲; 🯲; 2; 2; ) SEGMENTED DIGIT TWO
+1FBF3;1FBF3;1FBF3;0033;0033; # (🯳; 🯳; 🯳; 3; 3; ) SEGMENTED DIGIT THREE
+1FBF4;1FBF4;1FBF4;0034;0034; # (🯴; 🯴; 🯴; 4; 4; ) SEGMENTED DIGIT FOUR
+1FBF5;1FBF5;1FBF5;0035;0035; # (🯵; 🯵; 🯵; 5; 5; ) SEGMENTED DIGIT FIVE
+1FBF6;1FBF6;1FBF6;0036;0036; # (🯶; 🯶; 🯶; 6; 6; ) SEGMENTED DIGIT SIX
+1FBF7;1FBF7;1FBF7;0037;0037; # (🯷; 🯷; 🯷; 7; 7; ) SEGMENTED DIGIT SEVEN
+1FBF8;1FBF8;1FBF8;0038;0038; # (🯸; 🯸; 🯸; 8; 8; ) SEGMENTED DIGIT EIGHT
+1FBF9;1FBF9;1FBF9;0039;0039; # (🯹; 🯹; 🯹; 9; 9; ) SEGMENTED DIGIT NINE
 2F800;4E3D;4E3D;4E3D;4E3D; # (丽; 丽; 丽; 丽; 丽; ) CJK COMPATIBILITY 
IDEOGRAPH-2F800
 2F801;4E38;4E38;4E38;4E38; # (丸; 丸; 丸; 丸; 丸; ) CJK COMPATIBILITY 
IDEOGRAPH-2F801
 2F802;4E41;4E41;4E41;4E41; # (乁; 乁; 乁; 乁; 乁; ) CJK COMPATIBILITY 
IDEOGRAPH-2F802
@@ -17072,16 +17085,16 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) 
HALFWIDTH WHITE CIRCLE
 0061 0332 059A 0316 302A 0062;0061 302A 0332 0316 059A 0062;0061 302A 0332 
0316 059A 0062;0061 302A 0332 0316 059A 0062;0061 302A 0332 0316 059A 0062; # 
(a◌̲◌֚◌̖◌〪b; a◌〪◌̲◌̖◌֚b; a◌〪◌̲◌̖◌֚b; a◌〪◌̲◌̖◌֚b; a◌〪◌̲◌̖◌֚b; ) LATIN SMALL 
LETTER A, COMBINING LOW LINE, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT 
BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
 0061 059A 0316 302A 0333 0062;0061 302A 0316 0333 059A 0062;0061 302A 0316 
0333 059A 0062;0061 302A 0316 0333 059A 0062;0061 302A 0316 0333 059A 0062; # 
(a◌֚◌̖◌〪◌̳b; a◌〪◌̖◌̳◌֚b; a◌〪◌̖◌̳◌֚b; a◌〪◌̖◌̳◌֚b; a◌〪◌̖◌̳◌֚b; ) LATIN SMALL 
LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL 
TONE MARK, COMBINING DOUBLE LOW LINE, LATIN SMALL LETTER B
 0061 0333 059A 0316 302A 0062;0061 302A 0333 0316 059A 0062;0061 302A 0333 
0316 059A 0062;0061 302A 0333 0316 059A 0062;0061 302A 0333 0316 059A 0062; # 
(a◌̳◌֚◌̖◌〪b; a◌〪◌̳◌̖◌֚b; a◌〪◌̳◌̖◌֚b; a◌〪◌̳◌̖◌֚b; a◌〪◌̳◌̖◌֚b; ) LATIN SMALL 
LETTER A, COMBINING DOUBLE LOW LINE, HEBREW ACCENT YETIV, COMBINING GRAVE 
ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
-0061 093C 0334 0334 0062;0061 0334 0334 093C 0062;0061 0334 0334 093C 
0062;0061 0334 0334 093C 0062;0061 0334 0334 093C 0062; # (a◌़◌̴◌̴b; a◌̴◌̴◌़b; 
a◌̴◌̴◌़b; a◌̴◌̴◌़b; a◌̴◌̴◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
-0061 0334 093C 0334 0062;0061 0334 0334 093C 0062;0061 0334 0334 093C 
0062;0061 0334 0334 093C 0062;0061 0334 0334 093C 0062; # (a◌̴◌़◌̴b; a◌̴◌̴◌़b; 
a◌̴◌̴◌़b; a◌̴◌̴◌़b; a◌̴◌̴◌़b; ) LATIN SMALL LETTER A, COMBINING TILDE OVERLAY, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
-0061 093C 0334 0335 0062;0061 0334 0335 093C 0062;0061 0334 0335 093C 
0062;0061 0334 0335 093C 0062;0061 0334 0335 093C 0062; # (a◌़◌̴◌̵b; a◌̴◌̵◌़b; 
a◌̴◌̵◌़b; a◌̴◌̵◌़b; a◌̴◌̵◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, COMBINING SHORT STROKE OVERLAY, LATIN SMALL LETTER B
-0061 0335 093C 0334 0062;0061 0335 0334 093C 0062;0061 0335 0334 093C 
0062;0061 0335 0334 093C 0062;0061 0335 0334 093C 0062; # (a◌̵◌़◌̴b; a◌̵◌̴◌़b; 
a◌̵◌̴◌़b; a◌̵◌̴◌़b; a◌̵◌̴◌़b; ) LATIN SMALL LETTER A, COMBINING SHORT STROKE 
OVERLAY, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
-0061 093C 0334 0336 0062;0061 0334 0336 093C 0062;0061 0334 0336 093C 
0062;0061 0334 0336 093C 0062;0061 0334 0336 093C 0062; # (a◌़◌̴◌̶b; a◌̴◌̶◌़b; 
a◌̴◌̶◌़b; a◌̴◌̶◌़b; a◌̴◌̶◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, COMBINING LONG STROKE OVERLAY, LATIN SMALL LETTER B
-0061 0336 093C 0334 0062;0061 0336 0334 093C 0062;0061 0336 0334 093C 
0062;0061 0336 0334 093C 0062;0061 0336 0334 093C 0062; # (a◌̶◌़◌̴b; a◌̶◌̴◌़b; 
a◌̶◌̴◌़b; a◌̶◌̴◌़b; a◌̶◌̴◌़b; ) LATIN SMALL LETTER A, COMBINING LONG STROKE 
OVERLAY, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
-0061 093C 0334 0337 0062;0061 0334 0337 093C 0062;0061 0334 0337 093C 
0062;0061 0334 0337 093C 0062;0061 0334 0337 093C 0062; # (a◌़◌̴◌̷b; a◌̴◌̷◌़b; 
a◌̴◌̷◌़b; a◌̴◌̷◌़b; a◌̴◌̷◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, COMBINING SHORT SOLIDUS OVERLAY, LATIN SMALL LETTER B
-0061 0337 093C 0334 0062;0061 0337 0334 093C 0062;0061 0337 0334 093C 
0062;0061 0337 0334 093C 0062;0061 0337 0334 093C 0062; # (a◌̷◌़◌̴b; a◌̷◌̴◌़b; 
a◌̷◌̴◌़b; a◌̷◌̴◌़b; a◌̷◌̴◌़b; ) LATIN SMALL LETTER A, COMBINING SHORT SOLIDUS 
OVERLAY, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
-0061 093C 0334 0338 0062;0061 0334 0338 093C 0062;0061 0334 0338 093C 
0062;0061 0334 0338 093C 0062;0061 0334 0338 093C 0062; # (a◌़◌̴◌̸b; a◌̴◌̸◌़b; 
a◌̴◌̸◌़b; a◌̴◌̸◌़b; a◌̴◌̸◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, COMBINING LONG SOLIDUS OVERLAY, LATIN SMALL LETTER B
-0061 0338 093C 0334 0062;0061 0338 0334 093C 0062;0061 0338 0334 093C 
0062;0061 0338 0334 093C 0062;0061 0338 0334 093C 0062; # (a◌̸◌़◌̴b; a◌̸◌̴◌़b; 
a◌̸◌̴◌़b; a◌̸◌̴◌़b; a◌̸◌̴◌़b; ) LATIN SMALL LETTER A, COMBINING LONG SOLIDUS 
OVERLAY, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 0334 0062;0061 0334 0334 16FF0 0062;0061 0334 0334 16FF0 
0062;0061 0334 0334 16FF0 0062;0061 0334 0334 16FF0 0062; # (a𖿰◌̴◌̴b; a◌̴◌̴𖿰b; 
a◌̴◌̴𖿰b; a◌̴◌̴𖿰b; a◌̴◌̴𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 0334 16FF0 0334 0062;0061 0334 0334 16FF0 0062;0061 0334 0334 16FF0 
0062;0061 0334 0334 16FF0 0062;0061 0334 0334 16FF0 0062; # (a◌̴𖿰◌̴b; a◌̴◌̴𖿰b; 
a◌̴◌̴𖿰b; a◌̴◌̴𖿰b; a◌̴◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING TILDE OVERLAY, 
VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL 
LETTER B
+0061 16FF0 0334 0335 0062;0061 0334 0335 16FF0 0062;0061 0334 0335 16FF0 
0062;0061 0334 0335 16FF0 0062;0061 0334 0335 16FF0 0062; # (a𖿰◌̴◌̵b; a◌̴◌̵𖿰b; 
a◌̴◌̵𖿰b; a◌̴◌̵𖿰b; a◌̴◌̵𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, COMBINING SHORT STROKE OVERLAY, LATIN SMALL 
LETTER B
+0061 0335 16FF0 0334 0062;0061 0335 0334 16FF0 0062;0061 0335 0334 16FF0 
0062;0061 0335 0334 16FF0 0062;0061 0335 0334 16FF0 0062; # (a◌̵𖿰◌̴b; a◌̵◌̴𖿰b; 
a◌̵◌̴𖿰b; a◌̵◌̴𖿰b; a◌̵◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING SHORT STROKE 
OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
+0061 16FF0 0334 0336 0062;0061 0334 0336 16FF0 0062;0061 0334 0336 16FF0 
0062;0061 0334 0336 16FF0 0062;0061 0334 0336 16FF0 0062; # (a𖿰◌̴◌̶b; a◌̴◌̶𖿰b; 
a◌̴◌̶𖿰b; a◌̴◌̶𖿰b; a◌̴◌̶𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, COMBINING LONG STROKE OVERLAY, LATIN SMALL 
LETTER B
+0061 0336 16FF0 0334 0062;0061 0336 0334 16FF0 0062;0061 0336 0334 16FF0 
0062;0061 0336 0334 16FF0 0062;0061 0336 0334 16FF0 0062; # (a◌̶𖿰◌̴b; a◌̶◌̴𖿰b; 
a◌̶◌̴𖿰b; a◌̶◌̴𖿰b; a◌̶◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING LONG STROKE 
OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
+0061 16FF0 0334 0337 0062;0061 0334 0337 16FF0 0062;0061 0334 0337 16FF0 
0062;0061 0334 0337 16FF0 0062;0061 0334 0337 16FF0 0062; # (a𖿰◌̴◌̷b; a◌̴◌̷𖿰b; 
a◌̴◌̷𖿰b; a◌̴◌̷𖿰b; a◌̴◌̷𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, COMBINING SHORT SOLIDUS OVERLAY, LATIN SMALL 
LETTER B
+0061 0337 16FF0 0334 0062;0061 0337 0334 16FF0 0062;0061 0337 0334 16FF0 
0062;0061 0337 0334 16FF0 0062;0061 0337 0334 16FF0 0062; # (a◌̷𖿰◌̴b; a◌̷◌̴𖿰b; 
a◌̷◌̴𖿰b; a◌̷◌̴𖿰b; a◌̷◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING SHORT SOLIDUS 
OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
+0061 16FF0 0334 0338 0062;0061 0334 0338 16FF0 0062;0061 0334 0338 16FF0 
0062;0061 0334 0338 16FF0 0062;0061 0334 0338 16FF0 0062; # (a𖿰◌̴◌̸b; a◌̴◌̸𖿰b; 
a◌̴◌̸𖿰b; a◌̴◌̸𖿰b; a◌̴◌̸𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, COMBINING LONG SOLIDUS OVERLAY, LATIN SMALL 
LETTER B
+0061 0338 16FF0 0334 0062;0061 0338 0334 16FF0 0062;0061 0338 0334 16FF0 
0062;0061 0338 0334 16FF0 0062;0061 0338 0334 16FF0 0062; # (a◌̸𖿰◌̴b; a◌̸◌̴𖿰b; 
a◌̸◌̴𖿰b; a◌̸◌̴𖿰b; a◌̸◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING LONG SOLIDUS 
OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
 0061 059A 0316 302A 0339 0062;0061 302A 0316 0339 059A 0062;0061 302A 0316 
0339 059A 0062;0061 302A 0316 0339 059A 0062;0061 302A 0316 0339 059A 0062; # 
(a◌֚◌̖◌〪◌̹b; a◌〪◌̖◌̹◌֚b; a◌〪◌̖◌̹◌֚b; a◌〪◌̖◌̹◌֚b; a◌〪◌̖◌̹◌֚b; ) LATIN SMALL 
LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL 
TONE MARK, COMBINING RIGHT HALF RING BELOW, LATIN SMALL LETTER B
 0061 0339 059A 0316 302A 0062;0061 302A 0339 0316 059A 0062;0061 302A 0339 
0316 059A 0062;0061 302A 0339 0316 059A 0062;0061 302A 0339 0316 059A 0062; # 
(a◌̹◌֚◌̖◌〪b; a◌〪◌̹◌̖◌֚b; a◌〪◌̹◌̖◌֚b; a◌〪◌̹◌̖◌֚b; a◌〪◌̹◌̖◌֚b; ) LATIN SMALL 
LETTER A, COMBINING RIGHT HALF RING BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE 
ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
 0061 059A 0316 302A 033A 0062;0061 302A 0316 033A 059A 0062;0061 302A 0316 
033A 059A 0062;0061 302A 0316 033A 059A 0062;0061 302A 0316 033A 059A 0062; # 
(a◌֚◌̖◌〪◌̺b; a◌〪◌̖◌̺◌֚b; a◌〪◌̖◌̺◌֚b; a◌〪◌̖◌̺◌֚b; a◌〪◌̖◌̺◌֚b; ) LATIN SMALL 
LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL 
TONE MARK, COMBINING INVERTED BRIDGE BELOW, LATIN SMALL LETTER B
@@ -17618,8 +17631,8 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH 
WHITE CIRCLE
 0061 08FE 0315 0300 05AE 0062;0061 05AE 08FE 0300 0315 0062;0061 05AE 08FE 
0300 0315 0062;0061 05AE 08FE 0300 0315 0062;0061 05AE 08FE 0300 0315 0062; # 
(a◌ࣾ◌̕◌̀◌֮b; a◌֮◌ࣾ◌̀◌̕b; a◌֮◌ࣾ◌̀◌̕b; a◌֮◌ࣾ◌̀◌̕b; a◌֮◌ࣾ◌̀◌̕b; ) LATIN SMALL 
LETTER A, ARABIC DAMMA WITH DOT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE 
ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 0315 0300 05AE 08FF 0062;00E0 05AE 08FF 0315 0062;0061 05AE 0300 08FF 
0315 0062;00E0 05AE 08FF 0315 0062;0061 05AE 0300 08FF 0315 0062; # 
(a◌̕◌̀◌֮◌ࣿb; à◌֮◌ࣿ◌̕b; a◌֮◌̀◌ࣿ◌̕b; à◌֮◌ࣿ◌̕b; a◌֮◌̀◌ࣿ◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
ARABIC MARK SIDEWAYS NOON GHUNNA, LATIN SMALL LETTER B
 0061 08FF 0315 0300 05AE 0062;0061 05AE 08FF 0300 0315 0062;0061 05AE 08FF 
0300 0315 0062;0061 05AE 08FF 0300 0315 0062;0061 05AE 08FF 0300 0315 0062; # 
(a◌ࣿ◌̕◌̀◌֮b; a◌֮◌ࣿ◌̀◌̕b; a◌֮◌ࣿ◌̀◌̕b; a◌֮◌ࣿ◌̀◌̕b; a◌֮◌ࣿ◌̀◌̕b; ) LATIN SMALL 
LETTER A, ARABIC MARK SIDEWAYS NOON GHUNNA, COMBINING COMMA ABOVE RIGHT, 
COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
-0061 3099 093C 0334 093C 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 
093C 3099 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062; # 
(a◌゙◌़◌̴◌़b; a◌̴◌़◌़◌゙b; a◌̴◌़◌़◌゙b; a◌̴◌़◌़◌゙b; a◌̴◌़◌़◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, DEVANAGARI SIGN NUKTA, LATIN SMALL LETTER B
-0061 093C 3099 093C 0334 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 
093C 3099 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062; # 
(a◌़◌゙◌़◌̴b; a◌̴◌़◌़◌゙b; a◌̴◌़◌़◌゙b; a◌̴◌़◌़◌゙b; a◌̴◌़◌़◌゙b; ) LATIN SMALL 
LETTER A, DEVANAGARI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 093C 0062;0061 16FF0 093C 093C 3099 0062;0061 16FF0 093C 
093C 3099 0062;0061 16FF0 093C 093C 3099 0062;0061 16FF0 093C 093C 3099 0062; # 
(a◌゙◌𖿰़◌़b; a𖿰◌़◌़◌゙b; a𖿰◌़◌़◌゙b; a𖿰◌़◌़◌゙b; a𖿰◌़◌़◌゙b; ) LATIN SMALL LETTER A, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, DEVANAGARI SIGN NUKTA, LATIN SMALL LETTER 
B
+0061 093C 3099 093C 16FF0 0062;0061 16FF0 093C 093C 3099 0062;0061 16FF0 093C 
093C 3099 0062;0061 16FF0 093C 093C 3099 0062;0061 16FF0 093C 093C 3099 0062; # 
(a◌़◌゙◌𖿰़b; a𖿰◌़◌़◌゙b; a𖿰◌़◌़◌゙b; a𖿰◌़◌़◌゙b; a𖿰◌़◌़◌゙b; ) LATIN SMALL LETTER A, 
DEVANAGARI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER 
B
 0061 05B0 094D 3099 094D 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 
094D 05B0 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062; # 
(a◌ְ◌्◌゙◌्b; a◌゙◌्◌्◌ְb; a◌゙◌्◌्◌ְb; a◌゙◌्◌्◌ְb; a◌゙◌्◌्◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN VIRAMA, LATIN SMALL LETTER 
B
 0061 094D 05B0 094D 3099 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 
094D 05B0 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062; # 
(a◌्◌ְ◌्◌゙b; a◌゙◌्◌्◌ְb; a◌゙◌्◌्◌ְb; a◌゙◌्◌्◌ְb; a◌゙◌्◌्◌ְb; ) LATIN SMALL 
LETTER A, DEVANAGARI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 0315 0300 05AE 0951 0062;00E0 05AE 0951 0315 0062;0061 05AE 0300 0951 
0315 0062;00E0 05AE 0951 0315 0062;0061 05AE 0300 0951 0315 0062; # 
(a◌̕◌̀◌֮◌॑b; à◌֮◌॑◌̕b; a◌֮◌̀◌॑◌̕b; à◌֮◌॑◌̕b; a◌֮◌̀◌॑◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
DEVANAGARI STRESS SIGN UDATTA, LATIN SMALL LETTER B
@@ -17630,22 +17643,22 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) 
HALFWIDTH WHITE CIRCLE
 0061 0953 0315 0300 05AE 0062;0061 05AE 0953 0300 0315 0062;0061 05AE 0953 
0300 0315 0062;0061 05AE 0953 0300 0315 0062;0061 05AE 0953 0300 0315 0062; # 
(a◌॓◌̕◌̀◌֮b; a◌֮◌॓◌̀◌̕b; a◌֮◌॓◌̀◌̕b; a◌֮◌॓◌̀◌̕b; a◌֮◌॓◌̀◌̕b; ) LATIN SMALL 
LETTER A, DEVANAGARI GRAVE ACCENT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE 
ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 0315 0300 05AE 0954 0062;00E0 05AE 0954 0315 0062;0061 05AE 0300 0954 
0315 0062;00E0 05AE 0954 0315 0062;0061 05AE 0300 0954 0315 0062; # 
(a◌̕◌̀◌֮◌॔b; à◌֮◌॔◌̕b; a◌֮◌̀◌॔◌̕b; à◌֮◌॔◌̕b; a◌֮◌̀◌॔◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
DEVANAGARI ACUTE ACCENT, LATIN SMALL LETTER B
 0061 0954 0315 0300 05AE 0062;0061 05AE 0954 0300 0315 0062;0061 05AE 0954 
0300 0315 0062;0061 05AE 0954 0300 0315 0062;0061 05AE 0954 0300 0315 0062; # 
(a◌॔◌̕◌̀◌֮b; a◌֮◌॔◌̀◌̕b; a◌֮◌॔◌̀◌̕b; a◌֮◌॔◌̀◌̕b; a◌֮◌॔◌̀◌̕b; ) LATIN SMALL 
LETTER A, DEVANAGARI ACUTE ACCENT, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE 
ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
-0061 3099 093C 0334 09BC 0062;0061 0334 093C 09BC 3099 0062;0061 0334 093C 
09BC 3099 0062;0061 0334 093C 09BC 3099 0062;0061 0334 093C 09BC 3099 0062; # 
(a◌゙◌़◌̴◌়b; a◌̴◌़◌়◌゙b; a◌̴◌़◌়◌゙b; a◌̴◌़◌়◌゙b; a◌̴◌़◌়◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, BENGALI SIGN NUKTA, LATIN SMALL LETTER B
-0061 09BC 3099 093C 0334 0062;0061 0334 09BC 093C 3099 0062;0061 0334 09BC 
093C 3099 0062;0061 0334 09BC 093C 3099 0062;0061 0334 09BC 093C 3099 0062; # 
(a◌়◌゙◌़◌̴b; a◌̴◌়◌़◌゙b; a◌̴◌়◌़◌゙b; a◌̴◌়◌़◌゙b; a◌̴◌়◌़◌゙b; ) LATIN SMALL 
LETTER A, BENGALI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 09BC 0062;0061 16FF0 093C 09BC 3099 0062;0061 16FF0 093C 
09BC 3099 0062;0061 16FF0 093C 09BC 3099 0062;0061 16FF0 093C 09BC 3099 0062; # 
(a◌゙◌𖿰़◌়b; a𖿰◌़◌়◌゙b; a𖿰◌़◌়◌゙b; a𖿰◌़◌়◌゙b; a𖿰◌़◌়◌゙b; ) LATIN SMALL LETTER A, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, BENGALI SIGN NUKTA, LATIN SMALL LETTER B
+0061 09BC 3099 093C 16FF0 0062;0061 16FF0 09BC 093C 3099 0062;0061 16FF0 09BC 
093C 3099 0062;0061 16FF0 09BC 093C 3099 0062;0061 16FF0 09BC 093C 3099 0062; # 
(a◌়◌゙◌𖿰़b; a𖿰◌়◌़◌゙b; a𖿰◌়◌़◌゙b; a𖿰◌়◌़◌゙b; a𖿰◌়◌़◌゙b; ) LATIN SMALL LETTER A, 
BENGALI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI 
SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
 0061 05B0 094D 3099 09CD 0062;0061 3099 094D 09CD 05B0 0062;0061 3099 094D 
09CD 05B0 0062;0061 3099 094D 09CD 05B0 0062;0061 3099 094D 09CD 05B0 0062; # 
(a◌ְ◌्◌゙◌্b; a◌゙◌्◌্◌ְb; a◌゙◌्◌্◌ְb; a◌゙◌्◌্◌ְb; a◌゙◌्◌্◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, BENGALI SIGN VIRAMA, LATIN SMALL LETTER B
 0061 09CD 05B0 094D 3099 0062;0061 3099 09CD 094D 05B0 0062;0061 3099 09CD 
094D 05B0 0062;0061 3099 09CD 094D 05B0 0062;0061 3099 09CD 094D 05B0 0062; # 
(a◌্◌ְ◌्◌゙b; a◌゙◌্◌्◌ְb; a◌゙◌্◌्◌ְb; a◌゙◌্◌्◌ְb; a◌゙◌্◌्◌ְb; ) LATIN SMALL 
LETTER A, BENGALI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 0315 0300 05AE 09FE 0062;00E0 05AE 09FE 0315 0062;0061 05AE 0300 09FE 
0315 0062;00E0 05AE 09FE 0315 0062;0061 05AE 0300 09FE 0315 0062; # 
(a◌̕◌̀◌֮◌৾b; à◌֮◌৾◌̕b; a◌֮◌̀◌৾◌̕b; à◌֮◌৾◌̕b; a◌֮◌̀◌৾◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
BENGALI SANDHI MARK, LATIN SMALL LETTER B
 0061 09FE 0315 0300 05AE 0062;0061 05AE 09FE 0300 0315 0062;0061 05AE 09FE 
0300 0315 0062;0061 05AE 09FE 0300 0315 0062;0061 05AE 09FE 0300 0315 0062; # 
(a◌৾◌̕◌̀◌֮b; a◌֮◌৾◌̀◌̕b; a◌֮◌৾◌̀◌̕b; a◌֮◌৾◌̀◌̕b; a◌֮◌৾◌̀◌̕b; ) LATIN SMALL 
LETTER A, BENGALI SANDHI MARK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE 
ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
-0061 3099 093C 0334 0A3C 0062;0061 0334 093C 0A3C 3099 0062;0061 0334 093C 
0A3C 3099 0062;0061 0334 093C 0A3C 3099 0062;0061 0334 093C 0A3C 3099 0062; # 
(a◌゙◌़◌̴◌਼b; a◌̴◌़◌਼◌゙b; a◌̴◌़◌਼◌゙b; a◌̴◌़◌਼◌゙b; a◌̴◌़◌਼◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, GURMUKHI SIGN NUKTA, LATIN SMALL LETTER B
-0061 0A3C 3099 093C 0334 0062;0061 0334 0A3C 093C 3099 0062;0061 0334 0A3C 
093C 3099 0062;0061 0334 0A3C 093C 3099 0062;0061 0334 0A3C 093C 3099 0062; # 
(a◌਼◌゙◌़◌̴b; a◌̴◌਼◌़◌゙b; a◌̴◌਼◌़◌゙b; a◌̴◌਼◌़◌゙b; a◌̴◌਼◌़◌゙b; ) LATIN SMALL 
LETTER A, GURMUKHI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 0A3C 0062;0061 16FF0 093C 0A3C 3099 0062;0061 16FF0 093C 
0A3C 3099 0062;0061 16FF0 093C 0A3C 3099 0062;0061 16FF0 093C 0A3C 3099 0062; # 
(a◌゙◌𖿰़◌਼b; a𖿰◌़◌਼◌゙b; a𖿰◌़◌਼◌゙b; a𖿰◌़◌਼◌゙b; a𖿰◌़◌਼◌゙b; ) LATIN SMALL LETTER A, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, GURMUKHI SIGN NUKTA, LATIN SMALL LETTER B
+0061 0A3C 3099 093C 16FF0 0062;0061 16FF0 0A3C 093C 3099 0062;0061 16FF0 0A3C 
093C 3099 0062;0061 16FF0 0A3C 093C 3099 0062;0061 16FF0 0A3C 093C 3099 0062; # 
(a◌਼◌゙◌𖿰़b; a𖿰◌਼◌़◌゙b; a𖿰◌਼◌़◌゙b; a𖿰◌਼◌़◌゙b; a𖿰◌਼◌़◌゙b; ) LATIN SMALL LETTER A, 
GURMUKHI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI 
SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
 0061 05B0 094D 3099 0A4D 0062;0061 3099 094D 0A4D 05B0 0062;0061 3099 094D 
0A4D 05B0 0062;0061 3099 094D 0A4D 05B0 0062;0061 3099 094D 0A4D 05B0 0062; # 
(a◌ְ◌्◌゙◌੍b; a◌゙◌्◌੍◌ְb; a◌゙◌्◌੍◌ְb; a◌゙◌्◌੍◌ְb; a◌゙◌्◌੍◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, GURMUKHI SIGN VIRAMA, LATIN SMALL LETTER B
 0061 0A4D 05B0 094D 3099 0062;0061 3099 0A4D 094D 05B0 0062;0061 3099 0A4D 
094D 05B0 0062;0061 3099 0A4D 094D 05B0 0062;0061 3099 0A4D 094D 05B0 0062; # 
(a◌੍◌ְ◌्◌゙b; a◌゙◌੍◌्◌ְb; a◌゙◌੍◌्◌ְb; a◌゙◌੍◌्◌ְb; a◌゙◌੍◌्◌ְb; ) LATIN SMALL 
LETTER A, GURMUKHI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
-0061 3099 093C 0334 0ABC 0062;0061 0334 093C 0ABC 3099 0062;0061 0334 093C 
0ABC 3099 0062;0061 0334 093C 0ABC 3099 0062;0061 0334 093C 0ABC 3099 0062; # 
(a◌゙◌़◌̴◌઼b; a◌̴◌़◌઼◌゙b; a◌̴◌़◌઼◌゙b; a◌̴◌़◌઼◌゙b; a◌̴◌़◌઼◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, GUJARATI SIGN NUKTA, LATIN SMALL LETTER B
-0061 0ABC 3099 093C 0334 0062;0061 0334 0ABC 093C 3099 0062;0061 0334 0ABC 
093C 3099 0062;0061 0334 0ABC 093C 3099 0062;0061 0334 0ABC 093C 3099 0062; # 
(a◌઼◌゙◌़◌̴b; a◌̴◌઼◌़◌゙b; a◌̴◌઼◌़◌゙b; a◌̴◌઼◌़◌゙b; a◌̴◌઼◌़◌゙b; ) LATIN SMALL 
LETTER A, GUJARATI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 0ABC 0062;0061 16FF0 093C 0ABC 3099 0062;0061 16FF0 093C 
0ABC 3099 0062;0061 16FF0 093C 0ABC 3099 0062;0061 16FF0 093C 0ABC 3099 0062; # 
(a◌゙◌𖿰़◌઼b; a𖿰◌़◌઼◌゙b; a𖿰◌़◌઼◌゙b; a𖿰◌़◌઼◌゙b; a𖿰◌़◌઼◌゙b; ) LATIN SMALL LETTER A, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, GUJARATI SIGN NUKTA, LATIN SMALL LETTER B
+0061 0ABC 3099 093C 16FF0 0062;0061 16FF0 0ABC 093C 3099 0062;0061 16FF0 0ABC 
093C 3099 0062;0061 16FF0 0ABC 093C 3099 0062;0061 16FF0 0ABC 093C 3099 0062; # 
(a◌઼◌゙◌𖿰़b; a𖿰◌઼◌़◌゙b; a𖿰◌઼◌़◌゙b; a𖿰◌઼◌़◌゙b; a𖿰◌઼◌़◌゙b; ) LATIN SMALL LETTER A, 
GUJARATI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI 
SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
 0061 05B0 094D 3099 0ACD 0062;0061 3099 094D 0ACD 05B0 0062;0061 3099 094D 
0ACD 05B0 0062;0061 3099 094D 0ACD 05B0 0062;0061 3099 094D 0ACD 05B0 0062; # 
(a◌ְ◌्◌゙◌્b; a◌゙◌्◌્◌ְb; a◌゙◌्◌્◌ְb; a◌゙◌्◌્◌ְb; a◌゙◌्◌્◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, GUJARATI SIGN VIRAMA, LATIN SMALL LETTER B
 0061 0ACD 05B0 094D 3099 0062;0061 3099 0ACD 094D 05B0 0062;0061 3099 0ACD 
094D 05B0 0062;0061 3099 0ACD 094D 05B0 0062;0061 3099 0ACD 094D 05B0 0062; # 
(a◌્◌ְ◌्◌゙b; a◌゙◌્◌्◌ְb; a◌゙◌્◌्◌ְb; a◌゙◌્◌्◌ְb; a◌゙◌્◌्◌ְb; ) LATIN SMALL 
LETTER A, GUJARATI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
-0061 3099 093C 0334 0B3C 0062;0061 0334 093C 0B3C 3099 0062;0061 0334 093C 
0B3C 3099 0062;0061 0334 093C 0B3C 3099 0062;0061 0334 093C 0B3C 3099 0062; # 
(a◌゙◌़◌̴◌଼b; a◌̴◌़◌଼◌゙b; a◌̴◌़◌଼◌゙b; a◌̴◌़◌଼◌゙b; a◌̴◌़◌଼◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, ORIYA SIGN NUKTA, LATIN SMALL LETTER B
-0061 0B3C 3099 093C 0334 0062;0061 0334 0B3C 093C 3099 0062;0061 0334 0B3C 
093C 3099 0062;0061 0334 0B3C 093C 3099 0062;0061 0334 0B3C 093C 3099 0062; # 
(a◌଼◌゙◌़◌̴b; a◌̴◌଼◌़◌゙b; a◌̴◌଼◌़◌゙b; a◌̴◌଼◌़◌゙b; a◌̴◌଼◌़◌゙b; ) LATIN SMALL 
LETTER A, ORIYA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 0B3C 0062;0061 16FF0 093C 0B3C 3099 0062;0061 16FF0 093C 
0B3C 3099 0062;0061 16FF0 093C 0B3C 3099 0062;0061 16FF0 093C 0B3C 3099 0062; # 
(a◌゙◌𖿰़◌଼b; a𖿰◌़◌଼◌゙b; a𖿰◌़◌଼◌゙b; a𖿰◌़◌଼◌゙b; a𖿰◌़◌଼◌゙b; ) LATIN SMALL LETTER A, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, ORIYA SIGN NUKTA, LATIN SMALL LETTER B
+0061 0B3C 3099 093C 16FF0 0062;0061 16FF0 0B3C 093C 3099 0062;0061 16FF0 0B3C 
093C 3099 0062;0061 16FF0 0B3C 093C 3099 0062;0061 16FF0 0B3C 093C 3099 0062; # 
(a◌଼◌゙◌𖿰़b; a𖿰◌଼◌़◌゙b; a𖿰◌଼◌़◌゙b; a𖿰◌଼◌़◌゙b; a𖿰◌଼◌़◌゙b; ) LATIN SMALL LETTER A, 
ORIYA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI 
SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
 0061 05B0 094D 3099 0B4D 0062;0061 3099 094D 0B4D 05B0 0062;0061 3099 094D 
0B4D 05B0 0062;0061 3099 094D 0B4D 05B0 0062;0061 3099 094D 0B4D 05B0 0062; # 
(a◌ְ◌्◌゙◌୍b; a◌゙◌्◌୍◌ְb; a◌゙◌्◌୍◌ְb; a◌゙◌्◌୍◌ְb; a◌゙◌्◌୍◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, ORIYA SIGN VIRAMA, LATIN SMALL LETTER B
 0061 0B4D 05B0 094D 3099 0062;0061 3099 0B4D 094D 05B0 0062;0061 3099 0B4D 
094D 05B0 0062;0061 3099 0B4D 094D 05B0 0062;0061 3099 0B4D 094D 05B0 0062; # 
(a◌୍◌ְ◌्◌゙b; a◌゙◌୍◌्◌ְb; a◌゙◌୍◌्◌ְb; a◌゙◌୍◌्◌ְb; a◌゙◌୍◌्◌ְb; ) LATIN SMALL 
LETTER A, ORIYA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 05B0 094D 3099 0BCD 0062;0061 3099 094D 0BCD 05B0 0062;0061 3099 094D 
0BCD 05B0 0062;0061 3099 094D 0BCD 05B0 0062;0061 3099 094D 0BCD 05B0 0062; # 
(a◌ְ◌्◌゙◌்b; a◌゙◌्◌்◌ְb; a◌゙◌्◌்◌ְb; a◌゙◌्◌்◌ְb; a◌゙◌्◌்◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, TAMIL SIGN VIRAMA, LATIN SMALL LETTER B
@@ -17656,8 +17669,8 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH 
WHITE CIRCLE
 0061 0C55 0C56 0C55 0711 0062;0061 0711 0C55 0C55 0C56 0062;0061 0711 0C55 
0C55 0C56 0062;0061 0711 0C55 0C55 0C56 0062;0061 0711 0C55 0C55 0C56 0062; # 
(a◌ౕ◌ౖ◌ౕ◌ܑb; a◌ܑ◌ౕ◌ౕ◌ౖb; a◌ܑ◌ౕ◌ౕ◌ౖb; a◌ܑ◌ౕ◌ౕ◌ౖb; a◌ܑ◌ౕ◌ౕ◌ౖb; ) LATIN SMALL 
LETTER A, TELUGU LENGTH MARK, TELUGU AI LENGTH MARK, TELUGU LENGTH MARK, SYRIAC 
LETTER SUPERSCRIPT ALAPH, LATIN SMALL LETTER B
 0061 0E38 0C56 0C55 0C56 0062;0061 0C55 0C56 0C56 0E38 0062;0061 0C55 0C56 
0C56 0E38 0062;0061 0C55 0C56 0C56 0E38 0062;0061 0C55 0C56 0C56 0E38 0062; # 
(a◌ุ◌ౖ◌ౕ◌ౖb; a◌ౕ◌ౖ◌ౖ◌ุb; a◌ౕ◌ౖ◌ౖ◌ุb; a◌ౕ◌ౖ◌ౖ◌ุb; a◌ౕ◌ౖ◌ౖ◌ุb; ) LATIN SMALL 
LETTER A, THAI CHARACTER SARA U, TELUGU AI LENGTH MARK, TELUGU LENGTH MARK, 
TELUGU AI LENGTH MARK, LATIN SMALL LETTER B
 0061 0C56 0E38 0C56 0C55 0062;0061 0C55 0C56 0C56 0E38 0062;0061 0C55 0C56 
0C56 0E38 0062;0061 0C55 0C56 0C56 0E38 0062;0061 0C55 0C56 0C56 0E38 0062; # 
(a◌ౖ◌ุ◌ౖ◌ౕb; a◌ౕ◌ౖ◌ౖ◌ุb; a◌ౕ◌ౖ◌ౖ◌ุb; a◌ౕ◌ౖ◌ౖ◌ุb; a◌ౕ◌ౖ◌ౖ◌ุb; ) LATIN SMALL 
LETTER A, TELUGU AI LENGTH MARK, THAI CHARACTER SARA U, TELUGU AI LENGTH MARK, 
TELUGU LENGTH MARK, LATIN SMALL LETTER B
-0061 3099 093C 0334 0CBC 0062;0061 0334 093C 0CBC 3099 0062;0061 0334 093C 
0CBC 3099 0062;0061 0334 093C 0CBC 3099 0062;0061 0334 093C 0CBC 3099 0062; # 
(a◌゙◌़◌̴◌಼b; a◌̴◌़◌಼◌゙b; a◌̴◌़◌಼◌゙b; a◌̴◌़◌಼◌゙b; a◌̴◌़◌಼◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, KANNADA SIGN NUKTA, LATIN SMALL LETTER B
-0061 0CBC 3099 093C 0334 0062;0061 0334 0CBC 093C 3099 0062;0061 0334 0CBC 
093C 3099 0062;0061 0334 0CBC 093C 3099 0062;0061 0334 0CBC 093C 3099 0062; # 
(a◌಼◌゙◌़◌̴b; a◌̴◌಼◌़◌゙b; a◌̴◌಼◌़◌゙b; a◌̴◌಼◌़◌゙b; a◌̴◌಼◌़◌゙b; ) LATIN SMALL 
LETTER A, KANNADA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 0CBC 0062;0061 16FF0 093C 0CBC 3099 0062;0061 16FF0 093C 
0CBC 3099 0062;0061 16FF0 093C 0CBC 3099 0062;0061 16FF0 093C 0CBC 3099 0062; # 
(a◌゙◌𖿰़◌಼b; a𖿰◌़◌಼◌゙b; a𖿰◌़◌಼◌゙b; a𖿰◌़◌಼◌゙b; a𖿰◌़◌಼◌゙b; ) LATIN SMALL LETTER A, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, KANNADA SIGN NUKTA, LATIN SMALL LETTER B
+0061 0CBC 3099 093C 16FF0 0062;0061 16FF0 0CBC 093C 3099 0062;0061 16FF0 0CBC 
093C 3099 0062;0061 16FF0 0CBC 093C 3099 0062;0061 16FF0 0CBC 093C 3099 0062; # 
(a◌಼◌゙◌𖿰़b; a𖿰◌಼◌़◌゙b; a𖿰◌಼◌़◌゙b; a𖿰◌಼◌़◌゙b; a𖿰◌಼◌़◌゙b; ) LATIN SMALL LETTER A, 
KANNADA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI 
SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
 0061 05B0 094D 3099 0CCD 0062;0061 3099 094D 0CCD 05B0 0062;0061 3099 094D 
0CCD 05B0 0062;0061 3099 094D 0CCD 05B0 0062;0061 3099 094D 0CCD 05B0 0062; # 
(a◌ְ◌्◌゙◌್b; a◌゙◌्◌್◌ְb; a◌゙◌्◌್◌ְb; a◌゙◌्◌್◌ְb; a◌゙◌्◌್◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, KANNADA SIGN VIRAMA, LATIN SMALL LETTER B
 0061 0CCD 05B0 094D 3099 0062;0061 3099 0CCD 094D 05B0 0062;0061 3099 0CCD 
094D 05B0 0062;0061 3099 0CCD 094D 05B0 0062;0061 3099 0CCD 094D 05B0 0062; # 
(a◌್◌ְ◌्◌゙b; a◌゙◌್◌्◌ְb; a◌゙◌್◌्◌ְb; a◌゙◌್◌्◌ְb; a◌゙◌್◌्◌ְb; ) LATIN SMALL 
LETTER A, KANNADA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 05B0 094D 3099 0D3B 0062;0061 3099 094D 0D3B 05B0 0062;0061 3099 094D 
0D3B 05B0 0062;0061 3099 094D 0D3B 05B0 0062;0061 3099 094D 0D3B 05B0 0062; # 
(a◌ְ◌्◌゙◌഻b; a◌゙◌्◌഻◌ְb; a◌゙◌्◌഻◌ְb; a◌゙◌्◌഻◌ְb; a◌゙◌्◌഻◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, MALAYALAM SIGN VERTICAL BAR VIRAMA, LATIN 
SMALL LETTER B
@@ -17734,8 +17747,8 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH 
WHITE CIRCLE
 0061 0F87 0315 0300 05AE 0062;0061 05AE 0F87 0300 0315 0062;0061 05AE 0F87 
0300 0315 0062;0061 05AE 0F87 0300 0315 0062;0061 05AE 0F87 0300 0315 0062; # 
(a◌྇◌̕◌̀◌֮b; a◌֮◌྇◌̀◌̕b; a◌֮◌྇◌̀◌̕b; a◌֮◌྇◌̀◌̕b; a◌֮◌྇◌̀◌̕b; ) LATIN SMALL 
LETTER A, TIBETAN SIGN YANG RTAGS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE 
ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 059A 0316 302A 0FC6 0062;0061 302A 0316 0FC6 059A 0062;0061 302A 0316 
0FC6 059A 0062;0061 302A 0316 0FC6 059A 0062;0061 302A 0316 0FC6 059A 0062; # 
(a◌֚◌̖◌〪◌࿆b; a◌〪◌̖◌࿆◌֚b; a◌〪◌̖◌࿆◌֚b; a◌〪◌̖◌࿆◌֚b; a◌〪◌̖◌࿆◌֚b; ) LATIN SMALL 
LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL 
TONE MARK, TIBETAN SYMBOL PADMA GDAN, LATIN SMALL LETTER B
 0061 0FC6 059A 0316 302A 0062;0061 302A 0FC6 0316 059A 0062;0061 302A 0FC6 
0316 059A 0062;0061 302A 0FC6 0316 059A 0062;0061 302A 0FC6 0316 059A 0062; # 
(a◌࿆◌֚◌̖◌〪b; a◌〪◌࿆◌̖◌֚b; a◌〪◌࿆◌̖◌֚b; a◌〪◌࿆◌̖◌֚b; a◌〪◌࿆◌̖◌֚b; ) LATIN SMALL 
LETTER A, TIBETAN SYMBOL PADMA GDAN, HEBREW ACCENT YETIV, COMBINING GRAVE 
ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
-0061 3099 093C 0334 1037 0062;0061 0334 093C 1037 3099 0062;0061 0334 093C 
1037 3099 0062;0061 0334 093C 1037 3099 0062;0061 0334 093C 1037 3099 0062; # 
(a◌゙◌़◌̴◌့b; a◌̴◌़◌့◌゙b; a◌̴◌़◌့◌゙b; a◌̴◌़◌့◌゙b; a◌̴◌़◌့◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, MYANMAR SIGN DOT BELOW, LATIN SMALL LETTER B
-0061 1037 3099 093C 0334 0062;0061 0334 1037 093C 3099 0062;0061 0334 1037 
093C 3099 0062;0061 0334 1037 093C 3099 0062;0061 0334 1037 093C 3099 0062; # 
(a◌့◌゙◌़◌̴b; a◌̴◌့◌़◌゙b; a◌̴◌့◌़◌゙b; a◌̴◌့◌़◌゙b; a◌̴◌့◌़◌゙b; ) LATIN SMALL 
LETTER A, MYANMAR SIGN DOT BELOW, COMBINING KATAKANA-HIRAGANA VOICED SOUND 
MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 1037 0062;0061 16FF0 093C 1037 3099 0062;0061 16FF0 093C 
1037 3099 0062;0061 16FF0 093C 1037 3099 0062;0061 16FF0 093C 1037 3099 0062; # 
(a◌゙◌𖿰़◌့b; a𖿰◌़◌့◌゙b; a𖿰◌़◌့◌゙b; a𖿰◌़◌့◌゙b; a𖿰◌़◌့◌゙b; ) LATIN SMALL LETTER A, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, MYANMAR SIGN DOT BELOW, LATIN SMALL 
LETTER B
+0061 1037 3099 093C 16FF0 0062;0061 16FF0 1037 093C 3099 0062;0061 16FF0 1037 
093C 3099 0062;0061 16FF0 1037 093C 3099 0062;0061 16FF0 1037 093C 3099 0062; # 
(a◌့◌゙◌𖿰़b; a𖿰◌့◌़◌゙b; a𖿰◌့◌़◌゙b; a𖿰◌့◌़◌゙b; a𖿰◌့◌़◌゙b; ) LATIN SMALL LETTER A, 
MYANMAR SIGN DOT BELOW, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER 
B
 0061 05B0 094D 3099 1039 0062;0061 3099 094D 1039 05B0 0062;0061 3099 094D 
1039 05B0 0062;0061 3099 094D 1039 05B0 0062;0061 3099 094D 1039 05B0 0062; # 
(a◌ְ◌्◌゙◌္b; a◌゙◌्◌္◌ְb; a◌゙◌्◌္◌ְb; a◌゙◌्◌္◌ְb; a◌゙◌्◌္◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, MYANMAR SIGN VIRAMA, LATIN SMALL LETTER B
 0061 1039 05B0 094D 3099 0062;0061 3099 1039 094D 05B0 0062;0061 3099 1039 
094D 05B0 0062;0061 3099 1039 094D 05B0 0062;0061 3099 1039 094D 05B0 0062; # 
(a◌္◌ְ◌्◌゙b; a◌゙◌္◌्◌ְb; a◌゙◌္◌्◌ְb; a◌゙◌္◌्◌ְb; a◌゙◌္◌्◌ְb; ) LATIN SMALL 
LETTER A, MYANMAR SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 05B0 094D 3099 103A 0062;0061 3099 094D 103A 05B0 0062;0061 3099 094D 
103A 05B0 0062;0061 3099 094D 103A 05B0 0062;0061 3099 094D 103A 05B0 0062; # 
(a◌ְ◌्◌゙◌်b; a◌゙◌्◌်◌ְb; a◌゙◌्◌်◌ְb; a◌゙◌्◌်◌ְb; a◌゙◌्◌်◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, MYANMAR SIGN ASAT, LATIN SMALL LETTER B
@@ -17816,8 +17829,12 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) 
HALFWIDTH WHITE CIRCLE
 0061 1ABC 0315 0300 05AE 0062;0061 05AE 1ABC 0300 0315 0062;0061 05AE 1ABC 
0300 0315 0062;0061 05AE 1ABC 0300 0315 0062;0061 05AE 1ABC 0300 0315 0062; # 
(a◌᪼◌̕◌̀◌֮b; a◌֮◌᪼◌̀◌̕b; a◌֮◌᪼◌̀◌̕b; a◌֮◌᪼◌̀◌̕b; a◌֮◌᪼◌̀◌̕b; ) LATIN SMALL 
LETTER A, COMBINING DOUBLE PARENTHESES ABOVE, COMBINING COMMA ABOVE RIGHT, 
COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 059A 0316 302A 1ABD 0062;0061 302A 0316 1ABD 059A 0062;0061 302A 0316 
1ABD 059A 0062;0061 302A 0316 1ABD 059A 0062;0061 302A 0316 1ABD 059A 0062; # 
(a◌֚◌̖◌〪◌᪽b; a◌〪◌̖◌᪽◌֚b; a◌〪◌̖◌᪽◌֚b; a◌〪◌̖◌᪽◌֚b; a◌〪◌̖◌᪽◌֚b; ) LATIN SMALL 
LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL 
TONE MARK, COMBINING PARENTHESES BELOW, LATIN SMALL LETTER B
 0061 1ABD 059A 0316 302A 0062;0061 302A 1ABD 0316 059A 0062;0061 302A 1ABD 
0316 059A 0062;0061 302A 1ABD 0316 059A 0062;0061 302A 1ABD 0316 059A 0062; # 
(a◌᪽◌֚◌̖◌〪b; a◌〪◌᪽◌̖◌֚b; a◌〪◌᪽◌̖◌֚b; a◌〪◌᪽◌̖◌֚b; a◌〪◌᪽◌̖◌֚b; ) LATIN SMALL 
LETTER A, COMBINING PARENTHESES BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE 
ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
-0061 3099 093C 0334 1B34 0062;0061 0334 093C 1B34 3099 0062;0061 0334 093C 
1B34 3099 0062;0061 0334 093C 1B34 3099 0062;0061 0334 093C 1B34 3099 0062; # 
(a◌゙◌़◌̴◌᬴b; a◌̴◌़◌᬴◌゙b; a◌̴◌़◌᬴◌゙b; a◌̴◌़◌᬴◌゙b; a◌̴◌़◌᬴◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, BALINESE SIGN REREKAN, LATIN SMALL LETTER B
-0061 1B34 3099 093C 0334 0062;0061 0334 1B34 093C 3099 0062;0061 0334 1B34 
093C 3099 0062;0061 0334 1B34 093C 3099 0062;0061 0334 1B34 093C 3099 0062; # 
(a◌᬴◌゙◌़◌̴b; a◌̴◌᬴◌़◌゙b; a◌̴◌᬴◌़◌゙b; a◌̴◌᬴◌़◌゙b; a◌̴◌᬴◌़◌゙b; ) LATIN SMALL 
LETTER A, BALINESE SIGN REREKAN, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 059A 0316 302A 1ABF 0062;0061 302A 0316 1ABF 059A 0062;0061 302A 0316 
1ABF 059A 0062;0061 302A 0316 1ABF 059A 0062;0061 302A 0316 1ABF 059A 0062; # 
(a◌֚◌̖◌〪◌ᪿb; a◌〪◌̖◌ᪿ◌֚b; a◌〪◌̖◌ᪿ◌֚b; a◌〪◌̖◌ᪿ◌֚b; a◌〪◌̖◌ᪿ◌֚b; ) LATIN SMALL 
LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL 
TONE MARK, COMBINING LATIN SMALL LETTER W BELOW, LATIN SMALL LETTER B
+0061 1ABF 059A 0316 302A 0062;0061 302A 1ABF 0316 059A 0062;0061 302A 1ABF 
0316 059A 0062;0061 302A 1ABF 0316 059A 0062;0061 302A 1ABF 0316 059A 0062; # 
(a◌ᪿ◌֚◌̖◌〪b; a◌〪◌ᪿ◌̖◌֚b; a◌〪◌ᪿ◌̖◌֚b; a◌〪◌ᪿ◌̖◌֚b; a◌〪◌ᪿ◌̖◌֚b; ) LATIN SMALL 
LETTER A, COMBINING LATIN SMALL LETTER W BELOW, HEBREW ACCENT YETIV, COMBINING 
GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 059A 0316 302A 1AC0 0062;0061 302A 0316 1AC0 059A 0062;0061 302A 0316 
1AC0 059A 0062;0061 302A 0316 1AC0 059A 0062;0061 302A 0316 1AC0 059A 0062; # 
(a◌֚◌̖◌〪◌ᫀb; a◌〪◌̖◌ᫀ◌֚b; a◌〪◌̖◌ᫀ◌֚b; a◌〪◌̖◌ᫀ◌֚b; a◌〪◌̖◌ᫀ◌֚b; ) LATIN SMALL 
LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL 
TONE MARK, COMBINING LATIN SMALL LETTER TURNED W BELOW, LATIN SMALL LETTER B
+0061 1AC0 059A 0316 302A 0062;0061 302A 1AC0 0316 059A 0062;0061 302A 1AC0 
0316 059A 0062;0061 302A 1AC0 0316 059A 0062;0061 302A 1AC0 0316 059A 0062; # 
(a◌ᫀ◌֚◌̖◌〪b; a◌〪◌ᫀ◌̖◌֚b; a◌〪◌ᫀ◌̖◌֚b; a◌〪◌ᫀ◌̖◌֚b; a◌〪◌ᫀ◌̖◌֚b; ) LATIN SMALL 
LETTER A, COMBINING LATIN SMALL LETTER TURNED W BELOW, HEBREW ACCENT YETIV, 
COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 1B34 0062;0061 16FF0 093C 1B34 3099 0062;0061 16FF0 093C 
1B34 3099 0062;0061 16FF0 093C 1B34 3099 0062;0061 16FF0 093C 1B34 3099 0062; # 
(a◌゙◌𖿰़◌᬴b; a𖿰◌़◌᬴◌゙b; a𖿰◌़◌᬴◌゙b; a𖿰◌़◌᬴◌゙b; a𖿰◌़◌᬴◌゙b; ) LATIN SMALL LETTER A, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, BALINESE SIGN REREKAN, LATIN SMALL LETTER 
B
+0061 1B34 3099 093C 16FF0 0062;0061 16FF0 1B34 093C 3099 0062;0061 16FF0 1B34 
093C 3099 0062;0061 16FF0 1B34 093C 3099 0062;0061 16FF0 1B34 093C 3099 0062; # 
(a◌᬴◌゙◌𖿰़b; a𖿰◌᬴◌़◌゙b; a𖿰◌᬴◌़◌゙b; a𖿰◌᬴◌़◌゙b; a𖿰◌᬴◌़◌゙b; ) LATIN SMALL LETTER A, 
BALINESE SIGN REREKAN, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER 
B
 0061 05B0 094D 3099 1B44 0062;0061 3099 094D 1B44 05B0 0062;0061 3099 094D 
1B44 05B0 0062;0061 3099 094D 1B44 05B0 0062;0061 3099 094D 1B44 05B0 0062; # 
(a◌ְ◌्◌゙᭄b; a◌゙◌्᭄◌ְb; a◌゙◌्᭄◌ְb; a◌゙◌्᭄◌ְb; a◌゙◌्᭄◌ְb; ) LATIN SMALL LETTER A, 
HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED 
SOUND MARK, BALINESE ADEG ADEG, LATIN SMALL LETTER B
 0061 1B44 05B0 094D 3099 0062;0061 3099 1B44 094D 05B0 0062;0061 3099 1B44 
094D 05B0 0062;0061 3099 1B44 094D 05B0 0062;0061 3099 1B44 094D 05B0 0062; # 
(a᭄◌ְ◌्◌゙b; a◌゙᭄◌्◌ְb; a◌゙᭄◌्◌ְb; a◌゙᭄◌्◌ְb; a◌゙᭄◌्◌ְb; ) LATIN SMALL LETTER A, 
BALINESE ADEG ADEG, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 0315 0300 05AE 1B6B 0062;00E0 05AE 1B6B 0315 0062;0061 05AE 0300 1B6B 
0315 0062;00E0 05AE 1B6B 0315 0062;0061 05AE 0300 1B6B 0315 0062; # 
(a◌̕◌̀◌֮◌᭫b; à◌֮◌᭫◌̕b; a◌֮◌̀◌᭫◌̕b; à◌֮◌᭫◌̕b; a◌֮◌̀◌᭫◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
BALINESE MUSICAL SYMBOL COMBINING TEGEH, LATIN SMALL LETTER B
@@ -17842,22 +17859,22 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) 
HALFWIDTH WHITE CIRCLE
 0061 1BAA 05B0 094D 3099 0062;0061 3099 1BAA 094D 05B0 0062;0061 3099 1BAA 
094D 05B0 0062;0061 3099 1BAA 094D 05B0 0062;0061 3099 1BAA 094D 05B0 0062; # 
(a᮪◌ְ◌्◌゙b; a◌゙᮪◌्◌ְb; a◌゙᮪◌्◌ְb; a◌゙᮪◌्◌ְb; a◌゙᮪◌्◌ְb; ) LATIN SMALL LETTER A, 
SUNDANESE SIGN PAMAAEH, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 05B0 094D 3099 1BAB 0062;0061 3099 094D 1BAB 05B0 0062;0061 3099 094D 
1BAB 05B0 0062;0061 3099 094D 1BAB 05B0 0062;0061 3099 094D 1BAB 05B0 0062; # 
(a◌ְ◌्◌゙◌᮫b; a◌゙◌्◌᮫◌ְb; a◌゙◌्◌᮫◌ְb; a◌゙◌्◌᮫◌ְb; a◌゙◌्◌᮫◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, SUNDANESE SIGN VIRAMA, LATIN SMALL LETTER B
 0061 1BAB 05B0 094D 3099 0062;0061 3099 1BAB 094D 05B0 0062;0061 3099 1BAB 
094D 05B0 0062;0061 3099 1BAB 094D 05B0 0062;0061 3099 1BAB 094D 05B0 0062; # 
(a◌᮫◌ְ◌्◌゙b; a◌゙◌᮫◌्◌ְb; a◌゙◌᮫◌्◌ְb; a◌゙◌᮫◌्◌ְb; a◌゙◌᮫◌्◌ְb; ) LATIN SMALL 
LETTER A, SUNDANESE SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
-0061 3099 093C 0334 1BE6 0062;0061 0334 093C 1BE6 3099 0062;0061 0334 093C 
1BE6 3099 0062;0061 0334 093C 1BE6 3099 0062;0061 0334 093C 1BE6 3099 0062; # 
(a◌゙◌़◌̴◌᯦b; a◌̴◌़◌᯦◌゙b; a◌̴◌़◌᯦◌゙b; a◌̴◌़◌᯦◌゙b; a◌̴◌़◌᯦◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, BATAK SIGN TOMPI, LATIN SMALL LETTER B
-0061 1BE6 3099 093C 0334 0062;0061 0334 1BE6 093C 3099 0062;0061 0334 1BE6 
093C 3099 0062;0061 0334 1BE6 093C 3099 0062;0061 0334 1BE6 093C 3099 0062; # 
(a◌᯦◌゙◌़◌̴b; a◌̴◌᯦◌़◌゙b; a◌̴◌᯦◌़◌゙b; a◌̴◌᯦◌़◌゙b; a◌̴◌᯦◌़◌゙b; ) LATIN SMALL 
LETTER A, BATAK SIGN TOMPI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 1BE6 0062;0061 16FF0 093C 1BE6 3099 0062;0061 16FF0 093C 
1BE6 3099 0062;0061 16FF0 093C 1BE6 3099 0062;0061 16FF0 093C 1BE6 3099 0062; # 
(a◌゙◌𖿰़◌᯦b; a𖿰◌़◌᯦◌゙b; a𖿰◌़◌᯦◌゙b; a𖿰◌़◌᯦◌゙b; a𖿰◌़◌᯦◌゙b; ) LATIN SMALL LETTER A, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, BATAK SIGN TOMPI, LATIN SMALL LETTER B
+0061 1BE6 3099 093C 16FF0 0062;0061 16FF0 1BE6 093C 3099 0062;0061 16FF0 1BE6 
093C 3099 0062;0061 16FF0 1BE6 093C 3099 0062;0061 16FF0 1BE6 093C 3099 0062; # 
(a◌᯦◌゙◌𖿰़b; a𖿰◌᯦◌़◌゙b; a𖿰◌᯦◌़◌゙b; a𖿰◌᯦◌़◌゙b; a𖿰◌᯦◌़◌゙b; ) LATIN SMALL LETTER A, 
BATAK SIGN TOMPI, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI 
SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
 0061 05B0 094D 3099 1BF2 0062;0061 3099 094D 1BF2 05B0 0062;0061 3099 094D 
1BF2 05B0 0062;0061 3099 094D 1BF2 05B0 0062;0061 3099 094D 1BF2 05B0 0062; # 
(a◌ְ◌्◌゙᯲b; a◌゙◌्᯲◌ְb; a◌゙◌्᯲◌ְb; a◌゙◌्᯲◌ְb; a◌゙◌्᯲◌ְb; ) LATIN SMALL LETTER A, 
HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED 
SOUND MARK, BATAK PANGOLAT, LATIN SMALL LETTER B
 0061 1BF2 05B0 094D 3099 0062;0061 3099 1BF2 094D 05B0 0062;0061 3099 1BF2 
094D 05B0 0062;0061 3099 1BF2 094D 05B0 0062;0061 3099 1BF2 094D 05B0 0062; # 
(a᯲◌ְ◌्◌゙b; a◌゙᯲◌्◌ְb; a◌゙᯲◌्◌ְb; a◌゙᯲◌्◌ְb; a◌゙᯲◌्◌ְb; ) LATIN SMALL LETTER A, 
BATAK PANGOLAT, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 05B0 094D 3099 1BF3 0062;0061 3099 094D 1BF3 05B0 0062;0061 3099 094D 
1BF3 05B0 0062;0061 3099 094D 1BF3 05B0 0062;0061 3099 094D 1BF3 05B0 0062; # 
(a◌ְ◌्◌゙᯳b; a◌゙◌्᯳◌ְb; a◌゙◌्᯳◌ְb; a◌゙◌्᯳◌ְb; a◌゙◌्᯳◌ְb; ) LATIN SMALL LETTER A, 
HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED 
SOUND MARK, BATAK PANONGONAN, LATIN SMALL LETTER B
 0061 1BF3 05B0 094D 3099 0062;0061 3099 1BF3 094D 05B0 0062;0061 3099 1BF3 
094D 05B0 0062;0061 3099 1BF3 094D 05B0 0062;0061 3099 1BF3 094D 05B0 0062; # 
(a᯳◌ְ◌्◌゙b; a◌゙᯳◌्◌ְb; a◌゙᯳◌्◌ְb; a◌゙᯳◌्◌ְb; a◌゙᯳◌्◌ְb; ) LATIN SMALL LETTER A, 
BATAK PANONGONAN, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
-0061 3099 093C 0334 1C37 0062;0061 0334 093C 1C37 3099 0062;0061 0334 093C 
1C37 3099 0062;0061 0334 093C 1C37 3099 0062;0061 0334 093C 1C37 3099 0062; # 
(a◌゙◌़◌̴◌᰷b; a◌̴◌़◌᰷◌゙b; a◌̴◌़◌᰷◌゙b; a◌̴◌़◌᰷◌゙b; a◌̴◌़◌᰷◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, LEPCHA SIGN NUKTA, LATIN SMALL LETTER B
-0061 1C37 3099 093C 0334 0062;0061 0334 1C37 093C 3099 0062;0061 0334 1C37 
093C 3099 0062;0061 0334 1C37 093C 3099 0062;0061 0334 1C37 093C 3099 0062; # 
(a◌᰷◌゙◌़◌̴b; a◌̴◌᰷◌़◌゙b; a◌̴◌᰷◌़◌゙b; a◌̴◌᰷◌़◌゙b; a◌̴◌᰷◌़◌゙b; ) LATIN SMALL 
LETTER A, LEPCHA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 1C37 0062;0061 16FF0 093C 1C37 3099 0062;0061 16FF0 093C 
1C37 3099 0062;0061 16FF0 093C 1C37 3099 0062;0061 16FF0 093C 1C37 3099 0062; # 
(a◌゙◌𖿰़◌᰷b; a𖿰◌़◌᰷◌゙b; a𖿰◌़◌᰷◌゙b; a𖿰◌़◌᰷◌゙b; a𖿰◌़◌᰷◌゙b; ) LATIN SMALL LETTER A, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, LEPCHA SIGN NUKTA, LATIN SMALL LETTER B
+0061 1C37 3099 093C 16FF0 0062;0061 16FF0 1C37 093C 3099 0062;0061 16FF0 1C37 
093C 3099 0062;0061 16FF0 1C37 093C 3099 0062;0061 16FF0 1C37 093C 3099 0062; # 
(a◌᰷◌゙◌𖿰़b; a𖿰◌᰷◌़◌゙b; a𖿰◌᰷◌़◌゙b; a𖿰◌᰷◌़◌゙b; a𖿰◌᰷◌़◌゙b; ) LATIN SMALL LETTER A, 
LEPCHA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI 
SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER B
 0061 0315 0300 05AE 1CD0 0062;00E0 05AE 1CD0 0315 0062;0061 05AE 0300 1CD0 
0315 0062;00E0 05AE 1CD0 0315 0062;0061 05AE 0300 1CD0 0315 0062; # 
(a◌̕◌̀◌֮◌᳐b; à◌֮◌᳐◌̕b; a◌֮◌̀◌᳐◌̕b; à◌֮◌᳐◌̕b; a◌֮◌̀◌᳐◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
VEDIC TONE KARSHANA, LATIN SMALL LETTER B
 0061 1CD0 0315 0300 05AE 0062;0061 05AE 1CD0 0300 0315 0062;0061 05AE 1CD0 
0300 0315 0062;0061 05AE 1CD0 0300 0315 0062;0061 05AE 1CD0 0300 0315 0062; # 
(a◌᳐◌̕◌̀◌֮b; a◌֮◌᳐◌̀◌̕b; a◌֮◌᳐◌̀◌̕b; a◌֮◌᳐◌̀◌̕b; a◌֮◌᳐◌̀◌̕b; ) LATIN SMALL 
LETTER A, VEDIC TONE KARSHANA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE 
ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 0315 0300 05AE 1CD1 0062;00E0 05AE 1CD1 0315 0062;0061 05AE 0300 1CD1 
0315 0062;00E0 05AE 1CD1 0315 0062;0061 05AE 0300 1CD1 0315 0062; # 
(a◌̕◌̀◌֮◌᳑b; à◌֮◌᳑◌̕b; a◌֮◌̀◌᳑◌̕b; à◌֮◌᳑◌̕b; a◌֮◌̀◌᳑◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
VEDIC TONE SHARA, LATIN SMALL LETTER B
 0061 1CD1 0315 0300 05AE 0062;0061 05AE 1CD1 0300 0315 0062;0061 05AE 1CD1 
0300 0315 0062;0061 05AE 1CD1 0300 0315 0062;0061 05AE 1CD1 0300 0315 0062; # 
(a◌᳑◌̕◌̀◌֮b; a◌֮◌᳑◌̀◌̕b; a◌֮◌᳑◌̀◌̕b; a◌֮◌᳑◌̀◌̕b; a◌֮◌᳑◌̀◌̕b; ) LATIN SMALL 
LETTER A, VEDIC TONE SHARA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE 
ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 0315 0300 05AE 1CD2 0062;00E0 05AE 1CD2 0315 0062;0061 05AE 0300 1CD2 
0315 0062;00E0 05AE 1CD2 0315 0062;0061 05AE 0300 1CD2 0315 0062; # 
(a◌̕◌̀◌֮◌᳒b; à◌֮◌᳒◌̕b; a◌֮◌̀◌᳒◌̕b; à◌֮◌᳒◌̕b; a◌֮◌̀◌᳒◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
VEDIC TONE PRENKHA, LATIN SMALL LETTER B
 0061 1CD2 0315 0300 05AE 0062;0061 05AE 1CD2 0300 0315 0062;0061 05AE 1CD2 
0300 0315 0062;0061 05AE 1CD2 0300 0315 0062;0061 05AE 1CD2 0300 0315 0062; # 
(a◌᳒◌̕◌̀◌֮b; a◌֮◌᳒◌̀◌̕b; a◌֮◌᳒◌̀◌̕b; a◌֮◌᳒◌̀◌̕b; a◌֮◌᳒◌̀◌̕b; ) LATIN SMALL 
LETTER A, VEDIC TONE PRENKHA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE 
ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
-0061 093C 0334 1CD4 0062;0061 0334 1CD4 093C 0062;0061 0334 1CD4 093C 
0062;0061 0334 1CD4 093C 0062;0061 0334 1CD4 093C 0062; # (a◌़◌̴◌᳔b; a◌̴◌᳔◌़b; 
a◌̴◌᳔◌़b; a◌̴◌᳔◌़b; a◌̴◌᳔◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, VEDIC SIGN YAJURVEDIC MIDLINE SVARITA, LATIN SMALL 
LETTER B
-0061 1CD4 093C 0334 0062;0061 1CD4 0334 093C 0062;0061 1CD4 0334 093C 
0062;0061 1CD4 0334 093C 0062;0061 1CD4 0334 093C 0062; # (a◌᳔◌़◌̴b; a◌᳔◌̴◌़b; 
a◌᳔◌̴◌़b; a◌᳔◌̴◌़b; a◌᳔◌̴◌़b; ) LATIN SMALL LETTER A, VEDIC SIGN YAJURVEDIC 
MIDLINE SVARITA, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL 
LETTER B
+0061 16FF0 0334 1CD4 0062;0061 0334 1CD4 16FF0 0062;0061 0334 1CD4 16FF0 
0062;0061 0334 1CD4 16FF0 0062;0061 0334 1CD4 16FF0 0062; # (a𖿰◌̴◌᳔b; a◌̴◌᳔𖿰b; 
a◌̴◌᳔𖿰b; a◌̴◌᳔𖿰b; a◌̴◌᳔𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, VEDIC SIGN YAJURVEDIC MIDLINE SVARITA, LATIN 
SMALL LETTER B
+0061 1CD4 16FF0 0334 0062;0061 1CD4 0334 16FF0 0062;0061 1CD4 0334 16FF0 
0062;0061 1CD4 0334 16FF0 0062;0061 1CD4 0334 16FF0 0062; # (a◌᳔𖿰◌̴b; a◌᳔◌̴𖿰b; 
a◌᳔◌̴𖿰b; a◌᳔◌̴𖿰b; a◌᳔◌̴𖿰b; ) LATIN SMALL LETTER A, VEDIC SIGN YAJURVEDIC 
MIDLINE SVARITA, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, 
LATIN SMALL LETTER B
 0061 059A 0316 302A 1CD5 0062;0061 302A 0316 1CD5 059A 0062;0061 302A 0316 
1CD5 059A 0062;0061 302A 0316 1CD5 059A 0062;0061 302A 0316 1CD5 059A 0062; # 
(a◌֚◌̖◌〪◌᳕b; a◌〪◌̖◌᳕◌֚b; a◌〪◌̖◌᳕◌֚b; a◌〪◌̖◌᳕◌֚b; a◌〪◌̖◌᳕◌֚b; ) LATIN SMALL 
LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL 
TONE MARK, VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA, LATIN SMALL 
LETTER B
 0061 1CD5 059A 0316 302A 0062;0061 302A 1CD5 0316 059A 0062;0061 302A 1CD5 
0316 059A 0062;0061 302A 1CD5 0316 059A 0062;0061 302A 1CD5 0316 059A 0062; # 
(a◌᳕◌֚◌̖◌〪b; a◌〪◌᳕◌̖◌֚b; a◌〪◌᳕◌̖◌֚b; a◌〪◌᳕◌̖◌֚b; a◌〪◌᳕◌̖◌֚b; ) LATIN SMALL 
LETTER A, VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA, HEBREW ACCENT 
YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL 
LETTER B
 0061 059A 0316 302A 1CD6 0062;0061 302A 0316 1CD6 059A 0062;0061 302A 0316 
1CD6 059A 0062;0061 302A 0316 1CD6 059A 0062;0061 302A 0316 1CD6 059A 0062; # 
(a◌֚◌̖◌〪◌᳖b; a◌〪◌̖◌᳖◌֚b; a◌〪◌̖◌᳖◌֚b; a◌〪◌̖◌᳖◌֚b; a◌〪◌̖◌᳖◌֚b; ) LATIN SMALL 
LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL 
TONE MARK, VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA, LATIN SMALL LETTER B
@@ -17882,20 +17899,20 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) 
HALFWIDTH WHITE CIRCLE
 0061 1CDF 059A 0316 302A 0062;0061 302A 1CDF 0316 059A 0062;0061 302A 1CDF 
0316 059A 0062;0061 302A 1CDF 0316 059A 0062;0061 302A 1CDF 0316 059A 0062; # 
(a◌᳟◌֚◌̖◌〪b; a◌〪◌᳟◌̖◌֚b; a◌〪◌᳟◌̖◌֚b; a◌〪◌᳟◌̖◌֚b; a◌〪◌᳟◌̖◌֚b; ) LATIN SMALL 
LETTER A, VEDIC TONE THREE DOTS BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE 
ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
 0061 0315 0300 05AE 1CE0 0062;00E0 05AE 1CE0 0315 0062;0061 05AE 0300 1CE0 
0315 0062;00E0 05AE 1CE0 0315 0062;0061 05AE 0300 1CE0 0315 0062; # 
(a◌̕◌̀◌֮◌᳠b; à◌֮◌᳠◌̕b; a◌֮◌̀◌᳠◌̕b; à◌֮◌᳠◌̕b; a◌֮◌̀◌᳠◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA, LATIN SMALL LETTER B
 0061 1CE0 0315 0300 05AE 0062;0061 05AE 1CE0 0300 0315 0062;0061 05AE 1CE0 
0300 0315 0062;0061 05AE 1CE0 0300 0315 0062;0061 05AE 1CE0 0300 0315 0062; # 
(a◌᳠◌̕◌̀◌֮b; a◌֮◌᳠◌̀◌̕b; a◌֮◌᳠◌̀◌̕b; a◌֮◌᳠◌̀◌̕b; a◌֮◌᳠◌̀◌̕b; ) LATIN SMALL 
LETTER A, VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA, COMBINING COMMA 
ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
-0061 093C 0334 1CE2 0062;0061 0334 1CE2 093C 0062;0061 0334 1CE2 093C 
0062;0061 0334 1CE2 093C 0062;0061 0334 1CE2 093C 0062; # (a◌़◌̴◌᳢b; a◌̴◌᳢◌़b; 
a◌̴◌᳢◌़b; a◌̴◌᳢◌़b; a◌̴◌᳢◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, VEDIC SIGN VISARGA SVARITA, LATIN SMALL LETTER B
-0061 1CE2 093C 0334 0062;0061 1CE2 0334 093C 0062;0061 1CE2 0334 093C 
0062;0061 1CE2 0334 093C 0062;0061 1CE2 0334 093C 0062; # (a◌᳢◌़◌̴b; a◌᳢◌̴◌़b; 
a◌᳢◌̴◌़b; a◌᳢◌̴◌़b; a◌᳢◌̴◌़b; ) LATIN SMALL LETTER A, VEDIC SIGN VISARGA 
SVARITA, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
-0061 093C 0334 1CE3 0062;0061 0334 1CE3 093C 0062;0061 0334 1CE3 093C 
0062;0061 0334 1CE3 093C 0062;0061 0334 1CE3 093C 0062; # (a◌़◌̴◌᳣b; a◌̴◌᳣◌़b; 
a◌̴◌᳣◌़b; a◌̴◌᳣◌़b; a◌̴◌᳣◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, VEDIC SIGN VISARGA UDATTA, LATIN SMALL LETTER B
-0061 1CE3 093C 0334 0062;0061 1CE3 0334 093C 0062;0061 1CE3 0334 093C 
0062;0061 1CE3 0334 093C 0062;0061 1CE3 0334 093C 0062; # (a◌᳣◌़◌̴b; a◌᳣◌̴◌़b; 
a◌᳣◌̴◌़b; a◌᳣◌̴◌़b; a◌᳣◌̴◌़b; ) LATIN SMALL LETTER A, VEDIC SIGN VISARGA 
UDATTA, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
-0061 093C 0334 1CE4 0062;0061 0334 1CE4 093C 0062;0061 0334 1CE4 093C 
0062;0061 0334 1CE4 093C 0062;0061 0334 1CE4 093C 0062; # (a◌़◌̴◌᳤b; a◌̴◌᳤◌़b; 
a◌̴◌᳤◌़b; a◌̴◌᳤◌़b; a◌̴◌᳤◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, VEDIC SIGN REVERSED VISARGA UDATTA, LATIN SMALL LETTER 
B
-0061 1CE4 093C 0334 0062;0061 1CE4 0334 093C 0062;0061 1CE4 0334 093C 
0062;0061 1CE4 0334 093C 0062;0061 1CE4 0334 093C 0062; # (a◌᳤◌़◌̴b; a◌᳤◌̴◌़b; 
a◌᳤◌̴◌़b; a◌᳤◌̴◌़b; a◌᳤◌̴◌़b; ) LATIN SMALL LETTER A, VEDIC SIGN REVERSED 
VISARGA UDATTA, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL 
LETTER B
-0061 093C 0334 1CE5 0062;0061 0334 1CE5 093C 0062;0061 0334 1CE5 093C 
0062;0061 0334 1CE5 093C 0062;0061 0334 1CE5 093C 0062; # (a◌़◌̴◌᳥b; a◌̴◌᳥◌़b; 
a◌̴◌᳥◌़b; a◌̴◌᳥◌़b; a◌̴◌᳥◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, VEDIC SIGN VISARGA ANUDATTA, LATIN SMALL LETTER B
-0061 1CE5 093C 0334 0062;0061 1CE5 0334 093C 0062;0061 1CE5 0334 093C 
0062;0061 1CE5 0334 093C 0062;0061 1CE5 0334 093C 0062; # (a◌᳥◌़◌̴b; a◌᳥◌̴◌़b; 
a◌᳥◌̴◌़b; a◌᳥◌̴◌़b; a◌᳥◌̴◌़b; ) LATIN SMALL LETTER A, VEDIC SIGN VISARGA 
ANUDATTA, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
-0061 093C 0334 1CE6 0062;0061 0334 1CE6 093C 0062;0061 0334 1CE6 093C 
0062;0061 0334 1CE6 093C 0062;0061 0334 1CE6 093C 0062; # (a◌़◌̴◌᳦b; a◌̴◌᳦◌़b; 
a◌̴◌᳦◌़b; a◌̴◌᳦◌़b; a◌̴◌᳦◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, VEDIC SIGN REVERSED VISARGA ANUDATTA, LATIN SMALL 
LETTER B
-0061 1CE6 093C 0334 0062;0061 1CE6 0334 093C 0062;0061 1CE6 0334 093C 
0062;0061 1CE6 0334 093C 0062;0061 1CE6 0334 093C 0062; # (a◌᳦◌़◌̴b; a◌᳦◌̴◌़b; 
a◌᳦◌̴◌़b; a◌᳦◌̴◌़b; a◌᳦◌̴◌़b; ) LATIN SMALL LETTER A, VEDIC SIGN REVERSED 
VISARGA ANUDATTA, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL 
LETTER B
-0061 093C 0334 1CE7 0062;0061 0334 1CE7 093C 0062;0061 0334 1CE7 093C 
0062;0061 0334 1CE7 093C 0062;0061 0334 1CE7 093C 0062; # (a◌़◌̴◌᳧b; a◌̴◌᳧◌़b; 
a◌̴◌᳧◌़b; a◌̴◌᳧◌़b; a◌̴◌᳧◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, VEDIC SIGN VISARGA UDATTA WITH TAIL, LATIN SMALL 
LETTER B
-0061 1CE7 093C 0334 0062;0061 1CE7 0334 093C 0062;0061 1CE7 0334 093C 
0062;0061 1CE7 0334 093C 0062;0061 1CE7 0334 093C 0062; # (a◌᳧◌़◌̴b; a◌᳧◌̴◌़b; 
a◌᳧◌̴◌़b; a◌᳧◌̴◌़b; a◌᳧◌̴◌़b; ) LATIN SMALL LETTER A, VEDIC SIGN VISARGA UDATTA 
WITH TAIL, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
-0061 093C 0334 1CE8 0062;0061 0334 1CE8 093C 0062;0061 0334 1CE8 093C 
0062;0061 0334 1CE8 093C 0062;0061 0334 1CE8 093C 0062; # (a◌़◌̴◌᳨b; a◌̴◌᳨◌़b; 
a◌̴◌᳨◌़b; a◌̴◌᳨◌़b; a◌̴◌᳨◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, VEDIC SIGN VISARGA ANUDATTA WITH TAIL, LATIN SMALL 
LETTER B
-0061 1CE8 093C 0334 0062;0061 1CE8 0334 093C 0062;0061 1CE8 0334 093C 
0062;0061 1CE8 0334 093C 0062;0061 1CE8 0334 093C 0062; # (a◌᳨◌़◌̴b; a◌᳨◌̴◌़b; 
a◌᳨◌̴◌़b; a◌᳨◌̴◌़b; a◌᳨◌̴◌़b; ) LATIN SMALL LETTER A, VEDIC SIGN VISARGA 
ANUDATTA WITH TAIL, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL 
LETTER B
+0061 16FF0 0334 1CE2 0062;0061 0334 1CE2 16FF0 0062;0061 0334 1CE2 16FF0 
0062;0061 0334 1CE2 16FF0 0062;0061 0334 1CE2 16FF0 0062; # (a𖿰◌̴◌᳢b; a◌̴◌᳢𖿰b; 
a◌̴◌᳢𖿰b; a◌̴◌᳢𖿰b; a◌̴◌᳢𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, VEDIC SIGN VISARGA SVARITA, LATIN SMALL 
LETTER B
+0061 1CE2 16FF0 0334 0062;0061 1CE2 0334 16FF0 0062;0061 1CE2 0334 16FF0 
0062;0061 1CE2 0334 16FF0 0062;0061 1CE2 0334 16FF0 0062; # (a◌᳢𖿰◌̴b; a◌᳢◌̴𖿰b; 
a◌᳢◌̴𖿰b; a◌᳢◌̴𖿰b; a◌᳢◌̴𖿰b; ) LATIN SMALL LETTER A, VEDIC SIGN VISARGA SVARITA, 
VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL 
LETTER B
+0061 16FF0 0334 1CE3 0062;0061 0334 1CE3 16FF0 0062;0061 0334 1CE3 16FF0 
0062;0061 0334 1CE3 16FF0 0062;0061 0334 1CE3 16FF0 0062; # (a𖿰◌̴◌᳣b; a◌̴◌᳣𖿰b; 
a◌̴◌᳣𖿰b; a◌̴◌᳣𖿰b; a◌̴◌᳣𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, VEDIC SIGN VISARGA UDATTA, LATIN SMALL LETTER 
B
+0061 1CE3 16FF0 0334 0062;0061 1CE3 0334 16FF0 0062;0061 1CE3 0334 16FF0 
0062;0061 1CE3 0334 16FF0 0062;0061 1CE3 0334 16FF0 0062; # (a◌᳣𖿰◌̴b; a◌᳣◌̴𖿰b; 
a◌᳣◌̴𖿰b; a◌᳣◌̴𖿰b; a◌᳣◌̴𖿰b; ) LATIN SMALL LETTER A, VEDIC SIGN VISARGA UDATTA, 
VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL 
LETTER B
+0061 16FF0 0334 1CE4 0062;0061 0334 1CE4 16FF0 0062;0061 0334 1CE4 16FF0 
0062;0061 0334 1CE4 16FF0 0062;0061 0334 1CE4 16FF0 0062; # (a𖿰◌̴◌᳤b; a◌̴◌᳤𖿰b; 
a◌̴◌᳤𖿰b; a◌̴◌᳤𖿰b; a◌̴◌᳤𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, VEDIC SIGN REVERSED VISARGA UDATTA, LATIN 
SMALL LETTER B
+0061 1CE4 16FF0 0334 0062;0061 1CE4 0334 16FF0 0062;0061 1CE4 0334 16FF0 
0062;0061 1CE4 0334 16FF0 0062;0061 1CE4 0334 16FF0 0062; # (a◌᳤𖿰◌̴b; a◌᳤◌̴𖿰b; 
a◌᳤◌̴𖿰b; a◌᳤◌̴𖿰b; a◌᳤◌̴𖿰b; ) LATIN SMALL LETTER A, VEDIC SIGN REVERSED VISARGA 
UDATTA, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
+0061 16FF0 0334 1CE5 0062;0061 0334 1CE5 16FF0 0062;0061 0334 1CE5 16FF0 
0062;0061 0334 1CE5 16FF0 0062;0061 0334 1CE5 16FF0 0062; # (a𖿰◌̴◌᳥b; a◌̴◌᳥𖿰b; 
a◌̴◌᳥𖿰b; a◌̴◌᳥𖿰b; a◌̴◌᳥𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, VEDIC SIGN VISARGA ANUDATTA, LATIN SMALL 
LETTER B
+0061 1CE5 16FF0 0334 0062;0061 1CE5 0334 16FF0 0062;0061 1CE5 0334 16FF0 
0062;0061 1CE5 0334 16FF0 0062;0061 1CE5 0334 16FF0 0062; # (a◌᳥𖿰◌̴b; a◌᳥◌̴𖿰b; 
a◌᳥◌̴𖿰b; a◌᳥◌̴𖿰b; a◌᳥◌̴𖿰b; ) LATIN SMALL LETTER A, VEDIC SIGN VISARGA ANUDATTA, 
VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL 
LETTER B
+0061 16FF0 0334 1CE6 0062;0061 0334 1CE6 16FF0 0062;0061 0334 1CE6 16FF0 
0062;0061 0334 1CE6 16FF0 0062;0061 0334 1CE6 16FF0 0062; # (a𖿰◌̴◌᳦b; a◌̴◌᳦𖿰b; 
a◌̴◌᳦𖿰b; a◌̴◌᳦𖿰b; a◌̴◌᳦𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, VEDIC SIGN REVERSED VISARGA ANUDATTA, LATIN 
SMALL LETTER B
+0061 1CE6 16FF0 0334 0062;0061 1CE6 0334 16FF0 0062;0061 1CE6 0334 16FF0 
0062;0061 1CE6 0334 16FF0 0062;0061 1CE6 0334 16FF0 0062; # (a◌᳦𖿰◌̴b; a◌᳦◌̴𖿰b; 
a◌᳦◌̴𖿰b; a◌᳦◌̴𖿰b; a◌᳦◌̴𖿰b; ) LATIN SMALL LETTER A, VEDIC SIGN REVERSED VISARGA 
ANUDATTA, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
+0061 16FF0 0334 1CE7 0062;0061 0334 1CE7 16FF0 0062;0061 0334 1CE7 16FF0 
0062;0061 0334 1CE7 16FF0 0062;0061 0334 1CE7 16FF0 0062; # (a𖿰◌̴◌᳧b; a◌̴◌᳧𖿰b; 
a◌̴◌᳧𖿰b; a◌̴◌᳧𖿰b; a◌̴◌᳧𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, VEDIC SIGN VISARGA UDATTA WITH TAIL, LATIN 
SMALL LETTER B
+0061 1CE7 16FF0 0334 0062;0061 1CE7 0334 16FF0 0062;0061 1CE7 0334 16FF0 
0062;0061 1CE7 0334 16FF0 0062;0061 1CE7 0334 16FF0 0062; # (a◌᳧𖿰◌̴b; a◌᳧◌̴𖿰b; 
a◌᳧◌̴𖿰b; a◌᳧◌̴𖿰b; a◌᳧◌̴𖿰b; ) LATIN SMALL LETTER A, VEDIC SIGN VISARGA UDATTA 
WITH TAIL, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
+0061 16FF0 0334 1CE8 0062;0061 0334 1CE8 16FF0 0062;0061 0334 1CE8 16FF0 
0062;0061 0334 1CE8 16FF0 0062;0061 0334 1CE8 16FF0 0062; # (a𖿰◌̴◌᳨b; a◌̴◌᳨𖿰b; 
a◌̴◌᳨𖿰b; a◌̴◌᳨𖿰b; a◌̴◌᳨𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, VEDIC SIGN VISARGA ANUDATTA WITH TAIL, LATIN 
SMALL LETTER B
+0061 1CE8 16FF0 0334 0062;0061 1CE8 0334 16FF0 0062;0061 1CE8 0334 16FF0 
0062;0061 1CE8 0334 16FF0 0062;0061 1CE8 0334 16FF0 0062; # (a◌᳨𖿰◌̴b; a◌᳨◌̴𖿰b; 
a◌᳨◌̴𖿰b; a◌᳨◌̴𖿰b; a◌᳨◌̴𖿰b; ) LATIN SMALL LETTER A, VEDIC SIGN VISARGA ANUDATTA 
WITH TAIL, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
 0061 059A 0316 302A 1CED 0062;0061 302A 0316 1CED 059A 0062;0061 302A 0316 
1CED 059A 0062;0061 302A 0316 1CED 059A 0062;0061 302A 0316 1CED 059A 0062; # 
(a◌֚◌̖◌〪◌᳭b; a◌〪◌̖◌᳭◌֚b; a◌〪◌̖◌᳭◌֚b; a◌〪◌̖◌᳭◌֚b; a◌〪◌̖◌᳭◌֚b; ) LATIN SMALL 
LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL 
TONE MARK, VEDIC SIGN TIRYAK, LATIN SMALL LETTER B
 0061 1CED 059A 0316 302A 0062;0061 302A 1CED 0316 059A 0062;0061 302A 1CED 
0316 059A 0062;0061 302A 1CED 0316 059A 0062;0061 302A 1CED 0316 059A 0062; # 
(a◌᳭◌֚◌̖◌〪b; a◌〪◌᳭◌̖◌֚b; a◌〪◌᳭◌̖◌֚b; a◌〪◌᳭◌̖◌֚b; a◌〪◌᳭◌̖◌֚b; ) LATIN SMALL 
LETTER A, VEDIC SIGN TIRYAK, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, 
IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
 0061 0315 0300 05AE 1CF4 0062;00E0 05AE 1CF4 0315 0062;0061 05AE 0300 1CF4 
0315 0062;00E0 05AE 1CF4 0315 0062;0061 05AE 0300 1CF4 0315 0062; # 
(a◌̕◌̀◌֮◌᳴b; à◌֮◌᳴◌̕b; a◌֮◌̀◌᳴◌̕b; à◌֮◌᳴◌̕b; a◌֮◌̀◌᳴◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
VEDIC TONE CANDRA ABOVE, LATIN SMALL LETTER B
@@ -18034,10 +18051,10 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) 
HALFWIDTH WHITE CIRCLE
 0061 20D0 0315 0300 05AE 0062;0061 05AE 20D0 0300 0315 0062;0061 05AE 20D0 
0300 0315 0062;0061 05AE 20D0 0300 0315 0062;0061 05AE 20D0 0300 0315 0062; # 
(a◌⃐◌̕◌̀◌֮b; a◌֮◌⃐◌̀◌̕b; a◌֮◌⃐◌̀◌̕b; a◌֮◌⃐◌̀◌̕b; a◌֮◌⃐◌̀◌̕b; ) LATIN SMALL 
LETTER A, COMBINING LEFT HARPOON ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING 
GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 0315 0300 05AE 20D1 0062;00E0 05AE 20D1 0315 0062;0061 05AE 0300 20D1 
0315 0062;00E0 05AE 20D1 0315 0062;0061 05AE 0300 20D1 0315 0062; # 
(a◌̕◌̀◌֮◌⃑b; à◌֮◌⃑◌̕b; a◌֮◌̀◌⃑◌̕b; à◌֮◌⃑◌̕b; a◌֮◌̀◌⃑◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
COMBINING RIGHT HARPOON ABOVE, LATIN SMALL LETTER B
 0061 20D1 0315 0300 05AE 0062;0061 05AE 20D1 0300 0315 0062;0061 05AE 20D1 
0300 0315 0062;0061 05AE 20D1 0300 0315 0062;0061 05AE 20D1 0300 0315 0062; # 
(a◌⃑◌̕◌̀◌֮b; a◌֮◌⃑◌̀◌̕b; a◌֮◌⃑◌̀◌̕b; a◌֮◌⃑◌̀◌̕b; a◌֮◌⃑◌̀◌̕b; ) LATIN SMALL 
LETTER A, COMBINING RIGHT HARPOON ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING 
GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
-0061 093C 0334 20D2 0062;0061 0334 20D2 093C 0062;0061 0334 20D2 093C 
0062;0061 0334 20D2 093C 0062;0061 0334 20D2 093C 0062; # (a◌़◌̴◌⃒b; a◌̴◌⃒◌़b; 
a◌̴◌⃒◌़b; a◌̴◌⃒◌़b; a◌̴◌⃒◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, COMBINING LONG VERTICAL LINE OVERLAY, LATIN SMALL 
LETTER B
-0061 20D2 093C 0334 0062;0061 20D2 0334 093C 0062;0061 20D2 0334 093C 
0062;0061 20D2 0334 093C 0062;0061 20D2 0334 093C 0062; # (a◌⃒◌़◌̴b; a◌⃒◌̴◌़b; 
a◌⃒◌̴◌़b; a◌⃒◌̴◌़b; a◌⃒◌̴◌़b; ) LATIN SMALL LETTER A, COMBINING LONG VERTICAL 
LINE OVERLAY, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL 
LETTER B
-0061 093C 0334 20D3 0062;0061 0334 20D3 093C 0062;0061 0334 20D3 093C 
0062;0061 0334 20D3 093C 0062;0061 0334 20D3 093C 0062; # (a◌़◌̴◌⃓b; a◌̴◌⃓◌़b; 
a◌̴◌⃓◌़b; a◌̴◌⃓◌़b; a◌̴◌⃓◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, COMBINING SHORT VERTICAL LINE OVERLAY, LATIN SMALL 
LETTER B
-0061 20D3 093C 0334 0062;0061 20D3 0334 093C 0062;0061 20D3 0334 093C 
0062;0061 20D3 0334 093C 0062;0061 20D3 0334 093C 0062; # (a◌⃓◌़◌̴b; a◌⃓◌̴◌़b; 
a◌⃓◌̴◌़b; a◌⃓◌̴◌़b; a◌⃓◌̴◌़b; ) LATIN SMALL LETTER A, COMBINING SHORT VERTICAL 
LINE OVERLAY, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL 
LETTER B
+0061 16FF0 0334 20D2 0062;0061 0334 20D2 16FF0 0062;0061 0334 20D2 16FF0 
0062;0061 0334 20D2 16FF0 0062;0061 0334 20D2 16FF0 0062; # (a𖿰◌̴◌⃒b; a◌̴◌⃒𖿰b; 
a◌̴◌⃒𖿰b; a◌̴◌⃒𖿰b; a◌̴◌⃒𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, COMBINING LONG VERTICAL LINE OVERLAY, LATIN 
SMALL LETTER B
+0061 20D2 16FF0 0334 0062;0061 20D2 0334 16FF0 0062;0061 20D2 0334 16FF0 
0062;0061 20D2 0334 16FF0 0062;0061 20D2 0334 16FF0 0062; # (a◌⃒𖿰◌̴b; a◌⃒◌̴𖿰b; 
a◌⃒◌̴𖿰b; a◌⃒◌̴𖿰b; a◌⃒◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING LONG VERTICAL LINE 
OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
+0061 16FF0 0334 20D3 0062;0061 0334 20D3 16FF0 0062;0061 0334 20D3 16FF0 
0062;0061 0334 20D3 16FF0 0062;0061 0334 20D3 16FF0 0062; # (a𖿰◌̴◌⃓b; a◌̴◌⃓𖿰b; 
a◌̴◌⃓𖿰b; a◌̴◌⃓𖿰b; a◌̴◌⃓𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, COMBINING SHORT VERTICAL LINE OVERLAY, LATIN 
SMALL LETTER B
+0061 20D3 16FF0 0334 0062;0061 20D3 0334 16FF0 0062;0061 20D3 0334 16FF0 
0062;0061 20D3 0334 16FF0 0062;0061 20D3 0334 16FF0 0062; # (a◌⃓𖿰◌̴b; a◌⃓◌̴𖿰b; 
a◌⃓◌̴𖿰b; a◌⃓◌̴𖿰b; a◌⃓◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING SHORT VERTICAL 
LINE OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, 
LATIN SMALL LETTER B
 0061 0315 0300 05AE 20D4 0062;00E0 05AE 20D4 0315 0062;0061 05AE 0300 20D4 
0315 0062;00E0 05AE 20D4 0315 0062;0061 05AE 0300 20D4 0315 0062; # 
(a◌̕◌̀◌֮◌⃔b; à◌֮◌⃔◌̕b; a◌֮◌̀◌⃔◌̕b; à◌֮◌⃔◌̕b; a◌֮◌̀◌⃔◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
COMBINING ANTICLOCKWISE ARROW ABOVE, LATIN SMALL LETTER B
 0061 20D4 0315 0300 05AE 0062;0061 05AE 20D4 0300 0315 0062;0061 05AE 20D4 
0300 0315 0062;0061 05AE 20D4 0300 0315 0062;0061 05AE 20D4 0300 0315 0062; # 
(a◌⃔◌̕◌̀◌֮b; a◌֮◌⃔◌̀◌̕b; a◌֮◌⃔◌̀◌̕b; a◌֮◌⃔◌̀◌̕b; a◌֮◌⃔◌̀◌̕b; ) LATIN SMALL 
LETTER A, COMBINING ANTICLOCKWISE ARROW ABOVE, COMBINING COMMA ABOVE RIGHT, 
COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 0315 0300 05AE 20D5 0062;00E0 05AE 20D5 0315 0062;0061 05AE 0300 20D5 
0315 0062;00E0 05AE 20D5 0315 0062;0061 05AE 0300 20D5 0315 0062; # 
(a◌̕◌̀◌֮◌⃕b; à◌֮◌⃕◌̕b; a◌֮◌̀◌⃕◌̕b; à◌֮◌⃕◌̕b; a◌֮◌̀◌⃕◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
COMBINING CLOCKWISE ARROW ABOVE, LATIN SMALL LETTER B
@@ -18046,32 +18063,32 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) 
HALFWIDTH WHITE CIRCLE
 0061 20D6 0315 0300 05AE 0062;0061 05AE 20D6 0300 0315 0062;0061 05AE 20D6 
0300 0315 0062;0061 05AE 20D6 0300 0315 0062;0061 05AE 20D6 0300 0315 0062; # 
(a◌⃖◌̕◌̀◌֮b; a◌֮◌⃖◌̀◌̕b; a◌֮◌⃖◌̀◌̕b; a◌֮◌⃖◌̀◌̕b; a◌֮◌⃖◌̀◌̕b; ) LATIN SMALL 
LETTER A, COMBINING LEFT ARROW ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING 
GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 0315 0300 05AE 20D7 0062;00E0 05AE 20D7 0315 0062;0061 05AE 0300 20D7 
0315 0062;00E0 05AE 20D7 0315 0062;0061 05AE 0300 20D7 0315 0062; # 
(a◌̕◌̀◌֮◌⃗b; à◌֮◌⃗◌̕b; a◌֮◌̀◌⃗◌̕b; à◌֮◌⃗◌̕b; a◌֮◌̀◌⃗◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
COMBINING RIGHT ARROW ABOVE, LATIN SMALL LETTER B
 0061 20D7 0315 0300 05AE 0062;0061 05AE 20D7 0300 0315 0062;0061 05AE 20D7 
0300 0315 0062;0061 05AE 20D7 0300 0315 0062;0061 05AE 20D7 0300 0315 0062; # 
(a◌⃗◌̕◌̀◌֮b; a◌֮◌⃗◌̀◌̕b; a◌֮◌⃗◌̀◌̕b; a◌֮◌⃗◌̀◌̕b; a◌֮◌⃗◌̀◌̕b; ) LATIN SMALL 
LETTER A, COMBINING RIGHT ARROW ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING 
GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
-0061 093C 0334 20D8 0062;0061 0334 20D8 093C 0062;0061 0334 20D8 093C 
0062;0061 0334 20D8 093C 0062;0061 0334 20D8 093C 0062; # (a◌़◌̴◌⃘b; a◌̴◌⃘◌़b; 
a◌̴◌⃘◌़b; a◌̴◌⃘◌़b; a◌̴◌⃘◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, COMBINING RING OVERLAY, LATIN SMALL LETTER B
-0061 20D8 093C 0334 0062;0061 20D8 0334 093C 0062;0061 20D8 0334 093C 
0062;0061 20D8 0334 093C 0062;0061 20D8 0334 093C 0062; # (a◌⃘◌़◌̴b; a◌⃘◌̴◌़b; 
a◌⃘◌̴◌़b; a◌⃘◌̴◌़b; a◌⃘◌̴◌़b; ) LATIN SMALL LETTER A, COMBINING RING OVERLAY, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
-0061 093C 0334 20D9 0062;0061 0334 20D9 093C 0062;0061 0334 20D9 093C 
0062;0061 0334 20D9 093C 0062;0061 0334 20D9 093C 0062; # (a◌़◌̴◌⃙b; a◌̴◌⃙◌़b; 
a◌̴◌⃙◌़b; a◌̴◌⃙◌़b; a◌̴◌⃙◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, COMBINING CLOCKWISE RING OVERLAY, LATIN SMALL LETTER B
-0061 20D9 093C 0334 0062;0061 20D9 0334 093C 0062;0061 20D9 0334 093C 
0062;0061 20D9 0334 093C 0062;0061 20D9 0334 093C 0062; # (a◌⃙◌़◌̴b; a◌⃙◌̴◌़b; 
a◌⃙◌̴◌़b; a◌⃙◌̴◌़b; a◌⃙◌̴◌़b; ) LATIN SMALL LETTER A, COMBINING CLOCKWISE RING 
OVERLAY, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
-0061 093C 0334 20DA 0062;0061 0334 20DA 093C 0062;0061 0334 20DA 093C 
0062;0061 0334 20DA 093C 0062;0061 0334 20DA 093C 0062; # (a◌़◌̴◌⃚b; a◌̴◌⃚◌़b; 
a◌̴◌⃚◌़b; a◌̴◌⃚◌़b; a◌̴◌⃚◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, COMBINING ANTICLOCKWISE RING OVERLAY, LATIN SMALL 
LETTER B
-0061 20DA 093C 0334 0062;0061 20DA 0334 093C 0062;0061 20DA 0334 093C 
0062;0061 20DA 0334 093C 0062;0061 20DA 0334 093C 0062; # (a◌⃚◌़◌̴b; a◌⃚◌̴◌़b; 
a◌⃚◌̴◌़b; a◌⃚◌̴◌़b; a◌⃚◌̴◌़b; ) LATIN SMALL LETTER A, COMBINING ANTICLOCKWISE 
RING OVERLAY, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL 
LETTER B
+0061 16FF0 0334 20D8 0062;0061 0334 20D8 16FF0 0062;0061 0334 20D8 16FF0 
0062;0061 0334 20D8 16FF0 0062;0061 0334 20D8 16FF0 0062; # (a𖿰◌̴◌⃘b; a◌̴◌⃘𖿰b; 
a◌̴◌⃘𖿰b; a◌̴◌⃘𖿰b; a◌̴◌⃘𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, COMBINING RING OVERLAY, LATIN SMALL LETTER B
+0061 20D8 16FF0 0334 0062;0061 20D8 0334 16FF0 0062;0061 20D8 0334 16FF0 
0062;0061 20D8 0334 16FF0 0062;0061 20D8 0334 16FF0 0062; # (a◌⃘𖿰◌̴b; a◌⃘◌̴𖿰b; 
a◌⃘◌̴𖿰b; a◌⃘◌̴𖿰b; a◌⃘◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING RING OVERLAY, 
VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL 
LETTER B
+0061 16FF0 0334 20D9 0062;0061 0334 20D9 16FF0 0062;0061 0334 20D9 16FF0 
0062;0061 0334 20D9 16FF0 0062;0061 0334 20D9 16FF0 0062; # (a𖿰◌̴◌⃙b; a◌̴◌⃙𖿰b; 
a◌̴◌⃙𖿰b; a◌̴◌⃙𖿰b; a◌̴◌⃙𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, COMBINING CLOCKWISE RING OVERLAY, LATIN SMALL 
LETTER B
+0061 20D9 16FF0 0334 0062;0061 20D9 0334 16FF0 0062;0061 20D9 0334 16FF0 
0062;0061 20D9 0334 16FF0 0062;0061 20D9 0334 16FF0 0062; # (a◌⃙𖿰◌̴b; a◌⃙◌̴𖿰b; 
a◌⃙◌̴𖿰b; a◌⃙◌̴𖿰b; a◌⃙◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING CLOCKWISE RING 
OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
+0061 16FF0 0334 20DA 0062;0061 0334 20DA 16FF0 0062;0061 0334 20DA 16FF0 
0062;0061 0334 20DA 16FF0 0062;0061 0334 20DA 16FF0 0062; # (a𖿰◌̴◌⃚b; a◌̴◌⃚𖿰b; 
a◌̴◌⃚𖿰b; a◌̴◌⃚𖿰b; a◌̴◌⃚𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, COMBINING ANTICLOCKWISE RING OVERLAY, LATIN 
SMALL LETTER B
+0061 20DA 16FF0 0334 0062;0061 20DA 0334 16FF0 0062;0061 20DA 0334 16FF0 
0062;0061 20DA 0334 16FF0 0062;0061 20DA 0334 16FF0 0062; # (a◌⃚𖿰◌̴b; a◌⃚◌̴𖿰b; 
a◌⃚◌̴𖿰b; a◌⃚◌̴𖿰b; a◌⃚◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING ANTICLOCKWISE RING 
OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
 0061 0315 0300 05AE 20DB 0062;00E0 05AE 20DB 0315 0062;0061 05AE 0300 20DB 
0315 0062;00E0 05AE 20DB 0315 0062;0061 05AE 0300 20DB 0315 0062; # 
(a◌̕◌̀◌֮◌⃛b; à◌֮◌⃛◌̕b; a◌֮◌̀◌⃛◌̕b; à◌֮◌⃛◌̕b; a◌֮◌̀◌⃛◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
COMBINING THREE DOTS ABOVE, LATIN SMALL LETTER B
 0061 20DB 0315 0300 05AE 0062;0061 05AE 20DB 0300 0315 0062;0061 05AE 20DB 
0300 0315 0062;0061 05AE 20DB 0300 0315 0062;0061 05AE 20DB 0300 0315 0062; # 
(a◌⃛◌̕◌̀◌֮b; a◌֮◌⃛◌̀◌̕b; a◌֮◌⃛◌̀◌̕b; a◌֮◌⃛◌̀◌̕b; a◌֮◌⃛◌̀◌̕b; ) LATIN SMALL 
LETTER A, COMBINING THREE DOTS ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING 
GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 0315 0300 05AE 20DC 0062;00E0 05AE 20DC 0315 0062;0061 05AE 0300 20DC 
0315 0062;00E0 05AE 20DC 0315 0062;0061 05AE 0300 20DC 0315 0062; # 
(a◌̕◌̀◌֮◌⃜b; à◌֮◌⃜◌̕b; a◌֮◌̀◌⃜◌̕b; à◌֮◌⃜◌̕b; a◌֮◌̀◌⃜◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
COMBINING FOUR DOTS ABOVE, LATIN SMALL LETTER B
 0061 20DC 0315 0300 05AE 0062;0061 05AE 20DC 0300 0315 0062;0061 05AE 20DC 
0300 0315 0062;0061 05AE 20DC 0300 0315 0062;0061 05AE 20DC 0300 0315 0062; # 
(a◌⃜◌̕◌̀◌֮b; a◌֮◌⃜◌̀◌̕b; a◌֮◌⃜◌̀◌̕b; a◌֮◌⃜◌̀◌̕b; a◌֮◌⃜◌̀◌̕b; ) LATIN SMALL 
LETTER A, COMBINING FOUR DOTS ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING 
GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 0315 0300 05AE 20E1 0062;00E0 05AE 20E1 0315 0062;0061 05AE 0300 20E1 
0315 0062;00E0 05AE 20E1 0315 0062;0061 05AE 0300 20E1 0315 0062; # 
(a◌̕◌̀◌֮◌⃡b; à◌֮◌⃡◌̕b; a◌֮◌̀◌⃡◌̕b; à◌֮◌⃡◌̕b; a◌֮◌̀◌⃡◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
COMBINING LEFT RIGHT ARROW ABOVE, LATIN SMALL LETTER B
 0061 20E1 0315 0300 05AE 0062;0061 05AE 20E1 0300 0315 0062;0061 05AE 20E1 
0300 0315 0062;0061 05AE 20E1 0300 0315 0062;0061 05AE 20E1 0300 0315 0062; # 
(a◌⃡◌̕◌̀◌֮b; a◌֮◌⃡◌̀◌̕b; a◌֮◌⃡◌̀◌̕b; a◌֮◌⃡◌̀◌̕b; a◌֮◌⃡◌̀◌̕b; ) LATIN SMALL 
LETTER A, COMBINING LEFT RIGHT ARROW ABOVE, COMBINING COMMA ABOVE RIGHT, 
COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
-0061 093C 0334 20E5 0062;0061 0334 20E5 093C 0062;0061 0334 20E5 093C 
0062;0061 0334 20E5 093C 0062;0061 0334 20E5 093C 0062; # (a◌़◌̴◌⃥b; a◌̴◌⃥◌़b; 
a◌̴◌⃥◌़b; a◌̴◌⃥◌़b; a◌̴◌⃥◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, COMBINING REVERSE SOLIDUS OVERLAY, LATIN SMALL LETTER B
-0061 20E5 093C 0334 0062;0061 20E5 0334 093C 0062;0061 20E5 0334 093C 
0062;0061 20E5 0334 093C 0062;0061 20E5 0334 093C 0062; # (a◌⃥◌़◌̴b; a◌⃥◌̴◌़b; 
a◌⃥◌̴◌़b; a◌⃥◌̴◌़b; a◌⃥◌̴◌़b; ) LATIN SMALL LETTER A, COMBINING REVERSE SOLIDUS 
OVERLAY, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
-0061 093C 0334 20E6 0062;0061 0334 20E6 093C 0062;0061 0334 20E6 093C 
0062;0061 0334 20E6 093C 0062;0061 0334 20E6 093C 0062; # (a◌़◌̴◌⃦b; a◌̴◌⃦◌़b; 
a◌̴◌⃦◌़b; a◌̴◌⃦◌़b; a◌̴◌⃦◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, COMBINING DOUBLE VERTICAL STROKE OVERLAY, LATIN SMALL 
LETTER B
-0061 20E6 093C 0334 0062;0061 20E6 0334 093C 0062;0061 20E6 0334 093C 
0062;0061 20E6 0334 093C 0062;0061 20E6 0334 093C 0062; # (a◌⃦◌़◌̴b; a◌⃦◌̴◌़b; 
a◌⃦◌̴◌़b; a◌⃦◌̴◌़b; a◌⃦◌̴◌़b; ) LATIN SMALL LETTER A, COMBINING DOUBLE VERTICAL 
STROKE OVERLAY, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL 
LETTER B
+0061 16FF0 0334 20E5 0062;0061 0334 20E5 16FF0 0062;0061 0334 20E5 16FF0 
0062;0061 0334 20E5 16FF0 0062;0061 0334 20E5 16FF0 0062; # (a𖿰◌̴◌⃥b; a◌̴◌⃥𖿰b; 
a◌̴◌⃥𖿰b; a◌̴◌⃥𖿰b; a◌̴◌⃥𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, COMBINING REVERSE SOLIDUS OVERLAY, LATIN 
SMALL LETTER B
+0061 20E5 16FF0 0334 0062;0061 20E5 0334 16FF0 0062;0061 20E5 0334 16FF0 
0062;0061 20E5 0334 16FF0 0062;0061 20E5 0334 16FF0 0062; # (a◌⃥𖿰◌̴b; a◌⃥◌̴𖿰b; 
a◌⃥◌̴𖿰b; a◌⃥◌̴𖿰b; a◌⃥◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING REVERSE SOLIDUS 
OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
+0061 16FF0 0334 20E6 0062;0061 0334 20E6 16FF0 0062;0061 0334 20E6 16FF0 
0062;0061 0334 20E6 16FF0 0062;0061 0334 20E6 16FF0 0062; # (a𖿰◌̴◌⃦b; a◌̴◌⃦𖿰b; 
a◌̴◌⃦𖿰b; a◌̴◌⃦𖿰b; a◌̴◌⃦𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, COMBINING DOUBLE VERTICAL STROKE OVERLAY, 
LATIN SMALL LETTER B
+0061 20E6 16FF0 0334 0062;0061 20E6 0334 16FF0 0062;0061 20E6 0334 16FF0 
0062;0061 20E6 0334 16FF0 0062;0061 20E6 0334 16FF0 0062; # (a◌⃦𖿰◌̴b; a◌⃦◌̴𖿰b; 
a◌⃦◌̴𖿰b; a◌⃦◌̴𖿰b; a◌⃦◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING DOUBLE VERTICAL 
STROKE OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, 
LATIN SMALL LETTER B
 0061 0315 0300 05AE 20E7 0062;00E0 05AE 20E7 0315 0062;0061 05AE 0300 20E7 
0315 0062;00E0 05AE 20E7 0315 0062;0061 05AE 0300 20E7 0315 0062; # 
(a◌̕◌̀◌֮◌⃧b; à◌֮◌⃧◌̕b; a◌֮◌̀◌⃧◌̕b; à◌֮◌⃧◌̕b; a◌֮◌̀◌⃧◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
COMBINING ANNUITY SYMBOL, LATIN SMALL LETTER B
 0061 20E7 0315 0300 05AE 0062;0061 05AE 20E7 0300 0315 0062;0061 05AE 20E7 
0300 0315 0062;0061 05AE 20E7 0300 0315 0062;0061 05AE 20E7 0300 0315 0062; # 
(a◌⃧◌̕◌̀◌֮b; a◌֮◌⃧◌̀◌̕b; a◌֮◌⃧◌̀◌̕b; a◌֮◌⃧◌̀◌̕b; a◌֮◌⃧◌̀◌̕b; ) LATIN SMALL 
LETTER A, COMBINING ANNUITY SYMBOL, COMBINING COMMA ABOVE RIGHT, COMBINING 
GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 059A 0316 302A 20E8 0062;0061 302A 0316 20E8 059A 0062;0061 302A 0316 
20E8 059A 0062;0061 302A 0316 20E8 059A 0062;0061 302A 0316 20E8 059A 0062; # 
(a◌֚◌̖◌〪◌⃨b; a◌〪◌̖◌⃨◌֚b; a◌〪◌̖◌⃨◌֚b; a◌〪◌̖◌⃨◌֚b; a◌〪◌̖◌⃨◌֚b; ) LATIN SMALL 
LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL 
TONE MARK, COMBINING TRIPLE UNDERDOT, LATIN SMALL LETTER B
 0061 20E8 059A 0316 302A 0062;0061 302A 20E8 0316 059A 0062;0061 302A 20E8 
0316 059A 0062;0061 302A 20E8 0316 059A 0062;0061 302A 20E8 0316 059A 0062; # 
(a◌⃨◌֚◌̖◌〪b; a◌〪◌⃨◌̖◌֚b; a◌〪◌⃨◌̖◌֚b; a◌〪◌⃨◌̖◌֚b; a◌〪◌⃨◌̖◌֚b; ) LATIN SMALL 
LETTER A, COMBINING TRIPLE UNDERDOT, HEBREW ACCENT YETIV, COMBINING GRAVE 
ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
 0061 0315 0300 05AE 20E9 0062;00E0 05AE 20E9 0315 0062;0061 05AE 0300 20E9 
0315 0062;00E0 05AE 20E9 0315 0062;0061 05AE 0300 20E9 0315 0062; # 
(a◌̕◌̀◌֮◌⃩b; à◌֮◌⃩◌̕b; a◌֮◌̀◌⃩◌̕b; à◌֮◌⃩◌̕b; a◌֮◌̀◌⃩◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
COMBINING WIDE BRIDGE ABOVE, LATIN SMALL LETTER B
 0061 20E9 0315 0300 05AE 0062;0061 05AE 20E9 0300 0315 0062;0061 05AE 20E9 
0300 0315 0062;0061 05AE 20E9 0300 0315 0062;0061 05AE 20E9 0300 0315 0062; # 
(a◌⃩◌̕◌̀◌֮b; a◌֮◌⃩◌̀◌̕b; a◌֮◌⃩◌̀◌̕b; a◌֮◌⃩◌̀◌̕b; a◌֮◌⃩◌̀◌̕b; ) LATIN SMALL 
LETTER A, COMBINING WIDE BRIDGE ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING 
GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
-0061 093C 0334 20EA 0062;0061 0334 20EA 093C 0062;0061 0334 20EA 093C 
0062;0061 0334 20EA 093C 0062;0061 0334 20EA 093C 0062; # (a◌़◌̴◌⃪b; a◌̴◌⃪◌़b; 
a◌̴◌⃪◌़b; a◌̴◌⃪◌़b; a◌̴◌⃪◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, COMBINING LEFTWARDS ARROW OVERLAY, LATIN SMALL LETTER B
-0061 20EA 093C 0334 0062;0061 20EA 0334 093C 0062;0061 20EA 0334 093C 
0062;0061 20EA 0334 093C 0062;0061 20EA 0334 093C 0062; # (a◌⃪◌़◌̴b; a◌⃪◌̴◌़b; 
a◌⃪◌̴◌़b; a◌⃪◌̴◌़b; a◌⃪◌̴◌़b; ) LATIN SMALL LETTER A, COMBINING LEFTWARDS ARROW 
OVERLAY, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
-0061 093C 0334 20EB 0062;0061 0334 20EB 093C 0062;0061 0334 20EB 093C 
0062;0061 0334 20EB 093C 0062;0061 0334 20EB 093C 0062; # (a◌़◌̴◌⃫b; a◌̴◌⃫◌़b; 
a◌̴◌⃫◌़b; a◌̴◌⃫◌़b; a◌̴◌⃫◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, COMBINING LONG DOUBLE SOLIDUS OVERLAY, LATIN SMALL 
LETTER B
-0061 20EB 093C 0334 0062;0061 20EB 0334 093C 0062;0061 20EB 0334 093C 
0062;0061 20EB 0334 093C 0062;0061 20EB 0334 093C 0062; # (a◌⃫◌़◌̴b; a◌⃫◌̴◌़b; 
a◌⃫◌̴◌़b; a◌⃫◌̴◌़b; a◌⃫◌̴◌़b; ) LATIN SMALL LETTER A, COMBINING LONG DOUBLE 
SOLIDUS OVERLAY, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL 
LETTER B
+0061 16FF0 0334 20EA 0062;0061 0334 20EA 16FF0 0062;0061 0334 20EA 16FF0 
0062;0061 0334 20EA 16FF0 0062;0061 0334 20EA 16FF0 0062; # (a𖿰◌̴◌⃪b; a◌̴◌⃪𖿰b; 
a◌̴◌⃪𖿰b; a◌̴◌⃪𖿰b; a◌̴◌⃪𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, COMBINING LEFTWARDS ARROW OVERLAY, LATIN 
SMALL LETTER B
+0061 20EA 16FF0 0334 0062;0061 20EA 0334 16FF0 0062;0061 20EA 0334 16FF0 
0062;0061 20EA 0334 16FF0 0062;0061 20EA 0334 16FF0 0062; # (a◌⃪𖿰◌̴b; a◌⃪◌̴𖿰b; 
a◌⃪◌̴𖿰b; a◌⃪◌̴𖿰b; a◌⃪◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING LEFTWARDS ARROW 
OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
+0061 16FF0 0334 20EB 0062;0061 0334 20EB 16FF0 0062;0061 0334 20EB 16FF0 
0062;0061 0334 20EB 16FF0 0062;0061 0334 20EB 16FF0 0062; # (a𖿰◌̴◌⃫b; a◌̴◌⃫𖿰b; 
a◌̴◌⃫𖿰b; a◌̴◌⃫𖿰b; a◌̴◌⃫𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE ALTERNATE READING 
MARK CA, COMBINING TILDE OVERLAY, COMBINING LONG DOUBLE SOLIDUS OVERLAY, LATIN 
SMALL LETTER B
+0061 20EB 16FF0 0334 0062;0061 20EB 0334 16FF0 0062;0061 20EB 0334 16FF0 
0062;0061 20EB 0334 16FF0 0062;0061 20EB 0334 16FF0 0062; # (a◌⃫𖿰◌̴b; a◌⃫◌̴𖿰b; 
a◌⃫◌̴𖿰b; a◌⃫◌̴𖿰b; a◌⃫◌̴𖿰b; ) LATIN SMALL LETTER A, COMBINING LONG DOUBLE 
SOLIDUS OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, 
LATIN SMALL LETTER B
 0061 059A 0316 302A 20EC 0062;0061 302A 0316 20EC 059A 0062;0061 302A 0316 
20EC 059A 0062;0061 302A 0316 20EC 059A 0062;0061 302A 0316 20EC 059A 0062; # 
(a◌֚◌̖◌〪◌⃬b; a◌〪◌̖◌⃬◌֚b; a◌〪◌̖◌⃬◌֚b; a◌〪◌̖◌⃬◌֚b; a◌〪◌̖◌⃬◌֚b; ) LATIN SMALL 
LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL 
TONE MARK, COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS, LATIN SMALL LETTER 
B
 0061 20EC 059A 0316 302A 0062;0061 302A 20EC 0316 059A 0062;0061 302A 20EC 
0316 059A 0062;0061 302A 20EC 0316 059A 0062;0061 302A 20EC 0316 059A 0062; # 
(a◌⃬◌֚◌̖◌〪b; a◌〪◌⃬◌̖◌֚b; a◌〪◌⃬◌̖◌֚b; a◌〪◌⃬◌̖◌֚b; a◌〪◌⃬◌̖◌֚b; ) LATIN SMALL 
LETTER A, COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS, HEBREW ACCENT 
YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL 
LETTER B
 0061 059A 0316 302A 20ED 0062;0061 302A 0316 20ED 059A 0062;0061 302A 0316 
20ED 059A 0062;0061 302A 0316 20ED 059A 0062;0061 302A 0316 20ED 059A 0062; # 
(a◌֚◌̖◌〪◌⃭b; a◌〪◌̖◌⃭◌֚b; a◌〪◌̖◌⃭◌֚b; a◌〪◌̖◌⃭◌֚b; a◌〪◌̖◌⃭◌֚b; ) LATIN SMALL 
LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL 
TONE MARK, COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS, LATIN SMALL LETTER B
@@ -18202,6 +18219,8 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH 
WHITE CIRCLE
 0061 A6F1 0315 0300 05AE 0062;0061 05AE A6F1 0300 0315 0062;0061 05AE A6F1 
0300 0315 0062;0061 05AE A6F1 0300 0315 0062;0061 05AE A6F1 0300 0315 0062; # 
(a◌꛱◌̕◌̀◌֮b; a◌֮◌꛱◌̀◌̕b; a◌֮◌꛱◌̀◌̕b; a◌֮◌꛱◌̀◌̕b; a◌֮◌꛱◌̀◌̕b; ) LATIN SMALL 
LETTER A, BAMUM COMBINING MARK TUKWENTIS, COMBINING COMMA ABOVE RIGHT, 
COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 05B0 094D 3099 A806 0062;0061 3099 094D A806 05B0 0062;0061 3099 094D 
A806 05B0 0062;0061 3099 094D A806 05B0 0062;0061 3099 094D A806 05B0 0062; # 
(a◌ְ◌्◌゙◌꠆b; a◌゙◌्◌꠆◌ְb; a◌゙◌्◌꠆◌ְb; a◌゙◌्◌꠆◌ְb; a◌゙◌्◌꠆◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, SYLOTI NAGRI SIGN HASANTA, LATIN SMALL 
LETTER B
 0061 A806 05B0 094D 3099 0062;0061 3099 A806 094D 05B0 0062;0061 3099 A806 
094D 05B0 0062;0061 3099 A806 094D 05B0 0062;0061 3099 A806 094D 05B0 0062; # 
(a◌꠆◌ְ◌्◌゙b; a◌゙◌꠆◌्◌ְb; a◌゙◌꠆◌्◌ְb; a◌゙◌꠆◌्◌ְb; a◌゙◌꠆◌्◌ְb; ) LATIN SMALL 
LETTER A, SYLOTI NAGRI SIGN HASANTA, HEBREW POINT SHEVA, DEVANAGARI SIGN 
VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 A82C 0062;0061 3099 094D A82C 05B0 0062;0061 3099 094D 
A82C 05B0 0062;0061 3099 094D A82C 05B0 0062;0061 3099 094D A82C 05B0 0062; # 
(a◌ְ◌्◌゙◌꠬b; a◌゙◌्◌꠬◌ְb; a◌゙◌्◌꠬◌ְb; a◌゙◌्◌꠬◌ְb; a◌゙◌्◌꠬◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, SYLOTI NAGRI SIGN ALTERNATE HASANTA, LATIN 
SMALL LETTER B
+0061 A82C 05B0 094D 3099 0062;0061 3099 A82C 094D 05B0 0062;0061 3099 A82C 
094D 05B0 0062;0061 3099 A82C 094D 05B0 0062;0061 3099 A82C 094D 05B0 0062; # 
(a◌꠬◌ְ◌्◌゙b; a◌゙◌꠬◌्◌ְb; a◌゙◌꠬◌्◌ְb; a◌゙◌꠬◌्◌ְb; a◌゙◌꠬◌्◌ְb; ) LATIN SMALL 
LETTER A, SYLOTI NAGRI SIGN ALTERNATE HASANTA, HEBREW POINT SHEVA, DEVANAGARI 
SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 05B0 094D 3099 A8C4 0062;0061 3099 094D A8C4 05B0 0062;0061 3099 094D 
A8C4 05B0 0062;0061 3099 094D A8C4 05B0 0062;0061 3099 094D A8C4 05B0 0062; # 
(a◌ְ◌्◌゙◌꣄b; a◌゙◌्◌꣄◌ְb; a◌゙◌्◌꣄◌ְb; a◌゙◌्◌꣄◌ְb; a◌゙◌्◌꣄◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, SAURASHTRA SIGN VIRAMA, LATIN SMALL LETTER 
B
 0061 A8C4 05B0 094D 3099 0062;0061 3099 A8C4 094D 05B0 0062;0061 3099 A8C4 
094D 05B0 0062;0061 3099 A8C4 094D 05B0 0062;0061 3099 A8C4 094D 05B0 0062; # 
(a◌꣄◌ְ◌्◌゙b; a◌゙◌꣄◌्◌ְb; a◌゙◌꣄◌्◌ְb; a◌゙◌꣄◌्◌ְb; a◌゙◌꣄◌्◌ְb; ) LATIN SMALL 
LETTER A, SAURASHTRA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 0315 0300 05AE A8E0 0062;00E0 05AE A8E0 0315 0062;0061 05AE 0300 A8E0 
0315 0062;00E0 05AE A8E0 0315 0062;0061 05AE 0300 A8E0 0315 0062; # 
(a◌̕◌̀◌֮◌꣠b; à◌֮◌꣠◌̕b; a◌֮◌̀◌꣠◌̕b; à◌֮◌꣠◌̕b; a◌֮◌̀◌꣠◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
COMBINING DEVANAGARI DIGIT ZERO, LATIN SMALL LETTER B
@@ -18248,8 +18267,8 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH 
WHITE CIRCLE
 0061 A92D 059A 0316 302A 0062;0061 302A A92D 0316 059A 0062;0061 302A A92D 
0316 059A 0062;0061 302A A92D 0316 059A 0062;0061 302A A92D 0316 059A 0062; # 
(a◌꤭◌֚◌̖◌〪b; a◌〪◌꤭◌̖◌֚b; a◌〪◌꤭◌̖◌֚b; a◌〪◌꤭◌̖◌֚b; a◌〪◌꤭◌̖◌֚b; ) LATIN SMALL 
LETTER A, KAYAH LI TONE CALYA PLOPHU, HEBREW ACCENT YETIV, COMBINING GRAVE 
ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
 0061 05B0 094D 3099 A953 0062;0061 3099 094D A953 05B0 0062;0061 3099 094D 
A953 05B0 0062;0061 3099 094D A953 05B0 0062;0061 3099 094D A953 05B0 0062; # 
(a◌ְ◌्◌゙꥓b; a◌゙◌्꥓◌ְb; a◌゙◌्꥓◌ְb; a◌゙◌्꥓◌ְb; a◌゙◌्꥓◌ְb; ) LATIN SMALL LETTER A, 
HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED 
SOUND MARK, REJANG VIRAMA, LATIN SMALL LETTER B
 0061 A953 05B0 094D 3099 0062;0061 3099 A953 094D 05B0 0062;0061 3099 A953 
094D 05B0 0062;0061 3099 A953 094D 05B0 0062;0061 3099 A953 094D 05B0 0062; # 
(a꥓◌ְ◌्◌゙b; a◌゙꥓◌्◌ְb; a◌゙꥓◌्◌ְb; a◌゙꥓◌्◌ְb; a◌゙꥓◌्◌ְb; ) LATIN SMALL LETTER A, 
REJANG VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
-0061 3099 093C 0334 A9B3 0062;0061 0334 093C A9B3 3099 0062;0061 0334 093C 
A9B3 3099 0062;0061 0334 093C A9B3 3099 0062;0061 0334 093C A9B3 3099 0062; # 
(a◌゙◌़◌̴◌꦳b; a◌̴◌़◌꦳◌゙b; a◌̴◌़◌꦳◌゙b; a◌̴◌़◌꦳◌゙b; a◌̴◌़◌꦳◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, JAVANESE SIGN CECAK TELU, LATIN SMALL LETTER B
-0061 A9B3 3099 093C 0334 0062;0061 0334 A9B3 093C 3099 0062;0061 0334 A9B3 
093C 3099 0062;0061 0334 A9B3 093C 3099 0062;0061 0334 A9B3 093C 3099 0062; # 
(a◌꦳◌゙◌़◌̴b; a◌̴◌꦳◌़◌゙b; a◌̴◌꦳◌़◌゙b; a◌̴◌꦳◌़◌゙b; a◌̴◌꦳◌़◌゙b; ) LATIN SMALL 
LETTER A, JAVANESE SIGN CECAK TELU, COMBINING KATAKANA-HIRAGANA VOICED SOUND 
MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 A9B3 0062;0061 16FF0 093C A9B3 3099 0062;0061 16FF0 093C 
A9B3 3099 0062;0061 16FF0 093C A9B3 3099 0062;0061 16FF0 093C A9B3 3099 0062; # 
(a◌゙◌𖿰़◌꦳b; a𖿰◌़◌꦳◌゙b; a𖿰◌़◌꦳◌゙b; a𖿰◌़◌꦳◌゙b; a𖿰◌़◌꦳◌゙b; ) LATIN SMALL LETTER A, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, JAVANESE SIGN CECAK TELU, LATIN SMALL 
LETTER B
+0061 A9B3 3099 093C 16FF0 0062;0061 16FF0 A9B3 093C 3099 0062;0061 16FF0 A9B3 
093C 3099 0062;0061 16FF0 A9B3 093C 3099 0062;0061 16FF0 A9B3 093C 3099 0062; # 
(a◌꦳◌゙◌𖿰़b; a𖿰◌꦳◌़◌゙b; a𖿰◌꦳◌़◌゙b; a𖿰◌꦳◌़◌゙b; a𖿰◌꦳◌़◌゙b; ) LATIN SMALL LETTER A, 
JAVANESE SIGN CECAK TELU, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER 
B
 0061 05B0 094D 3099 A9C0 0062;0061 3099 094D A9C0 05B0 0062;0061 3099 094D 
A9C0 05B0 0062;0061 3099 094D A9C0 05B0 0062;0061 3099 094D A9C0 05B0 0062; # 
(a◌ְ◌्◌゙꧀b; a◌゙◌्꧀◌ְb; a◌゙◌्꧀◌ְb; a◌゙◌्꧀◌ְb; a◌゙◌्꧀◌ְb; ) LATIN SMALL LETTER A, 
HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED 
SOUND MARK, JAVANESE PANGKON, LATIN SMALL LETTER B
 0061 A9C0 05B0 094D 3099 0062;0061 3099 A9C0 094D 05B0 0062;0061 3099 A9C0 
094D 05B0 0062;0061 3099 A9C0 094D 05B0 0062;0061 3099 A9C0 094D 05B0 0062; # 
(a꧀◌ְ◌्◌゙b; a◌゙꧀◌्◌ְb; a◌゙꧀◌्◌ְb; a◌゙꧀◌्◌ְb; a◌゙꧀◌्◌ְb; ) LATIN SMALL LETTER A, 
JAVANESE PANGKON, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 0315 0300 05AE AAB0 0062;00E0 05AE AAB0 0315 0062;0061 05AE 0300 AAB0 
0315 0062;00E0 05AE AAB0 0315 0062;0061 05AE 0300 AAB0 0315 0062; # 
(a◌̕◌̀◌֮◌ꪰb; à◌֮◌ꪰ◌̕b; a◌֮◌̀◌ꪰ◌̕b; à◌֮◌ꪰ◌̕b; a◌֮◌̀◌ꪰ◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
TAI VIET MAI KANG, LATIN SMALL LETTER B
@@ -18328,8 +18347,8 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH 
WHITE CIRCLE
 0061 10A0F 0315 0300 05AE 0062;0061 05AE 10A0F 0300 0315 0062;0061 05AE 10A0F 
0300 0315 0062;0061 05AE 10A0F 0300 0315 0062;0061 05AE 10A0F 0300 0315 0062; # 
(a◌𐨏◌̕◌̀◌֮b; a◌֮◌𐨏◌̀◌̕b; a◌֮◌𐨏◌̀◌̕b; a◌֮◌𐨏◌̀◌̕b; a◌֮◌𐨏◌̀◌̕b; ) LATIN SMALL 
LETTER A, KHAROSHTHI SIGN VISARGA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE 
ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 0315 0300 05AE 10A38 0062;00E0 05AE 10A38 0315 0062;0061 05AE 0300 10A38 
0315 0062;00E0 05AE 10A38 0315 0062;0061 05AE 0300 10A38 0315 0062; # 
(a◌̕◌̀◌֮◌𐨸b; à◌֮◌𐨸◌̕b; a◌֮◌̀◌𐨸◌̕b; à◌֮◌𐨸◌̕b; a◌֮◌̀◌𐨸◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
KHAROSHTHI SIGN BAR ABOVE, LATIN SMALL LETTER B
 0061 10A38 0315 0300 05AE 0062;0061 05AE 10A38 0300 0315 0062;0061 05AE 10A38 
0300 0315 0062;0061 05AE 10A38 0300 0315 0062;0061 05AE 10A38 0300 0315 0062; # 
(a◌𐨸◌̕◌̀◌֮b; a◌֮◌𐨸◌̀◌̕b; a◌֮◌𐨸◌̀◌̕b; a◌֮◌𐨸◌̀◌̕b; a◌֮◌𐨸◌̀◌̕b; ) LATIN SMALL 
LETTER A, KHAROSHTHI SIGN BAR ABOVE, COMBINING COMMA ABOVE RIGHT, COMBINING 
GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
-0061 093C 0334 10A39 0062;0061 0334 10A39 093C 0062;0061 0334 10A39 093C 
0062;0061 0334 10A39 093C 0062;0061 0334 10A39 093C 0062; # (a◌़◌̴◌𐨹b; 
a◌̴◌𐨹◌़b; a◌̴◌𐨹◌़b; a◌̴◌𐨹◌़b; a◌̴◌𐨹◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN 
NUKTA, COMBINING TILDE OVERLAY, KHAROSHTHI SIGN CAUDA, LATIN SMALL LETTER B
-0061 10A39 093C 0334 0062;0061 10A39 0334 093C 0062;0061 10A39 0334 093C 
0062;0061 10A39 0334 093C 0062;0061 10A39 0334 093C 0062; # (a◌𐨹◌़◌̴b; 
a◌𐨹◌̴◌़b; a◌𐨹◌̴◌़b; a◌𐨹◌̴◌़b; a◌𐨹◌̴◌़b; ) LATIN SMALL LETTER A, KHAROSHTHI SIGN 
CAUDA, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 10A39 0062;0061 0334 10A39 16FF0 0062;0061 0334 10A39 16FF0 
0062;0061 0334 10A39 16FF0 0062;0061 0334 10A39 16FF0 0062; # (a𖿰◌̴◌𐨹b; 
a◌̴◌𐨹𖿰b; a◌̴◌𐨹𖿰b; a◌̴◌𐨹𖿰b; a◌̴◌𐨹𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE 
ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, KHAROSHTHI SIGN CAUDA, 
LATIN SMALL LETTER B
+0061 10A39 16FF0 0334 0062;0061 10A39 0334 16FF0 0062;0061 10A39 0334 16FF0 
0062;0061 10A39 0334 16FF0 0062;0061 10A39 0334 16FF0 0062; # (a◌𐨹𖿰◌̴b; 
a◌𐨹◌̴𖿰b; a◌𐨹◌̴𖿰b; a◌𐨹◌̴𖿰b; a◌𐨹◌̴𖿰b; ) LATIN SMALL LETTER A, KHAROSHTHI SIGN 
CAUDA, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
 0061 059A 0316 302A 10A3A 0062;0061 302A 0316 10A3A 059A 0062;0061 302A 0316 
10A3A 059A 0062;0061 302A 0316 10A3A 059A 0062;0061 302A 0316 10A3A 059A 0062; 
# (a◌֚◌̖◌〪◌𐨺b; a◌〪◌̖◌𐨺◌֚b; a◌〪◌̖◌𐨺◌֚b; a◌〪◌̖◌𐨺◌֚b; a◌〪◌̖◌𐨺◌֚b; ) LATIN SMALL 
LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL 
TONE MARK, KHAROSHTHI SIGN DOT BELOW, LATIN SMALL LETTER B
 0061 10A3A 059A 0316 302A 0062;0061 302A 10A3A 0316 059A 0062;0061 302A 10A3A 
0316 059A 0062;0061 302A 10A3A 0316 059A 0062;0061 302A 10A3A 0316 059A 0062; # 
(a◌𐨺◌֚◌̖◌〪b; a◌〪◌𐨺◌̖◌֚b; a◌〪◌𐨺◌̖◌֚b; a◌〪◌𐨺◌̖◌֚b; a◌〪◌𐨺◌̖◌֚b; ) LATIN SMALL 
LETTER A, KHAROSHTHI SIGN DOT BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE 
ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
 0061 05B0 094D 3099 10A3F 0062;0061 3099 094D 10A3F 05B0 0062;0061 3099 094D 
10A3F 05B0 0062;0061 3099 094D 10A3F 05B0 0062;0061 3099 094D 10A3F 05B0 0062; 
# (a◌ְ◌्◌゙◌𐨿b; a◌゙◌्◌𐨿◌ְb; a◌゙◌्◌𐨿◌ְb; a◌゙◌्◌𐨿◌ְb; a◌゙◌्◌𐨿◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, KHAROSHTHI VIRAMA, LATIN SMALL LETTER B
@@ -18346,6 +18365,10 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) 
HALFWIDTH WHITE CIRCLE
 0061 10D26 0315 0300 05AE 0062;0061 05AE 10D26 0300 0315 0062;0061 05AE 10D26 
0300 0315 0062;0061 05AE 10D26 0300 0315 0062;0061 05AE 10D26 0300 0315 0062; # 
(a◌𐴦◌̕◌̀◌֮b; a◌֮◌𐴦◌̀◌̕b; a◌֮◌𐴦◌̀◌̕b; a◌֮◌𐴦◌̀◌̕b; a◌֮◌𐴦◌̀◌̕b; ) LATIN SMALL 
LETTER A, HANIFI ROHINGYA SIGN TANA, COMBINING COMMA ABOVE RIGHT, COMBINING 
GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 0315 0300 05AE 10D27 0062;00E0 05AE 10D27 0315 0062;0061 05AE 0300 10D27 
0315 0062;00E0 05AE 10D27 0315 0062;0061 05AE 0300 10D27 0315 0062; # 
(a◌̕◌̀◌֮◌𐴧b; à◌֮◌𐴧◌̕b; a◌֮◌̀◌𐴧◌̕b; à◌֮◌𐴧◌̕b; a◌֮◌̀◌𐴧◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
HANIFI ROHINGYA SIGN TASSI, LATIN SMALL LETTER B
 0061 10D27 0315 0300 05AE 0062;0061 05AE 10D27 0300 0315 0062;0061 05AE 10D27 
0300 0315 0062;0061 05AE 10D27 0300 0315 0062;0061 05AE 10D27 0300 0315 0062; # 
(a◌𐴧◌̕◌̀◌֮b; a◌֮◌𐴧◌̀◌̕b; a◌֮◌𐴧◌̀◌̕b; a◌֮◌𐴧◌̀◌̕b; a◌֮◌𐴧◌̀◌̕b; ) LATIN SMALL 
LETTER A, HANIFI ROHINGYA SIGN TASSI, COMBINING COMMA ABOVE RIGHT, COMBINING 
GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10EAB 0062;00E0 05AE 10EAB 0315 0062;0061 05AE 0300 10EAB 
0315 0062;00E0 05AE 10EAB 0315 0062;0061 05AE 0300 10EAB 0315 0062; # 
(a◌̕◌̀◌֮◌𐺫b; à◌֮◌𐺫◌̕b; a◌֮◌̀◌𐺫◌̕b; à◌֮◌𐺫◌̕b; a◌֮◌̀◌𐺫◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
YEZIDI COMBINING HAMZA MARK, LATIN SMALL LETTER B
+0061 10EAB 0315 0300 05AE 0062;0061 05AE 10EAB 0300 0315 0062;0061 05AE 10EAB 
0300 0315 0062;0061 05AE 10EAB 0300 0315 0062;0061 05AE 10EAB 0300 0315 0062; # 
(a◌𐺫◌̕◌̀◌֮b; a◌֮◌𐺫◌̀◌̕b; a◌֮◌𐺫◌̀◌̕b; a◌֮◌𐺫◌̀◌̕b; a◌֮◌𐺫◌̀◌̕b; ) LATIN SMALL 
LETTER A, YEZIDI COMBINING HAMZA MARK, COMBINING COMMA ABOVE RIGHT, COMBINING 
GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 10EAC 0062;00E0 05AE 10EAC 0315 0062;0061 05AE 0300 10EAC 
0315 0062;00E0 05AE 10EAC 0315 0062;0061 05AE 0300 10EAC 0315 0062; # 
(a◌̕◌̀◌֮◌𐺬b; à◌֮◌𐺬◌̕b; a◌֮◌̀◌𐺬◌̕b; à◌֮◌𐺬◌̕b; a◌֮◌̀◌𐺬◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
YEZIDI COMBINING MADDA MARK, LATIN SMALL LETTER B
+0061 10EAC 0315 0300 05AE 0062;0061 05AE 10EAC 0300 0315 0062;0061 05AE 10EAC 
0300 0315 0062;0061 05AE 10EAC 0300 0315 0062;0061 05AE 10EAC 0300 0315 0062; # 
(a◌𐺬◌̕◌̀◌֮b; a◌֮◌𐺬◌̀◌̕b; a◌֮◌𐺬◌̀◌̕b; a◌֮◌𐺬◌̀◌̕b; a◌֮◌𐺬◌̀◌̕b; ) LATIN SMALL 
LETTER A, YEZIDI COMBINING MADDA MARK, COMBINING COMMA ABOVE RIGHT, COMBINING 
GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 059A 0316 302A 10F46 0062;0061 302A 0316 10F46 059A 0062;0061 302A 0316 
10F46 059A 0062;0061 302A 0316 10F46 059A 0062;0061 302A 0316 10F46 059A 0062; 
# (a◌֚◌̖◌〪◌𐽆b; a◌〪◌̖◌𐽆◌֚b; a◌〪◌̖◌𐽆◌֚b; a◌〪◌̖◌𐽆◌֚b; a◌〪◌̖◌𐽆◌֚b; ) LATIN SMALL 
LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL 
TONE MARK, SOGDIAN COMBINING DOT BELOW, LATIN SMALL LETTER B
 0061 10F46 059A 0316 302A 0062;0061 302A 10F46 0316 059A 0062;0061 302A 10F46 
0316 059A 0062;0061 302A 10F46 0316 059A 0062;0061 302A 10F46 0316 059A 0062; # 
(a◌𐽆◌֚◌̖◌〪b; a◌〪◌𐽆◌̖◌֚b; a◌〪◌𐽆◌̖◌֚b; a◌〪◌𐽆◌̖◌֚b; a◌〪◌𐽆◌̖◌֚b; ) LATIN SMALL 
LETTER A, SOGDIAN COMBINING DOT BELOW, HEBREW ACCENT YETIV, COMBINING GRAVE 
ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
 0061 059A 0316 302A 10F47 0062;0061 302A 0316 10F47 059A 0062;0061 302A 0316 
10F47 059A 0062;0061 302A 0316 10F47 059A 0062;0061 302A 0316 10F47 059A 0062; 
# (a◌֚◌̖◌〪◌𐽇b; a◌〪◌̖◌𐽇◌֚b; a◌〪◌̖◌𐽇◌֚b; a◌〪◌̖◌𐽇◌֚b; a◌〪◌̖◌𐽇◌֚b; ) LATIN SMALL 
LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL 
TONE MARK, SOGDIAN COMBINING TWO DOTS BELOW, LATIN SMALL LETTER B
@@ -18374,8 +18397,8 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH 
WHITE CIRCLE
 0061 1107F 05B0 094D 3099 0062;0061 3099 1107F 094D 05B0 0062;0061 3099 1107F 
094D 05B0 0062;0061 3099 1107F 094D 05B0 0062;0061 3099 1107F 094D 05B0 0062; # 
(a◌𑁿◌ְ◌्◌゙b; a◌゙◌𑁿◌्◌ְb; a◌゙◌𑁿◌्◌ְb; a◌゙◌𑁿◌्◌ְb; a◌゙◌𑁿◌्◌ְb; ) LATIN SMALL 
LETTER A, BRAHMI NUMBER JOINER, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 05B0 094D 3099 110B9 0062;0061 3099 094D 110B9 05B0 0062;0061 3099 094D 
110B9 05B0 0062;0061 3099 094D 110B9 05B0 0062;0061 3099 094D 110B9 05B0 0062; 
# (a◌ְ◌्◌゙◌𑂹b; a◌゙◌्◌𑂹◌ְb; a◌゙◌्◌𑂹◌ְb; a◌゙◌्◌𑂹◌ְb; a◌゙◌्◌𑂹◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, KAITHI SIGN VIRAMA, LATIN SMALL LETTER B
 0061 110B9 05B0 094D 3099 0062;0061 3099 110B9 094D 05B0 0062;0061 3099 110B9 
094D 05B0 0062;0061 3099 110B9 094D 05B0 0062;0061 3099 110B9 094D 05B0 0062; # 
(a◌𑂹◌ְ◌्◌゙b; a◌゙◌𑂹◌्◌ְb; a◌゙◌𑂹◌्◌ְb; a◌゙◌𑂹◌्◌ְb; a◌゙◌𑂹◌्◌ְb; ) LATIN SMALL 
LETTER A, KAITHI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
-0061 3099 093C 0334 110BA 0062;0061 0334 093C 110BA 3099 0062;0061 0334 093C 
110BA 3099 0062;0061 0334 093C 110BA 3099 0062;0061 0334 093C 110BA 3099 0062; 
# (a◌゙◌़◌̴◌𑂺b; a◌̴◌़◌𑂺◌゙b; a◌̴◌़◌𑂺◌゙b; a◌̴◌़◌𑂺◌゙b; a◌̴◌़◌𑂺◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, KAITHI SIGN NUKTA, LATIN SMALL LETTER B
-0061 110BA 3099 093C 0334 0062;0061 0334 110BA 093C 3099 0062;0061 0334 110BA 
093C 3099 0062;0061 0334 110BA 093C 3099 0062;0061 0334 110BA 093C 3099 0062; # 
(a◌𑂺◌゙◌़◌̴b; a◌̴◌𑂺◌़◌゙b; a◌̴◌𑂺◌़◌゙b; a◌̴◌𑂺◌़◌゙b; a◌̴◌𑂺◌़◌゙b; ) LATIN SMALL 
LETTER A, KAITHI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 110BA 0062;0061 16FF0 093C 110BA 3099 0062;0061 16FF0 
093C 110BA 3099 0062;0061 16FF0 093C 110BA 3099 0062;0061 16FF0 093C 110BA 3099 
0062; # (a◌゙◌𖿰़◌𑂺b; a𖿰◌़◌𑂺◌゙b; a𖿰◌़◌𑂺◌゙b; a𖿰◌़◌𑂺◌゙b; a𖿰◌़◌𑂺◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, KAITHI SIGN NUKTA, LATIN SMALL LETTER B
+0061 110BA 3099 093C 16FF0 0062;0061 16FF0 110BA 093C 3099 0062;0061 16FF0 
110BA 093C 3099 0062;0061 16FF0 110BA 093C 3099 0062;0061 16FF0 110BA 093C 3099 
0062; # (a◌𑂺◌゙◌𖿰़b; a𖿰◌𑂺◌़◌゙b; a𖿰◌𑂺◌़◌゙b; a𖿰◌𑂺◌़◌゙b; a𖿰◌𑂺◌़◌゙b; ) LATIN SMALL 
LETTER A, KAITHI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER 
B
 0061 0315 0300 05AE 11100 0062;00E0 05AE 11100 0315 0062;0061 05AE 0300 11100 
0315 0062;00E0 05AE 11100 0315 0062;0061 05AE 0300 11100 0315 0062; # 
(a◌̕◌̀◌֮◌𑄀b; à◌֮◌𑄀◌̕b; a◌֮◌̀◌𑄀◌̕b; à◌֮◌𑄀◌̕b; a◌֮◌̀◌𑄀◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
CHAKMA SIGN CANDRABINDU, LATIN SMALL LETTER B
 0061 11100 0315 0300 05AE 0062;0061 05AE 11100 0300 0315 0062;0061 05AE 11100 
0300 0315 0062;0061 05AE 11100 0300 0315 0062;0061 05AE 11100 0300 0315 0062; # 
(a◌𑄀◌̕◌̀◌֮b; a◌֮◌𑄀◌̀◌̕b; a◌֮◌𑄀◌̀◌̕b; a◌֮◌𑄀◌̀◌̕b; a◌֮◌𑄀◌̀◌̕b; ) LATIN SMALL 
LETTER A, CHAKMA SIGN CANDRABINDU, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE 
ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 0315 0300 05AE 11101 0062;00E0 05AE 11101 0315 0062;0061 05AE 0300 11101 
0315 0062;00E0 05AE 11101 0315 0062;0061 05AE 0300 11101 0315 0062; # 
(a◌̕◌̀◌֮◌𑄁b; à◌֮◌𑄁◌̕b; a◌֮◌̀◌𑄁◌̕b; à◌֮◌𑄁◌̕b; a◌֮◌̀◌𑄁◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
CHAKMA SIGN ANUSVARA, LATIN SMALL LETTER B
@@ -18386,24 +18409,24 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) 
HALFWIDTH WHITE CIRCLE
 0061 11133 05B0 094D 3099 0062;0061 3099 11133 094D 05B0 0062;0061 3099 11133 
094D 05B0 0062;0061 3099 11133 094D 05B0 0062;0061 3099 11133 094D 05B0 0062; # 
(a◌𑄳◌ְ◌्◌゙b; a◌゙◌𑄳◌्◌ְb; a◌゙◌𑄳◌्◌ְb; a◌゙◌𑄳◌्◌ְb; a◌゙◌𑄳◌्◌ְb; ) LATIN SMALL 
LETTER A, CHAKMA VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 05B0 094D 3099 11134 0062;0061 3099 094D 11134 05B0 0062;0061 3099 094D 
11134 05B0 0062;0061 3099 094D 11134 05B0 0062;0061 3099 094D 11134 05B0 0062; 
# (a◌ְ◌्◌゙◌𑄴b; a◌゙◌्◌𑄴◌ְb; a◌゙◌्◌𑄴◌ְb; a◌゙◌्◌𑄴◌ְb; a◌゙◌्◌𑄴◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, CHAKMA MAAYYAA, LATIN SMALL LETTER B
 0061 11134 05B0 094D 3099 0062;0061 3099 11134 094D 05B0 0062;0061 3099 11134 
094D 05B0 0062;0061 3099 11134 094D 05B0 0062;0061 3099 11134 094D 05B0 0062; # 
(a◌𑄴◌ְ◌्◌゙b; a◌゙◌𑄴◌्◌ְb; a◌゙◌𑄴◌्◌ְb; a◌゙◌𑄴◌्◌ְb; a◌゙◌𑄴◌्◌ְb; ) LATIN SMALL 
LETTER A, CHAKMA MAAYYAA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
-0061 3099 093C 0334 11173 0062;0061 0334 093C 11173 3099 0062;0061 0334 093C 
11173 3099 0062;0061 0334 093C 11173 3099 0062;0061 0334 093C 11173 3099 0062; 
# (a◌゙◌़◌̴◌𑅳b; a◌̴◌़◌𑅳◌゙b; a◌̴◌़◌𑅳◌゙b; a◌̴◌़◌𑅳◌゙b; a◌̴◌़◌𑅳◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, MAHAJANI SIGN NUKTA, LATIN SMALL LETTER B
-0061 11173 3099 093C 0334 0062;0061 0334 11173 093C 3099 0062;0061 0334 11173 
093C 3099 0062;0061 0334 11173 093C 3099 0062;0061 0334 11173 093C 3099 0062; # 
(a◌𑅳◌゙◌़◌̴b; a◌̴◌𑅳◌़◌゙b; a◌̴◌𑅳◌़◌゙b; a◌̴◌𑅳◌़◌゙b; a◌̴◌𑅳◌़◌゙b; ) LATIN SMALL 
LETTER A, MAHAJANI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 11173 0062;0061 16FF0 093C 11173 3099 0062;0061 16FF0 
093C 11173 3099 0062;0061 16FF0 093C 11173 3099 0062;0061 16FF0 093C 11173 3099 
0062; # (a◌゙◌𖿰़◌𑅳b; a𖿰◌़◌𑅳◌゙b; a𖿰◌़◌𑅳◌゙b; a𖿰◌़◌𑅳◌゙b; a𖿰◌़◌𑅳◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, MAHAJANI SIGN NUKTA, LATIN SMALL LETTER B
+0061 11173 3099 093C 16FF0 0062;0061 16FF0 11173 093C 3099 0062;0061 16FF0 
11173 093C 3099 0062;0061 16FF0 11173 093C 3099 0062;0061 16FF0 11173 093C 3099 
0062; # (a◌𑅳◌゙◌𖿰़b; a𖿰◌𑅳◌़◌゙b; a𖿰◌𑅳◌़◌゙b; a𖿰◌𑅳◌़◌゙b; a𖿰◌𑅳◌़◌゙b; ) LATIN SMALL 
LETTER A, MAHAJANI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER 
B
 0061 05B0 094D 3099 111C0 0062;0061 3099 094D 111C0 05B0 0062;0061 3099 094D 
111C0 05B0 0062;0061 3099 094D 111C0 05B0 0062;0061 3099 094D 111C0 05B0 0062; 
# (a◌ְ◌्◌゙𑇀b; a◌゙◌्𑇀◌ְb; a◌゙◌्𑇀◌ְb; a◌゙◌्𑇀◌ְb; a◌゙◌्𑇀◌ְb; ) LATIN SMALL LETTER 
A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA 
VOICED SOUND MARK, SHARADA SIGN VIRAMA, LATIN SMALL LETTER B
 0061 111C0 05B0 094D 3099 0062;0061 3099 111C0 094D 05B0 0062;0061 3099 111C0 
094D 05B0 0062;0061 3099 111C0 094D 05B0 0062;0061 3099 111C0 094D 05B0 0062; # 
(a𑇀◌ְ◌्◌゙b; a◌゙𑇀◌्◌ְb; a◌゙𑇀◌्◌ְb; a◌゙𑇀◌्◌ְb; a◌゙𑇀◌्◌ְb; ) LATIN SMALL LETTER A, 
SHARADA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
-0061 3099 093C 0334 111CA 0062;0061 0334 093C 111CA 3099 0062;0061 0334 093C 
111CA 3099 0062;0061 0334 093C 111CA 3099 0062;0061 0334 093C 111CA 3099 0062; 
# (a◌゙◌़◌̴◌𑇊b; a◌̴◌़◌𑇊◌゙b; a◌̴◌़◌𑇊◌゙b; a◌̴◌़◌𑇊◌゙b; a◌̴◌़◌𑇊◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, SHARADA SIGN NUKTA, LATIN SMALL LETTER B
-0061 111CA 3099 093C 0334 0062;0061 0334 111CA 093C 3099 0062;0061 0334 111CA 
093C 3099 0062;0061 0334 111CA 093C 3099 0062;0061 0334 111CA 093C 3099 0062; # 
(a◌𑇊◌゙◌़◌̴b; a◌̴◌𑇊◌़◌゙b; a◌̴◌𑇊◌़◌゙b; a◌̴◌𑇊◌़◌゙b; a◌̴◌𑇊◌़◌゙b; ) LATIN SMALL 
LETTER A, SHARADA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 111CA 0062;0061 16FF0 093C 111CA 3099 0062;0061 16FF0 
093C 111CA 3099 0062;0061 16FF0 093C 111CA 3099 0062;0061 16FF0 093C 111CA 3099 
0062; # (a◌゙◌𖿰़◌𑇊b; a𖿰◌़◌𑇊◌゙b; a𖿰◌़◌𑇊◌゙b; a𖿰◌़◌𑇊◌゙b; a𖿰◌़◌𑇊◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, SHARADA SIGN NUKTA, LATIN SMALL LETTER B
+0061 111CA 3099 093C 16FF0 0062;0061 16FF0 111CA 093C 3099 0062;0061 16FF0 
111CA 093C 3099 0062;0061 16FF0 111CA 093C 3099 0062;0061 16FF0 111CA 093C 3099 
0062; # (a◌𑇊◌゙◌𖿰़b; a𖿰◌𑇊◌़◌゙b; a𖿰◌𑇊◌़◌゙b; a𖿰◌𑇊◌़◌゙b; a𖿰◌𑇊◌़◌゙b; ) LATIN SMALL 
LETTER A, SHARADA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER 
B
 0061 05B0 094D 3099 11235 0062;0061 3099 094D 11235 05B0 0062;0061 3099 094D 
11235 05B0 0062;0061 3099 094D 11235 05B0 0062;0061 3099 094D 11235 05B0 0062; 
# (a◌ְ◌्◌゙𑈵b; a◌゙◌्𑈵◌ְb; a◌゙◌्𑈵◌ְb; a◌゙◌्𑈵◌ְb; a◌゙◌्𑈵◌ְb; ) LATIN SMALL LETTER 
A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA 
VOICED SOUND MARK, KHOJKI SIGN VIRAMA, LATIN SMALL LETTER B
 0061 11235 05B0 094D 3099 0062;0061 3099 11235 094D 05B0 0062;0061 3099 11235 
094D 05B0 0062;0061 3099 11235 094D 05B0 0062;0061 3099 11235 094D 05B0 0062; # 
(a𑈵◌ְ◌्◌゙b; a◌゙𑈵◌्◌ְb; a◌゙𑈵◌्◌ְb; a◌゙𑈵◌्◌ְb; a◌゙𑈵◌्◌ְb; ) LATIN SMALL LETTER A, 
KHOJKI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
-0061 3099 093C 0334 11236 0062;0061 0334 093C 11236 3099 0062;0061 0334 093C 
11236 3099 0062;0061 0334 093C 11236 3099 0062;0061 0334 093C 11236 3099 0062; 
# (a◌゙◌़◌̴◌𑈶b; a◌̴◌़◌𑈶◌゙b; a◌̴◌़◌𑈶◌゙b; a◌̴◌़◌𑈶◌゙b; a◌̴◌़◌𑈶◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, KHOJKI SIGN NUKTA, LATIN SMALL LETTER B
-0061 11236 3099 093C 0334 0062;0061 0334 11236 093C 3099 0062;0061 0334 11236 
093C 3099 0062;0061 0334 11236 093C 3099 0062;0061 0334 11236 093C 3099 0062; # 
(a◌𑈶◌゙◌़◌̴b; a◌̴◌𑈶◌़◌゙b; a◌̴◌𑈶◌़◌゙b; a◌̴◌𑈶◌़◌゙b; a◌̴◌𑈶◌़◌゙b; ) LATIN SMALL 
LETTER A, KHOJKI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
-0061 3099 093C 0334 112E9 0062;0061 0334 093C 112E9 3099 0062;0061 0334 093C 
112E9 3099 0062;0061 0334 093C 112E9 3099 0062;0061 0334 093C 112E9 3099 0062; 
# (a◌゙◌़◌̴◌𑋩b; a◌̴◌़◌𑋩◌゙b; a◌̴◌़◌𑋩◌゙b; a◌̴◌़◌𑋩◌゙b; a◌̴◌़◌𑋩◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, KHUDAWADI SIGN NUKTA, LATIN SMALL LETTER B
-0061 112E9 3099 093C 0334 0062;0061 0334 112E9 093C 3099 0062;0061 0334 112E9 
093C 3099 0062;0061 0334 112E9 093C 3099 0062;0061 0334 112E9 093C 3099 0062; # 
(a◌𑋩◌゙◌़◌̴b; a◌̴◌𑋩◌़◌゙b; a◌̴◌𑋩◌़◌゙b; a◌̴◌𑋩◌़◌゙b; a◌̴◌𑋩◌़◌゙b; ) LATIN SMALL 
LETTER A, KHUDAWADI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 11236 0062;0061 16FF0 093C 11236 3099 0062;0061 16FF0 
093C 11236 3099 0062;0061 16FF0 093C 11236 3099 0062;0061 16FF0 093C 11236 3099 
0062; # (a◌゙◌𖿰़◌𑈶b; a𖿰◌़◌𑈶◌゙b; a𖿰◌़◌𑈶◌゙b; a𖿰◌़◌𑈶◌゙b; a𖿰◌़◌𑈶◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, KHOJKI SIGN NUKTA, LATIN SMALL LETTER B
+0061 11236 3099 093C 16FF0 0062;0061 16FF0 11236 093C 3099 0062;0061 16FF0 
11236 093C 3099 0062;0061 16FF0 11236 093C 3099 0062;0061 16FF0 11236 093C 3099 
0062; # (a◌𑈶◌゙◌𖿰़b; a𖿰◌𑈶◌़◌゙b; a𖿰◌𑈶◌़◌゙b; a𖿰◌𑈶◌़◌゙b; a𖿰◌𑈶◌़◌゙b; ) LATIN SMALL 
LETTER A, KHOJKI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER 
B
+0061 3099 093C 16FF0 112E9 0062;0061 16FF0 093C 112E9 3099 0062;0061 16FF0 
093C 112E9 3099 0062;0061 16FF0 093C 112E9 3099 0062;0061 16FF0 093C 112E9 3099 
0062; # (a◌゙◌𖿰़◌𑋩b; a𖿰◌़◌𑋩◌゙b; a𖿰◌़◌𑋩◌゙b; a𖿰◌़◌𑋩◌゙b; a𖿰◌़◌𑋩◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, KHUDAWADI SIGN NUKTA, LATIN SMALL LETTER B
+0061 112E9 3099 093C 16FF0 0062;0061 16FF0 112E9 093C 3099 0062;0061 16FF0 
112E9 093C 3099 0062;0061 16FF0 112E9 093C 3099 0062;0061 16FF0 112E9 093C 3099 
0062; # (a◌𑋩◌゙◌𖿰़b; a𖿰◌𑋩◌़◌゙b; a𖿰◌𑋩◌़◌゙b; a𖿰◌𑋩◌़◌゙b; a𖿰◌𑋩◌़◌゙b; ) LATIN SMALL 
LETTER A, KHUDAWADI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER 
B
 0061 05B0 094D 3099 112EA 0062;0061 3099 094D 112EA 05B0 0062;0061 3099 094D 
112EA 05B0 0062;0061 3099 094D 112EA 05B0 0062;0061 3099 094D 112EA 05B0 0062; 
# (a◌ְ◌्◌゙◌𑋪b; a◌゙◌्◌𑋪◌ְb; a◌゙◌्◌𑋪◌ְb; a◌゙◌्◌𑋪◌ְb; a◌゙◌्◌𑋪◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, KHUDAWADI SIGN VIRAMA, LATIN SMALL LETTER B
 0061 112EA 05B0 094D 3099 0062;0061 3099 112EA 094D 05B0 0062;0061 3099 112EA 
094D 05B0 0062;0061 3099 112EA 094D 05B0 0062;0061 3099 112EA 094D 05B0 0062; # 
(a◌𑋪◌ְ◌्◌゙b; a◌゙◌𑋪◌्◌ְb; a◌゙◌𑋪◌्◌ְb; a◌゙◌𑋪◌्◌ְb; a◌゙◌𑋪◌्◌ְb; ) LATIN SMALL 
LETTER A, KHUDAWADI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
-0061 3099 093C 0334 1133B 0062;0061 0334 093C 1133B 3099 0062;0061 0334 093C 
1133B 3099 0062;0061 0334 093C 1133B 3099 0062;0061 0334 093C 1133B 3099 0062; 
# (a◌゙◌़◌̴◌𑌻b; a◌̴◌़◌𑌻◌゙b; a◌̴◌़◌𑌻◌゙b; a◌̴◌़◌𑌻◌゙b; a◌̴◌़◌𑌻◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, COMBINING BINDU BELOW, LATIN SMALL LETTER B
-0061 1133B 3099 093C 0334 0062;0061 0334 1133B 093C 3099 0062;0061 0334 1133B 
093C 3099 0062;0061 0334 1133B 093C 3099 0062;0061 0334 1133B 093C 3099 0062; # 
(a◌𑌻◌゙◌़◌̴b; a◌̴◌𑌻◌़◌゙b; a◌̴◌𑌻◌़◌゙b; a◌̴◌𑌻◌़◌゙b; a◌̴◌𑌻◌़◌゙b; ) LATIN SMALL 
LETTER A, COMBINING BINDU BELOW, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
-0061 3099 093C 0334 1133C 0062;0061 0334 093C 1133C 3099 0062;0061 0334 093C 
1133C 3099 0062;0061 0334 093C 1133C 3099 0062;0061 0334 093C 1133C 3099 0062; 
# (a◌゙◌़◌̴◌𑌼b; a◌̴◌़◌𑌼◌゙b; a◌̴◌़◌𑌼◌゙b; a◌̴◌़◌𑌼◌゙b; a◌̴◌़◌𑌼◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, GRANTHA SIGN NUKTA, LATIN SMALL LETTER B
-0061 1133C 3099 093C 0334 0062;0061 0334 1133C 093C 3099 0062;0061 0334 1133C 
093C 3099 0062;0061 0334 1133C 093C 3099 0062;0061 0334 1133C 093C 3099 0062; # 
(a◌𑌼◌゙◌़◌̴b; a◌̴◌𑌼◌़◌゙b; a◌̴◌𑌼◌़◌゙b; a◌̴◌𑌼◌़◌゙b; a◌̴◌𑌼◌़◌゙b; ) LATIN SMALL 
LETTER A, GRANTHA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 1133B 0062;0061 16FF0 093C 1133B 3099 0062;0061 16FF0 
093C 1133B 3099 0062;0061 16FF0 093C 1133B 3099 0062;0061 16FF0 093C 1133B 3099 
0062; # (a◌゙◌𖿰़◌𑌻b; a𖿰◌़◌𑌻◌゙b; a𖿰◌़◌𑌻◌゙b; a𖿰◌़◌𑌻◌゙b; a𖿰◌़◌𑌻◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, COMBINING BINDU BELOW, LATIN SMALL LETTER 
B
+0061 1133B 3099 093C 16FF0 0062;0061 16FF0 1133B 093C 3099 0062;0061 16FF0 
1133B 093C 3099 0062;0061 16FF0 1133B 093C 3099 0062;0061 16FF0 1133B 093C 3099 
0062; # (a◌𑌻◌゙◌𖿰़b; a𖿰◌𑌻◌़◌゙b; a𖿰◌𑌻◌़◌゙b; a𖿰◌𑌻◌़◌゙b; a𖿰◌𑌻◌़◌゙b; ) LATIN SMALL 
LETTER A, COMBINING BINDU BELOW, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER 
B
+0061 3099 093C 16FF0 1133C 0062;0061 16FF0 093C 1133C 3099 0062;0061 16FF0 
093C 1133C 3099 0062;0061 16FF0 093C 1133C 3099 0062;0061 16FF0 093C 1133C 3099 
0062; # (a◌゙◌𖿰़◌𑌼b; a𖿰◌़◌𑌼◌゙b; a𖿰◌़◌𑌼◌゙b; a𖿰◌़◌𑌼◌゙b; a𖿰◌़◌𑌼◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, GRANTHA SIGN NUKTA, LATIN SMALL LETTER B
+0061 1133C 3099 093C 16FF0 0062;0061 16FF0 1133C 093C 3099 0062;0061 16FF0 
1133C 093C 3099 0062;0061 16FF0 1133C 093C 3099 0062;0061 16FF0 1133C 093C 3099 
0062; # (a◌𑌼◌゙◌𖿰़b; a𖿰◌𑌼◌़◌゙b; a𖿰◌𑌼◌़◌゙b; a𖿰◌𑌼◌़◌゙b; a𖿰◌𑌼◌़◌゙b; ) LATIN SMALL 
LETTER A, GRANTHA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER 
B
 0061 05B0 094D 3099 1134D 0062;0061 3099 094D 1134D 05B0 0062;0061 3099 094D 
1134D 05B0 0062;0061 3099 094D 1134D 05B0 0062;0061 3099 094D 1134D 05B0 0062; 
# (a◌ְ◌्◌゙𑍍b; a◌゙◌्𑍍◌ְb; a◌゙◌्𑍍◌ְb; a◌゙◌्𑍍◌ְb; a◌゙◌्𑍍◌ְb; ) LATIN SMALL LETTER 
A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA 
VOICED SOUND MARK, GRANTHA SIGN VIRAMA, LATIN SMALL LETTER B
 0061 1134D 05B0 094D 3099 0062;0061 3099 1134D 094D 05B0 0062;0061 3099 1134D 
094D 05B0 0062;0061 3099 1134D 094D 05B0 0062;0061 3099 1134D 094D 05B0 0062; # 
(a𑍍◌ְ◌्◌゙b; a◌゙𑍍◌्◌ְb; a◌゙𑍍◌्◌ְb; a◌゙𑍍◌्◌ְb; a◌゙𑍍◌्◌ְb; ) LATIN SMALL LETTER A, 
GRANTHA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 0315 0300 05AE 11366 0062;00E0 05AE 11366 0315 0062;0061 05AE 0300 11366 
0315 0062;00E0 05AE 11366 0315 0062;0061 05AE 0300 11366 0315 0062; # 
(a◌̕◌̀◌֮◌𑍦b; à◌֮◌𑍦◌̕b; a◌֮◌̀◌𑍦◌̕b; à◌֮◌𑍦◌̕b; a◌֮◌̀◌𑍦◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
COMBINING GRANTHA DIGIT ZERO, LATIN SMALL LETTER B
@@ -18432,30 +18455,36 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) 
HALFWIDTH WHITE CIRCLE
 0061 11374 0315 0300 05AE 0062;0061 05AE 11374 0300 0315 0062;0061 05AE 11374 
0300 0315 0062;0061 05AE 11374 0300 0315 0062;0061 05AE 11374 0300 0315 0062; # 
(a◌𑍴◌̕◌̀◌֮b; a◌֮◌𑍴◌̀◌̕b; a◌֮◌𑍴◌̀◌̕b; a◌֮◌𑍴◌̀◌̕b; a◌֮◌𑍴◌̀◌̕b; ) LATIN SMALL 
LETTER A, COMBINING GRANTHA LETTER PA, COMBINING COMMA ABOVE RIGHT, COMBINING 
GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 05B0 094D 3099 11442 0062;0061 3099 094D 11442 05B0 0062;0061 3099 094D 
11442 05B0 0062;0061 3099 094D 11442 05B0 0062;0061 3099 094D 11442 05B0 0062; 
# (a◌ְ◌्◌゙◌𑑂b; a◌゙◌्◌𑑂◌ְb; a◌゙◌्◌𑑂◌ְb; a◌゙◌्◌𑑂◌ְb; a◌゙◌्◌𑑂◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, NEWA SIGN VIRAMA, LATIN SMALL LETTER B
 0061 11442 05B0 094D 3099 0062;0061 3099 11442 094D 05B0 0062;0061 3099 11442 
094D 05B0 0062;0061 3099 11442 094D 05B0 0062;0061 3099 11442 094D 05B0 0062; # 
(a◌𑑂◌ְ◌्◌゙b; a◌゙◌𑑂◌्◌ְb; a◌゙◌𑑂◌्◌ְb; a◌゙◌𑑂◌्◌ְb; a◌゙◌𑑂◌्◌ְb; ) LATIN SMALL 
LETTER A, NEWA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
-0061 3099 093C 0334 11446 0062;0061 0334 093C 11446 3099 0062;0061 0334 093C 
11446 3099 0062;0061 0334 093C 11446 3099 0062;0061 0334 093C 11446 3099 0062; 
# (a◌゙◌़◌̴◌𑑆b; a◌̴◌़◌𑑆◌゙b; a◌̴◌़◌𑑆◌゙b; a◌̴◌़◌𑑆◌゙b; a◌̴◌़◌𑑆◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, NEWA SIGN NUKTA, LATIN SMALL LETTER B
-0061 11446 3099 093C 0334 0062;0061 0334 11446 093C 3099 0062;0061 0334 11446 
093C 3099 0062;0061 0334 11446 093C 3099 0062;0061 0334 11446 093C 3099 0062; # 
(a◌𑑆◌゙◌़◌̴b; a◌̴◌𑑆◌़◌゙b; a◌̴◌𑑆◌़◌゙b; a◌̴◌𑑆◌़◌゙b; a◌̴◌𑑆◌़◌゙b; ) LATIN SMALL 
LETTER A, NEWA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 11446 0062;0061 16FF0 093C 11446 3099 0062;0061 16FF0 
093C 11446 3099 0062;0061 16FF0 093C 11446 3099 0062;0061 16FF0 093C 11446 3099 
0062; # (a◌゙◌𖿰़◌𑑆b; a𖿰◌़◌𑑆◌゙b; a𖿰◌़◌𑑆◌゙b; a𖿰◌़◌𑑆◌゙b; a𖿰◌़◌𑑆◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, NEWA SIGN NUKTA, LATIN SMALL LETTER B
+0061 11446 3099 093C 16FF0 0062;0061 16FF0 11446 093C 3099 0062;0061 16FF0 
11446 093C 3099 0062;0061 16FF0 11446 093C 3099 0062;0061 16FF0 11446 093C 3099 
0062; # (a◌𑑆◌゙◌𖿰़b; a𖿰◌𑑆◌़◌゙b; a𖿰◌𑑆◌़◌゙b; a𖿰◌𑑆◌़◌゙b; a𖿰◌𑑆◌़◌゙b; ) LATIN SMALL 
LETTER A, NEWA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER 
B
 0061 0315 0300 05AE 1145E 0062;00E0 05AE 1145E 0315 0062;0061 05AE 0300 1145E 
0315 0062;00E0 05AE 1145E 0315 0062;0061 05AE 0300 1145E 0315 0062; # 
(a◌̕◌̀◌֮◌𑑞b; à◌֮◌𑑞◌̕b; a◌֮◌̀◌𑑞◌̕b; à◌֮◌𑑞◌̕b; a◌֮◌̀◌𑑞◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
NEWA SANDHI MARK, LATIN SMALL LETTER B
 0061 1145E 0315 0300 05AE 0062;0061 05AE 1145E 0300 0315 0062;0061 05AE 1145E 
0300 0315 0062;0061 05AE 1145E 0300 0315 0062;0061 05AE 1145E 0300 0315 0062; # 
(a◌𑑞◌̕◌̀◌֮b; a◌֮◌𑑞◌̀◌̕b; a◌֮◌𑑞◌̀◌̕b; a◌֮◌𑑞◌̀◌̕b; a◌֮◌𑑞◌̀◌̕b; ) LATIN SMALL 
LETTER A, NEWA SANDHI MARK, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE 
ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 05B0 094D 3099 114C2 0062;0061 3099 094D 114C2 05B0 0062;0061 3099 094D 
114C2 05B0 0062;0061 3099 094D 114C2 05B0 0062;0061 3099 094D 114C2 05B0 0062; 
# (a◌ְ◌्◌゙◌𑓂b; a◌゙◌्◌𑓂◌ְb; a◌゙◌्◌𑓂◌ְb; a◌゙◌्◌𑓂◌ְb; a◌゙◌्◌𑓂◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, TIRHUTA SIGN VIRAMA, LATIN SMALL LETTER B
 0061 114C2 05B0 094D 3099 0062;0061 3099 114C2 094D 05B0 0062;0061 3099 114C2 
094D 05B0 0062;0061 3099 114C2 094D 05B0 0062;0061 3099 114C2 094D 05B0 0062; # 
(a◌𑓂◌ְ◌्◌゙b; a◌゙◌𑓂◌्◌ְb; a◌゙◌𑓂◌्◌ְb; a◌゙◌𑓂◌्◌ְb; a◌゙◌𑓂◌्◌ְb; ) LATIN SMALL 
LETTER A, TIRHUTA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
-0061 3099 093C 0334 114C3 0062;0061 0334 093C 114C3 3099 0062;0061 0334 093C 
114C3 3099 0062;0061 0334 093C 114C3 3099 0062;0061 0334 093C 114C3 3099 0062; 
# (a◌゙◌़◌̴◌𑓃b; a◌̴◌़◌𑓃◌゙b; a◌̴◌़◌𑓃◌゙b; a◌̴◌़◌𑓃◌゙b; a◌̴◌़◌𑓃◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, TIRHUTA SIGN NUKTA, LATIN SMALL LETTER B
-0061 114C3 3099 093C 0334 0062;0061 0334 114C3 093C 3099 0062;0061 0334 114C3 
093C 3099 0062;0061 0334 114C3 093C 3099 0062;0061 0334 114C3 093C 3099 0062; # 
(a◌𑓃◌゙◌़◌̴b; a◌̴◌𑓃◌़◌゙b; a◌̴◌𑓃◌़◌゙b; a◌̴◌𑓃◌़◌゙b; a◌̴◌𑓃◌़◌゙b; ) LATIN SMALL 
LETTER A, TIRHUTA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 114C3 0062;0061 16FF0 093C 114C3 3099 0062;0061 16FF0 
093C 114C3 3099 0062;0061 16FF0 093C 114C3 3099 0062;0061 16FF0 093C 114C3 3099 
0062; # (a◌゙◌𖿰़◌𑓃b; a𖿰◌़◌𑓃◌゙b; a𖿰◌़◌𑓃◌゙b; a𖿰◌़◌𑓃◌゙b; a𖿰◌़◌𑓃◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, TIRHUTA SIGN NUKTA, LATIN SMALL LETTER B
+0061 114C3 3099 093C 16FF0 0062;0061 16FF0 114C3 093C 3099 0062;0061 16FF0 
114C3 093C 3099 0062;0061 16FF0 114C3 093C 3099 0062;0061 16FF0 114C3 093C 3099 
0062; # (a◌𑓃◌゙◌𖿰़b; a𖿰◌𑓃◌़◌゙b; a𖿰◌𑓃◌़◌゙b; a𖿰◌𑓃◌़◌゙b; a𖿰◌𑓃◌़◌゙b; ) LATIN SMALL 
LETTER A, TIRHUTA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER 
B
 0061 05B0 094D 3099 115BF 0062;0061 3099 094D 115BF 05B0 0062;0061 3099 094D 
115BF 05B0 0062;0061 3099 094D 115BF 05B0 0062;0061 3099 094D 115BF 05B0 0062; 
# (a◌ְ◌्◌゙◌𑖿b; a◌゙◌्◌𑖿◌ְb; a◌゙◌्◌𑖿◌ְb; a◌゙◌्◌𑖿◌ְb; a◌゙◌्◌𑖿◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, SIDDHAM SIGN VIRAMA, LATIN SMALL LETTER B
 0061 115BF 05B0 094D 3099 0062;0061 3099 115BF 094D 05B0 0062;0061 3099 115BF 
094D 05B0 0062;0061 3099 115BF 094D 05B0 0062;0061 3099 115BF 094D 05B0 0062; # 
(a◌𑖿◌ְ◌्◌゙b; a◌゙◌𑖿◌्◌ְb; a◌゙◌𑖿◌्◌ְb; a◌゙◌𑖿◌्◌ְb; a◌゙◌𑖿◌्◌ְb; ) LATIN SMALL 
LETTER A, SIDDHAM SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
-0061 3099 093C 0334 115C0 0062;0061 0334 093C 115C0 3099 0062;0061 0334 093C 
115C0 3099 0062;0061 0334 093C 115C0 3099 0062;0061 0334 093C 115C0 3099 0062; 
# (a◌゙◌़◌̴◌𑗀b; a◌̴◌़◌𑗀◌゙b; a◌̴◌़◌𑗀◌゙b; a◌̴◌़◌𑗀◌゙b; a◌̴◌़◌𑗀◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, SIDDHAM SIGN NUKTA, LATIN SMALL LETTER B
-0061 115C0 3099 093C 0334 0062;0061 0334 115C0 093C 3099 0062;0061 0334 115C0 
093C 3099 0062;0061 0334 115C0 093C 3099 0062;0061 0334 115C0 093C 3099 0062; # 
(a◌𑗀◌゙◌़◌̴b; a◌̴◌𑗀◌़◌゙b; a◌̴◌𑗀◌़◌゙b; a◌̴◌𑗀◌़◌゙b; a◌̴◌𑗀◌़◌゙b; ) LATIN SMALL 
LETTER A, SIDDHAM SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 115C0 0062;0061 16FF0 093C 115C0 3099 0062;0061 16FF0 
093C 115C0 3099 0062;0061 16FF0 093C 115C0 3099 0062;0061 16FF0 093C 115C0 3099 
0062; # (a◌゙◌𖿰़◌𑗀b; a𖿰◌़◌𑗀◌゙b; a𖿰◌़◌𑗀◌゙b; a𖿰◌़◌𑗀◌゙b; a𖿰◌़◌𑗀◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, SIDDHAM SIGN NUKTA, LATIN SMALL LETTER B
+0061 115C0 3099 093C 16FF0 0062;0061 16FF0 115C0 093C 3099 0062;0061 16FF0 
115C0 093C 3099 0062;0061 16FF0 115C0 093C 3099 0062;0061 16FF0 115C0 093C 3099 
0062; # (a◌𑗀◌゙◌𖿰़b; a𖿰◌𑗀◌़◌゙b; a𖿰◌𑗀◌़◌゙b; a𖿰◌𑗀◌़◌゙b; a𖿰◌𑗀◌़◌゙b; ) LATIN SMALL 
LETTER A, SIDDHAM SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER 
B
 0061 05B0 094D 3099 1163F 0062;0061 3099 094D 1163F 05B0 0062;0061 3099 094D 
1163F 05B0 0062;0061 3099 094D 1163F 05B0 0062;0061 3099 094D 1163F 05B0 0062; 
# (a◌ְ◌्◌゙◌𑘿b; a◌゙◌्◌𑘿◌ְb; a◌゙◌्◌𑘿◌ְb; a◌゙◌्◌𑘿◌ְb; a◌゙◌्◌𑘿◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, MODI SIGN VIRAMA, LATIN SMALL LETTER B
 0061 1163F 05B0 094D 3099 0062;0061 3099 1163F 094D 05B0 0062;0061 3099 1163F 
094D 05B0 0062;0061 3099 1163F 094D 05B0 0062;0061 3099 1163F 094D 05B0 0062; # 
(a◌𑘿◌ְ◌्◌゙b; a◌゙◌𑘿◌्◌ְb; a◌゙◌𑘿◌्◌ְb; a◌゙◌𑘿◌्◌ְb; a◌゙◌𑘿◌्◌ְb; ) LATIN SMALL 
LETTER A, MODI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 05B0 094D 3099 116B6 0062;0061 3099 094D 116B6 05B0 0062;0061 3099 094D 
116B6 05B0 0062;0061 3099 094D 116B6 05B0 0062;0061 3099 094D 116B6 05B0 0062; 
# (a◌ְ◌्◌゙𑚶b; a◌゙◌्𑚶◌ְb; a◌゙◌्𑚶◌ְb; a◌゙◌्𑚶◌ְb; a◌゙◌्𑚶◌ְb; ) LATIN SMALL LETTER 
A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA 
VOICED SOUND MARK, TAKRI SIGN VIRAMA, LATIN SMALL LETTER B
 0061 116B6 05B0 094D 3099 0062;0061 3099 116B6 094D 05B0 0062;0061 3099 116B6 
094D 05B0 0062;0061 3099 116B6 094D 05B0 0062;0061 3099 116B6 094D 05B0 0062; # 
(a𑚶◌ְ◌्◌゙b; a◌゙𑚶◌्◌ְb; a◌゙𑚶◌्◌ְb; a◌゙𑚶◌्◌ְb; a◌゙𑚶◌्◌ְb; ) LATIN SMALL LETTER A, 
TAKRI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
-0061 3099 093C 0334 116B7 0062;0061 0334 093C 116B7 3099 0062;0061 0334 093C 
116B7 3099 0062;0061 0334 093C 116B7 3099 0062;0061 0334 093C 116B7 3099 0062; 
# (a◌゙◌़◌̴◌𑚷b; a◌̴◌़◌𑚷◌゙b; a◌̴◌़◌𑚷◌゙b; a◌̴◌़◌𑚷◌゙b; a◌̴◌़◌𑚷◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, TAKRI SIGN NUKTA, LATIN SMALL LETTER B
-0061 116B7 3099 093C 0334 0062;0061 0334 116B7 093C 3099 0062;0061 0334 116B7 
093C 3099 0062;0061 0334 116B7 093C 3099 0062;0061 0334 116B7 093C 3099 0062; # 
(a◌𑚷◌゙◌़◌̴b; a◌̴◌𑚷◌़◌゙b; a◌̴◌𑚷◌़◌゙b; a◌̴◌𑚷◌़◌゙b; a◌̴◌𑚷◌़◌゙b; ) LATIN SMALL 
LETTER A, TAKRI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 116B7 0062;0061 16FF0 093C 116B7 3099 0062;0061 16FF0 
093C 116B7 3099 0062;0061 16FF0 093C 116B7 3099 0062;0061 16FF0 093C 116B7 3099 
0062; # (a◌゙◌𖿰़◌𑚷b; a𖿰◌़◌𑚷◌゙b; a𖿰◌़◌𑚷◌゙b; a𖿰◌़◌𑚷◌゙b; a𖿰◌़◌𑚷◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, TAKRI SIGN NUKTA, LATIN SMALL LETTER B
+0061 116B7 3099 093C 16FF0 0062;0061 16FF0 116B7 093C 3099 0062;0061 16FF0 
116B7 093C 3099 0062;0061 16FF0 116B7 093C 3099 0062;0061 16FF0 116B7 093C 3099 
0062; # (a◌𑚷◌゙◌𖿰़b; a𖿰◌𑚷◌़◌゙b; a𖿰◌𑚷◌़◌゙b; a𖿰◌𑚷◌़◌゙b; a𖿰◌𑚷◌़◌゙b; ) LATIN SMALL 
LETTER A, TAKRI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER 
B
 0061 05B0 094D 3099 1172B 0062;0061 3099 094D 1172B 05B0 0062;0061 3099 094D 
1172B 05B0 0062;0061 3099 094D 1172B 05B0 0062;0061 3099 094D 1172B 05B0 0062; 
# (a◌ְ◌्◌゙◌𑜫b; a◌゙◌्◌𑜫◌ְb; a◌゙◌्◌𑜫◌ְb; a◌゙◌्◌𑜫◌ְb; a◌゙◌्◌𑜫◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, AHOM SIGN KILLER, LATIN SMALL LETTER B
 0061 1172B 05B0 094D 3099 0062;0061 3099 1172B 094D 05B0 0062;0061 3099 1172B 
094D 05B0 0062;0061 3099 1172B 094D 05B0 0062;0061 3099 1172B 094D 05B0 0062; # 
(a◌𑜫◌ְ◌्◌゙b; a◌゙◌𑜫◌्◌ְb; a◌゙◌𑜫◌्◌ְb; a◌゙◌𑜫◌्◌ְb; a◌゙◌𑜫◌्◌ְb; ) LATIN SMALL 
LETTER A, AHOM SIGN KILLER, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 05B0 094D 3099 11839 0062;0061 3099 094D 11839 05B0 0062;0061 3099 094D 
11839 05B0 0062;0061 3099 094D 11839 05B0 0062;0061 3099 094D 11839 05B0 0062; 
# (a◌ְ◌्◌゙◌𑠹b; a◌゙◌्◌𑠹◌ְb; a◌゙◌्◌𑠹◌ְb; a◌゙◌्◌𑠹◌ְb; a◌゙◌्◌𑠹◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, DOGRA SIGN VIRAMA, LATIN SMALL LETTER B
 0061 11839 05B0 094D 3099 0062;0061 3099 11839 094D 05B0 0062;0061 3099 11839 
094D 05B0 0062;0061 3099 11839 094D 05B0 0062;0061 3099 11839 094D 05B0 0062; # 
(a◌𑠹◌ְ◌्◌゙b; a◌゙◌𑠹◌्◌ְb; a◌゙◌𑠹◌्◌ְb; a◌゙◌𑠹◌्◌ְb; a◌゙◌𑠹◌्◌ְb; ) LATIN SMALL 
LETTER A, DOGRA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
-0061 3099 093C 0334 1183A 0062;0061 0334 093C 1183A 3099 0062;0061 0334 093C 
1183A 3099 0062;0061 0334 093C 1183A 3099 0062;0061 0334 093C 1183A 3099 0062; 
# (a◌゙◌़◌̴◌𑠺b; a◌̴◌़◌𑠺◌゙b; a◌̴◌़◌𑠺◌゙b; a◌̴◌़◌𑠺◌゙b; a◌̴◌़◌𑠺◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, DOGRA SIGN NUKTA, LATIN SMALL LETTER B
-0061 1183A 3099 093C 0334 0062;0061 0334 1183A 093C 3099 0062;0061 0334 1183A 
093C 3099 0062;0061 0334 1183A 093C 3099 0062;0061 0334 1183A 093C 3099 0062; # 
(a◌𑠺◌゙◌़◌̴b; a◌̴◌𑠺◌़◌゙b; a◌̴◌𑠺◌़◌゙b; a◌̴◌𑠺◌़◌゙b; a◌̴◌𑠺◌़◌゙b; ) LATIN SMALL 
LETTER A, DOGRA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 1183A 0062;0061 16FF0 093C 1183A 3099 0062;0061 16FF0 
093C 1183A 3099 0062;0061 16FF0 093C 1183A 3099 0062;0061 16FF0 093C 1183A 3099 
0062; # (a◌゙◌𖿰़◌𑠺b; a𖿰◌़◌𑠺◌゙b; a𖿰◌़◌𑠺◌゙b; a𖿰◌़◌𑠺◌゙b; a𖿰◌़◌𑠺◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, DOGRA SIGN NUKTA, LATIN SMALL LETTER B
+0061 1183A 3099 093C 16FF0 0062;0061 16FF0 1183A 093C 3099 0062;0061 16FF0 
1183A 093C 3099 0062;0061 16FF0 1183A 093C 3099 0062;0061 16FF0 1183A 093C 3099 
0062; # (a◌𑠺◌゙◌𖿰़b; a𖿰◌𑠺◌़◌゙b; a𖿰◌𑠺◌़◌゙b; a𖿰◌𑠺◌़◌゙b; a𖿰◌𑠺◌़◌゙b; ) LATIN SMALL 
LETTER A, DOGRA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER 
B
+0061 05B0 094D 3099 1193D 0062;0061 3099 094D 1193D 05B0 0062;0061 3099 094D 
1193D 05B0 0062;0061 3099 094D 1193D 05B0 0062;0061 3099 094D 1193D 05B0 0062; 
# (a◌ְ◌्◌゙𑤽b; a◌゙◌्𑤽◌ְb; a◌゙◌्𑤽◌ְb; a◌゙◌्𑤽◌ְb; a◌゙◌्𑤽◌ְb; ) LATIN SMALL LETTER 
A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA 
VOICED SOUND MARK, DIVES AKURU SIGN HALANTA, LATIN SMALL LETTER B
+0061 1193D 05B0 094D 3099 0062;0061 3099 1193D 094D 05B0 0062;0061 3099 1193D 
094D 05B0 0062;0061 3099 1193D 094D 05B0 0062;0061 3099 1193D 094D 05B0 0062; # 
(a𑤽◌ְ◌्◌゙b; a◌゙𑤽◌्◌ְb; a◌゙𑤽◌्◌ְb; a◌゙𑤽◌्◌ְb; a◌゙𑤽◌्◌ְb; ) LATIN SMALL LETTER A, 
DIVES AKURU SIGN HALANTA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 1193E 0062;0061 3099 094D 1193E 05B0 0062;0061 3099 094D 
1193E 05B0 0062;0061 3099 094D 1193E 05B0 0062;0061 3099 094D 1193E 05B0 0062; 
# (a◌ְ◌्◌゙◌𑤾b; a◌゙◌्◌𑤾◌ְb; a◌゙◌्◌𑤾◌ְb; a◌゙◌्◌𑤾◌ְb; a◌゙◌्◌𑤾◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, DIVES AKURU VIRAMA, LATIN SMALL LETTER B
+0061 1193E 05B0 094D 3099 0062;0061 3099 1193E 094D 05B0 0062;0061 3099 1193E 
094D 05B0 0062;0061 3099 1193E 094D 05B0 0062;0061 3099 1193E 094D 05B0 0062; # 
(a◌𑤾◌ְ◌्◌゙b; a◌゙◌𑤾◌्◌ְb; a◌゙◌𑤾◌्◌ְb; a◌゙◌𑤾◌्◌ְb; a◌゙◌𑤾◌्◌ְb; ) LATIN SMALL 
LETTER A, DIVES AKURU VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 11943 0062;0061 16FF0 093C 11943 3099 0062;0061 16FF0 
093C 11943 3099 0062;0061 16FF0 093C 11943 3099 0062;0061 16FF0 093C 11943 3099 
0062; # (a◌゙◌𖿰़◌𑥃b; a𖿰◌़◌𑥃◌゙b; a𖿰◌़◌𑥃◌゙b; a𖿰◌़◌𑥃◌゙b; a𖿰◌़◌𑥃◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, DIVES AKURU SIGN NUKTA, LATIN SMALL 
LETTER B
+0061 11943 3099 093C 16FF0 0062;0061 16FF0 11943 093C 3099 0062;0061 16FF0 
11943 093C 3099 0062;0061 16FF0 11943 093C 3099 0062;0061 16FF0 11943 093C 3099 
0062; # (a◌𑥃◌゙◌𖿰़b; a𖿰◌𑥃◌़◌゙b; a𖿰◌𑥃◌़◌゙b; a𖿰◌𑥃◌़◌゙b; a𖿰◌𑥃◌़◌゙b; ) LATIN SMALL 
LETTER A, DIVES AKURU SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND 
MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL 
LETTER B
 0061 05B0 094D 3099 119E0 0062;0061 3099 094D 119E0 05B0 0062;0061 3099 094D 
119E0 05B0 0062;0061 3099 094D 119E0 05B0 0062;0061 3099 094D 119E0 05B0 0062; 
# (a◌ְ◌्◌゙◌𑧠b; a◌゙◌्◌𑧠◌ְb; a◌゙◌्◌𑧠◌ְb; a◌゙◌्◌𑧠◌ְb; a◌゙◌्◌𑧠◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, NANDINAGARI SIGN VIRAMA, LATIN SMALL 
LETTER B
 0061 119E0 05B0 094D 3099 0062;0061 3099 119E0 094D 05B0 0062;0061 3099 119E0 
094D 05B0 0062;0061 3099 119E0 094D 05B0 0062;0061 3099 119E0 094D 05B0 0062; # 
(a◌𑧠◌ְ◌्◌゙b; a◌゙◌𑧠◌्◌ְb; a◌゙◌𑧠◌्◌ְb; a◌゙◌𑧠◌्◌ְb; a◌゙◌𑧠◌्◌ְb; ) LATIN SMALL 
LETTER A, NANDINAGARI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 05B0 094D 3099 11A34 0062;0061 3099 094D 11A34 05B0 0062;0061 3099 094D 
11A34 05B0 0062;0061 3099 094D 11A34 05B0 0062;0061 3099 094D 11A34 05B0 0062; 
# (a◌ְ◌्◌゙◌𑨴b; a◌゙◌्◌𑨴◌ְb; a◌゙◌्◌𑨴◌ְb; a◌゙◌्◌𑨴◌ְb; a◌゙◌्◌𑨴◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, ZANABAZAR SQUARE SIGN VIRAMA, LATIN SMALL 
LETTER B
@@ -18466,24 +18495,24 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) 
HALFWIDTH WHITE CIRCLE
 0061 11A99 05B0 094D 3099 0062;0061 3099 11A99 094D 05B0 0062;0061 3099 11A99 
094D 05B0 0062;0061 3099 11A99 094D 05B0 0062;0061 3099 11A99 094D 05B0 0062; # 
(a◌𑪙◌ְ◌्◌゙b; a◌゙◌𑪙◌्◌ְb; a◌゙◌𑪙◌्◌ְb; a◌゙◌𑪙◌्◌ְb; a◌゙◌𑪙◌्◌ְb; ) LATIN SMALL 
LETTER A, SOYOMBO SUBJOINER, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 05B0 094D 3099 11C3F 0062;0061 3099 094D 11C3F 05B0 0062;0061 3099 094D 
11C3F 05B0 0062;0061 3099 094D 11C3F 05B0 0062;0061 3099 094D 11C3F 05B0 0062; 
# (a◌ְ◌्◌゙◌𑰿b; a◌゙◌्◌𑰿◌ְb; a◌゙◌्◌𑰿◌ְb; a◌゙◌्◌𑰿◌ְb; a◌゙◌्◌𑰿◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, BHAIKSUKI SIGN VIRAMA, LATIN SMALL LETTER B
 0061 11C3F 05B0 094D 3099 0062;0061 3099 11C3F 094D 05B0 0062;0061 3099 11C3F 
094D 05B0 0062;0061 3099 11C3F 094D 05B0 0062;0061 3099 11C3F 094D 05B0 0062; # 
(a◌𑰿◌ְ◌्◌゙b; a◌゙◌𑰿◌्◌ְb; a◌゙◌𑰿◌्◌ְb; a◌゙◌𑰿◌्◌ְb; a◌゙◌𑰿◌्◌ְb; ) LATIN SMALL 
LETTER A, BHAIKSUKI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
-0061 3099 093C 0334 11D42 0062;0061 0334 093C 11D42 3099 0062;0061 0334 093C 
11D42 3099 0062;0061 0334 093C 11D42 3099 0062;0061 0334 093C 11D42 3099 0062; 
# (a◌゙◌़◌̴◌𑵂b; a◌̴◌़◌𑵂◌゙b; a◌̴◌़◌𑵂◌゙b; a◌̴◌़◌𑵂◌゙b; a◌̴◌़◌𑵂◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, MASARAM GONDI SIGN NUKTA, LATIN SMALL LETTER B
-0061 11D42 3099 093C 0334 0062;0061 0334 11D42 093C 3099 0062;0061 0334 11D42 
093C 3099 0062;0061 0334 11D42 093C 3099 0062;0061 0334 11D42 093C 3099 0062; # 
(a◌𑵂◌゙◌़◌̴b; a◌̴◌𑵂◌़◌゙b; a◌̴◌𑵂◌़◌゙b; a◌̴◌𑵂◌़◌゙b; a◌̴◌𑵂◌़◌゙b; ) LATIN SMALL 
LETTER A, MASARAM GONDI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND 
MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 11D42 0062;0061 16FF0 093C 11D42 3099 0062;0061 16FF0 
093C 11D42 3099 0062;0061 16FF0 093C 11D42 3099 0062;0061 16FF0 093C 11D42 3099 
0062; # (a◌゙◌𖿰़◌𑵂b; a𖿰◌़◌𑵂◌゙b; a𖿰◌़◌𑵂◌゙b; a𖿰◌़◌𑵂◌゙b; a𖿰◌़◌𑵂◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, MASARAM GONDI SIGN NUKTA, LATIN SMALL 
LETTER B
+0061 11D42 3099 093C 16FF0 0062;0061 16FF0 11D42 093C 3099 0062;0061 16FF0 
11D42 093C 3099 0062;0061 16FF0 11D42 093C 3099 0062;0061 16FF0 11D42 093C 3099 
0062; # (a◌𑵂◌゙◌𖿰़b; a𖿰◌𑵂◌़◌゙b; a𖿰◌𑵂◌़◌゙b; a𖿰◌𑵂◌़◌゙b; a𖿰◌𑵂◌़◌゙b; ) LATIN SMALL 
LETTER A, MASARAM GONDI SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND 
MARK, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL 
LETTER B
 0061 05B0 094D 3099 11D44 0062;0061 3099 094D 11D44 05B0 0062;0061 3099 094D 
11D44 05B0 0062;0061 3099 094D 11D44 05B0 0062;0061 3099 094D 11D44 05B0 0062; 
# (a◌ְ◌्◌゙◌𑵄b; a◌゙◌्◌𑵄◌ְb; a◌゙◌्◌𑵄◌ְb; a◌゙◌्◌𑵄◌ְb; a◌゙◌्◌𑵄◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, MASARAM GONDI SIGN HALANTA, LATIN SMALL 
LETTER B
 0061 11D44 05B0 094D 3099 0062;0061 3099 11D44 094D 05B0 0062;0061 3099 11D44 
094D 05B0 0062;0061 3099 11D44 094D 05B0 0062;0061 3099 11D44 094D 05B0 0062; # 
(a◌𑵄◌ְ◌्◌゙b; a◌゙◌𑵄◌्◌ְb; a◌゙◌𑵄◌्◌ְb; a◌゙◌𑵄◌्◌ְb; a◌゙◌𑵄◌्◌ְb; ) LATIN SMALL 
LETTER A, MASARAM GONDI SIGN HALANTA, HEBREW POINT SHEVA, DEVANAGARI SIGN 
VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 05B0 094D 3099 11D45 0062;0061 3099 094D 11D45 05B0 0062;0061 3099 094D 
11D45 05B0 0062;0061 3099 094D 11D45 05B0 0062;0061 3099 094D 11D45 05B0 0062; 
# (a◌ְ◌्◌゙◌𑵅b; a◌゙◌्◌𑵅◌ְb; a◌゙◌्◌𑵅◌ְb; a◌゙◌्◌𑵅◌ְb; a◌゙◌्◌𑵅◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, MASARAM GONDI VIRAMA, LATIN SMALL LETTER B
 0061 11D45 05B0 094D 3099 0062;0061 3099 11D45 094D 05B0 0062;0061 3099 11D45 
094D 05B0 0062;0061 3099 11D45 094D 05B0 0062;0061 3099 11D45 094D 05B0 0062; # 
(a◌𑵅◌ְ◌्◌゙b; a◌゙◌𑵅◌्◌ְb; a◌゙◌𑵅◌्◌ְb; a◌゙◌𑵅◌्◌ְb; a◌゙◌𑵅◌्◌ְb; ) LATIN SMALL 
LETTER A, MASARAM GONDI VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 05B0 094D 3099 11D97 0062;0061 3099 094D 11D97 05B0 0062;0061 3099 094D 
11D97 05B0 0062;0061 3099 094D 11D97 05B0 0062;0061 3099 094D 11D97 05B0 0062; 
# (a◌ְ◌्◌゙◌𑶗b; a◌゙◌्◌𑶗◌ְb; a◌゙◌्◌𑶗◌ְb; a◌゙◌्◌𑶗◌ְb; a◌゙◌्◌𑶗◌ְb; ) LATIN SMALL 
LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING 
KATAKANA-HIRAGANA VOICED SOUND MARK, GUNJALA GONDI VIRAMA, LATIN SMALL LETTER B
 0061 11D97 05B0 094D 3099 0062;0061 3099 11D97 094D 05B0 0062;0061 3099 11D97 
094D 05B0 0062;0061 3099 11D97 094D 05B0 0062;0061 3099 11D97 094D 05B0 0062; # 
(a◌𑶗◌ְ◌्◌゙b; a◌゙◌𑶗◌्◌ְb; a◌゙◌𑶗◌्◌ְb; a◌゙◌𑶗◌्◌ְb; a◌゙◌𑶗◌्◌ְb; ) LATIN SMALL 
LETTER A, GUNJALA GONDI VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, 
COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
-0061 093C 0334 16AF0 0062;0061 0334 16AF0 093C 0062;0061 0334 16AF0 093C 
0062;0061 0334 16AF0 093C 0062;0061 0334 16AF0 093C 0062; # (a◌़◌̴◌𖫰b; 
a◌̴◌𖫰◌़b; a◌̴◌𖫰◌़b; a◌̴◌𖫰◌़b; a◌̴◌𖫰◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN 
NUKTA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING HIGH TONE, LATIN SMALL 
LETTER B
-0061 16AF0 093C 0334 0062;0061 16AF0 0334 093C 0062;0061 16AF0 0334 093C 
0062;0061 16AF0 0334 093C 0062;0061 16AF0 0334 093C 0062; # (a◌𖫰◌़◌̴b; 
a◌𖫰◌̴◌़b; a◌𖫰◌̴◌़b; a◌𖫰◌̴◌़b; a◌𖫰◌̴◌़b; ) LATIN SMALL LETTER A, BASSA VAH 
COMBINING HIGH TONE, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
-0061 093C 0334 16AF1 0062;0061 0334 16AF1 093C 0062;0061 0334 16AF1 093C 
0062;0061 0334 16AF1 093C 0062;0061 0334 16AF1 093C 0062; # (a◌़◌̴◌𖫱b; 
a◌̴◌𖫱◌़b; a◌̴◌𖫱◌़b; a◌̴◌𖫱◌़b; a◌̴◌𖫱◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN 
NUKTA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING LOW TONE, LATIN SMALL 
LETTER B
-0061 16AF1 093C 0334 0062;0061 16AF1 0334 093C 0062;0061 16AF1 0334 093C 
0062;0061 16AF1 0334 093C 0062;0061 16AF1 0334 093C 0062; # (a◌𖫱◌़◌̴b; 
a◌𖫱◌̴◌़b; a◌𖫱◌̴◌़b; a◌𖫱◌̴◌़b; a◌𖫱◌̴◌़b; ) LATIN SMALL LETTER A, BASSA VAH 
COMBINING LOW TONE, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL 
LETTER B
-0061 093C 0334 16AF2 0062;0061 0334 16AF2 093C 0062;0061 0334 16AF2 093C 
0062;0061 0334 16AF2 093C 0062;0061 0334 16AF2 093C 0062; # (a◌़◌̴◌𖫲b; 
a◌̴◌𖫲◌़b; a◌̴◌𖫲◌़b; a◌̴◌𖫲◌़b; a◌̴◌𖫲◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN 
NUKTA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING MID TONE, LATIN SMALL 
LETTER B
-0061 16AF2 093C 0334 0062;0061 16AF2 0334 093C 0062;0061 16AF2 0334 093C 
0062;0061 16AF2 0334 093C 0062;0061 16AF2 0334 093C 0062; # (a◌𖫲◌़◌̴b; 
a◌𖫲◌̴◌़b; a◌𖫲◌̴◌़b; a◌𖫲◌̴◌़b; a◌𖫲◌̴◌़b; ) LATIN SMALL LETTER A, BASSA VAH 
COMBINING MID TONE, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL 
LETTER B
-0061 093C 0334 16AF3 0062;0061 0334 16AF3 093C 0062;0061 0334 16AF3 093C 
0062;0061 0334 16AF3 093C 0062;0061 0334 16AF3 093C 0062; # (a◌़◌̴◌𖫳b; 
a◌̴◌𖫳◌़b; a◌̴◌𖫳◌़b; a◌̴◌𖫳◌़b; a◌̴◌𖫳◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN 
NUKTA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING LOW-MID TONE, LATIN SMALL 
LETTER B
-0061 16AF3 093C 0334 0062;0061 16AF3 0334 093C 0062;0061 16AF3 0334 093C 
0062;0061 16AF3 0334 093C 0062;0061 16AF3 0334 093C 0062; # (a◌𖫳◌़◌̴b; 
a◌𖫳◌̴◌़b; a◌𖫳◌̴◌़b; a◌𖫳◌̴◌़b; a◌𖫳◌̴◌़b; ) LATIN SMALL LETTER A, BASSA VAH 
COMBINING LOW-MID TONE, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
-0061 093C 0334 16AF4 0062;0061 0334 16AF4 093C 0062;0061 0334 16AF4 093C 
0062;0061 0334 16AF4 093C 0062;0061 0334 16AF4 093C 0062; # (a◌़◌̴◌𖫴b; 
a◌̴◌𖫴◌़b; a◌̴◌𖫴◌़b; a◌̴◌𖫴◌़b; a◌̴◌𖫴◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN 
NUKTA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING HIGH-LOW TONE, LATIN SMALL 
LETTER B
-0061 16AF4 093C 0334 0062;0061 16AF4 0334 093C 0062;0061 16AF4 0334 093C 
0062;0061 16AF4 0334 093C 0062;0061 16AF4 0334 093C 0062; # (a◌𖫴◌़◌̴b; 
a◌𖫴◌̴◌़b; a◌𖫴◌̴◌़b; a◌𖫴◌̴◌़b; a◌𖫴◌̴◌़b; ) LATIN SMALL LETTER A, BASSA VAH 
COMBINING HIGH-LOW TONE, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
+0061 16FF0 0334 16AF0 0062;0061 0334 16AF0 16FF0 0062;0061 0334 16AF0 16FF0 
0062;0061 0334 16AF0 16FF0 0062;0061 0334 16AF0 16FF0 0062; # (a𖿰◌̴◌𖫰b; 
a◌̴◌𖫰𖿰b; a◌̴◌𖫰𖿰b; a◌̴◌𖫰𖿰b; a◌̴◌𖫰𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE 
ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING HIGH 
TONE, LATIN SMALL LETTER B
+0061 16AF0 16FF0 0334 0062;0061 16AF0 0334 16FF0 0062;0061 16AF0 0334 16FF0 
0062;0061 16AF0 0334 16FF0 0062;0061 16AF0 0334 16FF0 0062; # (a◌𖫰𖿰◌̴b; 
a◌𖫰◌̴𖿰b; a◌𖫰◌̴𖿰b; a◌𖫰◌̴𖿰b; a◌𖫰◌̴𖿰b; ) LATIN SMALL LETTER A, BASSA VAH COMBINING 
HIGH TONE, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
+0061 16FF0 0334 16AF1 0062;0061 0334 16AF1 16FF0 0062;0061 0334 16AF1 16FF0 
0062;0061 0334 16AF1 16FF0 0062;0061 0334 16AF1 16FF0 0062; # (a𖿰◌̴◌𖫱b; 
a◌̴◌𖫱𖿰b; a◌̴◌𖫱𖿰b; a◌̴◌𖫱𖿰b; a◌̴◌𖫱𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE 
ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING LOW 
TONE, LATIN SMALL LETTER B
+0061 16AF1 16FF0 0334 0062;0061 16AF1 0334 16FF0 0062;0061 16AF1 0334 16FF0 
0062;0061 16AF1 0334 16FF0 0062;0061 16AF1 0334 16FF0 0062; # (a◌𖫱𖿰◌̴b; 
a◌𖫱◌̴𖿰b; a◌𖫱◌̴𖿰b; a◌𖫱◌̴𖿰b; a◌𖫱◌̴𖿰b; ) LATIN SMALL LETTER A, BASSA VAH COMBINING 
LOW TONE, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
+0061 16FF0 0334 16AF2 0062;0061 0334 16AF2 16FF0 0062;0061 0334 16AF2 16FF0 
0062;0061 0334 16AF2 16FF0 0062;0061 0334 16AF2 16FF0 0062; # (a𖿰◌̴◌𖫲b; 
a◌̴◌𖫲𖿰b; a◌̴◌𖫲𖿰b; a◌̴◌𖫲𖿰b; a◌̴◌𖫲𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE 
ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING MID 
TONE, LATIN SMALL LETTER B
+0061 16AF2 16FF0 0334 0062;0061 16AF2 0334 16FF0 0062;0061 16AF2 0334 16FF0 
0062;0061 16AF2 0334 16FF0 0062;0061 16AF2 0334 16FF0 0062; # (a◌𖫲𖿰◌̴b; 
a◌𖫲◌̴𖿰b; a◌𖫲◌̴𖿰b; a◌𖫲◌̴𖿰b; a◌𖫲◌̴𖿰b; ) LATIN SMALL LETTER A, BASSA VAH COMBINING 
MID TONE, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
+0061 16FF0 0334 16AF3 0062;0061 0334 16AF3 16FF0 0062;0061 0334 16AF3 16FF0 
0062;0061 0334 16AF3 16FF0 0062;0061 0334 16AF3 16FF0 0062; # (a𖿰◌̴◌𖫳b; 
a◌̴◌𖫳𖿰b; a◌̴◌𖫳𖿰b; a◌̴◌𖫳𖿰b; a◌̴◌𖫳𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE 
ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING LOW-MID 
TONE, LATIN SMALL LETTER B
+0061 16AF3 16FF0 0334 0062;0061 16AF3 0334 16FF0 0062;0061 16AF3 0334 16FF0 
0062;0061 16AF3 0334 16FF0 0062;0061 16AF3 0334 16FF0 0062; # (a◌𖫳𖿰◌̴b; 
a◌𖫳◌̴𖿰b; a◌𖫳◌̴𖿰b; a◌𖫳◌̴𖿰b; a◌𖫳◌̴𖿰b; ) LATIN SMALL LETTER A, BASSA VAH COMBINING 
LOW-MID TONE, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, 
LATIN SMALL LETTER B
+0061 16FF0 0334 16AF4 0062;0061 0334 16AF4 16FF0 0062;0061 0334 16AF4 16FF0 
0062;0061 0334 16AF4 16FF0 0062;0061 0334 16AF4 16FF0 0062; # (a𖿰◌̴◌𖫴b; 
a◌̴◌𖫴𖿰b; a◌̴◌𖫴𖿰b; a◌̴◌𖫴𖿰b; a◌̴◌𖫴𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE 
ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, BASSA VAH COMBINING 
HIGH-LOW TONE, LATIN SMALL LETTER B
+0061 16AF4 16FF0 0334 0062;0061 16AF4 0334 16FF0 0062;0061 16AF4 0334 16FF0 
0062;0061 16AF4 0334 16FF0 0062;0061 16AF4 0334 16FF0 0062; # (a◌𖫴𖿰◌̴b; 
a◌𖫴◌̴𖿰b; a◌𖫴◌̴𖿰b; a◌𖫴◌̴𖿰b; a◌𖫴◌̴𖿰b; ) LATIN SMALL LETTER A, BASSA VAH COMBINING 
HIGH-LOW TONE, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, 
LATIN SMALL LETTER B
 0061 0315 0300 05AE 16B30 0062;00E0 05AE 16B30 0315 0062;0061 05AE 0300 16B30 
0315 0062;00E0 05AE 16B30 0315 0062;0061 05AE 0300 16B30 0315 0062; # 
(a◌̕◌̀◌֮◌𖬰b; à◌֮◌𖬰◌̕b; a◌֮◌̀◌𖬰◌̕b; à◌֮◌𖬰◌̕b; a◌֮◌̀◌𖬰◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
PAHAWH HMONG MARK CIM TUB, LATIN SMALL LETTER B
 0061 16B30 0315 0300 05AE 0062;0061 05AE 16B30 0300 0315 0062;0061 05AE 16B30 
0300 0315 0062;0061 05AE 16B30 0300 0315 0062;0061 05AE 16B30 0300 0315 0062; # 
(a◌𖬰◌̕◌̀◌֮b; a◌֮◌𖬰◌̀◌̕b; a◌֮◌𖬰◌̀◌̕b; a◌֮◌𖬰◌̀◌̕b; a◌֮◌𖬰◌̀◌̕b; ) LATIN SMALL 
LETTER A, PAHAWH HMONG MARK CIM TUB, COMBINING COMMA ABOVE RIGHT, COMBINING 
GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 0315 0300 05AE 16B31 0062;00E0 05AE 16B31 0315 0062;0061 05AE 0300 16B31 
0315 0062;00E0 05AE 16B31 0315 0062;0061 05AE 0300 16B31 0315 0062; # 
(a◌̕◌̀◌֮◌𖬱b; à◌֮◌𖬱◌̕b; a◌֮◌̀◌𖬱◌̕b; à◌֮◌𖬱◌̕b; a◌֮◌̀◌𖬱◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
PAHAWH HMONG MARK CIM SO, LATIN SMALL LETTER B
@@ -18498,18 +18527,22 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) 
HALFWIDTH WHITE CIRCLE
 0061 16B35 0315 0300 05AE 0062;0061 05AE 16B35 0300 0315 0062;0061 05AE 16B35 
0300 0315 0062;0061 05AE 16B35 0300 0315 0062;0061 05AE 16B35 0300 0315 0062; # 
(a◌𖬵◌̕◌̀◌֮b; a◌֮◌𖬵◌̀◌̕b; a◌֮◌𖬵◌̀◌̕b; a◌֮◌𖬵◌̀◌̕b; a◌֮◌𖬵◌̀◌̕b; ) LATIN SMALL 
LETTER A, PAHAWH HMONG MARK CIM HOM, COMBINING COMMA ABOVE RIGHT, COMBINING 
GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 0315 0300 05AE 16B36 0062;00E0 05AE 16B36 0315 0062;0061 05AE 0300 16B36 
0315 0062;00E0 05AE 16B36 0315 0062;0061 05AE 0300 16B36 0315 0062; # 
(a◌̕◌̀◌֮◌𖬶b; à◌֮◌𖬶◌̕b; a◌֮◌̀◌𖬶◌̕b; à◌֮◌𖬶◌̕b; a◌֮◌̀◌𖬶◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
PAHAWH HMONG MARK CIM TAUM, LATIN SMALL LETTER B
 0061 16B36 0315 0300 05AE 0062;0061 05AE 16B36 0300 0315 0062;0061 05AE 16B36 
0300 0315 0062;0061 05AE 16B36 0300 0315 0062;0061 05AE 16B36 0300 0315 0062; # 
(a◌𖬶◌̕◌̀◌֮b; a◌֮◌𖬶◌̀◌̕b; a◌֮◌𖬶◌̀◌̕b; a◌֮◌𖬶◌̀◌̕b; a◌֮◌𖬶◌̀◌̕b; ) LATIN SMALL 
LETTER A, PAHAWH HMONG MARK CIM TAUM, COMBINING COMMA ABOVE RIGHT, COMBINING 
GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
-0061 093C 0334 1BC9E 0062;0061 0334 1BC9E 093C 0062;0061 0334 1BC9E 093C 
0062;0061 0334 1BC9E 093C 0062;0061 0334 1BC9E 093C 0062; # (a◌़◌̴◌𛲞b; 
a◌̴◌𛲞◌़b; a◌̴◌𛲞◌़b; a◌̴◌𛲞◌़b; a◌̴◌𛲞◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN 
NUKTA, COMBINING TILDE OVERLAY, DUPLOYAN DOUBLE MARK, LATIN SMALL LETTER B
-0061 1BC9E 093C 0334 0062;0061 1BC9E 0334 093C 0062;0061 1BC9E 0334 093C 
0062;0061 1BC9E 0334 093C 0062;0061 1BC9E 0334 093C 0062; # (a◌𛲞◌़◌̴b; 
a◌𛲞◌̴◌़b; a◌𛲞◌̴◌़b; a◌𛲞◌̴◌़b; a◌𛲞◌̴◌़b; ) LATIN SMALL LETTER A, DUPLOYAN DOUBLE 
MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 093C 16FF0 0334 16FF0 0062;0061 0334 16FF0 16FF0 093C 0062;0061 0334 
16FF0 16FF0 093C 0062;0061 0334 16FF0 16FF0 093C 0062;0061 0334 16FF0 16FF0 
093C 0062; # (a◌𖿰़◌̴𖿰b; a◌̴𖿰𖿰◌़b; a◌̴𖿰𖿰◌़b; a◌̴𖿰𖿰◌़b; a◌̴𖿰𖿰◌़b; ) LATIN SMALL 
LETTER A, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, 
COMBINING TILDE OVERLAY, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL 
LETTER B
+0061 16FF0 093C 16FF0 0334 0062;0061 0334 16FF0 16FF0 093C 0062;0061 0334 
16FF0 16FF0 093C 0062;0061 0334 16FF0 16FF0 093C 0062;0061 0334 16FF0 16FF0 
093C 0062; # (a𖿰◌𖿰़◌̴b; a◌̴𖿰𖿰◌़b; a◌̴𖿰𖿰◌़b; a◌̴𖿰𖿰◌़b; a◌̴𖿰𖿰◌़b; ) LATIN SMALL 
LETTER A, VIETNAMESE ALTERNATE READING MARK CA, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL 
LETTER B
+0061 093C 16FF0 0334 16FF1 0062;0061 0334 16FF0 16FF1 093C 0062;0061 0334 
16FF0 16FF1 093C 0062;0061 0334 16FF0 16FF1 093C 0062;0061 0334 16FF0 16FF1 
093C 0062; # (a◌𖿰़◌̴𖿱b; a◌̴𖿰𖿱◌़b; a◌̴𖿰𖿱◌़b; a◌̴𖿰𖿱◌़b; a◌̴𖿰𖿱◌़b; ) LATIN SMALL 
LETTER A, DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, 
COMBINING TILDE OVERLAY, VIETNAMESE ALTERNATE READING MARK NHAY, LATIN SMALL 
LETTER B
+0061 16FF1 093C 16FF0 0334 0062;0061 0334 16FF1 16FF0 093C 0062;0061 0334 
16FF1 16FF0 093C 0062;0061 0334 16FF1 16FF0 093C 0062;0061 0334 16FF1 16FF0 
093C 0062; # (a𖿱◌𖿰़◌̴b; a◌̴𖿱𖿰◌़b; a◌̴𖿱𖿰◌़b; a◌̴𖿱𖿰◌़b; a◌̴𖿱𖿰◌़b; ) LATIN SMALL 
LETTER A, VIETNAMESE ALTERNATE READING MARK NHAY, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN SMALL 
LETTER B
+0061 16FF0 0334 1BC9E 0062;0061 0334 1BC9E 16FF0 0062;0061 0334 1BC9E 16FF0 
0062;0061 0334 1BC9E 16FF0 0062;0061 0334 1BC9E 16FF0 0062; # (a𖿰◌̴◌𛲞b; 
a◌̴◌𛲞𖿰b; a◌̴◌𛲞𖿰b; a◌̴◌𛲞𖿰b; a◌̴◌𛲞𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE 
ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, DUPLOYAN DOUBLE MARK, LATIN 
SMALL LETTER B
+0061 1BC9E 16FF0 0334 0062;0061 1BC9E 0334 16FF0 0062;0061 1BC9E 0334 16FF0 
0062;0061 1BC9E 0334 16FF0 0062;0061 1BC9E 0334 16FF0 0062; # (a◌𛲞𖿰◌̴b; 
a◌𛲞◌̴𖿰b; a◌𛲞◌̴𖿰b; a◌𛲞◌̴𖿰b; a◌𛲞◌̴𖿰b; ) LATIN SMALL LETTER A, DUPLOYAN DOUBLE 
MARK, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
 0061 302A 031B 1DCE 1D165 0062;0061 1DCE 031B 1D165 302A 0062;0061 1DCE 031B 
1D165 302A 0062;0061 1DCE 031B 1D165 302A 0062;0061 1DCE 031B 1D165 302A 0062; 
# (a◌〪◌̛◌᷎𝅥b; a◌᷎◌̛𝅥◌〪b; a◌᷎◌̛𝅥◌〪b; a◌᷎◌̛𝅥◌〪b; a◌᷎◌̛𝅥◌〪b; ) LATIN SMALL LETTER 
A, IDEOGRAPHIC LEVEL TONE MARK, COMBINING HORN, COMBINING OGONEK ABOVE, MUSICAL 
SYMBOL COMBINING STEM, LATIN SMALL LETTER B
 0061 1D165 302A 031B 1DCE 0062;0061 1DCE 1D165 031B 302A 0062;0061 1DCE 1D165 
031B 302A 0062;0061 1DCE 1D165 031B 302A 0062;0061 1DCE 1D165 031B 302A 0062; # 
(a𝅥◌〪◌̛◌᷎b; a◌᷎𝅥◌̛◌〪b; a◌᷎𝅥◌̛◌〪b; a◌᷎𝅥◌̛◌〪b; a◌᷎𝅥◌̛◌〪b; ) LATIN SMALL LETTER A, 
MUSICAL SYMBOL COMBINING STEM, IDEOGRAPHIC LEVEL TONE MARK, COMBINING HORN, 
COMBINING OGONEK ABOVE, LATIN SMALL LETTER B
 0061 302A 031B 1DCE 1D166 0062;0061 1DCE 031B 1D166 302A 0062;0061 1DCE 031B 
1D166 302A 0062;0061 1DCE 031B 1D166 302A 0062;0061 1DCE 031B 1D166 302A 0062; 
# (a◌〪◌̛◌᷎𝅦b; a◌᷎◌̛𝅦◌〪b; a◌᷎◌̛𝅦◌〪b; a◌᷎◌̛𝅦◌〪b; a◌᷎◌̛𝅦◌〪b; ) LATIN SMALL LETTER 
A, IDEOGRAPHIC LEVEL TONE MARK, COMBINING HORN, COMBINING OGONEK ABOVE, MUSICAL 
SYMBOL COMBINING SPRECHGESANG STEM, LATIN SMALL LETTER B
 0061 1D166 302A 031B 1DCE 0062;0061 1DCE 1D166 031B 302A 0062;0061 1DCE 1D166 
031B 302A 0062;0061 1DCE 1D166 031B 302A 0062;0061 1DCE 1D166 031B 302A 0062; # 
(a𝅦◌〪◌̛◌᷎b; a◌᷎𝅦◌̛◌〪b; a◌᷎𝅦◌̛◌〪b; a◌᷎𝅦◌̛◌〪b; a◌᷎𝅦◌̛◌〪b; ) LATIN SMALL LETTER A, 
MUSICAL SYMBOL COMBINING SPRECHGESANG STEM, IDEOGRAPHIC LEVEL TONE MARK, 
COMBINING HORN, COMBINING OGONEK ABOVE, LATIN SMALL LETTER B
-0061 093C 0334 1D167 0062;0061 0334 1D167 093C 0062;0061 0334 1D167 093C 
0062;0061 0334 1D167 093C 0062;0061 0334 1D167 093C 0062; # (a◌़◌̴◌𝅧b; 
a◌̴◌𝅧◌़b; a◌̴◌𝅧◌़b; a◌̴◌𝅧◌़b; a◌̴◌𝅧◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN 
NUKTA, COMBINING TILDE OVERLAY, MUSICAL SYMBOL COMBINING TREMOLO-1, LATIN SMALL 
LETTER B
-0061 1D167 093C 0334 0062;0061 1D167 0334 093C 0062;0061 1D167 0334 093C 
0062;0061 1D167 0334 093C 0062;0061 1D167 0334 093C 0062; # (a◌𝅧◌़◌̴b; 
a◌𝅧◌̴◌़b; a◌𝅧◌̴◌़b; a◌𝅧◌̴◌़b; a◌𝅧◌̴◌़b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL 
COMBINING TREMOLO-1, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
-0061 093C 0334 1D168 0062;0061 0334 1D168 093C 0062;0061 0334 1D168 093C 
0062;0061 0334 1D168 093C 0062;0061 0334 1D168 093C 0062; # (a◌़◌̴◌𝅨b; 
a◌̴◌𝅨◌़b; a◌̴◌𝅨◌़b; a◌̴◌𝅨◌़b; a◌̴◌𝅨◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN 
NUKTA, COMBINING TILDE OVERLAY, MUSICAL SYMBOL COMBINING TREMOLO-2, LATIN SMALL 
LETTER B
-0061 1D168 093C 0334 0062;0061 1D168 0334 093C 0062;0061 1D168 0334 093C 
0062;0061 1D168 0334 093C 0062;0061 1D168 0334 093C 0062; # (a◌𝅨◌़◌̴b; 
a◌𝅨◌̴◌़b; a◌𝅨◌̴◌़b; a◌𝅨◌̴◌़b; a◌𝅨◌̴◌़b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL 
COMBINING TREMOLO-2, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
-0061 093C 0334 1D169 0062;0061 0334 1D169 093C 0062;0061 0334 1D169 093C 
0062;0061 0334 1D169 093C 0062;0061 0334 1D169 093C 0062; # (a◌़◌̴◌𝅩b; 
a◌̴◌𝅩◌़b; a◌̴◌𝅩◌़b; a◌̴◌𝅩◌़b; a◌̴◌𝅩◌़b; ) LATIN SMALL LETTER A, DEVANAGARI SIGN 
NUKTA, COMBINING TILDE OVERLAY, MUSICAL SYMBOL COMBINING TREMOLO-3, LATIN SMALL 
LETTER B
-0061 1D169 093C 0334 0062;0061 1D169 0334 093C 0062;0061 1D169 0334 093C 
0062;0061 1D169 0334 093C 0062;0061 1D169 0334 093C 0062; # (a◌𝅩◌़◌̴b; 
a◌𝅩◌̴◌़b; a◌𝅩◌̴◌़b; a◌𝅩◌̴◌़b; a◌𝅩◌̴◌़b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL 
COMBINING TREMOLO-3, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN 
SMALL LETTER B
+0061 16FF0 0334 1D167 0062;0061 0334 1D167 16FF0 0062;0061 0334 1D167 16FF0 
0062;0061 0334 1D167 16FF0 0062;0061 0334 1D167 16FF0 0062; # (a𖿰◌̴◌𝅧b; 
a◌̴◌𝅧𖿰b; a◌̴◌𝅧𖿰b; a◌̴◌𝅧𖿰b; a◌̴◌𝅧𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE 
ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, MUSICAL SYMBOL COMBINING 
TREMOLO-1, LATIN SMALL LETTER B
+0061 1D167 16FF0 0334 0062;0061 1D167 0334 16FF0 0062;0061 1D167 0334 16FF0 
0062;0061 1D167 0334 16FF0 0062;0061 1D167 0334 16FF0 0062; # (a◌𝅧𖿰◌̴b; 
a◌𝅧◌̴𖿰b; a◌𝅧◌̴𖿰b; a◌𝅧◌̴𖿰b; a◌𝅧◌̴𖿰b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL 
COMBINING TREMOLO-1, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE 
OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 1D168 0062;0061 0334 1D168 16FF0 0062;0061 0334 1D168 16FF0 
0062;0061 0334 1D168 16FF0 0062;0061 0334 1D168 16FF0 0062; # (a𖿰◌̴◌𝅨b; 
a◌̴◌𝅨𖿰b; a◌̴◌𝅨𖿰b; a◌̴◌𝅨𖿰b; a◌̴◌𝅨𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE 
ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, MUSICAL SYMBOL COMBINING 
TREMOLO-2, LATIN SMALL LETTER B
+0061 1D168 16FF0 0334 0062;0061 1D168 0334 16FF0 0062;0061 1D168 0334 16FF0 
0062;0061 1D168 0334 16FF0 0062;0061 1D168 0334 16FF0 0062; # (a◌𝅨𖿰◌̴b; 
a◌𝅨◌̴𖿰b; a◌𝅨◌̴𖿰b; a◌𝅨◌̴𖿰b; a◌𝅨◌̴𖿰b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL 
COMBINING TREMOLO-2, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE 
OVERLAY, LATIN SMALL LETTER B
+0061 16FF0 0334 1D169 0062;0061 0334 1D169 16FF0 0062;0061 0334 1D169 16FF0 
0062;0061 0334 1D169 16FF0 0062;0061 0334 1D169 16FF0 0062; # (a𖿰◌̴◌𝅩b; 
a◌̴◌𝅩𖿰b; a◌̴◌𝅩𖿰b; a◌̴◌𝅩𖿰b; a◌̴◌𝅩𖿰b; ) LATIN SMALL LETTER A, VIETNAMESE 
ALTERNATE READING MARK CA, COMBINING TILDE OVERLAY, MUSICAL SYMBOL COMBINING 
TREMOLO-3, LATIN SMALL LETTER B
+0061 1D169 16FF0 0334 0062;0061 1D169 0334 16FF0 0062;0061 1D169 0334 16FF0 
0062;0061 1D169 0334 16FF0 0062;0061 1D169 0334 16FF0 0062; # (a◌𝅩𖿰◌̴b; 
a◌𝅩◌̴𖿰b; a◌𝅩◌̴𖿰b; a◌𝅩◌̴𖿰b; a◌𝅩◌̴𖿰b; ) LATIN SMALL LETTER A, MUSICAL SYMBOL 
COMBINING TREMOLO-3, VIETNAMESE ALTERNATE READING MARK CA, COMBINING TILDE 
OVERLAY, LATIN SMALL LETTER B
 0061 05AE 1D16D 302E 1D16D 0062;0061 302E 1D16D 1D16D 05AE 0062;0061 302E 
1D16D 1D16D 05AE 0062;0061 302E 1D16D 1D16D 05AE 0062;0061 302E 1D16D 1D16D 
05AE 0062; # (a◌〮𝅭𝅭֮b; a〮𝅭𝅭◌֮b; a〮𝅭𝅭◌֮b; a〮𝅭𝅭◌֮b; a〮𝅭𝅭◌֮b; ) LATIN SMALL LETTER 
A, HEBREW ACCENT ZINOR, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, HANGUL 
SINGLE DOT TONE MARK, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, LATIN SMALL 
LETTER B
 0061 1D16D 05AE 1D16D 302E 0062;0061 302E 1D16D 1D16D 05AE 0062;0061 302E 
1D16D 1D16D 05AE 0062;0061 302E 1D16D 1D16D 05AE 0062;0061 302E 1D16D 1D16D 
05AE 0062; # (a𝅭◌〮𝅭֮b; a〮𝅭𝅭◌֮b; a〮𝅭𝅭◌֮b; a〮𝅭𝅭◌֮b; a〮𝅭𝅭◌֮b; ) LATIN SMALL LETTER 
A, MUSICAL SYMBOL COMBINING AUGMENTATION DOT, HEBREW ACCENT ZINOR, MUSICAL 
SYMBOL COMBINING AUGMENTATION DOT, HANGUL SINGLE DOT TONE MARK, LATIN SMALL 
LETTER B
 0061 302A 031B 1DCE 1D16E 0062;0061 1DCE 031B 1D16E 302A 0062;0061 1DCE 031B 
1D16E 302A 0062;0061 1DCE 031B 1D16E 302A 0062;0061 1DCE 031B 1D16E 302A 0062; 
# (a◌〪◌̛◌᷎𝅮b; a◌᷎◌̛𝅮◌〪b; a◌᷎◌̛𝅮◌〪b; a◌᷎◌̛𝅮◌〪b; a◌᷎◌̛𝅮◌〪b; ) LATIN SMALL LETTER 
A, IDEOGRAPHIC LEVEL TONE MARK, COMBINING HORN, COMBINING OGONEK ABOVE, MUSICAL 
SYMBOL COMBINING FLAG-1, LATIN SMALL LETTER B
@@ -18690,8 +18723,8 @@ FFEE;FFEE;FFEE;25CB;25CB; # (○; ○; ○; ○; ○; ) HALFWIDTH 
WHITE CIRCLE
 0061 1E948 0315 0300 05AE 0062;0061 05AE 1E948 0300 0315 0062;0061 05AE 1E948 
0300 0315 0062;0061 05AE 1E948 0300 0315 0062;0061 05AE 1E948 0300 0315 0062; # 
(a◌𞥈◌̕◌̀◌֮b; a◌֮◌𞥈◌̀◌̕b; a◌֮◌𞥈◌̀◌̕b; a◌֮◌𞥈◌̀◌̕b; a◌֮◌𞥈◌̀◌̕b; ) LATIN SMALL 
LETTER A, ADLAM CONSONANT MODIFIER, COMBINING COMMA ABOVE RIGHT, COMBINING 
GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 0315 0300 05AE 1E949 0062;00E0 05AE 1E949 0315 0062;0061 05AE 0300 1E949 
0315 0062;00E0 05AE 1E949 0315 0062;0061 05AE 0300 1E949 0315 0062; # 
(a◌̕◌̀◌֮◌𞥉b; à◌֮◌𞥉◌̕b; a◌֮◌̀◌𞥉◌̕b; à◌֮◌𞥉◌̕b; a◌֮◌̀◌𞥉◌̕b; ) LATIN SMALL LETTER 
A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, 
ADLAM GEMINATE CONSONANT MODIFIER, LATIN SMALL LETTER B
 0061 1E949 0315 0300 05AE 0062;0061 05AE 1E949 0300 0315 0062;0061 05AE 1E949 
0300 0315 0062;0061 05AE 1E949 0300 0315 0062;0061 05AE 1E949 0300 0315 0062; # 
(a◌𞥉◌̕◌̀◌֮b; a◌֮◌𞥉◌̀◌̕b; a◌֮◌𞥉◌̀◌̕b; a◌֮◌𞥉◌̀◌̕b; a◌֮◌𞥉◌̀◌̕b; ) LATIN SMALL 
LETTER A, ADLAM GEMINATE CONSONANT MODIFIER, COMBINING COMMA ABOVE RIGHT, 
COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
-0061 3099 093C 0334 1E94A 0062;0061 0334 093C 1E94A 3099 0062;0061 0334 093C 
1E94A 3099 0062;0061 0334 093C 1E94A 3099 0062;0061 0334 093C 1E94A 3099 0062; 
# (a◌゙◌़◌̴◌𞥊b; a◌̴◌़◌𞥊◌゙b; a◌̴◌़◌𞥊◌゙b; a◌̴◌़◌𞥊◌゙b; a◌̴◌़◌𞥊◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
COMBINING TILDE OVERLAY, ADLAM NUKTA, LATIN SMALL LETTER B
-0061 1E94A 3099 093C 0334 0062;0061 0334 1E94A 093C 3099 0062;0061 0334 1E94A 
093C 3099 0062;0061 0334 1E94A 093C 3099 0062;0061 0334 1E94A 093C 3099 0062; # 
(a◌𞥊◌゙◌़◌̴b; a◌̴◌𞥊◌़◌゙b; a◌̴◌𞥊◌़◌゙b; a◌̴◌𞥊◌़◌゙b; a◌̴◌𞥊◌़◌゙b; ) LATIN SMALL 
LETTER A, ADLAM NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 3099 093C 16FF0 1E94A 0062;0061 16FF0 093C 1E94A 3099 0062;0061 16FF0 
093C 1E94A 3099 0062;0061 16FF0 093C 1E94A 3099 0062;0061 16FF0 093C 1E94A 3099 
0062; # (a◌゙◌𖿰़◌𞥊b; a𖿰◌़◌𞥊◌゙b; a𖿰◌़◌𞥊◌゙b; a𖿰◌़◌𞥊◌゙b; a𖿰◌़◌𞥊◌゙b; ) LATIN SMALL 
LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, 
VIETNAMESE ALTERNATE READING MARK CA, ADLAM NUKTA, LATIN SMALL LETTER B
+0061 1E94A 3099 093C 16FF0 0062;0061 16FF0 1E94A 093C 3099 0062;0061 16FF0 
1E94A 093C 3099 0062;0061 16FF0 1E94A 093C 3099 0062;0061 16FF0 1E94A 093C 3099 
0062; # (a◌𞥊◌゙◌𖿰़b; a𖿰◌𞥊◌़◌゙b; a𖿰◌𞥊◌़◌゙b; a𖿰◌𞥊◌़◌゙b; a𖿰◌𞥊◌़◌゙b; ) LATIN SMALL 
LETTER A, ADLAM NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, 
DEVANAGARI SIGN NUKTA, VIETNAMESE ALTERNATE READING MARK CA, LATIN SMALL LETTER 
B
 #
 @Part3 # PRI #29 Test
 #
@@ -18870,5 +18903,6 @@ D750 0334 11B5;D750 0334 11B5;1112 1173 0334 11B5;D750 
0334 11B5;1112 1173 0334
 114B9 0334 114BD;114B9 0334 114BD;114B9 0334 114BD;114B9 0334 114BD;114B9 0334 
114BD; # (𑒹◌̴𑒽; 𑒹◌̴𑒽; 𑒹◌̴𑒽; 𑒹◌̴𑒽; 𑒹◌̴𑒽; ) TIRHUTA VOWEL SIGN E, COMBINING TILDE 
OVERLAY, TIRHUTA VOWEL SIGN SHORT O
 115B8 0334 115AF;115B8 0334 115AF;115B8 0334 115AF;115B8 0334 115AF;115B8 0334 
115AF; # (𑖸◌̴𑖯; 𑖸◌̴𑖯; 𑖸◌̴𑖯; 𑖸◌̴𑖯; 𑖸◌̴𑖯; ) SIDDHAM VOWEL SIGN E, COMBINING TILDE 
OVERLAY, SIDDHAM VOWEL SIGN AA
 115B9 0334 115AF;115B9 0334 115AF;115B9 0334 115AF;115B9 0334 115AF;115B9 0334 
115AF; # (𑖹◌̴𑖯; 𑖹◌̴𑖯; 𑖹◌̴𑖯; 𑖹◌̴𑖯; 𑖹◌̴𑖯; ) SIDDHAM VOWEL SIGN AI, COMBINING 
TILDE OVERLAY, SIDDHAM VOWEL SIGN AA
+11935 0334 11930;11935 0334 11930;11935 0334 11930;11935 0334 11930;11935 0334 
11930; # (𑤵◌̴𑤰; 𑤵◌̴𑤰; 𑤵◌̴𑤰; 𑤵◌̴𑤰; 𑤵◌̴𑤰; ) DIVES AKURU VOWEL SIGN E, COMBINING 
TILDE OVERLAY, DIVES AKURU VOWEL SIGN AA
 #
 # EOF
diff --git a/admin/unidata/SpecialCasing.txt b/admin/unidata/SpecialCasing.txt
index 7db2e31..2a1a5a1 100644
--- a/admin/unidata/SpecialCasing.txt
+++ b/admin/unidata/SpecialCasing.txt
@@ -1,5 +1,5 @@
-# SpecialCasing-12.0.0.txt
-# Date: 2019-01-22, 08:18:50 GMT
+# SpecialCasing-13.0.0.txt
+# Date: 2019-09-08, 23:31:24 GMT
 # © 2019 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in 
the U.S. and other countries.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
diff --git a/admin/unidata/UnicodeData.txt b/admin/unidata/UnicodeData.txt
index d88a601..e22f967 100644
--- a/admin/unidata/UnicodeData.txt
+++ b/admin/unidata/UnicodeData.txt
@@ -2118,6 +2118,16 @@
 08BB;ARABIC LETTER AFRICAN FEH;Lo;0;AL;;;;;N;;;;;
 08BC;ARABIC LETTER AFRICAN QAF;Lo;0;AL;;;;;N;;;;;
 08BD;ARABIC LETTER AFRICAN NOON;Lo;0;AL;;;;;N;;;;;
+08BE;ARABIC LETTER PEH WITH SMALL V;Lo;0;AL;;;;;N;;;;;
+08BF;ARABIC LETTER TEH WITH SMALL V;Lo;0;AL;;;;;N;;;;;
+08C0;ARABIC LETTER TTEH WITH SMALL V;Lo;0;AL;;;;;N;;;;;
+08C1;ARABIC LETTER TCHEH WITH SMALL V;Lo;0;AL;;;;;N;;;;;
+08C2;ARABIC LETTER KEHEH WITH SMALL V;Lo;0;AL;;;;;N;;;;;
+08C3;ARABIC LETTER GHAIN WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+08C4;ARABIC LETTER AFRICAN QAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+08C5;ARABIC LETTER JEEM WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+08C6;ARABIC LETTER JEEM WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+08C7;ARABIC LETTER LAM WITH SMALL ARABIC LETTER TAH ABOVE;Lo;0;AL;;;;;N;;;;;
 08D3;ARABIC SMALL LOW WAW;Mn;220;NSM;;;;;N;;;;;
 08D4;ARABIC SMALL HIGH WORD AR-RUB;Mn;230;NSM;;;;;N;;;;;
 08D5;ARABIC SMALL HIGH SAD;Mn;230;NSM;;;;;N;;;;;
@@ -2621,6 +2631,7 @@
 0B4B;ORIYA VOWEL SIGN O;Mc;0;L;0B47 0B3E;;;;N;;;;;
 0B4C;ORIYA VOWEL SIGN AU;Mc;0;L;0B47 0B57;;;;N;;;;;
 0B4D;ORIYA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+0B55;ORIYA SIGN OVERLINE;Mn;0;NSM;;;;;N;;;;;
 0B56;ORIYA AI LENGTH MARK;Mn;0;NSM;;;;;N;;;;;
 0B57;ORIYA AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
 0B5C;ORIYA LETTER RRA;Lo;0;L;0B21 0B3C;;;;N;;;;;
@@ -2911,6 +2922,7 @@
 0D01;MALAYALAM SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
 0D02;MALAYALAM SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
 0D03;MALAYALAM SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+0D04;MALAYALAM LETTER VEDIC ANUSVARA;Lo;0;L;;;;;N;;;;;
 0D05;MALAYALAM LETTER A;Lo;0;L;;;;;N;;;;;
 0D06;MALAYALAM LETTER AA;Lo;0;L;;;;;N;;;;;
 0D07;MALAYALAM LETTER I;Lo;0;L;;;;;N;;;;;
@@ -3024,6 +3036,7 @@
 0D7D;MALAYALAM LETTER CHILLU L;Lo;0;L;;;;;N;;;;;
 0D7E;MALAYALAM LETTER CHILLU LL;Lo;0;L;;;;;N;;;;;
 0D7F;MALAYALAM LETTER CHILLU K;Lo;0;L;;;;;N;;;;;
+0D81;SINHALA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
 0D82;SINHALA SIGN ANUSVARAYA;Mc;0;L;;;;;N;;;;;
 0D83;SINHALA SIGN VISARGAYA;Mc;0;L;;;;;N;;;;;
 0D85;SINHALA LETTER AYANNA;Lo;0;L;;;;;N;;;;;
@@ -6044,6 +6057,8 @@
 1ABC;COMBINING DOUBLE PARENTHESES ABOVE;Mn;230;NSM;;;;;N;;;;;
 1ABD;COMBINING PARENTHESES BELOW;Mn;220;NSM;;;;;N;;;;;
 1ABE;COMBINING PARENTHESES OVERLAY;Me;0;NSM;;;;;N;;;;;
+1ABF;COMBINING LATIN SMALL LETTER W BELOW;Mn;220;NSM;;;;;N;;;;;
+1AC0;COMBINING LATIN SMALL LETTER TURNED W BELOW;Mn;220;NSM;;;;;N;;;;;
 1B00;BALINESE SIGN ULU RICEM;Mn;0;NSM;;;;;N;;;;;
 1B01;BALINESE SIGN ULU CANDRA;Mn;0;NSM;;;;;N;;;;;
 1B02;BALINESE SIGN CECEK;Mn;0;NSM;;;;;N;;;;;
@@ -10133,6 +10148,7 @@
 2B93;NEWLINE RIGHT;So;0;ON;;;;;N;;;;;
 2B94;FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE;So;0;ON;;;;;N;;;;;
 2B95;RIGHTWARDS BLACK ARROW;So;0;ON;;;;;N;;;;;
+2B97;SYMBOL FOR TYPE A ELECTRONICS;So;0;ON;;;;;N;;;;;
 2B98;THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
 2B99;THREE-D RIGHT-LIGHTED UPWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
 2B9A;THREE-D TOP-LIGHTED RIGHTWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;;
@@ -10776,6 +10792,9 @@
 2E4D;PARAGRAPHUS MARK;Po;0;ON;;;;;N;;;;;
 2E4E;PUNCTUS ELEVATUS MARK;Po;0;ON;;;;;N;;;;;
 2E4F;CORNISH VERSE DIVIDER;Po;0;ON;;;;;N;;;;;
+2E50;CROSS PATTY WITH RIGHT CROSSBAR;So;0;ON;;;;;N;;;;;
+2E51;CROSS PATTY WITH LEFT CROSSBAR;So;0;ON;;;;;N;;;;;
+2E52;TIRONIAN SIGN CAPITAL ET;Po;0;ON;;;;;N;;;;;
 2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;;
 2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;;
 2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;;
@@ -11550,6 +11569,11 @@
 31B8;BOPOMOFO LETTER GH;Lo;0;L;;;;;N;;;;;
 31B9;BOPOMOFO LETTER LH;Lo;0;L;;;;;N;;;;;
 31BA;BOPOMOFO LETTER ZY;Lo;0;L;;;;;N;;;;;
+31BB;BOPOMOFO FINAL LETTER G;Lo;0;L;;;;;N;;;;;
+31BC;BOPOMOFO LETTER GW;Lo;0;L;;;;;N;;;;;
+31BD;BOPOMOFO LETTER KW;Lo;0;L;;;;;N;;;;;
+31BE;BOPOMOFO LETTER OE;Lo;0;L;;;;;N;;;;;
+31BF;BOPOMOFO LETTER AH;Lo;0;L;;;;;N;;;;;
 31C0;CJK STROKE T;So;0;ON;;;;;N;;;;;
 31C1;CJK STROKE WG;So;0;ON;;;;;N;;;;;
 31C2;CJK STROKE XG;So;0;ON;;;;;N;;;;;
@@ -11856,6 +11880,7 @@
 32FC;CIRCLED KATAKANA WI;So;0;L;<circle> 30F0;;;;N;;;;;
 32FD;CIRCLED KATAKANA WE;So;0;L;<circle> 30F1;;;;N;;;;;
 32FE;CIRCLED KATAKANA WO;So;0;L;<circle> 30F2;;;;N;;;;;
+32FF;SQUARE ERA NAME REIWA;So;0;L;<square> 4EE4 548C;;;;N;;;;;
 3300;SQUARE APAATO;So;0;L;<square> 30A2 30D1 30FC 30C8;;;;N;SQUARED APAATO;;;;
 3301;SQUARE ARUHUA;So;0;L;<square> 30A2 30EB 30D5 30A1;;;;N;SQUARED ARUHUA;;;;
 3302;SQUARE ANPEA;So;0;L;<square> 30A2 30F3 30DA 30A2;;;;N;SQUARED ANPEA;;;;
@@ -12113,7 +12138,7 @@
 33FE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE;So;0;L;<compat> 0033 0031 
65E5;;;;N;;;;;
 33FF;SQUARE GAL;So;0;ON;<square> 0067 0061 006C;;;;N;;;;;
 3400;<CJK Ideograph Extension A, First>;Lo;0;L;;;;;N;;;;;
-4DB5;<CJK Ideograph Extension A, Last>;Lo;0;L;;;;;N;;;;;
+4DBF;<CJK Ideograph Extension A, Last>;Lo;0;L;;;;;N;;;;;
 4DC0;HEXAGRAM FOR THE CREATIVE HEAVEN;So;0;ON;;;;;N;;;;;
 4DC1;HEXAGRAM FOR THE RECEPTIVE EARTH;So;0;ON;;;;;N;;;;;
 4DC2;HEXAGRAM FOR DIFFICULTY AT THE BEGINNING;So;0;ON;;;;;N;;;;;
@@ -12179,7 +12204,7 @@
 4DFE;HEXAGRAM FOR AFTER COMPLETION;So;0;ON;;;;;N;;;;;
 4DFF;HEXAGRAM FOR BEFORE COMPLETION;So;0;ON;;;;;N;;;;;
 4E00;<CJK Ideograph, First>;Lo;0;L;;;;;N;;;;;
-9FEF;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;
+9FFC;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;
 A000;YI SYLLABLE IT;Lo;0;L;;;;;N;;;;;
 A001;YI SYLLABLE IX;Lo;0;L;;;;;N;;;;;
 A002;YI SYLLABLE I;Lo;0;L;;;;;N;;;;;
@@ -14129,6 +14154,12 @@ A7C3;LATIN SMALL LETTER ANGLICANA 
W;Ll;0;L;;;;;N;;;A7C2;;A7C2
 A7C4;LATIN CAPITAL LETTER C WITH PALATAL HOOK;Lu;0;L;;;;;N;;;;A794;
 A7C5;LATIN CAPITAL LETTER S WITH HOOK;Lu;0;L;;;;;N;;;;0282;
 A7C6;LATIN CAPITAL LETTER Z WITH PALATAL HOOK;Lu;0;L;;;;;N;;;;1D8E;
+A7C7;LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY;Lu;0;L;;;;;N;;;;A7C8;
+A7C8;LATIN SMALL LETTER D WITH SHORT STROKE OVERLAY;Ll;0;L;;;;;N;;;A7C7;;A7C7
+A7C9;LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY;Lu;0;L;;;;;N;;;;A7CA;
+A7CA;LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY;Ll;0;L;;;;;N;;;A7C9;;A7C9
+A7F5;LATIN CAPITAL LETTER REVERSED HALF H;Lu;0;L;;;;;N;;;;A7F6;
+A7F6;LATIN SMALL LETTER REVERSED HALF H;Ll;0;L;;;;;N;;;A7F5;;A7F5
 A7F7;LATIN EPIGRAPHIC LETTER SIDEWAYS I;Lo;0;L;;;;;N;;;;;
 A7F8;MODIFIER LETTER CAPITAL H WITH STROKE;Lm;0;L;<super> 0126;;;;N;;;;;
 A7F9;MODIFIER LETTER SMALL LIGATURE OE;Lm;0;L;<super> 0153;;;;N;;;;;
@@ -14182,6 +14213,7 @@ A828;SYLOTI NAGRI POETRY MARK-1;So;0;ON;;;;;N;;;;;
 A829;SYLOTI NAGRI POETRY MARK-2;So;0;ON;;;;;N;;;;;
 A82A;SYLOTI NAGRI POETRY MARK-3;So;0;ON;;;;;N;;;;;
 A82B;SYLOTI NAGRI POETRY MARK-4;So;0;ON;;;;;N;;;;;
+A82C;SYLOTI NAGRI SIGN ALTERNATE HASANTA;Mn;9;NSM;;;;;N;;;;;
 A830;NORTH INDIC FRACTION ONE QUARTER;No;0;L;;;;1/4;N;;;;;
 A831;NORTH INDIC FRACTION ONE HALF;No;0;L;;;;1/2;N;;;;;
 A832;NORTH INDIC FRACTION THREE QUARTERS;No;0;L;;;;3/4;N;;;;;
@@ -14896,6 +14928,10 @@ AB64;LATIN SMALL LETTER INVERTED 
ALPHA;Ll;0;L;;;;;N;;;;;
 AB65;GREEK LETTER SMALL CAPITAL OMEGA;Ll;0;L;;;;;N;;;;;
 AB66;LATIN SMALL LETTER DZ DIGRAPH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
 AB67;LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+AB68;LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+AB69;MODIFIER LETTER SMALL TURNED W;Lm;0;L;<super> 028D;;;;N;;;;;
+AB6A;MODIFIER LETTER LEFT TACK;Sk;0;ON;;;;;N;;;;;
+AB6B;MODIFIER LETTER RIGHT TACK;Sk;0;ON;;;;;N;;;;;
 AB70;CHEROKEE SMALL LETTER A;Ll;0;L;;;;;N;;;13A0;;13A0
 AB71;CHEROKEE SMALL LETTER E;Ll;0;L;;;;;N;;;13A1;;13A1
 AB72;CHEROKEE SMALL LETTER I;Ll;0;L;;;;;N;;;13A2;;13A2
@@ -17085,6 +17121,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 10199;ROMAN DUPONDIUS SIGN;So;0;ON;;;;;N;;;;;
 1019A;ROMAN AS SIGN;So;0;ON;;;;;N;;;;;
 1019B;ROMAN CENTURIAL SIGN;So;0;ON;;;;;N;;;;;
+1019C;ASCIA SYMBOL;So;0;ON;;;;;N;;;;;
 101A0;GREEK SYMBOL TAU RHO;So;0;ON;;;;;N;;;;;
 101D0;PHAISTOS DISC SIGN PEDESTRIAN;So;0;L;;;;;N;;;;;
 101D1;PHAISTOS DISC SIGN PLUMED HEAD;So;0;L;;;;;N;;;;;
@@ -19056,6 +19093,53 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 10E7C;RUMI FRACTION ONE QUARTER;No;0;AN;;;;1/4;N;;;;;
 10E7D;RUMI FRACTION ONE THIRD;No;0;AN;;;;1/3;N;;;;;
 10E7E;RUMI FRACTION TWO THIRDS;No;0;AN;;;;2/3;N;;;;;
+10E80;YEZIDI LETTER ELIF;Lo;0;R;;;;;N;;;;;
+10E81;YEZIDI LETTER BE;Lo;0;R;;;;;N;;;;;
+10E82;YEZIDI LETTER PE;Lo;0;R;;;;;N;;;;;
+10E83;YEZIDI LETTER PHE;Lo;0;R;;;;;N;;;;;
+10E84;YEZIDI LETTER THE;Lo;0;R;;;;;N;;;;;
+10E85;YEZIDI LETTER SE;Lo;0;R;;;;;N;;;;;
+10E86;YEZIDI LETTER CIM;Lo;0;R;;;;;N;;;;;
+10E87;YEZIDI LETTER CHIM;Lo;0;R;;;;;N;;;;;
+10E88;YEZIDI LETTER CHHIM;Lo;0;R;;;;;N;;;;;
+10E89;YEZIDI LETTER HHA;Lo;0;R;;;;;N;;;;;
+10E8A;YEZIDI LETTER XA;Lo;0;R;;;;;N;;;;;
+10E8B;YEZIDI LETTER DAL;Lo;0;R;;;;;N;;;;;
+10E8C;YEZIDI LETTER ZAL;Lo;0;R;;;;;N;;;;;
+10E8D;YEZIDI LETTER RA;Lo;0;R;;;;;N;;;;;
+10E8E;YEZIDI LETTER RHA;Lo;0;R;;;;;N;;;;;
+10E8F;YEZIDI LETTER ZA;Lo;0;R;;;;;N;;;;;
+10E90;YEZIDI LETTER JA;Lo;0;R;;;;;N;;;;;
+10E91;YEZIDI LETTER SIN;Lo;0;R;;;;;N;;;;;
+10E92;YEZIDI LETTER SHIN;Lo;0;R;;;;;N;;;;;
+10E93;YEZIDI LETTER SAD;Lo;0;R;;;;;N;;;;;
+10E94;YEZIDI LETTER DAD;Lo;0;R;;;;;N;;;;;
+10E95;YEZIDI LETTER TA;Lo;0;R;;;;;N;;;;;
+10E96;YEZIDI LETTER ZE;Lo;0;R;;;;;N;;;;;
+10E97;YEZIDI LETTER EYN;Lo;0;R;;;;;N;;;;;
+10E98;YEZIDI LETTER XHEYN;Lo;0;R;;;;;N;;;;;
+10E99;YEZIDI LETTER FA;Lo;0;R;;;;;N;;;;;
+10E9A;YEZIDI LETTER VA;Lo;0;R;;;;;N;;;;;
+10E9B;YEZIDI LETTER VA ALTERNATE FORM;Lo;0;R;;;;;N;;;;;
+10E9C;YEZIDI LETTER QAF;Lo;0;R;;;;;N;;;;;
+10E9D;YEZIDI LETTER KAF;Lo;0;R;;;;;N;;;;;
+10E9E;YEZIDI LETTER KHAF;Lo;0;R;;;;;N;;;;;
+10E9F;YEZIDI LETTER GAF;Lo;0;R;;;;;N;;;;;
+10EA0;YEZIDI LETTER LAM;Lo;0;R;;;;;N;;;;;
+10EA1;YEZIDI LETTER MIM;Lo;0;R;;;;;N;;;;;
+10EA2;YEZIDI LETTER NUN;Lo;0;R;;;;;N;;;;;
+10EA3;YEZIDI LETTER UM;Lo;0;R;;;;;N;;;;;
+10EA4;YEZIDI LETTER WAW;Lo;0;R;;;;;N;;;;;
+10EA5;YEZIDI LETTER OW;Lo;0;R;;;;;N;;;;;
+10EA6;YEZIDI LETTER EW;Lo;0;R;;;;;N;;;;;
+10EA7;YEZIDI LETTER HAY;Lo;0;R;;;;;N;;;;;
+10EA8;YEZIDI LETTER YOT;Lo;0;R;;;;;N;;;;;
+10EA9;YEZIDI LETTER ET;Lo;0;R;;;;;N;;;;;
+10EAB;YEZIDI COMBINING HAMZA MARK;Mn;230;NSM;;;;;N;;;;;
+10EAC;YEZIDI COMBINING MADDA MARK;Mn;230;NSM;;;;;N;;;;;
+10EAD;YEZIDI HYPHENATION MARK;Pd;0;R;;;;;N;;;;;
+10EB0;YEZIDI LETTER LAM WITH DOT ABOVE;Lo;0;R;;;;;N;;;;;
+10EB1;YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE;Lo;0;R;;;;;N;;;;;
 10F00;OLD SOGDIAN LETTER ALEPH;Lo;0;R;;;;;N;;;;;
 10F01;OLD SOGDIAN LETTER FINAL ALEPH;Lo;0;R;;;;;N;;;;;
 10F02;OLD SOGDIAN LETTER BETH;Lo;0;R;;;;;N;;;;;
@@ -19138,6 +19222,34 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 10F57;SOGDIAN PUNCTUATION CIRCLE WITH DOT;Po;0;AL;;;;;N;;;;;
 10F58;SOGDIAN PUNCTUATION TWO CIRCLES WITH DOTS;Po;0;AL;;;;;N;;;;;
 10F59;SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT;Po;0;AL;;;;;N;;;;;
+10FB0;CHORASMIAN LETTER ALEPH;Lo;0;R;;;;;N;;;;;
+10FB1;CHORASMIAN LETTER SMALL ALEPH;Lo;0;R;;;;;N;;;;;
+10FB2;CHORASMIAN LETTER BETH;Lo;0;R;;;;;N;;;;;
+10FB3;CHORASMIAN LETTER GIMEL;Lo;0;R;;;;;N;;;;;
+10FB4;CHORASMIAN LETTER DALETH;Lo;0;R;;;;;N;;;;;
+10FB5;CHORASMIAN LETTER HE;Lo;0;R;;;;;N;;;;;
+10FB6;CHORASMIAN LETTER WAW;Lo;0;R;;;;;N;;;;;
+10FB7;CHORASMIAN LETTER CURLED WAW;Lo;0;R;;;;;N;;;;;
+10FB8;CHORASMIAN LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
+10FB9;CHORASMIAN LETTER HETH;Lo;0;R;;;;;N;;;;;
+10FBA;CHORASMIAN LETTER YODH;Lo;0;R;;;;;N;;;;;
+10FBB;CHORASMIAN LETTER KAPH;Lo;0;R;;;;;N;;;;;
+10FBC;CHORASMIAN LETTER LAMEDH;Lo;0;R;;;;;N;;;;;
+10FBD;CHORASMIAN LETTER MEM;Lo;0;R;;;;;N;;;;;
+10FBE;CHORASMIAN LETTER NUN;Lo;0;R;;;;;N;;;;;
+10FBF;CHORASMIAN LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
+10FC0;CHORASMIAN LETTER AYIN;Lo;0;R;;;;;N;;;;;
+10FC1;CHORASMIAN LETTER PE;Lo;0;R;;;;;N;;;;;
+10FC2;CHORASMIAN LETTER RESH;Lo;0;R;;;;;N;;;;;
+10FC3;CHORASMIAN LETTER SHIN;Lo;0;R;;;;;N;;;;;
+10FC4;CHORASMIAN LETTER TAW;Lo;0;R;;;;;N;;;;;
+10FC5;CHORASMIAN NUMBER ONE;No;0;R;;;;1;N;;;;;
+10FC6;CHORASMIAN NUMBER TWO;No;0;R;;;;2;N;;;;;
+10FC7;CHORASMIAN NUMBER THREE;No;0;R;;;;3;N;;;;;
+10FC8;CHORASMIAN NUMBER FOUR;No;0;R;;;;4;N;;;;;
+10FC9;CHORASMIAN NUMBER TEN;No;0;R;;;;10;N;;;;;
+10FCA;CHORASMIAN NUMBER TWENTY;No;0;R;;;;20;N;;;;;
+10FCB;CHORASMIAN NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
 10FE0;ELYMAIC LETTER ALEPH;Lo;0;R;;;;;N;;;;;
 10FE1;ELYMAIC LETTER BETH;Lo;0;R;;;;;N;;;;;
 10FE2;ELYMAIC LETTER GIMEL;Lo;0;R;;;;;N;;;;;
@@ -19442,6 +19554,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 11144;CHAKMA LETTER LHAA;Lo;0;L;;;;;N;;;;;
 11145;CHAKMA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
 11146;CHAKMA VOWEL SIGN EI;Mc;0;L;;;;;N;;;;;
+11147;CHAKMA LETTER VAA;Lo;0;L;;;;;N;;;;;
 11150;MAHAJANI LETTER A;Lo;0;L;;;;;N;;;;;
 11151;MAHAJANI LETTER I;Lo;0;L;;;;;N;;;;;
 11152;MAHAJANI LETTER U;Lo;0;L;;;;;N;;;;;
@@ -19559,6 +19672,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 111CB;SHARADA VOWEL MODIFIER MARK;Mn;0;NSM;;;;;N;;;;;
 111CC;SHARADA EXTRA SHORT VOWEL MARK;Mn;0;NSM;;;;;N;;;;;
 111CD;SHARADA SUTRA MARK;Po;0;L;;;;;N;;;;;
+111CE;SHARADA VOWEL SIGN PRISHTHAMATRA E;Mc;0;L;;;;;N;;;;;
+111CF;SHARADA SIGN INVERTED CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
 111D0;SHARADA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
 111D1;SHARADA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
 111D2;SHARADA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
@@ -19940,10 +20055,13 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 11457;NEWA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
 11458;NEWA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
 11459;NEWA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1145A;NEWA DOUBLE COMMA;Po;0;L;;;;;N;;;;;
 1145B;NEWA PLACEHOLDER MARK;Po;0;L;;;;;N;;;;;
 1145D;NEWA INSERTION SIGN;Po;0;L;;;;;N;;;;;
 1145E;NEWA SANDHI MARK;Mn;230;NSM;;;;;N;;;;;
 1145F;NEWA LETTER VEDIC ANUSVARA;Lo;0;L;;;;;N;;;;;
+11460;NEWA SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;;
+11461;NEWA SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;;
 11480;TIRHUTA ANJI;Lo;0;L;;;;;N;;;;;
 11481;TIRHUTA LETTER A;Lo;0;L;;;;;N;;;;;
 11482;TIRHUTA LETTER AA;Lo;0;L;;;;;N;;;;;
@@ -20479,6 +20597,78 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 118F1;WARANG CITI NUMBER EIGHTY;No;0;L;;;;80;N;;;;;
 118F2;WARANG CITI NUMBER NINETY;No;0;L;;;;90;N;;;;;
 118FF;WARANG CITI OM;Lo;0;L;;;;;N;;;;;
+11900;DIVES AKURU LETTER A;Lo;0;L;;;;;N;;;;;
+11901;DIVES AKURU LETTER AA;Lo;0;L;;;;;N;;;;;
+11902;DIVES AKURU LETTER I;Lo;0;L;;;;;N;;;;;
+11903;DIVES AKURU LETTER II;Lo;0;L;;;;;N;;;;;
+11904;DIVES AKURU LETTER U;Lo;0;L;;;;;N;;;;;
+11905;DIVES AKURU LETTER UU;Lo;0;L;;;;;N;;;;;
+11906;DIVES AKURU LETTER E;Lo;0;L;;;;;N;;;;;
+11909;DIVES AKURU LETTER O;Lo;0;L;;;;;N;;;;;
+1190C;DIVES AKURU LETTER KA;Lo;0;L;;;;;N;;;;;
+1190D;DIVES AKURU LETTER KHA;Lo;0;L;;;;;N;;;;;
+1190E;DIVES AKURU LETTER GA;Lo;0;L;;;;;N;;;;;
+1190F;DIVES AKURU LETTER GHA;Lo;0;L;;;;;N;;;;;
+11910;DIVES AKURU LETTER NGA;Lo;0;L;;;;;N;;;;;
+11911;DIVES AKURU LETTER CA;Lo;0;L;;;;;N;;;;;
+11912;DIVES AKURU LETTER CHA;Lo;0;L;;;;;N;;;;;
+11913;DIVES AKURU LETTER JA;Lo;0;L;;;;;N;;;;;
+11915;DIVES AKURU LETTER NYA;Lo;0;L;;;;;N;;;;;
+11916;DIVES AKURU LETTER TTA;Lo;0;L;;;;;N;;;;;
+11918;DIVES AKURU LETTER DDA;Lo;0;L;;;;;N;;;;;
+11919;DIVES AKURU LETTER DDHA;Lo;0;L;;;;;N;;;;;
+1191A;DIVES AKURU LETTER NNA;Lo;0;L;;;;;N;;;;;
+1191B;DIVES AKURU LETTER TA;Lo;0;L;;;;;N;;;;;
+1191C;DIVES AKURU LETTER THA;Lo;0;L;;;;;N;;;;;
+1191D;DIVES AKURU LETTER DA;Lo;0;L;;;;;N;;;;;
+1191E;DIVES AKURU LETTER DHA;Lo;0;L;;;;;N;;;;;
+1191F;DIVES AKURU LETTER NA;Lo;0;L;;;;;N;;;;;
+11920;DIVES AKURU LETTER PA;Lo;0;L;;;;;N;;;;;
+11921;DIVES AKURU LETTER PHA;Lo;0;L;;;;;N;;;;;
+11922;DIVES AKURU LETTER BA;Lo;0;L;;;;;N;;;;;
+11923;DIVES AKURU LETTER BHA;Lo;0;L;;;;;N;;;;;
+11924;DIVES AKURU LETTER MA;Lo;0;L;;;;;N;;;;;
+11925;DIVES AKURU LETTER YA;Lo;0;L;;;;;N;;;;;
+11926;DIVES AKURU LETTER YYA;Lo;0;L;;;;;N;;;;;
+11927;DIVES AKURU LETTER RA;Lo;0;L;;;;;N;;;;;
+11928;DIVES AKURU LETTER LA;Lo;0;L;;;;;N;;;;;
+11929;DIVES AKURU LETTER VA;Lo;0;L;;;;;N;;;;;
+1192A;DIVES AKURU LETTER SHA;Lo;0;L;;;;;N;;;;;
+1192B;DIVES AKURU LETTER SSA;Lo;0;L;;;;;N;;;;;
+1192C;DIVES AKURU LETTER SA;Lo;0;L;;;;;N;;;;;
+1192D;DIVES AKURU LETTER HA;Lo;0;L;;;;;N;;;;;
+1192E;DIVES AKURU LETTER LLA;Lo;0;L;;;;;N;;;;;
+1192F;DIVES AKURU LETTER ZA;Lo;0;L;;;;;N;;;;;
+11930;DIVES AKURU VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+11931;DIVES AKURU VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+11932;DIVES AKURU VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+11933;DIVES AKURU VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+11934;DIVES AKURU VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+11935;DIVES AKURU VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+11937;DIVES AKURU VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+11938;DIVES AKURU VOWEL SIGN O;Mc;0;L;11935 11930;;;;N;;;;;
+1193B;DIVES AKURU SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+1193C;DIVES AKURU SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+1193D;DIVES AKURU SIGN HALANTA;Mc;9;L;;;;;N;;;;;
+1193E;DIVES AKURU VIRAMA;Mn;9;NSM;;;;;N;;;;;
+1193F;DIVES AKURU PREFIXED NASAL SIGN;Lo;0;L;;;;;N;;;;;
+11940;DIVES AKURU MEDIAL YA;Mc;0;L;;;;;N;;;;;
+11941;DIVES AKURU INITIAL RA;Lo;0;L;;;;;N;;;;;
+11942;DIVES AKURU MEDIAL RA;Mc;0;L;;;;;N;;;;;
+11943;DIVES AKURU SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+11944;DIVES AKURU DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+11945;DIVES AKURU GAP FILLER;Po;0;L;;;;;N;;;;;
+11946;DIVES AKURU END OF TEXT MARK;Po;0;L;;;;;N;;;;;
+11950;DIVES AKURU DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+11951;DIVES AKURU DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+11952;DIVES AKURU DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+11953;DIVES AKURU DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+11954;DIVES AKURU DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+11955;DIVES AKURU DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+11956;DIVES AKURU DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+11957;DIVES AKURU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+11958;DIVES AKURU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+11959;DIVES AKURU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
 119A0;NANDINAGARI LETTER A;Lo;0;L;;;;;N;;;;;
 119A1;NANDINAGARI LETTER AA;Lo;0;L;;;;;N;;;;;
 119A2;NANDINAGARI LETTER I;Lo;0;L;;;;;N;;;;;
@@ -21084,6 +21274,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 11EF6;MAKASAR VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
 11EF7;MAKASAR PASSIMBANG;Po;0;L;;;;;N;;;;;
 11EF8;MAKASAR END OF SECTION;Po;0;L;;;;;N;;;;;
+11FB0;LISU LETTER YHA;Lo;0;L;;;;;N;;;;;
 11FC0;TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH;No;0;L;;;;1/320;N;;;;;
 11FC1;TAMIL FRACTION ONE ONE-HUNDRED-AND-SIXTIETH;No;0;L;;;;1/160;N;;;;;
 11FC2;TAMIL FRACTION ONE EIGHTIETH;No;0;L;;;;1/80;N;;;;;
@@ -25051,6 +25242,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 16FE1;NUSHU ITERATION MARK;Lm;0;L;;;;;N;;;;;
 16FE2;OLD CHINESE HOOK MARK;Po;0;ON;;;;;N;;;;;
 16FE3;OLD CHINESE ITERATION MARK;Lm;0;L;;;;;N;;;;;
+16FE4;KHITAN SMALL SCRIPT FILLER;Mn;0;NSM;;;;;N;;;;;
+16FF0;VIETNAMESE ALTERNATE READING MARK CA;Mc;6;L;;;;;N;;;;;
+16FF1;VIETNAMESE ALTERNATE READING MARK NHAY;Mc;6;L;;;;;N;;;;;
 17000;<Tangut Ideograph, First>;Lo;0;L;;;;;N;;;;;
 187F7;<Tangut Ideograph, Last>;Lo;0;L;;;;;N;;;;;
 18800;TANGUT COMPONENT-001;Lo;0;L;;;;;N;;;;;
@@ -25808,6 +26002,491 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 18AF0;TANGUT COMPONENT-753;Lo;0;L;;;;;N;;;;;
 18AF1;TANGUT COMPONENT-754;Lo;0;L;;;;;N;;;;;
 18AF2;TANGUT COMPONENT-755;Lo;0;L;;;;;N;;;;;
+18AF3;TANGUT COMPONENT-756;Lo;0;L;;;;;N;;;;;
+18AF4;TANGUT COMPONENT-757;Lo;0;L;;;;;N;;;;;
+18AF5;TANGUT COMPONENT-758;Lo;0;L;;;;;N;;;;;
+18AF6;TANGUT COMPONENT-759;Lo;0;L;;;;;N;;;;;
+18AF7;TANGUT COMPONENT-760;Lo;0;L;;;;;N;;;;;
+18AF8;TANGUT COMPONENT-761;Lo;0;L;;;;;N;;;;;
+18AF9;TANGUT COMPONENT-762;Lo;0;L;;;;;N;;;;;
+18AFA;TANGUT COMPONENT-763;Lo;0;L;;;;;N;;;;;
+18AFB;TANGUT COMPONENT-764;Lo;0;L;;;;;N;;;;;
+18AFC;TANGUT COMPONENT-765;Lo;0;L;;;;;N;;;;;
+18AFD;TANGUT COMPONENT-766;Lo;0;L;;;;;N;;;;;
+18AFE;TANGUT COMPONENT-767;Lo;0;L;;;;;N;;;;;
+18AFF;TANGUT COMPONENT-768;Lo;0;L;;;;;N;;;;;
+18B00;KHITAN SMALL SCRIPT CHARACTER-18B00;Lo;0;L;;;;;N;;;;;
+18B01;KHITAN SMALL SCRIPT CHARACTER-18B01;Lo;0;L;;;;;N;;;;;
+18B02;KHITAN SMALL SCRIPT CHARACTER-18B02;Lo;0;L;;;;;N;;;;;
+18B03;KHITAN SMALL SCRIPT CHARACTER-18B03;Lo;0;L;;;;;N;;;;;
+18B04;KHITAN SMALL SCRIPT CHARACTER-18B04;Lo;0;L;;;;;N;;;;;
+18B05;KHITAN SMALL SCRIPT CHARACTER-18B05;Lo;0;L;;;;;N;;;;;
+18B06;KHITAN SMALL SCRIPT CHARACTER-18B06;Lo;0;L;;;;;N;;;;;
+18B07;KHITAN SMALL SCRIPT CHARACTER-18B07;Lo;0;L;;;;;N;;;;;
+18B08;KHITAN SMALL SCRIPT CHARACTER-18B08;Lo;0;L;;;;;N;;;;;
+18B09;KHITAN SMALL SCRIPT CHARACTER-18B09;Lo;0;L;;;;;N;;;;;
+18B0A;KHITAN SMALL SCRIPT CHARACTER-18B0A;Lo;0;L;;;;;N;;;;;
+18B0B;KHITAN SMALL SCRIPT CHARACTER-18B0B;Lo;0;L;;;;;N;;;;;
+18B0C;KHITAN SMALL SCRIPT CHARACTER-18B0C;Lo;0;L;;;;;N;;;;;
+18B0D;KHITAN SMALL SCRIPT CHARACTER-18B0D;Lo;0;L;;;;;N;;;;;
+18B0E;KHITAN SMALL SCRIPT CHARACTER-18B0E;Lo;0;L;;;;;N;;;;;
+18B0F;KHITAN SMALL SCRIPT CHARACTER-18B0F;Lo;0;L;;;;;N;;;;;
+18B10;KHITAN SMALL SCRIPT CHARACTER-18B10;Lo;0;L;;;;;N;;;;;
+18B11;KHITAN SMALL SCRIPT CHARACTER-18B11;Lo;0;L;;;;;N;;;;;
+18B12;KHITAN SMALL SCRIPT CHARACTER-18B12;Lo;0;L;;;;;N;;;;;
+18B13;KHITAN SMALL SCRIPT CHARACTER-18B13;Lo;0;L;;;;;N;;;;;
+18B14;KHITAN SMALL SCRIPT CHARACTER-18B14;Lo;0;L;;;;;N;;;;;
+18B15;KHITAN SMALL SCRIPT CHARACTER-18B15;Lo;0;L;;;;;N;;;;;
+18B16;KHITAN SMALL SCRIPT CHARACTER-18B16;Lo;0;L;;;;;N;;;;;
+18B17;KHITAN SMALL SCRIPT CHARACTER-18B17;Lo;0;L;;;;;N;;;;;
+18B18;KHITAN SMALL SCRIPT CHARACTER-18B18;Lo;0;L;;;;;N;;;;;
+18B19;KHITAN SMALL SCRIPT CHARACTER-18B19;Lo;0;L;;;;;N;;;;;
+18B1A;KHITAN SMALL SCRIPT CHARACTER-18B1A;Lo;0;L;;;;;N;;;;;
+18B1B;KHITAN SMALL SCRIPT CHARACTER-18B1B;Lo;0;L;;;;;N;;;;;
+18B1C;KHITAN SMALL SCRIPT CHARACTER-18B1C;Lo;0;L;;;;;N;;;;;
+18B1D;KHITAN SMALL SCRIPT CHARACTER-18B1D;Lo;0;L;;;;;N;;;;;
+18B1E;KHITAN SMALL SCRIPT CHARACTER-18B1E;Lo;0;L;;;;;N;;;;;
+18B1F;KHITAN SMALL SCRIPT CHARACTER-18B1F;Lo;0;L;;;;;N;;;;;
+18B20;KHITAN SMALL SCRIPT CHARACTER-18B20;Lo;0;L;;;;;N;;;;;
+18B21;KHITAN SMALL SCRIPT CHARACTER-18B21;Lo;0;L;;;;;N;;;;;
+18B22;KHITAN SMALL SCRIPT CHARACTER-18B22;Lo;0;L;;;;;N;;;;;
+18B23;KHITAN SMALL SCRIPT CHARACTER-18B23;Lo;0;L;;;;;N;;;;;
+18B24;KHITAN SMALL SCRIPT CHARACTER-18B24;Lo;0;L;;;;;N;;;;;
+18B25;KHITAN SMALL SCRIPT CHARACTER-18B25;Lo;0;L;;;;;N;;;;;
+18B26;KHITAN SMALL SCRIPT CHARACTER-18B26;Lo;0;L;;;;;N;;;;;
+18B27;KHITAN SMALL SCRIPT CHARACTER-18B27;Lo;0;L;;;;;N;;;;;
+18B28;KHITAN SMALL SCRIPT CHARACTER-18B28;Lo;0;L;;;;;N;;;;;
+18B29;KHITAN SMALL SCRIPT CHARACTER-18B29;Lo;0;L;;;;;N;;;;;
+18B2A;KHITAN SMALL SCRIPT CHARACTER-18B2A;Lo;0;L;;;;;N;;;;;
+18B2B;KHITAN SMALL SCRIPT CHARACTER-18B2B;Lo;0;L;;;;;N;;;;;
+18B2C;KHITAN SMALL SCRIPT CHARACTER-18B2C;Lo;0;L;;;;;N;;;;;
+18B2D;KHITAN SMALL SCRIPT CHARACTER-18B2D;Lo;0;L;;;;;N;;;;;
+18B2E;KHITAN SMALL SCRIPT CHARACTER-18B2E;Lo;0;L;;;;;N;;;;;
+18B2F;KHITAN SMALL SCRIPT CHARACTER-18B2F;Lo;0;L;;;;;N;;;;;
+18B30;KHITAN SMALL SCRIPT CHARACTER-18B30;Lo;0;L;;;;;N;;;;;
+18B31;KHITAN SMALL SCRIPT CHARACTER-18B31;Lo;0;L;;;;;N;;;;;
+18B32;KHITAN SMALL SCRIPT CHARACTER-18B32;Lo;0;L;;;;;N;;;;;
+18B33;KHITAN SMALL SCRIPT CHARACTER-18B33;Lo;0;L;;;;;N;;;;;
+18B34;KHITAN SMALL SCRIPT CHARACTER-18B34;Lo;0;L;;;;;N;;;;;
+18B35;KHITAN SMALL SCRIPT CHARACTER-18B35;Lo;0;L;;;;;N;;;;;
+18B36;KHITAN SMALL SCRIPT CHARACTER-18B36;Lo;0;L;;;;;N;;;;;
+18B37;KHITAN SMALL SCRIPT CHARACTER-18B37;Lo;0;L;;;;;N;;;;;
+18B38;KHITAN SMALL SCRIPT CHARACTER-18B38;Lo;0;L;;;;;N;;;;;
+18B39;KHITAN SMALL SCRIPT CHARACTER-18B39;Lo;0;L;;;;;N;;;;;
+18B3A;KHITAN SMALL SCRIPT CHARACTER-18B3A;Lo;0;L;;;;;N;;;;;
+18B3B;KHITAN SMALL SCRIPT CHARACTER-18B3B;Lo;0;L;;;;;N;;;;;
+18B3C;KHITAN SMALL SCRIPT CHARACTER-18B3C;Lo;0;L;;;;;N;;;;;
+18B3D;KHITAN SMALL SCRIPT CHARACTER-18B3D;Lo;0;L;;;;;N;;;;;
+18B3E;KHITAN SMALL SCRIPT CHARACTER-18B3E;Lo;0;L;;;;;N;;;;;
+18B3F;KHITAN SMALL SCRIPT CHARACTER-18B3F;Lo;0;L;;;;;N;;;;;
+18B40;KHITAN SMALL SCRIPT CHARACTER-18B40;Lo;0;L;;;;;N;;;;;
+18B41;KHITAN SMALL SCRIPT CHARACTER-18B41;Lo;0;L;;;;;N;;;;;
+18B42;KHITAN SMALL SCRIPT CHARACTER-18B42;Lo;0;L;;;;;N;;;;;
+18B43;KHITAN SMALL SCRIPT CHARACTER-18B43;Lo;0;L;;;;;N;;;;;
+18B44;KHITAN SMALL SCRIPT CHARACTER-18B44;Lo;0;L;;;;;N;;;;;
+18B45;KHITAN SMALL SCRIPT CHARACTER-18B45;Lo;0;L;;;;;N;;;;;
+18B46;KHITAN SMALL SCRIPT CHARACTER-18B46;Lo;0;L;;;;;N;;;;;
+18B47;KHITAN SMALL SCRIPT CHARACTER-18B47;Lo;0;L;;;;;N;;;;;
+18B48;KHITAN SMALL SCRIPT CHARACTER-18B48;Lo;0;L;;;;;N;;;;;
+18B49;KHITAN SMALL SCRIPT CHARACTER-18B49;Lo;0;L;;;;;N;;;;;
+18B4A;KHITAN SMALL SCRIPT CHARACTER-18B4A;Lo;0;L;;;;;N;;;;;
+18B4B;KHITAN SMALL SCRIPT CHARACTER-18B4B;Lo;0;L;;;;;N;;;;;
+18B4C;KHITAN SMALL SCRIPT CHARACTER-18B4C;Lo;0;L;;;;;N;;;;;
+18B4D;KHITAN SMALL SCRIPT CHARACTER-18B4D;Lo;0;L;;;;;N;;;;;
+18B4E;KHITAN SMALL SCRIPT CHARACTER-18B4E;Lo;0;L;;;;;N;;;;;
+18B4F;KHITAN SMALL SCRIPT CHARACTER-18B4F;Lo;0;L;;;;;N;;;;;
+18B50;KHITAN SMALL SCRIPT CHARACTER-18B50;Lo;0;L;;;;;N;;;;;
+18B51;KHITAN SMALL SCRIPT CHARACTER-18B51;Lo;0;L;;;;;N;;;;;
+18B52;KHITAN SMALL SCRIPT CHARACTER-18B52;Lo;0;L;;;;;N;;;;;
+18B53;KHITAN SMALL SCRIPT CHARACTER-18B53;Lo;0;L;;;;;N;;;;;
+18B54;KHITAN SMALL SCRIPT CHARACTER-18B54;Lo;0;L;;;;;N;;;;;
+18B55;KHITAN SMALL SCRIPT CHARACTER-18B55;Lo;0;L;;;;;N;;;;;
+18B56;KHITAN SMALL SCRIPT CHARACTER-18B56;Lo;0;L;;;;;N;;;;;
+18B57;KHITAN SMALL SCRIPT CHARACTER-18B57;Lo;0;L;;;;;N;;;;;
+18B58;KHITAN SMALL SCRIPT CHARACTER-18B58;Lo;0;L;;;;;N;;;;;
+18B59;KHITAN SMALL SCRIPT CHARACTER-18B59;Lo;0;L;;;;;N;;;;;
+18B5A;KHITAN SMALL SCRIPT CHARACTER-18B5A;Lo;0;L;;;;;N;;;;;
+18B5B;KHITAN SMALL SCRIPT CHARACTER-18B5B;Lo;0;L;;;;;N;;;;;
+18B5C;KHITAN SMALL SCRIPT CHARACTER-18B5C;Lo;0;L;;;;;N;;;;;
+18B5D;KHITAN SMALL SCRIPT CHARACTER-18B5D;Lo;0;L;;;;;N;;;;;
+18B5E;KHITAN SMALL SCRIPT CHARACTER-18B5E;Lo;0;L;;;;;N;;;;;
+18B5F;KHITAN SMALL SCRIPT CHARACTER-18B5F;Lo;0;L;;;;;N;;;;;
+18B60;KHITAN SMALL SCRIPT CHARACTER-18B60;Lo;0;L;;;;;N;;;;;
+18B61;KHITAN SMALL SCRIPT CHARACTER-18B61;Lo;0;L;;;;;N;;;;;
+18B62;KHITAN SMALL SCRIPT CHARACTER-18B62;Lo;0;L;;;;;N;;;;;
+18B63;KHITAN SMALL SCRIPT CHARACTER-18B63;Lo;0;L;;;;;N;;;;;
+18B64;KHITAN SMALL SCRIPT CHARACTER-18B64;Lo;0;L;;;;;N;;;;;
+18B65;KHITAN SMALL SCRIPT CHARACTER-18B65;Lo;0;L;;;;;N;;;;;
+18B66;KHITAN SMALL SCRIPT CHARACTER-18B66;Lo;0;L;;;;;N;;;;;
+18B67;KHITAN SMALL SCRIPT CHARACTER-18B67;Lo;0;L;;;;;N;;;;;
+18B68;KHITAN SMALL SCRIPT CHARACTER-18B68;Lo;0;L;;;;;N;;;;;
+18B69;KHITAN SMALL SCRIPT CHARACTER-18B69;Lo;0;L;;;;;N;;;;;
+18B6A;KHITAN SMALL SCRIPT CHARACTER-18B6A;Lo;0;L;;;;;N;;;;;
+18B6B;KHITAN SMALL SCRIPT CHARACTER-18B6B;Lo;0;L;;;;;N;;;;;
+18B6C;KHITAN SMALL SCRIPT CHARACTER-18B6C;Lo;0;L;;;;;N;;;;;
+18B6D;KHITAN SMALL SCRIPT CHARACTER-18B6D;Lo;0;L;;;;;N;;;;;
+18B6E;KHITAN SMALL SCRIPT CHARACTER-18B6E;Lo;0;L;;;;;N;;;;;
+18B6F;KHITAN SMALL SCRIPT CHARACTER-18B6F;Lo;0;L;;;;;N;;;;;
+18B70;KHITAN SMALL SCRIPT CHARACTER-18B70;Lo;0;L;;;;;N;;;;;
+18B71;KHITAN SMALL SCRIPT CHARACTER-18B71;Lo;0;L;;;;;N;;;;;
+18B72;KHITAN SMALL SCRIPT CHARACTER-18B72;Lo;0;L;;;;;N;;;;;
+18B73;KHITAN SMALL SCRIPT CHARACTER-18B73;Lo;0;L;;;;;N;;;;;
+18B74;KHITAN SMALL SCRIPT CHARACTER-18B74;Lo;0;L;;;;;N;;;;;
+18B75;KHITAN SMALL SCRIPT CHARACTER-18B75;Lo;0;L;;;;;N;;;;;
+18B76;KHITAN SMALL SCRIPT CHARACTER-18B76;Lo;0;L;;;;;N;;;;;
+18B77;KHITAN SMALL SCRIPT CHARACTER-18B77;Lo;0;L;;;;;N;;;;;
+18B78;KHITAN SMALL SCRIPT CHARACTER-18B78;Lo;0;L;;;;;N;;;;;
+18B79;KHITAN SMALL SCRIPT CHARACTER-18B79;Lo;0;L;;;;;N;;;;;
+18B7A;KHITAN SMALL SCRIPT CHARACTER-18B7A;Lo;0;L;;;;;N;;;;;
+18B7B;KHITAN SMALL SCRIPT CHARACTER-18B7B;Lo;0;L;;;;;N;;;;;
+18B7C;KHITAN SMALL SCRIPT CHARACTER-18B7C;Lo;0;L;;;;;N;;;;;
+18B7D;KHITAN SMALL SCRIPT CHARACTER-18B7D;Lo;0;L;;;;;N;;;;;
+18B7E;KHITAN SMALL SCRIPT CHARACTER-18B7E;Lo;0;L;;;;;N;;;;;
+18B7F;KHITAN SMALL SCRIPT CHARACTER-18B7F;Lo;0;L;;;;;N;;;;;
+18B80;KHITAN SMALL SCRIPT CHARACTER-18B80;Lo;0;L;;;;;N;;;;;
+18B81;KHITAN SMALL SCRIPT CHARACTER-18B81;Lo;0;L;;;;;N;;;;;
+18B82;KHITAN SMALL SCRIPT CHARACTER-18B82;Lo;0;L;;;;;N;;;;;
+18B83;KHITAN SMALL SCRIPT CHARACTER-18B83;Lo;0;L;;;;;N;;;;;
+18B84;KHITAN SMALL SCRIPT CHARACTER-18B84;Lo;0;L;;;;;N;;;;;
+18B85;KHITAN SMALL SCRIPT CHARACTER-18B85;Lo;0;L;;;;;N;;;;;
+18B86;KHITAN SMALL SCRIPT CHARACTER-18B86;Lo;0;L;;;;;N;;;;;
+18B87;KHITAN SMALL SCRIPT CHARACTER-18B87;Lo;0;L;;;;;N;;;;;
+18B88;KHITAN SMALL SCRIPT CHARACTER-18B88;Lo;0;L;;;;;N;;;;;
+18B89;KHITAN SMALL SCRIPT CHARACTER-18B89;Lo;0;L;;;;;N;;;;;
+18B8A;KHITAN SMALL SCRIPT CHARACTER-18B8A;Lo;0;L;;;;;N;;;;;
+18B8B;KHITAN SMALL SCRIPT CHARACTER-18B8B;Lo;0;L;;;;;N;;;;;
+18B8C;KHITAN SMALL SCRIPT CHARACTER-18B8C;Lo;0;L;;;;;N;;;;;
+18B8D;KHITAN SMALL SCRIPT CHARACTER-18B8D;Lo;0;L;;;;;N;;;;;
+18B8E;KHITAN SMALL SCRIPT CHARACTER-18B8E;Lo;0;L;;;;;N;;;;;
+18B8F;KHITAN SMALL SCRIPT CHARACTER-18B8F;Lo;0;L;;;;;N;;;;;
+18B90;KHITAN SMALL SCRIPT CHARACTER-18B90;Lo;0;L;;;;;N;;;;;
+18B91;KHITAN SMALL SCRIPT CHARACTER-18B91;Lo;0;L;;;;;N;;;;;
+18B92;KHITAN SMALL SCRIPT CHARACTER-18B92;Lo;0;L;;;;;N;;;;;
+18B93;KHITAN SMALL SCRIPT CHARACTER-18B93;Lo;0;L;;;;;N;;;;;
+18B94;KHITAN SMALL SCRIPT CHARACTER-18B94;Lo;0;L;;;;;N;;;;;
+18B95;KHITAN SMALL SCRIPT CHARACTER-18B95;Lo;0;L;;;;;N;;;;;
+18B96;KHITAN SMALL SCRIPT CHARACTER-18B96;Lo;0;L;;;;;N;;;;;
+18B97;KHITAN SMALL SCRIPT CHARACTER-18B97;Lo;0;L;;;;;N;;;;;
+18B98;KHITAN SMALL SCRIPT CHARACTER-18B98;Lo;0;L;;;;;N;;;;;
+18B99;KHITAN SMALL SCRIPT CHARACTER-18B99;Lo;0;L;;;;;N;;;;;
+18B9A;KHITAN SMALL SCRIPT CHARACTER-18B9A;Lo;0;L;;;;;N;;;;;
+18B9B;KHITAN SMALL SCRIPT CHARACTER-18B9B;Lo;0;L;;;;;N;;;;;
+18B9C;KHITAN SMALL SCRIPT CHARACTER-18B9C;Lo;0;L;;;;;N;;;;;
+18B9D;KHITAN SMALL SCRIPT CHARACTER-18B9D;Lo;0;L;;;;;N;;;;;
+18B9E;KHITAN SMALL SCRIPT CHARACTER-18B9E;Lo;0;L;;;;;N;;;;;
+18B9F;KHITAN SMALL SCRIPT CHARACTER-18B9F;Lo;0;L;;;;;N;;;;;
+18BA0;KHITAN SMALL SCRIPT CHARACTER-18BA0;Lo;0;L;;;;;N;;;;;
+18BA1;KHITAN SMALL SCRIPT CHARACTER-18BA1;Lo;0;L;;;;;N;;;;;
+18BA2;KHITAN SMALL SCRIPT CHARACTER-18BA2;Lo;0;L;;;;;N;;;;;
+18BA3;KHITAN SMALL SCRIPT CHARACTER-18BA3;Lo;0;L;;;;;N;;;;;
+18BA4;KHITAN SMALL SCRIPT CHARACTER-18BA4;Lo;0;L;;;;;N;;;;;
+18BA5;KHITAN SMALL SCRIPT CHARACTER-18BA5;Lo;0;L;;;;;N;;;;;
+18BA6;KHITAN SMALL SCRIPT CHARACTER-18BA6;Lo;0;L;;;;;N;;;;;
+18BA7;KHITAN SMALL SCRIPT CHARACTER-18BA7;Lo;0;L;;;;;N;;;;;
+18BA8;KHITAN SMALL SCRIPT CHARACTER-18BA8;Lo;0;L;;;;;N;;;;;
+18BA9;KHITAN SMALL SCRIPT CHARACTER-18BA9;Lo;0;L;;;;;N;;;;;
+18BAA;KHITAN SMALL SCRIPT CHARACTER-18BAA;Lo;0;L;;;;;N;;;;;
+18BAB;KHITAN SMALL SCRIPT CHARACTER-18BAB;Lo;0;L;;;;;N;;;;;
+18BAC;KHITAN SMALL SCRIPT CHARACTER-18BAC;Lo;0;L;;;;;N;;;;;
+18BAD;KHITAN SMALL SCRIPT CHARACTER-18BAD;Lo;0;L;;;;;N;;;;;
+18BAE;KHITAN SMALL SCRIPT CHARACTER-18BAE;Lo;0;L;;;;;N;;;;;
+18BAF;KHITAN SMALL SCRIPT CHARACTER-18BAF;Lo;0;L;;;;;N;;;;;
+18BB0;KHITAN SMALL SCRIPT CHARACTER-18BB0;Lo;0;L;;;;;N;;;;;
+18BB1;KHITAN SMALL SCRIPT CHARACTER-18BB1;Lo;0;L;;;;;N;;;;;
+18BB2;KHITAN SMALL SCRIPT CHARACTER-18BB2;Lo;0;L;;;;;N;;;;;
+18BB3;KHITAN SMALL SCRIPT CHARACTER-18BB3;Lo;0;L;;;;;N;;;;;
+18BB4;KHITAN SMALL SCRIPT CHARACTER-18BB4;Lo;0;L;;;;;N;;;;;
+18BB5;KHITAN SMALL SCRIPT CHARACTER-18BB5;Lo;0;L;;;;;N;;;;;
+18BB6;KHITAN SMALL SCRIPT CHARACTER-18BB6;Lo;0;L;;;;;N;;;;;
+18BB7;KHITAN SMALL SCRIPT CHARACTER-18BB7;Lo;0;L;;;;;N;;;;;
+18BB8;KHITAN SMALL SCRIPT CHARACTER-18BB8;Lo;0;L;;;;;N;;;;;
+18BB9;KHITAN SMALL SCRIPT CHARACTER-18BB9;Lo;0;L;;;;;N;;;;;
+18BBA;KHITAN SMALL SCRIPT CHARACTER-18BBA;Lo;0;L;;;;;N;;;;;
+18BBB;KHITAN SMALL SCRIPT CHARACTER-18BBB;Lo;0;L;;;;;N;;;;;
+18BBC;KHITAN SMALL SCRIPT CHARACTER-18BBC;Lo;0;L;;;;;N;;;;;
+18BBD;KHITAN SMALL SCRIPT CHARACTER-18BBD;Lo;0;L;;;;;N;;;;;
+18BBE;KHITAN SMALL SCRIPT CHARACTER-18BBE;Lo;0;L;;;;;N;;;;;
+18BBF;KHITAN SMALL SCRIPT CHARACTER-18BBF;Lo;0;L;;;;;N;;;;;
+18BC0;KHITAN SMALL SCRIPT CHARACTER-18BC0;Lo;0;L;;;;;N;;;;;
+18BC1;KHITAN SMALL SCRIPT CHARACTER-18BC1;Lo;0;L;;;;;N;;;;;
+18BC2;KHITAN SMALL SCRIPT CHARACTER-18BC2;Lo;0;L;;;;;N;;;;;
+18BC3;KHITAN SMALL SCRIPT CHARACTER-18BC3;Lo;0;L;;;;;N;;;;;
+18BC4;KHITAN SMALL SCRIPT CHARACTER-18BC4;Lo;0;L;;;;;N;;;;;
+18BC5;KHITAN SMALL SCRIPT CHARACTER-18BC5;Lo;0;L;;;;;N;;;;;
+18BC6;KHITAN SMALL SCRIPT CHARACTER-18BC6;Lo;0;L;;;;;N;;;;;
+18BC7;KHITAN SMALL SCRIPT CHARACTER-18BC7;Lo;0;L;;;;;N;;;;;
+18BC8;KHITAN SMALL SCRIPT CHARACTER-18BC8;Lo;0;L;;;;;N;;;;;
+18BC9;KHITAN SMALL SCRIPT CHARACTER-18BC9;Lo;0;L;;;;;N;;;;;
+18BCA;KHITAN SMALL SCRIPT CHARACTER-18BCA;Lo;0;L;;;;;N;;;;;
+18BCB;KHITAN SMALL SCRIPT CHARACTER-18BCB;Lo;0;L;;;;;N;;;;;
+18BCC;KHITAN SMALL SCRIPT CHARACTER-18BCC;Lo;0;L;;;;;N;;;;;
+18BCD;KHITAN SMALL SCRIPT CHARACTER-18BCD;Lo;0;L;;;;;N;;;;;
+18BCE;KHITAN SMALL SCRIPT CHARACTER-18BCE;Lo;0;L;;;;;N;;;;;
+18BCF;KHITAN SMALL SCRIPT CHARACTER-18BCF;Lo;0;L;;;;;N;;;;;
+18BD0;KHITAN SMALL SCRIPT CHARACTER-18BD0;Lo;0;L;;;;;N;;;;;
+18BD1;KHITAN SMALL SCRIPT CHARACTER-18BD1;Lo;0;L;;;;;N;;;;;
+18BD2;KHITAN SMALL SCRIPT CHARACTER-18BD2;Lo;0;L;;;;;N;;;;;
+18BD3;KHITAN SMALL SCRIPT CHARACTER-18BD3;Lo;0;L;;;;;N;;;;;
+18BD4;KHITAN SMALL SCRIPT CHARACTER-18BD4;Lo;0;L;;;;;N;;;;;
+18BD5;KHITAN SMALL SCRIPT CHARACTER-18BD5;Lo;0;L;;;;;N;;;;;
+18BD6;KHITAN SMALL SCRIPT CHARACTER-18BD6;Lo;0;L;;;;;N;;;;;
+18BD7;KHITAN SMALL SCRIPT CHARACTER-18BD7;Lo;0;L;;;;;N;;;;;
+18BD8;KHITAN SMALL SCRIPT CHARACTER-18BD8;Lo;0;L;;;;;N;;;;;
+18BD9;KHITAN SMALL SCRIPT CHARACTER-18BD9;Lo;0;L;;;;;N;;;;;
+18BDA;KHITAN SMALL SCRIPT CHARACTER-18BDA;Lo;0;L;;;;;N;;;;;
+18BDB;KHITAN SMALL SCRIPT CHARACTER-18BDB;Lo;0;L;;;;;N;;;;;
+18BDC;KHITAN SMALL SCRIPT CHARACTER-18BDC;Lo;0;L;;;;;N;;;;;
+18BDD;KHITAN SMALL SCRIPT CHARACTER-18BDD;Lo;0;L;;;;;N;;;;;
+18BDE;KHITAN SMALL SCRIPT CHARACTER-18BDE;Lo;0;L;;;;;N;;;;;
+18BDF;KHITAN SMALL SCRIPT CHARACTER-18BDF;Lo;0;L;;;;;N;;;;;
+18BE0;KHITAN SMALL SCRIPT CHARACTER-18BE0;Lo;0;L;;;;;N;;;;;
+18BE1;KHITAN SMALL SCRIPT CHARACTER-18BE1;Lo;0;L;;;;;N;;;;;
+18BE2;KHITAN SMALL SCRIPT CHARACTER-18BE2;Lo;0;L;;;;;N;;;;;
+18BE3;KHITAN SMALL SCRIPT CHARACTER-18BE3;Lo;0;L;;;;;N;;;;;
+18BE4;KHITAN SMALL SCRIPT CHARACTER-18BE4;Lo;0;L;;;;;N;;;;;
+18BE5;KHITAN SMALL SCRIPT CHARACTER-18BE5;Lo;0;L;;;;;N;;;;;
+18BE6;KHITAN SMALL SCRIPT CHARACTER-18BE6;Lo;0;L;;;;;N;;;;;
+18BE7;KHITAN SMALL SCRIPT CHARACTER-18BE7;Lo;0;L;;;;;N;;;;;
+18BE8;KHITAN SMALL SCRIPT CHARACTER-18BE8;Lo;0;L;;;;;N;;;;;
+18BE9;KHITAN SMALL SCRIPT CHARACTER-18BE9;Lo;0;L;;;;;N;;;;;
+18BEA;KHITAN SMALL SCRIPT CHARACTER-18BEA;Lo;0;L;;;;;N;;;;;
+18BEB;KHITAN SMALL SCRIPT CHARACTER-18BEB;Lo;0;L;;;;;N;;;;;
+18BEC;KHITAN SMALL SCRIPT CHARACTER-18BEC;Lo;0;L;;;;;N;;;;;
+18BED;KHITAN SMALL SCRIPT CHARACTER-18BED;Lo;0;L;;;;;N;;;;;
+18BEE;KHITAN SMALL SCRIPT CHARACTER-18BEE;Lo;0;L;;;;;N;;;;;
+18BEF;KHITAN SMALL SCRIPT CHARACTER-18BEF;Lo;0;L;;;;;N;;;;;
+18BF0;KHITAN SMALL SCRIPT CHARACTER-18BF0;Lo;0;L;;;;;N;;;;;
+18BF1;KHITAN SMALL SCRIPT CHARACTER-18BF1;Lo;0;L;;;;;N;;;;;
+18BF2;KHITAN SMALL SCRIPT CHARACTER-18BF2;Lo;0;L;;;;;N;;;;;
+18BF3;KHITAN SMALL SCRIPT CHARACTER-18BF3;Lo;0;L;;;;;N;;;;;
+18BF4;KHITAN SMALL SCRIPT CHARACTER-18BF4;Lo;0;L;;;;;N;;;;;
+18BF5;KHITAN SMALL SCRIPT CHARACTER-18BF5;Lo;0;L;;;;;N;;;;;
+18BF6;KHITAN SMALL SCRIPT CHARACTER-18BF6;Lo;0;L;;;;;N;;;;;
+18BF7;KHITAN SMALL SCRIPT CHARACTER-18BF7;Lo;0;L;;;;;N;;;;;
+18BF8;KHITAN SMALL SCRIPT CHARACTER-18BF8;Lo;0;L;;;;;N;;;;;
+18BF9;KHITAN SMALL SCRIPT CHARACTER-18BF9;Lo;0;L;;;;;N;;;;;
+18BFA;KHITAN SMALL SCRIPT CHARACTER-18BFA;Lo;0;L;;;;;N;;;;;
+18BFB;KHITAN SMALL SCRIPT CHARACTER-18BFB;Lo;0;L;;;;;N;;;;;
+18BFC;KHITAN SMALL SCRIPT CHARACTER-18BFC;Lo;0;L;;;;;N;;;;;
+18BFD;KHITAN SMALL SCRIPT CHARACTER-18BFD;Lo;0;L;;;;;N;;;;;
+18BFE;KHITAN SMALL SCRIPT CHARACTER-18BFE;Lo;0;L;;;;;N;;;;;
+18BFF;KHITAN SMALL SCRIPT CHARACTER-18BFF;Lo;0;L;;;;;N;;;;;
+18C00;KHITAN SMALL SCRIPT CHARACTER-18C00;Lo;0;L;;;;;N;;;;;
+18C01;KHITAN SMALL SCRIPT CHARACTER-18C01;Lo;0;L;;;;;N;;;;;
+18C02;KHITAN SMALL SCRIPT CHARACTER-18C02;Lo;0;L;;;;;N;;;;;
+18C03;KHITAN SMALL SCRIPT CHARACTER-18C03;Lo;0;L;;;;;N;;;;;
+18C04;KHITAN SMALL SCRIPT CHARACTER-18C04;Lo;0;L;;;;;N;;;;;
+18C05;KHITAN SMALL SCRIPT CHARACTER-18C05;Lo;0;L;;;;;N;;;;;
+18C06;KHITAN SMALL SCRIPT CHARACTER-18C06;Lo;0;L;;;;;N;;;;;
+18C07;KHITAN SMALL SCRIPT CHARACTER-18C07;Lo;0;L;;;;;N;;;;;
+18C08;KHITAN SMALL SCRIPT CHARACTER-18C08;Lo;0;L;;;;;N;;;;;
+18C09;KHITAN SMALL SCRIPT CHARACTER-18C09;Lo;0;L;;;;;N;;;;;
+18C0A;KHITAN SMALL SCRIPT CHARACTER-18C0A;Lo;0;L;;;;;N;;;;;
+18C0B;KHITAN SMALL SCRIPT CHARACTER-18C0B;Lo;0;L;;;;;N;;;;;
+18C0C;KHITAN SMALL SCRIPT CHARACTER-18C0C;Lo;0;L;;;;;N;;;;;
+18C0D;KHITAN SMALL SCRIPT CHARACTER-18C0D;Lo;0;L;;;;;N;;;;;
+18C0E;KHITAN SMALL SCRIPT CHARACTER-18C0E;Lo;0;L;;;;;N;;;;;
+18C0F;KHITAN SMALL SCRIPT CHARACTER-18C0F;Lo;0;L;;;;;N;;;;;
+18C10;KHITAN SMALL SCRIPT CHARACTER-18C10;Lo;0;L;;;;;N;;;;;
+18C11;KHITAN SMALL SCRIPT CHARACTER-18C11;Lo;0;L;;;;;N;;;;;
+18C12;KHITAN SMALL SCRIPT CHARACTER-18C12;Lo;0;L;;;;;N;;;;;
+18C13;KHITAN SMALL SCRIPT CHARACTER-18C13;Lo;0;L;;;;;N;;;;;
+18C14;KHITAN SMALL SCRIPT CHARACTER-18C14;Lo;0;L;;;;;N;;;;;
+18C15;KHITAN SMALL SCRIPT CHARACTER-18C15;Lo;0;L;;;;;N;;;;;
+18C16;KHITAN SMALL SCRIPT CHARACTER-18C16;Lo;0;L;;;;;N;;;;;
+18C17;KHITAN SMALL SCRIPT CHARACTER-18C17;Lo;0;L;;;;;N;;;;;
+18C18;KHITAN SMALL SCRIPT CHARACTER-18C18;Lo;0;L;;;;;N;;;;;
+18C19;KHITAN SMALL SCRIPT CHARACTER-18C19;Lo;0;L;;;;;N;;;;;
+18C1A;KHITAN SMALL SCRIPT CHARACTER-18C1A;Lo;0;L;;;;;N;;;;;
+18C1B;KHITAN SMALL SCRIPT CHARACTER-18C1B;Lo;0;L;;;;;N;;;;;
+18C1C;KHITAN SMALL SCRIPT CHARACTER-18C1C;Lo;0;L;;;;;N;;;;;
+18C1D;KHITAN SMALL SCRIPT CHARACTER-18C1D;Lo;0;L;;;;;N;;;;;
+18C1E;KHITAN SMALL SCRIPT CHARACTER-18C1E;Lo;0;L;;;;;N;;;;;
+18C1F;KHITAN SMALL SCRIPT CHARACTER-18C1F;Lo;0;L;;;;;N;;;;;
+18C20;KHITAN SMALL SCRIPT CHARACTER-18C20;Lo;0;L;;;;;N;;;;;
+18C21;KHITAN SMALL SCRIPT CHARACTER-18C21;Lo;0;L;;;;;N;;;;;
+18C22;KHITAN SMALL SCRIPT CHARACTER-18C22;Lo;0;L;;;;;N;;;;;
+18C23;KHITAN SMALL SCRIPT CHARACTER-18C23;Lo;0;L;;;;;N;;;;;
+18C24;KHITAN SMALL SCRIPT CHARACTER-18C24;Lo;0;L;;;;;N;;;;;
+18C25;KHITAN SMALL SCRIPT CHARACTER-18C25;Lo;0;L;;;;;N;;;;;
+18C26;KHITAN SMALL SCRIPT CHARACTER-18C26;Lo;0;L;;;;;N;;;;;
+18C27;KHITAN SMALL SCRIPT CHARACTER-18C27;Lo;0;L;;;;;N;;;;;
+18C28;KHITAN SMALL SCRIPT CHARACTER-18C28;Lo;0;L;;;;;N;;;;;
+18C29;KHITAN SMALL SCRIPT CHARACTER-18C29;Lo;0;L;;;;;N;;;;;
+18C2A;KHITAN SMALL SCRIPT CHARACTER-18C2A;Lo;0;L;;;;;N;;;;;
+18C2B;KHITAN SMALL SCRIPT CHARACTER-18C2B;Lo;0;L;;;;;N;;;;;
+18C2C;KHITAN SMALL SCRIPT CHARACTER-18C2C;Lo;0;L;;;;;N;;;;;
+18C2D;KHITAN SMALL SCRIPT CHARACTER-18C2D;Lo;0;L;;;;;N;;;;;
+18C2E;KHITAN SMALL SCRIPT CHARACTER-18C2E;Lo;0;L;;;;;N;;;;;
+18C2F;KHITAN SMALL SCRIPT CHARACTER-18C2F;Lo;0;L;;;;;N;;;;;
+18C30;KHITAN SMALL SCRIPT CHARACTER-18C30;Lo;0;L;;;;;N;;;;;
+18C31;KHITAN SMALL SCRIPT CHARACTER-18C31;Lo;0;L;;;;;N;;;;;
+18C32;KHITAN SMALL SCRIPT CHARACTER-18C32;Lo;0;L;;;;;N;;;;;
+18C33;KHITAN SMALL SCRIPT CHARACTER-18C33;Lo;0;L;;;;;N;;;;;
+18C34;KHITAN SMALL SCRIPT CHARACTER-18C34;Lo;0;L;;;;;N;;;;;
+18C35;KHITAN SMALL SCRIPT CHARACTER-18C35;Lo;0;L;;;;;N;;;;;
+18C36;KHITAN SMALL SCRIPT CHARACTER-18C36;Lo;0;L;;;;;N;;;;;
+18C37;KHITAN SMALL SCRIPT CHARACTER-18C37;Lo;0;L;;;;;N;;;;;
+18C38;KHITAN SMALL SCRIPT CHARACTER-18C38;Lo;0;L;;;;;N;;;;;
+18C39;KHITAN SMALL SCRIPT CHARACTER-18C39;Lo;0;L;;;;;N;;;;;
+18C3A;KHITAN SMALL SCRIPT CHARACTER-18C3A;Lo;0;L;;;;;N;;;;;
+18C3B;KHITAN SMALL SCRIPT CHARACTER-18C3B;Lo;0;L;;;;;N;;;;;
+18C3C;KHITAN SMALL SCRIPT CHARACTER-18C3C;Lo;0;L;;;;;N;;;;;
+18C3D;KHITAN SMALL SCRIPT CHARACTER-18C3D;Lo;0;L;;;;;N;;;;;
+18C3E;KHITAN SMALL SCRIPT CHARACTER-18C3E;Lo;0;L;;;;;N;;;;;
+18C3F;KHITAN SMALL SCRIPT CHARACTER-18C3F;Lo;0;L;;;;;N;;;;;
+18C40;KHITAN SMALL SCRIPT CHARACTER-18C40;Lo;0;L;;;;;N;;;;;
+18C41;KHITAN SMALL SCRIPT CHARACTER-18C41;Lo;0;L;;;;;N;;;;;
+18C42;KHITAN SMALL SCRIPT CHARACTER-18C42;Lo;0;L;;;;;N;;;;;
+18C43;KHITAN SMALL SCRIPT CHARACTER-18C43;Lo;0;L;;;;;N;;;;;
+18C44;KHITAN SMALL SCRIPT CHARACTER-18C44;Lo;0;L;;;;;N;;;;;
+18C45;KHITAN SMALL SCRIPT CHARACTER-18C45;Lo;0;L;;;;;N;;;;;
+18C46;KHITAN SMALL SCRIPT CHARACTER-18C46;Lo;0;L;;;;;N;;;;;
+18C47;KHITAN SMALL SCRIPT CHARACTER-18C47;Lo;0;L;;;;;N;;;;;
+18C48;KHITAN SMALL SCRIPT CHARACTER-18C48;Lo;0;L;;;;;N;;;;;
+18C49;KHITAN SMALL SCRIPT CHARACTER-18C49;Lo;0;L;;;;;N;;;;;
+18C4A;KHITAN SMALL SCRIPT CHARACTER-18C4A;Lo;0;L;;;;;N;;;;;
+18C4B;KHITAN SMALL SCRIPT CHARACTER-18C4B;Lo;0;L;;;;;N;;;;;
+18C4C;KHITAN SMALL SCRIPT CHARACTER-18C4C;Lo;0;L;;;;;N;;;;;
+18C4D;KHITAN SMALL SCRIPT CHARACTER-18C4D;Lo;0;L;;;;;N;;;;;
+18C4E;KHITAN SMALL SCRIPT CHARACTER-18C4E;Lo;0;L;;;;;N;;;;;
+18C4F;KHITAN SMALL SCRIPT CHARACTER-18C4F;Lo;0;L;;;;;N;;;;;
+18C50;KHITAN SMALL SCRIPT CHARACTER-18C50;Lo;0;L;;;;;N;;;;;
+18C51;KHITAN SMALL SCRIPT CHARACTER-18C51;Lo;0;L;;;;;N;;;;;
+18C52;KHITAN SMALL SCRIPT CHARACTER-18C52;Lo;0;L;;;;;N;;;;;
+18C53;KHITAN SMALL SCRIPT CHARACTER-18C53;Lo;0;L;;;;;N;;;;;
+18C54;KHITAN SMALL SCRIPT CHARACTER-18C54;Lo;0;L;;;;;N;;;;;
+18C55;KHITAN SMALL SCRIPT CHARACTER-18C55;Lo;0;L;;;;;N;;;;;
+18C56;KHITAN SMALL SCRIPT CHARACTER-18C56;Lo;0;L;;;;;N;;;;;
+18C57;KHITAN SMALL SCRIPT CHARACTER-18C57;Lo;0;L;;;;;N;;;;;
+18C58;KHITAN SMALL SCRIPT CHARACTER-18C58;Lo;0;L;;;;;N;;;;;
+18C59;KHITAN SMALL SCRIPT CHARACTER-18C59;Lo;0;L;;;;;N;;;;;
+18C5A;KHITAN SMALL SCRIPT CHARACTER-18C5A;Lo;0;L;;;;;N;;;;;
+18C5B;KHITAN SMALL SCRIPT CHARACTER-18C5B;Lo;0;L;;;;;N;;;;;
+18C5C;KHITAN SMALL SCRIPT CHARACTER-18C5C;Lo;0;L;;;;;N;;;;;
+18C5D;KHITAN SMALL SCRIPT CHARACTER-18C5D;Lo;0;L;;;;;N;;;;;
+18C5E;KHITAN SMALL SCRIPT CHARACTER-18C5E;Lo;0;L;;;;;N;;;;;
+18C5F;KHITAN SMALL SCRIPT CHARACTER-18C5F;Lo;0;L;;;;;N;;;;;
+18C60;KHITAN SMALL SCRIPT CHARACTER-18C60;Lo;0;L;;;;;N;;;;;
+18C61;KHITAN SMALL SCRIPT CHARACTER-18C61;Lo;0;L;;;;;N;;;;;
+18C62;KHITAN SMALL SCRIPT CHARACTER-18C62;Lo;0;L;;;;;N;;;;;
+18C63;KHITAN SMALL SCRIPT CHARACTER-18C63;Lo;0;L;;;;;N;;;;;
+18C64;KHITAN SMALL SCRIPT CHARACTER-18C64;Lo;0;L;;;;;N;;;;;
+18C65;KHITAN SMALL SCRIPT CHARACTER-18C65;Lo;0;L;;;;;N;;;;;
+18C66;KHITAN SMALL SCRIPT CHARACTER-18C66;Lo;0;L;;;;;N;;;;;
+18C67;KHITAN SMALL SCRIPT CHARACTER-18C67;Lo;0;L;;;;;N;;;;;
+18C68;KHITAN SMALL SCRIPT CHARACTER-18C68;Lo;0;L;;;;;N;;;;;
+18C69;KHITAN SMALL SCRIPT CHARACTER-18C69;Lo;0;L;;;;;N;;;;;
+18C6A;KHITAN SMALL SCRIPT CHARACTER-18C6A;Lo;0;L;;;;;N;;;;;
+18C6B;KHITAN SMALL SCRIPT CHARACTER-18C6B;Lo;0;L;;;;;N;;;;;
+18C6C;KHITAN SMALL SCRIPT CHARACTER-18C6C;Lo;0;L;;;;;N;;;;;
+18C6D;KHITAN SMALL SCRIPT CHARACTER-18C6D;Lo;0;L;;;;;N;;;;;
+18C6E;KHITAN SMALL SCRIPT CHARACTER-18C6E;Lo;0;L;;;;;N;;;;;
+18C6F;KHITAN SMALL SCRIPT CHARACTER-18C6F;Lo;0;L;;;;;N;;;;;
+18C70;KHITAN SMALL SCRIPT CHARACTER-18C70;Lo;0;L;;;;;N;;;;;
+18C71;KHITAN SMALL SCRIPT CHARACTER-18C71;Lo;0;L;;;;;N;;;;;
+18C72;KHITAN SMALL SCRIPT CHARACTER-18C72;Lo;0;L;;;;;N;;;;;
+18C73;KHITAN SMALL SCRIPT CHARACTER-18C73;Lo;0;L;;;;;N;;;;;
+18C74;KHITAN SMALL SCRIPT CHARACTER-18C74;Lo;0;L;;;;;N;;;;;
+18C75;KHITAN SMALL SCRIPT CHARACTER-18C75;Lo;0;L;;;;;N;;;;;
+18C76;KHITAN SMALL SCRIPT CHARACTER-18C76;Lo;0;L;;;;;N;;;;;
+18C77;KHITAN SMALL SCRIPT CHARACTER-18C77;Lo;0;L;;;;;N;;;;;
+18C78;KHITAN SMALL SCRIPT CHARACTER-18C78;Lo;0;L;;;;;N;;;;;
+18C79;KHITAN SMALL SCRIPT CHARACTER-18C79;Lo;0;L;;;;;N;;;;;
+18C7A;KHITAN SMALL SCRIPT CHARACTER-18C7A;Lo;0;L;;;;;N;;;;;
+18C7B;KHITAN SMALL SCRIPT CHARACTER-18C7B;Lo;0;L;;;;;N;;;;;
+18C7C;KHITAN SMALL SCRIPT CHARACTER-18C7C;Lo;0;L;;;;;N;;;;;
+18C7D;KHITAN SMALL SCRIPT CHARACTER-18C7D;Lo;0;L;;;;;N;;;;;
+18C7E;KHITAN SMALL SCRIPT CHARACTER-18C7E;Lo;0;L;;;;;N;;;;;
+18C7F;KHITAN SMALL SCRIPT CHARACTER-18C7F;Lo;0;L;;;;;N;;;;;
+18C80;KHITAN SMALL SCRIPT CHARACTER-18C80;Lo;0;L;;;;;N;;;;;
+18C81;KHITAN SMALL SCRIPT CHARACTER-18C81;Lo;0;L;;;;;N;;;;;
+18C82;KHITAN SMALL SCRIPT CHARACTER-18C82;Lo;0;L;;;;;N;;;;;
+18C83;KHITAN SMALL SCRIPT CHARACTER-18C83;Lo;0;L;;;;;N;;;;;
+18C84;KHITAN SMALL SCRIPT CHARACTER-18C84;Lo;0;L;;;;;N;;;;;
+18C85;KHITAN SMALL SCRIPT CHARACTER-18C85;Lo;0;L;;;;;N;;;;;
+18C86;KHITAN SMALL SCRIPT CHARACTER-18C86;Lo;0;L;;;;;N;;;;;
+18C87;KHITAN SMALL SCRIPT CHARACTER-18C87;Lo;0;L;;;;;N;;;;;
+18C88;KHITAN SMALL SCRIPT CHARACTER-18C88;Lo;0;L;;;;;N;;;;;
+18C89;KHITAN SMALL SCRIPT CHARACTER-18C89;Lo;0;L;;;;;N;;;;;
+18C8A;KHITAN SMALL SCRIPT CHARACTER-18C8A;Lo;0;L;;;;;N;;;;;
+18C8B;KHITAN SMALL SCRIPT CHARACTER-18C8B;Lo;0;L;;;;;N;;;;;
+18C8C;KHITAN SMALL SCRIPT CHARACTER-18C8C;Lo;0;L;;;;;N;;;;;
+18C8D;KHITAN SMALL SCRIPT CHARACTER-18C8D;Lo;0;L;;;;;N;;;;;
+18C8E;KHITAN SMALL SCRIPT CHARACTER-18C8E;Lo;0;L;;;;;N;;;;;
+18C8F;KHITAN SMALL SCRIPT CHARACTER-18C8F;Lo;0;L;;;;;N;;;;;
+18C90;KHITAN SMALL SCRIPT CHARACTER-18C90;Lo;0;L;;;;;N;;;;;
+18C91;KHITAN SMALL SCRIPT CHARACTER-18C91;Lo;0;L;;;;;N;;;;;
+18C92;KHITAN SMALL SCRIPT CHARACTER-18C92;Lo;0;L;;;;;N;;;;;
+18C93;KHITAN SMALL SCRIPT CHARACTER-18C93;Lo;0;L;;;;;N;;;;;
+18C94;KHITAN SMALL SCRIPT CHARACTER-18C94;Lo;0;L;;;;;N;;;;;
+18C95;KHITAN SMALL SCRIPT CHARACTER-18C95;Lo;0;L;;;;;N;;;;;
+18C96;KHITAN SMALL SCRIPT CHARACTER-18C96;Lo;0;L;;;;;N;;;;;
+18C97;KHITAN SMALL SCRIPT CHARACTER-18C97;Lo;0;L;;;;;N;;;;;
+18C98;KHITAN SMALL SCRIPT CHARACTER-18C98;Lo;0;L;;;;;N;;;;;
+18C99;KHITAN SMALL SCRIPT CHARACTER-18C99;Lo;0;L;;;;;N;;;;;
+18C9A;KHITAN SMALL SCRIPT CHARACTER-18C9A;Lo;0;L;;;;;N;;;;;
+18C9B;KHITAN SMALL SCRIPT CHARACTER-18C9B;Lo;0;L;;;;;N;;;;;
+18C9C;KHITAN SMALL SCRIPT CHARACTER-18C9C;Lo;0;L;;;;;N;;;;;
+18C9D;KHITAN SMALL SCRIPT CHARACTER-18C9D;Lo;0;L;;;;;N;;;;;
+18C9E;KHITAN SMALL SCRIPT CHARACTER-18C9E;Lo;0;L;;;;;N;;;;;
+18C9F;KHITAN SMALL SCRIPT CHARACTER-18C9F;Lo;0;L;;;;;N;;;;;
+18CA0;KHITAN SMALL SCRIPT CHARACTER-18CA0;Lo;0;L;;;;;N;;;;;
+18CA1;KHITAN SMALL SCRIPT CHARACTER-18CA1;Lo;0;L;;;;;N;;;;;
+18CA2;KHITAN SMALL SCRIPT CHARACTER-18CA2;Lo;0;L;;;;;N;;;;;
+18CA3;KHITAN SMALL SCRIPT CHARACTER-18CA3;Lo;0;L;;;;;N;;;;;
+18CA4;KHITAN SMALL SCRIPT CHARACTER-18CA4;Lo;0;L;;;;;N;;;;;
+18CA5;KHITAN SMALL SCRIPT CHARACTER-18CA5;Lo;0;L;;;;;N;;;;;
+18CA6;KHITAN SMALL SCRIPT CHARACTER-18CA6;Lo;0;L;;;;;N;;;;;
+18CA7;KHITAN SMALL SCRIPT CHARACTER-18CA7;Lo;0;L;;;;;N;;;;;
+18CA8;KHITAN SMALL SCRIPT CHARACTER-18CA8;Lo;0;L;;;;;N;;;;;
+18CA9;KHITAN SMALL SCRIPT CHARACTER-18CA9;Lo;0;L;;;;;N;;;;;
+18CAA;KHITAN SMALL SCRIPT CHARACTER-18CAA;Lo;0;L;;;;;N;;;;;
+18CAB;KHITAN SMALL SCRIPT CHARACTER-18CAB;Lo;0;L;;;;;N;;;;;
+18CAC;KHITAN SMALL SCRIPT CHARACTER-18CAC;Lo;0;L;;;;;N;;;;;
+18CAD;KHITAN SMALL SCRIPT CHARACTER-18CAD;Lo;0;L;;;;;N;;;;;
+18CAE;KHITAN SMALL SCRIPT CHARACTER-18CAE;Lo;0;L;;;;;N;;;;;
+18CAF;KHITAN SMALL SCRIPT CHARACTER-18CAF;Lo;0;L;;;;;N;;;;;
+18CB0;KHITAN SMALL SCRIPT CHARACTER-18CB0;Lo;0;L;;;;;N;;;;;
+18CB1;KHITAN SMALL SCRIPT CHARACTER-18CB1;Lo;0;L;;;;;N;;;;;
+18CB2;KHITAN SMALL SCRIPT CHARACTER-18CB2;Lo;0;L;;;;;N;;;;;
+18CB3;KHITAN SMALL SCRIPT CHARACTER-18CB3;Lo;0;L;;;;;N;;;;;
+18CB4;KHITAN SMALL SCRIPT CHARACTER-18CB4;Lo;0;L;;;;;N;;;;;
+18CB5;KHITAN SMALL SCRIPT CHARACTER-18CB5;Lo;0;L;;;;;N;;;;;
+18CB6;KHITAN SMALL SCRIPT CHARACTER-18CB6;Lo;0;L;;;;;N;;;;;
+18CB7;KHITAN SMALL SCRIPT CHARACTER-18CB7;Lo;0;L;;;;;N;;;;;
+18CB8;KHITAN SMALL SCRIPT CHARACTER-18CB8;Lo;0;L;;;;;N;;;;;
+18CB9;KHITAN SMALL SCRIPT CHARACTER-18CB9;Lo;0;L;;;;;N;;;;;
+18CBA;KHITAN SMALL SCRIPT CHARACTER-18CBA;Lo;0;L;;;;;N;;;;;
+18CBB;KHITAN SMALL SCRIPT CHARACTER-18CBB;Lo;0;L;;;;;N;;;;;
+18CBC;KHITAN SMALL SCRIPT CHARACTER-18CBC;Lo;0;L;;;;;N;;;;;
+18CBD;KHITAN SMALL SCRIPT CHARACTER-18CBD;Lo;0;L;;;;;N;;;;;
+18CBE;KHITAN SMALL SCRIPT CHARACTER-18CBE;Lo;0;L;;;;;N;;;;;
+18CBF;KHITAN SMALL SCRIPT CHARACTER-18CBF;Lo;0;L;;;;;N;;;;;
+18CC0;KHITAN SMALL SCRIPT CHARACTER-18CC0;Lo;0;L;;;;;N;;;;;
+18CC1;KHITAN SMALL SCRIPT CHARACTER-18CC1;Lo;0;L;;;;;N;;;;;
+18CC2;KHITAN SMALL SCRIPT CHARACTER-18CC2;Lo;0;L;;;;;N;;;;;
+18CC3;KHITAN SMALL SCRIPT CHARACTER-18CC3;Lo;0;L;;;;;N;;;;;
+18CC4;KHITAN SMALL SCRIPT CHARACTER-18CC4;Lo;0;L;;;;;N;;;;;
+18CC5;KHITAN SMALL SCRIPT CHARACTER-18CC5;Lo;0;L;;;;;N;;;;;
+18CC6;KHITAN SMALL SCRIPT CHARACTER-18CC6;Lo;0;L;;;;;N;;;;;
+18CC7;KHITAN SMALL SCRIPT CHARACTER-18CC7;Lo;0;L;;;;;N;;;;;
+18CC8;KHITAN SMALL SCRIPT CHARACTER-18CC8;Lo;0;L;;;;;N;;;;;
+18CC9;KHITAN SMALL SCRIPT CHARACTER-18CC9;Lo;0;L;;;;;N;;;;;
+18CCA;KHITAN SMALL SCRIPT CHARACTER-18CCA;Lo;0;L;;;;;N;;;;;
+18CCB;KHITAN SMALL SCRIPT CHARACTER-18CCB;Lo;0;L;;;;;N;;;;;
+18CCC;KHITAN SMALL SCRIPT CHARACTER-18CCC;Lo;0;L;;;;;N;;;;;
+18CCD;KHITAN SMALL SCRIPT CHARACTER-18CCD;Lo;0;L;;;;;N;;;;;
+18CCE;KHITAN SMALL SCRIPT CHARACTER-18CCE;Lo;0;L;;;;;N;;;;;
+18CCF;KHITAN SMALL SCRIPT CHARACTER-18CCF;Lo;0;L;;;;;N;;;;;
+18CD0;KHITAN SMALL SCRIPT CHARACTER-18CD0;Lo;0;L;;;;;N;;;;;
+18CD1;KHITAN SMALL SCRIPT CHARACTER-18CD1;Lo;0;L;;;;;N;;;;;
+18CD2;KHITAN SMALL SCRIPT CHARACTER-18CD2;Lo;0;L;;;;;N;;;;;
+18CD3;KHITAN SMALL SCRIPT CHARACTER-18CD3;Lo;0;L;;;;;N;;;;;
+18CD4;KHITAN SMALL SCRIPT CHARACTER-18CD4;Lo;0;L;;;;;N;;;;;
+18CD5;KHITAN SMALL SCRIPT CHARACTER-18CD5;Lo;0;L;;;;;N;;;;;
+18D00;<Tangut Ideograph Supplement, First>;Lo;0;L;;;;;N;;;;;
+18D08;<Tangut Ideograph Supplement, Last>;Lo;0;L;;;;;N;;;;;
 1B000;KATAKANA LETTER ARCHAIC E;Lo;0;L;;;;;N;;;;;
 1B001;HIRAGANA LETTER ARCHAIC YE;Lo;0;L;;;;;N;;;;;
 1B002;HENTAIGANA LETTER A-1;Lo;0;L;;;;;N;;;;;
@@ -29972,6 +30651,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F10A;DIGIT NINE COMMA;No;0;EN;<compat> 0039 002C;;9;9;N;;;;;
 1F10B;DINGBAT CIRCLED SANS-SERIF DIGIT ZERO;No;0;ON;;;;0;N;;;;;
 1F10C;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO;No;0;ON;;;;0;N;;;;;
+1F10D;CIRCLED ZERO WITH SLASH;So;0;ON;;;;;N;;;;;
+1F10E;CIRCLED ANTICLOCKWISE ARROW;So;0;ON;;;;;N;;;;;
+1F10F;CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH;So;0;ON;;;;;N;;;;;
 1F110;PARENTHESIZED LATIN CAPITAL LETTER A;So;0;L;<compat> 0028 0041 
0029;;;;N;;;;;
 1F111;PARENTHESIZED LATIN CAPITAL LETTER B;So;0;L;<compat> 0028 0042 
0029;;;;N;;;;;
 1F112;PARENTHESIZED LATIN CAPITAL LETTER C;So;0;L;<compat> 0028 0043 
0029;;;;N;;;;;
@@ -30065,6 +30747,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F16A;RAISED MC SIGN;So;0;ON;<super> 004D 0043;;;;N;;;;;
 1F16B;RAISED MD SIGN;So;0;ON;<super> 004D 0044;;;;N;;;;;
 1F16C;RAISED MR SIGN;So;0;ON;<super> 004D 0052;;;;N;;;;;
+1F16D;CIRCLED CC;So;0;ON;;;;;N;;;;;
+1F16E;CIRCLED C WITH OVERLAID BACKSLASH;So;0;ON;;;;;N;;;;;
+1F16F;CIRCLED HUMAN FIGURE;So;0;ON;;;;;N;;;;;
 1F170;NEGATIVE SQUARED LATIN CAPITAL LETTER A;So;0;L;;;;;N;;;;;
 1F171;NEGATIVE SQUARED LATIN CAPITAL LETTER B;So;0;L;;;;;N;;;;;
 1F172;NEGATIVE SQUARED LATIN CAPITAL LETTER C;So;0;L;;;;;N;;;;;
@@ -30126,6 +30811,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F1AA;SQUARED SHV;So;0;L;;;;;N;;;;;
 1F1AB;SQUARED UHD;So;0;L;;;;;N;;;;;
 1F1AC;SQUARED VOD;So;0;L;;;;;N;;;;;
+1F1AD;MASK WORK SYMBOL;So;0;ON;;;;;N;;;;;
 1F1E6;REGIONAL INDICATOR SYMBOL LETTER A;So;0;L;;;;;N;;;;;
 1F1E7;REGIONAL INDICATOR SYMBOL LETTER B;So;0;L;;;;;N;;;;;
 1F1E8;REGIONAL INDICATOR SYMBOL LETTER C;So;0;L;;;;;N;;;;;
@@ -31198,6 +31884,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F6D3;STUPA;So;0;ON;;;;;N;;;;;
 1F6D4;PAGODA;So;0;ON;;;;;N;;;;;
 1F6D5;HINDU TEMPLE;So;0;ON;;;;;N;;;;;
+1F6D6;HUT;So;0;ON;;;;;N;;;;;
+1F6D7;ELEVATOR;So;0;ON;;;;;N;;;;;
 1F6E0;HAMMER AND WRENCH;So;0;ON;;;;;N;;;;;
 1F6E1;SHIELD;So;0;ON;;;;;N;;;;;
 1F6E2;OIL DRUM;So;0;ON;;;;;N;;;;;
@@ -31222,6 +31910,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F6F8;FLYING SAUCER;So;0;ON;;;;;N;;;;;
 1F6F9;SKATEBOARD;So;0;ON;;;;;N;;;;;
 1F6FA;AUTO RICKSHAW;So;0;ON;;;;;N;;;;;
+1F6FB;PICKUP TRUCK;So;0;ON;;;;;N;;;;;
+1F6FC;ROLLER SKATE;So;0;ON;;;;;N;;;;;
 1F700;ALCHEMICAL SYMBOL FOR QUINTESSENCE;So;0;ON;;;;;N;;;;;
 1F701;ALCHEMICAL SYMBOL FOR AIR;So;0;ON;;;;;N;;;;;
 1F702;ALCHEMICAL SYMBOL FOR FIRE;So;0;ON;;;;;N;;;;;
@@ -31587,6 +32277,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F8AB;RIGHTWARDS FRONT-TILTED SHADOWED WHITE ARROW;So;0;ON;;;;;N;;;;;
 1F8AC;WHITE ARROW SHAFT WIDTH ONE;So;0;ON;;;;;N;;;;;
 1F8AD;WHITE ARROW SHAFT WIDTH TWO THIRDS;So;0;ON;;;;;N;;;;;
+1F8B0;ARROW POINTING UPWARDS THEN NORTH WEST;So;0;ON;;;;;N;;;;;
+1F8B1;ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST;So;0;ON;;;;;N;;;;;
 1F900;CIRCLED CROSS FORMEE WITH FOUR DOTS;So;0;ON;;;;;N;;;;;
 1F901;CIRCLED CROSS FORMEE WITH TWO DOTS;So;0;ON;;;;;N;;;;;
 1F902;CIRCLED CROSS FORMEE;So;0;ON;;;;;N;;;;;
@@ -31599,6 +32291,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F909;DOWNWARD FACING NOTCHED HOOK;So;0;ON;;;;;N;;;;;
 1F90A;DOWNWARD FACING HOOK WITH DOT;So;0;ON;;;;;N;;;;;
 1F90B;DOWNWARD FACING NOTCHED HOOK WITH DOT;So;0;ON;;;;;N;;;;;
+1F90C;PINCHED FINGERS;So;0;ON;;;;;N;;;;;
 1F90D;WHITE HEART;So;0;ON;;;;;N;;;;;
 1F90E;BROWN HEART;So;0;ON;;;;;N;;;;;
 1F90F;PINCHING HAND;So;0;ON;;;;;N;;;;;
@@ -31700,10 +32393,13 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F96F;BAGEL;So;0;ON;;;;;N;;;;;
 1F970;SMILING FACE WITH SMILING EYES AND THREE HEARTS;So;0;ON;;;;;N;;;;;
 1F971;YAWNING FACE;So;0;ON;;;;;N;;;;;
+1F972;SMILING FACE WITH TEAR;So;0;ON;;;;;N;;;;;
 1F973;FACE WITH PARTY HORN AND PARTY HAT;So;0;ON;;;;;N;;;;;
 1F974;FACE WITH UNEVEN EYES AND WAVY MOUTH;So;0;ON;;;;;N;;;;;
 1F975;OVERHEATED FACE;So;0;ON;;;;;N;;;;;
 1F976;FREEZING FACE;So;0;ON;;;;;N;;;;;
+1F977;NINJA;So;0;ON;;;;;N;;;;;
+1F978;DISGUISED FACE;So;0;ON;;;;;N;;;;;
 1F97A;FACE WITH PLEADING EYES;So;0;ON;;;;;N;;;;;
 1F97B;SARI;So;0;ON;;;;;N;;;;;
 1F97C;LAB COAT;So;0;ON;;;;;N;;;;;
@@ -31745,12 +32441,17 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F9A0;MICROBE;So;0;ON;;;;;N;;;;;
 1F9A1;BADGER;So;0;ON;;;;;N;;;;;
 1F9A2;SWAN;So;0;ON;;;;;N;;;;;
+1F9A3;MAMMOTH;So;0;ON;;;;;N;;;;;
+1F9A4;DODO;So;0;ON;;;;;N;;;;;
 1F9A5;SLOTH;So;0;ON;;;;;N;;;;;
 1F9A6;OTTER;So;0;ON;;;;;N;;;;;
 1F9A7;ORANGUTAN;So;0;ON;;;;;N;;;;;
 1F9A8;SKUNK;So;0;ON;;;;;N;;;;;
 1F9A9;FLAMINGO;So;0;ON;;;;;N;;;;;
 1F9AA;OYSTER;So;0;ON;;;;;N;;;;;
+1F9AB;BEAVER;So;0;ON;;;;;N;;;;;
+1F9AC;BISON;So;0;ON;;;;;N;;;;;
+1F9AD;SEAL;So;0;ON;;;;;N;;;;;
 1F9AE;GUIDE DOG;So;0;ON;;;;;N;;;;;
 1F9AF;PROBING CANE;So;0;ON;;;;;N;;;;;
 1F9B0;EMOJI COMPONENT RED HAIR;So;0;ON;;;;;N;;;;;
@@ -31780,6 +32481,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1F9C8;BUTTER;So;0;ON;;;;;N;;;;;
 1F9C9;MATE DRINK;So;0;ON;;;;;N;;;;;
 1F9CA;ICE CUBE;So;0;ON;;;;;N;;;;;
+1F9CB;BUBBLE TEA;So;0;ON;;;;;N;;;;;
 1F9CD;STANDING PERSON;So;0;ON;;;;;N;;;;;
 1F9CE;KNEELING PERSON;So;0;ON;;;;;N;;;;;
 1F9CF;DEAF PERSON;So;0;ON;;;;;N;;;;;
@@ -31933,20 +32635,273 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 1FA71;ONE-PIECE SWIMSUIT;So;0;ON;;;;;N;;;;;
 1FA72;BRIEFS;So;0;ON;;;;;N;;;;;
 1FA73;SHORTS;So;0;ON;;;;;N;;;;;
+1FA74;THONG SANDAL;So;0;ON;;;;;N;;;;;
 1FA78;DROP OF BLOOD;So;0;ON;;;;;N;;;;;
 1FA79;ADHESIVE BANDAGE;So;0;ON;;;;;N;;;;;
 1FA7A;STETHOSCOPE;So;0;ON;;;;;N;;;;;
 1FA80;YO-YO;So;0;ON;;;;;N;;;;;
 1FA81;KITE;So;0;ON;;;;;N;;;;;
 1FA82;PARACHUTE;So;0;ON;;;;;N;;;;;
+1FA83;BOOMERANG;So;0;ON;;;;;N;;;;;
+1FA84;MAGIC WAND;So;0;ON;;;;;N;;;;;
+1FA85;PINATA;So;0;ON;;;;;N;;;;;
+1FA86;NESTING DOLLS;So;0;ON;;;;;N;;;;;
 1FA90;RINGED PLANET;So;0;ON;;;;;N;;;;;
 1FA91;CHAIR;So;0;ON;;;;;N;;;;;
 1FA92;RAZOR;So;0;ON;;;;;N;;;;;
 1FA93;AXE;So;0;ON;;;;;N;;;;;
 1FA94;DIYA LAMP;So;0;ON;;;;;N;;;;;
 1FA95;BANJO;So;0;ON;;;;;N;;;;;
+1FA96;MILITARY HELMET;So;0;ON;;;;;N;;;;;
+1FA97;ACCORDION;So;0;ON;;;;;N;;;;;
+1FA98;LONG DRUM;So;0;ON;;;;;N;;;;;
+1FA99;COIN;So;0;ON;;;;;N;;;;;
+1FA9A;CARPENTRY SAW;So;0;ON;;;;;N;;;;;
+1FA9B;SCREWDRIVER;So;0;ON;;;;;N;;;;;
+1FA9C;LADDER;So;0;ON;;;;;N;;;;;
+1FA9D;HOOK;So;0;ON;;;;;N;;;;;
+1FA9E;MIRROR;So;0;ON;;;;;N;;;;;
+1FA9F;WINDOW;So;0;ON;;;;;N;;;;;
+1FAA0;PLUNGER;So;0;ON;;;;;N;;;;;
+1FAA1;SEWING NEEDLE;So;0;ON;;;;;N;;;;;
+1FAA2;KNOT;So;0;ON;;;;;N;;;;;
+1FAA3;BUCKET;So;0;ON;;;;;N;;;;;
+1FAA4;MOUSE TRAP;So;0;ON;;;;;N;;;;;
+1FAA5;TOOTHBRUSH;So;0;ON;;;;;N;;;;;
+1FAA6;HEADSTONE;So;0;ON;;;;;N;;;;;
+1FAA7;PLACARD;So;0;ON;;;;;N;;;;;
+1FAA8;ROCK;So;0;ON;;;;;N;;;;;
+1FAB0;FLY;So;0;ON;;;;;N;;;;;
+1FAB1;WORM;So;0;ON;;;;;N;;;;;
+1FAB2;BEETLE;So;0;ON;;;;;N;;;;;
+1FAB3;COCKROACH;So;0;ON;;;;;N;;;;;
+1FAB4;POTTED PLANT;So;0;ON;;;;;N;;;;;
+1FAB5;WOOD;So;0;ON;;;;;N;;;;;
+1FAB6;FEATHER;So;0;ON;;;;;N;;;;;
+1FAC0;ANATOMICAL HEART;So;0;ON;;;;;N;;;;;
+1FAC1;LUNGS;So;0;ON;;;;;N;;;;;
+1FAC2;PEOPLE HUGGING;So;0;ON;;;;;N;;;;;
+1FAD0;BLUEBERRIES;So;0;ON;;;;;N;;;;;
+1FAD1;BELL PEPPER;So;0;ON;;;;;N;;;;;
+1FAD2;OLIVE;So;0;ON;;;;;N;;;;;
+1FAD3;FLATBREAD;So;0;ON;;;;;N;;;;;
+1FAD4;TAMALE;So;0;ON;;;;;N;;;;;
+1FAD5;FONDUE;So;0;ON;;;;;N;;;;;
+1FAD6;TEAPOT;So;0;ON;;;;;N;;;;;
+1FB00;BLOCK SEXTANT-1;So;0;ON;;;;;N;;;;;
+1FB01;BLOCK SEXTANT-2;So;0;ON;;;;;N;;;;;
+1FB02;BLOCK SEXTANT-12;So;0;ON;;;;;N;;;;;
+1FB03;BLOCK SEXTANT-3;So;0;ON;;;;;N;;;;;
+1FB04;BLOCK SEXTANT-13;So;0;ON;;;;;N;;;;;
+1FB05;BLOCK SEXTANT-23;So;0;ON;;;;;N;;;;;
+1FB06;BLOCK SEXTANT-123;So;0;ON;;;;;N;;;;;
+1FB07;BLOCK SEXTANT-4;So;0;ON;;;;;N;;;;;
+1FB08;BLOCK SEXTANT-14;So;0;ON;;;;;N;;;;;
+1FB09;BLOCK SEXTANT-24;So;0;ON;;;;;N;;;;;
+1FB0A;BLOCK SEXTANT-124;So;0;ON;;;;;N;;;;;
+1FB0B;BLOCK SEXTANT-34;So;0;ON;;;;;N;;;;;
+1FB0C;BLOCK SEXTANT-134;So;0;ON;;;;;N;;;;;
+1FB0D;BLOCK SEXTANT-234;So;0;ON;;;;;N;;;;;
+1FB0E;BLOCK SEXTANT-1234;So;0;ON;;;;;N;;;;;
+1FB0F;BLOCK SEXTANT-5;So;0;ON;;;;;N;;;;;
+1FB10;BLOCK SEXTANT-15;So;0;ON;;;;;N;;;;;
+1FB11;BLOCK SEXTANT-25;So;0;ON;;;;;N;;;;;
+1FB12;BLOCK SEXTANT-125;So;0;ON;;;;;N;;;;;
+1FB13;BLOCK SEXTANT-35;So;0;ON;;;;;N;;;;;
+1FB14;BLOCK SEXTANT-235;So;0;ON;;;;;N;;;;;
+1FB15;BLOCK SEXTANT-1235;So;0;ON;;;;;N;;;;;
+1FB16;BLOCK SEXTANT-45;So;0;ON;;;;;N;;;;;
+1FB17;BLOCK SEXTANT-145;So;0;ON;;;;;N;;;;;
+1FB18;BLOCK SEXTANT-245;So;0;ON;;;;;N;;;;;
+1FB19;BLOCK SEXTANT-1245;So;0;ON;;;;;N;;;;;
+1FB1A;BLOCK SEXTANT-345;So;0;ON;;;;;N;;;;;
+1FB1B;BLOCK SEXTANT-1345;So;0;ON;;;;;N;;;;;
+1FB1C;BLOCK SEXTANT-2345;So;0;ON;;;;;N;;;;;
+1FB1D;BLOCK SEXTANT-12345;So;0;ON;;;;;N;;;;;
+1FB1E;BLOCK SEXTANT-6;So;0;ON;;;;;N;;;;;
+1FB1F;BLOCK SEXTANT-16;So;0;ON;;;;;N;;;;;
+1FB20;BLOCK SEXTANT-26;So;0;ON;;;;;N;;;;;
+1FB21;BLOCK SEXTANT-126;So;0;ON;;;;;N;;;;;
+1FB22;BLOCK SEXTANT-36;So;0;ON;;;;;N;;;;;
+1FB23;BLOCK SEXTANT-136;So;0;ON;;;;;N;;;;;
+1FB24;BLOCK SEXTANT-236;So;0;ON;;;;;N;;;;;
+1FB25;BLOCK SEXTANT-1236;So;0;ON;;;;;N;;;;;
+1FB26;BLOCK SEXTANT-46;So;0;ON;;;;;N;;;;;
+1FB27;BLOCK SEXTANT-146;So;0;ON;;;;;N;;;;;
+1FB28;BLOCK SEXTANT-1246;So;0;ON;;;;;N;;;;;
+1FB29;BLOCK SEXTANT-346;So;0;ON;;;;;N;;;;;
+1FB2A;BLOCK SEXTANT-1346;So;0;ON;;;;;N;;;;;
+1FB2B;BLOCK SEXTANT-2346;So;0;ON;;;;;N;;;;;
+1FB2C;BLOCK SEXTANT-12346;So;0;ON;;;;;N;;;;;
+1FB2D;BLOCK SEXTANT-56;So;0;ON;;;;;N;;;;;
+1FB2E;BLOCK SEXTANT-156;So;0;ON;;;;;N;;;;;
+1FB2F;BLOCK SEXTANT-256;So;0;ON;;;;;N;;;;;
+1FB30;BLOCK SEXTANT-1256;So;0;ON;;;;;N;;;;;
+1FB31;BLOCK SEXTANT-356;So;0;ON;;;;;N;;;;;
+1FB32;BLOCK SEXTANT-1356;So;0;ON;;;;;N;;;;;
+1FB33;BLOCK SEXTANT-2356;So;0;ON;;;;;N;;;;;
+1FB34;BLOCK SEXTANT-12356;So;0;ON;;;;;N;;;;;
+1FB35;BLOCK SEXTANT-456;So;0;ON;;;;;N;;;;;
+1FB36;BLOCK SEXTANT-1456;So;0;ON;;;;;N;;;;;
+1FB37;BLOCK SEXTANT-2456;So;0;ON;;;;;N;;;;;
+1FB38;BLOCK SEXTANT-12456;So;0;ON;;;;;N;;;;;
+1FB39;BLOCK SEXTANT-3456;So;0;ON;;;;;N;;;;;
+1FB3A;BLOCK SEXTANT-13456;So;0;ON;;;;;N;;;;;
+1FB3B;BLOCK SEXTANT-23456;So;0;ON;;;;;N;;;;;
+1FB3C;LOWER LEFT BLOCK DIAGONAL LOWER MIDDLE LEFT TO LOWER 
CENTRE;So;0;ON;;;;;N;;;;;
+1FB3D;LOWER LEFT BLOCK DIAGONAL LOWER MIDDLE LEFT TO LOWER 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB3E;LOWER LEFT BLOCK DIAGONAL UPPER MIDDLE LEFT TO LOWER 
CENTRE;So;0;ON;;;;;N;;;;;
+1FB3F;LOWER LEFT BLOCK DIAGONAL UPPER MIDDLE LEFT TO LOWER 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB40;LOWER LEFT BLOCK DIAGONAL UPPER LEFT TO LOWER CENTRE;So;0;ON;;;;;N;;;;;
+1FB41;LOWER RIGHT BLOCK DIAGONAL UPPER MIDDLE LEFT TO UPPER 
CENTRE;So;0;ON;;;;;N;;;;;
+1FB42;LOWER RIGHT BLOCK DIAGONAL UPPER MIDDLE LEFT TO UPPER 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB43;LOWER RIGHT BLOCK DIAGONAL LOWER MIDDLE LEFT TO UPPER 
CENTRE;So;0;ON;;;;;N;;;;;
+1FB44;LOWER RIGHT BLOCK DIAGONAL LOWER MIDDLE LEFT TO UPPER 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB45;LOWER RIGHT BLOCK DIAGONAL LOWER LEFT TO UPPER CENTRE;So;0;ON;;;;;N;;;;;
+1FB46;LOWER RIGHT BLOCK DIAGONAL LOWER MIDDLE LEFT TO UPPER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB47;LOWER RIGHT BLOCK DIAGONAL LOWER CENTRE TO LOWER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB48;LOWER RIGHT BLOCK DIAGONAL LOWER LEFT TO LOWER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB49;LOWER RIGHT BLOCK DIAGONAL LOWER CENTRE TO UPPER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB4A;LOWER RIGHT BLOCK DIAGONAL LOWER LEFT TO UPPER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB4B;LOWER RIGHT BLOCK DIAGONAL LOWER CENTRE TO UPPER RIGHT;So;0;ON;;;;;N;;;;;
+1FB4C;LOWER LEFT BLOCK DIAGONAL UPPER CENTRE TO UPPER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB4D;LOWER LEFT BLOCK DIAGONAL UPPER LEFT TO UPPER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB4E;LOWER LEFT BLOCK DIAGONAL UPPER CENTRE TO LOWER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB4F;LOWER LEFT BLOCK DIAGONAL UPPER LEFT TO LOWER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB50;LOWER LEFT BLOCK DIAGONAL UPPER CENTRE TO LOWER RIGHT;So;0;ON;;;;;N;;;;;
+1FB51;LOWER LEFT BLOCK DIAGONAL UPPER MIDDLE LEFT TO LOWER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB52;UPPER RIGHT BLOCK DIAGONAL LOWER MIDDLE LEFT TO LOWER 
CENTRE;So;0;ON;;;;;N;;;;;
+1FB53;UPPER RIGHT BLOCK DIAGONAL LOWER MIDDLE LEFT TO LOWER 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB54;UPPER RIGHT BLOCK DIAGONAL UPPER MIDDLE LEFT TO LOWER 
CENTRE;So;0;ON;;;;;N;;;;;
+1FB55;UPPER RIGHT BLOCK DIAGONAL UPPER MIDDLE LEFT TO LOWER 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB56;UPPER RIGHT BLOCK DIAGONAL UPPER LEFT TO LOWER CENTRE;So;0;ON;;;;;N;;;;;
+1FB57;UPPER LEFT BLOCK DIAGONAL UPPER MIDDLE LEFT TO UPPER 
CENTRE;So;0;ON;;;;;N;;;;;
+1FB58;UPPER LEFT BLOCK DIAGONAL UPPER MIDDLE LEFT TO UPPER 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB59;UPPER LEFT BLOCK DIAGONAL LOWER MIDDLE LEFT TO UPPER 
CENTRE;So;0;ON;;;;;N;;;;;
+1FB5A;UPPER LEFT BLOCK DIAGONAL LOWER MIDDLE LEFT TO UPPER 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB5B;UPPER LEFT BLOCK DIAGONAL LOWER LEFT TO UPPER CENTRE;So;0;ON;;;;;N;;;;;
+1FB5C;UPPER LEFT BLOCK DIAGONAL LOWER MIDDLE LEFT TO UPPER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB5D;UPPER LEFT BLOCK DIAGONAL LOWER CENTRE TO LOWER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB5E;UPPER LEFT BLOCK DIAGONAL LOWER LEFT TO LOWER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB5F;UPPER LEFT BLOCK DIAGONAL LOWER CENTRE TO UPPER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB60;UPPER LEFT BLOCK DIAGONAL LOWER LEFT TO UPPER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB61;UPPER LEFT BLOCK DIAGONAL LOWER CENTRE TO UPPER RIGHT;So;0;ON;;;;;N;;;;;
+1FB62;UPPER RIGHT BLOCK DIAGONAL UPPER CENTRE TO UPPER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB63;UPPER RIGHT BLOCK DIAGONAL UPPER LEFT TO UPPER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB64;UPPER RIGHT BLOCK DIAGONAL UPPER CENTRE TO LOWER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB65;UPPER RIGHT BLOCK DIAGONAL UPPER LEFT TO LOWER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB66;UPPER RIGHT BLOCK DIAGONAL UPPER CENTRE TO LOWER RIGHT;So;0;ON;;;;;N;;;;;
+1FB67;UPPER RIGHT BLOCK DIAGONAL UPPER MIDDLE LEFT TO LOWER MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FB68;UPPER AND RIGHT AND LOWER TRIANGULAR THREE QUARTERS 
BLOCK;So;0;ON;;;;;N;;;;;
+1FB69;LEFT AND LOWER AND RIGHT TRIANGULAR THREE QUARTERS 
BLOCK;So;0;ON;;;;;N;;;;;
+1FB6A;UPPER AND LEFT AND LOWER TRIANGULAR THREE QUARTERS 
BLOCK;So;0;ON;;;;;N;;;;;
+1FB6B;LEFT AND UPPER AND RIGHT TRIANGULAR THREE QUARTERS 
BLOCK;So;0;ON;;;;;N;;;;;
+1FB6C;LEFT TRIANGULAR ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+1FB6D;UPPER TRIANGULAR ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+1FB6E;RIGHT TRIANGULAR ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+1FB6F;LOWER TRIANGULAR ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+1FB70;VERTICAL ONE EIGHTH BLOCK-2;So;0;ON;;;;;N;;;;;
+1FB71;VERTICAL ONE EIGHTH BLOCK-3;So;0;ON;;;;;N;;;;;
+1FB72;VERTICAL ONE EIGHTH BLOCK-4;So;0;ON;;;;;N;;;;;
+1FB73;VERTICAL ONE EIGHTH BLOCK-5;So;0;ON;;;;;N;;;;;
+1FB74;VERTICAL ONE EIGHTH BLOCK-6;So;0;ON;;;;;N;;;;;
+1FB75;VERTICAL ONE EIGHTH BLOCK-7;So;0;ON;;;;;N;;;;;
+1FB76;HORIZONTAL ONE EIGHTH BLOCK-2;So;0;ON;;;;;N;;;;;
+1FB77;HORIZONTAL ONE EIGHTH BLOCK-3;So;0;ON;;;;;N;;;;;
+1FB78;HORIZONTAL ONE EIGHTH BLOCK-4;So;0;ON;;;;;N;;;;;
+1FB79;HORIZONTAL ONE EIGHTH BLOCK-5;So;0;ON;;;;;N;;;;;
+1FB7A;HORIZONTAL ONE EIGHTH BLOCK-6;So;0;ON;;;;;N;;;;;
+1FB7B;HORIZONTAL ONE EIGHTH BLOCK-7;So;0;ON;;;;;N;;;;;
+1FB7C;LEFT AND LOWER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+1FB7D;LEFT AND UPPER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+1FB7E;RIGHT AND UPPER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+1FB7F;RIGHT AND LOWER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+1FB80;UPPER AND LOWER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+1FB81;HORIZONTAL ONE EIGHTH BLOCK-1358;So;0;ON;;;;;N;;;;;
+1FB82;UPPER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+1FB83;UPPER THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+1FB84;UPPER FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+1FB85;UPPER THREE QUARTERS BLOCK;So;0;ON;;;;;N;;;;;
+1FB86;UPPER SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+1FB87;RIGHT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
+1FB88;RIGHT THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+1FB89;RIGHT FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+1FB8A;RIGHT THREE QUARTERS BLOCK;So;0;ON;;;;;N;;;;;
+1FB8B;RIGHT SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
+1FB8C;LEFT HALF MEDIUM SHADE;So;0;ON;;;;;N;;;;;
+1FB8D;RIGHT HALF MEDIUM SHADE;So;0;ON;;;;;N;;;;;
+1FB8E;UPPER HALF MEDIUM SHADE;So;0;ON;;;;;N;;;;;
+1FB8F;LOWER HALF MEDIUM SHADE;So;0;ON;;;;;N;;;;;
+1FB90;INVERSE MEDIUM SHADE;So;0;ON;;;;;N;;;;;
+1FB91;UPPER HALF BLOCK AND LOWER HALF INVERSE MEDIUM SHADE;So;0;ON;;;;;N;;;;;
+1FB92;UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK;So;0;ON;;;;;N;;;;;
+1FB94;LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK;So;0;ON;;;;;N;;;;;
+1FB95;CHECKER BOARD FILL;So;0;ON;;;;;N;;;;;
+1FB96;INVERSE CHECKER BOARD FILL;So;0;ON;;;;;N;;;;;
+1FB97;HEAVY HORIZONTAL FILL;So;0;ON;;;;;N;;;;;
+1FB98;UPPER LEFT TO LOWER RIGHT FILL;So;0;ON;;;;;N;;;;;
+1FB99;UPPER RIGHT TO LOWER LEFT FILL;So;0;ON;;;;;N;;;;;
+1FB9A;UPPER AND LOWER TRIANGULAR HALF BLOCK;So;0;ON;;;;;N;;;;;
+1FB9B;LEFT AND RIGHT TRIANGULAR HALF BLOCK;So;0;ON;;;;;N;;;;;
+1FB9C;UPPER LEFT TRIANGULAR MEDIUM SHADE;So;0;ON;;;;;N;;;;;
+1FB9D;UPPER RIGHT TRIANGULAR MEDIUM SHADE;So;0;ON;;;;;N;;;;;
+1FB9E;LOWER RIGHT TRIANGULAR MEDIUM SHADE;So;0;ON;;;;;N;;;;;
+1FB9F;LOWER LEFT TRIANGULAR MEDIUM SHADE;So;0;ON;;;;;N;;;;;
+1FBA0;BOX DRAWINGS LIGHT DIAGONAL UPPER CENTRE TO MIDDLE 
LEFT;So;0;ON;;;;;N;;;;;
+1FBA1;BOX DRAWINGS LIGHT DIAGONAL UPPER CENTRE TO MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FBA2;BOX DRAWINGS LIGHT DIAGONAL MIDDLE LEFT TO LOWER 
CENTRE;So;0;ON;;;;;N;;;;;
+1FBA3;BOX DRAWINGS LIGHT DIAGONAL MIDDLE RIGHT TO LOWER 
CENTRE;So;0;ON;;;;;N;;;;;
+1FBA4;BOX DRAWINGS LIGHT DIAGONAL UPPER CENTRE TO MIDDLE LEFT TO LOWER 
CENTRE;So;0;ON;;;;;N;;;;;
+1FBA5;BOX DRAWINGS LIGHT DIAGONAL UPPER CENTRE TO MIDDLE RIGHT TO LOWER 
CENTRE;So;0;ON;;;;;N;;;;;
+1FBA6;BOX DRAWINGS LIGHT DIAGONAL MIDDLE LEFT TO LOWER CENTRE TO MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FBA7;BOX DRAWINGS LIGHT DIAGONAL MIDDLE LEFT TO UPPER CENTRE TO MIDDLE 
RIGHT;So;0;ON;;;;;N;;;;;
+1FBA8;BOX DRAWINGS LIGHT DIAGONAL UPPER CENTRE TO MIDDLE LEFT AND MIDDLE RIGHT 
TO LOWER CENTRE;So;0;ON;;;;;N;;;;;
+1FBA9;BOX DRAWINGS LIGHT DIAGONAL UPPER CENTRE TO MIDDLE RIGHT AND MIDDLE LEFT 
TO LOWER CENTRE;So;0;ON;;;;;N;;;;;
+1FBAA;BOX DRAWINGS LIGHT DIAGONAL UPPER CENTRE TO MIDDLE RIGHT TO LOWER CENTRE 
TO MIDDLE LEFT;So;0;ON;;;;;N;;;;;
+1FBAB;BOX DRAWINGS LIGHT DIAGONAL UPPER CENTRE TO MIDDLE LEFT TO LOWER CENTRE 
TO MIDDLE RIGHT;So;0;ON;;;;;N;;;;;
+1FBAC;BOX DRAWINGS LIGHT DIAGONAL MIDDLE LEFT TO UPPER CENTRE TO MIDDLE RIGHT 
TO LOWER CENTRE;So;0;ON;;;;;N;;;;;
+1FBAD;BOX DRAWINGS LIGHT DIAGONAL MIDDLE RIGHT TO UPPER CENTRE TO MIDDLE LEFT 
TO LOWER CENTRE;So;0;ON;;;;;N;;;;;
+1FBAE;BOX DRAWINGS LIGHT DIAGONAL DIAMOND;So;0;ON;;;;;N;;;;;
+1FBAF;BOX DRAWINGS LIGHT HORIZONTAL WITH VERTICAL STROKE;So;0;ON;;;;;N;;;;;
+1FBB0;ARROWHEAD-SHAPED POINTER;So;0;ON;;;;;N;;;;;
+1FBB1;INVERSE CHECK MARK;So;0;ON;;;;;N;;;;;
+1FBB2;LEFT HALF RUNNING MAN;So;0;ON;;;;;N;;;;;
+1FBB3;RIGHT HALF RUNNING MAN;So;0;ON;;;;;N;;;;;
+1FBB4;INVERSE DOWNWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;;;;;
+1FBB5;LEFTWARDS ARROW AND UPPER AND LOWER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+1FBB6;RIGHTWARDS ARROW AND UPPER AND LOWER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+1FBB7;DOWNWARDS ARROW AND RIGHT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+1FBB8;UPWARDS ARROW AND RIGHT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
+1FBB9;LEFT HALF FOLDER;So;0;ON;;;;;N;;;;;
+1FBBA;RIGHT HALF FOLDER;So;0;ON;;;;;N;;;;;
+1FBBB;VOIDED GREEK CROSS;So;0;ON;;;;;N;;;;;
+1FBBC;RIGHT OPEN SQUARED DOT;So;0;ON;;;;;N;;;;;
+1FBBD;NEGATIVE DIAGONAL CROSS;So;0;ON;;;;;N;;;;;
+1FBBE;NEGATIVE DIAGONAL MIDDLE RIGHT TO LOWER CENTRE;So;0;ON;;;;;N;;;;;
+1FBBF;NEGATIVE DIAGONAL DIAMOND;So;0;ON;;;;;N;;;;;
+1FBC0;WHITE HEAVY SALTIRE WITH ROUNDED CORNERS;So;0;ON;;;;;N;;;;;
+1FBC1;LEFT THIRD WHITE RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
+1FBC2;MIDDLE THIRD WHITE RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
+1FBC3;RIGHT THIRD WHITE RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
+1FBC4;NEGATIVE SQUARED QUESTION MARK;So;0;ON;;;;;N;;;;;
+1FBC5;STICK FIGURE;So;0;ON;;;;;N;;;;;
+1FBC6;STICK FIGURE WITH ARMS RAISED;So;0;ON;;;;;N;;;;;
+1FBC7;STICK FIGURE LEANING LEFT;So;0;ON;;;;;N;;;;;
+1FBC8;STICK FIGURE LEANING RIGHT;So;0;ON;;;;;N;;;;;
+1FBC9;STICK FIGURE WITH DRESS;So;0;ON;;;;;N;;;;;
+1FBCA;WHITE UP-POINTING CHEVRON;So;0;ON;;;;;N;;;;;
+1FBF0;SEGMENTED DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
+1FBF1;SEGMENTED DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
+1FBF2;SEGMENTED DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
+1FBF3;SEGMENTED DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
+1FBF4;SEGMENTED DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
+1FBF5;SEGMENTED DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
+1FBF6;SEGMENTED DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
+1FBF7;SEGMENTED DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
+1FBF8;SEGMENTED DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
+1FBF9;SEGMENTED DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
 20000;<CJK Ideograph Extension B, First>;Lo;0;L;;;;;N;;;;;
-2A6D6;<CJK Ideograph Extension B, Last>;Lo;0;L;;;;;N;;;;;
+2A6DD;<CJK Ideograph Extension B, Last>;Lo;0;L;;;;;N;;;;;
 2A700;<CJK Ideograph Extension C, First>;Lo;0;L;;;;;N;;;;;
 2B734;<CJK Ideograph Extension C, Last>;Lo;0;L;;;;;N;;;;;
 2B740;<CJK Ideograph Extension D, First>;Lo;0;L;;;;;N;;;;;
@@ -32497,6 +33452,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
 2FA1B;CJK COMPATIBILITY IDEOGRAPH-2FA1B;Lo;0;L;9F16;;;;N;;;;;
 2FA1C;CJK COMPATIBILITY IDEOGRAPH-2FA1C;Lo;0;L;9F3B;;;;N;;;;;
 2FA1D;CJK COMPATIBILITY IDEOGRAPH-2FA1D;Lo;0;L;2A600;;;;N;;;;;
+30000;<CJK Ideograph Extension G, First>;Lo;0;L;;;;;N;;;;;
+3134A;<CJK Ideograph Extension G, Last>;Lo;0;L;;;;;N;;;;;
 E0001;LANGUAGE TAG;Cf;0;BN;;;;;N;;;;;
 E0020;TAG SPACE;Cf;0;BN;;;;;N;;;;;
 E0021;TAG EXCLAMATION MARK;Cf;0;BN;;;;;N;;;;;
diff --git a/admin/unidata/blocks.awk b/admin/unidata/blocks.awk
index 03acf1e..1e85eec 100755
--- a/admin/unidata/blocks.awk
+++ b/admin/unidata/blocks.awk
@@ -55,6 +55,7 @@ BEGIN {
     alias["box drawing"] = "symbol"
     alias["block elements"] = "symbol"
     alias["miscellaneous symbols"] = "symbol"
+    alias["symbols for legacy computing"] = "symbol"
     alias["cjk strokes"] = "cjk-misc"
     alias["cjk symbols and punctuation"] = "cjk-misc"
     alias["halfwidth and fullwidth forms"] = "cjk-misc"
diff --git a/admin/unidata/copyright.html b/admin/unidata/copyright.html
index 2f5c88d..6bbc16b 100644
--- a/admin/unidata/copyright.html
+++ b/admin/unidata/copyright.html
@@ -32,15 +32,13 @@ pre {
       <td colspan="2">
       <table width="100%" border="0" cellpadding="0" cellspacing="0">
         <tr>
-
- <td class="icon"><a href="http://www.unicode.org/";><img border="0"
-          src="http://www.unicode.org/webscripts/logo60s2.gif"; align="middle"
-          alt="[Unicode]" width="34" height="33"></a>&nbsp;&nbsp;<a class="bar"
-          href="https://www.unicode.org/copyright.html";><font size="3">Terms of
-          Use</font></a></td>
-          <td class="bar"><a href="http://www.unicode.org"; class="bar">Home</a>
-          | <a href="http://www.unicode.org/sitemap/"; class="bar">Site Map</a> 
|
-          <a href="http://www.unicode.org/search"; class="bar">Search </a></td>
+          <td class="icon" style="width:38px; height:35px"><a 
href="http://www.unicode.org/";><img border="0"
+      src="http://www.unicode.org/webscripts/logo60s2.gif"; align="middle" 
alt="[Unicode]" width="34" height="33"></a></td>
+          <td class="icon" style="vertical-align:middle;"> &nbsp;<a class="bar"
+          href="https://www.unicode.org/copyright.html";><font size="3">Terms 
of Use</font></a></td>
+          <td class="bar"><a href="https://www.unicode.org/main.html"; 
class="bar">Tech Site</a>
+          | <a href="https://www.unicode.org/sitemap/"; class="bar">Site 
Map</a> |
+          <a href="https://www.unicode.org/search"; class="bar">Search </a></td>
         </tr>
       </table>
       </td>
@@ -120,7 +118,7 @@ pre {
             <ol type="A">
               <li><u><a name="1"></a>Unicode Copyright</u>
               <ol>
-                <li>Copyright © 1991-2019 Unicode, Inc. All rights 
reserved.</li>
+                <li>Copyright © 1991-2020 Unicode, Inc. All rights 
reserved.</li>
               </ol>
               </li>
 
@@ -138,7 +136,7 @@ Unicode Software ("SOFTWARE") includes any source code 
published in the Unicode
 or any source code or compiled code under the directories:
 https://www.unicode.org/Public/PROGRAMS/
 https://www.unicode.org/Public/cldr/
-https://site.icu-project.org/download/
+http://site.icu-project.org/download/
 </pre>
               </li>
 
diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi
index 02f1886..8a05680 100644
--- a/doc/emacs/building.texi
+++ b/doc/emacs/building.texi
@@ -214,6 +214,7 @@ Select a buffer to be used by next invocation of 
@code{next-error} and
 @kindex C-x `
 @findex next-error
 @vindex next-error-highlight
+@vindex next-error-highlight-no-select
   To visit errors sequentially, type @w{@kbd{C-x `}}
 (@code{next-error}), or equivalently @kbd{M-g M-n} or @kbd{M-g n}.
 This command can be invoked from any buffer, not just a Compilation
@@ -258,7 +259,9 @@ to skip any messages.
 
   When Emacs visits the locus of an error message, it momentarily
 highlights the relevant source line.  The duration of this highlight
-is determined by the variable @code{next-error-highlight}.
+is determined by the variable @code{next-error-highlight} for the locus
+in the selected buffer, and @code{next-error-highlight-no-select} for
+the locus in non-selected buffers.
 
 @vindex compilation-context-lines
   If the @file{*compilation*} buffer is shown in a window with a left
@@ -972,9 +975,27 @@ displays the following frame layout:
 @end group
 @end smallexample
 
+@findex gdb-save-window-configuration
+@findex gdb-load-window-configuration
+@vindex gdb-default-window-configuration-file
+@vindex gdb-window-configuration-directory
+  You can customize the window layout based on the one above and save
+that layout to a file using @code{gdb-save-window-configuration}.
+Then you can later load this layout back using
+@code{gdb-load-window-configuration}.  (Internally, Emacs uses the
+term window configuration instead of window layout.)  You can set your
+custom layout as the default one used by @code{gdb-many-windows} by
+customizing @code{gdb-default-window-configuration-file}.  If it is
+not an absolute file name, GDB looks under
+@code{gdb-window-configuration-directory} for the file.
+@code{gdb-window-configuration-directory} defaults to
+@code{user-emacs-directory} (@pxref{Find Init}).
+
+
 @findex gdb-restore-windows
 @findex gdb-many-windows
-  If you ever change the window layout, you can restore the many-windows
+@vindex gdb-restore-window-configuration-after-quit
+  If you ever change the window layout, you can restore the default
 layout by typing @kbd{M-x gdb-restore-windows}.  To toggle
 between the many windows layout and a simple layout with just the GUD
 interaction buffer and a source file, type @kbd{M-x gdb-many-windows}.
@@ -985,7 +1006,13 @@ interaction buffer and a source file, type @kbd{M-x 
gdb-many-windows}.
 of windows on your original frame will not be affected.  A separate
 frame for GDB sessions can come in especially handy if you work on a
 text-mode terminal, where the screen estate for windows could be at a
-premium.
+premium.  If you choose to start GDB in the same frame, consider
+setting @code{gdb-restore-window-configuration-after-quit} to a
+non-@code{nil} value.  Your original layout will then be restored
+after GDB quits.  Use @code{t} to always restore; use
+@code{if-gdb-many-windows} to restore only when
+@code{gdb-many-windows} is non-@code{nil}; use @code{if-gdb-show-main}
+to restore only when @code{gdb-show-main} is non-@code{nil}.
 
   You may also specify additional GDB-related buffers to display,
 either in the same frame or a different one.  Select the buffers you
@@ -1528,13 +1555,6 @@ Automatic loading also occurs when completing names for
 prefix being completed.  To disable this feature, change the variable
 @code{help-enable-completion-autoload} to @code{nil}.
 
-@vindex load-dangerous-libraries
-@cindex Lisp files byte-compiled by XEmacs
-  By default, Emacs refuses to load compiled Lisp files which were
-compiled with XEmacs, a modified version of Emacs---they can cause
-Emacs to crash.  Set the variable @code{load-dangerous-libraries} to
-@code{t} if you want to try loading them.
-
 @node Lisp Eval
 @section Evaluating Emacs Lisp Expressions
 @cindex Emacs Lisp mode
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index f39ce40..e7e8790 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -1873,15 +1873,19 @@ You can use a vector for the simple cases too:
   Language and coding systems may cause problems with key bindings for
 non-@acronym{ASCII} characters.  @xref{Init Non-ASCII}.
 
+@findex define-key
   As described in @ref{Local Keymaps}, major modes and minor modes can
 define local keymaps.  These keymaps are constructed when the mode is
-used for the first time in a session.  If you wish to change one of
-these keymaps, you must use the @dfn{mode hook} (@pxref{Hooks}).
+loaded for the first time in a session.  The function @code{define-key}
+can be used to make changes in a specific keymap.  This function can
+also unset keys, when passed @code{nil} as the binding.
 
-@findex define-key
-  For example, Texinfo mode runs the hook @code{texinfo-mode-hook}.
-Here's how you can use the hook to add local bindings for @kbd{C-c n}
-and @kbd{C-c p} in Texinfo mode:
+  Since a mode's keymaps are not constructed until it has been loaded,
+you must delay running code which modifies them, e.g., by putting it
+on a @dfn{mode hook} (@pxref{(Hooks)}).  For example, Texinfo mode
+runs the hook @code{texinfo-mode-hook}.  Here's how you can use the
+hook to add local bindings for @kbd{C-c n} and @kbd{C-c p}, and remove
+the one for @kbd{C-c C-x x} in Texinfo mode:
 
 @example
 (add-hook 'texinfo-mode-hook
@@ -1890,6 +1894,7 @@ and @kbd{C-c p} in Texinfo mode:
                         'backward-paragraph)
             (define-key texinfo-mode-map "\C-cn"
                         'forward-paragraph)))
+            (define-key texinfo-mode-map "\C-c\C-xx" nil)
 @end example
 
 @node Modifier Keys
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index c3cb37e..6ef4ca6 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -785,6 +785,7 @@ GDB Graphical Interface
 Maintaining Large Programs
 
 * Version Control::     Using version control systems.
+* Projects::            Commands for handling source files in a project.
 * Change Log::          Maintaining a change history for your program.
 * Xref::                Find definitions and references of any function,
                           method, struct, macro, @dots{} in your program.
diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi
index 002297c..7a583b9 100644
--- a/doc/emacs/frames.texi
+++ b/doc/emacs/frames.texi
@@ -217,10 +217,15 @@ default bound to scrolling with the @key{Ctrl} modifier.
 @vindex mouse-wheel-tilt-scroll
 @vindex mouse-wheel-flip-direction
 Emacs can also support horizontal scrolling if your mouse's wheel can
-be tilted.  This feature is off by default; the variable
-@code{mouse-wheel-tilt-scroll} turns it on.  If you'd like to reverse
-the direction of horizontal scrolling, customize the variable
-@code{mouse-wheel-flip-direction} to a non-@code{nil} value.
+be tilted, or if your touchpad supports it.  This feature is off by
+default; the variable @code{mouse-wheel-tilt-scroll} turns it on, if
+you customize it to a non-@code{nil} value.  By default, tilting the
+mouse wheel scrolls the window's view horizontally in the direction of
+the tilt: e.g., tilting to the right scrolls the window to the right,
+so that the text displayed in the window moves horizontally to the
+left.  If you'd like to reverse the direction of horizontal scrolling,
+customize the variable @code{mouse-wheel-flip-direction} to a
+non-@code{nil} value.
 
 When the mouse pointer is over an image, scrolling the mouse wheel
 with the @key{Ctrl} modifier scales the image under the mouse pointer.
diff --git a/doc/emacs/macos.texi b/doc/emacs/macos.texi
index ae1b8d6..00daa8b 100644
--- a/doc/emacs/macos.texi
+++ b/doc/emacs/macos.texi
@@ -143,6 +143,64 @@ The variables for right-hand keys, like 
@code{ns-right-alternate-modifier},
 may also be set to @code{left}, which means to use the same behavior as
 the corresponding left-hand key.
 
+@subsection Frame Variables
+
+@table @code
+@vindex ns-use-proxy-icon
+@item ns-use-proxy-icon
+This variable specifies whether to display the proxy icon in the
+titlebar.
+
+@vindex ns-confirm-quit
+@item ns-confirm-quit
+This variable specifies whether to display a graphical confirmation
+dialogue on quitting.
+
+@vindex ns-auto-hide-menu-bar
+@item ns-auto-hide-menu-bar
+This variable specifies whether the macOS menu bar is hidden when an
+Emacs frame is selected.  If non-nil the menu bar is not shown unless
+the mouse pointer is moved near to the top of the screen.
+
+@vindex ns-use-native-fullscreen
+@item ns-use-native-fullscreen
+This variable controls whether to use native, or non-native
+fullscreen.  Native fullscreen is only available on macOS 10.7 and
+above.
+@end table
+
+@subsection macOS Trackpad/Mousewheel Variables
+
+These variables only apply to macOS 10.7 (Lion) and above.
+
+@table @code
+@vindex ns-use-mwheel-acceleration
+@item ns-use-mwheel-acceleration
+This variable controls whether Emacs ignores the system mousewheel
+acceleration.  When nil each `click' of the mousewheel will correspond
+exactly with one mousewheel event.  When non-nil, the default, each
+`click' may correspond with more than one mousewheel event, depending
+on the user's input.
+
+@vindex ns-use-mwheel-momentum
+@item ns-use-mwheel-momentum
+This variable controls whether Emacs ignores the system `momentum'
+when scrolling using a trackpad.  When non-nil, the default, scrolling
+rapidly may result in the buffer continuing to scroll for a short
+while after the user has lifted their fingers off the trackpad.
+
+@vindex ns-mwheel-line-height
+@item ns-mwheel-line-height
+This variable controls the sensitivity of scrolling with the trackpad.
+Apple trackpads scroll by pixels, not lines, so Emacs converts the
+system's pixel values into lines.  When set to a number, this variable
+sets the number of pixels Emacs will consider as one line.  When nil
+or a non-number the default line height is used.
+
+Setting a lower number makes the trackpad more sensitive, and a higher
+number makes the trackpad less sensitive.
+@end table
+
 @subsection Font Panel
 
 @findex ns-popup-font-panel
@@ -153,17 +211,6 @@ recently used or clicked on.
 @c  To make the setting permanent, use @samp{Save Options} in the
 @c Options menu, or run @code{menu-bar-options-save}.
 
-@cindex Core Text, on macOS
-@cindex font backend, on macOS
-In macOS, Emacs uses a Core Text based font backend
-by default.  If you prefer the older font style, enter the following
-at the command-line before starting Emacs:
-
-@example
-% defaults write org.gnu.Emacs FontBackend ns
-@end example
-
-
 @node Mac / GNUstep Events
 @section Windowing System Events under macOS / GNUstep
 @cindex events on macOS
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
index a6f66f6..ebcdddf 100644
--- a/doc/emacs/maintaining.texi
+++ b/doc/emacs/maintaining.texi
@@ -14,6 +14,9 @@ Unified interface to Support for Version Control Systems
 (@acronym{VCS}) that record the history of changes to source files.
 
 @item
+Commands for handling programming projects.
+
+@item
 A specialized mode for maintaining @file{ChangeLog} files that provide
 a chronological log of program changes.
 
@@ -38,6 +41,7 @@ Lisp Regression Testing}).
 
 @menu
 * Version Control::     Using version control systems.
+* Projects::            Commands for handling source files in a project.
 * Change Log::          Maintaining a change history for your program.
 * Xref::                Find definitions and references of any function,
                           method, struct, macro, @dots{} in your program.
@@ -1630,6 +1634,77 @@ different revision with @kbd{C-u C-x v v}.
 @include vc1-xtra.texi
 @end ifnottex
 
+@node Projects
+@section Working with Projects
+@cindex projects
+
+@cindex project root
+  A @dfn{project} is a collection of files used for producing one or
+more programs.  Files that belong to a project are typically stored in
+a hierarchy of directories; the top-level directory of the hierarchy
+is known as the @dfn{project root}.
+
+@cindex project back-end
+  Whether a given directory is a root of some project is determined by
+the project-specific infrastructure, known as @dfn{project back-end}.
+Emacs currently supports two such back-ends: VC (@pxref{Version
+Control}), whereby a VCS repository is considered a project; and EDE
+(@pxref{EDE}).  This is expected to be extended in the future to
+support additional types of projects.
+
+  Which files do or don't belong to a project is also determined by
+the project back-end.  For example, the VC back-end doesn't consider
+``ignored'' files (@pxref{VC Ignore}) to be part of the project.
+
+  Emacs provides commands for handling project files conveniently.
+This section describes these commands.
+
+@cindex current project
+  All of the commands described here share the notion of the
+@dfn{current project}.  The current project is determined by the
+@code{default-directory} (@pxref{File Names}) of the buffer that is
+the current buffer when the command is invoked.  If that directory
+doesn't seem to belong to a recognizable project, these commands
+prompt you for the project directory.
+
+@findex project-find-file
+  The command @code{project-find-file} is a convenient way of visiting
+files (@pxref{Visiting}) that belong to the current project.  Unlike
+@kbd{C-x C-f}, this command doesn't require to type the full file name
+of the file to visit, you can type only the file's base name (i.e.,
+omit the leading directories).  In addition, the completion candidates
+considered by the command include only the files belonging to the
+current project, and nothing else.  If there's a file name at point,
+this command offers that file as the default to visit.
+
+@findex project-find-regexp
+  The command @code{project-find-regexp} is similar to @code{rgrep}
+(@pxref{Grep Searching}), but it searches only the files that belong
+to the current project.  The command prompts for the regular
+expression to search, and pops up an Xref mode buffer with the search
+results, where you can select a match using the Xref mode commands
+(@pxref{Xref Commands}).  When invoked with a prefix argument, this
+command additionally prompts for the base directory from which to
+start the search; this allows, for example, to limit the search only
+to project files under a certain subdirectory of the project root.
+
+@findex project-search
+  @kbd{M-x project-search} is an interactive variant of
+@code{project-find-regexp}.  It prompts for a regular expression to
+search in the current project's files, but instead of finding all the
+matches and displaying them, it stops when it finds a match and visits
+the matched file at the locus of the match, allowing you to edit the
+matched file.  To find the rest of the matches, type @w{@kbd{M-x
+fileloop-continue @key{RET}}}.
+
+@findex project-query-replace-regexp
+  @kbd{M-x project-query-replace-regexp} is similar to
+@code{project-search}, but it prompts you for whether to replace each
+match it finds, like @code{query-replace} does (@pxref{Query
+Replace}), and continues to the next match after you respond.  If your
+response causes Emacs to exit the query-replace loop, you can later
+continue with @w{@kbd{M-x fileloop-continue @key{RET}}}.
+
 @node Change Log
 @section Change Logs
 
diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi
index 5d2a007..55e41e3 100644
--- a/doc/emacs/mini.texi
+++ b/doc/emacs/mini.texi
@@ -813,35 +813,23 @@ varieties.
 
 @cindex y or n prompt
   For the first type of yes-or-no query, the prompt ends with
-@samp{(y or n)}.  Such a query does not actually use the minibuffer;
-the prompt appears in the echo area, and you answer by typing either
-@samp{y} or @samp{n}, which immediately delivers the response.  For
-example, if you type @kbd{C-x C-w} (@kbd{write-file}) to save a
-buffer, and enter the name of an existing file, Emacs issues a prompt
-like this:
+@w{@samp{(y or n)}}.  You answer the query by typing a single key,
+either @samp{y} or @samp{n}, which immediately exits the minibuffer
+and delivers the response.  For example, if you type @kbd{C-x C-w}
+(@kbd{write-file}) to save a buffer, and enter the name of an existing
+file, Emacs issues a prompt like this:
 
 @smallexample
 File ‘foo.el’ exists; overwrite? (y or n)
 @end smallexample
 
-@noindent
-Because this query does not actually use the minibuffer, the usual
-minibuffer editing commands cannot be used.  However, you can perform
-some window scrolling operations while the query is active: @kbd{C-l}
-recenters the selected window; @kbd{C-v} (or @key{PageDown}, or
-@key{next}) scrolls forward; @kbd{M-v} (or @key{PageUp}, or
-@key{prior}) scrolls backward; @kbd{C-M-v} scrolls forward in the next
-window; and @kbd{C-M-S-v} scrolls backward in the next window.  Typing
-@kbd{C-g} dismisses the query, and quits the command that issued it
-(@pxref{Quitting}).
-
 @cindex yes or no prompt
-  The second type of yes-or-no query is typically employed if
-giving the wrong answer would have serious consequences; it uses the
-minibuffer, and features a prompt ending with @samp{(yes or no)}.  For
-example, if you invoke @kbd{C-x k} (@code{kill-buffer}) on a
-file-visiting buffer with unsaved changes, Emacs activates the
-minibuffer with a prompt like this:
+  The second type of yes-or-no query is typically employed if giving
+the wrong answer would have serious consequences; it thus features a
+longer prompt ending with @samp{(yes or no)}.  For example, if you
+invoke @kbd{C-x k} (@code{kill-buffer}) on a file-visiting buffer with
+unsaved changes, Emacs activates the minibuffer with a prompt like
+this:
 
 @smallexample
 Buffer foo.el modified; kill anyway? (yes or no)
@@ -849,7 +837,12 @@ Buffer foo.el modified; kill anyway? (yes or no)
 
 @noindent
 To answer, you must type @samp{yes} or @samp{no} into the minibuffer,
-followed by @key{RET}.  The minibuffer behaves as described in the
-previous sections; you can switch to another window with @kbd{C-x o},
-use the history commands @kbd{M-p} and @kbd{M-n}, etc.  Type @kbd{C-g}
-to quit the minibuffer and the querying command.
+followed by @key{RET}.
+
+With both types of yes-or-no query the minibuffer behaves as described
+in the previous sections; you can recenter the selected window with
+@kbd{C-l}, scroll that window (@kbd{C-v} or @kbd{PageDown} scrolls
+forward, @kbd{M-v} or @kbd{PageUp} scrolls backward), switch to
+another window with @kbd{C-x o}, use the history commands @kbd{M-p}
+and @kbd{M-n}, etc.  Type @kbd{C-g} to dismiss the query, and quit the
+minibuffer and the querying command (@pxref{Quitting}).
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi
index 683374c..865a3a6 100644
--- a/doc/emacs/programs.texi
+++ b/doc/emacs/programs.texi
@@ -1269,9 +1269,27 @@ information whenever there is a Lisp function or 
variable at point;
 for a function, it shows the argument list, and for a variable it
 shows the first line of the variable's documentation string.  To
 toggle Eldoc mode, type @kbd{M-x eldoc-mode}.  There's also a Global
-Eldoc mode, which is turned on by default, and affects buffers, such
-as @samp{*scratch*}, whose major mode is Emacs Lisp or Lisp
-Interaction (@w{@kbd{M-x global-eldoc-mode}} to turn it off globally).
+Eldoc mode, which is turned on by default, and affects buffers whose
+major mode sets the variables described below.  Use @w{@kbd{M-x
+global-eldoc-mode}} to turn it off globally.
+
+@vindex eldoc-documentation-function
+@vindex eldoc-documentation-functions
+  These variables can be used to configure ElDoc mode:
+
+@table @code
+@item eldoc-documentation-function
+This variable holds the function which is used to retrieve
+documentation for the item at point from the functions in the hook
+@code{eldoc-documentation-functions}.  By default,
+@code{eldoc-documentation-function} returns the first documentation
+string produced by the @code{eldoc-documentation-functions} hook.
+
+@item eldoc-documentation-functions
+This abnormal hook holds documentation functions.  It acts as a
+collection of backends for ElDoc.  This is what modes should use to
+register their documentation functions with ElDoc.
+@end table
 
 @node Hideshow
 @section Hideshow minor mode
diff --git a/doc/emacs/sending.texi b/doc/emacs/sending.texi
index 283a59a..190549a 100644
--- a/doc/emacs/sending.texi
+++ b/doc/emacs/sending.texi
@@ -338,14 +338,14 @@ Send the message, and leave the mail buffer selected 
(@code{message-send}).
 @kindex C-c C-s @r{(Message mode)}
 @kindex C-c C-c @r{(Message mode)}
 @findex message-send
+@findex message-send-and-exit
 @vindex message-kill-buffer-on-exit
   The usual command to send a message is @kbd{C-c C-c}
-(@code{mail-send-and-exit}).  This sends the message and then
+(@code{message-send-and-exit}).  This sends the message and then
 buries the mail buffer, putting it at the lowest priority for
 reselection.  If you want it to kill the mail buffer instead, change
 the variable @code{message-kill-buffer-on-exit} to @code{t}.
 
-@findex message-send-and-exit
   The command @kbd{C-c C-s} (@code{message-send}) sends the message
 and leaves the buffer selected.  Use this command if you want to
 modify the message (perhaps with new recipients) and send it again.
@@ -361,9 +361,12 @@ twice).
 @cindex Feedmail
 @cindex Sendmail
 @cindex Mailclient
+@vindex message-send-mail-function
 @vindex send-mail-function
-  The variable @code{send-mail-function} controls how the message is
-delivered.  Its value should be one of the following functions:
+  The variable @code{message-send-mail-function} controls how the
+message is delivered (@code{send-mail-function} is used for Mail mode).
+The value of @code{send-mail-function} should be one of the following
+functions:
 
 @table @code
 @item sendmail-query-once
diff --git a/doc/lispref/compile.texi b/doc/lispref/compile.texi
index 311b6f5..e979fda 100644
--- a/doc/lispref/compile.texi
+++ b/doc/lispref/compile.texi
@@ -302,7 +302,7 @@ function is called, it reads the full definition from the 
file, to
 replace the place-holder.
 
   The advantage of dynamic function loading is that loading the file
-becomes much faster.  This is a good thing for a file which contains
+should become faster.  This is a good thing for a file which contains
 many separate user-callable functions, if using one of them does not
 imply you will probably also use the rest.  A specialized mode which
 provides many keyboard commands often has that usage pattern: a user may
@@ -326,6 +326,10 @@ installed Emacs files.  But they are quite likely to 
happen with Lisp
 files that you are changing.  The easiest way to prevent these problems
 is to reload the new compiled file immediately after each recompilation.
 
+  @emph{Experience shows that using dynamic function loading provides
+benefits that are hardly measurable, so this feature is deprecated
+since Emacs 27.1.}
+
   The byte compiler uses the dynamic function loading feature if the
 variable @code{byte-compile-dynamic} is non-@code{nil} at compilation
 time.  Do not set this variable globally, since dynamic loading is
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index cc50cf1..2adf64d 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -948,7 +948,7 @@ also checks that the file's group would be unchanged.
 This function does not follow symbolic links.
 @end defun
 
-@defun file-modes filename
+@defun file-modes filename &optional flag
 @cindex mode bits
 @cindex file permissions
 @cindex permissions, file
@@ -966,12 +966,19 @@ The highest possible value is 4095 (7777 octal), meaning 
that everyone
 has read, write, and execute permission, the @acronym{SUID} bit is set
 for both others and group, and the sticky bit is set.
 
+By default this function follows symbolic links.  However, if the
+optional argument @var{flag} is the symbol @code{nofollow}, this
+function does not follow @var{filename} if it is a symbolic link;
+this can help prevent inadvertently obtaining the mode bits of a file
+somewhere else, and is more consistent with @code{file-attributes}
+(@pxref{File Attributes}).
+
 @xref{Changing Files}, for the @code{set-file-modes} function, which
 can be used to set these permissions.
 
 @example
 @group
-(file-modes "~/junk/diffs")
+(file-modes "~/junk/diffs" 'nofollow)
      @result{} 492               ; @r{Decimal integer.}
 @end group
 @group
@@ -980,7 +987,7 @@ can be used to set these permissions.
 @end group
 
 @group
-(set-file-modes "~/junk/diffs" #o666)
+(set-file-modes "~/junk/diffs" #o666 'nofollow)
      @result{} nil
 @end group
 
@@ -1821,9 +1828,17 @@ See also @code{delete-directory} in @ref{Create/Delete 
Dirs}.
 @cindex file permissions, setting
 @cindex permissions, file
 @cindex file modes, setting
-@deffn Command set-file-modes filename mode
+@deffn Command set-file-modes filename mode &optional flag
 This function sets the @dfn{file mode} (or @dfn{permissions}) of
-@var{filename} to @var{mode}.  This function follows symbolic links.
+@var{filename} to @var{mode}.
+
+By default this function follows symbolic links.  However, if the
+optional argument @var{flag} is the symbol @code{nofollow}, this
+function does not follow @var{filename} if it is a symbolic link;
+this can help prevent inadvertently changing the mode bits of a file
+somewhere else.  On platforms that do not support changing mode bits
+on a symbolic link, this function signals an error when @var{filename}
+is a symbolic link and @var{flag} is @code{nofollow}.
 
 If called non-interactively, @var{mode} must be an integer.  Only the
 lowest 12 bits of the integer are used; on most systems, only the
@@ -1831,7 +1846,7 @@ lowest 9 bits are meaningful.  You can use the Lisp 
construct for
 octal numbers to enter @var{mode}.  For example,
 
 @example
-(set-file-modes #o644)
+(set-file-modes "myfile" #o644 'nofollow)
 @end example
 
 @noindent
@@ -1914,11 +1929,19 @@ omitted or @code{nil}, it defaults to 0, i.e., no 
access rights at
 all.
 @end defun
 
-@defun set-file-times filename &optional time
+@defun set-file-times filename &optional time flag
 This function sets the access and modification times of @var{filename}
 to @var{time}.  The return value is @code{t} if the times are successfully
 set, otherwise it is @code{nil}.  @var{time} defaults to the current
 time and must be a time value (@pxref{Time of Day}).
+
+By default this function follows symbolic links.  However, if the
+optional argument @var{flag} is the symbol @code{nofollow}, this
+function does not follow @var{filename} if it is a symbolic link;
+this can help prevent inadvertently changing the times of a file
+somewhere else.  On platforms that do not support changing times
+on a symbolic link, this function signals an error when @var{filename}
+is a symbolic link and @var{flag} is @code{nofollow}.
 @end defun
 
 @defun set-file-extended-attributes filename attribute-alist
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index caa08ff..905e5c2 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -3264,7 +3264,7 @@ that deletion fails for whatever reason, the child frame 
is made a
 top-level frame.
 
   Whether a child frame can have a menu or tool bar is window-system or
-window manager dependent.  Most window-systems explicitly disallow menus
+window manager dependent.  Most window-systems explicitly disallow menu
 bars for child frames.  It seems advisable to disable both, menu and
 tool bars, via the frame's initial parameters settings.
 
diff --git a/doc/lispref/internals.texi b/doc/lispref/internals.texi
index 442f6d1..0c24dac 100644
--- a/doc/lispref/internals.texi
+++ b/doc/lispref/internals.texi
@@ -2022,6 +2022,20 @@ variable values and buffer content may have been 
modified in arbitrary
 ways.
 @end deftypefn
 
+@anchor{open_channel}
+@deftypefun int open_channel (emacs_env *@var{env}, emacs_value 
@var{pipe_process})
+This function, which is available since Emacs 27, opens a channel to
+an existing pipe process.  @var{pipe_process} must refer to an
+existing pipe process created by @code{make-pipe-process}.  @ref{Pipe
+Processes}.  If successful, the return value will be a new file
+descriptor that you can use to write to the pipe.  Unlike all other
+module functions, you can use the returned file descriptor from
+arbitrary threads, even if no module environment is active.  You can
+use the @code{write} function to write to the file descriptor.  Once
+done, close the file descriptor using @code{close}.  @ref{Low-Level
+I/O,,,libc}.
+@end deftypefun
+
 @node Module Nonlocal
 @subsection Nonlocal Exits in Modules
 @cindex nonlocal exits, in modules
diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi
index ac38b9d..2488fb3 100644
--- a/doc/lispref/minibuf.texi
+++ b/doc/lispref/minibuf.texi
@@ -2236,16 +2236,16 @@ the end of @var{question}.  The possible responses are 
provided in
 @noindent
 where @var{long-answer} is the complete text of the user response, a
 string; @var{short-answer} is a short form of the same response, a
-single character; and @var{help-message} is the text that describes
-the meaning of the answer.  If the variable @code{read-answer-short}
-is non-@code{nil}, the prompt will show the short variants of the
-possible answers and the user is expected to type the single
-characters shown in the prompt; otherwise the prompt will show the
-long variants of the answers, and the user is expected to type the
-full text of one of the answers and end by pressing @key{RET}.  If
-@code{use-dialog-box} is non-@code{nil}, and this function was invoked
-by mouse events, the question and the answers will be displayed in a
-GUI dialog box.
+single character or a function key; and @var{help-message} is the text
+that describes the meaning of the answer.  If the variable
+@code{read-answer-short} is non-@code{nil}, the prompt will show the
+short variants of the possible answers and the user is expected to
+type the single characters/keys shown in the prompt; otherwise the
+prompt will show the long variants of the answers, and the user is
+expected to type the full text of one of the answers and end by
+pressing @key{RET}.  If @code{use-dialog-box} is non-@code{nil}, and
+this function was invoked by mouse events, the question and the
+answers will be displayed in a GUI dialog box.
 
 The function returns the text of the @var{long-answer} selected by the
 user, regardless of whether long or short answers were shown in the
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index f380f16..f8cf457 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -1428,7 +1428,7 @@ or to switch back to an existing one."
   (lisp-mode-variables nil t)
   (setq-local find-tag-default-function 'lisp-find-tag-default)
   (setq-local comment-start-skip
-              "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\)\\(;+\\|#|\\) *")
+              "\\(\\(^\\|[^\\\n]\\)\\(\\\\\\\\\\)*\\)\\(;+\\|#|\\) *")
   (setq imenu-case-fold-search t))
 @end group
 @end smallexample
diff --git a/doc/lispref/numbers.texi b/doc/lispref/numbers.texi
index c8941ea..4002b36 100644
--- a/doc/lispref/numbers.texi
+++ b/doc/lispref/numbers.texi
@@ -34,39 +34,6 @@ numbers have a fixed amount of precision.
 @node Integer Basics
 @section Integer Basics
 
-  Integers in Emacs Lisp are not limited to the machine word size.
-
-  Under the hood, though, there are two kinds of integers: smaller
-ones, called @dfn{fixnums}, and larger ones, called @dfn{bignums}.
-Some functions in Emacs accept only fixnums.  Also, while fixnums can
-be compared for numeric equality with @code{eq}, bignums require
-more-heavyweight equality predicates like @code{eql} and @code{=}.
-
-  The range of values for bignums is limited by the amount of main
-memory, by machine characteristics such as the size of the word used
-to represent a bignum's exponent, and by the @code{integer-width}
-variable.  These limits are typically much more generous than the
-limits for fixnums.  A bignum is never numerically equal to a fixnum;
-if Emacs computes an integer in fixnum range, it represents the
-integer as a fixnum, not a bignum.
-
-  The range of values for a fixnum depends on the machine.  The
-minimum range is @minus{}536,870,912 to 536,870,911 (30 bits; i.e.,
-@ifnottex
-@minus{}2**29
-@end ifnottex
-@tex
-@math{-2^{29}}
-@end tex
-to
-@ifnottex
-2**29 @minus{} 1),
-@end ifnottex
-@tex
-@math{2^{29}-1}),
-@end tex
-but many machines provide a wider range.
-
   The Lisp reader reads an integer as a nonempty sequence
 of decimal digits with optional initial sign and optional
 final period.
@@ -145,6 +112,46 @@ arguments to such functions may be either numbers or 
markers, we often
 give these arguments the name @var{number-or-marker}.  When the argument
 value is a marker, its position value is used and its buffer is ignored.
 
+  In Emacs Lisp, text characters are represented by integers.  Any
+integer between zero and the value of @code{(max-char)}, inclusive, is
+considered to be valid as a character.  @xref{Character Codes}.
+
+  Integers in Emacs Lisp are not limited to the machine word size.
+Under the hood, though, there are two kinds of integers: smaller ones,
+called @dfn{fixnums}, and larger ones, called @dfn{bignums}.  Although
+Emacs Lisp code ordinarily should not depend on whether an integer is
+a fixnum or a bignum, older Emacs versions support only fixnums, some
+functions in Emacs still accept only fixnums, and older Emacs Lisp
+code may have trouble when given bignums.  For example, while older
+Emacs Lisp code could safely compare integers for numeric equality
+with @code{eq}, the presence of bignums means that equality predicates
+like @code{eql} and @code{=} should now be used to compare integers.
+
+  The range of values for bignums is limited by the amount of main
+memory, by machine characteristics such as the size of the word used
+to represent a bignum's exponent, and by the @code{integer-width}
+variable.  These limits are typically much more generous than the
+limits for fixnums.  A bignum is never numerically equal to a fixnum;
+Emacs always represents an integer in fixnum range as a fixnum, not a
+bignum.
+
+  The range of values for a fixnum depends on the machine.  The
+minimum range is @minus{}536,870,912 to 536,870,911 (30 bits; i.e.,
+@ifnottex
+@minus{}2**29
+@end ifnottex
+@tex
+@math{-2^{29}}
+@end tex
+to
+@ifnottex
+2**29 @minus{} 1),
+@end ifnottex
+@tex
+@math{2^{29}-1}),
+@end tex
+but many machines provide a wider range.
+
 @cindex largest fixnum
 @cindex maximum fixnum
 @defvar most-positive-fixnum
@@ -207,10 +214,6 @@ Setting this variable to a large number can be costly if a 
computation
 creates huge integers.
 @end defvar
 
-  In Emacs Lisp, text characters are represented by integers.  Any
-integer between zero and the value of @code{(max-char)}, inclusive, is
-considered to be valid as a character.  @xref{Character Codes}.
-
 @node Float Basics
 @section Floating-Point Basics
 
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index a034ccd..e72858b 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -1979,10 +1979,9 @@ The result is @code{nil} if either argument is a NaN.
 
 @defun time-subtract t1 t2
 This returns the time difference @var{t1} @minus{} @var{t2} between
-two time values, normally as a Lisp timestamp but as a float
-if either argument is infinite or a NaN@.
-When the result is a timestamp, it is exact and its clock
+two time values, as a Lisp time value.  The result is exact and its clock
 resolution is no worse than the worse of its two arguments' resolutions.
+The result is floating-point only if it is infinite or a NaN.
 If you need the difference in units
 of elapsed seconds, you can convert it with @code{time-convert} or
 @code{float-time}.  @xref{Time Conversion}.
@@ -3127,7 +3126,7 @@ being reported.  For example:
 @end group
 
 @group
-(set-file-modes "/tmp/foo" (default-file-modes))
+(set-file-modes "/tmp/foo" (default-file-modes) 'nofollow)
      @result{} Event (35025468 attribute-changed "/tmp/foo")
 @end group
 @end example
diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi
index f515213..14cd079 100644
--- a/doc/lispref/processes.texi
+++ b/doc/lispref/processes.texi
@@ -743,6 +743,7 @@ Some file name handlers may not support 
@code{make-process}.  In such
 cases, this function does nothing and returns @code{nil}.
 @end defun
 
+@anchor{Pipe Processes}
 @defun make-pipe-process &rest args
 This function creates a bidirectional pipe which can be attached to a
 child process.  This is useful with the @code{:stderr} keyword of
diff --git a/doc/lispref/searching.texi b/doc/lispref/searching.texi
index 1f6db06..83c1549 100644
--- a/doc/lispref/searching.texi
+++ b/doc/lispref/searching.texi
@@ -582,8 +582,13 @@ an unquoted @samp{[} is special again and a @samp{]} not.
 @cindex alpha character class, regexp
 @cindex xdigit character class, regexp
 
-  Here is a table of the classes you can use in a character alternative,
-and what they mean:
+  Below is a table of the classes you can use in a character
+alternative, and what they mean.  Note that the @samp{[} and @samp{]}
+characters that enclose the class name are part of the name, so a
+regular expression using these classes needs one more pair of
+brackets.  For example, a regular expression matching a sequence of
+one or more letters and digits would be @samp{[[:alnum:]]+}, not
+@samp{[:alnum:]+}.
 
 @table @samp
 @item [:ascii:]
@@ -1016,8 +1021,8 @@ or, using shorter synonyms and written more compactly,
 @example
 @group
 (rx "/*"
-    (* (| (not (any "*"))
-          (: "*" (not (any "/")))))
+    (* (| (not "*")
+          (: "*" (not "/"))))
     (+ "*") "/")
 @end group
 @end example
@@ -1081,8 +1086,9 @@ Corresponding string regexp: @samp{@var{A}@var{B}@dots{}}
 @itemx @code{(| @var{rx}@dots{})}
 @cindex @code{|} in rx
 Match exactly one of the @var{rx}s.
-If all arguments are string literals, the longest possible match
-will always be used.  Otherwise, either the longest match or the
+If all arguments are strings, characters, or @code{or} forms
+so constrained, the longest possible match will always be used.
+Otherwise, either the longest match or the
 first (in left-to-right order) will be used.
 Without arguments, the expression will not match anything at all.@*
 Corresponding string regexp: @samp{@var{A}\|@var{B}\|@dots{}}.
diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi
index 0610f80..1ca97e2 100644
--- a/doc/lispref/tips.texi
+++ b/doc/lispref/tips.texi
@@ -1076,7 +1076,7 @@ package is only activated if all its dependencies have 
been).
 Its format is a list of lists on a single line.  The @code{car} of
 each sub-list is the name of a package, as a symbol.  The @code{cadr}
 of each sub-list is the minimum acceptable version number, as a string
-that can be parse by @code{version-to-list}.  An entry that lacks a
+that can be parsed by @code{version-to-list}.  An entry that lacks a
 version (i.e., an entry which is just a symbol, or a sub-list of one
 element) is equivalent to entry with version "0".  For instance:
 
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi
index 35eb4d5..abcd4bb 100644
--- a/doc/lispref/variables.texi
+++ b/doc/lispref/variables.texi
@@ -858,7 +858,7 @@ is a buffer if the buffer-local value of the variable is 
being
 changed, @code{nil} otherwise.
 @end defun
 
-@defun remove-variable-watch symbol watch-function
+@defun remove-variable-watcher symbol watch-function
 This function removes @var{watch-function} from @var{symbol}'s list of
 watchers.
 @end defun
@@ -1187,8 +1187,14 @@ When evaluating Emacs Lisp code directly using an 
@code{eval} call,
 lexical binding is enabled if the @var{lexical} argument to
 @code{eval} is non-@code{nil}.  @xref{Eval}.
 
-Lexical binding is also enabled in Lisp Interaction and IELM
-mode, used in the @file{*scratch*} and @file{*ielm*} buffers.
+@findex eval-expression@r{, and }lexical-binding
+Lexical binding is also enabled in Lisp Interaction and IELM mode,
+used in the @file{*scratch*} and @file{*ielm*} buffers, and also when
+evaluating expressions via @kbd{M-:} (@code{eval-expression}) and when
+processing the @option{--eval} command-line options of Emacs
+(@pxref{Action Arguments,,, emacs, The GNU Emacs Manual}) and
+@command{emacsclient} (@pxref{emacsclient Options,,, emacs, The GNU
+Emacs Manual}).
 
 @cindex special variables
   Even when lexical binding is enabled, certain variables will
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index 544ff85..f99a890 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -350,11 +350,12 @@ Line-Up Functions
 * Misc Line-Up::
 
 
-Customizing Macros
+Custom Macros
 
 * Macro Backslashes::
 * Macros with ;::
 * Noise Macros::
+* Indenting Directives::
 
 @end detailmenu
 @end menu
@@ -6949,6 +6950,10 @@ is @code{nil}, all lines inside macro definitions are 
analyzed as
 @code{cpp-macro-cont}.
 @end defopt
 
+Sometimes you may want to indent particular directives
+(e.g. @code{#pragma}) as though they were statements.  To do this, see
+@ref{Indenting Directives}.
+
 Because a macro can expand into anything at all, near where one is
 invoked @ccmode{} can only indent and fontify code heuristically.
 Sometimes it gets it wrong.  Usually you should try to design your
@@ -6965,6 +6970,7 @@ Macros}.
 * Macro Backslashes::
 * Macros with ;::
 * Noise Macros::
+* Indenting Directives::
 @end menu
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -7074,7 +7080,7 @@ initialization code, after the mode hooks have run.
 @end defun
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-@node    Noise Macros,  , Macros with ;, Custom Macros
+@node    Noise Macros, Indenting Directives, Macros with ;, Custom Macros
 @comment node-name, next, previous, up
 @section Noise Macros
 @cindex noise macros
@@ -7131,6 +7137,48 @@ after the mode hooks have run.
 @end defun
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+@node    Indenting Directives, , Noise Macros, Custom Macros
+@comment node-name, next, previous, up
+@section Indenting Directives
+@cindex Indenting Directives
+@cindex Indenting #pragma
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+Sometimes you may want to indent particular preprocessor directives
+(e.g. @code{#pragma}) as though they were statements.  To do this,
+first set up @code{c-cpp-indent-to-body-directives} to include the
+directive name(s), then enable the ``indent to body'' feature with
+@code{c-toggle-cpp-indent-to-body}.
+
+@defopt c-cpp-indent-to-body-directives
+@vindex cpp-indent-to-body-directives (c-)
+This variable is a list of names of CPP directives (not including the
+introducing @samp{#}) which will be indented as though statements.
+Each element is a string, and must be a valid identifier.  The default
+value is @code{("pragma")}.
+
+If you add more directives to this variable, or remove directives from
+it, whilst ``indent to body'' is active, you need to re-enable the
+feature by calling @code{c-toggle-cpp-indent-to-body} for these
+changes to take effect@footnote{Note that the removal of directives
+doesn't work satisfactorally on XEmacs or on very old versions of
+Emacs}.
+@end defopt
+
+@defun c-toggle-cpp-indent-to-body
+@findex toggle-cpp-indent-to-body (c-)
+With @kbd{M-x c-toggle-cpp-indent-to-body}, you enable or disable the
+``indent to body'' feature.  When called programmatically, it takes an
+optional numerical argument.  A positive value will enable the
+feature, a zero or negative value will disable it.
+
+You should set up @code{c-cpp-indent-to-body-directives} before
+calling this function, since the function sets internal state which
+depends on that variable.
+@end defun
+
+
+@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 @node    Odds and Ends, Sample Init File, Custom Macros, Top
 @comment node-name, next, previous, up
 @chapter Odds and Ends
diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi
index 6c030fc..3943c54 100644
--- a/doc/misc/eieio.texi
+++ b/doc/misc/eieio.texi
@@ -1285,9 +1285,9 @@ This class is defined in the package @file{eieio-base}.
 Sometimes it is useful to keep a master list of all instances of a given
 class.  The class @code{eieio-instance-tracker} performs this task.
 
-@deftp {Class} eieio-instance-tracker tracker-symbol
+@deftp {Class} eieio-instance-tracker tracking-symbol
 Enable instance tracking for this class.
-The slot @var{tracker-symbol} should be initialized in inheritors of
+The slot @var{tracking-symbol} should be initialized in inheritors of
 this class to a symbol created with @code{defvar}.  This symbol will
 serve as the variable used as a master list of all objects of the given
 class.
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index b5eb81b..424e15b 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -3181,7 +3181,7 @@ For example:
          (broken-reply-to . t))))
 @end lisp
 
-All clauses that matches the group name will be used, but the last
+All clauses that match the group name will be used, but the last
 setting ``wins''.  So if you have two clauses that both match the
 group name, and both set, say @code{display}, the last setting will
 override the first.
@@ -17874,7 +17874,7 @@ presence of 7 special headers.  These headers are of 
the form
 @code{X-Diary-<something>}, @code{<something>} being one of
 @code{Minute}, @code{Hour}, @code{Dom}, @code{Month}, @code{Year},
 @code{Time-Zone} and @code{Dow}.  @code{Dom} means ``Day of Month'', and
-@code{dow} means ``Day of Week''.  These headers actually behave like
+@code{Dow} means ``Day of Week''.  These headers actually behave like
 crontab specifications and define the event date(s):
 
 @itemize @bullet
@@ -30916,7 +30916,7 @@ description   = <string>
 
 Believe it or not, but some people who use Gnus haven't really used
 Emacs much before they embarked on their journey on the Gnus Love Boat.
-If you are one of those unfortunates whom ``@kbd{C-M-a}'', ``kill the
+If you are one of those unfortunates to whom ``@kbd{C-M-a}'', ``kill the
 region'', and ``set @code{gnus-flargblossen} to an alist where the key
 is a regexp that is used for matching on the group name'' are magical
 phrases with little or no meaning, then this appendix is for you.  If
diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex
index 1ea515b..deca599 100644
--- a/doc/misc/texinfo.tex
+++ b/doc/misc/texinfo.tex
@@ -3,7 +3,7 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2019-09-24.13}
+\def\texinfoversion{2020-02-11.09}
 %
 % Copyright 1985, 1986, 1988, 1990-2019 Free Software Foundation, Inc.
 %
@@ -373,12 +373,12 @@
   % Common context changes for both heading and footing.
   % Do this outside of the \shipout so @code etc. will be expanded in
   % the headline as they should be, not taken literally (outputting ''code).
-  \def\commmonheadfootline{\let\hsize=\txipagewidth \texinfochars}
+  \def\commonheadfootline{\let\hsize=\txipagewidth \texinfochars}
   %
-  \global\setbox\headlinebox = \vbox{\commmonheadfootline \makeheadline}%
+  \global\setbox\headlinebox = \vbox{\commonheadfootline \makeheadline}%
   %
   \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
-  \global\setbox\footlinebox = \vbox{\commmonheadfootline \makefootline}%
+  \global\setbox\footlinebox = \vbox{\commonheadfootline \makefootline}%
   %
   {%
     % Set context for writing to auxiliary files like index files.
@@ -3107,9 +3107,9 @@ end
 % preferrable one choice is over the other.
 \def\urefallowbreak{%
   \allowbreak
-  \hskip 0pt plus 4 em\relax
-  \penalty100
-  \hskip 0pt plus -4 em\relax
+  \hskip 0pt plus 2 em\relax
+  \penalty300
+  \hskip 0pt plus -2 em\relax
 }
 
 \urefbreakstyle after
@@ -8955,17 +8955,11 @@ might help (with 'rm \jobname.?? \jobname.??s')%
     \else
       % Reference within this manual.
       %
-      % _ (for example) has to be the character _ for the purposes of the
-      % control sequence corresponding to the node, but it has to expand
-      % into the usual \leavevmode...\vrule stuff for purposes of
-      % printing. So we \turnoffactive for the \refx-snt, back on for the
-      % printing, back off for the \refx-pg.
-      {\turnoffactive
-       % Only output a following space if the -snt ref is nonempty; for
-       % @unnumbered and @anchor, it won't be.
-       \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
-       \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
-      }%
+      % Only output a following space if the -snt ref is nonempty; for
+      % @unnumbered and @anchor, it won't be.
+      \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
+      \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
+      %
       % output the `[mynode]' via the macro below so it can be overridden.
       \xrefprintnodename\printedrefname
       %
@@ -9055,7 +9049,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   \requireauxfile
   {%
     \indexnofonts
-    \otherbackslash
+    \turnoffactive
     \def\value##1{##1}%
     \expandafter\global\expandafter\let\expandafter\thisrefX
       \csname XR#1\endcsname
diff --git a/etc/AUTHORS b/etc/AUTHORS
index 2f7e015..ab0cbee 100644
--- a/etc/AUTHORS
+++ b/etc/AUTHORS
@@ -9,15 +9,16 @@ Aaron Ecay: changed ob-R.el ob-core.el org-src.el ox-latex.el 
nsterm.m
   ob-awk.el ob-exp.el ob-python.el ob-tangle.el org-bibtex.el org-id.el
   org.el org.texi package.el paren.el
 
-Aaron Jensen: changed frameset.el nsterm.m Info.plist.in mouse.el
+Aaron Jensen: changed frameset.el nsterm.m Info.plist.in flyspell.el
+  mouse.el server.el systhread.c w32term.c xdisp.c xterm.c
 
 Aaron Larson: co-wrote bibtex.el
 
 Aaron S. Hawley: wrote lisp-tests.el undo-tests.el
 and changed simple.el files.texi isearch.el morse.el sgml-mode.el
-  tar-mode.el thingatpt.el add-log.el autoinsert.el building.texi calc.el
-  cc-fonts.el comint.el compare-w.el custom.texi diff.el edebug.el
-  etags.el ffap.el files.el flyspell.el and 29 other files
+  tar-mode.el textmodes/table.el thingatpt.el add-log.el autoinsert.el
+  building.texi calc.el cc-fonts.el comint.el compare-w.el custom.texi
+  diff.el edebug.el etags.el ffap.el files.el and 31 other files
 
 Abdó Roig-Maranges: changed org.el org-agenda.el ox-html.el ox-odt.el
 
@@ -69,6 +70,8 @@ and changed nsterm.m nsfns.m nsfont.m nsterm.h nsmenu.m 
configure.ac
 
 Agustín Martín: changed ispell.el flyspell.el fixit.texi
 
+Ahmed Khanzada: changed battery.el
+
 Aidan Gauland: wrote em-tramp.el
 and changed eshell.texi em-term.el em-unix.el erc-match.el em-cmpl.el
   em-dirs.el em-ls.el em-script.el esh-proc.el eshell-tests.el
@@ -86,17 +89,19 @@ Aki Vehtari: changed bibtex.el gnus-art.el gnus-score.el 
gnus-sum.el
   nnmail.el tar-mode.el
 
 Alain Schneble: wrote url-expand-tests.el url-parse-tests.el
-and changed url-expand.el process.c url-parse.el w32proc.c shr.el w32.c
+and changed url-expand.el process.c url-parse.el w32proc.c message.el
+  shr.el w32.c
 
 Alakazam Petrofsky: changed hanoi.el
 
 Alan Mackenzie: wrote cc-awk.el
 and co-wrote cc-align.el cc-cmds.el cc-defs.el cc-engine.el cc-fonts.el
   cc-langs.el cc-mode.el cc-styles.el cc-vars.el
-and changed cc-mode.texi bytecomp.el subr.el edebug.el follow.el
-  modes.texi syntax.texi display.texi font-lock.el isearch.el
-  programs.texi help.el ispell.el lread.c windows.texi control.texi
-  cus-start.el doc.c eval.c frames.texi help-fns.el and 134 other files
+and changed cc-mode.texi bytecomp.el follow.el display.texi subr.el
+  edebug.el progmodes/compile.el programs.texi syntax.texi modes.texi
+  font-lock.el isearch.el text.texi help.el ispell.el lread.c syntax.c
+  windows.texi .dir-locals.el control.texi cus-start.el
+  and 147 other files
 
 Alan Modra: changed unexelf.c
 
@@ -106,11 +111,11 @@ Alan Shutko: changed diary-lib.el calendar.el bindings.el 
cal-hebrew.el
   easy-mmode.el gnus-sum.el ibuf-ext.el ibuffer.el lunar.el macros.el
   solar.el
 
-Alan Third: wrote dabbrev-tests.el
-and changed nsterm.m nsfns.m nsterm.h nsmenu.m frame.el macfont.m
-  nsimage.m ns-win.el xdisp.c Info.plist.in conf_post.h frame.c frame.h
-  frames.texi keyboard.c macfont.h macos.texi picture.el rect.el
-  battery.el callproc.c and 12 other files
+Alan Third: wrote dabbrev-tests.el image-transforms-tests.el
+and changed nsterm.m nsterm.h nsfns.m nsmenu.m ns-win.el nsimage.m
+  image.c macfont.m configure.ac frame.el xdisp.c display.texi image.el
+  macos.texi xterm.c Info.plist.in conf_post.h dispextern.h frame.c
+  frame.h frames.texi and 21 other files
 
 Alastair Burt: changed gnus-art.el smiley.el
 
@@ -124,11 +129,10 @@ Aleksei Gusev: changed progmodes/compile.el
 
 Alexander Becher: changed vc-annotate.el
 
-Alexander Gramiak: changed faces.el display-line-numbers.el xt-mouse.el
-  CTAGS.good ETAGS.good_1 ETAGS.good_2 ETAGS.good_3 ETAGS.good_4
-  ETAGS.good_5 ETAGS.good_6 Makefile TAGTEST.EL cl-lib-tests.el
-  cl-macs-tests.el cus-start.el custom.texi display.texi erc-list.el
-  ert-tests.el ert.el etags.c and 16 other files
+Alexander Gramiak: changed w32term.c xterm.c nsterm.m dispextern.h
+  xdisp.c frame.c image.c nsgui.h w32gui.h xfns.c frame.el termhooks.h
+  w32fns.c w32term.h faces.el nsterm.h xfaces.c xterm.h frame.h xfont.c
+  configure.ac and 64 other files
 
 Alexander Haeckel: changed getset.el
 
@@ -151,6 +155,8 @@ Alexander Vorobiev: changed org-compat.el
 
 Alexander Zhuckov: changed ebrowse.c
 
+Alexandre Garreau: changed message.el
+
 Alexandre Julliard: wrote vc-git.el
 and changed vc.el ewoc.el
 
@@ -162,17 +168,24 @@ Alexandre Veyrenc: changed fr-refcard.tex
 Alexandru Harsanyi: wrote soap-client.el soap-inspect.el
 and changed emacs3.py vc-hooks.el vc.el xml.el
 
-Alex Branham: changed bibtex.el dired-x.el dired.el em-rebind.el eww.el
-  imenu.el indent.el modes.texi programs.texi text.texi
+Alex Branham: changed checkdoc.el bibtex.el em-rebind.el esh-util.el
+  indent.el js.el lpr.el message.el subr.el text.texi .dir-locals.el
+  auth-source-pass.el bug-reference.el comint.el conf-mode-tests.el
+  conf-mode.el dired-x.el dired.el ediff-diff.el ediff-help.el
+  ediff-hook.el and 41 other files
 
 Alex Coventry: changed files.el
 
 Alex Dunn: changed subr-tests.el subr.el
 
-Alex Gramiak: changed prolog.el
+Alexei Khlebnikov: changed autorevert.el vc-git.el
+
+Alex Gramiak: changed prolog.el terminal.c
 
 Alex Kosorukoff: changed org-capture.el
 
+Alex Murray: changed erc-desktop-notifications.el network-stream.el
+
 Alex Ott: changed TUTORIAL.ru ede/files.el ru-refcard.tex base.el
   cedet-files.el cpp-root.el ede.el ede/generic.el idle.el ispell.el
   semantic/format.el
@@ -204,8 +217,10 @@ Ali Bahrami: changed configure configure.ac sol2-10.h
 
 Alin C. Soare: changed lisp-mode.el hexl.el
 
-Allen Li: changed abbrev.el bookmark.el comint.el dired-x.el misc.texi
-  nsm.el progmodes/compile.el subr.el
+Allen Li: changed abbrev.el abbrev-tests.el abbrevs.texi sending.texi
+  autoload.el bookmark.el comint.el dired-x.el misc.texi nsm.el
+  progmodes/compile.el ring-tests.el ring.el sequences.texi subr.el
+  xref.el
 
 Allen S. Rout: changed org-capture.el
 
@@ -220,17 +235,28 @@ Alp Aker: changed nsfont.m nsterm.m buff-menu.el nsfns.m 
nsmenu.m
 Ami Fischman: changed bindings.el calendar.el diary-lib.el print.c
   savehist.el vc-git.el
 
+Amin Bandali: changed erc-button.el erc-desktop-notifications.el
+  erc-autoaway.el erc-compat.el erc-fill.el erc-ibuffer.el erc-imenu.el
+  erc-join.el erc-lang.el erc-list.el erc-log.el erc-match.el
+  erc-notify.el erc-pcomplete.el erc-replace.el erc-ring.el
+  erc-services.el erc-sound.el erc-speedbar.el erc-spelling.el
+  erc-stamp.el and 4 other files
+
 Anand Mitra: changed gnus-sum.el
 
 Anders Holst: wrote hippie-exp.el
 
-Anders Lindgren: wrote autorevert.el cwarn.el follow.el
+Anders Lindgren: wrote autorevert.el cwarn.el faceup-test-basics.el
+  faceup-test-files.el faceup.el follow.el
 and changed nsterm.m nsfns.m nsmenu.m nsterm.h font-lock.el nsimage.m
-  README etags.c term.el window.el Info.plist.in compile.el ert.el
-  loadup.el lread.c ns-win.el nsfont.m vc-svn.el
+  README etags.c term.el window.el Info.plist.in compile.el diff-mode.el
+  ert.el faceup-test-mode.el faceup-test-this-file-directory.el loadup.el
+  lread.c ns-win.el nsfont.m test1.txt and 3 other files
 
 Anders Waldenborg: changed emacsclient.c
 
+Andrea Corallo: changed map-tests.el map.el
+
 Andrea Rossetti: changed ruler-mode.el
 
 Andrea Russo: changed erc-dcc.el info-look.el
@@ -259,23 +285,26 @@ Andreas Leue: changed artist.el
 
 Andreas Luik: changed xfns.c xterm.c
 
-Andreas Politz: changed filenotify.el inotify.c bytecomp.el editfns.c
-  elp.el filenotify-tests.el frame.c ibuffer.el ido.el imenu.el
-  modes.texi outline.el sh-script.el sql.el subr.el term.el wid-edit.el
-  window.el
+Andreas Merziger: changed calendar.el
+
+Andreas Politz: changed filenotify.el inotify.c buffer-tests.el
+  bytecomp.el editfns.c elp.el filecache.el filenotify-tests.el frame.c
+  ibuffer.el idlwave.el ido.el imenu.el modes.texi outline.el
+  sh-script.el sql.el startup.el strokes.el subr.el term.el
+  and 5 other files
 
 Andreas Rottmann: changed emacsclient.1 emacsclient.c misc.texi server.el
 
-Andreas Schwab: changed configure.ac lisp.h process.c xdisp.c alloc.c
+Andreas Schwab: changed configure.ac lisp.h xdisp.c process.c alloc.c
   coding.c Makefile.in files.el fileio.c keyboard.c lread.c xterm.c fns.c
   editfns.c emacs.c src/Makefile.in print.c eval.c font.c xfns.c sysdep.c
-  and 639 other files
+  and 650 other files
 
 Andreas Seltenreich: changed nnweb.el gnus.texi message.el gnus-sum.el
   gnus.el nnslashdot.el gnus-srvr.el gnus-util.el mm-url.el mm-uu.el
-  url-http.el xterm.c battery.el comint.el easy-mmode.el gmm-utils.el
-  gnus-art.el gnus-cite.el gnus-draft.el gnus-group.el gnus-ml.el
-  and 7 other files
+  url-http.el xterm.c battery.el comint.el doc/misc/gnus.texi
+  easy-mmode.el gmm-utils.el gnus-art.el gnus-cite.el gnus-draft.el
+  gnus-group.el and 7 other files
 
 Andreas Vögele: changed pgg-def.el
 
@@ -313,7 +342,7 @@ Andrew Hyatt: changed bug-triage CONTRIBUTE org-archive.el 
org.el
 Andrew Innes: changed makefile.nt w32fns.c w32term.c w32.c w32proc.c
   fileio.c w32-fns.el dos-w32.el inc/ms-w32.h w32term.h makefile.def
   unexw32.c w32menu.c w32xfns.c addpm.c cmdproxy.c emacs.c w32-win.el
-  w32inevt.c configure.bat lread.c and 130 other files
+  w32inevt.c configure.bat lread.c and 129 other files
 
 Andrew L. Moore: changed executable.el
 
@@ -323,6 +352,8 @@ Andrew Robbins: changed net-utils.el
 
 Andrew Schein: changed sql.el
 
+Andrew Schwartzmeyer: changed subr-tests.el subr.el
+
 Andrew W. Nosenko: changed tramp.el
 
 Andrew Zhilin: changed emacs22.png emacs22.ico
@@ -333,10 +364,17 @@ Andrey Slusar: changed gnus-async.el gnus.el
 
 Andrey Zhdanov: changed gud.el
 
+Andrii Kolomoiets: changed vc-hg.el progmodes/python.el vc-git.el vc.el
+  maintaining.texi vc-svn.el
+
 Andrzej Lichnerowicz: wrote ob-io.el
 
-Andy Moreton: changed gnutls.c image.el package.el unexw32.c vc-hg.el
-  w32fns.c w32heap.c w32proc.c w32term.c w32xfns.c
+Andrzej P: changed gdb-mi.el
+
+Andy Moreton: changed gnutls.c alloc.c ccl-tests.el ccl.el image.c
+  w32fns.c w32font.c w32heap.c w32proc.c w32uniscribe.c data.c
+  decompress.c dynlib.c emacs-module-tests.el emacs.c image.el json.c
+  lcms.c lisp.h package.el pdumper.c and 12 other files
 
 Andy Norman: wrote ange-ftp.el
 
@@ -346,7 +384,7 @@ Andy Sawyer: changed saveplace.el
 
 Andy Seaborne: changed keyboard.c
 
-Andy Stewart: wrote org-w3m.el
+Andy Stewart: wrote ol-w3m.el
 and changed erc.el
 
 Angelo Graziosi: changed sysdep.c term.c
@@ -355,6 +393,10 @@ Anmol Khirbat: changed ido.el
 
 Anna M. Bigatti: wrote cal-html.el
 
+Ansgar Burchardt: changed latin-ltx.el
+
+Antoine Beaupré: changed vc-git.el
+
 Antoine Levitt: changed gnus-group.el gnus-sum.el message.texi ada-prj.el
   ange-ftp.el cus-edit.el dired-x.el ebnf2ps.el emerge.el erc-button.el
   erc-goodies.el erc-stamp.el erc-track.el files.el find-file.el
@@ -363,11 +405,11 @@ Antoine Levitt: changed gnus-group.el gnus-sum.el 
message.texi ada-prj.el
 
 Antonin Houska: changed newcomment.el
 
-Arash Esbati: changed reftex-vars.el reftex.el reftex-auc.el
-  reftex-ref.el
+Arash Esbati: changed reftex-vars.el reftex-ref.el reftex.el nnmaildir.el
+  reftex-auc.el reftex-cite.el reftex-dcr.el
 
-Ari Roponen: changed xterm.c atimer.c doc.c hash.texi image.c mule.texi
-  package.el startup.el subr.el svg.el time-date.el woman.el
+Ari Roponen: changed xterm.c image.c atimer.c doc.c ftcrfont.c hash.texi
+  mule.texi package.el startup.el subr.el svg.el time-date.el woman.el
 
 Arisawa Akihiro: changed characters.el coding.c epa-file.el japan-util.el
   language/tibetan.el message.el mm-decode.el mm-view.el ps-print.el
@@ -383,7 +425,7 @@ and changed smime.el mml-smime.el smime-ldap.el flymake.el 
gnus-art.el
   mule-conf.el nnimap.el nnrss.el wid-edit.el
 
 Arni Magnusson: wrote bat-mode.el
-and changed ada-mode.texi frames.texi generic-x.el texinfo.el
+and changed frames.texi generic-x.el texinfo.el
 
 Artem Chuprina: changed message.el
 
@@ -395,6 +437,8 @@ and changed package.el isearch.el lisp/char-fold.el files.el
   let-alist-tests.el simple.el subr-tests.el align.el bindings.el
   cl-lib-tests.el cl-macs.el and 42 other files
 
+Artyom Loenko: changed Info.plist.in
+
 Arun Persaud: changed org-agenda.el org-src.el
 
 Ashish Shukla: changed emacs-gnutls.texi gnutls.el
@@ -410,10 +454,12 @@ Aubrey Jaffer: changed info.el unexelf.c
 Aurélien Aptel: changed alloc.c emacs-module.h lisp.h Makefile
   configure.ac cus-face.el data.c dispextern.h display.texi dynlib.c
   dynlib.h emacs-module.c faces.el lread.c modhelp.py nsterm.m ox-html.el
-  print.c src/Makefile.in syntax.c url.texi and 4 other files
+  print.c src/Makefile.in subr.el syntax.c and 6 other files
 
 Axel Boldt: changed ehelp.el electric.el
 
+Axel Svensson: changed x-win.el
+
 Bahodir Mansurov: changed quail/cyrillic.el
 
 Bake Timmons: changed gnus.texi mail-source.el
@@ -440,21 +486,22 @@ Bartosz Duszel: changed allout.el bib-mode.el cc-cmds.el 
hexl.el icon.el
   sendmail.el ses.el simple.el verilog-mode.el vi.el vip.el viper-cmd.el
   xscheme.el
 
-Basil L. Contovounesios: changed simple.el message.el sequences.texi
-  bibtex.el css-mode-tests.el css-mode.el customize.texi display.texi
-  gnus-art.el json-tests.el json.el lists.texi man.el modes.texi
-  newcomment.el rcirc.el shr-color.el text.texi url-handlers.el
+Basil L. Contovounesios: changed simple.el message.el subr.el gravatar.el
+  custom.el gnus-group.el gnus-sum.el gnus-win.el internals.texi
+  modes.texi text.texi window.c bibtex.el button.el customize.texi
+  display.texi eww.el gnus-art.el gnus-msg.el gnus.texi lists.texi
+  and 150 other files
 
-Bastian Beischer: changed include.el mru-bookmark.el refs.el
-  semantic/complete.el senator.el
+Bastian Beischer: changed semantic/complete.el include.el mru-bookmark.el
+  refs.el senator.el
 
 Bastien Guerry: wrote gnus-bookmark.el
-and co-wrote org-bibtex.el org-list.el org-protocol.el org-src.el
+and co-wrote ol-bibtex.el org-list.el org-protocol.el org-src.el
 and changed org.el org-agenda.el org.texi ox-html.el org-clock.el
   org-capture.el org-table.el ox-latex.el ox.el ox-odt.el org-compat.el
   ox-publish.el ob.el org-mobile.el org-colview.el org-macs.el
   org-pcomplete.el org-timer.el org-faces.el ox-ascii.el org-archive.el
-  and 118 other files
+  and 120 other files
 
 Ben A. Mesander: co-wrote erc-dcc.el
 
@@ -471,9 +518,11 @@ Benjamin Andresen: wrote ob-screen.el
 Benjamin Drieu: wrote pong.el
 and changed org-clock.el org.el
 
-Benjamin Riefenstahl: changed w32select.c emacs.c image-mode.el image.el
-  inc/ms-w32.h lisp.h mac-win.el macterm.c mule-cmds.el runemacs.c tcl.el
-  w32.c w32.h
+Benjamin Ragheb: changed fortune.el
+
+Benjamin Riefenstahl: changed files.el image-mode.el w32select.c emacs.c
+  image.el inc/ms-w32.h lisp.h mac-win.el macterm.c mule-cmds.el
+  runemacs.c tcl.el w32.c w32.h
 
 Benjamin Rutt: co-wrote gnus-dired.el
 and changed vc.el gnus-msg.el message.el diff-mode.el ffap.el nnimap.el
@@ -490,6 +539,8 @@ Ben North: changed outline.el buffer.c fill.el isearch.el 
lisp-mode.el
 
 Bernhard Herzog: changed vc-hg.el menu.c xsmfns.c
 
+Bernhard Rotter: changed em-cmpl.el esh-ext.el esh-util.el
+
 Bernt Hansen: changed org-agenda.el org-clock.el org.el org-capture.el
   org-indent.el org-macs.el org.texi ox-html.el
 
@@ -517,11 +568,11 @@ Bill Wohler: wrote mh-buffers.el mh-comp.el mh-compat.el 
mh-e.el
   mh-folder.el mh-funcs.el mh-letter.el mh-mime.el mh-scan.el mh-seq.el
   mh-show.el mh-utils.el mh-xface.el
 and co-wrote mh-junk.el
-and changed mh-customize.el mh-search.el mh-alias.el Makefile mh-e.texi
+and changed mh-customize.el mh-search.el mh-alias.el mh-e.texi Makefile
   mh-identity.el README mh-speed.el mh-init.el mh-acros.el mh-gnus.el
   mh-unit.el mh-inc.el mh-xemacs-compat.el mh-print.el lisp/Makefile.in
   image.el mh-tool-bar.el mh-xemacs.el display.texi mh-pick.el
-  and 83 other files
+  and 82 other files
 
 Bjarte Johansen: wrote ob-sed.el
 
@@ -541,6 +592,8 @@ and changed isearch.el sendmail.el
 
 Bob Halley: changed ccl.c esh-io.el
 
+Bob Newell: changed latin-post.el latin-pre.el
+
 Bob Nnamtrop: changed viper-cmd.el
 
 Bob Olson: co-wrote cperl-mode.el
@@ -565,7 +618,8 @@ and changed fill.el simple.el indent.el paragraphs.el 
cmds.c intervals.c
 
 Boris Samorodov: changed imap.el
 
-Boruch Baum: changed bookmark.el
+Boruch Baum: co-wrote footnote.el
+and changed bookmark.el
 
 Boyd Lynn Gerber: changed configure.ac
 
@@ -577,6 +631,8 @@ Brad Howes: changed gnus-demon.el
 
 Brandon Craig Rhodes: changed flyspell.el
 
+Braun Gábor: changed cua-base.el simple.el
+
 Brendan Kehoe: changed hpux9.h
 
 Brent Goodrick: changed abbrev.el
@@ -613,7 +669,9 @@ Brian Sniffen: changed gnus-draft.el imap.el mm-decode.el
 
 Brian van den Broek: changed org.texi
 
-Bruno Félix Rezende Ribeiro: changed functions.texi
+Bruce Stephens: changed calc-ext.el
+
+Bruno Félix Rezende Ribeiro: changed functions.texi gnus.texi
 
 Bruno Haible: co-wrote po.el
 and changed INSTALL emacs.1 epaths.in info.el paths.el
@@ -637,30 +695,33 @@ Carl Edman: co-wrote ns-win.el
 
 Carl Henrik Lunde: changed format-spec.el
 
-Carlos Pita: changed erc-pcomplete.el sh-script.el
+Carlos Pita: changed erc-pcomplete.el image-mode.el progmodes/python.el
+  sh-script.el
 
 Carsten Bormann: changed ibmrs6000.h latin-post.el
 
 Carsten Dominik: wrote idlw-complete-structtag.el idlw-toolbar.el
-  org-agenda.el org-archive.el org-capture.el org-clock.el org-colview.el
-  org-compat.el org-datetree.el org-faces.el org-feed.el org-footnote.el
-  org-id.el org-indent.el org-info.el org-inlinetask.el org-macs.el
-  org-mobile.el org-rmail.el org-table.el org-timer.el org.el
-  reftex-auc.el reftex-cite.el reftex-dcr.el reftex-global.el
-  reftex-index.el reftex-parse.el reftex-ref.el reftex-sel.el
-  reftex-toc.el reftex-vars.el reftex.el
-and co-wrote idlw-help.el idlw-shell.el idlwave.el org-bbdb.el
-  org-bibtex.el org-entities.el org-gnus.el org-list.el org-pcomplete.el
+  ol-info.el ol-rmail.el ol.el org-agenda.el org-archive.el
+  org-capture.el org-clock.el org-colview.el org-compat.el
+  org-datetree.el org-faces.el org-feed.el org-footnote.el org-goto.el
+  org-id.el org-indent.el org-inlinetask.el org-macs.el org-mobile.el
+  org-table.el org-timer.el org.el reftex-auc.el reftex-cite.el
+  reftex-dcr.el reftex-global.el reftex-index.el reftex-parse.el
+  reftex-ref.el reftex-sel.el reftex-toc.el reftex-vars.el reftex.el
+and co-wrote idlw-help.el idlw-shell.el idlwave.el ol-bbdb.el
+  ol-bibtex.el ol-gnus.el org-entities.el org-list.el org-pcomplete.el
   org-src.el ox-beamer.el ox-html.el ox-icalendar.el
 and changed ox.el ox-latex.el org.texi org-remember.el orgcard.tex
-  ox-publish.el org-docbook.el ox-ascii.el org-attach.el org-protocol.el
-  org-mouse.el org-mac-message.el org-wl.el ox-jsinfo.el org-crypt.el
-  org-freemind.el idlw-rinfo.el org-exp-blocks.el org-habit.el org-mhe.el
-  org-plot.el and 35 other files
+  ox-publish.el org-docbook.el ox-ascii.el org-attach.el org-bbdb.el
+  org-gnus.el org-protocol.el org-mouse.el org-mac-message.el org-wl.el
+  ox-jsinfo.el org-crypt.el org-freemind.el idlw-rinfo.el
+  org-exp-blocks.el org-habit.el and 40 other files
 
 Caveh Jalali: changed configure.ac intel386.h sol2-4.h
 
-Cédric Chépied: changed newst-treeview.el
+Cecilio Pardo: changed DEVEL.HUMOR
+
+Cédric Chépied: changed newst-treeview.el tree-widget.el
 
 Cesar Quiroz: changed maintaining.texi
 
@@ -671,10 +732,10 @@ Changwoo Ryu: changed files.el
 
 Chao-Hong Liu: changed TUTORIAL.cn TUTORIAL.zh
 
-Charles A. Roelli: changed nsterm.m display.texi isearch.el nsfns.m
-  nsterm.h org-clock.el search.texi simple.el DEBUG INSTALL add-log.el
-  anti.texi buffers.texi comint.el data.c diff-mode.el eldoc.el files.el
-  fill.el find-func.el flymake.el and 21 other files
+Charles A. Roelli: changed nsterm.m vc.el nsfns.m simple.el isearch.el
+  nsmenu.m nsterm.h process.c register.el diff-mode.el display.texi
+  files.el files.texi fixit.texi macfont.m minibuf.c nsfont.m nsimage.m
+  nsselect.m org-clock.el progmodes/python.el and 47 other files
 
 Charles Hannum: changed aix3-1.h aix3-2.h configure ibmrs6000.h
   keyboard.c netbsd.h pop.c sysdep.c systime.h systty.h xrdb.c
@@ -687,8 +748,10 @@ Charles Sebold: changed org-plot.el
 
 Charlie Martin: wrote autoinsert.el
 
-Cheng Gao: changed MORE.STUFF Makefile.in flymake.el frame.c tips.texi
-  url-dired.el url-file.el url-handlers.el url-http.el url-nfs.el
+Chen Bin: changed fns.c subr-tests.el
+
+Cheng Gao: changed Makefile.in flymake.el frame.c tips.texi url-dired.el
+  url-file.el url-handlers.el url-http.el url-nfs.el
 
 Chetan Pandya: changed font.c
 
@@ -700,12 +763,12 @@ and co-wrote longlines.el tango-dark-theme.el 
tango-theme.el
 and changed simple.el display.texi xdisp.c files.el frames.texi
   cus-edit.el files.texi custom.el subr.el text.texi faces.el keyboard.c
   startup.el package.el misc.texi emacs.texi modes.texi mouse.el
-  custom.texi image.c window.el and 935 other files
+  custom.texi image.c window.el and 933 other files
 
 Chris Chase: co-wrote idlw-shell.el idlwave.el
 
-Chris Feng: changed dispnew.c autoload.el frame.c keyboard-tests.el
-  keyboard.c process.c
+Chris Feng: changed dispnew.c keyboard-tests.el keyboard.c autoload.el
+  frame.c process.c
 
 Chris Foote: changed progmodes/python.el
 
@@ -778,7 +841,7 @@ Christoph Dittmann: changed ox-beamer.el
 
 Christophe de Dinechin: co-wrote ns-win.el
 
-Christophe Deleuze: changed icalendar.el
+Christophe Deleuze: changed icalendar.el image-dired.el
 
 Christoph Egger: changed configure.ac
 
@@ -798,12 +861,17 @@ Christopher J. White: changed url-http.el
 
 Christopher Oliver: changed mouse.el
 
-Christopher Schmidt: changed ibuffer.el org.el tips.texi calc-aent.el
-  calc.el calc.texi calendar.el cl-macs.el comint.el dired-x.el dired.el
-  files.el files.texi find-dired.el gnus-int.el gnus-msg.el gnus.texi
-  help-fns.el info.el locate.el lread.c and 15 other files
+Christopher Schmidt: changed files.el ibuffer.el org.el tips.texi
+  calc-aent.el calc.el calc.texi calendar.el cl-macs.el comint.el
+  dired-x.el dired.el files.texi find-dired.el gnus-int.el gnus-msg.el
+  gnus.texi help-fns.el info.el locate.el lread.c and 15 other files
 
-Christopher Wellons: changed emacs-lisp/cl-lib.el
+Christopher Thorne: changed dired.el progmodes/grep.el
+
+Christopher Wellons: changed emacs-lisp/cl-lib.el hashcash.el
+  viper-cmd.el viper-ex.el viper-init.el viper.el
+
+Christophe Troestler: changed epg.el
 
 Christoph Scholtes: changed README.W32 progmodes/python.el stdint.h
   INSTALL maintaining.texi INSTALL.REPO admin.el bookmark.el
@@ -816,7 +884,7 @@ and changed progmodes/python.el format.el gnus-art.el 
gnus-picon.el
   message.el prog-mode.el python-tests.el register.el smiley.el
   texinfmt.el
 
-Chris Zheng: changed gnutls.c calculator.el w32-win.el
+Chris Zheng: changed gnutls.c calculator.el json.c w32-win.el
 
 Chuck Blake: changed term.c
 
@@ -832,6 +900,8 @@ Claudio Fontana: changed Makefile.in leim/Makefile.in 
lib-src/Makefile.in
 Clément Pit--Claudel: changed debugging.texi emacs-lisp/debug.el eval.c
   progmodes/python.el subr-tests.el subr.el url-http.el url-vars.el
 
+Clément Pit-Claudel: changed keyboard.c text.texi
+
 Colin Marquardt: changed gnus.el message.el
 
 Colin Rafferty: changed message.el
@@ -862,7 +932,7 @@ and co-wrote sasl-cram.el sasl-digest.el
 and changed mml2015.el epa.texi mml1991.el pinentry.el auth-source.el
   mml-smime.el package.el mml.el epg-tests.el gnus.texi mm-decode.el
   mm-uu.el process.c subr.el auth.texi gnus-sum.el image-mode.el
-  mm-view.el mml-sec.el processes.texi dbus.el and 35 other files
+  mm-view.el mml-sec.el processes.texi dbus.el and 36 other files
 
 Dale Gulledge: changed TUTORIAL.eo
 
@@ -875,9 +945,10 @@ Dale Sedivec: changed sgml-mode.el wisent/python.el
 
 Damien Cassou: wrote auth-source-pass-tests.el
 and co-wrote auth-source-pass.el auth-source-tests.el
-and changed seq-tests.el seq.el simple-tests.el simple.el auth-source.el
-  auth.texi imenu-tests.el imenu.el info.el isearch.el rmc.el
-  sequences.texi
+and changed auth.texi message.el seq-tests.el seq.el simple-tests.el
+  simple.el auth-source.el checkdoc-tests.el checkdoc.el imenu-tests.el
+  imenu.el info.el isearch.el ispell.el json-tests.el json.el
+  message-tests.el package.el rmc.el sequences.texi xref.el
 
 Damien Elmes: changed erc.el erc-dcc.el erc-track.el erc-log.el
   erc-pcomplete.el README erc-button.el erc-nets.el erc-ring.el Makefile
@@ -899,6 +970,8 @@ and changed ob.el ob-sh.el org.el ox.el ox-latex.el 
ob-tangle.el ob-C.el
   ob-table.el ob-ditaa.el ob-dot.el ob-gnuplot.el ob-js.el ob-mscgen.el
   ob-ocaml.el ob-org.el ob-plantuml.el and 14 other files
 
+Daniel Barrett: changed dbnotn.rnc
+
 Daniel Bergey: changed indian.el
 
 Daniel Brockman: changed cus-start.el format-spec.el ibuffer.el rcirc.el
@@ -908,13 +981,13 @@ Daniel Clemente: changed generic-x.el ox-html.el
 Daniel Colascione: wrote alloc-tests.el generator-tests.el generator.el
   lisp-tests.el
 and co-wrote js.el
-and changed w32fns.c emacs.c alloc.c cl-macs.el image.c keyboard.c
-  configure.ac lisp.h process.c sh-script.el src/Makefile.in cygw32.c
-  simple.el w32term.h cl-lib-tests.el cygw32.h dbusbind.c fns.c frame.c
-  sysdep.c unexcw.c and 162 other files
+and changed keyboard.c emacs.c w32fns.c alloc.c image.c cl-macs.el lisp.h
+  src/Makefile.in configure.ac frame.c frame.el process.c xterm.el
+  sh-script.el xfaces.c coding.c cygw32.c data.c dbusbind.c fns.c font.c
+  and 216 other files
 
-Daniel Dehennin: changed mml2015.el gnus-mlspl.el gnus-msg.el
-  mm-decode.el ox.el
+Daniel Dehennin: changed gnus-mlspl.el mml2015.el gnus-msg.el gnus.texi
+  mm-decode.el nnmail.el ox.el
 
 Daniel E. Doherty: changed calc.texi
 
@@ -957,7 +1030,7 @@ Daniel Ortmann: changed paragraphs.el
 
 Daniel Pfeiffer: wrote conf-mode.el copyright.el executable.el
   sh-script.el skeleton.el two-column.el
-and co-wrote ada-stmt.el apropos.el progmodes/compile.el wyse50.el
+and co-wrote apropos.el progmodes/compile.el wyse50.el
 and changed make-mode.el files.el buff-menu.el font-lock.el mpuz.el
   progmodes/grep.el sgml-mode.el autoinsert.el cperl-mode.el facemenu.el
   gomoku.el help.el imenu.el autoload.el autorevert.el bindings.el
@@ -965,11 +1038,14 @@ and changed make-mode.el files.el buff-menu.el 
font-lock.el mpuz.el
   and 12 other files
 
 Daniel Pittman: co-wrote tramp-cache.el
-and changed gnus-spec.el gnus-sum.el ispell.el nnimap.el spam-report.el
-  spam.el tramp-sh.el
+and changed gnus-spec.el emacsclient.1 emacsclient.c gnus-sum.el
+  ispell.el misc.texi nnimap.el spam-report.el spam.el tramp-sh.el
+  vc-hg.el
 
 Daniel Quinlan: changed dired.el info.el
 
+Daniel Ralston: changed rcirc.el
+
 Daniel Schoepe: changed gnus-sum.el
 
 Dani Moncayo: changed msys-to-w32 Makefile.in configure.ac buffers.texi
@@ -982,7 +1058,7 @@ and co-wrote hideshow.el
 and changed vc.el configure.ac vc-hg.el vc-git.el src/Makefile.in
   vc-bzr.el sysdep.c emacs.c process.c vc-cvs.el lisp.h term.c
   vc-hooks.el xterm.c keyboard.c vc-svn.el xterm.el callproc.c darwin.h
-  term.el gnu-linux.h and 920 other files
+  term.el gnu-linux.h and 921 other files
 
 Danny Roozendaal: wrote handwrite.el
 
@@ -990,6 +1066,8 @@ Danny Siu: changed gnus-sum.el gnus-picon.el nndoc.el 
nnimap.el smiley.el
 
 Dan Rosenberg: changed movemail.c
 
+Dario Gjorgjevski: changed auth-source.el recentf.el syntax.el
+
 Darren Hoo: changed db-find.el db.el gnus-art.el isearch.el man.el
   nsmenu.m startup.el
 
@@ -1014,7 +1092,7 @@ and co-wrote latin-ltx.el socks.el
 and changed configure.ac help.el mule-cmds.el fortran.el mule-conf.el
   xterm.c browse-url.el mule.el coding.c src/Makefile.in european.el
   fns.c mule-diag.el simple.el wid-edit.el cus-edit.el cus-start.el
-  files.el keyboard.c byte-opt.el info.el and 773 other files
+  files.el keyboard.c byte-opt.el info.el and 772 other files
 
 Dave Pearson: wrote 5x5.el quickurl.el
 
@@ -1032,6 +1110,8 @@ David Bakhash: wrote strokes.el
 
 David Benjamin: changed xfns.c xterm.c xterm.h
 
+David Beswick: changed startup.el
+
 David Bremner: changed shr.el
 
 David Burger: changed macros.el
@@ -1049,7 +1129,7 @@ David De La Harpe Golden: changed files.el mouse.el 
simple.el fileio.c
 
 David Edmondson: changed message.el erc.el mml2015.el process.c
   gnus-cite.el imap.el mm-uu.el mm-view.el nnfolder.el nnimap.el nnml.el
-  shr.el
+  rcirc.el shr.el
 
 David Engster: wrote mairix.el nnmairix.el
 and co-wrote gitmerge.el
@@ -1080,7 +1160,7 @@ David Hansen: changed dbusbind.c nnrss.el cc-cmds.el 
dired.el em-dirs.el
 
 David Hedbor: changed nnmail.el
 
-David Hull: changed vc-hg.el
+David Hull: changed etags.c vc-hg.el
 
 David Hunter: changed flymake.el inc/ms-w32.h process.c
 
@@ -1116,6 +1196,8 @@ David M. Brown: wrote array.el
 
 David McCabe: changed lisp-mode.el
 
+David Mcfarland: changed gdb-mi.el
+
 David Megginson: wrote derived.el
 and changed mode-clone.el
 
@@ -1162,7 +1244,7 @@ David Robinow: changed w32inevt.c
 
 David Robinson: changed menu-bar.el x-win.el
 
-David Röthlisberger: changed ido.el
+David Röthlisberger: changed ido.el shell.el
 
 David S. Goldberg: changed message.el gnus-art.el
 
@@ -1217,7 +1299,8 @@ and changed buffer.c
 Devon Sean McCullough: changed url-http.el buff-menu.el comint.el
   ns-win.el
 
-Dhruva Krishnamurthy: changed emacsclient.c fontset.c sound.c w32proc.c
+Dhruva Krishnamurthy: changed emacsclient.c fontset.c image.c sound.c
+  w32proc.c
 
 Diane Murray: changed erc.el erc-backend.el erc-menu.el erc-button.el
   erc-track.el erc-match.el erc-nets.el erc-list.el erc-autoaway.el
@@ -1225,6 +1308,8 @@ Diane Murray: changed erc.el erc-backend.el erc-menu.el 
erc-button.el
   erc-goodies.el erc-ibuffer.el erc-log.el erc-nicklist.el url-http.el
   Makefile erc-dcc.el and 36 other files
 
+Dick R. Chiang: changed checkdoc.el
+
 Didier Verna: wrote gnus-diary.el nndiary.el
 and co-wrote nnml.el
 and changed nntp.el message.el gnus-group.el gnus-sum.el gnus-msg.el
@@ -1241,9 +1326,9 @@ Dieter Schuster: changed etags.c
 
 Dima Kogan: wrote diff-mode-tests.el
 and changed diff-mode.el erc-backend.el image.c font.c gud.el hideshow.el
-  autorevert.el find-file.el subword.el BOOST.tests PCRE.tests PTESTS
-  TESTS align.el alloc.c ediff-mult.el ediff.el erc-button.el keyboard.c
-  lisp.el regex-tests.el and 6 other files
+  autorevert.el comint.el find-file.el subword.el BOOST.tests PCRE.tests
+  PTESTS TESTS align.el alloc.c ediff-mult.el ediff.el erc-button.el
+  isearch.el keyboard.c and 11 other files
 
 Dirk Herrmann: co-wrote bibtex.el
 
@@ -1267,16 +1352,18 @@ Dmitry Gorbik: changed org.el
 
 Dmitry Gutov: wrote elisp-mode-tests.el jit-lock-tests.el json-tests.el
   vc-hg-tests.el xref-tests.el
-and changed ruby-mode.el xref.el vc-git.el elisp-mode.el etags.el
-  ruby-mode-tests.el project.el js.el package.el vc-hg.el vc.el
-  symref/grep.el log-edit.el menu-bar.el package-test.el
-  progmodes/grep.el simple.el vc-svn.el eldoc.el find-func.el lisp.el
-  and 89 other files
+and changed ruby-mode.el xref.el project.el vc-git.el elisp-mode.el
+  etags.el ruby-mode-tests.el js.el package.el vc-hg.el vc.el
+  symref/grep.el log-edit.el dired-aux.el simple.el menu-bar.el
+  minibuffer.el package-test.el progmodes/grep.el vc-svn.el eldoc.el
+  and 110 other files
 
 Dmitry Kurochkin: changed isearch.el
 
 Dmitry Lazurkin: changed progmodes/python.el python-tests.el
 
+Dmitry Safronov: changed outline.el
+
 Dominique de Waleffe: changed pcvs-info.el
 
 Dominique Quatravaux: changed tramp-sh.el
@@ -1297,13 +1384,15 @@ Drake Wilson: changed emacsclient.c files.el misc.texi
 
 Drew Adams: wrote light-blue-theme.el
 and co-wrote color.el
-and changed cus-edit.el dired.el faces.el files.el help-mode.el imenu.el
-  info.el isearch.el ls-lisp.el menu-bar.el modes.texi mouse.el
-  ange-ftp.el apropos.el bindings.el bookmark.el custom.el descr-text.el
-  dired.texi etags.el finder.el and 15 other files
+and changed dired.el cus-edit.el imenu.el info.el ls-lisp.el faces.el
+  files.el help-mode.el help.el isearch.el menu-bar.el modes.texi
+  mouse.el ange-ftp.el apropos.el bindings.el bookmark.el custom.el
+  descr-text.el dired-aux.el dired.texi and 18 other files
 
 E. Choroba: changed simple.el
 
+Edison Ibañez: changed auth-source-pass-tests.el
+
 Ed L. Cashin: changed gnus-sum.el imap.el
 
 Ed Swarthout: changed hexl.el textmodes/table.el
@@ -1353,9 +1442,9 @@ Eli Zaretskii: wrote [bidirectional display in xdisp.c]
   chartab-tests.el coding-tests.el doc-tests.el etags-tests.el rxvt.el
   tty-colors.el
 and changed xdisp.c msdos.c w32.c display.texi w32fns.c simple.el
-  files.el fileio.c keyboard.c w32proc.c files.texi w32term.c text.texi
-  dispnew.c emacs.c frames.texi dispextern.h lisp.h window.c process.c
-  term.c and 1125 other files
+  files.el fileio.c keyboard.c w32term.c w32proc.c emacs.c files.texi
+  text.texi dispnew.c frames.texi lisp.h dispextern.h window.c process.c
+  term.c and 1184 other files
 
 Emanuele Giaquinta: changed configure.ac rxvt.el charset.c etags.c
   fontset.c frame.el gnus-faq.texi loadup.el lread.c sh-script.el
@@ -1367,20 +1456,20 @@ Emilio C. Lopes: changed woman.el cmuscheme.el help.el 
vc.el advice.el
   animate.el apropos.el artist.el bookmark.el cal-menu.el calc-prog.el
   calc-store.el calcalg3.el calendar.el calendar.texi checkdoc.el
   code-pages.el codepage.el completion.el cus-edit.el diff.el
-  and 56 other files
+  and 57 other files
 
-Emmanuel Briot: wrote ada-prj.el xml.el
-and co-wrote ada-mode.el ada-xref.el
-and changed ada-stmt.el
+Emmanuel Briot: wrote xml.el
+and changed ada-mode.el ada-stmt.el ada-prj.el ada-xref.el
 
 Era Eriksson: changed bibtex.el dired.el json.el ses.el ses.texi shell.el
   tramp.el tramp.texi
 
-Eric Abrahamsen: changed eieio-base.el registry.el nnimap.el
-  gnus-registry.el files.el files.texi windows.texi eieio-test-persist.el
-  eieio.el gnus-start.el gnus-sum.el gnus.texi nnir.el buffers.texi
-  checkdoc.el files-tests.el gnus-bcklg.el gnus-group.el nnmairix.el
-  org.el org.texi and 4 other files
+Eric Abrahamsen: wrote gnus-test-headers.el
+and changed gnus-sum.el gnus-group.el gnus-start.el gnus-registry.el
+  eieio-base.el nnimap.el gnus.texi nnir.el gnus-agent.el registry.el
+  gnus-srvr.el gnus.el eieio.el gnus-score.el files.el files.texi
+  gnus-art.el gnus-cache.el nnmail.el nnmaildir.el nnrss.el
+  and 43 other files
 
 Eric Bélanger: changed image.c
 
@@ -1426,48 +1515,50 @@ Eric M. Ludlam: wrote analyze.el analyze/complete.el 
analyze/debug.el
   proj-archive.el proj-aux.el proj-comp.el proj-elisp.el proj-info.el
   proj-misc.el proj-obj.el proj-prog.el proj-scheme.el proj-shared.el
   proj.el project-am.el pulse.el refs.el sb-image.el sb.el scm.el
-  scope.el semantic-ia-utest.el semantic-tests.el semantic-utest-c.el
-  semantic-utest.el semantic/chart.el semantic/complete.el
-  semantic/ctxt.el semantic/debug.el semantic/find.el semantic/format.el
-  semantic/imenu.el semantic/sort.el semantic/texi.el semantic/util.el
-  source.el speedbar.el srecode-tests.el srecode/compile.el
-  srecode/ctxt.el srecode/el.el srecode/find.el srecode/java.el
-  srecode/mode.el srecode/semantic.el srecode/table.el srecode/texi.el
-  srt.el symref.el symref/grep.el system.el tag-file.el tag-ls.el
-  tag-write.el tag.el test.el
+  scope.el semantic-tests.el semantic-utest-c.el semantic-utest-fmt.el
+  semantic-utest-ia.el semantic-utest.el semantic/chart.el
+  semantic/complete.el semantic/ctxt.el semantic/debug.el
+  semantic/find.el semantic/format.el semantic/imenu.el semantic/sort.el
+  semantic/texi.el semantic/util.el source.el speedbar.el
+  srecode-tests.el srecode/compile.el srecode/ctxt.el srecode/el.el
+  srecode/find.el srecode/java.el srecode/mode.el srecode/semantic.el
+  srecode/table.el srecode/texi.el srt.el symref.el symref/grep.el
+  system.el tag-file.el tag-ls.el tag-write.el tag.el test-fmt.el test.el
 and co-wrote db-ebrowse.el srecode/cpp.el util-modes.el
-and changed c.srt ede.texi info.el rmail.el speedbspec.el cedet.el
+and changed c.srt ede.texi info.el rmail.el speedbspec.el  cedet.el
   ede-autoconf.srt ede-make.srt eieio.texi gud.el sb-dir-minus.xpm
   sb-dir-plus.xpm sb-dir.xpm sb-mail.xpm sb-pg-minus.xpm sb-pg-plus.xpm
   sb-pg.xpm sb-tag-gt.xpm sb-tag-minus.xpm sb-tag-plus.xpm
-  sb-tag-type.xpm and 33 other files
+  and 50 other files
 
 Eric Schulte: wrote ob-asymptote.el ob-awk.el ob-calc.el ob-comint.el
   ob-coq.el ob-css.el ob-ditaa.el ob-dot.el ob-emacs-lisp.el ob-eval.el
-  ob-forth.el ob-gnuplot.el ob-haskell.el ob-java.el ob-js.el ob-keys.el
-  ob-latex.el ob-makefile.el ob-ocaml.el ob-org.el ob-ruby.el ob-sass.el
-  ob-shell.el ob-shen.el ob-sql.el ob-sqlite.el ob-table.el ob-tangle.el
-  ob.el org-plot.el
+  ob-forth.el ob-gnuplot.el ob-haskell.el ob-java.el ob-js.el ob-latex.el
+  ob-makefile.el ob-ocaml.el ob-org.el ob-ruby.el ob-sass.el ob-shell.el
+  ob-shen.el ob-sql.el ob-sqlite.el ob-table.el ob-tangle.el ob.el
+  org-plot.el
 and co-wrote ob-C.el ob-R.el ob-core.el ob-exp.el ob-fortran.el
   ob-lisp.el ob-lob.el ob-maxima.el ob-perl.el ob-picolisp.el
-  ob-python.el ob-ref.el ob-scheme.el org-bibtex.el
+  ob-python.el ob-ref.el ob-scheme.el ol-bibtex.el
 and changed org.texi org.el ob-clojure.el org-exp-blocks.el ob-sh.el
-  ox.el ox-latex.el org-src.el ob-plantuml.el ob-screen.el org-macs.el
-  org-table.el org-agenda.el org-mouse.el orgcard.tex ob-lilypond.el
-  ob-mscgen.el ob-octave.el org-clock.el org-compat.el org-footnote.el
-  and 14 other files
+  org-bibtex.el ox.el ox-latex.el org-src.el ob-plantuml.el ob-keys.el
+  ob-screen.el org-macs.el org-table.el org-agenda.el org-mouse.el
+  orgcard.tex ob-lilypond.el ob-mscgen.el ob-octave.el org-clock.el
+  and 16 other files
 
 Eric S Fraga: wrote ob-ledger.el
 and co-wrote ob-maxima.el
 and changed ox-icalendar.el org.texi ox-latex.el
 
+Eric Skoglund: changed esh-proc.el eshell.texi
+
 Eric S. Raymond: wrote AT386.el asm-mode.el cookie1.el finder.el gud.el
   lisp-mnt.el loadhist.el
 and co-wrote make-mode.el
 and changed vc.el vc-hooks.el vc-svn.el vc-cvs.el vc-git.el vc-rcs.el
   vc-sccs.el vc-hg.el vc-bzr.el vc-dispatcher.el files.texi vc-mcvs.el
   vc-mtn.el files.el vc-arch.el comint.el emacsbug.el simple.el vc-src.el
-  Makefile.in add-log.el and 273 other files
+  Makefile.in add-log.el and 274 other files
 
 Eric Youngdale: changed etags-vmslib.c
 
@@ -1506,6 +1597,8 @@ Eugene Exarevsky: changed sql.el
 
 Evangelos Evangelou: changed progmodes/f90.el
 
+Evan Moses: changed progmodes/python.el
+
 Evgeni Dobrev: changed man.el
 
 Evgeni Kolev: changed perl-mode.el
@@ -1514,7 +1607,7 @@ Evgeny Fraimovitch: changed emacsclient.c
 
 Evgeny Roubinchtein: changed mail-source.el pc-select.el
 
-Evgeny Zajcev: changed battery.el image.c image.el
+Evgeny Zajcev: changed battery.el image.c image.el quail.el
 
 Exal de Jesus Garcia Carrillo: changed erc-sound.el erc.texi
 
@@ -1539,7 +1632,18 @@ Faried Nawaz: changed message.el
 
 Federico Beffa: changed xscheme.el
 
-Felipe Ochoa: changed faces.el paren.el
+Federico Tedin: wrote tempo-tests.el
+and changed minibuf.c mouse.el package.el rect.el cursor-sensor.el
+  cus-start.el doc-view.el edebug.el eww.el files.texi gamegrid.el
+  keyboard.c minibuf.texi package-tests.el package.texi simple.el
+  tempo.el vc-git.el xfaces.c
+
+Felicián Németh: changed project.el xref.el
+
+Felipe Ochoa: changed faces.el js.el js.js paren.el
+
+Felix E. Klee: co-wrote svg.el
+and changed display.texi
 
 Felix H. Dahlke: changed js.el
 
@@ -1558,8 +1662,14 @@ Ferenc Wagner: changed nnweb.el
 
 Filipe Cabecinhas: changed nsterm.m
 
-Filipp Gunbin: changed autorevert.el shell.el auth-source-tests.el
-  auth-source.el cc-menus.el dired-aux.el info.el info.texi
+Filipp Gunbin: changed auth-source-tests.el auth-source.el autorevert.el
+  compilation.txt dired-aux.el gnus-ml.el progmodes/compile.el shell.el
+  cc-menus.el custom.el dabbrev.el gnus-sum.el imenu.el info.el info.texi
+  ldap.el search.texi sql.el
+
+Fix Bug#24483.: changed sql.el sql-tests.el
+
+Fix Bug#35307.: changed sql.el
 
 Flemming Hoejstrup Hansen: changed forms.el
 
@@ -1575,14 +1685,14 @@ Florian Weimer: changed message.el gnus.el coding.c 
gnus-sum.el gnus.texi
 Francesco Pizzolante: changed org-clock.el org-macs.el org.el ox-html.el
 
 Francesco Potortì: wrote cmacexp.el
-and changed etags.c man.el delta.h etags.1 undigest.el comint.el
-  configure.ac maintaining.texi uniquify.el latin-post.el rmail.el
-  etags.el latin-alt.el lib-src/Makefile.in sgml-mode.el Makefile.in
-  data.c european.el filelock.c files.el generic-x.el and 44 other files
+and changed etags.c man.el delta.h etags.1 undigest.el rmail.el comint.el
+  configure.ac maintaining.texi uniquify.el latin-post.el etags.el
+  latin-alt.el lib-src/Makefile.in sgml-mode.el Makefile.in data.c
+  european.el filelock.c files.el generic-x.el and 44 other files
 
-Francesc Rocher: changed MORE.STUFF splash.png splash.svg startup.el
-  README cus-start.el gnus.el gnus.png gnus.svg macterm.c splash.pbm
-  splash.xpm splash8.xpm w32term.c xdisp.c xterm.c
+Francesc Rocher: changed splash.png splash.svg startup.el README
+  cus-start.el gnus.el gnus.png gnus.svg macterm.c splash.pbm splash.xpm
+  splash8.xpm w32term.c xdisp.c xterm.c
 
 Francis Devereux: changed nsfont.m
 
@@ -1648,6 +1758,8 @@ Friedrich Delgado Friedrichs: changed org.el
 
 Fritz Knabe: changed mh-mime.el
 
+Fritz Stelzer: changed xref.el
+
 F. Thomas May: wrote blackbox.el
 
 Fujii Hironori: changed w32fns.c
@@ -1679,12 +1791,13 @@ G Dinesh Dutt: changed etags.el
 
 Geert Kloosterman: changed which-func.el
 
-Gemini Lasswell: wrote edebug-tests.el kmacro-tests.el testcover-tests.el
-and changed edebug.el cl-macs.el cl-generic.el ert-x.el cl-print.el
-  edebug-test-code.el edebug.texi eieio-compat.el generator.el subr.el
-  autorevert-tests.el cl-print-tests.el eieio.texi emacs-lisp/debug.el
-  eval-tests.el eval.c filenotify-tests.el generator-tests.el kmacro.el
-  lread.c map-tests.el and 10 other files
+Gemini Lasswell: wrote backtrace-tests.el backtrace.el edebug-tests.el
+  kmacro-tests.el testcover-tests.el thread-tests.el thread.el
+and changed edebug.el cl-print.el edebug.texi cl-print-tests.el
+  debugging.texi cl-macs.el emacs-lisp/debug.el edebug-test-code.el
+  subr.el testcases.el testcover.el cl-generic.el ert-x.el eval.c
+  eieio-compat.el elisp.texi ert.el ert.texi eval-tests.el generator.el
+  print.c and 24 other files
 
 Geoff Gole: changed align.el ibuffer.el whitespace.el
 
@@ -1711,7 +1824,7 @@ Georges Brun-Cottan: wrote easy-mmode.el
 
 George V. Reilly: changed emacs.ico makefile.nt
 
-Gerd Möllmann: wrote authors.el ebrowse.el jit-lock.el rx.el tooltip.el
+Gerd Möllmann: wrote authors.el ebrowse.el jit-lock.el tooltip.el
 and changed xdisp.c xterm.c dispnew.c dispextern.h xfns.c xfaces.c
   window.c keyboard.c lisp.h faces.el alloc.c buffer.c startup.el xterm.h
   fns.c simple.el term.c configure.ac frame.c xmenu.c emacs.c
@@ -1738,10 +1851,10 @@ Giuseppe Scrivano: changed browse-url.el buffer.c 
configure.ac sysdep.c
 
 Glenn Morris: wrote check-declare.el f90-tests.el vc-bzr-tests.el
 and changed configure.ac Makefile.in src/Makefile.in calendar.el
-  diary-lib.el lisp/Makefile.in files.el rmail.el make-dist
-  progmodes/f90.el bytecomp.el simple.el authors.el admin.el emacs.texi
-  misc/Makefile.in startup.el lib-src/Makefile.in ack.texi display.texi
-  cal-menu.el and 1681 other files
+  diary-lib.el lisp/Makefile.in files.el make-dist rmail.el
+  progmodes/f90.el bytecomp.el simple.el authors.el admin.el startup.el
+  emacs.texi misc/Makefile.in display.texi lib-src/Makefile.in ack.texi
+  subr.el and 1760 other files
 
 Glynn Clements: wrote gamegrid.el snake.el tetris.el
 
@@ -1783,7 +1896,7 @@ Gregor Schmid: changed intervals.c intervals.h 
tcl-mode.el textprop.c
 
 Gregory Chernov: changed nnslashdot.el
 
-Grégory Mounié: changed man.el
+Grégory Mounié: changed display.texi hi-lock.el man.el
 
 Gregory Neil Shapiro: changed mailabbrev.el
 
@@ -1882,10 +1995,11 @@ Hoan Ton-That: changed erc-log.el
 Holger Schauer: wrote fortune.el
 and changed message-utils.el
 
-Hong Xu: changed paren.el search.c editfns.c em-cmpl.el emacs-mime.texi
-  files.texi flyspell.el maintaining.texi parse-time-tests.el
-  parse-time.el progmodes/cpp.el progmodes/python.el programs.texi
-  python-tests.el subr.el vc.el
+Hong Xu: changed etags.el simple.el maintaining.texi minibuf.texi
+  paren.el progmodes/python.el search.c editfns.c em-cmpl.el
+  emacs-mime.texi files.texi flyspell.el gnus-cite.el message.el
+  parse-time-tests.el parse-time.el progmodes/cpp.el programs.texi
+  python-tests.el subr.el url-util.el and 3 other files
 
 Hosoya Kei: changed TUTORIAL.ja
 
@@ -1912,10 +2026,12 @@ Hynek Schlawack: changed gnus-art.el gnus-sum.el
 
 Ian D: changed doc-view.el image-mode.el
 
-Ian Dunn: changed eww.el
+Ian Dunn: changed eww.el vc-hg.el
 
 Ian Eure: changed sql.el url-util.el
 
+Ian Johnson: changed comint.el
+
 Ian Kelling: changed process.c ob-core.el
 
 Ian Lance Taylor: changed sco4.h
@@ -1923,10 +2039,12 @@ Ian Lance Taylor: changed sco4.h
 Ian T Zimmerman: wrote gametree.el
 and changed ange-ftp.el desktop.el tex-mode.el
 
-İ. Göktuğ Kayaalp: changed vc-rcs.el
+İ. Göktuğ Kayaalp: changed eww.el vc-rcs.el
 
 Igor Kuzmin: wrote cconv.el
 
+Iku Iwasa: changed auth-source-pass-tests.el auth-source-pass.el
+
 Ikumi Keita: changed characters.el japan-util.el kinsoku.el minibuf.c
 
 Ilja Weis: co-wrote gnus-topic.el
@@ -1969,12 +2087,14 @@ Irie Tetsuya: changed gnus.texi message.texi
 
 İsmail Dönmez: changed nsfont.m nsterm.m url-auth.el xterm.c
 
+Ismail S: changed org-capture.el
+
 Istvan Marko: changed gnus-agent.el xfns.c
 
 Itai Zukerman: changed mm-decode.el
 
-Ivan Andrus: changed epg.el ffap.el find-file.el ibuf-ext.el ibuffer.el
-  newcomment.el nxml-mode.el progmodes/python.el
+Ivan Andrus: changed editfns.c epg.el ffap.el find-file.el ibuf-ext.el
+  ibuffer.el newcomment.el nxml-mode.el progmodes/python.el
 
 Ivan Boldyrev: changed mml1991.el
 
@@ -1985,9 +2105,9 @@ and changed eww.el shr.el appt.el dired.el help-fns.el 
saveplace.el
 Ivan Radanov Ivanov: changed quail/cyrillic.el
 
 Ivan Shmakov: changed eww.el shr.el desktop.el eww.texi faces.el files.el
-  cus-dep.el descr-text.el diff-mode.el enriched.el erc-track.el
-  facemenu.el files.texi iso-transl.el misearch.el nndoc.el simple.el
-  tar-mode.el tcl.el tex-mode.el url-cookie.el
+  tar-mode.el cus-dep.el descr-text.el diff-mode.el diff.el enriched.el
+  erc-track.el facemenu.el files.texi iso-transl.el misearch.el nndoc.el
+  rcirc.el simple.el smerge-mode.el and 5 other files
 
 Ivan Vilata i Balaguer: changed org-clock.el org.texi
 
@@ -2001,11 +2121,16 @@ Jaap-Henk Hoepman: changed mm-decode.el
 
 Jacek Chrząszcz: changed ispell.el
 
+Jack Coughlin: changed calc-prog.el
+
 Jack Duthen: changed which-func.el
 
 Jack Repenning: changed unexelfsgi.c
 
-Jackson Ray Hamilton: changed js.el sgml-mode.el
+Jackson Ray Hamilton: changed js.el jsx-unclosed-2.jsx jsx.jsx js.js
+  jsx-comment-string.jsx files.el jsx-align-gt-with-lt.jsx
+  jsx-indent-level.jsx jsx-quote.jsx jsx-self-closing.jsx
+  jsx-unclosed-1.jsx sgml-mode.el
 
 Jack Twilley: changed message.el
 
@@ -2015,8 +2140,12 @@ Jacques Duthen: co-wrote ps-print.el ps-samp.el
 
 Jae-hyeon Park: changed fontset.el
 
+Jaesup Kwak: changed xwidget.c
+
 Jaeyoun Chung: changed hangul3.el hanja3.el gnus-mule.el hangul.el
 
+J. Alexander Branham: wrote conf-mode-tests.el
+
 Jambunathan K: wrote ox-odt.el
 and co-wrote ox-html.el
 and changed org-lparse.el org.el org.texi ox.el icomplete.el
@@ -2055,10 +2184,10 @@ Jamie Zawinski: wrote mailabbrev.el tar-mode.el
 and co-wrote byte-opt.el byte-run.el bytecomp.el disass.el font-lock.el
 and changed bytecode.c mail-extr.el subr.el
 
-Jan Beich: changed configure.ac
+Jan Beich: changed configure.ac mml-smime.el
 
-Jan Böcker: wrote org-docview.el
-and changed org.el org.texi
+Jan Böcker: wrote ol-docview.el
+and changed org.el org-docview.el org.texi
 
 Jan Djärv: wrote dnd.el dynamic-setting.el x-dnd.el
 and changed gtkutil.c xterm.c nsterm.m xfns.c configure.ac nsfns.m
@@ -2105,7 +2234,7 @@ and changed org-gnus.el org-table.el org.texi
 Jarno Malmari: wrote url-auth-tests.el
 and changed url-auth.el
 
-Jarosław Rzeszótko: changed url-http.el
+Jarosław Rzeszótko: changed ielm.el url-http.el
 
 Jason Baker: changed gnus-art.el
 
@@ -2122,7 +2251,7 @@ Jason Rumney: wrote w32-vars.el
 and changed w32fns.c w32term.c w32font.c w32menu.c w32-win.el w32term.h
   w32.c w32uniscribe.c w32-fns.el makefile.nt w32console.c w32bdf.c
   configure.bat keyboard.c w32proc.c w32select.c font.c image.c w32font.h
-  w32gui.h xdisp.c and 154 other files
+  w32gui.h xdisp.c and 153 other files
 
 Jason S. Cornez: changed keyboard.c
 
@@ -2134,19 +2263,21 @@ Jay Belanger: changed calc.texi calc.el calc-ext.el 
calc-units.el
 
 Jay K. Adams: wrote jka-cmpr-hook.el jka-compr.el
 
-Jay Kamat: changed erc-goodies.el esh-opt.el
+Jay Kamat: changed esh-opt.el em-hist.el em-tramp.el erc-goodies.el
+  esh-opt-tests.el
 
 Jay McCarthy: changed org-colview.el
 
 Jay Sachs: changed gnus-score.el gnus-win.el
 
-J.D. Smith: co-wrote idlw-help.el idlw-shell.el idlwave.el
-and changed idlw-rinfo.el idlw-toolbar.el comint.el idlwave.texi vc.el
-  bibtex.el files.texi hideshow.el idlw-complete-structtag.el misc.texi
-  mouse.el
+Jd Smith: co-wrote idlw-help.el idlw-shell.el idlwave.el
 
-Jean-Christophe Helary: changed ns-win.el strings.texi subr-x.el
-  ucs-normalize.el
+J.D. Smith: changed idlwave.el idlw-shell.el idlw-help.el idlw-rinfo.el
+  idlw-toolbar.el comint.el idlwave.texi vc.el bibtex.el files.texi
+  hideshow.el idlw-complete-structtag.el misc.texi mouse.el
+
+Jean-Christophe Helary: changed emacs-lisp-intro.texi ns-win.el
+  package-tests.el package.el strings.texi subr-x.el ucs-normalize.el
 
 Jean Haidouk: changed latin-alt.el latin-post.el latin-pre.el
 
@@ -2178,7 +2309,9 @@ and changed emacstool.1 emacstool.c
 Jeffrey C Honig: wrote mh-print.el
 and changed mh-e.el mh-comp.el mh-utils.el mh-mime.el mh-customize.el
   mh-folder.el mh-funcs.el mh-alias.el mh-seq.el mh-show.el Makefile
-  bsdos4.h mh-junk.el mh-letter.el
+  bsdos4.h mh-identity.el mh-junk.el mh-letter.el
+
+Jelle Licht: changed auth-source-pass-tests.el auth-source-pass.el
 
 Jens Krinke: changed smime.el
 
@@ -2199,6 +2332,8 @@ Jens Uwe Schmidt: changed edebug.el
 
 Jeramey Crawford: changed amdx86-64.h configure.ac
 
+Jeremie Courreges-Anglas: changed kqueue.c
+
 Jérémie Courrèges-Anglas: changed org.texi ox-latex.el
 
 Jeremy Bertram Maitin-Shepard: changed erc.el erc-backend.el
@@ -2230,6 +2365,8 @@ and changed gnus-sum.el gnus-art.el message.el 
gnus-group.el gnus-msg.el
 
 Jhair Tocancipa Triana: changed gnus-audio.el
 
+Jiajie Chen: changed button.el
+
 Jihyun Cho: wrote hangul.el hanja-util.el
 
 Jim Blandy: wrote tvi970.el
@@ -2249,6 +2386,11 @@ Jim Meyering: changed lread.c make-docfile.c w32.c 
w32font.c copyright.el
   alloc.c artist.el autoinsert.el buffer.h callproc.c character.h
   charset.c configure and 55 other files
 
+Jimmy Aguilar Mena: changed xdisp.c xfaces.c dispextern.h face-remap.el
+  hl-line.el icomplete.el xwidget.c
+
+Jimmy Yuen Ho Wong: changed nsm.el gnutls.c gnutls.el net-utils.el
+
 Jim Paris: changed process.c
 
 Jim Radford: changed gnus-start.el
@@ -2285,12 +2427,13 @@ Joanna Pluta: changed TUTORIAL.pl
 
 João Cachopo: changed spam.el
 
-João Távora: wrote elec-pair.el electric-tests.el message-tests.el
-and changed flymake.el flymake-proc.el flymake-tests.el flymake-elisp.el
-  flymake.texi elisp-mode.el flymake-ui.el tex-mode.el
-  errors-and-warnings.c linum.el message.el shr.el xref.el Makefile
-  bytecomp.el checkdoc.el cperl-mode.el electric.el emacs.texi
-  lisp-mode.el maintaining.texi and 14 other files
+João Távora: wrote elec-pair.el electric-tests.el flymake-cc.el
+  jsonrpc-tests.el jsonrpc.el message-tests.el
+and changed flymake.el flymake-proc.el icomplete.el minibuffer.el
+  flymake-tests.el flymake.texi elisp-mode.el flymake-elisp.el
+  electric.el flymake-ui.el text.texi json-tests.el tex-mode.el
+  errors-and-warnings.c json.c xref.el auth-source-pass.el linum.el
+  maintaining.texi message.el progmodes/python.el and 29 other files
 
 Jochen Hein: changed gnus-art.el
 
@@ -2319,6 +2462,8 @@ Joel N. Weber II: changed comint.el make-dist
 
 Joel Ray Holveck: changed gnus-sum.el info.el
 
+Joel Rosdahl: changed flymake-proc.el progmodes/python.el python-tests.el
+
 Joe Matarazzo: changed ebrowse.c
 
 Joe Ramey: changed filelock.c rmailsum.el
@@ -2341,9 +2486,10 @@ Johan Bockgård: changed erc.el cl-macs.el pcase.el 
erc-backend.el
   erc-button.el erc-match.el icomplete.el mouse-sel.el subr.el xdisp.c
   browse-url.el bytecomp.el custom.el display.texi edebug.el eieio.el
   erc-compat.el erc-nickserv.el erc-ring.el erc-speak.el erc-track.el
-  and 62 other files
+  and 63 other files
 
-Johan Claesson: changed cl.texi filecache.el term.el
+Johan Claesson: changed cl.texi filecache.el files-x.el help-fns.el
+  tabulated-list.el term.el
 
 Johan Euphrosine: changed ibuf-ext.el
 
@@ -2365,6 +2511,8 @@ John F. Trudeau: changed make-mode.el
 
 John F. Whitehead: changed mule-cmds.el mule-diag.el
 
+John Goerzen: changed erc.el
+
 John Grabowski: changed xfaces.c xfns.c
 
 John Heidemann: wrote mouse-copy.el mouse-drag.el
@@ -2380,7 +2528,7 @@ John K. Luebs: changed org.el
 
 John Marino: changed configure.ac
 
-John Mastro: changed auth-source.el ibuffer.el
+John Mastro: changed auth-source.el ibuffer.el w32heap.c
 
 John Mongan: changed progmodes/f90.el
 
@@ -2389,7 +2537,8 @@ John Paul Wallington: changed ibuffer.el ibuf-ext.el 
subr.el help-fns.el
   bytecomp.el cus-theme.el font-lock.el hexl.el ibuf-macs.el info.el
   minibuf.c re-builder.el simple.el startup.el and 135 other files
 
-John Shahid: changed easy-mmode.el term.c termhooks.h terminal.c
+John Shahid: changed term.el easy-mmode.el tramp.el window.c window.el
+  env.el flymake.el term.c termhooks.h terminal.c windows.texi
 
 John Sullivan: changed window.c
 
@@ -2418,8 +2567,8 @@ John Yates: changed hideshow.el
 
 Jon Anders Skorpen: changed ox-publish.el
 
-Jonas Bernoulli: changed eieio.el button.el ido.el lisp-mnt.el
-  tabulated-list.el tips.texi
+Jonas Bernoulli: changed eieio.el button.el cus-edit.el ido.el
+  lisp-mnt.el tabulated-list.el tips.texi
 
 Jonas Hoersch: changed org-inlinetask.el org.el
 
@@ -2431,16 +2580,23 @@ Jonathan I. Kamens: changed pop.c movemail.c rmail.el 
configure.ac b2m.pl
   simple.el timezone.el vc-hooks.el
 
 Jonathan Kyle Mitchell: changed em-dirs.el em-ls.el em-unix.el esh-cmd.el
-  esh-ext.el
+  esh-ext.el esh-mode.el xdisp.c
 
 Jonathan Leech-Pepin: wrote ox-texinfo.el
 
 Jonathan Marchand: changed cpp-root.el
 
-Jonathan Rockway: changed rcirc.el
+Jonathan Marten: changed nnimap.el
+
+Jonathan Rockway: co-wrote cperl-mode.el
+and changed rcirc.el
+
+Jonathan Shin Hayase: changed sh-script.el
 
 Jonathan Stigelman: changed hilit19.el
 
+Jonathan Tomer: changed files-tests.el files.el tramp-tests.el
+
 Jonathan Vail: changed vc.el
 
 Jonathan Yavner: wrote ses.el tcover-ses.el tcover-unsafep.el
@@ -2458,6 +2614,8 @@ Joost Kremers: changed reftex-toc.el
 
 Jordan Wilson: changed doc-view.el
 
+Jordon Biondo: changed subr.el
+
 Jorge A. Alfaro-Murillo: changed message.el
 
 Jorgen Schäfer: wrote erc-autoaway.el erc-goodies.el erc-spelling.el
@@ -2497,18 +2655,19 @@ Joshua Datko: changed fortune.el
 
 Joshua Varner: changed intro.texi
 
-Jostein Kjønigsen: changed progmodes/compile.el
+Jostein Kjønigsen: changed nxml-mode.el progmodes/compile.el
 
 Jouni K. Seppänen: changed gnus.texi nnimap.el mm-url.el
 
 Juan León Lahoz García: wrote wdired.el
 and changed files.el perl-mode.el
 
-Juanma Barranquero: wrote emacs-lock.el frameset.el keymap-tests.el
-and changed subr.el desktop.el w32fns.c server.el emacsclient.c simple.el
-  faces.el files.el bs.el help-fns.el w32term.c org.el xdisp.c keyboard.c
-  w32.c buffer.c ido.el image.c window.c allout.el process.c
-  and 1134 other files
+Juanma Barranquero: wrote emacs-lock.el frameset.el help-tests.el
+  keymap-tests.el
+and changed subr.el desktop.el w32fns.c faces.el simple.el emacsclient.c
+  files.el server.el bs.el help-fns.el xdisp.c org.el w32term.c w32.c
+  buffer.c keyboard.c ido.el image.c window.c eval.c allout.el
+  and 1235 other files
 
 Juan Pechiar: wrote ob-mscgen.el
 and changed ob-octave.el
@@ -2549,11 +2708,12 @@ Jürgen Hötzel: wrote tramp-adb.el
 and changed tramp-gvfs.el tramp-sh.el comint.el em-unix.el esh-util.el
   tramp-cache.el tramp.el url-handlers.el wid-edit.el
 
-Juri Linkov: wrote files-x.el misearch.el replace-tests.el
-and changed isearch.el info.el replace.el simple.el progmodes/grep.el
-  dired.el dired-aux.el progmodes/compile.el startup.el faces.el files.el
-  menu-bar.el bindings.el display.texi descr-text.el desktop.el comint.el
-  image-mode.el ispell.el man.el cus-edit.el and 359 other files
+Juri Linkov: wrote files-x.el misearch.el replace-tests.el tab-bar.el
+  tab-line.el
+and changed isearch.el info.el simple.el replace.el dired.el dired-aux.el
+  progmodes/grep.el progmodes/compile.el startup.el subr.el diff-mode.el
+  files.el menu-bar.el faces.el bindings.el display.texi image-mode.el
+  desktop.el comint.el minibuffer.el search.texi and 418 other files
 
 Jussi Lahdenniemi: changed w32fns.c ms-w32.h msdos.texi w32.c w32.h
   w32console.c w32heap.c w32inevt.c w32term.h
@@ -2595,10 +2755,9 @@ Karel Klíč: changed fileio.c files.el configure.ac 
eval.c ftfont.c lisp.h
   src/Makefile.in text.texi tramp.el
 
 Karl Berry: changed info.texi emacs.texi elisp.texi text.texi anti.texi
-  display.texi efaq.texi ada-mode.texi autotype.texi calc.texi
-  cc-mode.texi cl.texi dired-x.texi ebrowse.texi ediff.texi
-  emacs-mime.texi emacs-xtra.texi eshell.texi eudc.texi filelock.c
-  forms.texi and 94 other files
+  display.texi efaq.texi autotype.texi calc.texi cc-mode.texi cl.texi
+  dired-x.texi ebrowse.texi ediff.texi emacs-mime.texi emacs-xtra.texi
+  eshell.texi eudc.texi filelock.c forms.texi gnu.texi and 93 other files
 
 Karl Chen: changed files.el align.el cc-vars.el emacsclient.c flymake.el
   flymake.texi gnus-art.el help-mode.el jka-cmpr-hook.el make-mode.el
@@ -2610,10 +2769,10 @@ Karl Eichwalder: changed Makefile.in add-log.el 
bookmark.el dired-aux.el
 Karl Fogel: wrote bookmark.el mail-hist.el saveplace.el
 and co-wrote pcvs.el
 and changed simple.el files.el doc-view.el image-mode.el info.el
-  vc-svn.el CONTRIBUTE INSTALL autogen.sh internals.texi isearch.el
-  menu-bar.el simple-test.el subr.el tex-mode.el thingatpt.el
-  INSTALL.REPO comint.el configure configure.ac editfns.c
-  and 18 other files
+  isearch.el vc-svn.el CONTRIBUTE INSTALL autogen.sh editfns.c
+  internals.texi menu-bar.el simple-test.el subr.el tex-mode.el
+  thingatpt.el INSTALL.REPO comint.el configure configure.ac
+  and 21 other files
 
 Karl Heuer: changed keyboard.c lisp.h xdisp.c buffer.c xfns.c xterm.c
   alloc.c files.el frame.c configure.ac window.c data.c minibuf.c
@@ -2628,7 +2787,7 @@ Karl Landstrom: co-wrote js.el
 
 Karl M. Hegbloom: changed gnus.el
 
-Karl Otness: changed term.el
+Karl Otness: changed configure.ac image.c term.el
 
 Karl Pflästerer: changed gnus-art.el gnus-score.el mml.el spam-stat.el
   vc-svn.el
@@ -2643,14 +2802,15 @@ Károly Lőrentey: changed xfns.c bindings.el keyboard.c 
menu-bar.el
 Katsuhiro Hermit Endo: changed gnus-group.el gnus-spec.el
 
 Katsumi Yamaoka: wrote canlock.el
-and changed gnus-art.el message.el gnus-sum.el mm-decode.el gnus.texi
-  mm-util.el mm-view.el gnus-util.el gnus-group.el gnus-msg.el mml.el
+and changed gnus-art.el gnus-sum.el message.el mm-decode.el gnus.texi
+  mm-util.el mm-view.el gnus-group.el gnus-util.el gnus-msg.el mml.el
   shr.el rfc2047.el gnus-start.el gnus.el nntp.el gnus-agent.el nnrss.el
-  mm-uu.el nnmail.el emacs-mime.texi and 160 other files
+  mm-uu.el nnmail.el emacs-mime.texi and 161 other files
 
 Kaushal Modi: changed files.el isearch.el apropos.el calc-yank.el
-  desktop.el ediff-diff.el eww.el ffap.el maintaining.texi printing.el
-  ps-print.el variables.texi vc-hooks.el vc1-xtra.texi woman.el
+  custom.texi desktop.el ediff-diff.el eww.el ffap.el maintaining.texi
+  printing.el ps-print.el tips.texi variables.texi vc-hooks.el
+  vc1-xtra.texi woman.el
 
 Kaushik Srenevasan: changed gdb-mi.el
 
@@ -2669,6 +2829,9 @@ Keisuke Nishida: changed print.c alloc.c bytecomp.el 
data.c keymap.c
 
 Keitaro Miyazaki: changed re-builder.el
 
+Keith Amidon: co-wrote auth-source-pass.el
+and changed auth-source-pass-tests.el
+
 Keith Gabryelski: wrote hexl.c hexl.el
 
 Keith Packard: changed font.c
@@ -2680,10 +2843,10 @@ Kelly Dean: changed simple.el help-mode.el desktop.el 
files.el lisp.el
 Kelvin White: changed erc.el erc-pcomplete.el erc.texi NEWS.24
   erc-backend.el erc-ring.el erc-stamp.el
 
-Ken Brown: changed configure.ac gmalloc.c sheap.c w32fns.c emacs.c
-  w32term.c conf_post.h cygwin.h unexcw.c fileio.c filenotify-tests.el
-  browse-url.el dispextern.h emacs.rc.in frame.c image.c lisp.h sysdep.c
-  w32term.h alloc.c keyboard.c and 46 other files
+Ken Brown: changed configure.ac gmalloc.c sheap.c emacs.c w32fns.c
+  fileio.c w32term.c unexcw.c conf_post.h cygwin.h filenotify-tests.el
+  lisp.h browse-url.el dispextern.h emacs.rc.in fileio-tests.el frame.c
+  image.c keyboard.c profiler.c src/Makefile.in and 48 other files
 
 Ken Brush: changed emacsclient.c
 
@@ -2751,6 +2914,8 @@ and changed gnus-agent.el gnus-sum.el gnus-start.el 
gnus-int.el nntp.el
 
 Kevin Layer: changed mml.el w32proc.c
 
+Kévin Le Gouguec: changed font-lock.el font-lock-tests.el
+
 Kevin Rodgers: changed compile.el mailabbrev.el progmodes/compile.el
   dired-x.el files.el ange-ftp.el byte-opt.el desktop.el diff-mode.el
   dired-x.texi ffap.el files.texi flyspell.el isearch.el killing.texi
@@ -2760,8 +2925,8 @@ Kevin Rodgers: changed compile.el mailabbrev.el 
progmodes/compile.el
 Kevin Ryde: wrote info-xref.el
 and changed info-look.el info.el checkdoc.el cl.texi compilation.txt
   etags.c arc-mode.el ffap.el gnus-art.el gnus-sum.el mule.el os.texi
-  progmodes/compile.el woman.el MORE.STUFF browse-url.el copyright.el
-  dig.el files.el flyspell.el keyboard.c and 85 other files
+  progmodes/compile.el woman.el browse-url.el copyright.el dig.el
+  files.el flyspell.el keyboard.c mailcap.el and 86 other files
 
 Kim F. Storm: wrote bindat.el cua-base.el cua-gmrk.el cua-rect.el ido.el
   keypad.el kmacro.el
@@ -2799,11 +2964,17 @@ Kobayashi Yasuhiro: changed w32fns.c configure.bat 
indent.c info.el
 
 Kodi Arfer: changed org.texi ox-html.el
 
-Koichi Arakawa: changed w32proc.c
+Koichi Arakawa: changed tramp-sh.el w32proc.c
 
-Konrad Hinsen: wrote org-eshell.el
+Konrad Hinsen: wrote ol-eshell.el
 and changed ob-python.el
 
+Konstantin Kharlamov: changed ada-mode.el calc-aent.el calc-ext.el
+  calc-lang.el cc-mode.el cperl-mode.el css-mode.el cua-rect.el
+  diff-mode.el dnd.el ebnf-abn.el ebnf-dtd.el ebnf-ebx.el
+  emacs-module-tests.el epg.el faces.el gnus-art.el gtkutil.c hideif.el
+  htmlfontify.el lex.el and 24 other files
+
 Konstantin Kliakhandler: changed org-agenda.el
 
 Konstantin Novitsky: changed progmodes/python.el
@@ -2860,27 +3031,29 @@ and co-wrote dabbrev.el imenu.el
 Lars Ljung: changed esh-ext.el isearch.el
 
 Lars Magne Ingebrigtsen: wrote compface.el decompress-tests.el dns.el
-  dom.el ecomplete.el eww.el format-spec.el gnus-agent.el gnus-art.el
-  gnus-async.el gnus-bcklg.el gnus-cache.el gnus-cloud.el gnus-demon.el
-  gnus-draft.el gnus-dup.el gnus-eform.el gnus-fun.el gnus-group.el
-  gnus-html.el gnus-int.el gnus-logic.el gnus-picon.el gnus-range.el
-  gnus-salt.el gnus-spec.el gnus-srvr.el gnus-start.el gnus-sum.el
-  gnus-undo.el gnus-util.el gnus-uu.el gnus-win.el ietf-drums.el
-  mail-parse.el mail-prsvr.el mail-source.el message.el messcompat.el
-  mm-archive.el mm-view.el mml.el netrc.el network-stream-tests.el
-  network-stream.el nnagent.el nndir.el nndraft.el nngateway.el nnmail.el
-  nnoo.el nntp.el nnweb.el nsm.el parse-time-tests.el puny.el qp.el
-  rfc2045.el rfc2231.el rtree.el score-mode.el shr-tests.el shr.el
-  spam.el svg.el url-domsuf.el url-queue.el
+  dom.el ecomplete.el eww.el exif.el format-spec.el gnus-agent.el
+  gnus-art.el gnus-async.el gnus-bcklg.el gnus-cache.el gnus-cloud.el
+  gnus-demon.el gnus-draft.el gnus-dup.el gnus-eform.el gnus-fun.el
+  gnus-group.el gnus-html.el gnus-int.el gnus-logic.el gnus-picon.el
+  gnus-range.el gnus-salt.el gnus-spec.el gnus-srvr.el gnus-start.el
+  gnus-sum.el gnus-undo.el gnus-util.el gnus-uu.el gnus-win.el
+  ietf-drums.el image-converter.el mail-parse.el mail-prsvr.el
+  mail-source.el message.el messcompat.el mm-archive.el mm-view.el mml.el
+  netrc.el network-stream-tests.el network-stream.el nnagent.el nndir.el
+  nndraft.el nngateway.el nnmail.el nnoo.el nntp.el nnweb.el nsm.el
+  parse-time-tests.el puny.el qp.el rfc2045.el rfc2104-tests.el
+  rfc2231.el rtree.el score-mode.el shr-tests.el shr.el spam.el
+  text-property-search-tests.el text-property-search.el url-domsuf.el
+  url-queue.el
 and co-wrote gnus-kill.el gnus-mh.el gnus-msg.el gnus-score.el
   gnus-topic.el gnus.el gssapi.el mailcap.el mm-bodies.el mm-decode.el
   mm-encode.el mm-util.el nnbabyl.el nndoc.el nneething.el nnfolder.el
   nnheader.el nnimap.el nnmbox.el nnmh.el nnml.el nnspool.el nnvirtual.el
-  rfc2047.el time-date.el
-and changed gnus.texi process.c gnus-ems.el subr.el gnutls.c gnus-cite.el
-  pop3.el smtpmail.el display.texi files.el url-http.el gnus-xmas.el
-  simple.el auth-source.el image.c gnutls.el proto-stream.el dired.el
-  image.el text.texi nnrss.el and 318 other files
+  rfc2047.el svg.el time-date.el
+and changed gnus.texi process.c subr.el simple.el files.el gnutls.c
+  gnus-ems.el smtpmail.el display.texi url-http.el auth-source.el
+  gnus-cite.el pop3.el dired.el edebug.el gnus-xmas.el text.texi image.el
+  image.c gnutls.el nnrss.el and 651 other files
 
 Lars Rasmusson: changed ebrowse.c
 
@@ -2907,14 +3080,14 @@ Lee Duhem: changed eval.c
 Leigh Stoller: changed emacsclient.c server.el
 
 Lele Gaifax: changed progmodes/python.el flymake.el python-tests.el
-  TUTORIAL.it flymake-proc.el flymake.texi
+  TUTORIAL.it flymake-proc.el flymake.texi isearch.el
 
 Lennart Borgman: co-wrote ert-x.el
-and changed nxml-mode.el tutorial.el window.el ada-xref.el buff-menu.el
-  emacs-lisp/debug.el emacsclient.c filesets.el flymake.el help-fns.el
-  isearch.el linum.el lisp-mode.el lisp.el mouse.el recentf.el
-  remember.el replace.el ruby-mode.el shell.el texinfmt.el
-  and 3 other files
+and changed nxml-mode.el tutorial.el re-builder.el window.el ada-xref.el
+  buff-menu.el emacs-lisp/debug.el emacsclient.c filesets.el flymake.el
+  help-fns.el isearch.el linum.el lisp-mode.el lisp.el mouse.el
+  recentf.el remember.el replace.el ruby-mode.el shell.el
+  and 4 other files
 
 Lennart Staflin: changed dired.el diary-ins.el diary-lib.el tq.el xdisp.c
 
@@ -2946,6 +3119,8 @@ Liam Stitt: changed url-file.el url-vars.el
 
 Liang Wang: changed etags.el
 
+Lin Sun: changed makefile-edit.el
+
 Lixin Chin: changed bibtex.el
 
 Lloyd Zusman: changed mml.el pgg-gpg.el
@@ -2954,6 +3129,8 @@ Lluís Vilanova: changed ede/linux.el
 
 Luca Capello: changed mm-encode.el
 
+Lucas Werkmeister: changed emacs.c emacs.service
+
 Lucid, Inc.: changed byte-opt.el byte-run.el bytecode.c bytecomp.el
   delsel.el disass.el faces.el font-lock.el lmenu.el mailabbrev.el
   select.el xfaces.c xselect.c
@@ -2962,7 +3139,7 @@ Luc Teirlinck: wrote help-at-pt.el
 and changed files.el autorevert.el cus-edit.el subr.el simple.el
   frames.texi startup.el display.texi files.texi dired.el comint.el
   modes.texi custom.texi emacs.texi fns.c frame.el ielm.el minibuf.texi
-  variables.texi buffers.texi commands.texi and 212 other files
+  variables.texi buffers.texi commands.texi and 211 other files
 
 Ludovic Courtès: wrote nnregistry.el
 and changed configure.ac gnus.texi loadup.el
@@ -2975,8 +3152,12 @@ Lukas Huonker: changed tetris.el
 
 Łukasz Demianiuk: changed erc.el
 
-Łukasz Stelmach: changed erc.el ps-print.el cookie1.el gtkutil.c
-  message.el org-agenda.el org-bbdb.el org.el ox-html.el ox.el
+Łukasz Jędrzejewski: changed auth-source-pass-tests.el
+  auth-source-pass.el
+
+Łukasz Stelmach: changed erc.el ps-print.el cookie1.el gnus-group.el
+  gtkutil.c message.el org-agenda.el org-bbdb.el org.el org.texi
+  ox-html.el ox.el simple.el
 
 Luke Lee: changed hideif.el
 
@@ -2997,8 +3178,9 @@ Madan Ramakrishnan: changed org-agenda.el
 Magnus Henoch: wrote sasl-scram-rfc-tests.el sasl-scram-rfc.el
 and changed url-http.el ispell.el url.el dbusbind.c dns.el configure.ac
   nnmaildir.el progmodes/compile.el sasl.el url-gw.el url-parse.el
-  url-proxy.el autoinsert.el cl.texi cyrillic.el dbus.el gnus.texi
-  hashcash.el image.c latin-pre.el log-edit.el and 16 other files
+  url-proxy.el auth-source-pass-tests.el auth-source-pass.el
+  autoinsert.el cl.texi cyrillic.el dbus.el gnus.texi hashcash.el image.c
+  and 18 other files
 
 Maksim Golubev: changed opascal.el
 
@@ -3021,16 +3203,17 @@ Marc Fleischeuers: changed files.el
 
 Marc Girod: changed informat.el rmail.el rmailsum.el sendmail.el
 
-Marcin Borkowski: wrote lisp-tests.el
-and changed battery.el doc-view.el elisp-mode-tests.el lisp.el
+Marcin Borkowski: wrote fill-tests.el lisp-tests.el
+and changed battery.el doc-view.el elisp-mode-tests.el fill.el lisp.el
   parse-time.el studly.el
 
 Marc Lefranc: changed gnus-art.el
 
 Marco Melgazzi: changed term.el
 
-Marco Wahl: wrote org-eww.el
-and changed org-agenda.el org.el
+Marco Wahl: wrote ol-eww.el
+and changed org-agenda.el page-ext.el org.el scroll-lock-tests.el
+  scroll-lock.el
 
 Marco Walther: changed mips-siemens.h unexelfsni.c unexsni.c
 
@@ -3073,7 +3256,7 @@ Mark D. Baushke: changed mh-e.el mh-utils.el mh-mime.el 
mh-comp.el
   mh-speed.el mh-funcs.el mh-alias.el etags.c mh-junk.el mh-tool-bar.el
   mh-xemacs-compat.el pgg-gpg.el
 
-Mark Diekhans: changed files.el progmodes/compile.el subr.el
+Mark Diekhans: changed files.el ispell.el progmodes/compile.el subr.el
 
 Mark E. Shoulson: changed org.el org-entities.el
 
@@ -3099,9 +3282,9 @@ Mark Osbourne: changed hexl-mode.el
 
 Mark Oteiza: wrote mailcap-tests.el md4-tests.el xdg-tests.el xdg.el
 and changed image-dired.el dunnet.el mpc.el eww.el json.el calc-units.el
-  subr.el lcms.c message.el subr-x.el tex-mode.el cl-macs.el cl.texi
+  subr-x.el subr.el lcms.c message.el tex-mode.el cl-macs.el cl.texi
   ibuffer.el lcms-tests.el mailcap.el cl-print.el emacs-lisp/chart.el
-  files.el htmlfontify.el pcase.el and 169 other files
+  files.el htmlfontify.el pcase.el and 178 other files
 
 Mark Plaksin: changed nnrss.el term.el
 
@@ -3117,8 +3300,6 @@ Markus Hauck: changed org-agenda.el
 
 Markus Heiser: changed gud.el
 
-Markus Heritsch: co-wrote ada-mode.el ada-stmt.el ada-xref.el
-
 Markus Holmberg: changed thingatpt.el
 
 Markus Rost: wrote cus-test.el
@@ -3134,7 +3315,7 @@ Markus Triska: wrote linum.el
 and changed bytecomp.el byte-opt.el doctor.el image-mode.el
   processes.texi calc-math.el emacs.c expand.el flymake.el flymake.texi
   flyspell.el handwrite.el internals.texi proced.el prolog.el ps-mode.el
-  speedbar.el subr.el tumme.el widget.texi windows.texi xterm.c
+  speedbar.el subr.el text.texi tumme.el widget.texi and 3 other files
 
 Mark W. Eichin: changed keyboard.c xterm.c
 
@@ -3153,6 +3334,8 @@ Martin Jesper Low Madsen: changed auth-source.el
 
 Martin J. Reed: changed ldap.el
 
+Martin Kletzander: changed erc-join.el
+
 Martin Kretzschmar: changed gnus-spec.el gnus-sum.el
 
 Martin Larose: changed message.el
@@ -3164,10 +3347,10 @@ Martin Neitzel: changed supercite.el
 
 Martin Pohlack: changed iimage.el pc-select.el
 
-Martin Rudalics: changed window.el window.c windows.texi frame.c
-  frames.texi w32fns.c xdisp.c xterm.c w32term.c frame.el xfns.c help.el
-  buffer.c display.texi cus-start.el dispnew.c frame.h mouse.el nsfns.m
-  window.h gtkutil.c and 203 other files
+Martin Rudalics: changed window.el window.c windows.texi frame.c xdisp.c
+  w32fns.c frames.texi xterm.c w32term.c frame.el xfns.c display.texi
+  help.el buffer.c window.h cus-start.el frame.h dispnew.c mouse.el
+  nsfns.m dired.el and 209 other files
 
 Martin Stjernholm: wrote cc-bytecomp.el
 and co-wrote cc-align.el cc-cmds.el cc-compat.el cc-defs.el cc-engine.el
@@ -3186,6 +3369,8 @@ and changed ob-emacs-lisp.el
 
 Masahiko Sato: wrote vip.el
 
+Masahiro Nakamura: changed ns-win.el nsterm.m
+
 Masanobu Umeda: wrote metamail.el rmailsort.el timezone.el
 and co-wrote gnus-kill.el gnus-mh.el gnus-msg.el gnus.el nnbabyl.el
   nndoc.el nneething.el nnfolder.el nnheader.el nnmbox.el nnmh.el nnml.el
@@ -3199,8 +3384,8 @@ Masatake Yamato: wrote add-log-tests.el imenu-tests.el 
ld-script.el
 and co-wrote cc-guess.el
 and changed etags.el asm-mode.el hexl.el xdisp.c bindings.el man.el
   xfaces.c simple.el vc.el wid-edit.el add-log.el etags.c faces.el
-  pcvs.el progmodes/compile.el register.el ruler-mode.el sh-script.el
-  buffer.c cc-langs.el cus-face.el and 80 other files
+  pcvs.el progmodes/compile.el progmodes/cpp.el register.el ruler-mode.el
+  sh-script.el buffer.c cc-langs.el and 80 other files
 
 Masayuki Ataka: changed texinfmt.el texinfo.el characters.el cmuscheme.el
   make-mode.el
@@ -3212,23 +3397,27 @@ and changed tumme.el dired.el dired.texi
 
 Mathias Megyei: changed lisp/Makefile.in
 
+Mathieu Othacehe: changed tramp-adb.el
+
 Mats Lidell: changed TUTORIAL.sv european.el gnus-art.el org-element.el
 
 Matt Armstrong: changed gnus-topic.el gnus.el imap.el message.el shell.el
 
+Matt Bisson: changed xterm.c
+
 Matt Curtis: changed pulse.el
 
 Matt Fidler: changed package.el
 
-Matthew Bauer: changed startup.el
+Matthew Bauer: changed comint.el startup.el
 
 Matthew Carter: changed sql.el
 
 Matthew Junker: changed cal-tex.el
 
-Matthew Leach: changed configure.ac arc-mode.el battery.el emacs.c
-  font-lock.el ispell.el lisp.h misc.texi process.c processes.texi
-  server.el src/Makefile.in
+Matthew Leach: changed server.el process.c configure.ac emacs.c lisp.h
+  misc.texi processes.texi arc-mode.el battery.el font-lock.el ispell.el
+  src/Makefile.in
 
 Matthew Luckie: changed configure.ac
 
@@ -3238,12 +3427,14 @@ Matthew Mundell: changed calendar.texi diary-lib.el 
files.texi
   objects.texi os.texi positions.texi searching.texi subr.el text.texi
   and 3 other files
 
+Matthew Newton: changed imenu.el
+
 Matthias Dahl: changed faces.el process.c process.h
 
 Matthias Förste: changed files.el
 
 Matthias Meulien: changed bookmark.el progmodes/python.el buff-menu.el
-  prog-mode.el simple.el tabify.el vc-dir.el
+  prog-mode.el simple.el tabify.el vc-dir.el vc-git.el
 
 Matthias Wiehl: changed gnus.el
 
@@ -3258,7 +3449,11 @@ Matt Hodges: changed textmodes/table.el faces.el 
iswitchb.el simple.el
   edebug.texi eldoc.el em-hist.el em-pred.el fixit.texi icon.el ido.el
   locate.el paragraphs.el pcomplete.el repeat.el and 3 other files
 
-Mattias Engdegård: changed subr.el
+Mattias Engdegård: changed rx.el searching.texi rx-tests.el autorevert.el
+  regexp-opt.el calc-tests.el filenotify.el subr.el progmodes/compile.el
+  files.el mouse.el bytecomp.el compile-tests.el autorevert-tests.el
+  byte-opt.el bytecomp-tests.el calc-alg.el compilation.txt font.c
+  regex-emacs.c regexp-opt-tests.el and 121 other files
 
 Matt Lundin: changed org-agenda.el org.el org-bibtex.el org-footnote.el
   ox-publish.el org-bbdb.el org-datetree.el org-gnus.el
@@ -3272,7 +3467,11 @@ Matt Simmons: changed message.el
 Matt Swift: changed dired.el editfns.c lisp-mode.el mm-decode.el
   outline.el progmodes/compile.el rx.el simple.el startup.el
 
-Mauro Aranda: changed autorevert.el files.texi os.texi
+Mauro Aranda: changed wid-edit.el cus-edit.el gnus.texi octave.el pong.el
+  autorevert.el cc-mode.texi control.texi custom-tests.el custom.el
+  dbus.texi dired-x.texi elisp-mode.el epa.el esh-mode.el
+  eshell/eshell.el eudc.texi files.texi functions.texi gnus-faq.texi
+  info.el and 14 other files
 
 Maxime Edouard Robert Froumentin: changed gnus-art.el mml.el
 
@@ -3283,16 +3482,16 @@ Memnon Anon: changed org.texi
 Micah Anderson: changed spook.lines
 
 Michael Albinus: wrote autorevert-tests.el dbus-tests.el dbus.el
-  filenotify-tests.el filenotify.el files-x-tests.el secrets.el
-  shadowfile-tests.el tramp-cmds.el tramp-compat.el tramp-ftp.el
-  tramp-gvfs.el tramp-smb.el tramp-tests.el url-tramp-tests.el
-  url-tramp.el vc-tests.el xesam.el zeroconf.el
+  filenotify-tests.el filenotify.el files-x-tests.el secrets-tests.el
+  secrets.el shadowfile-tests.el tramp-archive-tests.el tramp-archive.el
+  tramp-cmds.el tramp-compat.el tramp-ftp.el tramp-gvfs.el
+  tramp-integration.el tramp-rclone.el tramp-smb.el tramp-sudoedit.el
+  tramp-tests.el url-tramp-tests.el url-tramp.el vc-tests.el zeroconf.el
 and co-wrote tramp-cache.el tramp-sh.el tramp.el
 and changed tramp.texi tramp-adb.el trampver.el trampver.texi dbusbind.c
-  file-notify-tests.el ange-ftp.el files.el dbus.texi files.texi
+  file-notify-tests.el files.el ange-ftp.el files.texi dbus.texi
   autorevert.el tramp-fish.el kqueue.c tramp-gw.el tramp-imap.el os.texi
-  configure.ac lisp.h gfilenotify.c inotify.c keyboard.c
-  and 224 other files
+  xesam.el configure.ac lisp.h shell.el gfilenotify.c and 253 other files
 
 Michael Ben-Gershon: changed acorn.h configure.ac riscix1-1.h riscix1-2.h
   unexec.c
@@ -3300,6 +3499,8 @@ Michael Ben-Gershon: changed acorn.h configure.ac 
riscix1-1.h riscix1-2.h
 Michael Brand: changed org.texi org-table.el org.el org-agenda.el
   org-capture.el ob-tangle.el org-feed.el org-id.el org-list.el
 
+Michael Brumlow: changed htmlfontify.el
+
 Michaël Cadilhac: changed browse-url.el fr-dired-ref.tex gnus-sum.el
   gnus.texi ido.el Makefile emacsbug.el files.el fill.el flyspell.el
   fr-refcard.tex ispell.el meta-mode.el nnrss.el anti.texi battery.el
@@ -3325,8 +3526,13 @@ Michael Gschwind: wrote iso-cvt.el
 
 Michael Harnois: changed nnimap.el
 
-Michael Heerdegen: changed subr-x.el control.texi dired-aux.el dired.el
-  easy-mmode.el eldoc.el pcase.el shr.el subr-x-tests.el wdired.el
+Michael Heerdegen: changed cl-macs.el subr.el control.texi copyright.el
+  css-mode.el dired.el easy-mmode.el filesets.el hi-lock.el macroexp.el
+  modula2.el ob-C.el ob-core.el ob-exp.el ob-groovy.el ob-haskell.el
+  ob-io.el ob-lisp.el ob-lob.el ob-lua.el ob-octave.el
+  and 227 other files
+
+Michael Hendricks: changed help.el
 
 Michael Hoffman: changed term.el xterm.el
 
@@ -3358,14 +3564,17 @@ Michael Olson: changed erc.el erc-backend.el Makefile 
erc-track.el
   erc-log.el erc-stamp.el erc-autoaway.el erc-dcc.el erc-goodies.el
   erc-list.el erc-compat.el erc-identd.el erc.texi ERC-NEWS erc-bbdb.el
   erc-match.el erc-notify.el erc-ibuffer.el erc-services.el remember.el
-  erc-button.el and 55 other files
+  erc-button.el and 54 other files
+
+Michael Orlitzky: changed tex-mode.el
 
 Michael Piotrowski: changed gnus-art.el gnus-sum.el ps-print.el
 
 Michael R. Cook: changed gnus-sum.el gnus-topic.el gnus-art.el
 
-Michael R. Mauger: changed sql.el emacsclient.c comint.el cua-base.el
-  custom.el facemenu.el recentf.el replace.el server.el tramp.el w32fns.c
+Michael R. Mauger: changed sql.el sql-tests.el comint.el emacsclient.c
+  comint-tests.el cua-base.el custom.el facemenu.el recentf.el replace.el
+  server.el tramp.el w32fns.c
 
 Michael R. Wolf: changed ange-ftp.el
 
@@ -3375,7 +3584,7 @@ Michael Schuldt: changed calc-comb.el
 
 Michael Shields: changed spam.el gnus-art.el gnus-sum.el gnus-cite.el
   Makefile.in gnus-group.el gnus.el intel386.h nndraft.el pgg-def.el
-  window.c window.el
+  server.el window.c window.el
 
 Michael Sperber: changed org.el nnmail.el aix3-1.h aix4-2.h gnus-sum.el
   gnus.texi mail-source.el mailcap.el nnml.el org-capture.el
@@ -3386,9 +3595,9 @@ Michael Staats: wrote pc-select.el
 Michael Vehrs: changed quail.el woman.el
 
 Michael Welsh Duggan: changed nnimap.el lisp.h sh-script.el w32term.c
-  buffer.c gnus-spec.el keyboard.c mail/sieve-manage.el nnir.el nnmail.el
-  print.c termhooks.h url-http.el w32-win.el w32fns.c w32menu.c w32term.h
-  woman.el xdisp.c xterm.c
+  buffer.c gnus-spec.el gud.el keyboard.c mail/sieve-manage.el nnir.el
+  nnmail.el print.c termhooks.h url-http.el w32-win.el w32fns.c w32menu.c
+  w32term.h woman.el xdisp.c xterm.c
 
 Michael Weylandt: changed ox-latex.el
 
@@ -3396,16 +3605,22 @@ Michael Witten: changed TUTORIAL fixit.texi intro.texi
 
 Michal Jankowski: changed insdel.c keyboard.c
 
+Michał Kondraciuk: changed cus-edit.el
+
+Michał Krzywkowski: changed elide-head.el
+
 Michal Nazarewicz: wrote cc-mode-tests.el descr-text-tests.el
   tildify-tests.el
 and co-wrote tildify.el
-and changed regex.c casefiddle.c regex-tests.el simple.el
+and changed regex.c casefiddle.c simple.el test/src/regex-emacs-tests.el
   casefiddle-tests.el message.el regex.h search.c buffer.h ert-x.el
-  files.el frame.c remember.el unidata-gen.el README SpecialCasing.txt
-  bindings.el buffer.c cc-mode.el cfengine.el char-fold-tests.el
-  and 36 other files
+  files.el frame.c remember.el sgml-mode.el unidata-gen.el README
+  SpecialCasing.txt bindings.el buffer.c cc-mode.el cfengine.el
+  and 37 other files
+
+Michal Nowak: changed gnutls.el
 
-Michal Sojka: changed ox-icalendar.el
+Michal Sojka: changed ox-icalendar.el textmodes/table.el
 
 Michelangelo Grigni: wrote ffap.el
 and changed gnus-score.el
@@ -3437,8 +3652,9 @@ Mike Haertel: changed 7300.h
 
 Mike Kazantsev: changed erc-dcc.el
 
-Mike Kupfer: changed mh-comp.el mh-e.el emacs-mime.texi gnus-mh.el
-  gnus.texi mh-acros.el mh-compat.el mh-e.texi mh-mime.el mh-utils.el
+Mike Kupfer: changed mh-comp.el mh-e.el ftcrfont.c mh-utils.el
+  emacs-mime.texi ftxfont.c gnus-mh.el gnus.texi mh-acros.el mh-compat.el
+  mh-e.texi mh-identity.el mh-mime.el xftfont.c
 
 Mike Lamb: changed em-unix.el esh-util.el pcmpl-unix.el
 
@@ -3539,6 +3755,8 @@ Neal Ziring: co-wrote vi.el (public domain)
 
 Neil Mager: wrote appt.el
 
+Neil Roberts: changed custom.texi files.el
+
 Neil W. Van Dyke: wrote webjump.el
 
 Nelson H. F. Beebe: changed configure.ac
@@ -3556,7 +3774,7 @@ Niall Mansfield: changed etags.c
 
 Nic Ferrier: changed ert.el tramp.el
 
-Nicholas Drozd: changed calc.texi
+Nicholas Drozd: changed calc.texi editfns.c ol.html ol.txt shr.el
 
 Nicholas Maniscalco: changed term.el
 
@@ -3567,10 +3785,11 @@ Nick Alcock: changed control.texi customize.texi 
display.texi files.el
 Nick Dokos: changed org-table.el ox.el icalendar.el mh-search.el
   org-mobile.el org.el ox-ascii.el url-cache.el
 
-Nick Drozd: changed eww.el eww.texi
+Nick Drozd: changed quail/georgian.el eww.el eww.texi shr.el HELLO
+  cc-mode-tests.el ido.texi
 
-Nick Helm: changed eldoc.el help.el help.texi whitespace-tests.el
-  whitespace.el
+Nick Helm: changed eldoc.el help.el help.texi nsterm.m
+  whitespace-tests.el whitespace.el
 
 Nick Roberts: wrote gdb-mi.el t-mouse.el
 and changed gdb-ui.el gud.el building.texi tooltip.el speedbar.el
@@ -3586,8 +3805,9 @@ Nicolas Avrutin: changed url-http.el
 
 Nicolas Calderon Asselin: changed org-clock.el
 
-Nicolas Goaziou: wrote org-duration.el org-element.el org-lint.el
-  org-macro.el ox-ascii.el ox-latex.el ox-md.el ox-org.el ox.el
+Nicolas Goaziou: wrote org-duration.el org-element.el org-keys.el
+  org-lint.el org-macro.el org-num.el ox-ascii.el ox-latex.el ox-md.el
+  ox-org.el ox.el
 and co-wrote ox-beamer.el ox-icalendar.el ox-man.el
 and changed org-list.el org.el ox-html.el org-footnote.el ox-texinfo.el
   org.texi ox-publish.el ox-odt.el org-inlinetask.el org-indent.el
@@ -3598,13 +3818,13 @@ and changed org-list.el org.el ox-html.el 
org-footnote.el ox-texinfo.el
 Nicolas Graner: changed message.el
 
 Nicolas Petton: wrote map-tests.el map.el seq-tests.el seq.el
-  thunk-tests.el thunk.el
+  thunk-tests.el thunk.el url-handlers-test.el
 and co-wrote auth-source-pass.el auth-source-tests.el subr-tests.el
-and changed README configure.ac sed2v2.inp sequences.texi authors.el
-  README.W32 emacs.png emacs23.png arc-mode.el cl-extra.el emacs.svg
-  manoj-dark-theme.el Emacs.icns HISTORY Makefile.in auth-source.el
+and changed README configure.ac sed2v2.inp authors.el sequences.texi
+  README.W32 emacs.png emacs23.png HISTORY arc-mode.el cl-extra.el
+  emacs.svg manoj-dark-theme.el Emacs.icns Makefile.in auth-source.el
   emacs.ico fns.c make-tarball.txt obarray-tests.el obarray.el
-  and 35 other files
+  and 37 other files
 
 Nicolas Richard: wrote cl-seq-tests.el cmds-tests.el replace-tests.el
 and changed ffap.el package.el byte-run.el help.el keyboard.c landmark.el
@@ -3626,7 +3846,7 @@ Nikolai Weibull: changed org.el
 Nikolaj Schumacher: changed flymake.el progmodes/compile.el eldoc.el
   elp.el nsfont.m rx.el
 
-Nikolaus Rath: changed nnimap.el gnus.texi
+Nikolaus Rath: changed nnimap.el gnus-sum.el gnus.texi
 
 Nikolay Kudryavtsev: changed sql.el vc-git.el
 
@@ -3636,7 +3856,7 @@ Nils Ackermann: changed message.el nnmh.el reftex-vars.el
 
 Nitish Chandra: changed simple.el
 
-N. Jackson: changed emacs.texi
+N. Jackson: changed emacs.texi forms.texi
 
 Noah Friedman: wrote eldoc.el rlogin.el type-break.el
 and co-wrote erc-dcc.el
@@ -3647,13 +3867,16 @@ and changed rsz-mini.el emacs-buffer.gdb comint.el 
files.el Makefile
 
 Noah Lavine: changed tramp.el
 
-Noam Postavsky: changed lisp-mode.el progmodes/python.el xdisp.c
-  cl-macs.el lisp-mode-tests.el emacs-lisp/debug.el data.c simple.el
-  term.el ert.el subr.el help-fns.el bytecomp.el cl-print.el
-  elisp-mode.el eval.c ffap.el modes.texi search.c sh-script.el
-  cl-preloaded.el and 249 other files
+Noah Swainland: changed calc.el
+
+Noam Postavsky: changed progmodes/python.el lisp-mode.el bytecomp.el
+  lisp-mode-tests.el term.el xdisp.c cl-macs.el eval.c
+  emacs-lisp/debug.el simple.el data.c modes.texi subr.el elisp-mode.el
+  ert.el help-fns.el isearch.el processes.texi cl-print.el ffap.el
+  print.c and 357 other files
 
 Nobuyoshi Nakada: co-wrote ruby-mode.el
+and changed ruby-mode-tests.el
 
 Nobuyuki Hikichi: changed news-risc.h
 
@@ -3673,27 +3896,32 @@ Nuutti Kotivuori: changed gnus-sum.el flow-fill.el 
gnus-cache.el
 
 Odd Gripenstam: wrote dcl-mode.el
 
-Ogawa Hirofumi: changed calc-aent.el gnus-sum.el nnimap.el
+Ogawa Hirofumi: changed calc-aent.el gnus-sum.el nnimap.el sieve-mode.el
+  sieve.el
 
 Ognyan Kulev: changed TUTORIAL.bg cyrillic.el
 
 Okazaki Tetsurou: changed cc-fonts.el vc-svn.el vc.el
 
-Olaf Rogalsky: changed help.el keyboard.c mouse.el xt-mouse.el
+Olaf Rogalsky: changed keyboard.c help.el mouse.el xt-mouse.el
 
 Olaf Sylvester: wrote bs.el
 
+Ola Nilsson: changed sh-script.el
+
 Ole Aamot: changed compile.el
 
+Oleg Pykhalov: changed gnus-sum.el
+
 Oleg S. Tihonov: changed cyrillic.el ispell.el language/cyrillic.el
   map-ynp.el subr.el
 
 Oleh Krehel: wrote ob-J.el
 and co-wrote subr-tests.el
-and changed dired-aux.el outline.el checkdoc.el subr.el buffer.c
-  check-declare.el alloc.c appt.el buffer.h category.c cl-indent.el
-  custom.el derived.el dired-x.el dired.el dired.texi display.texi
-  easy-mmode.el ffap.el gdb-mi.el keyboard.c and 12 other files
+and changed dired-aux.el outline.el checkdoc.el files.el subr.el buffer.c
+  check-declare.el alloc.c appt.el buffer.h calc.el category.c
+  cl-indent.el custom.el derived.el dired-x.el dired.el dired.texi
+  display.texi easy-mmode.el ffap.el and 14 other files
 
 Oleksandr Gavenko: changed generic-x.el progmodes/grep.el
 
@@ -3728,10 +3956,10 @@ and co-wrote eudc-bob.el eudc-export.el eudc-hotlist.el 
eudc-vars.el
   eudc.el eudcb-bbdb.el eudcb-ldap.el eudcb-ph.el
 and changed ph.el
 
-Óscar Fuentes: changed ido.el vc-hooks.el xfns.c CPP-DEFINES addpm.c
-  addsection.c browse-url.el cmdproxy.c configure.ac diff-mode.el
-  emacsclient.c keyboard.c ms-w32.h preprep.c progmodes/grep.el ses.el
-  vc-bzr.el vc-cvs.el vc-git.el vc-hg.el vc-mtn.el and 7 other files
+Óscar Fuentes: changed ido.el password-cache.el ses.el vc-hooks.el xfns.c
+  CPP-DEFINES addpm.c addsection.c browse-url.el callproc.c cmdproxy.c
+  configure.ac diff-mode.el emacsclient.c keyboard.c ms-w32.h preprep.c
+  progmodes/grep.el vc-bzr.el vc-cvs.el vc-git.el and 9 other files
 
 Øyvind Stegard: changed gnus-msg.el
 
@@ -3753,9 +3981,9 @@ and changed imenu.el make-mode.el
 Paul Eggert: wrote rcs2log
 and co-wrote cal-dst.el
 and changed lisp.h configure.ac alloc.c process.c fileio.c editfns.c
-  xdisp.c sysdep.c keyboard.c image.c emacs.c xterm.c data.c lread.c
-  fns.c callproc.c Makefile.in gnulib.mk eval.c buffer.c frame.c
-  and 1608 other files
+  xdisp.c sysdep.c image.c keyboard.c data.c emacs.c fns.c lread.c
+  xterm.c eval.c callproc.c Makefile.in frame.c buffer.c gnulib-comp.m4
+  and 1821 other files
 
 Paul Fisher: changed fns.c
 
@@ -3768,10 +3996,10 @@ and changed message.el gnus-util.el gnus-int.el gnus.el 
gnus-agent.el
   gnus-start.el gnus-sum.el nnmail.el
 
 Paul Pogonyshev: changed subr.el byte-opt.el eval.c progmodes/python.el
-  which-func.el align.el bytecode.c cc-langs.el cl-macs.el configure.ac
-  dabbrev.el display.texi eldoc.el elisp-mode.el etags.el fns-tests.el
-  fns.c functions.texi generator.el hash.texi image-file.el
-  and 15 other files
+  which-func.el align.el bytecode.c bytecomp.el cc-langs.el cl-macs.el
+  configure.ac dabbrev.el display.texi eldoc.el elisp-mode.el
+  emacs-lisp/debug.el ert.el ert.texi etags.el fns-tests.el fns.c
+  and 20 other files
 
 Paul Rankin: changed outline.el
 
@@ -3787,6 +4015,8 @@ Paul Rubin: changed config.h sun2.h texinfmt.el window.c
 
 Paul Sexton: wrote org-ctags.el
 
+Paul Smith: changed compile-tests.el progmodes/compile.el
+
 Paul Stevenson: changed nnvirtual.el
 
 Paul Stodghill: changed gnus-agent.el gnus-util.el
@@ -3805,7 +4035,8 @@ and changed flymake.texi
 
 Peder O. Klingenberg: wrote dns-mode-tests.el
 and changed dns-mode.el icalendar.el mm-decode.el calc-comb.el calc.texi
-  dunnet.el emacsbug.el emacsclient.c gnus.texi misc.texi
+  dunnet.el emacsbug.el emacsclient.c eww.el gnus.texi misc.texi
+  url-http.el url-queue.el url-util.el url-vars.el url.texi
 
 P. E. Jareth Hein: changed gnus-util.el
 
@@ -3870,7 +4101,7 @@ Peter Münster: changed gnus-delay.el gnus-demon.el 
gnus-group.el
 
 Peter O'Gorman: changed configure.ac frame.h hpux10-20.h termhooks.h
 
-Peter Oliver: changed perl-mode.el server.el
+Peter Oliver: changed perl-mode.el server.el vc-sccs.el
 
 Peter Povinec: changed term.el
 
@@ -3912,14 +4143,18 @@ Petr Salinger: changed configure.ac gnu-kfreebsd.h
 Phil Hagelberg: wrote ert-x-tests.el
 and changed package.el pcmpl-unix.el subr.el
 
-Philip Jackson: wrote find-cmd.el org-irc.el
+Philip Hudson: changed em-hist.el
+
+Philip Jackson: wrote find-cmd.el ol-irc.el
+and changed org-irc.el
 
 Philip K: changed ispell.el
 
 Philippe Schnoebelen: wrote gomoku.el mpuz.el
+and changed cl-extra.el
 
 Philippe Vaucher: changed callint.c composite.el debugging.texi
-  replace.el subr.el text-mode.el
+  modes.texi replace.el subr.el tabulated-list.el text-mode.el
 
 Philippe Waroquiers: changed etags.el term.c
 
@@ -3928,32 +4163,39 @@ Philipp Haselwarter: changed gnus-agent.el gnus-sum.el 
gnus-sync.el
 
 Philipp Rumpf: changed electric.el
 
-Philipp Stephani: wrote checkdoc-tests.el ediff-diff-tests.el
-  eval-tests.el ido-tests.el lread-tests.el mouse-tests.el
-  xt-mouse-tests.el
-and changed emacs-module.c eval.c bytecomp.el nsterm.m
-  emacs-module-tests.el files.el lread.c configure.ac editfns.c
-  mod-test.c alloc.c electric.el gtkutil.c lisp.h electric-tests.el
-  emacs.c macfont.m test/Makefile.in xt-mouse.el Makefile
-  bytecomp-tests.el and 96 other files
+Philipp Stephani: wrote callint-tests.el checkdoc-tests.el
+  cl-preloaded-tests.el ediff-diff-tests.el eval-tests.el ido-tests.el
+  lread-tests.el mouse-tests.el xt-mouse-tests.el
+and changed emacs-module.c emacs-module-tests.el json.c json-tests.el
+  eval.c mod-test.c lisp.h lread.c nsterm.m configure.ac bytecomp.el
+  internals.texi gtkutil.c emacs-module.h.in files.el alloc.c electric.el
+  test/Makefile.in editfns.c electric-tests.el emacs.c
+  and 126 other files
 
 Phillip Lord: wrote ps-print-tests.el
-and changed lisp/Makefile.in undo.c simple.el test/Makefile.in Makefile
-  Makefile.in viper-cmd.el elisp-mode-tests.el keyboard.c ldefs-clean.el
-  loadup.el autoload.el automated/Makefile.in build-zips.sh cmds.c
-  dired.el eieio-tests.el fileio.c htmlfontify.el
-  make-test-deps.emacs-lisp reftex-tests.el and 168 other files
-
-Phil Sainty: changed term.el derived.el easy-mmode.el lisp.el package.el
-  progmodes/grep.el simple.el subword.el
+and changed build-zips.sh lisp/Makefile.in undo.c simple.el
+  build-dep-zips.py test/Makefile.in Makefile Makefile.in emacs.nsi
+  keyboard.c viper-cmd.el README-windows-binaries README.W32
+  elisp-mode-tests.el ldefs-clean.el loadup.el README-scripts autoload.el
+  automated/Makefile.in cmds.c dired.el and 171 other files
+
+Phil Sainty: wrote autoload-longlines-mode-tests.el
+  autoload-major-mode-tests.el autoload-minor-mode-tests.el
+  so-long-tests-helpers.el so-long-tests.el so-long.el spelling-tests.el
+and changed diff.el goto-addr.el term.el cl-macs.el comint.el derived.el
+  easy-mmode.el emacs.texi files.texi lisp.el misc.texi package.el
+  progmodes/grep.el simple.el subword.el trouble.texi
 
 Phil Sung: changed wdired.el dired.texi follow.el progmodes/python.el
 
-Pierre Lorenzon: changed eieio-custom.el
+Pierre Lorenzon: changed eieio-custom.el pconf.el
 
 Pierre Poissinger: changed charset.c
 
-Pierre Téchoueyres: changed eieio-test-persist.el epg.el tramp-cmds.el
+Pierre Téchoueyres: changed browse-url.el eieio-test-persist.el epg.el
+  fns-tests.el fns.c mouse.el sql.el text.texi tramp-cmds.el
+
+Pierre-Yves Luyten: changed bookmark.el cua-rect.el
 
 Pieter E.J. Pareit: wrote mixal-mode.el
 
@@ -3961,6 +4203,8 @@ Pieter Praet: changed org-crypt.el
 
 Pieter Schoenmakers: changed TUTORIAL.nl
 
+Pieter Van Oostrum: changed package.el shell-tests.el shell.el
+
 Piet van Oostrum: changed data.c fileio.c flyspell.el smtpmail.el
 
 Pinku Surana: changed sql.el
@@ -3969,7 +4213,10 @@ Piotr Trojanek: changed gnutls.c process.c
 
 Piotr Zieliński: wrote org-mouse.el
 
-Pip Cet: changed dispextern.h gtkutil.c xdisp.c xfaces.c xterm.c xterm.h
+Pip Cet: changed fns.c display.texi xdisp.c xterm.c dispextern.h frame.el
+  gtkutil.c image.c json-tests.el json.c mail-utils.el nsterm.m simple.el
+  subr.el text.texi textprop.c timer-list.el tty-colors-tests.el
+  tty-colors.el url-http.el xfaces.c xterm.h
 
 Pontus Michael: changed simple.el
 
@@ -3984,7 +4231,8 @@ and changed abbrev-tests.el abbrev.el cl-lib-tests.el 
loadup.el
 Puneeth Chaganti: changed org.texi ox.el org-agenda.el org-capture.el
   ox-html.el svg.el
 
-Radon Rosborough: changed eval.c
+Radon Rosborough: changed package.el custom.texi package.texi startup.el
+  eval.c lread.c org.texi os.texi
 
 Rafael Laboissiere: changed org-remember.el org-bibtex.el org.el org.texi
 
@@ -3992,7 +4240,8 @@ Rafael Sepúlveda: changed TUTORIAL.es
 
 Raffael Mancini: changed misc.el
 
-Raimon Grau: changed replace.el thingatpt.el
+Raimon Grau: changed thingatpt.el calc-fin.el eww.el replace.el
+  thingatpt-tests.el
 
 Rainer Orth: changed gtkutil.c lisp/Makefile.in
 
@@ -4025,7 +4274,7 @@ and changed libc.el browse-url.el fileio.c info.el 
mm-decode.el
 
 Ramakrishnan M: changed mlm-util.el
 
-Rami Ylimäki: changed term.c efaq.texi termchar.h tparam.h tty-colors.el
+Rami Ylimäki: changed efaq.texi term.c tparam.h termchar.h tty-colors.el
   xterm.el
 
 Randall Smith: changed dired.el
@@ -4034,10 +4283,10 @@ Randal Schwartz: wrote pp.el
 
 Ransom Williams: changed files.el
 
-Rasmus Pank Roulund: changed ox-latex.el gnus-notifications.el org.el
-  ange-ftp.el gnus-fun.el gnus-icalendar.el gnus-sum.el gnus.texi ido.el
-  message.texi ob-C.el org-entities.el org-src.el org.texi ox-html.el
-  ox.el vc-git.el
+Rasmus Pank Roulund: wrote org-tempo.el
+and changed ox-latex.el gnus-notifications.el org.el ange-ftp.el
+  gnus-fun.el gnus-icalendar.el gnus-sum.el gnus.texi ido.el message.texi
+  ob-C.el org-entities.el org-src.el org.texi ox-html.el ox.el vc-git.el
 
 Raul Acevedo: changed info.el options.el
 
@@ -4049,11 +4298,11 @@ and changed gnus-art.el gnus-msg.el gnus.texi 
message.el nnmail.el
 
 R. Bernstein: changed gud.el
 
-Reiner Steib: wrote gmm-utils.el gnus-news.el
+Reiner Steib: wrote gmm-utils.el
 and changed message.el gnus.texi gnus-art.el gnus-sum.el gnus-group.el
   gnus.el mml.el gnus-faq.texi mm-util.el gnus-score.el message.texi
   gnus-msg.el gnus-start.el gnus-util.el spam-report.el mm-uu.el spam.el
-  mm-decode.el files.el gnus-agent.el nnmail.el and 174 other files
+  mm-decode.el files.el gnus-agent.el nnmail.el and 172 other files
 
 Remek Trzaska: changed gnus-ems.el
 
@@ -4073,13 +4322,14 @@ Reuben Thomas: changed ispell.el whitespace.el 
dired-x.el files.el
   sh-script.el emacsclient-tests.el remember.el README emacsclient.c
   misc.texi msdos.c simple.el INSTALL ada-mode.el ada-xref.el alloc.c
   arc-mode.el authors.el config.bat copyright dired-x.texi
-  and 34 other files
+  and 36 other files
 
 Ricardo Wurmus: changed xwidget.el xwidget.c configure.ac xwidget.h
 
 Riccardo Murri: changed vc-bzr.el tls.el
 
 Richard Copley: changed Makefile.in epaths.in epaths.nt gdb-mi.el
+  text.texi
 
 Richard Dawe: changed config.in src/Makefile.in
 
@@ -4115,7 +4365,7 @@ and co-wrote cc-align.el cc-cmds.el cc-defs.el 
cc-engine.el cc-langs.el
 and changed files.el keyboard.c simple.el xterm.c xdisp.c rmail.el
   fileio.c process.c sysdep.c buffer.c xfns.c window.c subr.el
   configure.ac startup.el sendmail.el emacs.c Makefile.in editfns.c
-  info.el dired.el and 1339 other files
+  info.el dired.el and 1338 other files
 
 Richard Ryniker: changed sendmail.el
 
@@ -4139,7 +4389,8 @@ Robert Bihlmeyer: changed gnus-score.el gnus-util.el 
message.el
 
 Robert Brown: changed lisp-mode.el
 
-Robert Cochran: changed bytecomp.el checkdoc.el data.c map.el
+Robert Cochran: changed tab-bar.el bytecomp.el checkdoc.el data.c
+  frames.texi map.el
 
 Robert Fenk: changed desktop.el
 
@@ -4156,17 +4407,21 @@ Robert Marshall: changed mule-cmds.el
 
 Roberto Huelga Díaz: changed org-clock.el org-timer.el
 
-Roberto Rodríguez: changed ada-mode.texi glossary.texi widget.texi
+Roberto Rodríguez: changed glossary.texi widget.texi
 
 Robert P. Goldman: changed org.texi ob-exp.el org.el ox-latex.el
 
-Robert Pluim: changed gtkutil.c configure.ac files.texi dired-x.texi
-  ftfont.c misc.texi process.c vc-git.el xfns.c xterm.c bindings.el
-  desktop.el efaq.texi epa.texi filelock.c font.c ftcrfont.c
-  gnus-agent.el gnus-demon.el gnus.texi gtkutil.h and 19 other files
+Robert Pluim: wrote nsm-tests.el
+and changed process.c gtkutil.c processes.texi vc-git.el configure.ac
+  ftfont.c network-stream.el nsm.el process-tests.el files.texi font.c
+  ftcrfont.c gnus-icalendar.el gnutls.el gtkutil.h
+  network-stream-tests.el text.texi w32.c xfns.c xftfont.c auth.texi
+  and 83 other files
 
 Robert Thorpe: changed cus-start.el indent.el
 
+Robert Weiner: changed cus-edit.el
+
 Rob Giardina: changed org-agenda.el
 
 Rob Kaut: changed vhdl-mode.el
@@ -4196,21 +4451,20 @@ and changed compile.el add-log.el configure.ac files.el 
vc.el simple.el
   rlogin.el rmail.el and 139 other files
 
 Roland Winkler: wrote proced.el
-and changed bibtex.el faces.el crm.el process.c appt.el artist.el
-  conf-mode.el cus-edit.el diary-lib.el flyspell.el hideshow.el
-  ibuf-ext.el ibuffer.el ispell.el make-mode.el sgml-mode.el sh-script.el
-  skeleton.el smtpmail.el
+and changed bibtex.el faces.el crm.el find-dired.el bookmark.el process.c
+  appt.el artist.el bibtex-style.el conf-mode.el cus-edit.el diary-lib.el
+  flyspell.el hideshow.el ibuf-ext.el ibuffer.el ispell.el make-mode.el
+  sgml-mode.el sh-script.el skeleton.el smtpmail.el
 
-Rolf Ade: changed sql.el
+Rolf Ade: changed sql.el tcl.el
 
-Rolf Ebert: co-wrote ada-mode.el ada-stmt.el ada-xref.el
-and changed files.el find-file.el
+Rolf Ebert: changed ada-mode.el files.el find-file.el
 
 Romain Francoise: changed efaq.texi message.el make-dist gnus.texi
   dired-x.el Makefile.in comint.el fileio.c ibuf-ext.el subr.el
   configure.ac files.texi gnus-sum.el gnus-uu.el progmodes/compile.el
   puresize.h replace.el startup.el doclicense.texi emacs.c gnus-fun.el
-  and 150 other files
+  and 149 other files
 
 Roman Belenov: changed which-func.el
 
@@ -4231,7 +4485,7 @@ Rüdiger Sonderfeld: wrote inotify-tests.el reftex-tests.el
 and changed eww.el octave.el shr.el bibtex.el configure.ac
   misc/Makefile.in reftex-vars.el vc-git.el TUTORIAL.de ada-mode.el
   autoinsert.el building.texi calc-lang.el cc-langs.el dired.texi
-  editfns.c emacs.c emacs.texi epa.el erc.el eww.texi and 38 other files
+  editfns.c emacs.c emacs.texi epa.el erc.el eww.texi and 39 other files
 
 Rui-Tao Dong: changed nnweb.el
 
@@ -4245,6 +4499,8 @@ Russ Allbery: changed message.el
 
 Ryan Barrett: changed dirtrack.el
 
+Ryan Brown: changed cl-indent.el
+
 Ryan Crum: changed json.el
 
 Ryan Thompson: changed advice-tests.el ido.el minibuffer-tests.el
@@ -4280,13 +4536,13 @@ Sam Kendall: changed etags.c etags.el
 
 Sam Steingold: wrote gulp.el midnight.el
 and changed progmodes/compile.el cl-indent.el simple.el vc-cvs.el vc.el
-  mouse.el vc-hg.el files.el font-lock.el tex-mode.el ange-ftp.el
-  sgml-mode.el window.el add-log.el bindings.el bookmark.el
-  bug-reference.el calendar.el cperl-mode.el diary-lib.el dired.el
-  and 152 other files
+  mouse.el vc-hg.el etags.el files.el font-lock.el tex-mode.el
+  ange-ftp.el sgml-mode.el vc-git.el window.el add-log.el bindings.el
+  bookmark.el bug-reference.el calendar.el cperl-mode.el
+  and 157 other files
 
 Samuel Bronson: changed custom.el emacsclient.c keyboard.c
-  progmodes/grep.el unexmacosx.c
+  progmodes/grep.el semantic/format.el unexmacosx.c
 
 Samuel Freilich: changed simple.el
 
@@ -4357,6 +4613,8 @@ Sebastian Kremer: wrote dired-aux.el dired.el ls-lisp.el
 and co-wrote dired-x.el find-dired.el
 and changed add-log.el
 
+Sebastian Reuße: changed find-dired.el
+
 Sebastian Rose: co-wrote org-protocol.el
 and changed ox-publish.el ftfont.c ox-jsinfo.el
 
@@ -4404,6 +4662,8 @@ Seweryn Kokot: changed positions.texi searching.texi
 Shakthi Kannan: wrote tamil-dvorak.el
 and changed ert.texi lisp-mode.el programs.texi text.texi
 
+Shanavas M: changed buffer-tests.el
+
 Shaun Johnson: changed ob-tangle.el org-exp-blocks.el
 
 Shawn Boles: changed url-cookie.el
@@ -4423,13 +4683,16 @@ Shigeru Fukaya: wrote bytecomp-tests.el
 and changed apropos.el bs.el byte-opt.el bytecomp.el elint.el rx-new.el
   ses.el subr.el texinfmt.el
 
+Shingo Tanaka: changed files.el
+
 Shinichirou Sugou: changed etags.c
 
 Shoji Nishimura: changed org.el
 
 Sho Nakatani: changed doc-view.el
 
-Shuguang Sun: changed dired-aux.el
+Shuguang Sun: changed dired-aux.el tramp-adb.el tramp-archive.el
+  tramp-integration.el
 
 Shuhei Kobayashi: wrote hex-util.el hmac-def.el hmac-md5.el
 and changed gnus-group.el message.el nnmail.el
@@ -4442,12 +4705,16 @@ Sidney Markowitz: changed doctor.el nsmenu.m
 
 Sigbjorn Finne: changed gnus-srvr.el
 
-Simen Heggestøyl: wrote color-tests.el css-mode-tests.el dom-tests.el
-  ring-tests.el rot13-tests.el sql-tests.el
-and changed css-mode.el json-tests.el json.el sgml-mode.el css-mode.css
-  scss-mode.scss ring.el rot13.el scheme.el sql.el color.el files.el
-  js.el less-css-mode.el less-css-mode.less maintaining.texi midnight.el
-  seq.el sequences.texi
+Simen Heggestøyl: wrote asm-mode-tests.el autoinsert-tests.el
+  color-tests.el css-mode-tests.el dom-tests.el makesum-tests.el
+  page-tests.el paren-tests.el ring-tests.el rot13-tests.el sql-tests.el
+and changed css-mode.el css-mode.css json-tests.el json.el sgml-mode.el
+  scss-mode.scss page.el ring.el rot13.el scheme.el sql.el asm-mode.el
+  autoinsert.el color.el files.el js.el less-css-mode.el
+  less-css-mode.less maintaining.texi makesum.el midnight.el
+  and 5 other files
+
+Simona Arizanova: changed help.el
 
 Simon Josefsson: wrote dig.el dns-mode.el flow-fill.el fringe.el imap.el
   mml-sec.el mml-smime.el password-cache.el rfc2104.el sieve-mode.el
@@ -4458,7 +4725,7 @@ and changed message.el gnus-sum.el gnus-art.el 
smtpmail.el pgg-gpg.el
   pgg.el gnus-agent.el mml2015.el mml.el gnus-group.el mm-decode.el
   gnus-msg.el gnus.texi mail/sieve-manage.el pgg-pgp5.el browse-url.el
   gnus-int.el gnus.el hashcash.el mm-view.el password.el
-  and 102 other files
+  and 101 other files
 
 Simon Law: changed delsel.el electric.el
 
@@ -4483,7 +4750,7 @@ Simon Thum: changed ob-maxima.el
 
 Skip Collins: changed w32fns.c w32term.c w32term.h
 
-Slawomir Nowaczyk: changed emacs.py progmodes/python.el TUTORIAL.pl
+Sławomir Nowaczyk: changed emacs.py progmodes/python.el TUTORIAL.pl
   flyspell.el ls-lisp.el w32proc.c
 
 Spencer Thomas: changed dabbrev.el emacsclient.c gnus.texi server.el
@@ -4499,20 +4766,29 @@ Stefan Bruda: co-wrote prolog.el
 
 Stefan Guath: changed find-dired.el
 
+Stefan Kangas: wrote bookmark-tests.el delim-col-tests.el morse-tests.el
+  paragraphs-tests.el password-cache-tests.el studly-tests.el
+  tabify-tests.el timezone-tests.el underline-tests.el uudecode-tests.el
+and changed bookmark.el package.el efaq.texi package.texi ibuffer.el
+  mwheel.el cperl-mode.el fns.c gud.el simple.el subr.el autoinsert.el
+  comint-tests.el cus-edit.el delim-col.el dired-aux.el dired-x.el
+  em-term.el ert.texi flow-fill.el frames.texi and 146 other files
+
 Stefan Merten: co-wrote rst.el
 
-Stefan Monnier: wrote bibtex-style.el bytecomp-tests.el bzrmerge.el
+Stefan Monnier: wrote bibtex-style.el bytecomp-tests.el
   cl-generic-tests.el cl-generic.el cl-preloaded.el cl-print.el cl.el
-  css-mode.el cursor-sensor.el cvs-status.el diff-mode.el gv.el inline.el
-  lisp-tests.el log-edit.el log-view.el minibuffer-tests.el minibuffer.el
-  mpc.el nadvice.el pcase.el pcvs-defs.el pcvs-info.el pcvs-parse.el
-  pcvs-util.el radix-tree.el regexp-opt-tests.el reveal.el smerge-mode.el
-  smie.el subword-tests.el vc-mtn.el
+  css-mode.el cursor-sensor.el cvs-status.el diff-mode.el fileloop.el
+  footnote-tests.el gv.el inline.el lisp-tests.el log-edit.el log-view.el
+  minibuffer-tests.el minibuffer.el mpc.el nadvice.el pcase.el
+  pcvs-defs.el pcvs-info.el pcvs-parse.el pcvs-util.el radix-tree.el
+  regexp-opt-tests.el reveal.el smerge-mode.el smie.el subword-tests.el
+  vc-mtn.el
 and co-wrote font-lock.el gitmerge.el pcvs.el
-and changed subr.el simple.el keyboard.c lisp.h bytecomp.el files.el
-  vc.el cl-macs.el xdisp.c alloc.c eval.c sh-script.el
-  progmodes/compile.el keymap.c tex-mode.el newcomment.el buffer.c
-  window.c lisp-mode.el lread.c vc-hooks.el and 1282 other files
+and changed subr.el simple.el keyboard.c bytecomp.el files.el lisp.h
+  cl-macs.el vc.el xdisp.c alloc.c eval.c sh-script.el
+  progmodes/compile.el keymap.c tex-mode.el buffer.c newcomment.el
+  window.c lread.c fileio.c help-fns.el and 1372 other files
 
 Stefano Facchini: changed gtkutil.c
 
@@ -4531,9 +4807,9 @@ Stefan Wiens: changed gnus-sum.el
 Steinar Bang: changed gnus-setup.el imap.el
 
 Štěpán Němec: changed INSTALL calc-ext.el cl.texi comint.el edebug.texi
-  font-lock.el loading.texi maps.texi mark.texi message.texi mini.texi
-  minibuf.texi misc.texi programs.texi subr.el tips.texi url-vars.el
-  url.texi vc-git.el window.c windows.texi
+  font-lock.el functions.texi leim-ext.el loading.texi maps.texi
+  mark.texi message.texi mini.texi minibuf.texi misc.texi programs.texi
+  subr.el tips.texi url-vars.el url.texi vc-git.el and 3 other files
 
 Stephan Stahl: changed which-func.el buff-menu.el buffer.c dired-x.texi
   ediff-mult.el
@@ -4542,10 +4818,10 @@ Stephen A. Wood: changed fortran.el
 
 Stephen Berman: wrote todo-mode-tests.el
 and co-wrote todo-mode.el
-and changed todo-mode.texi diary-lib.el dired-tests.el doc-view.el
-  files.el minibuffer.el wdired-tests.el dired.el frames.texi hl-line.el
-  info.el menu-bar.el mouse.el otodo-mode.el subr.el .gitattributes
-  TUTORIAL allout.el artist.el compile.texi cus-start.el
+and changed wdired.el todo-mode.texi diary-lib.el wdired-tests.el
+  dired-tests.el doc-view.el files.el minibuffer.el dired.el frames.texi
+  hl-line.el info.el menu-bar.el mouse.el otodo-mode.el subr.el
+  .gitattributes TUTORIAL allout.el artist.el compile.texi
   and 43 other files
 
 Stephen C. Gilardi: changed configure.ac
@@ -4554,24 +4830,25 @@ Stephen Compall: changed saveplace.el texinfo.el
 
 Stephen Eglen: wrote iswitchb.el mspools.el
 and changed diary-lib.el octave.el org-agenda.el locate.el replace.el
-  hexl.el info-look.el sendmail.el spell.el uce.el MORE.STUFF add-log.el
-  advice.el allout.el autoinsert.el avoid.el backquote.el battery.el
-  bib-mode.el bruce.el c-mode.el and 80 other files
+  hexl.el info-look.el sendmail.el spell.el uce.el add-log.el advice.el
+  allout.el autoinsert.el avoid.el backquote.el battery.el bib-mode.el
+  bruce.el c-mode.el ccl.el and 79 other files
 
 Stephen Gildea: wrote refcard.tex
 and co-wrote mh-funcs.el mh-search.el
-and changed time-stamp.el mh-e.el mh-comp.el mh-utils.el mh-customize.el
-  mh-junk.el fileio.c files.el fortran.el mh-e.texi mh-mime.el mwheel.el
-  tex-mode.el
+and changed time-stamp.el time-stamp-tests.el mh-e.el mh-comp.el
+  mh-utils.el mh-junk.el files.el mh-customize.el mh-e.texi mh-show.el
+  backups.texi dns-mode.el fileio.c files.texi fortran.el goto-addr.el
+  mh-mime.el misc.texi mwheel.el tex-mode.el
 
 Stephen J. Turnbull: changed ediff-init.el strings.texi subr.el
 
 Stephen Leake: wrote elisp-mode-tests.el
-and changed ada-mode.el ada-xref.el elisp-mode.el mode-local.el window.el
-  xref.el CONTRIBUTE vc-mtn.el ada-mode.texi ada-prj.el cedet-global.el
-  ede/generic.el ada-stmt.el cl-generic.el ede/locate.el files.texi
-  project.el windows.texi INSTALL.REPO INSTALL.W64 align.el
-  and 21 other files
+and changed ada-mode.el ada-xref.el elisp-mode.el xref.el window.el
+  mode-local.el CONTRIBUTE ada-prj.el project.el vc-mtn.el ada-stmt.el
+  cedet-global.el ede/generic.el simple.el autoload.el bytecomp.el
+  cl-generic.el ede/locate.el files.texi functions.texi package.el
+  and 30 other files
 
 Stephen Pegoraro: changed xterm.c
 
@@ -4583,13 +4860,15 @@ Steve Fisk: co-wrote cal-tex.el
 
 Steve Grubb: changed vcdiff
 
-Steven Allen: changed xdg.el
+Steven Allen: changed em-prompt.el xdg.el
+
+Steven De Herdt: changed vc/vc-bzr.el
 
 Steven E. Harris: changed nnheader.el
 
 Steven Huwig: changed emacs.py progmodes/python.el
 
-Steven L. Baur: wrote footnote.el
+Steven L. Baur: co-wrote footnote.el
 and changed gnus-xmas.el gnus-msg.el add-log.el edebug.el gnus-ems.el
   gnus-start.el gnus-topic.el message.el nnbabyl.el nntp.el webjump.el
 
@@ -4605,6 +4884,8 @@ Steve Nygard: changed unexnext.c
 Steve Purcell: wrote less-css-mode.el
 and changed package.el nnimap.el nsterm.m sql.el
 
+Steve Scott: changed rcirc.el
+
 Steve Strassmann: wrote spook.el
 
 Steve Youngs: changed mh-utils.el mh-xemacs-compat.el mh-customize.el
@@ -4645,9 +4926,10 @@ Svante Carl V. Erichsen: changed cl-indent.el
 Svend Tollak Munkejord: changed deuglify.el
 
 Sven Joachim: changed files.el de-refcard.tex dired-aux.el emacs.1
-  arc-mode.el dired-x.el em-cmpl.el em-hist.el em-ls.el esh-cmd.el
-  esh-ext.el esh-io.el files.texi gnus-news.texi gnus-sum.el gnus.texi
-  help.el make-dist message.el movemail.c mule.texi and 9 other files
+  arc-mode.el dired-x.el doc/misc/gnus.texi em-cmpl.el em-hist.el
+  em-ls.el esh-cmd.el esh-ext.el esh-io.el files.texi gnus-sum.el
+  gnus.texi help.el make-dist message.el movemail.c mule.texi
+  and 9 other files
 
 Sylvain Chouleur: changed gnus-icalendar.el icalendar.el
 
@@ -4679,7 +4961,7 @@ Takai Kousuke: changed ccl.el image/compface.el
 Takeshi Yamada: changed fns.c
 
 Tak Kunihiro: wrote pixel-scroll.el
-and changed frames.texi mouse.el mwheel.el dired.el
+and changed frames.texi mouse.el mwheel.el dired.el ns-win.el
 
 Tao Fang: changed url-http.el
 
@@ -4687,12 +4969,12 @@ Taro Kawagishi: wrote md4.el ntlm.el sasl-ntlm.el
 and changed arc-mode.el
 
 Tassilo Horn: wrote doc-view.el
-and co-wrote org-gnus.el
+and co-wrote ol-gnus.el
 and changed reftex-vars.el tex-mode.el gnus.texi reftex-cite.el
   tsdh-dark-theme.el tsdh-light-theme.el gnus-sum.el file-notify-tests.el
-  reftex.el misc.texi prog-mode.el subword.el image-mode.el lisp-mode.el
-  cc-cmds.el display.texi em-term.el emacsbug.el files.el gnus-art.el
-  nnimap.el and 74 other files
+  reftex.el misc.texi org-gnus.el prog-mode.el subword.el image-mode.el
+  json.el lisp-mode.el cc-cmds.el display.texi em-term.el emacsbug.el
+  files.el and 82 other files
 
 Tatsuya Ichikawa: changed gnus-agent.el gnus-cache.el
 
@@ -4703,8 +4985,8 @@ Ted Phelps: changed mh-search.el mh-e.el mh-folder.el 
mh-junk.el
 
 Ted Wiles: changed org-habit.el
 
-Teemu Likonen: changed dired.el epg.el erc-backend.el gnus-agent.el
-  gnus.texi indent.el message.el
+Teemu Likonen: changed epg.el dired.el epg-config.el erc-backend.el
+  gnus-agent.el gnus.texi indent.el message.el mml-sec.el
 
 Teodor Zlatanov: wrote auth-source.el gnus-registry.el gnus-tests.el
   gnutls-tests.el gnutls.el registry.el spam-report.el
@@ -4712,7 +4994,7 @@ Teodor Zlatanov: wrote auth-source.el gnus-registry.el 
gnus-tests.el
 and changed spam.el gnus.el nnimap.el gnus.texi gnutls.c gnus-sum.el
   auth.texi cfengine.el gnus-sync.el gnus-util.el gnus-start.el netrc.el
   gnutls.h message.el spam-stat.el encrypt.el mail-source.el nnir.el
-  nnmail.el auth-source-tests.el configure.ac and 120 other files
+  nnmail.el auth-source-tests.el configure.ac and 119 other files
 
 Terje Rosten: changed xfns.c version.el xterm.c xterm.h
 
@@ -4741,8 +5023,8 @@ Thien-Thi Nguyen: wrote last-chance.el
 and co-wrote hideshow.el
 and changed ewoc.el vc.el info.el processes.texi zone.el lisp-mode.el
   scheme.el text.texi vc-rcs.el display.texi fileio.c files.el vc-git.el
-  MORE.STUFF TUTORIAL.it bindat.el cc-vars.el configure.ac dcl-mode.el
-  diff-mode.el dired.el and 169 other files
+  TUTORIAL.it bindat.el cc-vars.el configure.ac dcl-mode.el diff-mode.el
+  dired.el elisp.texi and 168 other files
 
 Thierry Banel: co-wrote ob-C.el
 and changed calc-arith.el
@@ -4751,14 +5033,14 @@ Thierry Emery: changed kinsoku.el timezone.el 
url-http.el wid-edit.el
 
 Thierry Volpiatto: changed bookmark.el files.el dired-aux.el
   eshell/eshell.el gnus-sum.el keyboard.c net-utils.el package.el
-  tramp.el eldoc.el files.texi image-mode.el info.el man.el pcmpl-gnu.el
-  subr.el woman.el avoid.el commands.texi dired.el doc-view.el
-  and 11 other files
+  tramp.el eldoc.el files.texi image-mode.el info.el man.el minibuffer.el
+  pcmpl-gnu.el subr.el winner.el woman.el avoid.el commands.texi
+  and 15 other files
 
 Thomas Bach: changed wisent/python.el
 
-Thomas Baumann: wrote org-mhe.el
-and co-wrote org-bbdb.el
+Thomas Baumann: wrote ol-mhe.el
+and co-wrote ol-bbdb.el
 
 Thomas Bellman: co-wrote avl-tree.el
 
@@ -4769,9 +5051,10 @@ Thomas Dorner: changed ange-ftp.el
 Thomas Dye: changed org.texi org-bibtex.el ob-R.el org.el
 
 Thomas Fitzsimmons: wrote soap-client.el
-and changed soap-inspect.el ldap.el eudc-vars.el eudc.texi ntlm.el
-  eudc.el eudcb-ldap.el eudc-export.el eudcb-bbdb.el eudcb-ph.el
-  display.texi url-http.el
+and changed soap-inspect.el ldap.el eudc-vars.el eudc.el eudc.texi
+  ntlm.el eudcb-ldap.el eudcb-bbdb.el eudc-bob.el eudc-export.el
+  eudcb-ph.el package.el url-http.el diary-lib.el display.texi
+  eudc-hotlist.el icalendar.el url-auth.el
 
 Thomas Horsley: changed cxux-crt0.s cxux.h cxux7.h emacs.c nh3000.h
   nh4000.h simple.el sysdep.c xterm.c
@@ -4840,20 +5123,23 @@ Tim Van Holder: changed emacsclient.c Makefile.in 
configure.ac
 Tino Calancha: wrote buff-menu-tests.el ediff-ptch-tests.el
   em-ls-tests.el ffap-tests.el hi-lock-tests.el ls-lisp-tests.el
   register-tests.el rmc-tests.el
-and changed ibuffer.el dired-tests.el ibuf-ext.el dired.el dired-aux.el
-  simple.el replace.el ibuffer-tests.el ls-lisp.el diff-mode.el
-  ibuf-macs.el cl-seq.el dired-x.el dired.texi ediff-ptch.el em-ls.el
-  files.el replace-tests.el buff-menu.el cl.texi ediff-init.el
-  and 82 other files
+and changed ibuffer.el ibuf-ext.el dired-tests.el dired.el replace.el
+  dired-aux.el replace-tests.el simple.el ibuf-macs.el subr.el dired.texi
+  ibuffer-tests.el ls-lisp.el diff-mode.el files.el cl-macs.el cl-seq.el
+  dired-x.el ediff-ptch.el em-ls.el buff-menu.el and 95 other files
 
 Titus von der Malsburg: changed simple.el window.el
 
-Tobias Bading: changed progmodes/compile.el
+Tobias Bading: changed gtkutil.c progmodes/compile.el xfns.c
 
 Tobias C. Rittweiler: changed font-lock.el searching.texi sendmail.el
 
+Tobias Gerdin: changed xref.el
+
 Tobias Ringström: changed etags.c
 
+Tobias Zawada: changed wid-edit.el
+
 Toby Allsopp: changed ldap.el eudc.el
 
 Toby Cubitt: co-wrote avl-tree.el
@@ -4877,6 +5163,10 @@ Tom Hageman: changed etags.c
 
 Tom Houlder: wrote mantemp.el
 
+Tom Levy: changed sequences.texi
+
+Tommi Komulainen: changed progmodes/python.el
+
 Tommi Vainikainen: changed gnus-sum.el message.el mml-sec.el
 
 Tomohiko Morioka: co-wrote mm-bodies.el mm-decode.el mm-encode.el
@@ -4902,12 +5192,12 @@ Tom Seddon: changed w32font.c
 
 Tom Tromey: wrote bug-reference.el erc-list.el package-x.el
 and co-wrote package.el tcl.el
-and changed js.el buffer.c lisp.h css-mode.el js-tests.el mhtml-mode.el
-  makefile.el window.c cmds.c files.el keyboard.c keymap.c process.c
-  xfns.c buffer.h bytecode.c callint.c callproc.c composite.c
-  configure.ac dispextern.h and 176 other files
+and changed data.c lisp.h js.el buffer.c data-tests.el alloc.c
+  css-mode.el js-tests.el mhtml-mode.el process.c window.c editfns.c
+  fns.c keyboard.c keymap.c lread.c makefile.el xfns.c bytecode.c cmds.c
+  configure.ac and 206 other files
 
-Tom Willemse: changed elec-pair.el package.el prog-mode.el
+Tom Willemse: changed elec-pair.el package.el perl-mode.el prog-mode.el
   progmodes/python.el simple.el
 
 Toon Claes: changed latin-alt.el
@@ -4930,7 +5220,7 @@ Toshiaki Nomura: changed uxpds.h
 
 Trent W. Buck: changed rcirc.el remember.el rx.el
 
-Trevor Murphy: changed gnus.texi nnimap.el org.el
+Trevor Murphy: changed find-dired.el gnus.texi nnimap.el org.el
 
 Trevor Spiteri: changed progmodes/grep.el
 
@@ -4940,6 +5230,8 @@ Triet Hoai Lai: changed vntelex.el viet-util.el 
vietnamese.el
 
 Troels Nielsen: changed process.c buffer.c progmodes/compile.el window.el
 
+Troy Hinckley: changed progmodes/compile.el
+
 Trung Tran-Duc: changed nntp.el
 
 Tsuchiya Masatoshi: changed gnus-art.el mm-view.el gnus-sum.el
@@ -4975,10 +5267,11 @@ and changed org-gnus.el smime.el
 
 Ulrich Leodolter: changed w32proc.c
 
-Ulrich Müller: changed configure.ac lib-src/Makefile.in src/Makefile.in
-  version.el calc-units.el doctor.el emacs.1 files.el gamegrid.el gud.el
-  server.el ChgPane.c ChgSel.c HELLO INSTALL Makefile.in XMakeAssoc.c
-  authors.el bytecomp.el case-table.el configure and 39 other files
+Ulrich Müller: changed configure.ac calc-units.el lib-src/Makefile.in
+  src/Makefile.in version.el doctor.el emacs.1 files.el gamegrid.el
+  gud.el server.el ChgPane.c ChgSel.c HELLO INSTALL Makefile.in
+  XMakeAssoc.c authors.el bytecomp.el case-table.el configure
+  and 39 other files
 
 Ulrich Neumerkel: changed xterm.c
 
@@ -4993,7 +5286,9 @@ Vadim Nasardinov: changed allout.el
 
 Vagn Johansen: changed gnus-cache.el vc-svn.el
 
-Vaidheeswaran C: changed help-mode.el
+Vaidheeswaran C: changed help-mode.el tabulated-list.el
+
+Väinö Järvelä: changed nsfns.m
 
 Valentin Gatien-Baron: changed emacs-module.c
 
@@ -5001,10 +5296,12 @@ Valentin Wüstholz: changed org.el
 
 Valery Alexeev: changed cyril-util.el cyrillic.el
 
+Van L: changed subr.el
+
 Vasilij Schneidermann: changed cus-start.el eww.el cc-mode.el
   debugging.texi display.texi edebug.el emacs-lisp/debug.el eval.c
-  ielm.el os.texi redisplay-testsuite.el shr.el snake.el term.el
-  tetris.el xdisp.c xterm.c
+  ielm.el os.texi profiler.el redisplay-testsuite.el shr.el snake.el
+  term.el tetris.el xdisp.c xterm.c
 
 Vasily Korytov: changed cyrillic.el message.el cperl-mode.el gnus-art.el
   gnus-dired.el gnus-msg.el gnus-util.el mail-source.el
@@ -5013,9 +5310,10 @@ Vasily Korytov: changed cyrillic.el message.el 
cperl-mode.el gnus-art.el
 Vegard Øye: changed viper-init.el
 
 Vibhav Pant: changed bytecomp.el byte-opt.el bytecode.c bytecomp-tests.el
-  esh-mode.el cperl-mode.el disass.el alloc.c browse-url.el category.c
-  emacs-module.c erc-backend.el erc.el eshell.texi fns.c hangul.el
-  image.c lisp.h lread.c print.c profiler.c xterm.c
+  erc.el esh-mode.el cperl-mode.el disass.el erc-backend.el
+  erc-services.el alloc.c browse-url.el category.c emacs-module.c
+  erc-dcc.el eshell.texi fns.c hangul.el image.c lisp.h lread.c
+  and 4 other files
 
 Victor J. Orlikowski: changed erc-dcc.el
 
@@ -5045,8 +5343,8 @@ and changed ps-prin1.ps ps-bdf.el ps-prin0.ps 
blank-mode.el ps-prin3.ps
   easymenu.el loading.texi menu-bar.el misc.texi progmodes/compile.el
   ps-print-def.el ps-vars.el
 
-Vitalie Spinu: changed comint.el message.el ob-R.el ob-core.el
-  ob-tangle.el subr.el
+Vitalie Spinu: changed comint.el eieio-base.el message.el ob-R.el
+  ob-core.el ob-tangle.el subr.el
 
 Vitaly Takmazov: changed emacs-x64.manifest emacs-x86.manifest
 
@@ -5078,7 +5376,7 @@ Warren Lynn: changed tramp-sh.el
 
 Wei-Wei Guo: co-wrote rst.el
 
-Wenjamin Petrenko: changed files-x.el
+Wenjamin Petrenko: changed files-x.el filesets.el
 
 Werner Benger: changed keyboard.c
 
@@ -5097,10 +5395,12 @@ Wes Hardaker: changed gnus-score.el gnus-art.el 
gnus-sum.el gnus-win.el
 
 Wesley Dawson: changed icomplete.el
 
+W. Garrett Mitchener: changed ipa-praat.el
+
 Wieland Hoffmann: changed auth-source.el custom.el
 
-Wilfred Hughes: changed button.el byte-opt.el help.el sh-script.el
-  subr.el vc-git.el
+Wilfred Hughes: changed button.el byte-opt.el css-mode.el find-func.el
+  help-mode.el help.el hexl.el sh-script.el subr.el vc-git.el
 
 Will Glozer: changed macterm.c
 
@@ -5139,12 +5439,16 @@ and changed files.el
 Wim Nieuwenhuizen: changed TUTORIAL.nl
 
 Wlodzimierz Bzyl: co-wrote ogonek.el
-and changed latin-pre.el pl-refcard.tex survival.tex
+and changed pl-refcard.tex
+
+Włodzimierz Bzyl: changed latin-pre.el pl-refcard.tex survival.tex
 
 W. Martin Borgert: changed files.el schemas.xml
 
 Wojciech Gac: changed latin-pre.el quail/cyrillic.el
 
+Wojciech S. Gac: wrote sami.el
+
 Wolfgang Glas: changed unexsgi.c
 
 Wolfgang Jenkner: wrote man-tests.el textprop-tests.el
@@ -5161,7 +5465,7 @@ and changed process.c alloc.c callint.c config.in 
configure.ac data.c
   fns.c lisp-mode.el lisp.h loadup.el lread.c net-utils.el nntp.el
   print.c sort.el
 
-Wolfgang Scherer: changed vc-cvs.el
+Wolfgang Scherer: changed vc-cvs.el vc-dir.el vc-svn.el vc.el pcvs.el
 
 Wolfgang Schnerring: changed emacsclient.c
 
@@ -5175,7 +5479,7 @@ Xavier Maillard: changed gnus-faq.texi gnus-score.el 
mh-utils.el spam.el
 
 Xi Lu: changed etags.c tramp-sh.el
 
-Xu Chunyang: changed gud.el
+Xu Chunyang: changed dom.el eww.el gud.el netrc.el
 
 Xue Fuqiao: changed display.texi emacs-lisp-intro.texi files.texi
   maintaining.texi text.texi windows.texi nonascii.texi frames.texi
@@ -5188,15 +5492,17 @@ Yagi Tatsuya: changed gnus-art.el gnus-start.el
 Yair F: changed hebrew.el
 
 Yamamoto Mitsuharu: wrote uvs.el
-and changed macterm.c macfns.c mac-win.el mac.c macterm.h macmenu.c
-  xterm.c macgui.h image.c xdisp.c keyboard.c macselect.c w32term.c
-  src/Makefile.in unexmacosx.c xfns.c configure.ac emacs.c macfont.m
-  darwin.h dispnew.c and 97 other files
+and changed macterm.c macfns.c mac-win.el xterm.c mac.c macterm.h image.c
+  macmenu.c macgui.h xdisp.c ftfont.c xfns.c keyboard.c macselect.c
+  ftcrfont.c configure.ac macfont.m w32term.c dispextern.h
+  src/Makefile.in unexmacosx.c and 109 other files
 
 Yann Dirson: changed imenu.el
 
 Yann Hodique: changed ox-publish.el package.el rcirc.el
 
+Yasuhiro Kimura: changed japan-util.el
+
 Yasushi Shoji: changed org-clock.el org.texi ox-ascii.el
 
 Yavor Doganov: changed configure.ac Makefile.in emacs.1 etags.1 make-dist
@@ -5221,6 +5527,8 @@ Yoshinari Nomura: changed ox-html.el ox.el
 Yoshinori Koseki: wrote iimage.el
 and changed fontset.el message.el nnheader.el nnmail.el
 
+Yuan Fu: changed gdb-mi.el
+
 Yuanle Song: changed rng-xsd.el
 
 Yu-ji Hosokawa: changed README.W32
diff --git a/etc/DEBUG b/etc/DEBUG
index a5e6418..7fb7e44 100644
--- a/etc/DEBUG
+++ b/etc/DEBUG
@@ -739,9 +739,9 @@ stepping, you will see where the loop starts and ends.  
Also, examine
 the data being used in the loop and try to determine why the loop does
 not exit when it should.
 
-On GNU and Unix systems, you can also trying sending Emacs SIGUSR2,
+On GNU and Unix systems, you can also try sending Emacs SIGUSR2,
 which, if 'debug-on-event' has its default value, will cause Emacs to
-attempt to break it out of its current loop and into the Lisp
+attempt to break out of its current loop and enter the Lisp
 debugger.  (See the node "Debugging" in the ELisp manual for the
 details about the Lisp debugger.)  This feature is useful when a
 C-level debugger is not conveniently available.
diff --git a/etc/NEWS b/etc/NEWS
index 5fd2439..fd1ed3e 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -38,7 +38,7 @@ when using Cairo.  Use 'ftcrhb' if your Emacs was built with 
HarfBuzz
 text shaping support, and 'ftcr' otherwise.  You can determine this by
 checking 'system-configuration-features'.  The 'ftcr' backend will
 still be available when HarfBuzz is supported, but will not be used by
-default.  We strongly recommend building with HarBuzz support. 'x' is
+default.  We strongly recommend building with HarBuzz support.  'x' is
 still a valid backend.
 
 ---
@@ -64,9 +64,9 @@ It was declared obsolete in Emacs 27.1.
 
 * Changes in Emacs 28.1
 
-** Support for '(box . SIZE)' cursor-type.
+** Support for '(box . SIZE)' 'cursor-type'.
 By default, 'box' cursor always has a filled box shape.  But if you
-specify cursor-type to be '(box . SIZE)', the cursor becomes a hollow
+specify 'cursor-type' to be '(box . SIZE)', the cursor becomes a hollow
 box if the point is on an image larger than 'SIZE' pixels in any
 dimension.
 
@@ -106,6 +106,31 @@ Visiting" in the user manual for the supported commands.
 
 * Changes in Specialized Modes and Packages in Emacs 28.1
 
+** Emacs-Lisp mode
+
+*** The mode-line now indicates whether we're using lexical or dynamic scoping.
+
+** Dired
+
+*** New user option 'dired-mark-region' affects all Dired commands
+that mark files.  When non-nil and the region is active in Transient
+Mark mode, then Dired commands operate only on files in the active
+region.  The values 'file' and 'line' of this user option define the
+details of marking the file at the end of the region.
+
+*** State changing VC operations are supported in 'dired-mode' on files
+(but still not on directories).
+
+** Gnus
+
+---
+*** Change to default value of 'message-draft-headers' user option.
+The 'Date' symbol has been removed from the default value, meaning that
+draft or delayed messages will get a date reflecting when the message
+was sent.  To restore the original behavior of dating a message
+from when it is first saved or delayed, add the symbol 'Date' back to
+this user option.
+
 ** Help
 
 +++
@@ -130,6 +155,18 @@ To revert to the previous behaviour,
 unconditionally aborts the current edebug instrumentation with the
 supplied error message.
 
++++
+** ElDoc
+
+*** New hook 'eldoc-documentation-functions' to be used for registering
+doc string functions.  This makes the results of all doc string
+functions accessible to the user through the existing single function hook
+'eldoc-documentation-function'.
+
+*** 'eldoc-documentation-function' is now a user option.
+Modes should use the new hook instead of this user option to register
+their backends.
+
 ** Tramp
 
 ---
@@ -139,11 +176,20 @@ supplied error message.
 *** New connection method "media", which allows accessing media devices
 like cell phones, tablets or cameras.
 
+** Tempo
+
+---
+*** 'tempo-define-template' can now re-assign templates to tags.
+Previously, assigning a new template to an already defined tag had no
+effect.
+
+
 ** map.el
 
 *** Pcase 'map' pattern added keyword symbols abbreviation.
 A pattern like '(map :sym)' binds the map's value for ':sym' to 'sym',
 equivalent to '(map (:sym sym))'.
+
 ** Package
 
 +++
@@ -159,10 +205,49 @@ key             binding
 / v             package-menu-filter-by-version
 / /             package-menu-filter-clear
 
+** gdb-mi
+
++++
+*** gdb-mi can now store and restore window configurations.
+Use 'gdb-save-window-configuration' to save window configuration to a
+file and 'gdb-load-window-configuration' to load from a file.  These
+commands can also be accessed through the menu bar under 'Gud --
+GDB-Windows'.  'gdb-default-window-configuration-file', when non-nil,
+is loaded when GDB starts up.
+
++++
+*** gdb-mi can now restore window configuration after quit.
+Set 'gdb-restore-window-configuration-after-quit' to non-nil and Emacs
+will remember the window configuration before GDB started and restore
+it after GDB quits.  A toggle button is also provided under 'Gud --
+GDB-Windows'.
+
+** Gravatar
+
+---
+*** New user option 'gravatar-service' for host to query for gravatars.
+Defaults to 'libravatar', with 'unicornify' and 'gravatar' as options.
+
+** Compilation mode
+
+*** Regexp matching of messages is now case-sensitive by default.
+The user option 'compilation-error-case-fold-search' can be set
+for case-insensitive matching of messages.
+
 
 * New Modes and Packages in Emacs 28.1
 
 
+* Incompatible Editing Changes in Emacs 28.1
+
+** In 'nroff-mode', 'center-line' is now bound to 'M-o M-s'.
+The original key binding was 'M-s', which interfered with I-search,
+since the latter uses 'M-s' as a prefix key of the search prefix map.
+
+** 'vc-print-branch-log' shows the change log for BRANCH from its root
+directory instead of the default directory.
+
+
 * Incompatible Lisp Changes in Emacs 28.1
 
 ** 'equal' no longer examines some contents of window configurations.
@@ -183,9 +268,16 @@ Emacs now supports bignums so this old glitch is no longer 
needed.
 'previous-system-time-locale' have been removed, as they were created
 by mistake and were not useful to Lisp code.
 
+** The 'load-dangerous-libraries' variable is now obsolete.
+It was used to allow loading Lisp libraries compiled by XEmacs, a
+modified version of Emacs which is no longer actively maintained.
+This is no longer supported, and setting this variable has no effect.
+
 
 * Lisp Changes in Emacs 28.1
 
+** New macro 'dlet' to dynamically bind variables.
+
 ** The variable 'force-new-style-backquotes' has been removed.
 This removes the final remaining trace of old-style backquotes.
 
@@ -198,6 +290,13 @@ called when the function object is garbage-collected.  Use
 'set_function_finalizer' to set the finalizer and
 'get_function_finalizer' to retrieve it.
 
+** Modules can now open a channel to an existing pipe process using
+the new module function 'open_channel'.  Modules can use this
+functionality to asynchronously send data back to Emacs.
+
+** 'file-modes', 'set-file-modes', and 'set-file-times' now have an
+optional argument specifying whether to follow symbolic links.
+
 ** 'parse-time-string' can now parse ISO 8601 format strings,
 such as "2020-01-15T16:12:21-08:00".
 
diff --git a/etc/NEWS.27 b/etc/NEWS.27
index 380ac71..d3f27e3 100644
--- a/etc/NEWS.27
+++ b/etc/NEWS.27
@@ -229,6 +229,9 @@ the new version of the file again.)
 
 * Changes in Emacs 27.1
 
+---
+** Emacs now supports Unicode Standard version 13.0.
+
 +++
 ** Emacs now supports resizing and rotating images without ImageMagick.
 All modern systems support this feature.  (On GNU and Unix systems,
@@ -347,14 +350,26 @@ The default value is 30000, as the previously hard-coded 
threshold.
 +++
 ** The function 'read-passwd' uses "*" as default character to hide passwords.
 
++++
 ** The function 'read-answer' now accepts not only single character
 answers, but also function keys like 'F1', character events such as
 'C-M-h', and control characters like 'C-h'.
 
-** Lexical binding is now used when evaluating interactive Elisp forms.
-More specifically, 'lexical-binding' is now used for 'M-:', '--eval',
-as well as in 'lisp-interaction-mode' and 'ielm-mode', used in the
-"*scratch*" and "*ielm*" buffers.
++++
+** Lexical binding is now used by default when evaluating interactive Elisp.
+More specifically, 'lexical-binding' is now used by default for 'M-:'
+and '--eval' (including in evaluations invoked from 'emacsclient' via
+its '--eval' command-line option), as well as in
+'lisp-interaction-mode' and 'ielm-mode', used in the "*scratch*" and
+"*ielm*" buffers.
+
+We envision that most Lisp code is already either written with
+lexical-binding in mind, or will work unchanged under
+lexical-binding.  If, for some reason, your code used in 'M-:' or
+'--eval' doesn't work as result of this change, either modify the code
+to work with lexical binding, or wrap it in an extra level of 'eval'.
+For example, --eval "FORM" becomes --eval "(eval 'FORM)" (note the extra
+quote in 'FORM).
 
 ---
 ** The new user option 'tooltip-resize-echo-area' avoids truncating
@@ -489,6 +504,7 @@ matches strings where the pattern appears as a subsequence. 
 Put
 simply, makes "foo" complete to both "barfoo" and "frodo".  Add 'flex'
 to 'completion-styles' or 'completion-category-overrides' to use it.
 
+---
 ** The 'completion-common-part' face is now visible by default.
 
 +++
@@ -555,6 +571,7 @@ mode, they are described in the manual "(emacs) Display".
 ** New user option 'xref-file-name-display' controls the display of
 file names in xref buffers.
 
+---
 ** New user option 'byte-count-to-string-function'.
 It is used for displaying file sizes and disk space in some cases.
 
@@ -586,6 +603,7 @@ The HIST argument of 'read-from-minibuffer' now works 
correctly with
 buffer-local variables.  This means that different buffers can have
 their own separated input history list if desired.
 
++++
 ** 'backup-by-copying-when-privileged-mismatch' applies to file gid, too.
 In addition to checking the file owner uid, Emacs also checks that the
 group gid is not greater than 'backup-by-copying-when-privileged-mismatch';
@@ -739,9 +757,11 @@ non-nil.
 what they're named, and the 'battery-linux-sysfs-regexp' variable has
 been removed.
 
+---
 ** The 'list-processes' command now includes port numbers in the
 network connection information (in addition to the host name).
 
+---
 ** The 'cl' package is now officially deprecated in favor of 'cl-lib'.
 
 ---
@@ -750,51 +770,55 @@ network connection information (in addition to the host 
name).
 *** When called interactively with a prefix arg 'C-u', 'desktop-read'
 now prompts the user for the directory containing the desktop file.
 
-+++
 ** display-line-numbers-mode
 
++++
 *** New faces 'line-number-major-tick' and 'line-number-minor-tick',
 and user options 'display-line-numbers-major-tick' and
 'display-line-numbers-minor-tick' can be used to highlight the line
 numbers of lines multiple of certain numbers.
 
++++
 *** New variable 'display-line-numbers-offset', when non-zero, adds
 an offset to absolute line numbers.
 
-+++
 ** winner
 
++++
 *** A new user option, 'winner-boring-buffers-regexp', has been added.
 
 ** table
 
-*** 'table-generate-source' and friends now support outputting wiki and
-mediawiki format tables.
++++
+*** 'table-generate-source' now supports wiki and mediawiki.
+This command can now output wiki and mediawiki format tables.
 
----
 ** telnet-mode
 
+---
 *** Reverting a buffer in 'telnet-mode' will restart a closed connection.
 
 ** goto-addr
 
+---
 *** A way to more conveniently specify what URI address schemes should
 be ignored has been added via the 'goto-address-uri-schemes-ignored'
 variable.
 
-+++
 ** tex-mode
 
++++
 *** 'latex-noindent-commands' controls indentation of certain commands.
 You can use this new user option to control indentation of arguments of
 \emph, \footnote, and similar commands.
 
 ** byte compiler
 
++++
 *** 'byte-compile-dynamic' is now obsolete.
 This is because on the one hand it suffers from misbehavior in corner
-cases that have plagued it for years, and on the other experiments indicated
-that it doesn't bring any measurable benefit.
+cases that have plagued it for years, and on the other hand experience
+indicates that it doesn't bring any measurable benefit.
 
 ---
 *** The 'g' keystroke in "*Compile-Log*" buffers has been bound to a
@@ -832,15 +856,19 @@ its functions.
 
 ** doc-view.el
 
+---
 *** New commands 'doc-view-presentation' and 'doc-view-fit-window-to-page'.
 
+---
 *** Added support for password-protected PDF files.
 
+---
 *** A new user option 'doc-view-pdftotext-program-args' has been added
 to allow controlling how the conversion to text is done.
 
 ** Ido
 
+---
 *** New user option 'ido-big-directories' to mark directories whose
 names match certain regular expressions as big.  Ido won't attempt to
 list the contents of such directories when completing file names.
@@ -871,6 +899,7 @@ at the end of the active minibuffer.
 *** Some commands that previously used 'read-char-choice' now read
 a character using the minibuffer by 'read-char-from-minibuffer'.
 
+---
 ** map.el
 
 *** Now also understands plists.
@@ -882,6 +911,7 @@ a character using the minibuffer by 
'read-char-from-minibuffer'.
 +++
 *** The 'type' arg can be a list '(hash-table :key1 VAL1 :key2 VAL2 ...)'.
 
+---
 ** seq.el
 New convenience functions 'seq-first' and 'seq-rest' give easy access
 to respectively the first and all but the first elements of sequences.
@@ -941,13 +971,17 @@ functions 'windmove-coord-add', 
'windmove-constrain-to-range',
 'windmove-constrain-loc-for-movement', 'windmove-wrap-loc-for-movement',
 'windmove-reference-loc' and 'windmove-other-window-loc'.
 
+---
 ** Octave mode
 The mode is automatically enabled in files that start with the
 'function' keyword.
 
 ** project.el
 
++++
 *** New commands 'project-search' and 'project-query-replace-regexp'.
+
+---
 *** New user option 'project-read-file-name-function'.
 
 ** Etags
@@ -1103,9 +1137,11 @@ for a revision.
 *** 'C-u C-x v D' ('vc-root-version-diff') prompts for two revisions
 and compares their entire trees.
 
+---
 *** New user option 'vc-hg-revert-switches'.
 It specifies switches to pass to Hg's 'revert' command.
 
+---
 *** 'C-x v M D' ('vc-diff-mergebase') and 'C-x v M L' ('vc-log-mergebase')
 print diffs and logs between the merge base (common ancestor) of two
 given revisions.
@@ -1475,9 +1511,9 @@ strings and report all the spelling mistakes.
 +++
 *** New minor mode Fido mode.
 This mode is based on Icomplete, and its name stands for "Fake Ido".
-The point of this mode is to be an 'ido-mode' workalike, but provide
-most of the functionality present in Icomplete that is not in
-'ido-mode', while being much more compatible with all of Emacs's
+The point of this mode is to be an 'ido-mode' workalike, providing
+most of the functionality present in 'ido-mode' that is not in
+Icomplete, which is much more compatible with all of Emacs's
 completion facilities.
 
 ** Ecomplete
@@ -1809,7 +1845,6 @@ keyboard macros.
 'isearch-yank-symbol-or-char'.  'isearch-del-char' is now bound to
 'C-M-d'.
 
-+++
 'M-s h l' invokes 'highlight-lines-matching-regexp' using the search
 string to highlight lines matching the search string.  This is similar
 to the existing binding 'M-s h r' ('highlight-regexp') that highlights
@@ -1964,6 +1999,7 @@ This is useful for games where lower scores are better, 
like time-based games.
 *** Completing file names in the minibuffer via 'C-TAB' now uses the
 styles as configured by the user option 'completion-styles'.
 
++++
 ** New macros 'thunk-let' and 'thunk-let*'.
 These macros are analogue to 'let' and 'let*', but create bindings that
 are evaluated lazily.
@@ -2187,8 +2223,9 @@ are formatted as MIME digests.
 *** 'message-forward-included-headers' has changed its default to
 exclude most headers when forwarding.
 
+---
 *** 'mml-secure-openpgp-sign-with-sender' sets also "gpg --sender".
-When 'mml-secure-openpgp-sign-with-sender' is non-nil message sender's
+When 'mml-secure-openpgp-sign-with-sender' is non-nil, message sender's
 email address (in addition to its old behavior) will also be used to
 set gpg's "--sender email@domain" option.
 
@@ -2323,7 +2360,16 @@ With 'or' and 'not', it can be used to compose 
character-matching
 expressions from simpler parts.
 
 +++
-*** 'not' argument can now be a character or single-char string.
+*** 'not' now accepts more argument types.
+The argument can now also be a character, a single-character string,
+an 'intersection' form, or an 'or' form whose arguments each match a
+single character.
+
++++
+*** Nested 'or' forms of strings guarantee a longest match.
+For example, '(or (or "IN" "OUT") (or "INPUT" "OUTPUT"))' now matches
+the whole string "INPUT" if present, not just "IN".  Previously, this
+was only guaranteed inside a single 'or' form of string literals.
 
 ** Frames
 
@@ -2631,6 +2677,7 @@ overrides all system and Emacs-provided defaults.  To get 
the old
 method back, set 'mailcap-prefer-mailcap-viewers' to nil.
 
 ** MH-E
+
 +++
 *** The hook 'mh-show-mode-hook' is now called before the message is inserted.
 Functions that want to affect the message text (for example, to change
@@ -3075,6 +3122,7 @@ with POSIX.1-2017.
 'decoded-time-weekday', 'decoded-time-dst' and 'decoded-time-zone'
 accessors can be used.
 
++++
 *** The new functions 'date-days-in-month' (which will say how many
 days there are in a month in a specific year), 'date-ordinal-to-time'
 (that computes the date of an ordinal day), 'decoded-time-add' (for
@@ -3134,6 +3182,7 @@ throughput of reading from sub-processes that produces 
vast
 ** The new user option 'quit-window-hook' is now run first when
 executing the 'quit-window' command.
 
++++
 ** The user options 'help-enable-completion-auto-load',
 'help-enable-auto-load' and 'vhdl-project-auto-load', as well as the
 function 'vhdl-auto-load-project' have been renamed to have "autoload"
@@ -3352,6 +3401,14 @@ backslash, although there is no harm in doing so to make 
the code
 easier to edit with an older Emacs version.
 
 ---
+** New symbolic accessor functions for a parse state list.
+The new accessor functions 'ppss-depth', 'ppss-list-start',
+'ppss-last-sexp-start', 'ppss-string-terminator', 'comment-depth',
+'quoted-p', 'comment-style', 'comment-or-string-start', 'open-parens',
+and 'two-character-syntax' can be used on the list value returned by
+'parse-partial-sexp' and 'syntax-ppss'.
+
+---
 ** The 'server-name' and 'server-socket-dir' variables are set when a
 socket has been passed to Emacs.
 
@@ -3606,15 +3663,18 @@ signal 'user-error' if there is no buffer to switch to.
 ** Battery status is now supported in all Cygwin builds.
 Previously it was supported only in the Cygwin-w32 build.
 
+---
 ** Emacs now handles key combinations involving the macOS "command"
 and "option" modifier keys more correctly.
 
++++
 ** MacOS modifier key behavior is now more adjustable.
 The behavior of the macOS "Option", "Command", "Control" and
 "Function" keys can now be specified separately for use with
 ordinary keys, function keys and mouse clicks.  This allows using them
 in their standard macOS way for composing characters.
 
++++
 ** The special handling of 'frame-title-format' on NS where setting it
 to t would enable the macOS proxy icon has been replaced with a
 separate variable, 'ns-use-proxy-icon'.  'frame-title-format' will now
@@ -3665,6 +3725,7 @@ modifier keys in line with Apples guidelines.  This makes 
the drag and
 drop behavior more consistent, as previously the sending application
 was able to 'set' modifiers without the knowledge of the user.
 
+---
 ** On NS multicolor font display is enabled again since it is also
 implemented in Emacs on free operating systems via Cairo drawing.
 
diff --git a/etc/TODO b/etc/TODO
index 0a06484..20262a7 100644
--- a/etc/TODO
+++ b/etc/TODO
@@ -244,6 +244,23 @@ populate composition-function-table with those rules.  See
 composite.el for examples of this, and also grep lisp/language/*.el
 for references to composition-function-table.
 
+One problem with character compositions that will need to be solved is
+that composition-function-table, the char-table which holds the
+composition rules, is a global variable, whereas use of ligatures is
+inherently specific to buffer-local stuff like the major mode and the
+script or language in use.  So there should be a buffer-local variable
+to augment/customize/override the global composition rules.
+
+Another problem is that ligatures are frequently composed of ASCII
+characters, and some of those ASCII characters are present in the mode
+line, for example "--".  Since displaying a ligature instead of 2
+separate '-' characters on a mode line is not right, there should be a
+way of preventing the ligation from happening.  One possibility is to
+have a ZWNJ character separate these ASCII characters; another
+possibility is to introduce a special text property that prevents
+character composition, and place that property on the relevant parts
+of the mode line.
+
 The prettify-symbols-mode should be deprecated once ligature support
 is in place.
 
@@ -267,6 +284,60 @@ should invoke the 'shape' method.  'hbfont_shape' should 
be extended
 to pass to 'hb_shape_full' the required array of features, as
 mentioned in the above HarfBuzz discussion.
 
+** Better support for displaying Emoji
+
+Emacs is capable of displaying Emoji and some of the Emoji sequences,
+provided that its fontsets are configured with a suitable font.  To
+make this easier out of the box, the following should be done:
+
+*** Populate composition-function-table with Emoji rules
+
+The Unicode Character Database (UCD) includes several data files that
+define the valid Emoji sequences.  These files should be imported into
+the Emacs tree, and should be converted by some script at Emacs build
+time to Lisp code that populates composition-function-table with the
+corresponding composition rules.
+
+*** Augment the default fontsets with Emoji-capable fonts
+
+The default fontsets set up by fontest.el should include known free
+fonts that provide good support for displaying Emoji sequences.  In
+addition, the rule that the default face's font is used for symbol and
+punctuation characters, disregarding the fontsets, should be modified
+to exempt Emoji from this rule (since Emoji characters belong to the
+'symbol' script in Emacs), so that use-default-font-for-symbols would
+not have to be tweaked to have Emoji display by default with a capable
+font.
+
+*** Consider changing the default display of Variation Selectors
+
+Emacs by default displays the Variation Selector (VS) codepoints not
+composed with base characters as hex codes in a box.  The Unicode FAQ
+says that if variation sequences cannot be supported, the VS
+characters should not be shown, leaving just the base character of the
+sequence visible.  This could be handled via glyphless-char-display,
+by changing the entries for VS codepoints to 'zero-width'.  Or we
+could display them as a thin 1-pixel space, as we do with format
+control characters, by using 'thin-space' there.
+
+*** Special face for displaying text presentation of Emoji
+
+Emoji-capable fonts support Emoji sequences with the U+FE0F VARIATION
+SELECTOR-16 (VS16) for emoji-style display, but usually don't support
+the U+FE0F VARIATION SELECTOR-15 (VS15) for text-style display.  There
+are other fonts which support the text-style sequences, but not
+emoji-style.  Since Emacs selects a font based on a single character,
+it cannot choose 2 different fonts for displaying both styles of the
+same base character.  To display both styles in the same buffer, one
+could use a special face, placing a 'face' text property on portions
+of the text.  This special face could specify a specific font known to
+support text-style Emoji sequences.  Emacs could have such a face
+built-in.
+
+See the discussion of bug#39799 for more details about this task.
+Another relevant resource is the Unicode Technical Standard #51
+"Unicode Emoji" (http://www.unicode.org/reports/tr51/).
+
 ** Extend text-properties and overlays
 *** Several text-property planes
 This would get us rid of font-lock-face property (and I'd be happy to
diff --git a/etc/compilation.txt b/etc/compilation.txt
index a597216..ebce6a1 100644
--- a/etc/compilation.txt
+++ b/etc/compilation.txt
@@ -341,6 +341,8 @@ makepp: bla bla `/foo/bar.c' and `/foo/bar.h'
 symbol: maven
 
 FooBar.java:[111,53] no interface expected here
+[ERROR] /Users/cinsk/hello.java:[651,96] ';' expected
+[WARNING] /foo/bar/Test.java:[27,43] unchecked conversion
 
 
 * MIPS lint; looks good for SunPro lint also
@@ -382,6 +384,22 @@ symbol: watcom
 ..\src\ctrl\lister.c(120): Warning! W201: Unreachable code
 
 
+* OMake
+
+symbol: omake
+
+When using in -p or -P mode, OMake will detect changes to files and
+report critical build errors indented by 6 spaces.
+
+*** omake: file alpha.c changed
+*** omake: targets were not rebuilt because of errors:
+   alpha.o
+      depends on: alpha.c
+      - build . alpha.o
+      + cc -I. -c -o alpha.o alpha.c
+      alpha.c:5:15: error: expected ';' after expression
+
+
 * Oracle pro*c
 
 symbol: oracle
diff --git a/etc/srecode/el.srt b/etc/srecode/el.srt
index 3473fb6..7d5c64c 100644
--- a/etc/srecode/el.srt
+++ b/etc/srecode/el.srt
@@ -102,7 +102,7 @@ $<MODEFCN:declaration:function$
        comment-start ";;"
        comment-end "")
   (set (make-local-variable 'comment-start-skip)
-       "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\);+ *")
+       "\\(\\(^\\|[^\\\n]\\)\\(\\\\\\\\\\)*\\);+ *")
   (set-syntax-table $MODESYM$-mode-syntax-table)
   (use-local-map $MODESYM$-mode-map)
   (set (make-local-variable 'font-lock-defaults)
diff --git a/etc/themes/deeper-blue-theme.el b/etc/themes/deeper-blue-theme.el
index 8dfe9e3..58c22e4 100644
--- a/etc/themes/deeper-blue-theme.el
+++ b/etc/themes/deeper-blue-theme.el
@@ -68,7 +68,6 @@
    `(font-lock-comment-face ((,class (:foreground "gray50"))))
    `(font-lock-constant-face ((,class (:foreground "DarkOliveGreen3"))))
    `(font-lock-doc-face ((,class (:foreground "moccasin"))))
-   `(font-lock-doc-string-face ((,class (:foreground "moccasin"))))
    `(font-lock-function-name-face ((,class (:foreground "goldenrod"))))
    `(font-lock-keyword-face ((,class (:foreground "DeepSkyBlue1"))))
    `(font-lock-preprocessor-face ((,class (:foreground "gold"))))
diff --git a/etc/themes/leuven-theme.el b/etc/themes/leuven-theme.el
index 4d8568b..0d25ab9 100644
--- a/etc/themes/leuven-theme.el
+++ b/etc/themes/leuven-theme.el
@@ -130,7 +130,6 @@ Semantic, and Ansi-Color faces are included -- and much 
more...")
    `(font-lock-comment-face ((,class (:slant italic :foreground "#8D8D84")))) 
; #696969
    `(font-lock-constant-face ((,class (:foreground "#D0372D"))))
    `(font-lock-doc-face ((,class (:foreground "#036A07"))))
-   ;; `(font-lock-doc-string-face ((,class (:foreground "#008000")))) ; XEmacs 
only, but is used for HTML exports from org2html (and not interactively)
    `(font-lock-function-name-face ((,class (:weight normal :foreground 
"#006699"))))
    `(font-lock-keyword-face ((,class (:bold nil :foreground "#0000FF")))) ; 
#3654DC
    `(font-lock-preprocessor-face ((,class (:foreground "#808080"))))
diff --git a/etc/themes/manoj-dark-theme.el b/etc/themes/manoj-dark-theme.el
index 045d446..3376066 100644
--- a/etc/themes/manoj-dark-theme.el
+++ b/etc/themes/manoj-dark-theme.el
@@ -88,7 +88,6 @@ jarring angry fruit salad look to reduce eye fatigue.")
  '(font-lock-comment-face       ((t (:italic t :slant oblique :foreground 
"chocolate1"))))
  '(font-lock-comment-delimiter-face ((t (:foreground "Salmon"))))
  '(font-lock-doc-face           ((t (:italic t :slant oblique :foreground 
"LightCoral"))))
- '(font-lock-doc-string-face    ((t (:foreground "Plum"))))
  '(font-lock-warning-face ((t (:bold t :foreground "Pink" :weight bold))))
 
  '(cperl-array-face ((t (:foreground "LawnGreen" :background "Black" :bold 
t))))
diff --git a/etc/themes/whiteboard-theme.el b/etc/themes/whiteboard-theme.el
index 853479f..be6c67e 100644
--- a/etc/themes/whiteboard-theme.el
+++ b/etc/themes/whiteboard-theme.el
@@ -48,7 +48,6 @@
    `(font-lock-comment-face ((,class (:foreground "gray50"))))
    `(font-lock-constant-face ((,class (:foreground "DarkOliveGreen4"))))
    `(font-lock-doc-face ((,class (:foreground "peru"))))
-   `(font-lock-doc-string-face ((,class (:foreground "peru"))))
    `(font-lock-function-name-face ((,class (:foreground "goldenrod3"))))
    `(font-lock-keyword-face ((,class (:foreground "DodgerBlue2"))))
    `(font-lock-preprocessor-face ((,class (:foreground "gold3"))))
diff --git a/lib-src/etags.c b/lib-src/etags.c
index 174c33a..eee2c59 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -124,6 +124,7 @@ University of California, as described above. */
 #include <binary-io.h>
 #include <intprops.h>
 #include <unlocked-io.h>
+#include <verify.h>
 #include <c-ctype.h>
 #include <c-strcase.h>
 
@@ -7310,6 +7311,8 @@ static void *
 xnmalloc (ptrdiff_t nitems, ptrdiff_t item_size)
 {
   ptrdiff_t nbytes;
+  assume (0 <= nitems);
+  assume (0 < item_size);
   if (INT_MULTIPLY_WRAPV (nitems, item_size, &nbytes))
     memory_full ();
   return xmalloc (nbytes);
@@ -7319,6 +7322,8 @@ static void *
 xnrealloc (void *pa, ptrdiff_t nitems, ptrdiff_t item_size)
 {
   ptrdiff_t nbytes;
+  assume (0 <= nitems);
+  assume (0 < item_size);
   if (INT_MULTIPLY_WRAPV (nitems, item_size, &nbytes) || SIZE_MAX < nbytes)
     memory_full ();
   void *result = realloc (pa, nbytes);
diff --git a/lib/careadlinkat.h b/lib/careadlinkat.h
index 584cfe9..a4a37b2 100644
--- a/lib/careadlinkat.h
+++ b/lib/careadlinkat.h
@@ -47,7 +47,7 @@ struct allocator;
    set errno.  */
 
 char *careadlinkat (int fd, char const *filename,
-                    char *buffer, size_t buffer_size,
+                    char *restrict buffer, size_t buffer_size,
                     struct allocator const *alloc,
                     ssize_t (*preadlinkat) (int, char const *,
                                             char *, size_t));
diff --git a/lib/count-leading-zeros.h b/lib/count-leading-zeros.h
index b548754..7e88c8c 100644
--- a/lib/count-leading-zeros.h
+++ b/lib/count-leading-zeros.h
@@ -30,6 +30,10 @@ _GL_INLINE_HEADER_BEGIN
 # define COUNT_LEADING_ZEROS_INLINE _GL_INLINE
 #endif
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Assuming the GCC builtin is BUILTIN and the MSC builtin is MSC_BUILTIN,
    expand to code that computes the number of leading zeros of the local
    variable 'x' of type TYPE (an unsigned integer type) and return it
@@ -108,6 +112,10 @@ count_leading_zeros_ll (unsigned long long int x)
                        unsigned long long int);
 }
 
+#ifdef __cplusplus
+}
+#endif
+
 _GL_INLINE_HEADER_END
 
 #endif /* COUNT_LEADING_ZEROS_H */
diff --git a/lib/count-one-bits.h b/lib/count-one-bits.h
index 78770e4..eea56d8 100644
--- a/lib/count-one-bits.h
+++ b/lib/count-one-bits.h
@@ -30,6 +30,10 @@ _GL_INLINE_HEADER_BEGIN
 # define COUNT_ONE_BITS_INLINE _GL_INLINE
 #endif
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Expand to code that computes the number of 1-bits of the local
    variable 'x' of type TYPE (an unsigned integer type) and return it
    from the current function.  */
@@ -129,6 +133,10 @@ count_one_bits_ll (unsigned long long int x)
   COUNT_ONE_BITS (__builtin_popcountll, __popcnt64, unsigned long long int);
 }
 
+#ifdef __cplusplus
+}
+#endif
+
 _GL_INLINE_HEADER_END
 
 #endif /* COUNT_ONE_BITS_H */
diff --git a/lib/count-trailing-zeros.h b/lib/count-trailing-zeros.h
index 2169f62..1eb5fb9 100644
--- a/lib/count-trailing-zeros.h
+++ b/lib/count-trailing-zeros.h
@@ -30,6 +30,10 @@ _GL_INLINE_HEADER_BEGIN
 # define COUNT_TRAILING_ZEROS_INLINE _GL_INLINE
 #endif
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Assuming the GCC builtin is BUILTIN and the MSC builtin is MSC_BUILTIN,
    expand to code that computes the number of trailing zeros of the local
    variable 'x' of type TYPE (an unsigned integer type) and return it
@@ -100,6 +104,10 @@ count_trailing_zeros_ll (unsigned long long int x)
                         unsigned long long int);
 }
 
+#ifdef __cplusplus
+}
+#endif
+
 _GL_INLINE_HEADER_END
 
 #endif
diff --git a/lib/fchmodat.c b/lib/fchmodat.c
new file mode 100644
index 0000000..8950168
--- /dev/null
+++ b/lib/fchmodat.c
@@ -0,0 +1,144 @@
+/* Change the protections of file relative to an open directory.
+   Copyright (C) 2006, 2009-2020 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+
+/* written by Jim Meyering and Paul Eggert */
+
+/* If the user's config.h happens to include <sys/stat.h>, let it include only
+   the system's <sys/stat.h> here, so that orig_fchmodat doesn't recurse to
+   rpl_fchmodat.  */
+#define __need_system_sys_stat_h
+#include <config.h>
+
+/* Specification.  */
+#include <sys/stat.h>
+#undef __need_system_sys_stat_h
+
+#if HAVE_FCHMODAT
+static int
+orig_fchmodat (int dir, char const *file, mode_t mode, int flags)
+{
+  return fchmodat (dir, file, mode, flags);
+}
+#endif
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#ifdef __osf__
+/* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc
+   eliminates this include because of the preliminary #include <sys/stat.h>
+   above.  */
+# include "sys/stat.h"
+#else
+# include <sys/stat.h>
+#endif
+
+#include <intprops.h>
+
+/* Invoke chmod or lchmod on FILE, using mode MODE, in the directory
+   open on descriptor FD.  If possible, do it without changing the
+   working directory.  Otherwise, resort to using save_cwd/fchdir,
+   then (chmod|lchmod)/restore_cwd.  If either the save_cwd or the
+   restore_cwd fails, then give a diagnostic and exit nonzero.
+   Note that an attempt to use a FLAG value of AT_SYMLINK_NOFOLLOW
+   on a system without lchmod support causes this function to fail.  */
+
+#if HAVE_FCHMODAT
+int
+fchmodat (int dir, char const *file, mode_t mode, int flags)
+{
+# if NEED_FCHMODAT_NONSYMLINK_FIX
+  if (flags == AT_SYMLINK_NOFOLLOW)
+    {
+      struct stat st;
+
+#  if defined O_PATH && defined AT_EMPTY_PATH
+      /* Open a file descriptor with O_NOFOLLOW, to make sure we don't
+         follow symbolic links, if /proc is mounted.  O_PATH is used to
+         avoid a failure if the file is not readable.
+         Cf. <https://sourceware.org/bugzilla/show_bug.cgi?id=14578>  */
+      int fd = openat (dir, file, O_PATH | O_NOFOLLOW | O_CLOEXEC);
+      if (fd < 0)
+        return fd;
+
+      /* Up to Linux 5.3 at least, when FILE refers to a symbolic link, the
+         chmod call below will change the permissions of the symbolic link
+         - which is undesired - and on many file systems (ext4, btrfs, jfs,
+         xfs, ..., but not reiserfs) fail with error EOPNOTSUPP - which is
+         misleading.  Therefore test for a symbolic link explicitly.
+         Use fstatat because fstat does not work on O_PATH descriptors
+         before Linux 3.6.  */
+      if (fstatat (fd, "", &st, AT_EMPTY_PATH) != 0)
+        {
+          int stat_errno = errno;
+          close (fd);
+          errno = stat_errno;
+          return -1;
+        }
+      if (S_ISLNK (st.st_mode))
+        {
+          close (fd);
+          errno = EOPNOTSUPP;
+          return -1;
+        }
+
+#   if defined __linux__ || defined __ANDROID__
+      static char const fmt[] = "/proc/self/fd/%d";
+      char buf[sizeof fmt - sizeof "%d" + INT_BUFSIZE_BOUND (int)];
+      sprintf (buf, fmt, fd);
+      int chmod_result = chmod (buf, mode);
+      int chmod_errno = errno;
+      close (fd);
+      if (chmod_result == 0)
+        return chmod_result;
+      if (chmod_errno != ENOENT)
+        {
+          errno = chmod_errno;
+          return chmod_result;
+        }
+#   endif
+      /* /proc is not mounted or would not work as in GNU/Linux.  */
+
+#  else
+      int fstatat_result = fstatat (dir, file, &st, AT_SYMLINK_NOFOLLOW);
+      if (fstatat_result != 0)
+        return fstatat_result;
+      if (S_ISLNK (st.st_mode))
+        {
+          errno = EOPNOTSUPP;
+          return -1;
+        }
+#  endif
+
+      /* Fall back on orig_fchmodat with no flags, despite a possible race.  */
+      flags = 0;
+    }
+# endif
+
+  return orig_fchmodat (dir, file, mode, flags);
+}
+#else
+# define AT_FUNC_NAME fchmodat
+# define AT_FUNC_F1 lchmod
+# define AT_FUNC_F2 chmod
+# define AT_FUNC_USE_F1_COND AT_SYMLINK_NOFOLLOW
+# define AT_FUNC_POST_FILE_PARAM_DECLS , mode_t mode, int flag
+# define AT_FUNC_POST_FILE_ARGS        , mode
+# include "at-func.c"
+#endif
diff --git a/lib/fcntl.in.h b/lib/fcntl.in.h
index b2e1e51..0a21c95 100644
--- a/lib/fcntl.in.h
+++ b/lib/fcntl.in.h
@@ -116,9 +116,15 @@ _GL_WARN_ON_USE (creat, "creat is not always POSIX 
compliant - "
 #  endif
 _GL_FUNCDECL_RPL (fcntl, int, (int fd, int action, ...));
 _GL_CXXALIAS_RPL (fcntl, int, (int fd, int action, ...));
+#  if !GNULIB_defined_rpl_fcntl
+#   define GNULIB_defined_rpl_fcntl 1
+#  endif
 # else
 #  if !@HAVE_FCNTL@
 _GL_FUNCDECL_SYS (fcntl, int, (int fd, int action, ...));
+#   if !GNULIB_defined_fcntl
+#    define GNULIB_defined_fcntl 1
+#   endif
 #  endif
 _GL_CXXALIAS_SYS (fcntl, int, (int fd, int action, ...));
 # endif
diff --git a/lib/futimens.c b/lib/futimens.c
new file mode 100644
index 0000000..83fb27c
--- /dev/null
+++ b/lib/futimens.c
@@ -0,0 +1,37 @@
+/* Set the access and modification time of an open fd.
+   Copyright (C) 2009-2020 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+
+/* written by Eric Blake */
+
+#include <config.h>
+
+#include <sys/stat.h>
+
+#include "utimens.h"
+
+/* Set the access and modification timestamps of FD to be
+   TIMESPEC[0] and TIMESPEC[1], respectively.
+   Fail with ENOSYS on systems without futimes (or equivalent).
+   If TIMESPEC is null, set the timestamps to the current time.
+   Return 0 on success, -1 (setting errno) on failure.  */
+int
+futimens (int fd, struct timespec const times[2])
+{
+  /* fdutimens also works around bugs in native futimens, when running
+     with glibc compiled against newer headers but on a Linux kernel
+     older than 2.6.32.  */
+  return fdutimens (fd, NULL, times);
+}
diff --git a/lib/getopt-pfx-core.h b/lib/getopt-pfx-core.h
index da0a6d0..ec545c1 100644
--- a/lib/getopt-pfx-core.h
+++ b/lib/getopt-pfx-core.h
@@ -48,6 +48,14 @@
 # define optind __GETOPT_ID (optind)
 # define optopt __GETOPT_ID (optopt)
 
+/* Work around a a problem on macOS, which declares getopt with a
+   trailing __DARWIN_ALIAS(getopt) that would expand to something like
+   __asm("_" "rpl_getopt" "$UNIX2003") were it not for the following
+   hack to suppress the macOS declaration <https://bugs.gnu.org/40205>.  */
+# ifdef __APPLE__
+#  define _GETOPT
+# endif
+
 /* The system's getopt.h may have already included getopt-core.h to
    declare the unprefixed identifiers.  Undef _GETOPT_CORE_H so that
    getopt-core.h declares them with prefixes.  */
diff --git a/lib/gnulib.mk.in b/lib/gnulib.mk.in
index 6775db0..e90d2e3 100644
--- a/lib/gnulib.mk.in
+++ b/lib/gnulib.mk.in
@@ -95,6 +95,7 @@
 #  execinfo \
 #  explicit_bzero \
 #  faccessat \
+#  fchmodat \
 #  fcntl \
 #  fcntl-h \
 #  fdopendir \
@@ -105,6 +106,7 @@
 #  fstatat \
 #  fsusage \
 #  fsync \
+#  futimens \
 #  getloadavg \
 #  getopt-gnu \
 #  gettime \
@@ -154,7 +156,7 @@
 #  timespec-sub \
 #  unlocked-io \
 #  update-copyright \
-#  utimens \
+#  utimensat \
 #  vla \
 #  warnings
 
@@ -886,7 +888,6 @@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
 REPLACE_GMTIME = @REPLACE_GMTIME@
 REPLACE_INITSTATE = @REPLACE_INITSTATE@
 REPLACE_ISATTY = @REPLACE_ISATTY@
-REPLACE_LCHMOD = @REPLACE_LCHMOD@
 REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
@@ -1083,9 +1084,11 @@ gl_GNULIB_ENABLED_dirfd = @gl_GNULIB_ENABLED_dirfd@
 gl_GNULIB_ENABLED_euidaccess = @gl_GNULIB_ENABLED_euidaccess@
 gl_GNULIB_ENABLED_getdtablesize = @gl_GNULIB_ENABLED_getdtablesize@
 gl_GNULIB_ENABLED_getgroups = @gl_GNULIB_ENABLED_getgroups@
+gl_GNULIB_ENABLED_lchmod = @gl_GNULIB_ENABLED_lchmod@
 gl_GNULIB_ENABLED_malloca = @gl_GNULIB_ENABLED_malloca@
 gl_GNULIB_ENABLED_open = @gl_GNULIB_ENABLED_open@
 gl_GNULIB_ENABLED_strtoll = @gl_GNULIB_ENABLED_strtoll@
+gl_GNULIB_ENABLED_utimens = @gl_GNULIB_ENABLED_utimens@
 gl_LIBOBJS = @gl_LIBOBJS@
 gl_LTLIBOBJS = @gl_LTLIBOBJS@
 gltests_LIBOBJS = @gltests_LIBOBJS@
@@ -1587,6 +1590,17 @@ EXTRA_libgnu_a_SOURCES += at-func.c faccessat.c
 endif
 ## end   gnulib module faccessat
 
+## begin gnulib module fchmodat
+ifeq (,$(OMIT_GNULIB_MODULE_fchmodat))
+
+
+EXTRA_DIST += at-func.c fchmodat.c
+
+EXTRA_libgnu_a_SOURCES += at-func.c fchmodat.c
+
+endif
+## end   gnulib module fchmodat
+
 ## begin gnulib module fcntl
 ifeq (,$(OMIT_GNULIB_MODULE_fcntl))
 
@@ -1721,6 +1735,17 @@ EXTRA_libgnu_a_SOURCES += fsync.c
 endif
 ## end   gnulib module fsync
 
+## begin gnulib module futimens
+ifeq (,$(OMIT_GNULIB_MODULE_futimens))
+
+
+EXTRA_DIST += futimens.c
+
+EXTRA_libgnu_a_SOURCES += futimens.c
+
+endif
+## end   gnulib module futimens
+
 ## begin gnulib module getdtablesize
 ifeq (,$(OMIT_GNULIB_MODULE_getdtablesize))
 
@@ -1937,6 +1962,19 @@ EXTRA_DIST += inttypes.in.h
 endif
 ## end   gnulib module inttypes-incomplete
 
+## begin gnulib module lchmod
+ifeq (,$(OMIT_GNULIB_MODULE_lchmod))
+
+ifneq (,$(gl_GNULIB_ENABLED_lchmod))
+
+endif
+EXTRA_DIST += lchmod.c
+
+EXTRA_libgnu_a_SOURCES += lchmod.c
+
+endif
+## end   gnulib module lchmod
+
 ## begin gnulib module libc-config
 ifeq (,$(OMIT_GNULIB_MODULE_libc-config))
 
@@ -2941,7 +2979,6 @@ sys/stat.h: sys_stat.in.h $(top_builddir)/config.status 
$(CXXDEFS_H) $(ARG_NONNU
              -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \
              -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \
              -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \
-             -e 's|@''REPLACE_LCHMOD''@|$(REPLACE_LCHMOD)|g' \
              -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \
              -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \
              -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \
@@ -3351,13 +3388,26 @@ endif
 ## begin gnulib module utimens
 ifeq (,$(OMIT_GNULIB_MODULE_utimens))
 
+ifneq (,$(gl_GNULIB_ENABLED_utimens))
 libgnu_a_SOURCES += utimens.c
 
+endif
 EXTRA_DIST += utimens.h
 
 endif
 ## end   gnulib module utimens
 
+## begin gnulib module utimensat
+ifeq (,$(OMIT_GNULIB_MODULE_utimensat))
+
+
+EXTRA_DIST += at-func.c utimensat.c
+
+EXTRA_libgnu_a_SOURCES += at-func.c utimensat.c
+
+endif
+## end   gnulib module utimensat
+
 ## begin gnulib module verify
 ifeq (,$(OMIT_GNULIB_MODULE_verify))
 
diff --git a/lib/inttypes.in.h b/lib/inttypes.in.h
index d6efc7e..9f04a6c 100644
--- a/lib/inttypes.in.h
+++ b/lib/inttypes.in.h
@@ -1093,15 +1093,19 @@ _GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - "
 #   define strtoimax rpl_strtoimax
 #  endif
 _GL_FUNCDECL_RPL (strtoimax, intmax_t,
-                  (const char *, char **, int) _GL_ARG_NONNULL ((1)));
-_GL_CXXALIAS_RPL (strtoimax, intmax_t, (const char *, char **, int));
+                  (const char *restrict, char **restrict, int)
+                  _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (strtoimax, intmax_t,
+                  (const char *restrict, char **restrict, int));
 # else
 #  if !@HAVE_DECL_STRTOIMAX@
 #   undef strtoimax
 _GL_FUNCDECL_SYS (strtoimax, intmax_t,
-                  (const char *, char **, int) _GL_ARG_NONNULL ((1)));
+                  (const char *restrict, char **restrict, int)
+                  _GL_ARG_NONNULL ((1)));
 #  endif
-_GL_CXXALIAS_SYS (strtoimax, intmax_t, (const char *, char **, int));
+_GL_CXXALIAS_SYS (strtoimax, intmax_t,
+                  (const char *restrict, char **restrict, int));
 # endif
 _GL_CXXALIASWARN (strtoimax);
 #elif defined GNULIB_POSIXCHECK
@@ -1119,15 +1123,19 @@ _GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - "
 #   define strtoumax rpl_strtoumax
 #  endif
 _GL_FUNCDECL_RPL (strtoumax, uintmax_t,
-                  (const char *, char **, int) _GL_ARG_NONNULL ((1)));
-_GL_CXXALIAS_RPL (strtoumax, uintmax_t, (const char *, char **, int));
+                  (const char *restrict, char **restrict, int)
+                  _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (strtoumax, uintmax_t,
+                  (const char *restrict, char **restrict, int));
 # else
 #  if !@HAVE_DECL_STRTOUMAX@
 #   undef strtoumax
 _GL_FUNCDECL_SYS (strtoumax, uintmax_t,
-                  (const char *, char **, int) _GL_ARG_NONNULL ((1)));
+                  (const char *restrict, char **restrict, int)
+                  _GL_ARG_NONNULL ((1)));
 #  endif
-_GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *, char **, int));
+_GL_CXXALIAS_SYS (strtoumax, uintmax_t,
+                  (const char *restrict, char **restrict, int));
 # endif
 _GL_CXXALIASWARN (strtoumax);
 #elif defined GNULIB_POSIXCHECK
diff --git a/lib/lchmod.c b/lib/lchmod.c
new file mode 100644
index 0000000..e113211
--- /dev/null
+++ b/lib/lchmod.c
@@ -0,0 +1,110 @@
+/* Implement lchmod on platforms where it does not work correctly.
+
+   Copyright 2020 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+
+/* written by Paul Eggert */
+
+#include <config.h>
+
+/* Specification.  */
+#include <sys/stat.h>
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <unistd.h>
+
+#ifdef __osf__
+/* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc
+   eliminates this include because of the preliminary #include <sys/stat.h>
+   above.  */
+# include "sys/stat.h"
+#else
+# include <sys/stat.h>
+#endif
+
+#include <intprops.h>
+
+/* Work like chmod, except when FILE is a symbolic link.
+   In that case, on systems where permissions on symbolic links are unsupported
+   (such as Linux), set errno to EOPNOTSUPP and return -1.  */
+
+int
+lchmod (char const *file, mode_t mode)
+{
+#if defined O_PATH && defined AT_EMPTY_PATH
+  /* Open a file descriptor with O_NOFOLLOW, to make sure we don't
+     follow symbolic links, if /proc is mounted.  O_PATH is used to
+     avoid a failure if the file is not readable.
+     Cf. <https://sourceware.org/bugzilla/show_bug.cgi?id=14578>  */
+  int fd = open (file, O_PATH | O_NOFOLLOW | O_CLOEXEC);
+  if (fd < 0)
+    return fd;
+
+  /* Up to Linux 5.3 at least, when FILE refers to a symbolic link, the
+     chmod call below will change the permissions of the symbolic link
+     - which is undesired - and on many file systems (ext4, btrfs, jfs,
+     xfs, ..., but not reiserfs) fail with error EOPNOTSUPP - which is
+     misleading.  Therefore test for a symbolic link explicitly.
+     Use fstatat because fstat does not work on O_PATH descriptors
+     before Linux 3.6.  */
+  struct stat st;
+  if (fstatat (fd, "", &st, AT_EMPTY_PATH) != 0)
+    {
+      int stat_errno = errno;
+      close (fd);
+      errno = stat_errno;
+      return -1;
+    }
+  if (S_ISLNK (st.st_mode))
+    {
+      close (fd);
+      errno = EOPNOTSUPP;
+      return -1;
+    }
+
+# if defined __linux__ || defined __ANDROID__
+  static char const fmt[] = "/proc/self/fd/%d";
+  char buf[sizeof fmt - sizeof "%d" + INT_BUFSIZE_BOUND (int)];
+  sprintf (buf, fmt, fd);
+  int chmod_result = chmod (buf, mode);
+  int chmod_errno = errno;
+  close (fd);
+  if (chmod_result == 0)
+    return chmod_result;
+  if (chmod_errno != ENOENT)
+    {
+      errno = chmod_errno;
+      return chmod_result;
+    }
+# endif
+  /* /proc is not mounted or would not work as in GNU/Linux.  */
+
+#elif HAVE_LSTAT
+  struct stat st;
+  int lstat_result = lstat (file, &st);
+  if (lstat_result != 0)
+    return lstat_result;
+  if (S_ISLNK (st.st_mode))
+    {
+      errno = EOPNOTSUPP;
+      return -1;
+    }
+#endif
+
+  /* Fall back on chmod, despite a possible race.  */
+  return chmod (file, mode);
+}
diff --git a/lib/md5.h b/lib/md5.h
index 239748a..3c60482 100644
--- a/lib/md5.h
+++ b/lib/md5.h
@@ -105,13 +105,15 @@ extern void __md5_process_bytes (const void *buffer, 
size_t len,
    in first 16 bytes following RESBUF.  The result is always in little
    endian byte order, so that a byte-wise output yields to the wanted
    ASCII representation of the message digest.  */
-extern void *__md5_finish_ctx (struct md5_ctx *ctx, void *resbuf) __THROW;
+extern void *__md5_finish_ctx (struct md5_ctx *ctx, void *restrict resbuf)
+     __THROW;
 
 
 /* Put result from CTX in first 16 bytes following RESBUF.  The result is
    always in little endian byte order, so that a byte-wise output yields
    to the wanted ASCII representation of the message digest.  */
-extern void *__md5_read_ctx (const struct md5_ctx *ctx, void *resbuf) __THROW;
+extern void *__md5_read_ctx (const struct md5_ctx *ctx, void *restrict resbuf)
+     __THROW;
 
 
 /* Compute MD5 message digest for LEN bytes beginning at BUFFER.  The
@@ -119,7 +121,7 @@ extern void *__md5_read_ctx (const struct md5_ctx *ctx, 
void *resbuf) __THROW;
    output yields to the wanted ASCII representation of the message
    digest.  */
 extern void *__md5_buffer (const char *buffer, size_t len,
-                           void *resblock) __THROW;
+                           void *restrict resblock) __THROW;
 
 # endif
 /* Compute MD5 message digest for bytes read from STREAM.
diff --git a/lib/open.c b/lib/open.c
index 487194f..bb180fd 100644
--- a/lib/open.c
+++ b/lib/open.c
@@ -110,7 +110,9 @@ open (const char *filename, int flags, ...)
          directories,
        - if O_WRONLY or O_RDWR is specified, open() must fail because the
          file does not contain a '.' directory.  */
-  if (flags & (O_CREAT | O_WRONLY | O_RDWR))
+  if ((flags & O_CREAT)
+      || (flags & O_ACCMODE) == O_RDWR
+      || (flags & O_ACCMODE) == O_WRONLY)
     {
       size_t len = strlen (filename);
       if (len > 0 && filename[len - 1] == '/')
diff --git a/lib/openat.h b/lib/openat.h
index 7589150..824ce56 100644
--- a/lib/openat.h
+++ b/lib/openat.h
@@ -52,19 +52,19 @@ _Noreturn void openat_save_fail (int);
    slightly more readable than it would be with
    fchownat (..., 0) or fchownat (..., AT_SYMLINK_NOFOLLOW).  */
 
-#if GNULIB_FCHOWNAT
+#if GNULIB_CHOWNAT
 
-# ifndef FCHOWNAT_INLINE
-#  define FCHOWNAT_INLINE _GL_INLINE
+# ifndef CHOWNAT_INLINE
+#  define CHOWNAT_INLINE _GL_INLINE
 # endif
 
-FCHOWNAT_INLINE int
+CHOWNAT_INLINE int
 chownat (int fd, char const *file, uid_t owner, gid_t group)
 {
   return fchownat (fd, file, owner, group, 0);
 }
 
-FCHOWNAT_INLINE int
+CHOWNAT_INLINE int
 lchownat (int fd, char const *file, uid_t owner, gid_t group)
 {
   return fchownat (fd, file, owner, group, AT_SYMLINK_NOFOLLOW);
@@ -72,19 +72,19 @@ lchownat (int fd, char const *file, uid_t owner, gid_t 
group)
 
 #endif
 
-#if GNULIB_FCHMODAT
+#if GNULIB_CHMODAT
 
-# ifndef FCHMODAT_INLINE
-#  define FCHMODAT_INLINE _GL_INLINE
+# ifndef CHMODAT_INLINE
+#  define CHMODAT_INLINE _GL_INLINE
 # endif
 
-FCHMODAT_INLINE int
+CHMODAT_INLINE int
 chmodat (int fd, char const *file, mode_t mode)
 {
   return fchmodat (fd, file, mode, 0);
 }
 
-FCHMODAT_INLINE int
+CHMODAT_INLINE int
 lchmodat (int fd, char const *file, mode_t mode)
 {
   return fchmodat (fd, file, mode, AT_SYMLINK_NOFOLLOW);
diff --git a/lib/sha1.h b/lib/sha1.h
index 2c9c2d4..b767884 100644
--- a/lib/sha1.h
+++ b/lib/sha1.h
@@ -71,20 +71,21 @@ extern void sha1_process_bytes (const void *buffer, size_t 
len,
    in first 20 bytes following RESBUF.  The result is always in little
    endian byte order, so that a byte-wise output yields to the wanted
    ASCII representation of the message digest.  */
-extern void *sha1_finish_ctx (struct sha1_ctx *ctx, void *resbuf);
+extern void *sha1_finish_ctx (struct sha1_ctx *ctx, void *restrict resbuf);
 
 
 /* Put result from CTX in first 20 bytes following RESBUF.  The result is
    always in little endian byte order, so that a byte-wise output yields
    to the wanted ASCII representation of the message digest.  */
-extern void *sha1_read_ctx (const struct sha1_ctx *ctx, void *resbuf);
+extern void *sha1_read_ctx (const struct sha1_ctx *ctx, void *restrict resbuf);
 
 
 /* Compute SHA1 message digest for LEN bytes beginning at BUFFER.  The
    result is always in little endian byte order, so that a byte-wise
    output yields to the wanted ASCII representation of the message
    digest.  */
-extern void *sha1_buffer (const char *buffer, size_t len, void *resblock);
+extern void *sha1_buffer (const char *buffer, size_t len,
+                          void *restrict resblock);
 
 # endif
 /* Compute SHA1 message digest for bytes read from STREAM.
diff --git a/lib/sha256.h b/lib/sha256.h
index 1bc61d4..750d78a 100644
--- a/lib/sha256.h
+++ b/lib/sha256.h
@@ -70,23 +70,27 @@ extern void sha256_process_bytes (const void *buffer, 
size_t len,
    in first 32 (28) bytes following RESBUF.  The result is always in little
    endian byte order, so that a byte-wise output yields to the wanted
    ASCII representation of the message digest.  */
-extern void *sha256_finish_ctx (struct sha256_ctx *ctx, void *resbuf);
-extern void *sha224_finish_ctx (struct sha256_ctx *ctx, void *resbuf);
+extern void *sha256_finish_ctx (struct sha256_ctx *ctx, void *restrict resbuf);
+extern void *sha224_finish_ctx (struct sha256_ctx *ctx, void *restrict resbuf);
 
 
 /* Put result from CTX in first 32 (28) bytes following RESBUF.  The result is
    always in little endian byte order, so that a byte-wise output yields
    to the wanted ASCII representation of the message digest.  */
-extern void *sha256_read_ctx (const struct sha256_ctx *ctx, void *resbuf);
-extern void *sha224_read_ctx (const struct sha256_ctx *ctx, void *resbuf);
+extern void *sha256_read_ctx (const struct sha256_ctx *ctx,
+                              void *restrict resbuf);
+extern void *sha224_read_ctx (const struct sha256_ctx *ctx,
+                              void *restrict resbuf);
 
 
-/* Compute SHA256 (SHA224) message digest for LEN bytes beginning at BUFFER.  
The
-   result is always in little endian byte order, so that a byte-wise
+/* Compute SHA256 (SHA224) message digest for LEN bytes beginning at BUFFER.
+   The result is always in little endian byte order, so that a byte-wise
    output yields to the wanted ASCII representation of the message
    digest.  */
-extern void *sha256_buffer (const char *buffer, size_t len, void *resblock);
-extern void *sha224_buffer (const char *buffer, size_t len, void *resblock);
+extern void *sha256_buffer (const char *buffer, size_t len,
+                            void *restrict resblock);
+extern void *sha224_buffer (const char *buffer, size_t len,
+                            void *restrict resblock);
 
 # endif
 /* Compute SHA256 (SHA224) message digest for bytes read from STREAM.
diff --git a/lib/sha512.h b/lib/sha512.h
index aaf35a5..21c2f58 100644
--- a/lib/sha512.h
+++ b/lib/sha512.h
@@ -70,8 +70,8 @@ extern void sha512_process_bytes (const void *buffer, size_t 
len,
    in first 64 (48) bytes following RESBUF.  The result is always in little
    endian byte order, so that a byte-wise output yields to the wanted
    ASCII representation of the message digest.  */
-extern void *sha512_finish_ctx (struct sha512_ctx *ctx, void *resbuf);
-extern void *sha384_finish_ctx (struct sha512_ctx *ctx, void *resbuf);
+extern void *sha512_finish_ctx (struct sha512_ctx *ctx, void *restrict resbuf);
+extern void *sha384_finish_ctx (struct sha512_ctx *ctx, void *restrict resbuf);
 
 
 /* Put result from CTX in first 64 (48) bytes following RESBUF.  The result is
@@ -80,16 +80,20 @@ extern void *sha384_finish_ctx (struct sha512_ctx *ctx, 
void *resbuf);
 
    IMPORTANT: On some systems it is required that RESBUF is correctly
    aligned for a 32 bits value.  */
-extern void *sha512_read_ctx (const struct sha512_ctx *ctx, void *resbuf);
-extern void *sha384_read_ctx (const struct sha512_ctx *ctx, void *resbuf);
+extern void *sha512_read_ctx (const struct sha512_ctx *ctx,
+                              void *restrict resbuf);
+extern void *sha384_read_ctx (const struct sha512_ctx *ctx,
+                              void *restrict resbuf);
 
 
-/* Compute SHA512 (SHA384) message digest for LEN bytes beginning at BUFFER.  
The
-   result is always in little endian byte order, so that a byte-wise
+/* Compute SHA512 (SHA384) message digest for LEN bytes beginning at BUFFER.
+   The result is always in little endian byte order, so that a byte-wise
    output yields to the wanted ASCII representation of the message
    digest.  */
-extern void *sha512_buffer (const char *buffer, size_t len, void *resblock);
-extern void *sha384_buffer (const char *buffer, size_t len, void *resblock);
+extern void *sha512_buffer (const char *buffer, size_t len,
+                            void *restrict resblock);
+extern void *sha384_buffer (const char *buffer, size_t len,
+                            void *restrict resblock);
 
 # endif
 /* Compute SHA512 (SHA384) message digest for bytes read from STREAM.
diff --git a/lib/signal.in.h b/lib/signal.in.h
index 9fe9f60..c94b053 100644
--- a/lib/signal.in.h
+++ b/lib/signal.in.h
@@ -133,16 +133,24 @@ typedef void (*sighandler_t) (int);
 #   define pthread_sigmask rpl_pthread_sigmask
 #  endif
 _GL_FUNCDECL_RPL (pthread_sigmask, int,
-                  (int how, const sigset_t *new_mask, sigset_t *old_mask));
+                  (int how,
+                   const sigset_t *restrict new_mask,
+                   sigset_t *restrict old_mask));
 _GL_CXXALIAS_RPL (pthread_sigmask, int,
-                  (int how, const sigset_t *new_mask, sigset_t *old_mask));
+                  (int how,
+                   const sigset_t *restrict new_mask,
+                   sigset_t *restrict old_mask));
 # else
 #  if !(@HAVE_PTHREAD_SIGMASK@ || defined pthread_sigmask)
 _GL_FUNCDECL_SYS (pthread_sigmask, int,
-                  (int how, const sigset_t *new_mask, sigset_t *old_mask));
+                  (int how,
+                   const sigset_t *restrict new_mask,
+                   sigset_t *restrict old_mask));
 #  endif
 _GL_CXXALIAS_SYS (pthread_sigmask, int,
-                  (int how, const sigset_t *new_mask, sigset_t *old_mask));
+                  (int how,
+                   const sigset_t *restrict new_mask,
+                   sigset_t *restrict old_mask));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (pthread_sigmask);
@@ -295,10 +303,14 @@ _GL_CXXALIASWARN (sigpending);
 #  define SIG_SETMASK 1  /* blocked_set = *set; */
 #  define SIG_UNBLOCK 2  /* blocked_set = blocked_set & ~*set; */
 _GL_FUNCDECL_SYS (sigprocmask, int,
-                  (int operation, const sigset_t *set, sigset_t *old_set));
+                  (int operation,
+                   const sigset_t *restrict set,
+                   sigset_t *restrict old_set));
 # endif
 _GL_CXXALIAS_SYS (sigprocmask, int,
-                  (int operation, const sigset_t *set, sigset_t *old_set));
+                  (int operation,
+                   const sigset_t *restrict set,
+                   sigset_t *restrict old_set));
 _GL_CXXALIASWARN (sigprocmask);
 
 /* Install the handler FUNC for signal SIG, and return the previous
diff --git a/lib/stdio.in.h b/lib/stdio.in.h
index ebcbfaf..4a95f32 100644
--- a/lib/stdio.in.h
+++ b/lib/stdio.in.h
@@ -171,17 +171,17 @@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define dprintf rpl_dprintf
 #  endif
-_GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *format, ...)
+_GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *restrict format, ...)
                                 _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
                                 _GL_ARG_NONNULL ((2)));
-_GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *format, ...));
+_GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *restrict format, ...));
 # else
 #  if !@HAVE_DPRINTF@
-_GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *format, ...)
+_GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *restrict format, ...)
                                 _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
                                 _GL_ARG_NONNULL ((2)));
 #  endif
-_GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *format, ...));
+_GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *restrict format, ...));
 # endif
 _GL_CXXALIASWARN (dprintf);
 #elif defined GNULIB_POSIXCHECK
@@ -281,11 +281,14 @@ _GL_CXXALIASWARN (fgetc);
 #   undef fgets
 #   define fgets rpl_fgets
 #  endif
-_GL_FUNCDECL_RPL (fgets, char *, (char *s, int n, FILE *stream)
-                                 _GL_ARG_NONNULL ((1, 3)));
-_GL_CXXALIAS_RPL (fgets, char *, (char *s, int n, FILE *stream));
+_GL_FUNCDECL_RPL (fgets, char *,
+                  (char *restrict s, int n, FILE *restrict stream)
+                  _GL_ARG_NONNULL ((1, 3)));
+_GL_CXXALIAS_RPL (fgets, char *,
+                  (char *restrict s, int n, FILE *restrict stream));
 # else
-_GL_CXXALIAS_SYS (fgets, char *, (char *s, int n, FILE *stream));
+_GL_CXXALIAS_SYS (fgets, char *,
+                  (char *restrict s, int n, FILE *restrict stream));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (fgets);
@@ -298,11 +301,14 @@ _GL_CXXALIASWARN (fgets);
 #   undef fopen
 #   define fopen rpl_fopen
 #  endif
-_GL_FUNCDECL_RPL (fopen, FILE *, (const char *filename, const char *mode)
-                                 _GL_ARG_NONNULL ((1, 2)));
-_GL_CXXALIAS_RPL (fopen, FILE *, (const char *filename, const char *mode));
+_GL_FUNCDECL_RPL (fopen, FILE *,
+                  (const char *restrict filename, const char *restrict mode)
+                  _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (fopen, FILE *,
+                  (const char *restrict filename, const char *restrict mode));
 # else
-_GL_CXXALIAS_SYS (fopen, FILE *, (const char *filename, const char *mode));
+_GL_CXXALIAS_SYS (fopen, FILE *,
+                  (const char *restrict filename, const char *restrict mode));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (fopen);
@@ -322,17 +328,21 @@ _GL_WARN_ON_USE (fopen, "fopen on native Windows 
platforms is not POSIX complian
 #  endif
 #  define GNULIB_overrides_fprintf 1
 #  if @GNULIB_FPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@
-_GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...)
-                                _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
-                                _GL_ARG_NONNULL ((1, 2)));
+_GL_FUNCDECL_RPL (fprintf, int,
+                  (FILE *restrict fp, const char *restrict format, ...)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
+                  _GL_ARG_NONNULL ((1, 2)));
 #  else
-_GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...)
-                                _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3)
-                                _GL_ARG_NONNULL ((1, 2)));
+_GL_FUNCDECL_RPL (fprintf, int,
+                  (FILE *restrict fp, const char *restrict format, ...)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3)
+                  _GL_ARG_NONNULL ((1, 2)));
 #  endif
-_GL_CXXALIAS_RPL (fprintf, int, (FILE *fp, const char *format, ...));
+_GL_CXXALIAS_RPL (fprintf, int,
+                  (FILE *restrict fp, const char *restrict format, ...));
 # else
-_GL_CXXALIAS_SYS (fprintf, int, (FILE *fp, const char *format, ...));
+_GL_CXXALIAS_SYS (fprintf, int,
+                  (FILE *restrict fp, const char *restrict format, ...));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (fprintf);
@@ -398,11 +408,14 @@ _GL_CXXALIASWARN (fputc);
 #   undef fputs
 #   define fputs rpl_fputs
 #  endif
-_GL_FUNCDECL_RPL (fputs, int, (const char *string, FILE *stream)
-                              _GL_ARG_NONNULL ((1, 2)));
-_GL_CXXALIAS_RPL (fputs, int, (const char *string, FILE *stream));
+_GL_FUNCDECL_RPL (fputs, int,
+                  (const char *restrict string, FILE *restrict stream)
+                  _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (fputs, int,
+                  (const char *restrict string, FILE *restrict stream));
 # else
-_GL_CXXALIAS_SYS (fputs, int, (const char *string, FILE *stream));
+_GL_CXXALIAS_SYS (fputs, int,
+                  (const char *restrict string, FILE *restrict stream));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (fputs);
@@ -415,11 +428,17 @@ _GL_CXXALIASWARN (fputs);
 #   undef fread
 #   define fread rpl_fread
 #  endif
-_GL_FUNCDECL_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)
-                                 _GL_ARG_NONNULL ((4)));
-_GL_CXXALIAS_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE 
*stream));
+_GL_FUNCDECL_RPL (fread, size_t,
+                  (void *restrict ptr, size_t s, size_t n,
+                   FILE *restrict stream)
+                  _GL_ARG_NONNULL ((4)));
+_GL_CXXALIAS_RPL (fread, size_t,
+                  (void *restrict ptr, size_t s, size_t n,
+                   FILE *restrict stream));
 # else
-_GL_CXXALIAS_SYS (fread, size_t, (void *ptr, size_t s, size_t n, FILE 
*stream));
+_GL_CXXALIAS_SYS (fread, size_t,
+                  (void *restrict ptr, size_t s, size_t n,
+                   FILE *restrict stream));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (fread);
@@ -433,13 +452,16 @@ _GL_CXXALIASWARN (fread);
 #   define freopen rpl_freopen
 #  endif
 _GL_FUNCDECL_RPL (freopen, FILE *,
-                  (const char *filename, const char *mode, FILE *stream)
+                  (const char *restrict filename, const char *restrict mode,
+                   FILE *restrict stream)
                   _GL_ARG_NONNULL ((2, 3)));
 _GL_CXXALIAS_RPL (freopen, FILE *,
-                  (const char *filename, const char *mode, FILE *stream));
+                  (const char *restrict filename, const char *restrict mode,
+                   FILE *restrict stream));
 # else
 _GL_CXXALIAS_SYS (freopen, FILE *,
-                  (const char *filename, const char *mode, FILE *stream));
+                  (const char *restrict filename, const char *restrict mode,
+                   FILE *restrict stream));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (freopen);
@@ -458,12 +480,15 @@ _GL_WARN_ON_USE (freopen,
 #   undef fscanf
 #   define fscanf rpl_fscanf
 #  endif
-_GL_FUNCDECL_RPL (fscanf, int, (FILE *stream, const char *format, ...)
-                               _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3)
-                               _GL_ARG_NONNULL ((1, 2)));
-_GL_CXXALIAS_RPL (fscanf, int, (FILE *stream, const char *format, ...));
+_GL_FUNCDECL_RPL (fscanf, int,
+                  (FILE *restrict stream, const char *restrict format, ...)
+                  _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3)
+                  _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (fscanf, int,
+                  (FILE *restrict stream, const char *restrict format, ...));
 # else
-_GL_CXXALIAS_SYS (fscanf, int, (FILE *stream, const char *format, ...));
+_GL_CXXALIAS_SYS (fscanf, int,
+                  (FILE *restrict stream, const char *restrict format, ...));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (fscanf);
@@ -634,13 +659,16 @@ _GL_WARN_ON_USE (ftell, "ftell cannot handle files larger 
than 4 GB "
 #   define fwrite rpl_fwrite
 #  endif
 _GL_FUNCDECL_RPL (fwrite, size_t,
-                  (const void *ptr, size_t s, size_t n, FILE *stream)
+                  (const void *restrict ptr, size_t s, size_t n,
+                   FILE *restrict stream)
                   _GL_ARG_NONNULL ((1, 4)));
 _GL_CXXALIAS_RPL (fwrite, size_t,
-                  (const void *ptr, size_t s, size_t n, FILE *stream));
+                  (const void *restrict ptr, size_t s, size_t n,
+                   FILE *restrict stream));
 # else
 _GL_CXXALIAS_SYS (fwrite, size_t,
-                  (const void *ptr, size_t s, size_t n, FILE *stream));
+                  (const void *restrict ptr, size_t s, size_t n,
+                   FILE *restrict stream));
 
 /* Work around bug 11959 when fortifying glibc 2.4 through 2.15
    <https://sourceware.org/bugzilla/show_bug.cgi?id=11959>,
@@ -715,22 +743,26 @@ _GL_CXXALIASWARN (getchar);
 #   define getdelim rpl_getdelim
 #  endif
 _GL_FUNCDECL_RPL (getdelim, ssize_t,
-                  (char **lineptr, size_t *linesize, int delimiter,
-                   FILE *stream)
+                  (char **restrict lineptr, size_t *restrict linesize,
+                   int delimiter,
+                   FILE *restrict stream)
                   _GL_ARG_NONNULL ((1, 2, 4)));
 _GL_CXXALIAS_RPL (getdelim, ssize_t,
-                  (char **lineptr, size_t *linesize, int delimiter,
-                   FILE *stream));
+                  (char **restrict lineptr, size_t *restrict linesize,
+                   int delimiter,
+                   FILE *restrict stream));
 # else
 #  if !@HAVE_DECL_GETDELIM@
 _GL_FUNCDECL_SYS (getdelim, ssize_t,
-                  (char **lineptr, size_t *linesize, int delimiter,
-                   FILE *stream)
+                  (char **restrict lineptr, size_t *restrict linesize,
+                   int delimiter,
+                   FILE *restrict stream)
                   _GL_ARG_NONNULL ((1, 2, 4)));
 #  endif
 _GL_CXXALIAS_SYS (getdelim, ssize_t,
-                  (char **lineptr, size_t *linesize, int delimiter,
-                   FILE *stream));
+                  (char **restrict lineptr, size_t *restrict linesize,
+                   int delimiter,
+                   FILE *restrict stream));
 # endif
 _GL_CXXALIASWARN (getdelim);
 #elif defined GNULIB_POSIXCHECK
@@ -754,18 +786,22 @@ _GL_WARN_ON_USE (getdelim, "getdelim is unportable - "
 #   define getline rpl_getline
 #  endif
 _GL_FUNCDECL_RPL (getline, ssize_t,
-                  (char **lineptr, size_t *linesize, FILE *stream)
+                  (char **restrict lineptr, size_t *restrict linesize,
+                   FILE *restrict stream)
                   _GL_ARG_NONNULL ((1, 2, 3)));
 _GL_CXXALIAS_RPL (getline, ssize_t,
-                  (char **lineptr, size_t *linesize, FILE *stream));
+                  (char **restrict lineptr, size_t *restrict linesize,
+                   FILE *restrict stream));
 # else
 #  if !@HAVE_DECL_GETLINE@
 _GL_FUNCDECL_SYS (getline, ssize_t,
-                  (char **lineptr, size_t *linesize, FILE *stream)
+                  (char **restrict lineptr, size_t *restrict linesize,
+                   FILE *restrict stream)
                   _GL_ARG_NONNULL ((1, 2, 3)));
 #  endif
 _GL_CXXALIAS_SYS (getline, ssize_t,
-                  (char **lineptr, size_t *linesize, FILE *stream));
+                  (char **restrict lineptr, size_t *restrict linesize,
+                   FILE *restrict stream));
 # endif
 # if @HAVE_DECL_GETLINE@
 _GL_CXXALIASWARN (getline);
@@ -909,14 +945,14 @@ _GL_WARN_ON_USE (popen, "popen is buggy on some platforms 
- "
 #   endif
 #   if @GNULIB_PRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@
 _GL_FUNCDECL_RPL_1 (__printf__, int,
-                    (const char *format, ...)
+                    (const char *restrict format, ...)
                     __asm__ (@ASM_SYMBOL_PREFIX@
                              _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf))
                     _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2)
                     _GL_ARG_NONNULL ((1)));
 #   else
 _GL_FUNCDECL_RPL_1 (__printf__, int,
-                    (const char *format, ...)
+                    (const char *restrict format, ...)
                     __asm__ (@ASM_SYMBOL_PREFIX@
                              _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf))
                     _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2)
@@ -928,14 +964,14 @@ _GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char 
*format, ...));
 #    define printf rpl_printf
 #   endif
 _GL_FUNCDECL_RPL (printf, int,
-                  (const char *format, ...)
+                  (const char *restrict format, ...)
                   _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2)
                   _GL_ARG_NONNULL ((1)));
-_GL_CXXALIAS_RPL (printf, int, (const char *format, ...));
+_GL_CXXALIAS_RPL (printf, int, (const char *restrict format, ...));
 #  endif
 #  define GNULIB_overrides_printf 1
 # else
-_GL_CXXALIAS_SYS (printf, int, (const char *format, ...));
+_GL_CXXALIAS_SYS (printf, int, (const char *restrict format, ...));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (printf);
@@ -1083,24 +1119,24 @@ _GL_WARN_ON_USE (renameat, "renameat is not portable - "
 #    define scanf __scanf__
 #   endif
 _GL_FUNCDECL_RPL_1 (__scanf__, int,
-                    (const char *format, ...)
+                    (const char *restrict format, ...)
                     __asm__ (@ASM_SYMBOL_PREFIX@
                              _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf))
                     _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2)
                     _GL_ARG_NONNULL ((1)));
-_GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *format, ...));
+_GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *restrict format, ...));
 #  else
 #   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #    undef scanf
 #    define scanf rpl_scanf
 #   endif
-_GL_FUNCDECL_RPL (scanf, int, (const char *format, ...)
+_GL_FUNCDECL_RPL (scanf, int, (const char *restrict format, ...)
                               _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2)
                               _GL_ARG_NONNULL ((1)));
-_GL_CXXALIAS_RPL (scanf, int, (const char *format, ...));
+_GL_CXXALIAS_RPL (scanf, int, (const char *restrict format, ...));
 #  endif
 # else
-_GL_CXXALIAS_SYS (scanf, int, (const char *format, ...));
+_GL_CXXALIAS_SYS (scanf, int, (const char *restrict format, ...));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (scanf);
@@ -1113,20 +1149,24 @@ _GL_CXXALIASWARN (scanf);
 #   define snprintf rpl_snprintf
 #  endif
 _GL_FUNCDECL_RPL (snprintf, int,
-                  (char *str, size_t size, const char *format, ...)
+                  (char *restrict str, size_t size,
+                   const char *restrict format, ...)
                   _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4)
                   _GL_ARG_NONNULL ((3)));
 _GL_CXXALIAS_RPL (snprintf, int,
-                  (char *str, size_t size, const char *format, ...));
+                  (char *restrict str, size_t size,
+                   const char *restrict format, ...));
 # else
 #  if !@HAVE_DECL_SNPRINTF@
 _GL_FUNCDECL_SYS (snprintf, int,
-                  (char *str, size_t size, const char *format, ...)
+                  (char *restrict str, size_t size,
+                   const char *restrict format, ...)
                   _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4)
                   _GL_ARG_NONNULL ((3)));
 #  endif
 _GL_CXXALIAS_SYS (snprintf, int,
-                  (char *str, size_t size, const char *format, ...));
+                  (char *restrict str, size_t size,
+                   const char *restrict format, ...));
 # endif
 _GL_CXXALIASWARN (snprintf);
 #elif defined GNULIB_POSIXCHECK
@@ -1151,12 +1191,15 @@ _GL_WARN_ON_USE (snprintf, "snprintf is unportable - "
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define sprintf rpl_sprintf
 #  endif
-_GL_FUNCDECL_RPL (sprintf, int, (char *str, const char *format, ...)
-                                _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
-                                _GL_ARG_NONNULL ((1, 2)));
-_GL_CXXALIAS_RPL (sprintf, int, (char *str, const char *format, ...));
+_GL_FUNCDECL_RPL (sprintf, int,
+                  (char *restrict str, const char *restrict format, ...)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
+                  _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (sprintf, int,
+                  (char *restrict str, const char *restrict format, ...));
 # else
-_GL_CXXALIAS_SYS (sprintf, int, (char *str, const char *format, ...));
+_GL_CXXALIAS_SYS (sprintf, int,
+                  (char *restrict str, const char *restrict format, ...));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (sprintf);
@@ -1244,20 +1287,23 @@ _GL_CXXALIASWARN (vasprintf);
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define vdprintf rpl_vdprintf
 #  endif
-_GL_FUNCDECL_RPL (vdprintf, int, (int fd, const char *format, va_list args)
-                                 _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
-                                 _GL_ARG_NONNULL ((2)));
-_GL_CXXALIAS_RPL (vdprintf, int, (int fd, const char *format, va_list args));
+_GL_FUNCDECL_RPL (vdprintf, int,
+                  (int fd, const char *restrict format, va_list args)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
+                  _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (vdprintf, int,
+                  (int fd, const char *restrict format, va_list args));
 # else
 #  if !@HAVE_VDPRINTF@
-_GL_FUNCDECL_SYS (vdprintf, int, (int fd, const char *format, va_list args)
-                                 _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
-                                 _GL_ARG_NONNULL ((2)));
+_GL_FUNCDECL_SYS (vdprintf, int,
+                  (int fd, const char *restrict format, va_list args)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
+                  _GL_ARG_NONNULL ((2)));
 #  endif
 /* Need to cast, because on Solaris, the third parameter will likely be
                                                     __va_list args.  */
 _GL_CXXALIAS_SYS_CAST (vdprintf, int,
-                       (int fd, const char *format, va_list args));
+                       (int fd, const char *restrict format, va_list args));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (vdprintf);
@@ -1278,21 +1324,28 @@ _GL_WARN_ON_USE (vdprintf, "vdprintf is unportable - "
 #  endif
 #  define GNULIB_overrides_vfprintf 1
 #  if @GNULIB_VFPRINTF_POSIX@
-_GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)
-                                 _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
-                                 _GL_ARG_NONNULL ((1, 2)));
+_GL_FUNCDECL_RPL (vfprintf, int,
+                  (FILE *restrict fp,
+                   const char *restrict format, va_list args)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
+                  _GL_ARG_NONNULL ((1, 2)));
 #  else
-_GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)
-                                 _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0)
-                                 _GL_ARG_NONNULL ((1, 2)));
+_GL_FUNCDECL_RPL (vfprintf, int,
+                  (FILE *restrict fp,
+                   const char *restrict format, va_list args)
+                  _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0)
+                  _GL_ARG_NONNULL ((1, 2)));
 #  endif
-_GL_CXXALIAS_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args));
+_GL_CXXALIAS_RPL (vfprintf, int,
+                  (FILE *restrict fp,
+                   const char *restrict format, va_list args));
 # else
 /* Need to cast, because on Solaris, the third parameter is
                                                       __va_list args
    and GCC's fixincludes did not change this to __gnuc_va_list.  */
 _GL_CXXALIAS_SYS_CAST (vfprintf, int,
-                       (FILE *fp, const char *format, va_list args));
+                       (FILE *restrict fp,
+                        const char *restrict format, va_list args));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (vfprintf);
@@ -1315,14 +1368,17 @@ _GL_WARN_ON_USE (vfprintf, "vfprintf is not always 
POSIX compliant - "
 #   define vfscanf rpl_vfscanf
 #  endif
 _GL_FUNCDECL_RPL (vfscanf, int,
-                  (FILE *stream, const char *format, va_list args)
+                  (FILE *restrict stream,
+                   const char *restrict format, va_list args)
                   _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0)
                   _GL_ARG_NONNULL ((1, 2)));
 _GL_CXXALIAS_RPL (vfscanf, int,
-                  (FILE *stream, const char *format, va_list args));
+                  (FILE *restrict stream,
+                   const char *restrict format, va_list args));
 # else
 _GL_CXXALIAS_SYS (vfscanf, int,
-                  (FILE *stream, const char *format, va_list args));
+                  (FILE *restrict stream,
+                   const char *restrict format, va_list args));
 # endif
 _GL_CXXALIASWARN (vfscanf);
 #endif
@@ -1335,20 +1391,21 @@ _GL_CXXALIASWARN (vfscanf);
 #  endif
 #  define GNULIB_overrides_vprintf 1
 #  if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@
-_GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args)
+_GL_FUNCDECL_RPL (vprintf, int, (const char *restrict format, va_list args)
                                 _GL_ATTRIBUTE_FORMAT_PRINTF (1, 0)
                                 _GL_ARG_NONNULL ((1)));
 #  else
-_GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args)
+_GL_FUNCDECL_RPL (vprintf, int, (const char *restrict format, va_list args)
                                 _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0)
                                 _GL_ARG_NONNULL ((1)));
 #  endif
-_GL_CXXALIAS_RPL (vprintf, int, (const char *format, va_list args));
+_GL_CXXALIAS_RPL (vprintf, int, (const char *restrict format, va_list args));
 # else
 /* Need to cast, because on Solaris, the second parameter is
                                                           __va_list args
    and GCC's fixincludes did not change this to __gnuc_va_list.  */
-_GL_CXXALIAS_SYS_CAST (vprintf, int, (const char *format, va_list args));
+_GL_CXXALIAS_SYS_CAST (vprintf, int,
+                       (const char *restrict format, va_list args));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (vprintf);
@@ -1370,12 +1427,12 @@ _GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX 
compliant - "
 #   undef vscanf
 #   define vscanf rpl_vscanf
 #  endif
-_GL_FUNCDECL_RPL (vscanf, int, (const char *format, va_list args)
+_GL_FUNCDECL_RPL (vscanf, int, (const char *restrict format, va_list args)
                                _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0)
                                _GL_ARG_NONNULL ((1)));
-_GL_CXXALIAS_RPL (vscanf, int, (const char *format, va_list args));
+_GL_CXXALIAS_RPL (vscanf, int, (const char *restrict format, va_list args));
 # else
-_GL_CXXALIAS_SYS (vscanf, int, (const char *format, va_list args));
+_GL_CXXALIAS_SYS (vscanf, int, (const char *restrict format, va_list args));
 # endif
 _GL_CXXALIASWARN (vscanf);
 #endif
@@ -1386,20 +1443,24 @@ _GL_CXXALIASWARN (vscanf);
 #   define vsnprintf rpl_vsnprintf
 #  endif
 _GL_FUNCDECL_RPL (vsnprintf, int,
-                  (char *str, size_t size, const char *format, va_list args)
+                  (char *restrict str, size_t size,
+                   const char *restrict format, va_list args)
                   _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0)
                   _GL_ARG_NONNULL ((3)));
 _GL_CXXALIAS_RPL (vsnprintf, int,
-                  (char *str, size_t size, const char *format, va_list args));
+                  (char *restrict str, size_t size,
+                   const char *restrict format, va_list args));
 # else
 #  if !@HAVE_DECL_VSNPRINTF@
 _GL_FUNCDECL_SYS (vsnprintf, int,
-                  (char *str, size_t size, const char *format, va_list args)
+                  (char *restrict str, size_t size,
+                   const char *restrict format, va_list args)
                   _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0)
                   _GL_ARG_NONNULL ((3)));
 #  endif
 _GL_CXXALIAS_SYS (vsnprintf, int,
-                  (char *str, size_t size, const char *format, va_list args));
+                  (char *restrict str, size_t size,
+                   const char *restrict format, va_list args));
 # endif
 _GL_CXXALIASWARN (vsnprintf);
 #elif defined GNULIB_POSIXCHECK
@@ -1416,17 +1477,20 @@ _GL_WARN_ON_USE (vsnprintf, "vsnprintf is unportable - "
 #   define vsprintf rpl_vsprintf
 #  endif
 _GL_FUNCDECL_RPL (vsprintf, int,
-                  (char *str, const char *format, va_list args)
+                  (char *restrict str,
+                   const char *restrict format, va_list args)
                   _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
                   _GL_ARG_NONNULL ((1, 2)));
 _GL_CXXALIAS_RPL (vsprintf, int,
-                  (char *str, const char *format, va_list args));
+                  (char *restrict str,
+                   const char *restrict format, va_list args));
 # else
 /* Need to cast, because on Solaris, the third parameter is
                                                        __va_list args
    and GCC's fixincludes did not change this to __gnuc_va_list.  */
 _GL_CXXALIAS_SYS_CAST (vsprintf, int,
-                       (char *str, const char *format, va_list args));
+                       (char *restrict str,
+                        const char *restrict format, va_list args));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (vsprintf);
diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h
index 49bbf6f..ec5f124 100644
--- a/lib/stdlib.in.h
+++ b/lib/stdlib.in.h
@@ -311,13 +311,17 @@ _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant 
everywhere - "
 #   undef mbtowc
 #   define mbtowc rpl_mbtowc
 #  endif
-_GL_FUNCDECL_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
-_GL_CXXALIAS_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
+_GL_FUNCDECL_RPL (mbtowc, int,
+                  (wchar_t *restrict pwc, const char *restrict s, size_t n));
+_GL_CXXALIAS_RPL (mbtowc, int,
+                  (wchar_t *restrict pwc, const char *restrict s, size_t n));
 # else
 #  if !@HAVE_MBTOWC@
-_GL_FUNCDECL_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
+_GL_FUNCDECL_SYS (mbtowc, int,
+                  (wchar_t *restrict pwc, const char *restrict s, size_t n));
 #  endif
-_GL_CXXALIAS_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
+_GL_CXXALIAS_SYS (mbtowc, int,
+                  (wchar_t *restrict pwc, const char *restrict s, size_t n));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (mbtowc);
@@ -866,15 +870,19 @@ _GL_WARN_ON_USE (reallocarray, "reallocarray is not 
portable - "
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define realpath rpl_realpath
 #  endif
-_GL_FUNCDECL_RPL (realpath, char *, (const char *name, char *resolved)
-                                    _GL_ARG_NONNULL ((1)));
-_GL_CXXALIAS_RPL (realpath, char *, (const char *name, char *resolved));
+_GL_FUNCDECL_RPL (realpath, char *,
+                  (const char *restrict name, char *restrict resolved)
+                  _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (realpath, char *,
+                  (const char *restrict name, char *restrict resolved));
 # else
 #  if !@HAVE_REALPATH@
-_GL_FUNCDECL_SYS (realpath, char *, (const char *name, char *resolved)
-                                    _GL_ARG_NONNULL ((1)));
+_GL_FUNCDECL_SYS (realpath, char *,
+                  (const char *restrict name, char *restrict resolved)
+                  _GL_ARG_NONNULL ((1)));
 #  endif
-_GL_CXXALIAS_SYS (realpath, char *, (const char *name, char *resolved));
+_GL_CXXALIAS_SYS (realpath, char *,
+                  (const char *restrict name, char *restrict resolved));
 # endif
 _GL_CXXALIASWARN (realpath);
 #elif defined GNULIB_POSIXCHECK
@@ -957,15 +965,19 @@ _GL_WARN_ON_USE (setenv, "setenv is unportable - "
 #   define strtod rpl_strtod
 #  endif
 #  define GNULIB_defined_strtod_function 1
-_GL_FUNCDECL_RPL (strtod, double, (const char *str, char **endp)
-                                  _GL_ARG_NONNULL ((1)));
-_GL_CXXALIAS_RPL (strtod, double, (const char *str, char **endp));
+_GL_FUNCDECL_RPL (strtod, double,
+                  (const char *restrict str, char **restrict endp)
+                  _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (strtod, double,
+                  (const char *restrict str, char **restrict endp));
 # else
 #  if !@HAVE_STRTOD@
-_GL_FUNCDECL_SYS (strtod, double, (const char *str, char **endp)
-                                  _GL_ARG_NONNULL ((1)));
+_GL_FUNCDECL_SYS (strtod, double,
+                  (const char *restrict str, char **restrict endp)
+                  _GL_ARG_NONNULL ((1)));
 #  endif
-_GL_CXXALIAS_SYS (strtod, double, (const char *str, char **endp));
+_GL_CXXALIAS_SYS (strtod, double,
+                  (const char *restrict str, char **restrict endp));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (strtod);
@@ -985,15 +997,19 @@ _GL_WARN_ON_USE (strtod, "strtod is unportable - "
 #   define strtold rpl_strtold
 #  endif
 #  define GNULIB_defined_strtold_function 1
-_GL_FUNCDECL_RPL (strtold, long double, (const char *str, char **endp)
-                                        _GL_ARG_NONNULL ((1)));
-_GL_CXXALIAS_RPL (strtold, long double, (const char *str, char **endp));
+_GL_FUNCDECL_RPL (strtold, long double,
+                  (const char *restrict str, char **restrict endp)
+                  _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (strtold, long double,
+                  (const char *restrict str, char **restrict endp));
 # else
 #  if !@HAVE_STRTOLD@
-_GL_FUNCDECL_SYS (strtold, long double, (const char *str, char **endp)
-                                        _GL_ARG_NONNULL ((1)));
+_GL_FUNCDECL_SYS (strtold, long double,
+                  (const char *restrict str, char **restrict endp)
+                  _GL_ARG_NONNULL ((1)));
 #  endif
-_GL_CXXALIAS_SYS (strtold, long double, (const char *str, char **endp));
+_GL_CXXALIAS_SYS (strtold, long double,
+                  (const char *restrict str, char **restrict endp));
 # endif
 _GL_CXXALIASWARN (strtold);
 #elif defined GNULIB_POSIXCHECK
@@ -1015,11 +1031,13 @@ _GL_WARN_ON_USE (strtold, "strtold is unportable - "
    to ERANGE.  */
 # if !@HAVE_STRTOLL@
 _GL_FUNCDECL_SYS (strtoll, long long,
-                  (const char *string, char **endptr, int base)
+                  (const char *restrict string, char **restrict endptr,
+                   int base)
                   _GL_ARG_NONNULL ((1)));
 # endif
 _GL_CXXALIAS_SYS (strtoll, long long,
-                  (const char *string, char **endptr, int base));
+                  (const char *restrict string, char **restrict endptr,
+                   int base));
 _GL_CXXALIASWARN (strtoll);
 #elif defined GNULIB_POSIXCHECK
 # undef strtoll
@@ -1040,11 +1058,13 @@ _GL_WARN_ON_USE (strtoll, "strtoll is unportable - "
    ERANGE.  */
 # if !@HAVE_STRTOULL@
 _GL_FUNCDECL_SYS (strtoull, unsigned long long,
-                  (const char *string, char **endptr, int base)
+                  (const char *restrict string, char **restrict endptr,
+                   int base)
                   _GL_ARG_NONNULL ((1)));
 # endif
 _GL_CXXALIAS_SYS (strtoull, unsigned long long,
-                  (const char *string, char **endptr, int base));
+                  (const char *restrict string, char **restrict endptr,
+                   int base));
 _GL_CXXALIASWARN (strtoull);
 #elif defined GNULIB_POSIXCHECK
 # undef strtoull
diff --git a/lib/strftime.h b/lib/strftime.h
index 97a062c..e850163 100644
--- a/lib/strftime.h
+++ b/lib/strftime.h
@@ -25,7 +25,7 @@ extern "C" {
    POSIX requires that strftime use the local timezone information.
    Use the timezone __TZ instead.  Use __NS as the number of
    nanoseconds in the %N directive.  */
-size_t nstrftime (char *, size_t, char const *, struct tm const *,
+size_t nstrftime (char *restrict, size_t, char const *, struct tm const *,
                   timezone_t __tz, int __ns);
 
 #ifdef __cplusplus
diff --git a/lib/string.in.h b/lib/string.in.h
index 2c04e5f..596c99b 100644
--- a/lib/string.in.h
+++ b/lib/string.in.h
@@ -411,11 +411,14 @@ _GL_WARN_ON_USE (strdup, "strdup is unportable - "
 #   undef strncat
 #   define strncat rpl_strncat
 #  endif
-_GL_FUNCDECL_RPL (strncat, char *, (char *dest, const char *src, size_t n)
-                                   _GL_ARG_NONNULL ((1, 2)));
-_GL_CXXALIAS_RPL (strncat, char *, (char *dest, const char *src, size_t n));
+_GL_FUNCDECL_RPL (strncat, char *,
+                  (char *restrict dest, const char *restrict src, size_t n)
+                  _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (strncat, char *,
+                  (char *restrict dest, const char *restrict src, size_t n));
 # else
-_GL_CXXALIAS_SYS (strncat, char *, (char *dest, const char *src, size_t n));
+_GL_CXXALIAS_SYS (strncat, char *,
+                  (char *restrict dest, const char *restrict src, size_t n));
 # endif
 # if __GLIBC__ >= 2
 _GL_CXXALIASWARN (strncat);
@@ -966,7 +969,8 @@ _GL_EXTERN_C char * mbssep (char **stringp, const char 
*delim)
    Caveat: The identity of the delimiting character is lost.
 
    See also mbssep().  */
-_GL_EXTERN_C char * mbstok_r (char *string, const char *delim, char **save_ptr)
+_GL_EXTERN_C char * mbstok_r (char *restrict string, const char *delim,
+                              char **save_ptr)
      _GL_ARG_NONNULL ((2, 3));
 #endif
 
diff --git a/lib/sys_stat.in.h b/lib/sys_stat.in.h
index e3ab315..4494607 100644
--- a/lib/sys_stat.in.h
+++ b/lib/sys_stat.in.h
@@ -455,18 +455,22 @@ _GL_WARN_ON_USE (fstat, "fstat has portability problems - 
"
 #   define fstatat rpl_fstatat
 #  endif
 _GL_FUNCDECL_RPL (fstatat, int,
-                  (int fd, char const *name, struct stat *st, int flags)
+                  (int fd, char const *restrict name, struct stat *restrict st,
+                   int flags)
                   _GL_ARG_NONNULL ((2, 3)));
 _GL_CXXALIAS_RPL (fstatat, int,
-                  (int fd, char const *name, struct stat *st, int flags));
+                  (int fd, char const *restrict name, struct stat *restrict st,
+                   int flags));
 # else
 #  if !@HAVE_FSTATAT@
 _GL_FUNCDECL_SYS (fstatat, int,
-                  (int fd, char const *name, struct stat *st, int flags)
+                  (int fd, char const *restrict name, struct stat *restrict st,
+                   int flags)
                   _GL_ARG_NONNULL ((2, 3)));
 #  endif
 _GL_CXXALIAS_SYS (fstatat, int,
-                  (int fd, char const *name, struct stat *st, int flags));
+                  (int fd, char const *restrict name, struct stat *restrict st,
+                   int flags));
 # endif
 _GL_CXXALIASWARN (fstatat);
 #elif @GNULIB_OVERRIDES_STRUCT_STAT@
@@ -514,23 +518,11 @@ _GL_WARN_ON_USE (futimens, "futimens is not portable - "
 #if @GNULIB_LCHMOD@
 /* Change the mode of FILENAME to MODE, without dereferencing it if FILENAME
    denotes a symbolic link.  */
-# if @REPLACE_LCHMOD@
-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
-#   undef lchmod
-#   define lchmod rpl_lchmod
-#  endif
-_GL_FUNCDECL_RPL (lchmod, int,
-                  (char const *filename, mode_t mode)
-                  _GL_ARG_NONNULL ((1)));
-_GL_CXXALIAS_RPL (lchmod, int,
-                  (char const *filename, mode_t mode));
-# else
-#  if !@HAVE_LCHMOD@ || defined __hpux
+# if !@HAVE_LCHMOD@ || defined __hpux
 _GL_FUNCDECL_SYS (lchmod, int, (const char *filename, mode_t mode)
                                _GL_ARG_NONNULL ((1)));
-#  endif
-_GL_CXXALIAS_SYS (lchmod, int, (const char *filename, mode_t mode));
 # endif
+_GL_CXXALIAS_SYS (lchmod, int, (const char *filename, mode_t mode));
 _GL_CXXALIASWARN (lchmod);
 #elif defined GNULIB_POSIXCHECK
 # undef lchmod
@@ -548,17 +540,21 @@ _GL_WARN_ON_USE (lchmod, "lchmod is unportable - "
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define lstat stat
 #  endif
-_GL_CXXALIAS_RPL_1 (lstat, stat, int, (const char *name, struct stat *buf));
+_GL_CXXALIAS_RPL_1 (lstat, stat, int,
+                    (const char *restrict name, struct stat *restrict buf));
 # elif @REPLACE_LSTAT@
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   undef lstat
 #   define lstat rpl_lstat
 #  endif
-_GL_FUNCDECL_RPL (lstat, int, (const char *name, struct stat *buf)
-                              _GL_ARG_NONNULL ((1, 2)));
-_GL_CXXALIAS_RPL (lstat, int, (const char *name, struct stat *buf));
+_GL_FUNCDECL_RPL (lstat, int,
+                  (const char *restrict name, struct stat *restrict buf)
+                  _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (lstat, int,
+                  (const char *restrict name, struct stat *restrict buf));
 # else
-_GL_CXXALIAS_SYS (lstat, int, (const char *name, struct stat *buf));
+_GL_CXXALIAS_SYS (lstat, int,
+                  (const char *restrict name, struct stat *restrict buf));
 # endif
 # if @HAVE_LSTAT@
 _GL_CXXALIASWARN (lstat);
@@ -771,7 +767,7 @@ _GL_WARN_ON_USE (mknodat, "mknodat is not portable - "
 #    define stat(name, st) rpl_stat (name, st)
 #   endif /* !_LARGE_FILES */
 #  endif /* !@GNULIB_OVERRIDES_STRUCT_STAT@ */
-_GL_EXTERN_C int stat (const char *name, struct stat *buf)
+_GL_EXTERN_C int stat (const char *restrict name, struct stat *restrict buf)
                       _GL_ARG_NONNULL ((1, 2));
 # endif
 #elif @GNULIB_OVERRIDES_STRUCT_STAT@
diff --git a/lib/time.in.h b/lib/time.in.h
index 3f942b7..1d11650 100644
--- a/lib/time.in.h
+++ b/lib/time.in.h
@@ -286,14 +286,17 @@ _GL_CXXALIASWARN (ctime);
 #   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #    define strftime rpl_strftime
 #   endif
-_GL_FUNCDECL_RPL (strftime, size_t, (char *__buf, size_t __bufsize,
-                                     const char *__fmt, const struct tm *__tp)
-                                    _GL_ARG_NONNULL ((1, 3, 4)));
-_GL_CXXALIAS_RPL (strftime, size_t, (char *__buf, size_t __bufsize,
-                                     const char *__fmt, const struct tm 
*__tp));
+_GL_FUNCDECL_RPL (strftime, size_t,
+                  (char *restrict __buf, size_t __bufsize,
+                   const char *restrict __fmt, const struct tm *restrict __tp)
+                  _GL_ARG_NONNULL ((1, 3, 4)));
+_GL_CXXALIAS_RPL (strftime, size_t,
+                  (char *restrict __buf, size_t __bufsize,
+                   const char *restrict __fmt, const struct tm *restrict 
__tp));
 #  else
-_GL_CXXALIAS_SYS (strftime, size_t, (char *__buf, size_t __bufsize,
-                                     const char *__fmt, const struct tm 
*__tp));
+_GL_CXXALIAS_SYS (strftime, size_t,
+                  (char *restrict __buf, size_t __bufsize,
+                   const char *restrict __fmt, const struct tm *restrict 
__tp));
 #  endif
 #  if __GLIBC__ >= 2
 _GL_CXXALIASWARN (strftime);
diff --git a/lib/unistd.in.h b/lib/unistd.in.h
index d6176ad..c9b9ac9 100644
--- a/lib/unistd.in.h
+++ b/lib/unistd.in.h
@@ -1370,18 +1370,22 @@ _GL_CXXALIASWARN (read);
 #   define readlink rpl_readlink
 #  endif
 _GL_FUNCDECL_RPL (readlink, ssize_t,
-                  (const char *file, char *buf, size_t bufsize)
+                  (const char *restrict file,
+                   char *restrict buf, size_t bufsize)
                   _GL_ARG_NONNULL ((1, 2)));
 _GL_CXXALIAS_RPL (readlink, ssize_t,
-                  (const char *file, char *buf, size_t bufsize));
+                  (const char *restrict file,
+                   char *restrict buf, size_t bufsize));
 # else
 #  if !@HAVE_READLINK@
 _GL_FUNCDECL_SYS (readlink, ssize_t,
-                  (const char *file, char *buf, size_t bufsize)
+                  (const char *restrict file,
+                   char *restrict buf, size_t bufsize)
                   _GL_ARG_NONNULL ((1, 2)));
 #  endif
 _GL_CXXALIAS_SYS (readlink, ssize_t,
-                  (const char *file, char *buf, size_t bufsize));
+                  (const char *restrict file,
+                   char *restrict buf, size_t bufsize));
 # endif
 _GL_CXXALIASWARN (readlink);
 #elif defined GNULIB_POSIXCHECK
@@ -1399,18 +1403,22 @@ _GL_WARN_ON_USE (readlink, "readlink is unportable - "
 #   define readlinkat rpl_readlinkat
 #  endif
 _GL_FUNCDECL_RPL (readlinkat, ssize_t,
-                  (int fd, char const *file, char *buf, size_t len)
+                  (int fd, char const *restrict file,
+                   char *restrict buf, size_t len)
                   _GL_ARG_NONNULL ((2, 3)));
 _GL_CXXALIAS_RPL (readlinkat, ssize_t,
-                  (int fd, char const *file, char *buf, size_t len));
+                  (int fd, char const *restrict file,
+                   char *restrict buf, size_t len));
 # else
 #  if !@HAVE_READLINKAT@
 _GL_FUNCDECL_SYS (readlinkat, ssize_t,
-                  (int fd, char const *file, char *buf, size_t len)
+                  (int fd, char const *restrict file,
+                   char *restrict buf, size_t len)
                   _GL_ARG_NONNULL ((2, 3)));
 #  endif
 _GL_CXXALIAS_SYS (readlinkat, ssize_t,
-                  (int fd, char const *file, char *buf, size_t len));
+                  (int fd, char const *restrict file,
+                   char *restrict buf, size_t len));
 # endif
 _GL_CXXALIASWARN (readlinkat);
 #elif defined GNULIB_POSIXCHECK
diff --git a/lib/utimensat.c b/lib/utimensat.c
new file mode 100644
index 0000000..63788d5
--- /dev/null
+++ b/lib/utimensat.c
@@ -0,0 +1,160 @@
+/* Set the access and modification time of a file relative to directory fd.
+   Copyright (C) 2009-2020 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+
+/* written by Eric Blake */
+
+#include <config.h>
+
+/* Specification.  */
+#include <sys/stat.h>
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdlib.h>
+
+#include "stat-time.h"
+#include "timespec.h"
+#include "utimens.h"
+
+#if HAVE_UTIMENSAT
+
+# undef utimensat
+
+/* If we have a native utimensat, but are compiling this file, then
+   utimensat was defined to rpl_utimensat by our replacement
+   sys/stat.h.  We assume the native version might fail with ENOSYS,
+   or succeed without properly affecting ctime (as is the case when
+   using newer glibc but older Linux kernel).  In this scenario,
+   rpl_utimensat checks whether the native version is usable, and
+   local_utimensat provides the fallback manipulation.  */
+
+static int local_utimensat (int, char const *, struct timespec const[2], int);
+# define AT_FUNC_NAME local_utimensat
+
+/* Like utimensat, but work around native bugs.  */
+
+int
+rpl_utimensat (int fd, char const *file, struct timespec const times[2],
+               int flag)
+{
+# if defined __linux__ || defined __sun
+  struct timespec ts[2];
+# endif
+
+  /* See comments in utimens.c for details.  */
+  static int utimensat_works_really; /* 0 = unknown, 1 = yes, -1 = no.  */
+  if (0 <= utimensat_works_really)
+    {
+      int result;
+# if defined __linux__ || defined __sun
+      struct stat st;
+      /* As recently as Linux kernel 2.6.32 (Dec 2009), several file
+         systems (xfs, ntfs-3g) have bugs with a single UTIME_OMIT,
+         but work if both times are either explicitly specified or
+         UTIME_NOW.  Work around it with a preparatory [l]stat prior
+         to calling utimensat; fortunately, there is not much timing
+         impact due to the extra syscall even on file systems where
+         UTIME_OMIT would have worked.
+
+         The same bug occurs in Solaris 11.1 (Apr 2013).
+
+         FIXME: Simplify this in 2024, when these file system bugs are
+         no longer common on Gnulib target platforms.  */
+      if (times && (times[0].tv_nsec == UTIME_OMIT
+                    || times[1].tv_nsec == UTIME_OMIT))
+        {
+          if (fstatat (fd, file, &st, flag))
+            return -1;
+          if (times[0].tv_nsec == UTIME_OMIT && times[1].tv_nsec == UTIME_OMIT)
+            return 0;
+          if (times[0].tv_nsec == UTIME_OMIT)
+            ts[0] = get_stat_atime (&st);
+          else
+            ts[0] = times[0];
+          if (times[1].tv_nsec == UTIME_OMIT)
+            ts[1] = get_stat_mtime (&st);
+          else
+            ts[1] = times[1];
+          times = ts;
+        }
+#  ifdef __hppa__
+      /* Linux kernel 2.6.22.19 on hppa does not reject invalid tv_nsec
+         values.  */
+      else if (times
+               && ((times[0].tv_nsec != UTIME_NOW
+                    && ! (0 <= times[0].tv_nsec
+                          && times[0].tv_nsec < TIMESPEC_HZ))
+                   || (times[1].tv_nsec != UTIME_NOW
+                       && ! (0 <= times[1].tv_nsec
+                             && times[1].tv_nsec < TIMESPEC_HZ))))
+        {
+          errno = EINVAL;
+          return -1;
+        }
+#  endif
+# endif
+      result = utimensat (fd, file, times, flag);
+      /* Linux kernel 2.6.25 has a bug where it returns EINVAL for
+         UTIME_NOW or UTIME_OMIT with non-zero tv_sec, which
+         local_utimensat works around.  Meanwhile, EINVAL for a bad
+         flag is indeterminate whether the native utimensat works, but
+         local_utimensat will also reject it.  */
+      if (result == -1 && errno == EINVAL && (flag & ~AT_SYMLINK_NOFOLLOW))
+        return result;
+      if (result == 0 || (errno != ENOSYS && errno != EINVAL))
+        {
+          utimensat_works_really = 1;
+          return result;
+        }
+    }
+  /* No point in trying openat/futimens, since on Linux, futimens is
+     implemented with the same syscall as utimensat.  Only avoid the
+     native utimensat due to an ENOSYS failure; an EINVAL error was
+     data-dependent, and the next caller may pass valid data.  */
+  if (0 <= utimensat_works_really && errno == ENOSYS)
+    utimensat_works_really = -1;
+  return local_utimensat (fd, file, times, flag);
+}
+
+#else /* !HAVE_UTIMENSAT */
+
+# define AT_FUNC_NAME utimensat
+
+#endif /* !HAVE_UTIMENSAT */
+
+/* Set the access and modification timestamps of FILE to be
+   TIMESPEC[0] and TIMESPEC[1], respectively; relative to directory
+   FD.  If flag is AT_SYMLINK_NOFOLLOW, change the times of a symlink,
+   or fail with ENOSYS if not possible.  If TIMESPEC is null, set the
+   timestamps to the current time.  If possible, do it without
+   changing the working directory.  Otherwise, resort to using
+   save_cwd/fchdir, then utimens/restore_cwd.  If either the save_cwd
+   or the restore_cwd fails, then give a diagnostic and exit nonzero.
+   Return 0 on success, -1 (setting errno) on failure.  */
+
+/* AT_FUNC_NAME is now utimensat or local_utimensat.  */
+#define AT_FUNC_F1 lutimens
+#define AT_FUNC_F2 utimens
+#define AT_FUNC_USE_F1_COND AT_SYMLINK_NOFOLLOW
+#define AT_FUNC_POST_FILE_PARAM_DECLS , struct timespec const ts[2], int flag
+#define AT_FUNC_POST_FILE_ARGS        , ts
+#include "at-func.c"
+#undef AT_FUNC_NAME
+#undef AT_FUNC_F1
+#undef AT_FUNC_F2
+#undef AT_FUNC_USE_F1_COND
+#undef AT_FUNC_POST_FILE_PARAM_DECLS
+#undef AT_FUNC_POST_FILE_ARGS
diff --git a/lisp/bs.el b/lisp/bs.el
index f5cb93b..337d22e 100644
--- a/lisp/bs.el
+++ b/lisp/bs.el
@@ -173,7 +173,12 @@ return a string representing the column's value."
 
 (defun bs--make-header-match-string ()
   "Return a regexp matching the first line of a Buffer Selection Menu buffer."
-  (concat "^\\(" (mapconcat #'car bs-attributes-list " *") " *$\\)"))
+  (concat "^\\("
+          (apply #'concat (mapcan (lambda (e)
+                                    (and (not (equal (car e) ""))
+                                         (list " *" (car e))))
+                                  bs-attributes-list))
+          " *$\\)"))
 
 ;; Font-Lock-Settings
 (defvar bs-mode-font-lock-keywords
diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el
index 1ae3944..1d5b947 100644
--- a/lisp/calendar/calendar.el
+++ b/lisp/calendar/calendar.el
@@ -136,14 +136,13 @@
 ;; - whatever is passed to diary-remind
 
 (defmacro calendar-dlet* (binders &rest body)
-  "Like `let*' but using dynamic scoping."
+  "Like `dlet' but without warnings about non-prefixed var names."
   (declare (indent 1) (debug let))
-  `(progn
-     (with-no-warnings                  ;Silence "lacks a prefix" warnings!
-       ,@(mapcar (lambda (binder)
-                   `(defvar ,(if (consp binder) (car binder) binder)))
-                 binders))
-     (let* ,binders ,@body)))
+  (let ((vars (mapcar (lambda (binder)
+                        (if (consp binder) (car binder) binder))
+                      binders)))
+    `(with-suppressed-warnings ((lexical ,@vars))
+       (dlet ,binders ,@body))))
 
 ;; Avoid recursive load of calendar when loading cal-menu.  Yuck.
 (provide 'calendar)
diff --git a/lisp/calendar/icalendar.el b/lisp/calendar/icalendar.el
index 6847ba9..d76c110 100644
--- a/lisp/calendar/icalendar.el
+++ b/lisp/calendar/icalendar.el
@@ -6,7 +6,7 @@
 ;; Created:        August 2002
 ;; Keywords:       calendar
 ;; Human-Keywords: calendar, diary, iCalendar, vCalendar
-;; Version:        0.19
+;; Old-Version:    0.19
 
 ;; This file is part of GNU Emacs.
 
@@ -107,6 +107,7 @@
 
 (defconst icalendar-version "0.19"
   "Version number of icalendar.el.")
+(make-obsolete-variable 'icalendar-version nil "28.1")
 
 ;; ======================================================================
 ;; Customizables
diff --git a/lisp/cedet/data-debug.el b/lisp/cedet/data-debug.el
index 78a72dd..075e122 100644
--- a/lisp/cedet/data-debug.el
+++ b/lisp/cedet/data-debug.el
@@ -880,7 +880,7 @@ If PARENT is non-nil, it is somehow related as a parent to 
thing."
        comment-end ""
        buffer-read-only t)
   (setq-local comment-start-skip
-       "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\);+ *")
+       "\\(\\(^\\|[^\\\n]\\)\\(\\\\\\\\\\)*\\);+ *")
   (buffer-disable-undo)
   (set (make-local-variable 'font-lock-global-modes) nil)
   (font-lock-mode -1)
diff --git a/lisp/cedet/pulse.el b/lisp/cedet/pulse.el
index 5713a7b..16243e1 100644
--- a/lisp/cedet/pulse.el
+++ b/lisp/cedet/pulse.el
@@ -181,6 +181,7 @@ Optional argument FACE specifies the face to do the 
highlighting."
   (overlay-put o 'original-face (overlay-get o 'face))
   ;; Make this overlay take priority over the `transient-mark-mode'
   ;; overlay.
+  (overlay-put o 'original-priority (overlay-get o 'priority))
   (overlay-put o 'priority 1)
   (setq pulse-momentary-overlay o)
   (if (eq pulse-flag 'never)
@@ -214,6 +215,7 @@ Optional argument FACE specifies the face to do the 
highlighting."
     (let ((ol pulse-momentary-overlay))
       (overlay-put ol 'face (overlay-get ol 'original-face))
       (overlay-put ol 'original-face nil)
+      (overlay-put ol 'priority (overlay-get ol 'original-priority))
       ;; Clear the overlay if it needs deleting.
       (when (overlay-get ol 'pulse-delete) (delete-overlay ol)))
 
diff --git a/lisp/cedet/semantic/grammar.el b/lisp/cedet/semantic/grammar.el
index 62c86f9..2c3b24b 100644
--- a/lisp/cedet/semantic/grammar.el
+++ b/lisp/cedet/semantic/grammar.el
@@ -1306,7 +1306,7 @@ the change bounds to encompass the whole nonterminal tag."
   ;; Look within the line for a ; following an even number of backslashes
   ;; after either a non-backslash or the line beginning.
   (set (make-local-variable 'comment-start-skip)
-       "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\);+ *")
+       "\\(\\(^\\|[^\\\n]\\)\\(\\\\\\\\\\)*\\);+ *")
   (set (make-local-variable 'indent-line-function)
        'semantic-grammar-indent)
   (set (make-local-variable 'fill-paragraph-function)
diff --git a/lisp/cedet/semantic/wisent/comp.el 
b/lisp/cedet/semantic/wisent/comp.el
index 263dff9..4e9927f 100644
--- a/lisp/cedet/semantic/wisent/comp.el
+++ b/lisp/cedet/semantic/wisent/comp.el
@@ -2235,13 +2235,18 @@ there are any reduce/reduce conflicts."
 (defun wisent-total-conflicts ()
   "Report the total number of conflicts."
   (let* ((src (wisent-source))
-         (symbol (intern (format "wisent-%s--expected-conflicts"
-                                 (replace-regexp-in-string "\\.el$" "" src))
-                         obarray)))
+         (symbol
+          ;; Source files may specify how many expected conflicts
+          ;; there are.  If the number is the expected number, don't
+          ;; output warnings.
+          (and src
+               (intern (format "wisent-%s--expected-conflicts"
+                               (replace-regexp-in-string "\\.el$" "" src))))))
     (when (or (not (zerop rrc-total))
               (and (not (zerop src-total))
                    (not (= src-total (or wisent-expected-conflicts 0)))
-                   (or (not (boundp symbol))
+                   (or (null symbol)
+                       (not (boundp symbol))
                        (not (equal (symbol-value symbol) src-total)))))
       (let* ((src (if src (concat " in " src) ""))
              (msg (format "Grammar%s contains" src)))
diff --git a/lisp/cedet/srecode/srt-mode.el b/lisp/cedet/srecode/srt-mode.el
index 6b8c303..4c1e030 100644
--- a/lisp/cedet/srecode/srt-mode.el
+++ b/lisp/cedet/srecode/srt-mode.el
@@ -195,7 +195,7 @@ we can tell font lock about them.")
   (set (make-local-variable 'comment-end) "")
   (set (make-local-variable 'parse-sexp-ignore-comments) t)
   (set (make-local-variable 'comment-start-skip)
-       "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\);+ *")
+       "\\(\\(^\\|[^\\\n]\\)\\(\\\\\\\\\\)*\\);+ *")
   (set (make-local-variable 'font-lock-defaults)
        '(srecode-font-lock-keywords
          nil  ;; perform string/comment fontification
diff --git a/lisp/comint.el b/lisp/comint.el
index bf376a0..ea06f8a 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -3124,7 +3124,7 @@ See `comint-word'."
               "\\$\\(?:\\([[:alpha:]][[:alnum:]]*\\)"
               "\\|{\\(?1:[^{}]+\\)}\\)"
               (when (memq system-type '(ms-dos windows-nt))
-                "\\|%\\(?1:[^\\\\/]*\\)%")
+                "\\|%\\(?1:[^\\/]*\\)%")
               (when comint-file-name-quote-list
                 "\\|\\\\\\(.\\)")))
          (qupos nil)
@@ -3641,7 +3641,7 @@ and does not normally need to be invoked by the end user 
or programmer."
     (setq-local comint-redirect-previous-input-string "")
 
     (setq mode-line-process
-         (if mode-line-process
+         (if (and mode-line-process (stringp (elt mode-line-process 0)))
              (list (concat (elt mode-line-process 0) " Redirection"))
            (list ":%s Redirection")))))
 
diff --git a/lisp/dframe.el b/lisp/dframe.el
index 2c42147..efe2bc5 100644
--- a/lisp/dframe.el
+++ b/lisp/dframe.el
@@ -7,6 +7,7 @@
 
 (defvar dframe-version "1.3"
   "The current version of the dedicated frame library.")
+(make-obsolete-variable 'dframe-version nil "28.1")
 
 ;; This file is part of GNU Emacs.
 
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 0069c17..6f50a3d 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -205,7 +205,10 @@ Examples of PREDICATE:
     (not (and (= (file-attribute-user-id fa1) - mark files with different UID
                  (file-attribute-user-id fa2))
               (= (file-attribute-group-id fa1) - and GID.
-                 (file-attribute-group-id fa2))))"
+                 (file-attribute-group-id fa2))))
+
+If the region is active in Transient Mark mode, mark files
+only in the active region if `dired-mark-region' is non-nil."
   (interactive
    (list
     (let* ((target-dir (dired-dwim-target-directory))
@@ -409,7 +412,8 @@ has no effect on MS-Windows."
       (set-file-modes
        file
        (if num-modes num-modes
-        (file-modes-symbolic-to-number modes (file-modes file)))))
+        (file-modes-symbolic-to-number modes (file-modes file 'nofollow)))
+       'nofollow))
     (dired-do-redisplay arg)))
 
 ;;;###autoload
diff --git a/lisp/dired-x.el b/lisp/dired-x.el
index 623a1dd..873d586 100644
--- a/lisp/dired-x.el
+++ b/lisp/dired-x.el
@@ -623,7 +623,9 @@ interactively, prompt for REGEXP.
 With prefix argument, unflag all those files.
 Optional fourth argument LOCALP is as in `dired-get-filename'.
 Optional fifth argument CASE-FOLD-P specifies the value of
-`case-fold-search' used for matching REGEXP."
+`case-fold-search' used for matching REGEXP.
+If the region is active in Transient Mark mode, operate only on
+files in the active region if `dired-mark-region' is non-nil."
   (interactive
    (list (read-regexp
          "Mark unmarked files matching regexp (default all): "
@@ -1386,7 +1388,9 @@ present for some values of `ls-lisp-emulation'.
 
 This function operates only on the buffer content and does not
 refer at all to the underlying file system.  Contrast this with
-`find-dired', which might be preferable for the task at hand."
+`find-dired', which might be preferable for the task at hand.
+If the region is active in Transient Mark mode, mark files
+only in the active region if `dired-mark-region' is non-nil."
   ;; Using sym="" instead of nil avoids the trap of
   ;; (string-match "foo" sym) into which a user would soon fall.
   ;; Give `equal' instead of `=' in the example, as this works on
diff --git a/lisp/dired.el b/lisp/dired.el
index a4de51f..41bbf9f 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -296,6 +296,36 @@ new Dired buffers."
   :version "26.1"
   :group 'dired)
 
+(defcustom dired-mark-region 'file
+  "Defines what commands that mark files do with the active region.
+
+When nil, marking commands don't operate on all files in the
+active region.  They process their prefix arguments as usual.
+
+When the value of this option is non-nil, then all Dired commands
+that mark or unmark files will operate on all files in the region
+if the region is active in Transient Mark mode.
+
+When `file', the region marking is based on the file name.
+This means don't mark the file if the end of the region is
+before the file name displayed on the Dired line, so the file name
+is visually outside the region.  This behavior is consistent with
+marking files without the region using the key `m' that advances
+point to the next line after marking the file.  Thus the number
+of keys used to mark files is the same as the number of keys
+used to select the region, e.g. `M-2 m' marks 2 files, and
+`C-SPC M-2 n m' marks 2 files, and `M-2 S-down m' marks 2 files.
+
+When `line', the region marking is based on Dired lines,
+so include the file into marking if the end of the region
+is anywhere on its Dired line, except the beginning of the line."
+  :type '(choice
+          (const :tag "Don't mark files in active region" nil)
+          (const :tag "Exclude file name outside of region" file)
+          (const :tag "Include the file at region end line" line))
+  :group 'dired
+  :version "28.1")
+
 ;; Internal variables
 
 (defvar dired-marker-char ?*           ; the answer is 42
@@ -612,12 +642,34 @@ Subexpression 2 must end right before the \\n.")
 PREDICATE is evaluated on each line, with point at beginning of line.
 MSG is a noun phrase for the type of files being marked.
 It should end with a noun that can be pluralized by adding `s'.
+
+In Transient Mark mode, if the mark is active, operate on the contents
+of the region if `dired-mark-region' is non-nil.  Otherwise, operate
+on the whole buffer.
+
 Return value is the number of files marked, or nil if none were marked."
-  `(let ((inhibit-read-only t) count)
+  `(let* ((inhibit-read-only t) count
+         (use-region-p (and dired-mark-region
+                            (region-active-p)
+                            (> (region-end) (region-beginning))))
+         (beg (if use-region-p
+                  (save-excursion
+                    (goto-char (region-beginning))
+                    (line-beginning-position))
+                (point-min)))
+         (end (if use-region-p
+                  (save-excursion
+                    (goto-char (region-end))
+                    (if (if (eq dired-mark-region 'line)
+                            (not (bolp))
+                          (get-text-property (1- (point)) 'dired-filename))
+                        (line-end-position)
+                      (line-beginning-position)))
+                (point-max))))
     (save-excursion
       (setq count 0)
       (when ,msg
-       (message "%s %ss%s..."
+       (message "%s %ss%s%s..."
                 (cond ((eq dired-marker-char ?\s) "Unmarking")
                       ((eq dired-del-marker dired-marker-char)
                        "Flagging")
@@ -625,22 +677,28 @@ Return value is the number of files marked, or nil if 
none were marked."
                 ,msg
                 (if (eq dired-del-marker dired-marker-char)
                     " for deletion"
-                  "")))
-      (goto-char (point-min))
-      (while (not (eobp))
+                  "")
+                 (if use-region-p
+                     " in region"
+                   "")))
+      (goto-char beg)
+      (while (< (point) end)
         (when ,predicate
           (unless (= (following-char) dired-marker-char)
             (delete-char 1)
             (insert dired-marker-char)
             (setq count (1+ count))))
         (forward-line 1))
-      (when ,msg (message "%s %s%s %s%s"
+      (when ,msg (message "%s %s%s %s%s%s"
                         count
                         ,msg
                         (dired-plural-s count)
                         (if (eq dired-marker-char ?\s) "un" "")
                         (if (eq dired-marker-char dired-del-marker)
-                            "flagged" "marked"))))
+                            "flagged" "marked")
+                        (if use-region-p
+                            " in region"
+                          ""))))
     (and (> count 0) count)))
 
 (defmacro dired-map-over-marks (body arg &optional show-progress
@@ -3580,7 +3638,8 @@ no ARGth marked file is found before this line."
 
 (defun dired-mark (arg &optional interactive)
   "Mark the file at point in the Dired buffer.
-If the region is active, mark all files in the region.
+If the region is active in Transient Mark mode, mark all files
+in the region if `dired-mark-region' is non-nil.
 Otherwise, with a prefix arg, mark files on the next ARG lines.
 
 If on a subdir headerline, mark all its files except `.' and `..'.
@@ -3591,13 +3650,20 @@ this subdir."
   (interactive (list current-prefix-arg t))
   (cond
    ;; Mark files in the active region.
-   ((and interactive (use-region-p))
+   ((and interactive dired-mark-region
+         (region-active-p)
+         (> (region-end) (region-beginning)))
     (save-excursion
       (let ((beg (region-beginning))
            (end (region-end)))
        (dired-mark-files-in-region
         (progn (goto-char beg) (line-beginning-position))
-        (progn (goto-char end) (line-beginning-position))))))
+        (progn (goto-char end)
+                (if (if (eq dired-mark-region 'line)
+                        (not (bolp))
+                      (get-text-property (1- (point)) 'dired-filename))
+                    (line-end-position)
+                  (line-beginning-position)))))))
    ;; Mark subdir files from the subdir headerline.
    ((dired-get-subdir)
     (save-excursion (dired-mark-subdir-files)))
@@ -3678,6 +3744,9 @@ As always, hidden subdirs are not affected."
 A prefix argument means to unmark them instead.
 `.' and `..' are never marked.
 
+If the region is active in Transient Mark mode, mark files
+only in the active region if `dired-mark-region' is non-nil.
+
 REGEXP is an Emacs regexp, not a shell wildcard.  Thus, use `\\.o$' for
 object files--just `.o' will mark more than you might think."
   (interactive
@@ -3729,6 +3798,9 @@ object files--just `.o' will mark more than you might 
think."
 A prefix argument means to unmark them instead.
 `.' and `..' are never marked.
 
+If the region is active in Transient Mark mode, mark files
+only in the active region if `dired-mark-region' is non-nil.
+
 Note that if a file is visited in an Emacs buffer, and
 `dired-always-read-filesystem' is nil, this command will
 look in the buffer without revisiting the file, so the results might
@@ -3773,14 +3845,18 @@ The match is against the non-directory part of the 
filename.  Use `^'
 
 (defun dired-mark-symlinks (unflag-p)
   "Mark all symbolic links.
-With prefix argument, unmark or unflag all those files."
+With prefix argument, unmark or unflag all those files.
+If the region is active in Transient Mark mode, mark files
+only in the active region if `dired-mark-region' is non-nil."
   (interactive "P")
   (let ((dired-marker-char (if unflag-p ?\s dired-marker-char)))
     (dired-mark-if (looking-at-p dired-re-sym) "symbolic link")))
 
 (defun dired-mark-directories (unflag-p)
   "Mark all directory file lines except `.' and `..'.
-With prefix argument, unmark or unflag all those files."
+With prefix argument, unmark or unflag all those files.
+If the region is active in Transient Mark mode, mark files
+only in the active region if `dired-mark-region' is non-nil."
   (interactive "P")
   (let ((dired-marker-char (if unflag-p ?\s dired-marker-char)))
     (dired-mark-if (and (looking-at-p dired-re-dir)
@@ -3789,7 +3865,9 @@ With prefix argument, unmark or unflag all those files."
 
 (defun dired-mark-executables (unflag-p)
   "Mark all executable files.
-With prefix argument, unmark or unflag all those files."
+With prefix argument, unmark or unflag all those files.
+If the region is active in Transient Mark mode, mark files
+only in the active region if `dired-mark-region' is non-nil."
   (interactive "P")
   (let ((dired-marker-char (if unflag-p ?\s dired-marker-char)))
     (dired-mark-if (looking-at-p dired-re-exe) "executable file")))
@@ -3799,7 +3877,9 @@ With prefix argument, unmark or unflag all those files."
 
 (defun dired-flag-auto-save-files (&optional unflag-p)
   "Flag for deletion files whose names suggest they are auto save files.
-A prefix argument says to unmark or unflag those files instead."
+A prefix argument says to unmark or unflag those files instead.
+If the region is active in Transient Mark mode, flag files
+only in the active region if `dired-mark-region' is non-nil."
   (interactive "P")
   (let ((dired-marker-char (if unflag-p ?\s dired-del-marker)))
     (dired-mark-if
@@ -3839,7 +3919,9 @@ A prefix argument says to unmark or unflag those files 
instead."
 
 (defun dired-flag-backup-files (&optional unflag-p)
   "Flag all backup files (names ending with `~') for deletion.
-With prefix argument, unmark or unflag these files."
+With prefix argument, unmark or unflag these files.
+If the region is active in Transient Mark mode, flag files
+only in the active region if `dired-mark-region' is non-nil."
   (interactive "P")
   (let ((dired-marker-char (if unflag-p ?\s dired-del-marker)))
     (dired-mark-if
diff --git a/lisp/doc-view.el b/lisp/doc-view.el
index 3788d79..8b3d552 100644
--- a/lisp/doc-view.el
+++ b/lisp/doc-view.el
@@ -683,8 +683,6 @@ at the top edge of the page moves to the previous page."
       ;; time-window of loose permissions otherwise.
       (with-file-modes #o0700 (make-directory dir))
     (file-already-exists
-     (when (file-symlink-p dir)
-       (error "Danger: %s points to a symbolic link" dir))
      ;; In case it was created earlier with looser rights.
      ;; We could check the mode info returned by file-attributes, but it's
      ;; a pain to parse and it may not tell you what we want under
@@ -694,7 +692,7 @@ at the top edge of the page moves to the previous page."
      ;; sure we have write-access to the directory and that we own it, thus
      ;; closing a bunch of security holes.
      (condition-case error
-        (set-file-modes dir #o0700)
+        (set-file-modes dir #o0700 'nofollow)
        (file-error
        (error
         (format "Unable to use temporary directory %s: %s"
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
index 785e350..e9f7658 100644
--- a/lisp/emacs-lisp/autoload.el
+++ b/lisp/emacs-lisp/autoload.el
@@ -895,7 +895,7 @@ FILE's modification time."
           (cons (lambda () (ignore-errors (delete-file tempfile)))
                 kill-emacs-hook)))
     (unless (= temp-modes desired-modes)
-      (set-file-modes tempfile desired-modes))
+      (set-file-modes tempfile desired-modes 'nofollow))
     (write-region (point-min) (point-max) tempfile nil 1)
     (backup-buffer)
     (rename-file tempfile buffer-file-name t))
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index fe0930c..4f72251 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -1515,7 +1515,7 @@
      byte-eqlsign byte-gtr byte-lss byte-leq byte-geq byte-diff byte-negate
      byte-plus byte-max byte-min byte-mult byte-char-after byte-char-syntax
      byte-buffer-substring byte-string= byte-string< byte-nthcdr byte-elt
-     byte-member byte-assq byte-quo byte-rem)
+     byte-member byte-assq byte-quo byte-rem byte-substring)
    byte-compile-side-effect-and-error-free-ops))
 
 ;; This crock is because of the way DEFVAR_BOOL variables work.
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index fce5e4a..4f01918 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -2008,7 +2008,7 @@ The value is non-nil if there were no errors, nil if 
errors."
                                           (delete-file tempfile)))
                              kill-emacs-hook)))
                  (unless (= temp-modes desired-modes)
-                   (set-file-modes tempfile desired-modes))
+                   (set-file-modes tempfile desired-modes 'nofollow))
                  (write-region (point-min) (point-max) tempfile nil 1)
                  ;; This has the intentional side effect that any
                  ;; hard-links to target-file continue to
@@ -2140,50 +2140,9 @@ With argument ARG, insert value in current buffer after 
the form."
        ;; Make warnings about unresolved functions
        ;; give the end of the file as their position.
        (setq byte-compile-last-position (point-max))
-       (byte-compile-warn-about-unresolved-functions))
-      ;; Fix up the header at the front of the output
-      ;; if the buffer contains multibyte characters.
-      (and byte-compile-current-file
-          (with-current-buffer byte-compile--outbuffer
-            (byte-compile-fix-header byte-compile-current-file))))
+       (byte-compile-warn-about-unresolved-functions)))
      byte-compile--outbuffer)))
 
-(defun byte-compile-fix-header (_filename)
-  "If the current buffer has any multibyte characters, insert a version test."
-  (when (< (point-max) (position-bytes (point-max)))
-    (goto-char (point-min))
-    ;; Find the comment that describes the version condition.
-    (when (search-forward "\n;;; This file does not contain utf-8" nil t)
-      (narrow-to-region (line-beginning-position) (point-max))
-      ;; Find the first line of ballast semicolons.
-      (search-forward ";;;;;;;;;;")
-      (beginning-of-line)
-      (narrow-to-region (point-min) (point))
-      (let ((old-header-end (point))
-           (minimum-version "23")
-           delta)
-        (delete-region (point-min) (point-max))
-        (insert
-         ";;; This file contains utf-8 non-ASCII characters,\n"
-         ";;; and so cannot be loaded into Emacs 22 or earlier.\n"
-         ;; Have to check if emacs-version is bound so that this works
-         ;; in files loaded early in loadup.el.
-         "(and (boundp 'emacs-version)\n"
-         ;; If there is a name at the end of emacs-version,
-         ;; don't try to check the version number.
-         "     (< (aref emacs-version (1- (length emacs-version))) ?A)\n"
-         (format "     (string-lessp emacs-version \"%s\")\n" minimum-version)
-         ;; Because the header must fit in a fixed width, we cannot
-         ;; insert arbitrary-length file names (Bug#11585).
-         "     (error \"`%s' was compiled for "
-         (format "Emacs %s or later\" #$))\n\n" minimum-version))
-        ;; Now compensate for any change in size, to make sure all
-        ;; positions in the file remain valid.
-        (setq delta (- (point-max) old-header-end))
-        (goto-char (point-max))
-        (widen)
-        (delete-char delta)))))
-
 (defun byte-compile-insert-header (_filename outbuffer)
   "Insert a header at the start of OUTBUFFER.
 Call from the source buffer."
@@ -2201,7 +2160,19 @@ Call from the source buffer."
       ;; 0     string          ;ELC            GNU Emacs Lisp compiled file,
       ;; >4    byte            x               version %d
       (insert
-       ";ELC" 23 "\000\000\000\n"
+       ";ELC"
+       (let ((version
+              (if (zerop emacs-minor-version)
+                  ;; Let's allow silently loading into Emacs-27
+                  ;; files compiled with Emacs-28.0.NN since the two can
+                  ;; be almost identical (e.g. right after cutting the
+                  ;; release branch) and people running the development
+                  ;; branch can be presumed to know that it's risky anyway.
+                  (1- emacs-major-version) emacs-major-version)))
+         ;; Make sure the version is a plain byte that doesn't end the comment!
+         (cl-assert (and (> version 13) (< version 128)))
+         version)
+       "\000\000\000\n"
        ";;; Compiled\n"
        ";;; in Emacs version " emacs-version "\n"
        ";;; with"
@@ -2213,16 +2184,7 @@ Call from the source buffer."
        ".\n"
        (if dynamic ";;; Function definitions are lazy-loaded.\n"
         "")
-       "\n"
-       ;; Note that byte-compile-fix-header may change this.
-       ";;; This file does not contain utf-8 non-ASCII characters,\n"
-       ";;; and so can be loaded in Emacs versions earlier than 23.\n\n"
-       ;; Insert semicolons as ballast, so that byte-compile-fix-header
-       ;; can delete them so as to keep the buffer positions
-       ;; constant for the actual compiled code.
-       ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n"
-       ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n"
-       
";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n\n"))))
+       "\n\n"))))
 
 (defun byte-compile-output-file-form (form)
   ;; Write the given form to the output buffer, being careful of docstrings
@@ -3487,7 +3449,7 @@ the opcode to be used.  If function is a list, the first 
element
 is the function and the second element is the bytecode-symbol.
 The second element may be nil, meaning there is no opcode.
 COMPILE-HANDLER is the function to use to compile this byte-op, or
-may be the abbreviations 0, 1, 2, 3, 0-1, or 1-2.
+may be the abbreviations 0, 1, 2, 2-and, 3, 0-1, 1-2, 1-3, or 2-3.
 If it is nil, then the handler is \"byte-compile-SYMBOL.\""
   (let (opcode)
     (if (symbolp function)
@@ -3506,6 +3468,7 @@ If it is nil, then the handler is 
\"byte-compile-SYMBOL.\""
                                        (0-1 . byte-compile-zero-or-one-arg)
                                        (1-2 . byte-compile-one-or-two-args)
                                        (2-3 . byte-compile-two-or-three-args)
+                                       (1-3 . byte-compile-one-to-three-args)
                                        )))
                           compile-handler
                           (intern (concat "byte-compile-"
@@ -3690,6 +3653,13 @@ These implicitly `and' together a bunch of two-arg 
bytecodes."
          ((= len 4) (byte-compile-three-args form))
          (t (byte-compile-subr-wrong-args form "2-3")))))
 
+(defun byte-compile-one-to-three-args (form)
+  (let ((len (length form)))
+    (cond ((= len 2) (byte-compile-three-args (append form '(nil nil))))
+          ((= len 3) (byte-compile-three-args (append form '(nil))))
+          ((= len 4) (byte-compile-three-args form))
+          (t (byte-compile-subr-wrong-args form "1-3")))))
+
 (defun byte-compile-noop (_form)
   (byte-compile-constant nil))
 
diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el
index ccdddb4..b5581aa 100644
--- a/lisp/emacs-lisp/checkdoc.el
+++ b/lisp/emacs-lisp/checkdoc.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 1997-1998, 2001-2020 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <address@hidden>
-;; Version: 0.6.2
+;; Old-Version: 0.6.2
 ;; Keywords: docs, maint, lisp
 
 ;; This file is part of GNU Emacs.
@@ -168,8 +168,9 @@
 ;;     not specifically docstring related.  Would this even be useful?
 
 ;;; Code:
-(defvar checkdoc-version "0.6.1"
+(defvar checkdoc-version "0.6.2"
   "Release version of checkdoc you are currently running.")
+(make-obsolete-variable 'checkdoc-version nil "28.1")
 
 (require 'cl-lib)
 (require 'help-mode) ;; for help-xref-info-regexp
@@ -2073,7 +2074,7 @@ If the offending word is in a piece of quoted text, then 
it is skipped."
                                     ;; piece of an abbreviation
                                     ;; FIXME etc
                                     (looking-at
-                                     
"\\([a-zA-Z]\\|[iI]\\.?e\\|[eE]\\.?g\\)\\."))
+                                     
"\\([a-zA-Z]\\|[iI]\\.?e\\|[eE]\\.?g\\|[cC]f\\)\\."))
                                 (error t))))
                   (if (checkdoc-autofix-ask-replace
                        b e
@@ -2642,7 +2643,7 @@ function called to create the messages."
       (goto-char (point-max))
       (let ((inhibit-read-only t))
         (insert "\n\n\C-l\n*** " label ": "
-                check-type " V " checkdoc-version)))))
+                check-type)))))
 
 (defun checkdoc-error (point msg)
   "Store POINT and MSG as errors in the checkdoc diagnostic buffer."
diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el
index e3dabdf..5bf7479 100644
--- a/lisp/emacs-lisp/cl-extra.el
+++ b/lisp/emacs-lisp/cl-extra.el
@@ -72,8 +72,7 @@ strings case-insensitively."
   (cond ((eq x y) t)
        ((stringp x)
         (and (stringp y) (= (length x) (length y))
-             (or (string-equal x y)
-                 (string-equal (downcase x) (downcase y))))) ;Lazy but simple!
+              (eq (compare-strings x nil nil y nil nil t) t)))
        ((numberp x)
         (and (numberp y) (= x y)))
        ((consp x)
@@ -553,14 +552,9 @@ too large if positive or too small if negative)."
   (seq-subseq seq start end))
 
 ;;;###autoload
-(defun cl-concatenate (type &rest sequences)
+(defalias 'cl-concatenate #'seq-concatenate
   "Concatenate, into a sequence of type TYPE, the argument SEQUENCEs.
-\n(fn TYPE SEQUENCE...)"
-  (pcase type
-    ('vector (apply #'vconcat sequences))
-    ('string (apply #'concat sequences))
-    ('list (apply #'append (append sequences '(nil))))
-    (_ (error "Not a sequence type name: %S" type))))
+\n(fn TYPE SEQUENCE...)")
 
 ;;; List functions.
 
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index 4c2f589..954731b 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -75,7 +75,7 @@
 ;; one, you may want to amend the other, too.
 ;;;###autoload
 (define-obsolete-function-alias 'cl--compiler-macro-cXXr
-  'internal--compiler-macro-cXXr "25.1")
+  #'internal--compiler-macro-cXXr "25.1")
 
 ;;; Some predicates for analyzing Lisp forms.
 ;; These are used by various
@@ -328,8 +328,7 @@ FORM is of the form (ARGS . BODY)."
                 (setq cl--bind-lets (nreverse cl--bind-lets))
                 ;; (cl-assert (eq :dummy (nth 1 (car cl--bind-lets))))
                 (list '&rest (car (pop cl--bind-lets))))))))
-      `(nil
-        (,@(nreverse simple-args) ,@rest-args)
+      `((,@(nreverse simple-args) ,@rest-args)
         ,@header
         ,(macroexp-let* cl--bind-lets
                         (macroexp-progn
@@ -366,9 +365,7 @@ more details.
                      def-body))
            (doc-string 3)
            (indent 2))
-  (let* ((res (cl--transform-lambda (cons args body) name))
-        (form `(defun ,name ,@(cdr res))))
-    (if (car res) `(progn ,(car res) ,form) form)))
+  `(defun ,name ,@(cl--transform-lambda (cons args body) name)))
 
 ;;;###autoload
 (defmacro cl-iter-defun (name args &rest body)
@@ -387,9 +384,7 @@ and BODY is implicitly surrounded by (cl-block NAME ...).
            (doc-string 3)
            (indent 2))
   (require 'generator)
-  (let* ((res (cl--transform-lambda (cons args body) name))
-         (form `(iter-defun ,name ,@(cdr res))))
-    (if (car res) `(progn ,(car res) ,form) form)))
+  `(iter-defun ,name ,@(cl--transform-lambda (cons args body) name)))
 
 ;; The lambda list for macros is different from that of normal lambdas.
 ;; Note that &environment is only allowed as first or last items in the
@@ -455,9 +450,7 @@ more details.
             (&define name cl-macro-list cl-declarations-or-string def-body))
            (doc-string 3)
            (indent 2))
-  (let* ((res (cl--transform-lambda (cons args body) name))
-        (form `(defmacro ,name ,@(cdr res))))
-    (if (car res) `(progn ,(car res) ,form) form)))
+  `(defmacro ,name ,@(cl--transform-lambda (cons args body) name)))
 
 (def-edebug-spec cl-lambda-expr
   (&define ("lambda" cl-lambda-list
@@ -480,9 +473,7 @@ Like normal `function', except that if argument is a lambda 
form,
 its argument list allows full Common Lisp conventions."
   (declare (debug (&or symbolp cl-lambda-expr)))
   (if (eq (car-safe func) 'lambda)
-      (let* ((res (cl--transform-lambda (cdr func) 'cl-none))
-            (form `(function (lambda . ,(cdr res)))))
-       (if (car res) `(progn ,(car res) ,form) form))
+      `(function (lambda . ,(cl--transform-lambda (cdr func) 'cl-none)))
     `(function ,func)))
 
 (defun cl--make-usage-var (x)
@@ -723,9 +714,9 @@ If `eval' is in WHEN, BODY is evaluated when interpreted or 
at non-top-level.
       (let ((comp (or (memq 'compile when) (memq :compile-toplevel when)))
            (cl--not-toplevel t))
        (if (or (memq 'load when) (memq :load-toplevel when))
-           (if comp (cons 'progn (mapcar 'cl--compile-time-too body))
+           (if comp (cons 'progn (mapcar #'cl--compile-time-too body))
              `(if nil nil ,@body))
-         (progn (if comp (eval (cons 'progn body))) nil)))
+         (progn (if comp (eval (cons 'progn body) lexical-binding)) nil)))
     (and (or (memq 'eval when) (memq :execute when))
         (cons 'progn body))))
 
@@ -734,13 +725,13 @@ If `eval' is in WHEN, BODY is evaluated when interpreted 
or at non-top-level.
       (setq form (macroexpand
                  form (cons '(cl-eval-when) byte-compile-macro-environment))))
   (cond ((eq (car-safe form) 'progn)
-        (cons 'progn (mapcar 'cl--compile-time-too (cdr form))))
+        (cons 'progn (mapcar #'cl--compile-time-too (cdr form))))
        ((eq (car-safe form) 'cl-eval-when)
         (let ((when (nth 1 form)))
           (if (or (memq 'eval when) (memq :execute when))
               `(cl-eval-when (compile ,@when) ,@(cddr form))
             form)))
-       (t (eval form) form)))
+       (t (eval form lexical-binding) form)))
 
 ;;;###autoload
 (defmacro cl-load-time-value (form &optional _read-only)
@@ -766,7 +757,7 @@ The result of the body appears to the compiler as a quoted 
constant."
           ;; temp is set before we use it.
           (print set byte-compile--outbuffer))
        temp)
-    `',(eval form)))
+    `',(eval form lexical-binding)))
 
 
 ;;; Conditional control structures.
@@ -1504,8 +1495,8 @@ For more details, see Info node `(cl)Loop Facility'.
          (pop cl--loop-args))
        (if (and ands loop-for-bindings)
            (push (nreverse loop-for-bindings) cl--loop-bindings)
-         (setq cl--loop-bindings (nconc (mapcar 'list loop-for-bindings)
-                                    cl--loop-bindings)))
+         (setq cl--loop-bindings (nconc (mapcar #'list loop-for-bindings)
+                                        cl--loop-bindings)))
        (if loop-for-sets
            (push `(progn
                      ,(cl--loop-let (nreverse loop-for-sets) 'setq ands)
@@ -1513,7 +1504,7 @@ For more details, see Info node `(cl)Loop Facility'.
                   cl--loop-body))
        (when loop-for-steps
          (push (cons (if ands 'cl-psetq 'setq)
-                     (apply 'append (nreverse loop-for-steps)))
+                     (apply #'append (nreverse loop-for-steps)))
                cl--loop-steps))))
 
      ((eq word 'repeat)
@@ -1706,7 +1697,7 @@ If BODY is `setq', then use SPECS for assignments rather 
than for bindings."
           (push binding new))))
     (if (eq body 'setq)
        (let ((set (cons (if par 'cl-psetq 'setq)
-                         (apply 'nconc (nreverse new)))))
+                         (apply #'nconc (nreverse new)))))
          (if temps `(let* ,(nreverse temps) ,set) set))
       `(,(if par 'let 'let*)
         ,(nconc (nreverse temps) (nreverse new)) ,@body))))
@@ -1832,7 +1823,7 @@ For more details, see `cl-do*' description in Info node 
`(cl) Iteration'.
             (and sets
                  (list (cons (if (or star (not (cdr sets)))
                                  'setq 'cl-psetq)
-                             (apply 'append sets))))))
+                             (apply #'append sets))))))
       ,@(or (cdr endtest) '(nil)))))
 
 ;;;###autoload
@@ -2111,10 +2102,9 @@ This is like `cl-flet', but for macros instead of 
functions.
     (if (null bindings) (macroexp-progn body)
       (let* ((name (caar bindings))
             (res (cl--transform-lambda (cdar bindings) name)))
-       (eval (car res))
        (macroexpand-all (macroexp-progn body)
                         (cons (cons name
-                                     (eval `(cl-function (lambda ,@(cdr res))) 
t))
+                                     (eval `(function (lambda ,@res)) t))
                               macroexpand-all-environment))))))
 
 (defun cl--sm-macroexpand (orig-fun exp &optional env)
@@ -2478,7 +2468,7 @@ Each PLACE may be a symbol, or any generalized variable 
allowed by `setf'.
 
 \(fn PLACE...)"
   (declare (debug (&rest place)))
-  (if (not (memq nil (mapcar 'symbolp args)))
+  (if (not (memq nil (mapcar #'symbolp args)))
       (and (cdr args)
           (let ((sets nil)
                 (first (car args)))
@@ -3138,13 +3128,27 @@ Of course, we really can't know that for sure, so it's 
just a heuristic."
            (or (cdr (assq sym byte-compile-function-environment))
                (cdr (assq sym byte-compile-macro-environment))))))
 
-(put 'null 'cl-deftype-satisfies #'null)
-(put 'atom 'cl-deftype-satisfies #'atom)
-(put 'real 'cl-deftype-satisfies #'numberp)
-(put 'fixnum 'cl-deftype-satisfies #'integerp)
-(put 'base-char 'cl-deftype-satisfies #'characterp)
-(put 'character 'cl-deftype-satisfies #'natnump)
-
+(pcase-dolist (`(,type . ,pred)
+               '((null         . null)
+                 (atom         . atom)
+                 (real         . numberp)
+                 (fixnum       . integerp)
+                 (base-char    . characterp)
+                 (character    . natnump)
+                 ;; "Obvious" mappings.
+                 (string       . stringp)
+                 (list         . listp)
+                 (symbol       . symbolp)
+                 (function     . functionp)
+                 (integer      . integerp)
+                 (float                . floatp)
+                 (boolean      . booleanp)
+                 (vector       . vectorp)
+                 (array                . arrayp)
+                 ;; FIXME: Do we really want to consider this a type?
+                 (integer-or-marker . integer-or-marker-p)
+                 ))
+  (put type 'cl-deftype-satisfies pred))
 
 ;;;###autoload
 (define-inline cl-typep (val type)
@@ -3213,7 +3217,10 @@ STRING is an optional description of the desired type."
        (macroexp-let2 macroexp-copyable-p temp form
          `(progn (or (cl-typep ,temp ',type)
                      (signal 'wrong-type-argument
-                             (list ,(or string `',type) ,temp ',form)))
+                             (list ,(or string `',(if (eq 'satisfies
+                                                          (car-safe type))
+                                                      (cadr type) type))
+                                   ,temp ',form)))
                  nil))))
 
 ;;;###autoload
diff --git a/lisp/emacs-lisp/cursor-sensor.el b/lisp/emacs-lisp/cursor-sensor.el
index d8e8eeb..d50f7ad 100644
--- a/lisp/emacs-lisp/cursor-sensor.el
+++ b/lisp/emacs-lisp/cursor-sensor.el
@@ -141,60 +141,63 @@ By convention, this is a list of symbols where each 
symbol stands for the
 ;;; Detect cursor movement.
 
 (defun cursor-sensor--detect (&optional window)
-  (unless cursor-sensor-inhibit
-    (let* ((point (window-point window))
-           ;; It's often desirable to make the cursor-sensor-functions property
-           ;; non-sticky on both ends, but that means get-pos-property might
-           ;; never see it.
-           (new (or (get-char-property point 'cursor-sensor-functions)
-                    (unless (<= (point-min) point)
-                      (get-char-property (1- point) 
'cursor-sensor-functions))))
-           (old (window-parameter window 'cursor-sensor--last-state))
-           (oldposmark (car old))
-           (oldpos (or (if oldposmark (marker-position oldposmark))
-                       (point-min)))
-           (start (min oldpos point))
-           (end (max oldpos point)))
-      (unless (or (null old) (eq (marker-buffer oldposmark) (current-buffer)))
-        ;; `window' does not display the same buffer any more!
-        (setcdr old nil))
-      (if (or (and (null new) (null (cdr old)))
-              (and (eq new (cdr old))
-                   (eq (next-single-char-property-change
-                        start 'cursor-sensor-functions nil end)
-                       end)))
-          ;; Clearly nothing to do.
-          nil
-        ;; Maybe something to do.  Let's see exactly what needs to run.
-        (let* ((missing-p
-                (lambda (f)
-                  "Non-nil if F is missing somewhere between START and END."
-                  (let ((pos start)
-                        (missing nil))
-                    (while (< pos end)
-                      (setq pos (next-single-char-property-change
-                                 pos 'cursor-sensor-functions
-                                 nil end))
-                      (unless (memq f (get-char-property
-                                       pos 'cursor-sensor-functions))
-                        (setq missing t)))
-                    missing)))
-               (window (selected-window)))
-          (dolist (f (cdr old))
-            (unless (and (memq f new) (not (funcall missing-p f)))
-              (funcall f window oldpos 'left)))
-          (dolist (f new)
-            (unless (and (memq f (cdr old)) (not (funcall missing-p f)))
-              (funcall f window oldpos 'entered)))))
-
-      ;; Remember current state for next time.
-      ;; Re-read cursor-sensor-functions since the functions may have moved
-      ;; window-point!
-      (if old
-          (progn (move-marker (car old) point)
-                 (setcdr old new))
-        (set-window-parameter window 'cursor-sensor--last-state
-                              (cons (copy-marker point) new))))))
+  (with-current-buffer (window-buffer window)
+    (unless cursor-sensor-inhibit
+      (let* ((point (window-point window))
+             ;; It's often desirable to make the
+             ;; cursor-sensor-functions property non-sticky on both
+             ;; ends, but that means get-pos-property might never
+             ;; see it.
+             (new (or (get-char-property point 'cursor-sensor-functions)
+                      (unless (<= (point-min) point)
+                        (get-char-property (1- point)
+                                           'cursor-sensor-functions))))
+             (old (window-parameter window 'cursor-sensor--last-state))
+             (oldposmark (car old))
+             (oldpos (or (if oldposmark (marker-position oldposmark))
+                         (point-min)))
+             (start (min oldpos point))
+             (end (max oldpos point)))
+        (unless (or (null old) (eq (marker-buffer oldposmark) 
(current-buffer)))
+          ;; `window' does not display the same buffer any more!
+          (setcdr old nil))
+        (if (or (and (null new) (null (cdr old)))
+                (and (eq new (cdr old))
+                     (eq (next-single-char-property-change
+                          start 'cursor-sensor-functions nil end)
+                         end)))
+            ;; Clearly nothing to do.
+            nil
+          ;; Maybe something to do.  Let's see exactly what needs to run.
+          (let* ((missing-p
+                  (lambda (f)
+                    "Non-nil if F is missing somewhere between START and END."
+                    (let ((pos start)
+                          (missing nil))
+                      (while (< pos end)
+                        (setq pos (next-single-char-property-change
+                                   pos 'cursor-sensor-functions
+                                   nil end))
+                        (unless (memq f (get-char-property
+                                         pos 'cursor-sensor-functions))
+                          (setq missing t)))
+                      missing)))
+                 (window (selected-window)))
+            (dolist (f (cdr old))
+              (unless (and (memq f new) (not (funcall missing-p f)))
+                (funcall f window oldpos 'left)))
+            (dolist (f new)
+              (unless (and (memq f (cdr old)) (not (funcall missing-p f)))
+                (funcall f window oldpos 'entered)))))
+
+        ;; Remember current state for next time.
+        ;; Re-read cursor-sensor-functions since the functions may have moved
+        ;; window-point!
+        (if old
+            (progn (move-marker (car old) point)
+                   (setcdr old new))
+          (set-window-parameter window 'cursor-sensor--last-state
+                                (cons (copy-marker point) new)))))))
 
 ;;;###autoload
 (define-minor-mode cursor-sensor-mode
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 85cc8c8..bb7817f 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -2845,7 +2845,6 @@ See `edebug-behavior-alist' for implementations.")
               (if (not (eq edebug-buffer edebug-outside-buffer))
                   (goto-char edebug-outside-point))
               (if (marker-buffer (edebug-mark-marker))
-                  ;; Does zmacs-regions need to be nil while doing set-marker?
                   (set-marker (edebug-mark-marker) edebug-outside-mark))
               ))     ; unwind-protect
          ;; None of the following is done if quit or signal occurs.
diff --git a/lisp/emacs-lisp/eldoc.el b/lisp/emacs-lisp/eldoc.el
index 7a7b8ec..4a2e748 100644
--- a/lisp/emacs-lisp/eldoc.el
+++ b/lisp/emacs-lisp/eldoc.el
@@ -32,17 +32,13 @@
 ;; the one-line documentation for that variable instead, to remind you of
 ;; that variable's meaning.
 
-;; One useful way to enable this minor mode is to put the following in your
-;; .emacs:
-;;
-;;      (add-hook 'emacs-lisp-mode-hook 'eldoc-mode)
-;;      (add-hook 'lisp-interaction-mode-hook 'eldoc-mode)
-;;      (add-hook 'ielm-mode-hook 'eldoc-mode)
-;;      (add-hook 'eval-expression-minibuffer-setup-hook 'eldoc-mode)
-
-;; Major modes for other languages may use ElDoc by defining an
-;; appropriate function as the buffer-local value of
-;; `eldoc-documentation-function'.
+;; This mode is now enabled by default in all major modes that provide
+;; support for it, such as `emacs-lisp-mode'.
+;; This is controlled by `global-eldoc-mode'.
+
+;; Major modes for other languages may use ElDoc by adding an
+;; appropriate function to the buffer-local value of
+;; `eldoc-documentation-functions'.
 
 ;;; Code:
 
@@ -57,20 +53,17 @@ If user input arrives before this interval of time has 
elapsed after the
 last input, no documentation will be printed.
 
 If this variable is set to 0, no idle time is required."
-  :type 'number
-  :group 'eldoc)
+  :type 'number)
 
 (defcustom eldoc-print-after-edit nil
   "If non-nil eldoc info is only shown when editing.
 Changing the value requires toggling `eldoc-mode'."
-  :type 'boolean
-  :group 'eldoc)
+  :type 'boolean)
 
 ;;;###autoload
 (defcustom eldoc-minor-mode-string (purecopy " ElDoc")
   "String to display in mode line when ElDoc Mode is enabled; nil for none."
-  :type '(choice string (const :tag "None" nil))
-  :group 'eldoc)
+  :type '(choice string (const :tag "None" nil)))
 
 (defcustom eldoc-argument-case #'identity
   "Case to display argument names of functions, as a symbol.
@@ -82,8 +75,7 @@ Note that this variable has no effect, unless
 `eldoc-documentation-function' handles it explicitly."
   :type '(radio (function-item upcase)
                (function-item downcase)
-                function)
-  :group 'eldoc)
+                function))
 (make-obsolete-variable 'eldoc-argument-case nil "25.1")
 
 (defcustom eldoc-echo-area-use-multiline-p 'truncate-sym-name-if-fit
@@ -106,15 +98,13 @@ Note that this variable has no effect, unless
   :type '(radio (const :tag "Always" t)
                 (const :tag "Never" nil)
                 (const :tag "Yes, but truncate symbol names if it will\
- enable argument list to fit on one line" truncate-sym-name-if-fit))
-  :group 'eldoc)
+ enable argument list to fit on one line" truncate-sym-name-if-fit)))
 
 (defface eldoc-highlight-function-argument
   '((t (:inherit bold)))
   "Face used for the argument at point in a function's argument list.
 Note that this face has no effect unless the `eldoc-documentation-function'
-handles it explicitly."
-  :group 'eldoc)
+handles it explicitly.")
 
 ;;; No user options below here.
 
@@ -182,8 +172,7 @@ area displays information about a function or variable in 
the
 text where point is.  If point is on a documented variable, it
 displays the first line of that variable's doc string.  Otherwise
 it displays the argument list of the function called in the
-expression point is on."
-  :group 'eldoc :lighter eldoc-minor-mode-string
+expression point is on." :lighter eldoc-minor-mode-string
   (setq eldoc-last-message nil)
   (cond
    ((not (eldoc--supported-p))
@@ -193,19 +182,18 @@ expression point is on."
    (eldoc-mode
     (when eldoc-print-after-edit
       (setq-local eldoc-message-commands (eldoc-edit-message-commands)))
-    (add-hook 'post-command-hook 'eldoc-schedule-timer nil t)
-    (add-hook 'pre-command-hook 'eldoc-pre-command-refresh-echo-area nil t))
+    (add-hook 'post-command-hook #'eldoc-schedule-timer nil t)
+    (add-hook 'pre-command-hook #'eldoc-pre-command-refresh-echo-area nil t))
    (t
     (kill-local-variable 'eldoc-message-commands)
-    (remove-hook 'post-command-hook 'eldoc-schedule-timer t)
-    (remove-hook 'pre-command-hook 'eldoc-pre-command-refresh-echo-area t)
+    (remove-hook 'post-command-hook #'eldoc-schedule-timer t)
+    (remove-hook 'pre-command-hook #'eldoc-pre-command-refresh-echo-area t)
     (when eldoc-timer
       (cancel-timer eldoc-timer)
       (setq eldoc-timer nil)))))
 
 ;;;###autoload
 (define-globalized-minor-mode global-eldoc-mode eldoc-mode turn-on-eldoc-mode
-  :group 'eldoc
   :initialize 'custom-initialize-delay
   :init-value t
   ;; For `read--expression', the usual global mode mechanism of
@@ -222,8 +210,8 @@ expression point is on."
 (defun eldoc--eval-expression-setup ()
   ;; Setup `eldoc', similar to `emacs-lisp-mode'.  FIXME: Call
   ;; `emacs-lisp-mode' itself?
-  (add-function :before-until (local 'eldoc-documentation-function)
-                #'elisp-eldoc-documentation-function)
+  (add-hook 'eldoc-documentation-functions
+            #'elisp-eldoc-documentation-function nil t)
   (eldoc-mode +1))
 
 ;;;###autoload
@@ -233,10 +221,6 @@ See `eldoc-documentation-function' for more detail."
   (when (eldoc--supported-p)
     (eldoc-mode 1)))
 
-(defun eldoc--supported-p ()
-  "Non-nil if an ElDoc function is set for this buffer."
-  (not (memq eldoc-documentation-function '(nil ignore))))
-
 
 (defun eldoc-schedule-timer ()
   "Ensure `eldoc-timer' is running.
@@ -288,7 +272,7 @@ Otherwise work like `message'."
                 (when (stringp format-string)
                   (apply #'format-message format-string args)))
           (force-mode-line-update)))
-    (apply 'message format-string args)))
+    (apply #'message format-string args)))
 
 (defun eldoc-message (&optional string)
   "Display STRING as an ElDoc message if it's non-nil.
@@ -296,9 +280,7 @@ Otherwise work like `message'."
 Also store it in `eldoc-last-message' and return that value."
   (let ((omessage eldoc-last-message))
     (setq eldoc-last-message string)
-    ;; In emacs 19.29 and later, and XEmacs 19.13 and later, all messages
-    ;; are recorded in a log.  Do not put eldoc messages in that log since
-    ;; they are Legion.
+    ;; Do not put eldoc messages in the log since they are Legion.
     ;; Emacs way of preventing log messages.
     (let ((message-log-max nil))
       (cond (eldoc-last-message
@@ -311,12 +293,15 @@ Also store it in `eldoc-last-message' and return that 
value."
   (and (symbolp command)
        (intern-soft (symbol-name command) eldoc-message-commands)))
 
-;; This function goes on pre-command-hook for XEmacs or when using idle
-;; timers in Emacs.  Motion commands clear the echo area for some reason,
+;; This function goes on pre-command-hook.
+;; Motion commands clear the echo area for some reason,
 ;; which make eldoc messages flicker or disappear just before motion
 ;; begins.  This function reprints the last eldoc message immediately
 ;; before the next command executes, which does away with the flicker.
 ;; This doesn't seem to be required for Emacs 19.28 and earlier.
+;; FIXME: The above comment suggests we don't really understand why
+;; this is needed.  Maybe it's not needed any more, but if it is
+;; we should figure out why.
 (defun eldoc-pre-command-refresh-echo-area ()
   "Reprint `eldoc-last-message' in the echo area."
   (and eldoc-last-message
@@ -347,11 +332,49 @@ Also store it in `eldoc-last-message' and return that 
value."
   (not (or executing-kbd-macro (bound-and-true-p edebug-active))))
 
 
-;;;###autoload
-(defvar eldoc-documentation-function #'ignore
+(defvar eldoc-documentation-functions nil
+  "Hook for functions to call to return doc string.
+Each function should accept no arguments and return a one-line
+string for displaying doc about a function etc. appropriate to
+the context around point.  It should return nil if there's no doc
+appropriate for the context.  Typically doc is returned if point
+is on a function-like name or in its arg list.
+
+Major modes should modify this hook locally, for example:
+  (add-hook \\='eldoc-documentation-functions #\\='foo-mode-eldoc nil t)
+so that the global value (i.e. the default value of the hook) is
+taken into account if the major mode specific function does not
+return any documentation.")
+
+(defun eldoc-documentation-default ()
+  "Show first doc string for item at point.
+Default value for `eldoc-documentation-function'."
+  (let ((res (run-hook-with-args-until-success 
'eldoc-documentation-functions)))
+    (when res
+      (if eldoc-echo-area-use-multiline-p res
+        (truncate-string-to-width
+         res (1- (window-width (minibuffer-window))))))))
+
+(defun eldoc-documentation-compose ()
+  "Show multiple doc string results at once.
+Meant as a value for `eldoc-documentation-function'."
+  (let (res)
+    (run-hook-wrapped
+     'eldoc-documentation-functions
+     (lambda (f)
+       (let ((str (funcall f)))
+         (when str (push str res))
+         nil)))
+    (when res
+      (setq res (mapconcat #'identity (nreverse res) ", "))
+      (if eldoc-echo-area-use-multiline-p res
+        (truncate-string-to-width
+         res (1- (window-width (minibuffer-window))))))))
+
+(defcustom eldoc-documentation-function #'eldoc-documentation-default
   "Function to call to return doc string.
 The function of no args should return a one-line string for displaying
-doc about a function etc. appropriate to the context around point.
+doc about a function etc.  appropriate to the context around point.
 It should return nil if there's no doc appropriate for the context.
 Typically doc is returned if point is on a function-like name or in its
 arg list.
@@ -359,14 +382,26 @@ arg list.
 The result is used as is, so the function must explicitly handle
 the variables `eldoc-argument-case' and `eldoc-echo-area-use-multiline-p',
 and the face `eldoc-highlight-function-argument', if they are to have any
-effect.
+effect."
+  :link '(info-link "(emacs) Lisp Doc")
+  :type '(radio (function-item eldoc-documentation-default)
+                (function-item eldoc-documentation-compose)
+                (function :tag "Other function"))
+  :version "28.1")
 
-Major modes should modify this variable using `add-function', for example:
-  (add-function :before-until (local \\='eldoc-documentation-function)
-                #\\='foo-mode-eldoc-function)
-so that the global documentation function (i.e. the default value of the
-variable) is taken into account if the major mode specific function does not
-return any documentation.")
+(defun eldoc--supported-p ()
+  "Non-nil if an ElDoc function is set for this buffer."
+  (and (not (memq eldoc-documentation-function '(nil ignore)))
+       (or eldoc-documentation-functions
+           ;; The old API had major modes set `eldoc-documentation-function'
+           ;; to provide eldoc support.  It's impossible now to determine
+           ;; reliably whether the `eldoc-documentation-function' provides
+           ;; eldoc support (as in the old API) or whether it just provides
+           ;; a way to combine the results of the
+           ;; `eldoc-documentation-functions' (as in the new API).
+           ;; But at least if it's set buffer-locally it's a good hint that
+           ;; there's some eldoc support in the current buffer.
+           (local-variable-p 'eldoc-documentation-function))))
 
 (defun eldoc-print-current-symbol-info ()
   "Print the text produced by `eldoc-documentation-function'."
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index f66122d..3b0f549 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -456,7 +456,7 @@ This will generate compile-time constants from BINDINGS."
          (,(concat "\\_<:" lisp-mode-symbol-regexp "\\_>")
           (0 font-lock-builtin-face))
          ;; ELisp and CLisp `&' keywords as types.
-         (,(concat "\\_<\\&" lisp-mode-symbol-regexp "\\_>")
+         (,(concat "\\_<&" lisp-mode-symbol-regexp "\\_>")
           . font-lock-type-face)
          ;; ELisp regexp grouping constructs
          (,(lambda (bound)
@@ -511,7 +511,7 @@ This will generate compile-time constants from BINDINGS."
          (,(concat "\\_<:" lisp-mode-symbol-regexp "\\_>")
           (0 font-lock-builtin-face))
          ;; ELisp and CLisp `&' keywords as types.
-         (,(concat "\\_<\\&" lisp-mode-symbol-regexp "\\_>")
+         (,(concat "\\_<&" lisp-mode-symbol-regexp "\\_>")
           . font-lock-type-face)
          ;; This is too general -- rms.
          ;; A user complained that he has functions whose names start with `do'
@@ -750,7 +750,7 @@ or to switch back to an existing one."
   (setq-local lisp-indent-function 'common-lisp-indent-function)
   (setq-local find-tag-default-function 'lisp-find-tag-default)
   (setq-local comment-start-skip
-             "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\)\\(;+\\|#|\\) *")
+             "\\(\\(^\\|[^\\\n]\\)\\(\\\\\\\\\\)*\\)\\(;+\\|#|\\) *")
   (setq imenu-case-fold-search t))
 
 (defun lisp-find-tag-default ()
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index c91ee44..4312ab9 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -798,7 +798,7 @@ correspond to previously loaded files (those returned by
         ;; FIXME: not the friendliest, but simple.
         (require 'info)
         (info-initialize)
-        (push pkg-dir Info-directory-list))
+        (add-to-list 'Info-directory-list pkg-dir))
       (push name package-activated-list)
       ;; Don't return nil.
       t)))
@@ -2045,7 +2045,7 @@ Mark the installed package as selected by adding it to
 
 When called from Lisp and optional argument DONT-SELECT is
 non-nil, install the package but do not add it to
-`package-select-packages'.
+`package-selected-packages'.
 
 If PKG is a `package-desc' and it is already installed, don't try
 to install it but still mark it as selected."
@@ -2081,7 +2081,8 @@ to install it but still mark it as selected."
                  (package-compute-transaction () (list (list pkg))))))
         (progn
           (package-download-transaction transaction)
-          (package--quickstart-maybe-refresh))
+          (package--quickstart-maybe-refresh)
+          (message  "Package `%s' installed." name))
       (message "`%s' is already installed" name))))
 
 (defun package-strip-rcs-id (str)
@@ -2860,7 +2861,11 @@ Can be toggled with \\<package-menu-mode-map> 
\\[package-menu-toggle-hiding].
 Installed obsolete packages are always displayed.")
 
 (defun package-menu-toggle-hiding ()
-  "In Package Menu, toggle visibility of obsolete available packages."
+  "In Package Menu, toggle visibility of obsolete available packages.
+
+Also hide packages whose name matches a regexp in user option
+`package-hidden-regexps' (a list).  To add regexps to this list,
+use `package-menu-hide-package'."
   (interactive)
   (package--ensure-package-menu-mode)
   (setq package-menu--hide-packages
@@ -3041,6 +3046,7 @@ column in the header line."
 
 (defun package-menu--generate (remember-pos &optional packages keywords)
   "Populate and display the Package Menu.
+If REMEMBER-POS is non-nil, keep point on the same entry.
 PACKAGES should be t, which means to display all known packages,
 or a list of package names (symbols) to display.
 
@@ -3173,15 +3179,12 @@ Return (PKG-DESC [NAME VERSION STATUS DOC])."
 (defun package-menu--refresh-contents (&optional _arg _noconfirm)
   "In Package Menu, download the Emacs Lisp package archive.
 Fetch the contents of each archive specified in
-`package-archives', and then refresh the package menu.  Signal a
-user-error if there is already a refresh running asynchronously.
+`package-archives', and then refresh the package menu.
 
 `package-menu-mode' sets `revert-buffer-function' to this
 function.  The args ARG and NOCONFIRM, passed from
 `revert-buffer', are ignored."
   (package--ensure-package-menu-mode)
-  (when (and package-menu-async package--downloads-in-progress)
-    (user-error "Package refresh is already in progress, please wait..."))
   (setq package-menu--old-archive-contents package-archive-contents)
   (setq package-menu--new-package-list nil)
   (package-refresh-contents package-menu-async))
@@ -3189,8 +3192,16 @@ function.  The args ARG and NOCONFIRM, passed from
 
 (defun package-menu-hide-package ()
   "Hide in Package Menu packages that match a regexp.
-Prompts for the regexp to match against package names.
-The default regexp will hide only the package whose name is at point."
+Prompt for the regexp to match against package names.
+The default regexp will hide only the package whose name is at point.
+
+The regexp is added to the list in the user option
+`package-hidden-regexps' and saved for future sessions.
+
+To unhide a package, type
+`\\[customize-variable] RET package-hidden-regexps'.
+
+Type \\[package-menu-toggle-hiding] to toggle package hiding."
   (interactive)
   (package--ensure-package-menu-mode)
   (declare (interactive-only "change `package-hidden-regexps' instead."))
@@ -3209,7 +3220,7 @@ The default regexp will hide only the package whose name 
is at point."
                              package-archive-contents)))
       (message "Packages to hide: %d.  Type `%s' to toggle or `%s' to 
customize"
                (length hidden)
-               (substitute-command-keys "\\[package-menu-toggle-hidding]")
+               (substitute-command-keys "\\[package-menu-toggle-hiding]")
                (substitute-command-keys "\\[customize-variable] RET 
package-hidden-regexps")))))
 
 
diff --git a/lisp/emacs-lisp/rx.el b/lisp/emacs-lisp/rx.el
index b4cab57..aa4b2ad 100644
--- a/lisp/emacs-lisp/rx.el
+++ b/lisp/emacs-lisp/rx.el
@@ -134,7 +134,7 @@ Each entry is:
                 (if (cdr def)
                     (error "Not an `rx' symbol definition: %s" form)
                   (car def)))))
-        ((consp form)
+        ((and (consp form) (symbolp (car form)))
          (let* ((op (car form))
                 (def (rx--lookup-def op)))
            (and def
@@ -254,22 +254,39 @@ Left-fold the list L, starting with X, by the binary 
function F."
     (setq l (cdr l)))
   x)
 
+(defun rx--normalise-or-arg (form)
+  "Normalise the `or' argument FORM.
+Characters become strings, user-definitions and `eval' forms are expanded,
+and `or' forms are normalised recursively."
+  (cond ((characterp form)
+         (char-to-string form))
+        ((and (consp form) (memq (car form) '(or |)))
+         (cons (car form) (mapcar #'rx--normalise-or-arg (cdr form))))
+        ((and (consp form) (eq (car form) 'eval))
+         (rx--normalise-or-arg (rx--expand-eval (cdr form))))
+        (t
+         (let ((expanded (rx--expand-def form)))
+           (if expanded
+               (rx--normalise-or-arg expanded)
+             form)))))
+
+(defun rx--all-string-or-args (body)
+  "If BODY only consists of strings or such `or' forms, return all the strings.
+Otherwise throw `rx--nonstring'."
+  (mapcan (lambda (form)
+            (cond ((stringp form) (list form))
+                  ((and (consp form) (memq (car form) '(or |)))
+                   (rx--all-string-or-args (cdr form)))
+                  (t (throw 'rx--nonstring nil))))
+          body))
+
 (defun rx--translate-or (body)
   "Translate an or-pattern of zero or more rx items.
 Return (REGEXP . PRECEDENCE)."
   ;; FIXME: Possible improvements:
   ;;
-  ;; - Turn single characters to strings: (or ?a ?b) -> (or "a" "b"),
-  ;;   so that they can be candidates for regexp-opt.
-  ;;
-  ;; - Translate compile-time strings (`eval' forms), again for regexp-opt.
-  ;;
   ;; - Flatten sub-patterns first: (or (or A B) (or C D)) -> (or A B C D)
-  ;;   in order to improve effectiveness of regexp-opt.
-  ;;   This would also help composability.
-  ;;
-  ;; - Use associativity to run regexp-opt on contiguous subsets of arguments
-  ;;   if not all of them are strings.  Example:
+  ;;   Then call regexp-opt on runs of string arguments. Example:
   ;;   (or (+ digit) "CHARLIE" "CHAN" (+ blank))
   ;;   -> (or (+ digit) (or "CHARLIE" "CHAN") (+ blank))
   ;;
@@ -279,33 +296,32 @@ Return (REGEXP . PRECEDENCE)."
   ;;   so that (or "@" "%" digit (any "A-Z" space) (syntax word))
   ;;        -> (any "@" "%" digit "A-Z" space word)
   ;;        -> "[A-Z@%[:digit:][:space:][:word:]]"
-  ;;
-  ;; Problem: If a subpattern is carefully written to be
-  ;; optimizable by regexp-opt, how do we prevent the transforms
-  ;; above from destroying that property?
-  ;; Example: (or "a" (or "abc" "abd" "abe"))
   (cond
    ((null body)                    ; No items: a never-matching regexp.
     (rx--empty))
    ((null (cdr body))              ; Single item.
     (rx--translate (car body)))
-   ((rx--every #'stringp body)     ; All strings.
-    (cons (list (regexp-opt body nil))
-          t))
-   ((rx--every #'rx--charset-p body)  ; All charsets.
-    (rx--translate-union nil body))
    (t
-    (cons (append (car (rx--translate (car body)))
-                  (mapcan (lambda (item)
-                            (cons "\\|" (car (rx--translate item))))
-                          (cdr body)))
-          nil))))
+    (let* ((args (mapcar #'rx--normalise-or-arg body))
+           (all-strings (catch 'rx--nonstring (rx--all-string-or-args args))))
+      (cond
+       (all-strings                       ; Only strings.
+        (cons (list (regexp-opt all-strings nil))
+              t))
+       ((rx--every #'rx--charset-p args)  ; All charsets.
+        (rx--translate-union nil args))
+       (t
+        (cons (append (car (rx--translate (car args)))
+                      (mapcan (lambda (item)
+                                (cons "\\|" (car (rx--translate item))))
+                              (cdr args)))
+              nil)))))))
 
 (defun rx--charset-p (form)
   "Whether FORM looks like a charset, only consisting of character intervals
 and set operations."
   (or (and (consp form)
-           (or (and (memq (car form) '(any 'in 'char))
+           (or (and (memq (car form) '(any in char))
                     (rx--every (lambda (x) (not (symbolp x))) (cdr form)))
                (and (memq (car form) '(not or | intersection))
                     (rx--every #'rx--charset-p (cdr form)))))
@@ -344,7 +360,7 @@ character X becomes (?X . ?X).  Return the intervals in a 
list."
                       (push (cons start end) intervals))
                      (t
                       (error "Invalid rx `any' range: %s"
-                             (substring str i 3))))
+                             (substring str i (+ i 3)))))
                (setq i (+ i 3))))
             (t
              ;; Single character.
@@ -450,6 +466,10 @@ classes."
            (not negated))
       (cons (list (regexp-quote (char-to-string (caar items))))
             t))
+     ;; Negated newline.
+     ((and (equal items '((?\n . ?\n)))
+           negated)
+      (rx--translate-symbol 'nonl))
      ;; At least one character or class, possibly negated.
      (t
       (cons
@@ -836,11 +856,15 @@ Return (REGEXP . PRECEDENCE)."
            (cons (list (list 'regexp-quote arg)) 'seq))
           (t (error "rx `literal' form with non-string argument")))))
 
-(defun rx--translate-eval (body)
-  "Translate the `eval' form.  Return (REGEXP . PRECEDENCE)."
+(defun rx--expand-eval (body)
+  "Expand `eval' arguments.  Return a new rx form."
   (unless (and body (null (cdr body)))
     (error "rx `eval' form takes exactly one argument"))
-  (rx--translate (eval (car body))))
+  (eval (car body)))
+
+(defun rx--translate-eval (body)
+  "Translate the `eval' form.  Return (REGEXP . PRECEDENCE)."
+  (rx--translate (rx--expand-eval body)))
 
 (defvar rx--regexp-atomic-regexp nil)
 
diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el
index 0b946dd..e3037a7 100644
--- a/lisp/emacs-lisp/seq.el
+++ b/lisp/emacs-lisp/seq.el
@@ -58,6 +58,10 @@
 
 (eval-when-compile (require 'cl-generic))
 
+;; We used to use some sequence functions from cl-lib, but this
+;; dependency was swapped around so that it will be easier to make
+;; seq.el preloaded in the future.  See also Bug#39761#26.
+
 (defmacro seq-doseq (spec &rest body)
   "Loop over a sequence.
 Evaluate BODY with VAR bound to each element of SEQUENCE, in turn.
@@ -285,7 +289,11 @@ sorted.  FUNCTION must be a function of one argument."
 TYPE must be one of following symbols: vector, string or list.
 
 \n(fn TYPE SEQUENCE...)"
-  (apply #'cl-concatenate type (seq-map #'seq-into-sequence sequences)))
+  (pcase type
+    ('vector (apply #'vconcat sequences))
+    ('string (apply #'concat sequences))
+    ('list (apply #'append (append sequences '(nil))))
+    (_ (error "Not a sequence type name: %S" type))))
 
 (cl-defgeneric seq-into-sequence (sequence)
   "Convert SEQUENCE into a sequence.
diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el
index 6b464bc..11cc198 100644
--- a/lisp/emacs-lisp/syntax.el
+++ b/lisp/emacs-lisp/syntax.el
@@ -89,33 +89,33 @@ Put first the functions more likely to cause a change and 
cheaper to compute.")
                (:constructor make-ppss)
                (:copier nil)
                (:type list))
-  (depth nil :documentation "depth in parens")
+  (depth nil :documentation "Depth in parens.")
   (innermost-start
    nil :documentation
-   "character address of start of innermost containing list; nil if none.")
+   "Character address of start of innermost containing list; nil if none.")
   (last-complete-sexp-start
    nil :documentation
-   "character address of start of last complete sexp terminated.")
+   "Character address of start of last complete sexp terminated.")
   (string-terminator nil :documentation "\
-non-nil if inside a string.
-(it is the character that will terminate the string, or t if the
+Non-nil if inside a string.
+\(it is the character that will terminate the string, or t if the
 string should be terminated by a generic string delimiter.)")
-  (comment-nesting nil :documentation "\
+  (comment-depth nil :documentation "\
 nil if outside a comment, t if inside a non-nestable comment,
 else an integer (the current comment nesting).")
-  (after-quote-p nil :documentation "t if following a quote character.")
-  (minimum-paren-depth
-   nil :documentation "the minimum paren-depth encountered during this scan.")
-  (comment-style nil :documentation "style of comment, if any.")
+  (quoted-p nil :documentation "t if following a quote character.")
+  (min-depth
+   nil :documentation "The minimum depth in parens encountered during this 
scan.")
+  (comment-style nil :documentation "Style of comment, if any.")
   (comment-or-string-start
    nil :documentation
-   "character address of start of comment or string; nil if not in one.")
-  (open-paren-positions
+   "Character address of start of comment or string; nil if not in one.")
+  (open-parens
    nil :documentation
    "List of positions of currently open parens, outermost first.")
   (two-character-syntax nil :documentation "\
 When the last position scanned holds the first character of a
-(potential) two character construct, the syntax of that position,
+\(potential) two character construct, the syntax of that position,
 otherwise nil.  That construct can be a two character comment
 delimiter or an Escaped or Char-quoted character."))
 
diff --git a/lisp/emacs-lisp/timer-list.el b/lisp/emacs-lisp/timer-list.el
index 4fa31f3..4cebd73 100644
--- a/lisp/emacs-lisp/timer-list.el
+++ b/lisp/emacs-lisp/timer-list.el
@@ -52,7 +52,7 @@
                       (let ((repeat (aref timer 4)))
                         (cond
                          ((numberp repeat)
-                          (format "%.2f" (/ repeat 60)))
+                          (format "%.1f" repeat))
                          ((null repeat)
                           "-")
                          (t
@@ -91,7 +91,18 @@
   (setq header-line-format
         (concat (propertize " " 'display '(space :align-to 0))
                 (format "%4s %10s %8s %s"
-                "Idle" "Next" "Repeat" "Function"))))
+                        (propertize "Idle"
+                                    'mouse-face 'highlight
+                                    'help-echo "* marks idle timers")
+                        (propertize "Next"
+                                    'mouse-face 'highlight
+                                    'help-echo "Time in sec till next 
invocation")
+                        (propertize "Repeat"
+                                    'mouse-face 'highlight
+                                    'help-echo "Symbol: repeat; number: repeat 
interval in sec")
+                        (propertize "Function"
+                                    'mouse-face 'highlight
+                                    'help-echo "Function called by timer")))))
 
 (defun timer-list-cancel ()
   "Cancel the timer on the line under point."
diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el
index 74a9495..61fd05c 100644
--- a/lisp/emacs-lisp/timer.el
+++ b/lisp/emacs-lisp/timer.el
@@ -378,9 +378,6 @@ This function returns a timer object which you can use in
                                  (decoded-time-year now)
                                  (decoded-time-zone now)))))))
 
-  (or (consp time)
-      (error "Invalid time format"))
-
   (let ((timer (timer-create)))
     (timer-set-time timer time repeat)
     (timer-set-function timer function args)
diff --git a/lisp/emulation/edt.el b/lisp/emulation/edt.el
index 8dc18eb..e70b446 100644
--- a/lisp/emulation/edt.el
+++ b/lisp/emulation/edt.el
@@ -178,10 +178,8 @@
 (defvar edt-user-global-map)
 (defvar rect-start-point)
 
-;;;
-;;;  Version Information
-;;;
 (defconst edt-version "4.0" "EDT Emulation version number.")
+(make-obsolete-variable 'edt-version nil "28.1")
 
 ;;;
 ;;;  User Configurable Variables
diff --git a/lisp/emulation/viper-mous.el b/lisp/emulation/viper-mous.el
index 294705f..6ecfec5 100644
--- a/lisp/emulation/viper-mous.el
+++ b/lisp/emulation/viper-mous.el
@@ -66,20 +66,13 @@ or a triple-click."
 ;; time interval in millisecond within which successive clicks are
 ;; considered related
 (defcustom viper-multiclick-timeout (if (viper-window-display-p)
-                                     (if (featurep 'xemacs)
-                                         mouse-track-multi-click-time
-                                       double-click-time)
+                                        double-click-time
                                    500)
   "Time interval in millisecond within which successive mouse clicks are
 considered related."
   :type 'integer
   :group 'viper-mouse)
 
-;; current event click count; XEmacs only
-(defvar viper-current-click-count 0)
-;; time stamp of the last click event; XEmacs only
-(defvar viper-last-click-event-timestamp 0)
-
 ;; Local variable used to toggle wraparound search on click.
 (viper-deflocalvar  viper-mouse-click-search-noerror t)
 
@@ -279,11 +272,9 @@ See `viper-surrounding-word' for the definition of a word 
in this case."
               (setq interrupting-event (read-event))
               (viper-mouse-event-p last-input-event)))
            (progn ; interrupted wait
-             (setq viper-global-prefix-argument arg)
-             ;; count this click for XEmacs
-             (viper-event-click-count click))
+              (setq viper-global-prefix-argument arg))
          ;; uninterrupted wait or the interrupting event wasn't a mouse event
-         (setq click-count (viper-event-click-count click))
+          (setq click-count (event-click-count click))
          (if (> click-count 1)
              (setq arg viper-global-prefix-argument
                    viper-global-prefix-argument nil))
@@ -300,33 +291,8 @@ See `viper-surrounding-word' for the definition of a word 
in this case."
       (string-match "\\(mouse-\\|frame\\|screen\\|track\\)"
                    (prin1-to-string (viper-event-key event)))))
 
-;; XEmacs has no double-click events.  So, we must simulate.
-;; So, we have to simulate event-click-count.
-(defun viper-event-click-count (click)
-  (if (featurep 'xemacs) (viper-event-click-count-xemacs click)
-    (event-click-count click)))
-
-(when (featurep 'xemacs)
-
-  ;; kind of semaphore for updating viper-current-click-count
-  (defvar viper-counting-clicks-p nil)
-
-  (defun viper-event-click-count-xemacs (click)
-    (let ((time-delta (- (event-timestamp click)
-                        viper-last-click-event-timestamp))
-         inhibit-quit)
-      (while viper-counting-clicks-p
-       (ignore))
-      (setq viper-counting-clicks-p t)
-      (if (> time-delta viper-multiclick-timeout)
-         (setq viper-current-click-count 0))
-      (discard-input)
-      (setq viper-current-click-count (1+ viper-current-click-count)
-           viper-last-click-event-timestamp (event-timestamp click))
-      (setq viper-counting-clicks-p nil)
-      (if (viper-sit-for-short viper-multiclick-timeout t)
-         viper-current-click-count
-       0))))
+(define-obsolete-function-alias 'viper-event-click-count
+  'event-click-count "28.1")
 
 (declare-function viper-forward-word "viper-cmd" (arg))
 (declare-function viper-adjust-window "viper-cmd" ())
@@ -364,11 +330,9 @@ this command.
            (setq viper-global-prefix-argument (or viper-global-prefix-argument
                                                   arg)
                  ;; remember command that was before the multiclick
-                 this-command last-command)
-           ;; make sure we counted this event---needed for XEmacs only
-           (viper-event-click-count click))
+                  this-command last-command))
        ;; uninterrupted wait
-       (setq click-count (viper-event-click-count click))
+        (setq click-count (event-click-count click))
        (setq click-word (viper-mouse-click-get-word click nil click-count))
 
        (if (> click-count 1)
diff --git a/lisp/emulation/viper-util.el b/lisp/emulation/viper-util.el
index ebad850..1561204 100644
--- a/lisp/emulation/viper-util.el
+++ b/lisp/emulation/viper-util.el
@@ -205,6 +205,7 @@ Otherwise return the normal value."
 ;; incorrect.  However, this gives correct result in our cases, since we are
 ;; testing for sufficiently high Emacs versions.
 (defun viper-check-version (op major minor &optional type-of-emacs)
+  (declare (obsolete nil "28.1"))
   (if (and (boundp 'emacs-major-version) (boundp 'emacs-minor-version))
       (and (cond ((eq type-of-emacs 'xemacs) (featurep 'xemacs))
                 ((eq type-of-emacs 'emacs) (featurep 'emacs))
diff --git a/lisp/erc/erc-autoaway.el b/lisp/erc/erc-autoaway.el
index be7baca..0950cec 100644
--- a/lisp/erc/erc-autoaway.el
+++ b/lisp/erc/erc-autoaway.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2002-2004, 2006-2020 Free Software Foundation, Inc.
 
 ;; Author: Jorgen Schaefer <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; URL: https://www.emacswiki.org/emacs/ErcAutoAway
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el
index b1a829c..57c8e73 100644
--- a/lisp/erc/erc-backend.el
+++ b/lisp/erc/erc-backend.el
@@ -4,7 +4,7 @@
 
 ;; Filename: erc-backend.el
 ;; Author: Lawrence Mitchell <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Created: 2004-05-7
 ;; Keywords: IRC chat client internet
 
diff --git a/lisp/erc/erc-button.el b/lisp/erc/erc-button.el
index cb1b71b..5e6f7c8 100644
--- a/lisp/erc/erc-button.el
+++ b/lisp/erc/erc-button.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 1996-2004, 2006-2020 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: irc, button, url, regexp
 ;; URL: https://www.emacswiki.org/emacs/ErcButton
 
diff --git a/lisp/erc/erc-capab.el b/lisp/erc/erc-capab.el
index 129f502..fc45725 100644
--- a/lisp/erc/erc-capab.el
+++ b/lisp/erc/erc-capab.el
@@ -2,7 +2,7 @@
 
 ;; Copyright (C) 2006-2020 Free Software Foundation, Inc.
 
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 
 ; This file is part of GNU Emacs.
 
diff --git a/lisp/erc/erc-compat.el b/lisp/erc/erc-compat.el
index f433abc..c77d5ab 100644
--- a/lisp/erc/erc-compat.el
+++ b/lisp/erc/erc-compat.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2002-2003, 2005-2020 Free Software Foundation, Inc.
 
 ;; Author: Alex Schroeder <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; URL: https://www.emacswiki.org/emacs/ERC
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-dcc.el b/lisp/erc/erc-dcc.el
index e121003..26701ce 100644
--- a/lisp/erc/erc-dcc.el
+++ b/lisp/erc/erc-dcc.el
@@ -6,7 +6,7 @@
 ;; Author: Ben A. Mesander <address@hidden>
 ;;         Noah Friedman <address@hidden>
 ;;         Per Persson <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: comm, processes
 ;; Created: 1994-01-23
 
diff --git a/lisp/erc/erc-desktop-notifications.el 
b/lisp/erc/erc-desktop-notifications.el
index 7c32429..1e65f8f 100644
--- a/lisp/erc/erc-desktop-notifications.el
+++ b/lisp/erc/erc-desktop-notifications.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2012-2020 Free Software Foundation, Inc.
 
 ;; Author: Julien Danjou <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: comm
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-ezbounce.el b/lisp/erc/erc-ezbounce.el
index a2d58e9..5c2faff 100644
--- a/lisp/erc/erc-ezbounce.el
+++ b/lisp/erc/erc-ezbounce.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2002, 2004, 2006-2020 Free Software Foundation, Inc.
 
 ;; Author: Andreas Fuchs <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: comm
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-fill.el b/lisp/erc/erc-fill.el
index 6abbe39..39a8be5 100644
--- a/lisp/erc/erc-fill.el
+++ b/lisp/erc/erc-fill.el
@@ -4,7 +4,7 @@
 
 ;; Author: Andreas Fuchs <address@hidden>
 ;;         Mario Lang <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; URL: https://www.emacswiki.org/emacs/ErcFilling
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-goodies.el b/lisp/erc/erc-goodies.el
index 809f8f0..94d5de2 100644
--- a/lisp/erc/erc-goodies.el
+++ b/lisp/erc/erc-goodies.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2001-2020 Free Software Foundation, Inc.
 
 ;; Author: Jorgen Schaefer <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 
 ;; Most code is taken verbatim from erc.el, see there for the original
 ;; authors.
diff --git a/lisp/erc/erc-ibuffer.el b/lisp/erc/erc-ibuffer.el
index 7a04ff1..7aee770 100644
--- a/lisp/erc/erc-ibuffer.el
+++ b/lisp/erc/erc-ibuffer.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2002, 2004, 2006-2020 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: comm
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-identd.el b/lisp/erc/erc-identd.el
index 70a0917..e2115f5 100644
--- a/lisp/erc/erc-identd.el
+++ b/lisp/erc/erc-identd.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003, 2006-2020 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: comm, processes
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-imenu.el b/lisp/erc/erc-imenu.el
index 3fb91ec..c05633a 100644
--- a/lisp/erc/erc-imenu.el
+++ b/lisp/erc/erc-imenu.el
@@ -4,7 +4,7 @@
 ;; Inc.
 
 ;; Author: Mario Lang <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: comm
 ;; URL: https://www.emacswiki.org/emacs/ErcImenu
 
diff --git a/lisp/erc/erc-join.el b/lisp/erc/erc-join.el
index 7bc4f00..280d6bf 100644
--- a/lisp/erc/erc-join.el
+++ b/lisp/erc/erc-join.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2002-2004, 2006-2020 Free Software Foundation, Inc.
 
 ;; Author: Alex Schroeder <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: irc
 ;; URL: https://www.emacswiki.org/emacs/ErcAutoJoin
 
diff --git a/lisp/erc/erc-lang.el b/lisp/erc/erc-lang.el
index 3ab1f03..95b94f6 100644
--- a/lisp/erc/erc-lang.el
+++ b/lisp/erc/erc-lang.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2002, 2004, 2006-2020 Free Software Foundation, Inc.
 
 ;; Author: Alex Schroeder <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Old-Version: 1.0.0
 ;; URL: https://www.emacswiki.org/emacs/ErcLang
 ;; Keywords: comm languages processes
diff --git a/lisp/erc/erc-list.el b/lisp/erc/erc-list.el
index 4fba9f4..5faeabb 100644
--- a/lisp/erc/erc-list.el
+++ b/lisp/erc/erc-list.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2008-2020 Free Software Foundation, Inc.
 
 ;; Author: Tom Tromey <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Old-Version: 0.1
 ;; URL: https://www.emacswiki.org/emacs/ErcList
 ;; Keywords: comm
diff --git a/lisp/erc/erc-log.el b/lisp/erc/erc-log.el
index e53f3c0..1bad6d1 100644
--- a/lisp/erc/erc-log.el
+++ b/lisp/erc/erc-log.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003-2020 Free Software Foundation, Inc.
 
 ;; Author: Lawrence Mitchell <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; URL: https://www.emacswiki.org/emacs/ErcLogging
 ;; Keywords: IRC, chat, client, Internet, logging
 
diff --git a/lisp/erc/erc-match.el b/lisp/erc/erc-match.el
index c0f3bf1..3107ff2 100644
--- a/lisp/erc/erc-match.el
+++ b/lisp/erc/erc-match.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2002-2020 Free Software Foundation, Inc.
 
 ;; Author: Andreas Fuchs <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: comm, faces
 ;; URL: https://www.emacswiki.org/emacs/ErcMatch
 
diff --git a/lisp/erc/erc-menu.el b/lisp/erc/erc-menu.el
index 4bc758a..9c02899 100644
--- a/lisp/erc/erc-menu.el
+++ b/lisp/erc/erc-menu.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2001-2002, 2004-2020 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: comm, processes, menu
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-netsplit.el b/lisp/erc/erc-netsplit.el
index 2816acd..e3dc52b 100644
--- a/lisp/erc/erc-netsplit.el
+++ b/lisp/erc/erc-netsplit.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2002-2004, 2006-2020 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: comm
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-networks.el b/lisp/erc/erc-networks.el
index 0696993..1234962 100644
--- a/lisp/erc/erc-networks.el
+++ b/lisp/erc/erc-networks.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2002, 2004-2020 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: comm
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-notify.el b/lisp/erc/erc-notify.el
index 80ae0c3..1b092c8 100644
--- a/lisp/erc/erc-notify.el
+++ b/lisp/erc/erc-notify.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2002-2004, 2006-2020 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; URL: https://www.emacswiki.org/emacs/ErcNotify
 ;; Keywords: comm
 
diff --git a/lisp/erc/erc-page.el b/lisp/erc/erc-page.el
index c6eca51..339beb0 100644
--- a/lisp/erc/erc-page.el
+++ b/lisp/erc/erc-page.el
@@ -2,7 +2,7 @@
 
 ;; Copyright (C) 2002, 2004, 2006-2020 Free Software Foundation, Inc.
 
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 
 ;; This file is part of GNU Emacs.
 
diff --git a/lisp/erc/erc-pcomplete.el b/lisp/erc/erc-pcomplete.el
index 65b0f66..7643fa8 100644
--- a/lisp/erc/erc-pcomplete.el
+++ b/lisp/erc/erc-pcomplete.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2002-2004, 2006-2020 Free Software Foundation, Inc.
 
 ;; Author: Sacha Chua <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: comm, convenience
 ;; URL: https://www.emacswiki.org/emacs/ErcCompletion
 
diff --git a/lisp/erc/erc-replace.el b/lisp/erc/erc-replace.el
index dfb2062..8bd97be 100644
--- a/lisp/erc/erc-replace.el
+++ b/lisp/erc/erc-replace.el
@@ -4,7 +4,7 @@
 ;; Inc.
 
 ;; Author: Andreas Fuchs <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; URL: https://www.emacswiki.org/emacs/ErcReplace
 ;; Keywords: IRC, client, Internet
 
diff --git a/lisp/erc/erc-ring.el b/lisp/erc/erc-ring.el
index 7594b8e..bc5f0ed 100644
--- a/lisp/erc/erc-ring.el
+++ b/lisp/erc/erc-ring.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2001-2004, 2006-2020 Free Software Foundation, Inc.
 
 ;; Author: Alex Schroeder <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: comm
 ;; URL: https://www.emacswiki.org/emacs/ErcHistory
 
diff --git a/lisp/erc/erc-services.el b/lisp/erc/erc-services.el
index 2d1d855..c0011f9 100644
--- a/lisp/erc/erc-services.el
+++ b/lisp/erc/erc-services.el
@@ -2,7 +2,7 @@
 
 ;; Copyright (C) 2002-2004, 2006-2020 Free Software Foundation, Inc.
 
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; URL: https://www.emacswiki.org/emacs/ErcNickserv
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-sound.el b/lisp/erc/erc-sound.el
index 96d41a6..91ce1c6 100644
--- a/lisp/erc/erc-sound.el
+++ b/lisp/erc/erc-sound.el
@@ -2,7 +2,7 @@
 
 ;; Copyright (C) 2002-2003, 2006-2020 Free Software Foundation, Inc.
 
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; URL: https://www.emacswiki.org/emacs/ErcSound
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-speedbar.el b/lisp/erc/erc-speedbar.el
index 1c0635c..b64e42b 100644
--- a/lisp/erc/erc-speedbar.el
+++ b/lisp/erc/erc-speedbar.el
@@ -4,7 +4,7 @@
 
 ;; Author: Mario Lang <address@hidden>
 ;; Contributor: Eric M. Ludlam <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; URL: https://www.emacswiki.org/emacs/ErcSpeedbar
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc-spelling.el b/lisp/erc/erc-spelling.el
index 4632329..cedffbc 100644
--- a/lisp/erc/erc-spelling.el
+++ b/lisp/erc/erc-spelling.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2005-2020 Free Software Foundation, Inc.
 
 ;; Author: Jorgen Schaefer <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: irc
 ;; URL: https://www.emacswiki.org/emacs/ErcSpelling
 
diff --git a/lisp/erc/erc-stamp.el b/lisp/erc/erc-stamp.el
index 3717dc0..cbab2f9 100644
--- a/lisp/erc/erc-stamp.el
+++ b/lisp/erc/erc-stamp.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2002-2004, 2006-2020 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: comm, processes, timestamp
 ;; URL: https://www.emacswiki.org/emacs/ErcStamp
 
diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el
index f8c80d2..db8ccbb 100644
--- a/lisp/erc/erc-track.el
+++ b/lisp/erc/erc-track.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2002-2020 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: comm, faces
 ;; URL: https://www.emacswiki.org/emacs/ErcChannelTracking
 
diff --git a/lisp/erc/erc-truncate.el b/lisp/erc/erc-truncate.el
index 9de33ff..fff073a 100644
--- a/lisp/erc/erc-truncate.el
+++ b/lisp/erc/erc-truncate.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003-2004, 2006-2020 Free Software Foundation, Inc.
 
 ;; Author: Andreas Fuchs <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; URL: https://www.emacswiki.org/emacs/ErcTruncation
 ;; Keywords: IRC, chat, client, Internet, logging
 
diff --git a/lisp/erc/erc-xdcc.el b/lisp/erc/erc-xdcc.el
index 61087de..2a236d2 100644
--- a/lisp/erc/erc-xdcc.el
+++ b/lisp/erc/erc-xdcc.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2003-2004, 2006-2020 Free Software Foundation, Inc.
 
 ;; Author: Mario Lang <address@hidden>
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: comm, processes
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
index a467551..5c63382 100644
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -10,7 +10,7 @@
 ;;               Gergely Nagy (address@hidden)
 ;;               David Edmondson (address@hidden)
 ;;               Kelvin White (address@hidden)
-;; Maintainer: Amin Bandali <address@hidden>
+;; Maintainer: Amin Bandali <address@hidden>
 ;; Keywords: IRC, chat, client, Internet
 
 ;; Version: 5.3
@@ -75,7 +75,7 @@
 (eval-when-compile (require 'subr-x))
 
 (defvar erc-official-location
-  "https://www.emacswiki.org/emacs/ERC (mailing list: address@hidden)"
+  "https://www.emacswiki.org/emacs/ERC (mailing list: address@hidden)"
   "Location of the ERC client on the Internet.")
 
 (defgroup erc nil
diff --git a/lisp/eshell/em-glob.el b/lisp/eshell/em-glob.el
index 43483dc..a32a6ab 100644
--- a/lisp/eshell/em-glob.el
+++ b/lisp/eshell/em-glob.el
@@ -232,8 +232,6 @@ resulting regular expression."
            (regexp-quote (substring pattern matched-in-pattern))
            "\\'")))
 
-(defvar ange-cache)                    ; XEmacs?  See esh-util
-
 (defun eshell-extended-glob (glob)
   "Return a list of files generated from GLOB, perhaps looking for DIRS-ONLY.
 This function almost fully supports zsh style filename generation
@@ -252,7 +250,7 @@ the form:
 
    (INCLUDE-REGEXP EXCLUDE-REGEXP (PRED-FUNC-LIST) (MOD-FUNC-LIST))"
   (let ((paths (eshell-split-path glob))
-       eshell-glob-matches message-shown ange-cache)
+        eshell-glob-matches message-shown)
     (unwind-protect
        (if (and (cdr paths)
                 (file-name-absolute-p (car paths)))
diff --git a/lisp/eshell/em-ls.el b/lisp/eshell/em-ls.el
index 70b3ad6..c1a022e 100644
--- a/lisp/eshell/em-ls.el
+++ b/lisp/eshell/em-ls.el
@@ -239,7 +239,6 @@ scope during the evaluation of TEST-SEXP."
 (defvar show-recursive)
 (defvar show-size)
 (defvar sort-method)
-(defvar ange-cache)
 (defvar dired-flag)
 
 ;;; Functions:
@@ -406,7 +405,7 @@ Sort entries alphabetically across.")
      (setq listing-style 'by-columns))
    (unless args
      (setq args (list ".")))
-   (let ((eshell-ls-exclude-regexp eshell-ls-exclude-regexp) ange-cache)
+   (let ((eshell-ls-exclude-regexp eshell-ls-exclude-regexp))
      (when ignore-pattern
        (unless (eshell-using-module 'eshell-glob)
         (error (concat "-I option requires that `eshell-glob'"
diff --git a/lisp/eshell/em-pred.el b/lisp/eshell/em-pred.el
index 04bf3ff..7219af4 100644
--- a/lisp/eshell/em-pred.el
+++ b/lisp/eshell/em-pred.el
@@ -478,7 +478,7 @@ that `ls -l' will show in the first column of its display."
 (defsubst eshell-pred-file-mode (mode)
   "Return a test which tests that MODE pertains to the file."
   `(lambda (file)
-     (let ((modes (file-modes file)))
+     (let ((modes (file-modes file 'nofollow)))
        (if modes
           (logand ,mode modes)))))
 
diff --git a/lisp/eshell/em-prompt.el b/lisp/eshell/em-prompt.el
index 25b8cca..9ae5ae1 100644
--- a/lisp/eshell/em-prompt.el
+++ b/lisp/eshell/em-prompt.el
@@ -187,7 +187,7 @@ See `eshell-prompt-regexp'."
   "Move to end of Nth previous prompt in the buffer.
 See `eshell-prompt-regexp'."
   (interactive "p")
-  (beginning-of-line)            ; Don't count prompt on current line.
+  (forward-line 0)            ; Don't count prompt on current line.
   (eshell-next-prompt (- n)))
 
 (defun eshell-skip-prompt ()
diff --git a/lisp/eshell/em-unix.el b/lisp/eshell/em-unix.el
index 51699a7..fbd3cfb 100644
--- a/lisp/eshell/em-unix.el
+++ b/lisp/eshell/em-unix.el
@@ -469,8 +469,6 @@ Remove the DIRECTORY(ies), if they are empty.")
           (eshell-parse-command
            (format "tar %s %s" tar-args archive) args))))
 
-(defvar ange-cache)                    ; XEmacs?  See esh-util
-
 ;; this is to avoid duplicating code...
 (defmacro eshell-mvcpln-template (command action func query-var
                                          force-var &optional preserve)
@@ -488,8 +486,7 @@ Remove the DIRECTORY(ies), if they are empty.")
                       (or (not no-dereference)
                           (not (file-symlink-p (car args)))))))
         (eshell-shorthand-tar-command ,command args)
-       (let ((target (car (last args)))
-            ange-cache)
+       (let ((target (car (last args))))
         (setcdr (last args 2) nil)
         (eshell-shuffle-files
          ,command ,action args target ,func nil
@@ -924,7 +921,7 @@ Summarize disk usage of each FILE, recursively for 
directories.")
        ;; filesystem support means nothing under Windows
        (if (eshell-under-windows-p)
           (setq only-one-filesystem nil))
-       (let ((size 0.0) ange-cache)
+       (let ((size 0.0))
         (while args
           (if only-one-filesystem
               (setq only-one-filesystem
diff --git a/lisp/eshell/esh-util.el b/lisp/eshell/esh-util.el
index 0328c1f..ab030ed 100644
--- a/lisp/eshell/esh-util.el
+++ b/lisp/eshell/esh-util.el
@@ -647,14 +647,8 @@ gid format.  Valid values are `string' and `integer', 
defaulting to
        (let ((base (file-name-nondirectory file))
              (dir (file-name-directory file)))
          (if (string-equal "" base) (setq base "."))
-         (if (boundp 'ange-cache)
-             (setq entry (cdr (assoc base (cdr (assoc dir ange-cache))))))
          (unless entry
            (setq entry (eshell-parse-ange-ls dir))
-           (if (boundp 'ange-cache)
-               (setq ange-cache
-                     (cons (cons dir entry)
-                           ange-cache)))
            (if entry
                (let ((fentry (assoc base (cdr entry))))
                  (if fentry
diff --git a/lisp/files.el b/lisp/files.el
index 37d42c3..14760c3 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -4776,6 +4776,7 @@ BACKUPNAME is the backup file name, which is the old file 
renamed."
   ;; Create temp files with strict access rights.  It's easy to
   ;; loosen them later, whereas it's impossible to close the
   ;; time-window of loose permissions otherwise.
+ (let (nofollow-flag)
   (with-file-modes ?\700
     (when (condition-case nil
              ;; Try to overwrite old backup first.
@@ -4786,6 +4787,7 @@ BACKUPNAME is the backup file name, which is the old file 
renamed."
                   (when (file-exists-p to-name)
                     (delete-file to-name))
                   (copy-file from-name to-name nil t t)
+                  (setq nofollow-flag 'nofollow)
                   nil)
               (file-already-exists t))
        ;; The file was somehow created by someone else between
@@ -4798,7 +4800,7 @@ BACKUPNAME is the backup file name, which is the old file 
renamed."
               (with-demoted-errors
                 (set-file-extended-attributes to-name extended-attributes)))
     (and modes
-        (set-file-modes to-name (logand modes #o1777)))))
+        (set-file-modes to-name (logand modes #o1777) nofollow-flag)))))
 
 (defvar file-name-version-regexp
   "\\(?:~\\|\\.~[-[:alnum:]:#@^._]+\\(?:~[[:digit:]]+\\)?~\\)"
@@ -6004,7 +6006,8 @@ into NEWNAME instead."
   ;; If default-directory is a remote directory, make sure we find its
   ;; copy-directory handler.
   (let ((handler (or (find-file-name-handler directory 'copy-directory)
-                    (find-file-name-handler newname 'copy-directory))))
+                    (find-file-name-handler newname 'copy-directory)))
+       (follow parents))
     (if handler
        (funcall handler 'copy-directory directory
                  newname keep-time parents copy-contents)
@@ -6024,7 +6027,8 @@ into NEWNAME instead."
                 (or parents (not (file-directory-p newname)))
               (setq newname (concat newname
                                     (file-name-nondirectory directory))))
-            (make-directory (directory-file-name newname) parents)))
+            (make-directory (directory-file-name newname) parents))
+           (t (setq follow t)))
 
       ;; Copy recursively.
       (dolist (file
@@ -6044,9 +6048,10 @@ into NEWNAME instead."
       ;; Set directory attributes.
       (let ((modes (file-modes directory))
            (times (and keep-time (file-attribute-modification-time
-                                  (file-attributes directory)))))
-       (if modes (set-file-modes newname modes))
-       (if times (set-file-times newname times))))))
+                                  (file-attributes directory))))
+           (follow-flag (unless follow 'nofollow)))
+       (if modes (set-file-modes newname modes follow-flag))
+       (if times (set-file-times newname times follow-flag))))))
 
 
 ;; At time of writing, only info uses this.
diff --git a/lisp/font-lock.el b/lisp/font-lock.el
index 506c888..e0955b7 100644
--- a/lisp/font-lock.el
+++ b/lisp/font-lock.el
@@ -1120,9 +1120,10 @@ locking for a mode, and is not meant to be called from 
lisp functions."
   "Make sure the region BEG...END has been fontified.
 If the region is not specified, it defaults to the entire accessible
 portion of the buffer."
-  (font-lock-set-defaults)
-  (funcall font-lock-ensure-function
-           (or beg (point-min)) (or end (point-max))))
+  (when (font-lock-specified-p t)
+    (font-lock-set-defaults)
+    (funcall font-lock-ensure-function
+             (or beg (point-min)) (or end (point-max)))))
 
 (defun font-lock-default-fontify-buffer ()
   "Fontify the whole buffer using `font-lock-fontify-region-function'."
diff --git a/lisp/frame.el b/lisp/frame.el
index 16ee758..6c2f774 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -713,6 +713,18 @@ The optional argument PARAMETERS specifies additional 
frame parameters."
                       (x-display-list))))
   (make-frame (cons (cons 'display display) parameters)))
 
+(defun make-frame-on-current-monitor (&optional parameters)
+  "Make a frame on the currently selected monitor.
+Like `make-frame-on-monitor' and with the same PARAMETERS as in `make-frame'."
+  (interactive)
+  (let* ((monitor-workarea
+          (cdr (assq 'workarea (frame-monitor-attributes))))
+         (geometry-parameters
+          (when monitor-workarea
+            `((top . ,(nth 1 monitor-workarea))
+              (left . ,(nth 0 monitor-workarea))))))
+    (make-frame (append geometry-parameters parameters))))
+
 (defun make-frame-on-monitor (monitor &optional display parameters)
   "Make a frame on monitor MONITOR.
 The optional argument DISPLAY can be a display name, and the optional
@@ -2676,11 +2688,7 @@ See also `toggle-frame-maximized'."
              (set-frame-parameter frame 'fullscreen fullscreen-restore)
            (set-frame-parameter frame 'fullscreen nil)))
       (modify-frame-parameters
-       frame `((fullscreen . fullboth) (fullscreen-restore . ,fullscreen))))
-    ;; Manipulating a frame without waiting for the fullscreen
-    ;; animation to complete can cause a crash, or other unexpected
-    ;; behavior, on macOS (bug#28496).
-    (when (featurep 'cocoa) (sleep-for 0.5))))
+       frame `((fullscreen . fullboth) (fullscreen-restore . ,fullscreen))))))
 
 
 ;;;; Key bindings
diff --git a/lisp/gnus/deuglify.el b/lisp/gnus/deuglify.el
index 0ce4a7d..647f643 100644
--- a/lisp/gnus/deuglify.el
+++ b/lisp/gnus/deuglify.el
@@ -403,9 +403,9 @@ NODISPLAY is non-nil, don't redisplay the article buffer."
     (gnus-with-article-buffer
       (article-goto-body)
       (when (re-search-forward
-            (concat "^[" cite-marks " \t]*--* ?[^-]+ [^-]+ ?--*\\s *\n"
+            (concat "^[" cite-marks " \t]*--*[^-]+ [^-]+--*\\s *\n"
                     "[^\n:]+:[ \t]*\\([^\n]+\\)\n"
-                    "\\([^\n:]+:[ \t]*[^\n]+\n\\)+")
+                    "\\([^\n:]+:[^\n]+\n\\)+")
             nil t)
        (gnus-kill-all-overlays)
        (replace-match "\\1 wrote:\n")
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 754655d..6b9610d 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -7774,11 +7774,11 @@ also be Lisp expression evaluating to a string),
 BUTTON: is the number of the regexp grouping actually matching the button,
 FORM: is a Lisp expression which must eval to true for the button to
 be added,
-CALLBACK: is the function to call when the user push this button, and each
+CALLBACK: is the function to call when the user pushes this button, and each
 PAR: is a number of a regexp grouping whose text will be passed to CALLBACK.
 
-CALLBACK can also be a variable, in that case the value of that
-variable it the real callback function."
+CALLBACK can also be a variable, in which case the value of that
+variable is the real callback function."
   :group 'gnus-article-buttons
   :type '(repeat (list (choice regexp variable sexp)
                       (integer :tag "Button")
diff --git a/lisp/gnus/gnus-cloud.el b/lisp/gnus/gnus-cloud.el
index 4d8764b..da6231d 100644
--- a/lisp/gnus/gnus-cloud.el
+++ b/lisp/gnus/gnus-cloud.el
@@ -285,8 +285,8 @@ Use old data if FORCE-OLDER is not nil."
     (insert new-contents)
     (when (file-exists-p file-name)
       (rename-file file-name (car (find-backup-file-name file-name))))
-    (write-region (point-min) (point-max) file-name)
-    (set-file-times file-name (parse-iso8601-time-string date))))
+    (write-region (point-min) (point-max) file-name nil nil nil 'excl)
+    (set-file-times file-name (parse-iso8601-time-string date) 'nofollow)))
 
 (defun gnus-cloud-file-covered-p (file-name)
   (let ((matched nil))
diff --git a/lisp/gnus/gnus-delay.el b/lisp/gnus/gnus-delay.el
index 8dae4ef..63e938e 100644
--- a/lisp/gnus/gnus-delay.el
+++ b/lisp/gnus/gnus-delay.el
@@ -75,7 +75,11 @@ DELAY is a string, giving the length of the time.  Possible 
values are:
   variable `gnus-delay-default-hour', minute and second are zero.
 
 * hh:mm for a specific time.  Use 24h format.  If it is later than this
-  time, then the deadline is tomorrow, else today."
+  time, then the deadline is tomorrow, else today.
+
+The value of `message-draft-headers' determines which headers are
+generated when the article is delayed.  Remaining headers are
+generated when the article is sent."
   (interactive
    (list (read-string
          "Target date (YYYY-MM-DD), time (hh:mm), or length of delay (units in 
[mhdwMY]): "
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
index 1fd2575..873923e 100644
--- a/lisp/gnus/gnus-start.el
+++ b/lisp/gnus/gnus-start.el
@@ -2812,7 +2812,7 @@ values from `gnus-newsrc-hashtb', and write a new value of
                               (file-exists-p working-file)))
 
                (unwind-protect
-                    (progn
+                   (with-file-modes (file-modes startup-file)
                       (gnus-with-output-to-file working-file
                        (gnus-gnus-to-quick-newsrc-format)
                        (gnus-run-hooks 'gnus-save-quick-newsrc-hook))
@@ -2822,14 +2822,12 @@ values from `gnus-newsrc-hashtb', and write a new value 
of
                       ;; file.
                       (let ((buffer-backed-up nil)
                             (buffer-file-name startup-file)
-                            (file-precious-flag t)
-                            (setmodes (file-modes startup-file)))
+                           (file-precious-flag t))
                        ;; Backup the current version of the startup file.
                        (backup-buffer)
 
                        ;; Replace the existing startup file with the temp file.
                        (rename-file working-file startup-file t)
-                       (gnus-set-file-modes startup-file setmodes)
                        (setq gnus-save-newsrc-file-last-timestamp
                              (file-attribute-modification-time
                               (file-attributes startup-file)))))
@@ -3004,14 +3002,14 @@ SPECIFIC-VARIABLES, or those in `gnus-variable-list'."
 
 (defun gnus-slave-save-newsrc ()
   (with-current-buffer gnus-dribble-buffer
-    (let ((slave-name
-          (make-temp-file (concat gnus-current-startup-file "-slave-")))
-         (modes (ignore-errors
-                  (file-modes (concat gnus-current-startup-file ".eld")))))
-      (let ((coding-system-for-write gnus-ding-file-coding-system))
-       (gnus-write-buffer slave-name))
-      (when modes
-       (gnus-set-file-modes slave-name modes)))))
+    (with-file-modes (or (ignore-errors
+                          (file-modes
+                           (concat gnus-current-startup-file ".eld")))
+                        (default-file-modes))
+      (let ((slave-name
+            (make-temp-file (concat gnus-current-startup-file "-slave-"))))
+       (let ((coding-system-for-write gnus-ding-file-coding-system))
+         (gnus-write-buffer slave-name))))))
 
 (defun gnus-master-read-slave-newsrc ()
   (let ((slave-files
diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el
index eb0fd25..83a8516 100644
--- a/lisp/gnus/gnus-util.el
+++ b/lisp/gnus/gnus-util.el
@@ -1601,10 +1601,10 @@ empty directories from OLD-PATH."
                         (file-truename
                          (concat old-dir "..")))))))))
 
-(defun gnus-set-file-modes (filename mode)
+(defun gnus-set-file-modes (filename mode &optional flag)
   "Wrapper for set-file-modes."
   (ignore-errors
-    (set-file-modes filename mode)))
+    (set-file-modes filename mode flag)))
 
 (defun gnus-rescale-image (image size)
   "Rescale IMAGE to SIZE if possible.
diff --git a/lisp/gnus/gnus-uu.el b/lisp/gnus/gnus-uu.el
index d40ba9c..4037221 100644
--- a/lisp/gnus/gnus-uu.el
+++ b/lisp/gnus/gnus-uu.el
@@ -1781,8 +1781,8 @@ Gnus might fail to display all of it.")
                 gnus-uu-tmp-dir)))
 
       (setq gnus-uu-work-dir
-           (make-temp-file (concat gnus-uu-tmp-dir "gnus") 'dir))
-      (gnus-set-file-modes gnus-uu-work-dir 448)
+           (with-file-modes #o700
+             (make-temp-file (concat gnus-uu-tmp-dir "gnus") 'dir)))
       (setq gnus-uu-work-dir (file-name-as-directory gnus-uu-work-dir))
       (push (cons gnus-newsgroup-name gnus-uu-work-dir)
            gnus-uu-tmp-alist))))
diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el
index f5b6878..acf35a3 100644
--- a/lisp/gnus/mail-source.el
+++ b/lisp/gnus/mail-source.el
@@ -695,7 +695,7 @@ Deleting old (> %s day(s)) incoming mail file `%s'." diff 
bfile)
                         mail-source-movemail-program
                         nil errors nil from to)))))
              (when (file-exists-p to)
-               (set-file-modes to mail-source-default-file-modes))
+               (set-file-modes to mail-source-default-file-modes 'nofollow))
              (if (and (or (not (buffer-modified-p errors))
                           (zerop (buffer-size errors)))
                       (and (numberp result)
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 3abeec7..eb9c79d 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -215,9 +215,9 @@ Also see `message-required-news-headers' and
   :link '(custom-manual "(message)Message Headers")
   :type '(repeat sexp))
 
-(defcustom message-draft-headers '(References From Date)
+(defcustom message-draft-headers '(References From)
   "Headers to be generated when saving a draft message."
-  :version "22.1"
+  :version "28.1"
   :group 'message-news
   :group 'message-headers
   :link '(custom-manual "(message)Message Headers")
@@ -322,7 +322,7 @@ used."
   :group 'message-various)
 
 (defcustom message-subject-trailing-was-ask-regexp
-  "[ \t]*\\([[(]+[Ww][Aa][Ss]:?[ \t]*.*[])]+\\)"
+  "[ \t]*\\([[(]+[Ww][Aa][Ss].*[])]+\\)"
   "Regexp matching \"(was: <old subject>)\" in the subject line.
 
 The function `message-strip-subject-trailing-was' uses this regexp if
@@ -337,7 +337,7 @@ It is okay to create some false positives here, as the user 
is asked."
   :type 'regexp)
 
 (defcustom message-subject-trailing-was-regexp
-  "[ \t]*\\((*[Ww][Aa][Ss]:[ \t]*.*)\\)"
+  "[ \t]*\\((*[Ww][Aa][Ss]:.*)\\)"
   "Regexp matching \"(was: <old subject>)\" in the subject line.
 
 If `message-subject-trailing-was-query' is set to t, the subject is
diff --git a/lisp/gnus/mm-archive.el b/lisp/gnus/mm-archive.el
index 71676c1..56253af 100644
--- a/lisp/gnus/mm-archive.el
+++ b/lisp/gnus/mm-archive.el
@@ -42,8 +42,9 @@
         dir)
     (unless decoder
       (error "No decoder found for %s" type))
-    (setq dir (make-temp-file (expand-file-name "emm." mm-tmp-directory) 'dir))
-    (set-file-modes dir #o700)
+    (with-file-modes #o700
+      (setq dir (make-temp-file (expand-file-name "emm." mm-tmp-directory)
+                               'dir)))
     (unwind-protect
        (progn
          (mm-with-unibyte-buffer
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index d33bb56..96695aa 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -602,11 +602,10 @@ files left at the next time."
        (push temp fails)))
     (if fails
        ;; Schedule the deletion of the files left at the next time.
-       (progn
+       (with-file-modes #o600
          (write-region (concat (mapconcat 'identity (nreverse fails) "\n")
                                "\n")
-                       nil cache-file nil 'silent)
-         (set-file-modes cache-file #o600))
+                       nil cache-file nil 'silent))
       (when (file-exists-p cache-file)
        (ignore-errors (delete-file cache-file))))
     (setq mm-temp-files-to-be-deleted nil)))
@@ -911,8 +910,10 @@ external if displayed external."
        ;; The function is a string to be executed.
        (mm-insert-part handle)
        (mm-add-meta-html-tag handle)
-       (let* ((dir (make-temp-file
-                    (expand-file-name "emm." mm-tmp-directory) 'dir))
+       ;; We create a private sub-directory where we store our files.
+       (let* ((dir (with-file-modes #o700
+                     (make-temp-file
+                      (expand-file-name "emm." mm-tmp-directory) 'dir)))
               (filename (or
                          (mail-content-type-get
                           (mm-handle-disposition handle) 'filename)
@@ -924,8 +925,6 @@ external if displayed external."
                              (assoc "needsterminal" mime-info)))
               (copiousoutput (assoc "copiousoutput" mime-info))
               file buffer)
-         ;; We create a private sub-directory where we store our files.
-         (set-file-modes dir #o700)
          (if filename
              (setq file (expand-file-name
                          (gnus-map-function mm-file-name-rewrite-functions
@@ -941,14 +940,15 @@ external if displayed external."
                ;; `mailcap-mime-extensions'.
                (setq suffix (car (rassoc (mm-handle-media-type handle)
                                          mailcap-mime-extensions))))
-             (setq file (make-temp-file (expand-file-name "mm." dir)
-                                        nil suffix))))
+             (setq file (with-file-modes #o600
+                          (make-temp-file (expand-file-name "mm." dir)
+                                          nil suffix)))))
          (let ((coding-system-for-write mm-binary-coding-system))
            (write-region (point-min) (point-max) file nil 'nomesg))
          ;; The file is deleted after the viewer exists.  If the users edits
          ;; the file, changes will be lost.  Set file to read-only to make it
          ;; clear.
-         (set-file-modes file #o400)
+         (set-file-modes file #o400 'nofollow)
          (message "Viewing with %s" method)
          (cond
           (needsterm
diff --git a/lisp/gnus/mm-uu.el b/lisp/gnus/mm-uu.el
index 61bf0a7..aedd6c9 100644
--- a/lisp/gnus/mm-uu.el
+++ b/lisp/gnus/mm-uu.el
@@ -192,7 +192,7 @@ This can be either \"inline\" or \"attachment\".")
      ,(lambda () (mm-uu-verbatim-marks-extract 0 0))
      nil)
     (LaTeX
-     "^\\([\\\\%][^\n]+\n\\)*\\\\documentclass.*[[{%]"
+     "^\\([\\%][^\n]+\n\\)*\\\\documentclass.*[[{%]"
      "^\\\\end{document}"
      ,#'mm-uu-latex-extract
      nil
diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el
index cdd8f3d..2006837 100644
--- a/lisp/gnus/mml.el
+++ b/lisp/gnus/mml.el
@@ -487,11 +487,8 @@ type detected."
                 (= (length cont) 1)
                 content-type)
        (setcdr (assq 'type (cdr (car cont))) content-type))
-      (when (and (consp (car cont))
-                (= (length cont) 1)
-                (fboundp 'libxml-parse-html-region)
-                (equal (cdr (assq 'type (car cont))) "text/html"))
-       (setq cont (mml-expand-html-into-multipart-related (car cont))))
+      (when (fboundp 'libxml-parse-html-region)
+       (setq cont (mapcar 'mml-expand-all-html-into-multipart-related cont)))
       (prog1
          (with-temp-buffer
            (set-buffer-multibyte nil)
@@ -510,6 +507,18 @@ type detected."
            (buffer-string))
        (setq message-options options)))))
 
+(defun mml-expand-all-html-into-multipart-related (cont)
+  (cond ((and (eq (car cont) 'part)
+             (equal (cdr (assq 'type cont)) "text/html"))
+        (mml-expand-html-into-multipart-related cont))
+       ((eq (car cont) 'multipart)
+        (let ((cur (cdr cont)))
+          (while (consp cur)
+            (setcar cur (mml-expand-all-html-into-multipart-related (car cur)))
+            (setf cur (cdr cur))))
+        cont)
+       (t cont)))
+
 (defun mml-expand-html-into-multipart-related (cont)
   (let ((new-parts nil)
        (cid 1))
@@ -538,8 +547,7 @@ type detected."
                        new-parts))
                (setq cid (1+ cid)))))))
       ;; We have local images that we want to include.
-      (if (not new-parts)
-         (list cont)
+      (when new-parts
        (setcdr (assq 'contents cont) (buffer-string))
        (setq cont
              (nconc (list 'multipart (cons 'type "related"))
@@ -552,8 +560,8 @@ type detected."
                                       (nth 1 new-part)
                                       (nth 2 new-part))
                                    (id . ,(concat "<" (nth 0 new-part)
-                                                  ">")))))))
-       cont))))
+                                                  ">"))))))))
+      cont)))
 
 (autoload 'image-property "image")
 
diff --git a/lisp/gnus/nnbabyl.el b/lisp/gnus/nnbabyl.el
index cb22933..480d794 100644
--- a/lisp/gnus/nnbabyl.el
+++ b/lisp/gnus/nnbabyl.el
@@ -544,7 +544,7 @@
       (setq buffer-file-name nnbabyl-mbox-file)
       (insert "BABYL OPTIONS:\n\n\^_")
       (nnmail-write-region
-       (point-min) (point-max) nnbabyl-mbox-file t 'nomesg))))
+       (point-min) (point-max) nnbabyl-mbox-file t 'nomesg nil 'excl))))
 
 (defun nnbabyl-read-mbox ()
   (nnmail-activate 'nnbabyl)
diff --git a/lisp/gnus/nndiary.el b/lisp/gnus/nndiary.el
index ac394ae..945ef03 100644
--- a/lisp/gnus/nndiary.el
+++ b/lisp/gnus/nndiary.el
@@ -1115,7 +1115,7 @@ all.  This may very well take some time.")
          (widen))
        (setq files (cdr files)))
       (with-current-buffer nov-buffer
-       (nnmail-write-region 1 (point-max) nov nil 'nomesg)
+       (nnmail-write-region 1 (point-max) nov nil 'nomesg nil 'excl)
        (kill-buffer (current-buffer))))))
 
 (defun nndiary-nov-delete-article (group article)
diff --git a/lisp/gnus/nnfolder.el b/lisp/gnus/nnfolder.el
index d1eeb04..c27af17 100644
--- a/lisp/gnus/nnfolder.el
+++ b/lisp/gnus/nnfolder.el
@@ -735,7 +735,7 @@ deleted.  Point is left where the deleted region was."
                       (or nnfolder-file-coding-system-for-write
                           nnfolder-file-coding-system-for-write)))
                  (nnmail-write-region (point-min) (point-min)
-                                      file t 'nomesg)))
+                                      file t 'nomesg nil 'excl)))
              (when (setq nnfolder-current-buffer (nnfolder-read-folder group))
                (set-buffer nnfolder-current-buffer)
                (push (list group nnfolder-current-buffer)
diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el
index 6e01b5c..3be843c 100644
--- a/lisp/gnus/nnmail.el
+++ b/lisp/gnus/nnmail.el
@@ -1953,12 +1953,14 @@ If TIME is nil, then return the cutoff time for oldness 
instead."
       (unless (re-search-forward "^Message-ID[ \t]*:" nil t)
        (insert "Message-ID: " (nnmail-message-id) "\n")))))
 
-(defun nnmail-write-region (start end filename &optional append visit lockname)
+(defun nnmail-write-region (start end filename
+                                 &optional append visit lockname mustbenew)
   "Do a `write-region', and then set the file modes."
   (let ((coding-system-for-write nnmail-file-coding-system)
        (file-name-coding-system nnmail-pathname-coding-system))
-    (write-region start end filename append visit lockname)
-    (set-file-modes filename nnmail-default-file-modes)))
+    (write-region start end filename append visit lockname mustbenew)
+    (set-file-modes filename nnmail-default-file-modes
+                   (when (eq mustbenew 'excl) 'nofollow))))
 
 ;;;
 ;;; Status functions
diff --git a/lisp/gnus/nnmbox.el b/lisp/gnus/nnmbox.el
index a191f88..8b3d802 100644
--- a/lisp/gnus/nnmbox.el
+++ b/lisp/gnus/nnmbox.el
@@ -613,7 +613,7 @@
          (dir (file-name-directory nnmbox-mbox-file)))
       (and dir (gnus-make-directory dir))
       (nnmail-write-region (point-min) (point-min)
-                          nnmbox-mbox-file t 'nomesg))))
+                          nnmbox-mbox-file t 'nomesg nil 'excl))))
 
 (defun nnmbox-read-mbox ()
   (nnmail-activate 'nnmbox)
diff --git a/lisp/gnus/nnml.el b/lisp/gnus/nnml.el
index 2c39ab8..baf5d54 100644
--- a/lisp/gnus/nnml.el
+++ b/lisp/gnus/nnml.el
@@ -901,7 +901,7 @@ Unless no-active is non-nil, update the active file too."
                (nnheader-insert-nov headers)))
            (widen))))
       (with-current-buffer nov-buffer
-       (nnmail-write-region (point-min) (point-max) nov nil 'nomesg)
+       (nnmail-write-region (point-min) (point-max) nov nil 'nomesg nil 'excl)
        (kill-buffer (current-buffer))))))
 
 (defun nnml-nov-delete-article (group article)
diff --git a/lisp/gnus/spam-stat.el b/lisp/gnus/spam-stat.el
index 8a4161e..2e03608 100644
--- a/lisp/gnus/spam-stat.el
+++ b/lisp/gnus/spam-stat.el
@@ -174,7 +174,7 @@ no effect when spam-stat is invoked through spam.el."
 
 (defcustom spam-stat-score-buffer-user-functions nil
   "List of additional scoring functions.
-Called  one by one on the buffer.
+Called one by one on the buffer.
 
 If all of these functions return non-nil answers, these numerical
 answers are added to the computed spam stat score on the buffer.  If
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index 36c2a8b..cc00c72 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -944,7 +944,7 @@ it is displayed along with the global value."
     (unless (buffer-live-p buffer) (setq buffer (current-buffer)))
     (unless (frame-live-p frame) (setq frame (selected-frame)))
     (if (not (symbolp variable))
-       (message "You did not specify a variable")
+       (user-error "You didn't specify a variable")
       (save-excursion
        (let ((valvoid (not (with-current-buffer buffer (boundp variable))))
              val val-start-pos locus)
@@ -968,7 +968,7 @@ it is displayed along with the global value."
                                    " is a variable defined in `%s'.\n"
                                    (if (eq file-name 'C-source)
                                        "C source code"
-                                     (file-name-nondirectory file-name))))
+                                     (help-fns-short-filename file-name))))
                           (with-current-buffer standard-output
                             (save-excursion
                               (re-search-backward (substitute-command-keys
@@ -1000,6 +1000,8 @@ it is displayed along with the global value."
                    (terpri)
                     (let ((buf (current-buffer)))
                       (with-temp-buffer
+                        (lisp-mode-variables nil)
+                        (set-syntax-table emacs-lisp-mode-syntax-table)
                         (insert print-rep)
                         (pp-buffer)
                         (let ((pp-buffer (current-buffer)))
@@ -1350,7 +1352,7 @@ If FRAME is omitted or nil, use the selected frame."
              (setq file-name (find-lisp-object-file-name f 'defface))
              (when file-name
                (princ (substitute-command-keys "Defined in `"))
-               (princ (file-name-nondirectory file-name))
+               (princ (help-fns-short-filename file-name))
                (princ (substitute-command-keys "'"))
                ;; Make a hyperlink to the library.
                (save-excursion
@@ -1433,7 +1435,7 @@ current buffer and the selected frame, respectively."
                                t nil nil
                                (if found (symbol-name v-or-f)))))
      (list (if (equal val "")
-              v-or-f (intern val)))))
+              (or v-or-f "") (intern val)))))
   (if (not (symbolp symbol))
       (user-error "You didn't specify a function or variable"))
   (unless (buffer-live-p buffer) (setq buffer (current-buffer)))
@@ -1642,7 +1644,7 @@ keymap value."
                       " defined in `%s'.\n\n"
                       (if (eq file-name 'C-source)
                           "C source code"
-                        (file-name-nondirectory file-name))))
+                        (help-fns-short-filename file-name))))
               (save-excursion
                 (re-search-backward (substitute-command-keys
                                      "`\\([^`']+\\)'")
@@ -1658,7 +1660,115 @@ keymap value."
     ;; Cleanup.
     (when used-gentemp
       (makunbound keymap))))
-
+
+;;;###autoload
+(defun describe-mode (&optional buffer)
+  "Display documentation of current major mode and minor modes.
+A brief summary of the minor modes comes first, followed by the
+major mode description.  This is followed by detailed
+descriptions of the minor modes, each on a separate page.
+
+For this to work correctly for a minor mode, the mode's indicator
+variable \(listed in `minor-mode-alist') must also be a function
+whose documentation describes the minor mode.
+
+If called from Lisp with a non-nil BUFFER argument, display
+documentation for the major and minor modes of that buffer."
+  (interactive "@")
+  (unless buffer (setq buffer (current-buffer)))
+  (help-setup-xref (list #'describe-mode buffer)
+                  (called-interactively-p 'interactive))
+  ;; For the sake of help-do-xref and help-xref-go-back,
+  ;; don't switch buffers before calling `help-buffer'.
+  (with-help-window (help-buffer)
+    (with-current-buffer buffer
+      (let (minor-modes)
+       ;; Older packages do not register in minor-mode-list but only in
+       ;; minor-mode-alist.
+       (dolist (x minor-mode-alist)
+         (setq x (car x))
+         (unless (memq x minor-mode-list)
+           (push x minor-mode-list)))
+       ;; Find enabled minor mode we will want to mention.
+       (dolist (mode minor-mode-list)
+         ;; Document a minor mode if it is listed in minor-mode-alist,
+         ;; non-nil, and has a function definition.
+         (let ((fmode (or (get mode :minor-mode-function) mode)))
+           (and (boundp mode) (symbol-value mode)
+                (fboundp fmode)
+                (let ((pretty-minor-mode
+                       (if (string-match "\\(\\(-minor\\)?-mode\\)?\\'"
+                                         (symbol-name fmode))
+                           (capitalize
+                            (substring (symbol-name fmode)
+                                       0 (match-beginning 0)))
+                         fmode)))
+                  (push (list fmode pretty-minor-mode
+                              (format-mode-line (assq mode minor-mode-alist)))
+                        minor-modes)))))
+       ;; Narrowing is not a minor mode, but its indicator is part of
+       ;; mode-line-modes.
+       (when (buffer-narrowed-p)
+         (push '(narrow-to-region "Narrow" " Narrow") minor-modes))
+       (setq minor-modes
+             (sort minor-modes
+                   (lambda (a b) (string-lessp (cadr a) (cadr b)))))
+       (when minor-modes
+         (princ "Enabled minor modes:\n")
+         (make-local-variable 'help-button-cache)
+         (with-current-buffer standard-output
+           (dolist (mode minor-modes)
+             (let ((mode-function (nth 0 mode))
+                   (pretty-minor-mode (nth 1 mode))
+                   (indicator (nth 2 mode)))
+               (save-excursion
+                 (goto-char (point-max))
+                 (princ "\n\f\n")
+                 (push (point-marker) help-button-cache)
+                 ;; Document the minor modes fully.
+                  (insert-text-button
+                   pretty-minor-mode 'type 'help-function
+                   'help-args (list mode-function)
+                   'button '(t))
+                 (princ (format " minor mode (%s):\n"
+                                (if (zerop (length indicator))
+                                    "no indicator"
+                                  (format "indicator%s"
+                                          indicator))))
+                 (princ (help-split-fundoc (documentation mode-function)
+                                            nil 'doc)))
+               (insert-button pretty-minor-mode
+                              'action (car help-button-cache)
+                              'follow-link t
+                              'help-echo "mouse-2, RET: show full information")
+               (newline)))
+           (forward-line -1)
+           (fill-paragraph nil)
+           (forward-line 1))
+
+         (princ "\n(Information about these minor modes follows the major mode 
info.)\n\n"))
+       ;; Document the major mode.
+       (let ((mode mode-name))
+         (with-current-buffer standard-output
+            (let ((start (point)))
+              (insert (format-mode-line mode nil nil buffer))
+              (add-text-properties start (point) '(face bold)))))
+       (princ " mode")
+       (let* ((mode major-mode)
+              (file-name (find-lisp-object-file-name mode nil)))
+         (when file-name
+           (princ (format-message " defined in `%s'"
+                                   (help-fns-short-filename file-name)))
+           ;; Make a hyperlink to the library.
+           (with-current-buffer standard-output
+             (save-excursion
+               (re-search-backward (substitute-command-keys "`\\([^`']+\\)'")
+                                    nil t)
+               (help-xref-button 1 'help-function-def mode file-name)))))
+       (princ ":\n")
+       (princ (help-split-fundoc (documentation major-mode) nil 'doc)))))
+  ;; For the sake of IELM and maybe others
+  nil)
 
 ;;; Replacements for old lib-src/ programs.  Don't seem especially useful.
 
diff --git a/lisp/help.el b/lisp/help.el
index 45cbaad..e40ed47 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -879,114 +879,6 @@ current buffer."
             (princ ", which is ")
            (describe-function-1 defn)))))))
 
-(defun describe-mode (&optional buffer)
-  "Display documentation of current major mode and minor modes.
-A brief summary of the minor modes comes first, followed by the
-major mode description.  This is followed by detailed
-descriptions of the minor modes, each on a separate page.
-
-For this to work correctly for a minor mode, the mode's indicator
-variable \(listed in `minor-mode-alist') must also be a function
-whose documentation describes the minor mode.
-
-If called from Lisp with a non-nil BUFFER argument, display
-documentation for the major and minor modes of that buffer."
-  (interactive "@")
-  (unless buffer (setq buffer (current-buffer)))
-  (help-setup-xref (list #'describe-mode buffer)
-                  (called-interactively-p 'interactive))
-  ;; For the sake of help-do-xref and help-xref-go-back,
-  ;; don't switch buffers before calling `help-buffer'.
-  (with-help-window (help-buffer)
-    (with-current-buffer buffer
-      (let (minor-modes)
-       ;; Older packages do not register in minor-mode-list but only in
-       ;; minor-mode-alist.
-       (dolist (x minor-mode-alist)
-         (setq x (car x))
-         (unless (memq x minor-mode-list)
-           (push x minor-mode-list)))
-       ;; Find enabled minor mode we will want to mention.
-       (dolist (mode minor-mode-list)
-         ;; Document a minor mode if it is listed in minor-mode-alist,
-         ;; non-nil, and has a function definition.
-         (let ((fmode (or (get mode :minor-mode-function) mode)))
-           (and (boundp mode) (symbol-value mode)
-                (fboundp fmode)
-                (let ((pretty-minor-mode
-                       (if (string-match "\\(\\(-minor\\)?-mode\\)?\\'"
-                                         (symbol-name fmode))
-                           (capitalize
-                            (substring (symbol-name fmode)
-                                       0 (match-beginning 0)))
-                         fmode)))
-                  (push (list fmode pretty-minor-mode
-                              (format-mode-line (assq mode minor-mode-alist)))
-                        minor-modes)))))
-       ;; Narrowing is not a minor mode, but its indicator is part of
-       ;; mode-line-modes.
-       (when (buffer-narrowed-p)
-         (push '(narrow-to-region "Narrow" " Narrow") minor-modes))
-       (setq minor-modes
-             (sort minor-modes
-                   (lambda (a b) (string-lessp (cadr a) (cadr b)))))
-       (when minor-modes
-         (princ "Enabled minor modes:\n")
-         (make-local-variable 'help-button-cache)
-         (with-current-buffer standard-output
-           (dolist (mode minor-modes)
-             (let ((mode-function (nth 0 mode))
-                   (pretty-minor-mode (nth 1 mode))
-                   (indicator (nth 2 mode)))
-               (save-excursion
-                 (goto-char (point-max))
-                 (princ "\n\f\n")
-                 (push (point-marker) help-button-cache)
-                 ;; Document the minor modes fully.
-                  (insert-text-button
-                   pretty-minor-mode 'type 'help-function
-                   'help-args (list mode-function)
-                   'button '(t))
-                 (princ (format " minor mode (%s):\n"
-                                (if (zerop (length indicator))
-                                    "no indicator"
-                                  (format "indicator%s"
-                                          indicator))))
-                 (princ (help-split-fundoc (documentation mode-function)
-                                            nil 'doc)))
-               (insert-button pretty-minor-mode
-                              'action (car help-button-cache)
-                              'follow-link t
-                              'help-echo "mouse-2, RET: show full information")
-               (newline)))
-           (forward-line -1)
-           (fill-paragraph nil)
-           (forward-line 1))
-
-         (princ "\n(Information about these minor modes follows the major mode 
info.)\n\n"))
-       ;; Document the major mode.
-       (let ((mode mode-name))
-         (with-current-buffer standard-output
-            (let ((start (point)))
-              (insert (format-mode-line mode nil nil buffer))
-              (add-text-properties start (point) '(face bold)))))
-       (princ " mode")
-       (let* ((mode major-mode)
-              (file-name (find-lisp-object-file-name mode nil)))
-         (when file-name
-           (princ (format-message " defined in `%s'"
-                                   (file-name-nondirectory file-name)))
-           ;; Make a hyperlink to the library.
-           (with-current-buffer standard-output
-             (save-excursion
-               (re-search-backward (substitute-command-keys "`\\([^`']+\\)'")
-                                    nil t)
-               (help-xref-button 1 'help-function-def mode file-name)))))
-       (princ ":\n")
-       (princ (help-split-fundoc (documentation major-mode) nil 'doc)))))
-  ;; For the sake of IELM and maybe others
-  nil)
-
 (defun search-forward-help-for-help ()
   "Search forward \"help window\"."
   (interactive)
diff --git a/lisp/hexl.el b/lisp/hexl.el
index 58518e7..cf7118f 100644
--- a/lisp/hexl.el
+++ b/lisp/hexl.el
@@ -367,8 +367,8 @@ You can use \\[hexl-find-file] to visit a file in Hexl mode.
     (add-hook 'change-major-mode-hook #'hexl-maybe-dehexlify-buffer nil t)
 
     ;; Set a callback function for eldoc.
-    (add-function :before-until (local 'eldoc-documentation-function)
-                  #'hexl-print-current-point-info)
+    (add-hook 'eldoc-documentation-functions
+              #'hexl-print-current-point-info nil t)
     (eldoc-add-command-completions "hexl-")
     (eldoc-remove-command "hexl-save-buffer"
                          "hexl-current-address")
@@ -455,6 +455,8 @@ and edit the file in `hexl-mode'."
     ;; 2. reset change-major-mode-hook in case that `hexl-mode'
     ;; previously added hexl-maybe-dehexlify-buffer to it.
     (remove-hook 'change-major-mode-hook #'hexl-maybe-dehexlify-buffer t)
+    (remove-hook 'eldoc-documentation-functions
+                 #'hexl-print-current-point-info t)
     (setq major-mode 'fundamental-mode)
     (hexl-mode)))
 
diff --git a/lisp/hippie-exp.el b/lisp/hippie-exp.el
index 98edacd..ce5fc58 100644
--- a/lisp/hippie-exp.el
+++ b/lisp/hippie-exp.el
@@ -4,7 +4,7 @@
 
 ;; Author: Anders Holst <address@hidden>
 ;; Maintainer: address@hidden
-;; Version: 1.6
+;; Old-Version: 1.6
 ;; Keywords: abbrev convenience
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/icomplete.el b/lisp/icomplete.el
index a1a67e2..66bc731 100644
--- a/lisp/icomplete.el
+++ b/lisp/icomplete.el
@@ -284,6 +284,17 @@ require user confirmation."
           (t
            (icomplete-force-complete-and-exit)))))
 
+(defun icomplete-fido-exit (force)
+  "Attempt to exit minibuffer immediately with current input.
+Unless FORCE is non-nil (interactively with a prefix argument),
+honour a non-nil REQUIRE-MATCH argument to `completing-read' by
+trying to complete as much as possible and disallowing the exit
+if that doesn't produce a completion match."
+  (interactive "P")
+  (if (and (not force) minibuffer--require-match)
+      (minibuffer-complete-and-exit)
+    (exit-minibuffer)))
+
 (defun icomplete-fido-backward-updir ()
   "Delete char before or go up directory, like `ido-mode'."
   (interactive)
@@ -299,7 +310,7 @@ require user confirmation."
     (define-key map (kbd "RET") 'icomplete-fido-ret)
     (define-key map (kbd "C-m") 'icomplete-fido-ret)
     (define-key map (kbd "DEL") 'icomplete-fido-backward-updir)
-    (define-key map (kbd "M-j") 'exit-minibuffer)
+    (define-key map (kbd "M-j") 'icomplete-fido-exit)
     (define-key map (kbd "C-s") 'icomplete-forward-completions)
     (define-key map (kbd "C-r") 'icomplete-backward-completions)
     (define-key map (kbd "<right>") 'icomplete-forward-completions)
@@ -541,7 +552,7 @@ See `icomplete-mode' and `minibuffer-setup-hook'."
                           (icomplete--completion-table)
                           (icomplete--completion-predicate)
                           (if (window-minibuffer-p)
-                              (not minibuffer-completion-confirm)))))
+                              (eq minibuffer--require-match t)))))
                  (buffer-undo-list t)
                  deactivate-mark)
             ;; Do nothing if while-no-input was aborted.
diff --git a/lisp/ido.el b/lisp/ido.el
index 7198649..8188340 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -243,7 +243,7 @@
 ;; current frame are put at the end of the list.  A hook exists to
 ;; allow other functions to order the list.  For example, if you add:
 ;;
-;; (add-hook 'ido-make-buffer-list-hook 'ido-summary-buffers-to-end)
+;; (add-hook 'ido-make-buffer-list-hook #'ido-summary-buffers-to-end)
 ;;
 ;; then all files matching "Summary" are moved to the end of the
 ;; list.  (I find this handy for keeping the INBOX Summary and so on
@@ -356,7 +356,7 @@ Setting this variable directly does not take effect;
 use either \\[customize] or the function `ido-mode'."
   :set #'(lambda (_symbol value)
           (ido-mode value))
-  :initialize 'custom-initialize-default
+  :initialize #'custom-initialize-default
   :require 'ido
   :link '(emacs-commentary-link "ido.el")
   :set-after '(ido-save-directory-list-file
@@ -366,13 +366,11 @@ use either \\[customize] or the function `ido-mode'."
   :type '(choice (const :tag "Turn on only buffer" buffer)
                  (const :tag "Turn on only file" file)
                  (const :tag "Turn on both buffer and file" both)
-                 (const :tag "Switch off all" nil))
-  :group 'ido)
+                 (const :tag "Switch off all" nil)))
 
 (defcustom ido-case-fold case-fold-search
   "Non-nil if searching of buffer and file names should ignore case."
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 (defcustom ido-ignore-buffers
   '("\\` ")
@@ -380,8 +378,7 @@ use either \\[customize] or the function `ido-mode'."
 For example, traditional behavior is not to list buffers whose names begin
 with a space, for which the regexp is `\\\\=` '.  See the source file for
 example functions that filter buffer names."
-  :type '(repeat (choice regexp function))
-  :group 'ido)
+  :type '(repeat (choice regexp function)))
 
 (defcustom ido-ignore-files
   '("\\`CVS/" "\\`#" "\\`.#" "\\`\\.\\./" "\\`\\./")
@@ -389,19 +386,16 @@ example functions that filter buffer names."
 For example, traditional behavior is not to list files whose names begin
 with a #, for which the regexp is `\\\\=`#'.  See the source file for
 example functions that filter filenames."
-  :type '(repeat (choice regexp function))
-  :group 'ido)
+  :type '(repeat (choice regexp function)))
 
 (defcustom ido-ignore-extensions t
   "Non-nil means ignore files in `completion-ignored-extensions' list."
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 (defcustom ido-show-dot-for-dired nil
   "Non-nil means to always put . as the first item in file name lists.
 This allows the current directory to be opened immediately with `dired'."
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 (defcustom ido-file-extensions-order nil
   "List of file extensions specifying preferred order of file selections.
@@ -409,21 +403,18 @@ Each element is either a string with `.' as the first 
char, an empty
 string matching files without extension, or t which is the default order
 for files with an unlisted file extension."
   :type '(repeat (choice string
-                        (const :tag "Default order" t)))
-  :group 'ido)
+                        (const :tag "Default order" t))))
 
 (defcustom ido-ignore-directories
   '("\\`CVS/" "\\`\\.\\./" "\\`\\./")
   "List of regexps or functions matching sub-directory names to ignore."
-  :type '(repeat (choice regexp function))
-  :group 'ido)
+  :type '(repeat (choice regexp function)))
 
 (defcustom ido-ignore-directories-merge nil
   "List of regexps or functions matching directory names to ignore during 
merge.
 Directory names matched by one of the regexps in this list are not inserted
 in merged file and directory lists."
-  :type '(repeat (choice regexp function))
-  :group 'ido)
+  :type '(repeat (choice regexp function)))
 
 ;; Examples for setting the value of ido-ignore-buffers
 ;;(defun ido-ignore-c-mode (name)
@@ -453,8 +444,7 @@ Possible values:
                   (const :tag "Display (no select) in other window" display)
                   (const :tag "Visit in other frame" other-frame)
                   (const :tag "Ask to visit in other frame" maybe-frame)
-                  (const :tag "Raise frame if already visited" raise-frame))
-    :group 'ido)
+                  (const :tag "Raise frame if already visited" raise-frame)))
 
 (defcustom ido-default-buffer-method  'raise-frame
   "How to switch to new buffer when using `ido-switch-buffer'.
@@ -464,38 +454,33 @@ See `ido-default-file-method' for details."
                   (const :tag "Display (no select) in other window" display)
                   (const :tag "Show in other frame" other-frame)
                   (const :tag "Ask to show in other frame" maybe-frame)
-                  (const :tag "Raise frame if already shown" raise-frame))
-    :group 'ido)
+                  (const :tag "Raise frame if already shown" raise-frame)))
 
 (defcustom ido-enable-flex-matching nil
   "Non-nil means that Ido will do flexible string matching.
 Flexible matching means that if the entered string does not
 match any item, any item containing the entered characters
 in the given sequence will match."
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 
 (defcustom ido-enable-regexp nil
   "Non-nil means that Ido will do regexp matching.
 Value can be toggled within Ido using `ido-toggle-regexp'."
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 (defcustom ido-enable-prefix nil
   "Non-nil means only match if the entered text is a prefix of file name.
 This behavior is like the standard Emacs completion.
 If nil, match if the entered text is an arbitrary substring.
 Value can be toggled within Ido using `ido-toggle-prefix'."
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 (defcustom ido-enable-dot-prefix nil
   "Non-nil means to match leading dot as prefix.
 I.e. hidden files and buffers will match only if you type a dot
 as first char even if `ido-enable-prefix' is nil."
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 ;; See https://debbugs.gnu.org/2042 for more info.
 (defcustom ido-buffer-disable-smart-matches t
@@ -506,30 +491,26 @@ By default, Ido arranges matches in the following order:
 
 which can get in the way for buffer switching."
   :version "24.3"
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 (defcustom ido-confirm-unique-completion nil
   "Non-nil means that even a unique completion must be confirmed.
 This means that \\[ido-complete] must always be followed by 
\\[ido-exit-minibuffer]
 even when there is only one unique completion."
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 (defcustom ido-cannot-complete-command 'ido-completion-help
   "Command run when `ido-complete' can't complete any more.
 The most useful values are `ido-completion-help', which pops up a
 window with completion alternatives, or `ido-next-match' or
 `ido-prev-match', which cycle the buffer list."
-  :type 'function
-  :group 'ido)
+  :type 'function)
 
 
 (defcustom ido-record-commands t
   "Non-nil means that Ido will record commands in command history.
 Note that the non-Ido equivalent command is recorded."
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 (defcustom ido-max-prospects 12
   "Upper limit of the prospect list if non-zero.
@@ -537,8 +518,7 @@ Zero means no limit for the prospect list.
 For a long list of prospects, building the full list for the
 minibuffer can take a non-negligible amount of time; setting this
 variable reduces that time."
-  :type 'integer
-  :group 'ido)
+  :type 'integer)
 
 (defcustom ido-max-file-prompt-width 0.35
   "Upper limit of the prompt string.
@@ -550,8 +530,7 @@ the frame width."
          (integer :tag "Characters" :value 20)
          (restricted-sexp :tag "Fraction of frame width"
                           :value 0.35
-                          :match-alternatives (ido-fractionp)))
-  :group 'ido)
+                          :match-alternatives (ido-fractionp))))
 
 (defcustom ido-max-window-height nil
   "Non-nil specifies a value to override `max-mini-window-height'."
@@ -561,28 +540,24 @@ the frame width."
          (restricted-sexp
           :tag "Fraction of window height"
           :value 0.25
-          :match-alternatives (ido-fractionp)))
-  :group 'ido)
+          :match-alternatives (ido-fractionp))))
 
 (defcustom ido-enable-last-directory-history t
   "Non-nil means that Ido will remember latest selected directory names.
 See `ido-last-directory-list' and `ido-save-directory-list-file'."
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 (defcustom ido-max-work-directory-list 50
   "Maximum number of working directories to record.
 This is the list of directories where files have most recently been opened.
 See `ido-work-directory-list' and `ido-save-directory-list-file'."
-  :type 'integer
-  :group 'ido)
+  :type 'integer)
 
 (defcustom ido-work-directory-list-ignore-regexps nil
   "List of regexps matching directories which should not be recorded.
 Directory names matched by one of the regexps in this list are not inserted in
 the `ido-work-directory-list' list."
-  :type '(repeat regexp)
-  :group 'ido)
+  :type '(repeat regexp))
 
 
 (defcustom ido-use-filename-at-point nil
@@ -592,52 +567,44 @@ If found, use that as the starting point for filename 
selection."
   :type '(choice
          (const :tag "Disabled" nil)
          (const :tag "Guess filename" guess)
-         (other :tag "Use literal filename" t))
-  :group 'ido)
+         (other :tag "Use literal filename" t)))
 
 
 (defcustom ido-use-url-at-point nil
   "Non-nil means that ido shall look for a URL at point.
 If found, call `find-file-at-point' to visit it."
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 
 (defcustom ido-enable-tramp-completion t
   "Non-nil means that Ido shall perform tramp method and server name 
completion.
 A tramp file name uses the following syntax: /method:user@host:filename."
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 (defcustom ido-record-ftp-work-directories t
   "Non-nil means record FTP file names in the work directory list."
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 (defcustom ido-merge-ftp-work-directories nil
   "If nil, merging ignores FTP file names in the work directory list."
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 (defcustom ido-cache-ftp-work-directory-time 1.0
   "Maximum time to cache contents of an FTP directory (in hours).
 \\<ido-file-completion-map>
 Use \\[ido-reread-directory] in prompt to refresh list.
 If zero, FTP directories are not cached."
-  :type 'number
-  :group 'ido)
+  :type 'number)
 
 (defcustom ido-slow-ftp-hosts nil
   "List of slow FTP hosts where Ido prompting should not be used.
 If an FTP host is on this list, Ido automatically switches to the non-Ido
 equivalent function, e.g. `find-file' rather than `ido-find-file'."
-  :type '(repeat string)
-  :group 'ido)
+  :type '(repeat string))
 
 (defcustom ido-slow-ftp-host-regexps nil
   "List of regexps matching slow FTP hosts (see `ido-slow-ftp-hosts')."
-  :type '(repeat regexp)
-  :group 'ido)
+  :type '(repeat regexp))
 
 (defvar ido-unc-hosts-cache t
   "Cached value from the function `ido-unc-hosts'.")
@@ -652,66 +619,56 @@ hosts on first use of UNC path."
                 (function :tag "Your own function"))
   :set #'(lambda (symbol value)
           (set symbol value)
-          (setq ido-unc-hosts-cache t))
-  :group 'ido)
+          (setq ido-unc-hosts-cache t)))
 
 (defcustom ido-downcase-unc-hosts t
   "Non-nil if UNC host names should be downcased."
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 (defcustom ido-ignore-unc-host-regexps nil
   "List of regexps matching UNC hosts to ignore.
 Case is ignored if `ido-downcase-unc-hosts' is set."
-  :type '(repeat regexp)
-  :group 'ido)
+  :type '(repeat regexp))
 
 (defcustom ido-cache-unc-host-shares-time 8.0
   "Maximum time to cache shares of an UNC host (in hours).
 \\<ido-file-completion-map>
 Use \\[ido-reread-directory] in prompt to refresh list.
 If zero, UNC host shares are not cached."
-  :type 'number
-  :group 'ido)
+  :type 'number)
 
 (defcustom ido-max-work-file-list 10
   "Maximum number of names of recently opened files to record.
 This is the list of the file names (sans directory) which have most recently
 been opened.  See `ido-work-file-list' and `ido-save-directory-list-file'."
-  :type 'integer
-  :group 'ido)
+  :type 'integer)
 
 (defcustom ido-work-directory-match-only t
   "Non-nil means to skip non-matching directories in the directory history.
 When some text is already entered at the `ido-find-file' prompt, using
 \\[ido-prev-work-directory] or \\[ido-next-work-directory] will skip 
directories
 without any matching entries."
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 (defcustom ido-auto-merge-work-directories-length 0
   "Automatically switch to merged work directories during file name input.
 The value is number of characters to type before switching to merged mode.
 If zero, the switch happens when no matches are found in the current directory.
 Automatic merging is disabled if the value is negative."
-  :type 'integer
-  :group 'ido)
+  :type 'integer)
 
 (defcustom ido-auto-merge-delay-time 0.70
   "Delay in seconds to wait for more input before doing auto merge."
-  :type 'number
-  :group 'ido)
+  :type 'number)
 
 (defcustom ido-auto-merge-inhibit-characters-regexp "[][*?~]"
   "Regexp matching characters which should inhibit automatic merging.
 When a (partial) file name matches this regexp, merging is inhibited."
-  :type 'regexp
-  :group 'ido)
+  :type 'regexp)
 
 (defcustom ido-merged-indicator "^"
   "The string appended to first choice if it has multiple directory choices."
-  :type 'string
-  :group 'ido)
+  :type 'string)
 
 (defcustom ido-max-dir-file-cache 100
   "Maximum number of working directories to be cached.
@@ -723,8 +680,7 @@ modification times, so you may choose to disable caching on 
such
 systems, or explicitly refresh the cache contents using the command
 `ido-reread-directory' command (\\[ido-reread-directory]) in the minibuffer.
 See also `ido-dir-file-cache' and `ido-save-directory-list-file'."
-  :type 'integer
-  :group 'ido)
+  :type 'integer)
 
 (defcustom ido-max-directory-size nil
   "Maximum size (in bytes) for directories to use Ido completion.
@@ -732,21 +688,18 @@ See also `ido-dir-file-cache' and 
`ido-save-directory-list-file'."
 If you enter a directory with a size larger than this size, Ido will
 not provide the normal completion.  To show the completions, use 
\\[ido-toggle-ignore]."
   :type '(choice (const :tag "No limit" nil)
-                (integer :tag "Size in bytes" 30000))
-  :group 'ido)
+                (integer :tag "Size in bytes" 30000)))
 
 (defcustom ido-big-directories nil
   "List of directory pattern strings that should be considered big.
 Ido won't attempt to list the contents of directories matching
 any of these regular expressions when completing file names."
   :type '(repeat regexp)
-  :group 'ido
   :version "27.1")
 
 (defcustom ido-rotate-file-list-default nil
   "Non-nil means that Ido will always rotate file list to get default in 
front."
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 (defcustom ido-enter-matching-directory 'only
   "Additional methods to enter sub-directory of first/only matching item.
@@ -758,8 +711,7 @@ matching item, even without typing a slash."
   :type '(choice (const :tag "Never" nil)
                 (const :tag "Slash enters first directory" first)
                 (const :tag "Slash enters first and only directory" only)
-                (other :tag "Always enter unique directory" t))
-  :group 'ido)
+                (other :tag "Always enter unique directory" t)))
 
 (defcustom ido-create-new-buffer 'prompt
   "Specify whether a new buffer is created if no buffer matches substring.
@@ -767,21 +719,18 @@ Choices are `always' to create new buffers 
unconditionally, `prompt' to
 ask user whether to create buffer, or `never' to never create new buffer."
   :type '(choice (const always)
                 (const prompt)
-                (const never))
-  :group 'ido)
+                (const never)))
 
 (defcustom ido-setup-hook  nil
   "Hook run after the Ido variables and keymap have been setup.
 The dynamic variable `ido-cur-item' contains the current type of item that
 is read by Ido; possible values are file, dir, buffer, and list.
 Additional keys can be defined in `ido-completion-map'."
-  :type 'hook
-  :group 'ido)
+  :type 'hook)
 
 (defcustom ido-separator nil
   "String used by Ido to separate the alternatives in the minibuffer."
-  :type '(choice string (const nil))
-  :group 'ido)
+  :type '(choice string (const nil)))
 (make-obsolete-variable 'ido-separator
                        "set 3rd element of `ido-decorations' instead." nil)
 
@@ -802,8 +751,7 @@ can be completed using TAB,
 11th element is displayed to confirm creating new file or buffer.
 12th and 13th elements (if present) are used as brackets around the sole
 remaining completion.  If absent, elements 5 and 6 are used instead."
-  :type '(repeat string)
-  :group 'ido)
+  :type '(repeat string))
 
 (defcustom ido-use-virtual-buffers nil
   "If non-nil, refer to past (\"virtual\") buffers as well as existing ones.
@@ -827,71 +775,60 @@ enabled if this variable is configured to a non-nil 
value."
   :version "24.1"
   :type '(choice (const :tag "Always" t)
                 (const :tag "Automatic" auto)
-                (const :tag "Never" nil))
-  :group 'ido)
+                (const :tag "Never" nil)))
 
 (defcustom ido-use-faces t
   "Non-nil means use Ido faces to highlighting first match, only match and
 subdirs in the alternatives."
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 (defface ido-first-match  '((t :weight bold))
-  "Face used by Ido for highlighting first match."
-  :group 'ido)
+  "Face used by Ido for highlighting first match.")
 
 (defface ido-only-match  '((((class color))
                            :foreground "ForestGreen")
                           (t :slant italic))
-  "Face used by Ido for highlighting only match."
-  :group 'ido)
+  "Face used by Ido for highlighting only match.")
 
 (defface ido-subdir  '((((min-colors 88) (class color))
                        :foreground "red1")
                       (((class color))
                        :foreground "red")
                       (t :underline t))
-  "Face used by Ido for highlighting subdirs in the alternatives."
-  :group 'ido)
+  "Face used by Ido for highlighting subdirs in the alternatives.")
 
 (defface ido-virtual '((t :inherit font-lock-builtin-face))
   "Face used by Ido for matching virtual buffer names."
-  :version "24.1"
-  :group 'ido)
+  :version "24.1")
 
 (defface ido-indicator '((((min-colors 88) (class color))
                          :foreground "yellow1" :background "red1" :width 
condensed)
                         (((class color))
                          :foreground "yellow" :background "red" :width 
condensed)
                         (t :inverse-video t))
-  "Face used by Ido for highlighting its indicators."
-  :group 'ido)
+  "Face used by Ido for highlighting its indicators.")
 
 (defface ido-incomplete-regexp
   '((t :inherit font-lock-warning-face))
-  "Ido face for indicating incomplete regexps."
-  :group 'ido)
+  "Ido face for indicating incomplete regexps.")
 
 (defcustom ido-make-file-list-hook  nil
   "List of functions to run when the list of matching files is created.
 Each function on the list may modify the dynamically bound variable
 `ido-temp-list' which contains the current list of matching files."
-  :type 'hook
-  :group 'ido)
+  :type 'hook)
 
 (defcustom ido-make-dir-list-hook  nil
   "List of functions to run when the list of matching directories is created.
 Each function on the list may modify the dynamically bound variable
 `ido-temp-list' which contains the current list of matching directories."
-  :type 'hook
-  :group 'ido)
+  :type 'hook)
 
 (defcustom ido-make-buffer-list-hook  nil
   "List of functions to run when the list of matching buffers is created.
 Each function on the list may modify the dynamically bound variable
 `ido-temp-list' which contains the current list of matching buffer names."
-  :type 'hook
-  :group 'ido)
+  :type 'hook)
 
 (defcustom ido-rewrite-file-prompt-functions nil
   "List of functions to run when the find-file prompt is created.
@@ -908,8 +845,7 @@ variables:
 The following variables are available, but should not be changed:
   `ido-current-directory' - the unabbreviated directory name
   item - equals `file' or `dir' depending on the current mode."
-  :type 'hook
-  :group 'ido)
+  :type 'hook)
 
 (defvar ido-rewrite-file-prompt-rules nil
   "Alist of rewriting rules for directory names in Ido prompts.
@@ -924,14 +860,12 @@ also modify the dynamic variables described for the 
variable
 (defcustom ido-completion-buffer "*Ido Completions*"
   "Name of completion buffer used by Ido.
 Set to nil to disable completion buffers popping up."
-  :type 'string
-  :group 'ido)
+  :type 'string)
 
 (defcustom ido-completion-buffer-all-completions nil
   "Non-nil means to show all completions in completion buffer.
 Otherwise, only the current list of matches is shown."
-  :type 'boolean
-  :group 'ido)
+  :type 'boolean)
 
 (defcustom ido-all-frames 'visible
   "Argument to pass to `walk-windows' when Ido is finding buffers.
@@ -939,8 +873,7 @@ See documentation of `walk-windows' for useful values."
   :type '(choice (const :tag "Selected frame only" nil)
                 (const :tag "All existing frames" t)
                 (const :tag "All visible frames" visible)
-                (const :tag "All frames on this terminal" 0))
-  :group 'ido)
+                (const :tag "All frames on this terminal" 0)))
 
 (defcustom ido-minibuffer-setup-hook nil
   "Ido-specific customization of minibuffer setup.
@@ -954,8 +887,7 @@ with other packages.  For instance:
 
 will constrain Emacs to a maximum minibuffer height of 3 lines when
 Ido is running.  Copied from `icomplete-minibuffer-setup-hook'."
-  :type 'hook
-  :group 'ido)
+  :type 'hook)
 
 (defcustom ido-save-directory-list-file
   (locate-user-emacs-file "ido.last" ".ido.last")
@@ -964,28 +896,24 @@ Variables stored are: `ido-last-directory-list', 
`ido-work-directory-list',
 `ido-work-file-list', and `ido-dir-file-cache'.
 Must be set before enabling Ido mode."
   :version "24.4"                       ; added locate-user-emacs-file
-  :type 'string
-  :group 'ido)
+  :type 'string)
 
 (defcustom ido-read-file-name-as-directory-commands '()
   "List of commands which use `read-file-name' to read a directory name.
 When `ido-everywhere' is non-nil, the commands in this list will read
 the directory using `ido-read-directory-name'."
-  :type '(repeat symbol)
-  :group 'ido)
+  :type '(repeat symbol))
 
 (defcustom ido-read-file-name-non-ido '()
   "List of commands which shall not read file names the Ido way.
 When `ido-everywhere' is non-nil, the commands in this list will read
 the file name using normal `read-file-name' style."
-  :type '(repeat symbol)
-  :group 'ido)
+  :type '(repeat symbol))
 
 (defcustom ido-before-fallback-functions '()
   "List of functions to call before calling a fallback command.
 The fallback command is passed as an argument to the functions."
-  :type 'hook
-  :group 'ido)
+  :type 'hook)
 
 ;;;; Keymaps
 
@@ -1071,10 +999,10 @@ The fallback command is passed as an argument to the 
functions."
 
 ;;;; Persistent variables
 
-(defvar  ido-file-history nil
+(defvar ido-file-history nil
   "History of files selected using `ido-find-file'.")
 
-(defvar  ido-buffer-history nil
+(defvar ido-buffer-history nil
   "History of buffers selected using `ido-switch-buffer'.")
 
 (defvar ido-last-directory-list nil
@@ -1583,13 +1511,12 @@ Removes badly formatted data and ignored directories."
   (ido-save-history))
 
 (defun ido-common-initialization ()
-  (add-hook 'minibuffer-setup-hook 'ido-minibuffer-setup)
-  (add-hook 'choose-completion-string-functions 'ido-choose-completion-string))
+  (add-hook 'minibuffer-setup-hook #'ido-minibuffer-setup)
+  (add-hook 'choose-completion-string-functions 
#'ido-choose-completion-string))
 
 (define-minor-mode ido-everywhere
   "Toggle use of Ido for all buffer/file reading."
   :global t
-  :group 'ido
   (remove-function read-file-name-function #'ido-read-file-name)
   (remove-function read-buffer-function #'ido-read-buffer)
   (when ido-everywhere
@@ -1625,7 +1552,7 @@ This function also adds a hook to the minibuffer."
     (ido-common-initialization)
     (ido-load-history)
 
-    (add-hook 'kill-emacs-hook 'ido-kill-emacs-hook)
+    (add-hook 'kill-emacs-hook #'ido-kill-emacs-hook)
 
     (let ((map (make-sparse-keymap)))
       (when (memq ido-mode '(file both))
@@ -2445,9 +2372,9 @@ If cursor is not at the end of the user input, move to 
end of input."
                              nil ido-text 'ido-enter-insert-file))
 
        ((eq ido-exit 'dired)
-        (funcall (cond ((eq method 'other-window) 'dired-other-window)
-                       ((eq method 'other-frame) 'dired-other-frame)
-                       (t 'dired))
+        (funcall (cond ((eq method 'other-window) #'dired-other-window)
+                       ((eq method 'other-frame) #'dired-other-frame)
+                       (t #'dired))
                  (concat ido-current-directory (or ido-text ""))))
 
        ((eq ido-exit 'ffap)
@@ -3598,7 +3525,7 @@ it is put to the start of the list."
                 ;; tramp-ftp-file-name-p is available only when tramp
                 ;; has been loaded.
                 (fboundp 'tramp-ftp-file-name-p)
-                (funcall 'tramp-ftp-file-name-p dir)
+                (tramp-ftp-file-name-p dir)
                 (string-match ":\\'" dir)
                 (file-name-all-completions "" (concat dir "./"))))))
       (if (and compl
@@ -3698,7 +3625,8 @@ in this list."
                                             (not (ido-local-file-exists-p x)))
                                        (and (not (ido-final-slash x))
                                             (let (file-name-handler-alist)
-                                              (get-file-buffer x)))) x))
+                                              (get-file-buffer x))))
+                              x))
                    ido-temp-list)))))
     (ido-to-end  ;; move . files to end
      (delq nil (mapcar
@@ -3731,7 +3659,8 @@ If MERGED is non-nil, each subdir is cons'ed with DIR."
        (delq nil
             (mapcar
              (lambda (name)
-               (and (ido-final-slash name) (not (ido-ignore-item-p name 
ido-ignore-directories))
+               (and (ido-final-slash name)
+                    (not (ido-ignore-item-p name ido-ignore-directories))
                     (if merged (cons name dir) name)))
              (ido-file-name-all-completions dir)))))
 
@@ -4041,7 +3970,7 @@ If `ido-change-word-sub' cannot be found in WORD, return 
nil."
                                   (t
                                    (copy-sequence (or ido-matches 
ido-cur-list))))
                                  #'ido-file-lessp)))
-           ;;(add-hook 'completion-setup-hook 'completion-setup-function)
+           ;;(add-hook 'completion-setup-hook #'completion-setup-function)
            (display-completion-list completion-list))))))
 
 ;;; KILL CURRENT BUFFER
@@ -4707,7 +4636,9 @@ For details of keybindings, see `ido-find-file'."
                       (not (input-pending-p)))
              (ido-trace "\n*start timer*")
              (setq ido-auto-merge-timer
-                   (run-with-timer ido-auto-merge-delay-time nil 
'ido-initiate-auto-merge (current-buffer))))))
+                   (run-with-timer ido-auto-merge-delay-time nil
+                                   #'ido-initiate-auto-merge
+                                   (current-buffer))))))
 
        (setq ido-rescan t)
 
@@ -4830,8 +4761,8 @@ Modified from `icomplete-completions'."
   "Minibuffer setup hook for Ido."
   ;; Copied from `icomplete-minibuffer-setup-hook'.
   (when (ido-active)
-    (add-hook 'pre-command-hook 'ido-tidy nil t)
-    (add-hook 'post-command-hook 'ido-exhibit nil t)
+    (add-hook 'pre-command-hook #'ido-tidy nil t)
+    (add-hook 'post-command-hook #'ido-exhibit nil t)
     (run-hooks 'ido-minibuffer-setup-hook)
     (when ido-initial-position
       (goto-char (+ (minibuffer-prompt-end) ido-initial-position))
diff --git a/lisp/ielm.el b/lisp/ielm.el
index 41675c0..fc06ebf 100644
--- a/lisp/ielm.el
+++ b/lisp/ielm.el
@@ -541,8 +541,8 @@ Customized bindings may be defined in `ielm-map', which 
currently contains:
   (set (make-local-variable 'completion-at-point-functions)
        '(comint-replace-by-expanded-history
          ielm-complete-filename elisp-completion-at-point))
-  (add-function :before-until (local 'eldoc-documentation-function)
-                #'elisp-eldoc-documentation-function)
+  (add-hook 'eldoc-documentation-functions
+            #'elisp-eldoc-documentation-function nil t)
   (set (make-local-variable 'ielm-prompt-internal) ielm-prompt)
   (set (make-local-variable 'comint-prompt-read-only) ielm-prompt-read-only)
   (setq comint-get-old-input 'ielm-get-old-input)
diff --git a/lisp/image-dired.el b/lisp/image-dired.el
index 768e941..1cc38ba 100644
--- a/lisp/image-dired.el
+++ b/lisp/image-dired.el
@@ -771,8 +771,8 @@ Increase at own risk.")
          process)
     (when (not (file-exists-p thumbnail-dir))
       (message "Creating thumbnail directory")
-      (make-directory thumbnail-dir t)
-      (set-file-modes thumbnail-dir #o700))
+      (with-file-modes #o700
+       (make-directory thumbnail-dir t)))
 
     ;; Thumbnail file creation processes begin here and are marshaled
     ;; in a queue by `image-dired-create-thumb'.
diff --git a/lisp/image/exif.el b/lisp/image/exif.el
index 642bc58..065456d 100644
--- a/lisp/image/exif.el
+++ b/lisp/image/exif.el
@@ -72,7 +72,8 @@
     (283 y-resolution)
     (296 resolution-unit)
     (305 software)
-    (306 date-time))
+    (306 date-time)
+    (315 artist))
   "Alist of tag values and their names.")
 
 (defconst exif--orientation
@@ -216,7 +217,10 @@ If the orientation isn't present in the data, return nil."
                                           (+ (1+ value) length)))
                                      ;; The value is stored directly
                                      ;; in the directory.
-                                     value)
+                                     (if (eq (car field-format) 'ascii)
+                                         (exif--direct-ascii-value
+                                          value (1- length) le)
+                                       value))
                                    (car field-format)
                                    le)))))
     (let ((next (exif--read-number 4 le)))
@@ -231,6 +235,19 @@ If the orientation isn't present in the data, return nil."
         ;; We've reached the end of the directories.
         dir))))
 
+(defun exif--direct-ascii-value (value bytes le)
+  "Make VALUE into a zero-terminated string.
+VALUE is an integer representing BYTES characters."
+  (with-temp-buffer
+    (set-buffer-multibyte nil)
+    (if le
+        (dotimes (i bytes)
+          (insert (logand (lsh value (* i -8)) 255)))
+      (dotimes (i bytes)
+        (insert (logand (lsh value (* (- (1- bytes) i) -8)) 255))))
+    (insert 0)
+    (buffer-string)))
+
 (defun exif--process-value (value type le)
   "Do type-based post-processing of the value."
   (cl-case type
diff --git a/lisp/image/gravatar.el b/lisp/image/gravatar.el
index b8542bc..ff59a72 100644
--- a/lisp/image/gravatar.el
+++ b/lisp/image/gravatar.el
@@ -26,6 +26,7 @@
 
 (require 'url)
 (require 'url-cache)
+(require 'dns)
 (eval-when-compile
   (require 'subr-x))
 
@@ -118,9 +119,42 @@ a gravatar for a given email address."
   :version "27.1"
   :group 'gravatar)
 
-(defconst gravatar-base-url
-  "https://www.gravatar.com/avatar";
-  "Base URL for getting gravatars.")
+(defconst gravatar-service-alist
+  `((gravatar . ,(lambda (_addr) "https://www.gravatar.com/avatar";))
+    (unicornify . ,(lambda (_addr) "https://unicornify.pictures/avatar/";))
+    (libravatar . ,#'gravatar--service-libravatar))
+  "Alist of supported gravatar services.")
+
+(defcustom gravatar-service 'libravatar
+  "Symbol denoting gravatar-like service to use.
+Note that certain services might ignore other options, such as
+`gravatar-default-image' or certain values as with
+`gravatar-rating'."
+  :type `(choice ,@(mapcar (lambda (s) `(const ,(car s)))
+                           gravatar-service-alist))
+  :version "28.1"
+  :link '(url-link "https://www.libravatar.org/";)
+  :link '(url-link "https://unicornify.pictures/";)
+  :link '(url-link "https://gravatar.com/";)
+  :group 'gravatar)
+
+(defun gravatar--service-libravatar (addr)
+  "Find domain that hosts avatars for email address ADDR."
+  ;; implements https://wiki.libravatar.org/api/
+  (save-match-data
+    (if (not (string-match ".+@\\(.+\\)" addr))
+        "https://seccdn.libravatar.org/avatar";
+      (let ((domain (match-string 1 addr)))
+        (catch 'found
+          (dolist (record '(("_avatars-sec" . "https")
+                            ("_avatars" . "http")))
+            (let* ((query (concat (car record) "._tcp." domain))
+                   (result (dns-query query 'SRV)))
+              (when result
+                (throw 'found (format "%s://%s/avatar"
+                                      (cdr record)
+                                      result)))))
+          "https://seccdn.libravatar.org/avatar";)))))
 
 (defun gravatar-hash (mail-address)
   "Return the Gravatar hash for MAIL-ADDRESS."
@@ -142,7 +176,8 @@ a gravatar for a given email address."
   "Return the URL of a gravatar for MAIL-ADDRESS."
   ;; https://gravatar.com/site/implement/images/
   (format "%s/%s?%s"
-          gravatar-base-url
+          (funcall (alist-get gravatar-service gravatar-service-alist)
+                   mail-address)
           (gravatar-hash mail-address)
           (gravatar--query-string)))
 
diff --git a/lisp/image/image-converter.el b/lisp/image/image-converter.el
index 0488a13..ae3d959 100644
--- a/lisp/image/image-converter.el
+++ b/lisp/image/image-converter.el
@@ -149,8 +149,9 @@ data is returned as a string."
       (when (re-search-forward "^-" nil t)
         (forward-line 1)
         ;; Lines look like
-        ;; "      WPG* r--   Word Perfect Graphics".
-        (while (re-search-forward "^ *\\([A-Z0-9]+\\)\\*? +r" nil t)
+        ;; "      WPG* r--   Word Perfect Graphics" or
+        ;; "      WPG* WPG       r--   Word Perfect Graphics".
+        (while (re-search-forward "^ *\\([A-Z0-9]+\\)\\*?\\(?: +[A-Z0-9]+\\)? 
+r" nil t)
           (push (downcase (match-string 1)) formats)))
       (nreverse formats))))
 
diff --git a/lisp/informat.el b/lisp/informat.el
index 9873f66..7750ab0 100644
--- a/lisp/informat.el
+++ b/lisp/informat.el
@@ -337,7 +337,7 @@ Check that every node pointer points to an existing node."
                                                     (point))))
                         (Info-extract-menu-node-name))))
                  (goto-char (point-min))
-                 (while (re-search-forward "\\*note[ \n]*[^:\t]*:" nil t)
+                 (while (re-search-forward "\\*note\\>[^:\t]*:" nil t)
                    (goto-char (+ (match-beginning 0) 5))
                    (skip-chars-forward " \n")
                    (Info-validate-node-name
diff --git a/lisp/international/characters.el b/lisp/international/characters.el
index e7f8662..b7656d9 100644
--- a/lisp/international/characters.el
+++ b/lisp/international/characters.el
@@ -674,6 +674,12 @@ with L, LRE, or LRO Unicode bidi character type.")
     (set-case-syntax c "." tbl)
     (setq c (1+ c)))
 
+  ;; Symbols for Legacy Computing
+  (setq c #x1FB00)
+  (while (<= c #x1FBFF)
+    (set-case-syntax c "." tbl)
+    (setq c (1+ c)))
+
   ;; Fullwidth Latin
   (setq c #xff21)
   (while (<= c #xff3a)
@@ -964,6 +970,7 @@ with L, LRE, or LRO Unicode bidi character type.")
           (#x0D41 . #x0D44)
           (#x0D4D . #x0D4D)
           (#x0D62 . #x0D63)
+           (#x0D81 . #x0D81)
           (#x0DCA . #x0DCA)
           (#x0DD2 . #x0DD6)
           (#x0E31 . #x0E31)
@@ -1020,7 +1027,7 @@ with L, LRE, or LRO Unicode bidi character type.")
           (#x1A65 . #x1A6C)
           (#x1A73 . #x1A7C)
           (#x1A7F . #x1A7F)
-          (#x1AB0 . #x1ABE)
+          (#x1AB0 . #x1AC0)
           (#x1B00 . #x1B03)
           (#x1B34 . #x1B34)
           (#x1B36 . #x1B3A)
@@ -1058,6 +1065,7 @@ with L, LRE, or LRO Unicode bidi character type.")
           (#xA806 . #xA806)
           (#xA80B . #xA80B)
           (#xA825 . #xA826)
+           (#xA82C . #xA82C)
           (#xA8C4 . #xA8C5)
           (#xA8E0 . #xA8F1)
           (#xA926 . #xA92D)
@@ -1094,6 +1102,7 @@ with L, LRE, or LRO Unicode bidi character type.")
           (#x10A01 . #x10A0F)
           (#x10A38 . #x10A3F)
           (#x10AE5 . #x10AE6)
+           (#x10EAB . #x10EAC)
           (#x11001 . #x11001)
           (#x11038 . #x11046)
           (#x1107F . #x11081)
@@ -1107,6 +1116,7 @@ with L, LRE, or LRO Unicode bidi character type.")
           (#x11180 . #x11181)
           (#x111B6 . #x111BE)
           (#x111CA . #x111CC)
+           (#x111CF . #x111CF)
           (#x1122F . #x11231)
           (#x11234 . #x11234)
           (#x11236 . #x11237)
@@ -1138,6 +1148,9 @@ with L, LRE, or LRO Unicode bidi character type.")
           (#x1171D . #x1171F)
           (#x11722 . #x11725)
           (#x11727 . #x1172B)
+           (#x1193B . #x1193C)
+           (#x1193E . #x1193E)
+           (#x11943 . #x11943)
           (#x11C30 . #x11C36)
           (#x11C38 . #x11C3D)
           (#x11C92 . #x11CA7)
@@ -1147,6 +1160,7 @@ with L, LRE, or LRO Unicode bidi character type.")
           (#x16AF0 . #x16AF4)
           (#x16B30 . #x16B36)
           (#x16F8F . #x16F92)
+           (#x16FE4 . #x16FE4)
           (#x1BC9D . #x1BC9E)
           (#x1BCA0 . #x1BCA3)
           (#x1D167 . #x1D169)
@@ -1210,7 +1224,7 @@ with L, LRE, or LRO Unicode bidi character type.")
           (#x2E80 . #x303E)
           (#x3040 . #x3247)
           (#x3250 . #x4DBF)
-          (#x4E00 . #xA4CF)
+          (#x4E00 . #x9FFF)
           (#xA490 . #xA4C6)
           (#xA960 . #xA97F)
           (#xAC00 . #xD7A3)
@@ -1219,9 +1233,11 @@ with L, LRE, or LRO Unicode bidi character type.")
           (#xFE30 . #xFE6F)
           (#xFF01 . #xFF60)
           (#xFFE0 . #xFFE6)
-          (#x16FE0 . #x16FE3)
+          (#x16FE0 . #x16FE4)
+           (#x16FF0 . #x16FF1)
           (#x17000 . #x187F7)
-          (#x18800 . #x18AF2)
+          (#x18800 . #x18AFF)
+           (#x18B00 . #x18CD5)
           (#x1B000 . #x1B152)
            (#x1B164 . #x1B167)
            (#x1B170 . #x1B2FB)
@@ -1229,6 +1245,7 @@ with L, LRE, or LRO Unicode bidi character type.")
           (#x1F0CF . #x1F0CF)
           (#x1F18E . #x1F18E)
           (#x1F191 . #x1F19A)
+           (#x1F1AD . #x1F1AD)
           (#x1F200 . #x1F320)
           (#x1F32D . #x1F335)
           (#x1F337 . #x1F37C)
@@ -1253,22 +1270,27 @@ with L, LRE, or LRO Unicode bidi character type.")
           (#x1F680 . #x1F6C5)
           (#x1F6CC . #x1F6CC)
           (#x1F6D0 . #x1F6D2)
-           (#x1F6D5 . #x1F6D5)
+           (#x1F6D5 . #x1F6D7)
           (#x1F6EB . #x1F6EC)
-          (#x1F6F4 . #x1F6FA)
+          (#x1F6F4 . #x1F6FC)
            (#x1F7E0 . #x1F7EB)
-          (#x1F90D . #x1F971)
-          (#x1F973 . #x1F976)
-          (#x1F97A . #x1F9A2)
+          (#x1F90C . #x1F93A)
+           (#x1F93C . #x1F945)
+           (#x1F947 . #x1F978)
+          (#x1F97A . #x1F9CB)
            (#x1F9A5 . #x1F9AA)
            (#x1F9AE . #x1F9CA)
            (#x1F9CD . #x1F9FF)
            (#x1FA00 . #x1FA53)
            (#x1FA60 . #x1FA6D)
-           (#x1FA70 . #x1FA73)
+           (#x1FA70 . #x1FA74)
            (#x1FA78 . #x1FA7A)
-           (#x1FA80 . #x1FA82)
-           (#x1FA90 . #x1FA95)
+           (#x1FA80 . #x1FA86)
+           (#x1FA90 . #x1FAA8)
+           (#x1FAB0 . #x1FAB6)
+           (#x1FAC0 . #x1FAC2)
+           (#x1FAD0 . #x1FAD6)
+           (#x1FB00 . #x1FB92)
           (#x20000 . #x2FFFF)
           (#x30000 . #x3FFFF))))
   (dolist (elt l)
diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el
index 529c7bb..23abb0d 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -220,9 +220,11 @@
        (kharoshthi #x10A00)
        (manichaean #x10AC0)
         (hanifi-rohingya #x10D00)
+        (yezidi #x10E80)
         (old-sogdian #x10F00)
         (sogdian #x10F30)
-        (elymaic #x10fe0)
+        (chorasmian #x10FB0)
+        (elymaic #x10FE0)
        (mahajani #x11150)
        (sinhala-archaic-number #x111E1)
        (khojki #x11200)
@@ -235,6 +237,7 @@
        (takri #x11680)
         (dogra #x11800)
        (warang-citi #x118A1)
+        (dives-akuru #x11900)
         (nandinagari #x119a0)
         (zanabazar-square #x11A00)
         (soyombo #x11A50)
@@ -253,6 +256,7 @@
         (medefaidrin #x16E40)
         (tangut #x17000)
         (tangut-components #x18800)
+        (khitan-small-script #x18B00)
         (nushu #x1B170)
        (duployan-shorthand #x1BC20)
        (byzantine-musical-symbol #x1D000)
@@ -736,10 +740,13 @@
                    cypriot-syllabary
                    phoenician
                    lydian
+                    yezidi
                    kharoshthi
                    manichaean
+                    chorasmian
                    elymaic
                    makasar
+                    dives-akuru
                    cuneiform-numbers-and-punctuation
                    cuneiform
                    egyptian
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index 5436aaa..7714a77 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -2994,7 +2994,9 @@ on encoding."
                (#x16FE0 . #x16FE3)
                ;; (#x17000 . #x187FF) Tangut Ideographs
                ;; (#x18800 . #x18AFF) Tangut Components
-              ;; (#x18B00 . #x1AFFF) unused
+               ;; (#x18B00 . #x18CFF) Khitan Small Script
+               ;; (#x18D00 . #x18D0F) Tangut Ideograph Supplement
+              ;; (#x18D10 . #x1AFFF) unused
               (#x1B000 . #x1B11F)
                ;; (#x1B120 . #x1B14F) unused
                (#x1B150 . #x1B16F)
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index 6659479..72e8cad 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -30,12 +30,13 @@
 
 ;;; Code:
 
-;; FIXME?  Are these still relevant?  Nothing uses them AFAICS.
 (defconst mule-version "6.0 (HANACHIRUSATO)" "\
 Version number and name of this version of MULE (multilingual environment).")
+(make-obsolete-variable 'mule-version nil "28.1")
 
 (defconst mule-version-date "2003.9.1" "\
 Distribution date of this version of MULE (multilingual environment).")
+(make-obsolete-variable 'mule-version-date nil "28.1")
 
 
 ;;; CHARSET
@@ -2601,7 +2602,7 @@ This function is intended to be added to 
`auto-coding-functions'."
                     (detect-coding-region (point-min) size t)))))
             ;; Pure ASCII always comes back as undecided.
             (if (memq detected
-                      '(utf-8 'utf-8-with-signature 'utf-8-hfs undecided))
+                      '(utf-8 utf-8-with-signature utf-8-hfs undecided))
                 'utf-8
               (warn "File contents detected as %s.
   Consider adding an encoding attribute to the xml declaration,
diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el
index 2246e5f..8776e9b 100644
--- a/lisp/ldefs-boot.el
+++ b/lisp/ldefs-boot.el
@@ -15720,6 +15720,13 @@ BUFFER should be a buffer or a buffer name.
 
 \(fn &optional BUFFER)" t nil)
 
+(autoload 'describe-keymap "help-fns" "\
+Describe key bindings in KEYMAP.
+When called interactively, prompt for a variable that has a
+keymap value.
+
+\(fn KEYMAP)" t nil)
+
 (autoload 'doc-file-to-man "help-fns" "\
 Produce an nroff buffer containing the doc-strings from the DOC file.
 
@@ -20409,7 +20416,7 @@ Default bookmark handler for Man buffers.
 
 ;;;### (autoloads nil "map" "emacs-lisp/map.el" (0 0 0 0))
 ;;; Generated autoloads from emacs-lisp/map.el
-(push (purecopy '(map 2 0)) package--builtin-versions)
+(push (purecopy '(map 2 1)) package--builtin-versions)
 
 (if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"map" '("map-")))
 
@@ -27422,11 +27429,8 @@ nil
     necessary to ensure that a postfix operator appended to it will
     apply to the whole expression.
 
-The optional argument KEEP-ORDER, if non-nil, forces the match to
-be performed in the order given, as if the strings were made into
-a regexp by joining them with the `\\|' operator.  If nil or
-omitted, the returned regexp is will always match the longest
-string possible.
+The returned regexp is ordered in such a way that it will always
+match the longest string possible.
 
 Up to reordering, the resulting regexp is equivalent to but
 usually more efficient than that of a simplified version:
@@ -27442,7 +27446,7 @@ usually more efficient than that of a simplified 
version:
              (mapconcat \\='regexp-quote strings \"\\\\|\")
              (cdr parens))))
 
-\(fn STRINGS &optional PAREN KEEP-ORDER)" nil nil)
+\(fn STRINGS &optional PAREN)" nil nil)
 
 (autoload 'regexp-opt-depth "regexp-opt" "\
 Return the depth of REGEXP.
@@ -30122,11 +30126,9 @@ following commands are available, based on the current 
shell's syntax:
 \\[sh-while]    while loop
 
 For sh and rc shells indentation commands are:
-\\[sh-show-indent]     Show the variable controlling this line's indentation.
-\\[sh-set-indent]      Set then variable controlling this line's indentation.
-\\[sh-learn-line-indent]       Change the indentation variable so this line
-would indent to the way it currently is.
-\\[sh-learn-buffer-indent]  Set the indentation variables so the
+\\[smie-config-show-indent]    Show the rules controlling this line's 
indentation.
+\\[smie-config-set-indent]     Change the rules controlling this line's 
indentation.
+\\[smie-config-guess]  Try to tweak the indentation rules so the
 buffer indents as it currently is indented.
 
 
@@ -31063,7 +31065,11 @@ Use \\[untabify] to convert tabs to spaces before 
sorting.
 
 (autoload 'reverse-region "sort" "\
 Reverse the order of lines in a region.
-From a program takes two point or marker arguments, BEG and END.
+When called from Lisp, takes two point or marker arguments, BEG and END.
+If BEG is not at the beginning of a line, the first line of those
+to be reversed is the line starting after BEG.
+If END is not at the end of a line, the last line to be reversed
+is the one that ends before END.
 
 \(fn BEG END)" t nil)
 
@@ -36547,7 +36553,7 @@ Key bindings:
 ;;;### (autoloads nil "verilog-mode" "progmodes/verilog-mode.el"
 ;;;;;;  (0 0 0 0))
 ;;; Generated autoloads from progmodes/verilog-mode.el
-(push (purecopy '(verilog-mode 2019 12 17 268053413)) 
package--builtin-versions)
+(push (purecopy '(verilog-mode 2020 2 23 232634261)) package--builtin-versions)
 
 (autoload 'verilog-mode "verilog-mode" "\
 Major mode for editing Verilog code.
diff --git a/lisp/linum.el b/lisp/linum.el
index 8f0e7dd..e8c3642 100644
--- a/lisp/linum.el
+++ b/lisp/linum.el
@@ -5,7 +5,7 @@
 ;; Author: Markus Triska <address@hidden>
 ;; Maintainer: address@hidden
 ;; Keywords: convenience
-;; Version: 0.9x
+;; Old-Version: 0.9x
 
 ;; This file is part of GNU Emacs.
 
@@ -32,6 +32,7 @@
 ;;; Code:
 
 (defconst linum-version "0.9x")
+(make-obsolete-variable 'linum-version nil "28.1")
 
 (defvar linum-overlays nil "Overlays used in this buffer.")
 (defvar linum-available nil "Overlays available for reuse.")
diff --git a/lisp/loadhist.el b/lisp/loadhist.el
index dabc8b9..a1ff2f6 100644
--- a/lisp/loadhist.el
+++ b/lisp/loadhist.el
@@ -173,7 +173,7 @@ documentation of `unload-feature' for details.")
 ;; we undefine it.
 ;; So we use this auxiliary variable to keep track of the last (t . SYMBOL)
 ;; that occurred.
-(defvar loadhist--restore-autoload
+(defvar loadhist--restore-autoload nil
   "If non-nil, this is a symbol for which we should
 restore a previous autoload if possible.")
 
diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el
index 2952242..8851522 100644
--- a/lisp/ls-lisp.el
+++ b/lisp/ls-lisp.el
@@ -435,9 +435,9 @@ not contain `d', so that a full listing is expected."
        ;; text.  But if the listing is empty, as e.g. in empty
        ;; directories with -a removed from switches, point will be
        ;; before the inserted text, and dired-insert-directory will
-       ;; not indent the listing correctly.  Going to the end of the
-       ;; buffer fixes that.
-       (unless files (goto-char (point-max)))
+       ;; not indent the listing correctly.  Getting past the
+       ;; inserted text solves this.
+       (unless (cdr total-line) (forward-line 2))
        (if (memq ?R switches)
            ;; List the contents of all directories recursively.
            ;; cadr of each element of `file-alist' is t for
diff --git a/lisp/master.el b/lisp/master.el
index b0996bf..387116a 100644
--- a/lisp/master.el
+++ b/lisp/master.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 1999-2020 Free Software Foundation, Inc.
 
 ;; Author: Alex Schroeder <address@hidden>
-;; Version: 1.0.2
+;; Old-Version: 1.0.2
 ;; Keywords: comm
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 49daabc..7f5b597 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -1400,7 +1400,11 @@ scroll the window of possible completions."
    (minibuffer-prompt-end) (point-max) #'exit-minibuffer
    ;; If the previous completion completed to an element which fails
    ;; test-completion, then we shouldn't exit, but that should be rare.
-   (lambda () (minibuffer-message "Incomplete"))))
+   (lambda ()
+     (if minibuffer--require-match
+         (minibuffer-message "Incomplete")
+       ;; If a match is not required, exit after all.
+       (exit-minibuffer)))))
 
 (defun minibuffer-force-complete (&optional start end dont-cycle)
   "Complete the minibuffer to an exact match.
@@ -1464,6 +1468,9 @@ DONT-CYCLE tells the function not to setup cycling."
   "List of commands which cause an immediately following
 `minibuffer-complete-and-exit' to ask for extra confirmation.")
 
+(defvar minibuffer--require-match nil
+  "Value of REQUIRE-MATCH passed to `completing-read'.")
+
 (defun minibuffer-complete-and-exit ()
   "Exit if the minibuffer contains a valid completion.
 Otherwise, try to complete the minibuffer contents.  If
@@ -3748,8 +3755,10 @@ See `completing-read' for the meaning of the arguments."
 
   (let* ((minibuffer-completion-table collection)
          (minibuffer-completion-predicate predicate)
+         ;; FIXME: Remove/rename this var, see the next one.
          (minibuffer-completion-confirm (unless (eq require-match t)
                                           require-match))
+         (minibuffer--require-match require-match)
          (base-keymap (if require-match
                          minibuffer-local-must-match-map
                         minibuffer-local-completion-map))
diff --git a/lisp/mwheel.el b/lisp/mwheel.el
index 56150c8..317f2cd 100644
--- a/lisp/mwheel.el
+++ b/lisp/mwheel.el
@@ -145,13 +145,19 @@ face height."
 ;;; For tilt-scroll
 ;;;
 (defcustom mouse-wheel-tilt-scroll nil
-  "Enable scroll using tilting mouse wheel."
+  "Enable horizontal scrolling by tilting mouse wheel or via touchpad.
+Also see `mouse-wheel-flip-direction'."
   :group 'mouse
   :type 'boolean
   :version "26.1")
 
 (defcustom mouse-wheel-flip-direction nil
-  "Swap direction of `wheel-right' and `wheel-left'."
+  "Swap direction of `wheel-right' and `wheel-left'.
+By default, `wheel-right' scrolls the text to the right,
+and `wheel-left' scrolls in the other direction.
+If this variable is non-nil, it inverts the direction of
+horizontal scrolling by tilting the mouse wheel.
+Also see `mouse-wheel-tilt-scroll'."
   :group 'mouse
   :type 'boolean
   :version "26.1")
diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el
index f283942..e2d4d7d 100644
--- a/lisp/net/ange-ftp.el
+++ b/lisp/net/ange-ftp.el
@@ -4740,7 +4740,8 @@ NEWNAME should be the name to give the new compressed or 
uncompressed file.")
   (setq ange-ftp-ls-cache-file nil)    ;Stop confusing Dired.
   0)
 
-(defun ange-ftp-set-file-modes (filename mode)
+(defun ange-ftp-set-file-modes (filename mode &optional flag)
+  flag ;; FIXME: Support 'nofollow'.
   (ange-ftp-call-chmod (list (format "%o" mode) filename)))
 
 (defun ange-ftp-make-symbolic-link (&rest _arguments)
diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
index 25aabf6..7aad44b 100644
--- a/lisp/net/browse-url.el
+++ b/lisp/net/browse-url.el
@@ -216,7 +216,7 @@ be used instead."
       "\\(?:"
       ;; Match paired parentheses, e.g. in Wikipedia URLs:
       ;; http://thread.gmane.org/address@hidden
-      "[" chars punct "]+" "(" "[" chars punct "]+" "[" chars "]*)"
+      "[" chars punct "]+" "(" "[" chars punct "]+" ")"
       "\\(?:" "[" chars punct "]+" "[" chars "]" "\\)?"
       "\\|"
       "[" chars punct "]+" "[" chars "]"
diff --git a/lisp/net/eww.el b/lisp/net/eww.el
index 811d7c6..c83884f 100644
--- a/lisp/net/eww.el
+++ b/lisp/net/eww.el
@@ -1107,11 +1107,13 @@ just re-display the HTML already fetched."
 (defun eww-form-submit (dom)
   (let ((start (point))
        (value (dom-attr dom 'value)))
-    (setq value
-         (if (zerop (length value))
-             "Submit"
-           value))
-    (insert value)
+    (if (null value)
+        (shr-generic dom)
+      (insert value))
+    ;; If the contents of the <button>...</button> turns out to be
+    ;; empty, or the value was blank, default to this:
+    (when (= (point) start)
+      (insert "Submit"))
     (add-face-text-property start (point) 'eww-form-submit)
     (put-text-property start (point) 'eww-form
                       (list :eww-form eww-form
diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el
index ad06d31..1766e19 100644
--- a/lisp/net/rcirc.el
+++ b/lisp/net/rcirc.el
@@ -2421,7 +2421,7 @@ keywords when no KEYWORD is given."
         (concat
          "\\(?:"
          ;; Match paired parentheses, e.g. in Wikipedia URLs:
-         "[" chars punct "]+" "(" "[" chars punct "]+" "[" chars "]*)" "[" 
chars "]"
+         "[" chars punct "]+" "(" "[" chars punct "]+" ")" "[" chars "]"
          "\\|"
          "[" chars punct     "]+" "[" chars "]"
          "\\)"))
@@ -2626,12 +2626,16 @@ the only argument."
                (and ;; nickserv
                 (string= sender "NickServ")
                 (string= target rcirc-nick)
-                (member message
-                        (list
-                         (format "You are now identified for \C-b%s\C-b." 
rcirc-nick)
-                        (format "You are successfully identified as 
\C-b%s\C-b." rcirc-nick)
-                         "Password accepted - you are now recognized."
-                         )))
+                (cl-member
+                 message
+                 (list
+                  (format "You are now identified for \C-b%s\C-b." rcirc-nick)
+                  (format "You are successfully identified as \C-b%s\C-b."
+                          rcirc-nick)
+                  "Password accepted - you are now recognized.")
+                 ;; The nick may have a different case, so match
+                 ;; case-insensitively (Bug#39345).
+                 :test #'cl-equalp))
                (and ;; quakenet
                 (string= sender "Q")
                 (string= target rcirc-nick)
diff --git a/lisp/net/shr.el b/lisp/net/shr.el
index 55c189b..1f80ab7 100644
--- a/lisp/net/shr.el
+++ b/lisp/net/shr.el
@@ -838,7 +838,7 @@ size, and full-buffer size."
   ;; Always chop off anchors.
   (when (string-match "#.*" url)
     (setq url (substring url 0 (match-beginning 0))))
-  ;; NB: <base href="" > URI may itself be relative to the document s URI
+  ;; NB: <base href=""> URI may itself be relative to the document's URI.
   (setq url (shr-expand-url url))
   (let* ((parsed (url-generic-parse-url url))
         (local (url-filename parsed)))
@@ -1440,7 +1440,7 @@ ones, in case fg and bg are nil."
   (shr-fontize-dom dom 'underline))
 
 (defun shr-tag-code (dom)
-  (let ((shr-current-font 'default))
+  (let ((shr-current-font 'fixed-pitch))
     (shr-generic dom)))
 
 (defun shr-tag-tt (dom)
diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el
index aa7fe14..bfeaeba 100644
--- a/lisp/net/tramp-adb.el
+++ b/lisp/net/tramp-adb.el
@@ -665,13 +665,16 @@ But handle the case, if the \"test\" command is not 
available."
        (tramp-message v 0 "Wrote %s" filename))
       (run-hooks 'tramp-handle-write-region-hook))))
 
-(defun tramp-adb-handle-set-file-modes (filename mode)
+(defun tramp-adb-handle-set-file-modes (filename mode &optional flag)
   "Like `set-file-modes' for Tramp files."
   (with-parsed-tramp-file-name filename nil
-    (tramp-flush-file-properties v localname)
-    (tramp-adb-send-command-and-check v (format "chmod %o %s" mode 
localname))))
+    ;; ADB shell does not support "chmod -h".
+    (unless (and (eq flag 'nofollow) (file-symlink-p filename))
+      (tramp-flush-file-properties v localname)
+      (tramp-adb-send-command-and-check
+       v (format "chmod %o %s" mode localname)))))
 
-(defun tramp-adb-handle-set-file-times (filename &optional time)
+(defun tramp-adb-handle-set-file-times (filename &optional time flag)
   "Like `set-file-times' for Tramp files."
   (with-parsed-tramp-file-name filename nil
     (tramp-flush-file-properties v localname)
@@ -680,21 +683,22 @@ But handle the case, if the \"test\" command is not 
available."
                        (tramp-compat-time-equal-p time tramp-time-dont-know))
                    (current-time)
                  time))
+         (nofollow (if (eq flag 'nofollow) "-h" ""))
          (quoted-name (tramp-shell-quote-argument localname)))
       ;; Older versions of toybox 'touch' mishandle nanoseconds and/or
       ;; trailing "Z", so fall back on plain seconds if nanoseconds+Z
       ;; fails.  Also, fall back on old POSIX 'touch -t' if 'touch -d'
       ;; (introduced in POSIX.1-2008) fails.
       (tramp-adb-send-command-and-check
-       v (format (concat "touch -d %s %s 2>/dev/null || "
-                        "touch -d %s %s 2>/dev/null || "
-                        "touch -t %s %s")
+       v (format (concat "touch -d %s %s %s 2>/dev/null || "
+                        "touch -d %s %s %s 2>/dev/null || "
+                        "touch -t %s %s %s")
                 (format-time-string "%Y-%m-%dT%H:%M:%S.%NZ" time t)
-                quoted-name
+                nofollow quoted-name
                 (format-time-string "%Y-%m-%dT%H:%M:%S" time t)
-                quoted-name
+                nofollow quoted-name
                 (format-time-string "%Y%m%d%H%M.%S" time t)
-                quoted-name)))))
+                nofollow quoted-name)))))
 
 (defun tramp-adb-handle-copy-file
   (filename newname &optional ok-if-already-exists keep-date
@@ -771,10 +775,11 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are 
completely ignored."
 
     ;; KEEP-DATE handling.
     (when keep-date
-      (set-file-times
+      (tramp-compat-set-file-times
        newname
        (tramp-compat-file-attribute-modification-time
-       (file-attributes filename))))))
+       (file-attributes filename))
+       (unless ok-if-already-exists 'nofollow)))))
 
 (defun tramp-adb-handle-rename-file
   (filename newname &optional ok-if-already-exists)
diff --git a/lisp/net/tramp-compat.el b/lisp/net/tramp-compat.el
index 565651e..ee85c99 100644
--- a/lisp/net/tramp-compat.el
+++ b/lisp/net/tramp-compat.el
@@ -165,7 +165,7 @@ This is a string of ten letters or dashes as in ls -l."
   "The error symbol for the `file-missing' error.")
 
 ;; `file-local-name', `file-name-quoted-p', `file-name-quote' and
-;; `file-name-unquote' are introduced in Emacs 26.
+;; `file-name-unquote' are introduced in Emacs 26.1.
 (defalias 'tramp-compat-file-local-name
   (if (fboundp 'file-local-name)
       #'file-local-name
@@ -175,7 +175,8 @@ It returns a file name which can be used directly as 
argument of
 `process-file', `start-file-process', or `shell-command'."
       (or (file-remote-p name 'localname) name))))
 
-;; `file-name-quoted-p' got a second argument in Emacs 27.1.
+;; `file-name-quoted-p', `file-name-quote' and `file-name-unquote' got
+;; a second argument in Emacs 27.1.
 (defalias 'tramp-compat-file-name-quoted-p
   (if (and
        (fboundp 'file-name-quoted-p)
@@ -217,7 +218,7 @@ NAME is unquoted."
           localname (if (= (length localname) 2) "/" (substring localname 2))))
        (concat (file-remote-p name) localname)))))
 
-;; `tramp-syntax' has changed its meaning in Emacs 26.  We still
+;; `tramp-syntax' has changed its meaning in Emacs 26.1.  We still
 ;; support old settings.
 (defsubst tramp-compat-tramp-syntax ()
   "Return proper value of `tramp-syntax'."
@@ -300,6 +301,26 @@ A nil value for either argument stands for the current 
time."
     (lambda (reporter &optional value _suffix)
       (progress-reporter-update reporter value))))
 
+;; `file-modes', `set-file-modes' and `set-file-times' got argument
+;; FLAG in Emacs 28.1.
+(defalias 'tramp-compat-file-modes
+  (if (equal (tramp-compat-funcall 'func-arity #'file-modes) '(1 . 2))
+      #'file-modes
+    (lambda (filename &optional _flag)
+      (file-modes filename))))
+
+(defalias 'tramp-compat-set-file-modes
+  (if (equal (tramp-compat-funcall 'func-arity #'set-file-modes) '(2 . 3))
+      #'set-file-modes
+    (lambda (filename mode &optional _flag)
+      (set-file-modes filename mode))))
+
+(defalias 'tramp-compat-set-file-times
+  (if (equal (tramp-compat-funcall 'func-arity #'set-file-times) '(1 . 3))
+      #'set-file-times
+    (lambda (filename &optional timestamp _flag)
+      (set-file-times filename timestamp))))
+
 (add-hook 'tramp-unload-hook
          (lambda ()
            (unload-feature 'tramp-loaddefs 'force)
@@ -309,6 +330,8 @@ A nil value for either argument stands for the current 
time."
 
 ;;; TODO:
 ;;
+;; * `func-arity' exists since Emacs 26.1.
+;;
 ;; * Starting with Emacs 27.1, there's no need to escape open
 ;;   parentheses with a backslash in docstrings anymore.
 
diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
index 762c4fe..85f2807 100644
--- a/lisp/net/tramp-gvfs.el
+++ b/lisp/net/tramp-gvfs.el
@@ -1562,29 +1562,27 @@ If FILE-SYSTEM is non-nil, return file system 
attributes."
     (tramp-run-real-handler
      #'rename-file (list filename newname ok-if-already-exists))))
 
-(defun tramp-gvfs-handle-set-file-modes (filename mode)
+(defun tramp-gvfs-handle-set-file-modes (filename mode &optional flag)
   "Like `set-file-modes' for Tramp files."
   (with-parsed-tramp-file-name filename nil
     (tramp-flush-file-properties v localname)
     (tramp-gvfs-send-command
-     v "gvfs-set-attribute" "-t" "uint32"
-     (tramp-gvfs-url-file-name (tramp-make-tramp-file-name v))
-     "unix::mode" (number-to-string mode))))
+     v "gvfs-set-attribute" (if (eq flag 'nofollow) "-nt" "-t") "uint32"
+     (tramp-gvfs-url-file-name filename) "unix::mode" (number-to-string 
mode))))
 
-(defun tramp-gvfs-handle-set-file-times (filename &optional time)
+(defun tramp-gvfs-handle-set-file-times (filename &optional time flag)
   "Like `set-file-times' for Tramp files."
   (with-parsed-tramp-file-name filename nil
     (tramp-flush-file-properties v localname)
-    (let ((time
-          (if (or (null time)
+    (tramp-gvfs-send-command
+     v "gvfs-set-attribute" (if (eq flag 'nofollow) "-nt" "-t") "uint64"
+     (tramp-gvfs-url-file-name filename) "time::modified"
+     (format-time-string
+      "%s" (if (or (null time)
                   (tramp-compat-time-equal-p time tramp-time-doesnt-exist)
                   (tramp-compat-time-equal-p time tramp-time-dont-know))
               (current-time)
-            time)))
-      (tramp-gvfs-send-command
-       v "gvfs-set-attribute" "-t" "uint64"
-       (tramp-gvfs-url-file-name (tramp-make-tramp-file-name v))
-       "time::modified" (format-time-string "%s" time)))))
+            time)))))
 
 (defun tramp-gvfs-set-file-uid-gid (filename &optional uid gid)
   "Like `tramp-set-file-uid-gid' for Tramp files."
@@ -1593,12 +1591,11 @@ If FILE-SYSTEM is non-nil, return file system 
attributes."
     (when (natnump uid)
       (tramp-gvfs-send-command
        v "gvfs-set-attribute" "-t" "uint32"
-       (tramp-gvfs-url-file-name (tramp-make-tramp-file-name v))
-       "unix::uid" (number-to-string uid)))
+       (tramp-gvfs-url-file-name filename) "unix::uid" (number-to-string uid)))
     (when (natnump gid)
       (tramp-gvfs-send-command
        v "gvfs-set-attribute" "-t" "uint32"
-       (tramp-gvfs-url-file-name (tramp-make-tramp-file-name v))
+       (tramp-gvfs-url-file-name filename)
        "unix::gid" (number-to-string gid)))))
 
 
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 5a3abc3..06dca31 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -1478,17 +1478,24 @@ of."
             ;; only if that agrees with the buffer's record.
             (t (tramp-compat-time-equal-p mt tramp-time-doesnt-exist)))))))))
 
-(defun tramp-sh-handle-set-file-modes (filename mode)
+(defun tramp-sh-handle-set-file-modes (filename mode &optional flag)
   "Like `set-file-modes' for Tramp files."
   (with-parsed-tramp-file-name filename nil
-    (tramp-flush-file-properties v localname)
-    ;; FIXME: extract the proper text from chmod's stderr.
-    (tramp-barf-unless-okay
-     v
-     (format "chmod %o %s" mode (tramp-shell-quote-argument localname))
-     "Error while changing file's mode %s" filename)))
+    ;; We need "chmod -h" when the flag is set.
+    (when (or (not (eq flag 'nofollow))
+             (not (file-symlink-p filename))
+             (tramp-get-remote-chmod-h v))
+      (tramp-flush-file-properties v localname)
+      ;; FIXME: extract the proper text from chmod's stderr.
+      (tramp-barf-unless-okay
+       v
+       (format
+       "chmod %s %o %s"
+       (if (and (eq flag 'nofollow) (tramp-get-remote-chmod-h v)) "-h" "")
+       mode (tramp-shell-quote-argument localname))
+       "Error while changing file's mode %s" filename))))
 
-(defun tramp-sh-handle-set-file-times (filename &optional time)
+(defun tramp-sh-handle-set-file-times (filename &optional time flag)
   "Like `set-file-times' for Tramp files."
   (with-parsed-tramp-file-name filename nil
     (when (tramp-get-remote-touch v)
@@ -1501,11 +1508,12 @@ of."
               time)))
        (tramp-send-command-and-check
         v (format
-           "env TZ=UTC %s %s %s"
+           "env TZ=UTC %s %s %s %s"
            (tramp-get-remote-touch v)
            (if (tramp-get-connection-property v "touch-t" nil)
                (format "-t %s" (format-time-string "%Y%m%d%H%M.%S" time t))
              "")
+           (if (eq flag 'nofollow) "-h" "")
            (tramp-shell-quote-argument localname)))))))
 
 (defun tramp-sh-handle-set-file-uid-gid (filename &optional uid gid)
@@ -1971,7 +1979,7 @@ tramp-sh-handle-file-name-all-completions: internal error 
accessing `%s': `%s'"
            (unless (file-directory-p (file-name-directory newname))
                (make-directory (file-name-directory newname) parents))
            (tramp-do-copy-or-rename-file-out-of-band
-            'copy dirname newname keep-date))
+            'copy dirname newname 'ok-if-already-exists keep-date))
 
        ;; We must do it file-wise.
        (tramp-run-real-handler
@@ -2067,7 +2075,7 @@ file names."
                   (tramp-method-out-of-band-p v1 length)
                   (tramp-method-out-of-band-p v2 length))
                  (tramp-do-copy-or-rename-file-out-of-band
-                  op filename newname keep-date))
+                  op filename newname ok-if-already-exists keep-date))
 
                 ;; No shortcut was possible.  So we copy the file
                 ;; first.  If the operation was `rename', we go back
@@ -2080,7 +2088,7 @@ file names."
                 ;; source and target file.
                 (t
                  (tramp-do-copy-or-rename-file-via-buffer
-                  op filename newname keep-date))))))
+                  op filename newname ok-if-already-exists keep-date))))))
 
           ;; One file is a Tramp file, the other one is local.
           ((or t1 t2)
@@ -2095,11 +2103,11 @@ file names."
             ;; corresponding copy-program can be invoked.
             ((tramp-method-out-of-band-p v length)
              (tramp-do-copy-or-rename-file-out-of-band
-              op filename newname keep-date))
+              op filename newname ok-if-already-exists keep-date))
 
             ;; Use the inline method via a Tramp buffer.
             (t (tramp-do-copy-or-rename-file-via-buffer
-                op filename newname keep-date))))
+                op filename newname ok-if-already-exists keep-date))))
 
           (t
            ;; One of them must be a Tramp file.
@@ -2121,7 +2129,8 @@ file names."
            (with-parsed-tramp-file-name newname v2
              (tramp-flush-file-properties v2 v2-localname))))))))
 
-(defun tramp-do-copy-or-rename-file-via-buffer (op filename newname keep-date)
+(defun tramp-do-copy-or-rename-file-via-buffer
+    (op filename newname ok-if-already-exists keep-date)
   "Use an Emacs buffer to copy or rename a file.
 First arg OP is either `copy' or `rename' and indicates the operation.
 FILENAME is the source file, NEWNAME the target file.
@@ -2149,10 +2158,11 @@ KEEP-DATE is non-nil if NEWNAME should have the same 
timestamp as FILENAME."
       (insert-file-contents-literally filename)))
   ;; KEEP-DATE handling.
   (when keep-date
-    (set-file-times
+    (tramp-compat-set-file-times
      newname
      (tramp-compat-file-attribute-modification-time
-      (file-attributes filename))))
+      (file-attributes filename))
+     (unless ok-if-already-exists 'nofollow)))
   ;; Set the mode.
   (set-file-modes newname (tramp-default-file-modes filename))
   ;; If the operation was `rename', delete the original file.
@@ -2306,10 +2316,12 @@ the uid and gid from FILENAME."
       ;; Set the time and mode. Mask possible errors.
       (ignore-errors
          (when keep-date
-           (set-file-times newname file-times)
+           (tramp-compat-set-file-times
+            newname file-times (unless ok-if-already-exists 'nofollow))
            (set-file-modes newname file-modes))))))
 
-(defun tramp-do-copy-or-rename-file-out-of-band (op filename newname keep-date)
+(defun tramp-do-copy-or-rename-file-out-of-band
+    (op filename newname ok-if-already-exists keep-date)
   "Invoke `scp' program to copy.
 The method used must be an out-of-band method."
   (let* ((t1 (tramp-tramp-file-p filename))
@@ -2332,9 +2344,9 @@ The method used must be an out-of-band method."
            (unwind-protect
                (progn
                  (tramp-do-copy-or-rename-file-out-of-band
-                  op filename tmpfile keep-date)
+                  op filename tmpfile ok-if-already-exists keep-date)
                  (tramp-do-copy-or-rename-file-out-of-band
-                  'rename tmpfile newname keep-date))
+                  'rename tmpfile newname ok-if-already-exists keep-date))
              ;; Save exit.
              (ignore-errors
                (if dir-flag
@@ -2508,10 +2520,11 @@ The method used must be an out-of-band method."
 
        ;; Handle KEEP-DATE argument.
        (when (and keep-date (not copy-keep-date))
-         (set-file-times
+         (tramp-compat-set-file-times
           newname
           (tramp-compat-file-attribute-modification-time
-           (file-attributes filename))))
+           (file-attributes filename))
+          (unless ok-if-already-exists 'nofollow)))
 
        ;; Set the mode.
        (unless (and keep-date copy-keep-date)
@@ -3270,7 +3283,8 @@ STDERR can also be a file name."
           #'write-region
           (list start end localname append 'no-message lockname))
 
-       (let* ((modes (save-excursion (tramp-default-file-modes filename)))
+       (let* ((modes (tramp-default-file-modes
+                      filename (and (eq mustbenew 'excl) 'nofollow)))
               ;; We use this to save the value of
               ;; `last-coding-system-used' after writing the tmp
               ;; file.  At the end of the function, we set
@@ -3292,7 +3306,8 @@ STDERR can also be a file name."
 
          ;; If `append' is non-nil, we copy the file locally, and let
          ;; the native `write-region' implementation do the job.
-         (when append (copy-file filename tmpfile 'ok))
+         (when (and append (file-exists-p filename))
+           (copy-file filename tmpfile 'ok))
 
          ;; We say `no-message' here because we don't want the
          ;; visited file modtime data to be clobbered from the temp
@@ -4180,45 +4195,47 @@ file exists and nonzero exit status otherwise."
 
 (defun tramp-find-shell (vec)
   "Open a shell on the remote host which groks tilde expansion."
-  (with-current-buffer (tramp-get-buffer vec)
-    (let ((default-shell (tramp-get-method-parameter vec 'tramp-remote-shell))
-         shell)
-      (setq shell
-           (with-tramp-connection-property vec "remote-shell"
-             ;; CCC: "root" does not exist always, see my QNAP TS-459.
-             ;; Which check could we apply instead?
-             (tramp-send-command vec "echo ~root" t)
-             (if (or (string-match-p "^~root$" (buffer-string))
-                     ;; The default shell (ksh93) of OpenSolaris and
-                     ;; Solaris is buggy.  We've got reports for
-                     ;; "SunOS 5.10" and "SunOS 5.11" so far.
-                     (string-match-p
-                      (eval-when-compile
-                        (regexp-opt '("SunOS 5.10" "SunOS 5.11")))
-                      (tramp-get-connection-property vec "uname" "")))
-
-                 (or (tramp-find-executable
-                      vec "bash" (tramp-get-remote-path vec) t t)
-                     (tramp-find-executable
-                      vec "ksh" (tramp-get-remote-path vec) t t)
-                     ;; Maybe it works at least for some other commands.
-                     (prog1
-                         default-shell
-                       (tramp-message
-                        vec 2
+  ;; If we are in `make-process', we don't need another shell.
+  (unless (tramp-get-connection-property vec "process-name" nil)
+    (with-current-buffer (tramp-get-buffer vec)
+      (let ((default-shell (tramp-get-method-parameter vec 
'tramp-remote-shell))
+           shell)
+       (setq shell
+             (with-tramp-connection-property vec "remote-shell"
+               ;; CCC: "root" does not exist always, see my QNAP
+               ;; TS-459.  Which check could we apply instead?
+               (tramp-send-command vec "echo ~root" t)
+               (if (or (string-match-p "^~root$" (buffer-string))
+                       ;; The default shell (ksh93) of OpenSolaris
+                       ;; and Solaris is buggy.  We've got reports
+                       ;; for "SunOS 5.10" and "SunOS 5.11" so far.
+                       (string-match-p
                         (eval-when-compile
-                          (concat
-                           "Couldn't find a remote shell which groks tilde "
-                           "expansion, using `%s'"))
-                        default-shell)))
+                          (regexp-opt '("SunOS 5.10" "SunOS 5.11")))
+                        (tramp-get-connection-property vec "uname" "")))
+
+                   (or (tramp-find-executable
+                        vec "bash" (tramp-get-remote-path vec) t t)
+                       (tramp-find-executable
+                        vec "ksh" (tramp-get-remote-path vec) t t)
+                       ;; Maybe it works at least for some other commands.
+                       (prog1
+                           default-shell
+                         (tramp-message
+                          vec 2
+                          (eval-when-compile
+                            (concat
+                             "Couldn't find a remote shell which groks tilde "
+                             "expansion, using `%s'"))
+                          default-shell)))
 
-               default-shell)))
+                 default-shell)))
 
-      ;; Open a new shell if needed.
-      (unless (string-equal shell default-shell)
-       (tramp-message
-        vec 5 "Starting remote shell `%s' for tilde expansion" shell)
-       (tramp-open-shell vec shell)))))
+       ;; Open a new shell if needed.
+       (unless (string-equal shell default-shell)
+         (tramp-message
+          vec 5 "Starting remote shell `%s' for tilde expansion" shell)
+         (tramp-open-shell vec shell))))))
 
 ;; Utility functions.
 
@@ -5895,6 +5912,22 @@ ID-FORMAT valid values are `string' and `integer'."
                vec (concat command " -A n </dev/null"))
               command)))))
 
+(defun tramp-get-remote-chmod-h (vec)
+  "Check whether remote `chmod' supports nofollow argument."
+  (with-tramp-connection-property vec "chmod-h"
+    (tramp-message vec 5 "Finding a suitable `chmod' command with nofollow")
+    (let ((tmpfile
+          (make-temp-name
+           (expand-file-name
+            tramp-temp-name-prefix (tramp-get-remote-tmpdir vec)))))
+      (prog1
+         (tramp-send-command-and-check
+          vec
+          (format
+           "ln -s foo %s && chmod -h %s 0777"
+           (tramp-file-local-name tmpfile) (tramp-file-local-name tmpfile)))
+       (delete-file tmpfile)))))
+
 (defun tramp-get-env-with-u-option (vec)
   "Check, whether the remote `env' command supports the -u option."
   (with-tramp-connection-property vec "env-u-option"
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index f02be39..effac33 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -538,10 +538,11 @@ pass to the OPERATION."
 
            ;; Handle KEEP-DATE argument.
            (when keep-date
-             (set-file-times
+             (tramp-compat-set-file-times
               newname
               (tramp-compat-file-attribute-modification-time
-               (file-attributes dirname))))
+               (file-attributes dirname))
+              (unless ok-if-already-exists 'nofollow)))
 
            ;; Set the mode.
            (unless keep-date
@@ -616,10 +617,11 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are 
completely ignored."
 
     ;; KEEP-DATE handling.
     (when keep-date
-      (set-file-times
+      (tramp-compat-set-file-times
        newname
        (tramp-compat-file-attribute-modification-time
-       (file-attributes filename))))))
+       (file-attributes filename))
+       (unless ok-if-already-exists 'nofollow)))))
 
 (defun tramp-smb-handle-delete-directory (directory &optional recursive _trash)
   "Like `delete-directory' for Tramp files."
@@ -1464,15 +1466,17 @@ component is used as the target of the symlink."
            (tramp-flush-connection-property v "process-name")
            (tramp-flush-connection-property v "process-buffer")))))))
 
-(defun tramp-smb-handle-set-file-modes (filename mode)
+(defun tramp-smb-handle-set-file-modes (filename mode &optional flag)
   "Like `set-file-modes' for Tramp files."
   (with-parsed-tramp-file-name filename nil
-    (when (tramp-smb-get-cifs-capabilities v)
-      (tramp-flush-file-properties v localname)
-      (unless (tramp-smb-send-command
-              v (format "chmod \"%s\" %o" (tramp-smb-get-localname v) mode))
-       (tramp-error
-        v 'file-error "Error while changing file's mode %s" filename)))))
+    ;; smbclient chmod does not support nofollow.
+    (unless (and (eq flag 'nofollow) (file-symlink-p filename))
+      (when (tramp-smb-get-cifs-capabilities v)
+       (tramp-flush-file-properties v localname)
+       (unless (tramp-smb-send-command
+                v (format "chmod \"%s\" %o" (tramp-smb-get-localname v) mode))
+         (tramp-error
+          v 'file-error "Error while changing file's mode %s" filename))))))
 
 ;; We use BUFFER also as connection buffer during setup. Because of
 ;; this, its original contents must be saved, and restored once
diff --git a/lisp/net/tramp-sudoedit.el b/lisp/net/tramp-sudoedit.el
index f258ad6..b6861ba 100644
--- a/lisp/net/tramp-sudoedit.el
+++ b/lisp/net/tramp-sudoedit.el
@@ -281,7 +281,8 @@ absolute file names."
        ;; Set the time and mode. Mask possible errors.
        (when keep-date
          (ignore-errors
-           (set-file-times newname file-times)
+           (tramp-compat-set-file-times
+            newname file-times (unless ok-if-already-exists 'nofollow))
            (set-file-modes newname file-modes)))
 
        ;; Handle `preserve-extended-attributes'.  We ignore possible
@@ -463,15 +464,17 @@ the result will be a local, non-Tramp, file name."
       (tramp-sudoedit-send-command
        v "test" "-r" (tramp-compat-file-name-unquote localname)))))
 
-(defun tramp-sudoedit-handle-set-file-modes (filename mode)
+(defun tramp-sudoedit-handle-set-file-modes (filename mode &optional flag)
   "Like `set-file-modes' for Tramp files."
   (with-parsed-tramp-file-name filename nil
-    (tramp-flush-file-properties v localname)
-    (unless (tramp-sudoedit-send-command
-            v "chmod" (format "%o" mode)
-            (tramp-compat-file-name-unquote localname))
-      (tramp-error
-       v 'file-error "Error while changing file's mode %s" filename))))
+    ;; It is unlikely that "chmod -h" works.
+    (unless (and (eq flag 'nofollow) (file-symlink-p filename))
+      (tramp-flush-file-properties v localname)
+      (unless (tramp-sudoedit-send-command
+              v "chmod" (format "%o" mode)
+              (tramp-compat-file-name-unquote localname))
+       (tramp-error
+        v 'file-error "Error while changing file's mode %s" filename)))))
 
 (defun tramp-sudoedit-remote-selinux-p (vec)
   "Check, whether SELINUX is enabled on the remote host."
@@ -521,7 +524,7 @@ the result will be a local, non-Tramp, file name."
                     (string-to-number (match-string 2)))
                  (string-to-number (match-string 3)))))))))
 
-(defun tramp-sudoedit-handle-set-file-times (filename &optional time)
+(defun tramp-sudoedit-handle-set-file-times (filename &optional time flag)
   "Like `set-file-times' for Tramp files."
   (with-parsed-tramp-file-name filename nil
     (tramp-flush-file-properties v localname)
@@ -534,6 +537,7 @@ the result will be a local, non-Tramp, file name."
       (tramp-sudoedit-send-command
        v "env" "TZ=UTC" "touch" "-t"
        (format-time-string "%Y%m%d%H%M.%S" time t)
+       (if (eq flag 'nofollow) "-h" "")
        (tramp-compat-file-name-unquote localname)))))
 
 (defun tramp-sudoedit-handle-file-truename (filename)
@@ -715,13 +719,14 @@ ID-FORMAT valid values are `string' and `integer'."
   (start end filename &optional append visit lockname mustbenew)
   "Like `write-region' for Tramp files."
   (with-parsed-tramp-file-name filename nil
-    (let ((uid (or (tramp-compat-file-attribute-user-id
-                   (file-attributes filename 'integer))
-                  (tramp-sudoedit-get-remote-uid v 'integer)))
-         (gid (or (tramp-compat-file-attribute-group-id
-                   (file-attributes filename 'integer))
-                  (tramp-sudoedit-get-remote-gid v 'integer)))
-         (modes (tramp-default-file-modes filename)))
+    (let* ((uid (or (tramp-compat-file-attribute-user-id
+                    (file-attributes filename 'integer))
+                   (tramp-sudoedit-get-remote-uid v 'integer)))
+          (gid (or (tramp-compat-file-attribute-group-id
+                    (file-attributes filename 'integer))
+                   (tramp-sudoedit-get-remote-gid v 'integer)))
+          (flag (and (eq mustbenew 'excl) 'nofollow))
+          (modes (tramp-default-file-modes filename flag)))
       (prog1
          (tramp-handle-write-region
           start end filename append visit lockname mustbenew)
@@ -735,7 +740,7 @@ ID-FORMAT valid values are `string' and `integer'."
                         (file-attributes filename 'integer))
                        gid))
           (tramp-set-file-uid-gid filename uid gid))
-       (set-file-modes filename modes)))))
+       (tramp-compat-set-file-modes filename modes flag)))))
 
 
 ;; Internal functions.
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 46bde74..5278c26 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -2139,11 +2139,13 @@ For definition of that list see 
`tramp-set-completion-function'."
 (defvar tramp-devices 0
   "Keeps virtual device numbers.")
 
-(defun tramp-default-file-modes (filename)
+(defun tramp-default-file-modes (filename &optional flag)
   "Return file modes of FILENAME as integer.
-If the file modes of FILENAME cannot be determined, return the
-value of `default-file-modes', without execute permissions."
-  (or (file-modes filename)
+If optional FLAG is ‘nofollow’, do not follow FILENAME if it is a
+symbolic link.  If the file modes of FILENAME cannot be
+determined, return the value of `default-file-modes', without
+execute permissions."
+  (or (tramp-compat-file-modes filename flag)
       (logand (default-file-modes) #o0666)))
 
 (defun tramp-replace-environment-variables (filename)
@@ -3211,10 +3213,13 @@ User is always nil."
       (copy-file filename tmpfile 'ok-if-already-exists 'keep-time)
       tmpfile)))
 
-(defun tramp-handle-file-modes (filename)
+(defun tramp-handle-file-modes (filename &optional flag)
   "Like `file-modes' for Tramp files."
-  (when-let ((attrs (file-attributes (or (file-truename filename) filename))))
-    (tramp-mode-string-to-int (tramp-compat-file-attribute-modes attrs))))
+  (when-let ((attrs (file-attributes filename))
+            (mode-string (tramp-compat-file-attribute-modes attrs)))
+    (if (and (not (eq flag 'nofollow)) (eq ?l (aref mode-string 0)))
+       (file-modes (file-truename filename))
+      (tramp-mode-string-to-int mode-string))))
 
 ;; Localname manipulation functions that grok Tramp localnames...
 (defun tramp-handle-file-name-as-directory (file)
@@ -3908,7 +3913,8 @@ of."
       (tramp-error v 'file-already-exists filename))
 
     (let ((tmpfile (tramp-compat-make-temp-file filename))
-         (modes (save-excursion (tramp-default-file-modes filename))))
+         (modes (tramp-default-file-modes
+                 filename (and (eq mustbenew 'excl) 'nofollow))))
       (when (and append (file-exists-p filename))
        (copy-file filename tmpfile 'ok))
       ;; The permissions of the temporary file should be set.  If
@@ -4221,18 +4227,21 @@ performed successfully.  Any other value means an 
error."
 (defun tramp-accept-process-output (proc &optional timeout)
   "Like `accept-process-output' for Tramp processes.
 This is needed in order to hide `last-coding-system-used', which is set
-for process communication also."
+for process communication also.
+If the user quits via `C-g', it is propagated up to `tramp-file-name-handler'."
   (with-current-buffer (process-buffer proc)
     (let ((inhibit-read-only t)
          last-coding-system-used
          result)
-      ;; JUST-THIS-ONE is set due to Bug#12145.
-      (tramp-message
-       proc 10 "%s %s %s %s\n%s"
-       proc timeout (process-status proc)
-       (with-local-quit
-        (setq result (accept-process-output proc timeout nil t)))
-       (buffer-string))
+      ;; JUST-THIS-ONE is set due to Bug#12145.  `with-local-quit'
+      ;; returns t in order to report success.
+      (if (with-local-quit
+           (setq result (accept-process-output proc timeout nil t)) t)
+         (tramp-message
+          proc 10 "%s %s %s %s\n%s"
+          proc timeout (process-status proc) result (buffer-string))
+       ;; Propagate quit.
+       (keyboard-quit))
       result)))
 
 (defun tramp-search-regexp (regexp)
diff --git a/lisp/org/ob-core.el b/lisp/org/ob-core.el
index 651561a..a5ad97a 100644
--- a/lisp/org/ob-core.el
+++ b/lisp/org/ob-core.el
@@ -2437,7 +2437,7 @@ INFO may provide the values of these header arguments (in 
the
     (when location
       (save-excursion
         (goto-char location)
-       (when (looking-at (concat org-babel-result-regexp ".*$"))
+       (when (looking-at org-babel-result-regexp)
          (delete-region
           (if keep-keyword (line-beginning-position 2)
             (save-excursion
diff --git a/lisp/org/ob-fortran.el b/lisp/org/ob-fortran.el
index 154465f..149058f 100644
--- a/lisp/org/ob-fortran.el
+++ b/lisp/org/ob-fortran.el
@@ -106,7 +106,7 @@ its header arguments."
 
 (defun org-babel-fortran-ensure-main-wrap (body params)
   "Wrap body in a \"program ... end program\" block if none exists."
-  (if (string-match "^[ \t]*program[ \t]*.*" (capitalize body))
+  (if (string-match "^[ \t]*program\\>" (capitalize body))
       (let ((vars (org-babel--get-vars params)))
        (when vars (error "Cannot use :vars if `program' statement is present"))
        body)
diff --git a/lisp/org/org-capture.el b/lisp/org/org-capture.el
index 003cbef..ace5127 100644
--- a/lisp/org/org-capture.el
+++ b/lisp/org/org-capture.el
@@ -1021,7 +1021,7 @@ Store them in the capture property list."
                         (apply #'encode-time 0 0
                                org-extend-today-until
                                (cl-cdddr (decode-time prompt-time))))
-                       ((string-match "\\([^ ]+\\)--?[^ ]+[ ]+\\(.*\\)"
+                       ((string-match "\\([^ ]+\\)-[^ ]+[ ]+\\(.*\\)"
                                       org-read-date-final-answer)
                         ;; Replace any time range by its start.
                         (apply #'encode-time
diff --git a/lisp/org/org-table.el b/lisp/org/org-table.el
index 469e01b..98702fe 100644
--- a/lisp/org/org-table.el
+++ b/lisp/org/org-table.el
@@ -3099,7 +3099,7 @@ function assumes the table is already analyzed (i.e., 
using
       (let ((lhs (car e))
            (rhs (cdr e)))
        (cond
-        ((string-match-p "\\`@-?[-+0-9]+\\$-?[0-9]+\\'" lhs)
+        ((string-match-p "\\`@[-+0-9]+\\$-?[0-9]+\\'" lhs)
          ;; This just refers to one fixed field.
          (push e res))
         ((string-match-p "\\`[a-zA-Z][_a-zA-Z0-9]*\\'" lhs)
diff --git a/lisp/org/org.el b/lisp/org/org.el
index e8e1ef9..f1a7f61 100644
--- a/lisp/org/org.el
+++ b/lisp/org/org.el
@@ -460,7 +460,7 @@ Matched keyword is in group 1.")
                 org-clock-string)
           t)
          "\\)?"
-         " *\\([[<][0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^]\r\n>]*?[]>]"
+         " *\\([[<][0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}[^]\r\n>]*[]>]"
          "\\|"
          "<%%([^\r\n>]*>\\)")
   "Matches a timestamp, possibly preceded by a keyword.")
@@ -564,14 +564,14 @@ Effort estimates given in this property need to have the 
format H:MM.")
 
 ;;;; Timestamp
 
-(defconst org-ts-regexp "<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} 
?[^\r\n>]*?\\)>"
+(defconst org-ts-regexp 
"<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}[^\r\n>]*\\)>"
   "Regular expression for fast time stamp matching.")
 
 (defconst org-ts-regexp-inactive
-  "\\[\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^\r\n>]*?\\)\\]"
+  "\\[\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}[^]\r\n>]*\\)\\]"
   "Regular expression for fast inactive time stamp matching.")
 
-(defconst org-ts-regexp-both "[[<]\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} 
?[^]\r\n>]*?\\)[]>]"
+(defconst org-ts-regexp-both 
"[[<]\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}[^]\r\n>]*\\)[]>]"
   "Regular expression for fast time stamp matching.")
 
 (defconst org-ts-regexp0
diff --git a/lisp/play/bubbles.el b/lisp/play/bubbles.el
index 6842cb0..e598257 100644
--- a/lisp/play/bubbles.el
+++ b/lisp/play/bubbles.el
@@ -80,6 +80,7 @@
 ;;; Code:
 
 (defconst bubbles-version "0.5" "Version number of bubbles.el.")
+(make-obsolete-variable 'bubbles-version nil "28.1")
 
 (require 'gamegrid)
 
diff --git a/lisp/play/gametree.el b/lisp/play/gametree.el
index aa99b55..ba74afc 100644
--- a/lisp/play/gametree.el
+++ b/lisp/play/gametree.el
@@ -324,7 +324,7 @@ This value is simply the outline heading level of the 
current line."
 (defun gametree-hack-file-layout ()
   (save-excursion
     (goto-char (point-min))
-    (if (looking-at "[^\n]*-*-[^\n]*gametree-local-layout: \\([^;\n]*\\);")
+    (if (looking-at "[^\n]*-[^\n]*gametree-local-layout: \\([^;\n]*\\);")
         (progn
           (goto-char (match-beginning 1))
           (delete-region (point) (match-end 1))
diff --git a/lisp/progmodes/cc-awk.el b/lisp/progmodes/cc-awk.el
index fd61e3e..52e6da6 100644
--- a/lisp/progmodes/cc-awk.el
+++ b/lisp/progmodes/cc-awk.el
@@ -1003,7 +1003,7 @@ std\\(err\\|in\\|out\\)\\|user\\)\\)\\>\
 ;; Matches an unterminated string/regexp, NOT including the eol at the end.
 
 (defconst c-awk-harmless-pattern-characters*
-  (concat "\\([^{;#/\"\\\\\n\r]\\|" c-awk-esc-pair-re "\\)*"))
+  (concat "\\([^{;#/\"\\\n\r]\\|" c-awk-esc-pair-re "\\)*"))
 ;; Matches any "harmless" character in a pattern or an escaped character pair.
 
 (defun c-awk-at-statement-end-p ()
diff --git a/lisp/progmodes/cc-cmds.el b/lisp/progmodes/cc-cmds.el
index a608122..1b557c4 100644
--- a/lisp/progmodes/cc-cmds.el
+++ b/lisp/progmodes/cc-cmds.el
@@ -48,6 +48,7 @@
 (cc-bytecomp-defvar filladapt-mode)    ; c-fill-paragraph contains a kludge
                                        ; which looks at this.
 (cc-bytecomp-defun electric-pair-post-self-insert-function)
+(cc-bytecomp-defvar c-indent-to-body-directives)
 
 ;; Indentation / Display syntax functions
 (defvar c-fix-backslashes t)
@@ -1441,6 +1442,98 @@ keyword on the line, the keyword is not inserted inside 
a literal, and
          (indent-according-to-mode)
        (delete-char -2)))))
 
+(defun c-align-cpp-indent-to-body ()
+  "Align a \"#pragma\" line under the previous line.
+This function is intented for use as a member of `c-special-indent-hook'."
+  (when (assq 'cpp-macro c-syntactic-context)
+    (when
+       (save-excursion
+         (save-match-data
+           (back-to-indentation)
+           (and
+            (looking-at (concat c-opt-cpp-symbol "[ \t]*\\([a-zA-Z0-9_]+\\)"))
+            (member (match-string-no-properties 1)
+                    c-cpp-indent-to-body-directives))))
+      (c-indent-line (delete '(cpp-macro) c-syntactic-context)))))
+
+(defvar c-cpp-indent-to-body-flag nil)
+;; Non-nil when CPP directives such as "#pragma" should be indented to under
+;; the preceding statement.
+(make-variable-buffer-local 'c-cpp-indent-to-body-flag)
+
+(defun c-electric-pragma ()
+  "Reindent the current line if appropriate.
+
+This function is used to reindent a preprocessor line when the
+symbol for the directive, typically \"pragma\", triggers this
+function as a hook function of an abbreviation.
+
+The \"#\" of the preprocessor construct is aligned under the
+first anchor point of the line's syntactic context.
+
+The line is reindented if the construct is not in a string or
+comment, there is exactly one \"#\" contained in optional
+whitespace before it on the current line, and `c-electric-flag'
+and `c-syntactic-indentation' are both non-nil."
+  (save-excursion
+    (save-match-data
+      (when
+         (and
+          c-cpp-indent-to-body-flag
+          c-electric-flag
+          c-syntactic-indentation
+          last-abbrev-location
+          c-opt-cpp-symbol             ; "#" or nil.
+          (progn (back-to-indentation)
+                 (looking-at (concat c-opt-cpp-symbol "[ \t]*")))
+          (>= (match-end 0) last-abbrev-location)
+          (not (c-literal-limits)))
+       (c-indent-line (delete '(cpp-macro) (c-guess-basic-syntax)))))))
+
+(defun c-add-indent-to-body-to-abbrev-table (d)
+  ;; Create an abbreviation table entry for the directive D, and add it to the
+  ;; current abbreviation table.  Existing abbreviation (e.g. for "else") do
+  ;; not get overwritten.
+  (when (and c-buffer-is-cc-mode
+            local-abbrev-table
+            (not (abbrev-symbol d local-abbrev-table)))
+    (condition-case nil
+       (define-abbrev local-abbrev-table d d 'c-electric-pragma 0 t)
+      (wrong-number-of-arguments
+       (define-abbrev local-abbrev-table d d 'c-electric-pragma)))))
+
+(defun c-clear-stale-indent-to-body-abbrevs ()
+  ;; Fill in this comment.  FIXME!!!
+  (when (fboundp 'abbrev-get)
+    (mapatoms (lambda (a)
+               (when (and (abbrev-get a ':system) ; Preserve a user's abbrev!
+                          (not (member (symbol-name a) c-std-abbrev-keywords))
+                          (not (member (symbol-name a)
+                                       c-cpp-indent-to-body-directives)))
+                 (unintern a local-abbrev-table)))
+             local-abbrev-table)))
+
+(defun c-toggle-cpp-indent-to-body (&optional arg)
+  "Toggle the C preprocessor indent-to-body feature.
+When enabled, preprocessor directives which are words in
+`c-indent-to-body-directives' are indented as if they were statements.
+
+Optional numeric ARG, if supplied, turns on the feature when positive,
+turns it off when negative, and just toggles it when zero or
+left out."
+  (interactive "P")
+  (setq c-cpp-indent-to-body-flag
+       (c-calculate-state arg c-cpp-indent-to-body-flag))
+  (if c-cpp-indent-to-body-flag
+      (progn
+       (c-clear-stale-indent-to-body-abbrevs)
+       (mapc 'c-add-indent-to-body-to-abbrev-table
+             c-cpp-indent-to-body-directives)
+       (add-hook 'c-special-indent-hook 'c-align-cpp-indent-to-body nil t))
+    (remove-hook 'c-special-indent-hook 'c-align-cpp-indent-to-body t))
+  (message "c-cpp-indent-to-body %sabled"
+          (if c-cpp-indent-to-body-flag "en" "dis")))
+
 
 
 (declare-function subword-forward "subword" (&optional arg))
diff --git a/lisp/progmodes/cc-defs.el b/lisp/progmodes/cc-defs.el
index 5ca64a0..2624d9d 100644
--- a/lisp/progmodes/cc-defs.el
+++ b/lisp/progmodes/cc-defs.el
@@ -87,7 +87,7 @@
 
 ;;; Variables also used at compile time.
 
-(defconst c-version "5.34"
+(defconst c-version "5.34.2"
   "CC Mode version number.")
 
 (defconst c-version-sym (intern c-version))
@@ -1278,7 +1278,7 @@ point is then left undefined."
                    place ,property nil ,(or limit '(point-min)))))
      (when (> place ,(or limit '(point-min)))
        (goto-char place)
-       (search-backward-regexp "\\(n\\|.\\)")  ; to set the match-data.
+       (search-backward-regexp "\\(\n\\|.\\)") ; to set the match-data.
        (point))))
 
 (defun c-clear-char-property-with-value-function (from to property value)
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index 0964c04..bccef68 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -327,6 +327,8 @@ comment at the start of cc-engine.el for more info."
          (when (or (null lim)
                    (>= here lim))
            (save-match-data
+             ;; Note the similarity of the code here to some in
+             ;; `c-backward-sws'.
              (while
                  (progn
                    (while (eq (char-before (1- (point))) ?\\)
@@ -2461,17 +2463,34 @@ comment at the start of cc-engine.el for more info."
                   (/= cmt-skip-pos simple-ws-beg)
                   (c-beginning-of-macro))
              ;; Inside a cpp directive.  See if it should be skipped over.
-             (let ((cpp-beg (point)))
+             (let ((cpp-beg (point))
+                   pause pos)
 
-               ;; Move back over all line continuations in the region skipped
-               ;; over by `c-backward-comments'.  If we go past it then we
-               ;; started inside the cpp directive.
+               ;; Move back over all line continuations and block comments in
+               ;; the region skipped over by `c-backward-comments'.  If we go
+               ;; past it then we started inside the cpp directive.
                (goto-char simple-ws-beg)
                (beginning-of-line)
-               (while (and (> (point) cmt-skip-pos)
-                           (progn (backward-char)
-                                  (eq (char-before) ?\\)))
-                 (beginning-of-line))
+               ;; Note the similarity of the code here to some in
+               ;; `c-beginning-of-macro'.
+               (setq pause (point))
+               (while
+                   (progn
+                     (while (and (> (point) cmt-skip-pos)
+                                 (progn (backward-char)
+                                        (eq (char-before) ?\\)))
+                       (beginning-of-line))
+                     (setq pos (point))
+                     (when (and c-last-c-comment-end-on-line-re
+                                (re-search-forward
+                                 c-last-c-comment-end-on-line-re pause t))
+                       (goto-char (match-end 1))
+                       (if (c-backward-single-comment)
+                           (progn
+                             (beginning-of-line)
+                             (setq pause (point)))
+                         (goto-char pos)
+                         nil))))
 
                (if (< (point) cmt-skip-pos)
                    ;; Don't move past the cpp directive if we began inside
@@ -9015,7 +9034,7 @@ point unchanged and return nil."
                           (if (looking-at c-:-op-cont-regexp)
                               (progn (goto-char (match-end 0)) t)
                             (not
-                             (and (c-major-mode-is 'c++-mode)
+                             (and (c-major-mode-is '(c++-mode java-mode))
                                   (save-excursion
                                     (and
                                      (c-go-up-list-backward)
@@ -9256,9 +9275,10 @@ This function might do hidden buffer changes."
   ;;
   ;;   The third element of the return value is non-nil when the declaration
   ;;   parsed might be an expression.  The fourth element is the position of
-  ;;   the start of the type identifier.  The fifth element is t if either
-  ;;   CONTEXT was 'top, or the declaration is detected to be treated as top
-  ;;   level (e.g. with the keyword "extern").
+  ;;   the start of the type identifier, or the same as the first element when
+  ;;   there is no type identifier.  The fifth element is t if either CONTEXT
+  ;;   was 'top, or the declaration is detected to be treated as top level
+  ;;   (e.g. with the keyword "extern").
   ;;
   ;; If a cast is parsed:
   ;;
@@ -9661,7 +9681,26 @@ This function might do hidden buffer changes."
               (setq got-identifier (c-forward-name))
               (setq name-start pos))
          (when (looking-at "[0-9]")
-           (setq got-number t))) ; We've probably got an arithmetic expression.
+           (setq got-number t)) ; We probably have an arithmetic expression.
+         (and maybe-typeless
+              (or (eq at-type 'maybe)
+                  (when (eq at-type 'found)
+                    ;; Remove the ostensible type from the found types list.
+                    (when type-start
+                      (c-unfind-type
+                       (buffer-substring-no-properties
+                        type-start
+                        (save-excursion
+                          (goto-char type-start)
+                          (c-end-of-token)
+                          (point)))))
+                    t))
+              ;; The token which we assumed to be a type is actually the
+              ;; identifier, and we have no explicit type.
+              (setq at-type nil
+                    name-start type-start
+                    id-start type-start
+                    got-identifier t)))
 
       ;; Skip over type decl suffix operators and trailing noise macros.
       (while
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el
index e7e7cfd..1e72352 100644
--- a/lisp/progmodes/cc-langs.el
+++ b/lisp/progmodes/cc-langs.el
@@ -3030,7 +3030,14 @@ Note that Java specific rules are currently applied to 
tell this from
         ;; can start a declaration.)
         "entity" "process" "service" "session" "storage"))
 
-
+(c-lang-defconst c-std-abbrev-keywords
+  "List of keywords which may need to cause electric indentation."
+  t '("else" "while")
+  c++ (append (c-lang-const c-std-abbrev-keywords) '("catch"))
+  java (append (c-lang-const c-std-abbrev-keywords) '("catch" "finally"))
+  idl nil)
+(c-lang-defvar c-std-abbrev-keywords (c-lang-const c-std-abbrev-keywords))
+
 ;;; Constants built from keywords.
 
 ;; Note: No `*-kwds' language constants may be defined below this point.
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el
index 7496684..f92d3ef 100644
--- a/lisp/progmodes/cc-mode.el
+++ b/lisp/progmodes/cc-mode.el
@@ -278,6 +278,29 @@ control).  See \"cc-mode.el\" for more info."
       (setq defs (cdr defs)))))
 (put 'c-define-abbrev-table 'lisp-indent-function 1)
 
+(defun c-populate-abbrev-table ()
+  ;; Insert the standard keywords which may need electric indentation into the
+  ;; current mode's abbreviation table.
+  (let ((table (intern (concat (symbol-name major-mode) "-abbrev-table")))
+       (defs c-std-abbrev-keywords)
+       )
+    (unless (and (boundp table)
+                (abbrev-table-p (symbol-value table)))
+      (define-abbrev-table table nil))
+    (setq local-abbrev-table (symbol-value table))
+    (while defs
+      (unless (intern-soft (car defs) local-abbrev-table) ; Don't overwrite the
+                                       ; abbrev's use count.
+       (condition-case nil
+           (define-abbrev (symbol-value table)
+             (car defs) (car defs)
+             'c-electric-continued-statement 0 t)
+         (wrong-number-of-arguments
+          (define-abbrev (symbol-value table)
+            (car defs) (car defs)
+            'c-electric-continued-statement 0))))
+      (setq defs (cdr defs)))))
+
 (defun c-bind-special-erase-keys ()
   ;; Only used in Emacs to bind C-c C-<delete> and C-c C-<backspace>
   ;; to the proper keys depending on `normal-erase-is-backspace'.
@@ -550,6 +573,8 @@ that requires a literal mode spec at compile time."
 
   (setq c-buffer-is-cc-mode mode)
 
+  (c-populate-abbrev-table)
+
   ;; these variables should always be buffer local; they do not affect
   ;; indentation style.
   (make-local-variable 'comment-start)
@@ -1865,18 +1890,25 @@ Note that this is a strict tail, so won't match, e.g. 
\"0x....\".")
   ;; it/them from the cache.  Don't worry about being inside a string
   ;; or a comment - "wrongly" removing a symbol from `c-found-types'
   ;; isn't critical.
-  (unless (or (c-called-from-text-property-change-p)
-             c-just-done-before-change) ; guard against a spurious second
-                                       ; invocation of before-change-functions.
-    (setq c-just-done-before-change t)
-    ;; (c-new-BEG c-new-END) will be the region to fontify.
-    (setq c-new-BEG beg  c-new-END end)
-    (setq c-maybe-stale-found-type nil)
-    ;; A workaround for syntax-ppss's failure to notice syntax-table text
-    ;; property changes.
-    (when (fboundp 'syntax-ppss)
-      (setq c-syntax-table-hwm most-positive-fixnum))
+  (unless (c-called-from-text-property-change-p)
     (save-restriction
+      (widen)
+      (if c-just-done-before-change
+         ;; We have two consecutive calls to `before-change-functions' without
+         ;; an intervening `after-change-functions'.  An example of this is bug
+         ;; #38691.  To protect CC Mode, assume that the entire buffer has
+         ;; changed.
+         (setq beg (point-min)
+               end (point-max)
+               c-just-done-before-change 'whole-buffer)
+       (setq c-just-done-before-change t))
+      ;; (c-new-BEG c-new-END) will be the region to fontify.
+      (setq c-new-BEG beg  c-new-END end)
+      (setq c-maybe-stale-found-type nil)
+      ;; A workaround for syntax-ppss's failure to notice syntax-table text
+      ;; property changes.
+      (when (fboundp 'syntax-ppss)
+       (setq c-syntax-table-hwm most-positive-fixnum))
       (save-match-data
        (widen)
        (unwind-protect
@@ -1982,14 +2014,19 @@ Note that this is a strict tail, so won't match, e.g. 
\"0x....\".")
   ;; without an intervening call to `before-change-functions' when reverting
   ;; the buffer (see bug #24094).  Whatever the cause, assume that the entire
   ;; buffer has changed.
-  (when (and (not c-just-done-before-change)
-            (not (c-called-from-text-property-change-p)))
-    (save-restriction
-      (widen)
-      (c-before-change (point-min) (point-max))
-      (setq beg (point-min)
-           end (point-max)
-           old-len (- end beg))))
+
+  ;; Note: c-just-done-before-change is nil, t, or 'whole-buffer.
+  (unless (c-called-from-text-property-change-p)
+    (unless (eq c-just-done-before-change t)
+      (save-restriction
+       (widen)
+       (when (null c-just-done-before-change)
+         (c-before-change (point-min) (point-max)))
+       (setq beg (point-min)
+             end (point-max)
+             old-len (- end beg)
+             c-new-BEG (point-min)
+             c-new-END (point-max)))))
 
   ;; (c-new-BEG c-new-END) will be the region to fontify.  It may become
   ;; larger than (beg end).
@@ -2432,11 +2469,6 @@ opening \" and the next unescaped end of line."
   (funcall (c-lang-const c-make-mode-syntax-table c))
   "Syntax table used in c-mode buffers.")
 
-(c-define-abbrev-table 'c-mode-abbrev-table
-  '(("else" "else" c-electric-continued-statement 0)
-    ("while" "while" c-electric-continued-statement 0))
-  "Abbreviation table used in c-mode buffers.")
-
 (defvar c-mode-map
   (let ((map (c-make-inherited-keymap)))
     map)
@@ -2548,12 +2580,6 @@ the code is C or C++ and based on that chooses whether 
to enable
   (funcall (c-lang-const c-make-mode-syntax-table c++))
   "Syntax table used in c++-mode buffers.")
 
-(c-define-abbrev-table 'c++-mode-abbrev-table
-  '(("else" "else" c-electric-continued-statement 0)
-    ("while" "while" c-electric-continued-statement 0)
-    ("catch" "catch" c-electric-continued-statement 0))
-  "Abbreviation table used in c++-mode buffers.")
-
 (defvar c++-mode-map
   (let ((map (c-make-inherited-keymap)))
     map)
@@ -2602,11 +2628,6 @@ Key bindings:
   (funcall (c-lang-const c-make-mode-syntax-table objc))
   "Syntax table used in objc-mode buffers.")
 
-(c-define-abbrev-table 'objc-mode-abbrev-table
-  '(("else" "else" c-electric-continued-statement 0)
-    ("while" "while" c-electric-continued-statement 0))
-  "Abbreviation table used in objc-mode buffers.")
-
 (defvar objc-mode-map
   (let ((map (c-make-inherited-keymap)))
     map)
@@ -2653,13 +2674,6 @@ Key bindings:
   (funcall (c-lang-const c-make-mode-syntax-table java))
   "Syntax table used in java-mode buffers.")
 
-(c-define-abbrev-table 'java-mode-abbrev-table
-  '(("else" "else" c-electric-continued-statement 0)
-    ("while" "while" c-electric-continued-statement 0)
-    ("catch" "catch" c-electric-continued-statement 0)
-    ("finally" "finally" c-electric-continued-statement 0))
-  "Abbreviation table used in java-mode buffers.")
-
 (defvar java-mode-map
   (let ((map (c-make-inherited-keymap)))
     map)
@@ -2671,7 +2685,7 @@ Key bindings:
 ;; since it's practically impossible to write a regexp that reliably
 ;; matches such a construct.  Other tools are necessary.
 (defconst c-Java-defun-prompt-regexp
-  "^[ 
\t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|synchronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)\\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA-Z][^][
 
\t:;.,{}()\^?=]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);{}]*)\\)?\\([]
 \t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)[, 
\t\n\r\f\v]*\\)+\\)?\\s-*")
+  "^[ 
\t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|synchronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)\\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA-Z][^][
 
\t:;.,{}()\^?=]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);{}]*)\\)?\\([]
 \t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)[, 
\t\n\r\f\v]*\\)+\\)?\\s-*")
 
 (easy-menu-define c-java-menu java-mode-map "Java Mode Commands"
                  (cons "Java" (c-lang-const c-mode-menu java)))
@@ -2710,9 +2724,6 @@ Key bindings:
   (funcall (c-lang-const c-make-mode-syntax-table idl))
   "Syntax table used in idl-mode buffers.")
 
-(c-define-abbrev-table 'idl-mode-abbrev-table nil
-  "Abbreviation table used in idl-mode buffers.")
-
 (defvar idl-mode-map
   (let ((map (c-make-inherited-keymap)))
     map)
@@ -2755,11 +2766,6 @@ Key bindings:
   (funcall (c-lang-const c-make-mode-syntax-table pike))
   "Syntax table used in pike-mode buffers.")
 
-(c-define-abbrev-table 'pike-mode-abbrev-table
-  '(("else" "else" c-electric-continued-statement 0)
-    ("while" "while" c-electric-continued-statement 0))
-  "Abbreviation table used in pike-mode buffers.")
-
 (defvar pike-mode-map
   (let ((map (c-make-inherited-keymap)))
     map)
@@ -2807,11 +2813,6 @@ Key bindings:
 ;;;###autoload (add-to-list 'interpreter-mode-alist '("nawk" . awk-mode))
 ;;;###autoload (add-to-list 'interpreter-mode-alist '("gawk" . awk-mode))
 
-(c-define-abbrev-table 'awk-mode-abbrev-table
-  '(("else" "else" c-electric-continued-statement 0)
-    ("while" "while" c-electric-continued-statement 0))
-  "Abbreviation table used in awk-mode buffers.")
-
 (defvar awk-mode-map
   (let ((map (c-make-inherited-keymap)))
     map)
diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el
index 556ff60..3995b21 100644
--- a/lisp/progmodes/cc-vars.el
+++ b/lisp/progmodes/cc-vars.el
@@ -1649,6 +1649,15 @@ white space either before or after the operator, but not 
both."
   :type 'boolean
   :group 'c)
 
+(defcustom c-cpp-indent-to-body-directives '("pragma")
+  "Preprocessor directives which will be indented as statements.
+
+A list of Preprocessor directives which when reindented, or newly
+typed in, will cause the \"#\" introducing the directive to be
+indented as a statement."
+  :type '(repeat string)
+  :group 'c)
+
 ;; Initialize the next two to a regexp which never matches.
 (defvar c-noise-macro-with-parens-name-re regexp-unmatchable)
 (make-variable-buffer-local 'c-noise-macro-with-parens-name-re)
diff --git a/lisp/progmodes/cfengine.el b/lisp/progmodes/cfengine.el
index 9ddb2ab..f25b3cb 100644
--- a/lisp/progmodes/cfengine.el
+++ b/lisp/progmodes/cfengine.el
@@ -1322,7 +1322,7 @@ Use it by enabling `eldoc-mode'."
   (set (make-local-variable 'parens-require-spaces) nil)
   (set (make-local-variable 'comment-start)  "# ")
   (set (make-local-variable 'comment-start-skip)
-       "\\(\\(?:^\\|[^\\\\\n]\\)\\(?:\\\\\\\\\\)*\\)#+[ \t]*")
+       "\\(\\(?:^\\|[^\\\n]\\)\\(?:\\\\\\\\\\)*\\)#+[ \t]*")
   ;; Like Lisp mode.  Without this, we lose with, say,
   ;; `backward-up-list' when there's an unbalanced quote in a
   ;; preceding comment.
@@ -1390,12 +1390,15 @@ to the action header."
                  (when buffer-file-name
                    (shell-quote-argument buffer-file-name)))))
 
-  ;; For emacs < 25.1 where `eldoc-documentation-function' defaults to
-  ;; nil.
-  (or eldoc-documentation-function
-      (setq-local eldoc-documentation-function #'ignore))
-  (add-function :before-until (local 'eldoc-documentation-function)
-                #'cfengine3-documentation-function)
+  (if (boundp 'eldoc-documentation-functions)
+      (add-hook 'eldoc-documentation-functions
+                #'cfengine3-documentation-function nil t)
+    ;; For emacs < 25.1 where `eldoc-documentation-function' defaults
+    ;; to nil.
+    (or eldoc-documentation-function
+        (setq-local eldoc-documentation-function #'ignore))
+    (add-function :before-until (local 'eldoc-documentation-function)
+                  #'cfengine3-documentation-function))
 
   (add-hook 'completion-at-point-functions
             #'cfengine3-completion-function nil t)
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 48ac85a..f4532b7 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -221,7 +221,7 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
      ;; considered before EDG.
      ;; The message may be a "warning", "error", or "fatal error" with
      ;; an error code, or "see declaration of" without an error code.
-     "^ *\\([0-9]+>\\)?\\(\\(?:[a-zA-Z]:\\)?[^:(\t\n]+\\)(\\([0-9]+\\)) ?\
+     "^ *\\([0-9]+>\\)?\\(\\(?:[a-zA-Z]:\\)?[^ 
:(\t\n][^:(\t\n]*\\)(\\([0-9]+\\)) ?\
 : \\(?:see declaration\\|\\(?:warnin\\(g\\)\\|[a-z ]+\\) C[0-9]+:\\)"
      2 3 nil (4))
 
@@ -268,12 +268,24 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
     (jikes-file
      "^\\(?:Found\\|Issued\\) .* compiling \"\\(.+\\)\":$" 1 nil nil 0)
 
-
-    ;; This used to be pathologically slow on long lines (Bug#3441),
-    ;; due to matching filenames via \\(.*?\\).  This might be faster.
     (maven
      ;; Maven is a popular free software build tool for Java.
-     "\\(\\[WARNING\\] *\\)?\\([^ \n]\\(?:[^\n :]\\| [^-/\n]\\|:[^ 
\n]\\)*?\\):\\[\\([0-9]+\\),\\([0-9]+\\)\\] " 2 3 4 (1))
+     ,(rx bol
+          ;; It is unclear whether the initial [type] tag is always present.
+          (? "["
+             (or "ERROR" (group-n 1 "WARNING") (group-n 2 "INFO"))
+             "] ")
+          (group-n 3                    ; File
+                   (not (any "\n ["))
+                   (* (or (not (any "\n :"))
+                          (: " " (not (any "\n/-")))
+                          (: ":" (not (any "\n ["))))))
+          ":["
+          (group-n 4 (+ digit))         ; Line
+          ","
+          (group-n 5 (+ digit))         ; Column
+          "] ")
+     3 4 5 (1 . 2))
 
     (jikes-line
      "^ *\\([0-9]+\\)\\.[ \t]+.*\n +\\(<-*>\n\\*\\*\\* 
\\(?:Error\\|Warnin\\(g\\)\\)\\)"
@@ -294,7 +306,7 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
      1 2 3 (4 . 5))
 
     (ruby-Test::Unit
-     "^[\t ]*\\[\\([^(].*\\):\\([1-9][0-9]*\\)\\(\\]\\)?:in " 1 2)
+     "^    [[ ]?\\([^ (].*\\):\\([1-9][0-9]*\\)\\(\\]\\)?:in " 1 2)
 
     (gmake
      ;; Set GNU make error messages as INFO level.
@@ -394,7 +406,7 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
     (omake
      ;; "omake -P" reports "file foo changed"
      ;; (useful if you do "cvs up" and want to see what has changed)
-     "omake: file \\(.*\\) changed" 1 nil nil nil nil
+     "^\\*\\*\\* omake: file \\(.*\\) changed" 1 nil nil nil nil
      ;; FIXME-omake: This tries to prevent reusing pre-existing markers
      ;; for subsequent messages, since those messages's line numbers
      ;; are about another version of the file.
@@ -443,7 +455,7 @@ File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = 
\\([0-9]+\\)\\)?"
      "^\\([^, \n\t]+\\), line \\([0-9]+\\), char \\([0-9]+\\)[:., (-]" 1 2 3)
 
     (watcom
-     "^[ \t]*\\(\\(?:[a-zA-Z]:\\)?[^:(\t\n]+\\)(\\([0-9]+\\)): ?\
+     "^[ \t]*\\(\\(?:[a-zA-Z]:\\)?[^ :(\t\n][^:(\t\n]*\\)(\\([0-9]+\\)): ?\
 \\(?:\\(Error! E[0-9]+\\)\\|\\(Warning! W[0-9]+\\)\\):"
      1 2 nil (4))
 
@@ -634,6 +646,14 @@ matched file names, and weeding out false positives."
   :link `(file-link :tag "example file"
                    ,(expand-file-name "compilation.txt" data-directory)))
 
+(defcustom compilation-error-case-fold-search nil
+  "If non-nil, use case-insensitive matching of compilation errors
+by the regexps of `compilation-error-regexp-alist' and
+`compilation-error-regexp-alist-alist'.
+If nil, matching is case-sensitive."
+  :type 'boolean
+  :version "28.1")
+
 ;;;###autoload(put 'compilation-directory 'safe-local-variable 'stringp)
 (defvar compilation-directory nil
   "Directory to restore to when doing `recompile'.")
@@ -1423,7 +1443,8 @@ to `compilation-error-regexp-alist' if RULES is nil."
     (if (symbolp item)
         (setq item (cdr (assq item
                               compilation-error-regexp-alist-alist))))
-    (let ((file (nth 1 item))
+    (let ((case-fold-search compilation-error-case-fold-search)
+          (file (nth 1 item))
           (line (nth 2 item))
           (col (nth 3 item))
           (type (nth 4 item))
@@ -1441,7 +1462,7 @@ to `compilation-error-regexp-alist' if RULES is nil."
        ((not (memq 'omake compilation-error-regexp-alist)) nil)
        ((string-match "\\`\\([^^]\\|\\^\\( \\*\\|\\[\\)\\)" pat)
         nil) ;; Not anchored or anchored but already allows empty spaces.
-       (t (setq pat (concat "^ *" (substring pat 1)))))
+       (t (setq pat (concat "^\\(?:      \\)?" (substring pat 1)))))
 
       (if (consp file) (setq fmt (cdr file)      file (car file)))
       (if (consp line) (setq end-line (cdr line) line (car line)))
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el
index 5fee2df..cdbb59a 100644
--- a/lisp/progmodes/cperl-mode.el
+++ b/lisp/progmodes/cperl-mode.el
@@ -1306,7 +1306,7 @@ the last)."
                     cperl-maybe-white-and-comment-rex ; whitespace-comments
                     "\\(\\sw\\|_\\)+"  ; attr-name
                     ;; attr-arg (1 level of internal parens allowed!)
-                    "\\((\\(\\\\.\\|[^\\\\()]\\|([^\\\\()]*)\\)*)\\)?"
+                    "\\((\\(\\\\.\\|[^\\()]\\|([^\\()]*)\\)*)\\)?"
                     "\\("              ; optional : (XXX allows trailing???)
                        cperl-maybe-white-and-comment-rex ; whitespace-comments
                     ":\\)?"
@@ -1406,7 +1406,7 @@ the last)."
 (defvar cperl-font-locking nil)
 
 ;; NB as it stands the code in cperl-mode assumes this only has one
-;; element. If XEmacs 19 support were dropped, this could all be simplified.
+;; element. Since XEmacs 19 support has been dropped, this could all be 
simplified.
 (defvar cperl-compilation-error-regexp-alist
   ;; This look like a paranoiac regexp: could anybody find a better one? 
(which WORKS).
   '(("^[^\n]* \\(file\\|at\\) \\([^ \t\n]+\\) [^\n]*line \\([0-9]+\\)[\\., \n]"
@@ -5659,16 +5659,16 @@ indentation and initial hashes.  Behaves usually 
outside of comment."
            '("^[ \t]*format[ \t]+\\([a-zA-Z_][a-zA-Z_0-9:]*\\)[ \t]*=[ \t]*$"
              1 font-lock-function-name-face)
            (cond ((featurep 'font-lock-extra)
-                  '("\\([]}\\\\%@>*&]\\|\\$[a-zA-Z0-9_:]*\\)[ \t]*{[ 
\t]*\\(-?[a-zA-Z0-9_:]+\\)[ \t]*}"
+                  '("\\([]}\\%@>*&]\\|\\$[a-zA-Z0-9_:]*\\)[ \t]*{[ 
\t]*\\(-?[a-zA-Z0-9_:]+\\)[ \t]*}"
                     (2 font-lock-string-face t)
                     (0 '(restart 2 t)))) ; To highlight $a{bc}{ef}
                  (font-lock-anchored
-                  '("\\([]}\\\\%@>*&]\\|\\$[a-zA-Z0-9_:]*\\)[ \t]*{[ 
\t]*\\(-?[a-zA-Z0-9_:]+\\)[ \t]*}"
+                  '("\\([]}\\%@>*&]\\|\\$[a-zA-Z0-9_:]*\\)[ \t]*{[ 
\t]*\\(-?[a-zA-Z0-9_:]+\\)[ \t]*}"
                     (2 font-lock-string-face t)
                     ("\\=[ \t]*{[ \t]*\\(-?[a-zA-Z0-9_:]+\\)[ \t]*}"
                      nil nil
                      (1 font-lock-string-face t))))
-                 (t '("\\([]}\\\\%@>*&]\\|\\$[a-zA-Z0-9_:]*\\)[ \t]*{[ 
\t]*\\(-?[a-zA-Z0-9_:]+\\)[ \t]*}"
+                 (t '("\\([]}\\%@>*&]\\|\\$[a-zA-Z0-9_:]*\\)[ \t]*{[ 
\t]*\\(-?[a-zA-Z0-9_:]+\\)[ \t]*}"
                       2 font-lock-string-face t)))
            '("[[ \t{,(]\\(-?[a-zA-Z0-9_:]+\\)[ \t]*=>" 1
              font-lock-string-face t)
diff --git a/lisp/progmodes/cwarn.el b/lisp/progmodes/cwarn.el
index 6cd2fa3..6e84f4f 100644
--- a/lisp/progmodes/cwarn.el
+++ b/lisp/progmodes/cwarn.el
@@ -4,7 +4,7 @@
 
 ;; Author: Anders Lindgren
 ;; Keywords: c, languages, faces
-;; Version: 1.3.1
+;; Old-Version: 1.3.1
 
 ;; This file is part of GNU Emacs.
 
diff --git a/lisp/progmodes/ebnf-abn.el b/lisp/progmodes/ebnf-abn.el
index dc6bd44..bf9b0e9 100644
--- a/lisp/progmodes/ebnf-abn.el
+++ b/lisp/progmodes/ebnf-abn.el
@@ -474,11 +474,10 @@
     (aset ebnf-abn-token-table ?\; 'comment)))
 
 
-;; replace the range "\240-\377" (see `ebnf-range-regexp').
 (defconst ebnf-abn-non-terminal-chars
-  (ebnf-range-regexp "-_0-9A-Za-z" ?\240 ?\377))
+  "-_0-9A-Za-z\u00a0-\u00ff")
 (defconst ebnf-abn-non-terminal-letter-chars
-  (ebnf-range-regexp "A-Za-z" ?\240 ?\377))
+  "A-Za-z\u00a0-\u00ff")
 
 
 (defun ebnf-abn-lex ()
@@ -572,9 +571,8 @@ See documentation for variable `ebnf-abn-lex'."
     (not eor-p)))
 
 
-;; replace the range "\177-\237" (see `ebnf-range-regexp').
 (defconst ebnf-abn-comment-chars
-  (ebnf-range-regexp "^\n\000-\010\016-\037" ?\177 ?\237))
+  "^\n\000-\010\016-\037\177\u0080-\u009f")
 
 
 (defun ebnf-abn-skip-comment ()
@@ -612,9 +610,8 @@ See documentation for variable `ebnf-abn-lex'."
   (ebnf-buffer-substring ebnf-abn-comment-chars))
 
 
-;; replace the range "\240-\377" (see `ebnf-range-regexp').
 (defconst ebnf-abn-string-chars
-  (ebnf-range-regexp " -!#-~" ?\240 ?\377))
+  " !#-~\u00a0-\u00ff")
 
 
 (defun ebnf-abn-string ()
diff --git a/lisp/progmodes/ebnf-bnf.el b/lisp/progmodes/ebnf-bnf.el
index 583740d..4e11862 100644
--- a/lisp/progmodes/ebnf-bnf.el
+++ b/lisp/progmodes/ebnf-bnf.el
@@ -419,9 +419,8 @@
     (aset ebnf-bnf-token-table ebnf-lex-eop-char     'period)))
 
 
-;; replace the range "\240-\377" (see `ebnf-range-regexp').
 (defconst ebnf-bnf-non-terminal-chars
-  (ebnf-range-regexp "!#%&'*-,0-:<>@-Z\\\\^-z~" ?\240 ?\377))
+  "!#%&'*-,0-:<>@-Z\\\\^-z~\u00a0-\u00ff")
 
 
 (defun ebnf-bnf-lex ()
@@ -520,9 +519,8 @@ See documentation for variable `ebnf-bnf-lex'."
        ))))
 
 
-;; replace the range "\177-\237" (see `ebnf-range-regexp').
 (defconst ebnf-bnf-comment-chars
-  (ebnf-range-regexp "^\n\000-\010\016-\037" ?\177 ?\237))
+  "^\n\000-\010\016-\037\177\u0080-\u009f")
 
 
 (defun ebnf-bnf-skip-comment ()
diff --git a/lisp/progmodes/ebnf-dtd.el b/lisp/progmodes/ebnf-dtd.el
index 7e824e4..bdebf0d 100644
--- a/lisp/progmodes/ebnf-dtd.el
+++ b/lisp/progmodes/ebnf-dtd.el
@@ -1108,9 +1108,8 @@
     (aset ebnf-dtd-token-table ?\] 'end-subset)))
 
 
-;; replace the range "\240-\377" (see `ebnf-range-regexp').
 (defconst ebnf-dtd-name-chars
-  (ebnf-range-regexp "-._:0-9A-Za-z" ?\240 ?\377))
+  "-._:0-9A-Za-z\u00a0-\u00ff")
 
 
 (defconst ebnf-dtd-decl-alist
@@ -1263,11 +1262,10 @@ See documentation for variable `ebnf-dtd-lex'."
     (format "%s%s;" start char)))
 
 
-;; replace the range "\240-\377" (see `ebnf-range-regexp').
 (defconst ebnf-dtd-double-string-chars
-  (ebnf-range-regexp "\t -!#-~" ?\240 ?\377))
+  "\t -!#-~\u00a0-\u00ff")
 (defconst ebnf-dtd-single-string-chars
-  (ebnf-range-regexp "\t -&(-~" ?\240 ?\377))
+  "\t -&(-~\u00a0-\u00ff")
 
 
 (defun ebnf-dtd-string (delim)
@@ -1287,11 +1285,10 @@ See documentation for variable `ebnf-dtd-lex'."
        (forward-char)))))
 
 
-;; replace the range "\177-\237" (see `ebnf-range-regexp').
 (defconst ebnf-dtd-comment-chars
-  (ebnf-range-regexp "^-\000-\010\013\014\016-\037" ?\177 ?\237))
+  "^-\000-\010\013\014\016-\037\177\u0080-\u009f")
 (defconst ebnf-dtd-filename-chars
-  (ebnf-range-regexp "^-\000-\037" ?\177 ?\237))
+  "^-\000-\037\177\u0080-\u009f")
 
 
 (defun ebnf-dtd-skip-comment ()
diff --git a/lisp/progmodes/ebnf-ebx.el b/lisp/progmodes/ebnf-ebx.el
index 2ae6fb6..20e2d4c 100644
--- a/lisp/progmodes/ebnf-ebx.el
+++ b/lisp/progmodes/ebnf-ebx.el
@@ -405,11 +405,10 @@
     (aset ebnf-ebx-token-table ?/  'comment)))
 
 
-;; replace the range "\240-\377" (see `ebnf-range-regexp').
 (defconst ebnf-ebx-non-terminal-chars
-  (ebnf-range-regexp "-_A-Za-z" ?\240 ?\377))
+  "-_A-Za-z\u00a0-\u00ff")
 (defconst ebnf-ebx-non-terminal-letter-chars
-  (ebnf-range-regexp "A-Za-z" ?\240 ?\377))
+  "A-Za-z\u00a0-\u00ff")
 
 
 (defun ebnf-ebx-lex ()
@@ -488,9 +487,8 @@ See documentation for variable `ebnf-ebx-lex'."
        ))))
 
 
-;; replace the range "\177-\237" (see `ebnf-range-regexp').
 (defconst ebnf-ebx-constraint-chars
-  (ebnf-range-regexp "^\000-\010\016-\037]" ?\177 ?\237))
+  "^\000-\010\016-\037]\177\u0080-\u009f")
 
 
 (defun ebnf-ebx-skip-constraint ()
@@ -517,11 +515,10 @@ See documentation for variable `ebnf-ebx-lex'."
     (not eor-p)))
 
 
-;; replace the range "\177-\237" (see `ebnf-range-regexp').
 (defconst ebnf-ebx-comment-chars
-  (ebnf-range-regexp "^\000-\010\016-\037\\*" ?\177 ?\237))
+  "^\000-\010\016-\037*\177\u0080-\u009f")
 (defconst ebnf-ebx-filename-chars
-  (ebnf-range-regexp "^\000-\037\\*" ?\177 ?\237))
+  "^\000-\037*\177\u0080-\u009f")
 
 
 (defun ebnf-ebx-skip-comment ()
@@ -581,11 +578,10 @@ See documentation for variable `ebnf-ebx-lex'."
       (concat fname (make-string nchar ?*)))))
 
 
-;; replace the range "\240-\377" (see `ebnf-range-regexp').
 (defconst ebnf-ebx-double-string-chars
-  (ebnf-range-regexp "\t -!#-~" ?\240 ?\377))
+  "\t -!#-~\u00a0-\u00ff")
 (defconst ebnf-ebx-single-string-chars
-  (ebnf-range-regexp "\t -&(-~" ?\240 ?\377))
+  "\t -&(-~\u00a0-\u00ff")
 
 
 (defun ebnf-ebx-string (delim)
diff --git a/lisp/progmodes/ebnf-iso.el b/lisp/progmodes/ebnf-iso.el
index b52094a..466e778 100644
--- a/lisp/progmodes/ebnf-iso.el
+++ b/lisp/progmodes/ebnf-iso.el
@@ -379,9 +379,8 @@
     (aset ebnf-iso-token-table ?.  'character)))
 
 
-;; replace the range "\240-\377" (see `ebnf-range-regexp').
 (defconst ebnf-iso-non-terminal-chars
-  (ebnf-range-regexp " 0-9A-Za-z_" ?\240 ?\377))
+  " 0-9A-Za-z_\u00a0-\u00ff")
 
 
 (defun ebnf-iso-lex ()
@@ -487,9 +486,8 @@ See documentation for variable `ebnf-iso-lex'."
        ))))
 
 
-;; replace the range "\177-\237" (see `ebnf-range-regexp').
 (defconst ebnf-iso-comment-chars
-  (ebnf-range-regexp "^*(\000-\010\016-\037" ?\177 ?\237))
+  "^*(\000-\010\016-\037\177\u0080-\u009f")
 
 
 (defun ebnf-iso-skip-comment ()
diff --git a/lisp/progmodes/ebnf-yac.el b/lisp/progmodes/ebnf-yac.el
index f5d633e..a657c63 100644
--- a/lisp/progmodes/ebnf-yac.el
+++ b/lisp/progmodes/ebnf-yac.el
@@ -397,9 +397,8 @@ See documentation for variable `ebnf-yac-lex'."
   (< (point) ebnf-limit))
 
 
-;; replace the range "\177-\377" (see `ebnf-range-regexp').
 (defconst ebnf-yac-skip-chars
-  (ebnf-range-regexp "^{}/'\"\000-\010\013\016-\037" ?\177 ?\377))
+  "^{}/'\"\000-\010\013\016-\037\177\u0080-\u009f")
 
 
 (defun ebnf-yac-skip-code ()
@@ -442,9 +441,8 @@ See documentation for variable `ebnf-yac-lex'."
    ))
 
 
-;; replace the range "\177-\237" (see `ebnf-range-regexp').
 (defconst ebnf-yac-comment-chars
-  (ebnf-range-regexp "^*\000-\010\013\016-\037" ?\177 ?\237))
+  "^*\000-\010\013\016-\037\177\u0080-\u009f")
 
 
 (defun ebnf-yac-skip-comment ()
diff --git a/lisp/progmodes/ebnf2ps.el b/lisp/progmodes/ebnf2ps.el
index d5dddfc..f7ac9d3 100644
--- a/lisp/progmodes/ebnf2ps.el
+++ b/lisp/progmodes/ebnf2ps.el
@@ -4962,18 +4962,6 @@ killed after process termination."
       (kill-buffer (current-buffer))))
 
 
-;; function `ebnf-range-regexp' is used to avoid a bug of `skip-chars-forward'
-;; on version 20.4.1, that is, it doesn't accept ranges like "\240-\377" (or
-;; "\177-\237"), but it accepts the character sequence from \240 to \377 (or
-;; from \177 to \237).  It seems that version 20.7 has the same problem.
-(defun ebnf-range-regexp (prefix from to)
-  (let (str)
-    (while (<= from to)
-      (setq str  (concat str (char-to-string from))
-           from (1+ from)))
-    (concat prefix str)))
-
-
 (defvar ebnf-map-name
   (let ((map (make-vector 256 ?\_)))
     (mapc #'(lambda (char)
@@ -5970,8 +5958,7 @@ killed after process termination."
      (point))))
 
 
-;; replace the range "\240-\377" (see `ebnf-range-regexp').
-(defconst ebnf-8-bit-chars (ebnf-range-regexp "" ?\240 ?\377))
+(defconst ebnf-8-bit-chars "\u00a0-\u00ff")
 
 
 (defun ebnf-string (chars eos-char kind)
diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el
index 2617a6e..20ec370 100644
--- a/lisp/progmodes/elisp-mode.el
+++ b/lisp/progmodes/elisp-mode.el
@@ -231,8 +231,35 @@ Comments in the form will be lost."
           (setq-local electric-pair-text-pairs elisp-pairs)))))
   (remove-hook 'electric-pair-mode-hook #'emacs-lisp-set-electric-text-pairs))
 
+(defun elisp-enable-lexical-binding (&optional interactive)
+  "Make the current buffer use `lexical-binding'."
+  (interactive "p")
+  (if lexical-binding
+      (when interactive
+        (message "lexical-binding already enabled!")
+        (ding))
+    (when (or (not interactive)
+              (y-or-n-p (format "Enable lexical-binding in this %s? "
+                                (if buffer-file-name "file" "buffer"))))
+      (setq-local lexical-binding t)
+      (add-file-local-variable-prop-line 'lexical-binding t interactive))))
+
+(defvar elisp--dynlex-modeline-map
+  (let ((map (make-sparse-keymap)))
+    (define-key map [mode-line mouse-1] 'elisp-enable-lexical-binding)
+    map))
+
 ;;;###autoload
-(define-derived-mode emacs-lisp-mode prog-mode "Emacs-Lisp"
+(define-derived-mode emacs-lisp-mode prog-mode
+  `("ELisp"
+    (lexical-binding (:propertize "/l"
+                      help-echo "Using lexical-binding mode")
+                     (:propertize "/d"
+                      help-echo "Using old dynamic scoping mode\n\
+mouse-1: Enable lexical-binding mode"
+                     face warning
+                     mouse-face mode-line-highlight
+                      local-map ,elisp--dynlex-modeline-map)))
   "Major mode for editing Lisp code to run in Emacs.
 Commands:
 Delete converts tabs to spaces as it moves back.
@@ -245,13 +272,13 @@ Blank lines separate paragraphs.  Semicolons start 
comments.
   (add-hook 'after-load-functions #'elisp--font-lock-flush-elisp-buffers)
   (if (boundp 'electric-pair-text-pairs)
       (setq-local electric-pair-text-pairs
-                  (append '((?\` . ?\') (?‘ . ?’))
+                  (append '((?\` . ?\') (?\‘ . ?\’))
                           electric-pair-text-pairs))
     (add-hook 'electric-pair-mode-hook #'emacs-lisp-set-electric-text-pairs))
   (setq-local electric-quote-string t)
   (setq imenu-case-fold-search nil)
-  (add-function :before-until (local 'eldoc-documentation-function)
-                #'elisp-eldoc-documentation-function)
+  (add-hook 'eldoc-documentation-functions
+            #'elisp-eldoc-documentation-function nil t)
   (add-hook 'xref-backend-functions #'elisp--xref-backend nil t)
   (setq-local project-vc-external-roots-function #'elisp-load-path-roots)
   (add-hook 'completion-at-point-functions
diff --git a/lisp/progmodes/fortran.el b/lisp/progmodes/fortran.el
index 811951e..abc860b 100644
--- a/lisp/progmodes/fortran.el
+++ b/lisp/progmodes/fortran.el
@@ -429,7 +429,7 @@ The only difference is, it returns t in a case when the 
default returns nil."
    fortran-font-lock-keywords-1
    ;; All type specifiers plus their declared items.
    (list
-    (list (concat fortran-type-types "[ \t(/]*\\(*\\)?")
+    (list (concat fortran-type-types "[ \t(/]*\\(\\*\\)?")
           ;; Type specifier.
           '(1 font-lock-type-face)
           ;; Declaration item (or just /.../ block name).
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el
index da5a2a5..7fb3687 100644
--- a/lisp/progmodes/gdb-mi.el
+++ b/lisp/progmodes/gdb-mi.el
@@ -92,6 +92,8 @@
 (require 'json)
 (require 'bindat)
 (require 'cl-lib)
+(require 'cl-seq)
+(eval-when-compile (require 'pcase))
 
 (declare-function speedbar-change-initial-expansion-list
                   "speedbar" (new-default))
@@ -253,6 +255,27 @@ Possible values are these symbols:
               disposition of output generated by commands that
               gdb mode sends to gdb on its own behalf.")
 
+(defvar gdb--window-configuration-before nil
+  "Stores the window configuration before starting GDB.")
+
+(defcustom gdb-restore-window-configuration-after-quit nil
+  "If non-nil, restore window configuration as of before GDB started.
+
+Possible values are:
+    t -- Always restore.
+    nil -- Don't restore.
+    `if-gdb-show-main' -- Restore only if variable `gdb-show-main'
+                          is non-nil
+    `if-gdb-many-windows' -- Restore only if variable `gdb-many-windows'
+                             is non-nil."
+  :type '(choice
+          (const :tag "Always restore" t)
+          (const :tag "Don't restore" nil)
+          (const :tag "Depends on `gdb-show-main'" 'if-gdb-show-main)
+          (const :tag "Depends on `gdb-many-windows'" 'if-gdb-many-windows))
+  :group 'gdb
+  :version "28.1")
+
 (defcustom gdb-discard-unordered-replies t
   "Non-nil means discard any out-of-order GDB replies.
 This protects against lost GDB replies, assuming that GDB always
@@ -603,6 +626,25 @@ Also display the main routine in the disassembly buffer if 
present."
   :group 'gdb
   :version "22.1")
 
+(defcustom gdb-window-configuration-directory user-emacs-directory
+  "Directory where GDB window configuration files are stored.
+If nil, use `default-directory'."
+  :type 'string
+  :group 'gdb
+  :version "28.1")
+
+(defcustom gdb-default-window-configuration-file nil
+  "If non-nil, load this window configuration (layout) on startup.
+This should be the full name of the window configuration file.
+If this is not an absolute path, GDB treats it as a relative path
+and looks under `gdb-window-configuration-directory'.
+
+Note that this variable only takes effect when variable
+`gdb-many-windows' is t."
+  :type 'string
+  :group 'gdb
+  :version "28.1")
+
 (defvar gdbmi-debug-mode nil
   "When non-nil, print the messages sent/received from GDB/MI in *Messages*.")
 
@@ -761,6 +803,12 @@ detailed description of this mode.
     (gdb-restore-windows)
     (error
      "Multiple debugging requires restarting in text command mode"))
+
+  ;; Save window configuration before starting gdb so we can restore
+  ;; it after gdb quits. Save it regardless of the value of
+  ;; `gdb-restore-window-configuration-after-quit'.
+  (setq gdb--window-configuration-before (window-state-get))
+
   ;;
   (gud-common-init command-line nil 'gud-gdbmi-marker-filter)
 
@@ -1046,7 +1094,10 @@ no input, and GDB is waiting for input."
 
 (declare-function tooltip-show "tooltip" (text &optional use-echo-area))
 
-(defconst gdb--string-regexp "\"\\(?:[^\\\"]\\|\\\\.\\)*\"")
+(defconst gdb--string-regexp (rx "\""
+                                 (* (or (seq "\\" nonl)
+                                        (not (any "\"\\"))))
+                                 "\""))
 
 (defun gdb-tooltip-print (expr)
   (with-current-buffer (gdb-get-buffer 'gdb-partial-output-buffer)
@@ -1678,25 +1729,25 @@ this trigger is subscribed to `gdb-buf-publisher' and 
called with
   "Interrupt the program being debugged."
   (interactive)
   (interrupt-process
-   (get-buffer-process gud-comint-buffer) comint-ptyp))
+   (get-buffer-process (gdb-get-buffer-create 'gdb-inferior-io)) comint-ptyp))
 
 (defun gdb-io-quit ()
   "Send quit signal to the program being debugged."
   (interactive)
   (quit-process
-   (get-buffer-process gud-comint-buffer) comint-ptyp))
+   (get-buffer-process (gdb-get-buffer-create 'gdb-inferior-io)) comint-ptyp))
 
 (defun gdb-io-stop ()
   "Stop the program being debugged."
   (interactive)
   (stop-process
-   (get-buffer-process gud-comint-buffer) comint-ptyp))
+   (get-buffer-process (gdb-get-buffer-create 'gdb-inferior-io)) comint-ptyp))
 
 (defun gdb-io-eof ()
   "Send end-of-file to the program being debugged."
   (interactive)
   (process-send-eof
-   (get-buffer-process gud-comint-buffer)))
+   (get-buffer-process (gdb-get-buffer-create 'gdb-inferior-io))))
 
 (defun gdb-clear-inferior-io ()
   (with-current-buffer (gdb-get-buffer-create 'gdb-inferior-io)
@@ -4491,6 +4542,26 @@ SPLIT-HORIZONTAL and show BUF in the new window."
   (define-key gud-menu-map [displays]
     `(menu-item "GDB-Windows" ,menu
                :visible (eq gud-minor-mode 'gdbmi)))
+  (define-key menu [gdb-restore-windows]
+    '(menu-item "Restore Initial Layout" gdb-restore-windows
+      :help "Restore the initial GDB window layout."))
+  ;; Window layout vs window configuration: We use "window layout" in
+  ;; GDB UI.  Internally we refer to "window configuration" because
+  ;; that's the data structure used to store window layouts.  Though
+  ;; bare in mind that there is a small difference between what we
+  ;; store and what normal window configuration functions
+  ;; output. Because GDB buffers (source, local, breakpoint, etc) are
+  ;; different between each debugging sessions, simply save/load
+  ;; window configurations doesn't
+  ;; work. `gdb-save-window-configuration' and
+  ;; `gdb-load-window-configuration' do some tricks to store and
+  ;; recreate each buffer in the layout.
+  (define-key menu [load-layout] '("Load Layout" "Load GDB window 
configuration (layout) from a file" . gdb-load-window-configuration))
+  (define-key menu [save-layout] '("Save Layout" "Save current GDB window 
configuration (layout) to a file" . gdb-save-window-configuration))
+  (define-key menu [restore-layout-after-quit]
+    '(menu-item "Restore Layout After Quit" 
gdb-toggle-restore-window-configuration
+       :button (:toggle . gdb-restore-window-configuration-after-quit)
+       :help "Toggle between always restore the window configuration (layout) 
after GDB quits and never restore.\n You can also change this setting in 
Customize to conditionally restore."))
   (define-key menu [gdb] '("Gdb" . gdb-display-gdb-buffer))
   (define-key menu [threads] '("Threads" . gdb-display-threads-buffer))
   (define-key menu [memory] '("Memory" . gdb-display-memory-buffer))
@@ -4529,9 +4600,6 @@ SPLIT-HORIZONTAL and show BUF in the new window."
     '(menu-item "Display Other Windows" gdb-many-windows
       :help "Toggle display of locals, stack and breakpoint information"
       :button (:toggle . gdb-many-windows)))
-  (define-key menu [gdb-restore-windows]
-    '(menu-item "Restore Window Layout" gdb-restore-windows
-      :help "Restore standard layout for debug session."))
   (define-key menu [sep1]
     '(menu-item "--"))
   (define-key menu [all-threads]
@@ -4606,41 +4674,172 @@ window is dedicated."
   (set-window-buffer window (get-buffer name))
   (set-window-dedicated-p window t))
 
+(defun gdb-toggle-restore-window-configuration ()
+  "Toggle whether to restore window configuration when GDB quits."
+  (interactive)
+  (setq gdb-restore-window-configuration-after-quit
+        (not gdb-restore-window-configuration-after-quit)))
+
+(defun gdb-get-source-buffer ()
+  "Return a buffer displaying source file or nil if we can't find one.
+The source file is the file that contains the source location
+where GDB stops.  There could be multiple source files during a
+debugging session, we get the most recently showed one.  If
+program hasn't started running yet, the source file is the \"main
+file\" where the GDB session starts (see `gdb-main-file')."
+  (if gud-last-last-frame
+      (gud-find-file (car gud-last-last-frame))
+    (when gdb-main-file
+      (gud-find-file gdb-main-file))))
+
 (defun gdb-setup-windows ()
-  "Layout the window pattern for option `gdb-many-windows'."
-  (gdb-get-buffer-create 'gdb-locals-buffer)
-  (gdb-get-buffer-create 'gdb-stack-buffer)
-  (gdb-get-buffer-create 'gdb-breakpoints-buffer)
-  (set-window-dedicated-p (selected-window) nil)
-  (switch-to-buffer gud-comint-buffer)
-  (delete-other-windows)
-  (let ((win0 (selected-window))
-        (win1 (split-window nil ( / ( * (window-height) 3) 4)))
-        (win2 (split-window nil ( / (window-height) 3)))
-        (win3 (split-window-right)))
-    (gdb-set-window-buffer (gdb-locals-buffer-name) nil win3)
-    (select-window win2)
-    (set-window-buffer
-     win2
-     (if gud-last-last-frame
-         (gud-find-file (car gud-last-last-frame))
-       (if gdb-main-file
-           (gud-find-file gdb-main-file)
-         ;; Put buffer list in window if we
-         ;; can't find a source file.
-         (list-buffers-noselect))))
-    (setq gdb-source-window (selected-window))
-    (let ((win4 (split-window-right)))
-      (gdb-set-window-buffer
-       (gdb-get-buffer-create 'gdb-inferior-io) nil win4))
-    (select-window win1)
-    (gdb-set-window-buffer (gdb-stack-buffer-name))
-    (let ((win5 (split-window-right)))
-      (gdb-set-window-buffer (if gdb-show-threads-by-default
-                                 (gdb-threads-buffer-name)
-                               (gdb-breakpoints-buffer-name))
-                             nil win5))
-    (select-window win0)))
+  "Lay out the window pattern for option `gdb-many-windows'."
+  (if gdb-default-window-configuration-file
+      (gdb-load-window-configuration
+       (if (file-name-absolute-p gdb-default-window-configuration-file)
+           gdb-default-window-configuration-file
+         (expand-file-name gdb-default-window-configuration-file
+                           gdb-window-configuration-directory)))
+    ;; Create default layout as before.
+    (gdb-get-buffer-create 'gdb-locals-buffer)
+    (gdb-get-buffer-create 'gdb-stack-buffer)
+    (gdb-get-buffer-create 'gdb-breakpoints-buffer)
+    (set-window-dedicated-p (selected-window) nil)
+    (switch-to-buffer gud-comint-buffer)
+    (delete-other-windows)
+    (let ((win0 (selected-window))
+          (win1 (split-window nil ( / ( * (window-height) 3) 4)))
+          (win2 (split-window nil ( / (window-height) 3)))
+          (win3 (split-window-right)))
+      (gdb-set-window-buffer (gdb-locals-buffer-name) nil win3)
+      (select-window win2)
+      (set-window-buffer win2 (or (gdb-get-source-buffer)
+                                  (list-buffers-noselect)))
+      (setq gdb-source-window (selected-window))
+      (let ((win4 (split-window-right)))
+        (gdb-set-window-buffer
+         (gdb-get-buffer-create 'gdb-inferior-io) nil win4))
+      (select-window win1)
+      (gdb-set-window-buffer (gdb-stack-buffer-name))
+      (let ((win5 (split-window-right)))
+        (gdb-set-window-buffer (if gdb-show-threads-by-default
+                                   (gdb-threads-buffer-name)
+                                 (gdb-breakpoints-buffer-name))
+                               nil win5))
+      (select-window win0))))
+
+(defun gdb-buffer-p (buffer)
+  "Return t if BUFFER is GDB-related."
+  (with-current-buffer buffer
+    (eq gud-minor-mode 'gdbmi)))
+
+(defun gdb-function-buffer-p (buffer)
+  "Return t if BUFFER is a GDB function buffer.
+
+Function buffers are locals buffer, registers buffer, etc, but
+not including main command buffer (the one where you type GDB
+commands) or source buffers (that display program source code)."
+  (with-current-buffer buffer
+    (derived-mode-p 'gdb-parent-mode 'gdb-inferior-io-mode)))
+
+(defun gdb--buffer-type (buffer)
+  "Return the type of BUFFER if it is a function buffer.
+Buffer type is like `gdb-registers-type', `gdb-stack-buffer'.
+These symbols are used by `gdb-get-buffer-create'.
+
+Return nil if BUFFER is not a GDB function buffer."
+  (with-current-buffer buffer
+    (cl-loop for rule in gdb-buffer-rules
+             for mode-name = (gdb-rules-buffer-mode rule)
+             for type = (car rule)
+             if (eq mode-name major-mode)
+             return type
+             finally return nil)))
+
+(defun gdb-save-window-configuration (file)
+  "Save current window configuration (layout) to FILE.
+You can later restore this configuration from that file by
+`gdb-load-window-configuration'."
+  (interactive (list (read-file-name
+                      "Save window configuration to file: "
+                      (or gdb-window-configuration-directory
+                          default-directory))))
+  ;; We replace the buffer in each window with a placeholder, store
+  ;; the buffer type (register, breakpoint, etc) in window parameters,
+  ;; and write the window configuration to the file.
+  (save-window-excursion
+    (let ((placeholder (get-buffer-create " *gdb-placeholder*"))
+          (window-persistent-parameters
+           (cons '(gdb-buffer-type . writable) window-persistent-parameters)))
+      (unwind-protect
+          (dolist (win (window-list nil 'no-minibuffer))
+            (select-window win)
+            (when (gdb-buffer-p (current-buffer))
+              (set-window-parameter
+               nil 'gdb-buffer-type
+               (cond ((gdb-function-buffer-p (current-buffer))
+                      ;; 1) If a user arranged the window
+                      ;; configuration herself and saves it, windows
+                      ;; are probably not dedicated.  2) We use the
+                      ;; same dedication flag as in
+                      ;; `gdb-display-buffer'.
+                      (set-window-dedicated-p nil t)
+                      ;; We save this gdb-buffer-type symbol so
+                      ;; we can later pass it to `gdb-get-buffer-create';
+                      ;; one example: `gdb-registers-buffer'.
+                      (or (gdb--buffer-type (current-buffer))
+                          (error "Unrecognized gdb buffer mode: %s" 
major-mode)))
+                     ;; Command buffer.
+                     ((derived-mode-p 'gud-mode) 'command)
+                     ((equal (selected-window) gdb-source-window) 'source)))
+              (with-window-non-dedicated nil
+                (set-window-buffer nil placeholder)
+                (set-window-prev-buffers (selected-window) nil)
+                (set-window-next-buffers (selected-window) nil))))
+        ;; Save the window configuration to FILE.
+        (let ((window-config (window-state-get nil t)))
+          (with-temp-buffer
+            (prin1 window-config (current-buffer))
+            (write-file file t)))
+        (kill-buffer placeholder)))))
+
+(defun gdb-load-window-configuration (file)
+  "Restore window configuration (layout) from FILE.
+FILE should be a window configuration file saved by
+`gdb-save-window-configuration'."
+  (interactive (list (read-file-name
+                      "Restore window configuration from file: "
+                      (or gdb-window-configuration-directory
+                          default-directory))))
+  ;; Basically, we restore window configuration and go through each
+  ;; window and restore the function buffers.
+  (let* ((placeholder (get-buffer-create " *gdb-placeholder*")))
+    (unwind-protect ; Don't leak buffer.
+        (let ((window-config (with-temp-buffer
+                               (insert-file-contents file)
+                               ;; We need to go to point-min because
+                               ;; `read' reads from point
+                               (goto-char (point-min))
+                               (read (current-buffer))))
+              (source-buffer (or (gdb-get-source-buffer)
+                                 ;; Do the same thing as in
+                                 ;; `gdb-setup-windows' if no source
+                                 ;; buffer is found.
+                                 (list-buffers-noselect)))
+              buffer-type)
+          (window-state-put window-config (frame-root-window))
+          (dolist (window (window-list nil 'no-minibuffer))
+            (with-selected-window window
+              (setq buffer-type (window-parameter nil 'gdb-buffer-type))
+              (pcase buffer-type
+                ('source (when source-buffer
+                           (set-window-buffer nil source-buffer)
+                           (setq gdb-source-window (selected-window))))
+                ('command (switch-to-buffer gud-comint-buffer))
+                (_ (let ((buffer (gdb-get-buffer-create buffer-type)))
+                     (with-window-non-dedicated nil
+                       (set-window-buffer nil buffer))))))))
+      (kill-buffer placeholder))))
 
 (define-minor-mode gdb-many-windows
   "If nil just pop up the GUD buffer unless `gdb-show-main' is t.
@@ -4658,7 +4857,12 @@ of the debugged program.  Non-nil means display the 
layout shown for
 
 (defun gdb-restore-windows ()
   "Restore the basic arrangement of windows used by gdb.
-This arrangement depends on the value of option `gdb-many-windows'."
+This arrangement depends on the values of variable
+`gdb-many-windows' and `gdb-default-window-configuration-file'."
+  ;; This function is used when the user messed up window
+  ;; configuration and wants to "reset to default".  The function that
+  ;; sets up window configuration on start up is
+  ;; `gdb-get-source-file'.
   (interactive)
   (switch-to-buffer gud-comint-buffer) ;Select the right window and frame.
   (delete-other-windows)
@@ -4705,11 +4909,25 @@ Kills the gdb buffers, and resets variables and the 
source buffers."
   (if (boundp 'speedbar-frame) (speedbar-timer-fn))
   (setq gud-running nil)
   (setq gdb-active-process nil)
-  (remove-hook 'after-save-hook 'gdb-create-define-alist t))
+  (remove-hook 'after-save-hook 'gdb-create-define-alist t)
+  ;; Recover window configuration.
+  (when (or (eq gdb-restore-window-configuration-after-quit t)
+            (and (eq gdb-restore-window-configuration-after-quit
+                     'if-gdb-show-main)
+                 gdb-show-main)
+            (and (eq gdb-restore-window-configuration-after-quit
+                     'if-gdb-many-windows)
+                 gdb-many-windows))
+    (when gdb--window-configuration-before
+      (window-state-put gdb--window-configuration-before)
+      ;; This way we don't accidentally restore an outdated window
+      ;; configuration.
+      (setq gdb--window-configuration-before nil))))
 
 (defun gdb-get-source-file ()
   "Find the source file where the program starts and display it with related
 buffers, if required."
+  ;; This function is called only once on startup.
   (goto-char (point-min))
   (if (re-search-forward gdb-source-file-regexp nil t)
       (setq gdb-main-file (read (match-string 1))))
diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el
index dba70cb..6770fbe 100644
--- a/lisp/progmodes/idlw-shell.el
+++ b/lisp/progmodes/idlw-shell.el
@@ -1598,7 +1598,7 @@ number.")
   "A regular expression to match any IDL error.")
 
 (defvar idlwave-shell-halting-error
-  "^% .*\n\\([^%].*\n\\)*% Execution halted 
at:\\(\\s-*\\S-+\\s-*[0-9]+\\s-*.*\\)\n"
+  "^% .*\n\\([^%].*\n\\)*% Execution halted at:\\(\\s-*\\S-+\\s-*[0-9]+.*\\)\n"
   "A regular expression to match errors which halt execution.")
 
 (defvar idlwave-shell-cant-continue-error
diff --git a/lisp/progmodes/octave.el b/lisp/progmodes/octave.el
index 9e03956..352c181 100644
--- a/lisp/progmodes/octave.el
+++ b/lisp/progmodes/octave.el
@@ -619,8 +619,7 @@ Key bindings:
   (add-hook 'before-save-hook 'octave-sync-function-file-names nil t)
   (setq-local beginning-of-defun-function 'octave-beginning-of-defun)
   (and octave-font-lock-texinfo-comment (octave-font-lock-texinfo-comment))
-  (add-function :before-until (local 'eldoc-documentation-function)
-                'octave-eldoc-function)
+  (add-hook 'eldoc-documentation-functions 'octave-eldoc-function nil t)
 
   (easy-menu-add octave-mode-menu))
 
diff --git a/lisp/progmodes/opascal.el b/lisp/progmodes/opascal.el
index fcd9294..8c06099 100644
--- a/lisp/progmodes/opascal.el
+++ b/lisp/progmodes/opascal.el
@@ -1688,7 +1688,7 @@ comment block.  If not in a // comment, just does a 
normal newline."
    ;; as comment starters.  Fix it here by removing the "2" from the syntax
    ;; of the second char of such sequences.
    ("/\\(\\*\\)" (1 ". 3b"))
-   ("(\\(\\/\\)" (1 (prog1 ". 1c" (forward-char -1) nil)))
+   ("(\\(/\\)" (1 (prog1 ". 1c" (forward-char -1) nil)))
    ;; Pascal uses '' and "" rather than \' and \" to escape quotes.
    ("''\\|\"\"" (0 (if (save-excursion
                          (nth 3 (syntax-ppss (match-beginning 0))))
diff --git a/lisp/progmodes/pascal.el b/lisp/progmodes/pascal.el
index 13505d0..536a16d 100644
--- a/lisp/progmodes/pascal.el
+++ b/lisp/progmodes/pascal.el
@@ -187,7 +187,7 @@
    ;; as comment starters.  Fix it here by removing the "2" from the syntax
    ;; of the second char of such sequences.
    ("/\\(\\*\\)" (1 ". 3b"))
-   ("(\\(\\/\\)" (1 (prog1 ". 1c" (forward-char -1) nil)))
+   ("(\\(/\\)" (1 (prog1 ". 1c" (forward-char -1) nil)))
    ;; Pascal uses '' and "" rather than \' and \" to escape quotes.
    ("''\\|\"\"" (0 (if (save-excursion
                          (nth 3 (syntax-ppss (match-beginning 0))))
@@ -1392,7 +1392,7 @@ The default is a name found in the buffer around point."
 (defvar pascal-outline-map
   (let ((map (make-sparse-keymap)))
     (if (fboundp 'set-keymap-name)
-        (set-keymap-name pascal-outline-map 'pascal-outline-map))
+        (set-keymap-name map 'pascal-outline-map))
     (define-key map "\M-\C-a"  'pascal-outline-prev-defun)
     (define-key map "\M-\C-e"  'pascal-outline-next-defun)
     (define-key map "\C-c\C-d" 'pascal-outline-goto-defun)
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el
index f864f6a..ff0b6a3 100644
--- a/lisp/progmodes/perl-mode.el
+++ b/lisp/progmodes/perl-mode.el
@@ -235,7 +235,7 @@
                                                       (match-beginning 0))))))
                             (string-to-syntax ". p"))))
       ;; Handle funny names like $DB'stop.
-      ("\\$ ?{?^?[_[:alpha:]][_[:alnum:]]*\\('\\)[_[:alpha:]]" (1 "_"))
+      ("\\$ ?{?\\^?[_[:alpha:]][_[:alnum:]]*\\('\\)[_[:alpha:]]" (1 "_"))
       ;; format statements
       ("^[ \t]*format.*=[ \t]*\\(\n\\)"
        (1 (prog1 "\"" (perl-syntax-propertize-special-constructs end))))
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index ccd8cc0..f467868 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -437,6 +437,7 @@ triggers completion when entering a pattern, including it
 requires quoting, e.g. `\\[quoted-insert]<space>'."
   (interactive (list (project--read-regexp)))
   (require 'xref)
+  (require 'grep)
   (let* ((pr (project-current t))
          (files
           (if (not current-prefix-arg)
@@ -606,7 +607,8 @@ PREDICATE, HIST, and DEFAULT have the same meaning as in
 (defun project-search (regexp)
   "Search for REGEXP in all the files of the project.
 Stops when a match is found.
-To continue searching for next match, use command \\[fileloop-continue]."
+To continue searching for the next match, use the
+command \\[fileloop-continue]."
   (interactive "sSearch (regexp): ")
   (fileloop-initialize-search
    regexp (project-files (project-current t)) 'default)
@@ -614,9 +616,10 @@ To continue searching for next match, use command 
\\[fileloop-continue]."
 
 ;;;###autoload
 (defun project-query-replace-regexp (from to)
-  "Search for REGEXP in all the files of the project.
-Stops when a match is found.
-To continue searching for next match, use command \\[fileloop-continue]."
+  "Query-replace REGEXP in all the files of the project.
+Stops when a match is found and prompts for whether to replace it.
+If you exit the query-replace, you can later continue the query-replace
+loop using the command \\[fileloop-continue]."
   (interactive
    (pcase-let ((`(,from ,to)
                 (query-replace-read-args "Query replace (regexp)" t t)))
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index a2d85d0..67383b3 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -5544,8 +5544,10 @@ REPORT-FN is Flymake's callback function."
       ;; Emacs<25
       (set (make-local-variable 'eldoc-documentation-function)
            #'python-eldoc-function)
-    (add-function :before-until (local 'eldoc-documentation-function)
-                  #'python-eldoc-function))
+    (if (boundp 'eldoc-documentation-functions)
+        (add-hook 'eldoc-documentation-functions #'python-eldoc-function nil t)
+      (add-function :before-until (local 'eldoc-documentation-function)
+                    #'python-eldoc-function)))
 
   (add-to-list
    'hs-special-modes-alist
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index 5da5577..e16225c 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -801,7 +801,7 @@ The style of the comment is controlled by 
`ruby-encoding-magic-comment-style'."
       (let ((coding-system (ruby--detect-encoding)))
         (when coding-system
           (if (looking-at "^#!") (beginning-of-line 2))
-          (cond ((looking-at "\\s *#\\s *.*\\(en\\)?coding\\s *:\\s 
*\\([-a-z0-9_]*\\)")
+          (cond ((looking-at "\\s *#.*\\(en\\)?coding\\s *:\\s 
*\\([-a-z0-9_]*\\)")
                  ;; update existing encoding comment if necessary
                  (unless (string= (match-string 2) coding-system)
                    (goto-char (match-beginning 2))
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index a241a1e..044d782 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -1096,7 +1096,7 @@ subshells can nest."
     (")" (0 (sh-font-lock-paren (match-beginning 0))))
     ;; Highlight (possibly nested) subshells inside "" quoted
     ;; regions correctly.
-    ("\"\\(?:\\(?:[^\\\"]\\|\\\\.\\)*?\\)??\\(\\$(\\|`\\)"
+    ("\"\\(?:[^\\\"]\\|\\\\.\\)*?\\(\\$(\\|`\\)"
      (1 (ignore
          (if (nth 8 (save-excursion (syntax-ppss (match-beginning 0))))
              (goto-char (1+ (match-beginning 0)))
diff --git a/lisp/progmodes/simula.el b/lisp/progmodes/simula.el
index 5d5f180..be3edfd 100644
--- a/lisp/progmodes/simula.el
+++ b/lisp/progmodes/simula.el
@@ -367,7 +367,7 @@ Turning on SIMULA mode calls the value of the variable 
simula-mode-hook
 with no arguments, if that value is non-nil."
   (set (make-local-variable 'comment-column) 40)
   ;; (set (make-local-variable 'end-comment-column) 75)
-  (set (make-local-variable 'paragraph-start) "[ \t]*$\\|\\f")
+  (set (make-local-variable 'paragraph-start) "[ \t]*$\\|\f")
   (set (make-local-variable 'paragraph-separate) paragraph-start)
   (set (make-local-variable 'indent-line-function) 'simula-indent-line)
   (set (make-local-variable 'comment-start) "! ")
diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el
index 5eb8701..6fd750d 100644
--- a/lisp/progmodes/sql.el
+++ b/lisp/progmodes/sql.el
@@ -257,7 +257,6 @@
 (defcustom sql-user ""
   "Default username."
   :type 'string
-  :group 'SQL
   :safe 'stringp)
 
 (defcustom sql-password ""
@@ -265,33 +264,28 @@
 If you customize this, the value will be stored in your init
 file.  Since that is a plaintext file, this could be dangerous."
   :type 'string
-  :group 'SQL
   :risky t)
 
 (defcustom sql-database ""
   "Default database."
   :type 'string
-  :group 'SQL
   :safe 'stringp)
 
 (defcustom sql-server ""
   "Default server or host."
   :type 'string
-  :group 'SQL
   :safe 'stringp)
 
 (defcustom sql-port 0
   "Default port for connecting to a MySQL or Postgres server."
   :version "24.1"
   :type 'number
-  :group 'SQL
   :safe 'numberp)
 
 (defcustom sql-default-directory nil
   "Default directory for SQL processes."
   :version "25.1"
   :type '(choice (const nil) string)
-  :group 'SQL
   :safe 'stringp)
 
 ;; Login parameter type
@@ -707,9 +701,9 @@ making new SQLi sessions."
                  (repeat :inline t
                          (list :tab "Other"
                                (symbol :tag " Variable Symbol")
+                               ;; FIXME: Why "Value *Expression*"?
                                (sexp   :tag "Value Expression")))))
-  :version "24.1"
-  :group 'SQL)
+  :version "24.1")
 
 (defvaralias 'sql-dialect 'sql-product)
 
@@ -723,7 +717,6 @@ This allows highlighting buffers properly when you open 
them."
                                    (capitalize (symbol-name (car prod-info))))
                               ,(car prod-info)))
                     sql-product-alist))
-  :group 'SQL
   :safe 'symbolp)
 
 ;; SQL indent support
@@ -735,7 +728,6 @@ SQL statements with easy customizations to support varied 
layout
 requirements.
 
 The package must be available to be loaded and activated."
-  :group 'SQL
   :link '(url-link "https://elpa.gnu.org/packages/sql-indent.html";)
   :type 'boolean
   :version "27.1")
@@ -851,7 +843,6 @@ host key."
 See `sql-password-search-wallet-function' to understand how this value
 is used to locate the password wallet."
   :type `(plist-get (symbol-plist 'auth-sources) 'custom-type)
-  :group 'SQL
   :version "27.1")
 
 (defvar sql-password-search-wallet-function #'sql-auth-source-search-wallet
@@ -878,8 +869,7 @@ current input in the SQLi buffer to the process."
   :type '(choice (const :tag "Nothing" nil)
                 (const :tag "The semicolon `;'" semicolon)
                 (const :tag "The string `go' by itself" go))
-  :version "20.8"
-  :group 'SQL)
+  :version "20.8")
 
 (defcustom sql-send-terminator nil
   "When non-nil, add a terminator to text sent to the SQL interpreter.
@@ -907,8 +897,7 @@ it automatically."
                 (cons   :tag "Terminator Pattern and String"
                         (regexp :tag "Terminator Pattern")
                         (string :tag "Terminator String")))
-  :version "22.2"
-  :group 'SQL)
+  :version "22.2")
 
 (defvar sql-contains-names nil
   "When non-nil, the current buffer contains database names.
@@ -932,8 +921,7 @@ buffer."
   :type '(choice (const :tag "Default" t)
                  (const :tag "No display" nil)
                 (function :tag "Display Buffer function"))
-  :version "27.1"
-  :group 'SQL)
+  :version "27.1")
 
 ;; imenu support for sql-mode.
 
@@ -971,8 +959,7 @@ This is used to initialize `comint-input-ring-file-name'.
 Note that the size of the input history is determined by the variable
 `comint-input-ring-size'."
   :type '(choice (const :tag "none" nil)
-                (file))
-  :group 'SQL)
+                (file)))
 
 (defcustom sql-input-ring-separator "\n--\n"
   "Separator between commands in the history file.
@@ -987,21 +974,18 @@ does not have it, setting `sql-input-ring-separator' will 
have no
 effect.  In that case multiline commands will be split into several
 commands when the input history is read, as if you had set
 `sql-input-ring-separator' to \"\\n\"."
-  :type 'string
-  :group 'SQL)
+  :type 'string)
 
 ;; The usual hooks
 
 (defcustom sql-interactive-mode-hook '(sql-indent-enable)
   "Hook for customizing `sql-interactive-mode'."
   :type 'hook
-  :group 'SQL
   :version "27.1")
 
 (defcustom sql-mode-hook '(sql-indent-enable)
   "Hook for customizing `sql-mode'."
   :type 'hook
-  :group 'SQL
   :version "27.1")
 
 (defcustom sql-set-sqli-hook '()
@@ -1009,8 +993,7 @@ commands when the input history is read, as if you had set
 
 This is called by `sql-set-sqli-buffer' when the value of `sql-buffer'
 is changed."
-  :type 'hook
-  :group 'SQL)
+  :type 'hook)
 
 (defcustom sql-login-hook '()
   "Hook for interacting with a buffer in `sql-interactive-mode'.
@@ -1018,8 +1001,7 @@ is changed."
 This hook is invoked in a buffer once it is ready to accept input
 for the first time."
   :version "24.1"
-  :type 'hook
-  :group 'SQL)
+  :type 'hook)
 
 ;; Customization for ANSI
 
@@ -1033,8 +1015,7 @@ All products share this list; products should define a 
regexp to
 identify additional keywords in a variable defined by
 the :statement feature."
   :version "24.1"
-  :type 'regexp
-  :group 'SQL)
+  :type 'regexp)
 
 ;; Customization for Oracle
 
@@ -1046,27 +1027,23 @@ Starts `sql-interactive-mode' after doing some setup.
 On Windows, \"sqlplus\" usually starts the sqlplus \"GUI\".  In order
 to start the sqlplus console, use \"plus33\" or something similar.
 You will find the file in your Orant\\bin directory."
-  :type 'file
-  :group 'SQL)
+  :type 'file)
 
 (defcustom sql-oracle-options '("-L")
   "List of additional options for `sql-oracle-program'."
   :type '(repeat string)
-  :version "24.4"
-  :group 'SQL)
+  :version "24.4")
 
 (defcustom sql-oracle-login-params '(user password database)
   "List of login parameters needed to connect to Oracle."
   :type 'sql-login-params
-  :version "24.1"
-  :group 'SQL)
+  :version "24.1")
 
 (defcustom sql-oracle-statement-starters
   (regexp-opt '("declare" "begin" "with"))
   "Additional statement starting keywords in Oracle."
   :version "24.1"
-  :type 'string
-  :group 'SQL)
+  :type 'string)
 
 (defcustom sql-oracle-scan-on t
   "Non-nil if placeholders should be replaced in Oracle SQLi.
@@ -1082,8 +1059,7 @@ You need to issue the following command in SQL*Plus to be 
safe:
 
 In older versions of SQL*Plus, this was the SET SCAN OFF command."
   :version "24.1"
-  :type 'boolean
-  :group 'SQL)
+  :type 'boolean)
 
 (defcustom sql-db2-escape-newlines nil
   "Non-nil if newlines should be escaped by a backslash in DB2 SQLi.
@@ -1092,8 +1068,7 @@ When non-nil, Emacs will automatically insert a space and
 backslash prior to every newline in multi-line SQL statements as
 they are submitted to an interactive DB2 session."
   :version "24.3"
-  :type 'boolean
-  :group 'SQL)
+  :type 'boolean)
 
 ;; Customization for SQLite
 
@@ -1103,21 +1078,18 @@ they are submitted to an interactive DB2 session."
   "Command to start SQLite.
 
 Starts `sql-interactive-mode' after doing some setup."
-  :type 'file
-  :group 'SQL)
+  :type 'file)
 
 (defcustom sql-sqlite-options nil
   "List of additional options for `sql-sqlite-program'."
   :type '(repeat string)
-  :version "20.8"
-  :group 'SQL)
+  :version "20.8")
 
 (defcustom sql-sqlite-login-params '((database :file nil
                                                :must-match confirm))
   "List of login parameters needed to connect to SQLite."
   :type 'sql-login-params
-  :version "26.1"
-  :group 'SQL)
+  :version "26.1")
 
 ;; Customization for MariaDB
 
@@ -1134,22 +1106,19 @@ Starts `sql-interactive-mode' after doing some setup."
   "Command to start mysql by Oracle.
 
 Starts `sql-interactive-mode' after doing some setup."
-  :type 'file
-  :group 'SQL)
+  :type 'file)
 
 (defcustom sql-mysql-options nil
   "List of additional options for `sql-mysql-program'.
 The following list of options is reported to make things work
 on Windows: \"-C\" \"-t\" \"-f\" \"-n\"."
   :type '(repeat string)
-  :version "20.8"
-  :group 'SQL)
+  :version "20.8")
 
 (defcustom sql-mysql-login-params '(user password database server)
   "List of login parameters needed to connect to MySQL."
   :type 'sql-login-params
-  :version "24.1"
-  :group 'SQL)
+  :version "24.1")
 
 ;; Customization for Solid
 
@@ -1157,14 +1126,12 @@ on Windows: \"-C\" \"-t\" \"-f\" \"-n\"."
   "Command to start SOLID SQL Editor.
 
 Starts `sql-interactive-mode' after doing some setup."
-  :type 'file
-  :group 'SQL)
+  :type 'file)
 
 (defcustom sql-solid-login-params '(user password server)
   "List of login parameters needed to connect to Solid."
   :type 'sql-login-params
-  :version "24.1"
-  :group 'SQL)
+  :version "24.1")
 
 ;; Customization for Sybase
 
@@ -1172,21 +1139,18 @@ Starts `sql-interactive-mode' after doing some setup."
   "Command to start isql by Sybase.
 
 Starts `sql-interactive-mode' after doing some setup."
-  :type 'file
-  :group 'SQL)
+  :type 'file)
 
 (defcustom sql-sybase-options nil
   "List of additional options for `sql-sybase-program'.
 Some versions of isql might require the -n option in order to work."
   :type '(repeat string)
-  :version "20.8"
-  :group 'SQL)
+  :version "20.8")
 
 (defcustom sql-sybase-login-params '(server user password database)
   "List of login parameters needed to connect to Sybase."
   :type 'sql-login-params
-  :version "24.1"
-  :group 'SQL)
+  :version "24.1")
 
 ;; Customization for Informix
 
@@ -1194,14 +1158,12 @@ Some versions of isql might require the -n option in 
order to work."
   "Command to start dbaccess by Informix.
 
 Starts `sql-interactive-mode' after doing some setup."
-  :type 'file
-  :group 'SQL)
+  :type 'file)
 
 (defcustom sql-informix-login-params '(database)
   "List of login parameters needed to connect to Informix."
   :type 'sql-login-params
-  :version "24.1"
-  :group 'SQL)
+  :version "24.1")
 
 ;; Customization for Ingres
 
@@ -1209,14 +1171,12 @@ Starts `sql-interactive-mode' after doing some setup."
   "Command to start sql by Ingres.
 
 Starts `sql-interactive-mode' after doing some setup."
-  :type 'file
-  :group 'SQL)
+  :type 'file)
 
 (defcustom sql-ingres-login-params '(database)
   "List of login parameters needed to connect to Ingres."
   :type 'sql-login-params
-  :version "24.1"
-  :group 'SQL)
+  :version "24.1")
 
 ;; Customization for Microsoft
 
@@ -1229,21 +1189,18 @@ Starts `sql-interactive-mode' after doing some setup."
   "Command to start osql by Microsoft.
 
 Starts `sql-interactive-mode' after doing some setup."
-  :type 'file
-  :group 'SQL)
+  :type 'file)
 
 (defcustom sql-ms-options '("-w" "300" "-n")
   ;; -w is the linesize
   "List of additional options for `sql-ms-program'."
   :type '(repeat string)
-  :version "22.1"
-  :group 'SQL)
+  :version "22.1")
 
 (defcustom sql-ms-login-params '(user password server database)
   "List of login parameters needed to connect to Microsoft."
   :type 'sql-login-params
-  :version "24.1"
-  :group 'SQL)
+  :version "24.1")
 
 ;; Customization for Postgres
 
@@ -1251,8 +1208,7 @@ Starts `sql-interactive-mode' after doing some setup."
   "Command to start psql by Postgres.
 
 Starts `sql-interactive-mode' after doing some setup."
-  :type 'file
-  :group 'SQL)
+  :type 'file)
 
 (defcustom sql-postgres-options '("-P" "pager=off")
   "List of additional options for `sql-postgres-program'.
@@ -1263,8 +1219,7 @@ name, add the string \"-u\" to the list of options.  If 
you want to
 provide a user name on the command line (newer versions such as 7.1),
 add your name with a \"-U\" prefix (such as \"-Umark\") to the list."
   :type '(repeat string)
-  :version "20.8"
-  :group 'SQL)
+  :version "20.8")
 
 (defcustom sql-postgres-login-params
   `((user :default ,(user-login-name))
@@ -1275,8 +1230,7 @@ add your name with a \"-U\" prefix (such as \"-Umark\") 
to the list."
     server)
   "List of login parameters needed to connect to Postgres."
   :type 'sql-login-params
-  :version "26.1"
-  :group 'SQL)
+  :version "26.1")
 
 (defun sql-postgres-list-databases ()
   "Return a list of available PostgreSQL databases."
@@ -1297,20 +1251,17 @@ add your name with a \"-U\" prefix (such as \"-Umark\") 
to the list."
   "Command to start isql by Interbase.
 
 Starts `sql-interactive-mode' after doing some setup."
-  :type 'file
-  :group 'SQL)
+  :type 'file)
 
 (defcustom sql-interbase-options nil
   "List of additional options for `sql-interbase-program'."
   :type '(repeat string)
-  :version "20.8"
-  :group 'SQL)
+  :version "20.8")
 
 (defcustom sql-interbase-login-params '(user password database)
   "List of login parameters needed to connect to Interbase."
   :type 'sql-login-params
-  :version "24.1"
-  :group 'SQL)
+  :version "24.1")
 
 ;; Customization for DB2
 
@@ -1318,20 +1269,17 @@ Starts `sql-interactive-mode' after doing some setup."
   "Command to start db2 by IBM.
 
 Starts `sql-interactive-mode' after doing some setup."
-  :type 'file
-  :group 'SQL)
+  :type 'file)
 
 (defcustom sql-db2-options nil
   "List of additional options for `sql-db2-program'."
   :type '(repeat string)
-  :version "20.8"
-  :group 'SQL)
+  :version "20.8")
 
 (defcustom sql-db2-login-params nil
   "List of login parameters needed to connect to DB2."
   :type 'sql-login-params
-  :version "24.1"
-  :group 'SQL)
+  :version "24.1")
 
 ;; Customization for Linter
 
@@ -1339,20 +1287,17 @@ Starts `sql-interactive-mode' after doing some setup."
   "Command to start inl by RELEX.
 
 Starts `sql-interactive-mode' after doing some setup."
-  :type 'file
-  :group 'SQL)
+  :type 'file)
 
 (defcustom sql-linter-options nil
   "List of additional options for `sql-linter-program'."
   :type '(repeat string)
-  :version "21.3"
-  :group 'SQL)
+  :version "21.3")
 
 (defcustom sql-linter-login-params '(user password database server)
   "Login parameters to needed to connect to Linter."
   :type 'sql-login-params
-  :version "24.1"
-  :group 'SQL)
+  :version "24.1")
 
 
 
@@ -1436,10 +1381,7 @@ specified, it's `sql-product' or `sql-connection' must 
match."
 
 (defvar sql-interactive-mode-map
   (let ((map (make-sparse-keymap)))
-    (if (fboundp 'set-keymap-parent)
-       (set-keymap-parent map comint-mode-map); Emacs
-      (if (fboundp 'set-keymap-parents)
-         (set-keymap-parents map (list comint-mode-map)))); XEmacs
+    (set-keymap-parent map comint-mode-map)
     (if (fboundp 'set-keymap-name)
        (set-keymap-name map 'sql-interactive-mode-map)); XEmacs
     (define-key map (kbd "C-j") 'sql-accumulate-and-indent)
@@ -2374,7 +2316,8 @@ function `regexp-opt'.")
 "ansi_warnings" "forceplan" "showplan_all" "showplan_text"
 "statistics" "implicit_transactions" "remote_proc_transactions"
 "transaction" "xact_abort"
-) t)
+)
+                   t)
        "\\)\\)\\|go\\s-*\\|use\\s-+\\|setuser\\s-+\\|dbcc\\s-+\\).*$")
       'font-lock-doc-face)
 
@@ -2856,7 +2799,7 @@ See `sql-product-alist' for a list of products and 
supported features."
                (member feature sql-indirect-features)
                (not not-indirect)
                (symbolp v))
-              (eval v)
+              (symbol-value v)
             v))
       (error "`%s' is not a known product; use `sql-add-product' to add it 
first." product)
       nil)))
@@ -4245,7 +4188,6 @@ must tell Emacs.  Here's how to do that in your init file:
 \(add-hook \\='sql-mode-hook
           (lambda ()
            (modify-syntax-entry ?\\\\ \".\" sql-mode-syntax-table)))"
-  :group 'SQL
   :abbrev-table sql-mode-abbrev-table
 
   (if sql-mode-menu
@@ -4280,7 +4222,7 @@ must tell Emacs.  Here's how to do that in your init file:
 (put 'sql-interactive-mode 'mode-class 'special)
 (put 'sql-interactive-mode 'custom-mode-group 'SQL)
 ;; FIXME: Why not use `define-derived-mode'?
-(defun sql-interactive-mode ()
+(define-derived-mode sql-interactive-mode comint-mode "SQLi[?]"
   "Major mode to use a SQL interpreter interactively.
 
 Do not call this function by yourself.  The environment must be
@@ -4348,9 +4290,10 @@ you entered, right above the output it created.
 
 \(setq comint-output-filter-functions
        (function (lambda (STR) (comint-show-output))))"
+  :syntax-table sql-mode-syntax-table
   ;; FIXME: The doc above uses `setq' on `comint-output-filter-functions',
   ;; whereas hooks should be manipulated with things like `add/remove-hook'.
-  (delay-mode-hooks (comint-mode))
+  :after-hook (sql--adjust-interactive-setup)
 
   ;; Get the `sql-product' for this interactive session.
   (set (make-local-variable 'sql-product)
@@ -4358,14 +4301,11 @@ you entered, right above the output it created.
           sql-product))
 
   ;; Setup the mode.
-  (setq major-mode 'sql-interactive-mode)
   (setq mode-name
         (concat "SQLi[" (or (sql-get-product-feature sql-product :name)
                             (symbol-name sql-product)) "]"))
-  (use-local-map sql-interactive-mode-map)
   (if sql-interactive-mode-menu
       (easy-menu-add sql-interactive-mode-menu)) ; XEmacs
-  (set-syntax-table sql-mode-syntax-table)
 
   ;; Note that making KEYWORDS-ONLY nil will cause havoc if you try
   ;; SELECT 'x' FROM DUAL with SQL*Plus, because the title of the column
@@ -4409,9 +4349,10 @@ you entered, right above the output it created.
   (add-hook 'comint-preoutput-filter-functions
             #'sql-interactive-remove-continuation-prompt nil t)
   (make-local-variable 'sql-input-ring-separator)
-  (make-local-variable 'sql-input-ring-file-name)
-  ;; Run the mode hook (along with comint's hooks).
-  (run-mode-hooks 'sql-interactive-mode-hook)
+  (make-local-variable 'sql-input-ring-file-name))
+
+(defun sql--adjust-interactive-setup ()
+  "Finish the mode's setup after running the mode hook."
   ;; Set comint based on user overrides.
   (setq comint-prompt-regexp
         (if sql-prompt-cont-regexp
@@ -4490,7 +4431,7 @@ is specified in the connection settings."
                 (dolist (vv connect-set)
                   (let ((var (car vv))
                         (val (cadr vv)))
-                    (set-default var (eval val))))
+                    (set-default var (eval val)))) ;FIXME: Why `eval'?
                 (setq-default sql-connection connection)
 
                 ;; :sqli-login params variable
@@ -4521,10 +4462,10 @@ is specified in the connection settings."
                                               (if vals (cons var vals) var)))))
 
                 ;; Start the SQLi session with revised list of login parameters
-                (eval `(let ((,param-var ',rem-vars))
-                         (sql-product-interactive
-                          ',sql-product
-                          ',(or buf-name (format "<%s>" connection))))))
+                (cl-progv (list param-var) (list rem-vars)
+                  (sql-product-interactive
+                   sql-product
+                   (or buf-name (format "<%s>" connection)))))
 
             (user-error "SQL Connection <%s> does not exist" connection)
             nil)))
@@ -4595,7 +4536,10 @@ optionally is saved to the user's init file."
          (format "Connection <%s>\t%s" (car conn)
                  (let ((sql-user "") (sql-database "")
                        (sql-server "") (sql-port 0))
-                   (eval `(let ,(cdr conn) (sql-make-alternate-buffer-name)))))
+                   (cl-progv
+                       (mapcar #'car (cdr conn))
+                       (mapcar #'cadr (cdr conn))
+                     (sql-make-alternate-buffer-name))))
          (list 'sql-connect (car conn))
          t))
     sql-connection-alist)
@@ -4977,8 +4921,7 @@ The default comes from `process-coding-system-alist' and
 
 See the distinct values in ALL_OBJECTS.OBJECT_TYPE for possible values."
   :version "24.1"
-  :type '(repeat string)
-  :group 'SQL)
+  :type '(repeat string))
 
 (defun sql-oracle-completion-object (sqlbuf schema)
   (sql-redirect-value
@@ -5624,21 +5567,18 @@ buffer.
 (defcustom sql-vertica-program "vsql"
   "Command to start the Vertica client."
   :version "25.1"
-  :type 'file
-  :group 'SQL)
+  :type 'file)
 
 (defcustom sql-vertica-options '("-P" "pager=off")
   "List of additional options for `sql-vertica-program'.
 The default value disables the internal pager."
   :version "25.1"
-  :type '(repeat string)
-  :group 'SQL)
+  :type '(repeat string))
 
 (defcustom sql-vertica-login-params '(user password database server)
   "List of login parameters needed to connect to Vertica."
   :version "25.1"
-  :type 'sql-login-params
-  :group 'SQL)
+  :type 'sql-login-params)
 
 (defun sql-comint-vertica (product options &optional buf-name)
   "Create comint buffer and connect to Vertica."
diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el
index 460957b..87f901a 100644
--- a/lisp/progmodes/verilog-mode.el
+++ b/lisp/progmodes/verilog-mode.el
@@ -9,7 +9,7 @@
 ;; Keywords: languages
 ;; The "Version" is the date followed by the decimal rendition of the Git
 ;;     commit hex.
-;; Version: 2019.12.17.268053413
+;; Version: 2020.02.23.232634261
 
 ;; Yoni Rabkin <address@hidden> contacted the maintainer of this
 ;; file on 19/3/2008, and the maintainer agreed that when a bug is
@@ -124,7 +124,7 @@
 ;;
 
 ;; This variable will always hold the version number of the mode
-(defconst verilog-mode-version "2019-12-17-ffa2ba5-vpo-GNU"
+(defconst verilog-mode-version "2020-02-23-dddb795-vpo-GNU"
   "Version of this Verilog mode.")
 (defconst verilog-mode-release-emacs t
   "If non-nil, this version of Verilog mode was released with Emacs itself.")
@@ -958,8 +958,8 @@ See `compilation-error-regexp-alist-alist' for the 
formatting.  For XEmacs.")
     ("syntax error:.*\n\\([^ \t]+\\) *\\([0-9]+\\):" 1 bold t)
     ("syntax error:.*\n\\([^ \t]+\\) *\\([0-9]+\\):" 2 bold t)
     ;; verilog-verilator
-    (".*%?\\(Error\\|Warning\\)\\(-[^:]+\\|\\):[\n ]*\\([^ 
\t:]+\\):\\([0-9]+\\):" 3 bold t)
-    (".*%?\\(Error\\|Warning\\)\\(-[^:]+\\|\\):[\n ]*\\([^ 
\t:]+\\):\\([0-9]+\\):" 4 bold t)
+    (".*\\(Error\\|Warning\\)\\(-[^:]+\\|\\):[\n ]*\\([^ 
\t:]+\\):\\([0-9]+\\):" 3 bold t)
+    (".*\\(Error\\|Warning\\)\\(-[^:]+\\|\\):[\n ]*\\([^ 
\t:]+\\):\\([0-9]+\\):" 4 bold t)
     ;; verilog-leda
     ("^In file \\([^ \t]+\\)[ \t]+line[ 
\t]+\\([0-9]+\\):\n[^\n]*\n[^\n]*\n\\(Warning\\|Error\\|Failure\\)[^\n]*" 1 
bold t)
     ("^In file \\([^ \t]+\\)[ \t]+line[ 
\t]+\\([0-9]+\\):\n[^\n]*\n[^\n]*\n\\(Warning\\|Error\\|Failure\\)[^\n]*" 2 
bold t)
@@ -1282,6 +1282,18 @@ won't merge conflict."
 (put 'verilog-auto-inst-template-numbers 'safe-local-variable
      '(lambda (x) (memq x '(nil t lhs))))
 
+(defcustom verilog-auto-inst-template-required nil
+  "If non-nil, when creating a port with AUTOINST, require a template.
+Any port which does not have a template will be ommitted from the
+instantiation.
+
+If nil, if a port is not templated it will be inserted to connect
+to a net with the same name as the port."
+  :version "28.0"
+  :group 'verilog-mode-auto
+  :type 'boolean)
+(put 'verilog-auto-inst-template-required 'safe-local-variable 
'verilog-booleanp)
+
 (defcustom verilog-auto-inst-column 40
   "Indent-to column number for net name part of AUTOINST created pin."
   :group 'verilog-mode-indent
@@ -3117,7 +3129,7 @@ See also `verilog-font-lock-extra-types'.")
      (:foreground "DimGray" :italic t))
     (((class grayscale) (background dark))
      (:foreground "LightGray" :italic t))
-    (t (:italis t)))
+    (t (:italic t)))
   "Font lock mode face used to background highlight translate-off regions."
   :group 'font-lock-highlighting-faces)
 
@@ -4571,9 +4583,11 @@ More specifically, point @ in the line foo : @ begin"
       nil)))
 
 (defun verilog-backward-up-list (arg)
-  "Call `backward-up-list' ARG, ignoring comments."
+  "Call `backward-up-list' ARG, ignoring comments and errors."
   (let ((parse-sexp-ignore-comments t))
-    (backward-up-list arg)))
+    (condition-case nil
+        (backward-up-list arg)  ;; May throw Unbalanced parenthesis
+      (error nil))))
 
 (defun verilog-forward-sexp-cmt (arg)
   "Call `forward-sexp' ARG, inside comments."
@@ -5345,7 +5359,7 @@ becomes:
   (interactive)
   (save-excursion
     (beginning-of-line)
-    (when (looking-at "\\(.*\\)([WE]\\([0-9A-Z]+\\)).*,\\s +line\\s 
+[0-9]+:\\s +\\([^:\n]+\\):?.*$")
+    (when (looking-at "\\(.*\\)([WE]\\([0-9A-Z]+\\)).*,\\s +line\\s 
+[0-9]+:\\s +\\([^:\n]+\\).*$")
       (replace-match (format
                      ;; %3s makes numbers 1-999 line up nicely
                      "\\1//Verilint %3s off // WARNING: \\3"
@@ -6788,7 +6802,7 @@ Do not count named blocks or case-statements."
      ((looking-at verilog-named-block-re)
       (current-column))
      ((and (not (looking-at verilog-extended-case-re))
-          (looking-at "^[^:;]+[ \t]*:"))
+          (looking-at "^[^:;]+:"))
       (verilog-re-search-forward ":" nil t)
       (skip-chars-forward " \t")
       (current-column))
@@ -7782,7 +7796,7 @@ If search fails, other files are checked based on
   "Return point if within translate-off region, else nil."
   (and (save-excursion
         (re-search-backward
-         (concat "//\\s-*.*\\s-*" verilog-directive-regexp "\\(on\\|off\\)\\>")
+         (concat "//.*" verilog-directive-regexp "\\(on\\|off\\)\\>")
          nil t))
        (equal "off" (match-string 2))
        (point)))
@@ -7790,14 +7804,14 @@ If search fails, other files are checked based on
 (defun verilog-start-translate-off (limit)
   "Return point before translate-off directive if before LIMIT, else nil."
   (when (re-search-forward
-         (concat "//\\s-*.*\\s-*" verilog-directive-regexp "off\\>")
+         (concat "//.*" verilog-directive-regexp "off\\>")
          limit t)
     (match-beginning 0)))
 
 (defun verilog-back-to-start-translate-off (limit)
   "Return point before translate-off directive if before LIMIT, else nil."
   (when (re-search-backward
-         (concat "//\\s-*.*\\s-*" verilog-directive-regexp "off\\>")
+         (concat "//.*" verilog-directive-regexp "off\\>")
          limit t)
     (match-beginning 0)))
 
@@ -7805,7 +7819,7 @@ If search fails, other files are checked based on
   "Return point after translate-on directive if before LIMIT, else nil."
 
   (re-search-forward (concat
-                     "//\\s-*.*\\s-*" verilog-directive-regexp "on\\>") limit 
t))
+                     "//.*" verilog-directive-regexp "on\\>") limit t))
 
 (defun verilog-match-translate-off (limit)
   "Match a translate-off block, setting `match-data' and returning t, else nil.
@@ -9982,7 +9996,7 @@ Or, just the existing dirnames themselves if there are no 
wildcards."
       (while dirnames
         (setq dirname (car dirnames)
               dirnames (cdr dirnames))
-        (cond ((string-match (concat "^\\(\\|[/\\]*[^*?]*[/\\]\\)"  ; root
+        (cond ((string-match (concat "^\\(\\|[^*?]*[/\\]\\)"  ; root
                                      "\\([^/\\]*[*?][^/\\]*\\)"     ; filename 
with *?
                                      "\\(.*\\)")                    ; rest
                              dirname)
@@ -11370,9 +11384,10 @@ See the example in `verilog-auto-inout-modport'."
 (defvar vl-bits  nil "See `verilog-auto-inst'.") ; Prevent compile warning
 (defvar vl-mbits nil "See `verilog-auto-inst'.") ; Prevent compile warning
 
-(defun verilog-auto-inst-port (port-st indent-pt moddecls tpl-list tpl-num 
for-star par-values)
+(defun verilog-auto-inst-port (section port-st indent-pt moddecls tpl-list 
tpl-num
+                                       for-star par-values)
   "Print out an instantiation connection for this PORT-ST.
-Insert to INDENT-PT, use template TPL-LIST.
+Inside SECTION, insert to INDENT-PT, use template TPL-LIST.
 @ are instantiation numbers, replaced with TPL-NUM.
 @\"(expression @)\" are evaluated, with @ as a variable.
 If FOR-STAR add comment it is a .* expansion.
@@ -11474,60 +11489,74 @@ If PAR-VALUES replace final strings with these 
parameter values."
       (setq tpl-net (verilog-string-replace-matches "\\[\\]\\[\\]" dflt-bits 
nil nil tpl-net))
       (setq tpl-net (verilog-string-replace-matches "\\[\\]" vl-bits nil nil 
tpl-net)))
     ;; Insert it
-    (indent-to indent-pt)
-    (insert "." port)
-    (unless (and verilog-auto-inst-dot-name
-                (equal port tpl-net))
-      (indent-to verilog-auto-inst-column)
-      (insert "(" tpl-net ")"))
-    (insert ",")
-    (cond (tpl-ass
-          (verilog-read-auto-template-hit tpl-ass)
-          (indent-to (+ (if (< verilog-auto-inst-column 48) 24 16)
-                        verilog-auto-inst-column))
-          ;; verilog-insert requires the complete comment in one call - 
including the newline
-          (cond ((equal verilog-auto-inst-template-numbers 'lhs)
-                 (verilog-insert " // Templated"
-                                 " LHS: " (nth 0 tpl-ass)
-                                 "\n"))
-                (verilog-auto-inst-template-numbers
-                 (verilog-insert " // Templated"
-                                 " T" (int-to-string (nth 2 tpl-ass))
-                                 " L" (int-to-string (nth 3 tpl-ass))
-                                 "\n"))
-                (t
-                 (verilog-insert " // Templated\n"))))
-         (for-star
-          (indent-to (+ (if (< verilog-auto-inst-column 48) 24 16)
-                        verilog-auto-inst-column))
-          (verilog-insert " // Implicit .*\n"))
-         (t
-          (insert "\n")))))
-;;(verilog-auto-inst-port (list "foo" "[5:0]") 10 (list (list "foo" "a@\"(% (+ 
@ 1) 4)\"a")) "3")
+    (when (or tpl-ass (not verilog-auto-inst-template-required))
+      (verilog-auto-inst-first section)
+      (indent-to indent-pt)
+      (insert "." port)
+      (unless (and verilog-auto-inst-dot-name
+                   (equal port tpl-net))
+        (indent-to verilog-auto-inst-column)
+        (insert "(" tpl-net ")"))
+      (insert ",")
+      (cond (tpl-ass
+             (verilog-read-auto-template-hit tpl-ass)
+             (indent-to (+ (if (< verilog-auto-inst-column 48) 24 16)
+                           verilog-auto-inst-column))
+             ;; verilog-insert requires the complete comment in one call - 
including the newline
+             (cond ((equal verilog-auto-inst-template-numbers 'lhs)
+                    (verilog-insert " // Templated"
+                                    " LHS: " (nth 0 tpl-ass)
+                                    "\n"))
+                   (verilog-auto-inst-template-numbers
+                    (verilog-insert " // Templated"
+                                    " T" (int-to-string (nth 2 tpl-ass))
+                                    " L" (int-to-string (nth 3 tpl-ass))
+                                    "\n"))
+                   (t
+                    (verilog-insert " // Templated\n"))))
+            (for-star
+             (indent-to (+ (if (< verilog-auto-inst-column 48) 24 16)
+                           verilog-auto-inst-column))
+             (verilog-insert " // Implicit .*\n"))
+            (t
+             (insert "\n"))))))
+;;(verilog-auto-inst-port "" (list "foo" "[5:0]") 10 (list (list "foo" "a@\"(% 
(+ @ 1) 4)\"a")) "3")
 ;;(x "incom[@\"(+ (* 8 @) 7)\":@\"(* 8 @)\"]")
 ;;(x ".out (outgo[@\"(concat (+ (* 8 @) 7) \\\":\\\" ( * 8 @))\"]));")
 
-(defun verilog-auto-inst-port-list (sig-list indent-pt moddecls tpl-list 
tpl-num for-star par-values)
-  "For `verilog-auto-inst' print a list of ports using 
`verilog-auto-inst-port'."
-  (when verilog-auto-inst-sort
-    (setq sig-list (sort (copy-alist sig-list) 
#'verilog-signals-sort-compare)))
-  (mapc (lambda (port)
-         (verilog-auto-inst-port port indent-pt moddecls
-                                 tpl-list tpl-num for-star par-values))
-       sig-list))
+(defvar verilog-auto-inst-first-section nil
+  "Local first-in-section for `verilog-auto-inst-first'.")
+(defvar verilog-auto-inst-first-any nil
+  "Local first-in-any-section for `verilog-auto-inst-first'.")
 
-(defun verilog-auto-inst-first ()
-  "Insert , etc before first ever port in this instant, as part of 
\\[verilog-auto-inst]."
+(defun verilog-auto-inst-first (section)
+  "Insert , and SECTION before port, as part of \\[verilog-auto-inst]."
   ;; Do we need a trailing comma?
   ;; There maybe an ifdef or something similar before us.  What a mess.  Thus
   ;; to avoid trouble we only insert on preceding ) or *.
   ;; Insert first port on new line
-  (insert "\n")  ; Must insert before search, so point will move forward if 
insert comma
-  (save-excursion
-    (verilog-re-search-backward-quick "[^ \t\n\f]" nil nil)
-    (when (looking-at ")\\|\\*")  ; Generally don't insert, unless we are 
fairly sure
-      (forward-char 1)
-      (insert ","))))
+  (when verilog-auto-inst-first-any
+    (setq verilog-auto-inst-first-any nil)
+    (insert "\n")  ; Must insert before search, so point will move forward if 
insert comma
+    (save-excursion
+      (verilog-re-search-backward-quick "[^ \t\n\f]" nil nil)
+      (when (looking-at ")\\|\\*")  ; Generally don't insert, unless we are 
fairly sure
+        (forward-char 1)
+        (insert ","))))
+  (when verilog-auto-inst-first-section
+    (setq verilog-auto-inst-first-section nil)
+    (verilog-insert-indent section)))
+
+(defun verilog-auto-inst-port-list (section sig-list indent-pt moddecls
+                                            tpl-list tpl-num for-star 
par-values)
+  "For `verilog-auto-inst' print a list of ports using 
`verilog-auto-inst-port'."
+  (when verilog-auto-inst-sort
+    (setq sig-list (sort (copy-alist sig-list) 
#'verilog-signals-sort-compare)))
+  (let ((verilog-auto-inst-first-section t))
+    (mapc (lambda (port)
+            (verilog-auto-inst-port section port indent-pt moddecls
+                                    tpl-list tpl-num for-star par-values))
+          sig-list)))
 
 (defun verilog-auto-star ()
   "Expand SystemVerilog .* pins, as part of \\[verilog-auto].
@@ -11697,6 +11726,10 @@ Templates:
   debugging is completed though, it will result in lots of extra differences
   and merge conflicts.
 
+  If a connection name does not match any template, it is
+  connected to a net by the same name as the port (unless
+  `verilog-auto-inst-template-required' is true).
+
   Setting `verilog-auto-template-warn-unused' will report errors
   if any template lines are unused.
 
@@ -11874,10 +11907,11 @@ For more information see the \\[verilog-faq] and 
forums at URL
                                      (1+ (current-column))))
           (verilog-auto-inst-column (max verilog-auto-inst-column
                                          (+ 16 (* 8 (/ (+ indent-pt 7) 8)))))
+           (verilog-auto-inst-first-any t)
           (modi (verilog-modi-current))
           (moddecls (verilog-modi-get-decls modi))
           submod submodi submoddecls
-          inst skip-pins tpl-list tpl-num did-first par-values)
+           inst skip-pins tpl-list tpl-num par-values)
 
       ;; Find module name that is instantiated
       (setq submod  (verilog-read-inst-module)
@@ -11914,51 +11948,46 @@ For more information see the \\[verilog-faq] and 
forums at URL
              (vl-dir "interfaced"))
          (when (and sig-list
                     verilog-auto-inst-interfaced-ports)
-           (when (not did-first) (verilog-auto-inst-first) (setq did-first t))
             ;; Note these are searched for in verilog-read-sub-decls.
-           (verilog-insert-indent "// Interfaced\n")
-           (verilog-auto-inst-port-list sig-list indent-pt moddecls
+            (verilog-auto-inst-port-list "// Interfaced\n"
+                                         sig-list indent-pt moddecls
                                         tpl-list tpl-num for-star par-values)))
        (let ((sig-list (verilog-signals-not-in
                         (verilog-decls-get-interfaces submoddecls)
                         skip-pins))
              (vl-dir "interface"))
          (when sig-list
-           (when (not did-first) (verilog-auto-inst-first) (setq did-first t))
             ;; Note these are searched for in verilog-read-sub-decls.
-           (verilog-insert-indent "// Interfaces\n")
-           (verilog-auto-inst-port-list sig-list indent-pt moddecls
-                                        tpl-list tpl-num for-star par-values)))
+            (verilog-auto-inst-port-list "// Interfaces\n"
+                                         sig-list indent-pt moddecls
+                                         tpl-list tpl-num for-star 
par-values)))
        (let ((sig-list (verilog-signals-not-in
                         (verilog-decls-get-outputs submoddecls)
                         skip-pins))
              (vl-dir "output"))
          (when sig-list
-           (when (not did-first) (verilog-auto-inst-first) (setq did-first t))
-           (verilog-insert-indent "// Outputs\n")
-           (verilog-auto-inst-port-list sig-list indent-pt moddecls
+            (verilog-auto-inst-port-list "// Outputs\n"
+                                         sig-list indent-pt moddecls
                                         tpl-list tpl-num for-star par-values)))
        (let ((sig-list (verilog-signals-not-in
                         (verilog-decls-get-inouts submoddecls)
                         skip-pins))
              (vl-dir "inout"))
          (when sig-list
-           (when (not did-first) (verilog-auto-inst-first) (setq did-first t))
-           (verilog-insert-indent "// Inouts\n")
-           (verilog-auto-inst-port-list sig-list indent-pt moddecls
+            (verilog-auto-inst-port-list "// Inouts\n"
+                                         sig-list indent-pt moddecls
                                         tpl-list tpl-num for-star par-values)))
        (let ((sig-list (verilog-signals-not-in
                         (verilog-decls-get-inputs submoddecls)
                         skip-pins))
              (vl-dir "input"))
          (when sig-list
-           (when (not did-first) (verilog-auto-inst-first) (setq did-first t))
-           (verilog-insert-indent "// Inputs\n")
-           (verilog-auto-inst-port-list sig-list indent-pt moddecls
+            (verilog-auto-inst-port-list "// Inputs\n"
+                                         sig-list indent-pt moddecls
                                         tpl-list tpl-num for-star par-values)))
        ;; Kill extra semi
        (save-excursion
-         (cond (did-first
+          (cond ((not verilog-auto-inst-first-any)
                 (re-search-backward "," pt t)
                 (delete-char 1)
                 (insert ");")
@@ -12020,10 +12049,11 @@ Templates:
                                      (1+ (current-column))))
           (verilog-auto-inst-column (max verilog-auto-inst-column
                                          (+ 16 (* 8 (/ (+ indent-pt 7) 8)))))
+           (verilog-auto-inst-first-any t)
           (modi (verilog-modi-current))
           (moddecls (verilog-modi-get-decls modi))
           submod submodi submoddecls
-          inst skip-pins tpl-list tpl-num did-first)
+           inst skip-pins tpl-list tpl-num)
       ;; Find module name that is instantiated
       (setq submod (save-excursion
                     ;; Get to the point where AUTOINST normally is to read the 
module
@@ -12060,14 +12090,13 @@ Templates:
           (when regexp
             (setq sig-list (verilog-signals-matching-regexp sig-list regexp)))
          (when sig-list
-           (when (not did-first) (verilog-auto-inst-first) (setq did-first t))
             ;; Note these are searched for in verilog-read-sub-decls.
-           (verilog-insert-indent "// Parameters\n")
-           (verilog-auto-inst-port-list sig-list indent-pt moddecls
+            (verilog-auto-inst-port-list "// Parameters\n"
+                                         sig-list indent-pt moddecls
                                         tpl-list tpl-num nil nil)))
        ;; Kill extra semi
        (save-excursion
-         (cond (did-first
+          (cond ((not verilog-auto-inst-first-any)
                 (re-search-backward "," pt t)
                 (delete-char 1)
                 (insert ")")
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el
index 0677d36..22c6158 100644
--- a/lisp/progmodes/vhdl-mode.el
+++ b/lisp/progmodes/vhdl-mode.el
@@ -13334,7 +13334,7 @@ File statistics: \"%s\"\n\
 (defvar vhdl-font-lock-keywords nil
   "Regular expressions to highlight in VHDL Mode.")
 
-(defvar vhdl-font-lock-keywords-0
+(defvar vhdl-font-lock-keywords-0 nil
   ;; set in `vhdl-font-lock-init' because dependent on user options
   "For consideration as a value of `vhdl-font-lock-keywords'.
 This does highlighting of template prompts and directives (pragmas).")
diff --git a/lisp/repeat.el b/lisp/repeat.el
index db33b08..f275db6 100644
--- a/lisp/repeat.el
+++ b/lisp/repeat.el
@@ -4,7 +4,7 @@
 
 ;; Author: Will Mengarini <address@hidden>
 ;; Created: Mo 02 Mar 98
-;; Version: 0.51
+;; Old-Version: 0.51
 ;; Keywords: convenience, vi, repeat
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/replace.el b/lisp/replace.el
index a0b0506..168ccf2 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -1576,7 +1576,8 @@ See also `multi-occur'."
                                          (and (overlayp boo)
                                               (overlay-buffer boo)))
                                  boo))
-                          bufs))))
+                           bufs)))
+        (source-buffer-default-directory default-directory))
     ;; Handle the case where one of the buffers we're searching is the
     ;; output buffer.  Just rename it.
     (when (member buf-name
@@ -1593,6 +1594,9 @@ See also `multi-occur'."
     (setq occur-buf (get-buffer-create buf-name))
 
     (with-current-buffer occur-buf
+      ;; Make the default-directory of the *Occur* buffer match that of
+      ;; the buffer where the occurences come from
+      (setq default-directory source-buffer-default-directory)
       (if (stringp nlines)
          (fundamental-mode) ;; This is for collect operation.
        (occur-mode))
diff --git a/lisp/ruler-mode.el b/lisp/ruler-mode.el
index f6b49b4..82e6178 100644
--- a/lisp/ruler-mode.el
+++ b/lisp/ruler-mode.el
@@ -4,7 +4,7 @@
 
 ;; Author: David Ponce <address@hidden>
 ;; Created: 24 Mar 2001
-;; Version: 1.6
+;; Old-Version: 1.6
 ;; Keywords: convenience
 
 ;; This file is part of GNU Emacs.
diff --git a/lisp/server.el b/lisp/server.el
index e6d8b17..1861218 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -563,7 +563,7 @@ See variable `server-auth-dir' for details."
                      (format "it is not owned by you (owner = %s (%d))"
                              (user-full-name uid) uid))
                     (w32 nil)           ; on NTFS?
-                    ((let ((modes (file-modes dir)))
+                    ((let ((modes (file-modes dir 'nofollow)))
                        (unless (zerop (logand (or modes 0) #o077))
                          (format "it is accessible by others (%03o)" modes))))
                     (t nil))))
diff --git a/lisp/shell.el b/lisp/shell.el
index ecebf93..1e2679f 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -252,7 +252,7 @@ This mirrors the optional behavior of tcsh."
 (defcustom shell-chdrive-regexp
   (if (memq system-type '(ms-dos windows-nt))
       ; NetWare allows the five chars between upper and lower alphabetics.
-      "[]a-zA-Z^_`\\[\\\\]:"
+      "[]a-zA-Z^_`[\\]:"
     nil)
   "If non-nil, is regexp used to track drive changes."
   :type '(choice regexp
@@ -377,7 +377,7 @@ Thus, this does not include the shell's current directory.")
               "\\|\\$\\(?:\\([[:alpha:]][[:alnum:]]*\\)"
               "\\|{\\(?1:[^{}]+\\)}\\)"
               (when (memq system-type '(ms-dos windows-nt))
-                "\\|%\\(?1:[^\\\\/]*\\)%")
+                "\\|%\\(?1:[^\\/]*\\)%")
               (when comint-file-name-quote-list
                 "\\|\\\\\\(.\\)")))
          (qupos nil)
diff --git a/lisp/simple.el b/lisp/simple.el
index 6a9a9e4..591cb4b 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -75,14 +75,16 @@ value of 1 means that nothing is amalgamated.")
   :version "22.1")
 
 (defcustom next-error-highlight 0.5
-  "Highlighting of locations in selected source buffers.
+  "Highlighting of locations in the selected buffer.
 If a number, highlight the locus in `next-error' face for the given time
 in seconds, or until the next command is executed.
 If t, highlight the locus until the next command is executed, or until
 some other locus replaces it.
 If nil, don't highlight the locus in the source buffer.
 If `fringe-arrow', indicate the locus by the fringe arrow
-indefinitely until some other locus replaces it."
+indefinitely until some other locus replaces it.
+See `next-error-highlight-no-select' to customize highlighting
+of the locus in non-selected buffers."
   :type '(choice (number :tag "Highlight for specified time")
                  (const :tag "Semipermanent highlighting" t)
                  (const :tag "No highlighting" nil)
@@ -91,12 +93,15 @@ indefinitely until some other locus replaces it."
   :version "22.1")
 
 (defcustom next-error-highlight-no-select 0.5
-  "Highlighting of locations in `next-error-no-select'.
+  "Highlighting of locations in non-selected source buffers.
+Usually non-selected buffers are displayed by `next-error-no-select'.
 If number, highlight the locus in `next-error' face for given time in seconds.
 If t, highlight the locus indefinitely until some other locus replaces it.
 If nil, don't highlight the locus in the source buffer.
 If `fringe-arrow', indicate the locus by the fringe arrow
-indefinitely until some other locus replaces it."
+indefinitely until some other locus replaces it.
+See `next-error-highlight' to customize highlighting of the locus
+in the selected buffer."
   :type '(choice (number :tag "Highlight for specified time")
                  (const :tag "Semipermanent highlighting" t)
                  (const :tag "No highlighting" nil)
diff --git a/lisp/speedbar.el b/lisp/speedbar.el
index faa0bcc..e9c15b7 100644
--- a/lisp/speedbar.el
+++ b/lisp/speedbar.el
@@ -7,10 +7,12 @@
 
 (defvar speedbar-version "1.0"
   "The current version of speedbar.")
+(make-obsolete-variable 'speedbar-version nil "28.1")
 (defvar speedbar-incompatible-version "0.14beta4"
   "This version of speedbar is incompatible with this version.
 Due to massive API changes (removing the use of the word PATH)
 this version is not backward compatible to 0.14 or earlier.")
+(make-obsolete-variable 'speedbar-incompatible-version nil "28.1")
 
 ;; This file is part of GNU Emacs.
 
@@ -1077,7 +1079,7 @@ in the selected file.
     (setq font-lock-keywords nil) ;; no font-locking please
     (setq truncate-lines t)
     (make-local-variable 'frame-title-format)
-    (setq frame-title-format (concat "Speedbar " speedbar-version)
+    (setq frame-title-format "Speedbar"
          case-fold-search nil
          buffer-read-only t)
     (speedbar-set-mode-line-format)
diff --git a/lisp/subr.el b/lisp/subr.el
index b5ec0de..70f33ee 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -1558,7 +1558,6 @@ be a list of the form returned by `event-start' and 
`event-end'."
 
 ;;;; Obsolescent names for functions.
 
-(make-obsolete 'forward-point "use (+ (point) N) instead." "23.1")
 (make-obsolete 'buffer-has-markers-at nil "24.3")
 
 (make-obsolete 'invocation-directory "use the variable of the same name."
@@ -1580,6 +1579,11 @@ be a list of the form returned by `event-start' and 
`event-end'."
 (make-obsolete 'string-as-multibyte "use `decode-coding-string'." "26.1")
 (make-obsolete 'string-make-multibyte "use `decode-coding-string'." "26.1")
 
+(defun forward-point (n)
+  "Return buffer position N characters after (before if N negative) point."
+  (declare (obsolete "use (+ (point) N) instead." "23.1"))
+  (+ (point) n))
+
 (defun log10 (x)
   "Return (log X 10), the log base 10 of X."
   (declare (obsolete log "24.4"))
@@ -1621,6 +1625,9 @@ be a list of the form returned by `event-start' and 
`event-end'."
 (defvaralias 'messages-buffer-max-lines 'message-log-max)
 (define-obsolete-variable-alias 'inhibit-null-byte-detection
   'inhibit-nul-byte-detection "27.1")
+(make-obsolete-variable 'load-dangerous-libraries
+                        "no longer used." "27.1")
+
 
 ;;;; Alternate names for functions - these are not being phased out.
 
@@ -1774,6 +1781,21 @@ all symbols are bound before any of the VALUEFORMs are 
evalled."
      ,@(mapcar (lambda (binder) `(setq ,@binder)) binders)
      ,@body))
 
+(defmacro dlet (binders &rest body)
+  "Like `let*' but using dynamic scoping."
+  (declare (indent 1) (debug let))
+  ;; (defvar FOO) only affects the current scope, but in order for
+  ;; this not to affect code after the `let*' we need to create a new scope,
+  ;; which is what the surrounding `let' is for.
+  ;; FIXME: (let () ...) currently doesn't actually create a new scope,
+  ;; which is why we use (let (_) ...).
+  `(let (_)
+     ,@(mapcar (lambda (binder)
+                 `(defvar ,(if (consp binder) (car binder) binder)))
+               binders)
+     (let* ,binders ,@body)))
+
+
 (defmacro with-wrapper-hook (hook args &rest body)
   "Run BODY, using wrapper functions from HOOK with additional ARGS.
 HOOK is an abnormal hook.  Each hook function in HOOK \"wraps\"
@@ -2969,13 +2991,18 @@ This finishes the change group by reverting all of its 
changes."
        ;; the body of `atomic-change-group' all changes can be undone.
        (widen)
        (let ((old-car (car-safe elt))
-             (old-cdr (cdr-safe elt)))
+             (old-cdr (cdr-safe elt))
+             ;; Use `pending-undo-list' temporarily since `undo-more' needs
+             ;; it, but restore it afterwards so as not to mess with an
+             ;; ongoing sequence of `undo's.
+             (pending-undo-list
+              ;; Use `buffer-undo-list' unconditionally (bug#39680).
+              buffer-undo-list))
           (unwind-protect
               (progn
                 ;; Temporarily truncate the undo log at ELT.
                 (when (consp elt)
                   (setcar elt nil) (setcdr elt nil))
-                (unless (eq last-command 'undo) (undo-start))
                 ;; Make sure there's no confusion.
                 (when (and (consp elt) (not (eq elt (last pending-undo-list))))
                   (error "Undoing to some unrelated state"))
@@ -3964,19 +3991,18 @@ the function `undo--wrap-and-run-primitive-undo'."
       (let ((undo--combining-change-calls t))
        (if (not inhibit-modification-hooks)
            (run-hook-with-args 'before-change-functions beg end))
-       (if (eq buffer-undo-list t)
-           (setq result (funcall body))
-         (let (;; (inhibit-modification-hooks t)
-                (before-change-functions
-                 ;; Ugly Hack: if the body uses syntax-ppss/syntax-propertize
-                 ;; (e.g. via a regexp-search or sexp-movement trigerring
-                 ;; on-the-fly syntax-propertize), make sure that this gets
-                 ;; properly refreshed after subsequent changes.
-                 (if (memq #'syntax-ppss-flush-cache before-change-functions)
-                     '(syntax-ppss-flush-cache)))
-                after-change-functions)
-           (setq result (funcall body)))
-         (let ((ap-elt
+       (let (;; (inhibit-modification-hooks t)
+              (before-change-functions
+               ;; Ugly Hack: if the body uses syntax-ppss/syntax-propertize
+               ;; (e.g. via a regexp-search or sexp-movement triggering
+               ;; on-the-fly syntax-propertize), make sure that this gets
+               ;; properly refreshed after subsequent changes.
+               (if (memq #'syntax-ppss-flush-cache before-change-functions)
+                   '(syntax-ppss-flush-cache)))
+              after-change-functions)
+         (setq result (funcall body)))
+        (when (not (eq buffer-undo-list t))
+          (let ((ap-elt
                 (list 'apply
                       (- end end-marker)
                       beg
diff --git a/lisp/svg.el b/lisp/svg.el
index 6a2fc4c..7aadbc2 100644
--- a/lisp/svg.el
+++ b/lisp/svg.el
@@ -70,7 +70,9 @@ any further elements added."
              (height . ,height)
              (version . "1.1")
              (xmlns . "http://www.w3.org/2000/svg";)
-             ,@(svg--arguments nil args))))
+              ,@(unless (plist-get args :xmlns:xlink)
+                  '((xmlns:xlink . "http://www.w3.org/1999/xlink";)))
+              ,@(svg--arguments nil args))))
 
 (defun svg-gradient (svg id type stops)
   "Add a gradient with ID to SVG.
diff --git a/lisp/tab-bar.el b/lisp/tab-bar.el
index 873f54a..30ed1a4 100644
--- a/lisp/tab-bar.el
+++ b/lisp/tab-bar.el
@@ -123,7 +123,8 @@ Possible modifiers are `control', `meta', `shift', `hyper', 
`super' and
                     (assq-delete-all 'tab-bar-lines
                                      default-frame-alist)))))
 
-  (when (and tab-bar-mode (not (get-text-property 0 'display 
tab-bar-new-button)))
+  (when (and tab-bar-mode tab-bar-new-button
+             (not (get-text-property 0 'display tab-bar-new-button)))
     ;; This file is pre-loaded so only here we can use the right 
data-directory:
     (add-text-properties 0 (length tab-bar-new-button)
                          `(display (image :type xpm
@@ -132,7 +133,8 @@ Possible modifiers are `control', `meta', `shift', `hyper', 
`super' and
                                           :ascent center))
                          tab-bar-new-button))
 
-  (when (and tab-bar-mode (not (get-text-property 0 'display 
tab-bar-close-button)))
+  (when (and tab-bar-mode tab-bar-close-button
+             (not (get-text-property 0 'display tab-bar-close-button)))
     ;; This file is pre-loaded so only here we can use the right 
data-directory:
     (add-text-properties 0 (length tab-bar-close-button)
                          `(display (image :type xpm
@@ -263,6 +265,17 @@ before calling the command that adds a new tab."
   :group 'tab-bar
   :version "27.1")
 
+(defcustom tab-bar-new-button-show t
+  "If non-nil, show the \"New tab\" button in the tab bar.
+When this is nil, you can create new tabs with \\[tab-new]."
+  :type 'boolean
+  :initialize 'custom-initialize-default
+  :set (lambda (sym val)
+         (set-default sym val)
+         (force-mode-line-update))
+  :group 'tab-bar
+  :version "27.1")
+
 (defvar tab-bar-new-button " + "
   "Button for creating a new tab.")
 
@@ -306,7 +319,8 @@ This helps to select the tab by its number using 
`tab-bar-select-tab'."
   :group 'tab-bar
   :version "27.1")
 
-(defvar tab-bar-separator nil)
+(defvar tab-bar-separator nil
+  "String that delimits tabs.")
 
 
 (defcustom tab-bar-tab-name-function #'tab-bar-tab-name-current
@@ -464,9 +478,9 @@ Return its existing value or a new value."
                  (interactive)
                  (tab-bar-close-tab ,i)))))))
       tabs)
-     (when tab-bar-new-button
-       `((sep-add-tab menu-item ,separator ignore)
-         (add-tab menu-item ,tab-bar-new-button tab-bar-new-tab
+     `((sep-add-tab menu-item ,separator ignore))
+     (when (and tab-bar-new-button-show tab-bar-new-button)
+       `((add-tab menu-item ,tab-bar-new-button tab-bar-new-tab
                   :help "New tab"))))))
 
 
diff --git a/lisp/tab-line.el b/lisp/tab-line.el
index 8f1221a..eb279de 100644
--- a/lisp/tab-line.el
+++ b/lisp/tab-line.el
@@ -142,11 +142,19 @@
 (defcustom tab-line-new-tab-choice t
   "Defines what to show in a new tab.
 If t, display a selection menu with all available buffers.
-If the value is a function, call it with no arguments.
-If nil, don't show the new tab button."
+If the value is a function, call it with no arguments."
   :type '(choice (const     :tag "Buffer menu" t)
-                 (function  :tag "Function")
-                 (const     :tag "No button" nil))
+                 (function  :tag "Function"))
+  :group 'tab-line
+  :version "27.1")
+
+(defcustom tab-line-new-button-show t
+  "If non-nil, show the \"New tab\" button in the tab line."
+  :type 'boolean
+  :initialize 'custom-initialize-default
+  :set (lambda (sym val)
+         (set-default sym val)
+         (force-mode-line-update))
   :group 'tab-line
   :version "27.1")
 
@@ -211,7 +219,8 @@ If nil, don't show it at all."
               'help-echo "Click to scroll right")
   "Button for scrolling horizontally to the right.")
 
-(defvar tab-line-separator nil)
+(defvar tab-line-separator nil
+  "String that delimits tabs.")
 
 
 (defcustom tab-line-tab-name-function #'tab-line-tab-name-buffer
@@ -446,24 +455,35 @@ variable `tab-line-tabs-function'."
            (setq hscroll nil)
            (set-window-parameter nil 'tab-line-hscroll hscroll))
        (list separator
-             (when (and (integerp hscroll) (not (zerop hscroll)))
+             (when (and (numberp hscroll) (not (zerop hscroll)))
                tab-line-left-button)
-             (when (if (integerp hscroll)
-                       (< (abs hscroll) (1- (length strings)))
+             (when (if (numberp hscroll)
+                       (< (truncate hscroll) (1- (length strings)))
                      (> (length strings) 1))
                tab-line-right-button)))
-     (if hscroll (nthcdr (abs hscroll) strings) strings)
-     (when (eq tab-line-tabs-function #'tab-line-tabs-window-buffers)
-       (list (concat separator (when tab-line-new-tab-choice
-                                 tab-line-new-button)))))))
+     (if hscroll (nthcdr (truncate hscroll) strings) strings)
+     (list separator)
+     (when (and (eq tab-line-tabs-function #'tab-line-tabs-window-buffers)
+                tab-line-new-button-show
+                tab-line-new-button)
+       (list tab-line-new-button)))))
+
+(defvar tab-line-auto-hscroll)
 
 (defun tab-line-format ()
   "Template for displaying tab line for selected window."
   (let* ((tabs (funcall tab-line-tabs-function))
          (cache-key (list tabs
-                          (window-buffer)
+                          (buffer-name (window-buffer))
                           (window-parameter nil 'tab-line-hscroll)))
          (cache (window-parameter nil 'tab-line-cache)))
+    ;; Enable auto-hscroll again after it was disabled on manual scrolling.
+    ;; The moment to enable it is when the window-buffer was updated.
+    (when (and tab-line-auto-hscroll        ; if auto-hscroll was enabled
+               (integerp (nth 2 cache-key)) ; integer on manual scroll
+               cache                        ; window-buffer was updated
+               (not (equal (nth 1 (car cache)) (nth 1 cache-key))))
+      (set-window-parameter nil 'tab-line-hscroll (float (nth 2 cache-key))))
     (or (and cache (equal (car cache) cache-key) (cdr cache))
         (cdr (set-window-parameter
               nil 'tab-line-cache
@@ -478,24 +498,27 @@ the selected tab visible."
   :group 'tab-line
   :version "27.1")
 
+(defvar tab-line-auto-hscroll-buffer (generate-new-buffer " 
*tab-line-hscroll*"))
+
 (defun tab-line-auto-hscroll (strings hscroll)
-  (with-temp-buffer
+  (with-current-buffer tab-line-auto-hscroll-buffer
     (let ((truncate-partial-width-windows nil)
           (inhibit-modification-hooks t)
           show-arrows)
       (setq truncate-lines nil)
+      (erase-buffer)
       (apply 'insert strings)
       (goto-char (point-min))
       (add-face-text-property (point-min) (point-max) 'tab-line)
       ;; Continuation means tab-line doesn't fit completely,
       ;; thus scroll arrows are needed for scrolling.
       (setq show-arrows (> (vertical-motion 1) 0))
-      ;; Try to auto-scroll only when scrolling is needed,
+      ;; Try to auto-hscroll only when scrolling is needed,
       ;; but no manual scrolling was performed before.
       (when (and tab-line-auto-hscroll
                  show-arrows
                  ;; Do nothing when scrolled manually
-                 (not (and (integerp hscroll) (>= hscroll 0))))
+                 (not (integerp hscroll)))
         (let ((selected (seq-position strings 'selected
                                       (lambda (str prop)
                                         (get-pos-property 1 prop str)))))
@@ -503,7 +526,7 @@ the selected tab visible."
            ((null selected)
             ;; Do nothing if no tab is selected
             )
-           ((or (not (integerp hscroll)) (< selected (abs hscroll)))
+           ((or (not (numberp hscroll)) (< selected (truncate hscroll)))
             ;; Selected is scrolled to the left, or no scrolling yet
             (erase-buffer)
             (apply 'insert (reverse (seq-subseq strings 0 (1+ selected))))
@@ -520,14 +543,14 @@ the selected tab visible."
                                                     (lambda (str tab)
                                                       (eq (get-pos-property 1 
'tab str) tab))))))
                   (when new-hscroll
-                    (setq hscroll (- new-hscroll))
+                    (setq hscroll (float new-hscroll))
                     (set-window-parameter nil 'tab-line-hscroll hscroll)))
               (setq hscroll nil)
               (set-window-parameter nil 'tab-line-hscroll hscroll)))
            (t
             ;; Check if the selected tab is already visible
             (erase-buffer)
-            (apply 'insert (seq-subseq strings (abs hscroll) (1+ selected)))
+            (apply 'insert (seq-subseq strings (truncate hscroll) (1+ 
selected)))
             (goto-char (point-min))
             (add-face-text-property (point-min) (point-max) 'tab-line)
             (when (> (vertical-motion 1) 0)
@@ -547,7 +570,7 @@ the selected tab visible."
                                                     (lambda (str tab)
                                                       (eq (get-pos-property 1 
'tab str) tab))))))
                   (when new-hscroll
-                    (setq hscroll (- new-hscroll))
+                    (setq hscroll (float new-hscroll))
                     (set-window-parameter nil 'tab-line-hscroll 
hscroll)))))))))
       (list show-arrows hscroll))))
 
@@ -559,7 +582,7 @@ the selected tab visible."
                  (funcall tab-line-tabs-function))))
     (set-window-parameter
      window 'tab-line-hscroll
-     (max 0 (min (+ (if (integerp hscroll) (abs hscroll) 0) (or arg 1))
+     (max 0 (min (+ (if (numberp hscroll) (truncate hscroll) 0) (or arg 1))
                  (1- (length tabs)))))
     (when window
       (force-mode-line-update t))))
diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el
index 97d883e..a3c1715 100644
--- a/lisp/tar-mode.el
+++ b/lisp/tar-mode.el
@@ -1056,7 +1056,7 @@ extracted file."
        (write-region start end to-file nil nil nil t))
       (when (and tar-copy-preserve-time
                  date)
-        (set-file-times to-file date)))
+       (set-file-times to-file date 'nofollow)))
     (message "Copied tar entry %s to %s" name to-file)))
 
 (defun tar-new-entry (filename &optional index)
diff --git a/lisp/tempo.el b/lisp/tempo.el
index 9de5ac6..bc398e7 100644
--- a/lisp/tempo.el
+++ b/lisp/tempo.el
@@ -220,7 +220,9 @@ list of elements in the template, TAG is the tag used for 
completion,
 DOCUMENTATION is the documentation string for the insertion command
 created, and TAGLIST (a symbol) is the tag list that TAG (if provided)
 should be added to.  If TAGLIST is nil and TAG is non-nil, TAG is
-added to `tempo-tags'.
+added to `tempo-tags'.  If TAG already corresponds to a template in
+the tag list, modify the list so that TAG now corresponds to the newly
+defined template.
 
 The elements in ELEMENTS can be of several types:
 
@@ -579,14 +581,20 @@ and insert the results."
 (defun tempo-add-tag (tag template &optional tag-list)
   "Add a template tag.
 Add the TAG, that should complete to TEMPLATE to the list in TAG-LIST,
-or to `tempo-tags' if TAG-LIST is nil."
+or to `tempo-tags' if TAG-LIST is nil.  If TAG was already in the list,
+replace its template with TEMPLATE."
 
   (interactive "sTag: \nCTemplate: ")
   (if (null tag-list)
       (setq tag-list 'tempo-tags))
-  (if (not (assoc tag (symbol-value tag-list)))
-      (set tag-list (cons (cons tag template) (symbol-value tag-list))))
-  (tempo-invalidate-collection))
+  (let ((entry (assoc tag (symbol-value tag-list))))
+    (if entry
+        ;; Tag is already in the list, assign a new template to it.
+        (setcdr entry template)
+      ;; Tag is not present in the list, add it with its template.
+      (set tag-list (cons (cons tag template) (symbol-value tag-list)))))
+  ;; Invalidate globally if we're modifying 'tempo-tags'.
+  (tempo-invalidate-collection (eq tag-list 'tempo-tags)))
 
 ;;;
 ;;; tempo-use-tag-list
@@ -609,10 +617,17 @@ COMPLETION-FUNCTION just sets `tempo-match-finder' 
locally."
 ;;;
 ;;; tempo-invalidate-collection
 
-(defun tempo-invalidate-collection ()
+(defun tempo-invalidate-collection (&optional global)
   "Marks the tag collection as obsolete.
-Whenever it is needed again it will be rebuilt."
-  (setq tempo-dirty-collection t))
+Whenever it is needed again it will be rebuilt.  If GLOBAL is non-nil,
+mark the tag collection of all buffers as obsolete, not just the
+current one."
+  (if global
+      (dolist (buffer (buffer-list))
+        (with-current-buffer buffer
+          (when (assq 'tempo-dirty-collection (buffer-local-variables))
+            (setq tempo-dirty-collection t))))
+    (setq tempo-dirty-collection t)))
 
 ;;;
 ;;; tempo-build-collection
diff --git a/lisp/term.el b/lisp/term.el
index 09dfeb6..b990c83 100644
--- a/lisp/term.el
+++ b/lisp/term.el
@@ -2796,12 +2796,12 @@ See `term-prompt-regexp'."
    "\\(?:[\r\n\000\007\t\b\016\017]\\|"
    ;; some Emacs specific control sequences, implemented by
    ;; `term-command-hook',
-   "\032[^\n]+\r?\n\\|"
+   "\032[^\n]+\n\\|"
    ;; a C1 escape coded character (see [ECMA-48] section 5.3 "Elements
    ;; of the C1 set"),
    "\e\\(?:[DM78c]\\|"
    ;; another Emacs specific control sequence,
-   "AnSiT[^\n]+\r?\n\\|"
+   "AnSiT[^\n]+\n\\|"
    ;; or an escape sequence (section 5.4 "Control Sequences"),
    "\\[\\([\x30-\x3F]*\\)[\x20-\x2F]*[\x40-\x7E]\\)\\)")
   "Regexp matching control sequences handled by term.el.")
diff --git a/lisp/term/rxvt.el b/lisp/term/rxvt.el
index ca6c468..31e3d6e 100644
--- a/lisp/term/rxvt.el
+++ b/lisp/term/rxvt.el
@@ -26,6 +26,16 @@
 
 (require 'term/xterm)
 
+(defgroup rxvt nil
+  "(U)RXVT support."
+  :version "28.1"
+  :group 'terminals)
+
+(defcustom rxvt-set-window-title nil
+  "Whether Emacs should set window titles to an Emacs frame in RXVT."
+  :version "28.1"
+  :type 'boolean)
+
 (defvar rxvt-function-map
   (let ((map (make-sparse-keymap)))
     (set-keymap-parent map xterm-rxvt-function-map)
@@ -171,7 +181,16 @@
   (xterm-register-default-colors rxvt-standard-colors)
   (rxvt-set-background-mode)
   ;; This recomputes all the default faces given the colors we've just set up.
-  (tty-set-up-initial-frame-faces))
+  (tty-set-up-initial-frame-faces)
+
+  ;; Unconditionally enable bracketed paste mode: terminals that don't
+  ;; support it just ignore the sequence.
+  (xterm--init-bracketed-paste-mode)
+
+  (when rxvt-set-window-title
+    (xterm--init-frame-title))
+
+  (run-hooks 'terminal-init-rxvt-hook))
 
 ;; rxvt puts the default colors into an environment variable
 ;; COLORFGBG.  We use this to set the background mode in a more
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el
index a7be57e..670e763 100644
--- a/lisp/textmodes/bibtex.el
+++ b/lisp/textmodes/bibtex.el
@@ -1006,32 +1006,36 @@ See `bibtex-generate-autokey' for details."
   :type 'boolean)
 
 (defvar bibtex-autokey-transcriptions
-  '(;; language specific characters
-    ("\\\\aa" . "a")                      ; \aa           -> a
-    ("\\\\AA" . "A")                      ; \AA           -> A
-    ("\\\"a\\|\\\\\\\"a\\|\\\\ae" . "ae") ; "a,\"a,\ae    -> ae
-    ("\\\"A\\|\\\\\\\"A\\|\\\\AE" . "Ae") ; "A,\"A,\AE    -> Ae
-    ("\\\\i" . "i")                       ; \i            -> i
-    ("\\\\j" . "j")                       ; \j            -> j
-    ("\\\\l" . "l")                       ; \l            -> l
-    ("\\\\L" . "L")                       ; \L            -> L
-    ("\\\"o\\|\\\\\\\"o\\|\\\\o\\|\\\\oe" . "oe") ; "o,\"o,\o,\oe -> oe
-    ("\\\"O\\|\\\\\\\"O\\|\\\\O\\|\\\\OE" . "Oe") ; "O,\"O,\O,\OE -> Oe
-    ("\\\"s\\|\\\\\\\"s\\|\\\\3" . "ss")  ; "s,\"s,\3     -> ss
-    ("\\\"u\\|\\\\\\\"u" . "ue")          ; "u,\"u        -> ue
-    ("\\\"U\\|\\\\\\\"U" . "Ue")          ; "U,\"U        -> Ue
-    ;; accents
-    
("\\\\`\\|\\\\'\\|\\\\\\^\\|\\\\~\\|\\\\=\\|\\\\\\.\\|\\\\u\\|\\\\v\\|\\\\H\\|\\\\t\\|\\\\c\\|\\\\d\\|\\\\b"
 . "")
-    ;; braces, quotes, concatenation.
-    ("[`'\"{}#]" . "")
-    ("\\\\-" . "")                        ; \-            ->
-    ;; spaces
-    ("\\\\?[ \t\n]+\\|~" . " "))
+  (nconc
+   (mapcar (lambda (a) (cons (regexp-opt (car a)) (cdr a)))
+           '(;; language specific characters
+             (("\\aa") . "a")                      ; \aa           -> a
+             (("\\AA") . "A")                      ; \AA           -> A
+             (("\"a" "\\\"a" "\\ae") . "ae")       ; "a,\"a,\ae    -> ae
+             (("\"A" "\\\"A" "\\AE") . "Ae")       ; "A,\"A,\AE    -> Ae
+             (("\\i") . "i")                       ; \i            -> i
+             (("\\j") . "j")                       ; \j            -> j
+             (("\\l") . "l")                       ; \l            -> l
+             (("\\L") . "L")                       ; \L            -> L
+             (("\"o" "\\\"o" "\\o" "\\oe") . "oe") ; "o,\"o,\o,\oe -> oe
+             (("\"O" "\\\"O" "\\O" "\\OE") . "Oe") ; "O,\"O,\O,\OE -> Oe
+             (("\"s" "\\\"s" "\\3") . "ss")        ; "s,\"s,\3     -> ss
+             (("\"u" "\\\"u") . "ue")              ; "u,\"u        -> ue
+             (("\"U" "\\\"U") . "Ue")              ; "U,\"U        -> Ue
+             ;; hyphen, accents
+             (("\\-" "\\`" "\\'" "\\^" "\\~" "\\=" "\\." "\\u" "\\v"
+               "\\H" "\\t" "\\c" "\\d" "\\b") . "")
+             ;; space
+             (("~") . " ")))
+   ;; more spaces
+   '(("[\s\t\n]*\\(?:\\\\\\)?[\s\t\n]+" . " ")
+     ;; braces, quotes, concatenation.
+     ("[`'\"{}#]" . "")))
   "Alist of (OLD-REGEXP . NEW-STRING) pairs.
-Used by the default values of `bibtex-autokey-name-change-strings' and
+Used as default values of `bibtex-autokey-name-change-strings' and
 `bibtex-autokey-titleword-change-strings'.  Defaults to translating some
 language specific characters to their ASCII transcriptions, and
-removing any character accents.")
+removing any accent characters.")
 
 (defcustom bibtex-autokey-name-change-strings
   bibtex-autokey-transcriptions
diff --git a/lisp/textmodes/conf-mode.el b/lisp/textmodes/conf-mode.el
index 86db698..722fc0a 100644
--- a/lisp/textmodes/conf-mode.el
+++ b/lisp/textmodes/conf-mode.el
@@ -44,28 +44,23 @@
   "Align assignments to this column by default with \\[conf-align-assignments].
 If this number is negative, the `=' comes before the whitespace.  Use 0 to
 not align (only setting space according to `conf-assignment-space')."
-  :type 'integer
-  :group 'conf)
+  :type 'integer)
 
 (defcustom conf-javaprop-assignment-column 32
   "Value for `conf-assignment-column' in Java properties buffers."
-  :type 'integer
-  :group 'conf)
+  :type 'integer)
 
 (defcustom conf-colon-assignment-column (- (abs conf-assignment-column))
   "Value for `conf-assignment-column' in Java properties buffers."
-  :type 'integer
-  :group 'conf)
+  :type 'integer)
 
 (defcustom conf-assignment-space t
   "Put at least one space around assignments when aligning."
-  :type 'boolean
-  :group 'conf)
+  :type 'boolean)
 
 (defcustom conf-colon-assignment-space nil
   "Value for `conf-assignment-space' in colon style Conf mode buffers."
-  :type 'boolean
-  :group 'conf)
+  :type 'boolean)
 
 (defvar conf-mode-map
   (let ((map (make-sparse-keymap))
@@ -349,9 +344,37 @@ unbalanced, but hey...)"
       (scan-error depth))))
 
 
+(defun conf--guess-mode ()
+  "Try to guess sub-mode of `conf-mode' based on buffer content."
+  (let ((unix 0) (win 0) (equal 0) (colon 0) (space 0) (jp 0))
+    (save-excursion
+      (goto-char (point-min))
+      (while (not (eobp))
+       (skip-chars-forward " \t\f")
+       (cond ((eq (char-after) ?\#) (setq unix (1+ unix)))
+             ((eq (char-after) ?\;) (setq win (1+ win)))
+             ((eq (char-after) ?\[))    ; nop
+             ((eolp))                   ; nop
+             ((eq (char-after) ?}))     ; nop
+             ;; recognize at most double spaces within names
+             ((looking-at "[^ \t\n=:]+\\(?:  ?[^ \t\n=:]+\\)*[ \t]*[=:]")
+              (if (eq (char-before (match-end 0)) ?=)
+                  (setq equal (1+ equal))
+                (setq colon (1+ colon))))
+             ((looking-at "/[/*]") (setq jp (1+ jp)))
+             ((looking-at ".*{"))      ; nop
+             ((setq space (1+ space))))
+       (forward-line)))
+    (cond
+     ((> jp (max unix win 3)) #'conf-javaprop-mode)
+     ((> colon (max equal space)) #'conf-colon-mode)
+     ((> space (max equal colon)) #'conf-space-mode)
+     ((or (> win unix) (and (= win unix) (eq system-type 'windows-nt)))
+      #'conf-windows-mode)
+     (t #'conf-unix-mode))))
 
 ;;;###autoload
-(defun conf-mode ()
+(define-derived-mode conf-mode nil "Conf[?]"
   "Mode for Unix and Windows Conf files and Java properties.
 Most conf files know only three kinds of constructs: parameter
 assignments optionally grouped into sections and comments.  Yet
@@ -382,75 +405,41 @@ See also `conf-space-mode', `conf-colon-mode', 
`conf-javaprop-mode',
 
 \\{conf-mode-map}"
 
-  (interactive)
-  ;; `conf-mode' plays two roles: it's the parent of several sub-modes
-  ;; but it's also the function that chooses between those submodes.
-  ;; To tell the difference between those two cases where the function
-  ;; might be called, we check `delay-mode-hooks'.
-  ;; (adopted from tex-mode.el)
-  (if (not delay-mode-hooks)
-      ;; try to guess sub-mode of conf-mode based on buffer content
-      (let ((unix 0) (win 0) (equal 0) (colon 0) (space 0) (jp 0))
-       (save-excursion
-         (goto-char (point-min))
-         (while (not (eobp))
-           (skip-chars-forward " \t\f")
-           (cond ((eq (char-after) ?\#) (setq unix (1+ unix)))
-                 ((eq (char-after) ?\;) (setq win (1+ win)))
-                 ((eq (char-after) ?\[))       ; nop
-                 ((eolp))                      ; nop
-                 ((eq (char-after) ?}))        ; nop
-                 ;; recognize at most double spaces within names
-                 ((looking-at "[^ \t\n=:]+\\(?:  ?[^ \t\n=:]+\\)*[ \t]*[=:]")
-                  (if (eq (char-before (match-end 0)) ?=)
-                      (setq equal (1+ equal))
-                    (setq colon (1+ colon))))
-                 ((looking-at "/[/*]") (setq jp (1+ jp)))
-                 ((looking-at ".*{"))          ; nop
-                 ((setq space (1+ space))))
-           (forward-line)))
-       (cond
-         ((> jp (max unix win 3)) (conf-javaprop-mode))
-         ((> colon (max equal space)) (conf-colon-mode))
-         ((> space (max equal colon)) (conf-space-mode))
-         ((or (> win unix) (and (= win unix) (eq system-type 'windows-nt)))
-          (conf-windows-mode))
-         (t (conf-unix-mode))))
-
-    (kill-all-local-variables)
-    (use-local-map conf-mode-map)
-    (setq major-mode 'conf-mode
-         mode-name "Conf[?]")
-    (set (make-local-variable 'font-lock-defaults)
-         '(conf-font-lock-keywords nil t nil nil))
-    ;; Let newcomment.el decide this for itself.
-    ;; (set (make-local-variable 'comment-use-syntax) t)
-    (set (make-local-variable 'parse-sexp-ignore-comments) t)
-    (set (make-local-variable 'outline-regexp)
-        "[ \t]*\\(?:\\[\\|.+[ \t\n]*{\\)")
-    (set (make-local-variable 'outline-heading-end-regexp)
-        "[\n}]")
-    (set (make-local-variable 'outline-level)
-        'conf-outline-level)
-    (set-syntax-table conf-mode-syntax-table)
-    (setq imenu-generic-expression
-         '(("Parameters" "^[ \t]*\\(.+?\\)[ \t]*=" 1)
-           ;; [section]
-           (nil "^[ \t]*\\[[ \t]*\\(.+\\)[ \t]*\\]" 1)
-           ;; section { ... }
-           (nil "^[ \t]*\\([^=:{} \t\n][^=:{}\n]+\\)[ \t\n]*{" 1)))
-    (run-mode-hooks 'conf-mode-hook)))
+  (setq-local font-lock-defaults '(conf-font-lock-keywords nil t nil nil))
+  ;; Let newcomment.el decide this for itself.
+  ;; (setq-local comment-use-syntax t)
+  (setq-local parse-sexp-ignore-comments t)
+  (setq-local outline-regexp "[ \t]*\\(?:\\[\\|.+[ \t\n]*{\\)")
+  (setq-local outline-heading-end-regexp "[\n}]")
+  (setq-local outline-level #'conf-outline-level)
+  (setq-local imenu-generic-expression
+             '(("Parameters" "^[ \t]*\\(.+?\\)[ \t]*=" 1)
+               ;; [section]
+               (nil "^[ \t]*\\[[ \t]*\\(.+\\)[ \t]*\\]" 1)
+               ;; section { ... }
+               (nil "^[ \t]*\\([^=:{} \t\n][^=:{}\n]+\\)[ \t\n]*{" 1))))
+
+;; `conf-mode' plays two roles: it's the parent of several sub-modes
+;; but it's also the function that chooses between those submodes.
+;; To tell the difference between those two cases where the function
+;; might be called, we check `delay-mode-hooks'.
+;; (inspired from tex-mode.el)
+(advice-add 'conf-mode :around
+            (lambda (orig-fun)
+              "Redirect to one of the submodes when called directly."
+              (funcall (if delay-mode-hooks orig-fun (conf--guess-mode)))))
+
+
 
 (defun conf-mode-initialize (comment &optional font-lock)
   "Initializations for sub-modes of `conf-mode'.
 COMMENT initializes `comment-start' and `comment-start-skip'.
 The optional arg FONT-LOCK is the value for FONT-LOCK-KEYWORDS."
-  (set (make-local-variable 'comment-start) comment)
-  (set (make-local-variable 'comment-start-skip)
-       (concat (regexp-quote comment-start) "+\\s *"))
+  (setq-local comment-start comment)
+  (setq-local comment-start-skip
+              (concat (regexp-quote comment-start) "+\\s *"))
   (if font-lock
-      (set (make-local-variable 'font-lock-defaults)
-           `(,font-lock nil t nil nil))))
+      (setq-local font-lock-defaults `(,font-lock nil t nil nil))))
 
 ;;;###autoload
 (define-derived-mode conf-unix-mode conf-mode "Conf[Unix]"
@@ -497,13 +486,11 @@ x.1 =
 x.2.y.1.z.1 =
 x.2.y.1.z.2.zz ="
   (conf-mode-initialize "#" 'conf-javaprop-font-lock-keywords)
-  (set (make-local-variable 'conf-assignment-column)
-       conf-javaprop-assignment-column)
-  (set (make-local-variable 'conf-assignment-regexp)
-       ".+?\\([ \t]*[=: \t][ \t]*\\|$\\)")
-  (setq comment-start-skip "\\(?:#+\\|/[/*]+\\)\\s *")
-  (setq imenu-generic-expression
-       '(("Parameters" "^[ \t]*\\(.+?\\)[=: \t]" 1))))
+  (setq-local conf-assignment-column conf-javaprop-assignment-column)
+  (setq-local conf-assignment-regexp ".+?\\([ \t]*[=: \t][ \t]*\\|$\\)")
+  (setq-local comment-start-skip "\\(?:#+\\|/[/*]+\\)\\s *")
+  (setq-local imenu-generic-expression
+             '(("Parameters" "^[ \t]*\\(.+?\\)[=: \t]" 1))))
 
 ;;;###autoload
 (define-derived-mode conf-space-mode conf-unix-mode "Conf[Space]"
@@ -529,20 +516,18 @@ class desktop
 add /dev/audio         desktop
 add /dev/mixer         desktop"
   (conf-mode-initialize "#" 'conf-space-font-lock-keywords)
-  (make-local-variable 'conf-assignment-sign)
-  (setq conf-assignment-sign nil)
-  (make-local-variable 'conf-space-keywords)
+  (setq-local conf-assignment-sign nil)
   (cond (buffer-file-name
         ;; We set conf-space-keywords directly, but a value which is
         ;; in the local variables list or interactively specified
         ;; (see the function conf-space-keywords) takes precedence.
-         (setq conf-space-keywords
-              (assoc-default buffer-file-name conf-space-keywords-alist
-                             'string-match))))
+         (setq-local conf-space-keywords
+                    (assoc-default buffer-file-name conf-space-keywords-alist
+                                   #'string-match))))
   (conf-space-mode-internal)
   ;; In case the local variables list specifies conf-space-keywords,
   ;; recompute other things from that afterward.
-  (add-hook 'hack-local-variables-hook 'conf-space-mode-internal nil t))
+  (add-hook 'hack-local-variables-hook #'conf-space-mode-internal nil t))
 
 ;;;###autoload
 (defun conf-space-keywords (keywords)
@@ -553,16 +538,16 @@ See `conf-space-mode'."
     (conf-space-mode))
   (if (string-equal keywords "")
       (setq keywords nil))
-  (setq conf-space-keywords keywords)
+  (setq-local conf-space-keywords keywords)
   (conf-space-mode-internal)
   (run-mode-hooks))
 
 (defun conf-space-mode-internal ()
-  (make-local-variable 'conf-assignment-regexp)
-  (setq conf-assignment-regexp
-       (if conf-space-keywords
-           (concat "\\(?:" conf-space-keywords "\\)[ \t]+.+?\\([ \t]+\\|$\\)")
-         ".+?\\([ \t]+\\|$\\)"))
+  (setq-local conf-assignment-regexp
+             (if conf-space-keywords
+                 (concat "\\(?:" conf-space-keywords
+                         "\\)[ \t]+.+?\\([ \t]+\\|$\\)")
+               ".+?\\([ \t]+\\|$\\)"))
   ;; If Font Lock is already enabled, reenable it with new
   ;; conf-assignment-regexp.
   (when (and font-lock-mode
@@ -596,17 +581,13 @@ For details see `conf-mode'.  Example:
 <Multi_key> <exclam> <exclam>          : \"\\241\"     exclamdown
 <Multi_key> <c> <slash>                        : \"\\242\"     cent"
   (conf-mode-initialize "#" 'conf-colon-font-lock-keywords)
-  (set (make-local-variable 'conf-assignment-space)
-       conf-colon-assignment-space)
-  (set (make-local-variable 'conf-assignment-column)
-       conf-colon-assignment-column)
-  (set (make-local-variable 'conf-assignment-sign)
-       ?:)
-  (set (make-local-variable 'conf-assignment-regexp)
-       ".+?\\([ \t]*:[ \t]*\\)")
-  (setq imenu-generic-expression
-       `(("Parameters" "^[ \t]*\\(.+?\\)[ \t]*:" 1)
-         ,@(cdr imenu-generic-expression))))
+  (setq-local conf-assignment-space conf-colon-assignment-space)
+  (setq-local conf-assignment-column conf-colon-assignment-column)
+  (setq-local conf-assignment-sign ?:)
+  (setq-local conf-assignment-regexp ".+?\\([ \t]*:[ \t]*\\)")
+  (setq-local imenu-generic-expression
+             `(("Parameters" "^[ \t]*\\(.+?\\)[ \t]*:" 1)
+               ,@(cdr imenu-generic-expression))))
 
 ;;;###autoload
 (define-derived-mode conf-ppd-mode conf-colon-mode "Conf[PPD]"
diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el
index 0bc922e..15b13af 100644
--- a/lisp/textmodes/fill.el
+++ b/lisp/textmodes/fill.el
@@ -365,7 +365,8 @@ which is an error according to some typographical 
conventions."
 (defcustom fill-nobreak-predicate nil
   "List of predicates for recognizing places not to break a line.
 The predicates are called with no arguments, with point at the place to
-be tested.  If it returns t, fill commands do not break the line there."
+be tested.  If it returns a non-nil value, fill commands do not break
+the line there."
   :group 'fill
   :type 'hook
   :options '(fill-french-nobreak-p fill-single-word-nobreak-p
diff --git a/lisp/textmodes/nroff-mode.el b/lisp/textmodes/nroff-mode.el
index 62e8b1f..bb2582c 100644
--- a/lisp/textmodes/nroff-mode.el
+++ b/lisp/textmodes/nroff-mode.el
@@ -50,7 +50,6 @@
   (let ((map (make-sparse-keymap))
        (menu-map (make-sparse-keymap)))
     (define-key map "\t"  'tab-to-tab-stop)
-    (define-key map "\es" 'center-line)
     (define-key map "\e?" 'nroff-count-text-lines)
     (define-key map "\n"  'nroff-electric-newline)
     (define-key map "\en" 'nroff-forward-text-line)
diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el
index 50dd6cd..c9fd19d 100644
--- a/lisp/textmodes/reftex-vars.el
+++ b/lisp/textmodes/reftex-vars.el
@@ -925,7 +925,7 @@ DOWNCASE    t:   Downcase words before using them."
         "\\<label[[:space:]]*=[[:space:]]*"
         ;; Match the label value; braces around the value are
         ;; optional.
-        "{?\\(?1:[^] ,}\r\n\t%]+\\)}?"
+        "{?\\(?1:[^] ,}\r\n\t%]+\\)"
         ;; We are done.  Just search until the next closing bracket
         "[^]]*\\]"))
     "List of regexps matching \\label definitions.
diff --git a/lisp/textmodes/remember.el b/lisp/textmodes/remember.el
index 836dfb4..279dbb4 100644
--- a/lisp/textmodes/remember.el
+++ b/lisp/textmodes/remember.el
@@ -5,7 +5,7 @@
 ;; Author: John Wiegley <address@hidden>
 ;; Maintainer: address@hidden
 ;; Created: 29 Mar 1999
-;; Version: 2.0
+;; Old-Version: 2.0
 ;; Keywords: data memory todo pim
 ;; URL: http://gna.org/projects/remember-el/
 
@@ -181,6 +181,7 @@
 
 (defconst remember-version "2.0"
   "This version of remember.")
+(make-obsolete-variable 'remember-version nil "28.1")
 
 (defgroup remember nil
   "A mode to remember information."
diff --git a/lisp/textmodes/table.el b/lisp/textmodes/table.el
index 7f87ee3..33f181b 100644
--- a/lisp/textmodes/table.el
+++ b/lisp/textmodes/table.el
@@ -2914,16 +2914,17 @@ WHERE is provided the cell and table at that location 
is reported."
 (defun table-generate-source (language &optional dest-buffer caption)
   "Generate source of the current table in the specified language.
 LANGUAGE is a symbol that specifies the language to describe the
-structure of the table.  It must be either `html', `latex' or `cals'.
-The resulted source text is inserted into DEST-BUFFER and the buffer
-object is returned.  When DEST-BUFFER is omitted or nil the default
-buffer specified in `table-dest-buffer-name' is used.  In this case
-the content of the default buffer is erased prior to the generation.
-When DEST-BUFFER is non-nil it is expected to be either a destination
-buffer or a name of the destination buffer.  In this case the
-generated result is inserted at the current point in the destination
-buffer and the previously existing contents in the buffer are
-untouched.
+structure of the table.  It must be either `html', `latex', `cals',
+`wiki', or `mediawiki'.
+The function inserts the resulting source text into DEST-BUFFER, and
+returns the buffer object.  When DEST-BUFFER is omitted or nil, the
+function uses the default buffer specified in `table-dest-buffer-name'.
+In this case, the function erases the default buffer prior to the
+source generation.
+When DEST-BUFFER is non-nil, it should be either a destination
+buffer or a name of the destination buffer.  In that case, the
+function inserts the generated result at point in the destination
+buffer, and leaves the previous contents of the buffer untouched.
 
 References used for this implementation:
 
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index 0e28756..f95979e 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -465,7 +465,7 @@ An alternative value is \" . \", if you use a font with a 
narrow period."
 ;    ("{\\\\bf\\([^}]+\\)}" 1 'bold keep)
 ;    ("{\\\\\\(em\\|it\\|sl\\)\\([^}]+\\)}" 2 'italic keep)
 ;    ("\\\\\\([a-zA-Z@]+\\|.\\)" . font-lock-keyword-face)
-;    ("^[ \t\n]*\\\\def[\\\\@]\\(\\w+\\)" 1 font-lock-function-name-face keep))
+;    ("^[ \t\n]*\\\\def[\\@]\\(\\w+\\)" 1 font-lock-function-name-face keep))
 ;  ;; Rewritten and extended for LaTeX2e by Ulrik Dickow <address@hidden>.
 ;  '(("\\\\\\(begin\\|end\\|newcommand\\){\\([a-zA-Z0-9\\*]+\\)}"
 ;     2 font-lock-function-name-face)
@@ -1252,10 +1252,10 @@ Entering SliTeX mode runs the hook `text-mode-hook', 
then the hook
                  ("\\\\[a-zA-Z]+\\( +\\|{}\\)[a-zA-Z]*" . "")
                  ("%" . "$"))))
   ;; A line containing just $$ is treated as a paragraph separator.
-  (setq-local paragraph-start "[ \t]*$\\|[\f\\\\%]\\|[ \t]*\\$\\$")
+  (setq-local paragraph-start "[ \t]*$\\|[\f\\%]\\|[ \t]*\\$\\$")
   ;; A line starting with $$ starts a paragraph,
   ;; but does not separate paragraphs if it has more stuff on it.
-  (setq-local paragraph-separate "[ \t]*$\\|[\f\\\\%]\\|[ \t]*\\$\\$[ \t]*$")
+  (setq-local paragraph-separate "[ \t]*$\\|[\f\\%]\\|[ \t]*\\$\\$[ \t]*$")
   (setq-local add-log-current-defun-function #'tex-current-defun-name)
   (setq-local comment-start "%")
   (setq-local comment-add 1)
diff --git a/lisp/url/url-about.el b/lisp/url/url-about.el
index fd83ac3..59c233b 100644
--- a/lisp/url/url-about.el
+++ b/lisp/url/url-about.el
@@ -51,7 +51,7 @@
          "  <title>Supported Protocols</title>\n"
          " </head>\n"
          " <body>\n"
-         "  <h1>Supported Protocols - URL v" url-version "</h1>\n"
+          "  <h1>Supported Protocols - URL package in Emacs " emacs-version 
"</h1>\n"
          "  <table width='100%' border='1'>\n"
          "   <tr>\n"
          "    <td>Protocol\n"
diff --git a/lisp/url/url-expand.el b/lisp/url/url-expand.el
index 47964b0..f34ef81 100644
--- a/lisp/url/url-expand.el
+++ b/lisp/url/url-expand.el
@@ -92,12 +92,19 @@ path components followed by `..' are removed, along with 
the `..' itself."
   (cond
    ((= (length url) 0)                 ; nil or empty string
     (url-recreate-url default))
-   ((string-match url-nonrelative-link url) ; Fully-qualified URL, return it 
immediately
+   ((string-match url-nonrelative-link url) ; Fully-qualified URL,
+                                            ; return it immediately
     url)
    (t
     (let* ((urlobj (url-generic-parse-url url))
           (inhibit-file-name-handlers t)
-          (expander (url-scheme-get-property (url-type default) 
'expand-file-name)))
+          (expander (if (url-type default)
+                         (url-scheme-get-property (url-type default)
+                                                  'expand-file-name)
+                       ;; If neither the default nor the URL to be
+                       ;; expanded have a protocol, then just use the
+                       ;; identity expander as a fallback.
+                       'url-identity-expander)))
       (if (string-match "^//" url)
          (setq urlobj (url-generic-parse-url (concat (url-type default) ":"
                                                      url))))
diff --git a/lisp/url/url-gw.el b/lisp/url/url-gw.el
index bcb6743..f16fc23 100644
--- a/lisp/url/url-gw.el
+++ b/lisp/url/url-gw.el
@@ -191,7 +191,7 @@ linked Emacs under SunOS 4.x."
         proc (concat (mapconcat 'identity
                                 (append url-gateway-telnet-parameters
                                         (list host service)) " ") "\n"))
-       (url-wait-for-string "^\r*Escape character.*\r*\n+" proc)
+       (url-wait-for-string "^\r*Escape character.*\n+" proc)
        (delete-region (point-min) (match-end 0))
        (process-send-string proc "\^]\n")
        (url-wait-for-string "^telnet" proc)
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el
index 55953c8..669c245 100644
--- a/lisp/url/url-http.el
+++ b/lisp/url/url-http.el
@@ -225,7 +225,7 @@ request.")
         (os-info (unless (and (listp url-privacy-level)
                               (memq 'os url-privacy-level))
                    (format "(%s; %s)" url-system-type url-os-type)))
-        (url-info (format "URL/%s" url-version)))
+        (url-info (format "URL/Emacs")))
     (string-join (delq nil (list package-info url-info
                                  emacs-info os-info))
                  " ")))
diff --git a/lisp/url/url-news.el b/lisp/url/url-news.el
index d47eb02..9ef17cc 100644
--- a/lisp/url/url-news.el
+++ b/lisp/url/url-news.el
@@ -75,7 +75,7 @@
                "  </div>\n"
                " </body>\n"
                "</html>\n"
-               "<!-- Automatically generated by URL v" url-version " -->\n"
+                "<!-- Automatically generated by URL in Emacs " emacs-version 
" -->\n"
                )))
     buf))
 
diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el
index 645011a..6dd7a9c 100644
--- a/lisp/url/url-util.el
+++ b/lisp/url/url-util.el
@@ -615,9 +615,7 @@ Creates FILE and its parent directories if they do not 
exist."
         (with-temp-buffer
           (write-region (point-min) (point-max) file nil 'silent nil 'excl)))
     (file-already-exists
-     (if (file-symlink-p file)
-         (error "Danger: `%s' is a symbolic link" file))
-     (set-file-modes file #o0600))))
+     (set-file-modes file #o0600 'nofollow))))
 
 (autoload 'puny-encode-domain "puny")
 (autoload 'url-domsuf-cookie-allowed-p "url-domsuf")
diff --git a/lisp/url/url-vars.el b/lisp/url/url-vars.el
index 4e44eed..d9277cf 100644
--- a/lisp/url/url-vars.el
+++ b/lisp/url/url-vars.el
@@ -24,6 +24,7 @@
 
 (defconst url-version "Emacs"
   "Version number of URL package.")
+(make-obsolete-variable 'url-version nil "28.1")
 
 (defgroup url nil
   "Uniform Resource Locator tool."
diff --git a/lisp/vc/diff-mode.el b/lisp/vc/diff-mode.el
index d61c363..da2d5ed 100644
--- a/lisp/vc/diff-mode.el
+++ b/lisp/vc/diff-mode.el
@@ -2247,29 +2247,32 @@ The elements of the alist are of the form (FILE . 
(DEFUN...)),
 where DEFUN... is a list of function names found in FILE."
   (save-excursion
     (goto-char (point-min))
-    (let ((defuns nil)
-          (hunk-end nil)
-          (hunk-mismatch-files nil)
-          (make-defun-context-follower
-           (lambda (goline)
-             (let ((eodefun nil)
-                   (defname nil))
-               (list
-                (lambda () ;; Check for end of current defun.
-                  (when (and eodefun
-                             (funcall goline)
-                             (>= (point) eodefun))
-                    (setq defname nil)
-                    (setq eodefun nil)))
-                (lambda (&optional get-current) ;; Check for new defun.
-                  (if get-current
-                      defname
-                    (when-let* ((def (and (not eodefun)
-                                          (funcall goline)
-                                          (add-log-current-defun)))
-                                (eof (save-excursion (end-of-defun) (point))))
-                      (setq eodefun eof)
-                      (setq defname def)))))))))
+    (let* ((defuns nil)
+           (hunk-end nil)
+           (hunk-mismatch-files nil)
+           (make-defun-context-follower
+            (lambda (goline)
+              (let ((eodefun nil)
+                    (defname nil))
+                (list
+                 (lambda () ;; Check for end of current defun.
+                   (when (and eodefun
+                              (funcall goline)
+                              (>= (point) eodefun))
+                     (setq defname nil)
+                     (setq eodefun nil)))
+                 (lambda (&optional get-current) ;; Check for new defun.
+                   (if get-current
+                       defname
+                     (when-let* ((def (and (not eodefun)
+                                           (funcall goline)
+                                           (add-log-current-defun)))
+                                 (eof (save-excursion
+                                        (condition-case ()
+                                            (progn (end-of-defun) (point))
+                                          (scan-error hunk-end)))))
+                       (setq eodefun eof)
+                       (setq defname def)))))))))
       (while
           ;; Might need to skip over file headers between diff
           ;; hunks (e.g., "diff --git ..." etc).
@@ -2717,7 +2720,9 @@ hunk text is not found in the source file."
     ;; When initialization is requested, we should be in a brand new
     ;; temp buffer.
     (cl-assert (null buffer-file-name))
-    (let ((enable-local-variables :safe) ;; to find `mode:'
+    ;; Use `:safe' to find `mode:'.  In case of hunk-only, use nil because
+    ;; Local Variables list might be incomplete when context is truncated.
+    (let ((enable-local-variables (unless hunk-only :safe))
           (buffer-file-name file))
       ;; Don't run hooks that might assume buffer-file-name
       ;; really associates buffer with a file (bug#39190).
diff --git a/lisp/vc/ediff-init.el b/lisp/vc/ediff-init.el
index cbd8c0d..e59d4b5 100644
--- a/lisp/vc/ediff-init.el
+++ b/lisp/vc/ediff-init.el
@@ -1257,22 +1257,8 @@ Instead, C-h would jump to previous difference."
   :type 'boolean
   :group 'ediff)
 
-;; This is the same as temporary-file-directory from Emacs 20.3.
-;; Copied over here because XEmacs doesn't have this variable.
-(defcustom ediff-temp-file-prefix
-  (file-name-as-directory
-   (cond ((boundp 'temporary-file-directory) temporary-file-directory)
-        ((fboundp 'temp-directory) (temp-directory))
-        (t "/tmp/")))
-;;;  (file-name-as-directory
-;;;   (cond ((memq system-type '(ms-dos windows-nt))
-;;;      (or (getenv "TEMP") (getenv "TMPDIR") (getenv "TMP") "c:/temp"))
-;;;     (t
-;;;      (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "/tmp"))))
-  "Prefix to put on Ediff temporary file names.
-Do not start with `~/' or `~USERNAME/'."
-  :type 'string
-  :group 'ediff)
+(define-obsolete-variable-alias 'ediff-temp-file-prefix
+  'temporary-file-directory "28.1")
 
 (defcustom ediff-temp-file-mode 384    ; u=rw only
   "Mode for Ediff temporary files."
@@ -1287,8 +1273,8 @@ This default should work without changes."
   :type 'regexp
   :group 'ediff)
 
-;; needed to simulate frame-char-width in XEmacs.
-(defvar ediff-H-glyph (if (featurep 'xemacs) (make-glyph "H")))
+(defvar ediff-H-glyph nil)
+(make-obsolete-variable 'ediff-H-glyph nil "28.1")
 
 
 ;; Temporary file used for refining difference regions in buffer A.
diff --git a/lisp/vc/ediff-ptch.el b/lisp/vc/ediff-ptch.el
index cb0ae6f..f6af5a4 100644
--- a/lisp/vc/ediff-ptch.el
+++ b/lisp/vc/ediff-ptch.el
@@ -119,7 +119,7 @@ patch.  So, don't change these variables, unless the 
default doesn't work."
 (defcustom ediff-context-diff-label-regexp
   (let ((stuff "\\([^ \t\n]+\\)"))
     (concat "\\("      ; context diff 2-liner
-            "^\\*\\*\\* +" stuff "[^*]+[\t ]*\n--- +" stuff
+            "^\\*\\*\\* +" stuff "[^*]+\n--- +" stuff
             "\\|"      ; unified format diff 2-liner
             "^--- +" stuff ".*\n\\+\\+\\+ +" stuff
             "\\)"))
diff --git a/lisp/vc/ediff-util.el b/lisp/vc/ediff-util.el
index 5f8a4a8..4a84c1e 100644
--- a/lisp/vc/ediff-util.el
+++ b/lisp/vc/ediff-util.el
@@ -131,7 +131,6 @@ to invocation.")
   (define-key ediff-mode-map [delete] 'ediff-previous-difference)
   (define-key ediff-mode-map "\C-h" (if ediff-no-emacs-help-in-control-buffer
                                        'ediff-previous-difference nil))
-  ;; must come after C-h, or else C-h wipes out backspace's binding in XEmacs
   (define-key ediff-mode-map [backspace] 'ediff-previous-difference)
   (define-key ediff-mode-map [?\S-\ ] 'ediff-previous-difference)
   (define-key ediff-mode-map "n" 'ediff-next-difference)
@@ -3144,8 +3143,8 @@ Hit \\[ediff-recenter] to reset the windows afterward."
             (> (length p) 2))
        (setq short-p (substring p 0 2)))
 
-    (setq f (concat ediff-temp-file-prefix p)
-         short-f (concat ediff-temp-file-prefix short-p)
+    (setq f (concat temporary-file-directory p)
+          short-f (concat temporary-file-directory short-p)
          f (cond (given-file)
                  ((find-file-name-handler f 'insert-file-contents)
                   ;; to thwart file name handlers in write-region,
@@ -3449,7 +3448,6 @@ Without an argument, it saves customized diff argument, 
if available
 (declare-function ediff-regions-internal "ediff"
                  (buffer-a beg-a end-a buffer-b beg-b end-b
                            startup-hooks job-name word-mode setup-parameters))
-(defvar zmacs-regions) ;;XEmacs'ism.
 
 (defun ediff-inferior-compare-regions ()
   "Compare regions in an active Ediff session.
@@ -3461,7 +3459,6 @@ Ediff Control Panel to restore highlighting."
   (interactive)
   (let ((answer "")
        (possibilities (list ?A ?B ?C))
-       (zmacs-regions t)
        use-current-diff-p
        begA begB endA endB bufA bufB)
 
diff --git a/lisp/vc/ediff-wind.el b/lisp/vc/ediff-wind.el
index 7b2e110..a23d720 100644
--- a/lisp/vc/ediff-wind.el
+++ b/lisp/vc/ediff-wind.el
@@ -156,12 +156,10 @@ In this case, Ediff will use those frames to display 
these buffers."
    '(name . "Ediff")
    ;;'(unsplittable . t)
    '(minibuffer . nil)
-   '(user-position . t)              ; Emacs only
-   '(vertical-scroll-bars . nil)  ; Emacs only
-   '(scrollbar-width . 0)         ; XEmacs only
-   '(scrollbar-height . 0)        ; XEmacs only
-   '(menu-bar-lines . 0)          ; Emacs only
-   '(tool-bar-lines . 0)          ; Emacs 21+ only
+   '(user-position . t)
+   '(vertical-scroll-bars . nil)
+   '(menu-bar-lines . 0)
+   '(tool-bar-lines . 0)
    '(left-fringe    . 0)
    '(right-fringe   . 0)
    ;; don't lower but auto-raise
@@ -260,10 +258,9 @@ the frame used for the wide display.")
 This has effect only on a windowing system.
 If t, hitting `?' to toggle control panel off iconifies it.
 
-This is only useful in Emacs and only for certain kinds of window managers,
-such as TWM and its derivatives, since the window manager must permit
-keyboard input to go into icons.  XEmacs completely ignores keyboard input
-into icons, regardless of the window manager."
+This is only useful for certain kinds of window managers, such as
+TWM and its derivatives, since the window manager must permit
+keyboard input to go into icons."
   :type 'boolean)
 
 ;;; Functions
@@ -952,8 +949,7 @@ create a new splittable frame if none is found."
     ;; just a precaution--we should be in ctl-buffer already
     (with-current-buffer ctl-buffer
       (make-local-variable 'frame-title-format)
-      (make-local-variable 'frame-icon-title-format)   ; XEmacs
-      (make-local-variable 'icon-title-format))        ; Emacs
+      (make-local-variable 'icon-title-format))
 
     (ediff-setup-control-buffer ctl-buffer)
     (setq dont-iconify-ctl-frame
@@ -1098,6 +1094,7 @@ create a new splittable frame if none is found."
       )))
 
 (defun ediff-xemacs-select-frame-hook ()
+  (declare (obsolete nil "28.1"))
   (if (and (equal (selected-frame) ediff-control-frame)
           (not ediff-use-long-help-message))
       (raise-frame ediff-control-frame)))
diff --git a/lisp/vc/log-edit.el b/lisp/vc/log-edit.el
index 8b61688..d5d4614 100644
--- a/lisp/vc/log-edit.el
+++ b/lisp/vc/log-edit.el
@@ -788,18 +788,20 @@ This command will generate a ChangeLog entries listing the
 functions.  You can then add a description where needed, and use
 \\[fill-paragraph] to join consecutive function names."
   (interactive)
-  (let* ((diff-buf nil)
-         ;; Unfortunately, `log-edit-show-diff' doesn't have a NO-SHOW
-         ;; option, so we try to work around it via display-buffer
-         ;; machinery.
-         (display-buffer-overriding-action
-          `(,(lambda (buf alist)
-               (setq diff-buf buf)
-               (display-buffer-no-window buf alist))
-            . ((allow-no-window . t)))))
-    (change-log-insert-entries
-     (with-current-buffer (progn (log-edit-show-diff) diff-buf)
-       (diff-add-log-current-defuns)))))
+  (change-log-insert-entries
+   (with-current-buffer
+       (let* ((diff-buf nil)
+              ;; Unfortunately, `log-edit-show-diff' doesn't have a
+              ;; NO-SHOW option, so we try to work around it via
+              ;; display-buffer machinery.
+              (display-buffer-overriding-action
+               `(,(lambda (buf alist)
+                    (setq diff-buf buf)
+                    (display-buffer-no-window buf alist))
+                 . ((allow-no-window . t)))))
+         (log-edit-show-diff)
+         diff-buf)
+     (diff-add-log-current-defuns))))
 
 (defun log-edit-insert-changelog (&optional use-first)
   "Insert a log message by looking at the ChangeLog.
diff --git a/lisp/vc/pcvs-parse.el b/lisp/vc/pcvs-parse.el
index 466c621..dd56aec 100644
--- a/lisp/vc/pcvs-parse.el
+++ b/lisp/vc/pcvs-parse.el
@@ -472,7 +472,7 @@ The remaining KEYS are passed directly to 
`cvs-create-fileinfo'."
       ;; Let's not get all worked up if the format changes a bit
       (cvs-match " *Working revision:.*$"))
      (cvs-or
-      (cvs-match " *RCS Version:[ \t]*\\([0-9.]+\\)[ \t]*.*$" (head-rev 1))
+      (cvs-match " *RCS Version:[ \t]*\\([0-9.]+\\).*$" (head-rev 1))
       (cvs-match " *Repository revision:[ \t]*\\([0-9.]+\\)[ \t]*\\(.*\\)$"
                 (head-rev 1))
       (cvs-match " *Repository revision:.*"))
diff --git a/lisp/vc/pcvs.el b/lisp/vc/pcvs.el
index dcba504..cb0494e 100644
--- a/lisp/vc/pcvs.el
+++ b/lisp/vc/pcvs.el
@@ -106,7 +106,6 @@
 ;;     right now, it's killed without further ado.
 ;; - make `cvs-mode-ignore' allow manually entering a pattern.
 ;;     to which dir should it apply ?
-;; - cvs-mode-ignore should try to remove duplicate entries.
 ;; - maybe poll/check CVS/Entries files to react to external `cvs' commands ?
 ;; - some kind of `cvs annotate' support ?
 ;;     but vc-annotate can be used instead.
@@ -1972,7 +1971,8 @@ This command ignores files that are not flagged as 
`Unknown'."
   (interactive)
   (dolist (fi (cvs-mode-marked 'ignore))
     (vc-cvs-append-to-ignore (cvs-fileinfo->dir fi) (cvs-fileinfo->file fi)
-                         (eq (cvs-fileinfo->subtype fi) 'NEW-DIR))
+                         (eq (cvs-fileinfo->subtype fi) 'NEW-DIR)
+                          cvs-sort-ignore-file)
     (setf (cvs-fileinfo->type fi) 'DEAD))
   (cvs-cleanup-collection cvs-cookies nil nil nil))
 
diff --git a/lisp/vc/smerge-mode.el b/lisp/vc/smerge-mode.el
index 85868b9..d0a83fd 100644
--- a/lisp/vc/smerge-mode.el
+++ b/lisp/vc/smerge-mode.el
@@ -1429,15 +1429,16 @@ with a \\[universal-argument] prefix, makes up a 3-way 
conflict."
     (smerge-remove-props (point-min) (point-max))))
 
 ;;;###autoload
-(defun smerge-start-session ()
+(defun smerge-start-session (&optional interactively)
   "Turn on `smerge-mode' and move point to first conflict marker.
 If no conflict maker is found, turn off `smerge-mode'."
-  (interactive)
-  (smerge-mode 1)
-  (condition-case nil
-      (unless (looking-at smerge-begin-re)
-        (smerge-next))
-    (error (smerge-auto-leave))))
+  (interactive "p")
+  (when (or (null smerge-mode) interactively)
+    (smerge-mode 1)
+    (condition-case nil
+        (unless (looking-at smerge-begin-re)
+          (smerge-next))
+      (error (smerge-auto-leave)))))
 
 (defcustom smerge-change-buffer-confirm t
   "If non-nil, request confirmation before moving to another buffer."
diff --git a/lisp/vc/vc-cvs.el b/lisp/vc/vc-cvs.el
index 16566a8..e8231ec 100644
--- a/lisp/vc/vc-cvs.el
+++ b/lisp/vc/vc-cvs.el
@@ -1220,14 +1220,34 @@ is non-nil."
   "Return the administrative directory of FILE."
   (vc-find-root file "CVS"))
 
-(defun vc-cvs-ignore (file &optional _directory _remove)
-  "Ignore FILE under CVS."
-  (vc-cvs-append-to-ignore (file-name-directory file) file))
-
-(defun vc-cvs-append-to-ignore (dir str &optional old-dir)
+(defun vc-cvs-ignore (file &optional directory _remove)
+  "Ignore FILE under CVS.
+FILE is either absolute or relative to DIRECTORY.  The non-directory
+part of FILE is written unmodified into the ignore file and is
+therefore evaluated by CVS as an ignore pattern which follows
+glob(7) syntax.  If the pattern should match any of the special
+characters `?*[\\' literally, they must be escaped with a
+backslash.
+
+CVS processes one ignore file for each subdirectory.  Patterns
+are separated by whitespace and only match files in the same
+directory.  Since FILE can be a relative filename with leading
+directories, FILE is expanded against DIRECTORY to determine the
+correct absolute filename.  The directory part of the resulting name
+is then used to determine the location of the ignore file.  The
+non-directory part of the name is used as pattern for the ignore file.
+
+Since patterns are whitespace-separated, filenames containing spaces
+cannot be represented directly.  A work-around is to replace such
+spaces with question marks."
+  (setq file (directory-file-name (expand-file-name file directory)))
+  (vc-cvs-append-to-ignore (file-name-directory file) (file-name-nondirectory 
file)))
+
+(defun vc-cvs-append-to-ignore (dir str &optional old-dir sort)
   "In DIR, add STR to the .cvsignore file.
 If OLD-DIR is non-nil, then this is a directory that we don't want
-to hear about anymore."
+to hear about anymore.  If SORT is non-nil, sort the lines of the
+ignore file."
   (with-current-buffer
       (find-file-noselect (expand-file-name ".cvsignore" dir))
     (when (ignore-errors
@@ -1236,13 +1256,13 @@ to hear about anymore."
                 (not (vc-editable-p buffer-file-name))))
       ;; CVSREAD=on special case
       (vc-checkout buffer-file-name t))
-    (goto-char (point-max))
-    (unless (bolp) (insert "\n"))
-    (insert str (if old-dir "/\n" "\n"))
-    ;; FIXME this is a pcvs variable.
-    (if (bound-and-true-p cvs-sort-ignore-file)
-        (sort-lines nil (point-min) (point-max)))
-    (save-buffer)))
+    (goto-char (point-min))
+    (save-match-data
+      (unless (re-search-forward (concat "^" (regexp-quote str) "$") nil 'move)
+        (unless (bolp) (insert "\n"))
+        (insert str (if old-dir "/\n" "\n"))
+        (if sort (sort-lines nil (point-min) (point-max)))
+        (save-buffer)))))
 
 (provide 'vc-cvs)
 
diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el
index 033cb27..38b4937 100644
--- a/lisp/vc/vc-dir.el
+++ b/lisp/vc/vc-dir.el
@@ -879,7 +879,10 @@ If a prefix argument is given, ignore all marked files."
           (vc-ignore (vc-dir-fileinfo->name filearg))
           t))
        vc-ewoc)
-    (vc-ignore (vc-dir-current-file))))
+    (let ((rel-dir (vc--ignore-base-dir)))
+      (vc-ignore
+       (file-relative-name (vc-dir-current-file) rel-dir)
+       rel-dir))))
 
 (defun vc-dir-current-file ()
   (let ((node (ewoc-locate vc-ewoc)))
diff --git a/lisp/vc/vc-dispatcher.el b/lisp/vc/vc-dispatcher.el
index 5ae300b..4a04c93 100644
--- a/lisp/vc/vc-dispatcher.el
+++ b/lisp/vc/vc-dispatcher.el
@@ -746,7 +746,8 @@ the buffer contents as a comment."
 
 (defun vc-dispatcher-browsing ()
   "Are we in a directory browser buffer?"
-  (derived-mode-p 'vc-dir-mode))
+  (or (derived-mode-p 'vc-dir-mode)
+      (derived-mode-p 'dired-mode)))
 
 ;; These are unused.
 ;; (defun vc-dispatcher-in-fileset-p (fileset)
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index ec252b7..607fb37 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -480,8 +480,8 @@
 ;;
 ;; - ignore (file &optional directory)
 ;;
-;;   Ignore FILE under the VCS of DIRECTORY (default is `default-directory').
-;;   FILE is a file wildcard.
+;;   Ignore FILE under DIRECTORY (default is 'default-directory').
+;;   FILE is a file wildcard relative to DIRECTORY.
 ;;   When called interactively and with a prefix argument, remove FILE
 ;;   from ignored files.
 ;;   When called from Lisp code, if DIRECTORY is non-nil, the
@@ -1032,9 +1032,7 @@ BEWARE: this function may change the current buffer."
      ((derived-mode-p 'vc-dir-mode)
       (vc-dir-deduce-fileset state-model-only-files))
      ((derived-mode-p 'dired-mode)
-      (if observer
-         (vc-dired-deduce-fileset)
-       (error "State changing VC operations not supported in `dired-mode'")))
+      (vc-dired-deduce-fileset state-model-only-files observer))
      ((setq backend (vc-backend buffer-file-name))
       (if state-model-only-files
        (list backend (list buffer-file-name)
@@ -1046,7 +1044,8 @@ BEWARE: this function may change the current buffer."
            ;; FIXME: Why this test?  --Stef
            (or (buffer-file-name vc-parent-buffer)
                                (with-current-buffer vc-parent-buffer
-                                 (derived-mode-p 'vc-dir-mode))))
+                                 (or (derived-mode-p 'vc-dir-mode)
+                                     (derived-mode-p 'dired-mode)))))
       (progn                  ;FIXME: Why not `with-current-buffer'? --Stef.
        (set-buffer vc-parent-buffer)
        (vc-deduce-fileset observer allow-unregistered state-model-only-files)))
@@ -1066,9 +1065,31 @@ BEWARE: this function may change the current buffer."
              (list buffer-file-name))))
      (t (error "File is not under version control")))))
 
-(defun vc-dired-deduce-fileset ()
-  (list (vc-responsible-backend default-directory)
-        (dired-map-over-marks (dired-get-filename nil t) nil)))
+(declare-function dired-get-marked-files "dired"
+                  (&optional localp arg filter distinguish-one-marked error))
+
+(defun vc-dired-deduce-fileset (&optional state-model-only-files observer)
+  (let ((backend (vc-responsible-backend default-directory))
+        (files (dired-get-marked-files nil nil nil nil t))
+       only-files-list
+       state
+       model)
+    (when (and (not observer) (cl-some #'file-directory-p files))
+      (error "State changing VC operations on directories not supported in 
`dired-mode'"))
+
+    (when state-model-only-files
+      (setq only-files-list (mapcar (lambda (file) (cons file (vc-state 
file))) files))
+      (setq state (cdar only-files-list))
+      ;; Check that all files are in a consistent state, since we use that
+      ;; state to decide which operation to perform.
+      (dolist (crt (cdr only-files-list))
+       (unless (vc-compatible-state (cdr crt) state)
+         (error "When applying VC operations to multiple files, the files are 
required\nto  be in similar VC states.\n%s in state %s clashes with %s in state 
%s"
+                (car crt) (cdr crt) (caar only-files-list) state)))
+      (setq only-files-list (mapcar 'car only-files-list))
+      (when (and state (not (eq state 'unregistered)))
+       (setq model (vc-checkout-model backend only-files-list))))
+    (list backend files only-files-list state model)))
 
 (defun vc-ensure-vc-buffer ()
   "Make sure that the current buffer visits a version-controlled file."
@@ -1406,40 +1427,45 @@ When called interactively, prompt for a FILE to ignore, 
unless a
 prefix argument is given, in which case prompt for a file FILE to
 remove from the list of ignored files."
   (interactive
-   (list
-    (if (not current-prefix-arg)
-        (read-file-name "File to ignore: ")
-      (completing-read
-       "File to remove: "
-       (vc-call-backend
-        (or (vc-responsible-backend default-directory)
-            (error "Unknown backend"))
-        'ignore-completion-table default-directory)))
-    nil current-prefix-arg))
+   (let* ((rel-dir (vc--ignore-base-dir))
+          (file (read-file-name "File to ignore: ")))
+     (when (and (file-name-absolute-p file)
+                (file-in-directory-p file rel-dir))
+       (setq file (file-relative-name file rel-dir)))
+     (list file
+           rel-dir
+           current-prefix-arg)))
   (let* ((directory (or directory default-directory))
         (backend (or (vc-responsible-backend default-directory)
                       (error "Unknown backend"))))
     (vc-call-backend backend 'ignore file directory remove)))
 
+(defun vc--ignore-base-dir ()
+  (let ((backend (vc-responsible-backend default-directory)))
+    (condition-case nil
+        (file-name-directory
+         (vc-call-backend backend 'find-ignore-file
+                          default-directory))
+      (vc-not-supported
+       default-directory))))
+
 (defun vc-default-ignore (backend file &optional directory remove)
-  "Ignore FILE under the VCS of DIRECTORY (default is `default-directory').
-FILE is a wildcard specification, either relative to
-DIRECTORY or absolute.
+  "Ignore FILE under DIRECTORY (default is `default-directory').
+FILE is a wildcard specification relative to DIRECTORY.
+
 When called from Lisp code, if DIRECTORY is non-nil, the
-repository to use will be deduced by DIRECTORY; if REMOVE is
-non-nil, remove FILE from ignored files.
-Argument BACKEND is the backend you are using."
+repository to use will be deduced by DIRECTORY.
+
+If REMOVE is non-nil, remove FILE from ignored files instead.
+
+Argument BACKEND is the backend to use."
   (let ((ignore
-        (vc-call-backend backend 'find-ignore-file (or directory 
default-directory)))
-       file-path root-dir pattern)
-    (setq file-path (expand-file-name file directory))
-    (setq root-dir (file-name-directory ignore))
-    (when (not (string= (substring file-path 0 (length root-dir)) root-dir))
-      (error "Ignore spec %s is not below project root %s" file-path root-dir))
-    (setq pattern (substring file-path (length root-dir)))
+         (vc-call-backend backend
+                          'find-ignore-file
+                          (or directory default-directory))))
     (if remove
-       (vc--remove-regexp (concat "^" (regexp-quote pattern ) "\\(\n\\|$\\)") 
ignore)
-      (vc--add-line pattern ignore))))
+        (vc--remove-regexp (concat "^" (regexp-quote file) "\\(\n\\|$\\)") 
ignore)
+      (vc--add-line file ignore))))
 
 (defun vc-default-ignore-completion-table (backend file)
   "Return the list of ignored files under BACKEND."
@@ -2532,15 +2558,17 @@ with its diffs (if the underlying VCS supports that)."
 
 ;;;###autoload
 (defun vc-print-branch-log (branch)
-  "Show the change log for BRANCH in a window."
+  "Show the change log for BRANCH root in a window."
   (interactive
    (list
     (vc-read-revision "Branch to log: ")))
   (when (equal branch "")
     (error "No branch specified"))
-  (vc-print-log-internal (vc-responsible-backend default-directory)
-                         (list default-directory) branch t
-                         (when (> vc-log-show-limit 0) vc-log-show-limit)))
+  (let* ((backend (vc-responsible-backend default-directory))
+         (rootdir (vc-call-backend backend 'root default-directory)))
+    (vc-print-log-internal backend
+                           (list rootdir) branch t
+                           (when (> vc-log-show-limit 0) vc-log-show-limit))))
 
 ;;;###autoload
 (defun vc-log-incoming (&optional remote-location)
diff --git a/lisp/w32-fns.el b/lisp/w32-fns.el
index 8a816da..c252c0b 100644
--- a/lisp/w32-fns.el
+++ b/lisp/w32-fns.el
@@ -238,14 +238,18 @@ bit output with no translation."
   ;; value from x-select-font etc, so list the most important charsets last.
   (w32-add-charset-info "iso8859-14" 'w32-charset-ansi  28604)
   (w32-add-charset-info "iso8859-15" 'w32-charset-ansi  28605)
+  (w32-add-charset-info "iso8859-16" 'w32-charset-ansi  28606)
   ;; The following two are included for pattern matching.
   (w32-add-charset-info "jisx0201" 'w32-charset-shiftjis 932)
   (w32-add-charset-info "jisx0208" 'w32-charset-shiftjis 932)
   (w32-add-charset-info "jisx0201-latin" 'w32-charset-shiftjis 932)
   (w32-add-charset-info "jisx0201-katakana" 'w32-charset-shiftjis 932)
+  (w32-add-charset-info "jisx0212" 'w32-charset-shiftjis 932)
   (w32-add-charset-info "ksc5601.1989" 'w32-charset-hangeul 949)
+  (w32-add-charset-info "ksx1001" 'w32-charset-hangeul 949)
   (w32-add-charset-info "big5" 'w32-charset-chinesebig5 950)
   (w32-add-charset-info "gb2312.1980" 'w32-charset-gb2312 936)
+  (w32-add-charset-info "gbk" 'w32-charset-gb2312 936)
   (w32-add-charset-info "ms-symbol" 'w32-charset-symbol nil)
   (w32-add-charset-info "ms-oem" 'w32-charset-oem 437)
   (w32-add-charset-info "ms-oemlatin" 'w32-charset-oem 850)
@@ -258,9 +262,12 @@ bit output with no translation."
   (w32-add-charset-info "iso8859-9" 'w32-charset-turkish 1254)
   (w32-add-charset-info "iso8859-13" 'w32-charset-baltic 1257)
   (w32-add-charset-info "koi8-r" 'w32-charset-russian 20866)
+  (w32-add-charset-info "microsoft-cp1251" 'w32-charset-russian 1251)
+  (w32-add-charset-info "windows-1251" 'w32-charset-russian 1251)
   (w32-add-charset-info "tis620-2533" 'w32-charset-russian 28595)
   (w32-add-charset-info "iso8859-11" 'w32-charset-thai 874)
   (w32-add-charset-info "windows-1258" 'w32-charset-vietnamese 1258)
+  (w32-add-charset-info "viscii" 'w32-charset-vietnamese 1258)
   (w32-add-charset-info "ksc5601.1992" 'w32-charset-johab 1361)
   (w32-add-charset-info "mac-roman" 'w32-charset-mac 10000)
   (w32-add-charset-info "iso10646-1" 'w32-charset-default t)
diff --git a/lisp/wdired.el b/lisp/wdired.el
index d91853e..768b8f5 100644
--- a/lisp/wdired.el
+++ b/lisp/wdired.el
@@ -4,7 +4,7 @@
 
 ;; Filename: wdired.el
 ;; Author: Juan León Lahoz García <address@hidden>
-;; Version: 2.0
+;; Old-Version: 2.0
 ;; Keywords: dired, environment, files, renaming
 
 ;; This file is part of GNU Emacs.
@@ -640,6 +640,7 @@ Optional arguments are ignored."
 See `wdired-use-dired-vertical-movement'.  Optional prefix ARG
 says how many lines to move; default is one line."
   (interactive "^p")
+  (setq this-command 'next-line)       ;Let `line-move' preserve the column.
   (with-no-warnings (next-line arg))
   (if (or (eq wdired-use-dired-vertical-movement t)
          (and wdired-use-dired-vertical-movement
@@ -653,6 +654,7 @@ says how many lines to move; default is one line."
 See `wdired-use-dired-vertical-movement'.  Optional prefix ARG
 says how many lines to move; default is one line."
   (interactive "^p")
+  (setq this-command 'previous-line)       ;Let `line-move' preserve the 
column.
   (with-no-warnings (previous-line arg))
   (if (or (eq wdired-use-dired-vertical-movement t)
          (and wdired-use-dired-vertical-movement
diff --git a/lisp/whitespace.el b/lisp/whitespace.el
index 0137ddc..47434bf 100644
--- a/lisp/whitespace.el
+++ b/lisp/whitespace.el
@@ -2067,16 +2067,7 @@ resultant list will be returned."
        ,@(when (or (memq 'lines      whitespace-active-style)
                    (memq 'lines-tail whitespace-active-style))
            ;; Show "long" lines.
-           `((,(let ((line-column (or whitespace-line-column fill-column)))
-                 (format
-                  
"^\\([^\t\n]\\{%s\\}\\|[^\t\n]\\{0,%s\\}\t\\)\\{%d\\}%s\\(.+\\)$"
-                  tab-width
-                  (1- tab-width)
-                  (/ line-column tab-width)
-                  (let ((rem (% line-column tab-width)))
-                    (if (zerop rem)
-                        ""
-                      (format ".\\{%d\\}" rem)))))
+           `((,#'whitespace-lines-regexp
               ,(if (memq 'lines whitespace-active-style)
                    0                    ; whole line
                  2)                     ; line tail
@@ -2177,6 +2168,19 @@ resultant list will be returned."
             (setq status nil)))                  ;; end of buffer
     status))
 
+(defun whitespace-lines-regexp (limit)
+  (re-search-forward
+   (let ((line-column (or whitespace-line-column fill-column)))
+     (format
+      "^\\([^\t\n]\\{%s\\}\\|[^\t\n]\\{0,%s\\}\t\\)\\{%d\\}%s\\(.+\\)$"
+      tab-width
+      (1- tab-width)
+      (/ line-column tab-width)
+      (let ((rem (% line-column tab-width)))
+        (if (zerop rem)
+            ""
+          (format ".\\{%d\\}" rem)))))
+   limit t))
 
 (defun whitespace-empty-at-bob-regexp (limit)
   "Match spaces at beginning of buffer which do not contain the point at \
diff --git a/lisp/windmove.el b/lisp/windmove.el
index 40adb49..f963831 100644
--- a/lisp/windmove.el
+++ b/lisp/windmove.el
@@ -474,6 +474,15 @@ When `switch-to-buffer-obey-display-actions' is non-nil,
                                         (tab-bar-new-tab))
                                       (setq type 'tab)
                                       (selected-window))
+                                     ((eq dir 'new-frame)
+                                      (let* ((params (cdr (assq 
'pop-up-frame-parameters alist)))
+                                             (pop-up-frame-alist (append 
params pop-up-frame-alist))
+                                             (frame 
(make-frame-on-current-monitor
+                                                     pop-up-frame-alist)))
+                                        (unless (cdr (assq 
'inhibit-switch-frame alist))
+                                         (window--maybe-raise-frame frame))
+                                        (setq type 'frame)
+                                        (frame-selected-window frame)))
                                      ((eq dir 'same-window)
                                       (selected-window))
                                      (t (window-in-direction
@@ -542,6 +551,12 @@ See the logic of the prefix ARG in 
`windmove-display-in-direction'."
   (windmove-display-in-direction 'same-window arg))
 
 ;;;###autoload
+(defun windmove-display-new-frame (&optional arg)
+  "Display the next buffer in a new frame."
+  (interactive "P")
+  (windmove-display-in-direction 'new-frame arg))
+
+;;;###autoload
 (defun windmove-display-new-tab (&optional arg)
   "Display the next buffer in a new tab."
   (interactive "P")
@@ -562,6 +577,7 @@ Default value of MODIFIERS is `shift-meta'."
   (global-set-key (vector (append modifiers '(up)))    'windmove-display-up)
   (global-set-key (vector (append modifiers '(down)))  'windmove-display-down)
   (global-set-key (vector (append modifiers '(?0)))    
'windmove-display-same-window)
+  (global-set-key (vector (append modifiers '(?f)))    
'windmove-display-new-frame)
   (global-set-key (vector (append modifiers '(?t)))    
'windmove-display-new-tab))
 
 
diff --git a/lisp/window.el b/lisp/window.el
index bd825c0..b54f163 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -278,6 +278,24 @@ displays the buffer specified by BUFFER-OR-NAME before 
running BODY."
             (funcall ,vquit-function ,window ,value)
           ,value)))))
 
+(defmacro with-window-non-dedicated (window &rest body)
+  "Evaluate BODY with WINDOW temporarily made non-dedicated.
+If WINDOW is nil, use the selected window.  Return the value of
+the last form in BODY."
+  (declare (indent 1) (debug t))
+  (let ((window-dedicated-sym (gensym))
+        (window-sym (gensym)))
+    `(let* ((,window-sym (window-normalize-window ,window t))
+            (,window-dedicated-sym (window-dedicated-p ,window-sym)))
+       (set-window-dedicated-p ,window-sym nil)
+       (unwind-protect
+           (progn ,@body)
+         ;; `window-dedicated-p' returns the value set by
+         ;; `set-window-dedicated-p', which differentiates non-nil and
+         ;; t, so we cannot simply use t here. That's why we use
+         ;; `window-dedicated-sym'.
+         (set-window-dedicated-p ,window-sym ,window-dedicated-sym)))))
+
 ;; The following two functions are like `window-next-sibling' and
 ;; `window-prev-sibling' but the WINDOW argument is _not_ optional (so
 ;; they don't substitute the selected window for nil), and they return
@@ -3911,7 +3929,7 @@ TOP RIGHT BOTTOM) as returned by `window-edges'."
   (setq frame (window-normalize-frame frame))
   (window--subtree (frame-root-window frame) t))
 
-(defun other-window (count &optional all-frames)
+(defun other-window (count &optional all-frames interactive)
   "Select another window in cyclic ordering of windows.
 COUNT specifies the number of windows to skip, starting with the
 selected window, before making the selection.  If COUNT is
@@ -3931,7 +3949,7 @@ This function uses `next-window' for finding the window to
 select.  The argument ALL-FRAMES has the same meaning as in
 `next-window', but the MINIBUF argument of `next-window' is
 always effectively nil."
-  (interactive "p")
+  (interactive "p\ni\np")
   (let* ((window (selected-window))
          (original-window window)
         (function (and (not ignore-window-parameters)
@@ -3977,7 +3995,8 @@ always effectively nil."
            (setq count (1+ count)))))
 
         (when (and (eq window original-window)
-                   (called-interactively-p 'interactive))
+                   interactive
+                   (not (or executing-kbd-macro noninteractive)))
           (message "No other window to select"))
 
        (select-window window)
@@ -4192,7 +4211,7 @@ that is its frame's root window."
        ;; Always return nil.
        nil))))
 
-(defun delete-other-windows (&optional window)
+(defun delete-other-windows (&optional window interactive)
   "Make WINDOW fill its frame.
 WINDOW must be a valid window and defaults to the selected one.
 Return nil.
@@ -4209,7 +4228,7 @@ with the root of the atomic window as its argument.  
Signal an
 error if that root window is the root window of WINDOW's frame.
 Also signal an error if WINDOW is a side window.  Do not delete
 any window whose `no-delete-other-windows' parameter is non-nil."
-  (interactive)
+  (interactive "i\np")
   (setq window (window-normalize-window window))
   (let* ((frame (window-frame window))
         (function (window-parameter window 'delete-other-windows))
@@ -4275,7 +4294,8 @@ any window whose `no-delete-other-windows' parameter is 
non-nil."
       (if (eq window main)
           ;; Give a message to the user if this has been called as a
           ;; command.
-          (when (called-interactively-p 'interactive)
+          (when (and interactive
+                     (not (or executing-kbd-macro noninteractive)))
             (message "No other windows to delete"))
        (delete-other-windows-internal window main)
        (window--check frame))
@@ -4838,11 +4858,11 @@ displayed there."
   (interactive)
   (switch-to-buffer (last-buffer)))
 
-(defun next-buffer (&optional arg)
+(defun next-buffer (&optional arg interactive)
   "In selected window switch to ARGth next buffer.
 Call `switch-to-next-buffer' unless the selected window is the
 minibuffer window or is dedicated to its buffer."
-  (interactive "p")
+  (interactive "p\np")
   (cond
    ((window-minibuffer-p)
     (user-error "Cannot switch buffers in minibuffer window"))
@@ -4851,14 +4871,15 @@ minibuffer window or is dedicated to its buffer."
    (t
     (dotimes (_ (or arg 1))
       (when (and (not (switch-to-next-buffer))
-                 (called-interactively-p 'interactive))
+                 interactive
+                 (not (or executing-kbd-macro noninteractive)))
         (user-error "No next buffer"))))))
 
-(defun previous-buffer (&optional arg)
+(defun previous-buffer (&optional arg interactive)
   "In selected window switch to ARGth previous buffer.
 Call `switch-to-prev-buffer' unless the selected window is the
 minibuffer window or is dedicated to its buffer."
-  (interactive "p")
+  (interactive "p\np")
   (cond
    ((window-minibuffer-p)
     (user-error "Cannot switch buffers in minibuffer window"))
@@ -4867,7 +4888,8 @@ minibuffer window or is dedicated to its buffer."
    (t
     (dotimes (_ (or arg 1))
       (when (and (not (switch-to-prev-buffer))
-                 (called-interactively-p 'interactive))
+                 interactive
+                 (not (or executing-kbd-macro noninteractive)))
         (user-error "No previous buffer"))))))
 
 (defun delete-windows-on (&optional buffer-or-name frame)
@@ -7891,15 +7913,15 @@ Info node `(elisp) Buffer Display Action Alists' for 
details of
 such alists.
 
 ALIST has to contain a `direction' entry whose value should be
-one of `left', `above' (or `up'), `right' and `below' (or
-'down').  Other values are usually interpreted as `below'.
+one of `left', `above' (or `up'), `right' and `below' (or `down').
+Other values are usually interpreted as `below'.
 
 If ALIST also contains a `window' entry, its value specifies a
 reference window.  That value can be a special symbol like
-'main' (which stands for the selected frame's main window) or
-'root' (standings for the selected frame's root window) or an
+`main' (which stands for the selected frame's main window) or
+`root' (standings for the selected frame's root window) or an
 arbitrary valid window.  Any other value (or omitting the
-'window' entry) means to use the selected window as reference
+`window' entry) means to use the selected window as reference
 window.
 
 This function tries to reuse or split a window such that the
@@ -8806,8 +8828,7 @@ parameters of FRAME."
            (parent (frame-parent frame))
            (monitor-attributes
             (unless parent
-              (car (display-monitor-attributes-list
-                    (frame-parameter frame 'display)))))
+              (frame-monitor-attributes frame)))
            ;; FRAME'S parent or display sizes.  Used in connection
            ;; with margins.
            (geometry
@@ -8816,11 +8837,11 @@ parameters of FRAME."
            (parent-or-display-width
             (if parent
                 (frame-native-width parent)
-              (- (nth 2 geometry) (nth 0 geometry))))
+              (nth 2 geometry)))
            (parent-or-display-height
             (if parent
                 (frame-native-height parent)
-              (- (nth 3 geometry) (nth 1 geometry))))
+              (nth 3 geometry)))
            ;; FRAME's parent or workarea sizes.  Used when no margins
            ;; are specified.
            (parent-or-workarea
@@ -8882,13 +8903,15 @@ parameters of FRAME."
                                 (window--sanitize-margin
                                  (nth 2 margins) left-margin
                                  parent-or-display-width))
-                           (nth 2 parent-or-workarea)))
+                           (+ (nth 0 parent-or-workarea)
+                              (nth 2 parent-or-workarea))))
            (bottom-margin (if (nth 3 margins)
                               (- parent-or-display-height
                                  (window--sanitize-margin
                                   (nth 3 margins) top-margin
                                   parent-or-display-height))
-                            (nth 3 parent-or-workarea)))
+                            (+ (nth 1 parent-or-workarea)
+                               (nth 3 parent-or-workarea))))
            ;; Minimum and maximum sizes specified for FRAME.
            (sizes (or (frame-parameter frame 'fit-frame-to-buffer-sizes)
                       fit-frame-to-buffer-sizes))
@@ -9124,8 +9147,8 @@ accessible position."
               ;; wider than its frame's pixel width, its height
               ;; remains unaltered.
               (width (+ (car (window-text-pixel-size
-                              window (window-start) (point-max)
-                              (frame-pixel-width)
+                              window (window-start window) nil
+                              (frame-pixel-width (window-frame window))
                               ;; Add one line-height to assure that
                               ;; we're on the safe side.  This
                               ;; overshoots when the first line below
diff --git a/lisp/woman.el b/lisp/woman.el
index beebde9..c0e27c5 100644
--- a/lisp/woman.el
+++ b/lisp/woman.el
@@ -6,7 +6,7 @@
 ;; Maintainer: address@hidden
 ;; Keywords: help, unix
 ;; Adapted-By: Eli Zaretskii <address@hidden>
-;; Version: 0.551
+;; Old-Version: 0.551
 ;; URL: http://centaur.maths.qmul.ac.uk/Emacs/WoMan/
 
 ;; This file is part of GNU Emacs.
@@ -401,6 +401,7 @@
 ;;; Code:
 
 (defvar woman-version "0.551 (beta)" "WoMan version information.")
+(make-obsolete-variable 'woman-version nil "28.1")
 
 (require 'man)
 (require 'button)
@@ -1830,7 +1831,6 @@ Argument EVENT is the invoking mouse event."
    ["Mini Help" woman-mini-help t]
    ,@(if (fboundp 'customize-group)
         '(["Customize..." (customize-group 'woman) t]))
-   ["Show Version" (message "WoMan %s" woman-version) t]
    "--"
    ("Advanced"
     ["View Source" (view-file woman-last-file-name) woman-last-file-name]
@@ -1878,7 +1878,6 @@ Argument EVENT is the invoking mouse event."
 WoMan is an ELisp emulation of much of the functionality of the Emacs
 `man' command running the standard UN*X man and ?roff programs.
 WoMan author: address@hidden
-WoMan version: see `woman-version'.
 See `Man-mode' for additional details.
 \\{woman-mode-map}"
   (let ((Man-build-page-list (symbol-function 'Man-build-page-list))
diff --git a/m4/acl.m4 b/m4/acl.m4
index e459451..a3dcf93 100644
--- a/m4/acl.m4
+++ b/m4/acl.m4
@@ -1,5 +1,5 @@
 # acl.m4 - check for access control list (ACL) primitives
-# serial 23
+# serial 24
 
 # Copyright (C) 2002, 2004-2020 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
@@ -139,7 +139,7 @@ int type = ACL_TYPE_EXTENDED;]])],
       AC_MSG_WARN([AC_PACKAGE_NAME will be built without ACL support.])
     fi
   fi
-  test $gl_need_lib_has_acl && LIB_HAS_ACL=$LIB_ACL
+  test -n "$gl_need_lib_has_acl" && LIB_HAS_ACL=$LIB_ACL
   AC_SUBST([LIB_ACL])
   AC_DEFINE_UNQUOTED([USE_ACL], [$use_acl],
     [Define to nonzero if you want access control list support.])
diff --git a/m4/fchmodat.m4 b/m4/fchmodat.m4
new file mode 100644
index 0000000..e3f2f04
--- /dev/null
+++ b/m4/fchmodat.m4
@@ -0,0 +1,82 @@
+# fchmodat.m4 serial 4
+dnl Copyright (C) 2004-2020 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Written by Jim Meyering.
+
+AC_DEFUN([gl_FUNC_FCHMODAT],
+[
+  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_CHECK_FUNCS_ONCE([fchmodat lchmod])
+  if test $ac_cv_func_fchmodat != yes; then
+    HAVE_FCHMODAT=0
+  else
+    AC_CACHE_CHECK(
+      [whether fchmodat+AT_SYMLINK_NOFOLLOW works on non-symlinks],
+      [gl_cv_func_fchmodat_works],
+      [dnl This test fails on GNU/Linux with glibc 2.31 (but not on
+       dnl GNU/kFreeBSD nor GNU/Hurd) and Cygwin 2.9.
+       AC_RUN_IFELSE(
+         [AC_LANG_PROGRAM(
+            [
+              AC_INCLUDES_DEFAULT[
+              #include <fcntl.h>
+              #ifndef S_IRUSR
+               #define S_IRUSR 0400
+              #endif
+              #ifndef S_IWUSR
+               #define S_IWUSR 0200
+              #endif
+              #ifndef S_IRWXU
+               #define S_IRWXU 0700
+              #endif
+              #ifndef S_IRWXG
+               #define S_IRWXG 0070
+              #endif
+              #ifndef S_IRWXO
+               #define S_IRWXO 0007
+              #endif
+            ]],
+            [[
+              int permissive = S_IRWXU | S_IRWXG | S_IRWXO;
+              int desired = S_IRUSR | S_IWUSR;
+              static char const f[] = "conftest.fchmodat";
+              struct stat st;
+              if (creat (f, permissive) < 0)
+                return 1;
+              if (fchmodat (AT_FDCWD, f, desired, AT_SYMLINK_NOFOLLOW) != 0)
+                return 1;
+              if (stat (f, &st) != 0)
+                return 1;
+              return ! ((st.st_mode & permissive) == desired);
+            ]])],
+         [gl_cv_func_fchmodat_works=yes],
+         [gl_cv_func_fchmodat_works=no],
+         [case "$host_os" in
+            dnl Guess no on Linux with glibc and Cygwin, yes otherwise.
+            linux-gnu* | cygwin*) gl_cv_func_fchmodat_works="guessing no" ;;
+            *)                    
gl_cv_func_fchmodat_works="$gl_cross_guess_normal" ;;
+          esac
+         ])
+       rm -f conftest.fchmodat])
+    case $gl_cv_func_fchmodat_works in
+      *yes) ;;
+      *)
+        AC_DEFINE([NEED_FCHMODAT_NONSYMLINK_FIX], [1],
+          [Define to 1 if fchmodat+AT_SYMLINK_NOFOLLOW does not work right on 
non-symlinks.])
+        REPLACE_FCHMODAT=1
+        ;;
+    esac
+  fi
+])
+
+# Prerequisites of lib/fchmodat.c.
+AC_DEFUN([gl_PREREQ_FCHMODAT],
+[
+  AC_CHECK_FUNCS_ONCE([lchmod])
+  :
+])
diff --git a/m4/futimens.m4 b/m4/futimens.m4
new file mode 100644
index 0000000..dc5cfa9
--- /dev/null
+++ b/m4/futimens.m4
@@ -0,0 +1,65 @@
+# serial 8
+# See if we need to provide futimens replacement.
+
+dnl Copyright (C) 2009-2020 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Written by Eric Blake.
+
+AC_DEFUN([gl_FUNC_FUTIMENS],
+[
+  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_CHECK_FUNCS_ONCE([futimens])
+  if test $ac_cv_func_futimens = no; then
+    HAVE_FUTIMENS=0
+  else
+    AC_CACHE_CHECK([whether futimens works],
+      [gl_cv_func_futimens_works],
+      [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <errno.h>
+]], [[struct timespec ts[2];
+      int fd = creat ("conftest.file", 0600);
+      struct stat st;
+      if (fd < 0) return 1;
+      ts[0].tv_sec = 1;
+      ts[0].tv_nsec = UTIME_OMIT;
+      ts[1].tv_sec = 1;
+      ts[1].tv_nsec = UTIME_NOW;
+      errno = 0;
+      if (futimens (AT_FDCWD, NULL) == 0) return 2;
+      if (errno != EBADF) return 3;
+      if (futimens (fd, ts)) return 4;
+      sleep (1);
+      ts[0].tv_nsec = UTIME_NOW;
+      ts[1].tv_nsec = UTIME_OMIT;
+      if (futimens (fd, ts)) return 5;
+      if (fstat (fd, &st)) return 6;
+      if (st.st_ctime < st.st_atime) return 7;
+      ]])],
+         [gl_cv_func_futimens_works=yes],
+         [gl_cv_func_futimens_works=no],
+         [case "$host_os" in
+                           # Guess no on glibc systems.
+            *-gnu* | gnu*) gl_cv_func_futimens_works="guessing no" ;;
+                           # Guess no on musl systems.
+            *-musl*)       gl_cv_func_futimens_works="guessing no" ;;
+                           # Guess yes otherwise.
+            *)             gl_cv_func_futimens_works="guessing yes" ;;
+          esac
+         ])
+      rm -f conftest.file])
+    case "$gl_cv_func_futimens_works" in
+      *yes) ;;
+      *)
+        REPLACE_FUTIMENS=1
+        ;;
+    esac
+  fi
+])
diff --git a/m4/getloadavg.m4 b/m4/getloadavg.m4
index 3bd2a14..8e96965 100644
--- a/m4/getloadavg.m4
+++ b/m4/getloadavg.m4
@@ -7,7 +7,7 @@
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-#serial 8
+#serial 9
 
 # Autoconf defines AC_FUNC_GETLOADAVG, but that is obsolescent.
 # New applications should use gl_GETLOADAVG instead.
@@ -45,7 +45,9 @@ AC_CHECK_FUNC([getloadavg], [],
      # There is a commonly available library for RS/6000 AIX.
      # Since it is not a standard part of AIX, it might be installed locally.
      gl_getloadavg_LIBS=$LIBS
-     LIBS="-L/usr/local/lib $LIBS"
+     if test $cross_compiling != yes; then
+       LIBS="-L/usr/local/lib $LIBS"
+     fi
      AC_CHECK_LIB([getloadavg], [getloadavg],
                   [LIBS="-lgetloadavg $LIBS" gl_func_getloadavg_done=yes],
                   [LIBS=$gl_getloadavg_LIBS])
diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4
index 48d8030..3228aa4 100644
--- a/m4/gnulib-comp.m4
+++ b/m4/gnulib-comp.m4
@@ -82,6 +82,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module extensions:
   # Code from module extern-inline:
   # Code from module faccessat:
+  # Code from module fchmodat:
   # Code from module fcntl:
   # Code from module fcntl-h:
   # Code from module fdopendir:
@@ -94,6 +95,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module fstatat:
   # Code from module fsusage:
   # Code from module fsync:
+  # Code from module futimens:
   # Code from module getdtablesize:
   # Code from module getgroups:
   # Code from module getloadavg:
@@ -111,6 +113,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module inttypes-incomplete:
   # Code from module largefile:
   AC_REQUIRE([AC_SYS_LARGEFILE])
+  # Code from module lchmod:
   # Code from module libc-config:
   # Code from module limits-h:
   # Code from module localtime-buffer:
@@ -177,6 +180,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module unlocked-io:
   # Code from module update-copyright:
   # Code from module utimens:
+  # Code from module utimensat:
   # Code from module vararrays:
   # Code from module verify:
   # Code from module vla:
@@ -211,6 +215,7 @@ AC_DEFUN([gl_INIT],
   gl_MODULE_INDICATOR([canonicalize-lgpl])
   gl_STDLIB_MODULE_INDICATOR([canonicalize_file_name])
   gl_STDLIB_MODULE_INDICATOR([realpath])
+  AC_REQUIRE([AC_C_RESTRICT])
   AC_CHECK_FUNCS_ONCE([readlinkat])
   gl_CLOCK_TIME
   gl_MODULE_INDICATOR([close-stream])
@@ -219,9 +224,13 @@ AC_DEFUN([gl_INIT],
     AC_LIBOBJ([copy-file-range])
   fi
   gl_UNISTD_MODULE_INDICATOR([copy-file-range])
+  AC_REQUIRE([AC_C_RESTRICT])
   gl_MD5
+  AC_REQUIRE([AC_C_RESTRICT])
   gl_SHA1
+  AC_REQUIRE([AC_C_RESTRICT])
   gl_SHA256
+  AC_REQUIRE([AC_C_RESTRICT])
   gl_SHA512
   gl_CHECK_TYPE_STRUCT_DIRENT_D_TYPE
   gl_DIRENT_H
@@ -250,6 +259,12 @@ AC_DEFUN([gl_INIT],
   fi
   gl_MODULE_INDICATOR([faccessat])
   gl_UNISTD_MODULE_INDICATOR([faccessat])
+  gl_FUNC_FCHMODAT
+  if test $HAVE_FCHMODAT = 0 || test $REPLACE_FCHMODAT = 1; then
+    AC_LIBOBJ([fchmodat])
+    gl_PREREQ_FCHMODAT
+  fi
+  gl_SYS_STAT_MODULE_INDICATOR([fchmodat])
   gl_FUNC_FCNTL
   if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then
     AC_LIBOBJ([fcntl])
@@ -284,6 +299,11 @@ AC_DEFUN([gl_INIT],
     gl_PREREQ_FSYNC
   fi
   gl_UNISTD_MODULE_INDICATOR([fsync])
+  gl_FUNC_FUTIMENS
+  if test $HAVE_FUTIMENS = 0 || test $REPLACE_FUTIMENS = 1; then
+    AC_LIBOBJ([futimens])
+  fi
+  gl_SYS_STAT_MODULE_INDICATOR([futimens])
   gl_GETLOADAVG
   if test $HAVE_GETLOADAVG = 0; then
     AC_LIBOBJ([getloadavg])
@@ -453,7 +473,11 @@ AC_DEFUN([gl_INIT],
   gl_TIMESPEC
   gl_UNISTD_H
   gl_FUNC_GLIBC_UNLOCKED_IO
-  gl_UTIMENS
+  gl_FUNC_UTIMENSAT
+  if test $HAVE_UTIMENSAT = 0 || test $REPLACE_UTIMENSAT = 1; then
+    AC_LIBOBJ([utimensat])
+  fi
+  gl_SYS_STAT_MODULE_INDICATOR([utimensat])
   AC_C_VARARRAYS
   gl_gnulib_enabled_260941c0e5dc67ec9e87d1fb321c300b=false
   gl_gnulib_enabled_cloexec=false
@@ -463,6 +487,7 @@ AC_DEFUN([gl_INIT],
   gl_gnulib_enabled_getgroups=false
   gl_gnulib_enabled_be453cec5eecf5731a274f2de7f2db36=false
   gl_gnulib_enabled_a9786850e999ae65a836a6041e8e5ed1=false
+  gl_gnulib_enabled_lchmod=false
   gl_gnulib_enabled_21ee726a3540c09237a8e70c0baf7467=false
   gl_gnulib_enabled_2049e887c7e5308faad27b3f894bb8c9=false
   gl_gnulib_enabled_malloca=false
@@ -471,6 +496,7 @@ AC_DEFUN([gl_INIT],
   gl_gnulib_enabled_03e0aaad4cb89ca757653bd367a6ccb7=false
   gl_gnulib_enabled_6099e9737f757db36c47fa9d9f02e88c=false
   gl_gnulib_enabled_strtoll=false
+  gl_gnulib_enabled_utimens=false
   gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec=false
   func_gl_gnulib_m4code_260941c0e5dc67ec9e87d1fb321c300b ()
   {
@@ -564,6 +590,18 @@ AC_DEFUN([gl_INIT],
       fi
     fi
   }
+  func_gl_gnulib_m4code_lchmod ()
+  {
+    if ! $gl_gnulib_enabled_lchmod; then
+      gl_FUNC_LCHMOD
+      if test $HAVE_LCHMOD = 0; then
+        AC_LIBOBJ([lchmod])
+        gl_PREREQ_LCHMOD
+      fi
+      gl_SYS_STAT_MODULE_INDICATOR([lchmod])
+      gl_gnulib_enabled_lchmod=true
+    fi
+  }
   func_gl_gnulib_m4code_21ee726a3540c09237a8e70c0baf7467 ()
   {
     if ! $gl_gnulib_enabled_21ee726a3540c09237a8e70c0baf7467; then
@@ -637,6 +675,13 @@ AC_DEFUN([gl_INIT],
       gl_gnulib_enabled_strtoll=true
     fi
   }
+  func_gl_gnulib_m4code_utimens ()
+  {
+    if ! $gl_gnulib_enabled_utimens; then
+      gl_UTIMENS
+      gl_gnulib_enabled_utimens=true
+    fi
+  }
   func_gl_gnulib_m4code_682e609604ccaac6be382e4ee3a4eaec ()
   {
     if ! $gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec; then
@@ -655,6 +700,15 @@ AC_DEFUN([gl_INIT],
   if test $HAVE_FACCESSAT = 0 || test $REPLACE_FACCESSAT = 1; then
     func_gl_gnulib_m4code_03e0aaad4cb89ca757653bd367a6ccb7
   fi
+  if test $HAVE_FCHMODAT = 0; then
+    func_gl_gnulib_m4code_260941c0e5dc67ec9e87d1fb321c300b
+  fi
+  if test $HAVE_FCHMODAT = 0; then
+    func_gl_gnulib_m4code_lchmod
+  fi
+  if test $HAVE_FCHMODAT = 0; then
+    func_gl_gnulib_m4code_03e0aaad4cb89ca757653bd367a6ccb7
+  fi
   if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then
     func_gl_gnulib_m4code_getdtablesize
   fi
@@ -670,6 +724,9 @@ AC_DEFUN([gl_INIT],
   if test $HAVE_FSTATAT = 0 || test $REPLACE_FSTATAT = 1; then
     func_gl_gnulib_m4code_03e0aaad4cb89ca757653bd367a6ccb7
   fi
+  if test $HAVE_FUTIMENS = 0 || test $REPLACE_FUTIMENS = 1; then
+    func_gl_gnulib_m4code_utimens
+  fi
   if test $REPLACE_GETOPT = 1; then
     func_gl_gnulib_m4code_be453cec5eecf5731a274f2de7f2db36
   fi
@@ -694,6 +751,15 @@ AC_DEFUN([gl_INIT],
   if test $HAVE_TIMEGM = 0 || test $REPLACE_TIMEGM = 1; then
     func_gl_gnulib_m4code_5264294aa0a5557541b53c8c741f7f31
   fi
+  if test $HAVE_UTIMENSAT = 0 || test $REPLACE_UTIMENSAT = 1; then
+    func_gl_gnulib_m4code_260941c0e5dc67ec9e87d1fb321c300b
+  fi
+  if test $HAVE_UTIMENSAT = 0 || test $REPLACE_UTIMENSAT = 1; then
+    func_gl_gnulib_m4code_03e0aaad4cb89ca757653bd367a6ccb7
+  fi
+  if test $HAVE_UTIMENSAT = 0 || test $REPLACE_UTIMENSAT = 1; then
+    func_gl_gnulib_m4code_utimens
+  fi
   m4_pattern_allow([^gl_GNULIB_ENABLED_])
   AM_CONDITIONAL([gl_GNULIB_ENABLED_260941c0e5dc67ec9e87d1fb321c300b], 
[$gl_gnulib_enabled_260941c0e5dc67ec9e87d1fb321c300b])
   AM_CONDITIONAL([gl_GNULIB_ENABLED_cloexec], [$gl_gnulib_enabled_cloexec])
@@ -703,6 +769,7 @@ AC_DEFUN([gl_INIT],
   AM_CONDITIONAL([gl_GNULIB_ENABLED_getgroups], [$gl_gnulib_enabled_getgroups])
   AM_CONDITIONAL([gl_GNULIB_ENABLED_be453cec5eecf5731a274f2de7f2db36], 
[$gl_gnulib_enabled_be453cec5eecf5731a274f2de7f2db36])
   AM_CONDITIONAL([gl_GNULIB_ENABLED_a9786850e999ae65a836a6041e8e5ed1], 
[$gl_gnulib_enabled_a9786850e999ae65a836a6041e8e5ed1])
+  AM_CONDITIONAL([gl_GNULIB_ENABLED_lchmod], [$gl_gnulib_enabled_lchmod])
   AM_CONDITIONAL([gl_GNULIB_ENABLED_21ee726a3540c09237a8e70c0baf7467], 
[$gl_gnulib_enabled_21ee726a3540c09237a8e70c0baf7467])
   AM_CONDITIONAL([gl_GNULIB_ENABLED_2049e887c7e5308faad27b3f894bb8c9], 
[$gl_gnulib_enabled_2049e887c7e5308faad27b3f894bb8c9])
   AM_CONDITIONAL([gl_GNULIB_ENABLED_malloca], [$gl_gnulib_enabled_malloca])
@@ -711,6 +778,7 @@ AC_DEFUN([gl_INIT],
   AM_CONDITIONAL([gl_GNULIB_ENABLED_03e0aaad4cb89ca757653bd367a6ccb7], 
[$gl_gnulib_enabled_03e0aaad4cb89ca757653bd367a6ccb7])
   AM_CONDITIONAL([gl_GNULIB_ENABLED_6099e9737f757db36c47fa9d9f02e88c], 
[$gl_gnulib_enabled_6099e9737f757db36c47fa9d9f02e88c])
   AM_CONDITIONAL([gl_GNULIB_ENABLED_strtoll], [$gl_gnulib_enabled_strtoll])
+  AM_CONDITIONAL([gl_GNULIB_ENABLED_utimens], [$gl_gnulib_enabled_utimens])
   AM_CONDITIONAL([gl_GNULIB_ENABLED_682e609604ccaac6be382e4ee3a4eaec], 
[$gl_gnulib_enabled_682e609604ccaac6be382e4ee3a4eaec])
   # End of code from modules
   m4_ifval(gl_LIBSOURCES_LIST, [
@@ -903,6 +971,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/execinfo.in.h
   lib/explicit_bzero.c
   lib/faccessat.c
+  lib/fchmodat.c
   lib/fcntl.c
   lib/fcntl.in.h
   lib/fdopendir.c
@@ -919,6 +988,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/fsync.c
   lib/ftoastr.c
   lib/ftoastr.h
+  lib/futimens.c
   lib/get-permissions.c
   lib/getdtablesize.c
   lib/getgroups.c
@@ -941,6 +1011,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/ignore-value.h
   lib/intprops.h
   lib/inttypes.in.h
+  lib/lchmod.c
   lib/libc-config.h
   lib/limits.in.h
   lib/localtime-buffer.c
@@ -1025,6 +1096,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/unlocked-io.h
   lib/utimens.c
   lib/utimens.h
+  lib/utimensat.c
   lib/verify.h
   lib/vla.h
   lib/warn-on-use.h
@@ -1053,6 +1125,7 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/extensions.m4
   m4/extern-inline.m4
   m4/faccessat.m4
+  m4/fchmodat.m4
   m4/fcntl-o.m4
   m4/fcntl.m4
   m4/fcntl_h.m4
@@ -1064,6 +1137,7 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/fstatat.m4
   m4/fsusage.m4
   m4/fsync.m4
+  m4/futimens.m4
   m4/getdtablesize.m4
   m4/getgroups.m4
   m4/getloadavg.m4
@@ -1078,6 +1152,7 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/include_next.m4
   m4/inttypes.m4
   m4/largefile.m4
+  m4/lchmod.m4
   m4/limits-h.m4
   m4/localtime-buffer.m4
   m4/lstat.m4
@@ -1144,6 +1219,7 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/unistd_h.m4
   m4/unlocked-io.m4
   m4/utimens.m4
+  m4/utimensat.m4
   m4/utimes.m4
   m4/vararrays.m4
   m4/warn-on-use.m4
diff --git a/m4/inttypes.m4 b/m4/inttypes.m4
index d0487d6..224d0cd 100644
--- a/m4/inttypes.m4
+++ b/m4/inttypes.m4
@@ -1,4 +1,4 @@
-# inttypes.m4 serial 28
+# inttypes.m4 serial 29
 dnl Copyright (C) 2006-2020 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -28,6 +28,8 @@ AC_DEFUN_ONCE([gl_INTTYPES_INCOMPLETE],
   dnl corresponding gnulib module is not in use.
   gl_WARN_ON_USE_PREPARE([[#include <inttypes.h>
     ]], [imaxabs imaxdiv strtoimax strtoumax])
+
+  AC_REQUIRE([AC_C_RESTRICT])
 ])
 
 # Ensure that the PRI* and SCN* macros are defined appropriately.
diff --git a/m4/largefile.m4 b/m4/largefile.m4
index e381339..8017ca7 100644
--- a/m4/largefile.m4
+++ b/m4/largefile.m4
@@ -113,9 +113,6 @@ if test "$enable_largefile" != no; then
       [Define for large files, on AIX-style hosts.],
       [_AC_SYS_LARGEFILE_TEST_INCLUDES])
   fi
-
-  AC_DEFINE([_DARWIN_USE_64_BIT_INODE], [1],
-    [Enable large inode numbers on Mac OS X 10.5.])
 fi
 ])# AC_SYS_LARGEFILE
 ])# m4_version_prereq 2.70
diff --git a/m4/lchmod.m4 b/m4/lchmod.m4
new file mode 100644
index 0000000..b9e8a97
--- /dev/null
+++ b/m4/lchmod.m4
@@ -0,0 +1,31 @@
+#serial 7
+
+dnl Copyright (C) 2005-2006, 2008-2020 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+dnl Provide a replacement for lchmod on hosts that lack a working version.
+
+AC_DEFUN([gl_FUNC_LCHMOD],
+[
+  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+
+  dnl Persuade glibc <sys/stat.h> to declare lchmod().
+  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+  AC_CHECK_FUNCS_ONCE([lchmod lstat])
+  if test "$ac_cv_func_lchmod" = no; then
+    HAVE_LCHMOD=0
+  fi
+])
+
+# Prerequisites of lib/lchmod.c.
+AC_DEFUN([gl_PREREQ_LCHMOD],
+[
+  AC_REQUIRE([AC_C_INLINE])
+  :
+])
diff --git a/m4/nstrftime.m4 b/m4/nstrftime.m4
index c15fab3..6f2762a 100644
--- a/m4/nstrftime.m4
+++ b/m4/nstrftime.m4
@@ -1,4 +1,4 @@
-# serial 34
+# serial 35
 
 # Copyright (C) 1996-1997, 1999-2007, 2009-2020 Free Software Foundation, Inc.
 #
@@ -10,6 +10,8 @@
 
 AC_DEFUN([gl_FUNC_GNU_STRFTIME],
 [
+ AC_REQUIRE([AC_C_RESTRICT])
+
  # This defines (or not) HAVE_TZNAME and HAVE_TM_ZONE.
  AC_REQUIRE([AC_STRUCT_TIMEZONE])
 
diff --git a/m4/signal_h.m4 b/m4/signal_h.m4
index 0868438..b262980 100644
--- a/m4/signal_h.m4
+++ b/m4/signal_h.m4
@@ -1,4 +1,4 @@
-# signal_h.m4 serial 18
+# signal_h.m4 serial 19
 dnl Copyright (C) 2007-2020 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -34,6 +34,8 @@ AC_DEFUN([gl_SIGNAL_H],
     ]], [pthread_sigmask sigaction
     sigaddset sigdelset sigemptyset sigfillset sigismember
     sigpending sigprocmask])
+
+  AC_REQUIRE([AC_C_RESTRICT])
 ])
 
 AC_DEFUN([gl_CHECK_TYPE_SIGSET_T],
diff --git a/m4/stdio_h.m4 b/m4/stdio_h.m4
index c603b51..5f968bc 100644
--- a/m4/stdio_h.m4
+++ b/m4/stdio_h.m4
@@ -1,4 +1,4 @@
-# stdio_h.m4 serial 49
+# stdio_h.m4 serial 50
 dnl Copyright (C) 2007-2020 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -107,6 +107,8 @@ AC_DEFUN([gl_STDIO_H],
   gl_WARN_ON_USE_PREPARE([[#include <stdio.h>
     ]], [dprintf fpurge fseeko ftello getdelim getline gets pclose popen
     renameat snprintf tmpfile vdprintf vsnprintf])
+
+  AC_REQUIRE([AC_C_RESTRICT])
 ])
 
 AC_DEFUN([gl_STDIO_MODULE_INDICATOR],
diff --git a/m4/stdlib_h.m4 b/m4/stdlib_h.m4
index 61a3e31..743066a 100644
--- a/m4/stdlib_h.m4
+++ b/m4/stdlib_h.m4
@@ -1,4 +1,4 @@
-# stdlib_h.m4 serial 48
+# stdlib_h.m4 serial 49
 dnl Copyright (C) 2007-2020 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -27,6 +27,8 @@ AC_DEFUN([gl_STDLIB_H],
     posix_openpt ptsname ptsname_r qsort_r random random_r reallocarray
     realpath rpmatch secure_getenv setenv setstate setstate_r srandom
     srandom_r strtod strtold strtoll strtoull unlockpt unsetenv])
+
+  AC_REQUIRE([AC_C_RESTRICT])
 ])
 
 AC_DEFUN([gl_STDLIB_MODULE_INDICATOR],
diff --git a/m4/string_h.m4 b/m4/string_h.m4
index 4c1f685..cc51337 100644
--- a/m4/string_h.m4
+++ b/m4/string_h.m4
@@ -5,7 +5,7 @@
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 22
+# serial 23
 
 # Written by Paul Eggert.
 
@@ -18,7 +18,6 @@ AC_DEFUN([gl_HEADER_STRING_H],
 
 AC_DEFUN([gl_HEADER_STRING_H_BODY],
 [
-  AC_REQUIRE([AC_C_RESTRICT])
   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
   gl_NEXT_HEADERS([string.h])
 
@@ -30,6 +29,8 @@ AC_DEFUN([gl_HEADER_STRING_H_BODY],
     [ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul
      strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r
      strerror_r strsignal strverscmp])
+
+  AC_REQUIRE([AC_C_RESTRICT])
 ])
 
 AC_DEFUN([gl_STRING_MODULE_INDICATOR],
diff --git a/m4/sys_socket_h.m4 b/m4/sys_socket_h.m4
index 1471aea..bf902f0 100644
--- a/m4/sys_socket_h.m4
+++ b/m4/sys_socket_h.m4
@@ -1,4 +1,4 @@
-# sys_socket_h.m4 serial 24
+# sys_socket_h.m4 serial 25
 dnl Copyright (C) 2005-2020 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -95,6 +95,8 @@ AC_DEFUN([gl_HEADER_SYS_SOCKET],
 #include <sys/socket.h>
     ]], [socket connect accept bind getpeername getsockname getsockopt
     listen recv send recvfrom sendto setsockopt shutdown accept4])
+
+  AC_REQUIRE([AC_C_RESTRICT])
 ])
 
 AC_DEFUN([gl_PREREQ_SYS_H_SOCKET],
diff --git a/m4/sys_stat_h.m4 b/m4/sys_stat_h.m4
index a5f35d4..3efba5a 100644
--- a/m4/sys_stat_h.m4
+++ b/m4/sys_stat_h.m4
@@ -1,4 +1,4 @@
-# sys_stat_h.m4 serial 32   -*- Autoconf -*-
+# sys_stat_h.m4 serial 33   -*- Autoconf -*-
 dnl Copyright (C) 2006-2020 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -48,7 +48,9 @@ AC_DEFUN([gl_HEADER_SYS_STAT_H],
   gl_WARN_ON_USE_PREPARE([[#include <sys/stat.h>
     ]], [fchmodat fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat
     mknod mknodat stat utimensat])
-]) # gl_HEADER_SYS_STAT_H
+
+  AC_REQUIRE([AC_C_RESTRICT])
+])
 
 AC_DEFUN([gl_SYS_STAT_MODULE_INDICATOR],
 [
@@ -92,7 +94,6 @@ AC_DEFUN([gl_SYS_STAT_H_DEFAULTS],
   REPLACE_FSTAT=0;      AC_SUBST([REPLACE_FSTAT])
   REPLACE_FSTATAT=0;    AC_SUBST([REPLACE_FSTATAT])
   REPLACE_FUTIMENS=0;   AC_SUBST([REPLACE_FUTIMENS])
-  REPLACE_LCHMOD=0;     AC_SUBST([REPLACE_LCHMOD])
   REPLACE_LSTAT=0;      AC_SUBST([REPLACE_LSTAT])
   REPLACE_MKDIR=0;      AC_SUBST([REPLACE_MKDIR])
   REPLACE_MKFIFO=0;     AC_SUBST([REPLACE_MKFIFO])
diff --git a/m4/time_h.m4 b/m4/time_h.m4
index aae0ae2..d0f8932 100644
--- a/m4/time_h.m4
+++ b/m4/time_h.m4
@@ -2,7 +2,7 @@
 
 # Copyright (C) 2000-2001, 2003-2007, 2009-2020 Free Software Foundation, Inc.
 
-# serial 11
+# serial 12
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -19,10 +19,12 @@ AC_DEFUN([gl_HEADER_TIME_H],
 
 AC_DEFUN([gl_HEADER_TIME_H_BODY],
 [
-  AC_REQUIRE([AC_C_RESTRICT])
   AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
+
   gl_NEXT_HEADERS([time.h])
   AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC])
+
+  AC_REQUIRE([AC_C_RESTRICT])
 ])
 
 dnl Check whether 'struct timespec' is declared
diff --git a/m4/unistd_h.m4 b/m4/unistd_h.m4
index ea2bb01..e776f3b 100644
--- a/m4/unistd_h.m4
+++ b/m4/unistd_h.m4
@@ -1,4 +1,4 @@
-# unistd_h.m4 serial 77
+# unistd_h.m4 serial 78
 dnl Copyright (C) 2006-2020 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -48,6 +48,8 @@ AC_DEFUN([gl_UNISTD_H],
     group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite
     readlink readlinkat rmdir sethostname sleep symlink symlinkat
     truncate ttyname_r unlink unlinkat usleep])
+
+  AC_REQUIRE([AC_C_RESTRICT])
 ])
 
 AC_DEFUN([gl_UNISTD_MODULE_INDICATOR],
diff --git a/m4/utimensat.m4 b/m4/utimensat.m4
new file mode 100644
index 0000000..2bc1bfe
--- /dev/null
+++ b/m4/utimensat.m4
@@ -0,0 +1,69 @@
+# serial 6
+# See if we need to provide utimensat replacement.
+
+dnl Copyright (C) 2009-2020 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Written by Eric Blake.
+
+AC_DEFUN([gl_FUNC_UTIMENSAT],
+[
+  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_CHECK_FUNCS_ONCE([utimensat])
+  if test $ac_cv_func_utimensat = no; then
+    HAVE_UTIMENSAT=0
+  else
+    AC_CACHE_CHECK([whether utimensat works],
+      [gl_cv_func_utimensat_works],
+      [AC_RUN_IFELSE(
+         [AC_LANG_PROGRAM([[
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <unistd.h>
+]],         [[int result = 0;
+              const char *f = "conftest.file";
+              if (close (creat (f, 0600)))
+                return 1;
+              /* Test whether the AT_SYMLINK_NOFOLLOW flag is supported.  */
+              {
+                if (utimensat (AT_FDCWD, f, NULL, AT_SYMLINK_NOFOLLOW))
+                  result |= 2;
+              }
+              /* Test whether UTIME_NOW and UTIME_OMIT work.  */
+              {
+                struct timespec ts[2];
+                ts[0].tv_sec = 1;
+                ts[0].tv_nsec = UTIME_OMIT;
+                ts[1].tv_sec = 1;
+                ts[1].tv_nsec = UTIME_NOW;
+                if (utimensat (AT_FDCWD, f, ts, 0))
+                  result |= 4;
+              }
+              sleep (1);
+              {
+                struct stat st;
+                struct timespec ts[2];
+                ts[0].tv_sec = 1;
+                ts[0].tv_nsec = UTIME_NOW;
+                ts[1].tv_sec = 1;
+                ts[1].tv_nsec = UTIME_OMIT;
+                if (utimensat (AT_FDCWD, f, ts, 0))
+                  result |= 8;
+                if (stat (f, &st))
+                  result |= 16;
+                else if (st.st_ctime < st.st_atime)
+                  result |= 32;
+              }
+              return result;
+            ]])],
+         [gl_cv_func_utimensat_works=yes],
+         [gl_cv_func_utimensat_works=no],
+         [gl_cv_func_utimensat_works="guessing yes"])])
+    if test "$gl_cv_func_utimensat_works" = no; then
+      REPLACE_UTIMENSAT=1
+    fi
+  fi
+])
diff --git a/nt/gnulib-cfg.mk b/nt/gnulib-cfg.mk
index 08e83e0..b84626d 100644
--- a/nt/gnulib-cfg.mk
+++ b/nt/gnulib-cfg.mk
@@ -63,3 +63,8 @@ OMIT_GNULIB_MODULE_sys_time = true
 OMIT_GNULIB_MODULE_sys_types = true
 OMIT_GNULIB_MODULE_unistd = true
 OMIT_GNULIB_MODULE_canonicalize-lgpl = true
+OMIT_GNULIB_MODULE_utimens = true
+OMIT_GNULIB_MODULE_fchmodat = true
+OMIT_GNULIB_MODULE_lchmod = true
+OMIT_GNULIB_MODULE_futimens = true
+OMIT_GNULIB_MODULE_utimensat = true
diff --git a/nt/inc/sys/stat.h b/nt/inc/sys/stat.h
index 7bf780d..f58d5ab 100644
--- a/nt/inc/sys/stat.h
+++ b/nt/inc/sys/stat.h
@@ -164,4 +164,9 @@ int __cdecl __MINGW_NOTHROW fstatat (int, char const *,
                                                 struct stat *, int);
 int __cdecl __MINGW_NOTHROW    chmod (const char*, int);
 
+/* Provide prototypes of library functions that are emulated on w32
+   and whose prototypes are usually found in sys/stat.h on POSIX
+   platforms.  */
+extern int utimensat (int, const char *, struct timespec const[2], int);
+
 #endif /* INC_SYS_STAT_H_ */
diff --git a/nt/mingw-cfg.site b/nt/mingw-cfg.site
index dfdca39..2271eef 100644
--- a/nt/mingw-cfg.site
+++ b/nt/mingw-cfg.site
@@ -102,6 +102,13 @@ ac_cv_func_lstat=yes
 gl_cv_func_lstat_dereferences_slashed_symlink=yes
 ac_cv_func_fstatat=yes
 gl_cv_func_fstatat_zero_flag=yes
+ac_cv_func_fchmodat=yes
+gl_cv_func_fchmodat_works="not-needed-so-yes"
+ac_cv_func_lchmod=yes
+ac_cv_func_futimens=not-needed
+gl_cv_func_futimens_works="not-needed-so-yes"
+ac_cv_func_utimensat=yes
+gl_cv_func_utimensat_works=yes
 # Aliased to _commit in ms-w32.h
 ac_cv_func_fsync=yes
 ac_cv_func_fdatasync=yes
diff --git a/src/.gdbinit b/src/.gdbinit
index 5dd0133..30c7b05 100644
--- a/src/.gdbinit
+++ b/src/.gdbinit
@@ -72,7 +72,7 @@ end
 
 define xgetsym
   xgetptr $arg0
-  set $ptr = ((struct Lisp_Symbol *) ((char *)lispsym + $ptr))
+  set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
 end
 
 # Access the name of a symbol
diff --git a/src/alloc.c b/src/alloc.c
index a35b48c..eed73bc 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -4596,21 +4596,23 @@ live_vector_p (struct mem_node *m, void *p)
   return !NILP (live_vector_holding (m, p));
 }
 
-/* If P is a pointer into a live buffer, return the buffer.
-   Otherwise, return nil.  M is a pointer to the mem_block for P.  */
+/* If P is a pointer into a valid buffer object, return the buffer.
+   Otherwise, return nil.  M is a pointer to the mem_block for P.
+   If IGNORE_KILLED is non-zero, treat killed buffers as invalid.  */
 
 static Lisp_Object
-live_buffer_holding (struct mem_node *m, void *p)
+live_buffer_holding (struct mem_node *m, void *p, bool ignore_killed)
 {
-  /* P must point into the block, and the buffer
-     must not have been killed.  */
+  /* P must point into the block, and the buffer must not
+     have been killed unless ALL-BUFFERS is true.  */
   if (m->type == MEM_TYPE_BUFFER)
     {
       struct buffer *b = m->start;
       char *cb = m->start;
       char *cp = p;
       ptrdiff_t offset = cp - cb;
-      if (0 <= offset && offset < sizeof *b && !NILP (b->name_))
+      if (0 <= offset && offset < sizeof *b
+         && !(ignore_killed && NILP (b->name_)))
        {
          Lisp_Object obj;
          XSETBUFFER (obj, b);
@@ -4620,10 +4622,12 @@ live_buffer_holding (struct mem_node *m, void *p)
   return Qnil;
 }
 
+/* If P is a pointer into a live (valid and not killed) buffer object,
+   return non-zero.  */
 static bool
 live_buffer_p (struct mem_node *m, void *p)
 {
-  return !NILP (live_buffer_holding (m, p));
+  return !NILP (live_buffer_holding (m, p, true));
 }
 
 /* Mark OBJ if we can prove it's a Lisp_Object.  */
@@ -4681,7 +4685,7 @@ mark_maybe_object (Lisp_Object obj)
 
        case Lisp_Vectorlike:
          mark_p = (EQ (obj, live_vector_holding (m, po))
-                   || EQ (obj, live_buffer_holding (m, po)));
+                   || EQ (obj, live_buffer_holding (m, po, false)));
          break;
 
        default:
@@ -4751,7 +4755,7 @@ mark_maybe_pointer (void *p)
          break;
 
        case MEM_TYPE_BUFFER:
-         obj = live_buffer_holding (m, p);
+         obj = live_buffer_holding (m, p, false);
          break;
 
        case MEM_TYPE_CONS:
diff --git a/src/buffer.c b/src/buffer.c
index cc7d4e4..70598a7 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -131,6 +131,23 @@ CHECK_OVERLAY (Lisp_Object x)
   CHECK_TYPE (OVERLAYP (x), Qoverlayp, x);
 }
 
+/* Convert the position POS to an EMACS_INT that fits in a fixnum.
+   Yield POS's value if POS is already a fixnum, POS's marker position
+   if POS is a marker, and MOST_NEGATIVE_FIXNUM or
+   MOST_POSITIVE_FIXNUM if POS is a negative or positive bignum.
+   Signal an error if POS is not of the proper form.  */
+
+EMACS_INT
+fix_position (Lisp_Object pos)
+{
+  if (FIXNUMP (pos))
+    return XFIXNUM (pos);
+  if (MARKERP (pos))
+    return marker_position (pos);
+  CHECK_TYPE (BIGNUMP (pos), Qinteger_or_marker_p, pos);
+  return !NILP (Fnatnump (pos)) ? MOST_POSITIVE_FIXNUM : MOST_NEGATIVE_FIXNUM;
+}
+
 /* These setters are used only in this file, so they can be private.
    The public setters are inline functions defined in buffer.h.  */
 static void
@@ -2257,19 +2274,20 @@ so the buffer is truly empty after this.  */)
 }
 
 void
-validate_region (register Lisp_Object *b, register Lisp_Object *e)
+validate_region (Lisp_Object *b, Lisp_Object *e)
 {
-  CHECK_FIXNUM_COERCE_MARKER (*b);
-  CHECK_FIXNUM_COERCE_MARKER (*e);
+  EMACS_INT beg = fix_position (*b), end = fix_position (*e);
 
-  if (XFIXNUM (*b) > XFIXNUM (*e))
+  if (end < beg)
     {
-      Lisp_Object tem;
-      tem = *b;  *b = *e;  *e = tem;
+      EMACS_INT tem = beg;  beg = end;  end = tem;
     }
 
-  if (! (BEGV <= XFIXNUM (*b) && XFIXNUM (*e) <= ZV))
+  if (! (BEGV <= beg && end <= ZV))
     args_out_of_range_3 (Fcurrent_buffer (), *b, *e);
+
+  *b = make_fixnum (beg);
+  *e = make_fixnum (end);
 }
 
 /* Advance BYTE_POS up to a character boundary
diff --git a/src/buffer.h b/src/buffer.h
index fd05fdd..31f497e 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -1150,6 +1150,8 @@ extern Lisp_Object interval_insert_behind_hooks;
 extern Lisp_Object interval_insert_in_front_hooks;
 
 
+extern EMACS_INT fix_position (Lisp_Object);
+#define CHECK_FIXNUM_COERCE_MARKER(x) ((x) = make_fixnum (fix_position (x)))
 extern void delete_all_overlays (struct buffer *);
 extern void reset_buffer (struct buffer *);
 extern void compact_buffer (struct buffer *);
diff --git a/src/character.c b/src/character.c
index 5d419a2..d71cb3f 100644
--- a/src/character.c
+++ b/src/character.c
@@ -931,10 +931,10 @@ character is not ASCII nor 8-bit character, an error is 
signaled.  */)
        }
       else
        {
-         CHECK_FIXNUM_COERCE_MARKER (position);
-         if (XFIXNUM (position) < BEGV || XFIXNUM (position) >= ZV)
+         EMACS_INT fixed_pos = fix_position (position);
+         if (! (BEGV <= fixed_pos && fixed_pos < ZV))
            args_out_of_range_3 (position, make_fixnum (BEGV), make_fixnum 
(ZV));
-         pos = XFIXNAT (position);
+         pos = fixed_pos;
          p = CHAR_POS_ADDR (pos);
        }
       if (NILP (BVAR (current_buffer, enable_multibyte_characters)))
diff --git a/src/cmds.c b/src/cmds.c
index 5d7a45e..c342cd8 100644
--- a/src/cmds.c
+++ b/src/cmds.c
@@ -31,15 +31,6 @@ along with GNU Emacs.  If not, see 
<https://www.gnu.org/licenses/>.  */
 
 static int internal_self_insert (int, EMACS_INT);
 
-DEFUN ("forward-point", Fforward_point, Sforward_point, 1, 1, 0,
-       doc: /* Return buffer position N characters after (before if N 
negative) point.  */)
-  (Lisp_Object n)
-{
-  CHECK_FIXNUM (n);
-
-  return make_fixnum (PT + XFIXNUM (n));
-}
-
 /* Add N to point; or subtract N if FORWARD is false.  N defaults to 1.
    Validate the new location.  Return nil.  */
 static Lisp_Object
@@ -460,7 +451,10 @@ internal_self_insert (int c, EMACS_INT n)
          string = concat2 (string, tem);
        }
 
-      replace_range (PT, PT + chars_to_delete, string, 1, 1, 1, 0);
+      ptrdiff_t to;
+      if (INT_ADD_WRAPV (PT, chars_to_delete, &to))
+       to = PTRDIFF_MAX;
+      replace_range (PT, to, string, 1, 1, 1, 0);
       Fforward_char (make_fixnum (n));
     }
   else if (n > 1)
@@ -526,7 +520,6 @@ syms_of_cmds (void)
 This is run after inserting the character.  */);
   Vpost_self_insert_hook = Qnil;
 
-  defsubr (&Sforward_point);
   defsubr (&Sforward_char);
   defsubr (&Sbackward_char);
   defsubr (&Sforward_line);
diff --git a/src/coding.c b/src/coding.c
index 8b54281..0bea2a0c2 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -9023,23 +9023,23 @@ DEFUN ("find-coding-systems-region-internal",
     }
   else
     {
-      CHECK_FIXNUM_COERCE_MARKER (start);
-      CHECK_FIXNUM_COERCE_MARKER (end);
-      if (XFIXNUM (start) < BEG || XFIXNUM (end) > Z || XFIXNUM (start) > 
XFIXNUM (end))
+      EMACS_INT s = fix_position (start);
+      EMACS_INT e = fix_position (end);
+      if (! (BEG <= s && s <= e && e <= Z))
        args_out_of_range (start, end);
       if (NILP (BVAR (current_buffer, enable_multibyte_characters)))
        return Qt;
-      start_byte = CHAR_TO_BYTE (XFIXNUM (start));
-      end_byte = CHAR_TO_BYTE (XFIXNUM (end));
-      if (XFIXNUM (end) - XFIXNUM (start) == end_byte - start_byte)
+      start_byte = CHAR_TO_BYTE (s);
+      end_byte = CHAR_TO_BYTE (e);
+      if (e - s == end_byte - start_byte)
        return Qt;
 
-      if (XFIXNUM (start) < GPT && XFIXNUM (end) > GPT)
+      if (s < GPT && GPT < e)
        {
-         if ((GPT - XFIXNUM (start)) < (XFIXNUM (end) - GPT))
-           move_gap_both (XFIXNUM (start), start_byte);
+         if (GPT - s < e - GPT)
+           move_gap_both (s, start_byte);
          else
-           move_gap_both (XFIXNUM (end), end_byte);
+           move_gap_both (e, end_byte);
        }
     }
 
@@ -9277,25 +9277,25 @@ is nil.  */)
     }
   else
     {
-      CHECK_FIXNUM_COERCE_MARKER (start);
-      CHECK_FIXNUM_COERCE_MARKER (end);
-      if (XFIXNUM (start) < BEG || XFIXNUM (end) > Z || XFIXNUM (start) > 
XFIXNUM (end))
+      EMACS_INT s = fix_position (start);
+      EMACS_INT e = fix_position (end);
+      if (! (BEG <= s && s <= e && e <= Z))
        args_out_of_range (start, end);
       if (NILP (BVAR (current_buffer, enable_multibyte_characters)))
        return Qnil;
-      start_byte = CHAR_TO_BYTE (XFIXNUM (start));
-      end_byte = CHAR_TO_BYTE (XFIXNUM (end));
-      if (XFIXNUM (end) - XFIXNUM (start) == end_byte - start_byte)
+      start_byte = CHAR_TO_BYTE (s);
+      end_byte = CHAR_TO_BYTE (e);
+      if (e - s == end_byte - start_byte)
        return Qnil;
 
-      if (XFIXNUM (start) < GPT && XFIXNUM (end) > GPT)
+      if (s < GPT && GPT < e)
        {
-         if ((GPT - XFIXNUM (start)) < (XFIXNUM (end) - GPT))
-           move_gap_both (XFIXNUM (start), start_byte);
+         if (GPT - s < e - GPT)
+           move_gap_both (s, start_byte);
          else
-           move_gap_both (XFIXNUM (end), end_byte);
+           move_gap_both (e, end_byte);
        }
-      pos = XFIXNUM (start);
+      pos = s;
     }
 
   list = Qnil;
diff --git a/src/composite.c b/src/composite.c
index 05365cf..a00a454 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -818,6 +818,11 @@ fill_gstring_body (Lisp_Object gstring)
   Lisp_Object header = AREF (gstring, 0);
   ptrdiff_t len = LGSTRING_CHAR_LEN (gstring);
   ptrdiff_t i;
+  struct font *font = NULL;
+  unsigned int code;
+
+  if (FONT_OBJECT_P (font_object))
+    font = XFONT_OBJECT (font_object);
 
   for (i = 0; i < len; i++)
     {
@@ -832,10 +837,15 @@ fill_gstring_body (Lisp_Object gstring)
       LGLYPH_SET_FROM (g, i);
       LGLYPH_SET_TO (g, i);
       LGLYPH_SET_CHAR (g, c);
-      if (FONT_OBJECT_P (font_object))
-       {
-         font_fill_lglyph_metrics (g, font_object);
-       }
+
+      if (font != NULL)
+        code = font->driver->encode_char (font, LGLYPH_CHAR (g));
+      else
+        code = FONT_INVALID_CODE;
+      if (code != FONT_INVALID_CODE)
+        {
+         font_fill_lglyph_metrics (g, font, code);
+        }
       else
        {
          int width = XFIXNAT (CHAR_TABLE_REF (Vchar_width_table, c));
@@ -1829,27 +1839,24 @@ See `find-composition' for more details.  */)
   ptrdiff_t start, end, from, to;
   int id;
 
-  CHECK_FIXNUM_COERCE_MARKER (pos);
+  EMACS_INT fixed_pos = fix_position (pos);
   if (!NILP (limit))
-    {
-      CHECK_FIXNUM_COERCE_MARKER (limit);
-      to = min (XFIXNUM (limit), ZV);
-    }
+    to = clip_to_bounds (PTRDIFF_MIN, fix_position (limit), ZV);
   else
     to = -1;
 
   if (!NILP (string))
     {
       CHECK_STRING (string);
-      if (XFIXNUM (pos) < 0 || XFIXNUM (pos) > SCHARS (string))
+      if (! (0 <= fixed_pos && fixed_pos <= SCHARS (string)))
        args_out_of_range (string, pos);
     }
   else
     {
-      if (XFIXNUM (pos) < BEGV || XFIXNUM (pos) > ZV)
+      if (! (BEGV <= fixed_pos && fixed_pos <= ZV))
        args_out_of_range (Fcurrent_buffer (), pos);
     }
-  from = XFIXNUM (pos);
+  from = fixed_pos;
 
   if (!find_composition (from, to, &start, &end, &prop, string))
     {
@@ -1860,12 +1867,12 @@ See `find-composition' for more details.  */)
        return list3 (make_fixnum (start), make_fixnum (end), gstring);
       return Qnil;
     }
-  if ((end <= XFIXNUM (pos) || start > XFIXNUM (pos)))
+  if (! (start <= fixed_pos && fixed_pos < end))
     {
       ptrdiff_t s, e;
 
       if (find_automatic_composition (from, to, &s, &e, &gstring, string)
-         && (e <= XFIXNUM (pos) ? e > end : s < start))
+         && (e <= fixed_pos ? e > end : s < start))
        return list3 (make_fixnum (s), make_fixnum (e), gstring);
     }
   if (!composition_valid_p (start, end, prop))
diff --git a/src/conf_post.h b/src/conf_post.h
index 2f8d19f..eb8fb18 100644
--- a/src/conf_post.h
+++ b/src/conf_post.h
@@ -78,6 +78,7 @@ typedef bool bool_bf;
 # define __has_attribute_no_address_safety_analysis false
 # define __has_attribute_no_sanitize_address GNUC_PREREQ (4, 8, 0)
 # define __has_attribute_no_sanitize_undefined GNUC_PREREQ (4, 9, 0)
+# define __has_attribute_returns_nonnull GNUC_PREREQ (4, 9, 0)
 # define __has_attribute_warn_unused_result GNUC_PREREQ (3, 4, 0)
 #endif
 
@@ -321,6 +322,12 @@ extern int emacs_setenv_TZ (char const *);
 
 #define ATTRIBUTE_MALLOC_SIZE(args) ATTRIBUTE_MALLOC ATTRIBUTE_ALLOC_SIZE 
(args)
 
+#if __has_attribute (returns_nonnull)
+# define ATTRIBUTE_RETURNS_NONNULL __attribute__ ((returns_nonnull))
+#else
+# define ATTRIBUTE_RETURNS_NONNULL
+#endif
+
 /* Work around GCC bug 59600: when a function is inlined, the inlined
    code may have its addresses sanitized even if the function has the
    no_sanitize_address attribute.  This bug is fixed in GCC 4.9.0 and
diff --git a/src/data.c b/src/data.c
index fae9cee..bce2e53 100644
--- a/src/data.c
+++ b/src/data.c
@@ -143,15 +143,9 @@ wrong_length_argument (Lisp_Object a1, Lisp_Object a2, 
Lisp_Object a3)
 }
 
 AVOID
-wrong_type_argument (register Lisp_Object predicate, register Lisp_Object 
value)
+wrong_type_argument (Lisp_Object predicate, Lisp_Object value)
 {
-  /* If VALUE is not even a valid Lisp object, we'd want to abort here
-     where we can get a backtrace showing where it came from.  We used
-     to try and do that by checking the tagbits, but nowadays all
-     tagbits are potentially valid.  */
-  /* if ((unsigned int) XTYPE (value) >= Lisp_Type_Limit)
-   *   emacs_abort (); */
-
+  eassert (!TAGGEDP (value, Lisp_Type_Unused0));
   xsignal2 (Qwrong_type_argument, predicate, value);
 }
 
@@ -1573,7 +1567,7 @@ notify_variable_watchers (Lisp_Object symbol,
 /* Return the default value of SYMBOL, but don't check for voidness.
    Return Qunbound if it is void.  */
 
-static Lisp_Object
+Lisp_Object
 default_value (Lisp_Object symbol)
 {
   struct Lisp_Symbol *sym;
@@ -2339,6 +2333,24 @@ bool-vector.  IDX starts at 0.  */)
 
 /* Arithmetic functions */
 
+static Lisp_Object
+check_integer_coerce_marker (Lisp_Object x)
+{
+  if (MARKERP (x))
+    return make_fixnum (marker_position (x));
+  CHECK_TYPE (INTEGERP (x), Qinteger_or_marker_p, x);
+  return x;
+}
+
+static Lisp_Object
+check_number_coerce_marker (Lisp_Object x)
+{
+  if (MARKERP (x))
+    return make_fixnum (marker_position (x));
+  CHECK_TYPE (NUMBERP (x), Qnumber_or_marker_p, x);
+  return x;
+}
+
 Lisp_Object
 arithcompare (Lisp_Object num1, Lisp_Object num2,
              enum Arith_Comparison comparison)
@@ -2347,8 +2359,8 @@ arithcompare (Lisp_Object num1, Lisp_Object num2,
   bool lt, eq = true, gt;
   bool test;
 
-  CHECK_NUMBER_COERCE_MARKER (num1);
-  CHECK_NUMBER_COERCE_MARKER (num2);
+  num1 = check_number_coerce_marker (num1);
+  num2 = check_number_coerce_marker (num2);
 
   /* If the comparison is mostly done by comparing two doubles,
      set LT, EQ, and GT to the <, ==, > results of that comparison,
@@ -2750,9 +2762,7 @@ floatop_arith_driver (enum arithop code, ptrdiff_t nargs, 
Lisp_Object *args,
       argnum++;
       if (argnum == nargs)
        return make_float (accum);
-      Lisp_Object val = args[argnum];
-      CHECK_NUMBER_COERCE_MARKER (val);
-      next = XFLOATINT (val);
+      next = XFLOATINT (check_number_coerce_marker (args[argnum]));
     }
 }
 
@@ -2814,8 +2824,7 @@ bignum_arith_driver (enum arithop code, ptrdiff_t nargs, 
Lisp_Object *args,
       argnum++;
       if (argnum == nargs)
        return make_integer_mpz ();
-      val = args[argnum];
-      CHECK_NUMBER_COERCE_MARKER (val);
+      val = check_number_coerce_marker (args[argnum]);
       if (FLOATP (val))
        return float_arith_driver (code, nargs, args, argnum,
                                   mpz_get_d_rounded (*accum), val);
@@ -2844,8 +2853,7 @@ arith_driver (enum arithop code, ptrdiff_t nargs, 
Lisp_Object *args,
        argnum++;
        if (argnum == nargs)
          return make_int (accum);
-       val = args[argnum];
-       CHECK_NUMBER_COERCE_MARKER (val);
+       val = check_number_coerce_marker (args[argnum]);
 
        /* Set NEXT to the next value if it fits, else exit the loop.  */
        intmax_t next;
@@ -2892,8 +2900,7 @@ usage: (+ &rest NUMBERS-OR-MARKERS)  */)
 {
   if (nargs == 0)
     return make_fixnum (0);
-  Lisp_Object a = args[0];
-  CHECK_NUMBER_COERCE_MARKER (a);
+  Lisp_Object a = check_number_coerce_marker (args[0]);
   return nargs == 1 ? a : arith_driver (Aadd, nargs, args, a);
 }
 
@@ -2906,8 +2913,7 @@ usage: (- &optional NUMBER-OR-MARKER &rest 
MORE-NUMBERS-OR-MARKERS)  */)
 {
   if (nargs == 0)
     return make_fixnum (0);
-  Lisp_Object a = args[0];
-  CHECK_NUMBER_COERCE_MARKER (a);
+  Lisp_Object a = check_number_coerce_marker (args[0]);
   if (nargs == 1)
     {
       if (FIXNUMP (a))
@@ -2927,8 +2933,7 @@ usage: (* &rest NUMBERS-OR-MARKERS)  */)
 {
   if (nargs == 0)
     return make_fixnum (1);
-  Lisp_Object a = args[0];
-  CHECK_NUMBER_COERCE_MARKER (a);
+  Lisp_Object a = check_number_coerce_marker (args[0]);
   return nargs == 1 ? a : arith_driver (Amult, nargs, args, a);
 }
 
@@ -2940,8 +2945,7 @@ The arguments must be numbers or markers.
 usage: (/ NUMBER &rest DIVISORS)  */)
   (ptrdiff_t nargs, Lisp_Object *args)
 {
-  Lisp_Object a = args[0];
-  CHECK_NUMBER_COERCE_MARKER (a);
+  Lisp_Object a = check_number_coerce_marker (args[0]);
   if (nargs == 1)
     {
       if (FIXNUMP (a))
@@ -3023,10 +3027,10 @@ integer_remainder (Lisp_Object num, Lisp_Object den, 
bool modulo)
 DEFUN ("%", Frem, Srem, 2, 2, 0,
        doc: /* Return remainder of X divided by Y.
 Both must be integers or markers.  */)
-  (register Lisp_Object x, Lisp_Object y)
+  (Lisp_Object x, Lisp_Object y)
 {
-  CHECK_INTEGER_COERCE_MARKER (x);
-  CHECK_INTEGER_COERCE_MARKER (y);
+  x = check_integer_coerce_marker (x);
+  y = check_integer_coerce_marker (y);
   return integer_remainder (x, y, false);
 }
 
@@ -3036,8 +3040,8 @@ The result falls between zero (inclusive) and Y 
(exclusive).
 Both X and Y must be numbers or markers.  */)
   (Lisp_Object x, Lisp_Object y)
 {
-  CHECK_NUMBER_COERCE_MARKER (x);
-  CHECK_NUMBER_COERCE_MARKER (y);
+  x = check_number_coerce_marker (x);
+  y = check_number_coerce_marker (y);
   if (FLOATP (x) || FLOATP (y))
     return fmod_float (x, y);
   return integer_remainder (x, y, true);
@@ -3047,12 +3051,10 @@ static Lisp_Object
 minmax_driver (ptrdiff_t nargs, Lisp_Object *args,
               enum Arith_Comparison comparison)
 {
-  Lisp_Object accum = args[0];
-  CHECK_NUMBER_COERCE_MARKER (accum);
+  Lisp_Object accum = check_number_coerce_marker (args[0]);
   for (ptrdiff_t argnum = 1; argnum < nargs; argnum++)
     {
-      Lisp_Object val = args[argnum];
-      CHECK_NUMBER_COERCE_MARKER (val);
+      Lisp_Object val = check_number_coerce_marker (args[argnum]);
       if (!NILP (arithcompare (val, accum, comparison)))
        accum = val;
       else if (FLOATP (val) && isnan (XFLOAT_DATA (val)))
@@ -3087,8 +3089,7 @@ usage: (logand &rest INTS-OR-MARKERS)  */)
 {
   if (nargs == 0)
     return make_fixnum (-1);
-  Lisp_Object a = args[0];
-  CHECK_INTEGER_COERCE_MARKER (a);
+  Lisp_Object a = check_integer_coerce_marker (args[0]);
   return nargs == 1 ? a : arith_driver (Alogand, nargs, args, a);
 }
 
@@ -3100,8 +3101,7 @@ usage: (logior &rest INTS-OR-MARKERS)  */)
 {
   if (nargs == 0)
     return make_fixnum (0);
-  Lisp_Object a = args[0];
-  CHECK_INTEGER_COERCE_MARKER (a);
+  Lisp_Object a = check_integer_coerce_marker (args[0]);
   return nargs == 1 ? a : arith_driver (Alogior, nargs, args, a);
 }
 
@@ -3113,8 +3113,7 @@ usage: (logxor &rest INTS-OR-MARKERS)  */)
 {
   if (nargs == 0)
     return make_fixnum (0);
-  Lisp_Object a = args[0];
-  CHECK_INTEGER_COERCE_MARKER (a);
+  Lisp_Object a = check_integer_coerce_marker (args[0]);
   return nargs == 1 ? a : arith_driver (Alogxor, nargs, args, a);
 }
 
@@ -3233,9 +3232,9 @@ expt_integer (Lisp_Object x, Lisp_Object y)
 DEFUN ("1+", Fadd1, Sadd1, 1, 1, 0,
        doc: /* Return NUMBER plus one.  NUMBER may be a number or a marker.
 Markers are converted to integers.  */)
-  (register Lisp_Object number)
+  (Lisp_Object number)
 {
-  CHECK_NUMBER_COERCE_MARKER (number);
+  number = check_number_coerce_marker (number);
 
   if (FIXNUMP (number))
     return make_int (XFIXNUM (number) + 1);
@@ -3248,9 +3247,9 @@ Markers are converted to integers.  */)
 DEFUN ("1-", Fsub1, Ssub1, 1, 1, 0,
        doc: /* Return NUMBER minus one.  NUMBER may be a number or a marker.
 Markers are converted to integers.  */)
-  (register Lisp_Object number)
+  (Lisp_Object number)
 {
-  CHECK_NUMBER_COERCE_MARKER (number);
+  number = check_number_coerce_marker (number);
 
   if (FIXNUMP (number))
     return make_int (XFIXNUM (number) - 1);
diff --git a/src/dispextern.h b/src/dispextern.h
index 6246c7c..08380f1 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -2782,7 +2782,8 @@ struct it
     else                                                \
       produce_glyphs ((IT));                            \
     if ((IT)->glyph_row != NULL)                        \
-      inhibit_free_realized_faces = true;              \
+      inhibit_free_realized_faces =true;               \
+    reset_box_start_end_flags ((IT));                  \
   } while (false)
 
 /* Bit-flags indicating what operation move_it_to should perform.  */
@@ -3003,6 +3004,9 @@ struct redisplay_interface
   /* Cancel hourglass cursor on frame F.  */
   void (*hide_hourglass) (struct frame *f);
 
+  /* Called to (re)calculate the default face when changing the font
+     backend.  */
+  void (*default_font_parameter) (struct frame *f, Lisp_Object parms);
 #endif /* HAVE_WINDOW_SYSTEM */
 };
 
diff --git a/src/editfns.c b/src/editfns.c
index ddf190b..90520d0 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -725,18 +725,23 @@ boundaries, bind `inhibit-field-text-motion' to t.
 This function does not move point.  */)
   (Lisp_Object n)
 {
-  ptrdiff_t charpos, bytepos;
+  ptrdiff_t charpos, bytepos, count;
 
   if (NILP (n))
-    XSETFASTINT (n, 1);
+    count = 0;
+  else if (FIXNUMP (n))
+    count = clip_to_bounds (-BUF_BYTES_MAX, XFIXNUM (n) - 1, BUF_BYTES_MAX);
   else
-    CHECK_FIXNUM (n);
+    {
+      CHECK_INTEGER (n);
+      count = NILP (Fnatnump (n)) ? -BUF_BYTES_MAX : BUF_BYTES_MAX;
+    }
 
-  scan_newline_from_point (XFIXNUM (n) - 1, &charpos, &bytepos);
+  scan_newline_from_point (count, &charpos, &bytepos);
 
   /* Return END constrained to the current input field.  */
   return Fconstrain_to_field (make_fixnum (charpos), make_fixnum (PT),
-                             XFIXNUM (n) != 1 ? Qt : Qnil,
+                             count != 0 ? Qt : Qnil,
                              Qt, Qnil);
 }
 
@@ -763,11 +768,14 @@ This function does not move point.  */)
   ptrdiff_t orig = PT;
 
   if (NILP (n))
-    XSETFASTINT (n, 1);
+    clipped_n = 1;
+  else if (FIXNUMP (n))
+    clipped_n = clip_to_bounds (-BUF_BYTES_MAX, XFIXNUM (n), BUF_BYTES_MAX);
   else
-    CHECK_FIXNUM (n);
-
-  clipped_n = clip_to_bounds (PTRDIFF_MIN + 1, XFIXNUM (n), PTRDIFF_MAX);
+    {
+      CHECK_INTEGER (n);
+      clipped_n = NILP (Fnatnump (n)) ? -BUF_BYTES_MAX : BUF_BYTES_MAX;
+    }
   end_pos = find_before_next_newline (orig, 0, clipped_n - (clipped_n <= 0),
                                      NULL);
 
@@ -940,10 +948,10 @@ DEFUN ("position-bytes", Fposition_bytes, 
Sposition_bytes, 1, 1, 0,
 If POSITION is out of range, the value is nil.  */)
   (Lisp_Object position)
 {
-  CHECK_FIXNUM_COERCE_MARKER (position);
-  if (XFIXNUM (position) < BEG || XFIXNUM (position) > Z)
+  EMACS_INT pos = fix_position (position);
+  if (! (BEG <= pos && pos <= Z))
     return Qnil;
-  return make_fixnum (CHAR_TO_BYTE (XFIXNUM (position)));
+  return make_fixnum (CHAR_TO_BYTE (pos));
 }
 
 DEFUN ("byte-to-position", Fbyte_to_position, Sbyte_to_position, 1, 1, 0,
@@ -1060,11 +1068,11 @@ If POS is out of range, the value is nil.  */)
     }
   else
     {
-      CHECK_FIXNUM_COERCE_MARKER (pos);
-      if (XFIXNUM (pos) < BEGV || XFIXNUM (pos) >= ZV)
+      EMACS_INT p = fix_position (pos);
+      if (! (BEGV <= p && p < ZV))
        return Qnil;
 
-      pos_byte = CHAR_TO_BYTE (XFIXNUM (pos));
+      pos_byte = CHAR_TO_BYTE (p);
     }
 
   return make_fixnum (FETCH_CHAR (pos_byte));
@@ -1094,12 +1102,12 @@ If POS is out of range, the value is nil.  */)
     }
   else
     {
-      CHECK_FIXNUM_COERCE_MARKER (pos);
+      EMACS_INT p = fix_position (pos);
 
-      if (XFIXNUM (pos) <= BEGV || XFIXNUM (pos) > ZV)
+      if (! (BEGV < p && p <= ZV))
        return Qnil;
 
-      pos_byte = CHAR_TO_BYTE (XFIXNUM (pos));
+      pos_byte = CHAR_TO_BYTE (p);
     }
 
   if (!NILP (BVAR (current_buffer, enable_multibyte_characters)))
@@ -1262,14 +1270,17 @@ name, or nil if there is no such user.  */)
   if (q)
     {
       Lisp_Object login = Fuser_login_name (INT_TO_INTEGER (pw->pw_uid));
-      USE_SAFE_ALLOCA;
-      char *r = SAFE_ALLOCA (strlen (p) + SBYTES (login) + 1);
-      memcpy (r, p, q - p);
-      char *s = lispstpcpy (&r[q - p], login);
-      r[q - p] = upcase ((unsigned char) r[q - p]);
-      strcpy (s, q + 1);
-      full = build_string (r);
-      SAFE_FREE ();
+      if (!NILP (login))
+       {
+         USE_SAFE_ALLOCA;
+         char *r = SAFE_ALLOCA (strlen (p) + SBYTES (login) + 1);
+         memcpy (r, p, q - p);
+         char *s = lispstpcpy (&r[q - p], login);
+         r[q - p] = upcase ((unsigned char) r[q - p]);
+         strcpy (s, q + 1);
+         full = build_string (r);
+         SAFE_FREE ();
+       }
     }
 #endif /* AMPERSAND_FULL_NAME */
 
@@ -1715,21 +1726,8 @@ using `string-make-multibyte' or `string-make-unibyte', 
which see.  */)
   if (!BUFFER_LIVE_P (bp))
     error ("Selecting deleted buffer");
 
-  if (NILP (start))
-    b = BUF_BEGV (bp);
-  else
-    {
-      CHECK_FIXNUM_COERCE_MARKER (start);
-      b = XFIXNUM (start);
-    }
-  if (NILP (end))
-    e = BUF_ZV (bp);
-  else
-    {
-      CHECK_FIXNUM_COERCE_MARKER (end);
-      e = XFIXNUM (end);
-    }
-
+  b = !NILP (start) ? fix_position (start) : BUF_BEGV (bp);
+  e = !NILP (end) ? fix_position (end) : BUF_ZV (bp);
   if (b > e)
     temp = b, b = e, e = temp;
 
@@ -1783,21 +1781,8 @@ determines whether case is significant or ignored.  */)
        error ("Selecting deleted buffer");
     }
 
-  if (NILP (start1))
-    begp1 = BUF_BEGV (bp1);
-  else
-    {
-      CHECK_FIXNUM_COERCE_MARKER (start1);
-      begp1 = XFIXNUM (start1);
-    }
-  if (NILP (end1))
-    endp1 = BUF_ZV (bp1);
-  else
-    {
-      CHECK_FIXNUM_COERCE_MARKER (end1);
-      endp1 = XFIXNUM (end1);
-    }
-
+  begp1 = !NILP (start1) ? fix_position (start1) : BUF_BEGV (bp1);
+  endp1 = !NILP (end1) ? fix_position (end1) : BUF_ZV (bp1);
   if (begp1 > endp1)
     temp = begp1, begp1 = endp1, endp1 = temp;
 
@@ -1821,21 +1806,8 @@ determines whether case is significant or ignored.  */)
        error ("Selecting deleted buffer");
     }
 
-  if (NILP (start2))
-    begp2 = BUF_BEGV (bp2);
-  else
-    {
-      CHECK_FIXNUM_COERCE_MARKER (start2);
-      begp2 = XFIXNUM (start2);
-    }
-  if (NILP (end2))
-    endp2 = BUF_ZV (bp2);
-  else
-    {
-      CHECK_FIXNUM_COERCE_MARKER (end2);
-      endp2 = XFIXNUM (end2);
-    }
-
+  begp2 = !NILP (start2) ? fix_position (start2) : BUF_BEGV (bp2);
+  endp2 = !NILP (end2) ? fix_position (end2) : BUF_ZV (bp2);
   if (begp2 > endp2)
     temp = begp2, begp2 = endp2, endp2 = temp;
 
@@ -2689,29 +2661,27 @@ See also `save-restriction'.
 When calling from Lisp, pass two arguments START and END:
 positions (integers or markers) bounding the text that should
 remain visible.  */)
-  (register Lisp_Object start, Lisp_Object end)
+  (Lisp_Object start, Lisp_Object end)
 {
-  CHECK_FIXNUM_COERCE_MARKER (start);
-  CHECK_FIXNUM_COERCE_MARKER (end);
+  EMACS_INT s = fix_position (start), e = fix_position (end);
 
-  if (XFIXNUM (start) > XFIXNUM (end))
+  if (e < s)
     {
-      Lisp_Object tem;
-      tem = start; start = end; end = tem;
+      EMACS_INT tem = s; s = e; e = tem;
     }
 
-  if (!(BEG <= XFIXNUM (start) && XFIXNUM (start) <= XFIXNUM (end) && XFIXNUM 
(end) <= Z))
+  if (!(BEG <= s && s <= e && e <= Z))
     args_out_of_range (start, end);
 
-  if (BEGV != XFIXNAT (start) || ZV != XFIXNAT (end))
+  if (BEGV != s || ZV != e)
     current_buffer->clip_changed = 1;
 
-  SET_BUF_BEGV (current_buffer, XFIXNAT (start));
-  SET_BUF_ZV (current_buffer, XFIXNAT (end));
-  if (PT < XFIXNAT (start))
-    SET_PT (XFIXNAT (start));
-  if (PT > XFIXNAT (end))
-    SET_PT (XFIXNAT (end));
+  SET_BUF_BEGV (current_buffer, s);
+  SET_BUF_ZV (current_buffer, e);
+  if (PT < s)
+    SET_PT (s);
+  if (e < PT)
+    SET_PT (e);
   /* Changing the buffer bounds invalidates any recorded current column.  */
   invalidate_current_column ();
   return Qnil;
diff --git a/src/emacs-module.c b/src/emacs-module.c
index 60f1641..cdcbe06 100644
--- a/src/emacs-module.c
+++ b/src/emacs-module.c
@@ -88,6 +88,7 @@ To add a new module function, proceed as follows:
 #include "dynlib.h"
 #include "coding.h"
 #include "keyboard.h"
+#include "process.h"
 #include "syssignal.h"
 #include "sysstdio.h"
 #include "thread.h"
@@ -977,6 +978,13 @@ module_make_big_integer (emacs_env *env, int sign,
   return lisp_to_value (env, make_integer_mpz ());
 }
 
+static int
+module_open_channel (emacs_env *env, emacs_value pipe_process)
+{
+  MODULE_FUNCTION_BEGIN (-1);
+  return open_channel_for_module (value_to_lisp (pipe_process));
+}
+
 
 /* Subroutines.  */
 
@@ -1391,6 +1399,7 @@ initialize_environment (emacs_env *env, struct 
emacs_env_private *priv)
   env->make_big_integer = module_make_big_integer;
   env->get_function_finalizer = module_get_function_finalizer;
   env->set_function_finalizer = module_set_function_finalizer;
+  env->open_channel = module_open_channel;
   Vmodule_environments = Fcons (make_mint_ptr (env), Vmodule_environments);
   return env;
 }
diff --git a/src/emacs.c b/src/emacs.c
index c170333..ea9c4cd 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -1243,6 +1243,7 @@ main (int argc, char **argv)
   if (! (lc_all && strcmp (lc_all, "C") == 0))
     {
       #ifdef HAVE_NS
+        ns_pool = ns_alloc_autorelease_pool ();
         ns_init_locale ();
       #endif
       setlocale (LC_ALL, "");
@@ -1612,8 +1613,6 @@ Using an Emacs configured with --with-x-toolkit=lucid 
does not have this problem
 #endif
 
 #ifdef HAVE_NS
-  ns_pool = ns_alloc_autorelease_pool ();
-
   if (!noninteractive)
     {
 #ifdef NS_IMPL_COCOA
@@ -1965,7 +1964,6 @@ Using an Emacs configured with --with-x-toolkit=lucid 
does not have this problem
   /* This calls putenv and so must precede init_process_emacs.  */
   init_timefns ();
 
-  /* This sets Voperating_system_release, which init_process_emacs uses.  */
   init_editfns ();
 
   /* These two call putenv.  */
diff --git a/src/eval.c b/src/eval.c
index 4559a0e..78a787c 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -3816,7 +3816,7 @@ backtrace_eval_unrewind (int distance)
          {
            Lisp_Object sym = specpdl_symbol (tmp);
            Lisp_Object old_value = specpdl_old_value (tmp);
-           set_specpdl_old_value (tmp, Fdefault_value (sym));
+           set_specpdl_old_value (tmp, default_value (sym));
            Fset_default (sym, old_value);
          }
          break;
@@ -3832,7 +3832,7 @@ backtrace_eval_unrewind (int distance)
            if (!NILP (Flocal_variable_p (symbol, where)))
              {
                set_specpdl_old_value
-                 (tmp, Fbuffer_local_value (symbol, where));
+                 (tmp, buffer_local_value (symbol, where));
                 set_internal (symbol, old_value, where, SET_INTERNAL_UNBIND);
              }
          }
diff --git a/src/fileio.c b/src/fileio.c
index 87a17ea..ffe7955 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -2077,7 +2077,7 @@ permissions.  */)
       report_file_error ("Copying permissions from", file);
     case -3:
       xsignal2 (Qfile_date_error,
-               build_string ("Resetting file times"), newname);
+               build_string ("Cannot set file date"), newname);
     case -4:
       report_file_error ("Copying permissions to", newname);
     }
@@ -2253,9 +2253,8 @@ permissions.  */)
 
   if (!NILP (keep_time))
     {
-      struct timespec atime = get_stat_atime (&st);
-      struct timespec mtime = get_stat_mtime (&st);
-      if (set_file_times (ofd, SSDATA (encoded_newname), atime, mtime) != 0)
+      struct timespec ts[] = { get_stat_atime (&st), get_stat_mtime (&st) };
+      if (futimens (ofd, ts) != 0)
        xsignal2 (Qfile_date_error,
                  build_string ("Cannot set file date"), newname);
     }
@@ -2916,7 +2915,7 @@ See `file-symlink-p' to distinguish symlinks.  */)
   if (!NILP (handler))
     return call2 (handler, Qfile_directory_p, absname);
 
-  return file_directory_p (absname) ? Qt : Qnil;
+  return file_directory_p (ENCODE_FILE (absname)) ? Qt : Qnil;
 }
 
 /* Return true if FILE is a directory or a symlink to a directory.
@@ -3332,50 +3331,60 @@ support.  */)
   return Qnil;
 }
 
-DEFUN ("file-modes", Ffile_modes, Sfile_modes, 1, 1, 0,
+static int
+symlink_nofollow_flag (Lisp_Object flag)
+{
+  /* For now, treat all non-nil FLAGs like 'nofollow'.  */
+  return !NILP (flag) ? AT_SYMLINK_NOFOLLOW : 0;
+}
+
+DEFUN ("file-modes", Ffile_modes, Sfile_modes, 1, 2, 0,
        doc: /* Return mode bits of file named FILENAME, as an integer.
-Return nil if FILENAME does not exist.  */)
-  (Lisp_Object filename)
+Return nil if FILENAME does not exist.  If optional FLAG is `nofollow',
+do not follow FILENAME if it is a symbolic link.  */)
+  (Lisp_Object filename, Lisp_Object flag)
 {
   struct stat st;
+  int nofollow = symlink_nofollow_flag (flag);
   Lisp_Object absname = expand_and_dir_to_file (filename);
 
   /* If the file name has special constructs in it,
      call the corresponding file name handler.  */
   Lisp_Object handler = Ffind_file_name_handler (absname, Qfile_modes);
   if (!NILP (handler))
-    return call2 (handler, Qfile_modes, absname);
+    return call3 (handler, Qfile_modes, absname, flag);
 
-  if (emacs_fstatat (AT_FDCWD, SSDATA (ENCODE_FILE (absname)), &st, 0) != 0)
+  char *fname = SSDATA (ENCODE_FILE (absname));
+  if (emacs_fstatat (AT_FDCWD, fname, &st, nofollow) != 0)
     return file_attribute_errno (absname, errno);
   return make_fixnum (st.st_mode & 07777);
 }
 
-DEFUN ("set-file-modes", Fset_file_modes, Sset_file_modes, 2, 2,
+DEFUN ("set-file-modes", Fset_file_modes, Sset_file_modes, 2, 3,
        "(let ((file (read-file-name \"File: \")))                      \
          (list file (read-file-modes nil file)))",
        doc: /* Set mode bits of file named FILENAME to MODE (an integer).
-Only the 12 low bits of MODE are used.
+Only the 12 low bits of MODE are used.  If optional FLAG is `nofollow',
+do not follow FILENAME if it is a symbolic link.
 
 Interactively, mode bits are read by `read-file-modes', which accepts
 symbolic notation, like the `chmod' command from GNU Coreutils.  */)
-  (Lisp_Object filename, Lisp_Object mode)
+  (Lisp_Object filename, Lisp_Object mode, Lisp_Object flag)
 {
-  Lisp_Object absname, encoded_absname;
-  Lisp_Object handler;
-
-  absname = Fexpand_file_name (filename, BVAR (current_buffer, directory));
   CHECK_FIXNUM (mode);
+  int nofollow = symlink_nofollow_flag (flag);
+  Lisp_Object absname = Fexpand_file_name (filename,
+                                          BVAR (current_buffer, directory));
 
   /* If the file name has special constructs in it,
      call the corresponding file name handler.  */
-  handler = Ffind_file_name_handler (absname, Qset_file_modes);
+  Lisp_Object handler = Ffind_file_name_handler (absname, Qset_file_modes);
   if (!NILP (handler))
-    return call3 (handler, Qset_file_modes, absname, mode);
+    return call4 (handler, Qset_file_modes, absname, mode, flag);
 
-  encoded_absname = ENCODE_FILE (absname);
-
-  if (chmod (SSDATA (encoded_absname), XFIXNUM (mode) & 07777) < 0)
+  char *fname = SSDATA (ENCODE_FILE (absname));
+  mode_t imode = XFIXNUM (mode) & 07777;
+  if (fchmodat (AT_FDCWD, fname, imode, nofollow) != 0)
     report_file_error ("Doing chmod", absname);
 
   return Qnil;
@@ -3420,39 +3429,41 @@ The value is an integer.  */)
 }
 
 
-DEFUN ("set-file-times", Fset_file_times, Sset_file_times, 1, 2, 0,
+DEFUN ("set-file-times", Fset_file_times, Sset_file_times, 1, 3, 0,
        doc: /* Set times of file FILENAME to TIMESTAMP.
-Set both access and modification times.
-Return t on success, else nil.
-Use the current time if TIMESTAMP is nil.  TIMESTAMP is in the format of
-`current-time'. */)
-  (Lisp_Object filename, Lisp_Object timestamp)
+If optional FLAG is `nofollow', do not follow FILENAME if it is a
+symbolic link.  Set both access and modification times.  Return t on
+success, else nil.  Use the current time if TIMESTAMP is nil.
+TIMESTAMP is in the format of `current-time'. */)
+  (Lisp_Object filename, Lisp_Object timestamp, Lisp_Object flag)
 {
-  Lisp_Object absname, encoded_absname;
-  Lisp_Object handler;
-  struct timespec t = lisp_time_argument (timestamp);
+  int nofollow = symlink_nofollow_flag (flag);
 
-  absname = Fexpand_file_name (filename, BVAR (current_buffer, directory));
+  struct timespec ts[2];
+  if (!NILP (timestamp))
+    ts[0] = ts[1] = lisp_time_argument (timestamp);
+  else
+    ts[0].tv_nsec = ts[1].tv_nsec = UTIME_NOW;
 
   /* If the file name has special constructs in it,
      call the corresponding file name handler.  */
-  handler = Ffind_file_name_handler (absname, Qset_file_times);
+  Lisp_Object
+    absname = Fexpand_file_name (filename, BVAR (current_buffer, directory)),
+    handler = Ffind_file_name_handler (absname, Qset_file_times);
   if (!NILP (handler))
-    return call3 (handler, Qset_file_times, absname, timestamp);
+    return call4 (handler, Qset_file_times, absname, timestamp, flag);
 
-  encoded_absname = ENCODE_FILE (absname);
+  Lisp_Object encoded_absname = ENCODE_FILE (absname);
 
-  {
-    if (set_file_times (-1, SSDATA (encoded_absname), t, t) != 0)
-      {
+  if (utimensat (AT_FDCWD, SSDATA (encoded_absname), ts, nofollow) != 0)
+    {
 #ifdef MSDOS
-        /* Setting times on a directory always fails.  */
-        if (file_directory_p (encoded_absname))
-          return Qnil;
+      /* Setting times on a directory always fails.  */
+      if (file_directory_p (encoded_absname))
+       return Qnil;
 #endif
-        report_file_error ("Setting file times", absname);
-      }
-  }
+      report_file_error ("Setting file times", absname);
+    }
 
   return Qt;
 }
@@ -5740,7 +5751,7 @@ auto_save_1 (void)
          == 0)
        /* But make sure we can overwrite it later!  */
        auto_save_mode_bits = (st.st_mode | 0600) & 0777;
-      else if (modes = Ffile_modes (BVAR (current_buffer, filename)),
+      else if (modes = Ffile_modes (BVAR (current_buffer, filename), Qnil),
               FIXNUMP (modes))
        /* Remote files don't cooperate with fstatat.  */
        auto_save_mode_bits = (XFIXNUM (modes) | 0600) & 0777;
diff --git a/src/filelock.c b/src/filelock.c
index 73202f0..ee46e0e 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -661,7 +661,7 @@ void
 lock_file (Lisp_Object fn)
 {
   Lisp_Object orig_fn, encoded_fn;
-  char *lfname;
+  char *lfname = NULL;
   lock_info_type lock_info;
   USE_SAFE_ALLOCA;
 
@@ -680,28 +680,22 @@ lock_file (Lisp_Object fn)
   dostounix_filename (SSDATA (fn));
 #endif
   encoded_fn = ENCODE_FILE (fn);
+  if (create_lockfiles)
+    /* Create the name of the lock-file for file fn */
+    MAKE_LOCK_NAME (lfname, encoded_fn);
 
   /* See if this file is visited and has changed on disk since it was
      visited.  */
-  {
-    register Lisp_Object subject_buf;
-
-    subject_buf = get_truename_buffer (orig_fn);
-
-    if (!NILP (subject_buf)
-       && NILP (Fverify_visited_file_modtime (subject_buf))
-       && !NILP (Ffile_exists_p (fn)))
-      call1 (intern ("userlock--ask-user-about-supersession-threat"), fn);
-
-  }
+  Lisp_Object subject_buf = get_truename_buffer (orig_fn);
+  if (!NILP (subject_buf)
+      && NILP (Fverify_visited_file_modtime (subject_buf))
+      && !NILP (Ffile_exists_p (fn))
+      && !(lfname && current_lock_owner (NULL, lfname) == -2))
+    call1 (intern ("userlock--ask-user-about-supersession-threat"), fn);
 
   /* Don't do locking if the user has opted out.  */
-  if (create_lockfiles)
+  if (lfname)
     {
-
-      /* Create the name of the lock-file for file fn */
-      MAKE_LOCK_NAME (lfname, encoded_fn);
-
       /* Try to lock the lock.  FIXME: This ignores errors when
         lock_if_free returns a positive errno value.  */
       if (lock_if_free (&lock_info, lfname) < 0)
@@ -860,7 +854,7 @@ syms_of_filelock (void)
 The name of the (per-buffer) lockfile is constructed by prepending a
 '.#' to the name of the file being locked.  See also `lock-buffer' and
 Info node `(emacs)Interlocking'.  */);
-  create_lockfiles = 1;
+  create_lockfiles = true;
 
   defsubr (&Sunlock_buffer);
   defsubr (&Slock_buffer);
diff --git a/src/fns.c b/src/fns.c
index 436ef1c..138082e 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -2843,7 +2843,7 @@ advisable.  */)
   while (loads-- > 0)
     {
       Lisp_Object load = (NILP (use_floats)
-                         ? make_fixnum (100.0 * load_ave[loads])
+                         ? double_to_integer (100.0 * load_ave[loads])
                          : make_float (load_ave[loads]));
       ret = Fcons (load, ret);
     }
@@ -5187,22 +5187,8 @@ extract_data_from_object (Lisp_Object spec,
       struct buffer *bp = XBUFFER (object);
       set_buffer_internal (bp);
 
-      if (NILP (start))
-       b = BEGV;
-      else
-       {
-         CHECK_FIXNUM_COERCE_MARKER (start);
-         b = XFIXNUM (start);
-       }
-
-      if (NILP (end))
-       e = ZV;
-      else
-       {
-         CHECK_FIXNUM_COERCE_MARKER (end);
-         e = XFIXNUM (end);
-       }
-
+      b = !NILP (start) ? fix_position (start) : BEGV;
+      e = !NILP (end) ? fix_position (end) : ZV;
       if (b > e)
        {
          EMACS_INT temp = b;
diff --git a/src/font.c b/src/font.c
index bb39aef..0c9e752 100644
--- a/src/font.c
+++ b/src/font.c
@@ -4416,10 +4416,8 @@ DEFUN ("clear-font-cache", Fclear_font_cache, 
Sclear_font_cache, 0, 0, 0,
 
 
 void
-font_fill_lglyph_metrics (Lisp_Object glyph, Lisp_Object font_object)
+font_fill_lglyph_metrics (Lisp_Object glyph, struct font *font, unsigned int 
code)
 {
-  struct font *font = XFONT_OBJECT (font_object);
-  unsigned code = font->driver->encode_char (font, LGLYPH_CHAR (glyph));
   struct font_metrics metrics;
 
   LGLYPH_SET_CODE (glyph, code);
@@ -4608,10 +4606,10 @@ DEFUN ("internal-char-font", Finternal_char_font, 
Sinternal_char_font, 1, 2, 0,
       Lisp_Object window;
       struct window *w;
 
-      CHECK_FIXNUM_COERCE_MARKER (position);
-      if (! (BEGV <= XFIXNUM (position) && XFIXNUM (position) < ZV))
+      EMACS_INT fixed_pos = fix_position (position);
+      if (! (BEGV <= fixed_pos && fixed_pos < ZV))
        args_out_of_range_3 (position, make_fixnum (BEGV), make_fixnum (ZV));
-      pos = XFIXNUM (position);
+      pos = fixed_pos;
       pos_byte = CHAR_TO_BYTE (pos);
       if (NILP (ch))
        c = FETCH_CHAR (pos_byte);
@@ -5015,24 +5013,26 @@ character at index specified by POSITION.  */)
   (Lisp_Object position, Lisp_Object window, Lisp_Object string)
 {
   struct window *w = decode_live_window (window);
+  EMACS_INT pos;
 
   if (NILP (string))
     {
       if (XBUFFER (w->contents) != current_buffer)
        error ("Specified window is not displaying the current buffer");
-      CHECK_FIXNUM_COERCE_MARKER (position);
-      if (! (BEGV <= XFIXNUM (position) && XFIXNUM (position) < ZV))
+      pos = fix_position (position);
+      if (! (BEGV <= pos && pos < ZV))
        args_out_of_range_3 (position, make_fixnum (BEGV), make_fixnum (ZV));
     }
   else
     {
       CHECK_FIXNUM (position);
       CHECK_STRING (string);
-      if (! (0 <= XFIXNUM (position) && XFIXNUM (position) < SCHARS (string)))
+      pos = XFIXNUM (position);
+      if (! (0 <= pos && pos < SCHARS (string)))
        args_out_of_range (string, position);
     }
 
-  return font_at (-1, XFIXNUM (position), NULL, w, string);
+  return font_at (-1, pos, NULL, w, string);
 }
 
 #if 0
diff --git a/src/font.h b/src/font.h
index 0561e3c..8614e7f 100644
--- a/src/font.h
+++ b/src/font.h
@@ -886,7 +886,7 @@ extern Lisp_Object font_update_drivers (struct frame *f, 
Lisp_Object list);
 extern Lisp_Object font_range (ptrdiff_t, ptrdiff_t, ptrdiff_t *,
                               struct window *, struct face *,
                               Lisp_Object);
-extern void font_fill_lglyph_metrics (Lisp_Object, Lisp_Object);
+extern void font_fill_lglyph_metrics (Lisp_Object, struct font *, unsigned 
int);
 
 extern Lisp_Object font_put_extra (Lisp_Object font, Lisp_Object prop,
                                    Lisp_Object val);
diff --git a/src/fontset.c b/src/fontset.c
index bca9452..c2bb8b2 100644
--- a/src/fontset.c
+++ b/src/fontset.c
@@ -367,8 +367,14 @@ fontset_add (Lisp_Object fontset, Lisp_Object range, 
Lisp_Object elt, Lisp_Objec
 static int
 fontset_compare_rfontdef (const void *val1, const void *val2)
 {
-  return (RFONT_DEF_SCORE (*(Lisp_Object *) val1)
-         - RFONT_DEF_SCORE (*(Lisp_Object *) val2));
+  Lisp_Object v1 = *(Lisp_Object *) val1, v2 = *(Lisp_Object *) val2;
+  if (NILP (v1) && NILP (v2))
+    return 0;
+  else if (NILP (v1))
+    return INT_MIN;
+  else if (NILP (v2))
+    return INT_MAX;
+  return (RFONT_DEF_SCORE (v1) - RFONT_DEF_SCORE (v2));
 }
 
 /* Update a cons cell which has this form:
@@ -400,6 +406,8 @@ reorder_font_vector (Lisp_Object font_group, struct font 
*font)
   for (i = 0; i < size; i++)
     {
       Lisp_Object rfont_def = AREF (vec, i);
+      if (NILP (rfont_def))
+       continue;
       Lisp_Object font_def = RFONT_DEF_FONT_DEF (rfont_def);
       Lisp_Object font_spec = FONT_DEF_SPEC (font_def);
       int score = RFONT_DEF_SCORE (rfont_def) & 0xFF;
diff --git a/src/frame.c b/src/frame.c
index 51fc78a..c7e4f2f 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -4565,7 +4565,11 @@ gui_set_font_backend (struct frame *f, Lisp_Object 
new_value, Lisp_Object old_va
     return;
 
   if (FRAME_FONT (f))
-    free_all_realized_faces (Qnil);
+    {
+      Lisp_Object frame;
+      XSETFRAME (frame, f);
+      free_all_realized_faces (frame);
+    }
 
   new_value = font_update_drivers (f, NILP (new_value) ? Qt : new_value);
   if (NILP (new_value))
@@ -4579,10 +4583,8 @@ gui_set_font_backend (struct frame *f, Lisp_Object 
new_value, Lisp_Object old_va
 
   if (FRAME_FONT (f))
     {
-      Lisp_Object frame;
-
-      XSETFRAME (frame, f);
-      gui_set_font (f, Fframe_parameter (frame, Qfont), Qnil);
+      /* Reconsider default font after backend(s) change (Bug#23386).  */
+      FRAME_RIF(f)->default_font_parameter (f, Qnil);
       face_change = true;
       windows_or_buffers_changed = 18;
     }
diff --git a/src/fringe.c b/src/fringe.c
index 97aad84..d8d80bb 100644
--- a/src/fringe.c
+++ b/src/fringe.c
@@ -1500,7 +1500,8 @@ DEFUN ("define-fringe-bitmap", Fdefine_fringe_bitmap, 
Sdefine_fringe_bitmap,
 BITMAP is a symbol identifying the new fringe bitmap.
 BITS is either a string or a vector of integers.
 HEIGHT is height of bitmap.  If HEIGHT is nil, use length of BITS.
-WIDTH must be an integer between 1 and 16, or nil which defaults to 8.
+WIDTH must be an integer from 1 to 16, or nil which defaults to 8.  An
+error is signaled if WIDTH is outside this range.
 Optional fifth arg ALIGN may be one of `top', `center', or `bottom',
 indicating the positioning of the bitmap relative to the rows where it
 is used; the default is to center the bitmap.  Fifth arg may also be a
@@ -1535,7 +1536,9 @@ If BITMAP already exists, the existing definition is 
replaced.  */)
   else
     {
       CHECK_FIXNUM (width);
-      fb.width = max (0, min (XFIXNUM (width), 255));
+      fb.width = max (1, min (XFIXNUM (width), 16));
+      if (fb.width != XFIXNUM (width))
+        args_out_of_range (width, build_string ("Width must be from 1 to 16"));
     }
 
   fb.period = 0;
@@ -1672,10 +1675,10 @@ Return nil if POS is not visible in WINDOW.  */)
 
   if (!NILP (pos))
     {
-      CHECK_FIXNUM_COERCE_MARKER (pos);
-      if (! (BEGV <= XFIXNUM (pos) && XFIXNUM (pos) <= ZV))
+      EMACS_INT p = fix_position (pos);
+      if (! (BEGV <= p && p <= ZV))
        args_out_of_range (window, pos);
-      textpos = XFIXNUM (pos);
+      textpos = p;
     }
   else if (w == XWINDOW (selected_window))
     textpos = PT;
diff --git a/src/ftfont.c b/src/ftfont.c
index 219e214..6b549c3 100644
--- a/src/ftfont.c
+++ b/src/ftfont.c
@@ -102,7 +102,7 @@ static struct
     { "iso8859-15", { 0x00A0, 0x00A1, 0x00D0, 0x0152 }},
     { "iso8859-16", { 0x00A0, 0x0218}},
     { "gb2312.1980-0", { 0x4E13 }, "zh-cn"},
-    { "big5-0", { 0xF6B1 }, "zh-tw" },
+    { "big5-0", { 0x9C21 }, "zh-tw" },
     { "jisx0208.1983-0", { 0x4E55 }, "ja"},
     { "ksc5601.1985-0", { 0xAC00 }, "ko"},
     { "cns11643.1992-1", { 0xFE32 }, "zh-tw"},
@@ -119,7 +119,7 @@ static struct
     { "jisx0213.2004-1", { 0x20B9F }},
     { "viscii1.1-1", { 0x1EA0, 0x1EAE, 0x1ED2 }, "vi"},
     { "tis620.2529-1", { 0x0E01 }, "th"},
-    { "windows-1251", { 0x0401, 0x0490 }, "ru"},
+    { "microsoft-cp1251", { 0x0401, 0x0490 }, "ru"},
     { "koi8-r", { 0x0401, 0x2219 }, "ru"},
     { "mulelao-1", { 0x0E81 }, "lo"},
     { "unicode-sip", { 0x20000 }},
diff --git a/src/gnutls.c b/src/gnutls.c
index 31fcd37..70176c4 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -2834,16 +2834,21 @@ Any GnuTLS extension with ID up to 100
 void
 syms_of_gnutls (void)
 {
-  DEFSYM (Qlibgnutls_version, "libgnutls-version");
-  Fset (Qlibgnutls_version,
+  DEFVAR_LISP ("libgnutls-version", Vlibgnutls_version,
+               doc: /* The version of libgnutls that Emacs was compiled with.
+The version number is encoded as an integer with the major version in
+the ten thousands place, minor version in the hundreds, and patch
+level in the ones.  For builds without libgnutls, the value is -1.  */);
+  Vlibgnutls_version = make_fixnum
 #ifdef HAVE_GNUTLS
-       make_fixnum (GNUTLS_VERSION_MAJOR * 10000
-                    + GNUTLS_VERSION_MINOR * 100
-                    + GNUTLS_VERSION_PATCH)
+    (GNUTLS_VERSION_MAJOR * 10000
+     + GNUTLS_VERSION_MINOR * 100
+     + GNUTLS_VERSION_PATCH)
 #else
-       make_fixnum (-1)
+    (-1)
 #endif
-        );
+    ;
+
 #ifdef HAVE_GNUTLS
   gnutls_global_initialized = 0;
   PDUMPER_IGNORE (gnutls_global_initialized);
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 5e7cf3d..338c603 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -4398,13 +4398,6 @@ xg_tool_bar_callback (GtkWidget *w, gpointer client_data)
   key = AREF (f->tool_bar_items, idx + TOOL_BAR_ITEM_KEY);
   XSETFRAME (frame, f);
 
-  /* We generate two events here.  The first one is to set the prefix
-     to `(tool_bar)', see keyboard.c.  */
-  event.kind = TOOL_BAR_EVENT;
-  event.frame_or_window = frame;
-  event.arg = frame;
-  kbd_buffer_store_event (&event);
-
   event.kind = TOOL_BAR_EVENT;
   event.frame_or_window = frame;
   event.arg = key;
diff --git a/src/intervals.c b/src/intervals.c
index a66594c..594d892 100644
--- a/src/intervals.c
+++ b/src/intervals.c
@@ -298,7 +298,7 @@ rotate_right (INTERVAL A)
     set_interval_parent (c, A);
 
   /* A's total length is decreased by the length of B and its left child.  */
-  A->total_length -= B->total_length - TOTAL_LENGTH (c);
+  A->total_length -= TOTAL_LENGTH (B) - TOTAL_LENGTH0 (c);
   eassert (TOTAL_LENGTH (A) > 0);
   eassert (LENGTH (A) > 0);
 
@@ -349,7 +349,7 @@ rotate_left (INTERVAL A)
     set_interval_parent (c, A);
 
   /* A's total length is decreased by the length of B and its right child.  */
-  A->total_length -= B->total_length - TOTAL_LENGTH (c);
+  A->total_length -= TOTAL_LENGTH (B) - TOTAL_LENGTH0 (c);
   eassert (TOTAL_LENGTH (A) > 0);
   eassert (LENGTH (A) > 0);
 
@@ -723,13 +723,13 @@ previous_interval (register INTERVAL interval)
       i->position - LEFT_TOTAL_LENGTH (i)                       \
       - LENGTH (INTERVAL_PARENT (i))
 
-/* Find the interval containing POS, given some non-NULL INTERVAL in
+/* Find the interval containing POS, given some interval I in
    the same tree.  Note that we update interval->position in each
    interval we traverse, assuming it is already correctly set for the
    argument I.  We don't assume that any other interval already has a
    correctly set ->position.  */
 INTERVAL
-update_interval (register INTERVAL i, ptrdiff_t pos)
+update_interval (INTERVAL i, ptrdiff_t pos)
 {
   if (!i)
     return NULL;
@@ -739,7 +739,7 @@ update_interval (register INTERVAL i, ptrdiff_t pos)
       if (pos < i->position)
        {
          /* Move left.  */
-         if (pos >= i->position - TOTAL_LENGTH (i->left))
+         if (pos >= i->position - LEFT_TOTAL_LENGTH (i))
            {
              i->left->position = i->position - TOTAL_LENGTH (i->left)
                + LEFT_TOTAL_LENGTH (i->left);
@@ -757,7 +757,7 @@ update_interval (register INTERVAL i, ptrdiff_t pos)
       else if (pos >= INTERVAL_LAST_POS (i))
        {
          /* Move right.  */
-         if (pos < INTERVAL_LAST_POS (i) + TOTAL_LENGTH (i->right))
+         if (pos < INTERVAL_LAST_POS (i) + RIGHT_TOTAL_LENGTH (i))
            {
              i->right->position = INTERVAL_LAST_POS (i)
                + LEFT_TOTAL_LENGTH (i->right);
diff --git a/src/intervals.h b/src/intervals.h
index a93b10e..9a7ba91 100644
--- a/src/intervals.h
+++ b/src/intervals.h
@@ -96,24 +96,27 @@ struct interval
 /* True if this interval has both left and right children.  */
 #define BOTH_KIDS_P(i) ((i)->left != NULL && (i)->right != NULL)
 
-/* The total size of all text represented by this interval and all its
-   children in the tree.   This is zero if the interval is null.  */
-#define TOTAL_LENGTH(i) ((i) == NULL ? 0 : (i)->total_length)
+/* The total size of all text represented by the nonnull interval I
+   and all its children in the tree.  */
+#define TOTAL_LENGTH(i) ((i)->total_length)
+
+/* Likewise, but also defined to be zero if I is null.  */
+#define TOTAL_LENGTH0(i) ((i) ? TOTAL_LENGTH (i) : 0)
 
 /* The size of text represented by this interval alone.  */
-#define LENGTH(i) ((i)->total_length                   \
-                  - TOTAL_LENGTH ((i)->right)          \
-                  - TOTAL_LENGTH ((i)->left))
+#define LENGTH(i) (TOTAL_LENGTH (i)            \
+                  - RIGHT_TOTAL_LENGTH (i)     \
+                  - LEFT_TOTAL_LENGTH (i))
 
 /* The position of the character just past the end of I.  Note that
    the position cache i->position must be valid for this to work.  */
 #define INTERVAL_LAST_POS(i) ((i)->position + LENGTH (i))
 
 /* The total size of the left subtree of this interval.  */
-#define LEFT_TOTAL_LENGTH(i) ((i)->left ? (i)->left->total_length : 0)
+#define LEFT_TOTAL_LENGTH(i) TOTAL_LENGTH0 ((i)->left)
 
 /* The total size of the right subtree of this interval.  */
-#define RIGHT_TOTAL_LENGTH(i) ((i)->right ? (i)->right->total_length : 0)
+#define RIGHT_TOTAL_LENGTH(i) TOTAL_LENGTH0 ((i)->right)
 
 /* These macros are for dealing with the interval properties.  */
 
@@ -234,7 +237,7 @@ set_interval_plist (INTERVAL i, Lisp_Object plist)
 
 /* Declared in alloc.c.  */
 
-extern INTERVAL make_interval (void);
+extern INTERVAL make_interval (void) ATTRIBUTE_RETURNS_NONNULL;
 
 /* Declared in intervals.c.  */
 
@@ -246,7 +249,8 @@ extern void traverse_intervals (INTERVAL, ptrdiff_t,
                                 Lisp_Object);
 extern void traverse_intervals_noorder (INTERVAL,
                                        void (*) (INTERVAL, void *), void *);
-extern INTERVAL split_interval_right (INTERVAL, ptrdiff_t);
+extern INTERVAL split_interval_right (INTERVAL, ptrdiff_t)
+  ATTRIBUTE_RETURNS_NONNULL;
 extern INTERVAL split_interval_left (INTERVAL, ptrdiff_t);
 extern INTERVAL find_interval (INTERVAL, ptrdiff_t);
 extern INTERVAL next_interval (INTERVAL);
diff --git a/src/keyboard.c b/src/keyboard.c
index bf1f5da..9ce168c 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -2901,6 +2901,12 @@ read_char (int commandflag, Lisp_Object map,
           example banishing the mouse under mouse-avoidance-mode.  */
        timer_resume_idle ();
 
+#ifdef HAVE_NS
+      if (CONSP (c)
+          && (EQ (XCAR (c), intern ("ns-unput-working-text"))))
+        input_was_pending = input_pending;
+#endif
+
       if (current_buffer != prev_buffer)
        {
          /* The command may have changed the keymaps.  Pretend there
@@ -5992,24 +5998,14 @@ make_lispy_event (struct input_event *event)
       return list2 (Qselect_window, list1 (event->frame_or_window));
 
     case TAB_BAR_EVENT:
-      if (EQ (event->arg, event->frame_or_window))
-       /* This is the prefix key.  We translate this to
-          `(tab_bar)' because the code in keyboard.c for tab bar
-          events, which we use, relies on this.  */
-       return list1 (Qtab_bar);
-      else if (SYMBOLP (event->arg))
-       return apply_modifiers (event->modifiers, event->arg);
-      return event->arg;
-
     case TOOL_BAR_EVENT:
-      if (EQ (event->arg, event->frame_or_window))
-       /* This is the prefix key.  We translate this to
-          `(tool_bar)' because the code in keyboard.c for tool bar
-          events, which we use, relies on this.  */
-       return list1 (Qtool_bar);
-      else if (SYMBOLP (event->arg))
-       return apply_modifiers (event->modifiers, event->arg);
-      return event->arg;
+      {
+       Lisp_Object res = event->arg;
+       Lisp_Object location
+         = event->kind == TAB_BAR_EVENT ? Qtab_bar : Qtool_bar;
+       if (SYMBOLP (res)) res = apply_modifiers (event->modifiers, res);
+       return list2 (res, list2 (event->frame_or_window, location));
+      }
 
     case USER_SIGNAL_EVENT:
       /* A user signal.  */
diff --git a/src/lisp.h b/src/lisp.h
index 0bd3756..d3b1c39 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -481,6 +481,7 @@ enum Lisp_Type
     Lisp_Symbol = 0,
 
     /* Type 1 is currently unused.  */
+    Lisp_Type_Unused0 = 1,
 
     /* Fixnum.  XFIXNUM (obj) is the integer value.  */
     Lisp_Int0 = 2,
@@ -594,6 +595,7 @@ extern void char_table_set (Lisp_Object, int, Lisp_Object);
 
 /* Defined in data.c.  */
 extern AVOID wrong_type_argument (Lisp_Object, Lisp_Object);
+extern Lisp_Object default_value (Lisp_Object symbol);
 
 
 /* Defined in emacs.c.  */
@@ -3010,14 +3012,6 @@ CHECK_FIXNAT (Lisp_Object x)
       CHECK_RANGED_INTEGER (x, 0, TYPE_MAXIMUM (type));                        
\
   } while (false)
 
-#define CHECK_FIXNUM_COERCE_MARKER(x)                                  \
-  do {                                                                 \
-    if (MARKERP ((x)))                                                 \
-      XSETFASTINT (x, marker_position (x));                            \
-    else                                                               \
-      CHECK_TYPE (FIXNUMP (x), Qinteger_or_marker_p, x);               \
-  } while (false)
-
 INLINE double
 XFLOATINT (Lisp_Object n)
 {
@@ -3037,22 +3031,6 @@ CHECK_INTEGER (Lisp_Object x)
 {
   CHECK_TYPE (INTEGERP (x), Qnumberp, x);
 }
-
-#define CHECK_NUMBER_COERCE_MARKER(x)                                  \
-  do {                                                                 \
-    if (MARKERP (x))                                                   \
-      XSETFASTINT (x, marker_position (x));                            \
-    else                                                               \
-      CHECK_TYPE (NUMBERP (x), Qnumber_or_marker_p, x);                        
\
-  } while (false)
-
-#define CHECK_INTEGER_COERCE_MARKER(x)                                 \
-  do {                                                                 \
-    if (MARKERP (x))                                                   \
-      XSETFASTINT (x, marker_position (x));                            \
-    else                                                               \
-      CHECK_TYPE (INTEGERP (x), Qnumber_or_marker_p, x);               \
-  } while (false)
 
 
 /* If we're not dumping using the legacy dumper and we might be using
diff --git a/src/lread.c b/src/lread.c
index 70984d3..eabf3b9 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -979,9 +979,7 @@ lisp_file_lexically_bound_p (Lisp_Object readcharfun)
 
 /* Value is a version number of byte compiled code if the file
    associated with file descriptor FD is a compiled Lisp file that's
-   safe to load.  Only files compiled with Emacs are safe to load.
-   Files compiled with XEmacs can lead to a crash in Fbyte_code
-   because of an incompatible change in the byte compiler.  */
+   safe to load.  Only files compiled with Emacs can be loaded.  */
 
 static int
 safe_to_load_version (int fd)
@@ -1135,7 +1133,6 @@ Return t if the file exists and loads successfully.  */)
   /* True means we are loading a compiled file.  */
   bool compiled = 0;
   Lisp_Object handler;
-  bool safe_p = 1;
   const char *fmode = "r" FOPEN_TEXT;
   int version;
 
@@ -1318,11 +1315,7 @@ Return t if the file exists and loads successfully.  */)
          if (version < 0
              && ! (version = safe_to_load_version (fd)))
            {
-             safe_p = 0;
-             if (!load_dangerous_libraries)
-               error ("File `%s' was not compiled in Emacs", SDATA (found));
-             else if (!NILP (nomessage) && !force_load_messages)
-               message_with_string ("File `%s' not compiled in Emacs", found, 
1);
+             error ("File `%s' was not compiled in Emacs", SDATA (found));
            }
 
          compiled = 1;
@@ -1429,10 +1422,7 @@ Return t if the file exists and loads successfully.  */)
 
   if (NILP (nomessage) || force_load_messages)
     {
-      if (!safe_p)
-       message_with_string ("Loading %s (compiled; note unsafe, not compiled 
in Emacs)...",
-                file, 1);
-      else if (is_module)
+      if (is_module)
         message_with_string ("Loading %s (module)...", file, 1);
       else if (!compiled)
        message_with_string ("Loading %s (source)...", file, 1);
@@ -1492,10 +1482,7 @@ Return t if the file exists and loads successfully.  */)
 
   if (!noninteractive && (NILP (nomessage) || force_load_messages))
     {
-      if (!safe_p)
-       message_with_string ("Loading %s (compiled; note unsafe, not compiled 
in Emacs)...done",
-                file, 1);
-      else if (is_module)
+      if (is_module)
         message_with_string ("Loading %s (module)...done", file, 1);
       else if (!compiled)
        message_with_string ("Loading %s (source)...done", file, 1);
@@ -4975,7 +4962,7 @@ This overrides the value of the NOMESSAGE argument to 
`load'.  */);
 When Emacs loads a compiled Lisp file, it reads the first 512 bytes
 from the file, and matches them against this regular expression.
 When the regular expression matches, the file is considered to be safe
-to load.  See also `load-dangerous-libraries'.  */);
+to load.  */);
   Vbytecomp_version_regexp
     = build_pure_c_string ("^;;;.\\(in Emacs version\\|bytecomp version 
FSF\\)");
 
diff --git a/src/macfont.m b/src/macfont.m
index 442a256..21bc7dd 100644
--- a/src/macfont.m
+++ b/src/macfont.m
@@ -664,7 +664,7 @@ static struct
     { "iso8859-15", { 0x00A0, 0x00A1, 0x00D0, 0x0152 }},
     { "iso8859-16", { 0x00A0, 0x0218}},
     { "gb2312.1980-0", { 0x4E13 }, CFSTR ("zh-Hans")},
-    { "big5-0", { /* 0xF6B1 in ftfont.c */ 0x4EDC }, CFSTR ("zh-Hant") },
+    { "big5-0", { /* 0x9C21 in ftfont.c */ 0x4EDC }, CFSTR ("zh-Hant") },
     { "jisx0208.1983-0", { 0x4E55 }, CFSTR ("ja")},
     { "ksc5601.1987-0", { 0xAC00 }, CFSTR ("ko")},
     { "cns11643.1992-1", { 0xFE32 }, CFSTR ("zh-Hant")},
diff --git a/src/module-env-28.h b/src/module-env-28.h
index a2479a8..5d884c1 100644
--- a/src/module-env-28.h
+++ b/src/module-env-28.h
@@ -9,3 +9,6 @@
   void (*set_function_finalizer) (emacs_env *env, emacs_value arg,
                                   void (*fin) (void *) EMACS_NOEXCEPT)
     EMACS_ATTRIBUTE_NONNULL (1);
+
+  int (*open_channel) (emacs_env *env, emacs_value pipe_process)
+    EMACS_ATTRIBUTE_NONNULL (1);
diff --git a/src/nsfns.m b/src/nsfns.m
index cbde93b..f6e7f4e 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -3012,80 +3012,6 @@ DEFUN ("ns-show-character-palette",
 
    ========================================================================== 
*/
 
-/*
-  Handle arrow/function/control keys and copy/paste/cut in file dialogs.
-  Return YES if handled, NO if not.
- */
-static BOOL
-handlePanelKeys (NSSavePanel *panel, NSEvent *theEvent)
-{
-  NSString *s;
-  int i;
-  BOOL ret = NO;
-
-  if ([theEvent type] != NSEventTypeKeyDown) return NO;
-  s = [theEvent characters];
-
-  for (i = 0; i < [s length]; ++i)
-    {
-      int ch = (int) [s characterAtIndex: i];
-      switch (ch)
-        {
-        case NSHomeFunctionKey:
-        case NSDownArrowFunctionKey:
-        case NSUpArrowFunctionKey:
-        case NSLeftArrowFunctionKey:
-        case NSRightArrowFunctionKey:
-        case NSPageUpFunctionKey:
-        case NSPageDownFunctionKey:
-        case NSEndFunctionKey:
-          /* Don't send command modified keys, as those are handled in the
-             performKeyEquivalent method of the super class.  */
-          if (! ([theEvent modifierFlags] & NSEventModifierFlagCommand))
-            {
-              [panel sendEvent: theEvent];
-              ret = YES;
-            }
-          break;
-          /* As we don't have the standard key commands for
-             copy/paste/cut/select-all in our edit menu, we must handle
-             them here.  TODO: handle Emacs key bindings for 
copy/cut/select-all
-             here, paste works, because we have that in our Edit menu.
-             I.e. refactor out code in nsterm.m, keyDown: to figure out the
-             correct modifier.  */
-        case 'x': // Cut
-        case 'c': // Copy
-        case 'v': // Paste
-        case 'a': // Select all
-          if ([theEvent modifierFlags] & NSEventModifierFlagCommand)
-            {
-              [NSApp sendAction:
-                       (ch == 'x'
-                        ? @selector(cut:)
-                        : (ch == 'c'
-                           ? @selector(copy:)
-                           : (ch == 'v'
-                              ? @selector(paste:)
-                              : @selector(selectAll:))))
-                             to:nil from:panel];
-              ret = YES;
-            }
-        default:
-          // Send all control keys, as the text field supports C-a, C-f, C-e
-          // C-b and more.
-          if ([theEvent modifierFlags] & NSEventModifierFlagControl)
-            {
-              [panel sendEvent: theEvent];
-              ret = YES;
-            }
-          break;
-        }
-    }
-
-
-  return ret;
-}
-
 @implementation EmacsFileDelegate
 /* --------------------------------------------------------------------------
    Delegate methods for Open/Save panels
diff --git a/src/nsterm.h b/src/nsterm.h
index 7c6197f..8396a54 100644
--- a/src/nsterm.h
+++ b/src/nsterm.h
@@ -339,6 +339,22 @@ typedef id instancetype;
 #endif
 
 
+/* macOS 10.14 and above cannot draw directly "to the glass" and
+   therefore we draw to an offscreen buffer and swap it in when the
+   toolkit wants to draw the frame. GNUstep and macOS 10.7 and below
+   do not support this method, so we revert to drawing directly to the
+   glass.
+
+   FIXME: Should we make this macOS 10.8+, or macOS 10.14+?  I'm
+   inclined to go with 10.14+ as there have been some reports of funny
+   behaviour on 10.13 and below.  It may be worth adding a variable to
+   allow people in the overlapping region to switch between drawing
+   paths.  */
+#if defined (NS_IMPL_COCOA) && defined (MAC_OS_X_VERSION_10_14)
+#define NS_DRAW_TO_BUFFER 1
+#endif
+
+
 /* ==========================================================================
 
    NSColor, EmacsColor category.
@@ -417,7 +433,8 @@ typedef id instancetype;
    int maximized_width, maximized_height;
    NSWindow *nonfs_window;
    BOOL fs_is_native;
-#ifdef NS_IMPL_COCOA
+   BOOL in_fullscreen_transition;
+#ifdef NS_DRAW_TO_BUFFER
    CGContextRef drawingBuffer;
 #endif
 @public
@@ -451,6 +468,8 @@ typedef id instancetype;
 - (void) toggleFullScreen: (id) sender;
 - (BOOL) fsIsNative;
 - (BOOL) isFullscreen;
+- (BOOL) inFullScreenTransition;
+- (void) waitFullScreenTransition;
 #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
 - (void) updateCollectionBehavior;
 #endif
@@ -460,11 +479,11 @@ typedef id instancetype;
 #endif
 - (int)fullscreenState;
 
-#ifdef NS_IMPL_COCOA
+#ifdef NS_DRAW_TO_BUFFER
 - (void)focusOnDrawingBuffer;
+- (void)createDrawingBuffer;
 #endif
 - (void)copyRect:(NSRect)srcRect to:(NSRect)dstRect;
-- (void)createDrawingBuffer;
 
 /* Non-notification versions of NSView methods. Used for direct calls.  */
 - (void)windowWillEnterFullScreen;
@@ -1270,6 +1289,7 @@ extern char gnustep_base_version[];  /* version tracking 
*/
 #if !defined (NS_IMPL_COCOA) || !defined (MAC_OS_X_VERSION_10_7)
 #define NSFullScreenWindowMask                      (1 << 14)
 #define NSWindowCollectionBehaviorFullScreenPrimary (1 << 7)
+#define NSWindowCollectionBehaviorFullScreenAuxiliary (1 << 8)
 #define NSApplicationPresentationFullScreen         (1 << 10)
 #define NSApplicationPresentationAutoHideToolbar    (1 << 11)
 #define NSAppKitVersionNumber10_7                   1138
diff --git a/src/nsterm.m b/src/nsterm.m
index 2cf6774..04fc051 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -1117,7 +1117,7 @@ ns_update_begin (struct frame *f)
 #endif
 
   ns_updating_frame = f;
-#ifdef NS_IMPL_COCOA
+#ifdef NS_DRAW_TO_BUFFER
   [view focusOnDrawingBuffer];
 #else
   [view lockFocus];
@@ -1139,8 +1139,9 @@ ns_update_end (struct frame *f)
 /*   if (f == MOUSE_HL_INFO (f)->mouse_face_mouse_frame) */
   MOUSE_HL_INFO (f)->mouse_face_defer = 0;
 
-#ifdef NS_IMPL_COCOA
+#ifdef NS_DRAW_TO_BUFFER
   [NSGraphicsContext setCurrentContext:nil];
+  [view setNeedsDisplay:YES];
 #else
   block_input ();
 
@@ -1172,7 +1173,7 @@ ns_focus (struct frame *f, NSRect *r, int n)
     }
 
   if (f != ns_updating_frame)
-#ifdef NS_IMPL_COCOA
+#ifdef NS_DRAW_TO_BUFFER
     [view focusOnDrawingBuffer];
 #else
     {
@@ -1194,12 +1195,6 @@ ns_focus (struct frame *f, NSRect *r, int n)
   /* clipping */
   if (r)
     {
-#ifdef NS_IMPL_COCOA
-      int i;
-      for (i = 0 ; i < n ; i++)
-        [view setNeedsDisplayInRect:r[i]];
-#endif
-
       [[NSGraphicsContext currentContext] saveGraphicsState];
       if (n == 2)
         NSRectClipList (r, 2);
@@ -1224,7 +1219,9 @@ ns_unfocus (struct frame *f)
       gsaved = NO;
     }
 
-#ifdef NS_IMPL_GNUSTEP
+#ifdef NS_DRAW_TO_BUFFER
+  [FRAME_NS_VIEW (f) setNeedsDisplay:YES];
+#else
   if (f != ns_updating_frame)
     {
       if (focus_view != NULL)
@@ -1238,20 +1235,6 @@ ns_unfocus (struct frame *f)
 }
 
 
-static void
-ns_clip_to_row (struct window *w, struct glyph_row *row,
-               enum glyph_row_area area, BOOL gc)
-/* --------------------------------------------------------------------------
-     Internal (but parallels other terms): Focus drawing on given row
-   -------------------------------------------------------------------------- 
*/
-{
-  struct frame *f = XFRAME (WINDOW_FRAME (w));
-  NSRect clip_rect = ns_row_rect (w, row, area);
-
-  ns_focus (f, &clip_rect, 1);
-}
-
-
 /* ==========================================================================
 
     Visible bell and beep.
@@ -1588,9 +1571,12 @@ ns_make_frame_visible (struct frame *f)
 
       /* Making a new frame from a fullscreen frame will make the new frame
          fullscreen also.  So skip handleFS as this will print an error.  */
-      if ([view fsIsNative] && f->want_fullscreen == FULLSCREEN_BOTH
-          && [view isFullscreen])
-        return;
+      if ([view fsIsNative] && [view isFullscreen])
+        {
+          // maybe it is not necessary to wait
+          [view waitFullScreenTransition];
+          return;
+        }
 
       if (f->want_fullscreen != FULLSCREEN_NONE)
         {
@@ -1976,8 +1962,16 @@ ns_set_parent_frame (struct frame *f, Lisp_Object 
new_value, Lisp_Object old_val
       block_input ();
       child = [FRAME_NS_VIEW (f) window];
 
+#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
+      EmacsView *view = (EmacsView *)FRAME_NS_VIEW (f);
+#endif
+
       if ([child parentWindow] != nil)
         {
+#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
+          parent = [child parentWindow];
+#endif
+
           [[child parentWindow] removeChildWindow:child];
 #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 101000
 #if MAC_OS_X_VERSION_MIN_REQUIRED < 101000
@@ -1985,10 +1979,38 @@ ns_set_parent_frame (struct frame *f, Lisp_Object 
new_value, Lisp_Object old_val
 #endif
               [child 
setAccessibilitySubrole:NSAccessibilityStandardWindowSubrole];
 #endif
+#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
+          if (NILP (new_value))
+            {
+              NSTRACE ("child 
setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary");
+              [child 
setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary];
+              // if current parent in fullscreen and no new parent make child 
fullscreen
+              while (parent) {
+                if (([parent styleMask] & NSWindowStyleMaskFullScreen) != 0)
+                  {
+                    [view toggleFullScreen:child];
+                    break;
+                  }
+                // check all parents
+                parent = [parent parentWindow];
+              }
+            }
+#endif
         }
 
       if (!NILP (new_value))
         {
+#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
+          // child frame must not be in fullscreen
+          if ([view fsIsNative] && [view isFullscreen])
+            {
+              // in case child is going fullscreen
+              [view waitFullScreenTransition];
+              [view toggleFullScreen:child];
+            }
+          NSTRACE ("child 
setCollectionBehavior:NSWindowCollectionBehaviorFullScreenAuxiliary");
+          [child 
setCollectionBehavior:NSWindowCollectionBehaviorFullScreenAuxiliary];
+#endif
           parent = [FRAME_NS_VIEW (p) window];
 
           [parent addChildWindow: child
@@ -2089,7 +2111,7 @@ ns_set_appearance (struct frame *f, Lisp_Object 
new_value, Lisp_Object old_value
 {
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 101000
   EmacsView *view = (EmacsView *)FRAME_NS_VIEW (f);
-  NSWindow *window = [view window];
+  EmacsWindow *window = (EmacsWindow *)[view window];
 
   NSTRACE ("ns_set_appearance");
 
@@ -2553,7 +2575,7 @@ ns_mouse_position (struct frame **fp, int insist, 
Lisp_Object *bar_window,
   id view;
   NSPoint view_position;
   Lisp_Object frame, tail;
-  struct frame *f;
+  struct frame *f = NULL;
   struct ns_display_info *dpyinfo;
 
   NSTRACE ("ns_mouse_position");
@@ -4005,7 +4027,7 @@ ns_dumpglyphs_stretch (struct glyph_string *s)
 {
   NSRect r[2];
   NSRect glyphRect;
-  int n, i;
+  int n;
   struct face *face;
   NSColor *fgCol, *bgCol;
 
@@ -5133,6 +5155,13 @@ ns_initialize_display_info (struct ns_display_info 
*dpyinfo)
     reset_mouse_highlight (&dpyinfo->mouse_highlight);
 }
 
+/* This currently does nothing, since it's only really needed when
+   changing the font-backend, but macOS currently only has one
+   possible backend.  This may change if we add HarfBuzz support.  */
+static void
+ns_default_font_parameter (struct frame *f, Lisp_Object parms)
+{
+}
 
 /* This and next define (many of the) public functions in this file.  */
 /* gui_* are generic versions in xdisp.c that we, and other terms, get away
@@ -5168,7 +5197,8 @@ static struct redisplay_interface ns_redisplay_interface =
   ns_draw_window_divider,
   ns_shift_glyphs_for_insert,
   ns_show_hourglass,
-  ns_hide_hourglass
+  ns_hide_hourglass,
+  ns_default_font_parameter
 };
 
 
@@ -5389,7 +5419,7 @@ ns_term_init (Lisp_Object display_name)
           }
 
         /* FIXME: Report any errors writing the color file below.  */
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= 101100
+#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 101100
 #if MAC_OS_X_VERSION_MIN_REQUIRED < 101100
         if ([cl respondsToSelector:@selector(writeToURL:error:)])
 #endif
@@ -6457,6 +6487,10 @@ not_in_argv (NSString *arg)
   if (!emacs_event)
     return;
 
+  /* First, clear any working text.  */
+  if (workingText != nil)
+    [self deleteWorkingText];
+
   /* It might be preferable to use getCharacters:range: below,
      cf. 
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CocoaPerformance/Articles/StringDrawing.html#//apple_ref/doc/uid/TP40001445-112378.
      However, we probably can't use SAFE_NALLOCA here because it might
@@ -6485,10 +6519,6 @@ not_in_argv (NSString *arg)
       emacs_event->code = code;
       EV_TRAILER ((id)nil);
     }
-
-  /* Last, clear any working text.  */
-  if (workingText != nil)
-    [self deleteWorkingText];
 }
 
 
@@ -6584,13 +6614,18 @@ not_in_argv (NSString *arg)
 {
   NSRect rect;
   NSPoint pt;
-  struct window *win = XWINDOW (FRAME_SELECTED_WINDOW (emacsframe));
+  struct window *win;
 
   NSTRACE ("[EmacsView firstRectForCharacterRange:]");
 
   if (NS_KEYLOG)
     NSLog (@"firstRectForCharRange request");
 
+  if (WINDOWP (echo_area_window) && ! NILP (call0 (intern 
("ns-in-echo-area"))))
+    win = XWINDOW (echo_area_window);
+  else
+    win = XWINDOW (FRAME_SELECTED_WINDOW (emacsframe));
+
   rect.size.width = theRange.length * FRAME_COLUMN_WIDTH (emacsframe);
   rect.size.height = FRAME_LINE_HEIGHT (emacsframe);
   pt.x = WINDOW_TEXT_TO_FRAME_PIXEL_X (win, win->phys_cursor.x);
@@ -6697,8 +6732,6 @@ not_in_argv (NSString *arg)
 
   NSTRACE ("[EmacsView mouseDown:]");
 
-  [self deleteWorkingText];
-
   if (!emacs_event)
     return;
 
@@ -7088,8 +7121,10 @@ not_in_argv (NSString *arg)
          from non-native fullscreen, in other circumstances it appears
          to be a noop.  (bug#28872) */
       wr = NSMakeRect (0, 0, neww, newh);
-      [self createDrawingBuffer];
       [view setFrame: wr];
+#ifdef NS_DRAW_TO_BUFFER
+      [self createDrawingBuffer];
+#endif
 
       // To do: consider using [NSNotificationCenter postNotificationName:].
       [self windowDidMove: // Update top/left.
@@ -7325,7 +7360,6 @@ not_in_argv (NSString *arg)
 
   if (emacs_event && is_focus_frame)
     {
-      [self deleteWorkingText];
       emacs_event->kind = FOCUS_OUT_EVENT;
       EV_TRAILER ((id)nil);
     }
@@ -7391,7 +7425,7 @@ not_in_argv (NSString *arg)
 {
   NSRect r, wr;
   Lisp_Object tem;
-  NSWindow *win;
+  EmacsWindow *win;
   NSColor *col;
   NSString *name;
 
@@ -7411,6 +7445,7 @@ not_in_argv (NSString *arg)
 #endif
     fs_is_native = ns_use_native_fullscreen;
 #endif
+  in_fullscreen_transition = NO;
 
   maximized_width = maximized_height = -1;
   nonfs_window = nil;
@@ -7428,7 +7463,9 @@ not_in_argv (NSString *arg)
   maximizing_resize = NO;
 #endif
 
+#ifdef NS_DRAW_TO_BUFFER
   [self createDrawingBuffer];
+#endif
 
   win = [[EmacsWindow alloc]
             initWithContentRect: r
@@ -7442,7 +7479,10 @@ not_in_argv (NSString *arg)
 #if MAC_OS_X_VERSION_MIN_REQUIRED < 1070
   if (NSAppKitVersionNumber >= NSAppKitVersionNumber10_7)
 #endif
-    [win setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary];
+    if (FRAME_PARENT_FRAME (f))
+      [win 
setCollectionBehavior:NSWindowCollectionBehaviorFullScreenAuxiliary];
+    else
+      [win setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary];
 #endif
 
   wr = [win frame];
@@ -7565,11 +7605,12 @@ not_in_argv (NSString *arg)
       emacsframe->top_pos =
         NS_PARENT_WINDOW_TOP_POS (emacsframe) - (r.origin.y + r.size.height);
 
-      if (emacs_event)
-        {
-          emacs_event->kind = MOVE_FRAME_EVENT;
-          EV_TRAILER ((id)nil);
-        }
+      // FIXME: after event part below didExitFullScreen is not received
+      // if (emacs_event)
+      //   {
+      //     emacs_event->kind = MOVE_FRAME_EVENT;
+      //     EV_TRAILER ((id)nil);
+      //   }
     }
 }
 
@@ -7769,6 +7810,7 @@ not_in_argv (NSString *arg)
 - (void)windowWillEnterFullScreen:(NSNotification *)notification
 {
   NSTRACE ("[EmacsView windowWillEnterFullScreen:]");
+  in_fullscreen_transition = YES;
   [self windowWillEnterFullScreen];
 }
 - (void)windowWillEnterFullScreen /* provided for direct calls */
@@ -7781,6 +7823,7 @@ not_in_argv (NSString *arg)
 {
   NSTRACE ("[EmacsView windowDidEnterFullScreen:]");
   [self windowDidEnterFullScreen];
+  in_fullscreen_transition = NO;
 }
 
 - (void)windowDidEnterFullScreen /* provided for direct calls */
@@ -7819,6 +7862,7 @@ not_in_argv (NSString *arg)
 - (void)windowWillExitFullScreen:(NSNotification *)notification
 {
   NSTRACE ("[EmacsView windowWillExitFullScreen:]");
+  in_fullscreen_transition = YES;
   [self windowWillExitFullScreen];
 }
 
@@ -7838,6 +7882,7 @@ not_in_argv (NSString *arg)
 {
   NSTRACE ("[EmacsView windowDidExitFullScreen:]");
   [self windowDidExitFullScreen];
+  in_fullscreen_transition = NO;
 }
 
 - (void)windowDidExitFullScreen /* provided for direct calls */
@@ -7867,6 +7912,22 @@ not_in_argv (NSString *arg)
     [[self window] performZoom:self];
 }
 
+- (BOOL)inFullScreenTransition
+{
+  return in_fullscreen_transition;
+}
+
+- (void)waitFullScreenTransition
+{
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
+  while ([self inFullScreenTransition])
+    {
+      NSTRACE ("wait for fullscreen");
+      wait_reading_process_output (0, 300000000, 0, 1, Qnil, NULL, 0);
+    }
+#endif
+}
+
 - (BOOL)fsIsNative
 {
   return fs_is_native;
@@ -7905,9 +7966,22 @@ not_in_argv (NSString *arg)
       NSWindow *win = [self window];
       NSWindowCollectionBehavior b = [win collectionBehavior];
       if (ns_use_native_fullscreen)
-        b |= NSWindowCollectionBehaviorFullScreenPrimary;
+        {
+          if ([win parentWindow])
+            {
+              b &= ~NSWindowCollectionBehaviorFullScreenPrimary;
+              b |= NSWindowCollectionBehaviorFullScreenAuxiliary;
+            }
+          else
+            {
+              b |= NSWindowCollectionBehaviorFullScreenPrimary;
+              b &= ~NSWindowCollectionBehaviorFullScreenAuxiliary;
+            }
+        }
       else
-        b &= ~NSWindowCollectionBehaviorFullScreenPrimary;
+        {
+          b &= ~NSWindowCollectionBehaviorFullScreenPrimary;
+        }
 
       [win setCollectionBehavior: b];
 #if MAC_OS_X_VERSION_MIN_REQUIRED < 1070
@@ -7933,8 +8007,14 @@ not_in_argv (NSString *arg)
 #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
 #if MAC_OS_X_VERSION_MIN_REQUIRED < 1070
       if ([[self window] respondsToSelector: @selector(toggleFullScreen:)])
+        {
+#endif
+          [[self window] toggleFullScreen:sender];
+          // wait for fullscreen animation complete (bug#28496)
+          [self waitFullScreenTransition];
+#if MAC_OS_X_VERSION_MIN_REQUIRED < 1070
+        }
 #endif
-        [[self window] toggleFullScreen:sender];
 #endif
       return;
     }
@@ -8183,13 +8263,8 @@ not_in_argv (NSString *arg)
   if (!emacs_event)
     return self;
 
-  /* Send first event (for some reason two needed).  */
   theEvent = [[self window] currentEvent];
   emacs_event->kind = TOOL_BAR_EVENT;
-  XSETFRAME (emacs_event->arg, emacsframe);
-  EV_TRAILER (theEvent);
-
-  emacs_event->kind = TOOL_BAR_EVENT;
   /* XSETINT (emacs_event->code, 0); */
   emacs_event->arg = AREF (emacsframe->tool_bar_items,
                           idx + TOOL_BAR_ITEM_KEY);
@@ -8213,7 +8288,7 @@ not_in_argv (NSString *arg)
 }
 
 
-#ifdef NS_IMPL_COCOA
+#ifdef NS_DRAW_TO_BUFFER
 - (void)createDrawingBuffer
   /* Create and store a new CGGraphicsContext for Emacs to draw into.
 
@@ -8271,7 +8346,7 @@ not_in_argv (NSString *arg)
       expose_frame (emacsframe, 0, 0, NSWidth (frame), NSHeight (frame));
     }
 }
-#endif /* NS_IMPL_COCOA */
+#endif /* NS_DRAW_TO_BUFFER */
 
 
 - (void)copyRect:(NSRect)srcRect to:(NSRect)dstRect
@@ -8280,7 +8355,7 @@ not_in_argv (NSString *arg)
   NSTRACE_RECT ("Source", srcRect);
   NSTRACE_RECT ("Destination", dstRect);
 
-#ifdef NS_IMPL_COCOA
+#ifdef NS_DRAW_TO_BUFFER
   CGImageRef copy;
   NSRect frame = [self frame];
   NSAffineTransform *setOrigin = [NSAffineTransform transform];
@@ -8295,8 +8370,9 @@ not_in_argv (NSString *arg)
      offset the top left so when we draw back into the buffer the
      correct part of the image is drawn.  */
   CGContextScaleCTM(drawingBuffer, 1, -1);
-  CGContextTranslateCTM(drawingBuffer, 0, -NSHeight (frame)
-                        - (NSMinY (dstRect) - NSMinY (srcRect)));
+  CGContextTranslateCTM(drawingBuffer,
+                        NSMinX (dstRect) - NSMinX (srcRect),
+                        -NSHeight (frame) - (NSMinY (dstRect) - NSMinY 
(srcRect)));
 
   /* Take a copy of the buffer and then draw it back to the buffer,
      limited by the clipping rectangle.  */
@@ -8319,7 +8395,7 @@ not_in_argv (NSString *arg)
 }
 
 
-#ifdef NS_IMPL_COCOA
+#ifdef NS_DRAW_TO_BUFFER
 - (BOOL)wantsUpdateLayer
 {
     return YES;
@@ -8328,7 +8404,7 @@ not_in_argv (NSString *arg)
 
 - (void)updateLayer
 {
-  NSTRACE ("EmacsView updateLayer]");
+  NSTRACE ("[EmacsView updateLayer]");
 
   CGImageRef contentsImage = CGBitmapContextCreateImage(drawingBuffer);
   [[self layer] setContents:(id)contentsImage];
@@ -8814,7 +8890,7 @@ not_in_argv (NSString *arg)
 
 - (void)setAppearance
 {
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= 101000
+#if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 101000
   struct frame *f = ((EmacsView *)[self delegate])->emacsframe;
   NSAppearance *appearance = nil;
 
diff --git a/src/pdumper.c b/src/pdumper.c
index 0039f1a..e52163c 100644
--- a/src/pdumper.c
+++ b/src/pdumper.c
@@ -3069,7 +3069,7 @@ dump_vectorlike (struct dump_context *ctx,
 static dump_off
 dump_object (struct dump_context *ctx, Lisp_Object object)
 {
-#if CHECK_STRUCTS && !defined (HASH_Lisp_Type_E2AD97D3F7)
+#if CHECK_STRUCTS && !defined (HASH_Lisp_Type_45F0582FD7)
 # error "Lisp_Type changed. See CHECK_STRUCTS comment in config.h."
 #endif
   eassert (!EQ (object, dead_object ()));
@@ -3604,14 +3604,12 @@ dump_unwind_cleanup (void *data)
   Vprocess_environment = ctx->old_process_environment;
 }
 
-/* Return DUMP_OFFSET, making sure it is within the heap.  */
-static dump_off
+/* Check that DUMP_OFFSET is within the heap.  */
+static void
 dump_check_dump_off (struct dump_context *ctx, dump_off dump_offset)
 {
   eassert (dump_offset > 0);
-  if (ctx)
-    eassert (dump_offset < ctx->end_heap);
-  return dump_offset;
+  eassert (!ctx || dump_offset < ctx->end_heap);
 }
 
 static void
@@ -3734,6 +3732,7 @@ decode_emacs_reloc (struct dump_context *ctx, Lisp_Object 
lreloc)
           }
         else
           {
+           eassume (ctx); /* Pacify GCC 9.2.1 -O3 -Wnull-dereference.  */
             eassert (!dump_object_emacs_ptr (target_value));
             reloc.u.dump_offset = dump_recall_object (ctx, target_value);
             if (reloc.u.dump_offset <= 0)
diff --git a/src/process.c b/src/process.c
index 91d4261..07881d6 100644
--- a/src/process.c
+++ b/src/process.c
@@ -8200,6 +8200,17 @@ restore_nofile_limit (void)
 #endif
 }
 
+int
+open_channel_for_module (Lisp_Object process)
+{
+  CHECK_PROCESS (process);
+  CHECK_TYPE (PIPECONN_P (process), Qpipe_process_p, process);
+  int fd = dup (XPROCESS (process)->open_fd[SUBPROCESS_STDOUT]);
+  if (fd == -1)
+    report_file_error ("Cannot duplicate file descriptor", Qnil);
+  return fd;
+}
+
 
 /* This is not called "init_process" because that is the name of a
    Mach system call, so it would cause problems on Darwin systems.  */
@@ -8277,19 +8288,6 @@ init_process_emacs (int sockfd)
   memset (datagram_address, 0, sizeof datagram_address);
 #endif
 
-#if defined (DARWIN_OS)
-  /* PTYs are broken on Darwin < 6, but are sometimes useful for interactive
-     processes.  As such, we only change the default value.  */
- if (initialized)
-  {
-    char const *release = (STRINGP (Voperating_system_release)
-                          ? SSDATA (Voperating_system_release)
-                          : 0);
-    if (!release || !release[0] || (release[0] < '7' && release[1] == '.')) {
-      Vprocess_connection_type = Qnil;
-    }
-  }
-#endif
 #endif /* subprocesses */
   kbd_is_on_hold = 0;
 }
@@ -8459,6 +8457,7 @@ amounts of data in one go.  */);
   DEFSYM (Qinterrupt_process_functions, "interrupt-process-functions");
 
   DEFSYM (Qnull, "null");
+  DEFSYM (Qpipe_process_p, "pipe-process-p");
 
   defsubr (&Sprocessp);
   defsubr (&Sget_process);
diff --git a/src/process.h b/src/process.h
index 7884efc..a783a31 100644
--- a/src/process.h
+++ b/src/process.h
@@ -300,6 +300,8 @@ extern Lisp_Object remove_slash_colon (Lisp_Object);
 extern void update_processes_for_thread_death (Lisp_Object);
 extern void dissociate_controlling_tty (void);
 
+extern int open_channel_for_module (Lisp_Object);
+
 INLINE_HEADER_END
 
 #endif /* EMACS_PROCESS_H */
diff --git a/src/regex-emacs.c b/src/regex-emacs.c
index 694431c..0ae004e 100644
--- a/src/regex-emacs.c
+++ b/src/regex-emacs.c
@@ -2113,17 +2113,20 @@ regex_compile (re_char *pattern, ptrdiff_t size,
                        if (CHAR_BYTE8_P (c1))
                          c = BYTE8_TO_CHAR (128);
                      }
-                   if (CHAR_BYTE8_P (c))
-                     {
-                       c = CHAR_TO_BYTE8 (c);
-                       c1 = CHAR_TO_BYTE8 (c1);
-                       for (; c <= c1; c++)
-                         SET_LIST_BIT (c);
-                     }
-                   else if (multibyte)
-                     SETUP_MULTIBYTE_RANGE (range_table_work, c, c1);
-                   else
-                     SETUP_UNIBYTE_RANGE (range_table_work, c, c1);
+                    if (c <= c1)
+                      {
+                        if (CHAR_BYTE8_P (c))
+                          {
+                            c = CHAR_TO_BYTE8 (c);
+                            c1 = CHAR_TO_BYTE8 (c1);
+                            for (; c <= c1; c++)
+                              SET_LIST_BIT (c);
+                          }
+                        else if (multibyte)
+                          SETUP_MULTIBYTE_RANGE (range_table_work, c, c1);
+                        else
+                          SETUP_UNIBYTE_RANGE (range_table_work, c, c1);
+                      }
                  }
              }
 
diff --git a/src/search.c b/src/search.c
index 818bb4a..7389fbe 100644
--- a/src/search.c
+++ b/src/search.c
@@ -1028,8 +1028,7 @@ search_command (Lisp_Object string, Lisp_Object bound, 
Lisp_Object noerror,
     }
   else
     {
-      CHECK_FIXNUM_COERCE_MARKER (bound);
-      lim = XFIXNUM (bound);
+      lim = fix_position (bound);
       if (n > 0 ? lim < PT : lim > PT)
        error ("Invalid search bound (wrong side of point)");
       if (lim > ZV)
diff --git a/src/sysdep.c b/src/sysdep.c
index e8e8bbf..149d80f 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -2752,21 +2752,6 @@ emacs_perror (char const *message)
   errno = err;
 }
 
-/* Set the access and modification time stamps of FD (a.k.a. FILE) to be
-   ATIME and MTIME, respectively.
-   FD must be either negative -- in which case it is ignored --
-   or a file descriptor that is open on FILE.
-   If FD is nonnegative, then FILE can be NULL.  */
-int
-set_file_times (int fd, const char *filename,
-               struct timespec atime, struct timespec mtime)
-{
-  struct timespec timespec[2];
-  timespec[0] = atime;
-  timespec[1] = mtime;
-  return fdutimens (fd, filename, timespec);
-}
-
 /* Rename directory SRCFD's entry SRC to directory DSTFD's entry DST.
    This is like renameat except that it fails if DST already exists,
    or if this operation is not supported atomically.  Return 0 if
diff --git a/src/systime.h b/src/systime.h
index 00ca4a1..b59a3d1 100644
--- a/src/systime.h
+++ b/src/systime.h
@@ -67,9 +67,6 @@ timespec_valid_p (struct timespec t)
   return t.tv_nsec >= 0;
 }
 
-/* defined in sysdep.c */
-extern int set_file_times (int, const char *, struct timespec, struct 
timespec);
-
 /* defined in keyboard.c */
 extern void set_waiting_for_input (struct timespec *);
 
diff --git a/src/textprop.c b/src/textprop.c
index ee04833..960dba3 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -131,6 +131,7 @@ validate_interval_range (Lisp_Object object, Lisp_Object 
*begin,
 {
   INTERVAL i;
   ptrdiff_t searchpos;
+  Lisp_Object begin0 = *begin, end0 = *end;
 
   CHECK_STRING_OR_BUFFER (object);
   CHECK_FIXNUM_COERCE_MARKER (*begin);
@@ -155,7 +156,7 @@ validate_interval_range (Lisp_Object object, Lisp_Object 
*begin,
 
       if (!(BUF_BEGV (b) <= XFIXNUM (*begin) && XFIXNUM (*begin) <= XFIXNUM 
(*end)
            && XFIXNUM (*end) <= BUF_ZV (b)))
-       args_out_of_range (*begin, *end);
+       args_out_of_range (begin0, end0);
       i = buffer_intervals (b);
 
       /* If there's no text, there are no properties.  */
@@ -170,7 +171,7 @@ validate_interval_range (Lisp_Object object, Lisp_Object 
*begin,
 
       if (! (0 <= XFIXNUM (*begin) && XFIXNUM (*begin) <= XFIXNUM (*end)
             && XFIXNUM (*end) <= len))
-       args_out_of_range (*begin, *end);
+       args_out_of_range (begin0, end0);
       i = string_intervals (object);
 
       if (len == 0)
@@ -611,7 +612,7 @@ get_char_property_and_overlay (Lisp_Object position, 
register Lisp_Object prop,
 {
   struct window *w = 0;
 
-  CHECK_FIXNUM_COERCE_MARKER (position);
+  EMACS_INT pos = fix_position (position);
 
   if (NILP (object))
     XSETBUFFER (object, current_buffer);
@@ -628,14 +629,14 @@ get_char_property_and_overlay (Lisp_Object position, 
register Lisp_Object prop,
       Lisp_Object *overlay_vec;
       struct buffer *obuf = current_buffer;
 
-      if (XFIXNUM (position) < BUF_BEGV (XBUFFER (object))
-         || XFIXNUM (position) > BUF_ZV (XBUFFER (object)))
+      if (! (BUF_BEGV (XBUFFER (object)) <= pos
+            && pos <= BUF_ZV (XBUFFER (object))))
        xsignal1 (Qargs_out_of_range, position);
 
       set_buffer_temp (XBUFFER (object));
 
       USE_SAFE_ALLOCA;
-      GET_OVERLAYS_AT (XFIXNUM (position), overlay_vec, noverlays, NULL, 
false);
+      GET_OVERLAYS_AT (pos, overlay_vec, noverlays, NULL, false);
       noverlays = sort_overlays (overlay_vec, noverlays, w);
 
       set_buffer_temp (obuf);
@@ -662,7 +663,7 @@ get_char_property_and_overlay (Lisp_Object position, 
register Lisp_Object prop,
 
   /* Not a buffer, or no appropriate overlay, so fall through to the
      simpler case.  */
-  return Fget_text_property (position, prop, object);
+  return Fget_text_property (make_fixnum (pos), prop, object);
 }
 
 DEFUN ("get-char-property", Fget_char_property, Sget_char_property, 2, 3, 0,
diff --git a/src/timefns.c b/src/timefns.c
index 46f9193..7bcc37d 100644
--- a/src/timefns.c
+++ b/src/timefns.c
@@ -421,6 +421,9 @@ decode_float_time (double t, struct lisp_time *result)
       else if (flt_radix_power_size <= scale)
        return isnan (t) ? EDOM : EOVERFLOW;
 
+      /* Compute TICKS, HZ such that TICKS / HZ exactly equals T, where HZ is
+        T's frequency or 1, whichever is greater.  Here, “frequency” means
+        1/precision.  Cache HZ values in flt_radix_power.  */
       double scaled = scalbn (t, scale);
       eassert (trunc (scaled) == scaled);
       ticks = double_to_integer (scaled);
@@ -442,6 +445,7 @@ decode_float_time (double t, struct lisp_time *result)
 static Lisp_Object
 ticks_hz_list4 (Lisp_Object ticks, Lisp_Object hz)
 {
+  /* mpz[0] = floor ((ticks * trillion) / hz).  */
   mpz_t const *zticks = bignum_integer (&mpz[0], ticks);
 #if FASTER_TIMEFNS && TRILLION <= ULONG_MAX
   mpz_mul_ui (mpz[0], *zticks, TRILLION);
@@ -449,6 +453,9 @@ ticks_hz_list4 (Lisp_Object ticks, Lisp_Object hz)
   mpz_mul (mpz[0], *zticks, ztrillion);
 #endif
   mpz_fdiv_q (mpz[0], mpz[0], *bignum_integer (&mpz[1], hz));
+
+  /* mpz[0] = floor (mpz[0] / trillion), with US = the high six digits of the
+     12-digit remainder, and PS = the low six digits.  */
 #if FASTER_TIMEFNS && TRILLION <= ULONG_MAX
   unsigned long int fullps = mpz_fdiv_q_ui (mpz[0], mpz[0], TRILLION);
   int us = fullps / 1000000;
@@ -458,11 +465,14 @@ ticks_hz_list4 (Lisp_Object ticks, Lisp_Object hz)
   int ps = mpz_fdiv_q_ui (mpz[1], mpz[1], 1000000);
   int us = mpz_get_ui (mpz[1]);
 #endif
+
+  /* mpz[0] = floor (mpz[0] / 1 << LO_TIME_BITS), with lo = remainder.  */
   unsigned long ulo = mpz_get_ui (mpz[0]);
   if (mpz_sgn (mpz[0]) < 0)
     ulo = -ulo;
   int lo = ulo & ((1 << LO_TIME_BITS) - 1);
   mpz_fdiv_q_2exp (mpz[0], mpz[0], LO_TIME_BITS);
+
   return list4 (make_integer_mpz (), make_fixnum (lo),
                make_fixnum (us), make_fixnum (ps));
 }
@@ -482,6 +492,7 @@ mpz_set_time (mpz_t rop, time_t t)
 static void
 timespec_mpz (struct timespec t)
 {
+  /* mpz[0] = sec * TIMESPEC_HZ + nsec.  */
   mpz_set_ui (mpz[0], t.tv_nsec);
   mpz_set_time (mpz[1], t.tv_sec);
   mpz_addmul_ui (mpz[0], mpz[1], TIMESPEC_HZ);
@@ -491,11 +502,14 @@ timespec_mpz (struct timespec t)
 static Lisp_Object
 timespec_ticks (struct timespec t)
 {
+  /* For speed, use intmax_t arithmetic if it will do.  */
   intmax_t accum;
   if (FASTER_TIMEFNS
       && !INT_MULTIPLY_WRAPV (t.tv_sec, TIMESPEC_HZ, &accum)
       && !INT_ADD_WRAPV (t.tv_nsec, accum, &accum))
     return make_int (accum);
+
+  /* Fall back on bignum arithmetic.  */
   timespec_mpz (t);
   return make_integer_mpz ();
 }
@@ -505,12 +519,19 @@ timespec_ticks (struct timespec t)
 static Lisp_Object
 lisp_time_hz_ticks (struct lisp_time t, Lisp_Object hz)
 {
+  /* The idea is to return the floor of ((T.ticks * HZ) / T.hz).  */
+
+  /* For speed, just return T.ticks if T.hz == HZ.  */
   if (FASTER_TIMEFNS && EQ (t.hz, hz))
     return t.ticks;
+
+  /* Check HZ for validity.  */
   if (FIXNUMP (hz))
     {
       if (XFIXNUM (hz) <= 0)
        invalid_hz (hz);
+
+      /* For speed, use intmax_t arithmetic if it will do.  */
       intmax_t ticks;
       if (FASTER_TIMEFNS && FIXNUMP (t.ticks) && FIXNUMP (t.hz)
          && !INT_MULTIPLY_WRAPV (XFIXNUM (t.ticks), XFIXNUM (hz), &ticks))
@@ -520,6 +541,7 @@ lisp_time_hz_ticks (struct lisp_time t, Lisp_Object hz)
   else if (! (BIGNUMP (hz) && 0 < mpz_sgn (*xbignum_val (hz))))
     invalid_hz (hz);
 
+  /* Fall back on bignum arithmetic.  */
   mpz_mul (mpz[0],
           *bignum_integer (&mpz[0], t.ticks),
           *bignum_integer (&mpz[1], hz));
@@ -531,11 +553,17 @@ lisp_time_hz_ticks (struct lisp_time t, Lisp_Object hz)
 static Lisp_Object
 lisp_time_seconds (struct lisp_time t)
 {
+  /* The idea is to return the floor of T.ticks / T.hz.  */
+
   if (!FASTER_TIMEFNS)
     return lisp_time_hz_ticks (t, make_fixnum (1));
+
+  /* For speed, use EMACS_INT arithmetic if it will do.  */
   if (FIXNUMP (t.ticks) && FIXNUMP (t.hz))
     return make_fixnum (XFIXNUM (t.ticks) / XFIXNUM (t.hz)
                        - (XFIXNUM (t.ticks) % XFIXNUM (t.hz) < 0));
+
+  /* For speed, inline what lisp_time_hz_ticks would do.  */
   mpz_fdiv_q (mpz[0],
              *bignum_integer (&mpz[0], t.ticks),
              *bignum_integer (&mpz[1], t.hz));
@@ -565,29 +593,29 @@ timespec_to_lisp (struct timespec t)
 }
 
 /* Return NUMERATOR / DENOMINATOR, rounded to the nearest double.
-   Arguments must be Lisp integers, and DENOMINATOR must be nonzero.  */
+   Arguments must be Lisp integers, and DENOMINATOR must be positive.  */
 static double
 frac_to_double (Lisp_Object numerator, Lisp_Object denominator)
 {
-  intmax_t intmax_numerator;
-  if (FASTER_TIMEFNS && EQ (denominator, make_fixnum (1))
-      && integer_to_intmax (numerator, &intmax_numerator))
-    return intmax_numerator;
+  intmax_t intmax_numerator, intmax_denominator;
+  if (FASTER_TIMEFNS
+      && integer_to_intmax (numerator, &intmax_numerator)
+      && integer_to_intmax (denominator, &intmax_denominator)
+      && intmax_numerator % intmax_denominator == 0)
+    return intmax_numerator / intmax_denominator;
 
+  /* Compute number of base-FLT_RADIX digits in numerator and denominator.  */
   mpz_t const *n = bignum_integer (&mpz[0], numerator);
   mpz_t const *d = bignum_integer (&mpz[1], denominator);
-  ptrdiff_t nbits = mpz_sizeinbase (*n, 2);
-  ptrdiff_t dbits = mpz_sizeinbase (*d, 2);
-  eassume (0 < nbits);
-  eassume (0 < dbits);
-  ptrdiff_t ndig = (nbits + LOG2_FLT_RADIX - 1) / LOG2_FLT_RADIX;
-  ptrdiff_t ddig = (dbits + LOG2_FLT_RADIX - 1) / LOG2_FLT_RADIX;
+  ptrdiff_t ndig = mpz_sizeinbase (*n, FLT_RADIX);
+  ptrdiff_t ddig = mpz_sizeinbase (*d, FLT_RADIX);
 
   /* Scale with SCALE when doing integer division.  That is, compute
      (N * FLT_RADIX**SCALE) / D [or, if SCALE is negative, N / (D *
      FLT_RADIX**-SCALE)] as a bignum, convert the bignum to double,
-     then divide the double by FLT_RADIX**SCALE.  */
-  ptrdiff_t scale = ddig - ndig + DBL_MANT_DIG + 1;
+     then divide the double by FLT_RADIX**SCALE.  First scale N
+     (or scale D, if SCALE is negative) ...  */
+  ptrdiff_t scale = ddig - ndig + DBL_MANT_DIG;
   if (scale < 0)
     {
       mpz_mul_2exp (mpz[1], *d, - (scale * LOG2_FLT_RADIX));
@@ -601,12 +629,12 @@ frac_to_double (Lisp_Object numerator, Lisp_Object 
denominator)
       mpz_mul_2exp (mpz[0], *n, scale * LOG2_FLT_RADIX);
       n = &mpz[0];
     }
-
+  /* ... and then divide, with quotient Q and remainder R.  */
   mpz_t *q = &mpz[2];
   mpz_t *r = &mpz[3];
   mpz_tdiv_qr (*q, *r, *n, *d);
 
-  /* The amount to add to the absolute value of *Q so that truncating
+  /* The amount to add to the absolute value of Q so that truncating
      it to double will round correctly.  */
   int incr;
 
@@ -615,7 +643,7 @@ frac_to_double (Lisp_Object numerator, Lisp_Object 
denominator)
      round to the nearest integer; otherwise, it is less than
      FLT_RADIX ** (DBL_MANT_DIG + 1) and round it to the nearest
      multiple of FLT_RADIX.  Break ties to even.  */
-  if (mpz_sizeinbase (*q, 2) < DBL_MANT_DIG * LOG2_FLT_RADIX)
+  if (mpz_sizeinbase (*q, FLT_RADIX) <= DBL_MANT_DIG)
     {
       /* Converting to double will use the whole quotient so add 1 to
         its absolute value as per round-to-even; i.e., if the doubled
@@ -645,6 +673,7 @@ frac_to_double (Lisp_Object numerator, Lisp_Object 
denominator)
   if (!FASTER_TIMEFNS || incr != 0)
     (mpz_sgn (*n) < 0 ? mpz_sub_ui : mpz_add_ui) (*q, *q, incr);
 
+  /* Rescale the integer Q back to double.  This step does not round.  */
   return scalbn (mpz_get_d (*q), -scale);
 }
 
@@ -739,44 +768,48 @@ decode_time_components (enum timeform form,
   /* Normalize out-of-range lower-order components by carrying
      each overflow into the next higher-order component.  */
   us += ps / 1000000 - (ps % 1000000 < 0);
-  mpz_set_intmax (mpz[0], us / 1000000 - (us % 1000000 < 0));
-  mpz_add (mpz[0], mpz[0], *bignum_integer (&mpz[1], low));
-  mpz_addmul_ui (mpz[0], *bignum_integer (&mpz[1], high), 1 << LO_TIME_BITS);
+  mpz_t *s = &mpz[1];
+  mpz_set_intmax (*s, us / 1000000 - (us % 1000000 < 0));
+  mpz_add (*s, *s, *bignum_integer (&mpz[0], low));
+  mpz_addmul_ui (*s, *bignum_integer (&mpz[0], high), 1 << LO_TIME_BITS);
   ps = ps % 1000000 + 1000000 * (ps % 1000000 < 0);
   us = us % 1000000 + 1000000 * (us % 1000000 < 0);
 
-  if (result)
+  Lisp_Object hz;
+  switch (form)
     {
-      switch (form)
-       {
-       case TIMEFORM_HI_LO:
-         /* Floats and nil were handled above, so it was an integer.  */
-         result->hz = make_fixnum (1);
-         break;
-
-       case TIMEFORM_HI_LO_US:
-         mpz_mul_ui (mpz[0], mpz[0], 1000000);
-         mpz_add_ui (mpz[0], mpz[0], us);
-         result->hz = make_fixnum (1000000);
-         break;
-
-       case TIMEFORM_HI_LO_US_PS:
-         mpz_mul_ui (mpz[0], mpz[0], 1000000);
-         mpz_add_ui (mpz[0], mpz[0], us);
-         mpz_mul_ui (mpz[0], mpz[0], 1000000);
-         mpz_add_ui (mpz[0], mpz[0], ps);
-         result->hz = trillion;
-         break;
-
-       default:
-         eassume (false);
-       }
-      result->ticks = make_integer_mpz ();
+    case TIMEFORM_HI_LO:
+      /* Floats and nil were handled above, so it was an integer.  */
+      mpz_swap (mpz[0], *s);
+      hz = make_fixnum (1);
+      break;
+
+    case TIMEFORM_HI_LO_US:
+      mpz_set_ui (mpz[0], us);
+      mpz_addmul_ui (mpz[0], *s, 1000000);
+      hz = make_fixnum (1000000);
+      break;
+
+    case TIMEFORM_HI_LO_US_PS:
+      {
+       #if FASTER_TIMEFNS && TRILLION <= ULONG_MAX
+         unsigned long i = us;
+         mpz_set_ui (mpz[0], i * 1000000 + ps);
+         mpz_addmul_ui (mpz[0], *s, TRILLION);
+       #else
+         intmax_t i = us;
+         mpz_set_intmax (mpz[0], i * 1000000 + ps);
+         mpz_addmul (mpz[0], *s, ztrillion);
+       #endif
+       hz = trillion;
+      }
+      break;
+
+    default:
+      eassume (false);
     }
-  else
-    *dresult = mpz_get_d (mpz[0]) + (us * 1e6L + ps) / 1e12L;
 
-  return 0;
+  return decode_ticks_hz (make_integer_mpz (), hz, result, dresult);
 }
 
 enum { DECODE_SECS_ONLY = WARN_OBSOLETE_TIMESTAMPS + 1 };
@@ -889,6 +922,10 @@ lisp_to_timespec (struct lisp_time t)
   mpz_t *q = &mpz[0];
   mpz_t const *qt = q;
 
+  /* Floor-divide (T.ticks * TIMESPEC_HZ) by T.hz,
+     yielding quotient Q (tv_sec) and remainder NS (tv_nsec).
+     Return an invalid timespec if Q does not fit in time_t.
+     For speed, prefer fixnum arithmetic if it works.  */
   if (FASTER_TIMEFNS && EQ (t.hz, timespec_hz))
     {
       if (FIXNUMP (t.ticks))
@@ -932,8 +969,8 @@ lisp_to_timespec (struct lisp_time t)
       ns = mpz_fdiv_q_ui (*q, *q, TIMESPEC_HZ);
     }
 
-  /* With some versions of MinGW, tv_sec is a 64-bit type, whereas
-     time_t is a 32-bit type.  */
+  /* Check that Q fits in time_t, not merely in T.tv_sec.  With some versions
+     of MinGW, tv_sec is a 64-bit type, whereas time_t is a 32-bit type.  */
   time_t sec;
   if (mpz_time (*qt, &sec))
     {
@@ -1013,10 +1050,14 @@ lispint_arith (Lisp_Object a, Lisp_Object b, bool 
subtract)
     {
       if (EQ (b, make_fixnum (0)))
        return a;
+
+      /* For speed, use EMACS_INT arithmetic if it will do.  */
       if (FIXNUMP (a))
        return make_int (subtract
                         ? XFIXNUM (a) - XFIXNUM (b)
                         : XFIXNUM (a) + XFIXNUM (b));
+
+      /* For speed, use mpz_add_ui/mpz_sub_ui if it will do.  */
       if (eabs (XFIXNUM (b)) <= ULONG_MAX)
        {
          ((XFIXNUM (b) < 0) == subtract ? mpz_add_ui : mpz_sub_ui)
@@ -1025,6 +1066,7 @@ lispint_arith (Lisp_Object a, Lisp_Object b, bool 
subtract)
        }
     }
 
+  /* Fall back on bignum arithmetic if necessary.  */
   if (!mpz_done)
     (subtract ? mpz_sub : mpz_add) (mpz[0],
                                    *bignum_integer (&mpz[0], a),
@@ -1033,9 +1075,7 @@ lispint_arith (Lisp_Object a, Lisp_Object b, bool 
subtract)
 }
 
 /* Given Lisp operands A and B, add their values, and return the
-   result as a Lisp timestamp that is in (TICKS . HZ) form if either A
-   or B are in that form or are floats, (HI LO US PS) form otherwise.
-   Subtract instead of adding if SUBTRACT.  */
+   result as a Lisp timestamp.  Subtract instead of adding if SUBTRACT.  */
 static Lisp_Object
 time_arith (Lisp_Object a, Lisp_Object b, bool subtract)
 {
@@ -1118,21 +1158,22 @@ time_arith (Lisp_Object a, Lisp_Object b, bool subtract)
       (subtract ? mpz_submul : mpz_addmul) (*iticks, *fa, *nb);
 
       /* Normalize iticks/ihz by dividing both numerator and
-        denominator by ig = gcd (iticks, ihz).  However, if that
-        would cause the denominator to become less than hzmin,
-        rescale the denominator upwards from its ordinary value by
-        multiplying numerator and denominator so that the denominator
-        becomes at least hzmin.  This rescaling avoids returning a
-        timestamp that is less precise than both a and b, or a
-        timestamp that looks obsolete when that might be a problem.  */
+        denominator by ig = gcd (iticks, ihz).  For speed, though,
+        skip this division if ihz = 1.  */
       mpz_t *ig = &mpz[3];
       mpz_gcd (*ig, *iticks, *ihz);
-
       if (!FASTER_TIMEFNS || mpz_cmp_ui (*ig, 1) > 0)
        {
          mpz_divexact (*iticks, *iticks, *ig);
          mpz_divexact (*ihz, *ihz, *ig);
 
+         /* However, if dividing the denominator by ig would cause the
+            denominator to become less than hzmin, rescale the denominator
+            upwards by multiplying the normalized numerator and denominator
+            so that the resulting denominator becomes at least hzmin.
+            This rescaling avoids returning a timestamp that is less precise
+            than both a and b, or a timestamp that looks obsolete when that
+            might be a problem.  */
          if (!FASTER_TIMEFNS || mpz_cmp (*ihz, *hzmin) < 0)
            {
              /* Rescale straightforwardly.  Although this might not
@@ -1146,6 +1187,8 @@ time_arith (Lisp_Object a, Lisp_Object b, bool subtract)
              mpz_mul (*ihz, *ihz, *rescale);
            }
        }
+
+      /* mpz[0] and iticks now correspond to the (HZ . TICKS) pair.  */
       hz = make_integer_mpz ();
       mpz_swap (mpz[0], *iticks);
       ticks = make_integer_mpz ();
@@ -1207,6 +1250,8 @@ time_cmp (Lisp_Object a, Lisp_Object b)
   if (EQ (a, b))
     return 0;
 
+  /* Compare (ATICKS . AZ) to (BTICKS . BHZ) by comparing
+     ATICKS * BHZ to BTICKS * AHZ.  */
   struct lisp_time tb = lisp_time_struct (b, 0);
   mpz_t const *za = bignum_integer (&mpz[0], ta.ticks);
   mpz_t const *zb = bignum_integer (&mpz[1], tb.ticks);
@@ -1484,6 +1529,7 @@ SEC is always an integer between 0 and 59.)
 usage: (decode-time &optional TIME ZONE FORM)  */)
   (Lisp_Object specified_time, Lisp_Object zone, Lisp_Object form)
 {
+  /* Compute broken-down local time LOCAL_TM from SPECIFIED_TIME and ZONE.  */
   struct lisp_time lt = lisp_time_struct (specified_time, 0);
   struct timespec ts = lisp_to_timespec (lt);
   if (! timespec_valid_p (ts))
@@ -1498,6 +1544,7 @@ usage: (decode-time &optional TIME ZONE FORM)  */)
   if (!tm)
     time_error (localtime_errno);
 
+  /* Let YEAR = LOCAL_TM.tm_year + TM_YEAR_BASE.  */
   Lisp_Object year;
   if (FASTER_TIMEFNS
       && MOST_NEGATIVE_FIXNUM - TM_YEAR_BASE <= local_tm.tm_year
@@ -1514,12 +1561,15 @@ usage: (decode-time &optional TIME ZONE FORM)  */)
       year = make_integer_mpz ();
     }
 
+  /* Compute SEC from LOCAL_TM.tm_sec and HZ.  */
   Lisp_Object hz = lt.hz, sec;
   if (EQ (hz, make_fixnum (1)) || !EQ (form, Qt))
     sec = make_fixnum (local_tm.tm_sec);
   else
     {
-      Lisp_Object ticks; /* hz * tm_sec + mod (lt.ticks, hz) */
+      /* Let TICKS = HZ * LOCAL_TM.tm_sec + mod (LT.ticks, HZ)
+        and SEC = (TICKS . HZ).  */
+      Lisp_Object ticks;
       intmax_t n;
       if (FASTER_TIMEFNS && FIXNUMP (lt.ticks) && FIXNUMP (hz)
          && !INT_MULTIPLY_WRAPV (XFIXNUM (hz), local_tm.tm_sec, &n)
@@ -1649,6 +1699,7 @@ usage: (encode-time TIME &rest OBSOLESCENT-ARGUMENTS)  */)
       yeararg = args[5];
     }
 
+  /* Let SEC = floor (LT.ticks / HZ), with SUBSECTICKS the remainder.  */
   struct lisp_time lt;
   decode_lisp_time (secarg, 0, &lt, 0);
   Lisp_Object hz = lt.hz, sec, subsecticks;
diff --git a/src/w32.c b/src/w32.c
index a3b9a56..698e10e 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -3178,18 +3178,9 @@ fdutimens (int fd, char const *file, struct timespec 
const timespec[2])
       return _futime (fd, &_ut);
     }
   else
-    {
-      struct utimbuf ut;
-
-      ut.actime = timespec[0].tv_sec;
-      ut.modtime = timespec[1].tv_sec;
-      /* Call 'utime', which is implemented below, not the MS library
-        function, which fails on directories.  */
-      return utime (file, &ut);
-    }
+    return utimensat (fd, file, timespec, 0);
 }
 
-
 /* ------------------------------------------------------------------------- */
 /* IO support and wrapper functions for the Windows API. */
 /* ------------------------------------------------------------------------- */
@@ -4320,10 +4311,9 @@ sys_chdir (const char * path)
     }
 }
 
-int
-sys_chmod (const char * path, int mode)
+static int
+chmod_worker (const char * path, int mode)
 {
-  path = chase_symlinks (map_w32_filename (path, NULL));
   if (w32_unicode_filenames)
     {
       wchar_t path_w[MAX_PATH];
@@ -4341,6 +4331,20 @@ sys_chmod (const char * path, int mode)
 }
 
 int
+sys_chmod (const char * path, int mode)
+{
+  path = chase_symlinks (map_w32_filename (path, NULL));
+  return chmod_worker (path, mode);
+}
+
+int
+lchmod (const char * path, mode_t mode)
+{
+  path = map_w32_filename (path, NULL);
+  return chmod_worker (path, mode);
+}
+
+int
 sys_creat (const char * path, int mode)
 {
   path = map_w32_filename (path, NULL);
@@ -4619,6 +4623,28 @@ fchmod (int fd, mode_t mode)
 }
 
 int
+fchmodat (int fd, char const *path, mode_t mode, int flags)
+{
+  /* Rely on a hack: an open directory is modeled as file descriptor 0,
+     as in fstatat.  FIXME: Add proper support for fchmodat.  */
+  char fullname[MAX_UTF8_PATH];
+
+  if (fd != AT_FDCWD)
+    {
+      if (_snprintf (fullname, sizeof fullname, "%s/%s", dir_pathname, path)
+         < 0)
+       {
+         errno = ENAMETOOLONG;
+         return -1;
+       }
+      path = fullname;
+    }
+
+  return
+    flags == AT_SYMLINK_NOFOLLOW ? lchmod (path, mode) : sys_chmod (path, 
mode);
+}
+
+int
 sys_rename_replace (const char *oldname, const char *newname, BOOL force)
 {
   BOOL result;
@@ -4935,7 +4961,7 @@ convert_time (FILETIME ft)
 }
 
 static void
-convert_from_time_t (time_t time, FILETIME * pft)
+convert_from_timespec (struct timespec time, FILETIME * pft)
 {
   ULARGE_INTEGER tmp;
 
@@ -4946,7 +4972,8 @@ convert_from_time_t (time_t time, FILETIME * pft)
     }
 
   /* time in 100ns units since 1-Jan-1601 */
-  tmp.QuadPart = (ULONGLONG) time * 10000000L + utc_base;
+  tmp.QuadPart =
+    (ULONGLONG) time.tv_sec * 10000000L + time.tv_nsec / 100 + utc_base;
   pft->dwHighDateTime = tmp.HighPart;
   pft->dwLowDateTime = tmp.LowPart;
 }
@@ -5613,8 +5640,8 @@ fstatat (int fd, char const *name, struct stat *st, int 
flags)
   return stat_worker (name, st, ! (flags & AT_SYMLINK_NOFOLLOW));
 }
 
-/* Provide fstat and utime as well as stat for consistent handling of
-   file timestamps. */
+/* Provide fstat and utimensat as well as stat for consistent handling
+   of file timestamps. */
 int
 fstat (int desc, struct stat * buf)
 {
@@ -5725,23 +5752,65 @@ fstat (int desc, struct stat * buf)
   return 0;
 }
 
-/* A version of 'utime' which handles directories as well as
-   files.  */
+/* Emulate utimensat.  */
 
 int
-utime (const char *name, struct utimbuf *times)
+utimensat (int fd, const char *name, const struct timespec times[2], int flag)
 {
-  struct utimbuf deftime;
+  struct timespec ltimes[2];
   HANDLE fh;
   FILETIME mtime;
   FILETIME atime;
+  DWORD flags_and_attrs = FILE_FLAG_BACKUP_SEMANTICS;
+
+  /* Rely on a hack: an open directory is modeled as file descriptor 0.
+     This is good enough for the current usage in Emacs, but is fragile.
+
+     FIXME: Add proper support for utimensat.
+     Gnulib does this and can serve as a model.  */
+  char fullname[MAX_UTF8_PATH];
+
+  if (fd != AT_FDCWD)
+    {
+      char lastc = dir_pathname[strlen (dir_pathname) - 1];
+
+      if (_snprintf (fullname, sizeof fullname, "%s%s%s",
+                    dir_pathname, IS_DIRECTORY_SEP (lastc) ? "" : "/", name)
+         < 0)
+       {
+         errno = ENAMETOOLONG;
+         return -1;
+       }
+      name = fullname;
+    }
 
   if (times == NULL)
     {
-      deftime.modtime = deftime.actime = time (NULL);
-      times = &deftime;
+      memset (ltimes, 0, sizeof (ltimes));
+      ltimes[0] = ltimes[1] = current_timespec ();
     }
+  else
+    {
+      if (times[0].tv_nsec == UTIME_OMIT && times[1].tv_nsec == UTIME_OMIT)
+       return 0;               /* nothing to do */
+      if ((times[0].tv_nsec != UTIME_NOW && times[0].tv_nsec != UTIME_OMIT
+          && !(0 <= times[0].tv_nsec && times[0].tv_nsec < 1000000000))
+         || (times[1].tv_nsec != UTIME_NOW && times[1].tv_nsec != UTIME_OMIT
+             && !(0 <= times[1].tv_nsec && times[1].tv_nsec < 1000000000)))
+       {
+         errno = EINVAL;       /* reject invalid timespec values */
+         return -1;
+       }
 
+      memcpy (ltimes, times, sizeof (ltimes));
+      if (ltimes[0].tv_nsec == UTIME_NOW)
+       ltimes[0] = current_timespec ();
+      if (ltimes[1].tv_nsec == UTIME_NOW)
+       ltimes[1] = current_timespec ();
+    }
+
+  if (flag == AT_SYMLINK_NOFOLLOW)
+    flags_and_attrs |= FILE_FLAG_OPEN_REPARSE_POINT;
   if (w32_unicode_filenames)
     {
       wchar_t name_utf16[MAX_PATH];
@@ -5755,7 +5824,7 @@ utime (const char *name, struct utimbuf *times)
                           allows other processes to delete files inside it,
                           while we have the directory open.  */
                        FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
-                       0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
+                       0, OPEN_EXISTING, flags_and_attrs, NULL);
     }
   else
     {
@@ -5766,13 +5835,26 @@ utime (const char *name, struct utimbuf *times)
 
       fh = CreateFileA (name_ansi, FILE_WRITE_ATTRIBUTES,
                        FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
-                       0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
+                       0, OPEN_EXISTING, flags_and_attrs, NULL);
     }
   if (fh != INVALID_HANDLE_VALUE)
     {
-      convert_from_time_t (times->actime, &atime);
-      convert_from_time_t (times->modtime, &mtime);
-      if (!SetFileTime (fh, NULL, &atime, &mtime))
+      FILETIME *patime, *pmtime;
+      if (ltimes[0].tv_nsec == UTIME_OMIT)
+       patime = NULL;
+      else
+       {
+         convert_from_timespec (ltimes[0], &atime);
+         patime = &atime;
+       }
+      if (ltimes[1].tv_nsec == UTIME_OMIT)
+       pmtime = NULL;
+      else
+       {
+         convert_from_timespec (ltimes[1], &mtime);
+         pmtime = &mtime;
+       }
+      if (!SetFileTime (fh, NULL, patime, pmtime))
        {
          CloseHandle (fh);
          errno = EACCES;
@@ -6691,16 +6773,16 @@ w32_copy_file (const char *from, const char *to,
      FIXME?  */
   else if (!keep_time)
     {
-      struct timespec now;
+      struct timespec tnow[2];
       DWORD attributes;
 
+      tnow[0] = tnow[1] = current_timespec ();
       if (w32_unicode_filenames)
        {
          /* Ensure file is writable while its times are set.  */
          attributes = GetFileAttributesW (to_w);
          SetFileAttributesW (to_w, attributes & ~FILE_ATTRIBUTE_READONLY);
-         now = current_timespec ();
-         if (set_file_times (-1, to, now, now))
+         if (utimensat (AT_FDCWD, to, tnow, 0))
            {
              /* Restore original attributes.  */
              SetFileAttributesW (to_w, attributes);
@@ -6715,8 +6797,7 @@ w32_copy_file (const char *from, const char *to,
        {
          attributes = GetFileAttributesA (to_a);
          SetFileAttributesA (to_a, attributes & ~FILE_ATTRIBUTE_READONLY);
-         now = current_timespec ();
-         if (set_file_times (-1, to, now, now))
+         if (utimensat (AT_FDCWD, to, tnow, 0))
            {
              SetFileAttributesA (to_a, attributes);
              if (acl)
diff --git a/src/w32.h b/src/w32.h
index f301b38..cf1dadf 100644
--- a/src/w32.h
+++ b/src/w32.h
@@ -222,6 +222,8 @@ extern void register_child (pid_t, int);
 extern void sys_sleep (int);
 extern int sys_link (const char *, const char *);
 extern int openat (int, const char *, int, int);
+extern int fchmodat (int, char const *, mode_t, int);
+extern int lchmod (char const *, mode_t);
 
 /* Return total and free memory info.  */
 extern int w32_memory_info (unsigned long long *, unsigned long long *,
diff --git a/src/w32fns.c b/src/w32fns.c
index 61e22e5..2f01fb5 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -5749,7 +5749,7 @@ do_unwind_create_frame (Lisp_Object frame)
   unwind_create_frame (frame);
 }
 
-static void
+void
 w32_default_font_parameter (struct frame *f, Lisp_Object parms)
 {
   struct w32_display_info *dpyinfo = FRAME_DISPLAY_INFO (f);
diff --git a/src/w32term.c b/src/w32term.c
index 4eb5045..76cf6bd 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -4701,6 +4701,10 @@ static short temp_buffer[100];
 /* Temporarily store lead byte of DBCS input sequences.  */
 static char dbcs_lead = 0;
 
+/* Temporarily store pending UTF-16 high surrogate unit and the modifiers.  */
+static unsigned short utf16_high;
+static DWORD utf16_high_modifiers;
+
 /**
   mouse_or_wdesc_frame: When not dropping and the mouse was grabbed
   for DPYINFO, return the frame where the mouse was seen last.  If
@@ -4912,9 +4916,45 @@ w32_read_socket (struct terminal *terminal,
              XSETFRAME (inev.frame_or_window, f);
              inev.timestamp = msg.msg.time;
 
+             if (utf16_high
+                 && (msg.msg.message != WM_UNICHAR
+                     || UTF_16_HIGH_SURROGATE_P (msg.msg.wParam)))
+               {
+                 /* Flush the pending high surrogate if the low one
+                    isn't coming.  (This should never happen, but I
+                    have paranoia about this stuff.)  */
+                 struct input_event inev1;
+                 inev1.modifiers = utf16_high_modifiers;
+                 inev1.code = utf16_high;
+                 inev1.timestamp = inev.timestamp;
+                 inev1.arg = Qnil;
+                 kbd_buffer_store_event_hold (&inev1, hold_quit);
+                 utf16_high = 0;
+                 utf16_high_modifiers = 0;
+               }
+
               if (msg.msg.message == WM_UNICHAR)
                 {
-                  inev.code = msg.msg.wParam;
+                 /* Handle UTF-16 encoded codepoint above the BMP.
+                    This is needed to support Emoji input from input
+                    panel popped up by "Win+." shortcut.  */
+                 if (UTF_16_HIGH_SURROGATE_P (msg.msg.wParam))
+                   {
+                     utf16_high = msg.msg.wParam;
+                     utf16_high_modifiers = inev.modifiers;
+                     inev.kind = NO_EVENT;
+                     break;
+                   }
+                 else if (UTF_16_LOW_SURROGATE_P (msg.msg.wParam)
+                          && utf16_high)
+                   {
+                     inev.code = surrogates_to_codepoint (msg.msg.wParam,
+                                                          utf16_high);
+                     utf16_high = 0;
+                     utf16_high_modifiers = 0;
+                   }
+                 else
+                   inev.code = msg.msg.wParam;
                 }
               else if (msg.msg.wParam < 256)
                 {
@@ -7209,7 +7249,8 @@ static struct redisplay_interface w32_redisplay_interface 
=
   w32_draw_window_divider,
   w32_shift_glyphs_for_insert,
   w32_show_hourglass,
-  w32_hide_hourglass
+  w32_hide_hourglass,
+  w32_default_font_parameter
 };
 
 static void w32_delete_terminal (struct terminal *term);
diff --git a/src/w32term.h b/src/w32term.h
index 737764b..f8a8a72 100644
--- a/src/w32term.h
+++ b/src/w32term.h
@@ -267,6 +267,10 @@ extern void w32con_show_cursor (void);
 extern const char *w32_get_string_resource (void *v_rdb,
                                             const char *name,
                                             const char *class);
+
+/* w32fns.c */
+extern void w32_default_font_parameter (struct frame* f, Lisp_Object parms);
+
 
 #define PIX_TYPE COLORREF
 
diff --git a/src/window.c b/src/window.c
index 8cdad27..075fd4e 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1895,10 +1895,7 @@ POS, ROWH is the visible height of that row, and VPOS is 
the row number
   if (EQ (pos, Qt))
     posint = -1;
   else if (!NILP (pos))
-    {
-      CHECK_FIXNUM_COERCE_MARKER (pos);
-      posint = XFIXNUM (pos);
-    }
+    posint = fix_position (pos);
   else if (w == XWINDOW (selected_window))
     posint = PT;
   else
diff --git a/src/xdisp.c b/src/xdisp.c
index e41ceaf..61c798c 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -815,11 +815,6 @@ static struct props it_props[] =
   {0,                          0,                      NULL}
 };
 
-/* Value is the position described by X.  If X is a marker, value is
-   the marker_position of X.  Otherwise, value is X.  */
-
-#define COERCE_MARKER(X) (MARKERP ((X)) ? Fmarker_position (X) : (X))
-
 /* Enumeration returned by some move_it_.* functions internally.  */
 
 enum move_it_result
@@ -1020,6 +1015,7 @@ static Lisp_Object calc_line_height_property (struct it 
*, Lisp_Object,
 static void produce_special_glyphs (struct it *, enum display_element_type);
 static void show_mouse_face (Mouse_HLInfo *, enum draw_glyphs_face);
 static bool coords_in_mouse_face_p (struct window *, int, int);
+static void reset_box_start_end_flags (struct it *);
 
 
 
@@ -1435,6 +1431,29 @@ window_hscroll_limited (struct window *w, struct frame 
*f)
   return window_hscroll;
 }
 
+/* Reset the box-face start and end flags in the iterator.  This is
+   called after producing glyphs, such that we reset these flags only
+   after producing a glyph with the flag set.  */
+
+static void
+reset_box_start_end_flags (struct it *it)
+{
+  /* Don't reset if we've drawn the glyph in the display margins --
+     those don't count as "produced glyphs".  */
+  if (it->area == TEXT_AREA
+      /* Don't reset if we displayed a fringe bitmap.  */
+      && !(it->what == IT_IMAGE && it->image_id < 0))
+    {
+      /* Don't reset if the face is not a box face: that might mean we
+        are iterating some overlay or display string, and the first
+        character to have the box face is yet to be seen, when we pop
+        the iterator stack. */
+      if (it->face_box_p)
+       it->start_of_box_run_p = false;
+      it->end_of_box_run_p = false;
+    }
+}
+
 /* Return true if position CHARPOS is visible in window W.
    CHARPOS < 0 means return info about WINDOW_END position.
    If visible, set *X and *Y to pixel coordinates of top left corner.
@@ -4315,8 +4334,11 @@ handle_face_prop (struct it *it)
         this is the start of a run of characters with box face,
         i.e. this character has a shadow on the left side.  */
       it->face_id = new_face_id;
-      it->start_of_box_run_p = (new_face->box != FACE_NO_BOX
-                                && (old_face == NULL || !old_face->box));
+      /* Don't reset the start_of_box_run_p flag, only set it if
+        needed.  */
+      if (!(it->start_of_box_run_p && old_face && old_face->box))
+       it->start_of_box_run_p = (new_face->box != FACE_NO_BOX
+                                 && (old_face == NULL || !old_face->box));
       it->face_box_p = new_face->box != FACE_NO_BOX;
     }
 
@@ -6457,7 +6479,16 @@ pop_it (struct it *it)
       it->object = p->u.stretch.object;
       break;
     case GET_FROM_BUFFER:
-      it->object = it->w->contents;
+      {
+       struct face *face = FACE_FROM_ID_OR_NULL (it->f, it->face_id);
+
+       /* Restore the face_box_p flag, since it could have been
+          overwritten by the face of the object that we just finished
+          displaying.  */
+       if (face)
+         it->face_box_p = face->box != FACE_NO_BOX;
+       it->object = it->w->contents;
+      }
       break;
     case GET_FROM_STRING:
       {
@@ -7586,9 +7617,8 @@ get_next_display_element (struct it *it)
                  /* If the box comes from face properties in a
                     display string, check faces in that string.  */
                  int string_face_id = face_after_it_pos (it);
-                 it->end_of_box_run_p
-                   = (FACE_FROM_ID (it->f, string_face_id)->box
-                      == FACE_NO_BOX);
+                 if (FACE_FROM_ID (it->f, string_face_id)->box == FACE_NO_BOX)
+                   it->end_of_box_run_p = true;
                }
              /* Otherwise, the box comes from the underlying face.
                 If this is the last string character displayed, check
@@ -7657,9 +7687,9 @@ get_next_display_element (struct it *it)
                                                       CHARPOS (pos), 0,
                                                       &ignore, face_id,
                                                       false, 0);
-                         it->end_of_box_run_p
-                           = (FACE_FROM_ID (it->f, next_face_id)->box
-                              == FACE_NO_BOX);
+                         if (FACE_FROM_ID (it->f, next_face_id)->box
+                             == FACE_NO_BOX)
+                           it->end_of_box_run_p = true;
                        }
                    }
                  else if (CHARPOS (pos) >= ZV)
@@ -7672,9 +7702,9 @@ get_next_display_element (struct it *it)
                                                 CHARPOS (pos)
                                                 + TEXT_PROP_DISTANCE_LIMIT,
                                                 false, -1, 0);
-                     it->end_of_box_run_p
-                       = (FACE_FROM_ID (it->f, next_face_id)->box
-                          == FACE_NO_BOX);
+                     if (FACE_FROM_ID (it->f, next_face_id)->box
+                         == FACE_NO_BOX)
+                       it->end_of_box_run_p = true;
                    }
                }
            }
@@ -7684,9 +7714,9 @@ get_next_display_element (struct it *it)
       else if (it->method != GET_FROM_DISPLAY_VECTOR)
        {
          int face_id = face_after_it_pos (it);
-         it->end_of_box_run_p
-           = (face_id != it->face_id
-              && FACE_FROM_ID (it->f, face_id)->box == FACE_NO_BOX);
+         if (face_id != it->face_id
+             && FACE_FROM_ID (it->f, face_id)->box == FACE_NO_BOX)
+           it->end_of_box_run_p = true;
        }
     }
   /* If we reached the end of the object we've been iterating (e.g., a
@@ -7723,10 +7753,6 @@ get_next_display_element (struct it *it)
 void
 set_iterator_to_next (struct it *it, bool reseat_p)
 {
-  /* Reset flags indicating start and end of a sequence of characters
-     with box.  Reset them at the start of this function because
-     moving the iterator to a new position might set them.  */
-  it->start_of_box_run_p = it->end_of_box_run_p = false;
 
   switch (it->method)
     {
@@ -8138,9 +8164,9 @@ next_element_from_display_vector (struct it *it)
            }
        }
       next_face = FACE_FROM_ID_OR_NULL (it->f, next_face_id);
-      it->end_of_box_run_p = (this_face && this_face->box != FACE_NO_BOX
-                             && (!next_face
-                                 || next_face->box == FACE_NO_BOX));
+      if (this_face && this_face->box != FACE_NO_BOX
+         && (!next_face || next_face->box == FACE_NO_BOX))
+       it->end_of_box_run_p = true;
       it->face_box_p = this_face && this_face->box != FACE_NO_BOX;
     }
   else
@@ -10387,10 +10413,7 @@ include the height of both, if present, in the return 
value.  */)
        start = pos;
     }
   else
-    {
-      CHECK_FIXNUM_COERCE_MARKER (from);
-      start = min (max (XFIXNUM (from), BEGV), ZV);
-    }
+    start = clip_to_bounds (BEGV, fix_position (from), ZV);
 
   if (NILP (to))
     end = ZV;
@@ -10404,10 +10427,7 @@ include the height of both, if present, in the return 
value.  */)
        end = pos;
     }
   else
-    {
-      CHECK_FIXNUM_COERCE_MARKER (to);
-      end = max (start, min (XFIXNUM (to), ZV));
-    }
+    end = clip_to_bounds (start, fix_position (to), ZV);
 
   if (!NILP (x_limit) && RANGED_FIXNUMP (0, x_limit, INT_MAX))
     max_x = XFIXNUM (x_limit);
@@ -13358,11 +13378,6 @@ handle_tab_bar_click (struct frame *f, int x, int y, 
bool down_p,
       XSETFRAME (frame, f);
       event.kind = TAB_BAR_EVENT;
       event.frame_or_window = frame;
-      event.arg = frame;
-      kbd_buffer_store_event (&event);
-
-      event.kind = TAB_BAR_EVENT;
-      event.frame_or_window = frame;
       event.arg = key;
       event.modifiers = close_p ? ctrl_modifier | modifiers : modifiers;
       kbd_buffer_store_event (&event);
@@ -13538,11 +13553,6 @@ tty_handle_tab_bar_click (struct frame *f, int x, int 
y, bool down_p,
       XSETFRAME (frame, f);
       event->kind = TAB_BAR_EVENT;
       event->frame_or_window = frame;
-      event->arg = frame;
-      kbd_buffer_store_event (event);
-
-      event->kind = TAB_BAR_EVENT;
-      event->frame_or_window = frame;
       event->arg = key;
       if (close_p)
        event->modifiers |= ctrl_modifier;
@@ -14324,11 +14334,6 @@ handle_tool_bar_click (struct frame *f, int x, int y, 
bool down_p,
       XSETFRAME (frame, f);
       event.kind = TOOL_BAR_EVENT;
       event.frame_or_window = frame;
-      event.arg = frame;
-      kbd_buffer_store_event (&event);
-
-      event.kind = TOOL_BAR_EVENT;
-      event.frame_or_window = frame;
       event.arg = key;
       event.modifiers = modifiers;
       kbd_buffer_store_event (&event);
@@ -14928,7 +14933,7 @@ overlay_arrows_changed_p (bool set_redisplay)
       val = find_symbol_value (var);
       if (!MARKERP (val))
        continue;
-      if (! EQ (COERCE_MARKER (val),
+      if (! EQ (Fmarker_position (val),
                 /* FIXME: Don't we have a problem, using such a global
                  * "last-position" if the variable is buffer-local?  */
                Fget (var, Qlast_arrow_position))
@@ -14971,8 +14976,7 @@ update_overlay_arrows (int up_to_date)
          Lisp_Object val = find_symbol_value (var);
           if (!MARKERP (val))
            continue;
-         Fput (var, Qlast_arrow_position,
-               COERCE_MARKER (val));
+         Fput (var, Qlast_arrow_position, Fmarker_position (val));
          Fput (var, Qlast_arrow_string,
                overlay_arrow_string_or_property (var));
        }
@@ -21500,6 +21504,8 @@ append_space_for_newline (struct it *it, bool 
default_face_p)
 
       const int indicator_column =
        fill_column_indicator_column (it, char_width);
+      int saved_end_of_box_run = it->end_of_box_run_p;
+      bool should_keep_end_of_box_run = false;
 
       if (it->current_x == indicator_column)
        {
@@ -21522,14 +21528,18 @@ append_space_for_newline (struct it *it, bool 
default_face_p)
             have the end_of_box_run_p flag set for it, so there's no
             need for the appended newline glyph to have that flag
             set.  */
-         if (it->glyph_row->reversed_p
-             /* But if the appended newline glyph goes all the way to
-                the end of the row, there will be no stretch glyph,
-                so leave the box flag set.  */
-             && saved_x + FRAME_COLUMN_WIDTH (it->f) < it->last_visible_x)
-           it->end_of_box_run_p = false;
+         if (!(it->glyph_row->reversed_p
+               /* But if the appended newline glyph goes all the way to
+                  the end of the row, there will be no stretch glyph,
+                  so leave the box flag set.  */
+               && saved_x + FRAME_COLUMN_WIDTH (it->f) < it->last_visible_x))
+           should_keep_end_of_box_run = true;
        }
       PRODUCE_GLYPHS (it);
+      /* Restore the end_of_box_run_p flag which was reset by
+        PRODUCE_GLYPHS.  */
+      if (should_keep_end_of_box_run)
+       it->end_of_box_run_p = saved_end_of_box_run;
 #ifdef HAVE_WINDOW_SYSTEM
       if (FRAME_WINDOW_P (it->f))
        {
@@ -29230,7 +29240,7 @@ produce_stretch_glyph (struct it *it)
 
   /* Compute the width of the stretch.  */
   if ((prop = Fplist_get (plist, QCwidth), !NILP (prop))
-      && calc_pixel_width_or_height (&tem, it, prop, font, true, 0))
+      && calc_pixel_width_or_height (&tem, it, prop, font, true, NULL))
     {
       /* Absolute width `:width WIDTH' specified and valid.  */
       zero_width_ok_p = true;
@@ -29286,7 +29296,7 @@ produce_stretch_glyph (struct it *it)
       int default_height = normal_char_height (font, ' ');
 
       if ((prop = Fplist_get (plist, QCheight), !NILP (prop))
-         && calc_pixel_width_or_height (&tem, it, prop, font, false, 0))
+         && calc_pixel_width_or_height (&tem, it, prop, font, false, NULL))
        {
          height = (int)tem;
          zero_height_ok_p = true;
@@ -31456,6 +31466,10 @@ show_mouse_face (Mouse_HLInfo *hlinfo, enum 
draw_glyphs_face draw)
   struct window *w = XWINDOW (hlinfo->mouse_face_window);
   struct frame *f = XFRAME (WINDOW_FRAME (w));
 
+  /* Don't bother doing anything if we are on a wrong frame.  */
+  if (f != hlinfo->mouse_face_mouse_frame)
+    return;
+
   if (/* If window is in the process of being destroyed, don't bother
         to do anything.  */
       w->current_matrix != NULL
diff --git a/src/xfns.c b/src/xfns.c
index 5758bb7..8de4c8b 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -3555,7 +3555,7 @@ do_unwind_create_frame (Lisp_Object frame)
   unwind_create_frame (frame);
 }
 
-static void
+void
 x_default_font_parameter (struct frame *f, Lisp_Object parms)
 {
   struct x_display_info *dpyinfo = FRAME_DISPLAY_INFO (f);
diff --git a/src/xrdb.c b/src/xrdb.c
index ad7155c..e3a1fcb 100644
--- a/src/xrdb.c
+++ b/src/xrdb.c
@@ -353,7 +353,7 @@ get_environ_db (void)
          p = filename = xmalloc (strlen (home) + 1 + sizeof xdefaults
                                  + 1 + SBYTES (system_name));
          char *e = splice_dir_file (p, home, xdefaults);
-         *e++ = '/';
+         *e++ = '-';
          lispstpcpy (e, system_name);
        }
     }
diff --git a/src/xterm.c b/src/xterm.c
index 21d99f0..d7d992c 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -4790,6 +4790,16 @@ x_detect_focus_change (struct x_display_info *dpyinfo, 
struct frame *frame,
 
     case FocusIn:
     case FocusOut:
+      /* Ignore transient focus events from hotkeys, window manager
+         gadgets, and other odd sources.  Some buggy window managers
+         (e.g., Muffin 4.2.4) send FocusIn events of this type without
+         corresponding FocusOut events even when some other window
+         really has focus, and these kinds of focus event don't
+         correspond to real user input changes.  GTK+ uses the same
+         filtering. */
+      if (event->xfocus.mode == NotifyGrab ||
+          event->xfocus.mode == NotifyUngrab)
+        return;
       x_focus_changed (event->type,
                       (event->xfocus.detail == NotifyPointer ?
                        FOCUS_IMPLICIT : FOCUS_EXPLICIT),
@@ -13374,7 +13384,8 @@ static struct redisplay_interface x_redisplay_interface 
=
     x_draw_window_divider,
     x_shift_glyphs_for_insert, /* Never called; see comment in function.  */
     x_show_hourglass,
-    x_hide_hourglass
+    x_hide_hourglass,
+    x_default_font_parameter
   };
 
 
diff --git a/src/xterm.h b/src/xterm.h
index 51e7589..bc10043 100644
--- a/src/xterm.h
+++ b/src/xterm.h
@@ -1056,6 +1056,7 @@ extern void x_real_pos_and_offsets (struct frame *f,
                                     int *xptr,
                                     int *yptr,
                                     int *outer_border);
+extern void x_default_font_parameter (struct frame* f, Lisp_Object parms);
 
 /* From xrdb.c.  */
 
diff --git a/test/data/emacs-module/mod-test.c 
b/test/data/emacs-module/mod-test.c
index ec69489..61733f1 100644
--- a/test/data/emacs-module/mod-test.c
+++ b/test/data/emacs-module/mod-test.c
@@ -30,6 +30,9 @@ along with GNU Emacs.  If not, see 
<https://www.gnu.org/licenses/>.  */
 #include <string.h>
 #include <time.h>
 
+#include <pthread.h>
+#include <unistd.h>
+
 #ifdef HAVE_GMP
 #include <gmp.h>
 #else
@@ -320,9 +323,9 @@ Fmod_test_invalid_finalizer (emacs_env *env, ptrdiff_t 
nargs, emacs_value *args,
 }
 
 static void
-signal_errno (emacs_env *env, const char *function)
+signal_system_error (emacs_env *env, int error, const char *function)
 {
-  const char *message = strerror (errno);
+  const char *message = strerror (error);
   emacs_value message_value = env->make_string (env, message, strlen 
(message));
   emacs_value symbol = env->intern (env, "file-error");
   emacs_value elements[2]
@@ -331,6 +334,12 @@ signal_errno (emacs_env *env, const char *function)
   env->non_local_exit_signal (env, symbol, data);
 }
 
+static void
+signal_errno (emacs_env *env, const char *function)
+{
+  signal_system_error (env, errno, function);
+}
+
 /* A long-running operation that occasionally calls `should_quit' or
    `process_input'.  */
 
@@ -533,6 +542,49 @@ Fmod_test_function_finalizer_calls (emacs_env *env, 
ptrdiff_t nargs,
   return env->funcall (env, Flist, 2, list_args);
 }
 
+static void *
+write_to_pipe (void *arg)
+{
+  /* We sleep a bit to test that writing to a pipe is indeed possible
+     if no environment is active. */
+  const struct timespec sleep = {0, 500000000};
+  if (nanosleep (&sleep, NULL) != 0)
+    perror ("nanosleep");
+  FILE *stream = arg;
+  if (fputs ("data from thread", stream) < 0)
+    perror ("fputs");
+  if (fclose (stream) != 0)
+    perror ("close");
+  return NULL;
+}
+
+static emacs_value
+Fmod_test_async_pipe (emacs_env *env, ptrdiff_t nargs, emacs_value *args,
+                      void *data)
+{
+  assert (nargs == 1);
+  int fd = env->open_channel (env, args[0]);
+  if (env->non_local_exit_check (env) != emacs_funcall_exit_return)
+    return NULL;
+  FILE *stream = fdopen (fd, "w");
+  if (stream == NULL)
+    {
+      signal_errno (env, "fdopen");
+      return NULL;
+    }
+  pthread_t thread;
+  int error
+    = pthread_create (&thread, NULL, write_to_pipe, stream);
+  if (error != 0)
+    {
+      signal_system_error (env, error, "pthread_create");
+      if (fclose (stream) != 0)
+        perror ("fclose");
+      return NULL;
+    }
+  return env->intern (env, "nil");
+}
+
 /* Lisp utilities for easier readability (simple wrappers).  */
 
 /* Provide FEATURE to Emacs.  */
@@ -614,6 +666,7 @@ emacs_module_init (struct emacs_runtime *ert)
          Fmod_test_make_function_with_finalizer, 0, 0, NULL, NULL);
   DEFUN ("mod-test-function-finalizer-calls",
          Fmod_test_function_finalizer_calls, 0, 0, NULL, NULL);
+  DEFUN ("mod-test-async-pipe", Fmod_test_async_pipe, 1, 1, NULL, NULL);
 
 #undef DEFUN
 
diff --git a/test/data/image/black-short.jpg b/test/data/image/black-short.jpg
new file mode 100644
index 0000000..02a5b0b
Binary files /dev/null and b/test/data/image/black-short.jpg differ
diff --git a/test/lisp/electric-tests.el b/test/lisp/electric-tests.el
index 6334c62..56d1bdb 100644
--- a/test/lisp/electric-tests.el
+++ b/test/lisp/electric-tests.el
@@ -906,7 +906,7 @@ baz\"\""
     (electric-pair-local-mode 1)
     (insert-before-markers "int main () {}")
     (backward-char 1)
-    (let ((last-command-event ?
))
+    (let ((last-command-event ?\r))
       (call-interactively (key-binding `[,last-command-event])))
     (should (equal (buffer-string) "int main () {\n  \n}"))))
 
@@ -927,7 +927,7 @@ baz\"\""
                        '(after-stay))))))
     (insert "int main () {}")
     (backward-char 1)
-    (let ((last-command-event ?
))
+    (let ((last-command-event ?\r))
       (call-interactively (key-binding `[,last-command-event])))
     (should (equal (buffer-string) "int main () {\n  \n}"))))
 
@@ -948,7 +948,7 @@ baz\"\""
                        '(after-stay)))))
     (insert "int main () {}")
     (backward-char 1)
-    (let ((last-command-event ?
))
+    (let ((last-command-event ?\r))
       (call-interactively (key-binding `[,last-command-event])))
     (should (equal (buffer-string) "int main () {\n  \n}"))))
 
diff --git a/test/lisp/emacs-lisp/bytecomp-tests.el 
b/test/lisp/emacs-lisp/bytecomp-tests.el
index de11ae2..d4ceb47 100644
--- a/test/lisp/emacs-lisp/bytecomp-tests.el
+++ b/test/lisp/emacs-lisp/bytecomp-tests.el
@@ -347,7 +347,12 @@
                                 ((eq x 't) 99)
                                 (t 999))))
             '((a c) (b c) (7 c) (-3 c) (nil nil) (t c) (q c) (r c) (s c)
-              (t c) (x "a") (x "c") (x c) (x d) (x e))))
+              (t c) (x "a") (x "c") (x c) (x d) (x e)))
+
+    ;; `substring' bytecode generation (bug#39709).
+    (substring "abcdef")
+    (substring "abcdef" 2)
+    (substring "abcdef" 3 2))
   "List of expression for test.
 Each element will be executed by interpreter and with
 bytecompiled code, and their results compared.")
diff --git a/test/lisp/emacs-lisp/cl-extra-tests.el 
b/test/lisp/emacs-lisp/cl-extra-tests.el
index 2d20ba7..7546c14 100644
--- a/test/lisp/emacs-lisp/cl-extra-tests.el
+++ b/test/lisp/emacs-lisp/cl-extra-tests.el
@@ -99,4 +99,12 @@
     ;; Test for Bug#33731.
     (should-not (eq s (cl-make-random-state s)))))
 
+(ert-deftest cl-concatenate ()
+  (should (equal (cl-concatenate 'list '(1 2 3) '(4 5 6))
+                 '(1 2 3 4 5 6)))
+  (should (equal (cl-concatenate 'vector [1 2 3] [4 5 6])
+                 [1 2 3 4 5 6]))
+  (should (equal (cl-concatenate 'string "123" "456")
+                 "123456")))
+
 ;;; cl-extra-tests.el ends here
diff --git a/test/lisp/emacs-lisp/regexp-opt-tests.el 
b/test/lisp/emacs-lisp/regexp-opt-tests.el
index 0179ac4..ff93b8b 100644
--- a/test/lisp/emacs-lisp/regexp-opt-tests.el
+++ b/test/lisp/emacs-lisp/regexp-opt-tests.el
@@ -25,27 +25,14 @@
 
 (require 'regexp-opt)
 
-(defun regexp-opt-test--permutation (n list)
-  "The Nth permutation of LIST, 0 ≤ N < (length LIST)!."
-  (let ((len (length list))
-        (perm-list nil))
-    (dotimes (i len)
-      (let* ((d (- len i))
-             (k (mod n d)))
-        (push (nth k list) perm-list)
-        (setq list (append (butlast list (- (length list) k))
-                           (nthcdr (1+ k) list)))
-        (setq n (/ n d))))
-    (nreverse perm-list)))
-
-(defun regexp-opt-test--factorial (n)
-  "N!"
-  (apply #'* (number-sequence 1 n)))
-
-(defun regexp-opt-test--permutations (list)
-  "All permutations of LIST."
-  (mapcar (lambda (i) (regexp-opt-test--permutation i list))
-          (number-sequence 0 (1- (regexp-opt-test--factorial (length list))))))
+(defun regexp-opt-test--permutations (l)
+  "All permutations of L, assuming no duplicates."
+  (if (cdr l)
+      (mapcan (lambda (x)
+                (mapcar (lambda (p) (cons x p))
+                        (regexp-opt-test--permutations (remove x l))))
+              l)
+    (list l)))
 
 (ert-deftest regexp-opt-longest-match ()
   "Check that the regexp always matches as much as possible."
diff --git a/test/lisp/emacs-lisp/rx-tests.el b/test/lisp/emacs-lisp/rx-tests.el
index a6c172a..0fece40 100644
--- a/test/lisp/emacs-lisp/rx-tests.el
+++ b/test/lisp/emacs-lisp/rx-tests.el
@@ -42,13 +42,24 @@
 (ert-deftest rx-or ()
   (should (equal (rx (or "ab" (| "c" nonl) "de"))
                  "ab\\|c\\|.\\|de"))
-  (should (equal (rx (or "ab" "abc" "a"))
+  (should (equal (rx (or "ab" "abc" ?a))
                  "\\(?:a\\(?:bc?\\)?\\)"))
+  (should (equal (rx (or "ab" (| (or "abcd" "abcde")) (or "a" "abc")))
+                 "\\(?:a\\(?:b\\(?:c\\(?:de?\\)?\\)?\\)?\\)"))
+  (should (equal (rx (or "a" (eval (string ?a ?b))))
+                 "\\(?:ab?\\)"))
   (should (equal (rx (| nonl "a") (| "b" blank))
                  "\\(?:.\\|a\\)\\(?:b\\|[[:blank:]]\\)"))
   (should (equal (rx (|))
                  "\\`a\\`")))
 
+(ert-deftest rx-def-in-or ()
+  (rx-let ((a b)
+           (b (or "abc" c))
+           (c ?a))
+    (should (equal (rx (or a (| "ab" "abcde") "abcd"))
+                   "\\(?:a\\(?:b\\(?:c\\(?:de?\\)?\\)?\\)?\\)"))))
+
 (ert-deftest rx-char-any ()
   "Test character alternatives with `]' and `-' (Bug#25123)."
   (should (equal
@@ -130,7 +141,10 @@
   (should (equal (rx (any "") (not (any "")))
                  "\\`a\\`[^z-a]"))
   (should (equal (rx (any space ?a digit space))
-                 "[a[:space:][:digit:]]")))
+                 "[a[:space:][:digit:]]"))
+  (should (equal (rx (not "\n") (not ?\n) (not (any "\n")) (not-char ?\n)
+                     (| (not (in "a\n")) (not (char ?\n (?b . ?b)))))
+          ".....")))
 
 (ert-deftest rx-pcase ()
   (should (equal (pcase "a 1 2 3 1 1 b"
@@ -298,7 +312,13 @@
                          (not (any "a-k"))))
                  "[^abh-k]"))
   (should (equal (rx (or ?f (any "b-e") "a") (not (or ?x "y" (any "s-w"))))
-                 "[a-f][^s-y]")))
+                 "[a-f][^s-y]"))
+  (should (equal (rx (not (or (in "abc") (char "bcd"))))
+                 "[^a-d]"))
+  (should (equal (rx (or (not (in "abc")) (not (char "bcd"))))
+                 "[^bc]"))
+  (should (equal (rx (or "x" (? "yz")))
+                 "x\\|\\(?:yz\\)?")))
 
 (ert-deftest rx-def-in-charset-or ()
   (rx-let ((a (any "badc"))
diff --git a/test/lisp/filenotify-tests.el b/test/lisp/filenotify-tests.el
index 39156fb..42d86ee 100644
--- a/test/lisp/filenotify-tests.el
+++ b/test/lisp/filenotify-tests.el
@@ -219,7 +219,8 @@ remote case we return always t."
   (or file-notify--library
       (file-remote-p temporary-file-directory)))
 
-(defvar file-notify--test-remote-enabled-checked nil
+(defvar file-notify--test-remote-enabled-checked
+  (if (getenv "EMACS_HYDRA_CI") '(t . nil))
   "Cached result of `file-notify--test-remote-enabled'.
 If the function did run, the value is a cons cell, the `cdr'
 being the result.")
@@ -771,9 +772,9 @@ delivered."
          (copy-file file-notify--test-tmpfile file-notify--test-tmpfile1)
          ;; The next two events shall not be visible.
          (file-notify--test-read-event)
-         (set-file-modes file-notify--test-tmpfile 000)
+         (set-file-modes file-notify--test-tmpfile 000 'nofollow)
          (file-notify--test-read-event)
-         (set-file-times file-notify--test-tmpfile '(0 0))
+         (set-file-times file-notify--test-tmpfile '(0 0) 'nofollow)
          (file-notify--test-read-event)
           (delete-directory file-notify--test-tmpdir 'recursive))
         (file-notify-rm-watch file-notify--test-desc)
@@ -864,9 +865,9 @@ delivered."
          (write-region
           "any text" nil file-notify--test-tmpfile nil 'no-message)
          (file-notify--test-read-event)
-         (set-file-modes file-notify--test-tmpfile 000)
+         (set-file-modes file-notify--test-tmpfile 000 'nofollow)
          (file-notify--test-read-event)
-         (set-file-times file-notify--test-tmpfile '(0 0))
+         (set-file-times file-notify--test-tmpfile '(0 0) 'nofollow)
          (file-notify--test-read-event)
          (delete-file file-notify--test-tmpfile))
         (file-notify-rm-watch file-notify--test-desc)
diff --git a/test/lisp/files-tests.el b/test/lisp/files-tests.el
index ac56a77..05d9cee 100644
--- a/test/lisp/files-tests.el
+++ b/test/lisp/files-tests.el
@@ -1003,9 +1003,9 @@ unquoted file names."
 
 (ert-deftest files-tests-file-name-non-special-set-file-times ()
   (files-tests--with-temp-non-special (tmpfile nospecial)
-    (set-file-times nospecial))
+    (set-file-times nospecial nil 'nofollow))
   (files-tests--with-temp-non-special-and-file-name-handler (tmpfile nospecial)
-    (should-error (set-file-times nospecial))))
+    (should-error (set-file-times nospecial nil 'nofollow))))
 
 (ert-deftest files-tests-file-name-non-special-set-visited-file-modtime ()
   (files-tests--with-temp-non-special (tmpfile nospecial)
diff --git a/test/lisp/image/exif-tests.el b/test/lisp/image/exif-tests.el
index cb7c9ec..8a22311 100644
--- a/test/lisp/image/exif-tests.el
+++ b/test/lisp/image/exif-tests.el
@@ -41,4 +41,15 @@
     (should (equal (exif-elem exif 'orientation) 1))
     (should (equal (exif-elem exif 'x-resolution) '(180 . 1)))))
 
+(ert-deftest test-exif-parse-short ()
+  (let ((exif (exif-parse-file (test-image-file "black-short.jpg"))))
+    (should (equal (exif-elem exif 'make) "thr"))
+    (should (equal (exif-elem exif 'model) "four"))
+    (should (equal (exif-elem exif 'software) "em"))
+    (should (equal (exif-elem exif 'artist) "z"))))
+
+(ert-deftest test-exit-direct-ascii-value ()
+  (equal (exif--direct-ascii-value 28005 2 t) (string ?e ?m 0))
+  (equal (exif--direct-ascii-value 28005 2 nil) (string ?m ?e 0)))
+
 ;;; exif-tests.el ends here
diff --git a/test/lisp/image/gravatar-tests.el 
b/test/lisp/image/gravatar-tests.el
index e66b5c6..66098fa 100644
--- a/test/lisp/image/gravatar-tests.el
+++ b/test/lisp/image/gravatar-tests.el
@@ -67,6 +67,6 @@
         (gravatar-force-default nil)
         (gravatar-size nil))
     (should (equal (gravatar-build-url "foo") "\
-https://www.gravatar.com/avatar/acbd18db4cc2f85cedef654fccc4a4d8?r=g";))))
+https://seccdn.libravatar.org/avatar/acbd18db4cc2f85cedef654fccc4a4d8?r=g";))))
 
 ;;; gravatar-tests.el ends here
diff --git a/test/lisp/international/ucs-normalize-tests.el 
b/test/lisp/international/ucs-normalize-tests.el
index ec77e65..c36808a 100644
--- a/test/lisp/international/ucs-normalize-tests.el
+++ b/test/lisp/international/ucs-normalize-tests.el
@@ -181,8 +181,8 @@ implementations:
   (should-not (ucs-normalize-tests--rule1-failing-for-partX 0)))
 
 (defconst ucs-normalize-tests--failing-lines-part1
-  (list 15131 15132 15133 15134 15135 15136 15137 15138
-        15139 16149 16150 16151 16152 16153 16154 16155
+  (list 2152 2418 15133 15134 15135 15136 15137 15138
+        15139 15140 15141 15142 16152 16153 16154 16155
         16156 16157 16158 16159 16160 16161 16162 16163
         16164 16165 16166 16167 16168 16169 16170 16171
         16172 16173 16174 16175 16176 16177 16178 16179
@@ -199,7 +199,9 @@ implementations:
         16260 16261 16262 16263 16264 16265 16266 16267
         16268 16269 16270 16271 16272 16273 16274 16275
         16276 16277 16278 16279 16280 16281 16282 16283
-        16284 16285 16286 16287 16288 16289 16366))
+        16284 16285 16286 16287 16288 16289 16290 16291
+        16292 16429 16430 16431 16432 16433 16434 16435
+        16436 16437 16438))
 
 ;; Keep a record of failures, for consulting afterwards (the ert
 ;; backtrace only shows a truncated version of these lists).
@@ -257,22 +259,28 @@ implementations:
     ucs-normalize-tests--failing-lines-part1)))
 
 (defconst ucs-normalize-tests--failing-lines-part2
-  (list 17689 18379 18381 18383 18385 18387 18389 18391
-        18393 18395 18397 18399 18401 18403 18405 18407
-        18409 18411 18413 18415 18417 18419 18421 18423
-        18425 18427 18429 18431 18433 18435 18437 18439
-        18441 18443 18445 18447 18449 18451 18453 18455
-        18457 18459 18461 18463 18465 18467 18469 18471
-        18473 18475 18477 18479 18481 18483 18485 18487
-        18489 18491 18493 18495 18497 18499 18501 18569
-        18571 18573 18575 18577 18579 18581 18583 18585
-        18587 18589 18591 18593 18595 18597 18599 18601
-        18603 18605 18607 18609 18611 18613 18615 18617
-        18619 18621 18623 18625 18627 18629 18631 18633
-        18635 18637 18639 18641 18643 18645 18647 18649
-        18651 18653 18655 18657 18659 18661 18663 18665
-        18667 18669 18671 18673 18675 18677 18679 18681
-        18683 18685 18687 18689 18691 18693))
+  (list 17634 17635 17646 17647 17652 17653 17656 17657
+        17660 17661 17672 17673 17750 17751 17832 17834
+        17836 17837 17862 17863 17868 17869 18222 18270
+        18271 18368 18370 18400 18401 18402 18404 18406
+        18408 18410 18412 18413 18414 18416 18417 18418
+        18420 18421 18422 18423 18424 18426 18427 18428
+        18429 18430 18432 18434 18436 18438 18440 18442
+        18444 18446 18448 18450 18452 18454 18456 18458
+        18459 18460 18462 18464 18465 18466 18468 18469
+        18470 18472 18474 18475 18476 18478 18480 18481
+        18482 18484 18486 18487 18488 18490 18492 18494
+        18496 18498 18499 18500 18502 18504 18506 18508
+        18510 18512 18514 18516 18518 18520 18522 18524
+        18526 18528 18530 18531 18532 18533 18534 18602
+        18604 18606 18608 18610 18612 18614 18616 18618
+        18620 18622 18624 18626 18628 18630 18632 18634
+        18636 18638 18640 18642 18644 18646 18648 18650
+        18652 18654 18656 18658 18660 18662 18664 18666
+        18668 18670 18672 18674 18676 18678 18680 18682
+        18684 18686 18688 18690 18692 18694 18696 18698
+        18700 18702 18704 18706 18708 18710 18712 18714
+        18716 18718 18720 18722 18724 18726 18727))
 
 (ert-deftest ucs-normalize-part2 ()
   :tags '(:expensive-test)
diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el
index bd924ab..e564976 100644
--- a/test/lisp/net/tramp-tests.el
+++ b/test/lisp/net/tramp-tests.el
@@ -50,6 +50,7 @@
 (require 'vc-hg)
 
 (declare-function tramp-find-executable "tramp-sh")
+(declare-function tramp-get-remote-chmod-h "tramp-sh")
 (declare-function tramp-get-remote-gid "tramp-sh")
 (declare-function tramp-get-remote-path "tramp-sh")
 (declare-function tramp-get-remote-perl "tramp-sh")
@@ -2355,7 +2356,14 @@ This checks also `file-name-as-directory', 
`file-name-directory',
                (write-region nil nil tmp-name 3))
              (with-temp-buffer
                (insert-file-contents tmp-name)
-               (should (string-equal (buffer-string) "foobaz"))))
+               (should (string-equal (buffer-string) "foobaz")))
+             (delete-file tmp-name)
+             (with-temp-buffer
+               (insert "foo")
+               (write-region nil nil tmp-name 'append))
+             (with-temp-buffer
+               (insert-file-contents tmp-name)
+               (should (string-equal (buffer-string) "foo"))))
 
            ;; Write string.
            (write-region "foo" nil tmp-name)
@@ -3364,25 +3372,80 @@ This tests also `file-executable-p', `file-writable-p' 
and `set-file-modes'."
         "ftp" (file-remote-p tramp-test-temporary-file-directory 'method)))))
 
   (dolist (quoted (if (tramp--test-expensive-test) '(nil t) '(nil)))
-    (let ((tmp-name (tramp--test-make-temp-name nil quoted)))
+    (let ((tmp-name1 (tramp--test-make-temp-name nil quoted))
+         (tmp-name2 (tramp--test-make-temp-name nil quoted)))
+
       (unwind-protect
          (progn
-           (write-region "foo" nil tmp-name)
-           (should (file-exists-p tmp-name))
-           (set-file-modes tmp-name #o777)
-           (should (= (file-modes tmp-name) #o777))
-           (should (file-executable-p tmp-name))
-           (should (file-writable-p tmp-name))
-           (set-file-modes tmp-name #o444)
-           (should (= (file-modes tmp-name) #o444))
-           (should-not (file-executable-p tmp-name))
+           (write-region "foo" nil tmp-name1)
+           (should (file-exists-p tmp-name1))
+           (set-file-modes tmp-name1 #o777)
+           (should (= (file-modes tmp-name1) #o777))
+           (should (file-executable-p tmp-name1))
+           (should (file-writable-p tmp-name1))
+           (set-file-modes tmp-name1 #o444)
+           (should (= (file-modes tmp-name1) #o444))
+           (should-not (file-executable-p tmp-name1))
            ;; A file is always writable for user "root".
            (unless (zerop (tramp-compat-file-attribute-user-id
-                           (file-attributes tmp-name)))
-             (should-not (file-writable-p tmp-name))))
+                           (file-attributes tmp-name1)))
+             (should-not (file-writable-p tmp-name1)))
+           ;; Check the NOFOLLOW arg.  It exists since Emacs 28.  For
+           ;; regular files, there shouldn't be a difference.
+           (when (tramp--test-emacs28-p)
+             (with-no-warnings
+               (set-file-modes tmp-name1 #o222 'nofollow)
+               (should (= (file-modes tmp-name1 'nofollow) #o222)))))
 
        ;; Cleanup.
-       (ignore-errors (delete-file tmp-name))))))
+       (ignore-errors (delete-file tmp-name1)))
+
+      ;; Check the NOFOLLOW arg.  It exists since Emacs 28.  It is
+      ;; implemented for tramp-gvfs.el and tramp-sh.el.  However,
+      ;; tramp-gvfs,el does not support creating symbolic links.  And
+      ;; in tramp-sh.el, we must ensure that the remote chmod command
+      ;; supports the "-h" argument.
+      (when (and (tramp--test-emacs28-p) (tramp--test-sh-p)
+                (tramp-get-remote-chmod-h (tramp-dissect-file-name tmp-name1)))
+       (unwind-protect
+           (with-no-warnings
+             (write-region "foo" nil tmp-name1)
+             (should (file-exists-p tmp-name1))
+             (make-symbolic-link tmp-name1 tmp-name2)
+             (should
+              (string-equal
+               (funcall
+                (if quoted #'tramp-compat-file-name-unquote #'identity)
+                (file-remote-p tmp-name1 'localname))
+               (file-symlink-p tmp-name2)))
+             ;; Both report the modes of `tmp-name1'.
+             (should
+              (= (file-modes tmp-name1) (file-modes tmp-name2)))
+             ;; `tmp-name1' is a regular file.  NOFOLLOW doesn't matter.
+             (should
+              (= (file-modes tmp-name1) (file-modes tmp-name1 'nofollow)))
+             ;; `tmp-name2' is a symbolic link.  It has different permissions.
+             (should-not
+              (= (file-modes tmp-name2) (file-modes tmp-name2 'nofollow)))
+             (should-not
+              (= (file-modes tmp-name1 'nofollow)
+                 (file-modes tmp-name2 'nofollow)))
+             ;; Change permissions.
+             (set-file-modes tmp-name1 #o200)
+             (set-file-modes tmp-name2 #o200)
+             (should
+              (= (file-modes tmp-name1) (file-modes tmp-name2) #o200))
+             ;; Change permissions with NOFOLLOW.
+             (set-file-modes tmp-name1 #o300 'nofollow)
+             (set-file-modes tmp-name2 #o300 'nofollow)
+             (should
+              (= (file-modes tmp-name1 'nofollow)
+                 (file-modes tmp-name2 'nofollow)))
+             (should-not (= (file-modes tmp-name1) (file-modes tmp-name2))))
+
+         ;; Cleanup.
+         (ignore-errors (delete-file tmp-name1))
+         (ignore-errors (delete-file tmp-name2)))))))
 
 ;; Method "smb" could run into "NT_STATUS_REVISION_MISMATCH" error.
 (defmacro tramp--test-ignore-add-name-to-file-error (&rest body)
@@ -3704,7 +3767,17 @@ This tests also `make-symbolic-link', `file-truename' 
and `add-name-to-file'."
              (should (file-newer-than-file-p tmp-name2 tmp-name1))
              ;; `tmp-name3' does not exist.
              (should (file-newer-than-file-p tmp-name2 tmp-name3))
-             (should-not (file-newer-than-file-p tmp-name3 tmp-name1))))
+             (should-not (file-newer-than-file-p tmp-name3 tmp-name1))
+             ;; Check the NOFOLLOW arg.  It exists since Emacs 28.  For
+             ;; regular files, there shouldn't be a difference.
+             (when (tramp--test-emacs28-p)
+               (with-no-warnings
+                 (set-file-times tmp-name1 (seconds-to-time 1) 'nofollow)
+                 (should
+                  (tramp-compat-time-equal-p
+                    (tramp-compat-file-attribute-modification-time
+                    (file-attributes tmp-name1))
+                   (seconds-to-time 1)))))))
 
        ;; Cleanup.
        (ignore-errors
@@ -5344,6 +5417,12 @@ Some semantics has been changed for there, w/o new 
functions or
 variables, so we check the Emacs version directly."
   (>= emacs-major-version 27))
 
+(defun tramp--test-emacs28-p ()
+  "Check for Emacs version >= 28.1.
+Some semantics has been changed for there, w/o new functions or
+variables, so we check the Emacs version directly."
+  (>= emacs-major-version 28))
+
 (defun tramp--test-adb-p ()
   "Check, whether the remote host runs Android.
 This requires restrictions of file name syntax."
diff --git a/test/lisp/progmodes/compile-tests.el 
b/test/lisp/progmodes/compile-tests.el
index 350b4eb..7596256 100644
--- a/test/lisp/progmodes/compile-tests.el
+++ b/test/lisp/progmodes/compile-tests.el
@@ -242,7 +242,7 @@
     ;; maven
     ("FooBar.java:[111,53] no interface expected here"
      1 53 111 "FooBar.java" 2)
-    ("  [ERROR] /Users/cinsk/hello.java:[651,96] ';' expected"
+    ("[ERROR] /Users/cinsk/hello.java:[651,96] ';' expected"
      15 96 651 "/Users/cinsk/hello.java" 2) ;Bug#11517.
     ("[WARNING] /foo/bar/Test.java:[27,43] unchecked conversion"
      11 43 27 "/foo/bar/Test.java" 1) ;Bug#20556
@@ -269,6 +269,9 @@
      1 nil 109 "..\\src\\ctrl\\lister.c")
     ("..\\src\\ctrl\\lister.c(120): Warning! W201: Unreachable code"
      1 nil 120 "..\\src\\ctrl\\lister.c")
+    ;; omake
+    ("      alpha.c:5:15: error: expected ';' after expression"
+     1 15 5 "alpha.c")
     ;; oracle
     ("Semantic error at line 528, column 5, file erosacqdb.pc:"
      1 5 528 "erosacqdb.pc")
@@ -428,7 +431,7 @@ The test data is in `compile-tests--test-regexps-data'."
           (compilation-num-warnings-found 0)
           (compilation-num-infos-found 0))
       (mapc #'compile--test-error-line compile-tests--test-regexps-data)
-      (should (eq compilation-num-errors-found 92))
+      (should (eq compilation-num-errors-found 93))
       (should (eq compilation-num-warnings-found 36))
       (should (eq compilation-num-infos-found 26)))))
 
diff --git a/test/lisp/tempo-tests.el b/test/lisp/tempo-tests.el
index 0dd310b..bfe4759 100644
--- a/test/lisp/tempo-tests.el
+++ b/test/lisp/tempo-tests.el
@@ -216,6 +216,45 @@
     (tempo-complete-tag)
     (should (equal (buffer-string) "Hello, World!"))))
 
+(ert-deftest tempo-define-tag-globally-test ()
+  "Testing usage of a template tag defined from another buffer."
+  (tempo-define-template "test" '("Hello, World!") "hello")
+
+  (with-temp-buffer
+    ;; Use a tag in buffer 1
+    (insert "hello")
+    (tempo-complete-tag)
+    (should (equal (buffer-string) "Hello, World!"))
+    (erase-buffer)
+
+    ;; Collection should not be dirty
+    (should-not tempo-dirty-collection)
+
+    ;; Define a tag on buffer 2
+    (with-temp-buffer
+      (tempo-define-template "test2" '("Now expanded.") "mytag"))
+
+    ;; I should be able to use this template back in buffer 1
+    (insert "mytag")
+    (tempo-complete-tag)
+    (should (equal (buffer-string) "Now expanded."))))
+
+(ert-deftest tempo-overwrite-tag-test ()
+  "Testing ability to reassign templates to tags."
+  (with-temp-buffer
+    ;; Define a tag and use it
+    (tempo-define-template "test-tag-1" '("abc") "footag")
+    (insert "footag")
+    (tempo-complete-tag)
+    (should (equal (buffer-string) "abc"))
+    (erase-buffer)
+
+    ;; Define a new template with the same tag
+    (tempo-define-template "test-tag-2" '("xyz") "footag")
+    (insert "footag")
+    (tempo-complete-tag)
+    (should (equal (buffer-string) "xyz"))))
+
 (ert-deftest tempo-expand-partial-tag-test ()
   "Testing expansion of a template with a tag, with a partial match."
   (with-temp-buffer
diff --git a/test/manual/BidiCharacterTest.txt 
b/test/manual/BidiCharacterTest.txt
index 064594b..02e2083 100644
--- a/test/manual/BidiCharacterTest.txt
+++ b/test/manual/BidiCharacterTest.txt
@@ -1,6 +1,6 @@
-# BidiCharacterTest-12.0.0.txt
-# Date: 2018-11-02, 16:34:00 GMT [LI]
-# © 2018 Unicode®, Inc.
+# BidiCharacterTest-13.0.0.txt
+# Date: 2019-09-09, 19:32:00 GMT [LI]
+# © 2019 Unicode®, Inc.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 #
 # Unicode Character Database
diff --git a/test/src/emacs-module-tests.el b/test/src/emacs-module-tests.el
index 48d2e86..1f91795 100644
--- a/test/src/emacs-module-tests.el
+++ b/test/src/emacs-module-tests.el
@@ -424,4 +424,18 @@ See Bug#36226."
       ;; but at least one.
       (should (> valid-after valid-before)))))
 
+(ert-deftest module/async-pipe ()
+  "Check that writing data from another thread works."
+  (with-temp-buffer
+    (let ((process (make-pipe-process :name "module/async-pipe"
+                                      :buffer (current-buffer)
+                                      :coding 'utf-8-unix
+                                      :noquery t)))
+      (unwind-protect
+          (progn
+            (mod-test-async-pipe process)
+            (should (accept-process-output process 1))
+            (should (equal (buffer-string) "data from thread")))
+        (delete-process process)))))
+
 ;;; emacs-module-tests.el ends here
diff --git a/test/src/regex-emacs-tests.el b/test/src/regex-emacs-tests.el
index ad02710..f9372e3 100644
--- a/test/src/regex-emacs-tests.el
+++ b/test/src/regex-emacs-tests.el
@@ -505,7 +505,7 @@ differences in behavior.")
      (cond
 
       ;; pattern
-      ((save-excursion (re-search-forward "^/\\(.*\\)/\\(.*i?\\)$" nil t))
+      ((save-excursion (re-search-forward "^/\\(.*\\)/\\(.*\\)$" nil t))
        (setq icase (string= "i" (match-string 2))
              pattern (regex-tests-unextend (match-string 1))))
 
diff --git a/test/src/timefns-tests.el b/test/src/timefns-tests.el
index 62d56ac..b24d443 100644
--- a/test/src/timefns-tests.el
+++ b/test/src/timefns-tests.el
@@ -124,44 +124,44 @@
 ;;; Tests of format-time-string padding
 
 (ert-deftest format-time-string-padding-minimal-deletes-unneeded-zeros ()
-  (let ((ref-time (append (encode-time 0 0 0 15 2 2000) '(123450))))
+  (let ((ref-time (encode-time '((123450 . 1000000) 0 0 15 2 2000 - - t))))
     (should (equal (format-time-string "%-:::z" ref-time "FJT-12") "+12"))
-    (should (equal (format-time-string "%-N" ref-time) "12345"))
-    (should (equal (format-time-string "%-6N" ref-time) "12345"))
-    (should (equal (format-time-string "%-m" ref-time) "2")))) ;not "02"
+    (should (equal (format-time-string "%-N" ref-time t) "12345"))
+    (should (equal (format-time-string "%-6N" ref-time t) "12345"))
+    (should (equal (format-time-string "%-m" ref-time t) "2")))) ;not "02"
 
 (ert-deftest format-time-string-padding-minimal-retains-needed-zeros ()
-  (let ((ref-time (append (encode-time 0 0 0 20 10 2000) '(3450))))
+  (let ((ref-time (encode-time '((3450 . 1000000) 0 0 20 10 2000 - - t))))
     (should (equal (format-time-string "%-z" ref-time "IST-5:30") "+530"))
     (should (equal (format-time-string "%-4z" ref-time "IST-5:30") "+530"))
     (should (equal (format-time-string "%4z" ref-time "IST-5:30") "+530"))
-    (should (equal (format-time-string "%-N" ref-time) "00345"))
-    (should (equal (format-time-string "%-3N" ref-time) "003"))
-    (should (equal (format-time-string "%3N" ref-time) "003"))
-    (should (equal (format-time-string "%-m" ref-time) "10")) ;not "1"
-    (should (equal (format-time-string "%-1m" ref-time) "10")) ;not "1"
-    (should (equal (format-time-string "%1m" ref-time) "10")))) ;not "1"
+    (should (equal (format-time-string "%-N" ref-time t) "00345"))
+    (should (equal (format-time-string "%-3N" ref-time t) "003"))
+    (should (equal (format-time-string "%3N" ref-time t) "003"))
+    (should (equal (format-time-string "%-m" ref-time t) "10")) ;not "1"
+    (should (equal (format-time-string "%-1m" ref-time t) "10")) ;not "1"
+    (should (equal (format-time-string "%1m" ref-time t) "10")))) ;not "1"
 
 (ert-deftest format-time-string-padding-spaces ()
-  (let ((ref-time (append (encode-time 0 0 0 10 12 2000) '(123000))))
+  (let ((ref-time (encode-time '((123000 . 1000000) 0 0 10 12 2000 - - t))))
     (should (equal (format-time-string "%_7z" ref-time "CHA-12:45") "  +1245"))
-    (should (equal (format-time-string "%_6N" ref-time) "123   "))
-    (should (equal (format-time-string "%_9N" ref-time) "123      "))
-    (should (equal (format-time-string "%_12N" ref-time) "123         "))
-    (should (equal (format-time-string "%_m" ref-time) "12"))
-    (should (equal (format-time-string "%_2m" ref-time) "12"))
-    (should (equal (format-time-string "%_3m" ref-time) " 12"))))
+    (should (equal (format-time-string "%_6N" ref-time t) "123   "))
+    (should (equal (format-time-string "%_9N" ref-time t) "123      "))
+    (should (equal (format-time-string "%_12N" ref-time t) "123         "))
+    (should (equal (format-time-string "%_m" ref-time t) "12"))
+    (should (equal (format-time-string "%_2m" ref-time t) "12"))
+    (should (equal (format-time-string "%_3m" ref-time t) " 12"))))
 
 (ert-deftest format-time-string-padding-zeros-adds-on-insignificant-side ()
   "Fractional seconds have a fixed place on the left,
 and any padding must happen on the right.  All other numbers have
 a fixed place on the right and are padded on the left."
-  (let ((ref-time (append (encode-time 0 0 0 10 12 2000) '(123000))))
-    (should (equal (format-time-string "%3m" ref-time) "012"))
+  (let ((ref-time (encode-time '((123000 . 1000000) 0 0 10 12 2000 - - t))))
+    (should (equal (format-time-string "%3m" ref-time t) "012"))
     (should (equal (format-time-string "%7z" ref-time "CHA-12:45") "+001245"))
-    (should (equal (format-time-string "%12N" ref-time) "123000000000"))
-    (should (equal (format-time-string "%9N" ref-time) "123000000"))
-    (should (equal (format-time-string "%6N" ref-time) "123000"))))
+    (should (equal (format-time-string "%12N" ref-time t) "123000000000"))
+    (should (equal (format-time-string "%9N" ref-time t) "123000000"))
+    (should (equal (format-time-string "%6N" ref-time t) "123000"))))
 
 
 (ert-deftest time-equal-p-nil-nil ()
@@ -220,6 +220,9 @@ a fixed place on the right and are padded on the left."
              '(23752 27217))))
 
 (ert-deftest float-time-precision ()
+  (should (= (float-time '(0 1 0 4025)) 1.000000004025))
+  (should (= (float-time '(1000000004025 . 1000000000000)) 1.000000004025))
+
   (should (< 0 (float-time '(1 . 10000000000))))
   (should (< (float-time '(-1 . 10000000000)) 0))
 



reply via email to

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